完整版C++练习题及答案.docx
- 文档编号:29819232
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:38
- 大小:25.50KB
完整版C++练习题及答案.docx
《完整版C++练习题及答案.docx》由会员分享,可在线阅读,更多相关《完整版C++练习题及答案.docx(38页珍藏版)》请在冰豆网上搜索。
完整版C++练习题及答案
C++练习题
(一)
1.C++的合法注释是()。
A./*ThisisaCprogram/* B.//ThisisaCprogram
C.“ThisisaCprogram”D.//ThisisaCprogram//
2.下面标识符中正确的是()。
A._abcB.3abC.intD.+ab
3.分析下列该程序,输入数据格式为:
2,5(回车),指出其中的三个错误。
main()
{intsum=0;
inta,b;
cout<<"inputa,b:
";
cin>>a>>b;
sum=a+b;
cout< } (1)没有使用编译预处理命令: #include。 iostream是系统定义的一个头文件(h-head),设置了C++的I/O环境。 cin、cout为基本输入、输出设备,定义在iostream.h头文件中。 (2)没有main()函数的返回类型,系统提示警告。 一般main函数返回整型 (3)输入数据时没有使用空格分隔。 输入运算符“>>”要求输入的多个数据用空格分隔。 4.下列标识符中,()是合法的。 A.gotoB.StudentC.123D.kld 5.C++语言中语句的结束符是()。 A.,B.;C.。 D.、 6.给出下列程序的运行结果。 #include usingnamespacestd; intmain() { inta (2),b(3),c(4); cout<<"c1="< c=a+b; cout<<"c2="< } 7.已知a=4,b=6,c=8,d=9,则“(a++,b>a++&&c>d)? ++d: a A.9B.6C.8D.0 8.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<’B’&&! y)的值是()。 A.0B.语法错C.1D.“假” 9.例题10: 设所有变量均为整型,则表达式(e=2,f=5,e++,f++,e+f)的值为_9___。 10.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+’8’-‘4’的值为__e__。 11.下列数据类型不是C++语言基本数据类型的是()。 A.字符型B.整型C.实型D.数组 12.下列字符列中,可作为C++语言程序自定义标识符是()。 A.switchB.fileC.breakD.do 13.下列字符列中,可以作为“字符串常量”的是()。 A.ABCB.″xyz″C.′uvw′D.′a′ 14.设变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是()。 A.0,0B.0,1C.1,0D.1,1 15.在C++语言中,自定义的标识符()。 A.能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写 C.能使用关键字并且区分大小写D.不能使用关键字并且区分大小写 16.设有代码“inta=5;”,则执行了语句“a+=a-=a*a;”后,变量a的值是()。 A.3B.0C.-40D.–12 17.设a为5,执行下列代码后,b的值不为2的是()。 A.b=a/2B.b=6-(--a) C.b=a%2D.b=a<3? 3: 2 18.C++语言中的标识符只能右字母、数字和下划线三种字符组成,且第一个字符()。 A.必须为字母B.必须为下划线 C.必须为字母或下划线D.可以是字母、数字和下划线中任一中字符 19.下面正确的字符常量是()。 A.“C”B.‘\\’’C.‘W’D.‘’ 20.(5)关于逻辑运算符的说法正确的是()。 A.它们都是双目运算符,优先级相同 B.语句“inta=0,c=1,b;b=a&&c++;”执行后,c的值为2 C.语句“inta=0,c=1,b;b=a||c++;”执行后,c的值为2 D.语句“inta=1,c=1,b;b=a&&c++;”执行后,c的值为2 21.有如下程序段: 注意x的类型为int inta=14,b=15,x; charc=’A’; x=(a&&b)&&(c<’B’); 执行该程序后,x的值为()。 A.tureB.flaseC.0D.1 22.以下叙述中不正确的是(D)。 A.在C++程序中,name和NAME是两个不同的变量 B.在C++程序中,逗号运算符的优先级最低 C.若变量m,n为int型,则m=n后,n中的值不变 D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。 23.sizeof(float)是()。 A.一个双精度型表达式B.一个整型表达式 C.一种函数调用D.一个不合法的表达式 24.下面不正确的字符串常量是()。 A.‘rst’B.“14‘14”C.“0”D.“” 25.设a是整型变量,则表达式(a=4*5,a*2),a+6的值是()。 A.20B.26C.40D.46 26. 设有: inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c A.1B.2C.3D.4 27.用C++的语言表达式表示|x3+log10x|的正确是()。 A.fabs(x*3+log(x))B.abs(pow(x,3)+log(x)) C.fabs(pow(x,3.0)+log(x))D.abs(pow(x,3.0)+log(x)) 28.设intk=7,x=12;则能使值为3的表达式是_____。 A.x%=(k%=5)B.x%=(k-k%5) C.x%=k-k%5D.(x%=k)-(k%=5) 29.设有语句intx=3,y=4,z=5;则下面表达式中值为0的是()。 A.’x’&&’y’B.x<=y C.x||y+z&&y-zD.! ((x z||1) 30.判断char型变量n是否为小写字母的正确表达式为()。 A.’a’<=n<=’z’B.(n>=a)&&(n<=z) C.(’a’>=n)||(’z’<=n)D.(n>=’a’)&&(n<=’z’) 31.以下不正确的语句是()。 A.if(x>y); B.if(x=y)&&(x! =0)x+=y; C.if(x! =y)cin>>x;elsecin>>y; D.if(x 32.下面程序的输出结果是()。 #include usingnamespacestd; intmain() {inta=6,b=6; if(a>5) a-=1; b+=1; else a+=1; b-=1; cout<<”a=”< cout<<”b=”< } A.5B.a=5C.a=5D.编译时出错 7b=7b=6 33.对while、do…while循环结构,下面说法正确的是()。 A.只是表达形式不同 B.do…while结构中的语句至少执行一次 C.while结构中的语句至少执行一次 D.条件成立时,它们有可能一次也不执行 34.以下不正确的是()。 A.语句for(i=0;;i++)表示无限循环B.for(;;)表示无限循环 C.for()也表示无限循环D.while (1)表示无限循环 35.下面循环体的执行次数为()。 #include usingnamespacestd; intmain() {inta,b; for(a=0,b=5;a<=b+1;a+=2,b--)cout< } A.3B.2C.1D.0 36.对中断语句的说法下面不正确的是()。 A.用户可以指定中断的位置B.用户可以指定转移的位置 C.break语句可以跳出本循环D.continue语句可以结束本次 37.下列程序的功能是()。 #include usingnamespacestd; intmain() {chara;inti; cin>>a; for(i=1;i<=10;i++) {if((a>=’a’)&&(a<=’z’)) a=a-i; cout< }} A.把a中的小写字母变成大写字母B.把a中的小写字母变成大写字母 C.把a中的所有字母变成小写字母D.把a中的字母变成它前面i个的字母 38.下面的程序实现输出x,y,z三个数中的最大值,请填入正确的内容。 #include usingnamespacestd; intmain() {intx=5,y=8,z=9,u,v; if( (1))u=x; elseu=y; if( (2))v=u; elsev=z; cout<<”v=”< } 答案: (1)x>y (2)u>z 39.有以下程序段: intn=0; while(n=1)n++; while循环执行次数是_____。 答案: 为无限次。 40.计算1~20之间偶数之和,请填充: #include usingnamespacestd; intmain() {inta,b,i; a=0;b=0; for(i=0; (1);i+=2) {a+=i; (2); (3); cout<<”偶数之和为: ”< } 答案: (1)i<=20或i<21 (2)b+=i+1(3)} 41.下面程序运行结束后,k的值为_____。 #include usingnamespacestd; intmain() {inti,j,k; for(i=0,j=10;i<=j;i++,j--) k=i+j; count< } 答案: 10。 42.下面程序是输出100以内能被7整除且个位数是4的所有整数,请填空: #include usingnamespacestd; intmain() {inti,j; for(i=0; (1);i++) {j=i*10+4; if( (2)) continue; (3) cout< }} 答案: (1)i<=9或i<10 (2)j%7! =0(3)else 看程序写结果 43.#include usingnamespacestd; intmain() {inta,b,c,d,x; a=c=0;b=1;d=20; if(a)d=d-10; elseif(! b) if(! c); elsex=25; cout<<”d=”< cout<<”x=”< } 运行结果: d=20 x=25 44.#include usingnamespacestd; intmain() {intx=6,y=8; if(x++<6) cout<<++y< if(x>6) cout<<--y< else cout< } 运行结果是: 7 45.#include usingnamespacestd; intmain() {inta; cout<<”pleaseinputanumber: ”; cin>>a; switch(a%2) {case0: cout<<”a是偶数”< default: cout<<”a是奇数”< } } 如果输入数为6,则输出结果为什么? 运行结果: a是偶数 a是奇数 46.写出下列程序运行结果: #include usingnamespacestd; intmain() {inti,j,m=0,n=0; for(i=0;i<2;i++) for(j=0;j<2;j++) if(j>=i)m=1;n++; cout< cout< } 结果: 1 1 47.写出下列程序运行结果: #include usingnamespacestd; intmain() {inta,b; for(a=1,b=1;a<=100;a++) {if(b>=10)break; if(b%3==1) {b+=3;continue;} } cout< cout< } 运行结果: 4 10 48.写出下列程序运行结果: #include usingnamespacestd; intmain() {inty,a; y=2;a=-1; while(y--! =-1) {do {a*=y;a++;}while(y--); } cout<<"a="< } 运行结果: a=1y=-2 编写程序 49.计算1至70中是7的倍数的数值之和。 #include usingnamespacestd; intmain() {inti,sum=0; for(i=1;i<=70;i++) if(i%7)sum+=i; cout< } 50.分别用for语句,while语句,do…while语句求下面分数序列的前13项之和。 2/1,3/2,5/3,8/5,13/8,21/13,… (1)用for语句实现: #include usingnamespacestd; intmain() {floata,b,t,sum; inti; for(i=1;i<=13;i++) {a=a+b;b=a-b; t=a/b;sum+=t; } cout<<”sum=”< } (2)用while语句实现: #include usingnamespacestd; intmain() {floata,b,t,sum;inti; a=2;b=1;i=2;t=a/b;sum=t; while(i<=13) {a=a+b;b=a-b; t=a/b;sum+=t; i++; } cout<<”sum=”< } (3)用do-while语句实现: #include usingnamespacestd; intmain() {floata,b,t,sum;inti=1; a=b=1;sum=0; do {a=a+b;b=a-b; t=a/b;sum+=t; }while(++i<=13); cout<<”sum=”< } 51.要用0至9之间不同的三个数构成一个三位数,编写程序统计出共有多少种方法。 #include usingnamespacestd; intmain() {inti,j,k,count=0; for(i=1;i<=9;i++) for(j=0;j<=9;j++) if(i==j)continue; else for(k=0;k<=9;k++) if(k! =i&&k! =j)count++; cout< } 52.以下能正确计算1*2*3*…*10的程序段是()。 A.do{i=1;s=1;B.do{i=1;s=0; s=s*i;i++;}s=s*i;i++;} while(i<=10);while(i<=10); C.i=1;s=1;D.i=1;s=0; do{s=s*i;do{s=s*i; i++;}i++;} while(i<=10);while(i<=10); 53.以下描述正确的是()。 A.由于do-while循环中循环体语句只是一条可执行语句,所以循环体内不能使用复合语句 B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作 D.do-while循环中,根据情况可以省略while 54.C++语言中while和do-while循环的主要区别是()。 A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句 55.下面有关for循环的正确描述是()。 A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体 D.for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来 56.对for(表达式1;;表达式3)可理解为()。 A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3) C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3) 57.下面程序段的运行结果为()。 for(y=1;y<10;)y=((x=3*y,x+1),x-1); cout<<“x=”< A.x=27,y=27B.x=12,y=13 C.x=15,y=14D.x=y=27 58.以下不是无限循环的语句为()。 A.for(y=0,x=1;x>++y;x=I++)I=x;B.for(;;x++=I); C.while (1){x++;}D.for(I=10;;I--)sum+=I; 59.下面程序的运行结果是()。 #include viodmain() {inti,b,k=0; for(i=1;i<=5;i++) {b=i%2; while(b-->=0)k++;} cout< A.3,-1B.8,-1C.3,0D.8,-2 60.以下正确的描述是()。 A.continue语句的作用是结束整个循环的执行 B.只能在循环体内和switch语句体内使用break语句 C.在循坏体内使用break语句或continue语句的作用相同 D.从多层循环嵌套中退出,只能使用goto语句 61.下面程序段()。 for(t=1;t<=100;t++) {cin>>x; if(x<0)continue; cout< A.当x<0时整个循环结束B.x>=0时什么也不输出 C.cout永远也不执行D.最多允许输出100个非负整数 62.下面程序段()。 x=3; do{y=x--; if(! y){cout<<”x”;continue;} cout<<”#”;}while(1<=x<=2); A.将输出##B.将输出##* C.是死循环D.含有不合法的控制表达式 63.下面程序的运行结果是()。 #include usingnamespacestd; intmain() {inta,b; for(a=1,b=1;a<=100;a++) {if(b>=20)break; if(b%3==1){b+=3;continue;} b-=5; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 C+ 练习题 答案