程序设计原理C++试卷带答案_第1页
程序设计原理C++试卷带答案_第2页
程序设计原理C++试卷带答案_第3页
程序设计原理C++试卷带答案_第4页
程序设计原理C++试卷带答案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、试卷编号命题人: 审批人: 试卷分类(A卷或B卷) A 试 卷学期: 至 学年度 第 2 学期课程: 程序设计原理 专业: 计算机、电子、交通 班级: 姓名: 学号: 题号一二三四五六七八九十总分得分得分一、 选择题(30分,1.5*20)1、 C+源程序文件的扩展名为(A)A).CPPB) .C C) .DLL D) .EXE2、 下列各组中全是合法的字符串常量的是 ( A ) A) a+b , 1+2=5 , china B) abc , xyz , 5 C) 123 , 456 , 789 D) n , 1+2=3 , aaa3、 如果a=1,b=2,c=3,d=4则条件表达式“ab?a

2、:bc?c:d ” 的值为(A )A. 3 B. 2 C. 1D. 4 24、 关于类型转换的说法中,错误的是(D )A)如果a为int型变量,b为char型,则a+b的值为int型B)如果a为float型变量,b为int型,则a-b的值为float型C)如果a为double型变量,b为float型,则a*b的值为double型D)如果a为int型变量,b为int型,则a/(double)b的值为int型 25、 编译程序的功能是(C )A、将汇编语言程序转换为目标程序B、将汇编语言程序转换为高级语言程序C、将高级语言程序转换为目标程序D、将高级语言程序转换为汇编语言程序6、 逻辑运算符两侧运

3、算对象的数据类型 ( D ) A) 只能是0或1 B) 只能是0或非0数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据逻辑运算符即是 | ! &7、 为了避免在嵌套的条件语句if-else中产生二义性,C+语言中规定的if-else匹配原则是()A)else字句与所排位置相同的if配对B)else字句与其之前最近的if配对C)else字句与其之后最近的if配对D)else字句与同一行上的if配对8、 在函数声明中,下面哪项是没有的( )函数参数的类型和参数名)函数名)函数类型)函数体9、 执行完C+程序中的下列3条语句后,c指向( )int a,b,*c=&a; int * p=c

4、; p=&b;A) pB) cC) bD) a10、 定义如下一维数组:int a5,*p=a; 则下面描述中,错误的是( )A)表达式p=p+1是合法的B)表达式a=a+1是合法的C)表达式p-a是合法的D)表达式a+2是合法的 11、 以下对二维数组a的正确说明是( )A) int a3 ; B) float a(3, 4);C) double a14; D) int a10=10*1;12、 以下各项说法中,正确的是( )A)当通过引用传递参数时,函数创建一个变量以存储参数的值B)当通过引用传递参数时,函数无法访问参数的值C)当通过引用传递参数时,调用程序创建一个临时变量以容纳参数的值D

5、)当通过引用传递参数时,函数访问调用程序中参数的原始值13、 下面不属于C+语言的基本数据类型的是()A)字符类型B)枚举类型C)逻辑类型D)整数类型14、 下列关于类与对象的说法中,不正确的是( )A)对象是类中的一个实例B)任何一个对象只能属于一个具体的类C)一个类只能有一个对象D)类与对象的关系和数据类型与变量的关系相似15、 假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数。A) void MyClass();B) MyClass(int n);C) MyClass(); D) MyClass();16、 下列关于构造函数的描述中,错误的是( )A)构造函数可以

6、设置默认参数B)构造函数在定义类对象时自动执行C)构造函数可以是内联函数D)构造函数不可以重载17、 下列关于派生类的描述中,错误的是( )。A)一个派生类可以作为另一个派生类的基类B)派生类至少有一个基类C)派生类的成员除了它自己的成员外,还包含了它的基类的成员D)派生类中继承的基类成员的访问权限到派生类中保持不变18、 下列运算符中,( )运算符不能在C+中重载。A)? : B) + C) - D) =19、 下列关于虚函数的描述中,正确的是( )A)如果在重定义函数时使用了保留字virtual,则重定义函数仍然是虚函数B)虚函数不得声明为静态函数C)虚函数不得声明为另一个类的友元函数D)

7、派生函数必须重新定义基类的虚函数20、 基类中的( )不允许外界访问,但允许派生类的成员访问,这样既在一定的隐藏能力,又提供了开放的接口)公有成员)私有成员)保护成员)私有成员函数得分二、 判断题 (在括号内正确的打,错误的打,每空1分 共10分)。1、C+和C语言都是面向对象的。( )2、宏定义命令是以分号结束的。()3、Do-While循环语句的循环体至少执行一次。()4、在一个被调用函数中,一个return语句不可返回多个值给调用函数。()5、break语句也可以用于if体内,它可退出if语句。()6、For循环只有在循环次数可以确定时才可使用,否则不能用for循环。()7、数组赋初值时

8、,初始值表中的数据项的数目可以大于或等于数组元素的个数。()8、对象数组中的元素只能是相同类的对象。()9、若声明B类是A类的友元类,则A类也是B类的友元类()10、使用内置函数的目的是为了提高运行效率。()得分三、 程序填空(根据给出的程序功能说明,补充完整程序中缺少的代码,每一空行只填写一条语句或一个表达式,不写、多写、错写不给分。)(20分 每空2分)1编写程序,判断某一年是否为闰年。润年的条件是符合下面两者之一:1、能被4整除,但不能被100整除。2、能被100整除,又能被400整除。#include using namespace std;int main( ) int year;

9、leap; coutyear; if (year%4=0 & year%100!=0)|( ) leap=true; else ; if ( ) coutyear” is “; else coutyear is not ; cout a leap year.endl; return 0;2、找出输入的10个整数中的最大数。#include using namespace std;main() int k,max, ; for(k=0;knumk; max=0; for(k=9; ; k-) if (nummaxnumk) ; cout”the max is ”nummax endl; retu

10、rn 0;3、编写程序,用起泡法对10个数排序(按由小到大顺序)。#include using namespace std;int main( ) int a11; int i,j,t; coutinput 10 numbers :ai; coutendl; for (j=1;jai+1 ) t=ai; ;ai+1=t; cout”the sorted numbers:”endl; for(i=1;i11;i+) coutai” “; coutendl; return 0;得分四、 阅读程序(20分)1)阅读下面程序,在相应的语句后写注释(说明该语句的作用),并写出运行结果(5分)。#incl

11、udeusing namespace std;class Box public:Box( int,int,int); / int volume( );private:int height;int width;int length;Box:Box(int h, int w, int len) / height =h;width = w;length =len;int Box:volume( ) return (height*width*length);int main( ) Box box1(2, 5, 30); / cout”This volume of box1 is ”box1.volum

12、e( )endl;Box box2(2, 3, 40);cout”This volume of box2 is ”box2.volume( )endl;return 0;程序运行结果为: 2、阅读下面程序,在相应的语句后写注释(说明该语句的作用)(5分)。#include#includeusing namespace std;class Student / public:void display( ); protected: int num;string name; char sex;void Student:diaplay( ) / cout”num:”numendl;cout”name:”

13、nameendl;cout”sex:”sex endl;class Student1:protected Student / public:void display1( ); private: int age;string addr; ;void Student1:diaplay1( ) cout”num:”numendl;cout”name:”nameendl;cout”sex:”sex endl;cout”age:”age endl;cout”addr:”addr endl;int main( ) Student1 stud1; / stud1.display1( ); / stud1.n

14、um =10023;return 0;3、阅读下面程序,写出该程序的功能和运行结果。(5分)#includeusing namespace std;int main( ) char s180, s240;int i=0, j=0 ;couts1;couts2;while(s1i!=0)i+;while(s2j!=0)s1i+=s2j+;s1i=0;cout”The new string is:”s1endl;return 0;该程序的功能是: 该程序的运行结果是:input string1: china input string2: man 4、阅读下面程序,写出执行后的输出结果。(5分)#i

15、ncludeusing namespace std;void fun(int *x, int *y) int t; t=*x;*x=*y;*y=t; int main() int a7=1,2,3,4,5,6,7, i, *p, *q; p=a; q=&a6; while(p!=q) fun(p,q); p+; q-; for(i=0;i7;i+) coutai1)2、 编写strcpy字符串拷贝函数。已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc); 其中strDest是目的字符串,strSrc是源字符串(不能调用C+

16、的字符串处理库函数)。3、定义一个处理日期的类TDate,它有3个私有数据成员: year 、month、day和如下几个公有成员函数:重载构造函数:TDate( ),TDate( int,int ),TDate( int,int,int ),显示日期成员函数:display( ),获取年月日函数:getYear( ),getMonth( ),getDay( ),并在类外实现上述成员函数。试卷编号命题人: 审批人: 试卷分类(A卷或B卷) A 五邑大学 答卷纸学期: 2006 至 2007 学年度 第 2 学期课程: 程序设计原理 专业: 计算机、电子、交通 班级: 姓名: 学号: 题号一二三

17、四五六七八九十总分得分得分一、 选择题(30分,1.5*20)题号12345678910答案AAADCDBDDB题号11121314151617181920答案CDBCDDDABC得分二、 判断题 (在括号内正确的打,错误的打,每空1分 共10分)。题号12345678910答案得分三、 程序填空(根据给出的程序功能说明,补充完整程序中缺少的代码,每一空行只填写一条语句或一个表达式、保留字,不写、多写、错写不给分。)(20分 每空2分)1编写程序,判断某一年是否为闰年。润年的条件是符合下面两者之一:1、能被4整除,但不能被100整除。2、能被100整除,又能被400整除。 bool year%

18、400=0 leap=false leap 2、找出输入的10个整数中的最大数。 num10 k=1 max=k 3、编写程序,用起泡法对10个数排序(按由小到大顺序) i11或i=10 i=10-j ai=ai+1 得分四、 阅读程序(20分)1) 阅读下面程序,在相应的语句后写注释(说明该语句的作用),并写出运行结果(5分) 评分标准: 每空1分 声明带参数的构造函数 在类外定义带参数的构造函数 定义对象box1,并指定它的三个参数值 This volume of box1 is 300 This volume of box2 is 240 2、阅读下面程序,在相应的语句后写注释(说明该语

19、句的作用)(5分)。评分标准: 每空1分 声明基类(定义基类) 定义基类成员函数 用保护方式声明基类Student的派生类Student1 声明派生类Student1类的对象 通过对象stud1 访问派生类中的公用成员函数 3、阅读下面程序,写出该程序的功能和运行结果。(5分) 该程序的功能是: 将两一个字符串连接起来 该程序的运行结果是:input string1: china input string2: man chinaman 4、阅读下面程序,写出执行后的输出结果。(5分) 程序运行后的输出结果是: 7,6,5,4,3,2,1, 得分五、 编程题:(20分)1、 编写一个完整的C+程

20、序,用递归方法求阶乘n! (8分)#include use namespace std;long fac( int );int main( )int n;long y;cout n;y=fac( n );cout n “!=” endl;return 0;long fac ( int n )long f;if ( n0 )cout “n0, data error!” endl;f = -1;else if (n = 0 | n = 1 ) f = 1;else f = fac ( n-1 )*n;return f;2、 编写strcpy字符串拷贝函数。已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc); 其中strDest是目的字符串,strSrc是源字符串(不能调用C+的字符串处理库函数)。(5分)char *strcpy(char *strDest, const char *strSrc);if (strDest!=NULL) & (strSrc !=NULL) char *address = strDest; while( (*strDest+ = * strSrc+) != 0);return ad

温馨提示

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

最新文档

评论

0/150

提交评论