
2006年广西区计算机等级考试二级C语言笔试试愿及答案 第一卷(共70分) 第一部分:基础知识(20愿,共40分) 1,一个C程序总是从()开始执行. A。程序的第一条执行语句 C.子程序 B。主的数 D.主程序 2、在C语言中,int,char和shortint三种类型变量所占用的内存大小是(). A.均为2个字节 C,由所用机器的字长决定 B.由用户自己定义 D,是任意的 3、若有以下类型说明语句: chara;intb;floate:shortintd; 则表达式(c*知+a》d的结果类型是()。 A.char B.int C.double D.float 4、若有说明语句: int=1,X=2,y=3,z=4: 则表达试>x?:x>y?2:x的值是() A.4 B.3 C.2 D.1 5、设x,y为int型变量,则执行下列语句后,y的值是〔) x=5: y=x4*x+: y=-y*-y: A.529 8.2401 C.129 D.625 6、C语言中函数返回值的类型是() A.rtum语句中的表达式类型 B.洞用函数的类型
2006 年广西区计算机等级考试二级 C 语言笔试试题及答案 第一卷(共 70 分) 第一部分:基础知识(20 题,共 40 分) 1、一个 C 程序总是从()开始执行。 A.程序的第一条执行语句 B.主函数 C.子程序 D.主程序 2、在 C 语言中,int,char 和 shortint 三种类型变量所占用的内存大小是()。 A.均为 2 个字节 B.由用户自己定义 C.由所用机器的字长决定 D.是任意的 3、若有以下类型说明语句: chara;intb;floatc;shortintd; 则表达式(c*b+a)*d 的结果类型是()。 A.char B.int C.double D.float 4、若有说明语句: intw=1,x=2,y=3,z=4; 则表达试 w>x?w:z>y?z:x 的值是() 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 语言中函数返回值的类型是() A.return 语句中的表达式类型 B.调用函数的类型

C.总是int型 D,定义函数时所指定的函数类型 ?、凡是在函数中未指定存储类别的变量,其隐含的存储类圳是() A.自动 B.静态 C.外部 D.寄存器 8、在逐程序的一个文件中定义的全局变量的作用城是()》 A。本文件的全部范围 B.该程序的全部范围 C。一个函数的范围D。从定义该变量的位置开始至该文件的结束 9、以下不正确的描述是()》 A.bk语句只能用于福环语句和switch语句 B.在switch语句中,brak语句的作用也可用continue语句来替代 C.在循环语句中,使用can1iue语句是为了结束本次循环,而不是终止循环的执行 D.在循环语句中,使用break语句是为了使流程跳出循环体,提前结束循环 I0、若有宏定义#definenod(x,y)例 则执行以下程序段后,输出为() intz,a=15,b=100; z=odb,a》: printf(“d\n",zt+): A.11 C.8 法 B.10 D.宏定义不合 11、若有说明语句:chars1[4]=”12”;char*ptr;测执行下列话句后输出为() ptr=s1: printf(“cn,*(ptr+l)》: A.字符2 C.字符半 D.字符‘1' B.整数2 “12” 12、若有以下语句 1ntx0=2.4,6,8.10.12,和tr:
C.总是 int 型 D.定义函数时所指定的函数类型 7、凡是在函数中未指定存储类别的变量,其隐含的存储类别是() A.自动 B.静态 C.外部 D.寄存器 8、在源程序的一个文件中定义的全局变量的作用域是() A.本文件的全部范围 B.该程序的全部范围 C.一个函数的范围 D.从定义该变量的位置开始至该文件的结束 9、以下不正确的描述是() A.break 语句只能用于循环语句和 switch 语句 B.在 switch 语句中,break 语句的作用也可用 continue 语句来替代 C.在循环语句中,使用 continue 语句是为了结束本次循环,而不是终止循环的执行 D.在循环语句中,使用 break 语句是为了使流程跳出循环体,提前结束循环 10、若有宏定义#definemod(x,y)x%y 则执行以下程序段后,输出为() intz,a=15,b=100; z=mod(b,a); printf(“%d\n”,z++); A.11 B.10 C.6 D.宏定义不合 法 11、若有说明语句:chars1[4]=”12”;char*ptr;则执行下列语句后输出为() ptr=s1; printf(“%c\n”,*(ptr+1)); A.字符‘2’ B.整数 2 C .字符串 “12” D.字符‘1’ 12、若有以下语句 intx[]={2,4,6,8,10,12},*ptr;

ptr=x; 则对数组元素的正确吲用为() A.x B.x[6] C.(-ptr) D.*(t+ptr】 13,若有说明语句:1nti,x[3][4]:则不能实现将x[1][1]的值赋给变量1的语句是() A,i=*((x+1 8,i-*(体(x+1 C,i-x[1][1] 1) )+10 2》 D.i=*(x[1]+ 14、若己定义了如下的共用体类型变量x,则×所占用的字节数(在16位℃机条件 下)为() uniondata(inti: charch: doublef; }x: A.7 8.11 C.8 D.10 15,如下说明语句: umA(A0=1,A1=3,A2,A3,A4,A5}: enunAB: 执行:-3: printf(“d\n,助: 输出的是() A.5 B.3 C.2 D.编译时出错 16、Wh1e(!x)巾的条件表达式(x)与下面条件()等价 A.x=0 B.x=1 C.x=0l川x= D.x!=0 17,有以下说明语句,则对结构体变量s的成员um的不正确引用是() structstudentlintnum: intage:
ptr=x; 则对数组元素的正确引用为() A.x B.x[6] C.*(--ptr) D.*(++ptr) 13、若有说明语句:inti,x[3][4];则不能实现将 x[1][1]的值赋给变量 i 的语句是() A.i=*(*(x+1 )+1) B.i=*(*(x+1 )) C.i=x[1][1] D.i=*(x[1]+ 1) 14、若已定义了如下的共用体类型变量 x,则 x 所占用的字节数(在 16 位 PC 机条件 下)为() uniondata{inti; charch; doublef; }x; A.7 B.11 C.8 D.10 15、如下说明语句: enumA{A0=1,A1=3,A2,A3,A4,A5}; enumAB; 执行:B=A3; printf(“%d\n”,B); 输出的是() A.5 B.3 C.2 D.编译时出错 16、while(!x)中的条件表达式(!x)与下面条件()等价。 A.x==0 B.x==1 C.x==0||x==1 D.x!=0 17、有以下说明语句,则对结构体变量 s 的成员 num 的不正确引用是() structstudent{intnum; intage;

}8p: A.s.nun B.*知.nm C.p->nun D.(*p》.um 18、说明语句int(*p)[10]定义了p是() A.拍针数组 C,返回值为整型的函数指针 B.指向数组的指针 D.指向整型数的指针 19、下面对文件操作函数描述正确全面的是() intn read=fread(intfd,char*ouf,intn): A从文件fd中读n个字节存做在buf B,从文件fd中读n个整数存放在buf 中 中 C从文件fd中读n个字节存放在b加uf中,并将n赋给n_read D.从文件「d中读n个字节存放在b加「中,并将实际读入的字节数和出带代码赋给 n_read 20、C语言的编译系统对宏命令是() A.在程序运行时进行代换处理的 B.在程序连接时进行处理的 C.与程序中其他C语句同时进行编译的 D.在对源程序其他成分正式编译之前进行处理的 第二部分:简单程序(12题,共30分) 21、运行下面的程序,其输出是(》 min( {inta[]=2,4.6,8,10,=l,x,0 p-&a[1]: far(x-0:x(3:x+】 y+米n+x): printf(“sd\n,y):
}s,*p; A.s.num B.*p.num C.p->num D.(*p).num 18、说明语句 int(*p)[10]定义了 p 是() A.指针数组 B.指向数组的指针 C.返回值为整型的函数指针 D.指向整型数的指针 19、下面对文件操作函数描述正确全面的是() intn_read=fread(intfd,char*buf,intn); A.从文件 fd 中读 n 个字节存放在 buf 中 B.从文件 fd 中读 n 个整数存放在 buf 中 C.从文件 fd 中读 n 个字节存放在 buf 中,并将 n 赋给 n_read D.从文件 fd 中读 n 个字节存放在 buf 中,并将实际读入的字节数和出错代码赋给 n_read 20、C 语言的编译系统对宏命令是() A.在程序运行时进行代换处理的 B.在程序连接时进行处理的 C.与程序中其他 C 语句同时进行编译的 D.在对源程序其他成分正式编译之前进行处理的 第二部分:简单程序(12 题,共 30 分) 21、运行下面的程序,其输出是() main() {inta[]={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、运行下面的程序,其输出是() mnin( (inti=1; while(i<19) if(i+5!-3)continue: elseprintf(“M",i): printf(“n"): } A.257911131517B.389121518 C.491419D.38131719 23、运行下面的程序后。其正确的拾出是() nain( (staticinta[5]=(7,2,8,4,5) staticint"pn[5]-(8a[o],&a[1].&a[2],&n[3],&a[4]]; int*p,i: p=pa: far(i=0:iK5:1+) pr1ntf(“%d\t”,*p+2): p++:h printf(“n"): } A.941067 B.72815 C.741015 D.23456 24,下面程序运行后,其输出是()
} A.17 B.18 C.19 D.20 22、运行下面的程序,其输出是() main() {inti=1; while(i<19) if(i++%5!=3)continue; elseprintf(“M”,i); printf(“\n”); } A.257911131517B.369121518 C.491419D.38131719 23、运行下面的程序后,其正确的输出是() main() {staticinta[5]={7,2,8,4,5}; staticint*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.941067 B.72845 C.741045 D.23456 24、下面程序运行后,其输出是()

amin( inti: intn-2: while(++n<20) i-1: while(++i<n) (if(n%i==0)break: if(i=t-l)printf(“t”,n: printf(“n"): } A.2579131719 C,235711131719 B.35711131719 D.35711131720 25、下面程序运行后,其输出是() main( (inti,j.k:intfunc( i=1.j=2,k=3: printf(“dn”,func(jt=k,jtt),(i,it,*+i): } intfunc(intx,inty) (intz: z=xy: return《z):
main() {inti; intn=2; while(++n<20) {i=1; while(++i<n) {if(n%i==0)break; if(i==n-1)printf(“%d\t”,n); } printf(“\n”); } } A.2579131719 B.35711131719 C.235711131719 D.35711131720 25、下面程序运行后,其输出是() main() {inti,j,k;intfunc(); i=1,j=2,k=3; printf(“%d\n”,func((j+=k,j++),(i,i++,++i))); } intfunc(intx,inty) {intz; z=x%y; return(z);

A.2 B.0 C.1 D.3 2G、下面程序运行后,其输出是() intx,yi one( inta,b; a=25,b=10: x=a b:y=atb: main( inta,b: 4=9.=5: x=a+b:y=a-b: one(: printf(“d,dn”,x,y): A.14,4 B.14,35 C.15,35 D.15,4 27,下面程序运行后,其输出是() #include vaidprintd(inti); nain() (intn=123; printd(n); voidprintd(intn)
} A.2 B.0 C.1 D.3 26、下面程序运行后,其输出是() intx,y; one() {inta,b; a=25,b=10; x=a-b;y=a+b; } main() {inta,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 voidprintd(inti); main() {intn=123; printd(n); } voidprintd(intn)

(inti: 1f(n<0) {a=-n;putchar(-):】 p阳tchar(ns10+'0'): if((i=n/10)I=0) printd(i): A.123 B.321 C.3 D.1 28、下面程序运行后,其输出是() structsample (inta.b: char*ch: : voidfl(structsampleparn): nain( (structsamplearg: r8.-100:arg.h-10阅0:rg.ch-”ahcd”: fl (arg): voidf1(structsampleparn) parm a+=parm b: parn.ch[2]='x' printf(“wdn”,parl: printf("s'\n",parm.ch): } A.1000 B.1100 C.1100 D.100
{inti; 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、下面程序运行后,其输出是() structsample{inta,b; char*ch; }; voidf1(structsampleparm); main() {structsamplearg; arg.a=1000;arg.b=100;arg.ch=”abcd”; f1(arg); } voidf1(structsampleparm) {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

ahc:dabcdabx dabed 29、下面程序运行后,其输出是() nain( (staticchars[30]="abcdefg": staticchart[]="abcd inti,j: 1=0: whi1e(s[i]='0') i+: j0: hilc(t[]-'0') (s[i+j]t[j]: jtt: s[i+i]='0': printf(“ssln,s): A.abedabedef gB.ahcdefgC.abed D.ahcdefgahed 30、下面程序运行后,其输出是() nain( {inta[4[],i,,k: for(i=0:i<4:i+) for(j=0:j<4:j++) a[i][j]=i+j: for(i=1:i<4;i)
abcdabcdabxdabcd 29、下面程序运行后,其输出是() main() {staticchars[30]=”abcdefg”; staticchart[]=”abcd”; inti,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.abcdabcdef gB.abcdefgC.abcd D.abcdefgabcd 30、下面程序运行后,其输出是() main() {inta[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《irit1:i4:itty (k=o[i][j]: a[J[J]-o[J][]: a[jJti]-k: for(i=0:1<4:i++) (print(-n”) for(j=0:j<4:j++) printf(“d,af]》: 4.01230.0123C.01230.3210 1234125412424321 23452345255354832 3456345634546543 1、下面程运行后,共输出是) min() [voidsub(: chars[10j-”aprogran”::intou4 suh(s.0.nur-1)sub(s.mum.6)sub (s,0.6) printr(“snm,s》: voidsub(charts,intnunl,intnun2) (chart, p-stnu2:s-stmunl while(s<p)
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(“%d”,a[i][j]);} } A.0123B.0123C.0123D.3210 1234125412424321 2345234523535432 3456345634646543 31、下面程序运行后,其输出是() main() {voidsub(); chars[10]=”aprogram”;intnum=4; sub(s,0,num-1);sub(s,num,6);sub(s,0,6); printf(“%s\n”,s); } voidsub(char*s,intnum1,intnum2) {chart,*p; p=s+num2;s=s+num1; while(s<p)