C上总练习题及参考答案.docx
- 文档编号:24533395
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:26
- 大小:27.81KB
C上总练习题及参考答案.docx
《C上总练习题及参考答案.docx》由会员分享,可在线阅读,更多相关《C上总练习题及参考答案.docx(26页珍藏版)》请在冰豆网上搜索。
C上总练习题及参考答案
C++(上)总复习题
第一、二章习题
一、选择题
1.下列符号串中不合法的C++语言标识符是。
AregisterBTurbo_CCauto_D_123
3.若有整型变量a和c,c的当前值是5,则执行下列语句后a的值是。
a=2+(c+=c++,c+8,++c);c+=c++后c值为11,再自增为12
A13B14C15D16
4.若有整型变量x的当前值是3,则执行下列语句的结果是。
do
cout<<(x-=2);
while(!
(-x));输出1,3变为1后,为逻辑真,取反为假,退出循环
A输出值0B输出值1C输出值3和0D陷入死循环
5.从语法的角度来看,语句if(a<=b<=c)x++;是。
用&&或||连接逻辑表达式
A正确的B语法正确,但在编译是会有警告信息
C语法上是错误的D编译系统不会进行相关检查
7.数学式
在C程序中对应正确的表达式为。
A.sqrt(x*x+y*y)/x*yB.SQRT(x*x+y*y)/x*y
C.sqrt((x*x+y*y)/x/y)D.SQRT(x*x+y*y)/(x*y)
8.设有变量说明:
intx;则表达式(x=4*5,x*5),x+25的值为。
A.20B.45C.100D.125
10.在C++语言中,下面符号串中,能用作变量名的标识符为。
A.autoB.putsC.-1*numD.2-and
11.下面四个用户定义的标识符中,只有一个是正确的。
AcaseB_53Ca&bDab-c
12.在16位系统中,对整型变量inti=32767;++i的值是。
补码,有符号整数
A-1B0C-32768D32768
14.已知整型变量a和b的当前值分别为13和20,a||b的值是。
A0B1C4D29
15.在32位系统中求表达式s=10!
的值时,变量s的类型应当是。
AintBunsignedClongD以上三种都可以
16.下面的常量表示有一个是不正确的,不正确的是。
A-0B0x203C’\55’D’103’
18.如果有下列变理定义:
charc=97;则cout< AaB97C定义非法D赋初值非法 19.数学式 在C程序中对应正确的表达式为。 A.exp(x)+exp(-x)/(a+b)B.(exp(x)+exp(-x))/a+b C.(exp(x)+exp(-x))/(a+b)D.(e^x+e^(-x))/(a+b) 20.在while(! a)中,其中! a与表达式等价 A.a==0B.a==1C.a! =1D.a! =0 21.设有说明: inta,b;执行语句: b=(a=3*5,a*4),a+15;之后,b的值为。 A.15B.30C.60D.90 22.下列表达式中,错误的是。 A.4.0%2.0B.k+++jc.a+b>c+d? a: bD.x*=y+25 25.如果整型量a,b,c的值分别为5、4、3,则语句if(a>=b>=c)c++;执行后c的值是 A,语法错误B.4 C.2D.3有warnning,但if结果为假 26.设标识符ch,a都被定义为字符型变量,以下赋值语句不正确的是_B_ A.ch=a+’3’;B.ch=’ch’+’a’; C.ch=’c’+’h’;D.ch+=ch-a 28.将变量a强制转换为具有b类型的数据,应表示为_AC_。 A.(b)aB.a(b)C.b(a)D.(a)b 29.有整型变量x,y,其中y! =0,下列与x等价 30.已知整型变量a和b的当前值分别为13和16.a&b的值是A A.0(位运算)B.1C.29D.3 32.C++将数据分为若干类型,定义数据类型实际给出了两方面的信息: 定义该类型数据B。 A有效数字位数和数值表示范围 B占用多大存储空间和允许的运算 C数值和字符的不同表示以及适用范围 D适用范围和允许的运算 33.以下给出的标识符中C可用作合法的变量名。 AgotoB$priceCsumD9kilo 34.设inta=l,b=2;那么执行表达式a++&&++b;后a和b的值分别是D。 A1和2B2和2 C1和3D2和3 36.设整型变量X的值是5,则表达式2 A不确定B1C0D表达式非法 37.a≠b且e≤d的c++表达式描述为D。 Aa◇b,c<=dBa! =b&c= Ca=! b&&c<=dDa! =b&&c<=d 38.如果定义了字符变量ch,以下B语句可以实现将键入的字符(包括空格、回车及间隔符)赋予ch。 Acin>>chBcin.get(ch) Ccin>>get(ch)Dch=get() 39.设有变量定义imx=100,y=1,Z,若执行语句Z=y>0? ++x: --x,变量z的值为C。 A99B100C10lD102 41.用#include命令包含的文件是C A目标文件B可执行文件C源程序文件D二进制文件 42.若有a=13,b=5,c=3则a%b*c的值为B A6B9C7.8D8 44.若有宏定义和变量说明如下: #defineX1 #defineYX+1 #defineZY*X/2 inta;a=Y; 则执行以下语句后输出的结果是: B cout< A75B11C125D76 45.设x=2;y=3;表达式x=y==3运算后。 x=A A1B2C3D0 46.一个可执行C++程序的开始执行点是 A程序的第一条语句B包含文件的第一个函数 C名为voidmain的函数D程序中的第一个函数 49.若变量已正确定义并赋值,符合c++语言语法的表达式是A。 A.a=a+7;B.a=7+b+c,a++C.int(12.3%4)D.a=a+7=c+b 50.在C++语言中,int、float和longint这3种类型数据所占用的内存是。 A.均为4个字节B.由用户自己定义 C.由所用机器的机器字长决定的D.任意的 51.若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是C。 A.a=b=c=d=100;B.d++;C.c+b;D.d=(c=22)-(b++); 二、填空题 1.设a、b、c都是整型,则a=b=c=5时,下列表达式的结果是a=15、b=5、c=6。 a+=b+c++ 2.数学表达式sin(30o)+x2cos(20o)的C++语言表达式是。 2题: sin((30*3.14/180)+x*x*cos(20*3.14/180) 4.main() { inti=4,j=5,k=6; 5题注意: 1、使用a&&b时,无论b为何值,输出的结果都一样; 2、使用(a&&b)时,输出结果为1; 3、使用a&b时编译出错; 4、使用(a&b)时输出结果为0 i++&&++j||++k; cout< } 程序的输出是566。 5.voidmain() { inta=13,b=16; cout< a<<’\t’< } 程序输出为013。 6.#definePR(x,y,z)cout< main() { inti=0,j=0,k=0; i=(9+6)%5>=9%5+6%5; cout< ++i||++j&&++k; PR(i,j,k); i+=j++; cout< } 程序的第一次输出是0。 程序的第二次输出是100。 程序的最后一次输出是1。 7.设整型变量x,y,z的值分别为10,3,7;则表达式x>10? x+100: x-10的值是0 8.若整型变量w=1,x=2,y=3,z=4,则条件表达式w>x? w: z>y? z: x的值为__4__ 9.inta=5,b=6,c=1,x=2,y=3,z=4; c=(a=c>x)&&(b=y>z); 问: 执行上述程序后,b的值是__6__,c的值是__0__。 10.程序 voidmain() {intx,y,z; x=y=z=0; cout<<(x++&&++y||z++)<<'\n'; cout< } 程序第一行输出为0 程序第二行输出为101 11.程序 #definePR1(num)cout< #definePR2(a,b)PR1(a);PR1(b) #definePRINT(c,d)cout< main() { intx=10,y=20,z=100; PR1(x); PR2(x,y); PRINT(hex,z); } 输出结果为10102064 第三章选择、循环结构 一、选择题 2.当前整型变量i的值是10,执行下列switch语句后i的值是13。 switch(i) { case9: i+=1; case10: i+=1; case11: i+=1; defaule: i+=1 } 4.下列关于break和switch语句的叙述中,正确的是B。 A.break是switch语句的一个成分 B.在语句switch中可以根据需要使用或不使用break语句 C.在语句switch中必须使用break语句 D.上述结论中两个正确的 5.设有程序段intx=10;while(x=0)x=x-1;则下面描述中正确的是C A.while循环执行10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句只执行一次 6.退出一个循环语句(不终止函数的执行)的有效措施是: A A、breakB、continueC、returnD、exit 7.设整型变量x的当前值为3,执行以下循环语句后,输出的结果为: 7题输出是1-2 do cout<<’\t’<<x-=2; while(! (--x)); A、0B、1-2C、30D、死循环,输出许多值 10.C++语言中D。 A.不能使用do-while语句构成的循环 B.do-whiIe语句构成的循环必须使用break语句才能退出 C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环 二填空题 1.有整型变量a、b,则下列for循环中的输入语句最少可执行1次,最多可执行3次 for(a=0,b=0;b! =30&&a<3;a++)cin>>b; 2.设整型变量I初值是1,则语句while(I++<5);执行后I的值是6。 3.下面程序的执行结果输出101020, #definePR1(num)cou< #definePR2(a,b)PR1(a);PR1(b) main() { intx=10,y=20,z=100; PR1(x); PR2(x,y); } 4.下面程序的执行中共输出3个数,最后一个输出的数是2 voidmain() { 运行结果: 8,5,2 inty=9; for(;y>0;y--) if(y%3==0) cout<<--y<<’\t’; } 5.下面程序的执行结果是死循环。 #include main() { intx=1,i=1; for(;x<50;i++) { if(x>10)break; if(x%2) { x+=3; continue; } x=1; } cout< } 6.[程序] #include 6题 这里将~=0改为! =0了。 不然会有语法错误 本题是通过右移算类型所占的位数 voidmain() { unsignedi; intcount=1; i=~0; while((i>>=1)! =0) count++; cout<<“count=”< } 在16位系统中程序的结果是count=32。 如果将(i>>=1)改为(i>>1)程序的结果是死循环。 不作上述修改,而将unsignedi;改为unsignedchari;;程序的输出结果是count=8。 8.inta,b; for(b=1,a=1;b<=50;b++) { if(a>=10)break; if(a%2==1) {a+=5; continue; } a-=3; } 问: 执行上述程序段后,a的值是10,b的值是6 9.voidmain() {intm,n,x,y; cin>>x>>y; m=1;n=1; if(x>0)m=m+1; if(x>y)n=n+m; elseif(x==y)n=5; elsen=2*m; cout< 问: 为了使输出的结果是n=4,x的输入值应满足条件x>0与x 10.voidmain() {inta,b,c; a=2,b=3,c=1; if(a>b) if(a>c)cout< elsecout< cout<<”end”< } 问: 执行上述程序后输出__3end__。 11.执行下列程序段后,变量n的值是: 12 intn=10; switch(n) {case9: n-=1;case10: n+=1;case11: n--;case12: n++;default: ++n;} 三完善程序题 1.求f(X)=-x2/2! +x4/4! -x6/6+x8/8! …… 要求精度为十万分之一 #include #include voidmain() { doublex,y,t; intn=0; cout<<“Inputx: ” cin>>x t=1; y=0; while(fabs(t)>1e-6) pow(-1,n)*x*x*fabs(t)/(2*n)/(2*n-1) { n++; y+=(t=pow(-1,n)*pow(x,2*n)/(2*n)); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 练习题 参考答案