C语言练习题1第一章C语言概述1、所有C函数的结构都包括的三部分是(C)A.语句、花括号和函数体B.函数名、语句和函数体C.函数名、形式参数和函数体D.形式参数、语句和函数体2、C语言中主函数的个数是(B)A.2个B.1个C.任意个D.10个3、下面可能不影响程序正常运行的是(C)A.语法错误B.逻辑错误C.警告提示D.算法错误4、一个C程序的执行是从(A)A.本程序的main()函数开始,到main()函数结束.B.本程序文件的第一个函数开始,到本程序文件第一个函数结束.C.本程序文件的第一个函数开始,到本程序main函数结束.D.本程序的main()函数开始,到本程序文件的最后一个函数结束.5、C程序由(C)组成。A.子程序B.主程序和子程序C.函数D.过程6、下列关于C语言注释的叙述中错误的是(D)。A.以“/*”开头并以“*/”结尾的字符串为C语言的注释内容。B.注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义。C.程序编译时,不对注释作任何处理。D.程序编译时,需要对注释进行处理。7、C语言源程序经过编译后,生成文件的后缀是____C_____。A、.cB、.exeC、.objD、.cc8、以下说法中正确的是____C_____。A、C语言程序总是从第一个函数开始执行B、在C语言程序中,要调用函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分9、以下叙述中正确的是__A____。A:C程序中注释部分可以出现在程序中任意合适的地方B:花括号{和}只能作为函数体的定界符C:构成C程序的基本单位是函数,所有函数名都可以由用户命名D:分号是C语句之间的分隔符,不是语句的一部分第二章变量与表达式第一节简单表达式1.算术运算符及其表达式1、C语言中运算对象必须是整型的运算符是_____A______。A、%B、*C、+D、/2.下面运算符优先级最高的是(C)A.=B.=C.%D.&&3、下面程序main(){intx=10,y=3;printf(%d\n,y=x/y);}的输出是___C___。A:0B:1C:3D:不确定的值4、执行下面程序段后,c3中的值是_A____intc1=1,c2=2,c3;c3=c1/c2;A:0B:1/2C:0.5D:12.C语言表达式书写规则1、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的C语言表达式是___A___。A:x/y*zB:x*(1/(y*z))C:x/y*1/zD:x/y/z2、设有定义:floata=2,b=4,h=3;,以下C语言表达式中与代数式1/2(a+b)h计算结果不相符的是___B___。A:(a+b)*h/2B:(1/2)*(a+b)*hC:(a+b)*h*1/2D:h/2*(a+b)第二节变量1.变量1、下列关于C语言的关键字的叙述中错误的是(C)A.关键字是C语言规定的具有特定意义的字符串,通常也称保留字。B.用户定义的标识符不应与关键字相同。C.ANSIC标准规定的关键字有64个。D.ANSIC标准规定的关键字有32个。2、下面关于C语言用户标识符的描述,正确的是(D)A.不区分大小写B.用户标识符不能描述常量C.类型名也是用户标识符D.用户标识符可以作为变量名3、以下(D)是正确的变量名。A.a.beeB.-p11C.intD.p_114、下面属于C语言标识符的是(D)A.2abB.@fC.?bD._a125、下列保留字中用于构成循环结构的是(B)A.ifB.whileC.switchD.default6、以下定义语句中正确的是(C)。A.chara='A'b='B';B.floata=b=10.0;C.inta=10,*b=&a;D.float*a,b=&a;7、下面标识符中,不合法的用户标识符为(D)A)PadB)a_10C)_12abD)int8、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符_____C____。A、必须为下划线B、可以是字母、数字和下划线中任一种字符C、必须为字母或下划线D、必须为字母9、请选出可用作C语言用户标识符的一组标识符____B__。①void②a3_b3③For④2adefine_123_abcDOWORDIFcasesizeofA:①B:②C:③D:④9、以下选项中合法的用户标识符是___B___。A:longB:_2TestC:3DmaxD:A.dat10、以下不能定义为用户标识符的是__D____。A:scanfB:VoidC:_3com_D:int11、在C语言中,如果下面的变量都是int类型,则输出结果是__A____sum=pad=5;pad=sum++,pad++,++pad;printf(%d\n,pad);A:7B:6bC:5D:42.常量和符号常量1、以下(B)是错误的整型常量。A.-0xcdfB.018C.0xeD.0112、下列符号中用来表示C语言中的回车换行的是(B)A.\”B.\nC.\bD.\\3、以下(C)是正确的字符常量。A.cB.'\\''C.'W'D.\32a4、下面不正确的字符串常量是(A)A)'abc'B)12'12C)0D)6、以下列出C语言常量中,错误的是__B____。A:OxFFB:1.2e0.5C:2LD:'\72'7、以下选项中,非法的字符常量是___C___。A:'\t'B:'\17'C:\nD:'\xaa'第三节数据类型1.整型数据1、以下选项中不属于C语言的类型的是__D____。A:signedshortintB:unsignedcharC:singedlongD:longshort2、以下选项中可作为C语言合法整数的是___C___。A:10110BB:0386C:0XffaD:x2a22.实型数据1、以下选项中属于C语言的数据类型是___C___。A:复数型B:逻辑型C:双精度型D:集合型2、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是___C___。A:1B:2C:2.0D:2.53、设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是___C___。A:x=x*100+0.5/100.0;B:x=(x*100+0.5)/100.0C:x=(int)(x*100+0.5)/100.0;D:x=(x/100+0.5)/100.0;4、以下符合C语言语法的实型常量是__C____。A:1.2E0.5B:3.14159EC:.5E-3D:E153.字符型数据1、判断char型变量ch是否为大写字母的正确表达式是____C_____。A、‘A’=ch=‘Z’B、‘A’=chandch=‘Z’C、‘A’=ch&&ch=‘Z’D、‘A’=ch||ch=‘Z’2.设有语句chara='\72';则变量a(A)。A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法3.判断变量ch中的字符是否为数字字符,最简单的正确表达式是(D)。A)ch=0&&ch=9B)’0’=ch=’9’C)ch=’0’||ch=’9’D)ch=’0’&&ch=’9’4、设有说明语句:chara='\72';则变量a__A____。A:包含1个字符B:包含2个字符C:包含3个字符D:说明不合法5、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是___A___。A:字符AB:字符aC:字符eD:非法的常量6、若有以下定义和语句:charc1='b',c2='e';printf(%d,%c\n,c2-c1,c2-'a'+'A');则输出结果是___B____A:2,MB:3,EC:2,eD:输出结果不确定7、已知字符A的ASCII码为十进制的65,下面程序的输出是__A___main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf(%d,%c\n,ch1,ch2);}A:67,DB:B,CC:C,DD:不确定的值8、若变量c为char类型,能正确判断出c为小写字母的表达式是DA:'a'=c='z'B:(c='a')||(c='z')C:('a'=C)and('z'=c)D:(c='a')&&(c='z')4.类型转换1、表达式‘f’+10的类型是____A_______。A、intB、charC、doubleD、float2、设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是___D___。A:6.500000B:6C:5.500000D:6.000000第四节赋值语句1、若有定义:inta=2;则正确的赋值表达式是(A)。A.a-=(a*3)B.double(-a)C.a*3D.a*4=32、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C)A)–3B)9C)–12D)63、请选出合法的C语言赋值语句__B____。A:a=b=58B:i++;C:a=58,b=58D:k=int(a+b);4、若变量已正确定义并赋值,下面符合C语言的表达式是___B___。A:a:=b+1B:a=b=c+2C:int18.5%3D:a=a+7=c+b5、若变量a、i已正确定义,且i已正确赋值,合法的语句是__B____。A:a==1B:++i;C:a=a++=5D:a=int(i);6、以下非法的赋值语句是__C____。A:n=(i=2,++i);B:j++;C:++(i+1);D:x=j0;7、以下选项中非法的表达式是___D___。A:0=x100B:i=j==0C:(char)(65+3)D:x+1=x+18、若以下选项中的变量已正确定义,则正确的赋值语句是___C___。A:x1=26.8%3;B:1+2=x2;C:x3=0x12;D:x4=1+2=3;第五节复杂表达式1.自增、自减运算符1、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf(“%d,%d\n”,x--,--y);(D)A)10,3B)9,3C)9,2D)10,22、设i为整型变量,且值为100,则语句++i;执行后i的值是____B_____。A、100B、101C、102D、语句错3.以下程序的输出结果是(B)。#includestdio.hmain(){inti=010,j=10;printf(%d,%d\n,++i,j--);}A)11,10B)9,10C)010,9D)10,94.下列程序的运行结果是(A)#defineA5#defineBA+1main(){inta;a=B;printf(″%d\n″a--);}A.6B.5C.4D.出错5、以下程序的输出结果是___A___。#includestdio.hmain(){inti=10,j=10;printf(%d,%d\n,++i,j--);}A:11,10B:9,10C:010,9D:10,96、有如下程序main(){inty=3,x=3,z=1;printf(%d%d\n,(++x,y++),z+2);}运行该程序的输出结果是___D___。A:34B:42C:43D:337、设x,y均为int型变量,且x=10,y=3,则以下数据的输出结果是Dprintf(%d,%d\n,x--,--y)。A:10,3B:9,3C:9,2D:10,28、下列关于单目运算符++、--的叙述中正确的是___D___。A:它们的运算对象可以是任何变量和常量B:它们的运算对象可以是char型变量和int型变量,但不能是float型变量C:它们的运算对象可以是int型变量,但不能是double型变量和float型变量D:它们的运算对象可以是char型变量、int型变量