南工大C++练习卷.docx
- 文档编号:3933815
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:27
- 大小:22.55KB
南工大C++练习卷.docx
《南工大C++练习卷.docx》由会员分享,可在线阅读,更多相关《南工大C++练习卷.docx(27页珍藏版)》请在冰点文库上搜索。
南工大C++练习卷
test
1、单项选择题(本题共计54分)
1、实型变量x的取值范围为闭区间[–2,10]或开区间(15,34),则正确表示x取值范围的逻辑表达式是_____()
A、–2<=x<=10||15 B、(–2<=x&&x<=10)||(15 C、–2<=x<=10&&15 D、(–2<=x&&x<=10)&&(15 2、设有定义inta;floatf;doublei;则表达式10+'a'+i*f值的数据类型是________。 () A、int B、float C、double D、不确定 3、表达式18/4*sqrt(4.0)/5值的数据类型是________() A、int B、float C、double D、不确定 4、在C++语言中,char型数据在内存中的存储形式是________() A、ASCII码 B、补码 C、反码 D、原码 5、设charch;以下正确的赋值语句是________() A、ch='123'; B、ch='\xff'; C、ch='\08' D、ch='\' 6、sizeof(double)是一个________表达式。 () A、整型 B、双精度 C、不合法 D、函数调用 7、设n=10,i=4,则赋值运算n%=i+l执行后,n的值是________。 () A、0 B、3 C、2 D、1 8、设intn=3;则++n的结果是________,n的结果是________。 () A、23 B、32 C、44 D、53 9、设有语句“intk=7,x=12;”,则能使值为3的表达式是______() A、x%=(k%=5) B、x%=(k–k%5) C、x%=k–k/5 D、(x%=k)–(k%=5) 10、设有说明“intx=10,y=4,f;floatm;”,执行表达式“f=m=x/y”后,则f、m的值分别为() A、2、2.5 B、3、2.5 C、2.5、2.5 D、2、2.0 11、设有变量说明: inta=3,b=4,c=5下列表达式中,值为0的表达式是() A、‘a’&&‘b B、a<=b C、a||b+c&&b-c D、! (a 12、采用函数重载的目的在于________。 () A、实现共享 B、减少空间 C、提高速度 D、使用方便,提高可读性 13、若有以下变量和函数说明: #include charch='*'; voidsub(intx,inty,charch,double*z) {switch(ch) {case'+': *z=x+y;break; case'-': *z=x-y;break; case'*': *z=x*y;break; case'/': *z=x/y;break; } } 以下合法的函数调用语句是________。 () A、sub(10,20,ch,y); B、sub(1.2+3,2*2,'+',&z); C、sub(sub(1,2,'+',&y),sub(3,4,'+',&x),'-',&y); D、sub(a,b,&x,ch); 14、以下程序的输出是________。 #include intw=3; intfun(int); voidmain() {intw=10; cout< } intfun(intk) {if(k==0)returnw; return(fun(k-1)*k); }() A、360 B、3600 C、1080 D、1200 15、设有语句“voidf(inta[10],int&x);inty[10],*py=y,n;”,则对函数f的正确调用语句是_____。 () A、f(py[10],n); B、f(py,n); C、f(*py,&n); D、f(py,&n); 16、设有宏定义和语句如下: #defineM(a,b)a*b;//E intx=M(3+,5+6),y;//F y=M(3,4);//G则() A、 编译时,E行有语法错 B、 编译时,F行有语法错 C、 编译时,G行有语法错 D、 编译时,F行和G行有语法错 17、C++语言中规定函数的返回值的类型是由________。 (\D) A、return语句中的表达式类型所决定 B、调用该函数时的主调用函数类型所决定 C、调用该函数时系统临时决定 D、在定义该函数时所指定的函数类型所决定 18、在函数的返回值类型与返回值表达式的类型的描述中,错误的是________。 (B) A、函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的 B、函数返回值的类型就是返回值表达式的类型 C、函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成返回值类型 D、函数返回值类型决定了返回值表达式的类型 19、以下函数调用语句中实参的个数是________。 excc((v1,v2),(v3,v4,v5),v6);() A、3 B、4 C、5 D、6 20、在传值调用中,要求________。 () A、形参和实参类型任意,个数相等 B、实参和形参类型都完全一致,个数相等 C、实参和形参对应的类型一致,个数相等 D、实参和形参对应的类型一致,个数任意 21、对于以下递归函数f,调用f(4),其返回值为____________。 intf(intn) { if(n)returnf(n-1)+n; elsereturnn; }() A、10 B、4 C、0 D、以上均不是 22、已知函数f的定义是: intf(intn){n*=2;returnn+1;}则执行 intm=5,n=3; m=f(n); 后,变量m的值和n的值分别是_________。 () A、53 B、76 C、73 D、56 23、已知一函数中有下列变量定义,其中属于静态变量的是__________。 () A、inta=5; B、staticdoubleb; C、registercharc; D、autoshortd; 24、已知函数f的原型是: intf(chara,char*b=NULL,doublec=0.0);则下列调用中,不能正确地调用f函数的是__________。 () A、f(99) B、f('A',4.5) C、f('A',"123") D、f((char)65,"123") 25、以下能正确计算1*2*3*…*10的程序段是___________。 () A、do{i=1;s=1; s=s*i;i++;} while(i<=10); B、do{i=1;s=0; s=s*i;i++;} while(i<=10); C、i=1;s=1; do{s=s*i; i++;} while(i<=10); D、i=1;s=0; do{s=s*i; i++;} while(i<=10); 26、intx=0,y=0; while(x<15)y++,x+=++y; cout< 则运行结果为___________。 () A、20,7 B、6,12 C、20,8 D、8,20 27、设有代码“inta=5;”,则执行了语句“a+=a-=a*a;”后,变量a的值是____________。 () A、3 B、0 C、-40 D、–12 28、设变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是____________。 () A、0,0 B、0,1 C、1,0 D、1,1 ? 29、下列字符列中,可以作为“字符串常量”的是____________。 () A、ABC B、″xyz″ C、′uvw′ D、′a′ 30、运算符+、<=、=、%中,优先级最低的运算符是____________。 () A、+ B、<= C、= D、% 31、在C++语言中,080是____________。 () A、八进制数 B、十进制数 C、十六进制数 D、非法数 32、带参数的宏定义中,程序中引用宏定义的实参_______(A) A、只能是常量 B、任何标识符 C、任意表达式 D、被定义的宏名 33、预处理命令在程序中都是以_______开头的。 () A、* B、# C、: D、/ 34、以下程序输出的结果是a=_______,b=_______ #include voidmain(void) {for(inta=1,b=1;a<=5;a++) {if(b>=8)break; if(b%2==1){b+=7;continue;} b-=3; } cout<<"a="< }() A、28 B、17 C、82 D、71 35、break语句只能用在_______() A、开关语句中 B、函数体中允许语句出现的任一位置 C、循环语句中 D、开关语句或循环语句中 36、循环语句for(<表达式1>;<表达式2>;<表达式3>)<语句>中,<语句>的执行情况是______.() A、至少执行一次 B、至少执行两次 C、可能执行,也可能不执行 D、不执行 37、下面程序的运行结果是_______ #include voidmain() { inti=0; while(++i) { if(i==10)break; if(i%3! =1)continue; cout< } }() A、147 B、111 C、333 D、246 38、下列关于开关语句的描述中,_______是正确的.() A、开关语句中default子句可以没有,也可以有一个 B、开关语句中每个语句序列中必须有break语句 C、开关语句中default子句只能放在最后 D、开关语句中case子句后面的表达式可以是整型表达式 39、下述关于break语句的描述中,_______是不正确的() A、break语句可用于循环体内,它将退出该重循环 B、break语句可用于开关语句中,它将退出开关语句 C、break语句可用于if体内,它将退出if语句 D、break语句在一个循环体内可以出现多次 40、下述关于循环体的描述中,_______是错误的.() A、循环体中可以出现break语句和continue语句 B、循环体中还可以出现循环语句 C、循环体中不能出现goto语句 D、循环体中可以出现开关语句 41、下列for循环的循环体执行次数为__________. For(inti=0,j=10;i=j=10;i++,j--)() A、0 B、1 C、10 D、无限 42、下列DO-While循环的次数为________. inti=5; Do {cout< i--; }while(i! =0);() A、0 B、1 C、5 D、无限 43、下列________是语句.() A、; B、a=17 C、x+y D、cout<<”\n” 44、设e1和e3是表达式,与语句for(e1;;e3)s;等同的语句是____________。 () A、for(e1;e1;e3)s; B、for(e1;e3;e3)s; C、for(e1;0;e3)s; D、for(e1;1;e3)s; 45、为了避免嵌套的if-else语句的二义性,C++语言规定else总是与______组成配对关系。 () A、缩排位置相同的if B、在其之前未配对的if C、在其之前未配对的最近的if D、同一行上的if 46、执行下列程序,输入为1的输出结果是_________。 #include main() {intk; cin>>k; switch(k) {case1: cout< case2: cout< case3: cout< case4: cout< default: cout<<"Full! "< } }() A、1 B、2 C、2345 D、1234 47、以下程序的输出结果是________。 #include voidmain() { intx=1,y=0,a=0,b=0; switch(x) {case1: switch(y) {case0: a++;break; case1: b++;break; } case2: a++;b++;break; } cout< }() A、2,1 B、1,1 C、1,0 D、2,2 48、下面有关for循环的正确描述是________。 () A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 49、C++语言中while和do-while循环的主要区别是________.() A、do-while的循环体至少无条件执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 50、以下程序的输出结果是________。 #include voidmain() {inti; for(i=4;i<=10;i++) {if(i%3==0)continue; cout< } }() A、45 B、457810 C、69 D、678910 51、若有执行语句charstr[7];cin>>str;当输入为: ObjectWindowsPrograrmming! 所得的结果是str=________() A、ObjectWindowsProgramming! B、Object C、ObjectWindows D、ObjectWindowsProgramming 52、C++中cin是____________。 () A、一个标准的语句 B、预定义的类 C、预定义的函数 D、预定义的对象 53、在ios中提供控制格式的标志位中,________是转换为十六进制形式的标志位。 () A、hex B、oct C、dec D、1eft 54、控制格式I/O的操作中,________是设置域宽的。 () A、ws B、oct C、setfill() D、setw() 2、填空题(本题共计112分) 1、52.若有宏定义: #defineN3 #defineY(n)((N+1)*n) 则执行语句“z=2*(N+Y(N+2));”后,z的值为__________。 2、在C++中,函数名的值是___________。 3、若有宏定义: #defineT(x,y,z)x*y*z/4则表达式T(8-3,2*4,2+3)的值是______。 4、以下程序输出结果的第一行是___________,第二行是____________。 #include intk; voidmain(void) {k=5; for(inti=0;i<5;i++){ intk;k=i+1; cout< if(i%2): : k++; } cout<<'\n'< } 5、以下程序输出的第一行是___________,第三行是___________。 #include intfun(intn) {staticintj=1; returnj*=++n; } voidmain(void) {for(intk=1;k<=4;k++) cout< } 6、执行以下语句序列后,y的值为____________。 #defineS(x)x*x inty,z=5; y=S(z+2); 7、运行以下程序后输出的第二行是_________,第四行输出的是___________。 #include intf(intn,intx) {x+=1; if(n==3)returnx; elsereturnx+f(n+1,x+1); } voidmain(void) {cout< cout< cout< cout< } 8、如果一函数直接或间接地调用自身,这样的调用称为__________。 9、已知函数f的定义是: intf(intn) {n*=2;returnn+1;} 则执行 intm=6,n=2; m=f(n); 后,m和n的值分别是________。 10、已知函数f的定义是: intf(intn,intm=8) {returnn*m;} 则执行 inta=3; cout< 后输出的结果是____________。 11、下面程序运行后输出的第二行是___________。 #include inta=5; voidmain() {inta=10,b=20;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南工大 C+ 练习