1、试题二、语言基础题 ( 本题共 34 分 )(一) 判断题 ( 每题 1 分 , 共 10 分 )说明 : 在以下提供的若干陈述中, 逐一判断其正确与否, 选 A 表示正确, 选 B 表示错误。(16) C 语言源程序文件通过了编译、连接之后, 生成一个后缀为 .EXE 的文件。(17) 在 C 程序中, 函数既可以嵌套定义, 也可以嵌套调用。(18) 在 C 程序中 ,APH 和 aph 代表不同的变量。(19) 表达式 0195 是一个八进制整数。(20) 表达式 3.14%2 不符合 C 语言语法。(21) 设变量定义为 char cc=“12n345“, 则表达式 sized(cc)
2、的值是 7 。 (22) 执行 printf(“%d“,M-A+a-m);, 输出 0 。(23) 表达式 !x 等价于 x!=1 。(24) 表达式 (z=0,(x=2)|(z=1),z) 的值是 1。(25) 执行 printf(“%x“,“12345“+1);, 输出 12346 。(二)单选题 ( 每题 2 分, 共 24 分 ) (26) 运算符(26) 的优先级最高。A 、 B 、 += C 、 ?: D、+(27) 若 a 是整型变量 , 表达式 (aa) 等价于 (27) .A 、 a B 、 1 C 、 0 D、2(28) 下列程序段的输出结果是(28)#define MA(
3、x,y)(x)*(y)printf(“%d“,MA(5,4+2)-7);A 、 30 B 、 23 C 、 15 D 、 1(29) 设有整型变量 a,b,c, 其中 a,b 的值分别为 10 与 20, 计算表达式 “c=(a%2=0)?a:b“后 ,c 的值为 (29)A 、 O B 、 5 C、10 D、20(30) 下列程序的输出结果是 (30) 。#include stdi0.hvoid main () int y;double d=3.4,x;x=(y=d/2.0)/2;printf(“(%0.2f,%d)”,x,y);A 、 (0.00,1) B、(0.85,1.7) C、(0.
4、50,1) D、以上都不对(31) 程序段 (31) 的功能是将变量 u 、S 中的最大值赋给变量 t 。A、if(us) t=u;t=s; B 、 t=u; if(t )s)t=s;C、if(us) t=s;else t=u; D 、 t=s;if(u ) t)t=u;(32)对于以下递归函数 f,调用 f(3)的返回值是 (32)A 、 10 B 、 6 C 、 3 D 、 0(33)下列程序段的输出结果是 (33) 。int k;switch(k)case 1:putchar(P);case 2:case 3: putchar(Q);break;case 4: putchar(R);de
5、fault: putchar(S);A、P B、PQ C、PQR D、PQRS(34)下列程序段的输出结果是 (34) 。void main() int k;for (k=1;k 5;k+ if(k%2) printf(“#“);else continue ; printf(“*”) ;A 、 #*#* B 、 *#*# C、# D、以上都不对(35) 设变量定义为 int a3=1,4,7,*p=int p(int *y) +*y; return x-1;void main ()int y ; y=p( printf(“(%d,%d)”,x,y);A、(-1,0) B、(1,-1) C、(1
6、,0) D 、出错试题三、程序填空题 ( 每空 2 分 , 共 16 分)说明 : 阅读下列程序说明和相应程序, 在每小题提供的若干可选答案中, 挑选一个正确答案。程序 1 、【程序说明】输出 11000 之间所有满足各位数字的立方和等于它本身的数。【程序】#include stdi0.h void main () int digit,k,m,s;for (k=1;k =1000;k+)(38)while (m!=0)digit=m%10;s=s+digit*digit*digit;(39);if (40) printf(“%d“,s);(38) A 、 s=0; B、m=k;s=0 C、 m
7、=k; D、 k=m;s=0;(39) A.m=m/10 B m=m%10 C.m=m D、 m=k/lO(40) A.m!=s B.m=s C.k!=s D.k=s程序 2【程序说明】输入 10 个整数, 将它们存入数组 a 中 , 再输入一个数 x, 然后在数组中查找 x, 如果找到, 输出相应的下标 ( 如有多个元素与 x 相等, 只要输出下标值最小的那个元素的下标 ), 否则, 输出 “Not Found“ 。【程序】#include stdi0.h void main () int k,sub,x;int a10;for (k=0;k 10;k+scanf(“%d“,ak);prin
8、tf(“Input x n“);scanf(“%d“,sub=-l;for (k=0;k 10;k+if(ak=x)(41)if (42) printf(“Index is %d n“,sub);else printf(“Not Found n“);(41)A 、 sub=k; B 、 break ; C 、 sub=k;break ; D 、 sub=k;break ;(42)A 、 sub !=-1 B 、 sub !=0 C 、 sub=-1 D 、 sub=0程序 3 、【程序说明】当前目录下存放着文本文件 from.txt, 将其中除数字以外的内容显示在屏幕上。【程序】#includ
9、e stdi0.h #include stdlib.h void main ()FILE *fr;int ch;if(43)printf(“Can not open file- ) form.txt“); exit (O);while (!feof(fr)(44)if ( (45) )putchar(ch);fclose(fr);(43)A、(fr=fopen(“from.txt“,“w“)=NULL B 、 (fr=fopen(“from.txt“,“r“)=NULL C 、 fr=fopen(“from.txt“,“r“)=NULLD 、 fr=fopen(“from.txt“,“a“)=
10、NULL(44)A 、 ch=getchar(fr) B 、 ch=fgetc() C.ch=fgetc(fr) D 、 ch=getchar()(45)A. ch=0|chm) m=sk;k+;printf(“%d“,m);2 、程序 2#include stdi0.h void main () int j,k;int a3=3,4,5;for (j=0;j 3;j+for (k=0;k 3;k+ printf(“%d“,a(j+k)%3); printf(“#“);3 、程序 3#include stdio.h void main () int i=0,n;char S 10=“298h01“;n=0;for (i=0;S != 0;i+)if(s =9else break;printf(“%dn“,n);试题五、程序设计题(每题 10 分,共 20 分)1、 输入 10 个整数,求它们的平均值,并输出大于平均值的数据的个数。2、 输入两个正整数 m 和 n(mn),求从 m 到 n 之间(包括 m 和 n)所有素数的和,要求定义并调用函数 isprime(x)来判断 x 是否为素数(素数年是除 1 以外只能被自身整除的自然数)。