从下列的 2 道试题(试题四至试题五)中任选 1 道解答。如果解答的试题数超过 1 道,则题号小的 1 道解答有效。 |
Private Sub Form_Click()
Dim i, j, c As Integer,StrTemp As String
Dim a(9) As Integer
a(0) = 0: a(1) = 1
StrTemp = Str(a(1)) + Space(3) CurrentX = (ScaleWidth - TextWidth(StrTemp)) / 2
Print StrTemp
For j = 2 To 9
a(j) = 1
For c = j-1 To 2 Step -1
a(c) = (3)
Next
(4) = ""
For c = 1 To j
StrTemp = StrTemp & Str( (5) ) & Space(5 - Len(Str(a(c))))
Next
CurrentX = (ScaleWidth - TextWidth(StrTemp)) / 2
Print StrTemp
Next
End Sub
试题五(共 15 分)
阅读以下说明和 C 函数,将应填入 (n)处的字句写在答题纸的对应栏内。
[说明]
某班级有 N 名学生,他们可根据自己的情况选修名称和数量不尽相同的课程。设 N等于 6,学生信息、所选课程及成绩用链表结构存储,如图 5-1 所示。
程序中相应的类型定义如下:
#define N 6
struct node{
char cname[5]; /*课程名*/
int grade; /*成绩*/
struct node *next; /*指针,指示某学生选修的下一门课程及成绩*/
};
struct student{
char xh[5]; /*学号*/
char name[20]; /*姓名*/
struct node *link; /*指针,指示出选修的课程及成绩链表*/
}stud_info[N];
stud_info[]为一个全局数组。
函数 func (char kc[],int *num)的功能是统计选修了课程名为 kc 的学生的人数, 并返回该课程的平均成绩(若无人选修该课程,则平均成绩为 0),参数 num 带回选修课程 kc 的学生人数。
[C 函数]
double func (char kc[],int *num)
{
int i,count = 0,sum = 0; /*count 用于记录选修课程名为 kc 的学生的人数*/
double avg = 0.0;
struct node *p;
for(i = 0; i < N; i++){
p = (1) ; /*取第 i 个学生所修课程链表的头指针*/
while (p) {
if ( (2) ) {
sum = (3) ;
count++;
break;
} /*if*/
p = p->next;
} /*while*/
}
(4) ;
if ( (5) )
avg = (double)sum / count; /* 计算平均成绩 */
return avg;
} /*func*/
责任编辑:小草