您好,欢迎访问三七文档
1C语言复习题一、选择题:1.以下不是C语言的特点的是(B)A.C语言简洁、紧凑B.能够编制出功能复杂的程序C.C语言可以直接对硬件进行操作D.C语言移植性好2.以下不正确的C语言标识符是(D)。A.ABCB.abcC.a_bcD.ab.c3.一个c程序的执行是从(A).A.main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束4.以下不正确的语句(设有intp,q)是(D)。A.P*=3;B.p/=q;C.p十=3;D.p&&=q5.下列四组选项中,均不是C语言关键字的选项是(A).A.defineB.getcC.includeD.whileifcharsanfgotypeprintfcasepow6.下面四个选项中,均是合法整形常量的选项是(A).A.160B.-0xcdfC.-01D.-0x48a-0xffff01a986,0122e50110xe06680x7.下面四个选项中,均是不合法浮点数的选项是(B).A.160.B.123C.-.18D.-e30.122e4.2123e40.234e3.e50.01e38.若有代数式3ae/bc,则不正确的C语言表达式是(C)A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*39.若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为(A).A.7B.8C.9D.1010.若有定义:inta=7;floatx=205,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)。A.2.500000B.2.750000C.3.500000D.0.00000011.sizeof(float)是(B)。A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式12.设intn=3;则n十十的结果是(B)。A.2B.3C.4D.513.设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为(D)。2A.floatB.charC.intD.double.14.若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是(D).A.scanf(“%d%d1x,%1e”,&x,&y,&z);B.scanf(“%2d*%d%1f”,&x,&y,&z);C.scanf(“%x%*d%o”,&x,&Y);D.scanf(“%x%o%6.2f”,&x,&y,&z);15.以下说法正确的是(D).A.输入项可以为一个实型常量,如scanf(“%f”,3.5);B.只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);D.当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);16.以下程序的执行结果是(A)。#includestdio.hmain(){intsum,pad;sum=pad=5;pad=sum++;pad++;++pad;printf(%d\n,pad);}A.7B.6C.5D.417.巳知字母A的ASCII码是65,以下程序的执行结果是(D)。#includestdio.hmain(){charc1='A',C2='Y';printf(%d,%d\n,c1,c2);A.A,YB.65,65C.65,90D.65,8918.为了避免嵌套的if-else语句的二义性,c语言规定else总是与(C)组成配对关系。A.缩排位置相同的ifB.在其之前末配对的ifC.在其之前未配对的最近的ifD.同一行上的if19.逻辑运算符两侧运算对象的数据类型(D).A.能是0或1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据20.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D).A.’x’&&’y’B.x<=y3C.x||y+z&&y-zD.!((x<y)&&!z||1)21.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是(C).A.A%2==1B.!(A%2==0)C.!(A%2)D.A%222.以下不正确的if语句形式是(C).A.if(x>y&&x!=y);B.if(x==y)x十=y;C.if(x!=y)scanf(“%d”,&x)e1sescanf(”%d,&y);D.if(x<y){x十十;y十十;}23.以下if语句语法正确的是(B).A.if(x>0)printf(“%f“,x)elseprintf(“%f”,-x);B.if(x>0){x=x+y;printf(“%f“,x);}elseprintf(“%f”,-x)C.if(x>0){x=x+y;printf(“%f“,x);}elseprintf(“%f”,-x)D.if(x>0){x=x+y;printf(“%f“,x);}elseprintf(“%f”,-x)elseprintf(“%f”,-x);24.阅读以下程序main(){inta=5,b=0,c=0;if(a=b+c)printf(“***\n”);elseprintf(“$$$\n”);}以上程序(D).A.语法有错不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$25.以下程序运行结果是(C).main(){inta=100,x=10,y=20,ok1=5,ok2=0;if(xy)if(y!=10)If(!ok1)a=1;elseif(ok2)a=10;a=-1;printf(“%d\n”,a);4}A.1B.0c.-1D.不确定26.执行以下程序段后,变量a,b,c得值分别是(B).intx=10,y=9;inta,b,c;a=(--x==y++)?–x:++y;b=x++;c=y;A.a=9,b=9,c=9B.a=8,b=8,c=10C.a=9,b=10,c=9D.a=1,b=11,c=1027.若w,x,y,z,m均为int型变量,则执行下面语句后的m值是(A).w=1;x=2;y=3;z=4;m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;A.1B.2C.3D.428.语句while(!e);中的条件!e等价于(A)。A.e==0B.e!=1C.e!=0D.~e29.下面有关for循环的正确描述是(D)A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判定表达式C.在for循环中,不能用break语句跳出循环体D.for循环体语句中,可以包含多条语句,但要用花括号括起来30.C语言中while和do-while循环的主要区别是(A).A.do-while的循环体至少无条件执行一次B.while的循环控制条件比的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句31.以下程序段(C).x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行二次C.循环执行二次D.有语法错误32.下面程序的运行结果是(B).#includestdio.hmain(){inty=10;do{y--;}while(--y);printf(“%d\n”,y--);}A.-1B.1C.8D.033.以下正确的描述是(B).A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句534.c语言中(D)。A.不能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环D.do—while语句构成的循环,当while语句中的表达式值为零时结束循环35.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式36.在C语言中,一位数组的定义方式为:类型说明符数组名(D)。A.[常量表达]B.整型表达式C.[整型常量]或[整型表达式]D.[整型常量]37.以下不能对二维整形数组a进行正确初始化的语句是(C)。A.inta[2][3]={0};B.inta[][3]={{1,2},{0}};C.inta[2][3]={{1,2},{3,4},{5,6}};D.inta[][3]={1,2,3,4,5,6};38.若有说明:inta[][4]={0,0};则下面正确的叙述是(D)。A.数组a中每个元素均可得到初值0B.二维数组a的第一维大小为1C.因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1D.只有元素a0][0]和a[0][1]可得到初值0,其余元素均得不到初值039.若有说明:inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(B)。A.2B.3C.4D.无确定值40.下面程序的运行结果是(B)。charc[5]={‘a’,’b’,’\0’,’c’c,’\0’};printf(“%s”,c);}A.‘a’’b’B.abC.abcD.ab41.有两个字符数组a、b,则以下正确的输入语句是(B)。gets(a,b);scanf(“%s%s”,a,b);scanf(“%s%s”,&a,&b);gets(“a”),gets(“b”);A.s[j+=]=s[i]B.s[++j]=s[i]C.s[j]=s[i];j++D.s[j]=s[i]42.若使用一维数组名作函数实参,则以下正确的说法是(A).A.必须在主调函数中说明此数组的大小B.实参数组类型与形参数组类型可以不匹配C.在被调函数中,不需要考虑形参数组的大小D.实参数组名与形参数组名必须一致43.以下正确的说法是(A).A.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效B.在该函数中有效6C.在本程序范围内均有效D.非法变量44.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为(A).A.自动(auto)B.静态(static)C.外部(extern)D.寄存器(register)45.以下程序的运行结果是(B)。#defineMIN(x,y)(x)(y)?(x):(y)main(){inti=10,j+15,k;k+10*MIN(i,j);printf(“%d\n”,k);}A.10B.15C.100D.15046.C语言的编译系统对宏命令的处理是(D)。A.在程序运行时进行的B.在程序连接时进行的C.和C程序中的其它语句同时进行编译的D.在对源程序中的其它语句同时进行编译的47.请读程序#includestdio.h#defineMUL(x,y)(x)*ymain(){inta=3,b=4,c;c=MUL(a++,b++);printf(%d\n,c);}上面程序的输出结果是(A)。A.12B.15C.20D.1648.以下程序的输出结果为(B)。#definePT5.5#defineS(x)PT*x*xmain(){inta=1,b=2;printf(%4.1\n,S(a+b));}A.12.0B.9.5C.12.5D.33.549.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用括起时,寻找被包含文件的方式是(C)。A.仅仅搜索当前目录B.仅仅搜索源程序所在目录C.直接按系统设定的标准方式搜索目录D.先在源程序所在目录搜索,再按系统设定的标准方式搜
本文标题:C语言复习题
链接地址:https://www.777doc.com/doc-1755014 .html