计算机二级C语言真题讲解
内 容 笔试真题(精选) 09春、08秋、08春 文件 2009春笔试 试题1:阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入1个正整数n,计算下列算式的前n项之和。 S=1-1/3+1/5-1/7+… 运行示例: Enter n:2 Sum=0.67 #include main( ) { int denominator , flag,i, n; double item,sum; printf(“Enter n:”); scanf(“%d”,&n); denominator = 1; (1) ; sum = 0 for(i = 1; (2) ; i++){ (3) ; sum=sum +item; (4) ; denominator= denominator+2; } printf(“Sum=%.2f\n”,sum); } 试题2:阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5,…,18=7+11。将6~20之间的偶数表示成两个素数之和,打印时一行打印5组。要求定义和调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 运行示例: 6=3+3 8=3+5 10=3+7 12=5+7 14=3+11 16=3+13 18=5+13 20=3+17 18=7+11 #include #include int prime(int m) { int i, n; if(m == 1) return 0; n = sqrt(m); for(i = 2; i <= n; i++) if(m % i == 0) return 0; ___(5) ___ } main() {int count, i,number; count=0; for(number=6;number<=20;number=number+2){ for(i=3;i<=number/2;i=i+2) if(__(6)_____){ printf(“%d=%d+%d”,number,i,number – i); count++; if(__(7)_____) printf(“\n”); ___(8)___ } } 试题3:阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一行字符,统计并输出其中数字字符、英文字母和其他字符的个数。要求定义并调用函数count(s, digit,letter,other)分类统计字符串s中数字字符、英文字母和其它字符的个数,函数形参s的类型是字符指针,形参digit,letter,other的类型是整形指针,函数类型是void。 运行示例: Enter characters:f(x,y)=5x+2y-6 Digit=3 letter=5 other=6 #include void count (char *s, int * digit, int * letter, int * other) { _____(9)___ while(_____(10)___){ if (*s>=’0’ && *s<=’9’) (*digit)++; else if ((*s>=’a’ && *s<=’z’)||(*s>=’A’ && *s<=’z’)) (*letter)++; else (*other)++; s++; } } main() { int i=0,digit,letter,other; char ch,str[80]