1、国家二级 C 语言机试(函数和数组)模拟试卷 10(无答案)一、选择题1 有以下程序#includestdioh main()int a=10,20,30,40),*p=a,i;for(i=0;i =3;i+)ai=*p;p+;pfintf(“dn“,a2);程序运行后的输出结果是(A)20(B) 30(C) 10(D)402 若有以下程序main()int i,j=0;char a=“How are you!“;for(i=0;ai;i+)if(ai!=)aj+=ai;aj=0;printf(“sn“,a);则程序的输出结果是(A)Howareyou(B) Hay!(C) Howareyou
2、!(D)How are you!3 若有以下程序#includestdiohmain()int i,j=0;char a=“How are you!“,b10 ;for(i=0;ai;i+)if(ai=)bj+=ai+1;bj=0;printf(“sn“,b);则程序的输出结果是(A)Howareyou(B) Hay!(C) Howareyou!(D)ay4 若有以下程序#includechar*a=“you“,b=“welcome#you#to#China!“ ;main()int i,j=0;char*p;for(i=0;bi!=0 ;i+) if(*a=bi)P=&bi;for(j=0;
3、aj!=0;j+)if(aj!=*p)break;p+;if(aj=0)break; printf(“sn“,p);则程序的输出结果是(A)#you#to#China!(B) me#you#to#China!(C) #China!(D)#to#China!5 以下能正确定义二维数组是(A)int a3 ;(B) int a3=2*3;(C) int a3=;(D)int a23=1),2),3,4);6 若有以下说明和语句int c45, (*p)5;p=c;能够正确引用 c 数组元素的是(A)p+1(B) *(p+3)(C) *(p+1)+3(D)*(p0+2)7 若有定义语句:int k2
4、3 ,*pk3;,则以下语句中正确的是(A)pk=k;(B) pk0=k12;(C) pk=k0;(D)pk1=k ;8 若有定义语句:int a36;,按在内存中的存放顺序,a 数组的第 10 个元素是(A)a04(B) a13(C) a03(D)a149 若有定义语句:int a23,*p3 ;,则以下语句中正确的是(A)p=a ;(B) p0=a;(C) p0=a12;(D)p1=a;10 若有定义:int a23 ;,以下选项中对 a 数组元素正确引用的是(A)a2!1(B) a23(C) a03(D)a12!111 以下数组定义中错误的是(A)int x3=0 ;(B) int x2
5、3=1,2,3,4),5,6) ;(C) int x3=1,2,3 ,4,5,6;(D)int x23=1,2, 3,4,5,6 ;12 有以下程序#includestdioh#define N 4void fun(int aN,int b) int i;for(i=0;iN ;i+)bi=aiiaiN1i;void main()int xNN=1,2,3,4 ,5,6,7,8,9,10,11,12,13,14 ,15 ,16,yN,i;fun(x,y);for(i=0;i N;i+)printf(“d,“ ,yi) ;printf(“n“):程序运行后的输出结果是(A)12,3,0,0,(B
6、) 3,1,1,3,(C) 0,1,2,3,(D)3,3,3,3,13 有以下程序#includemain()int b33=0,1,2,0,1,2,0,1,2,i ,j,t=1;for(i=0;i =i;j+)t+=bibji;printf(“dn“,t) ;程序运行后的输出结果是(A)3(B) 1(C) 9(D)414 以下定义数组的语句中错误的是(A)int num3=1,2,3,4,5,6;(B) int num=1,2,3,4,5,6;(C) int num4=1,2,3,4,5,6;(D)int num24=1,2 ,3,4),5,6);15 有下列程序:main()int x32
7、=0,i;for(i=0;i 3;i+)scanf(“d“,xi);printf(“3d3d3dn“ ,x00 ,x01 ,x10);若运行时输入:2 4 6CR,则输出结果为(A)2 0 0(B) 2 4 0(C) 2 0 4(D)2 4 616 有以下程序#includestdiohint fun(int(*s)4,int n,int k) int m,i;m=s0k;for(i=1;in;i+)if(sikm)m=sik; return m;main()int a44=1,2,3,4),11,12,13,14,21,22,23,24,31,32 ,33 ,34;printf(“dn“,f
8、un(a,4,0);程序的运行结果是(A)31(B) 34(C) 4(D)3217 有下列程序:main()int a44=1,4,3,2,8 ,6,5,7,3,7,2,5 ,4,8,6,1),i,j,k,t;for(i=0;i 4;i+)for(j=0;j 3;j+)for(k=j+1; k4;k+)if(ajiaki)t=aji;aji=aki;aki=t;*按列排序*for(i=0;i 4;i+)printf(“d,“,aii);程序运行后的输出结果是(A)8,7,3,1,(B) 1,6,5,7,(C) 4,7,5,2,(D)1,6,2,1,18 有下列程序:main()int i,t3
9、=9,8,7,6,5,4,3,2,1;for(i=0;i 3;i+)printf(“d“,t2 ii);程序执行后的输出结果是(A)7 5 3(B) 3 6 9(C) 7 5 1(D)3 5 719 有下列程序:main()int a44=1,4,3,2,8 ,6,5,7),3,7,2,5,4 ,8,6,1 ,i,k,t;for(i=0;i3;i+)for(k=i+1; k4;k+)if(aiiakk)t=aii;aii=akk;akk=t ;for(i=0;i4;i+)printf(“d,“ ,a0i);程序运行后的输出结果是(A)6,2,1,1,(B) ,1,1,2,6,(C) 2,3,4
10、,6,(D)6,4,3,2,20 若有定义: int w35;则以下不能正确表示该数组元素的表达式是(A)*(*w+3)(B) *(*(w+1)(C) *(w+1)4(D)*( w00+1)21 以下错误的定义语句是(A)int x43=1 ,2, 3,1,2,3,1 ,2, 3,1,2,3;(B) int x3=0),1,1,2,3;(C) int x3=1,2,3 ,4;(D)int x4=1 ,2, 3,1,2,3),1,2, 3,1,2,3;22 以下叙述中正确的是(A)语句 int a43=1,2,4,5 ;是错误的初始化形式(B)语句 int a3=1, 2,4,5 ;是错误的初始
11、化形式(C)在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵(D)语句 int a43=1,2,4,5;是错误的初始化形式23 设有定义: int x23 ;则以下关于二维数组 x 的叙述错误的是(A)数组 x 可以看作是由 x0和 x1两个元素组成的一维数组(B)可以用 x0=0;的形式为数组所有元素赋初值 0(C)元素 x0可看作是由 3 个整型元素组成的一维数组(D)x0和 x1是数组名,分别代表一个地址常量24 有以下程序#includestdioh#define N 3void fun(int aN,int b) main() int i,j; int xNN=1 ,2,3,
12、4 ,5,6,7,8,9),yN,i ;for(i=0;i N;i+) fun(x,y) ;bi=ai0; for(i=0;iN;i+)printf(“d,“,yi);for(j=1,j N ;j+) printf(“n“);if(biaij) bi=aij; (A)1,3,5,(B) 2,4,8,(C) 3,5,7(D)3,6,9,25 以下语句中存在语法错误的是(A)char ss20=“right?“;(B) char*ss6;ss1=“right?“;(C) char*ss=“right?“;(D)char ss620;ss1=“right?“;26 下面是有关 C 语言字符数组的描述,其中错误的是(A)不可以用赋值语句给字符数组名赋字符串(B)可以用输入语句把字符串整体输入给字符数组(C)字符数组中的内容不一定是字符串(D)字符数组只能存放字符串27 以下选项中有语法错误的是(A)char str310;str1=“guest“;(B) char str10=“guest“;(C) char*str3;str1=“guest“;(D)char*str=“guest“ ;