《C++程序设计题库.docx》由会员分享,可在线阅读,更多相关《C++程序设计题库.docx(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、725所有的预处理命令都是以开头答案:#726switch构造的测试表达式只能是 、字符型或枚举型。答案:整形727break语句可出现在循环构造和 构造中。答案:switch728continue语句用于完毕 循环。答案:本次729 命令是指一个源文件可以将另一个源文件的全部内容包含进了。答案:文件包含730( )是指只有一个分号;的语句。答案:空语句731if语句的表达式可以是 的表达式。答案:任意合法732循环语句的循环体如果是多条语句必须使用 格式。答案:复合语句733嵌套的if语句中,else总是及它上面最近的,尚未配对的 配对。答案:if734switch构造中的case语句起到语
2、句 作用。答案:标号735C+语言具有面向对象程序设计的3个主要特征:封装性、 、 。答案:继承性 多态性736C+程序的实现一般要经过下述3个步骤: , ,运行。答案:编辑 编译895C+程序由注释,编译预处理以及 ,3局部组成。答案:程序主体896假设有如下定义:char c;int n=100;float f=10;double x;那么执行完下面语句后n=,x=。x=f*=n/(c=50);答案:2 20769C+程序中有吊用关系的所有函数必须放在同一个源程序文件中错误897#include void main()int a,b,d=25;a=d/10%9;b=a&(-1);couta
3、,b;输出结果为:a1,2答案:2 1899一个应用程序,既要保证其正确性,还应有容错能力,C+中,提取了一种 的机制及一套方法。答案:异常处理900static int a33=1,2,3,4,5,6,7,8,9;其中a12的值为 。答案:6901假设有以下数组a,数组元素:a0a9,其值为9 4 12 8 2 10 7 5 1 3 该数组的元素中,数值最大的元素的下标是 。答案:2911下面程序运行结果是 #include #include using namespace std;void main()char ch7=12ab56;int i,s=0;for(i=0;chi=0&chi9
4、;i+=2)s=10*s+chi-0;couts;答案:1912下面程序运行结果是 #include #include using namespace std;void main()int k;int a33=1,2,3,4,5,6,7,8,9,;for(k=0;k3;k+)coutak2-k;答案:3 5 7924C+中封装性、继承性和 是面向对象程序设计的三个主要特征。答案:多态性925在C+语言构造化程序中,是程序的根本组成单元,在C+语言的面向对象设计框架中,是程序的根本组成单元。答案:函数类926C+语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,
5、应该采取 方式。答案:传地址927继承方式有公有继承、私有继承和 三种。答案:保护继承928数据的逻辑构造有线性构造和 两大类。答案:非线性构造929顺序构造储存方法是把逻辑上相邻的节点储存在物理位置 的储存单元中。答案:相邻930一个类可以从直接或间接的祖先中继承所有属性和方法,采用这个方法提高了软件的 答案:可重用性931设i,j,k均为int型变量,那么执行完fori=0,j=10;j=j;i+,j-)k=i+j;语句后,k的值为 答案:10932对长度为10的线性表进展冒泡排序,最坏的情况下需要比拟的次数为 。答案:45933如果类的成员对象不提供成员初始化值,那么调用该对象的 。答案
6、:构造函数 或 缺省的构造函数943使用C+标准程序库的任何标识符时,可以有3种方式:直接指定标识符;使用 关键字;使用 。答案:using using namespace std944下面程序运行结果是 。#include#includeusing namespace std;void main()int i;char a=Time,b=Tom;for(i=0;ai=a&bi!=10;i+)if(ai=bi)ifai=a&ai=z)coutaj-32;else coutai+32;else cout*;coutendl;答案:116*77945下面程序运行结果是 。#include#incl
7、udeusing namespace std;void main() int i=1,n=3,j,k=3; int a5=1,4,5; while(iaji+; for(j=i-1;j=i;j-) aj+1=aj; ai=k; for(i=0;i=n;i+) coutai; coutendl;答案:1345946下面程序段是输出两个字符串中对应相等的字符,括号中应输入#include#includeusing namespace std;void main() char x=programming; char y=Fortranint i=0;while(xi!=0)if(xi=yi) cou
8、t( ); else i+;答案:xi+947下面程序输出结果是 #include#includeusing namespace std;void main()int k;int a33=1,2,3,4,5,6,7,8,9,;for(k=0;k3;k+)coutak2-k;答案:357948下面程序的执行结果是 。#include#includeusing namespace std;void main( char c5=a,b,0,c,0;coutc;答案:ab949使用数组名作为函数参数,形参结合时,传递的是 。答案:数组首元素的地址950下面程序的执行结果是 。#includeint d
9、=1; fun(int p) int d=5; d+=p+; coutd ;main() int a=3; fun(a); d+=a+; coutdendl;答案:8 4951执行语句char s3=ab,*p;p=s;*p+1)的值是0.答案:2下面程序的执行结果是 #includeint fun(int a,int b)int c;c=a+b;retrun c;void main()intx=5,y;y=fun(x+4,x);coutyendl;答案:14994下面程序运行结果是 #include #include using namespace std;void main()int i;
10、char a=Tine,b=Tom,for(i=0;ai!0&bi!;i+)if(ai=bi)if(ai=a&bi=z)coutai-32;else cout*;coutendl;答案:116*771137下面程序的执行结果是 。#includevoid fun();void main();int i;for(i=0;i5;i+)fun();void fun() stastic int m=0; coutm+ ;答案:0 1 2 3 41138以下程序的执行结果是 #includeint max(int a,int n)int i,m;m=a0;for(i=1;imm=ai;return m;
11、void main()int a10=3,54,23,43,54,65,78,21,37,20;coutmaxa,10endl;答案:781146函数的调用是一个函数直接或间接地调用它本身。答案:递归1154以下程序的执行结果 #includedouble average(double *p,int n)double aver=0.0;for(int i=0;i=n;i+)aver +=*p+;return aver/10.0;void main()double average(double a,int n);double a10=1,2,3,4,5,6,7,8,9,10;double y;y
12、=ayerage(a,10);coutaverage=yendl;1156以下程序的执行结果是 。#includefun(int*x,int*y) int c,*z=&c; z=x;x=y;y=z;void main() int a=3,b=5; fun(&a,&b); couta,bendl;答案:3,51171以下程序的执行结果是 。#include#includeint fun(int&x,int&y)int z; z=x;x=y;y=z;void main()int a=3,b=5;d=fun(a,b);couta,bendl;答案:5,31181以下程序的执行结果是 。#includ
13、efun(int*x,int*y) int c; c=*x;*x=*y;*y=c;void main() int a=3,b=5; fun(&a,&b); couta,b 插入 或 close1602按照数据存放格式区分,文件分为2类,一类是 文件,文件中的数据均是ASCII码;另一类是文件,文件中数据的储存格式和计算机内存中的格式 一样/不一样。使用 函数将文件翻开,使用 函数将文件关闭。答案:文本 二进制 一样 open close1603类的构造函数的任务是 ,构造函数没有 ,如果类定义中没有给出构造函数。那么C+编译器( )(会/不会建立一个默认的构造函数。该函数 完成/不完成)对向初
14、始化工作。构造函数 可以/不可以)重载。构析函数 可以/不可以重载。答案:初始化对象 返回值 会 不完成 可以 不可以1604文件的使用步骤一般如下:1定义一个 对象;2该对象调用 函数翻开一个磁盘文件;3文件的读写操作;4文件使用完毕,该对象调用 函数关闭文件。其中1和第2步骤 可以/不可以合并为一步。答案:文件流 open close 可以1605程序如下,写出程序运行后在屏幕上显示的5行的结果。#includeusing namespace std;class Bpublic: virtual void f1()coutB f1endl; void f2()coutB f2endl;cl
15、ass D:public Bpublic: void f1()coutD f1endl; void f2()coutD f2f1(); pb-f2();rb.f1(); rb.f2();d.f2();return 0;分别为:1 2 3 4 5答案:1 Df1 2 Bf2 3 Df1 4 Bf2 5 Df21606程序如下,写出程序运行后在屏幕上显示的5行结果。#includeusing namespace std;class B1public:B1()coutB1 Cendl;class B2public:B2()coutB2 Cendl;class C:public B2,public B
16、1 B2 b2;public:C():B1()coutC Cendl;C()coutC Dendl;int main() C c; return 0;分别为:( ) ( ) ( ) ( ) ( )答案:B2 C B1 C B2 C C C1607#includeusing namespace std;class B1public: B1()coutC B1n;class B2public: B2()coutC B2n; B2()coutD B2n;class D:public B2B1,b1;public: D()coutC Dn; D()coutC Dn;int main() D d; re
17、turn 0;写出程序运行后的显示结果 。分别为: 答案:C B2 C B1 C D D D D B21608复数类CComplex定义如下,完成程序填空。class CComplex int real; /实部 int image; /虚部public ( )CComplex operator-(const CComplex&,const CComplex&; CComplex& operator(const CComplex&; CComplex operator-(const CComplex&,const CComplex&c2; temp.real=c1.real-c2.real;
18、temp.image=c1.image-c2.image;CComplex&CComplex;operator*const CComplex &c2CComplex temp;temp,real=real*c2real-image*c2.inage;CComplex temp;temp.real=real*c2.real-image*c2.image;temp.image=real*c2.image-image*c2.real;( )*this;答案:friend CComplex return temp *this=temp return1640运算符重载时 ,其函数名由( ) 和( ) 构
19、成. 答案: 关键字operator 该运算符1641p是指向类A数据成员a的指针,a是类A的一个对象,给a成员赋值为5的表达式为 。答案:a.*p=51642在某个函数体内定义一个静态类的对象sa,应该是 。答案:static A sa1643执行以下说明语句,A a5,*p2;其中,A是一个类名,其调用构造函数的次数为 次。答案:5+676while和dowhile循环不管什么条件下它们的结果都是一样的。答案:错677假设有int i=10,j=0;那么执行完语句ifj=0i+;else i-;i的值为11.答案:错678int i=20;switch(i/10)case 2:coutA;
20、 case 1:coutB;输出结果为A答案:错680C+中,只有一个分号的语句是不允许出现的,编译时会报语法错误。答案:错681switch构造中的break不是必须出现的语句。答案:对682for语句的三个表达式必须全部给出,不可省略。答案:错683break语句和continue语句只能出现在循环构造中。答案:错684一个程序编译通过后运行得到的输出结果一定是正确的。答案:错685封装性是一种信息隐蔽技术,是指将数据和算法捆绑成一个整体,C+语言通过建立类来支持封装性和信息隐蔽。答案:对686表达式14&4访问成员。答案:错725enum weekMON,TUE,wed是错误写法。答案:
21、对726int a34=1,5,9;它的作用是将数组各行第一列的元素赋初值,其余元素值为0。答案:对727如果使一个数组中全部元素的值为0,可以写成int a10=0*10;答案:错728假设有定义和语句:int a33=(3,5),(8,9),(12,35),i,sum=0,for(i=0,for(i=0;ib) a=b;c=a;if(c!=a)c=b;couta,bendl;其输出结果是 。A 程序中有语法错误B 3,5,3C 3,5,5D 3,5,7答案:B216#includevoid main()int x;cinx;if(x-5)coutx;else coutx+;程序运行后,如果
22、从键盘输入“5,那么输出结果是 A 3B 4C 5D 6答案:B217#includevoid main()int x=1,a=0,b=0;switch(x) case 0:b+; case 1:a+; case 2:a+,b+;couta=ab=b;程序的输出结果为: ).A a=2,b=1B a=1,b=1C a=1,b=0D a=2,b=2答案:A218假设变量已经正确定义,有以下程序段:int i=0;docouti,;while(i+);那么输出结果是A 0,0B 0,1C 1,1D 程序进入无限循环答案:B219当执行以下程序段时:dox=x*xwhile!x;A 循环将执行一次B
23、 循环将执行两次C 循环体将执行无限次D 系统将提示有语法错误答案:A221执行语句“fori=1;i+4;)变量i的值是 A 3B 4C 5D 不定答案:C222以下表达正确的选项是 。A break语句只能用于switch语句体中B continue语句的作用是使程序的执行流程跳出包含它的所有循环C break语句只能用在循环体内和switch语句体内D 在循环体内使用break语句和continue语句的作用一样答案:C223#includevoid main()int i=0,s=0; for(;)if(i=3|i=5)continue; if(i=6)break; i+; s+=i;
24、 couts;程序的运行结果是 。A 10B 13C 21D 程序进入死循环答案:D224有以下程序:#includevoid main()int a=1,b=2,c=3;if(c=a)coutc;else coutb;程序执行后的输出结果为 。A 1B 2C 3D 0答案:A226有以下程序:#includevoid main()int a=5,b=4,c=3,d=2;if(abc)cout=d)=1)coutd+1;else coutd+2;程序执行后的输出结果为 A 2B 3C 4D 0答案:B227有以下程序:#includevoid main() int a=3,b=4,c=5,d=
25、2; if(ab) if(bc) coutd+1;else cout+d+1;coutdendl;程序执行后的输出结果为 。A 2B 3C 4D 1答案:A228有以下程序:#includevoid main() int i(1),j(0),m(1),n(2); switch(i+) case1:m+;n+; case2:switch(+j) case1:m+; case2:n+; case3:m+;n+;break; case4:m+;n+;coutm,nendl;程序执行后的输出结果为 。A 2,3B 2,2C 3,4D 4,5答案:D 229有以下程序:#includevoid main
26、()int n=12345,d;while(!=0) d=n%10;coutd;n/10;程序输出结果是:A 12345B 54321C 135D 1答案:B230有以下程序:#includevoid main()int v1=0,v2=0; char ch; while(ch=getchar()!=#) switch(ch) casea: caseh: default: v1+; case0:v2+; coutv1,v2;当程序执行,输入China#,程序的输出结果为 。A 5,0B 0,0C 5,5D 0,5答案:C231有以下程序:#includevoid main()int i=0,s
27、=0;doif(!%2)i+;continue;i+;s+=i;while(i7);couts;程序运行输出结果为 A 12B 16C 0D 10答案:B232#includevoid main() int y=9; for(;y0;y-) if(y%3=0)cout-y ;A 8 5 2B 9 6 3C 7 4 1D 程序进入死循环答案:A234以下程序段的输出结果是 。int i,j,m=0;fori=1,i=15;i+=4) fori=3,i=19;i+=4) m+ coutmendl;A 15B 12C 20D 25答案:C235以下程序段的输出结果为:int i=1,sum=0; w
28、hilei10 sum=sum+1;i+; couti=,sum=sum;A i=10,sum=9B 程序陷入死循环C i=10,sum=10D i=10,sum=55答案:B236以下程序中,while循环的循环次数是 mainint i=0;whilei10)if(i1) continueif(i=5) break;i+;答案:D238以下程序的输出结果是 。int k,j,s;for(k=2;k6;k+)s=1;for(j=k;j6;j+)s +=j;couts;A 10B 15C 24D 9答案:A239设变量j和k都是int型,那么for循环语句forj=0,k=-1;j+,k+co
29、ut*7) n-; coutn;A 1098B 10987C 987D 9876答案:C242以下程序段执行后的输出结果为 。int y=10;doy-;while(-y);couty-;A 0B 1C 8D -1答案:A243以下程序执行后的输出结果 。int n;for(n=1;n=10;n+ if(n%3=0)continue coutnA 12B 12457810C 1.23E+10D 369答案:B244以下程序段执行后的输出结果 。int i;for(i=1;i3;i+switchicase1:couti;case2:couti;default:couti;A 011122B 120C 12021D 12答案:A245以下字符串中,不可以作为