1、国家二级( C语言)机试模拟试卷 245及答案与解析 一、程序填空题( 30分) 1 请补充函数 proc(),该函数的功能是:分类统计一个字符串中元音字母和其他字符的个数 (不区分大小写 )。 例如,输入 imnIaeouOWC,结果为: A: 1 E: 1 I: 2 O: 2 U: 1 other: 4。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的横线上填人所编写的若干表达式或语句。 试题程序: #include #include #include #define M 100 void proc(char*str, int bb)
2、 char * p=str; int i=0; for(i=0; i #include *found* void fun(int a, int b, int c) if(a+bc&b+ca&a+cb) if(a=b&b=c) return 3; else if(a=b|b=c| a=c) return 2; *found* else retuEn 1 else return 0; main() int a, b, c, shape; printf(“ nTnput a, b, c: “); scanf (“ d d d“, &a, &b, &c); printf(“ na= d, b=96d,
3、 c= d n“, a, b, c); shape=fun(a, b, c); printf(“ n nThe shape: d n“, shape); 三、程序设计题( 40分) 3 m个人的成绩存放在 score数组中,请编写函数 fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在 below所指的数组中。 例如,当 score数组中的数据为: 10、 20、 30、 40、 50、 60、 70、 80、 90时,函数返回的人数应该是 4, below中的数据应为: 10、 20、 30、 40。 注意:部分源程序在文件 PROGl C文件中。 请勿改动主函数
4、main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include #include int fun(int score, int m, int below) main() int i, n, below9; void NONO(); int score9=10, 20, 30, 40, 50 , 60 , 70, 80, |90; n=fun(score, 9, below); printf(“ nBelow the average score are: “); for(i=0; iscorei)belowj+=scorei; return j ; 【试题解析】 进入 fun函数,根据前面的分析: 首先,定义变量 av,通过循环,用 av+=scorei计算总分数,然后通过 av =m语句来计算平均分。 其次,通过循环,让每个分数和平均分比较,低于平均分数的分数给below(belowi+=scorei)。在进行以上循环的同时,定义了一个变量 i,每当发现一个小于平均分的分数, j自动加 1(j+; )。 最后,返回 j值,即是数组 score中低于平均分的元素个数。