C++语言程序设计期末复习题

上传人:ail****e1 文档编号:52707145 上传时间:2022-02-09 格式:DOCX 页数:29 大小:34.93KB
返回 下载 相关 举报
C++语言程序设计期末复习题_第1页
第1页 / 共29页
C++语言程序设计期末复习题_第2页
第2页 / 共29页
C++语言程序设计期末复习题_第3页
第3页 / 共29页
点击查看更多>>
资源描述
C+语言程序设计期末复习题一、单项选择题1. C+源程序文件的默认扩展名为(A )。A. cppB. exeC.objD.lik2. 由C+翎程序文件编译而成的目标文件的默认扩展名为(C )。A. cppB. exeC.objD.lik3. 由C+目标文件连接而成的可执行文件的默认扩展名为(B )。A. cppB. exeC.objD.lik4. C+程序从上机到得到结果的几个操作步骤依次是(B )。A.编译、编辑、连接、运行B.编辑、编译、连接、运行C.编译、运行、编辑、连接D.编辑、运行、编辑、连接5. 以下标识符中不全是保留字的是( B )。A. case for int B. default then whileC. bool class long D. goto return char6. 能作为C+理序的基本单位是(C )。A. 字符 B. 语句 C. 函数 D.源程序文件7. 程序中主函数的名字为(A )。A. main B. MAIN C. Main D.任意标识符8. C+程序的基本模块为( D )。A. 表达式 B. 标识符 C. 语句 D. 函数9.可用作C+斑言用户标识符的一组标识符是(B )A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof10. 存储以下数据,占用存储字节最多的是( D )。A. 0 B. 0C. 0D.11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(D ) 符号作为分隔符。A.空格或逗号B.逗号或回车C.逗号或分号D. 空格或回车12. 设“ int a=12; ”,则执行完语句 a+=a*a;后, a的值是(C )。A.12 B.144 C.156 D.28813. 假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式的表达式是(D)。A. a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. a/b/c14. 设“ int a=15,b=26;,则 cout0 & x=10的相反表达式为( AA. x10 B. x1017. x0 | y=5的相反表达式为(BA. x=0 | y!=5 B. x=0 & y!=510,则表达式x & y的值为(C )。D. 与x值相反)C. x=0 | x0 & x10C. x0 | y!=5 D. x0 & y=518 .设x和y均为bool量,则x & y为真的条件是(A )A.它们均为真B. 其中一个为真 C. 它们均为假 D. 其中一个为假为假的条件是(C )19 .设x和y均为bool量,贝U x | yA.它们均为真B.其中一个为真C.它们均为假D.其中一个为20. 字符串 a+b=12 n”的长度为(B )。长度算的不是字节,“12”算为2A. 6 B. 7 C. 8 D. 921. 假定下列x和y均为int型变量,则不正确的赋值为( B )。X+没有意义A. x+=y+ B.x+=y+ C.x=+y D.+x=+y22. 下列的符号常量定义中,错误的定义是( C )。A. const M=10; B. const int M=20;C. const char ch; D. const bool mark=true;23. 循环语句“for(int i=0; i n; i+) couti*i ;中循环体执行的次数为 (C )。A. 1 B. n-1 C. n D. n+124. 在下面循环语句中循环体执行的次数为( B )。for(int i=0; in/2) break;A. n/2 B. n/2+1 C. n/2-1 D. n-125. 在下面循环语句中内层循环体S语句的执行总次数为( D )。for(int i=0; in; i+)for(int j=i; jn; j+) S;A. n 2 B. (n+1)/2 C. n(n-1)/2 D. n(n+1)/226. 在下面循环语句中循环体执行的次数为( C )。int i=0,s=0; while(s20) i+; s+=i;A. 4 B. 5 C. 6 D. 727. 在下面循环语句中循环体执行的次数为(A. 4 B. 3 C. 5 D. 228. 当处理特定问题时的循环次数已知时,通常采用( A )来解决。A. for 循环 B. while 循环 C. do 循环 D. switch 语句29. 循环体至少被执行一次的语句为( C )。A. for 循环 B. while 循环 C. do 循环 D.任一种循环30. switch语句能够改写为( B )语句。A. for B. if C. do D. while31. do语句能够改写为(D )语句。A. 复合 B. if C. switch D. while32. 在下面的一维数组定义中,哪一个有语法错误。(C )A. int a尸1,2,3;B. int a10=0;C. int a; D. int a5;33. 在下面的字符数组定义中,哪一个有语法错误。(D )。A. char a20= abcdefg”B. char a= x+y=55.”C. char a15;D. char a10= 5;34. 在下面的二维数组定义中,正确的是(C )。A. int a5;B. int a5;C. int a3=1,3,5,2; D. int a(10);35. 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;,则元素a12的值为(C )。A. 2 B. 4 C. 6 D. 836. 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;,则元素a21的值为(A )。A. 0 B. 4 C. 8 D. 637. 若定义了函数 double *function(), 则函数function的返回值为(B )。A. 实数型 B.实数的地址C.指向函数的指针D.函数的地址38. 以下说法中正确的是(B)。A. C+程序总是从第一个定义的函数开始执行B. C+程序总是从main函数开始执行C. C+函数必须有返回值,否则不能使用函数D. C+程序中有调用关系的所有函数必须放在同一个程序文件中39. 以下叙述中不正确的是(C )。A. 在一个函数中,可以有多条 return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量40. 函数重载是指(A )。A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同41. 以下关于函数模板叙述正确的是( C )。A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型42. 下列(C )的调用方式是引用调用。A.形参和实参都是变量B.形参是指针,实参是地址值C.形参是引用,实参是变量D.形参是变量,实参是地址值43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择(A )。A. 内联函数B.重载函数C.递归函数D.函数模板44. 函数原型语句正确的是( B )。A. int Function(void a); Function (int);C. int Function(a); int(double a);45. C+中函数返回值的类型是由( B )决定的。A. return语句中表达式的类型B.该函数定义时的类型C.调用函数时的调用语句D.系统根据结果46以下函数的返回结果是(A )。int function(char *x) char *p=x; while(*p+); return(p-x-l);)A.求字符串的长度B.将字符串x连接到字符串p后面C.将字符串x复制到字符串p中D.将字符串x反向存放47. 函数调用func(exp1,exp2),(exp3,exp4,exp5) 中所含实参的个数为 (B ) 个。A. 1 B. 2 C. 4 D. 548. 设有如下函数定义int f(char *s) char *p=s;while(*p!= 0 ) p+;return(p-s);)在主函数中用cout f( good)调用上述函数,则输出结果为(B )。A. 3 B. 4 C. 5 D. 649. 以下正确的函数原型语句是(C )。A. double fun(int x,int y)B. double fun(int x;int y)C. double fun(int,int);D. double fun(int x,y);50. 以下正确的说法是(B )。A. 用户调用标准库函数前,必须重新定义B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义C. 系统不允许用户重新定义标准库函数D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中、填空题1. C+ 语言是在 语言的基础上发展起来的。2. C+语言的编译单位是扩展名为 的 源代码 文件。3. 行尾使用注释的开始标记符为 。4. 多行注释的开始标记符和结束标记符分别为 和。5. 用于输出表达式值的标准输出流对象是 。6. 用于从键盘上为变量输入值的标准输入流对象是 。7. 一个完整程序中必须有一个名为 的函数。8. 一个函数的函数体就是一条 语句。9. 当执行cin语句时,从键盘上输入每个数据后必须接着输入一个 符,然后 才能继续输入下一个数据。10. 在C+程序中包含一个头文件或程序文件的预编译命令为 。11. 程序中的预处理命令是指以 字符开头的命令。12. 一条表达式语句必须以 作为结束符。13. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是定义的头文件。14. 使用#include命令可以包含一个头文件,也可以包含一个 文件。15. . 一个函数定义由 和 两部分组成。16. .若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的 语句。17. . C+以文件和源程序文件的扩展名分别为 和。18. .程序文件的编译错误分为 和 两类。19. .当使用 保留字作为函数类型时,该函数不返回任何值。20. .当函数参数表用 保留字表示时,则表示该参数表为空。21. .从一条函数原型语句“ int fun1(void); 可知,该函数的返回类型为 ,该 函数带有 个参数。22. 当执行cout语句输出endl数据项时,将使C+城示输出屏幕上的光标从当前位置 移动到 的开始位置。23,假定x=5, y=6,则表达式x+*+y的值为 35。X+返回的值是加之后的,但x本身已经加了 1 了,注意是返回值,区别 +x24. 假定x=5, y=6,则表达式 x-*-y 的值为 25。25. 假定x=5, y=6,则执行表达式y*=x+计算后,x和y的值分别为 6 和30 o26. 假定x=5, y=6,则执行表达式y+=x-计算后,x和y的值分别为 4 和11。27. C+ 常数0x145对应的十进制值为 。28. C+ 常数0345对应的十进制值为 。29,十进制常数245对应的十六进制的 C+然示为。10是A了30. 十进制常数245对应的八进制的 C+以示为。31. signed char类型的值域范围是 至 之间的整数。32. int 和float 类型的数据分别占用 4 和 4 个字节。33. float 和double类型的数据分别占用 4 和 8 个字节。34. bool 和char类型的数据分别占用 1 和 1 个字节。35. unsigned short int 和int类型的长度分别为 2 和 4。36. 字符串“ This s a book.n” 的长度为 15。37. 字符串s a penn”的长度为 15。38. 在C+中存储字符串 abcdef”至少需要 个字节。39. 在C+中存储字符串 a+b=c”至少需要 个字节。40. 假定x和y为整型,其值分别为 16和5,则x%y和x/y的值分别为 和41. 假定x和y为整型,其值分别为16和5,则x/y和double(x)/y的值分别为和。42. 假定x是一个逻辑量,则43. 假定x是一个逻辑量,则44. 假定x是一个逻辑量,则45. 假定x是一个逻辑量,则46. 假定x是一个逻辑量,则47 .假定x是一个逻辑量,则48 .假定x是一个逻辑量,则x & true的值为。x | true的值为。x & false的值为 cx | false的值为 c!x | false 的值为x & !x 的值为。x | !x的值为。49.数学算式的C+同I达式为50. 数学算式的C+铉达式为51.数学算式的C+转达式为则 coutbusy 的输出结果是则 coutbusy 的输出结果是52. 设 enum Printstatusready,busy,error;53. 设 enum Printstatusready=2,busy,error;54. 常数和分别具有 和 位有效数字。55,枚举类型中的每个枚举值都是一个 ,它的值为一个 。56. 常数100和的数据类型分别为 和。57. 若x=5, y=10, 则计算y*=+x表达式后,x和y的值分别为 和。58. 假定x和ch分另1J为int型和char型,贝U sizeof(x) 和sizeof(ch) 的值分别为 和。59. 假定x=10,则表达式x=1020:30的值为。60. 表达式sqrt(81)和pow(6,3)的值分别为 和。三、程序填充题,对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。1 .斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其前 两个数之和。求斐波那契数列中的前20个数,要求每行输出 5个数。#includevoid main() cout斐波那契数列:n ”;f1=0; f2=1;coutsetw(6)f1setw(6)f2;for(i=3;i=20;i+) f=(1);coutsetw(6)f;if(2) coutendl;f1=f2;f2=(3);coutendl;(1)(2)(3)2. 计算的值。#includevoid main()double x,p1=1,p2=1,s=0;coutx;for(i=1;i=10;i+) p1*=_;p2*=(2);s+=j*p1/p2;打印出2至99之间的所有素数(即不能被任何数整除的#include#includevoid main()int i,n;for(n=2;(1); n+) int temp=int(sqrt(n);采用辗转相除法求出两个整数的最大公约数。#includevoid main()int a,b;coutab;while(a=0 | _(1) coutab;while(b) int r;r=a%b;;把从键盘上输入的一个大于等于3的整数分解为质因子的乘积。如输入24时得到的输出结果为“ 2 2 2 3”,输入50时得到的输出结果为“2 5 5 ”,输入37时得到的输出结果为“ 37”。#includevoid main()int x;coutx; while(1);int i=2;dowhile(2) couti ;x/=i;(3);while(ix);if(x!=1) coutx;cout=i & -(3);return p*a*b;(1) (2)(3)7. 在输出屏幕上打印出一个由字符*组成的等腰三角形,该三角形的高为5行,从上到下每行的字符数依次为1,3,5,7,9 。#includevoid main()int i,j;for(i=1;(1);i+) for(j=1;j=9;j+)if(j=5-i | (2) cout;else(3);coutendl;(2)(3)8. 统计字符串中英文字母个数的程序。#include int count (char str);void main()char s180;c out s1;cout count= count(s1)endl;int count(char str)int num=0;主函数调用一个fun函数将字符串逆序。#include#include(1);void main( ) char s80;cins;(2);cout”逆序后的字符串:sendl ;)void fun(char ss) int n=strlen(ss);for(int i=0; i+) char c=ssi;ssi=ssn- 1 - i;ssn - 1 - i=c;)(2)(3)10.从一个字符串中删除所有同一个给定字符后得到一个新字符串并输出。#includeconst int len=20;void delstr(char a,char b,char c);void main() char str1len,str2len;char ch;coutstr1;coutch;delstr(str1,str2,ch);coutstr2endl;)void delstr(char a,char b,char c)(int j=0;for(int i=0;(1); i+)if(2) bj+=ai;bj=(2);)(2)(3)四、写出程序运行结果1. #include#includevoid main()int a8=25,48,32,85,64,18,48,29);int max,min;max=min=a0;for(int i=0; iai) max=ai;if(minai) min=ai;)coutmax:maxendl;coutmin:minendl;)2. #includevoid main()int a,b;for(a=1,b=2; b50;) couta b ;a=a+b;b=a+b;)coutendl;couta b endl;3. #includeconst int M=3, N=4;void main()(int i,j,s=0;for(i=1;i=M;i+)for(j=1;j=N;j+)s+=i*j;cout“ s= sendl;4. #includevoid main()(int a=2,b=5,c=0;if(a+b10) c=a*b; else c=3*a+b;if(c=20) coutc*c; else cout4+c-5;coutendl;a=a+b; b=a+b;c+=a+b;couta,b,c=a,b,cendl;5. #includevoid main()(int x=5;switch(2*x-3) case 4: coutx ;case 7: cout2*x+1 ;case 10: cout3*x-1 ; break;default: coutdefaultendl;)coutswitch end.endl;)6. #include#includeint a4=36,-5,73,8;void main()int i,y;for(i=0; i4; i+) if(ai0) y=1;else if(ai10) y= ai* ai+3;else if(ai60) y=4*ai-5;else y=int(sqrt(ai); #includeint a8=36,25,20,43,12,70,66,35;void main()int s0,s1,s2;s0=s1=s2=0;for(int i=0; i8; i+) switch(ai%3) case 0: s0+=ai;break;case 1: s1+=ai;break;case 2: s2+=ai;break;couts0, ,s1,s2endl;8. #includeconst int N=5;void main()(int i,p=1,s=0;for(i=1;iN; i+) p=p*i;s=s+p;coutsetw(5)isetw(5)p;coutsetw(5)sendl;9. #includeconst int M=20;void main()int c2,c3,c5;c2=c3=c5=0;for(int i=1; i=M; i+) if(i%2=0) c2+;if(i%3=0) c3+;if(i%5=0) c5+;coutc2 c3 c5endl;10. #includevoid main()int i,j;for(i=0;i5;i+) for(j=i;j5;j+) coutcoutendl;11. #includevoid main()for(int i=1,s=0;i20;i+) if(i%2=0 | i%3=0) continue;couti s+=i;coutsendl;)五、指出程序或函数的功能1. #includevoid main()(int i,s=0;for(i=2;i=30;i+=2) s+=i*i;couts=sendl;)2. #include#include#includevoid main()(int i=10,a;while(i0) a=rand()%90+10;char a10;int i=0,rem;do rem=x%16;x=x/16;if(rem10) ai=48+rem; #includedouble f1(int n) double sign=1,s=1;for(int i=2;ia;coutf1(a)endl;5. double f1(double a, double b, char op) switch(op) case +: return a+b;case - : return a-b;case * : return a*b;case / : if(b=0) coutdivided by 0!endl;exit(1);else return a/b;default: coutoperator error!endl;exit(1);6. #include#includevoid main()int x,y;cinx;void main()int i,p=1 ,s=0;int N;cout输入一个正整数:cinN;for(i=1 ;i=N;i+) p*=i;s+=p;)coutsendl;)8. #include#include#includeconst N=10;int ff(int x, int y) int z;coutx+ycinz;if(x+y=z) return 1; else return 0;)void main()(int a,b,c=0;srand(time(0); int s1(int n)(int x;if(n=1) x=1;else x=s1(n-1)+n*n;return x;)10. void fun5(char* a, const char* b)(while(*b) *a+=*b+;*a=0;)11. templatebool fun8(T a, int n, T key)(for(int i=0;in;i+)if(ai=key) return true;return false ;)六、编程题1. 编一程序求出满足不等式1+1/2+1/3+.+1/n R5的最小n值。2. 计算1+3+32+.+3 10的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。3. 求满足不等式22+42+.+n 21000的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程。5、编程求数列1,的所有大于等于的数据项之和并输出结果
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


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

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


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