广西计算机二级考试试题
- 格式:doc
- 大小:42.50 KB
- 文档页数:11
广西区等级考试二级C真题 第一卷(共70分)
第一部分:基础知识(20题,共40分) 1、一个C程序总是从( B )开始执行。 A、程序的第一条执行语句 B、主函数 C、子程序 D、主程序 2、在C语言中,int, char和short int三种类型变量所占用的内存大小是( C )。 A、均为2个字节 B、由用户自己定义 C、由所用机器的字长决定 D、是任意的 3、若有以下类型说明语句: char a; int b; float c; short int d; 则表达式(c*b+a)*d的结果类型是( B )。 A、char B、int C、double D、float 4、若有说明语句: int w=1,x=2,y=3,z=4; 则表达试w>x?w:z>y?z:x的值是( A ) A、4 B、3 C、2 D、1 5、设x,y 为int型变量,则执行下列语句后,y的值是( ) x=5; y=x++*x++; y=--y*--y; A、529 B、2401 C、1209 D、625 6、C语言中函数返回值的类型是( D ) A、return语句中的表达式类型 B、调用函数的类型 C、总是int型 D、定义函数时所指定的函数类型 7、凡是在函数中未指定存储类别的变量,其隐含的存储类别是( ) A、自动 B、静态 C、外部 D、寄存器 8、在源程序的一个文件中定义的全局变量的作用域是( D ) A、本文件的全部范围 B、该程序的全部范围 C、一个函数的范围 D、从定义该变量的位置开始至该文件的结束 9、以下不正确的描述是( A ) A、break语句只能用于循环语句和switch语句 B、在switch语句中,break语句的作用也可用continue语句来替代 C、在循环语句中,使用continue语句是为了结束本次循环,而不是终止循环的执行 D、在循环语句中,使用break语句是为了使流程跳出循环体,提前结束循环 10、若有宏定义 #define mod(x,y) x%y 则执行以下程序段后,输出为( B ) int z,a=15,b=100; z=mod(b,a); printf(“%d\n”,z++); A、11 B、10 C、6 D、宏定义不合法 11、若有说明语句: char s1[4]=”12”; char *ptr; 则执行下列语句后输出为( A ) ptr=s1; printf(“%c\n”,*(ptr+1)); A、字符‘2’ B、整数2 C、字符串“12” D、字符‘1’
[1] [2] [page_break] 第二部分:简单程序(12题,共30分) 21、运行下面的程序,其输出是( C ) main() { int a[]={2,4,6,8,10},y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y+=*(p+x); printf(“%d\n”,y);} A、17 B、18 C、19 D、20 22、运行下面的程序,其输出是( D ) main() {int i=1; while(i<19) if(i++%5!=3) continue; else printf(“%4d”,i); printf(“\n”); } A、2 5 7 9 11 13 15 17 B、3 6 9 12 15 18 C、4 9 14 19 D、3 8 13 17 19 23、运行下面的程序后,其正确的输出是( C ) main() {static int a[5]={7,2,8,4,5}; static int *pa[5]={&a[0], &a[1], &a[2], &a[3], &a[4]}; int **p,i; p=pa; for(i=0;i<5;i++) { printf(“%d\t”,**p+2); p++;} printf(“\n”); } A、9 4 10 6 7 B、7 2 8 4 5 C、7 4 10 4 5 D、2 3 4 5 6 24、下面程序运行后,其输出是( ) main() {int i; int n=2; while(++n<20) {i=1; while(++i {if(n%i==0) break; if(i==n-1) printf(“%d\t”,n); } printf(“\n”); } } A、2 5 7 9 13 17 19 B、3 5 7 11 13 17 19 C、2 3 5 7 11 13 17 19 D、3 5 7 11 13 17 20
[1] [page_break] 25、下面程序运行后,其输出是( ) main() {int i,j,k; int func(); i=1,j=2,k=3; printf(“%d\n”,func((j+=k,j++),(i,i++,++i))); } int func(int x,int y) {int z; z=x%y; return(z); } A、2 B、0 C、1 D、3 26、下面程序运行后,其输出是( ) int x,y; one() {int a,b; a=25,b=10; x=a-b;y=a+b; } main() {int a,b; a=9,b=5; x=a+b;y=a-b; one(); printf(“%d,%d\n”,x,y); } A、14,4 B、14,35 C、15,35 D、15,4 27、下面程序运行后,其输出是( ) #include void printd(int i); main() {int n=123; printd(n); } void printd(int n) {int i; if(n<0) {n=-n;putchar(‘-‘);} putchar(n%10+’0’); if((i=n/10)!=0) printd(i); } A、123 B、321 C、3 D、1 28、下面程序运行后,其输出是( ) struct sample{ int a,b; char *ch; }; void f1(struct sample parm); main() {struct sample arg; arg.a=1000;arg.b=100;arg.ch=”abcd”; f1(arg); } void f1(struct sample parm) { parm.a+=parm.b; parm.ch[2]=’x’; printf(“%d\n”,parm.a); printf(“%s\n”,parm.ch); } A、1000 B、1100 C、1100 D、100 Abcd abcd abxd abcd
[1] [page_break] 29、下面程序运行后,其输出是( ) main() {static char s[30]=”abcdefg”; static char t[]=”abcd”; int i,j; i=0; while(s[i]!=’\0’) i++; j=0; while(t[j]!=’\0’) {s[i+j]=t[j]; j++;} s[i+j]=’\0’; printf(“%s\n”,s); } A. abcdabcdefg B. abcdefg C. abcd D. abcdefgabcd
30、下面程序运行后,其输出是( ) main() { int a[4][4],i,j,k; for(i=0;i<4;i++) for(j=0;j<4;j++) a[i][j]=i+j; for(i=1;i<4;i++) for(j=i+1;j<4;j++) { k=a[i][j]; a[i][j]=a[j][i]; a[j][i]=k; } for(i=0;i<4;i++) {printf(“\n”); for(j=0;j<4;j++) printf(“%4d”,a[i][j]);} } A、0 1 2 3 B、0 1 2 3 C、0 1 2 3 D、3 2 1 0 1 2 3 4 1 2 5 4 1 2 4 2 4 3 2 1 2 3 4 5 2 3 4 5 2 3 5 3 5 4 3 2 3 4 5 6 3 4 5 6 3 4 6 4 6 5 4 3 31、下面程序运行后,其输出是( ) main() { void sub(); char s[10]=”a program”; int num=4; sub(s,0,num-1); sub(s,num,6); sub(s,0,6); printf(“%s\n”,s); } void sub(char *s,int num1,int num2) { char t,*p; p=s+num2;s=s+num1; while(s {t=*s; *s=*p; *p=t; s++; p--;} } A.program B.gram pro C.pro gram D.ogra pram 32、运行下面程序,从键盘输入四个字符xyz#,其输出是( ) #include "stdio.h" main() { void recursion(); recursion(); } void recursion() {char c; c=getchar(); putchar(c); if(c!=’#’) recursion(); putchar(c); } A、xyz# B、xyz#xyz# C、xyz##zyx D、xyzxyz