C++程序设计复习题.docx
- 文档编号:17926831
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:17
- 大小:20.86KB
C++程序设计复习题.docx
《C++程序设计复习题.docx》由会员分享,可在线阅读,更多相关《C++程序设计复习题.docx(17页珍藏版)》请在冰点文库上搜索。
C++程序设计复习题
C++语言程序设计复习题
一、知识点:
1.一个C++程序的执行是从本程序的main函数开始,到main函数结束
2.在C++语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为char 3.在0_t、void、_xy、 4.intk=7,x=12;则能使值为3的表达式是(x%=k)-(k%=5) 5.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是8 6.for(i=0,x=0;! x&&i<=5;i++)中,for循环的次数为6 7.函数声明voidBE(int,int=5);存在着语法错误。 8.C++语言的跳转语句中,break是无条件跳转语句,而continue不是 9.关于构造函数的描述中,构造函数不可以重载是错误的。 10.定义析构函数时,应该注意无形参,也不可重载 11.友元的作用是提高程序的运用效率 12.对于结构中定义的成员,其隐含访问权限为public 13.说明语句}example;中,example是结构体类型名是不正确的 14.在C++语言中,要求运算数必须是整型的运算符是% 15.在foo-1、2b、new和_256字符串中,正确的C++标识符是_256 16.要定义数组A,使得其中每个元素的数据依次为: 3、9、4、8、0、0、0,可以如下定义: intA[]={3,9,4,8,0,0,0,}; intA[7]={3,9,4,8,0,0,0};intA[7]={3,9,4,8}; 17.有如下语句: intk=0;$$$$ do{k+=5;cout<<'$';}while(k<19); while(k-->0)cout<<'*'; 输出字符$和*的个数分别是4和20 18.针对数组定义intdata[10];则用*data可访问到数组的首元素;用data[9]可访问到数组的末元素;用data[10]访问数组元素会超出数组边界 19.在C++中,用于实现编译时多态性的是重载函数 20.有如下程序: #include voidfun(intx,inty){intt=x;x=y;y=t;} intmain() { inta[2]={23,42}; fun(a[1],a[0]); cout< return0; } 输出结果是23,42 21.在声明: classFoo{ intbar; };中,Foo类的成员bar是公有数据成员 22.将两个字符串连接起来组成一个字符串时,选用strcat() 23.对于C++与C语言的关系的描述,C++和C语言都是面向对象的描述是错误的 24.由C++目标文件连接而成的可执行文件的缺省扩展名为exe 25.在intb[][3]={{1},{3,2},{4,5,6},{0}};b[2][2]的值是6 26.在运算符+(双目)、*(单目)、<=和*=中,*(单目)的优先级最高。 27.关于break语句,正确的描述是: break语句可用于if体内,它将退出if语句 28.在一个被调用函数中,关于return语句使用的描述: 被调用函数中可以不用return语句(√) 被调用函数中可以使用多个return语句(√) 被调用函数中,如果有返回值,就一定要有return语句(√) 被调用函数中,一个return语句可返回多个值给调用函数(×) 29.在C++中,设置参数默认值时,应该是先设置右边的再设置左边的 30.在存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,应内联函数 31.在定义int*p[5]、int(*p)[5]、(int*)p[5]和int*p[]中,int(*p)[5]是定义指向数组的指针p 32.设有程序段如下: intk; intA[10]; 则与元素A[k]等效的表达式是*(A+k) 33.设有数组定义 inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 则表达式*(*(a+2)+1)的值是10 34.类的析构函数是一个对象被撤消时自动调用的 35.在C++程序中,main函数必须位于程序的最前面(×) C++程序的每行中只能写一条语句(×) C++语言本身有输入输出语句(×) 在对一个C++程序进行编译的过程中,可发现注释中的拼写错误(×) 36.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符可以是字母、下划线中的任一种字符 37.判断字符型变量ch是否为大写英文字母,应使用表达式ch>='A'&&ch<='Z' 38.voidfun(int*x,int*y) {cout<<*x<<””<<*y<<””< main() {intx=1,y=2; fun(&y,&x); cout< } 输出结果是2143 39.若有定义: inta[10],则正确表示数组a中元素的是a[10-10] 40.判断字符串a是否大于b,应当使用if(strcmp(a,b)>0) 41.运行下面的程序: int f(int x,int y) {x=x>y? x: y; return(x);} main() { int d; d=f(f(12,5),f(8,10)); cout< } 输出结果是12 42.voidmain( ) { int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++ ; } cout<<“a=”< } 该程序的输出结果是a=2,b=1 43.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式(y%4==0&&y%100! =0)||y%400==0 44.若有x=1,y=2,则表达式x>y? x: ++y的值是3。 45.设原来a=12,则表达式a+=a-=a*=a的值是0。 46.描述命题“A小于B或小于C”的表达式应为A 47.当一个成员函数被调用时,该成员函数的this指针指向调用它的对象。 48.执行完下列三条语句后,指针变量c指向a。 Int a,b,*c=&a; int *&p=c; p=&b; 49.指针数组是指数组中每一个数组元素都是指针对象。 50.C++语言三个循环语句分别是for语句,while语句和do……while语句 51.有以下程序 main() { inti=1,j=2,k=3; if(i++==1&&(++j==3||k++=3)) cout< } 程序运行结果是233 52.若整型变量a、b、c、d中的值依次为: 1、4、3、2。 则条件表达式a a: c c: d的值是1 53.设有定义语句: inta=12;,则表达式a*=2+3的运算结果是60 54.执行”cout<<43<’-’<<18<<’=’<<43-18< 55.要获得一数据或数据类型所占空间的字节数,应使用的操作符是Sizeof()。 56.C++语言数组的下标总是从0开始;构成数组各个元素具有相同的数据类型。 57.函数调用时,实参向形参的传送分为传值调用、地址调用和引用调用三种传送方式。 58.假定p所指对象的值为25,p+1所指对象的值为46,则执行“*p++”语句后,p所指的对象的值为46 二、分析程序执行结果 1.#include voidWF(intx,inty) { x=x+y; y=x+y; cout<<”subs: ”<<”x,y=”< } voidmain() { intx=8,y=15; cout<<”main: ”<<”x,y=”< WF(x,y); x=2*x; cout<<”main: ”<<”x,y=”< WF(x,y); cout<<”main: ”<<”x,y=”< }答: main: x,y=8,15 subs: x,y=23,38 main: x,y=16,15 subs: x,y=31,46 main: x,y=16,15 2.#include voidmain() { intx=3,y=3; switch(x%2) { case1: switch(y) {case0: cout<<"first\t"; case1: cout<<"second\t";break; default: cout<<"hellow\t"; } case2: cout<<"third\n"; } 答: hellowthird 3.#include #include voidmain() {chars1[]="ECJTU",s2[]="ecjtu"; chars3[30]; intns1=strlen(s1); intnc=strcmp(s1,s2); strcpy(s3,s1); strcat(s3,s2); cout<<"ns1="< cout<<"nc="< cout<<"s3="< } 答: ns1=5 nc=-1 s3=ECJTUecjtu 4.#include void main() { for (int x=0;x<10;x++) { if(x%2==O) continue; cout< } } 答: 13579 5.#include voidmain() { inti=1; while(i<=15){ i++; if(i%3! =2)continue; elsecout<<"i="< } } 答: i=2i=5i=8i=11i=14 6.#include voidmain() { inti=1,sum=0; while(i<=10) sum+=++i; cout<<"sum="< } 答: sum=65,i=11 7.#include voidmain() { inti; for(i=4;i<=10;i++) {if(i%3==0)continue; cout< } 答: 457810 8.#include voidSwap(int&a,int&b); voidmain() { intx=10,y=7; cout<<"x="< Swap(x,y); cout<<"x="< } voidSwap(int&a,int&b) {inttemp;temp=a;a=b;b=temp;} 答: x=10y=7 x=7y=10 9.#include classA { public: A(); A(inti,intj); ~A(){cout<<"Donstructor.\n";} voidprint(); private: inta,b; }; A: : A() {a=b=10;cout<<"Defaultconstructor.\n";} A: : A(inti,intj) {a=i,b=j;cout<<"Constructor.\n";} voidA: : print() {cout<<"a="< voidmain() { Am,n(15,18); m.print(); n.print(); } 答: Defaultconstructor Constructora=10,b=10 a=15,b=18 Destructor Destructor 10.#include voidmain() { inti=1,sum=0; do{ sum+=i++; }while(i<=6); cout<<"sum="< } 答: sum=21 11.#include inta[8]={1,2,3,4,5,6,7}; voidfun(intb[],intn); voidmain() {intm=8; fun(a,m); cout< } voidfun(intb[],intn) {for(intI=0;I b[7]+=b[I]; } 答: 21 12.#include longfun(intn) {longs; if(n==1||n==2)s=1; elses=fun(n-1)+fun(n-2); returns; } voidmain() {printf("%ld\n",fun(10)); } 答: 55 13.#include classAA {public: AA(inti,intj) {A=i;B=j;cout<<"Constructor\n";} AA(AA&obj) {A=obj.A+1;B=obj.B+2;cout<<"Copy_Constructor\n";} ~AA() {cout<<"Destructor\n";} voidprint() {cout<<"A="< private: intA,B; }; voidmain() {AAa1(2,3); AAa2(a1); a2.print(); AA*pa=newAA(5,6); pa->print(); deletepa; } 答: Constructor Copy_Constructor A=3,B=5 Constructor A=5,B=6 Destructor Destructor Destructor 14.main() {inti,k,a[10],p[3]; k=5; for(i=0;i<10;i++)a[i]=i;a0=0a1=1…a9=9 for(i=0;i<3;i++)p[i]=a[i*(i+1)];p0=0p1=2p2=6 for(i=0;i<3;i++)k+=p[i]*2; cout< } 答: 21 15.#include voidmain() { inta[10]={12,39,26,41,55,63,72,40,83,95}; inti0=0,i1=0,i2=0; for(inti=0;i<10;i++) switch(a[i]%3) { case0: i0++;break; case1: i1++;break; case2: i2++; } cout< } 答: 4 2 4 三、程序设计 1.产生一个整型的长度为10的数组,并对该数组进行从小到大的排列。 答: voidmain() { inta[11]; inti,j,t; cout<<"input10numbers: "< for(i=1;i<11;i++) cin>>a[i]; cout< for(j=1;j<=9;j++) for(i=1;i<=10-j;i++) if(a[i]>a[i+1]) {t=a[i]; a[i]=a[i+1]; a[i+1]=t;} cout<<"thesortednumbers: ”; for(i=1;i<11;i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 复习题
![提示](https://static.bingdoc.com/images/bang_tan.gif)