1、国家二级 C+机试(操作题)模拟试卷 187及答案与解析 一、基本操作题 1 下列给定程序中,函数 fun的功能是计算下式并将计算结果作为函数值返回。 例如,若形参 e的值为 1e一 3,函数的返回值为2 985678。 请在程序的中括号处填入正确的内容并将中括号删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #includedoub2e fun(double e) int i; double s, x;*found* s=0; i=【 1】; x=1 0; while(xe)*found* 【 2】; *found* x=(2
2、0*i一 1) (【 3】 )*(2 0*i); s=s+x; return s; main() double e=1 e一 3; printf(“nThe result is: f n“, fun(e); 二、简单应用题 2 下列给定程序中,函数 fun的功能是:先从键盘上输入一个 3行、 3列的矩阵的各个元素的值, 然后输出主对角线元素之和。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1 C中,不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include void fun() int a33, sum; int i, j;
3、 *found* sum=1; for(i=0; i #include #include void fun(char*ss) void main(void) char tt51; printf(“ nPlease enter an character string within 50 characters: n“); gets(tt); printf(“ n nAfter changing, the string n s“, tt); fun(tt); printf(“ nbecomes n s“, tt); 国家二级 C+机试(操作题)模拟试卷 187答案与解析 一、基本操作题 1 【正确答
4、案】 (1)0 (2)i+或 +i或 i+=1或 i=i+1 (3)2 0*i 【试题解析】 填空 1:循环变量 i从 1开始参加运算,但是在每次循环的开始 i都进行自加 1操作,故 i应赋初值为 0。 填空 2:循环变 量 i自增 1运算。 填空 3:根据公式确定表达式通项。注意 x为 double型,故应将 i变为 double型再进行运算。 二、简单应用题 2 【正确答案】 (1)sum=0; (2)scanf(“ d t, &aij); 【试题解析】 该题考查对循环语句的掌握和对数组概念的理解。本题的解题思路为:先从键盘输入一个 33矩阵,然后循环累加,执行循环语句中的sum=sum+
5、aii;。因为变量 sum用来存放累加后的结果,所以应对其初始化为0。第二处错误考查标准输入函数 scanf的格式,被 赋值的变量前要加上取地址符“&“。 三、综合应用题 3 【正确答案】 void fun(char*ss) int i; for(i=0; ssi!= 0; i+) *将 ss所指字符串中所有下标为奇数位置的字母转换为大写 * i f(i 2=1&ssi =a &ssi=z) ssi=ssi一 32; 【试题解析】 将指定字符串中奇数位置的字母转换为大写,首先需要判断奇数位置,再判断该位置字符是不是小写字母,如果是 小写字母,则将小写字母转换为大写字母。字母大小写转换操作中,只要将小写字母减去 32即可转换为大写字母。