函数fun的功能是:在有11个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。例如,主函数中给出了4名学生的数据,则程序运行的结果为: 学号:N1002 学号:N1006 共有2位

admin2017-11-27  43

问题   函数fun的功能是:在有11个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。例如,主函数中给出了4名学生的数据,则程序运行的结果为:
  学号:N1002    学号:N1006
  共有2位学生有不及格科目
  请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
  注意:源程序存放在考生文件夹下的BLANK1.C中。
  不得增行或删行,也不得更改程序的结构!
#include
typedelf struct
{char num[8];
double score[2];
/**********found**********/
}    【1】    ;
int fun(STU std[],int n)
{int i,k=0;
  for(i=0;i/**********found**********/
if(std.score[0]<60 【2】 s
td.score[1]<60)
{k++;
printf("学号:%s",std.num);}
/**********found**********/
return  【3】  ;
}
main()
{STU std[4]={"N1001",76.5,
82.0,"N1002",53.5,73.0,
"N1005",80.5,66.0,"N1006",
81.0,56.0};
printf("\n共有%d位学生有不及格科
目\n",fun(std,4));
}

选项

答案(1)STU (2)‖ (3)k

解析 第一空:“{……}(1);”这一空出现在定义结构体时,这里使用了typedef就是很明显地要声明结构体类型,而这里则是要填写结构体类型名。这里就要知道typedef的作用了,typedef是用来命名已有类型的,相当于给已经知道的类型(如intfloat)一个新的类型名,而这里命名的是一个结构体,这不同于结构体的类型定义,大括号后面填写的不是变量名表列,而是结构体类型名,相当于给一个名称或者一种新的类型。而根据后面程序已给出的部分,我们能清楚的看到定义的结构体类型名是STU,所以这一空应该填的是“STU”。
    第二空:“if(std.score[0]<60(2)
    std.score[1]<60);”这一空出现在fun函数中的if条件语句中,根据if后面的执行语句我们可以看到执行的人数的统计,所以这里应该就是在判断学生学科分数是否及格的条件语句。对于一开始的结构体定义我们能够发现成员score是长度为2的数组,所以每个学生应该是有两门学科的分数需要来判定和统计的,而这两门学科中任意一门分数不够的话都定义为不及格,然后统计进入人数中,这里所填空的两边是两门学科的分数低于60分,既然前面说了是任意一门低于60即进入统计,那这里就应该是“或”符号才符合要求,所以这一空应该填“‖”。
    第三空:“return(3);”这一空出现在fun函数中,这里要填写的是fun函数执行后的返回值。根据题目的要求函数是要查找不及格的科目的学生,找到学生学号,然后返回学生的人数,这一空前面已经执行了查找,统计人数和学号的输出,所以这里应该返回的就是不及格学生的人数。而根据前面的定义,人数统计的变量名应该是k,所以这一空应该要填写的是“k”。
转载请注明原文地址:https://kaotiyun.com/show/B9xp777K
0

最新回复(0)