2023年历年全国计算机二级C语言题库.pdf
5 0道 C语言知识题L以下叙述中对的的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入Q用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出2.下列可用于C语言用户标记符的一组是A)voi d,de f ine,WO R D B)a3_ 3,_123,CarC)F or,-abc,IF Cas e D)2a,DO,siz e of3.以下选项中可作为C语言合法常量的是A)-8 0 B)-0 80 C)-8el.0 D)-8 0.0 e4.若有语句:ch a r*1 ine5;,以下叙述中对的的是A)定义line是一个数组,每个数组元素是一个基类型为ch a r为指针变量B)定义I i n e是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义li n e是一个指向字符型函数的指针5 .以下定义语句中对的的是A)i n t a=b=0;B)c ha r A=6 5+1,b=b,;C)f 1 oat a=l,*b=&a,*c=&b;D)d o uble a=0 0;b=l.l;6.有以下程序段ch a r ch;int k;ch=a;k=12;p r intf(%c,%d,ch,ch,k);prin t f(k=%d n,k);己知字符a 的ASC I I 码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,9 7,k=127.有以下程序mai n()i n t i,s=1;fo r(i=1;i =2&c=2&c=2&cb)a=b;c=a;if(c!=a)c=b;p r intf(%d,%d/%dn/azb,c);其输出结果是A)程序段有语法错 6)3,5,3 C)3,5,5 D)3,5,710.有以下程序#i nclude main()i nt x=1 ,y=0,a 0,b Ojsw itc h (x)case 1:sw itch (y)c a se 0:a+;b r e ak;cas e l:b+;b r e ak;cas e 2:a+;b+;break;cas e 3:a+;b+;)p r i ntf(Ha=%d,b=%d n,a,b);程序的运营结果是A)a=l,b=0 B)a=2z b=2 C)a l,b=lD)a=2,b=l11.下列程序的输出结果是#in c lude stdi o.hmain()in t i,a=O,b=0;f or(i=l;i 1 0;i+)i f (i%2=0)a+;c o nt i n u e;b+;p ri n tf(a=%d,b=%d ,a,b);A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5已知#i nt t=0;wh i l e (t=l)则以下叙述对的的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对1 2.下面程序的输出结果是main()in t a10=1,2,3,4 ,5,6,7,8,9,10,*p=a;print f (%dn,*(p+2);)A)3B)4C)1D)213.以下错误的定义语句是A)int x3=0,1,1,2,3);B)int x43=1,2,3,1,2,3,1,2,3,1,2,3);C)int x 口=1,2,3,1,2,3,1,2,3 ,1,2,3 ;D)in t x 3=1,2,3,4);14.有以下程序vo i d ss(char*s,c har t)whil e(*s)if(*s=t)*s=t-aW;s+;main()cha r s tri 100=abcddf e fdbd,c=rd/;s s(str 1 ,c);pr i ntf(%s n,st r 1);程序运营后的输出结果是A)ABCDDEFEDB D B)ab c DD f efDbD C)abc AAf e fA b AD)Ab c d d f e f dbd15.有如下程序main()ch a r ch 2 5=6937 M/8 25 4 z*p 2;i nt i J,s=0;f o r(i=0;i 2;i+)p L i=c h i;for(i=0;i0;j+=2)s=1 0*s+p i jprin t f(%dn,s);该程序的输出结果是A)69 8 25 B)63825 C)6385 D)6 9 38251 6.有定义语句:char s 1 0 若要从终端给s输入5个字符,错误的输入语句是A)gets(&s0);B)s ca n f(%s,s+1);C)gets(s);D)scanf(%s,s EU);1 7.以下叙述中错误的是A)在程序中凡是以 年开始的语句行都是预解决命令行B)预解决命令行的最后不能以分号表达结束C)#define M AX是合法的宏定义命令行D)C程序对预解决命令行的解决是在程序执行的过程中进行的1 8.设有以下说明语句typedef s t ruct in t n;c h ar ch 8;P E R;则下面叙述中对的的是A)PER是结构体变量名 B)PER是结构体类型名C)typede f stru c t是结构体类型D)stru c t是结构体类型名19.以下叙述中错误的是A)gets函数用于从终端读入字符串B)g e tc h a r函数用于从磁盘文献读入字符C)f puts函数用于把字符串输出到文献D)fw rite函数用于以二进制形式输出数据到文献20.以下能对的定义一维数组的选项是A)in t a5=0,1,2,3,4,5 ;B)cha ra=O,i,273745,0;C)char a=Din t a 5=0123;2 1.有以下程序#i n c ludemain()c h a r p=a b,c,q 10=H,b,c;p rin t f(%d%dn,str 1 e n(p),s t rl e n(q);以下叙述中对的的是A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B)由于p数组中没有字符串结束符,长度不能拟定,但q数组中字符串长度为3C)由于q数组中没有字符串结束符,长度不能拟定,但p数组中字符串长度为3D)由于p和q数组中都没有字符串结束符,故长度都不能拟定22.有以下程序#include#i n c 1 u d e v o id fu n (ch a r*s,i n t n)char*t;int i,j;f or(i=0;i n-l;i+)f or(j=i+l;j strle n(s j)t=s Ei;si:sj;sj=t;)mai n()ch a r*ss=b c c ,bbcc,x y ,aaaa c c,aab c c;fun(s s,5);p r int f(%s,%sn,s s 0,s s 4);程序的运营结果是A)x y,aaaa c c B)aaaa c c,xy C)b cc,aa b cc D)aabc c,b c c23.有以下程序#include i n t f(in t x)i nt y;if(x=0|x=l)r e t u rn(3);y=x*xf(x-2);r et u rn y;)main()i nt z;z=f(3);p r i ntf(%dn,z);)程序的运营结果是A)0B)9 C)6D)824.下面程序段的运营结果是c har s t r =ABC,*p=s tr;prin t f(%dn,*(p+3);A)6 7 B)0 C)字符C的地址 D)字符C25.若有以下定义:struct li n k i n t d a ta;s tr u c t li n k*n e x t;a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:2 6.指针p指向变量a,q指向变量c。则可以把c插入到a和b之间并形成新的链表的语句组是:A)a,next=c;c.n e x t=b;B)p.next=q;q.next=p.nex t;C)p-n e x t=&c;q n e xt=p-nex t;D)(*p).next=q;(*q).n ext=&b;2 7.对于下述程序,在方式串分别采用w t 和 wb 运营时,两次生成的文献TEST的长度分别是#i ncludevo i d main()F I LE*fp=fo p e n (TEST,);fpu t c(7V,f p);fputc(,n,f p);f putc(B,fp);fputc(nf p);fpu t c(C,fp);伺 o se(f p);A)7字节、7字节 B)7字节、5字节 C)5字节、7字节 D)5字节、5字节28.变量a中的数据用二进制表达的形式是0 1 0111 0 1,变量b中的数据用二进制表达的形式是11110000。若规定将a的高4位取反,低4位不变,所要执行的运算是A)a b B)a I b C)a&b D)a 429.下面的程序段运营后,输出结果是inti,j,x=O;s t a t ic in t a 8 8;f o r(i=0;i3;i+)f or(j=0;j3;j+)a Li j=2*i+j;fo r(i=0;i=A&kk=A|kkV =Z)C)(k k+3 2)=a&(kk+3 2)=Z D)is a lpha(k k)&(kk=2&c=2&c=2&c =6)&(c%2!=l)3 9.若有条件表达式(exp)?a+:b-则以下表达式中能完全等价于表达式(exp)的是A)(exp=O)B)(exp!=0)C)(e x p=1)D)(exp!=1)40.以下不对的的定义语句是A)doub 1 ex 5=2.0,4.0,6.0,8.0,1 0.0;B)i nt y 5=0,1,3,5,7,9;C)cha r c n =T,2 -5;D)char c2 L=x10;xa,x8;41.下列程序执行后的输出结果是mai n()in t a33,*p,i;p=&a00;f o r(i=1;i 2 E!14 7.有定义语句:c har s 1 0;,若要从终端给s 输入5个字符,错误的输入语句是A)gets(&sO);B)s c anf(%s ,s+l);C)g e t s(s);D)scanf(%s,sl);4 8.有以下程序#includ e#de f ine N 5#de f ine M N+1#d e fin e f(x)(x*M)mai n()in t i 1,i 2;l=f(2);i2=f(1+1);pr i ntf(%d%dn ,il,i2);)程序的运营结果是A)12 12 B)ll 7 C)11 11 D)12 749.若有以下说明和定义uni o n d t i nt a;char b;double c;d a ta;以下叙述中错误的是A)da t a的每个成员起始地址都相同B)变量d a ta所占内存字节数与成员c所占字节数相等C)程序段:data.a=5;pri n tf(%fn,d a t a.c);输出结果为 5.0000 0 0D)data可以作为函数的实参5 0.有以下程序#includemain()FILE*fp;int k,n,a6=l,2,3,4,5,6;fp=f open(d2.d at,w);f p r i nt f(fp,%d%d%d n”,a 0 ,al,a2);fpr i ntf(fp/%d%d%d nn,a 3,a4,a5);f c 1 ose(f p);fp=fo p e n(M d2.da t/r);fscanf(f p,%d%d”,&k,&n);pr i ntf(%d%dn”,k,n);f c lose(fp);)程序运营后的输出结果是A)1 2 B)1 4 C)1 2 3 4 D)123 456答案12345678910cBAABDDBBD11121314151617181 920BBAcBcDDBB2 1222324252627282 930BAAcBDBAcA3 13 23334353637383940DBBAADBBBB41424344454647484950BBcAcDDBDD