C++04737 第1章 课后练习题 完整答案

合集下载

《C语言程序设计》课后习题答案(第四版)谭浩强85473精编版

《C语言程序设计》课后习题答案(第四版)谭浩强85473精编版

第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。

自考04737C++程序设计201001历年真题及答案

自考04737C++程序设计201001历年真题及答案

2010年1月高等教育自学考试全国统一命题考试C++程序设计试题课程代码:04737一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.在C++中,头文件扩展名为()A..cppB..hC..1ibD..obj2.下列符号中,不属于分隔符的是()A.,B./C.;D.{}3.可替换#definePI3.1415926的语句是()A.float PI 3.1415926;B.const float PI=3.1415926;C.const PI(3.1415926);D.const 3.1415926;4.布尔类型标识符是()A.voidB.shortC.longD.bool5.下列不是C++语言的基本数据类型的是()A.字符类型B.整数类型C.逻辑类型D.枚举类型6.C++允许在结构中定义函数,这些函数称为()A.静态函数B.构造函数C.析构函数D.成员函数7.设函数void inc(int)将形参加1,如有整型变量int i=10;则执行inc(i);后,i的值为()A.9B.10C.11D.未知8.下列哪种默认参数的声明是不正确的()A. int max(int a,int b,int c,int d=0);B. int max(int a,int b,int c=0,int d=0);C. int max(int a=0,int b,int c=0,int d=0);D. int max(int a,int b=0,int c=0,int d=0);9.设int &max(int &,int &)返回两参数中较大者,如有两整型变量int a=10;int b=15;在执行max(a,b)++后,a,b值分别为()A.10,15B.11,15C.10,16D.1l,1610.包含哪种语句的函数不能声明为内联函数()A.循环B.变量自增自减C.if...else…D.变量声明11.定义函数模板中使用的参数类型标识符需使用下列哪组符号括起来()A.<>B.“”C.()D.{}12.一个类拥有多个构造函数,则这些构造函数间为()A.重载关系B.重复关系C.拷贝关系D.无关系13.对于拷贝构造函数point::point(point& p),下列说明正确的是()A.该函数只能访问P的私有成员B.该函数不能访问P的公有成员C.该函数可以访问P的私有和公有成员D.该函数不能访问P的成员14.使用delete[]删除对象数组时,描述正确的是()A.数组中各元素都调用析构函数B.数组中各元素都调用构造函数C.不调用析构函数D.只有首元素调用析构函数15.下列哪个指令属于条件编译指令()A. #elifB. #errorC. #pragmaD. #include16.设类Test中存在成员static int x,则下列哪种初始化方式是正确的()A.Test::int x=25;B.int x=25;C.int Test::x=25;D.int Test x=25;17.下列关于友元的描述错误的是()A.成员函数不可作友元B.类可以作友元C.普通函数可以作友元D.静态函数可以作友元18.在继承中,派生类拥有的基类个数为()A.0个B.1个C.多个D.至少1个19.基类中的protected成员,通过public派生,其在派生类中的可见性为()A.不可访问B.privateC.protectedD.public20.下列哪个不是面向对象的关键要素()A.抽象性B.结构性C.封装性D.多态性二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。

04737C++程设计试题及答案201404

04737C++程设计试题及答案201404

全国2014年4月高等教育自学考试C++程序设计试题课程代码:04737本试卷满分100分,考试时间150分钟.考生答题注意事项:1.本卷所有试题必须在答题卡上作答。

答在试卷上无效。

试卷空白处和背面均可作草稿纸。

2.第一部分为选择题。

必须对应试卷上的题号使用28铅笔将“答题卡”的相应代码涂黑。

3.第二部分为非选择题。

必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。

4.合理安排答题空间。

超出答题区域无效。

第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。

错涂、多涂或未涂均无分。

1.下列关于类的权限描述错误的是A.类本身的成员函数可以访问自身的任何成员B.类的对象只能访问公有成员C.普通函数可以不通过对象直接访问类的公有成员D.一个类可以包含另一个类的对象作为成员2.只能在自身类和子类成员函数中被访问,无法通过对象在类外访问的成员属于A.privateB.protectedC.publicD.publish3.面向对象中的“对象”是指A.行为抽象B.数据抽象C.行为抽象和数据抽象的统一D.行为抽象和数据抽象的对立4.在类外定义成员函数时,::运算符两侧分别连接A.返回值类型函数名B.返回值类型类名C.函数名类名D.类名函数名5.设函数int& index(int * a,int i)返回数组a中下标为i的元素,如存在整型数组int Array[]={1,2,3},在执行index(Array,2)+ +后,Array中各元素值为A.{0,1,2}B.{l,1,2}C.{1,2,4}D.{0,2,3}6.类构造函数定义的位置是A.类体内或体外B.只是在类体内C.只在类体外D.在类的成员函数中7.设存在数组a,其长度为Len,则下列哪项泛型算法用于在a中寻找值Value的位置A.reverse(a,a+Len,Value);B.sort(a,a+Len,Value);C.find(a,a+Len,Value);D.copy(a,a+Len,Value);8.关于对象的性质,下列描述错误的是:A.同一类对象间可相互赋值B.可以使用对象数组C.对象不可以用作函数参数D.一个对象可以用作另一个类的成员9.声明一个没有初始化参数的对象,需调用A.指定参数构造函数B.拷贝构造函数C.初始化函数D.默认构造函数10.下列运算符不能重载的是A.!B.sizeofC.newD.delete11.如P是一指针类型表达式,则下列表达式中不是左值表达式的是A.PB.*PC.&PD.P+112.使用下列流格式控制符能输出一个换行符的是A.decB.octC.hexD.endl13.下列表达式,能将P声明为常量指针的是A.const int * P;B.int*const P;C.const int * const PD.int * P14.C++程序文件扩展名为A..cppB..hC..libD..obj15.对C++中主函数描述正确的是A.名称为main,可为多个B.名称不限,可为多个C.名称为main,必须有且只能有一个D.名称不限,必须有且只能有一个16.假定有char * P="Hello";,要输出这个字符串的地址值的正确写法是A.cout<< *PB.cout<<PC.cout<<&PD.cout<<(void *)P17.下列描述错误的是A.在没创建对象前,静态成员不存在B.静态成员是类的成员,不是对象成员C.静态成员不能是虚函数18.对于友元描述正确的是A.友元是本类的成员函数B.友元不是本类的成员函数C.友元不是函数D.以上皆不正确19.一个函数功能不太复杂,但要求频繁使用,则该函数适合作为A.内联函数B.重载函数C.递归函数D.嵌套函数20.下列默认参数的声明不正确的是A.int max(int a,int b,int c,int d=0);B.int max(int a,int b,int c=0,int d=0);C.int max(int a=0,int b,int c=0,int d=0);D.int max(int a,int b=0,int c=0,int d=0);非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。

04737C++程序设计试题及答案201410(纸质)

04737C++程序设计试题及答案201410(纸质)

2014年lO月高等教育自学考试全国统一命题考试C++程序设计试卷(课程代码04737)本试卷共8页,满分l00分,考试时间l50分钟。

考生答题注意事项:1.本卷所有试题必须在答题卡上作答。

答在试卷上无效,试卷空白处和背面均可作草稿纸。

2.第一部分为选择题。

必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。

3.第二部分为非选择题。

必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。

4.合理安排答题空间,超出答题区域无效。

第一部分选择题一、单项选择题(本大题共20小题,每小题l分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。

未涂、错涂或多涂均无分。

1.在编译指令中,宏定义使用的指令是A.#include B.#define C.#if D.#else2.基类中的protected成员,通过哪种派生,其在派生类中的可见性为protected?A.public和private B.public和protectedC.protected和private D.仅protected3.基类中的public成员,通过public派生,基在派生类中的可见性为A.不可访问 B.private C.protected D.public4.不同对象调用同名函数,但导致完全不同行为的现象称为A.抽象 B.封装 C.继承 D.多态性5.头文件扩展名为A.cpp B.h C.ub D.ob6.声明函数为内联使用的关键字为A.const B.inline C.short D.signed7.设类A中有静态数据成员x,两个A类对象a和b,若a.x=10,则b.x的值为A.9 B.10 C.1l D.不能确定8.C ++允许在结构中定义函数,这些函数称为A.静态函数 B.构造函数 C.析构函数D.成员函数9.下列哪种类型的函数适合声明为内联函数?A.函数体语句较多 B.函数体逻辑较复杂C.函数执行时间较长D.函数语句较少,执行速度要求高10.析构函数的返回值类型为A.void B.bool C.int D.无类型11.函数重载必须满足的条件是A.函数名相同 B.参数个数不同 C.参数类型不同 D.函数名不相同12.下列表达式,哪个是声明P为指向常量的常量指针?A.const int*P B.int*const PC.const int* const P D.int*P13.C++中函数中的return指令可以A.只能有一条B.0或多条 C.至少有一条 D.只能主函数调用14.类声明的内容用花括号括起来,在花括号后跟哪个符号表示类声明结束A.:B.; C., D..15.使用new Point(5,7)创建对象,调用的是下列哪个构造函数?A.Point::Point() B.Point::Point(int,int)C.Point::Creat() D.Point::Creat(int,int)16.类中的protected成员在何处访问?A.只类自身成员函数中 B.只子类成员函数中C.类和子类的成员函数中 D.通过对象类外访问17.在类中使用static关键字修饰的成员函数称为A.全局成员函数 B.公有成员函数C.静态成员函数 D.非静态成员函数18.用于标识十六进制常量的前缀或后缀是A.无 B.后缀L或l C.前缀零 D.前缀Ox19.在定义结构时,为产生封装性,则需使用哪个关键字数据成员?A.public B.publish C.protected D.private20.函数模板template<typename T>void Func(T,T)不能具有哪种实例化形式?A.void Func(int,int) B.void Func(bool,bool) C.void Func(double,int) D.void Func(char,char)第二部分非选择题二、填空题(本大题共20小题。

04737c程序设计试题及答案20200_图文

04737c程序设计试题及答案20200_图文

全国2009年10月高等教育自学考试C++程序设计试题课程代码:04737一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.对C++中主函数描述正确的是( )A.名称为main,可为多个B.名称不限,可为多个C.名称为main,必须有且只能有一个D.名称不限,必须有且只能有一个2.调用声明为int result(int a,int b)的函数时,正确的方法是( )A.result(1,2)B.result(1)C.result(0.1,0.3)D.result(1,2,3)3.用于包含C++标准库iostream的预处理指令是( )A.#define<iostream>B.#include<iostream>C.#define ‘iostream’D.#include‘iostream’4.无类型标识符是指( )A.voidB.boolC.shortD.long5.从本质上看,引用是被引用变量的( )A.拷贝B.别名C.复制D.克隆6.下面关于数组的初始化正确的是( )A.char str[ ]={'a','b','c'};B.char str[2]={'a','b','c'};C.char str[1][2]={{'a','b'},{'e','d'}};D.char str[ ][ ]={'a','b','c'};7.C++类中定义的成员默认访问属性为( )A.publicB.privateC.protectedD.friend1文档来源为:从网络收集整理.word版本可编辑.8.决定C++语言中函数的返回值类型的是( )A.return语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型9.函数int & min(int &,int &)返回参数中较小者,设有两整型变量int a=10;int b=15;在执行语句min(a,b)--;之后,a,b值分别为( )A.9,14B.9,15C.10,14D.10,1510.声明函数为内联函数时所使用的关键字为( )A.constB.inlineC.shortD.signed11.函数int sum(int a=l,int b=1,int c=3)可与下列哪个函数同时声明( )A.double sum(int);B.char sum(int,int);C.int sum(double);D.int sum(int,int,int);12.函数模板template<typename T> void Func(T,T)可具有下列哪种实例化形式( )A.void Func(float,int)B.void Func(char,char)C.void Func(int,double)D.void Func(bool,float)13.下列访问成员的方式哪个是正确的( )A.对象名.对象成员名B.对象指针名.对象成员名C.对象名→对象成员名D.类名→对象成员名14.对类A,复制构造函数的原型是( )A.A::A(const A&);B.A::A(const A *);C.A::A(const A);D.A::A( );15.对class point,如使用point * ptr=new point[2];创建对象数组,则删除此数组使用的语句是( )A.delete ptr[2];B.delete[ ] ptr;C.delete ptr[ ];D.delete[2] ptr;16.下列哪个编译指令不属于条件编译指令( )A.#ifB.#else1文档来源为:从网络收集整理.word版本可编辑.C.#endifD.#error17.类A中存在静态数据成员x,设a和b是类A的两个对象,在执行a.x=10之后,b.x的值为( )A.未初始化B.等于a.xC.等于0D.随机18.使用string.h库操纵字符串时,将两个字符串连接成一个字符串的函数是( )A.strlen()B.strcap()C.strcat()D.strcmp()19.基类中的public成员,通过public派生,其在派生类中的访问权限为( )A.不可访问B.privateC.protectedD.public20.不同对象调用同名函数,但导致完全不同行为的现象称为( )A.抽象B.封装C.继承D.多态性二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。

2015年4月C++全国自考真题及答案

2015年4月C++全国自考真题及答案

2015年4月高等教育自学考试全国统一命题考试C++程序设计试卷(课程代码04737)本试卷共ll页,满分t00分,考试时间l50分钟。

考生答题注意事项:1.本卷所有试题必须在答题卡上作答。

答在试卷上无效,试卷空白处和背面均可作草稿纸。

2.第一部分为选择题。

必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。

3.第二部分为非选择题。

必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。

4.合理安排答题空间。

超出答题区域无效。

第一部分选择题一、单项选择题(本大题共20小题,每小题l分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。

未涂、错涂或多涂均无分。

1.C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,C++在求解问题方法上进行的最大改进是A.面向过程 B.面向对象 C.安全性 D.复用性2.结构化程序设计所规定的三种基本控制结构是A. 输入、处理、输出 B.树形、网形、环形 C.顺序、选择、循环 D. 主程序、子程序、函数3.关于函数模板,描述错误的是A.函数模板必须由程序员实例化为可执行的函数模板B. 函数模板的实例化由编译器实现C.一个类定义中,只要有一个函数模板,则这个类是类模板D.类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化4.作用域运算符“::”的功能是A.标识作用域的级别的 B.指出作用域的范围的C.给定作用域的大小的 D.标识成员是属于哪个类的5.采用重载函数的目的是A.实现共享 B.减少空间C.提高速度 D.使用方便,提高可读性6.以下关键字不能用来声明类的访问权限的是A.public B.private C.stadc D.protected7. 有如下类声明“class A{int x;…};”,则A类的成员x是A. 公有数据成员 B.私有数据成员C.公有成员函数 D.私有成员函数8. 下列不是构造函数的特征的是A.构造函数的函数名与类名相同 B.构造函数可以重载C.构造函数可以设置缺省参数 D.构造函数不能重载9.通常的拷贝构造函数的参数是A. 某个对象名 B.某个对象成员名C.某个对象的引用 D.某个对象的指针名10.下列哪个类型函数不适合声明为内联函数A. 函数体语句较多 B.函数体语句较少C.函数执行时间较短 D.函数执行时间过长11.设x和y均为bool量,则x&&y为真的条件是A.它们均为真 B.其中一个为真C.它们均为假 D.其中一个为假12.对于友元描述正确的是A.友元是本类的成员函数 B.友元不是本类的成员函数C.友元不是函数 D.友元不能访问本类私有成员13.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的A.public成员 B.private成员C.protected成员 D.友元14.在C++语言中,080是A.八进制数 B.十进制数C.十六进制数 D.非法数15.下面函数原型声明中,声明了fun为虚函数的是A. void fun()=0 B.virtual void fun()=OC.virtual void fun() D.virtual voidfun(){}16.下列虚基类的声明中,正确的是A.class virtual B:public A B.class B:virtualpublic AC.class B:public A virtual D.virtual class B:public A17.下列运算符中,在C++语言中不能重载的是A. * B.>= C.::D./18.在C++语言中,能代表逻辑值“假”的是A.小于0的数 B.大于0的数 C.非0整数 D.019.以下叙述中不正确的是A.在一个函数中,可以有多条return语句B.函数的定义不能嵌套,但函数的调用可以嵌套C.函数必须有返回值D.不同的函数中可以使用相同名字的变量20.已知:int m=10;在下列表示引用的方法中,下列哪一项是正确的A.hat&x=m B.int&y=10 C.int&z D.float &t=&m第二部分非选择题二、填空题(本大题共20小题,每小题l分,共20分)请在答题卡上作答。

自考04737C++程序设计201201历年真题及答案

自考04737C++程序设计201201历年真题及答案

2012年1月高等教育自学考试全国统一命题考试C++程序设计试题课程代码:04737考生答题注意事项:1.本卷所有试卷必须在答题卡上作答。

答在试卷和草稿纸上的无效。

2.第一部分为选择题。

必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。

3.第二部分为非选择题。

必须注明大、小题号,使用0.5毫米黑色字迹笔作答。

4.合理安排答题空间,超出答题区域无效。

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.如声明对象数组,则下列描述正确的是A.对每个元素均调用一次构造函数B.部分元素调用构造函数,其它元素不需调用C.均不需要调用构造函数D.只是首元素调用构造函数2.不同对象调用同一成员函数时,this指针指向A.不同对象B.相同对象C.无对象D.不确定3.设存在函数intmax(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式正确的是A.int m=max(22,max(59,70));B.int m=max(max(22,59),max(59,70));C.int m=max(max(22,70),59);D.以上皆正确4.一个类可拥有多少个构造函数A.0个B.1个C.1或多个D.以上皆对5.在编译指令中,嵌入指令是指A.#includeB.#defineC.#ifD.#else6.设存在数组a,其长度为Len,下列哪项操作是将a中元素复制到数组b中A.reverse(a+a,Len,b);B.sort(a,a+Len,b);C.find(a,a+Len,b);D.copy(a,a+Len,b);7.下列哪个要素不是面向对象的关键要素A.模块化B.抽象性C.封装性D.继承性8.下列对于类的描述错误的是A.类要先声明后使用B.类是具有唯一标识的实体C.两个类可以使用同一个名称D.组成类的不仅有数据,还可以有对数据进行操作的函数9.使用引用调用方式将实参传给形参,下列说法正确的是A.形参是实参的备份B.实参是形参的备份C.形参和实参共享同一对象D.形参和实参无联系10.关于对象的性质,下列描述错误的是A.同一类对象之间可相互赋值B.不能使用对象数组C.对象可以用作函数参数D.一个对象可以用作另一个类的成员11.类的私有成员可在哪里被赋值A.类体中B.该类的成员函数中C.A和BD.以上都不是1 2.设存在数组a,其长度为Len,则下列哪个泛型算法用于反转a中各元素A.reverse(a,a+Len);B.sort(a,a+Len);C.find(a,a+Len,value);D.copy(a,a+Len,b);13.用于标识八进制常量的前缀或后缀是A.无B.后缀L或1C.前缀零D.前缀O x14.派生类中继承的基类成员初始化如何进行A.由派生类构造函数调用基类的构造函数进行B.由派生类构造函数进行C.由基类构造函数进行,无需派生类构造函数调用D.以上皆不正确1 5.对于多重继承,下列描述正确的是A.所有基类使用相同的派生方式B.每个基类可使用不同派生方式C.只能是public派生D.只能是protected派生16.下列关于类的权限描述错误的是A.类本身的成员函数可以访问自身的任何成员B.类的对象可以访问该类的所有成员C.普通函数不能直接访问类的公有成员,必须通过成员函数对其访问D.一个类可以将另一个类的对象作为成员17.运算符delete与哪个函数一起运行A.构造函数B.析构函数C.主函数D.不与任何函数一起工作18.一个类可以获得另一个类的特性的机制称为A.抽象B.封装C.继承D.多态性19.使用下列哪个格式控制符可设置转换十六进制为十进制A.decB.octC.hexD.endl20.对引用调用描述正确的是A.分配新存储空间B.修改已存储空间的名称为引用名C.引用名与已存在存储空间无任何关联D.将引用名标识符与一块已存在储区域相关联,没有分配新存储空间二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案,错填、不填均无分。

2022年10月自考C程序设计(04737)试题及答案解析-图文

2022年10月自考C程序设计(04737)试题及答案解析-图文

2022年10月自考C程序设计(04737)试题及答案解析-图文C++程序设计试卷(课程代码04737)本试卷共10页,满分100分,考试时间150分钟。

考生答题注意事项:1.本卷所有试题必须在答题卡上作答。

答在试卷上无效,试卷空白处和背面均可作草稿纸。

2.第一部分为选择题。

必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。

3.第二部分为非选择题。

必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答o4.合理安排答题空间,超出答题区域无效。

第一部分选择题一、单项选择题(本大题共20小题,每小题1分。

共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。

未涂、错涂或多涂均无分。

1.在C++语言中用于注释的标识符是A.&B.//C.某D./2.编写C++程序一般需经过的几个步骤依次是A.编辑、调试、编译、连接B.编译、调试、编辑、连接C.编译、编辑、连接、运行D.编辑、编译、连接、运行3.要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用A.内联函数B.重载函数C.内部函数D.函数模板4.设某=8,执行语句Y=某++,则y等于A.6B.7C.9D.85.下列运算符中,优先级最高的是A.某B.一>C.&&D.>=6.关于new运算符的下列描述中,错误的是A.它可以用来动态创建对象和对象数组B.使用它创建的对象和对象数组可以使用运算符delete删除C.使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值7.存储下列数据,占用存储字节最多的是A.0B.‘0’C.〝0〞D.0.08.关于类和对象不正确的说法是A.类是一种类型,它封装了数据和操作B.对象是类的实例C.一个类的对象只有一个D.一个对象必属于某个类9.下列有关构造函数的描述中,正确的是A.构造函数可以带有返回值B.构造函数的名字与类名完全相同C.构造函数必须带有参数D.构造函数必须定义,不能缺省10.假定a 为一个整型数组名,则元素a[4]的字节地址为A.a+4B.a+8C.a+16D.a+3211.类中能访问静态成员的函数是C++程序设计试卷第1页共12页A.虚函数B.静态成员函数C.构造函数D.析构函数12.下列说明语句中正确的是A.inta,&ra=a,&&ref=raB.int&refa[10]C.inta,&ra=a,&某refp=&raD.int某pi,某&pref=pi13.关于对象概念的描述中,说法错误的是A.对象就是C语言中的结构体B.对象代表着正在创建的系统中的一个实体C.对象是类的一个变量D.对象之间的信息传递是通过消息进行的14.有关多态性说法不正确的是A.C++语言的多态性分为编译时的多态性和运行时的多态性B.编译时的多态性可通过函数重载实现C.运行时的多态性可通过模板和虚函数实现D.实现运行时多态性的机制称为动态多态性15.关于友元函数的描述中,错误的是A.友元函数不是成员函数B.友元函数只能访问类中私有成员C.友元函数破坏隐藏性,尽量少用D.友元函数说明在类体内,使用关键字friend16.类中定义的成员默认访问属性为A.publicB.privateC.protectedD.friend17.拷贝构造函数的参数是A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名18.关于类模板的说法正确的是A.类模板的主要作用是生成抽象类B.类模板实例化时,编译器将根据给出的模板实参生成一个类C.在类模板中的数据成员具有同样类型D.类模板中的成员函数没有返回值19.下列有关重载函数的说法中正确的是A.重载函数必须具有不同的返回值类型B.重载函数参数个数必须相同C.重载函数必须有不同的形参列表D.重载函数名可以不同20.当一个类的某个函数被说明为virtual时,在该类的所有派生类中的同原型函数A.都是虚函数B.只有被重新说明时才是虚函数C.都不是虚函数D.只有被重新说明为virtual时才是虚函数第二部分非选择题二、填空题(本大题共20小题,每小题1分,共20分)请在答题卡上作答。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
3.编写完整的程序,它读入15个float值,用指针把它们存放在一个存储快里,然后输出这些值和以及最小值。
#include <iostream>
#include <algorithm> //用于数组操作的头文件,参照课本P13-P14
using namespace std;
void main()
{
三、改错题
1.分析如下主程序中的错误
void main()
{
int num(50); //需要先声明num变量,并初始化
int& ref = num;
ref = ref +100;
num = num + 50;
}
2.分析如下主程序中的错误
void main()
{
int x=58, y=98;
const int *p=&x;
sum = sum + *(p+i); //求和
}
sort(p,p+15); //由小到大排序(升幂排序)
cout << "这些值的和:" << sum << endl; //输出和
cout << "这些值的最小值:" << *p << endl;
//输出最小值(排序后第一个值最小)
delete p; //释放内存
int是声明为常量指针p不能作为左值故p四编程题可直接复制到vc60运行分别用字符和ascii码形式输出整数值65和66
第一章
一、单项选择题
1.B(typedef ,typeid ,typename,都为关键字(保留字));
2.C
3.C
二、填空题
1.cin cout
2.new delete
3.new int[55];分配内存格式:new数据类型[size]申请可以存储size个该数据类型的对象
<< (char)ascii_6 << (char)ascii_6 << endl;
}
2.编写一个int型变量分配100个整形空间的程序。
#include < iostream >
using namespace std;
void main()
{
int *p;//int型指针变量,
p = new int[100];//指针变量指向可以存储100整型的空间
float *p = new float[15]; //分配15个可存储float型的存储空间
float sum=0; //用于求和,初始化为0
cout<<"输入15个float类型的值:" << endl; //提示输入float数值
for(int i=0; i<15; i++)
{
cin >> *(p+i); //一个个输入
cout << endl;
cout << "数字4位于数组的第 " << *fபைடு நூலகம்nd(a,a+8,4) << "位" << endl;
//查找数字4的位置
copy(a,a+8,b); //复制数组a到b
copy(b,b+8,ostream_iterator<int>(cout," ")); //输出数组b
}
4.声明如下数组:
int a[] = {1 ,2 ,3, 4, 5, 6, 7, 8};
先查找4的位置,讲数组a复制给数组b,然后将数组a的内容反转,再查找4的位置,最后分别输出数组a和b的内容。
#include <iostream>
#include <algorithm> //用于数组操作的头文件,参照课本P13-P14
int ascii_5=53, ascii_6=54;
//数字5对应的ASCII码是53,数字6对应54
cout << "字符形式输出:" << (int)ch1 << "," << (int)ch2 <<endl;
cout << "ASCII码形式输出:"<<(char)ascii_6<<(char)ascii_5 << ","
y = *p;
*p = 65; //*p是声明指向常量的指针,*p不能作为左值,故*p = 65;错误
p = &y;
}
3.分析如下主程序中的错误
void main()
{
int x=58, y=98, z=55;
int * const p=&x;
*p = 65;
p = &y;//p是声明为常量指针,p不能作为左值,故p = &y;错误
//再查找数字4的位置
}
#include <functional>
using namespace std;
void main()
{
int a[] = {1, 2, 3, 4, 5, 6, 7, 8}, b[8]={0};
copy(a,a+8,ostream_iterator<int>(cout," ")); //输出数组a
x = 65;
z = *p;
}
四、编程题(可直接复制到VC++ 6.0运行)
1. 分别用字符和ASCII码形式输出整数值65和66.
#include <iostream>
using namespace std;
void main()
{
char ch1='A', ch2='B';
//字符'A'对应的整数值是65,'B'对应66
cout << endl;
reverse(a,a+8); //将数组a的内容反转
copy(a,a+8,ostream_iterator<int>(cout," ")); //输出数组a
cout << endl;
cout << "数字4位于数组的第 " << *find(a,a+8,4) << "位" << endl;
相关文档
最新文档