完面向对象程序设计期末综合练习五(功能与改错)

合集下载

《面向对象程序设计C--》期末试卷及标准答案集总解析

《面向对象程序设计C--》期末试卷及标准答案集总解析

《面向对象程序设计C++》期末考试试卷(B)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第8页上)一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( D )是错误的。

A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的2、已知:int m=10; 下列表示引用的方法中,(A )是正确的。

A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m;3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是( C )。

A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是( A )。

A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的是( D )。

A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了(D )次构造函数。

7、有关析构函数的说法,不正确的是( B )。

A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型8、类定义的内容允许被其对象无限制地存取的是( C )。

面向对象程序设计期末综合练习五(功能与改错)

面向对象程序设计期末综合练习五(功能与改错)

面向对象程序设计期末综合练习五(功能与改错)面向对象程序设计期末综合练习五(功能与改错)指出程序或函数的功能1. #includevoid main(){int i,s=0;for(i=2;i<=30;i+=2) s+=i*i;cout<<"s="<<s<<endl;< bdsfid="90" p=""></s<<endl;<> }2. #include#include#includevoid main(){int i=10,a;while(i>0) {a=rand()%100+10;int j, k=int(sqrt(a)+1e-5); //sqrt(x)为求x的平方根函数 for(j=2; j<=k; j++)if(a%j==0) break;if(j>k) {cout<<a<<' ';="" bdsfid="106" i--;}<="" p=""></a<<'>}}3. void trans(int x){char a[10];int i=0,rem;do {rem=x%16;x=x/16;if(rem<10) a[i]=48+rem; //’0’字符的ASCII码为48else a[i]=55+rem; //’A’字符的ASCII码为65 i++;}while(x!=0);while(i>0) cout<<="" p="">cout<<endl;< bdsfid="122" p=""></endl;<>}4. #includedouble f1(int n) {double sign=1,s=1;for(int i=2;i<=n; i++) {s+=sign/(i*i);sign*=-1;}return s;}void main(){int a;cin>>a;cout<<f1(a)<<endl;< bdsfid="139" p=""></f1(a)<<endl;<> }5. double f1(double a, double b, char op) {switch(op) {case ’+’: return a+b;case ’-’: return a-b;case ’*’: return a*b;case ’/’: if(b==0) {cout<<"divided by 0!"<<endl;< bdsfid="148" p=""></endl;<>exit(1);}else return a/b;default: cout<<"operator error!"<<endl;< bdsfid="153" p=""></endl;<>exit(1);}}6. #include#includevoid main(){int x,y;cin>>x;y=int(sqrt(x)); //sqrt(x)为求x的算术平方根for(int i=1;i<=y;i++)if(x%i==0) cout<<”x=”<<i<<’*’<<<=""></i<<’*’<7. #includevoid main(){int i,p=1,s=0;int N;cout<<"输入一个正整数:";cin>>N;for(i=1;i<=N;i++) {p*=i;s+=p;}cout<<s<<endl;< bdsfid="182" p=""></s<<endl;<>}8. #include#include#includeconst N=10;int ff(int x, int y) {int z;cout<<x<<'+'<<y<<'=';< bdsfid="194" p=""></x<<'+'<<y<<'=';<>cin>>z;if(x+y==z) return 1; else return 0;}void main(){int a,b,c=0;srand(time(0)); //初始化随机数序列for(int i=0;i<="">a=rand()%20+1; //rand()函数产生0-32767之间的一个随机数b=rand()%20+1;c+=ff(a,b);}cout<<"得分:"<<c*10<<endl;< bdsfid="209" p=""></c*10<<endl;<>}9. int s1(int n){int x;if(n==1) x=1;else x=s1(n-1)+n*n;return x;}10. void fun5(char* a, const char* b){while(*b) *a++=*b++;*a=0;}11. templatebool fun8(T a[], int n, T key){for(int i=0;i<n;i++)< bdsfid="228" p=""></n;i++)<>if(a[i]==key) return true;return false ;}12. void f2(double a[], int n){int i; double sum=0;for(i=0;isum/=n;for(i=0;i<n;i++)< bdsfid="239" p=""></n;i++)<>if(a[i]>=sum) cout<<a[i]<<’’;< bdsfid="241" p=""></a[i]<<’’;<>cout<<endl;< bdsfid="243" p=""></endl;<>}13. void f4(char a[M][N]){int c1,c2,c3;c1=c2=c3=0;for(int i=0;i<m;i++)< bdsfid="250" p=""></m;i++)<>if(strlen(a[i])<5) c1++;else if(strlen(a[i])>=5 && strlen(a[i])<15) c2++;else c3++;cout<<c1<<’’<<c2<<’’<<c3<<endl;< bdsfid="255" p=""></c1<<’’<<c2<<’’<<c3<<endl;<>}14. void fun3(int a[][N], int m, int& row, int& col){int x=a[0][0];row=col=0;for(int i=0;i<m;i++)< bdsfid="262" p=""></m;i++)<>for(int j=0;j<n;j++)< bdsfid="264" p=""></n;j++)<>if(a[i][j]>x) {x=a[i][j]; row=i; col=j;}}15. int fun6(int m, int n, int b=2){if(melse if(m%b==0 && n%b==0) return b*fun6(m/b,n/b,b);else return fun6(m,n,++b);}16. char* f8(char* str1, const char* str2){int i=0,j=0;while(str1[i]) i++;while(str2[j]) str1[i++]=str2[j++] ;str1[i]='\0';return str1;}17. int f8(const char* str1, const char* str2){int i=0;while(str1[i] && str2[i])if(str1[i]==str2[i]) i++;else if(str1[i]>str2[i]) return 1; else return -1;if(str1[i]==str2[i]) return 0;else if(str1[i]>str2[i]) return 1; else return -1;}18. IntNode* FindMax(IntNode *f) {if(!f) return NULL;IntNode *p=f;f=f->next;while(f) {if(f->data>p->data) p=f;f=f->next;}return p;}假定IntNode的类型定义为:struct IntNode {int data; //结点值域IntNode* next; //结点指针域 }; 19. int Count(IntNode *f){if(!f) return 0;int c=0;while(f) {c++;f=f->next;}return c;}假定IntNode的类型定义为:struct IntNode {int data; //结点值域IntNode* next; //结点指针域 };20. void Output(IntNode *f){if(!f) return;while(f) {cout<data<<’’;f=f->next;}cout<<endl;< bdsfid="392" p=""></endl;<> }假定IntNode的类型定义为:struct IntNode {int data; //结点值域IntNode* next; //结点指针域 };21. void Input(IntNode*& f){int n;cout<<”从键盘给n输入一个整数:”;do cin>>n; while(n<0);if(n==0) {f=NULL; return;}f=new IntNode;IntNode* p=f;cout<<”从键盘输入”<<n<<”个整数:”;< bdsfid="421" p=""></n<<”个整数:”;<>while(n--) {p=p->next=new IntNode;cin>>p->data;}p->next =NULL;p=f; f=f->next; delete p;}假定IntNode的类型定义为:struct IntNode {int data; //结点值域IntNode* next; //结点指针域};22. int f(const char *s){int i=0;while(*s++)i++;return i;};23. char *f(char *s){int n=strlen(s);char* r=new char[n+1];for(int i=0; i<="" p="">if(s[i]>='a' && s[i]<='z') r[i]=s[i]-'a'+'A';else r[i]=s[i];r[n]=’\0’;return r;}程序改错1. 在下面的定义中,NODE是链表结点的结构,appendToList 则是一函数,其功能是:在list 所指向的链表的末尾添加一个新的值为x的结点,并返回表头指针。

面向对象程序设计期末综合练习2(填空题)

面向对象程序设计期末综合练习2(填空题)

面向对象程序设计期末综合练习二(填空题)填空题1.以面向对象方法构造的系统,其基本单位是____对象_____。

2.每个对象都是所属类的一个____实例______。

3.对象将其大部分实现细节隐藏起来,这种机制称为___封装_______。

4.基类和派生类的关系称为____继承______。

5.复杂对象可以由简单对象构成,这种现象称为_______聚合___。

6.对象是对问题域中客观事物的_抽象_,它是一组属性和在这些属性上操作的_封装体______。

7.特殊类的对象拥有其一般类的全部属性与操作,称特殊类____继承____了一般类。

8.如果一个派生类的基类不止一个,则这种继承称为_____多继承_______。

9.如果一个派生类只有一个唯一的基类,则这样的继承关系称为____单继承______。

10.C++支持两种多态性:____编译_____时的多态性和_____运行_____时的多态性。

11.在C++中,编译时的多态性是通过_____重载_____实现的,而运行时的多态性则是通过______虚函数____实现的。

12.面向对象软件开发的生命周期分为三个阶段,即分析、____设计__和___实现____。

13.面向对象的分析包括_____问题域_____分析和____应用__分析两步。

14.类定义中,既包含数据成员,也包含____函数____成员。

15.类中的数据成员的访问属性通常被指明为___private_____。

16.类中的供外部调用定义的函数成员,其访问属性通常被定义为_____public___。

17.对于类中定义的任何成员,其隐含访问权限为____ private_____。

18.对于结构中定义的任何成员,其隐含访问权限为_____ public____。

19.为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为___ private______。

20.若在类的定义体中给出了一个成员函数的完整定义,则该函数属于___内联_____函数。

c++面向对象程序设计试题和答案

c++面向对象程序设计试题和答案

系名____________班级____________姓名____________学号____________密封线内不答题《面向对象程序设计C++》期末考试试卷 第一套 一、 填空题(每空1分,共14分) 1、 观看以下程序: class point{ public: void show() {cout<<”point ”<<endl;} }; void main() { point p1; point *p; p=&p1; _______________//通过对象p1访问show 函数 ______________//通过指针p 访问show 函数 } 2、 在C++类中可以包含______________、______________和______________三种具有不同访问控制权的成员。

3、 定义类时,在类头中将使用关键字_____________来表示类定义的开始。

4、 如果一个类中至少有一个纯虚函数,则该类称为________________。

5、 C++类的组成包括数据成员和______________,友元_____(是、不是)该类的成员函数。

6、 友员函数是用关键字____________修饰的非成员函数。

7、 若有: int i; int &j=i; i=10;j=i+1;则i=__________,j=__________。

8、 new 的功能是____________________,delete 的功能是____________________。

二、选择题(每小题1.5分,共30分)1、下列特性中不是面向对象程序设计语言所特有的是()。

(A)数据封装(B)继承(C)多态性(D)模板2、()是给变量取一个别名,它引入了变量的同意词。

(A)指针(B)引用(C)枚举(D)结构3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。

(完整word版)《面向对象程序设计C 》期末试卷及标准答案(B)

(完整word版)《面向对象程序设计C  》期末试卷及标准答案(B)

《面向对象程序设计C++》期末考试试卷(B)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第8页上)一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( D )是错误的。

A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的2、已知:int m=10; 下列表示引用的方法中,( A )是正确的。

A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m;3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是( C )。

A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是(A )。

A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的是( D )。

A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了( D )次构造函数。

A.0 B.1 C.2 D.37、有关析构函数的说法,不正确的是(B )。

A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型8、类定义的内容允许被其对象无限制地存取的是( C )。

《面向对象程序的设计C++》期末试卷与标准答案(A)

《面向对象程序的设计C++》期末试卷与标准答案(A)

《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是(C)。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( D )。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( B )。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是( C )。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是(C )。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,(A )是正确的。

已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( A )。

《面向对象系统分析与设计》期末综合练习题(答案版)

《面向对象系统分析与设计》期末综合练习题(答案版)

面向对象系统分析与设计期末综合练习题一、选择题1.Heave学院请Decoder软件公司开发一个新的OO课程系统,院长Tom宣布该系统一定要成为学院的great software,下面对于great software的说法正确的是?()(A)Decoder公司程序员满意软件。

(B)Heave学院师生满意的软件。

(C)价格最贵的软件。

(D)Decoder公司程序员和Heave学院师生都满意的软件。

2.Heave学院准备开发一个新的Java版的OO课程注册系统,该系统可以供学生查询期末成绩、教师统计班级成绩正态分布、教务统计GUITARIO各项能力在各门课程中的落实情况,而且随着历史数据的积累,今后还可能引入数据挖掘技术,为院长提供各届学生的整体进步情况,请问Decoder公司的系统架构师应该采用哪种设计模式来设计成绩统计模块()(A)状态模式(B)观察者模式(C)工厂模式(D)装饰者模式3.Heave学院原有的课程目录系统是用SmallTalk语言开发的,并向外部发不了一套访问接口。

学院为了节约成本,不准备重新开发该目录系统,为此Decoder需要设计一套与之兼容的Java接口对其进行封装。

这样可以更方便地将旧课程目录系统集成到新的系统中,同时为将来的升级留有余地。

请问系统设计师在设计时应该采用哪个设计模式?()(A)模版方法模式(B)适配器模式(C)观察者模式(D)外观模式4.Heave学院新的OO课程注册系统,可以与签约银行联网直接代收学费,但银行的业务逻辑错综复杂,为此Heave学院希望银行能够提供一套新的接口以屏蔽并简化原有业务操作的复杂性。

这套新接口设计上体现了哪个设计模式的思想()(A)适配器模式(B)观察者模式(C)装饰者模式(D)外观模式5.Heave学院的期末成绩统计可以饼状图、柱状图、曲线、表格等多种形式进行显示。

但不论何种形式显示,其统计算法census()需要通过prepareData()、generateChart()、saveChart()、showData()四个步骤,其中第1步与第2步对于不同的显示方式是不同的,那么系统设计师在设计该系统时,会使用哪个设计模式()(A)模版方法模式(B)观察者模式(C)适配器模式(D)外观模式6.Heave学院的历史数据挖掘器的设计很有挑战性,其难点在于院方要求各种形式的挖掘组件可以任意组合,任意拼装,每个挖掘组件完成独立的挖掘任务,互不干扰,组装后的挖掘器套件运行后,会形成一份报表,用以呈现挖掘结果。

《面向对象程序设计》期末试卷及标准答案修订修订

《面向对象程序设计》期末试卷及标准答案修订修订

《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是( C )。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( D )。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( B )。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是( C )。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,( A )是正确的。

《面向对象程序设计C》期末试卷及标准答案(A)

《面向对象程序设计C》期末试卷及标准答案(A)

《面向对象程序设计C》期末试卷及标准答案(A)一、选择题(每小题2分,共40分)1、C++是()。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括()。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是()。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是()。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,()是正确的。

已知:int a=1000;A. int &x=a;B. char &yC. int &z=1000;D. float &t=&a7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。

面向对象程序设计期末综合练习一(单选题)总结

面向对象程序设计期末综合练习一(单选题)总结

面向对象程序设计期末综合练习一(单选题)单选题1. C++ 源程序文件的缺省扩展名为()。

A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为()。

A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为()。

A. cppB. exeC. objD. lik7. 程序中主函数的名字为()。

A. mai nB. MAINC. Mai nD. 任意标识符8. C++ 程序的基本模块为()。

A. 表达式B. 标识符C. 语句D. 函数9. 可用作C++语言用户标识符的一组标识符是()。

A. void defi ne +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof38. 以下说法中正确的是()。

A. C++ 程序总是从第一个定义的函数开始执行B. C++ 程序总是从main函数开始执行C. C++ 函数必须有返回值,否则不能使用函数D. C++ 程序中有调用关系的所有函数必须放在同一个程序文件中39. 以下叙述中不正确的是()。

A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量40. 函数重载是指()。

A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同41. 以下关于函数模板叙述正确的是()。

A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型42. 下列()的调用方式是引用调用。

《面向对象的程序设计》期末试卷(B)答案

《面向对象的程序设计》期末试卷(B)答案

电子系计控专业《面向对象的程序设计》期末试卷(B)答案一、选择题(每题2分,共40分)1、下列关于窗体的描述中,错误的是A。

A. 执行Unload Form1语句后,窗体Form1消失,但仍在内存中B. 窗体的Load事件在加载窗体时发生C. 当窗体的Enabled属性为False时,通过鼠标和键盘对窗体的操作都被禁止D. 窗体的Height、Width属性用于设置窗体的高和宽2、窗体文件的扩展名是_D_。

A.frxB. basC. vbpD. frm3、双击窗体上的控件后,将显示的窗口是 C 。

A. 项目(工程)窗口B. 工具箱C. 代码窗口D.1属性窗口4、表示滚动条控件取值范围最大值的属性是__A__A. MaxB. LargeChangeC. ValueD. Max-Min5、若要设置文本框中文本所显示的颜色,使用的属性是_C__。

A. BackColorB. FillColorC. ForeColorD. BackStyle6、下列属性中, B 属性是列表框不具有的。

A. NameB. CaptionC. ColumnsD. Text7、设计动画时,通常用定时器控件的A属性来控制动画速度。

A. IntervalB. ValueC. MoveD. Enabled8、改变控件在窗体中的左右位置,应设置该控件的__B__。

A. TopB. LeftC.WidthD.Height9、可以同时删除字符串前导和尾部空格的函数是 C 。

A. LtrimB. RtrimC. TrimD. Mid10、列表框的_B_属性返回或设置列表框中各列表项的文本。

A. SelectedB. ListC. TextD. Caption11、以下选项中,不是VB标准控件的是_C_。

A. 单选框B. 复选框C. 对话框D. 定时器12、为了把焦点移到某个指定的控件,所使用的方法是 D 。

A. SetFocusB. VisibleC. RefreshD. GetFocus13、Byte类型的变量可存的最大整数是_A_。

面向对象程序设计期末综合练习一(单选题)

面向对象程序设计期末综合练习一(单选题)

22. 下列的符号常量定义中,错误的定义是()。

A. const M=10;B. const int M=20;C. const char ch;D. const bool mark=true;40. 函数重载是指()。

A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同41. 以下关于函数模板叙述正确的是()。

A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型42. 下列()的调用方式是引用调用。

A. 形参和实参都是变量B.形参是指针,实参是地址值C. 形参是引用,实参是变量D.形参是变量,实参是地址值43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。

A. 内联函数B.重载函数C.递归函数D.函数模板44. 函数原型语句正确的是()。

A. int Function(void a);B.void Function (int);C. int Function(a);D.void int(double a);45. C++中函数返回值的类型是由()决定的。

A. return语句中表达式的类型B.该函数定义时的类型C.调用函数时的调用语句D.系统根据结果56. 采用重载函数的目的是()。

A. 实现共享B. 减少空间C. 提高速度D. 使用方便,提高可读性58. 以下叙述中正确的是( )。

A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B. 使用const定义的常量,其值在程序运行时是不可改变的C. 在程序中使用内联函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值70. 用new运算符创建一个含10个元素的一维整型数组的正确语句是( )。

完面向对象程序设计期末综合练习二(填空题)

完面向对象程序设计期末综合练习二(填空题)

面向对象程序设计期末综合练习二(填空题)填空题1. C++语言是在_________语言的基础上发展起来的。

2. C++语言的编译单位是扩展名为__________的__________文件。

3. 行尾使用注释的开始标记符为__________。

4. 多行注释的开始标记符和结束标记符分别为__________和__________。

5. 用于输出表达式值的标准输出流对象是_________。

6. 用于从键盘上为变量输入值的标准输入流对象是________。

7. 一个完整程序中必须有一个名为________的函数。

8. 一个函数的函数体就是一条_________语句。

9. 当执行cin 语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。

10. 在C++程序中包含一个头文件或程序文件的预编译命令为__________。

11. 程序中的预处理命令是指以______字符开头的命令。

12. 一条表达式语句必须以______作为结束符。

13. 在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是________定义的头文件。

14. 使用#include 命令可以包含一个头文件,也可以包含一个______文件。

15.一个函数定义由________和________两部分组成。

16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。

17.C++头文件和源程序文件的扩展名分别为______和______。

18.程序文件的编译错误分为________和________两类。

19.当使用_______保留字作为函数类型时,该函数不返回任何值。

20.当函数参数表用______保留字表示时,则表示该参数表为空。

21.从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______个参数。

《面向对象程序设计》期末考核试题样例及解答

《面向对象程序设计》期末考核试题样例及解答

《面向对象程序设计》期末考核试题样例及解答一、单项选择(每小题1分,12小题,共12分)1. C++源程序文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik2. x>0 || y==5的相反表达式为()。

A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==53. 在下面的字符数组定义中,有语法错误的是( )。

A. char a[20]=“abcdefg”;B. char a[]=“x+y=55.”;C. char a[15];D. char a[10]=’5’;4. 以下正确的函数原型语句是( )。

A. double fun(int x,int y)B. double fun(int x;int y)C. double fun(int,int);D. double fun(int x,y);5. 在下面存储类中,()的对象不是局部变量。

A. 外部静态类B. 自动类C. 函数形参D. 寄存器类6. 假定有“struct BOOK{char title[40]; float price;}; BOOK *book=new BOOK;”,则正确的语句是()。

A. strcpy(book->title,”Wang Tao”);B. strcpy(book.title,”Wang Tao”);C. strcpy(*book.title,”Wang Tao”);D. strcpy((*book)->title,”Wang Tao”);7. 软件产品所具有的全部或部分地再用于新的应用的能力称为该软件的()。

A. 可维护性B. 可复用性C. 兼容性D. 正确性8. 在多文件结构的程序中,通常把含有main()函数的文件称为()。

A. 主文件B. 实现文件C. 程序文件D. 头文件9. 在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队为空,则进行插入时必须把新结点的地址赋给( )。

C++面向对象程序设计期末综合练习一(单选题含答案)

C++面向对象程序设计期末综合练习一(单选题含答案)

面向对象程序设计期末综合练习一(单选题)单选题1. C++源程序文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik4. 编写C++程序一般需经过的几个步骤依次是( )。

A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5. 以下标识符中不全是保留字的是( )。

A. case for intB. default then whileC. bool class longD. goto return char6. 能作为C++程序的基本单位是( )。

A. 字符B. 语句C. 函数D. 源程序文件7. 程序中主函数的名字为( )。

A. mainB. MAINC. MainD. 任意标识符8. C++程序的基本模块为( )。

A. 表达式B. 标识符C. 语句D. 函数9. 可用作C++语言用户标识符的一组标识符是( )。

A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof10. 存储以下数据,占用存储字节最多的是( )。

A. 0B. ‘0’C. “0”D. 0.011. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。

A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。

A. 12B. 144C. 156D. 28813. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是( )。

面向对象程序设计期末综合练习一(单选题)

面向对象程序设计期末综合练习一(单选题)

面向对象程序设计期末综合练习一(单选题)单选题1. C++源程序文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik4. 编写C++程序一般需经过的几个步骤依次是( )。

A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5. 以下标识符中不全是保留字的是()。

A. case for intB. default then whileC. bool class longD. goto return char6. 能作为C++程序的基本单位是( )。

A. 字符B. 语句C. 函数D. 源程序文件7. 程序中主函数的名字为()。

A. mainB. MAINC. MainD. 任意标识符8. C++程序的基本模块为()。

A. 表达式B. 标识符C. 语句D. 函数9. 可用作C++语言用户标识符的一组标识符是( )。

A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof10. 存储以下数据,占用存储字节最多的是()。

A. 0B. …0‟C. “0”D. 0.011. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。

A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( )。

A. 12B. 144C. 156D. 2881 13. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc 的表达式是( )。

《面向对象程序设计C++》期末试卷及标准答案(A)

《面向对象程序设计C++》期末试卷及标准答案(A)

《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是()。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括()。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是()。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,()是正确的。

已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。

《面向对象程序设计C++》期末试卷及标准答案(A)

《面向对象程序设计C++》期末试卷及标准答案(A)

《面向对象程序设计C++》期末考试试卷(A)试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是()。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括()。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是()。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是()。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,()是正确的。

已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象程序设计期末综合练习五(功能与改错)指出程序或函数的功能1. #include<iostream.h>void main(){int i,s=0;for(i=2;i<=30;i+=2) s+=i*i;cout<<"s="<<s<<endl;}2. #include<iostream.h>#include<stdlib.h>#include<math.h>void main(){int i=10,a;while(i>0) {a=rand()%100+10;int j, k=int(sqrt(a)+1e-5); //sqrt(x)为求x的平方根函数for(j=2; j<=k; j++)if(a%j==0) break;if(j>k) {cout<<a<<' '; i--;}}}3. void trans(int x){char a[10];int i=0,rem;do {rem=x%16;x=x/16;if(rem<10) a[i]=48+rem; //’0’字符的ASCII码为48else a[i]=55+rem; //’A’字符的ASCII码为65 i++;}while(x!=0);while(i>0) cout<<a[ i];cout<<endl;}4. #include<iostream.h>double f1(int n) {double sign=1,s=1;for(int i=2;i<=n; i++) {s+=sign/(i*i);sign*=-1;}return s;}void main(){int a;cin>>a;cout<<f1(a)<<endl;}5. double f1(double a, double b, char op) {switch(op) {case ’+’: return a+b;case ’-’: return a-b;case ’*’: return a*b;case ’/’: if(b==0) {cout<<"divided by 0!"<<endl;exit(1);}else return a/b;default: cout<<"operator error!"<<endl;exit(1);}}6. #include<iostream.h>#include<math.h>void main(){int x,y;cin>>x;y=int(sqrt(x)); //sqrt(x)为求x的算术平方根for(int i=1;i<=y;i++)if(x%i==0) cout<<”x=”<<i<<’*’<<x/i<<endl;}7. #include<iostream.h>void main(){int i,p=1,s=0;int N;cout<<"输入一个正整数:";cin>>N;for(i=1;i<=N;i++) {p*=i;s+=p;}cout<<s<<endl;}8. #include<iostream.h>#include<stdlib.h>#include<time.h>const N=10;int ff(int x, int y) {int z;cout<<x<<'+'<<y<<'=';cin>>z;if(x+y==z) return 1; else return 0;}void main(){int a,b,c=0;srand(time(0)); //初始化随机数序列for(int i=0;i<N;i++) {a=rand()%20+1; //rand()函数产生0-32767之间的一个随机数b=rand()%20+1;c+=ff(a,b);}cout<<"得分:"<<c*10<<endl;}9. int s1(int n){int x;if(n==1) x=1;else x=s1(n-1)+n*n;return x;}10. void fun5(char* a, const char* b){while(*b) *a++=*b++;*a=0;}11. template<class T>bool fun8(T a[], int n, T key){for(int i=0;i<n;i++)if(a[i]==key) return true;return false ;}12. void f2(double a[], int n){int i; double sum=0;for(i=0;i<n;i++) sum+=a[i];sum/=n;for(i=0;i<n;i++)if(a[i]>=sum) cout<<a[i]<<’’;cout<<endl;}13. void f4(char a[M][N]){int c1,c2,c3;c1=c2=c3=0;for(int i=0;i<M;i++)if(strlen(a[i])<5) c1++;else if(strlen(a[i])>=5 && strlen(a[i])<15) c2++;else c3++;cout<<c1<<’’<<c2<<’’<<c3<<endl;}14. void fun3(int a[][N], int m, int& row, int& col){int x=a[0][0];row=col=0;for(int i=0;i<m;i++)for(int j=0;j<N;j++)if(a[i][j]>x) {x=a[i][j]; row=i; col=j;}}15. int fun6(int m, int n, int b=2){if(m<b && n<b) return m*n;else if(m%b==0 && n%b==0) return b*fun6(m/b,n/b,b);else return fun6(m,n,++b);}16. char* f8(char* str1, const char* str2){int i=0,j=0;while(str1[i]) i++;while(str2[j]) str1[i++]=str2[j++] ;str1[i]='\0';return str1;}17. int f8(const char* str1, const char* str2){int i=0;while(str1[i] && str2[i])if(str1[i]==str2[i]) i++;else if(str1[i]>str2[i]) return 1;else return -1;if(str1[i]==str2[i]) return 0;else if(str1[i]>str2[i]) return 1;else return -1;}18. IntNode* FindMax(IntNode *f){if(!f) return NULL;IntNode *p=f;f=f->next;while(f) {if(f->data>p->data) p=f;f=f->next;}return p;}假定IntNode的类型定义为:struct IntNode {int data; //结点值域IntNode* next; //结点指针域};19. int Count(IntNode *f){if(!f) return 0;int c=0;while(f) {c++;f=f->next;}return c;}假定IntNode的类型定义为:struct IntNode {int data; //结点值域IntNode* next; //结点指针域};20. void Output(IntNode *f){if(!f) return;while(f) {cout<<f->data<<’’;f=f->next;}cout<<endl;}假定IntNode的类型定义为:struct IntNode {int data; //结点值域IntNode* next; //结点指针域};21. void Input(IntNode*& f){int n;cout<<”从键盘给n输入一个整数:”;do cin>>n; while(n<0);if(n==0) {f=NULL; return;}f=new IntNode;IntNode* p=f;cout<<”从键盘输入”<<n<<”个整数:”;while(n--) {p=p->next=new IntNode;cin>>p->data;}p->next =NULL;p=f; f=f->next; delete p;}假定IntNode的类型定义为:struct IntNode {int data; //结点值域IntNode* next; //结点指针域};22. int f(const char *s){int i=0;while(*s++)i++;return i;};23. char *f(char *s){int n=strlen(s);char* r=new char[n+1];for(int i=0; i<n; i++)if(s[i]>='a' && s[i]<='z') r[i]=s[i]-'a'+'A';else r[i]=s[i];r[n]=’\0’;return r;}程序改错1. 在下面的定义中,NODE是链表结点的结构,appendToList则是一函数,其功能是:在list所指向的链表的末尾添加一个新的值为x的结点,并返回表头指针。

相关文档
最新文档