main() { int x;
scanf(“%d”,&x);
if(x>5) printf(“%d”,++x); else printf(“%d”,x--); }
A.7和4 B.6和3 C.7和3 D.6和4 24.运行以下程序的输出结果是 。
main( )
{ int x=1,a=0 ,b=0; switch(x)
{ case 0:b++; case 1:a++; case 2:a++;b++; }
printf(“a=%d, b=%d\\n”,a,b); }
A.a=1,b=1 B.a=2,b=1 C.a=1,b=0 D.a=2,b=2 25.以下程序的输出结果是 。 main( )
{ char a[10]={?1?,?2?,?3?,?4?,?5?,?6?,?7?,?8?,?9?,0},*p; int i=8; p=a+i;
printf(“%s\\n”,p-3); }
A.123456789 B.6789 C.?6? D.789 26.以下程序的输出结果是 。 main()
{ char s[]=“TODAY IS happy!”,*p=s; while(*p)
{ if(*p>=?A?&&*p<=?Z?)*p=*p-?A?+?a?; p++; } printf(“%s\\n”,s); }
A.TODAY IS happy! B.TODAY IS HAPPY! C.today is happy! D.today is HAPPY! 27.运行下面的程序,其输出结果是 。 main()
{ char ch[3][4]={ “123”,”456”,”789”}; int i;
for(i=0;i<3;i++)
printf(“%s”,ch[i]); }
A.123 B.1 C.123 D.123456789
16
4 456 7 789
28.下列程序运行后的输出结果是 。 main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++) t=t+b[i][b[j][j]];
printf(“%d\\n”,t);
}
A. 4 B. 3 C. 1 D. 9 29.下列程序运行后的输出结果是 。
int a, b; void fun()
{ a=100;b=200; } main()
{ int a=5, b=7; fun();
printf(“%d%d\\n”,a,b); }
A.100200 B.57 C. 200100 30.下列程序运行后的输出结果是 。 main()
{ int i, n=0;
for(i=2;i<5;i++) { do
{ if(i%3) continue; n++; }while(!i); n++; }
printf(“n=%d\\n”,n); }
A. n=5 B. n=2 C.n=3 31.下列程序运行后的输出结果是 。 void main()
{ int m=4,n=2,k; k=fun(m,n);
printf(“%d\\n”,k); k=fun(m,n);
printf(“%d\\n”,k); }
fun(int x,int y)
{ static int n=3,i=2;
17
D.75 D. n=4
i+=n+1; n=i+x+y; return (n); }
A. 12 B. 12 C. 12 D. 12 25 23 12 16 32.下列程序运行后的输出结果是 。 void sort(int a[ ],int n) { int i, j, t;
for(i=0;i for(j=i+2;j if(a[i] { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i<10;i++) printf(“%d,”,aa[i]); printf(“\\n”); } A.1,2,3,4,5,6,7,8,9,10, B.10,9,8,7,6,5,4,3,2,1, C.9,2,7,4,5,6,3,8,1,10, D.1,10,3,8,5,6,7,4,9,2, 第二卷 说明:(1)第二卷均为程序填空题,在阅读和理解程序的基础上,在第二卷答题卡是编号对应的 栏目中填入适当的字符、语句,以构成一个正确的C语言程序。 (2)每空栏3分,10个空栏共30分。 试题一:以下程序将两个数从小到大输出。 main() { float a,b, 1 ; temp scanf(“ 2 “,&a,&b); %f%f if(a>b) { temp=a; 3 ; a=b b=temp; } printf(“%f,%f” ,a,b); } 试题二:以下程序是打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立 方和等于该数本身。例如:153是一个”水仙花数”,因为153=1×1×1+5×5×5+3×3×3。 main() { int i, j, k, n; printf(“?water flower? number is:”); for(n=100; 4 ;n++) n<=999 18 { i=n/100; j= 5 ; n/10或n0/10 k=n; if( 6 )printf(“%-5d”,n); n==i*i*i+j*j*j+k*k*k } printf(“\\n”); } 试题三:以下程序通过写一函数求一个字符串的长度,在main函数中输入字符串,并输出其长 度。 main() { int len; 7 ; char str[100] printf(“please input a string::\\n”); scanf(“%s”,str); len= 8 ; length(str) printf(“the string has %d charcters.”,len); } length(char *p) { int n; n=0; while( 9 ) *p { 10 ; n++ p++; } return n; } 全国高校计算机联合考试(广西)二级C语言试题卷 2011年6月 第一卷 本卷共70分,其中第1~26题每题2分,第27~32题每题3分。 第一部分:基础知识 1. 构成C语言源程序的基本单位是 。 A.文本 B.语句 C.函数 D.过程 2. 以下叙述中不正确的是 。 A.在不同的函数中可以使用相同名字的变量 B.函数中的形式参数是局部变量 C. 在一个函数内定义的变量只在本函数范围内有效 D. 在一个函数内的复合语句中定义的变量在本函数范围内有效 19 3. 以下能正确定义一种新类型名的是 。 A.typedef (int*) plNT; B. typedef pINT=(int*); C.typedef pINT (int*); D. typedef (int*) = pINT; 4. 能正确表示逻辑关系”x小于等于10且x大于等于0”的C语言表达是 。 A.x<=10 and x>=0 B.x<=10 ‖ x>=0 C.x<=10 or x>=0 D.x<=10 && x>=0 5. 如果a=2,b=3,c=4,d=5.条件表达式a>b?a:c>d?d:c的值是 。 A.2 B.3 C.4 D.5 6. 判断字符串a和b是否相等,应当使用 。 A.if (a=b) B.if(strcmp(a,b)) C.if(a==b) D.if(strcpy(a,b)) 7. 下列选项中,合法的C语言关键字是 。 A. signed B.integer C.Float D.Char 8. 已知float x=2.5, y=4.7;,则表达式x+(int)(x+y)%2∕4的值是 。 A.2.500000 B.2.750000 C.3.500000 D.0.000000 9. 若有定义:int a[5];则a数组中首元素的地址可以表示为 。 A.&a B.a+1 C.a D.&a[1] 10. 程序段”for (k=2;k==0;) printf(“%d”,k--);”的循环次数是 次。 A.无限 B.2 C.1 D.0 11. C语言程序中简单变量做实参时,它和对应的形参之间的数据传递方式是 。 A.地址传递 B.值传递 C.有实参传给形参,再由形参传给实参 D.由用户指定传递方式 12. C语言程序中,main函数 。 A.可以在任何地方出现 B.必须在所有函数的前面 C.必须在所有函数的后面 D.以上说法都不对 13. 若有定义:int a[10],则对数组a元素的正确引用是 。 A. a[10] B.a[3,5] C,a(5) D.a[10-10] 14. 以下叙述中不正确的是 。 A.C语言中,顺序读写方式不适用于二进制文件 B.C语言中的文本文件以ASCII码形式存储数据 C.C语言中,随机读写方式不适用于文本文件 D.C语言中对二进制文件的访问速度比文本文件快 15.定义如下数组 int f[30]={12,20,8,10};则f定义了多少个元素 。 A.30 B.4 C. 12 D.20 16.C语言中逻辑真等价于 。 A.TRUE B.整数1 C.整数0 D.非零数据 17.在类型相同的指针变量运算中,不能使用的运算符是 。 A.+ B.- C. = D.== 18. 以下叙述正确的是 。 A. C语言程序中,程序中的变量可以在使用时再定义 B. C语言程序中大,小写字母是有区别的 C. C语言程序的每行只能写一条语句 D. 编译C程序时,可以发现注释行中的错误 20