c++选择题.doc_第1页
c++选择题.doc_第2页
c++选择题.doc_第3页
c++选择题.doc_第4页
c++选择题.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+考试题1一、单选题1、在每个C+程序中都必须包含有这样一个函数,该函数的函数名为 。A. main B. MAIN C. name D. function2、设x和y均为bool量,则x&y为真的条件是 。A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假3、下面的哪个保留字不能作为函数的返回类型? 。A. void B. int C. new D. long4、假定a为一个整型数组名,则元素a4的字节地址为 。A. a+4 B. a+8 C. a+16 D. a+325、假定AB为一个类,则执行“AB a(4) , b3 , * p2 ;”语句时,自动调用该类构造函数的次数为 。A. 3 B. 4 C. 6 D. 96、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: 。A. AB operator+(AB & a , AB & b) B. AB operator+(AB & a)C. operator+(AB a) D. AB & operator+( )二、填空题)1、C+语言中的每条基本语句以 作为结束符,每条复合语句以作为结束符。2、执行“cout char(A+2)5的相反表达式为 。6、假定一个一维数组的定义为“char * a8 ;”,则该数组所含元素的个数为 ,所占存储空间的字节数为 。7、变量分为全局和局部两种, 变量没有赋初值时,其值是不确定的。8、假定a是一个二维数组,则aij的指针访问方式为 。9、假定一个结构类型定义为“struct D int a ; union int b ; double c ; ; D * d2 ; ;” ,则该类型的大小为 字节。10、对一个类中的数据成员的初始化可以通过构造函数中的 实现,也可以通过构造函数中的 实现。11、假定AB为一个类,则执行“AB a10;”语句时,系统自动调用该类的构造函数的次数为 。12、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为 。三、给出下列程序运行后的输出结果1、# include void SB(char ch) switch(ch) case A: case a: cout well!; break; case B: case b: cout good!; break; case C: case c: cout pass!; break; default: cout nad!; break; void main() char a1=b,a2=C,a3=f; SB(a1);SB(a2);SB(a3);SB(A); cout endl;2、# include # include void main() char *a5=student,worker,cadre,soldier,peasant; char *p1,*p2; p1=p2=a0; for (int i=0; i0) p1=ai; if (strcmp(ai,p2)0) p2=ai; cout p1 p2endl;3、# include int a=5;void main() int a=10,b=20; cout a bendl; int a=0,b=0; for (int i=1; i6; i+) a+=i; b+=a; cout a b :aendl; cout a bendl;4、# include int LB(int *a,int n) int s=1; for (int i=0; in; i+) s*=*a+; return s;void main() int a=1,2,3,4,5,6,7,8; int b=LB(a,5)+LB(&a3,3); cout b=bendl;5、# include # include struct Worker char name15; / 姓名 int age; / 年龄 float pay; / 工资;void main() Worker x; char *t=liouting; int d=38; float f=493; strcpy(,t); x.age=d; x.pay=f; cout x.age x.payendl;6、# include class A int a;public: A(int aa=0) a=aa; A() cout Destructor A!aendl; ;class B:public A int b;public: B(int aa=0,int bb=0):A(aa) b=bb; B() cout Destructor B!bendl; ;void main() B x(5),y(6,7); / 后定义的变量将先被释放四、写出下列每个函数的功能1、# include int SA(int a,int b) if (ab) return 1; else if (a=b) return 0; else return -1;2、float FI(int n) / n为大于等于1的整数 float x,y=0; do cin x; n-; y+=x*x; while (n0); return y;3、template void WE(Type a,Type b,int n) for (int i=0; if-name; StrNode * p=f; while (-n) p=p-next=new StrNode; cin p-name; p-next=NULL;五、编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:xxk1.dat”中。*C+语言程序设计试题答案及评分标准(供参考)2001年3月一、单选题(每小题1分,共6分)评分标准:选对者得1分,否则不得分。1、A 2、A 3、C 4、C 5、B 6、B二、填空题(每小题2分,共24分)评分标准:每题与参考答案相同者得2分,否则不得分。1、 : 2、 C3、 4 8 4、 (x*y*y)/(3*a)+4*b-15、 x+yb则返回1,若a= =b则返回0,若ab则返回-1。 2、求出从键盘上输入的n个常数的平方和并返回。 3、模板函数,把数组a的每个元素按逆序放入数组b中。 4、建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。五、编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:xxk1.dat”中。(10分) 评分标准:见参考程序中的注释。# include / 使用此命令得1分# include # include void main() ofstream fout(a:xxk1.dat); / 定义输出文件流并打开文件得2分 if (!fout) cerr 文件没有打开!x; while (x!=-1) fout xx; / 能够从键盘向文件正确输出数据得6分 fout.close(); / 关闭输出文件流得1分C+语言程序设计模拟试题中央电大理工部计算机教研室一、单选题(每小题1分,共6分) 1. 由C+目标文件连接而成的可执行文件的缺省扩展名为_。 A cpp B exe C obj D lik 2. 在下面的一维数组定义中,哪一个有语法错误。_ A int a=1,2,3; B int a10=0; C int a; D int a5; 3. 在下面的函数声明中,存在着语法错误的是_。 A void BC(int a, int); B void BD(int, int); C void BE(int, int=5); D int BF(int x; int y); 4. 假定AB为一个类,则该类的拷贝构造函数的声明语句为_。 A AB&(AB x); B AB(AB x) C AB(AB&); D AB(AB* x) 5. 对于结构中定义的成员,其隐含访问权限为_。 A public B protected C private D static6当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为_。 A ios:in B ios:out C ios:in | ios:out D 没有二、填空题(每小题2分,共24分)1. 1. 执行“cout43-18=43-18endl;”语句后得到的输出结果为_。2已知AZ的ASCII码为6590,当执行“char ch=14*5+2;coutchy和x=y的逻辑值分别为_和_。 6. 执行“typedef int ABC10;”语句把ABC定义为具有10个整型元素的_。7. 假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)+;”语句后,p所指对象的值为_。8. 假定一个二维数组为aMN,则ai的地址值(以字节为单位)为_。 9. 假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为_。10. 设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的_。11若需要把一个函数”void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:_ 12. 若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用_头文件。 三、给出下列程序运行后的输出结果(每小题6分,共36分) 1. #include void main() int s=0; for(int i=1;i+) if(s50) break; if(i%2=0) s+=i; couti,s=i,sendl; 2. #include void main() char a=abcdabcabfgacd; int i1=0, i2=0, i=0; while(ai) if(ai=a) i1+; if(ai=b) i2+; i+; couti1 i2endl; 3. #include void main() int a9=2,4,6,8,10,12,14,16,18; for(int i=0;i9;i+) coutsetw(5)*(a+i); if(i+1)%3=0) coutendl; 4. #include void LE(int* a, int* b) int x=*a; *a=*b; *b=x; cout*a *bendl; void main() int x=10, y=25; LE(&x,&y); coutx yendl; 5. #include class A int a,b; public: A() a=b=0; A(int aa, int bb) a=aa; b=bb; couta bendl; ; void main() A x,y(2,3),z(4,5); 6#include template class FF TT a1, a2, a3; public: FF(TT b1, TT b2, TT b3) a1=b1; a2=b2; a3=b3; TT Sum() return a1+a2+a3; ; void main() FF x(2,3,4),y(5,7,9); coutx.Sum() y.Sum()endl; 四、写出下列每个函数的功能(每小题6分,共24分) 1. double SF(double x, int n) /n为大于等于0的整数 double p=1,s=1; for(int i=1;ix; while(x!=-1) n+; y+=x; cinx; if(n=0) return y; else return y/n; 3. #include void WA(int a, int n) for(int i=0;in-1;i+) int k=i; for(int j=i+1;jn;j+) if(ajak) k=j; int x=ai; ai=ak; ak=x; 4#include #include void JB(char* fname) /可把以fname所指字符串作为文件标识符的文件称为fname文件, /假定该文件中保存着一批字符串,每个字符串的长度均小于20。 ifstream fin(fname); char a20; int i=0; while(fina) coutaendl; i+; fin.close(); couti=ib) 或 *(*p).b) 10. 析构函数11. friend void F(); 12. iostream.h 或 iomanip.h三、给出下列程序运行后的输出结果(每小题6分,共36分)评分标准:每题与参考答案的数据和显示格式完全相同者得6分,否则酌情给分。1. i,s=15,562. 4 33. 2 4 6 8 10 12 14 16 184. 25 10 25 105. 2 3 4 56. 9 21四、写出下列每个函数的功能(每小题6分,共24分)评分标准:每题与参考答案的叙述含义相同者得6分,否则酌情给分。1. 计算的值并返回。2. 求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。3. 采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。4. 从文件fname中依次读取每个字符串并输出到屏幕上显示出来,同时统计并显示出文件中的字符串个数。五、编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平均值的元素个数并返回它。(10分)评分标准见参考程序中的注释。int Count(double a, int n) double m=0; int i;for(i=0;in;i+) m+=ai; /计算出所有元素之和得3分 m=m/n; /计算出平均值得1分int c=0;for(i=0;i=m) c+; /按条件统计出元素个数得4分return c; /返回统计结果得2分C+语言程序设计期末模拟试题一,单选题(每小题2分,共12分)1.在每个C+程序中都必须包含有这样一个函数,该函数的函数名为( ).A.maln B.MAIN C.name D.functiOn2.设x和y均为b001量,则x&y为真的条件是( ).A.其中一个为假 B.其中一个为真 C.它们均为假 D.它们均为真3.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大( ).A.1 B.2 C.4 D.84.设x和y均为bool量,则xy为假的条件是( ).A.它们均为真 B.它们均为假 C.其中一个为真 D.其中一个为假5.假定a为一个整型数组名,则元素a4的字节地址为( ).A.a+4 B.a+8 C.a十16 D.a十326.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 ( ).A.iOS:in B.iOS:Out C.iOs:iniOs:Out D.没有二,填空题(每小题2分,共24分)1.若需要定义一个标识符常量,并且使C+能够进行类型检查,则应在定义语句的开始使用保留字. 2.算术表达式+4b一1对应的c+表达式为3.逻辑表达式xy&x!=l0的相反表达式为.4.逻辑表达式a=bb=15的相反表达式为.5.假定一个二维数组的定义为char*a54;,则该数组所含元素的个数为,所占存储空间的字节数为.6.变量分为全局和局部两种,变量没有赋初值时,将由系统自动置为o.7.假定a是一个一维数组,则ai对应的存储地址(以字节为单位)为 .8.假定一个结构类型的定义为struct Adouble a,b,A*c;,则该类型的大小为字节.9.假定要访问一个结构指针P所指对象中的b指针成员所指的对象,则表示方法为.10.在一个派生类中,对基类成员,类对象成员和非类对象成员的初始化次序是先,后,最后为.11.假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为.12.若需要把一个函数void F();定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句三,给出下列程序运行后的输出结果(每小题6分,共30分)1. #includeincludedouble SD(int a, int b, char op) double x;switch(op) case+: x= double(a)+b; break;case-:x=double(a)-b; break;case*:x=double(a)*b; break;ease/ ;if(b)x=double(a)/b;else exit(l);break;default: exit (1);return x;void main() int x=20, y=5;eout?;court.SD(x, y,*);eoutendl;)2. #includeincludevoid main() char*a5=student, worker, cadre, soldier, apen;char *pl,*p2;pl=p2=a0;for(int i=l; i0) pl=ai;if(strcmp(ai, p2)0) p2=ai;)coutPLP2ENDL;3. #includevoid WF(int x, int y) x=x+y;y=x+y;coutsubs:x, y=X,YENDL;void main() int x=8, y=l5;coutmain:x, y=Xyendl;coutENDL;deleteIh;5. #include#includestruct Worker char name15; /姓名int age; /年龄float pay; /工资;void main() Worker x;char * t=WeiRong;int d=45; float f=1235;strcpy(x, name, t)x. age=d; x. pay=f;cout?c) a=c;return al2. #includetemplateTT WG(TT a, TT b) if(ab) return 1;else if(a=b) return 0;else return -1;3. struct StrNode char name15;/字符串域StrNode*next; /指针域;void QB(StrNode * & f, int n) if(n=0) f=NULL; return;f=new StrNode;cinf-name;StrNode 0, p=f;while(-n) p=p-next = new StrNode;cinp-name;p-next=NULL;4. /struct Worker / char name15; /姓名/ iht age; /年龄/ float pay; /工资/;istream & operator(istream & istr, Worker & x) cout请输入一个职工记录:姓名,年龄,工资,x.agex.pay;return istr;五,(10分)编一程序计算并输出12+22+.+n2的值,其中n值由键盘输入.一、单项选择题1 以下定义数组的语句中正确的是_ 。A) int arr14=1,3,5,7,9;B) float t3=1,2,3;C) char s23=c,a,b,e,d,f;D) long s3=0;2 数字字符0的ASCII值为48,若有以下程序void main( )char a=1,b=2;pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论