《模拟2答案09资料》由会员分享,可在线阅读,更多相关《模拟2答案09资料(7页珍藏版)》请在金锄头文库上搜索。
1、2006年秋浙江省高等学校计算机等级考试试卷(二级C)试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一行字符,统计并输出其中英文字母、数字和其他字符的个数。 运行示例:Enter characters: f(x,y)=3x+5y-10letter=5, digit=4, other=6【程序】#include void main( ) int digit, i, letter, other; (1) ch; digit = letter = other = 0; printf(Enter characters: ); wh
2、ile( (2) != n) if( (3) ) letter +; (4) (ch = 0 & ch = a & ch = A & ch = a & ch = A & ch = a & ch = A & ch = z 判断是否为字母(大写或小写),这是典型语句!(4) A、if B、elseC、else if D、if else注意配对,所以A错误。试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个整数,将它逆序输出。要求定义并调用函数reverse(long number),它的功能是返回number的逆序数。例如re
3、verse(12345)的返回值是54321。运行示例:Enter an integer: -123After reversed: -321【程序】#include void main( ) long in; long reverse(long number); printf(Enter an integer:); scanf(%ld, &in); /*6*/ printf(After reversed:%ldn, (5) ); long reverse(long number) int flag; (6) ; flag = number 0 B、number 0 C、number != 0
4、D、number = 0语句if( (7) ) number = - number;的作用相当于取绝对值函数abs,所以选B。(8) A、number%10 B、res*10 + number%10 C、number/10 D、res*10 + number/10由下一句number /= 10;可以推断这里是求余,先排除CD。仔细思考选B。以下两句:res = res*10 + number%10; number /= 10; 先求个位数,然后除以10,就得到十位数。也就是说,除以10后,原来的十位数就变成了个位数。试题3(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选
5、答案中,挑选一个正确答案。【程序说明】输入一个3 行2 列的矩阵,分别输出各行元素之和.运行示例:Enter an array:6 31 -83 12sum of row 0 is 9sum of row 1 is -7sum of row 2 is 15【程序】#include void main( ) int j, k, sum = 0; int a32; printf(Enter an array:n); for(j = 0; j 3; j+) for(k = 0; k 2; k+) scanf(%d, (9) ); for(j = 0; j 3; j+) (10) for(k = 0;
6、 k 2; k+) sum = (11) ; printf(sum of row %d is %dn, (12) , sum); 【供选择的答案】(9) A、ajk B、akj C、&ajk D、&akj双层循环,输入数组,根据Scanf的语法,首先排除AB;根据行列关系(先按照行,后按照列),可以推断这里是C。(10) A、; B、sum = -1; C、sum = 1; D、sum = 0;每次初值为0,否则会各行累加。(11) A、sum + ajk B、sum + ajj C、sum + akk D、0BC只会累加对角线上的元素,所以错误。D显然不对。因此选A。(12) A、k B、j
7、 C、0 D、1注意,J表示行,K表示列。试题4(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include void main( ) int k; for(k = 5; k 0; k-) if(k=3) continue; /* 第6行 */ printf(%d , k); (13) 程序的输出是 (13) 。 A、5 4 3 2 1 B、5 4 2 1C、5 4 D、3(14) 将第6行中的continue改为break后,程序的输出是 (14) 。 A、5 4 3 2 1 B、5 4 2 1C、5 4 D、3(15) 将第6行中
8、的continue删除(保留分号)后,程序的输出是 (15) 。 A、5 4 3 2 1 B、5 4 2 1C、5 4 D、3(16) 将第6行全部删除后,程序的输出是 (16) 。A、5 4 3 2 1 B、5 4 2 1C、5 4 D、3本题注意以下两点:1break跳出本层循环2Contiune结束本次循环,立即执行下一次条件判断。然后细心即可。试题5(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】# include void main() char c, s80= Happy New Year; int i;void f(char
9、 *s, char c); c = getchar(); f(s, c); puts(s); void f(char *s, char c) int k = 0, j = 0; while(sk != 0) if(sk != c) sj = sk; j+; k+; sj = 0; (17) 程序运行时,输入字母a,输出 (17) 。 A、Happy New Year B、Hppy New Yer C、Hay New Year D、Happy Nw Yar(18) 程序运行时,输入字母e,输出 (18) 。 A、Happy New Year B、Hppy New Yer C、Hay New Year D、Happy Nw Yar(19) 程序运行时,输入字母p,输出 (19) 。 A、Happy New Year B、Hppy New Yer C、Hay New Year D、Happy Nw Yar(20) 程序运行时,输入字母b,输出 (20) 。 A、Happy New Year B、Hppy New Yer C、Hay New Year D、Happy Nw Yar仔细研究以下