电大本科《C++语言程序设计》期末复习试题及答案参考资料小抄【精编打印版】.doc

上传人:文库蛋蛋多 文档编号:2384203 上传时间:2023-02-17 格式:DOC 页数:9 大小:111KB
返回 下载 相关 举报
电大本科《C++语言程序设计》期末复习试题及答案参考资料小抄【精编打印版】.doc_第1页
第1页 / 共9页
电大本科《C++语言程序设计》期末复习试题及答案参考资料小抄【精编打印版】.doc_第2页
第2页 / 共9页
电大本科《C++语言程序设计》期末复习试题及答案参考资料小抄【精编打印版】.doc_第3页
第3页 / 共9页
电大本科《C++语言程序设计》期末复习试题及答案参考资料小抄【精编打印版】.doc_第4页
第4页 / 共9页
电大本科《C++语言程序设计》期末复习试题及答案参考资料小抄【精编打印版】.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《电大本科《C++语言程序设计》期末复习试题及答案参考资料小抄【精编打印版】.doc》由会员分享,可在线阅读,更多相关《电大本科《C++语言程序设计》期末复习试题及答案参考资料小抄【精编打印版】.doc(9页珍藏版)》请在三一办公上搜索。

1、本科C+语言程序设计期末复习模拟训练题一、单选题1在每个C+程序中都必须包含有这样一个函数,该函数的函数名为(A)。 A. main B. MAIN C. name D. function2设x和y均为bool量,则x & y为真的条件是(D)。 A. 其中一个为假 B. 其中一个为真 C. 它们均为假 D. 它们均为真3. 逻辑表达式x0 | y=5的相反表达式为(B)。A. x=0 | y!=5 B. x0 | y!=5 D. x0 & y=54. 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大(C)个字节。 A. 1 B. 2 C. 4 D. 8 5.

2、 枚举类型中的每个枚举常量的值都是一个(A)。 A. 整数 B. 浮点数 C. 字符 D. 逻辑值6. 循环体至少被执行一次的语句为(C)语句。 A. for循环 B. while循环 C. do循环 D. 任一种循环7. 在下面的字符数组定义中,(D)语句有语法错误。 A. char a20=”abcdefg”; B. char a=”x+y=55.”; C. char a15=1,2; D. char a10=5;8. 若用数组名作为函数调用的实参,传递给形参的是(A)。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组全部元素的值 D. 数组元素的个数9假定AB为一个类,则执行

3、“AB a(4), b5, *p2;”语句时,自动调用该类构造函数的次数为(A)。 A. 6 B. 7 C. 9 D. 1110当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为(D)。 A. ios:in B. ios:out C. ios:in | ios:out D. 没有11. 枚举类型中的每个枚举常量的值都是一个(A)值。 A. 整数 B. 浮点数 C. 字符 D. 逻辑12设x和y均为bool量,则逻辑表达式x | y为假的条件是(C)。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假13. 声明或定义一个内联函数时,必须在

4、函数开始使用保留字(D)。 A. static B. const C. extern D. inline14. 在下面的函数声明中,存在着语法错误的是(D)。 A. BC(int a, int); B. BC(int, int); C. BC(int, int=5); D. BC(int x; int y);15. 假定a为一个整型数组名,则元素a4与(C)的表示等价。 A. a+4 B. *a+4 C. *(a+4) D. *(a+16)16. 下面循环语句执行结束后输出的i值为(B)的值。 for(int i=0; in/2) coutiendl; break; A. n/2 B. n/2

5、+1 C. n-1 D. n17. 将两个字符串连接起来组成一个字符串时,选用(C)函数。 A. strlen() B. strcpy() C. strcat() D. strcmp()18. 预处理命令在程序中都是以(B)字符开头的。 A. * B. # C. & D. 19. 假定有定义“struct BOOKchar title40; float price;”,则不正确的变量定义语句为(D)。 A. BOOK x; B. BOOK x=C+ Programming,27.0; C. BOOK *x=new BOOK; D. BOOK x=new BOOK;20. 假定AB为一个类,px

6、为指向该类动态对象数组的指针,该数组长度为n,则执行“delete px;”语句时,自动调用该类析构函数的次数为(B)。 A. 1 B. n C. n-1 D. n+121. 由C+源程序文件编译而成的目标文件的缺省扩展名为(A)。 A. obj B. lik C. exe D. cpp22. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(D)符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车23. 设x是一个bool型的逻辑量,y的值为10,则表达式 x & y的值为(C)。 A. 1 B. 0 C. 与x值相同 D. 与x值相反24. f

7、or语句能够被改写为(D)语句。 A. 复合 B. if C. switch D. while25. 在下面的do循环语句中,其循环体被执行的次数为(A)。 int i=0; do i+; while(i*i10); A. 4 B. 3 C. 5 D. 226. 在下面的一维数组定义中,(C)语句有语法错误。 A. int a=1,2,3; B. int a10=0; C. int a; D. int a5;27. 下面的(C)保留字不能作为函数的返回类型。 A. void B. int C. new D. long28. 下面的函数声明中,(B)是“void BC(int a, int b)

8、;”的重载函数。 A. int BC(int x, int y); B. void BC(int a, char b); C. float BC(int a, int b, int c=0); D. int BC(int a, int b=0);29. 当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为(C)。 A. n B. n+1 C. n-1 D. n-230. 假定AB为一个类,则该类的拷贝构造函数的声明语句为(D)。 A. AB&(AB x); B. AB(AB x); C. AB(AB* x); D. AB(AB&);31. C+程序的基本功能模块为(

9、D)。 A. 表达式 B. 标识符 C. 语句 D. 函数32. 存储以下数据,占用存储字节最多的是(A)。 A. 0 B. 0 C. ”0” D. n33. 在下面的一维数组定义中,有语法错误的是(C)。 A. int a=1,2,3; B. int a10=0; C. int a; D. int a5;34. 在下面的语句或语句组中,(B)不正确。 A. int a5; B. int M=10; int aM; C. int a=1,5,10,45; D. const int N=12; int aN;35C+语言中的每条简单语句以(B)作为结束符。 A. 逗号 B. 分号 C. 空格 D

10、. 换行符36. 含随机函数的表达式rand()%20的值在(C)区间内。 A. 119 B. 120 C. 019 D. 02037. 当处理一个特定的问题时,若循环次数已知,则通常采用(A)来解决。 A. for循环 B. while循环 C. do循环 D. switch语句38. 在下面循环语句中内层循环体S语句的执行总次数为(D)。 for(int i=0; in; i+) for(int j=i; jn; j+) S; A. n2 B.(n+1)/2 C. n(n-1)/2 D. n(n+1)/239. 若函数声明为double* function(), 则该函数的返回值为(B)。

11、 A. 实数型 B. 实数指针型 C. 函数指针型 D. 数组型40. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为(B)。 A. int p=&m; B. int *p=&m; C. int &p=*m; D. int *p=m;二、填空题1C+语言中的每条基本语句以 ; 作为结束符,每条复合语句以 作为结束符。2用于输出表达式值的标准输出流对象是cout ,用于从键盘上为变量输入值的标准入流对象是 cin 。3当不需要函数返回任何值时,则应把该函数类型定义为 void 。4执行“cout143+18=143+18endl;”语句后得到的输出结果为 143+18=161 。

12、5执行“cout“ning”“chen”38endl;”语句后得到的输出结果为ningchen 38。6在每个C+程序中都必须包含有这样一个函数,该函数的函数名为 main 。7C+源程序文件的缺省扩展名为 .cpp ,由C+源程序文件编译而成的目标文件的缺省扩展名为 .obj ,由C+目标文件连接而成的可执行文件的缺省扩展名为 .exe 。8程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用 空格或 , 符号作为分隔符。9十进制数25表示成符号C+语言规则的八进制和十六进制数分别为031和0x19符号。10在C+语言中,用转义字符序列 n 或12 或x0a 或操纵符 endl 表示输

13、出一个换行符。11执行“coutchar(b+2)endl;”语句后得到的输出结果为 d 。12执行“coutchar(K-3)endl;”语句后得到的输出结果为 H 。13已知AZ的ASCII码为6590,当执行“int x=H+5;”语句后x的值为 77 。14已知AZ的ASCII码为6590,当执行“char ch=16*5+2;coutchendl;语句序列后,得到的输出结果为 R 。15假定一个枚举类型的定义为“enum RAxa,xb,xc,xd;”,则执行“cout”xc=”xcendl;”语句得到的输出结果为 xc=2 。16假定一个枚举类型的定义为“enum RBab,ac=

14、3,ad,aex=ad;”则x的值为 4 。17Char、short和int类型的大小分别为 1B 、2B 和 4B 。18float和double类型的大小分别为 4B 和 8B 。19十进制数128和-3.26的类型分别为 int 和 double 。20若需要定义一个标识符常量,并且使C+能够进行类型检查,则应在定义语句的开始用保留字 const 。21使用const语句定义一个标识符常量时,则必须对它同时进行 初始化 。22执行“int x=45,y=16;coutx/y x%yz的相反表达式为 x+y5& x10的相反表达式x=10 。34逻辑表达式ab | | b= =5的相反表达

15、式为ay 和x=y的逻辑值分别为false或0 和true或1 。36假定x=5,则执行“a=(x? 10:4*2);”语句后a的值为10 。37假定a=5,则条件表达式“a= =0? 10:20”的值为 20。38执行“typedef int Data Type;”语句后,在使用int定义整型变量的地方都可以使用 Data Type 定义整型变量。39设x和y均为bool量,x & & y为真的条件是x和y均为true。40设x和y均为bool量,则x | | y为假的条件是x和y均为false。41假定一个一维数组的定义为“char a5;”,则该数组所含元素的个数为 5 ,所占存储空间的

16、字节数为 5 。 ( 存储的字符串最大长度:4 )42假定一个二维数组的定义为“int a46;”,则该数组所含元素的个数为 24 ,所占存储空间的字节数为 96 。43假定一个二维数组的定义为“char a88;”,则该数组所含元素的个数为 64 ,所占存储空间的字节数为 64 。44执行“typedef float ABC10;”语句把ABC定义为具有10个单精度元素的 一维数组 。45在函数外定义的变量称为 全局变量,若没有被初始化则系统隐含对它赋初值 0 。46函数中的形参变量的初值由 调用 该函数时获得。47函数调用时,实参向形参的传送分为 按值传递 和 按地址传递 两种传送方式。4

17、8变量分为全局和局部两种, 局部 变量没有赋初值时,其值是不确定的。49假定p所指对象的值为28,p+1所指对象的值为62,则* p + +的值为 28 。p所指对象的值为:6250假定p所指对象的值为28,p+1所指对象的值为62,则* + + p的值为 62 。p所指对象的值为:6251假定p所指对象的值为25,p+1所指对象的值为50,则执行“(*p)+ +;”语句后,p所指对象的值为 26 。表达式值为:2552假定p所指对象的值为25,p+1所指对象的值为50,则执行“*(p+ +);”语句后,p所指对象的值为 50 。表达式值为:5053假定a是一个指针数组,则a+i所指对象的地址

18、比a地址大 isizeof(unsigned) 字节。54假定a是一个一维数组,则ai的指针访问方式为 ( a+ i ) 。55假定a是一个二维数组,则ai j的指针访问方式为 ( a+i ) + j )。56假定a是一个一维数组,则ai对应的存储地址(以字节为单位)为 a + sizeof(a0)i 。57假定一个二维数组为aM N,则ai j对应的存储地址(以字节为单位)为 a+sizeof(a00)(iN + j ) 。58假定一个二维数组aM N,则ai的地址值(以字节为单位)为 a + sizeof(a00)(iN) 。59假定p是一个指向float型数据的指针,则p+1所指数据的地

19、址比p所指数据的地址大 4 字节。60假定a为一个字符数组名,则元素a8的字节地址为 a + 8 。61假定a为一个整型数组名,则元素a4的字节地址为 a + 4sizeof( int ) 或a + 16 。62假定一个结构类型的定义为“struct Aint a,b;short c;A*d;”,则该类型的大小为 14 字节。63假定一个结构类型的定义为“struct Bint a8;char* b;”,则该类型的大小为 36 字节。64假定一个结构类型的定义为“struct Dint a;unionint b;double c;D*d3;”,则该类型的大小为24字节。65假定要动态分配一个类

20、型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为 Worker r = new Worker n ; 。66假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为 ( x . a ) 。67假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为 ( pb )。68.在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的构造函数 使其初始化。69.当一个类对象被撤消时将自动调用该类的析构函数。70.对基类数据成员的初始化是通过执行派生类构造函数中的初始化表来实现的。71.对一个类中的数据成员的初始化可以通过构造函数中的赋值语句实现

21、,也可以通过构造函数中的初始化表实现。72.在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序的先基类成员,后类对象成员,最后非类对象成员。73.当撤消一个含有基类和类对象成员的派生类对象时,将首先完成 类对象成员的析构函数定义体的执行,接着完成派生类的析构函数定义体的执行,最后完成基类的析构函数定义体的执行。74.设PX是指向一个类动态对象的指针变量,则执行“delete px;”语句时,将自动调用该类的析构函数。75.当一个类对象离开它的作用域时,系统将自动调用该类的析构函数。76.假定一个类对象数组为AN,当离开它的作用域时,系统自动调用该类析构函数的次数为 N 。77.假

22、定AB为一个类,则执行“AB a10;”语句时,系统自动调用该类构造函数的次数为 10 。78.假定拥护没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为 AB ( ) 。79.假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义的析构函数为 AB ( ) 。80.若需要把一个函数“void f(); ”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:friend void f( ); 。81.若需要把一个类AB定义为一个类CD的友元类,则应在类CD的定义中加入一条语句:friend class AB; 。82.假定一个类AB中有一个静态整型成员bb,在

23、类外的它进行定义并初始化为0时,所使用写法为:int AB:bb = 0 ; 。83.假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员 bb的访问为AB:bb 。84.当类中一个字符指针成员指向具有n个字节的储存空间时,它所能储存字符串的最大长度为 n1 。85.假定AB为一个类,则该类的拷贝构造函数的声明语句为 AB (AB & ); 。86.对类对象成员初始化是通过执行构造函数中的 赋值语句或初始化表 完成的。87.对于类中定义的成员,其隐含访问权限为private ,对于结构中定义的成员,其隐含访问权限为 public 。88.一个类的友元函数或友元类能够通过成

24、员操作符直接访问该类的 私有成员 。89.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:AB& operator+(AB &); 。90.在C+流类库中,根基类为 ios 。91.在C+流类库中,输入流类和输出流类的名称分别为 istream 和 ostream 。92.若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用iostream.h头文件。93.若要在程序文件中进行文件输入输出操作,则必须在开始的#include命令中使用fstream.h头文件。94.当从字符文件中读取回车和换行两个字符时,被

25、系统看作为一个字符串流。95.当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 ios :in,当使用ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 ios:out 。当需要使用istream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含 strstrea.h 文件。三、写出下列程序运行后的输出结果1#include void SB (char ch) switch (ch) case A :case a: cout ”well”!” ; break case B: case b: cout

26、 ”good!” ;break; case C: case c: cout ”pass!” ;break; default : cout “bad!” ; break;void main ( ) char al=b,a2=c,a3=f; SB(al);SB(a2);SB(a3);SB(A); Cout endl;运行结果:good!pass!bad!well!2、#include #includedouble SD(int a,int b,char op) double x; /局部变量x的改变不影响main函数中的x switch (op) case x:x=double(a) + b; b

27、reak; case -: x=double (a) b; break; case *: x=double (a) * b;break; case /:if (b) x=double (a)/b; else exit(1); break; default:exit(1); return x; void main ( ) int x=20 ,y=12;cout SD(x,y,-) ;cout SD(x,y,*) ;cout SD(x+y,y-2,/)endl; 运行结果:8 240 3.2 3、#include void main ( ) int s=0; for (int I=1;I6;I+)

28、 s+=I*I; / s=1*1+2*2+3*3+4*4+5*5 cout ”s=”sendl;运行结果:s=554、# include void main ( ) int s=0; for (int I=1;I+) if (s50) break; if (I%3= =0) s+=I; / s=3+6+9+12+15+18 cout ”I,s=”I”,”sendl;运行结果:I,s=19,635、# include void main ( )int s1=0,s2=0;for (int I=0;I10;I+) if (I%2) s1+=I; / s1= 1+3+5+7+9 else s2 +=

29、I; / s2= 0+2+4+6+8cout s1 s2endl;运行结果:25 206、# include void main ()int n=10,y=1;while (n-)y+;+y; / 循环10次 y增加20cout ”y*y=”y*yendl;运行结果:y * y = 4417#includevoid main() int a10=12,39,26,41,55,63,72,40,83,95;int b; int i0=0,i1=0,i2=0; for(int i=0;i10;i+) switch(b=ai%3) case 0: i0+;break; /a i = 12 , 39

30、, 63 , 72 case 1:i1+;break; / a i = 55 , 40 case 2:i2+; / a i = 26 , 41 , 83 , 95 couti0 i1 i2endl;运行结果:4 2 48#include#includevoid main( )char *a5=student,worker,cadre,apple,peasant; char *p1,*p2; p1=p2=a0;for(int i=0;i0) p1=ai;/p1:最大;p2:最小 if(strcmp(ai,p2)0) p2=ai;coutp1 p2endl;运行结果:worker apple9#i

31、ncludevoid main( ) int a8=36,73,48,14,55,40,32,66; int b1,b2; b1=b2=a0; for(int i=1;ib1) if(b1b2)b2=b1; b1=ai; coutb1 b2endl; 运行结果:73 3610#includevoid main() char a= aabcdaabacabfgacd; int i1=0, i2=0, i=0; while(ai) if(ai = = a) i1+; if(ai = = b) i2+; i +; couti1 i2endl;运行结果:7 311#includevoid main()

32、 char a = abcdabcdbdaeaf; int b5= 0 ,i=0; while(ai) switch(ai) case a : b0+;break; case b : b1+;break; case c : b2+;break; case d : b3+;break; default : b4+; i+; for(i=0;i5;i+)coutbi ; coutendl;运行结果:4 3 2 3 212#includevoid main() int a10 = 73,83,54,62,40,75,80,92,77,84; int b4 = 60,70,90,101; int c4

33、 = 0; for(int i=0;i=bj) j+; cj+; for(i=0;i4;i+) coutci ; coutendl;运行结果:2 1 6 113#includevoid main() int a34 = 1,2,7,8,5,6,11,12,24,10,3,4; int m = a00; int ii =0,jj =0; for(int i =0;i3;i+) for(int j =0;jm) m=aij;ii=i;jj=j; / m:最大值;最大值行号ii、列号jj cout ii jj aiijjendl;运行结果:2 0 2414#includevoid main() in

34、t a =10,b =20; cout a b endl; a *= 4; int b = a +35; cout a b endl; cout a b endl;运行结果:10 2040 7540 2015#includevoid main()int a8=7,9,11,13,3,8,15,17;int *p = a;for(int i=0;i8;i+)coutsetw(5) *p+;if(i +1)%4 =0)coutendl;运行结果:7 9 11 133 8 15 1716#includevoid main()int a5=3,6,15,7,20;int *p = a;for(int

35、i = 0;i5;i+)coutsetw(5) *p+;coutendl;for(i =0;i5;i+)coutsetw(5) *-p;coutendl;运行结果:3 6 15 7 20 20 7 15 6 317#includevoid main()int a8 =4,8,12,16,20,24,28,32;int *p = a;docout *p ;p+=3;while(pa+8);coutendl;运行结果:4 16 2818#includevoid main()int x=20,y=40, *p;p =&x;cout *p ;* p= x +10; / x = x + 10 = 30p

36、 =&y;cout *pendl;* p = y +20;cout x y endl; 运行结果:20 40 30 6019#includeint LA(int * a,int n)int s = 0;for(int i =0;in;i+)s += ai;return s;void main()int a =5,10,15,20,25,30;int b =LA(a,5);int c =LA(a+3,2);cout b c b +2 * cendl;运行结果:75 45 16520#includevoid LC(int a,int b) / 参数按值传递int x = a;a = b;b = x;cout a b endl;void main()int x =15,y =36;LC(x,y);cout x y endl;运行结果:36 1515 362

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号