山东广播电视大学开放教育《C++语言程序设计》课程综合练习题(1)_第1页
山东广播电视大学开放教育《C++语言程序设计》课程综合练习题(1)_第2页
山东广播电视大学开放教育《C++语言程序设计》课程综合练习题(1)_第3页
山东广播电视大学开放教育《C++语言程序设计》课程综合练习题(1)_第4页
山东广播电视大学开放教育《C++语言程序设计》课程综合练习题(1)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、山东广播电视大学开放教育C+语言程序设计课程综合练习题一选择题1. 下面的哪一个保留字不能作为函数的返回类型?(C) A. voidB. intC. newD. long2. 假定a为一个数组名,则下面的哪一种表示有错误?(了B) A. aiB. *+aC. *aD. *(a+1) 3. 在下面的二维数组定义中,哪一个是正确的?(D) A. int a5;B. int a(10);C. int a;D. int a5=1,2,3,4,5;4下面的哪一个函数头格式不正确?(B)A. AA(int a, int b)B. AA(int a=0, int b)C. AA(int a=0, int b

2、=0)D. AA(int a, int b=0)5假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为(B)。A.AB operator +(AB& a, AB& b);B.AB operator +(AB& a);C.operator +(AB a);D.AB& operator +();6当需要使用ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含(A)文件。A. strstrea.hB. stdlib.hC. iostream.hD. fstream.h 7下列变量名中,( A

3、)是合法的。 A CHINA B byte-size C double D A+a8下列各种函数中,( C )不是类的成员函数。 A 构造函数 B 析构函数 C 友元函数 D 拷贝构造函数9下列( A )是正确的语句。 A ; B a=17 C x+y D coutn10循环while(int i=0) i-;执行次数是( A )。 A 0 B 1 C 5 D 无限11设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是(B )。A g(f(3); B f(g(3); C g(f(3)+2); D p= f(g(3)1);12设int * p2=&x,*

4、 p1=a;p2= *b;则a和b的类型分别是( B )。 A int * 和int B int * 和int * C int 和int * D int * 和int *13设int x;,则经过( C )后,语句*px=0;可将x值置为0。 A int * px; B int const * px=&x; C int * const px=&x; D const int * px=&x;14设void f1(int *m,long &n);int a;long b;则以下调用合法的是( B )。 A f1(a,b); B f1(&a,b); C f1(a,&b); D f1(&a,&b);1

5、5以下结构类型可用来构造链表的是( B )。 A struct aa int a;int * b; B struct bb int a;bb * b; C struct cc int * a;cc b; D struct dd int * a;aa b;16使用操作符setw对数据进行格式输出时,需要包含( C )文件。 A iostream.h B fstream.h C iomanip.h D stdlib.h17类型修饰符unsigned修饰( D )类型是错误的。 A char B int C long int D float18下列变量名中,( A )是合法的。 A _var B b

6、ye-bye C int D 123_cc19设int a=3,* p=&a;,则*p的值是( D )。 A 变量a的地址值 B 无意义 C 变量p的地址值 D 320设int m=0;,下列表示引用的方法中,( A )是正确的。 A int &x=m; B int &y=10; C int &z; D float &t=&m21循环for(int i=0,x=0;!x&i5的相反表达式为_。 4假定x=5,则执行“a=(x0?10:20);”语句后a的值为_。 5假定一个二维数组的定义为“int a36;”,则该数组所含元素的个数为_.6要在屏幕上显示Hello,world!应执行语句cou

7、t_。7表达式8&3的结果是_。8若一全局变量只允许本程序文件中的函数使用,则定义它时应加上修饰符_。9假定p所指对象的值为36,p+l所指对象的值为49,则*+p的值为10假定AB为一个类,则执行ABa8;”语句时,系统自动调用该类构造函数的次数为。11已知A一Z的ASCII码为6590,当执行charch=14*5+2;coutchendl;”语句序列后,得到的输出结果为。12float和double类型的长度分别为和。13假定一个二维数组的定义为“int a36;”,则该数组所含元素的个数为,所占存储空间的字节数为14执行“typedef int ABC20;”语句把ABC定义为具有20

8、个整型元素的 .15假定p所指对象的值为36,p+l所指对象的值为49,则*+p的值为16假定a是一个二维数组,则 aii的指针访问方式为 。17假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为。18对一个类中的数据成员的初始化可以通过构造函数中的实现,也可以通过构造函数中的实现。19当一个类对象离开它的作用域时,系统将自动调用该类的。20假定AB为一个类,则执行ABa8;”语句时,系统自动调用该类构造函数的次数为。 答案:1. n2. +x 3. x+y=54. 205. 186. Hello,world! 7. 0 8. static9. 49 10. 8 11H 124

9、 8 1318 72 14数组类型 15 49 16 *,(ai+”或*(*(a+i)十j) 17 *(x.a) 18初始化表 函数体 19析构函数 20 8三写出下列每一个程序运行后的结果。1#includevoid main() int s1=0, s2=0;for(int i=0; i15; i+) if(i%2) s1+=i;else s2+=i;couts1,s2endl;2#includevoid main() int i=1,s=0;while(s15)s+=i+;couti,sednl;3#includevoid main() int a10=8,19,46,15,6,24,2

10、7,18,20,53;int c1=0, c2=0;for(int i=0;i=20) c1+; if(ai=10 & ai=40) c2+;coutc1,c2endl;4#include Int LB(int *a,int n)For(int i=0;in;i+) p*=*a;a+;Return p;Inta5=1,2,3,4,3;CoutLB(a,5)endl;5#includestruct Worker char name15;/姓名int age;/年龄float pay;/工资;void main() Worker x=wangfong,46,1640;Worker y, *p;y=

11、x; p=&x;couage+5 pay-300endl;19. #include void SB(char ch) switch(ch) case A: case a: coutwell !; break; case B: case b coutgood !; break; case C: case c: coutpass ! ; break default: coutbad! ; break; ) coutendl; void main() char a6 =Abcaf for(int i=0; ai; i+) SB(ai); 21. #include void main() int a8

12、= 3,5,7,9,11,13,15,17; int * p=a; for(int i=0;i8;i+) p+=l0; coutsetw(5) * p+; if(i+1 %3= =0 coutendl; 22. # inelude void LF(int& x, int y) x=x+y; y= x+y; coutx=x, y=yendl; void main() int x=5, y=8, coutx=x, y=yendl; LF(x, y); coutx=x, Y=Yendl; 23.# include void main() int x=25,y= 120; coutdec:decset

13、w(l0) xsetw(l0)yendl; coutoct: octsetw(l0) xsetw(l0)yendl; couthex:hexsetw(10) xsetw(10) ydecx; n-; y+=x; while(n0); return y; 2templatebool WE(Type a, Type b, int n) int c=0;for(int i=0;in;i+)if(ai=bi) c+;if(c=n) return true; return false;3void LK(double a, int n) double s=0; int I,m=0;for(i=0;in;i

14、+) s+=ai;s=s/n;for(i=0;i=s) m+;4. # inelude template Type WD(Type a, int n) Type m= a0 ; for(int i=l;im) re=ai; return m 5. # include include void JD(char* fname)可把以fname所指字符串作为文件标识符的文件称为fname文件,假定该文件保存着一批整数。ifstream fin(fname, ios: :in |ios: :nocreate | ios: :binary)int x, s=O, n=O;while(fin, read(

15、char * ) &x, size of(x) s+=x; n+coutn s float(s)/nendl;fin. close( );6已知6a30,15b36,编一程序求出满足不定方程2a十5b=126的全部整数组解。如(13,20)就是其中的一组解。参考答案1. 求出从键盘上输入的n个实数之和。2.模板函数,判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回0。3.统计出数组a的前n个元素中大于等于其平均值的元素个数并作为函数值m返回。4模板函数,从数组a的n个元素中求出最大值并返回。5从二进制文件中输入所有整数,计算并显示出所有整数的个数、总和与平均值。

16、6整个程序正确得10分,否则按下面参考程序中语句后的注释给分。 #include void main( ) inta,bi 定义变量正确得2分 for(a=6;a30;a+) 外循环次数正确得2分 for(b15;b36;b+) 内循环次数正确得2分 if(2xa+5,b=126)coul(a,b)endl; 条件正确得2分,输出语句正确得2分 五、编写一个函数,统计出具有n个元素的一维数组中大于等于所有 元素平均值的元素个数并返回它。(12分) int Count(double a,int n);/此为该函数的声明。参考答案: 答案评分标准见参考程序中的注释。 int Count(doubl

17、e a,int n) double m0; int i; for(i0;in;i+) m+ai;/计算出所有元素之和得3分 mm/n; /计算出平均值得1分 int c0; for(i0;i=m) c+; /按条件统计出元素个数得4分 return c;/返回统计结果得2分 2.编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:xxk1.dat”中。(10分)参考答案: 评分标准见参考程序中的注释。 #include /使用此命令得1分 #include void main() ofstream fout(a:xxkl.dat);/定义输出文件流并打开文件得2分 if(! fout) cerr”文件没有打开!”x; while(x!-1) foutxx; /能够从键盘向文件正确输出数据得6分 fout.close();/关闭输出文件流得1分3. 假定一个函数声明为“int FF(int a, int n);”,要求递归求出数组a中所有n个元素之积并返回。 参考答案: 评分标准:

温馨提示

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

评论

0/150

提交评论