《山东开放大学C++语言程序设计期末考试复习题及参考答案.docx》由会员分享,可在线阅读,更多相关《山东开放大学C++语言程序设计期末考试复习题及参考答案.docx(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C+语言程序设计期末考试复习题注:找到所考试题直接看该试题所有题目和答案即可。查找按键:Ctrl+F超越高度一、单选题1、循环语句“for(inti=0;i函数体含有递归语句C、函数代码少、频繁调用D、函数代码多、不常调用正确答案:C3、要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()oA const char *p= ABCD” ;B char *const p= ABCD”;C、 char const *p= ABCD”;D const char * const p= ABCD” ;正确答案:D4、在关键字public后面定义的成员为类的()成员。有用护何 私公保任
2、 、 、 、 、 A B c D正确答案:B5、C+源程序文件的缺省扩展名为()。A、cppB、exeC、objD、lik正确答案:A6、设有语句int a=12; a+=a*a;,则执行结束后,a的值为()。A、12B、144C、156D、288正确答案:C7、当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。A、 ios:inB ios:outC ios:in | ios:outD、 ios:binary正确答案:A8、下列不能作为类的成员的是()oA、自身类对象的指针B、自身类对象C、自身类对象的引用D、另一个类的对象正确答案:B9、在下面的do循
3、环语句中,其循环体被执行的次数为()oA、4B、3C、5D、2正确答案:A10、若用数组名作为函数调用的实参,传递给形参的是()oA、数组的首地址B、数组中第一个元素的值C、数组全部元素的值D、数组元素的个数正确答案:A11、枚举类型中的每个枚举常量的值都是一个()oA、整数B、浮点数C、字符D、逻辑值正确答案:A12、下面正确的函数原型语句是()oA、int Function(void a);void Function (int);C int Function(a);D void int (doub正确答案:B13、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方
4、式为( )。A、 ios:inios:outB、 ios:in | ios:outD、没有正确答案:D14、假定有“struct BOOKchar title40; float price; BOOK *book;,则不正确的语句为()。A、 BOOK *x=new book;B BOOK x=C+ Programming77, 27. 0;C、 BOOK *x=new BOOK;D BOOK *x=&book;正确答案:A15、下面的()函数头格式不正确。A、AA(int a, int b)B、AA(int a, int b=0)C AA(int a=0, int b=0)D AA(int
5、a=0, int b)正确答案:D16、在每个C+程序中都必须包含有这样一个函数,该函数的函数名为()oA、mainB、MAINC nameD、function正确答案:A17、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号。A、分隔符B、空格或逗号C、逗号或回车D、逗号或分号E、空格或回车正确答案:D18、C+程序的基本模块为()oA、表达式B、标识符C、语句D、函数正确答案:D)19、编写C+程序一般需经过的几个步骤依次是(A、编辑、调试、编译、连接B、编辑、编译、连接、运行C、编译、调试、编辑、连接 D、编译、编辑、连接、运行 正确答案:B20、预处理命令在程序中都是
6、以()字符开头的。A、*B、#C、&D、正确答案:B21、循环体至少被执行一次的语句为()语句。A、for循环B、while 循环C、do循环D、任一种循环正确答案:C22、在下面的一维数组定义中,()语句有语法错误。A int a=l,2,3;B int a10=0;C、inta口;D、int a;正确答案:C23、在下面的字符数组定义中,()语句有语法错误。A、char a20= abcdefg, ;B、chara=? x+y=55.;C、chara15=? 1 , 2 ;D、chara10= 5;正确答案:D24、假定一个二维数组的定义语句为“int a3=314,2,8,6;,则元素a
7、的值为)。2468A、B、C、D、正确答案:C25、将两个字符串连接起来组成一个字符串时,选用()函数。A、strlen()B、strcpy()C、strcat()D、strcmpO正确答案:C二、判断题1、设置和清除格式标志字的成员函数需要通过对象来引用它们,输出显示格式的对象通常是 COUto正确答案:正确2、函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。正确答案:正确3、C+语言中模板分为函数模板和类模板两种。正确答案:正确4、continue语句只能出现在循环体中。正确答案:正确5、循环是可以嵌套的,一个循环体内可以包含另一种循环语句。正确答案:正确6、为了减轻使用者的负
8、担,与C语言相比,C+语言中减少了一些运算符。正确答案:错误7、C+语言中标识符内的大小写字母是没有区别的。正确答案:错误8、C+语言中使用了新的注释符(),C语言中注释符(/*/)不能在C+语言中使用。正确答案:错误9、开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。正确答案:错误10、使用关键字Class定义的类中默认的访问权限是私有(private)的。正确答案:正确11、预处理命令是在进行编译时首先执行的,然后再进行正常编译。正确答案:正确12、文件包含命令所包含的文件是不受限制的。正确答案:错误13、宏定义命令是以分号结束的。正确答案:错误14、条件语句不能作为多路分支语
9、句。正确答案:错误15、for循环是只有可以确定的循环次数时才可使用,否则不能用for循环。正确答案:错误三、写出程序运行结果1、#includevoid main () int sl=0, s2=l;for(int i=l; i=6; i+) sl+=i; s2*=i;coutsl,,J s2endl;正确答案:21,7202、#include#includevoid main() char* a5=student,/worker/cadren,soldier,zapen;char *pl;pl=a0;for(int i = l;i0) pl=ai;)coutplendl;)正确答案:wor
10、ker3、#includevoid main() int i = lzs=0;while(s20) if(i%2!=0) s+=i;i + +;)coutiz/ sendl;)正确答案:10,254、#includevoid main() int s=0;for(int i=l;i=8;i=+2)S+=l*l;couts=sendl;正确答案:s=845、#includevoid main () int a10 = 68, 79, 86, 65, 46, 94, 37, 78, 60, 53);int c=0;for(int i=0;i=60) c+;coutnc-,cendl;)正确答案:.
11、c=76、#include#includestruct Worker char name15; 姓名int age;年龄float pay;工资);void main() Worker x;strcpy(x.name, WeiRong);x.age=45; x.pay=1235;coutx.name x.age x.payendl;正确答案:WeiRong45 1235四、写出函数功能1、void LK(int a, int n, int& m) float s=0;int i;for(i=0;in;i + +) s+=ai;s/二 n;m=0;for(i=0;i=s) m + +;)正确答案
12、:统计出数组a的前n个元素中大于等于其平均值的元素个数并由引用参数m带回。2、int WC(int a, int n, int k) int c=0;for(int i=0;i=k) C+;return c;)正确答案:3、统计出数组a的n个元素中大于等于参数k的值的元素个数并返回。bool WB(int a, int n, int x) for(int i=0;in;i+)if (ai=x) return true;return false;)正确答案:4、从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。double WA(int a, int n) double s=0;f
13、or(int i=0;in;i + +) s+=ai;return s/n;)正确答案:5、求出数组a中n个元素的平均值并返回。bool SG(int x)/x为大于等于2的整数int a = int(sqrt(x); sqrt(x)为求 x 的平方根int i=2;while(i int Function(a);D、void int(doub正确答案:B13、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。A、ios:inB、ios:outC、ios:in | ios:outD、没有正确答案:D14、假定有struct BOOKchar title40
14、; float price; BOOK *book;,则不正确的语句为()。A、BOOK *x=new book;if(ia) return true; else return false;)正确答案:判断X是否为一个素数(或质数),若是则返回真,否则返回假。6、bool WE(int a, int bz int n) for(int i=0;in;i + +)if(ai! = bi) break;if(i = = n) return true; return false;)正确答案:.判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回 假。五、编程题1、假定一个
15、函数声明为void AD(int a, int n);H ,要求把数组a中的n个元素值按相反的次序仍保存在数组a中。请编写该函数。正确答案:void AD(int a, int n)(for(i=0; in/2; i+) int x=ai; ai=an-l-i; an-l-i=x;)2、假定一个函数声明为“intFF(inta口, intn);,要求递归求出数组a中所有n个元素之积并 返回。请编写该函数。正确答案:int FF(int a, int n)(if(n= = l) return an-l;else return an-l*FF(a/n-l);或者 if(n =O) return 1
16、;/ else return an-l*FF(a,n-l);)2022学年9月份考试C+语言程序设计 复习题一、单选题1、循环语句for(int i=O; i constB、 charC、 charD constchar const constchar*p= ABCD” p二 “ABCD”*p= ABCD”* const p“ABCD” ;3、要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为(正确答案:D4、在关键字public后面定义的成员为类的()成员。有用护何 私公保任 、 、 、 、 A B c D正确答案:B5、C+源程序文件的缺省扩展名为()。A、cppB、ex
17、eC、objD、lik正确答案:A6、设有语句int a=12; a+=a*a;,则执行结束后,a的值为()。A、12B、144C、156D、288正确答案:C7、当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。A、 ios:inB ios:outC、 ios:in | ios:outios:binary正确答案:A8、下列不能作为类的成员的是()oA、自身类对象的指针B、自身类对象C、自身类对象的引用D、另一个类的对象正确答案:B9、在下面的do循环语句中,其循环体被执行的次数为()oA、4B、3C、5D、2正确答案:A10、若用数组名作为函数调用的
18、实参,传递给形参的是()。A、数组的首地址B、数组中第一个元素的值C、数组全部元素的值D、数组元素的个数正确答案:A11、枚举类型中的每个枚举常量的值都是一个()oA、整数B、浮点数C、字符D、逻辑值正确答案:A12、下面正确的函数原型语句是()oA、int Function(void a);void Function (int);C int Function(a);D void int(doub正确答案:B13、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。A、 ios:inB ios:outC、 ios:in | ios:outD、没有正确答案:D
19、14、假定有struct BOOKchar title40; float price; BOOK *book/ 则不正确的语句为()。A、 BOOK *x=new book;B、BOOK x=C+ Programming, 27. 0;C BOOK *x=new BOOK;D、BOOK *x=&book;正确答案:A15、下面的()函数头格式不正确。A、AA(int a, int b)B、AA(int a, int b=0)C AA(int a=0,int b=0)D AA(int a=0,int b)正确答案:D16、在每个C+程序中都必须包含有这样一个函数,该函数的函数名为()oA、mai
20、nB、MAINC nameD、function正确答案:A)符号。)符号。17、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(A、分隔符B、空格或逗号C、逗号或回车 D、逗号或分号 E、空格或回车 正确答案:D18、C+程序的基本模块为()oA、表达式B、标识符C、语句D、函数正确答案:D19、编写C+程序一般需经过的几个步骤依次是()oA、编辑、调试、编译、连接B、编辑、编译、连接、运行C、编译、调试、编辑、连接D、编译、编辑、连接、运行正确答案:B20、预处理命令在程序中都是以()字符开头的。A、*B、#C、&D、正确答案:B21、循环体至少被执行一次的语句为(21、循环体至
21、少被执行一次的语句为()语句。A、for循环B、while 循环C、do循环D、任一种循环正确答案:C22、在下面的一维数组定义中,()语句有语法错误。A int a=l,2,3;B int a10=0;C inta;D、int a;正确答案:C23、在下面的字符数组定义中,()语句有语法错误。A、chara20= abcdefg;B、chara=? x+y=55.;C、chara15=, 1 , 2 ;D、chara10= 5;正确答案:D24、假定一个二维数组的定义语句为uinta34=3,4,2,8,6;,则元素的值为( )。A、2B、4C、6D、8正确答案:C25、将两个字符串连接起来
22、组成一个字符串时,选用()函数。A、strlen()B、strcpy()C strcat()D、strcmpO正确答案:C二、判断题1、设置和清除格式标志字的成员函数需要通过对象来引用它们,输出显示格式的对象通常是COUto正确答案:正确2、函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。正确答案:正确3、C+语言中模板分为函数模板和类模板两种。正确答案:正确4、continue语句只能出现在循环体中。正确答案:正确5、循环是可以嵌套的,一个循环体内可以包含另一种循环语句。正确答案:正确6、为了减轻使用者的负担,与C语言相比,C+语言中减少了一些运算符。正确答案:错误7、C+语言中
23、标识符内的大小写字母是没有区别的。正确答案:错误8、C+语言中使用了新的注释符:(),C语言中注释符(/*/ )不能在C+语言中使用。正确答案:错误9、开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。正确答案:错误10、使用关键字class定义的类中默认的访问权限是私有(private)的。正确答案:正确11、预处理命令是在进行编译时首先执行的,然后再进行正常编译。正确答案:正确12、文件包含命令所包含的文件是不受限制的。正确答案:错误13、宏定义命令是以分号结束的。正确答案:错误14、条件语句不能作为多路分支语句。正确答案:错误15、for循环是只有可以确定的循环次数时才可使用,
24、否则不能用for循环。正确答案:错误三、写出程序运行结果1、#includevoid main () int sl=0, s2=l;for(int i=l; i=6; i+) sl+=i; s2*=i;coutsl,,J s2endl;正确答案:21,7202、#include#includevoid main() char* a5=,student,/,worker,/cadre,7,soldier,z,apen);char *pl;pl=a0;for(int i=l;i0) pl=ai;)coutplendl;)正确答案:worker3、#includevoid main() int i
25、= l,s=0;while(s20) if(i%2!=0) s+=i;i + +;)coutiz/ sendl;)正确答案:10,254、#includevoid main() int s=0;for(int i=l;i=8;i=+2)S+=l*l;couts=,sendl;)正确答案:s=845、#iriclude void main() int a10 = 68, 79, 86, 65, 46, 94, 37, 78, 60, 53;int c=0;for(int i=0;i=60) c+;cout,c-,cendl;正确答案:.c=76、#include#includestruct Wo
26、rker char name15; 姓名int age;年龄float pay;工资);void main() Worker x;strcpy(x.name, WeiRong);x.age=45; x.pay=1235;coutx.name x.age x.pay nameD、function正确答案:A17、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号。A、分隔符B、空格或逗号C、逗号或回车D、逗号或分号E、空格或回车正确答案:D18、C+程序的基本模块为()oA、表达式B、标识符C、语句D、函数正确答案:D19、编写C+程序一般需经过的几个步骤依次是()。A、编辑、调
27、试、编译、连接B、编辑、编译、连接、运行C、编译、调试、编辑、连接D、编译、编辑、连接、运行正确答案:B20、预处理命令在程序中都是以()字符开头的。A、*B、#1、void LK(int az int n, int& m) float s=0;int i;for(i=0;in;i + +) s+=ai;s/=n;m=0;for(i=0;i=s) m + +;)正确答案:统计出数组a的前n个元素中大于等于其平均值的元素个数并由引用参数m带回。2、int WC(int a, int n, int k) int c=0;for(int i=0;i=k) C+;return c;)正确答案:3、统计
28、出数组a的n个元素中大于等于参数k的值的元素个数并返回。bool WB(int a, int n, int x) for(int i=0;in;i+)if(ai=x) return true;return false;)正确答案:4、从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。double WA(int a, int n) double s=0;for(int i=0;in;i + +) s+=ai;return s/n;)正确答案:5、求出数组a中n个元素的平均值并返回。bool SG(int x)/x为大于等于2的整数int a=int(sqrt(x); sqrt(x)
29、为求 x 的平方根int i=2;while(ia) return true; else return false;)正确答案:判断X是否为一个素数(或质数),若是则返回真,否则返回假。6、bool WE(int a口, int bz int n) for(int i=0;in;i + +)if(ai! = bi) break;if(i= = n) return true; return false;)正确答案:.判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回 假。五、编程题1、假定一个函数声明为void AD(int a, int n);H ,要求把数组a中
30、的n个元素值按相反的次序仍保存在数组a中。请编写该函数。正确答案:void AD(int a, int n)(for(i=0; in/2; i+) int x=ai; ai=an-l-i; an-l-i=x;)2、假定一个函数声明为“intFF(inta口, intn);,要求递归求出数组a中所有n个元素之积并 返回。请编写该函数。正确答案:int FF(int a, int n)(if(n = = l) return an-l;else return an-l*FF(a,n-l);或者 if(n =0) return 1;/ else return an-l*FF(azn-l);2020学年
31、第二学期期末考试C+语言程序设计一、单选题1、文件包含命令中被包含的文件的扩展名()。A、只能是hB、不能是.hC、可以是.h或.cppD、只能是cpp我的答案:c2、枚举类型中的每个枚举常量的值都是一个()。A、整数B、浮点数C、字符D、逻辑值我的答案:A3、x和y均为bool量,则x 11 y为假的条件是()。A、它们均为真B、其中一个为真C、它们均为假D、其中一个为假我的答案:C4、for语句能够被改写为()语句。A、复合B、ifC、switchD、while我的答案:D5、将两个字符串连接起来组成一个字符串时,选用()函数。A、strlen()B、strcpy()C、strcat()D
32、、strcmp()我的答案:C6、已知fl和f2是同一类的两个成员函数,但fl不能直接调用f2,这说明()。A、fl和f2都是静态函数B、fl不是静态函数,f2是静态函数C、fl是静态函数,f2不是静态函数D、D和f2都不是静态函数我的答案:C7、假定a为一个数组名,则下面的()表示有错误。A ai*a+C、*aD、*(a+l)我的答案:B8、在一个类的定义中,通常要包含有()成员的定义。A、数据B、函数C、数据和函数D、数据或函数我的答案:C9、对于私有继承,基类的公有和保护成员在派生类中将()成员。A、全部变成公有B、全部变成保护C、全部变成私有D、仍然相应保持为公有和保护我的答案:C10
33、、当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含 打开方式为()。A、ios:inB、ios:outC、ios:in | ios:outD、ios:binary我的答案:B二、判断题1、文件包含命令所包含的文件是不受限制的。我的答案:X2、C+语言中使用了新的注释符(),C语言中注释符(/*/)不能在C+语言中 使用。我的答案:X3、开关语句中的default关键字,只能放在该语句的末尾,不能放在开头或中间。我的答案:x4、计算函数参数顺序引起的二义性完全是由不同的编译系统决定的。我的答案:X5、如果一个函数没有返回值,定义时需用void说明。我的答案:j6、一个能够
34、更新的变量使用在一个不能被更新的环境中是不破坏类型保护的, 反之亦然。我的答案:X7、使用关键字class定义的类中默认的访问权限是私有(private)的。我的答案:78、对每个可重载的运算符来说,只能重载为友元函数。我的答案:X9、构造函数说明为纯虚函数是没有意义的。我的答案:V10、read。和write。函数可以读写文本文件,也可以读写二进制文件。我的答案:V三、其它1、已知6WaW30、15b36,求出满足不定方程2a+5b=126的全部整数组解。如(13,20)就是其中的一组解,并按此格式输出每组解。我的答案#includevoidmain()(inta,b;for(a=6;a=3
35、0;a+)for(b=15;b=36;b+)if(2*a+5*b=126)cout,(,a,b,),endl;)2、#includevoidmain()inta34=l,27,845,641,15X970,3,4);intm=aOO;for(inti=0;i3;i+)for(intj=0;jm)m=aij;coutmendl;)我的答案203、#includestructWorkercharname15; /姓名intage; 年龄floatpay; 工资);voidmain()Workerx=wangfong,46,1640;Workery/p;y=x;p=&x;couty.namey.ag
36、ey.payendl;coutp-namep-age+5,p-pay-300endl;我的答案wangfong4616404、#includevoidmain()intsl=0,s2=l;for(inti=l;i=6;i+)sl+=i;s2*=i;coutsl7s2endl;)我的答案21,7205、intWC(inta,intn,intk)intc=0;for(inti=0;i=k)c+;returnc;)我的答案intWC(inta,intn,intk)intc=0;for(inti=0;i=k)c+;returnc;函数功能:计算 a数列前 n 项中,大于等于k的项数的值6、intff(
37、intx,inty,charop)intz;switch(op)case+,:coutx+,y,=,;cinz;if(x+y=z)returnl;elsereturnO;break;case-:coutx,-,y,=,;cinz;if(x-y=z)returnl;elsereturnO;break;case*:coutx*,y=;cinz;if(x*y=z)returnl;elsereturnO;break;case/coutx,/,y,=,;cinz;if(x/y=z)returnl;elsereturnO;break;default:cout“运算符错,退出匕exit(l);)我的答案以参
38、数x和y作为运算对象,以参数op所存字符作为运算符,要求从键盘上输 入运算结果,若正确则返回1否则返回0。2020学年第二学期C+语言程序设计复习题一、单选题(共10题,每小题2分,共20分)I、C+源程序文件的缺省扩展名为()0A、cppB、exec、objD、Lik正确答案:A2、在下列成对的表达式中,运算结果类型相同的一对是()oA、7.0 / 2.0 和 7.0 / 2B、5/2.0和 5/2C、7.0/2 和 7/2D、8/2 和 6.0/2.0正确答案:A3、x和y均为bool量,则x | y为假的条件是()。A、它们均为真B、其中一个为真C、它们均为假D、其中一个为假正确答案:C4、for语句能够被改写为()语句。A、复合B、ifC、switchD、while正确答案:D)函数。)函数。5、将两个字符串连接起来组成一个字符串时,选用(A、strlen()B、strcpyOC、strcat()D、strcmpO正确答案:C6、已知fl和f2是同一类的两个成员函数,但fl不能直接调用f2 ,这说