《山东开放大学第二学期期末考试《C++语言程序设计》复习题.docx》由会员分享,可在线阅读,更多相关《山东开放大学第二学期期末考试《C++语言程序设计》复习题.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022学年第二学期期末考试C+语言程序设计 复习题一、单选题1、循环语句“for(inti=0;in;i+)S;中循环体S被执行的次数为()。A、1B、n-1C、 nD、 n+1正确答案:C2、适宜采用inline定义函数情况是()。A、函数体含有循环语句B、函数体含有递归语句C、函数代码少、频繁调用D、函数代码多、不常调用正确答案:C3、要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()oA、const char *p= ABCD” ;B、char *const p= ABCD” ;C、char const *p= ABCD;D、const char * const
2、p= ABCD” ;正确答案:D4、在关键字public后面定义的成员为类的()成员。A、私有B、公用C、保护D、任何正确答案:B5、C+源程序文件的缺省扩展名为()oA、 cppB、 exeC、objD、lik正确答案:A6、设有语句“int a=12; a+=,则执行结束后,a的值为()。A、12B、144C、156D、288正确答案:C7、当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )oA、 ios:inB、 ios:outC、 ios:in | ios:outD、 ios:binary正确答案:A8、下列不能作为类的成员的是()。A、自身类对象
3、的指针B、自身类对象C、自身类对象的引用D、另一个类的对象正确答案:B9、在下面的do循环语句中,其循环体被执行的次数为()0A、4B、3C、5D、2正确答案:A10、若用数组名作为函数调用的实参,传递给形参的是()oA、数组的首地址B、数组中第一个元素的值C、数组全部元素的值D、数组元素的个数正确答案:A11s枚举类型中的每个枚举常量的值都是一个()oA、整数B、浮点数C、字符D、逻辑值正确答案:A12、下面正确的函数原型语句是()A、 int Function(void a);B、 void Function (int);C、 int Function(a);D、 void int(dou
4、b正确答案:B13、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )oA、 ios:inB、 ios:outC、 ios:in | ios:outD、没有正确答案:D14、假定有struct BOOKchar title40; float price; BOOK *book;n ,则不正确的语句为( )oA、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、A
5、A(int a, int b=0)C、AA(int a=0, int b=0)D、AA(int a=0, int b)正确答案:D16、在每个C+程序中都必须包含有这样一个函数,该函数的函数名为()0A、mainB、MAINC、nameD、function正确答案:A17、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符A、分隔符B、空格或逗号C、逗号或回车D、逗号或分号E、空格或回车正确答案:D18、C+程序的基本模块为()0A、表达式B、标识符C、语句D、函数正确答案:D19、编写C+程序一般需经过的几个步骤依次是()oA、编辑、调试、编译、连接B、编辑、编译、连接、运行C
6、、编译、调试、编辑、连接D、编译、编辑、连接、运行正确答案:B20、预处理命令在程序中都是以(A、*)字符开头的。B、#C、&D、正确答案:B21、循环体至少被执行一次的语句为()语句oA、for循环B、while 循环C、do循环D、任一种循环正确答案:C)语句有语法错误。22、在下面的一维数组定义中,(As int a|=l,2,3;B. int a10=0;Cs intaQ;Ds inta5;正确答案:C23、在下面的字符数组定义中,()语句有语法错误。A、char a20= J , abcdefg5 1 ;B、char a二x+y=55.;C、chara15= I1 , * 21 ;D
7、、chara10= 1 5;正确答案:D24、假定一个二维数组的定义语句为Int a34=3,4,2,856;n ,则元素al2的值为()oA、2B、4C、6D、8正确答案:C25、将两个字符串连接起来组成一个字符串时,选用()函数。A、strlen()B、strcpy()C、strcatQD、strcmpO正确答案:C二、判断题1、设置和清除格式标志字的成员函数需要通过对象来弓I用它们输出显示格式的对象通常是 COUto正确答案:正确2、函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。正确答案:正确3、C+语言中模板分为函数模板和类模板两种。正确答案:正确4、continue语句
8、只能出现在循环体中。正确答案:正确5、循环是可以嵌套的,一个循环体内可以包含另一种循环语句。正确答案:正确6、为了减轻使用者的负担,与C语言相比C+语言中减少了一些运算符。正确答案:错误7、C+语言中标识符内的大小写字母是没有区别的。正确答案:错误8、C+语言中使用了新的注释符(),C语言中注释符(/*/ )不能在C+语言中使用。 正确答案:错误9、开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。正确答案:错误10、使用关键字class定义的类中默认的访问权限是私有(private)的。正确答案:正确1K预处理命令是在进行编译时首先执行的,然后再进行正常编译。正确答案:正确12、文
9、件包含命令所包含的文件是不受限制的。正确答案:错误13、宏定义命令是以分号结束的。正确答案:错误14、条件语句不能作为多路分支语句。正确答案:错误15 for循环是只有可以确定的循环次数时才可使用,否则不能用for循环。正确答案:错误三、写出程序运行结果1、#includevoid main() int sl=0, s2=l;for(int i=l; i=6; i+) sl+=i; s2*=i;coutsl,s2endl;)正确答案:21,7202、#include#includevoid main() char* a5=student,worker,cadre,soldier,apen;ch
10、ar *pl;pl=a0;for(int i=l;i0) pl=ai; coutplendl;)正确答案: worker3、#includevoid mainO int i=l,s=0;while(s20) if(i%2!=0)s+=i; i+; couti* / sendl;)正确答案:10,254、#includevoid main() int s=0;for(int i = l;i=8;i =+2) s+=i*i;couts=sendl;)正确答案: s=845、#includevoid main() int a10=68,79,86,65,46,94,37,78,60,53);int
11、c=0;for(int i=0;i=60) C+; cout c=n cendl;)正确答案: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;)正确答案:WeiRong 45 1235四、写出函数功能1、void LK(int aQ, int n, int& m) float s=0;int i;for(i=
12、0;in;i+) s+=ai;s/=n;m=0;for(i=0;i=s) m+;)正确答案:统计出数组a的前n个元素中大于等于其平均值的元素个数并由弓I用参数m带回。2X 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 aQ, int n, int x) for(int i=0;in;i+)if(ai=x) return true;return false;)正确答案:从数组a中顺序查找值为x的元素,若查找成功则返回
13、真,否则返回假。4、double WA(int aQ, int n) double s=0;for(int i=0;in;i+) s+=ai;return s/n;正确答案:求出数组a中n个元素的平均值并返回。5、bool SG(int x) /x为大于等于2的整数int a=int(sqrt(x); sqrt(x)为求 x 的平方根int i=2;while(ia) return true; else return false;)正确答案:判断X是否为一个素数(或质数),若是则返回真,否则返回假。6、bool WE(int aQ, int b, 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(inta, int n),要求把数组a中的n个元素值按相反的 次序仍保存在数组a中。请编写该函数。正确答案:void AD(int a, int n)for(i=0; i=0; i-) coutai,;if(+j%6=0) coutendl;)coutendl;