C语言运算符与表达式的练习题答案_第1页
C语言运算符与表达式的练习题答案_第2页
C语言运算符与表达式的练习题答案_第3页
C语言运算符与表达式的练习题答案_第4页
C语言运算符与表达式的练习题答案_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言运算符与表达式的练习题单项选择题(i)以下选项中,正确的c语言整型常量是(D)。A.32LB.510000C.-1.00D.567(2)以下选项中,(D)是不正确的C语言字符型常量。A.'a'B.'x41'C.'101D."a"字符串的结束标志是(C)。A.0B.0'C.'0'D."0"(4)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运

2、算(5)逻辑运算符中,运算优先级按从高到低依次为(D)。A.&&!|B.|&&!C.&&|!D.!&&|(6)表达式!x|a=b等效于(D)。A.!(x|a)=b)B.!(x|y)=bC.!(x|(a=b)D.(!x)|(a=b)(7)设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=c>d)后,m,n的值是(A)。A.0,0B.0,1C.1,0D.1,1*(8)设有语句inta=3则执行了语句a+=a-=a*=a;后,变量a的值是(B)。A.3B.0C.9D.-12(9)在以下一组运

3、算符中,优先级最低的运算符是(D)。A.*B.!=C.+D.=(10)设整型变量i值为2,表达式(+i)+(+i)+(+i)的结果是(B,上机13)。A.6B.12C.15D.表达式出错(11)若已定义x和y为double类型,则表达式x=1口y=x+3/2的值是(D)A.1B.2C.2.0D.2.5*(12)设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为(D)。A.4B.3C.2D.1(13)设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是(A)。A.10<a<15B.a=11|a=12|a=13|a=1

4、4C.a>10&&a<15D.!(a<=10)&&!(a>=15)*(14)设f是实型变量,下列表达式中不是逗号表达式的是(B)。A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)*(15)设ch是char型变量,其值为'A',则下面表达式的值是(B)。ch=(ch>='A'&&ch<='Z')?(ch+32):chA.AB.aC.ZD.Z(16) 以下运算符中,结合性与其他运算符不同的是(A)。A.+B.

5、%C./D.+(17) 以下用户标识符中,合法的是(B)。A.intB.nitC.123D.a+b(18) C语言中,要求运算对象只能为整数的运算符是(A)。A.%B./C.>D.*(19) PC机中,'n'在内存占用的字节数是(A)。A.1B.2C.3D.4(20)字符串"ABC”在内存占用的字节数是(B)。A.3B.4C.6D.8(21) 要为字符型变量a赋初值,下列语句中哪一个是正确的(B)。D.chara=*;A.chara="3"B.chara=3;C.chara=%;(22) 下列不正确的转义字符是(C)。A.B.'C.0

6、74D.0填空题(1) C语言中的逻辑值“真”是用示的。(2) 设c='w',a=1,b=2,d=-5,的值1表示的,逻辑值“假”是用0表则表达式x'+1>c,'y'!=c+2,-a巧*b<=d+1,b=a=2分别0、1、0(5) 设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为。(6) 判断变量a、b的值均不为0的逻辑表达式为|a*b!=0或a!=0&&b!=0(7) 求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为4,10,6(8) 求解逗号

7、表达式x=a=3,6*a后,表达式值、x、a的值依次为18,3,3(9) 数学式a/(b*c)的C语言表达式是a/(b*c);。第一单元C语言概述、选择题1、C语言中主函数的个数为(A)个。A)1B)2C)无穷个D)任意个2、以下关于C语言描述错误的是(D)。A)一个C程序总是从main函数开始执行TB)每个语句和数据声明的最后必须有一个分号TC) C语言的注释符是以“/*”开始并以“*/”结束的TD) 一个C程序可以包含多个main函数F3、C语言源程序文件后缀为(C)。A).EXEB).OBJC).CD).ASM4、 C语言是由(C)组成的。A)子程序B)主程序与子程序C)函数D)过程5、

8、 C语言属于(B)语言A)机器语言B)汇编语言C)高级语言D)面向对象语言第二单元C语言基础、选择题1、 C语言中普通整型变量int在内存中占(B)字节。A)1B)2C)3D)42、下列不是C语言基本数据类型的是(A)。A)字符型B)整型C)浮点型D)结构体3、有关自增、自减运算,以下只有(D)是正确的。A)-fB)+78C)ab+D)d+4、已知A=7.5,B=2,C=3.6,表达式(A>B&&C>A)|(A<B&&!C>B)的值是(A)。A)0B)10C)1D)55、若有x=1,y=2,z=3,则表达式(x<y?x:y)=z的值

9、是(D)。A)1B)2C)3D)06、判断char型变量ch是否为大写字母的正确表达式是(C)。A)A<=ch<=ZB)(ch>=A)&(ch<=Z)C)(ch>=A)&&(ch<=Z)D)(A<=ch)AND(Z>=ch)7、判断整型变量digit是否为数字的正确表达式是(C)。A)0<=ch<=9B)(ch>=0)&(ch<=9)C)(ch>=0)&&(ch<=9)D)(0<=ch)AND(9>=ch)8、 一个C程序的执行是从(A)。A)本程序的

10、main函数开始,到main函数结柬B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束9、在以下标识符中,合法的是(C)A)ifB)0xyC)_xyD)case10、 C语言中各种类型的数据其实决定了占用内存的字节数。float占(C)。A)一字节B)二字节C)四字节D)八字节11、下列各选项中,(A)是有效的标识符。A)abB)3dayC)day3D)#abc12、以下叙述正确的是(C)A)在C程序中,每行只能写一条语句B)若a是实型变量,C程序中不允许a=10这种

11、赋值。C) 在C程序中,%是只能用于整数运算的运算符D) 在C程序中,无论是整数还是实数,没有什么区别13、有输入语句:scanf("a=%d,b=%d,c=%d,&a,&b,&C)使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是(B)。A)132/B)1,3,2/C)a=1b=3c=2/D)a=1,b=3,c=2/14、设整型变量a为5,使b不为2的表达式是(C)。A)b=a/2B)b=6-(-a)C)b=a%2D)b=a>3?2:115、以下程序的输出结果是(D)。intx=10,y=10;printf(“%dn”,-x-,-y);A

12、)1010B)99C)910D)10916、选出下列标识符中不是合法的标识符的是(D)。A)hot_doB)cat1C)_priD)2ab17、设有如下定义:intx=10,y=3,z;则语句printf("%dn",z=x%y);的输出结果是(D)。A)1B)0C)4D)318、各种基本数据类型的存贮空间正确的长度排列为(C)。A)int<char<float<doubleB)double<float<int<charC)char<int<float<doubleD)float<int<char<do

13、uble19、下面的变量说明中(C)是正确的。A)char:a,b,c;B)chara;b;c;C)chara,b,c;D)chara,b,c。20、转义字符“反斜杠线”的表示方法正确的是(B)。A)B)C)D)“”21、若x=5,y=3则y*=x+5;y的值为(D)。A)10B)20C)15D)3022、能正确表示a和b同时为正或同时为负的逻辑表达式是(D)A) (a>=0|b>=0)&&(a<0|b<0)B) (a>=0&&b>=0)&&(a<0&&b<0)C)(a+b>0

14、)&&(a+b<=0)D)a*b>023、 C语言中,合法的字符型常数是(D)。A)AB)“A”C)65D)A24、下列程序段的输出结果是(C)。charc1,c2;c1=65;c2=65+32+1;printf(“%c,%c”,c1,c2);A)a,BB)a,bC)A,bD)A,B25、下列语句不具有赋值功能的是(C)A)a*=bB)x=1C)a+bD)a+26、在C语言中,存储一个整型、字符型、双精度实型变量所需的字节(A)。A)2、1、8C)4、1、427、下列程序段输出结果是intj=2,i=1;j/=i*j;printf(“%d”,j);A)0B)128、

15、不是A)B) 4、1、4D)2、2、8(B)。C) 2D)3C语言提供的合法关键字是(D)。switchB)charC)caseD)this29、在C语言中,要求参加运算的数必须时整数的运算符是A)/B)*C)%D)=30、若已定义x和y为double类型,且x=1;则表达式y=x+3/2的值是(C)。A)31、设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是(C)。A)10<a<15B)a=11|a=12|a=13|a=14C)a>10&&a<15D)!(a<=10)&&!(a>=15)32、

16、表达式“10!=9”的值是(D)。A)trueB)非零值C)0D)133、设a,b为字符型变量,执行scanf("a=%c,b=%c",&a,&b)后使a为A',b为B',从键盘上的正确输入是(B)。A)ABB)A,BC)A=A,B=BD)a=A,b=B34、设有单精度变量f,其值为。执行语句“n=(int)f)%3;”后,n的值是(B)。35、普通整形int能够处理的数据范围是(D)A)-3276732767B)-3276832768C)-3276732768D)-327683276736、若定义x为double型变量,则能正确输入x值的语

17、句是。BA)scanf(“%f”,x);B)scanf(“%f”,&x);C)scanf(“%lf”,&x);D)scanf(“%5.1f”,&x)37、执行x=(6*7%8+9)/5;后,x的值为(B)A)1B)2C)3D)438、若有代数式3ae/bc,则不正确的c语言表达式是(B)A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/b/c*3(D)A)B)x/=y+9C)x*=y-6D)x+=y+240、以下能正确定义整型变量z、b、c并为其赋初值5的语句是(C)A)inta=b=c=5;B)inta,c,c=5;C)a=5,b=5,c=

18、5;D)a=b=c=5;41、C语言中双精度浮点型变量double在内存中占(D)字节。A)1B)2C)4D)842、以下哪个数学函数的作用是求某数的平方根(A)。A)sqrt()B)fabs()C)pow()D)exp()C)。43、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是(intx;scanf("%d",&x);if(+x>5)printf("%d",x);elseprintf("%dn",x-);A)7和5B)6和3C)7和4D)6和444、执行语句"x=(a=3,b=a-)"

19、;后,x,a,b的值依次为(B)。A)3,3,2B)3,2,2C)3,2,3D)2,3,245、读出以下语句的输出结果是(D)。intx=10,y=10;printf("%d%dn",x-,-y);A)1010B)99C)910D)109*46、C语言中,合法的字符串型常数是(D)。A)AB)"A"C)abcdD)abcd47、为表小关系x>y>z,应使用C语言表达式(A)。A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=z)&

20、;(y>=z)48、 C语言的输入与输出操作是由(C)完成的。A)输入语句B)输出语句C)输入与输出函数D)输入与输出语句49、设有intx=11;则表达式(x+1/3)的值是(C)。A)B)11.333333C)11D)1250、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(CA) 1B) 2C) 2.0D)、判断题()1、“A”是一个字符常量()2.、在程序运行过程中其值可以改变的量称为变量。V()3、在C语言中,变量可以先使用再定义。X()4、在C语言中,所有算术运算符的优先级都相同。X()5、程序中若要使用数学函数就必须包含头文件”:V()6、程序中若要

21、使用printf()函数就必须引用头文件”:V()7、在标准C中,“二”是判断两个数是否相等。X()8、在标准C中,使用所有输入输出函数必须包含文件。X()9、在C语言中输出数据时可以指定数据的精度,即小数点后保留几位。V()10、C语言中的基本数据类型有字符型、整型和浮点型。V()11、所有的C语言程序都必须有一个名为main的主函数。V()12、/运算符要求运算数必须是整数。X()13、Int,#a15,char都是合法的标识符。X()14、b和"b"是不同的两种常量。V()15、C语言本身没有输入输出语句,要实现输入输出必须调用相应的输入输出函数。V第三单元算法、判断

22、题()1、算法简而言之就是基于某种计算机语言,利用数据结构来解决具体问题的思路和方法。V()2、描述算法的图形化方法之一就是程序流程图。V()3、描述算法可以用自然语言、传统流程图、N-S流程图来描述。V()4、算法要有一定的逻辑性和健壮性。V()5、算法的特点之一是无穷性。X第四单元顺序结构、选择题1、下列标识符中合法的标识符是(A)A)int2B)ifC)2twoD)a#b2、选出下列标识符中不是合法的标识符的是(A)hot_doB)cat113C)INTD)_2ab3.、以下选项中属于C语言的数据类型是(B)A)字符串型B)双精度型C)逻辑型D)布尔型4、设有如下定义:intx=10,y

23、=3,z;则语句printf("%dn",z=x%y);的输出结果是(D)A)3B)0C)4D)15、设整型变量n的值为2,执行语句"n+=n;"后,n的值是(B)A)0B)4C)-4D)2、判断题()1、结构化程序设计的三种结构是顺序结构、选择结构和循环结构。V()2、可以用printf("%d",123);语句输出一个十六进制整数。X()3、可以用scanf("%x",&da);语句从键盘接收一个八进制整数给变量da。X()4、语句scanf("%5.2f",&a);是正确的

24、。X()5、如果a是一维字符数组名,则语句scanf("%s",&a);是正确的。X第五单元选择结构、选择题1、有以下程序段inta;if(3&&2)a=1;elsea=2;执行后a=(A)。A)1B)2C)3D)02、表达式:10!=9的值是(D)。A)trueB)非零值C)0D)13、设intx=1,y=1;表达式(!x+|y-)的值是_(B)。A)0B)1C)2D)-14、设整型变量s,c1,c2的值均为2,则执行语句(s=(c1=c2)后,s的值为:A)0B)1C)2D)35、设整型变量a,b的值分别为1,0,那么a&&b的结

25、果是(A)。A)0B)1C)2D)都不对6、设整型变量a,b的值分别为1,0,那么a|b的结果是(B)。A)0B)1C)2D)都不对7、设整型变量a,b的值分别为1,0,那么a!=b的结果是(B)。A)0B)1C)2D)都不对8、设整型变量a,b的值分别为1,0,那么a|(b+)的结果是(B)。A)0B)1C)2D)都不对9、设整型变量a,b的值分别为1,0,那么a&&(+b)的结果是(B)A)0B)1C)2D)都不对10、设整型变量a,b的值分别为1,2,那么表达式a>b?a+b:a-b的结果是(A)1B)2C)3D)-111、下边程序段inta=2,b=3,c=4;i

26、f(c=a+b)printf(“OK!”)elseprintf(“NO!”);输出结果是(A)。B)。D)。A)OK!B)NOC)程序错误D)以上都不对12、设整型变量A)0B)13、设整型变量A)0B)14、设整型变量A)0B)a,b的值分别为1C)2a,b的值分别为1C)2a,b的值分别为1C)21,0,那么a=b的结果是(A)。D)都不对1,0,那么!(a=b)的结果是(B)D)都不对1,2,那么!a&&b的结果是(A)。D)都不对15、设x为非零,则下列描述错误的是(D)A)!(x=0)B)x!=0C)3*x!=0D)x>016、下列表达式的值中哪个表示为逻辑假(

27、C)。A)1B)3C)0D)-117、设整型变量a,b的值分别为6,2,那么a%b!=0的结果是(A)。A)0B)1C)2D)318、下列属于分支结构的是(B)。A)whileB)switchC)forD)以上都不是19、设整型变量a,b的值分别为1,0,那么a|(+b)的结果是(B)A)0B)1C)2D)都不对20、设整型变量a,b的值分别为1,0,那么a&&(b+)的结果是(A)A)0B)1C)2D)都不对、判断题()1、在分支结构switch中,case后面跟的一定是常量。V()2、逻辑运算符优先级高于关系运算符的优先级。X()3、关系运算符中,=的优先级要高于>=

28、的优先级。X()4、关系运算符中,>的优先级要高于>=的优先级。X()5、在条件表达式中,-3代表为真。V()6、在条件表达式中,非0代表为真。V()7、条件运算符?:是2目运算符。X()8、在switch语句中,有没有break的情况都是相同的。X()9、判断a,b两个数是否相等,用a=b。X()10、为J断a,b两个数是否相等,用a=boV第六单元for循环结构、选择题1、对下边for循环,循环体体执行次数是(B)for(i=1;i<=10;i=i+2);A)6B)5C)4D)72、对下边for循环,循环体执行次数是(C)for(i=5;i>1;i-)JA)6B)5

29、C)4D)73、下边循环执行完后,a为(C)。for(a=1;a<5;a+)a=2*a;A)5B)4C)7D)84、下边循环执行完后,s为(A)。/无法确定for(a=1;a<5;a+)for(b=s=0;b<a;b+,s=s+a);A)6B)4C)7D)无答案7、下边程序段输出结果是(A)。inti,a=0;for(i=0;i<10;i+)a+,i+;printf("%d",a);A)5B)6C)9D)108、以下for循环的次数为(D)。for(x=0,y=0;(y=123)&&(x<4);x+);A)不循环B)无限次C)3

30、D)49、从循环体内某一层跳出,继续执行循环外的语句是:(A)。A)break语句B)return语句C)continue语句D)空语句11、循环语句for(x=0,y=0;(y!=123)|(x<4);x+);的循环执行次数为(C)A)无限次B)不循环C)4次D)3次A)。12、 设i,j,k均为int型变量,k初值为0,执行完下面的for循环后,k的值为(for(i=0,j=10;i<=j;i+,j-)k=i+j;C)8D)7A)10B)913、以下程序段的循环次数是(Cfor(i=2;i=0;)printf(“%,d”i-);A)无限次B)0次C)1次D)2次14、下边程序段

31、循环执行的次数是(B)。inta=0,j=10;for(;j>3;j-)a+;if(a>3)break;A)3B、4C、5D)618、 for循环中,能省略的表达式有(D)。A)表达式1B)表达式2C)表达式3D)3个都可以A)3次B)2次C)6次D)9次20、下面循环体被执行的次数是(2)。for(i=0;i<3;i+)21、定义变量inti=-1;则以下不是无限循环的是:(C)。A.for(i=0;i=1;i+);B.for(i=0;i-);C.for(;i>-10;i-);D.for(;i<0;);22、定义变量inti=2;则以下是无限循环的是:(D)。A

32、.for(i=0;i=1;i+);B.for(i=0;i<0;)-i;C.for(;i>10;i+);D.for(;i;+i);23、以下for循环语句,循环体的执行次数是:(A)。/*该题经验证是3次,不知道怎么回事,自己取研究*/for(i=1;i<=5;i+=2);A.4B.5C.6D.724、以下for循环语句,循环体的执行次数是:(A)for(i=5;i>1;i-);A.4B.5C.3D.225、下面的循环体执行完后,a的值是:(A)。for(a=2;a<8;a+)a*=2;4A.10B.9C.12D.11、判断题()1、continue语句只能用于循环

33、语句中。V()2、在for循环中允许使用嵌套循环,但只能是嵌套while循环。X()3、break语句只能用于循环语句中。X()4、for循环可能一次都不执行。V()5、break语句是结束本层循环。V()6、break语句是结束本次循环。X()7、continue语句是结束本层循环。X()8、continue语句是结束本次循环。V()9、在循环过程中,使用break语句和continue语句的作用是一样的。X)10、for(;)这写书写for循环是合法的,即for三个表达式都是可以省略的。V三、程序阅读1、以下程序运行完后的输出数据是:_aaaaaaaaa_main()inta=10;for

34、(;a;)a-;if(a=0)break;printf("a");2、以下程序运行完后a的值是:_1_main()inti,a=0;for(i=0;i<10;i+)i+;a+;printf("%d",a);3、 以下程序运行完后a的值是:_5_main()inti,a=0;for(i=0;i<10;i+)a+,i+;printf("%d",a);4、以下程序运行完后的结果是:_#*#*_main()intk;for(k=1;k<5;k+)if(k%2!=0)printf("#");elseprin

35、tf("*");main()intn;floats=1.0;for(n=10;n>1;n-)s=s+1/n;printf("%6.1fn",s);第七单元while与do-while循环、选择题1、break语句的正确的用法是(C)。A)无论在任何情况下,都中断程序的执行,退出程序。B)在多重循环中,只能退出最靠近的那一层循环语句。C)跳出多重循环。D)只能修改控制变量。2、 inti=0;while(i+<5);循环结束后i的值是(C)。A)6B)7C)5D)83、语句while(E);括号中的表达式E等价于(D)。A)E=0B)E!=1C

36、)E!=0D)E=14、inti=1;while(-i);循环次数是(B)。A)无限次B)0C)2D)17、 do-while语句的循环体(B)。A)可能一次都不执行B)至少要执行一次C)由循环条件决定循环次数D)BC均正确8、对下面的while语句,循环体执行次数是(A)次。a=30;while(a-);A) 30B)31C)39D)都不对9、在C语言中,下列说法中正确的是(B)。A)不能使用"dowhile"的循环。B) "dowhile"的循环必须使用break语句退出循环。C) "dowhile"的循环中,当条件为0时将结束循

37、环。D) "dowhile”的循环中,当条件为非0时将结束循环10、下面的循环执行完后,循环次数是(B)次。while(k=10)k-;A) 9B) 10C) 11D)无穷次、判断题()1、while适合控制循环次数不确定的循环。(V)()2、无论循环条件是否满足,do.while循环的循环体至少执行一次。(V)()3、while('a');是一个死循环。(V)()4、在实际编程中,do-while循环完全可以用for循环替换。(V)()5、continue;语句和break语句有同样的作用。(X)第八单元数组、选择题1、下列描述中不正确的是(A)。A) 字符型数组中

38、可能存放字符串。B) 可以对字符型数组进行整体输入、输出。C) 字符串函数声明在包ctype.h中。D)字符串的结束符是0。2、定义如下变量和数组:inti;intx6=1,2,3,4,5,6;则语句for(i=0;i<3;i+)printf("%d",x5-i);的输出结果是(D)。A)123B)135C)246D)6543、以下对二维数组a进行正确初始化的是(D)。A)inta23=1,2,3,4,5,6;B)inta3=1,2,3,4,5,6;C)inta2=1,2,3,4,5,6;D)inta2=1,2,3,4;4、下列程序的输出结果是(A)。chara=&q

39、uot;abcd",b="ABCD",str50="xyz"strcpy(str,strcat(a,b);printf("%s",str);A)xyabcABB)abcABzC)ABabczD)abcdABCD5、不能把字符串:Hello!赋给数组b的语句是(B)。A)charb10='H','e','l','l','o','!'B)charb5="Hello!"C)charb10;strcpy(b,"

40、;Hello!");D)charb10="Hello!"6、下列对数组定义不正确的语句是(A)。A)intm5;B)charb=h,e;C)inta10=1,6,8,4;D)charp;7、以下对二维数组a的正确定义是(A)A)inta3;B)floata(3,4);C)doublea24;D)floata(3)(4);8、给出以下定义:charx=abcdefg;chary=a,b,c,d,e,f,g;以下正确的叙述是(D)。A)数组x和数组y等价B)数组x和数组y长度相等C)数组x的长度大于数组y的长度,因为还存储了一个结束符D)数组x的长度小于数组y的长度,

41、因为还存储了一个结束符9、在intb3=1,3,2,4,5,6,0;中b22的值是(C)A)0B)5C)610、下列初始化正确的是(A)chars1=abcdC) char*p=1000;D) 2A)。B)chars23=zxyD)chars423=Jxyz,mnp;11、设有定义:chars12="string"则printf("%dn",strlen(s);的输出是(A)A)6B)7C)11D)1212、函数调用strcat(strcpy(stU,str2),str3)勺功能是(A)。A)将字符串str2复制到字符串stU中后再将字符用str3连接到

42、字符串stU之后B)将字符用stU复制到字符串str2中后再连接到字符串str3之后C)将字符用stU复制到字符串str2中后再复制到字符串str3之后D)将字符串str2连接到字符串str1中后再将字符串str1复制到字符串str3中13、使用随机函数需要包含的头文件有(D)。A)#include<stdlib.h>B)#include<time.h>C)#include<conio.h>D)A和B14、若有说明inta34=0;下列叙述正确的是(D)A)只有元素a0可得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a

43、中每个元素均可得到初值015、执行下面的程序段后,变量k的值为(C)。intk=3,s2;s0=k;k=s0*10;A)不定值B)33C)30D)1016、以下定义数组的语句中正确的是(D)。A)inta(10)B)charstr;C) intn=5;inta4n;D) #defineN10charstrN;17、定义如下变量和数组:intk;inta33=9,8,7,6,5,4,3,2,1;则下列语句的输出结果是(B)。for(k=0;k<3;k+)printf(“%d”,akk);A)753B)951C)963D)74118、下列描述正确的是(D)。A)两个字符串所包含的字符个数相同

44、时,才能比较字符串B)字符个数多的字符串比字符个数少的字符串大C)字符串“STOP”与“STOP”相等D)字符串“That”与字符串“ThaT'不相等19、若二维数组a有n行n列,则副对角线元素是()。(假设a00位于数组的第一个位置上,且i0,n)A)aiiB)ain-iC)an-iiD)ain-1-i20、对以下说明语句的正确理解是(B)。inta10=6,7,8,9,10;A)将5个初值依次赋给a1至a5。B)将5个初值依次赋给a至a4。C)将5个初值依次赋给a6至a10。D)因为数组长度与初值的个数不相同,所以此语句不正确21、判断字符串a和b是否相等,应使用(D)。A)if(

45、a=b)B)if(a=b)C)if(strcpy(a,b)D)if(strcmp(a,b)=0)22、判断字符串si的长度是否大于字符串s2的长度,应使用(C)。A)if(s1>s2)B)if(strcmp(s1,s2)C)if(strlen(s1)>strlen(s2)D)if(strcat(s1)>strcat(s2)23、下列程序段的运行结果(charc15='a','b','0','c','0'printf(“%s”,c);A)'a','b'B)abC)ab

46、cD)a,b*24、假设有两个字符数组a,b,则以下正确的输入语句是(C)。A)puts(a,b);B)scanf(“%s%s”,a,b);C) scanf(“%s%s”,&a,&b);D) gets(“a”);gets(“b”);25、若有说明A)B)3C)D)无确定值26.若有定义doublex35;则x数组中行标的下限为(D),列标的上限为A)B) 3C) 0D) 0427、若有说明a34;则数组a中的各元素(B)。A)可在程序的运行阶段得到初始值0B)可在程序的编译阶段得到初始值0C)不能得到确定的初始值若有说明inta3=1,2,3,4,5,678,9;则a数组行数的

47、大小为(B)。D)可在程序的编译或运行阶段得到初始值28、若有下列程序段charx80;scanf(“%s”,x);printf(“%s”,x);从键盘上输入字符串“zhangsan”,则输出结果为(A)。A)zhangB)zhangsanC)zhangsanD)san29、在C语言中,引用数组元素时,其数组下标的数据类型允许为(A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式30、设有如下形式的字符数组定义:charstr=”welcome”;则执行下列语句后的输出结果(B)。printf(%“dn”,strlen(strcpy(str,“Hello”);/*该题没有进

48、行强制转换*/A)7B)5C)8D)9C)个元素。31、若有inta35=2,2,2,6,2,6,2,则数组a共有(A)8B)5C)3D)1532、设有如下定义:inta100;则数组下标区间为:(A)。A)099B)199C)0100D)110033、若有定义:inta34,则对数组a中某元素的正确引用是(B)A)a24B)a13C)a(5)D)a10-1034、以下对一维整型数组a的正确说明是(D)。A)inta(10);B)intn=10,an;C)intn;D)#defineSIZE10scanf(“%d”,&n);intaSIZE;ntan;35、若要使用字符函数,需要引入的

49、头文件是(A)。A)string.hB)C)D)、判断题()1、在定义一维数组时,可以将该数组的长度省略V()2、数组的下标从0开始。V()3、数组的下标从1开始。X()4、数组名代表数组的首地址。V()5、在C语言中,数组元素在内存中的存放顺序是按顺序存放的。V()6、字符数组可以存放字符串。V()7、字符串函数strupr(str),可将用中大写字母变成小写字母。X()8、字符串函数strrev(str),可将str串字符颠倒过来。V()9、字符串的结束符不是0。X()10、可如此定义a数组:floata3=12.5,z,”school”;X()11、数组边定义边赋值时,大括号内数据项的数

50、目可以大于或等于数组的长度。X()12、数组边定义边赋值时,大括号内数据项的数目可以小于或等于数组的长度。V()13、字符串函数strcat(stU,str2)的作用是将字符串str2连接在字符串stU后V()14、定义字符型一维数组chara80;可用gets(a0)给a赋值。X()15、数组定义inta10;也可以写成inta(10);。X三、程序阅读题1、下面程序的输出结果是_65。main()charch7="65ab21"inti;for(i=0;chi>='0'&&chi<='9'i+)printf(&

51、quot;%c",chi);2、下面程序执行后,s1=15.0,s2=2.7floatb=0.5,1.6,2.7,3.8,4.9,5,6.1,6.2,7.3,8.4,s1,s2;inti;for(i=0,s1=s2=0;i<9;i+)if(i%2)s1+=(int)bi;if(i%3)s2+=bi-(int)bi;3、将程序补充完整,实现功能:输出斐氏数列的前20项,菲波纳契额数列具有这样的性质:F(0)=1F(1)=2F(N)=F(N-1)+F(N-2)#include"stdio.h"voidmain()inti;longf20=1,2;for(i=2;

52、i<20;i+)fi=fi-2+fi-1;for(i=0;i<20;i+)printf("%ldt",fi);4、将程序补充完整,实现功能:输入2个字符串,判断两个用是否相同,相同输出yes,不同输出no。#include"stdio.h"#include"string.h"voidmain()charx80,y80;gets(x);gets(y);if(strcmp(x,y)=0)puts("yes");elseputs("no");5、设有以下代码:#include"s

53、tdio.h"voidmain()inta33,s=0;inti,j;for(i=0;i<3;i+)for(j=0;j<3;j+)scanf("%d",&aij);for(i=0;i<3;i+)for(j=0;j<i;j+)s+=aij;printf("%dn",s);假设键盘上输入的9个数据为:123456789,上面程序的输出结果是19。第九单元指针、选择题1、以下定义正确的是(C)。A)intx;float*p=x;B)intx;int*p=x;C) intx;int*p=&x;D) intx;fl

54、oat*p=&x;2、以下定义正确的是(D)。A)floatx;float*p=x;B)floatx;int*p=x;C)floatx;int*p=&x;D)floatx;float*p=&x;3、以下定义正确的是(A)A) floatx10;B) floatx10;C) floatx10;D) floatx10;4、以下定义正确的是(float*p=x;int*p=x;int*p=&x;float*p=&x;A) intx10;B) intx10;C) intx10;D) intx10;float*p=x;int*p=x;int*p=&x;float*p=&x;B)。5、设有以下变量定义intx;floaty;doublez;z=sizeof(x)+sizeof(y)+sizeof(z);/*我觉得答案是12,大家多研究下*/则z的值为()。A)8B)4C)6D)10、判断题()1、数组名代表数组的首地址。正确()2、指针

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论