您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > C语言习题集(含答案)
1一、单选题:(1)在C语言提供的合法的关键字是()【单词拼写】A)swicthB)cherC)CaseD)default(2)在C语言中,合法的字符常量是()A)'\084'【不能有八】B)'\x43'C)'ab'D)\0(3)若有定义和语句:chars[10]:s=abcd;printf(%s\n,s);则结果是(以下u代表空格)()A)输出abcdB)输出aC)输出abcduuuuuD)编译不通过(4)若有定义和语句:int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf(%d,%d\n,*p,**pp);则输出结果是:()A)10,20B)10,10C)20,10D)20,20(5)若有以下定义和语句:intu=010,v=0x10,w=10;【这样确实可以,‘\010’效果一样】printf(%d,%d,%d\n,u,v,w);则输出结果是()A)8,16,10B)10,10,10C)8,8,10D)8,10,10(6)若有以下定义和语句charc1='b',c2='e';printf(%d,%c\n,c2-c1,c2-'a'+A);则输出结果是()A)2,MB)3,EC)2,E?D)输出项与对应的格式控制不一致,输出结果不确定(7)若有以下定义:2chars[20]=programming,*ps=s;则不能代表字符o的表达式是()【Ps是一维地址】A)ps+2B)s[2]C)ps[2]D)ps+=2,*ps(8)若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是()for(i=5;i;i--)for(j=0;j4;j++){...}A)20B)25C)24D)30(9)若有以下定义和语句:char*s1=12345,*s2=1234;printf(%d\n,strlen(strcpy(s1,s2)));则输出结果是()A)4B)5C)9D)10(10)若有以下定义和语句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是()A)*pB)a[10]C)*aD)a[p-a](11)下面程序的输出是()main(){char*s=121;intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-'0';continue;}b=b+s[k]-'0';a=a+s[k]-'0';}while(s[k+1]);printf(k=%da=%db=%d\n,k,a,b);A)k=3a=2b=3B)k=3a=3b=2C)k=2a=3b=2D)k=2a=2b=3(12)下面程序的输出是()3main(){unsigneda=32768;printf(a=%d\n,a);}运行结果:-32768A)a=-32768B)a=32767C)a=-32767D)a=-1(13)若有以下定义:floatx;inta,b;则正确的switch语句是()A)switch(x)B)switch(x){case1.0:printf(*\n);{case1,2:printf(*\n);case2.0:printf(**\n);case3:printf(**\n);}}C)switch(a+b)D)switch(a+b);{case1:printf(\n);{case1:printf(*\n);case1+2:printf(**\n);case2:printf(**\n);}}(14)以下程序输出的结果是()main(){charw[][10]={ABCD,EFGH,IJKL,MNOP},k;for(k=1;k3;k++)printf(%s\n,&w[k][k]);}A)ABCDB)ABCDFGHEFGKLIJMC)EFGD)FGHJKKLO4(15)若数组名作实参而指针变量作形参,函数调用实参传给形参的是()A.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址(16)若变量已正确定义并赋值,下面符合C语言语法的表达式是()A)a:=b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b(17)C语言中运算对象必须是整型的运算符是()A)%=B)/C)=D)〈=(18)若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()A)1B)2C)2.0D)2.5(19)若变量a、i已正确定义,且i已正确赋值,合法的语句是()A)a==1B)++i;C)a=a++=5;D)a=int(i);(20)若有以下程序段,intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是()A)0B)0.5C)1D)2(21)有如下程序main(){inty=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}运行该程序的输出结果是()A)34B)42C)43D)33(22)能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是()A)a=10ora=0B)a=0|a=10C)a=10&&a=0D)a=10||a=05(23)有如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}该程序的输出结果是()A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2(24)有如下程序main(){floatx=2.0,y;if(x0.0)y=0.0;elseif(x10.0)y=1.0/x;elsey=1.0;printf(“%f\n”,y);}该程序的输出结果是()A)0.000000B)0.250000C)0.500000D)1.000000(26)有如下程序main(){inti,sum;for(i=1;i=3;sum++)sum+=i;printf(“%d\n”,sum);}该程序的执行结果是()A)6B)3C)死循环D)06(27)有如下程序main(){intx=23;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是()A)321B)23C)不输出任何内容D)陷入死循环(28)有如下程序main(){intn=9;while(n6){n--;printf(“%d”,n);}}该程序段的输出结果是()A)987B)876C)8765D)9876(29)设有说明语句:chara=’\72’;则变量a()A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法(30)有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是()A)3B)4C)5D)有语法错(31)有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d\n”,r);}该程序的输出的结果是()A)12B)13C)14D)157(32)有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为()A)12B)11C)10D)编译出错(33)对于基类型相同的两个指针变量之间,不能进行的运算是()A)B)=C)+D)-(34)有如下程序longfib(intn){if(n2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf(“%d\n”,fib(3));}该程序的输出结果是()A)2B)4C)6D)8(35)在C语言中,函数的隐含存储类别是()A)autoB)staticC)externD)无存储类别(36)有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i=NUM;i++)printf(“%d\n”,i);}该程序中的for循环执行的次数是()A)5B)6C)7D)88(37)有以下函数charfun(char*p){returnp;}该函数的返回值是()A)无确切的值B)形参p中存放的地址值B)一个临时存储单元的地址D)形参p自身的地址值(38)有如下程序段inta=14,b=15,x;charc=’A’;x=(a&&b)&&(c’B’);执行该程序段后,x的值为()A)trueB)falseC)0D)1(39)有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()A)*p+9B)*(p+8)C)*p+=9D)p+8(40)若有以下的定义:intt[3][2];能正确表示t数组元素地址的表达式是()A)&t[3][2]B)t[3]C)t[1]D)t[2](41)有如下程序main(){charch[2][5]={“6937”,”8254”},*p[2];inti,j,s=0;for(i=0;i2;i++)p[i]=ch[i];for(i=0;i2;i++)for(j=0;p[i][j]’\0’;j+=2)s=10*s+p[i][j]-‘0’;printf(“%d\n”,s);}该程序的输出结果是()A)69825B)63825C)6385D)6938259(42)若有以下的定义:inta[]={1,2,3,4,5,6,7,88,9,10},*p=a;则值为3的表式是()A)p+=2,*(p++)B)p+=2,*++pC)p+=3,*p++D)p+=2,++*p(43)假定所有变量均已正确说明,下列程序段运行后x的值是()a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;A)34B)4C)35D)3(44)在以下一组运算符中,优先级最高的运算符是()A)=B)=C)%D)&&(45)若有以下定义和语句:intw[2][3],(*pw)[3];pw=w;则对w数组元素非法引用是()A)*(w[0]+2)=*w[0][2]B)*(pw+1)[2]C)pw[0][0]=*w[0][0]D)*(pw[1]+2)=*w[1][2](46)若有以下程序片段:charstr[]=ab\n\012\\\;printf(%d\n,strlen(str));上面程序片段的输出结果是()A)3B)4C)6D)12(47)函数调用strcat(strcpy(str1,str2),str3)的功能是()A)将串str1复制到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再复制到串str3之后C)将串str2复制到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3中10(48)以下对C语言函数的有关描述中,正确的是()A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B)C函数既可以嵌套定义又可以递归调用解释:C函数可以递归调用,但不允许嵌套定义C)函数必须有返回值,否则不能使用函数D)C程序中有调用关系的所有函数必须放在同一个源程序文件中(49)以下叙述中不正确的是()A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值.B)在C中,调用函数时,实在参数和对应形参在类型上只需赋值兼容.C)在C中,外部变量的隐含类别是自动存储类别.D)在C中,函数形参可以说明为register变量.(50)以下程序的输出结果是()#definesub1(chara,charb){charc;c=a;a=b;b=c;}#definesub2(char*a,charb){charc;c=*a;*a=b;b=c;}#definesub3(char*a,char*b){charc;c=*a;*a=*b;*b=
本文标题:C语言习题集(含答案)
链接地址:https://www.777doc.com/doc-2907839 .html