C++常见选择填空习题集.doc

上传人:good****022 文档编号:116486422 上传时间:2022-07-05 格式:DOC 页数:175 大小:177.04KB
返回 下载 相关 举报
C++常见选择填空习题集.doc_第1页
第1页 / 共175页
C++常见选择填空习题集.doc_第2页
第2页 / 共175页
C++常见选择填空习题集.doc_第3页
第3页 / 共175页
点击查看更多>>
资源描述
第一章 概述 一、选择题 1. 关于C+与C语言的关系描述中,错误的是( ) A. C语言与C+是兼容的 B. C语言是C+的一个子集 C. C+和C语言都是面向对象的 D. C+对C语言进行了一些改进 2. 不可以作为C+用户标识符的是( ) A. Printf B. _123 C. While D. case 3. 由C+目标文件连接而成的可执行文件的缺省扩展名为( ) A. cpp B. obj C. lib D. exe 4. 关于C和C+的描述中,正确的是( ) A. C是面向过程,C+是纯面向对象 B. C+是C的超集 C. C+是对C的错误的修改 D. C+和C没有关系 5. C+对C作了很多改进,从面向过程成为面向对象的主要原因是( ) A. 增加了一些新的运算符 B. 允许函数重载,并允许设置参数默认值 C. 规定函数必须用原型 D. 引进了类和对象的概念 6. 将高级语言编写的源程序翻译成目标程序的是( ) A. 解释程序 B. 编译程序 C. 汇编程序 D. 调试程序 7. C+语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是( ) A. 面向过程 B. 面向对象 C. 安全性 D. 复用性 8. C+语言支持过程程序设计方法和( )设计方法。 A. 面向对象 B. 面向函数 C. 面向用户 D. 面向问题 9. 关于C+和C的关系中,使C发生了质的变化,即从面向过程变成为面向对象的是( ) A. 增加了新的运算符 B. 允许函数重载,并允许缺省参数 C. 规定函数有原型 D. 引进了类和对象的概念 10. C+语言最有意义的方面是支持( ) A. 面向事件 B. 面向程序 C. 面向对象 D. 面向用户 11.下列说法中,正确的是( ) A. C+程序总是从第一个定义的函数开始执行 B. C+程序总是从主函数开始执行 C. C+函数必须有返回值,否则不能调用此函数 D. C+程序中有调用关系的所有函数必须放在同一个源程序文件中 12. 下列描述中,正确的是( ) A. 程序就是软件 B. 软件开发不受计算机系统的限制 C. 软件既是逻辑实体,又是物理实体 D. 软件就是程序、数据与相关文档的集合 13. 为了使模块尽可能独立,要求( ) A. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 14. 下列说法中正确的是( ) A. 数据流图详细描述了系统中对象数据是如何计算的 B. 数据流图详细描述了操作和约束的含义 C. 数据流图中不能有过程 D. 数据流图定义了对象的操作 15. 在C+语言中,自定义的标识符( ) A. 能使用关键字并且不区分大小写 B. 不能使用关键字并且不区分大小写 C. 能使用关键字并且区分大小写 D. 不能使用关键字并且区分大小写 16. 不能用于组成C+程序标识符的是( ) A. 连接符 B. 下划线 C. 大小写字母 D. 数字字符 17. 下列标识符中都是合法的是( ) A. _key, example, a_b B. 5ap, test1, _3a C. bcp, mail, _c_d D. INL, _paper, union 18. 下列符号中,不可作为分隔符的是( ) A. 逗号 B. 分号 C. 问号 D. 英文句号 19. 下列变量名中,合法的是( ) A. CHINA B. byte-size C. double D. A+a 20. 在C+语言中,自定义的标识符( ) A. 能使用关键字并且不区分大小写 B. 不能使用关键字并且不区分大小写 C. 能使用关键字并且区分大小写 D. 不能使用关键字并且区分大小写 21. C+程序的基本单位是( ) A. 字符 B. 程序行 C. 语句 D. 函数 22. 注释的目的主要是用来提高( ) A. 可读性 B. 可移植性 C. 运行效率 D. 编码效率 23. 程序中的注释部分( ) A. 参加编译,并会出现在目标程序中 B. 参加编译,但不会出现在目标程序中 C. 不参加编译,但会出现在目标程序中 D. 不参加编译,也不会出现在目标程序中 24. 在一个C+程序中( ) A. main函数必须出现在所有函数之前 B. main函数可以在任何地方出现 C. main函数必须出现在所有函数之后 D. main函数必须出现在固定位置 25. C+语言可执行程序的开始执行点是( ) A. 程序中第一条可执行语言 B. 程序中第一个函数 C. 程序中的main函数 D. 包含文件中的函数 26. 以下关于C+语言的叙述中,错误的是( ) A. 大写字母和小写字符的意义相同 B. 有些不同类型的变量可以在一个表达式中运算 C. 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D. 同一个运算符号在不同的场合可以有不同的含义 二、填空题 1. 判断一种计算机语言是否为面向对象程序设计语言的三个基本特征是封装性 、继承性 和 多态性 。 2. 在面向对象语言中 可扩充性 是关键。3. 在C+语言中,“/*/”主要用于多行 行注释,“/”用于单 行注释。 4. C+程序的实现经过编辑 、编译 和运行 步骤。 5. 在一个好的程序中,注释可提高程序的 程序的可读性。 6. C+源程序文件的默认扩展名为.cpp 。 7. C+程序在编译中会出现的两类错误分别是致命 错误和警告 错误。 8. C+编译器进行编译的过程可详细地分为三个子过程,它们分别是预处理过程、编译过程和连接过程。 第二章 数据类型与表达式 一、选择题 1. 常量3.14的数据类型是( ) A. double B. float C. void D. 字符串 2. 设有定义:char ch;,以下赋值语句正确的是( ) A. ch=123; B. ch=xff; C. ch=08; D. ch=; 3. 英文大写字母B的ASCII码为42H,英文小写字母b的ASCII码为( ) A. 43H B. 62H C. 74H D. 84H 4. unsigned不能修饰的类型是( ) A. int B. char C. float D. long int 5. 下列字符常量表示中,错误的是( ) A. .105. B. .*. C. .4f. D. .a. 6. signed不能修饰的类型是( ) A. int B. char C.double D. long int 7. 下列字符串常量表示中,错误的是( ) A. ”Yes” or ”No” B. ”.OK!.” C. ”abcdn” D. ”ABC” 8. 下列十六进制的整型常量表示中,错误的是( ) A. 0 xaf B. 0X1b C. 2fx D. 0 xAE 9. 下列double型常量表示中,错误的是( ) A. E15 B. .25 C. 3E5 D. 3E05 10. 设有定义char ch;,正确的赋值语句是( ) A. ch=.123.; B. ch=.xff.; C. ch=.08. D. ch=. 11在C+语言中,080是( ) A. 八进制数 B. 十进制数 C. 十六进制数 D. 非法数 12. 关于字符0的下列描述中不正确的是( ) A. 常用来作为字符串的结束标志 B. 在计算机中存储时占一个字节的内存 C. 是空格字符的转义表示形式 D. 作为逻辑值使用时等价于逻辑“假” 13. 在32位机器环境下,若有int a10;,则表达式sizeof(a)/sizeof(int)的值是( ) A. 10 B. 4 C. 40 D. 2 14. 在C+语言中,char型数据在内存中的存储形式是( ) A. ASCII码 B. 补码 C. 反码 D. 原码 15. 字符串”ABC”的长度是( ) A. 11 B. 7 C. 8 D. 6 16. 设:int a=2, b=2;,则a+ +b的结果是( ) A. 2 B. 3 C. 4 D. 5 17. 若有定义:int x=2;,则表达式x3 B. +a+b+ C. b+(a=3) D. (a=3)-a+ 19. 下列运算符中优先级最高的是( ) A. = B. & C. = D. + 20. 下列运算符中优先级最低的是( ) A. % B. %= C. & D. 21. 表达式(-17)%5的值( )表达式(-17)%(-5)的值。 A. 大于 B. 等于 C. 小于 D. 不确定 22. 下列运算符中,结合性从左向右的是( ) A. - B. C. != D. 23. 若int a=2,b=3;,则表达式a+ +b+的值为( ) A. 11 B. 9 C. 7 D. 5 24. 设有定义int a; float f; double i;,表达式10+.a.+i*f的结果类型是( ) A. int B. float C. double D. 不确定 25. sizeof(double)是一个( ) A. 整型表达式 B. 双精度表达式 C. 函数调用 D. 不合法 26. 下列关于类型转换的描述中错误的是( ) A. 在不同类型操作数组成的表达式中,表达式类型一定是最高类型double型 B. 逗号表达式的类型是最后一个子表达式的类型 C. 赋值表达式的类型是左值的类型 D. 在由低向高的类型转换中是保值映射 27. 下列说法中正确的是( ) A. 隐含类型转换可能会损失数据精度 B. 显式类型转换可能会损失数据精度 C. 隐含类型转换一定会损失数据精度 D. 显式类型转换一定会损失数据精度 28. 在隐含类型转换中,long、int、double三种类型之间的转换顺序为( ) A. long-int-double B. long-double-int C. int-double-long D. int-long-double 29. 下列说法正确的是( ) A. 隐含类型转换可以从高类型转换为低类型 B. 显式类型转换不可以从低类型转换为高类型 C. 隐含类型转换可以在任何类型之间转换 D. 显式类型转换可以在任何类型之间转换 30. 设int n=10,i=4;,则表达式n%=i+1运算后n的值是( ) A. 0 B. 3 C. 2 D. 1 31. 下列运算符中,可以作用于浮点数的是( ) A. + B. % C. D. & 32. 下列各运算符中,不可以作用于浮点数的是( ) A. / B. & C. | D. 33. 下列运算符中,可以作用于浮点数的是( ) A. + B. % C. D. 34. 下列运算符中,结合性从左到右的是( ) A. ?: B. *= C. = D. + 35. 若有下面的定义,则表达式:ab ? a : cd ? c : d的结果为( ) int a=1, b=2, c=3, d=4; A. 1 B. 2 C. 3 D. 4 36. 设x为int型变量,则执行下列语句后,x的值为( ) x=10; x+=x-=x-x; A. 10 B. 20 C. 30 D. 40 37. 若有下面的定义,则对语句c=a+b;的下列说法中正确的是( ) int a=12; float b=1.2f, c; A. 变量a转换为float类型 B. 变量b转换为int类型,运算结果再转换为float类型 C. 变量a和b都转换为一中间类型,运算结果再转换为float类型 D. 以上都不对 38. 执行下列语句后,a的值是( ) int a = 8; a += a -= a*a; A. -240 B. 64 C. 112 D. -112 39. 能正确表示“大于10且小于20的数”的C+表达式是( ) A. 10 x10|x10&x20 D. !(x=20) 40. 表示关系xyZ的C+语言表达式为( ) A. (x=y)&(y=Z) B. (x=y)AND(y=Z) C. (x=y=Z) D. (x=y)&(yb; 后a、b、c的值分别为( ) A. 6,7,6 B. 6,6,6 C. 6,6,5 D. 6,1,6 43. 在C+中,const修饰符主要用于代替C语言中的( )关键字进行常量定义。 A. #include B. static C. #define D. #ifdef 二、填空题 1. 在32位计算机中,若有double *p;,则p占用 4 字节的内存空间。 2. 在C+中,用同一个数据类型定义多个变量时需要用逗号分隔。 3. 变量的三要素分别是(变量的)类型、(变量的)名字(或变量名)、(变量的)值。 4. 表达式(-9)%4的值为-1 ,表达式9%(-4)的值为1 ,表达式(-9)%(-4)的值为-15. 在C+中,0 被用来作为字符串的结束符。 6. 空字符串的长度为1。 7. 在C+中,变量必须遵循先定义后使用的原则。 8. 在16位计算机中,int数据类型占用2个字节。 9. 数据类型转换分为 自动类型转换(隐含类型转换)和强制类型转换(显式类型转换)两种。 10. 在32位机器中,若有:int a10;则表达式sizeof(a)/sizeof(int)的值为10。 11. 在32位机器中,若有:int a10;则表达式sizeof(a)的值为40。 12. 变量的类型既规定了 占用内存字节数(大小) ,也规定了 合法操作。 13. 没有初始化的变量其存储的值要么是默认值,要么是 机器(计算机)决定。 15. 条件表达式的类型由:号前后两个子表达式的高类型决定。 16.赋值表达式的类型由赋值运算符的左值的类型决定。 17. 逻辑运算符&和|的特点是在计算时存在短路现象。 18. 若有定义: int a(4), b(2); 则表达式 a&b|a+|(a-b*2) 运算完成后a的值为4 。 19. 设int型变量x的值为10,则表达式x10?x+100:x-100的值是-90。 三、写程序运行结果 1. #include using namespace std; int main() float x; int i; x=12.6; i=(int)x; coutx=xendl; couti=iendl; x=12.6y=122. #include using namespace std; int main() int i; char c1; i=A; c1=A; coutin; coutc1n; return 0; 65A3. #include using namespace std; int main() coutabcabcendl; coutabcabcendl; abcabcabcabc4. #include using namespace std; int main() int i=1; couti=+iendl; couti=i+endl; i=2i=25. #include void main() int a; a=7*2+-3%5-4/3; double b; b=510+3.2-5.4/0.03; coutatbendl; int m(3),n(4); a=m+ - -n; coutatmtnendl; 10 333.20 4t36. #include void main() int x,y,z; x=y=z=1; -x & +y & +z; coutxtytzn; +x & +y & +z; coutxtytzn; +x & y-|+z; coutxtytzn; 0 1 1 1 2 2 2 1 27. #include void main() char x(m),y(n); int n; n=xy; coutnendl; n=x=y-1; coutn3)+(y-x=1); coutnendl; 113四、改错题 1. 下面程序要求输出x和y的值,x的值为10,y的值为11。 #include using namespace std; void main() const int x; int y=10; y=x+; coutx,y; 第三章 语句 一、选择题 1. 关于switch语句的描述中,正确的是( ) A. switch语句中default子句可以没有,也可有一个 B. switch语句中每个case语句序列中必须有break语句 C. switch语句中default子句只能放在最后 D. switch语句中case子句后面的表达式只能是整型表达式 2. 下列关于goto语句的描述中正确的是( ) A. goto语句可以在一个文件中随意转向 B. goto语句后面要跟上一个它所转向的语句 C. goto语句可以同时转向多条语句 D. goto语句可以从一个循环体内转到循环体外 3. 与以下程序段等价的是( ) while(a) if(b) continue; c; A. while(a) if(!b) c; B. while(c) if(!b) break; c; C. while(c) if(b) c; D. while(a) if(b) break; c; 4. 在设计C+程序时,应采用的原则之一是( ) A. 不限制goto语句的使用 B. 减少或取消注释行 C. 程序越短越好 D. 程序结构应有助于读者理解 5. for(int m=n=0; !n&m=10; m+);语句的循环次数为( ) A. 10 B. 11 C. 12 D. 无限 6. 下面的do语句的循环体执行次数为( ) int a=10; do a-; while(a!=0); A. 10 B. 9 C. 11 D. 12 7. 下列for循环的循环体执行次数为(假设循环体中没有引用i和j)( ) for(int i=0, j=10; i=j=10; i+,j-)循环体; A. 0 B. 1 C. 10 D. 无限 8. 下列关于if语句的描述中错误的是( ) A. if语句中只有一个else子句 B. if语句中可以有多个else if子句 C. if语句中if体内不能是开关语句 D. if语句的if体中可以是循环语句 9. 下面的程序( ) #include void main() int a=5, b=4, c=3; if( a = b+c ) cout”*”endl; else cout”$”endl; A. 有语法错误,不能通过编译 B. 可以通过编译但不能通过连接 C. 输出* D. 输出$ 10. 为了避免嵌套的if-else语句的二义性,C+规定else总是与( )组成配对关系。 A. 缩排位置相同的if B. 在其之前未配对的if C. 在其之前未配对的最近的if D. 同一行上的if 11执行下列程序,输入为1时的输出结果是( ) #include void main() int k; cink; switch(k) case 1: coutk+” ”; case 2: coutk+” ”; case 3: coutk+” ”; case 4: coutk+” ”; break; default: coutFull! ” ”; coutendl; A. 1 B. 2 C. 2 3 4 5 D. 1 2 3 4 12. 下列while循环的循环次数为( ) while(int i=0)i-; A. 0 B. 1 C. 5 D. 无限 13. 下列do-while循环的循环次数为( ) 已知:int i=5; do cout i- endk; i-; while(i!=0); A. 1 B. 2 C. 5 D. 无限 14. 下列描述正确的是( ) A.不是每个C+程序都必须包含预处理命令#include B. C+程序必须有return语句 C. C+程序中的变量必须定义在主程序内部 D. C+程序中所使用的符号常量可以不进行定义 15. 已知int x,y;,下列switch语句中,正确的是( ) A. switch(x*y) B. switch case 1: x*y; break; case 1,5: x+; case 2: break; case 3,7: y+; C. switch(x) D. switch(x+y/100) case x: x*x; break; case x: x*x/100; break; case y: y*y; break; case y: y*y/100; break; 16. 下列关于goto语句的描述中正确的是( ) A. goto语句可以在一个程序中随意转向。B. 循环体中不能出现goto语句 C. goto语句后面要跟上一个它所要转向的语句 D. goto语句不是结构化语句 17.执行以下程序段的输出结果是( ) int s1=0,s2=0,s3=0,s4=0; for(int t=1;t=4:s1+;break; case t=3:s2+;break; case t=2:s3+;break; default:s4+; couts1,s2,s3,s41; -i) cout.*.;语句段后,输出字符“*”的个数是( ) A. 7 B. 8 C. 9 D. 10 二、写程序运行结果 1. 写出下面的程序的运行结果 #include #include void main() int i,j,k; for(i=1; i=6; i+) for(j=1; j=20-2*i; j+) cout” ”; for(k=1;k=i; k+) coutsetw(4)i; coutendl; 2. 写出下面的程序的运行结果 #include #include void main() int i,j,k; for(i=1; i=6; i+) for(j=1; j=20-3*i; j+) cout ” “ ; for(k=1; k=i; k+) cout setw(3) 0; k-) cout setw(3) k ; coutendl; 3. #include char input=”SSSWILTECH1111W1WALLMP1”; void main() int i; char c; for(i=2; (c=inputi)!=0; i+) switch(c) case a: couti; continue; case 1: break; case 1: while(c=input+i)!=1 & c!=0); case 9: coutS; case E: case L: continue; default: coutc; continue; cout” “; coutendl; SWITCH SWAMP4. #include void main() int a,b,c,s,i; a=b=c=0; for(i=0; is; switch(s%3) case 0: a+=s; break; case 1: b+=s; break; case 2: c+=s; break; couta”,”b”,”cendl; 假定输入的10个整数为:12,34,54,51,9,45,63,27,6,35,写出该程序的运行结果。 267,34,355. #include void main() int i,j; for(i=1; i0; j-)cout” “; for(j=1; j=2*i-1; j+)cout”*”; cout=1; i-) for(j=(4-i)*2; j0; j-)cout” “; for(j=1; j=2*i-1; j+)cout”*”; coutendl; 三、改错题 1. 水仙花数是一个三位数,其各位数字的立方和等于该数本身。以下程序输出所有的水仙花数。 #include using namespace std; void main() int i,a,b,c; for (i=100;i1000;i+); a=i/100; b=i%100/10; c=i/10; if (i=a*a*a+b*b*b+c*c*c) coutiendl; 2. #include #include void main() for(int n=1;n6;n+) coutsetfill( )setw(n) setfill(m)setw(11-2*n)mendl; 四、程序填空题 1. 求3到100之间的所有素数之和。 #include 1 #include void main() int sum=0; for (int i=3; i=100; i+) int temp=int(sqrt(i); for (int j=2; jtemp) sum+=i; coutsumendl; 2. 展转相除法求两个整数a和b的最小公倍数。 #include using namespace std; void main() int a=10,b=15; int temp,i=1; if ( 1ab ) temp=a; a=b; b=temp; while (i*a%b!=0) 2i+ ; cout 3i*a endl; 3.下列程序计算1000以内能被3整除的自然数之和,请完成程序。 #include void main() int x=1, sum; 1sum=0; while(1) if( 2x1000 )break; if( 3x%3=0 )sum+=x; x+; coutsumendl; 第四章 函数与预处理 一、选择题 1. 若要定义一个只允许本源文件中所有函数能使用的全局变量,则该变量需要使用的存储类别是( ) A. extern B. register C. auto D. static 2. 函数的重载是指( ) A. 两个或两个以上的函数有相同的函数名,但函数形参的个数或类型不同 B. 两个以上的函数有相同的函数名和相同个数的参数,但形参的类型可以不同 C. 两个以上的函数有不同的函数名,但形参的个数或类型相同 D. 两个以上的函数有相同的函数名,并且函数的返回类型不同 3. 关于函数的描述中,正确的是( ) A. 函数的定义可以嵌套,函数的调用不可以嵌套 B. 函数的定义不可以嵌套,函数的调用可以嵌套 C. 函数的定义和函数的调用均可以嵌套 D. 函数的定义和函数的调用均不可以嵌套 4. 若有宏定义: #define S(x) (x)*(x) ,则表达式:2.7/S(3.0)在预编译过程中将( ) A. 被替换为2.7/3.0*3.0 B. 被替换为2.7/(3.0)*(3.0) C. 被替换为2.7/(3.0)*(3.0) D. 不能被替换 5. 关于内置函数的说法中,不正确的是( ) A. 内置函数不需要使用堆栈进行现场的保护与恢复 B. 内置函数以牺牲程序的存储空间换取程序的执行时间 C. 内置函数体内不能有循环语句 D. 类的内置函数必须在类体外通过加关键字inline定义 6. 在函数定义前加上inline表示该函数被定义为( ) A. 重载函数 B. 内置函数 C. 成员函数 D. 普通函数 7. 关于设置C+函数参数默认值的描述中,正确的是( ) A. 不允许设置函数参数的默认值 B. 只能在定义函数时设置函数参数的默认值 C. 设置函数参数默认值时,应该是先设置右边的再设置左边的 D. 设置函数参数默认值时,应该全部参数都设置 8. 若同时定义了下列四个选项格式的函数和模板,fun(8,3.1)调用的是( ) A. templateclass T1,class T2)fun(T1,T2) B. fun(double,int) C. fun(char,char) D. fun(double,char) 9. 关于函数模板的叙述中,正确的是( ) A. 函数模板实际上是函数类型和形参类型不具体指定的通用函数 B. 函数模板可以用于描述函数体不同的一系列函数 C. 函数模板可以用于描述参数个数不同的一系列函数 D. 函数模板定义中typename和class的作用不同 10. 关于变量的存储类别的描述中,不正确的是( ) A. 变量的存储类别指的是变量值在内存中存储的方法 B. 变量的存储类别与变量值存在的时间有关 C. 变量的存储类别决定了变量占用内存的分配与释放时间 D. 变量的存储类别不能确定变量的作用域 11已知函数func的原型是:double func(double*pd,int &ri); 变量x和y的定义是:double x; int y; 把x和y分别作为第一参数和第二参数来调用func,正确的调用语句是( ) A. func(x,&y); B. func(&x,y); C. func(&x,&y); D. func(x,y); 12. 关于递归函数的说法中,不正确的是( ) A. 递归函数可以改写为非递归函数 B. 递归函数应有递归结束的条件 C. 解决同一个问题的递归函数的效率比非递归函数的效率要高 D. 递归函数往往更符合人们的思路,程序更容易理解 13. 下列叙述中,正确的是( ) A. 预处理命令行必须位于源文件的开头 B. 在源文件的一行上可以有多条预处理命令 C. 宏名必须用大写字母表示 D. 宏替换不占用程序的运行时间 14. 关于函数模板的说法中,正确的是( ) A. 函数模板中typename和class用于定义不同的虚拟类型名 B. 能被函数模板代替的函数必须具有相同个数的形参 C. 函数模板的虚拟类型名由C+系统自动确定 D. 函数模板的虚拟类型名是在运行阶段确定实际类型的 15. 关于函数的说法中,错误的是( ) A. 函数定义是平行的 B. 函数可以嵌套调用 C. 函数可以嵌套定义 D. 函数可以递归调用 16. 定义一个函数模板要用到的第一个修饰符是( ) A. typename B. template C. class D. typedef 17. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( ) A. 内置函数 B. 重载函数 C. 递归函数 D. 函数模板 18. 不是重载函数调用时选择依据的是( ) A. 参数个数 B. 参数类型 C. 函数名字 D. 函数类型 19. 关于局部变量的说法中,不正确的是( ) A. 函数声明中的形式参数名在函数被调用时分配内存空间 B. 不同的函数中可以定义同名的局部变量 C. 函数定义中的形式参数名也是局部变量 D. 局部变量只在定义它的函数或复合语句(块)中有效 20. 关于函数模板的叙述中,正确的是( ) A. 函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 21. 在函数的传值调用中,要求( ) A. 形参和实参类型任意,个数相等 B. 形参和实参类型相同,个数相等 C. 形参和实参对应类型一致,个数相等 D. 形参和实参对应类型一致,个数任意 22. 适宜定义为内置函数的是( ) A. 函数体含有循环语句 B. 函数体含有递归语句 C. 需要加快程序的执行速度 D. 函数代码多且不常调用 23. 设函数模板定义为 template T f(T x,T y)return x+y; 对该函数模板使用不正确的是( ) A. f(4,8); B. f(4.9,8.5); C. f(12.8f,45.9f); D. f(123,456); 24. 若在程序中有一个名字为a1的全局标识符,在该程序的某函数中有一个同名的局部标识符,如果在该函数中访问这个同名的全局标识符,则该全局标识符应表示为( ) A. a1 B. a1: C. -a1 D. :a1 25. 下列条件编译命令中下划线处是( ) #if( ) 语句1; #else 语句2; #endif A. 整常量表达式 B任意标识符. C. 任意表达式 D. 被定义的宏名 26. 在函数的返回值类型与返回值表达式的类型描述中错误的是( ) A. 函数返回值的类型在函数定义时确 定,在函数调用时是不能改变的 B. 函数返回值的类型就是返回值表达式的类型 C. 函数返回值表达式类型与函数返回值类型不同时,表达式类型应转换成函数返回值类型 D. 函数返回值类型决定了返回值表达式的类型 27. 适合于实现功能不复杂但又要求有较快执行速度的函数是( ) A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数 28. 在函数说明中,不必要的是( ) A. 函数的类型 B. 函数参数的类型 C. 函数的名字 D. 函数参数的名字 29. 属于文件级作用域的标识符是( ) A. 函数形参 B. 语句标号 C. 外部静态类标识符 D. 自动类标识符 30. 预处理命令在程序中都是以( )开头的。 A. * B. # C. : D. / 31. 在带参数的宏定义中,程序中引用宏定义的实参( ) A. 只能是常量 B. 只能是整型量 C. 只能是整型表达式 D. 可以是任意表达式 32. 在下列存储类标识符中,可见性和存在性不一致的是( ) A. 外部类 B. 自动类 C. 内部静态内 D. 寄存器类 33. 作用域运算符的功能是( ) A. 标识作用域的级别 B. 指出作用域的范围 C. 给定作用域的大小 D. 标识某个成员属于哪个类 34. 下列说法正确的是( ) A. C+语言的函数原型与C语言的函数说明格式相同 B. 不允许在C+语言的函数原型中说明参数类型 C. 当函数自变量个数不确定时,系统不自动检测自变量 D. 不论函数自变量个数是否确定,系统都不自动检测自变量 35. 当函数的自变量个数不确定时,参数表用( )表示。 A. B. * C. 空格 D. ? 36. 在C +语言中规定函数的返回值的类型是由( ) A. return语句中的表达式类型所决定 B. 调用该函数时的主调用函数类型所决定 C. 调用该函数时系统临时决定 D. 在定义该函数时所指定的函数类型所决定 37. 局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用( )提供对全局变量的访问。 A. 域运算符 B. 类运算符 C. 重载 D. 引用 38. 在不同文件的函数中,对全局变量的引用要加上( )关键字。 A. register B. auto C. static D. extern 39. 下面程序段的输出结果为( ) #define PI 3.141593 #include iostream.h void main(void) cout”PI=”PIendl; A. 3.141593=3.141593 B. PI=3.141593 C. 3.141593=PI D. 程序有错误,无输出结果 40. 以下的函数调用语句中实参的个数是( ) fun(a+b, (x, y), fun
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 机械制造 > 机械制造


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!