19.准确表示代数式
xy的C语言表达式是。 u?vA.xy/(u+v) B.xy/u+v C.x*y/(u+v) D.x*y/u+v 20. 以下C语言运算符中要求对象必须是整型的是 。
A.% B.= C./ D.>
第二部分:简单程序
21. 以下程序的运行结果是 。 main()
{ int k;
for(k=10;k>0;k--) if(k==4) break; printf(“%d”,k); }
A.10 B.5 C.4 D.0 22. 以下程序的运行结果是 。 main()
{ int n,sum;
for(n=1,sum=0;n<=1;n+=4) sum += n;
printf(“%d”, sum); }
A.0 B.1 C.4 D.5 23. 以下程序的运行结果是 。 main()
{ int x=3,y=4,n ; n=x-y++;
n+=x*y;
printf(“%d”,n); }
A.12 B.14 C.15 D.16 24. 以下程序的运行结果是 。 main()
{ int a=1,b=2,c=3; if (a
if (b<0) c--; }
else c++;
printf(“%d\\n”,c); }
A.3 B.2 C.1 D.0 25. 以下程序的运行结果是 。 void fun(int *a,int *b) { int k;
k=*a;*a=*b;*b=k; }
21
main()
{ int a=3,b=4;
fun(&a,&b);
printf(“%d,%d\\n”,a,b); }
A.3,3 B.3,4 C.4,3 D.4,4 26. 以下程序的运行结果是 。 main()
{ int k=3,n=0;
do{ n++;k++; }while(k>5); printf(“%d”,n); }
A.0 B.1 C.2 D.3
27. 以下程序的运行结果是 。 main()
{ int a[ ]={1,2,3,4,5,6}, *p=a; *(p+3)+=2;
printf(“%d”,*(p+3)); }
A.2 B.3 C.5 D.6 28. 以下程序的运行结果是 。 main()
{ char s[ ]=“abcdefg” , *p=s+2;
p[3]=?\\0?;
printf(“%s\\n” , p); }
A.abc B.cde C.bce D.def
29. 以下程序的运行结果是 。 main()
{ char c=?A?; int k=0;
while(c
{ switch (c++) {
case?A? : k++;continue; case?B? : k+=2; case?C? : k--;break; default : k/=3; } k++; } printf(“k=%d”,k); }
A.k=2 B.k=3 C.k=4 D.k=5
22
30. 以下程序的运行结果是 。 main()
{ int k,j,x=0;
for (k=2;k>0;k--)
{ for (j=0;j<=3;j++)
if (1==j%2) x++; } printf(“x=%d” ,x); }
A.x=4 B.x=3 C.x=2 D.x=1 31. 以下程序的运行结果是 。 main()
{ union myun {
struct {int x,y,z;} u; int k; } a;
a.u.x=4; a.u.y=5; a.u.z=6; a.k=0; printf(“%d\\n”,a.u.x); }
A.4 B.5 C.6 D.0 32. 以下程序的运行结果是 。 #define f(x) x*x main()
{ int k;
k=f (1+2)/f(2+1); printf(\ }
A.1 B.3 C.7 D.9
第二卷
说明:(1)第二卷均为程序填空题,在阅读和理解程序的基础上,在第二卷答题卡是编号对应的
栏目中填入适当的字符、语句,以构成一个正确的C语言程序。
(2)每空栏3分,10个空栏共30分。
试题一 下列函数的功能是:计算s=1+1/2+1/3+….+1/n。 #include
double s=0.0, f; int k;
for(k=1; 1 ;k++) k { f= 2 ; 1.0/k s+=f; } return 3 ; s } 23 试题二 下列程序的功能是:输入一个字符串到数组中,将其中的小写字母转换成大写字母。 main() { char s[80]; int k; 4 ; gets(s) for (k=0; 5 ;k++) k<=strlen(s) { if( 6 && 7 ) s[k]>=?a? s[k]<=?z? { s[k] -=?a?+?A?; } } puts(s); } ?非法?1试题三 下列函数的功能是:计算表达式 f(n)???n*f(n?1)?long f(int n) { if( 8 ) n<0 { printf(“非法数据!\\n”); exit(-1); } else if(n==0) 9 ; return 1 else return 10 ; n*f(n-1) } n?0n?0 的值。 n?0全国高校计算机联合考试(广西)二级C语言试题卷 2010年6月 第一卷(本卷第1~20题每题2分,第21~30题每题3分,共70分) 第一部分基础知识(20项,每项2分,共40分) 1.可以从循环体内跳出,继续执行该循环外语句的是__________。 A.break语句 B.return语句 C.continue语句 2.下列语句不具有赋值功能的是__________。 A.a*=b B.x=1 C.a+b 3.下列标识符中不是合法标识符的是__________。 A.hot_do B.cat1 C._pri D.2ab 4.数学表达式ax2+bx+c所对应的C语言表达式为__________。 A.ax2+bx+c B.a*x2+b*x+c C.a*x*x+b*x+c 5.若x为一个实数,那么输出x应该使用下面哪个语句__________。 24 D.空语句 D.a++ D.a*x*2+b*x+c A.printf (“x=”,x); B.printf (“x=%d”,x); C.printf (“x=%f”,x); D.printf (“x=%”,x); 6.设i和k都是int类型,则以下对循环语句 for (i=0,k=-1;k=1;i++,k++) { printf(“****\\n”); } 说法正确的是__________。 A.循环结束条件不合法 B.循环体一次也不执行 C.循环体执行一次 D.该循环是无限循环 7.下面说法错误的是__________。 A. do?while{}语句至少执行一次循环 B. break语句可以跳出switch语句和循环语句个if一定有一个else和它对应 D. 每个else一定有一个if和它对应 8.以下程序输出结果为 #include “stdio.h” main() { char c=?c?; printf (“%c”,c+2); } 输出结果是__________。 A.有语法错误,不能通过编译 B. e C. 99 D.c 9.判断字符串a和b相等的正确表达式是__________。 A. if(a=b) B. if(strcpy(a,b)) C. if(strcmp(a,b)= =0) D. if(a= =b) 10.C语言程序中,函数返回值的类型是由__________决定。 A. return语句中的表达式类型 B.调用该函数的主调函数类型 C. 调用该函数的形参类型 D.在定义该函数时所指定的函数类型 11.下列叙述中不正确的是__________。 A. C程序的注释部分放在“/*” 和“*/”之间,“/” 和“*”之间不能有空格 B. 一个C源程序可由一个或多个函数组成 C. 一个可正确运行C语言程序必须有一个且只能有一个main函数 D. C程序编译时注释部分的错识将被发现. 12.为了用宏名PR表示常量printf,以下宏定义中符合C语言语法的是__________。 A.#define PR, printf B. define PR printf C. #define PR printf; D. #define PR printf 13.与y=a>b?a:b语句等价的程序段的是______________。 A. if (a>b) y=a; else y=b; B. if (a>b) y=b; else y=a; C. if (a>b) y=a; y=b; D. if (a>b) y=b; y=a; 14.一个 C语言程序总是从__________开始执行的。 A. 编译预处理 B. 输出语句 C. 主函数 D. 排在前面的语句 15.对于程序段: 25 C. 每