02600C++语言程序设计(定).doc_第1页
02600C++语言程序设计(定).doc_第2页
02600C++语言程序设计(定).doc_第3页
02600C++语言程序设计(定).doc_第4页
02600C++语言程序设计(定).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

C+语言程序设计复习题及解答一、单选题1. 设x是一个bool型的逻辑量,y的值为10,则表达式 x & y的值为( C )。 A. 1 B. 0 C. x的值 D. x的相反值2. 任何for语句都能够被改写为( D )语句。 A. 复合 B. if C. switch D. while3. break语句叫做( A )语句。 A. 中断退出循环或开关 B. 返回 C. 转向 D. 继续4. 在下面的一维数组定义中,( C )语句有语法错误。 A. int a=1,2,3; B. int a10=0; C. int a; D. int a5;5. 下面的( C )保留字不能作为函数的返回类型。 A. void B. int C. new D. long6. 下面的函数声明中,( B )是“void BC(int a, int b);”的重载函数。 A. int BC(int x, int y); B. void BC(int a, char b); C. float AA(int a, char b); D. int BC(int a, int b=0);7. 当一个字符指针指向具有n个字节的存储空间时,它所能存储字符串的最大长度为( C )。 A. n B. n+1 C. n-1 D. n-28. 在下面的一维数组定义中,哪一个有语法错误。( C ) A int a=1,2,3; B int a10=0; C int a; D int a5;9. 假定AB为一个类,则该类的拷贝构造函数的声明语句为( C )。 A AB&(AB x); B AB(AB x) C AB(AB&); D AB(AB* x)10. 对于结构中定义的成员,其隐含访问权限为( A )。 A public B protected C private D static11当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( D )。 A ios:in B ios:out C ios:in | ios:out D 没有12下面的哪一个函数头格式不正确?( B ) A. AA(int a, int b) B. AA(int a=0, int b) C. AA(int a=0, int b=0) D. AA(int a, int b=0)13声明或定义一个内联函数时,必须在函数开始使用保留宇( C )。 Astatic Bconst Cinline Dextern14在下面的函数声明中,存在着语法错误的是( D )。 ABC(int a, int); BBC(int,int); CBC(int,int y=5); DBC(int x;int y);15每一个实在参数就是一个( A )。 A、表达式 B、常量 C、变量 D、函数调用16假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行deletepx;语句时,自动调用该类析构函数的次数为( B )。 A1 Bn Cnl Dn+l17在每个C+程序中都必须包含有这样一个函数,该函数的函数名为( A )。A. main B. MAINC. name D. function18. 假定一个循环语句为 for(int i=0; in; i+) S; ,从循环头部可以看出,循环体S语句将被执行 C 次。A. 1 B. n-1C. n D. n+119. 假定a为一个短整型(short int)数组,则元素a8的地址比该数组的首地址大( C )个字节。A. 4 B. 8C. 16 D. 32 20. 求一个字符串长度的标准函数为( A )。 A. strlen() B. strcap()C. strcat() D. strcmp()二、填空题1执行 cout43-18=43-18y和xb) 或 *(*p).b) _。7若需要把一个函数”void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:_ friend void F()_ 8假定一个二维数组的定义为 int a36;,则该数组所含元素的个数为 18 ,所占存储空间的字节数为 72 。9执行 typedef int ABC20;语句把ABC定义为具有20个整型元素的 数组类型 。10假定p所指对象的值为36,p+l所指对象的值为49,则*+p的值为 49 。11假定a是一个二维数组,则aij的指针访问方式为 *(ai+j) 或 *(*(a+i)+j) 。12假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为 *(x .a) 。13对一个类中的数据成员的初始化可以通过构造函数中的 初始化表 实现,也可以通过构造函数中的 函数体 实现。14当一个类对象离开它的作用域时,系统将自动调用该类的 析构函数 。15假定AB为一个类,则执行AB a8;语句时,系统自动调用该类构造函数的次数为 8 。16关系表达式x=5_。 17假定整数变量x=35,则x/12的运算结果为_2_。 18假定一个二维数组的定义语句为 int a34; ,则该数组包含有_12_个整型元素。19函数被调用时,实参向形参的传送分为引用传送和_值_传送两种方式。20假定一个结构类型的定义为struct Bint a5; char *b; ,则该类型的大小为_24_字节。21在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的_构造函数_使其初始化。22若用数组名作为函数调用的实参,传递给对应形参的是该数组的 首地址 。23当需要对标准输入/输出设备进行输入/输出操作时,应在文件开始使用#include预处理命令,使之包含iostream.h 头文件。24已知AZ的ASCII码为6590,当执行char ch=14*5+2; coutch5的相反表达式为 x+y5 。28十进制数30表示成符合C+语言规则的十六进制数为_0x1E(字母x和E大小写均_。29假定一个枚举类型的定义为 enum RBab,ac,ad,ae;,则枚举常量ad的值为_2_。30假定y=8,则执行y+*4运算后,y的值为_9_。31算术表达式+1对应的C+表达式为_(x+y)/(2*x*y)+1_。三、给出下列程序运行后的输出结果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; 输出结果:解答:i,s=15,562. #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; 输出结果:解答:4 33. #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; 输出结果:解答:2 4 6 8 10 12 14 16 184. #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; 输出结果:解答:25 10 25 105. #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); 输出结果:解答:2 3 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; 输出结果:解答:9 217 #include void main() int a10= 36,25,48,14,55,40,72,40,86,27; int b1, b2; b1 = b2 = a0; for (int i= 1;ib1) if (b1b2) b2=bl; b1 = ai; coutb1 b2endl; 输出结果:解答:86 728 #include void main() int a8= 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; 输出结果:解答:13 15 17 19 2l 23 25 279 # 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; 输出结果:解答:x5,y8 x=13,y21 x=13,y8 10 # include void main() int x=25,y= 120; coutdec:decsetw(l0) xsetw(l0)yendl; coutoct: octsetw(l0) xsetw(l0)yendl; couthex:hexsetw(10) xsetw(10) ydecendl; 输出结果:解答dec: 25 120 oct: 31 170 hex: 19 78 11. #include void main() int a8=2,8,10,5,12,7,9,20; int c=0, i=0; while(i8) if(ai10) c+; i+; coutc=cendl; 运行结果:解答:c=512. #include void main() int a5=3,6,9,12,8; for(int *p=a; p10) cout*pendl; 运行结果:解答:1213. #include int LA(int a, int n) int s=0; for(int i=0;in;i+) s+=ai; return s; void main() int a5=5,2,8,6,4; int b=LA(a,5); cout”b=”bendl; 运行结果:解答:b=2514. #include struct AB char aa15; int bb; ; void main() AB a4=Apple,25,Peach,40,Pear,36,Tomato,62; for(int i=0;i=40) coutai.aa ; coutendl; 运行结果:解答:Peach Tomato四、写出下列每个函数的功能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; 函数的功能是:解答:求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。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; 函数的功能是:解答:采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。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=iendl; 函数的功能是:解答:从文件fname中依次读取每个字符串并输出到屏幕上显示出来,同时统计并显示出文件中的字符串个数。5 int LK(int a, int n) float s=0; int i; for (i=0 ;in; i+) s+= ai; s/=n; int m=0; for (i=0;in;i+) if (ais) m+; return m; 函数的功能是:解答:求出数组a的n个元素中小于平均值的元素个数并返回。6 # inelude template Type WD(Type a, int n) Type m= a0 ; for (int i=l;im) m=ai; return m; 函数的功能是:解答:模板函数,从数组a的n个元素中求出最大值并返回。7 # include #include void JD(char *fname)/可把以fname所指字符串作为文件标识符的文件称为fname文件,/假定该文件保存着一批整数。ifstream fin(fname, ios: :in |ios: :nocreate | ios: :binary)int x, s=0, n=0;while(fin, read(char * ) &x, sizeof(x) s+=x; n+coutn s float(s)/nendl;fin. close( );函数的功能是:解答:从二进制文件中输入所有整数,计算并显示出所有整数的个数、总和与平均值。8. bool WB(int a, int n, int x) for(int i=0;in;i+) if(ai=x) return true; return false; 函数功能:解答:从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。9. int WD(int a, int n) int m=a0; for(int i=1;im) m=ai; return m; 函数功能:解答:从数组a的n个元素中求出最大值并返回。10.long fact(long n)if (nx; n- -; y+=x; while(n0); return y; 函数的功能是:解答:求出从键盘上输入的n个实数之和。12. int SA(int a, int b) if(ab) return 1; else if(a=b) return 0; else return -1; 函数功能:解答:比较两个整数a和b的大小,若ab则返回1,若a=b则返回0,若ab则返回-1。五、编程题1编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平均值的元素个数并返回它。 int Count(double a, int n); /此为该函数的声明解答:int Count(double a, int n) double m=0; int i;for(i=0;in;i+) m+=ai; m=m/n; int c=0;for(i=0;i=m) c+; return c; 2假定一个函数声明为 int fun(int n); ,要求判断出n是否为一个素

温馨提示

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

评论

0/150

提交评论