2007—2008学年第2学期闽江学院面向对象程序设计(C++)考试试卷(B)
C语言程序设计2007~2008学年第二学期期末考试试卷(A)

。
整型常量整型表达式 整型常量或整型表达式任何类型的表达式
、
若二维数组有列,则在前的元素个数为
。
、 以下叙述中不正确的是。
在中,函数中的自动变量可以赋初值,每调用一次,赋一次初值 在中,在调用函数时,实参和对应形参在类型上只需赋值兼容 在中,外部变量的隐含类别是自动存储类别 在中,函数形参可以说明为变量
、 以下程序运行后输出结果是 () () ()
大厦白蚁预防工程承包合同合同签订版
、 以下程序运行后输出结果是 ❖❖
、 以下程序运行后输出结果是
四、 程序设计题共分
得分 评阅人
某班级学生进行百米跑测试,规定成绩在秒以内(含秒)为优秀,在 秒以上至秒为达标,在秒以上为不达标,编一程序,从键盘上输入每个 人的成绩,以作为输入变量,并以小于的任何数作为终止标志,分别用变量 和统计出成绩为优秀、达标和不达标的人数。
、 以下正确的函数原型语句是。
、 循环体至少被执行一次的语句为。
循环循环循环 任一种循环
、 在下面循环语句中内层循环体语句的执行总次数为。
、 函数调用不可以。
出现在一个表达式中 出现在执行语句中 作为一个函数的实参 作为一个函数的形参
大厦白蚁预防工程承包合同合同签订版
、 将两个字符串连接起来组成一个字符串时,选用函数。
大厦白蚁预防工程承包合同合同签订版
试卷编号:卷
课程编号:课程名称:语言程序设计考试形式: 闭卷
适用班级:全校非计算机专业姓名:学号: 班级:
学院:专业: 考试日期:、、
题号 一 二 三 四 五 六 七 八 九 十 总分 累分人
题分 得分
签 名
考生注意事项:、本试卷共页,请查看试卷中是否有缺页或破损。如有立 即举手报告以便更换。
2007—2008学年第2学期闽江学院面向对象程序设计(C++)考试试卷(A)答案

2007—2008学年第2学期闽江学院考试试卷(A )答案 适用年级专业:2007级电子信息与科学(专升本) 考试形式:笔试 考试课程: 面向对象程序设计 一、选择题 20% (每题1分)1、D2、C3、D4、B5、D6、C7、C8、B9、B 10、C 11、C 12、D 13、C 14、D 15、A 16、B 17、A 18、C二、填空题 20% 1)函数、类 (2%) 2)抽象类 (1%) 3)修改 (1%) 4)传地址 (1%) 5)Student —>Teacher —>Assistance (2%) 6)9 (2%) 7)ptr->SetNum(50); (2%) 8)FileView,ResourceView,ClassView (3%) 9)x+y (2%)10)this->x (2%)11)iostream.h (1%)12)保护(三、看程序回答问题 40% 1) 36 (4%)2) 4 (4%)3)9TU9V (4%,有一个数字与字母就得1分)4)virtual ~Fruit() (2%)strcpy(color,col) (1%)delete []color (1%)Fruit(w, col) (2%)strcpy(variety, var) (1%)delete variety (1%)5)template<typename T> (2%)template<typename T> (1%)template<typename T> (1%) 注:前三项如果只写对1次,就给2分)temp=head; (2%)6)889 (4%,写对第一次值:2%,以后依次1%,1%) 7)2022020 0 (4%,写对第一次值:2%,以后依次1%,1%)8)执行A 的构造函数! (2%)执行B 的构造函数! (1%) 执行B::Func ! (2%)执行A的析构函数!(1%)四、编程题20%1、(10%)(%5)class triangle : public shape{private :float a, b ,c ,s;public:triangle( float s1=0, float s2=0 , float s3=0 ){a=s1;b=s2;c=s3;}float area(){s=(a+b+c)/2;return sqrt(s*(s-a)*(s-b)*(s-c));}};(%5)class rectangle : public shape{private:float w,h;public:rectangle( float width=0, float height=0){w=width;h=height;}float area(){return w*h;}};2、// String的析构函数String::~String(void) //此函数2分{delete [] m_data; // 由于m_data是内部数据类型,也可以写成delete m_data;}// String的普通构造函数String::String(const char *str) //此函数3分{if(str==NULL) //此判断不写也不扣分{m_data = new char[1]; // 若能加NULL 判断则更好*m_data = ‘\0’;}else{int length = strlen(str);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, str);}}// 拷贝构造函数String::String(const String &other) //此函数2分{int length = strlen(other.m_data);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, other.m_data);}// 赋值函数String & String::operate =(const String &other) //此函数3分{if(this == &other) //此判断不写也不扣分return *this;delete [] m_data;int length = strlen(other.m_data);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, other.m_data);return *this;}(评分原则:只有有写对相应的语句,就给分。
计08面向对象程序设计 考试试卷及答案(B卷)

课程名称: 面向对象程序设计 ( B 卷 闭卷) 适用专业年级:计算机科学与技术08级 考试时间: 100分钟 题号 一 二 三 四 五 六 七 八 九 十 总分 统分人 签名 题分 10 24 10 26 10 20 100 得分 考生注意事项:1、本试卷共 3 页,试卷如有缺页或破损,请立即举手报告以便更换。
2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
(答案请写在密封线内和答卷正面,否则不记分) 一、判断题,正确的打√,错误的打×(每小题1分,共10分) 1.类的友员函数是指可以访问本类私有成员的其它类的成员函数。
( × ) 2.在定义二维数组时,语句“int a[][3]={{1,3,5},{2}};”是正确的。
( √ ) 3.如果一个类的所有对象都共享某一个变量,则应当将该变量定义为该类的私有成员。
( × ) 4.函数重载时,它们的参数个数和类型要求都不能相同。
( × ) 5.在文档/视图结构的程序中,输出是在OnDraw()函数中完成的。
( √ ) 6.在C++中,标识符Max 和MAX 是不一样的。
( √ ) 7.析构函数的作用是当对象不用时,删除对象。
( × ) 8.在C++中,文件的输入输出可以通过iostream 类对象来完成。
( × ) 9.在声明一个类时,可以不同时声明类的数据成员和成员函数。
( √ ) 10.在VC6.0开发环境中,可以同时开发几个工程。
( √ ) 二、简答题(每小题8分,共24分) 1.简要说明面向对象的程序设计的四个主要特征。
2.类和结构有什么异同? 3.多态性是指什么?C++中多态性是如何实现的? 三、填空题(每空2分,共10分) 1.根据程序说明和程序中的注释,填充程序中不完整的部分。
类Number 的成员函数Factorial 是递归函数,功能是求n !(即n 的阶乘,假设n>0)。
C语言程序设计2007~2008学年第二学期期末考试试卷(A)

南昌大学2007~2008学年第二学期期末考试试卷6、在程序中执行到________语句时,将结束所在函数的执行过程,返回到调用该函数的位置。
7、以下程序main(){int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0;i〈4;i++) s+=aa[i][1];printf(%d\n,s);}程序运行后的输出结果是________________。
8、以下fun函数把ch中的大写字母转换成字母序列中的下一个大写字母,字母Z转换成字母A,其它字符不变,返回转换后的字母或其它字符。
请填空。
char fun(char ch){if(ch= =’Z’) ch=__________;else if(ch〉='A’&&ch<=’Y’) ch=__________;return ch;}9、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数.#include 〈stdio。
h>void main(void){int i, j;for(i=0; i〈10; i++) {j = i*10+6;if (_____ _____ ) continue;printf(”%d ”,j);}}10、以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9—10,并输出结果。
请填空。
int fun(int n){int m=0,f=1,i;for(i=1;i<=n;i++){m+=i*f;f= __________ ;}return m;}main(){printf("m=%d\n”,________ __);}11、下面程序段是输出两个字符串中对应字符相等的字符。
请选择填空.char x[]=”programming”;char y[]=”Fortran”;int i=0;while (_______________ __ __){if (x[i]==y[i]) printf ("%c”,x[i]);else i++;}}12、以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和.请填空。
计08面向对象程序设计 考试参考答案(B卷)

private:
int Num;
string Name;
int Age;
char Sex;
public:
int GetNum() { return Num;};
teacher(int Num0=1001, string Name0="彭老师", int Age0=30,char Sex0='1')
1.(评分标准:两个知识点各4分,后一个知识点每小点2分)
答:主要特征:1)、抽象,即忽略当前主题中与目标无关的那些方面,把它的主要特征抽取出来。抽象包括数据抽象和代码抽象。2)、封装,它是将抽象得到的数据成员和代码相结合,形成一个有机的整体。并且,封装可以隐藏内部的细节。3)、继承,它提供了代码重用的一种方式,派生类可以重用基类的属性和行为。4)、多态性,它是指不同类的对象对同一消息作出不同反应,即c++的代码可以根据运行情况的不同而执行不同的操作。
}
int main()
{
teacher t1,t2(1002,"周老师",28,'0'),*p;
t1.display();
t2.display();
ofstream f1("TFile.txt",ios::out);
f1<<t1.GetNum()<<t2.GetNum()<<endl;
f1.close();
return 0;
}
C++中,多态性是通过指针和虚函数来实现的。
三、填空题
(评分标准:每空2分,共10分,等价写法给满分)
(1)n==0
(2)n*Factorial (n-1)
c面向对象程序设计考试试题

c面向对象程序设计考试试题一、选择题(每题2分,共20分)1. 面向对象程序设计中,以下哪一个不是基本特征?A. 封装B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. functionC. structD. type3. 以下哪个是Java中不允许的类名?A. MyClassB. 1MyClassC. MyClass1D. MyClass$4. 在Java中,以下哪个是正确的构造方法声明?A. void MyClass() {}B. int MyClass() {}C. MyClass MyClass() {}D. MyClass() {}5. 以下哪个关键字用于实现类的继承?A. extendsB. implementsC. overrideD. abstract6. 以下哪个关键字用于声明接口?A. classB. interfaceC. abstractD. enum7. 在Java中,以下哪个关键字用于实现多态?A. newB. superC. overrideD. implements8. 在Java中,以下哪个关键字用于定义包?A. packageB. importC. classD. interface9. 以下哪个是Java中的访问控制修饰符?A. publicB. staticC. finalD. void10. 在Java中,以下哪个是正确的方法重载声明?A. void display(int a, int b)B. int display(int a, int b)C. void display(int a, int b) {}D. void display(int a, int b) { return a + b; }二、简答题(每题10分,共30分)1. 简述面向对象程序设计中的封装、继承和多态三个基本特征。
2. 解释Java中的接口和抽象类的区别。
2008年C++期末试卷-A卷试题及答案

院(系):专业:年级:学生姓名:学号:-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------第 1 页(共 3 页)------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 ---------------------------------------------------------第 2 页共 3 页------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 ---------------------------------------------------------第 3 页(共 3 页)2007–2008学年第二学期期末考试试卷(A卷)课程名称: 面向对象程序设计课程编号:任课教师:一、单项选择题:(共20题,每小题2分,共40分)1. B 2. C 3. C 4. A 5. A 6. B 7. B 8. C 9. B 10. D 11. C 12. D 13. D 14. B 15. C 16. D 17. B 18. A 19. A 20. A二、填空题:(共10题,每小题1分,共10分)21.true ,false 1 ,0 22.内联函数,编译,执行时间23.this 24.new25.继承26.私有,私有,不可访问27.虚函数28.基类指针或引用三、程序改错题:(共2题,每题5分,共10分)29.【答】【答】错误处标号如下:①///************************************************* 程序文件名: p1_2.cpp **************************************************/#include <iostream>;④using std::endl;⑤void main( )⑥float num1, num2, num3; //定义三个数cin ⑦<< num1 << num2<<num3;cout >> ⑧“The average is:”⑨>> setw(30) ⑩>>(num1+num2+num3)/3>> endl;}①行注释符号//将块注释的头/*注释掉了,使得块注释的尾*/没有相应的头与之匹配;②关键字Using中包含了大写字母,应改为using;③using namespace std不是预处理指令,要以分号结尾;④#include <iostream> 是预处理指令,不能以分号结尾,而且要作为程序的开头行⑤使用了using namespace std,就不必单独使用std::endl;⑥void main() 后少了{;⑦cin应与提取操作符>>连用;⑧cout应与插入操作符<<连用;⑨“The average is:”为全角引号,应改为英文;⑩使用setw(30) 应包含头文件iomanip30.【答】①int a(0),b(0); //错误,数据成员的初始化必须通过构造函数实现改正:int a,b;②A x(2,3), y(4); //错误,对象y的初始化与已定义的构造函数参数表不匹配,可重载一个构造函数对对象y进行初始化。
闽江学院面向对象程序设计B卷(2008专升本)答案

2008—2009学年第1学期闽江学院考试试卷考试课程:面向对象程序设计试卷类别:A卷□B卷☑考试形式:闭卷☑开卷□适用专业年级:2008级电子信息科学与技术(专升本)一、选择题 20% 每题1分1-5 : D C D D A6-10 : C D A C B11-15: A D A B C16-20: D C A A A二、填空题 20% 每空1分1、注释2、iostream3、成员函数4、函数、类5、析构函数6、内联函数7、X=new int(a)、delete X8、基类名::基类成员9、自身对象、参数10、运算符重载11、派生类12、动态13、纯虚函数、基类14、函数模板、类模板15、代码重用三、完成程序题 30% 每空2分1、 real=r, imag=iComplexfriend ComplexComplex Complex::real+c.read, imag+c.imagComplexc1.real-c2.real, c1.imag-c2.imag2、 virtual ~Basenew Derived();delete ptr3、 friend class Stack<T>return top==NULL;T Stack<t>temp=top;temp->next=top;四、看程序写结果题 20 %1、The a of fun is 1 (2%)::a=200 (2%)The a of main is 11 (2%)::a=201 (2%)2、23 (3%)11 (3%)3、Derive类(3%)Base2类(3%)五、编程题 10%class person{privatedouble money; //2%public:person(double m=0){money=m;} //2%double GainMoney(double m) //2%{money+=m;return m;}double PayMoney(double m) //2%{money-=m;return m}void main() //此部分2分,只要语义正确就给分{Person parent, sonA(1000), sonB(1000), sonC(1000), sonD(1000);cout<<parent.GainMoney(sonA.PayMoney(100)+sonA.PayMoney(200) +sonA.PayMoney(300) +sonA.PayMoney(400)}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
装订线2007—2008学年第2学期闽江学院考试试卷(B )适用年级专业:2007级电子信息与科学(专升本) 考试形式:笔试考试课程: 面向对象程序设计班级: 姓名: 学号:一、选择题 20%1、下列关于C++语言类的描述中错误的是 A)类用于描述事物的属性和对事物的操作 B)类与类之间通过封装而具有明确的独立性C)类与类之间必须是平等的关系,而不能组成层次结构 D)类与类之间可以通过一些方法进行通信和联络 2、在C++语言中.表不一条语句结束的标号是A)# B); C)// D) } 3、以下叙述中正确的是A)构成C++语言程序的基本单位是类 B)可以在一个函数中定义另一个函数 C) main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义 4、己知有定义以下是引用片段: const int D=5; int i=1;double f=0.32: char c=15;则下列选项错误的是A)++i; B)D--; C)C++; D)--f; 5、 根据下面的定义,下面哪个是错误的:class A{};class B:public A{};A) B) C) D)V oid main() void main() void main() void main() { A a; { A *a; { A a; { B b; B b; B b; B *b; A &a=b; a=b; a=&b; b=&a; } } } }6、什么结构是MFC 应用程序最核心的概念:A ) 消息B ) 事件处理C ) 框架D ) 文档/视图7、设有数组定义:char ar ray[]=”China";,则数组array 所占的空间为 A)4个字节 B)5个字节 C) 6个字节 D)7个字节 8、若已定义:int a[]={0,1,2,3,4,5,6,7,8,9},*P=a ,i; 其中O≤i≤9,则对a 数组元素不正确的引用是A)a[p-a] B)*(&a[i]) C)p[i] D)a[10] 9、下列的各类函数中,( )不是类的成员函数:A )友元函数B )拷贝构造函数C )析构函数D )虚函数 10、函数fun 的返回值是: fun(char*a ,char*b) {int num=0,n=0;while(*(a+num)!=‘\0’)num++;while(b[n]){*(a+num)=b[n];num++;n++;} return num; }A)字符串a 的长度 B)字符串b 的长度C)字符串a 和b 的长度之差 D)字符串a 和b 的长度之和 11、C++语言是从早期的C 语言逐渐发展演变而来的.与C 语言相比,它在求解问题方法上进行的最大改进是()A)面向过程 B)面向对象 C)安全性 D)复用性12、C++语言的跳转语句中,对于break 和continue 说法正确的是() A)break 语句只应用与循环体中 B)continue 语句只应用与循环体中C)break 是无条件跳转语句,continue 不是D)break 和continue 的跳转范围不够明确,容易产生问题 13、for(int x=0,y=0;!x&&y<=5;y++)语句执行循环的次数是() A)0 B)5 C)6 D)无次数14、考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是()A)test(5); B)test(5,8); C)test(6,"#") D)test(0,0,"*"); 15、下面有关重载函数的说法中正确的是()A)重载函数必须具有不同的返回值类型; B)重载函数形参个数必须不同;C)重载函数必须有不同的形参列表D)重载函数名可以不同;16、下列关于构造函数的描述中,错误的是()A)构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行C)构造函数可以是内联函数;D)构造函数不可以重载17、下面描述中,表达错误的是()A)公有继承时基类中的public成员在派生类中仍是public的B)公有继承是基类中的private成员在派生类中仍是private的C)公有继承时基类中的protected成员在派生类中仍是protected的D)私有继承时基类中的public成员在派生类中是private的18、应在下列程序划线处填入的正确语句是()#includeclass Base{ public:void fun(){cout<<"Base::fun"<<ENDL;}};class Derived:public Base{ void fun(){_____________ //显示调用基类的函数fun()cout<<"Derived::fun"<<ENDL;}};A)fun(); B)Base.fun(); C)Base::fun(); D) Base->fun();19、有如下程序:#includeclass BASE{char c;public:BASE(char n):c(n){}virtual~BASE(){cout<<C;}};class DERIVED:public BASE{char c;public:DERIVED(char n):BASE(n+1),c(n){}~DERIVED(){cout<<C;}};int main(){ DERIVED("X");return 0; }执行上面的程序将输出()A)XY B)YX C)X D)Y20、有如下的运算重载函数定义:Double operator+(int i, int k){return double(i+k);}但定义有错误,对这个错误的最准确的描述是______。
A)+只能作为成员函数重载,而这里的+是作为非成员函数重载的B)两个int型参数的和应该是int型,而这里将+的返回类型声明为doubleC)没有将运算符重载函数声明为某个类的友元D)C++已经提供了求两个int型数据之和运算符+,不能再定义同样的运算符二、填空题20%1、已知int DBL(int n){return n * n;}和long DBL(long n){return n *n;}是一个函数模板的两个实例,则该函数模板的定义是_____________________________________(2分)2、在下面程序的横线处填上适当的语句,使该程序执行结果为10。
(2分)#includeclass MyClass{ public:___________________________________________________;int GetNum(){return x;};private:int x;};int main(){ MyClass my(10);cout<<MY.GETNUM()<<ENDL;return 0;}3、(2分)一个类的定义如下所示,则相应类的构造顺序是:class Assistant : public Student, public Teacher{public:Assistant() : Teacher(), Student(){…}…};4、在一个类(派生类)继承自另一个类(基类)情况下,无论何种情况都不能访问基类的成员。
成员只在派生体系中是可见,在类派生体系的外部是不可见。
在类的派生体系的外部可见的是成员。
5、在编译时就解决的函数调用称为联编;在运行时才解决的函数调用称为联编。
6、在C++中有二种参数传递方式:__________传递和__________传递。
7、创建或删除内存空间,需要使用操作符__________和_______________。
8、Visual Studio使用项目工作区来组织项目。
它包含三个面板,分别是_______________,______________,________________。
9、A类声明为B类的虚基类的声明语句是:三、看程序回答问题40%1、下面程序运行的结果#includevoid main(){int num=1;int ref=num;ref=ref+2;cout<<num;num=num+3; 结果:cout< <num<<endl)2、利用函数模板,求数组int A[]={21,34,12,56,78,9,30}; 中各元素之和并将结果显示输出。
(4%)____________T total(T data[]){T s=0;for(int i=0;i<size;i++)_______;return s;}void main(){int A[]={21,34,12,56,78,9,30};cout<< total<int,7>(A) <<endl;}3、(4分)看程序写结果#include<iostream.h>class A{int a;public:A():a(9){}virtual void Print(){a++;cout<<a;}; };class B:public A{char b;public:B(){b='S';}void Print(){ cout<<b;}};void show(A &x){x.Print();}int main(){A d1, *p;B d2;p=&d2;d1.Print();d2.Print();p->Print();show(d1);show(d2);cout<<endl;return 0;}4、(8%)下面的程序定义了一个堆栈类模板,它提供了两个异常:上溢异常和下溢异常。
在主调函数中,出现了异常。
请在划线处补充程序。
#include <iostream.h>template<class T> class Stack {T* v;int max_size;//指定栈的容量int top;//表示栈顶指针public:class Underflow { }; // 用来报告下溢异常的类型,表示无数据从栈中读取class Overflow { }; // 用来报告上溢异常的类型,表示数据无法入栈Stack(int s) // 构造函数{max_size=s;v=new T[max_size];top=0;}~Stack() // 析构函数{if(v!=NULL);cout<<"对象已析构!"<<endl;}void push(T c){if (top == max_size); // 检查是否发生错误v[top++] = c; // 增加top并将c存放在top位置}T pop(){if (top == 0) ; // 检查是否发生错误return v[--top]; //减少top}};void main(){try{ss (10);ss.push(5);int s = ss.pop();ss.pop();cout<<"发生异常后的语句"<<endl; //不被执行}catch ( ) // 异常处理器{cerr << "错误:堆栈下限溢出"<<endl;}catch ( ) // 异常处理器{cerr << "错误: 堆栈上限溢出"<<endl;}catch(...) //任何异常{cout<<"有异常发生!"<<endl;}}5、下面的程序定义了一个Point类,要求实现自减运算符的重载。