全国高校计算机联合考试(广西)二级C语言试
题卷
2011年12月24日 闭卷考试 考试时间:
120分钟
第一卷
本卷共70分,其中第1~26题每题2分,第27~32题每题3分。
1.main()函数的特征是 。
A.可独立运行的函数 B.必不可少的函数
C.最先执行的函数 D.具有前述三种特征的函数 2. 下面标识符中,非法的C语言标识符是 。
A. _char B.Char C.a#b D.alb 3.下面常量中,非法的C语言常量是 。
A.?tt? B.10L C.0.01 D.0x10 4.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是 。
A.-32768~32767 B.0~255 C.0~65535 D.-256~256 5.若w、x、y均为int型变量,则执行下列语句后,y的值是 。 w=5;x=w++;y=x+w--;
A.9 B.11 C.10 D.12
6.若之前有以下说明语句,则表达式c*x+z+y的结果类型是 。 char c; int x; float y, z;
A.double B.int C.char D.float 7.若y为int型变量,则执行以下语句后,y的值是 。
y=8;y+=y-=y*y;
A.64 B.-56 C.-112 D.-48
8.若m、a、b、c、d均为int型变量,则执行下列语句后的m值是 。
a=1;b=2;c=3;d=4;
m=a>b?a:c A.1 B.4 C. 2 D.3 9.若a、b为int型变量,则执行下列语句后的b值是 。 1 a=15;b=15; do { b-=a; a++; }while(b--<0); A.0 B.-15 C.-16 D.-1 10.若有以下语句,则下面选项 是正确的描述。 static char x[ ]=“china”; static char y[ ]={?c?,?h?,?i?,?n??a?}; A.x数组与y数组长度相同 B.x数组长度大于y数组长度 C.x数组长度小于y数组长度 D.x数组和y数组的赋值是非法的 11.while(!x)中的条件表达式(!x)与下面条件 等价。 A.==0 B.x==1 C.x==0||x==1 D.x!=0 12.若已定义m为int型变量,则 是对指针变量p的正确说明和初始化。 A.int p=&m; B.int *p=m; C.int *p=*m; D.int *p=&m; 13.若用数组名作为函数调用的实参,则实际上传送给行参的是 。 A.数组的全部元素值 B.数组的首地址 C.数组的第一个元素值 D.数组所含元素数目 14.若有以下语句,再执行语句j=!c&&i++;则变量i和j的值分别是 。 char c=? x?; int i =1, j; A.1,1 B.2,0 C.2,1 D.1,0 15.若之前有如下宏定义,则执行系列语句:z=4*(N+y(5));后的结果是 。 #define N 2 #define y(n) ((N=1)﹡n A.z值为68 B.z值为180 C.z值为60 D.语句有错误 16.在C语言中函数返回值的类型缺省时,函数默认为 。 A.returu语句中的表达式类型 B.调用该函数的主函数类型 C.int类型 D.void类型 17.若有以下语句,则对数组元素正确引用的是 。 int a[ ]={2,4,6,8,10,12},*ptr;ptr=a; A.a B.a[6] C.*ptr D.ptr 18.有以下说明和p=&studl;语句,对结构变量中成员age的正确引用的 2 是 。 struct student { int age; int sex; }stud1,*p; A.p->age B.student.age C.*p.age D.student.stud1.age 19.语句float *p();说明了 。 A.p是指向一维数组的指针变量 B.p是一函数名,该函数的返回值是指向float类型数据的指针 C.p是指向函数的指针,该函数返回值的类型是float D.p是指向float类型数据的指针变量 20.若要用fopen函数建一个新的二进制文件,该文件要即能读也能写,则文件方式字符串应该为 。 A.“ab+” B.“wb+” C.“rb+” D.“ab” 第二部分:简单程序 21.以下程序的输出结果是 。 main() { int n=4; while(n>0) {n--;printf(“%d”,n);} } A.2 0 B.3 2 1 C.3 2 1 0 D.2 1 0 22.下列程序运行后的输出结果是 。 main() { int i=1; while(i<=7) if(++i%3!=2) continue; else printf(“%d”,i); printf(“\\n”); } A.158 B.26 C.125 D.258 23.两次运行下面的程序,如果从键盘是分别输入6和4,则输出结果分别是 。 main() { int x; scanf(“%d”,&x); if(x>5) printf(“%d”,++x); 3 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(“%\\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]); 4 } A.123 B.1 C.123 D.123456789 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 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 5 D. 9 D.75 D. n=4