面向对象程序设计C试验题目Word版

合集下载

《面向对象程序设计c》综合复习题集及答案详解

《面向对象程序设计c》综合复习题集及答案详解

《面向对象程序设计c》综合复习题集及答案详解综合复习题集一、单选题1.C++源程序文件的缺省扩展名为(A)。

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

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

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

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

A.caeforintB.defaultthenwhileC.boolclalongD.gotoreturnchar6.能作为C++程序的基本单位是()。

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

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

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

A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaeD.2aDOizeof10.存储以下数据,占用存储字节最多的是()。

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

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

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

A.1.0/a某b某cB.1/(a某b 某c)C.1/a/b/(float)cD.1.0/a/b/c14.设”inta=15,b=26;”,则”cout<A.15B.26,15C.15,26D.2615.设某是一个bool型的逻辑量,y的值为10,则表达式某&&y的值为()。

c面向对象程序设计期末考试题及答案

c面向对象程序设计期末考试题及答案

c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是面向对象程序设计的特点?A. 封装B. 继承C. 多态D. 所有选项都是2. 在Java中,以下哪个关键字用于定义类?A. classB. structC. typeD. classdef3. 以下哪个是Java中不允许的类成员访问修饰符?A. publicB. protectedC. privateD. global4. 以下哪个是Java中实现多态的方式?A. 函数重载B. 函数重写C. 接口D. 抽象类5. 在Java中,哪个关键字用于声明一个方法,该方法没有返回值?A. voidB. returnC. noneD. null6. 以下哪个是Java中创建对象的语法?A. new ClassName();B. create ClassName;C. make ClassName;D. ClassName();7. 在Java中,以下哪个是正确的构造方法声明?A. public ClassName();B. public ClassName new();C. public new ClassName();D. public ClassName create();8. 以下哪个是Java中实现继承的方式?A. 使用extends关键字B. 使用implements关键字C. 使用interface关键字D. 使用new关键字9. 在Java中,以下哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. class10. 以下哪个是Java中实现封装的方式?A. 使用public关键字B. 使用private关键字C. 使用protected关键字D. 使用default关键字答案:1. D2. A3. D4. B5. A6. A7. A8. A9. A10. B二、简答题(每题10分,共20分)1. 简述面向对象程序设计中的“封装”概念及其重要性。

学堂在线《面向对象程序设计C++》习题

学堂在线《面向对象程序设计C++》习题

学堂在线《面向对象程序设计C++》习题(作业部分)作业一多选题(2分)C++源程序不能直接运行,需要经过如下哪些步骤,才能得到可以运行的程序?A.编译器B.链接器C.汇编器D.编辑器正确答案:AB判断题(1分)C++源程序必须使用两个以上的文件来存放,才能编译链接成可执行程序。

正确答案:×多选题(2分)关于main()函数的参数,以下说法正确的是A.不使用参数也是允许的B.若带参数,则第一个参数是整数类型C.若带参数,则第二个参数是字符串数组D.参数名称只能使用argc和argv正确答案:ABC多选题(2分)为防止头文件重复包含,以下书写错误的是A.错误B.错误C.错误D.错误正确答案:ABCD作业二多选题(2分)下列哪些语句可以完成对数组的初始化A.char name[10] = "THU OOP";B.char course[4] {'O', 'O', 'P'};C.int year[5] {2016, 2017, 2018};D.int score[] = {60, 80, 90};正确答案:ABCD多选题(2分)下列哪些写法不正确A.int* ptr = new int;B.int* ptr = new int(3);C.int * ptr = new int[3];D.int* ptr = new int{3};E.int* ptr = new[] int;F.int ** ptr = new int[4][5];正确答案:EF多选题(2分)下列关于for循环语句的写法,正确的是:A.第1句B.第2句C.第3句D.第4句正确答案:ABCD判断题(1分)函数重载时,函数名必须一样,函数参数必须不同,至于函数返回值类型,则没有限定。

正确答案:√单选题(1分)以下关于函数参数缺省值的说法,正确的是:A.当有多个函数参数时,任意一个都可以设置缺省值B.若只有一个参数,则不能设置缺省值C.只有整数参数才能设置缺省值D.仅允许从函数参数列表的最后一个开始依次设置缺省值(一个或多个)正确答案:D判断题(1分)函数返回类型,既可以放在函数名前面(左边),也可以使用追踪返回类型的语法放到函数名的后面(右边)正确答案:√多选题(2分)关于类成员的访问权限,以下说法正确的是:A.访问权限可以成组设置B.相同权限的成员,可以共用一个权限设置C.同一权限说明不能出现多次D.private必须在public之前出现正确答案:AB单选题(1分)下列关于私有成员的说法,正确的是A.即使是类的成员函数,也不能访问私有成员B.对象通过成员操作符,是可以访问自己隐藏的私有成员的C.私有数据只能被私有成员函数访问,不能被公有成员函数访问D.私有数据成员不能与公有数据成员同名正确答案:D多选题(2分)关于类的成员函数定义,以下说法正确的是:A.既可以放在类中定义,也可以放在类外定义B.在类外定义时,函数名前要加”类名::“进行限定C.只有私有成员函数才能在类中进行定义D.私有成员函数只能在定中进行定义正确答案:AB判断题(1分)所谓this指针,只是一种概念,是为了帮助我们理解类的运作方式而引入的,实际上在成员函数的参数列表中并没有这种变量被传入。

C++面向对象程序设计(试题与答案)

C++面向对象程序设计(试题与答案)

模拟试题(1)一、判断对错题(10%)(对√,错×)()1.自动变量用堆方式创建,它与块共存亡。

()2.运算符+=是右结合的。

()3.表达式cout<<99的类型为int。

()4.++i是左值,但i++不是左值。

()5.Y[I][J]与*(*Y+I)+J不等价。

()6.从外部看类的private 成员和protected成员有区别。

()7.运算符&不可以重载。

()8.基类的protected成员经过protected派生,在派生类中它变成了private成员。

()9.2.0/-3.0是一个正确的表达式。

()10.字符'\12'的ASCII为12。

二、填空题(20%)#include <iostream.h>typedef struct node{long data;node * next;};class stack{private:node * head;①__________stack();~stack();void push (②__________);③__________ pop();④__________ print();};stack::stack(){ head = new ⑤__________head->next = ⑥__________ }stack::~stack(){node * p;p = head;while (p){head = head->next;⑦__________p = head;}}void stack::push(long x){node * p = new node;p->data = x;p->next = head->next;⑧__________ = p;cout<<"Push" <<x<<" ok !"<<endl;}long stack::pop(){node *p = head->next;if(p!=NULL){long x = p->data;head->next = p->next;⑨__________cout<<"pop "<<x<<" ok !"<<endl;return x;}elsecout<<"Stack is empty !"<<endl;return 0;}void stack::print(){node * p = head->next;cout<<"Stack_Top"<<endl;while (p){cout<<p->data<<endl;⑩__________;}cout<<"Stack_bottom"<<endl;}三、简答题(20%)(按条列出论点)1.注解。

面向对象课程设计题目汇总及要求

面向对象课程设计题目汇总及要求

面向对象程序设计课程设计题目汇总选题说明及要求说明:1、由于各选题的难度不同,将选题分为A、B、C三个等级,每个等级对应的最高分依次为:100分、85分和75分。

达到基本要求且有一定程度和创新和见解的同学可获得较高分数。

学生可根据自己的情况,自行选择。

2、每个题目最多只能有两组,若超过两组,则该题目自动作废!3、规定2-4人的题目,若实际人数比分组人数每少一人,则题目等级自动上调一级。

4、若实际小组人数比规定人数多一人,则题目等级自动下调一级。

实际人数比规定人数多两个的分组无效!题目列表题目一、单链表(1人)(C级) (3)题目二:一元多项式求和(1人)(B级) (3)题目三:快餐店点餐系统(3人)(B级) (3)题目四、简单车辆管理系统(3人)(B级) (4)题目五、滚动发车系统设计(3人)(B级) (4)题目六、简单银行账户系统(3人)(A级) (5)题目七、银行叫号系统设计(3人)(B级) (5)题目八、学生学籍管理系统(3人)(B级) (6)题目九、教师工资信息管理系统(3人)(A级) (6)题目十、书刊租借信息管理系统(3人)(A级) (7)题目十一、仓库管理信息系统(3人)(B级) (7)题目十二、研究生管理信息系统(3人)(B级) (8)题目十三、图书馆管理信息系统(3人)(B级) (8)题目十四、学生宿舍管理信息系统(3人)(B级) (9)题目十五、理财管理信息系统(3人)(B级) (9)题目十六、IT设备资产管理系统(3人)(B级) (10)题目十七、员工管理信息系统(3人)(B级) (10)题目十八某软件公司客户关系(CRM)管理系统(4人)(A级).. 11 题目十九:足球联赛排名(3人)(A级) (11)题目二十:小学生四则运算测验(3人)(B级) (12)题目二十一:学生电子投票平台设计(3人)(B级) (12)题目二十二:物品库存管理系统(3人)(B级) (12)题目二十三:个人财政支出管理系统(2人)(C级) (13)题目二十四:电话簿管理系统(2人)(C级) (13)题目二十五:股票交易系统(4人)(A级) (13)题目二十六:学生信息管理系统(2人)(C级) (13)题目二十七:学生成绩管理系统(2人)(C级) (13)题目二十八:小型字符串类(2人)(B级) (14)题目二十九:分数计算器(2人)(B级) (14)题目二十九:复数计算器(1人)(C级) (14)题目三十:无符号大整数计算器(2人)(B级) (15)题目三十一:超市密码存储箱系统(2人)(A级) (15)题目一、单链表(1人)(C级)建立一个单链表类,该链表类能够实现以下功能:(1)有合理的构造函数,能够由用户输入数据,创建链表,如果用户输入的数据不合理,能够给出提示信息(2)能够实现单链表元素的遍历(3)能够在指定位置插入一个元素(4)能够删除指定位置的元素(5)能够统计单链表中的元素个数并输出题目二:一元多项式求和(1人)(B级)编写一个程序用单链表存储一元多项式,并实现以下功能:(1)能够运行用户合理输入两个的多项式(2)能够实现两个多项式相加(3)能够将相加的结果输出(4)能够对常见的错误进行正确的处理和输出题目三:快餐店点餐系统(3人)(B级)快餐店点餐系统一般具有高效、便捷的特点。

(完整版)c++面向对象程序设计试题和答案

(完整版)c++面向对象程序设计试题和答案

系名___ ___ ___ ___班级___ ___ ___ ___姓名___ ___ ___ ___学号___ ___ ___ ___ 密封线内不答题填空题(每空1分,共14分)1、观看以下程序:class point{public:void show() {cout<<”point”<<endl;}};void main(){point p1;point *p;p=&p1;_P1.show()______________//通过对象p1访问show函数__p->show()____________//通过指针p访问show函数}2、在C++类中可以包含__私有____________、___公有___________和__保护____________三种具有不同访问控制权的成员。

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

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

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

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

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

8、 new的功能是_____动态申请内存空间_______________,delete的功能是___释放由new申请的空间_________________。

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

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

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

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

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

《面向对象程序设计C++》期末考试试卷(B)一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( )就是错误的。

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

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='*');下面函数调用中,不合法的就是( )。

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

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

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

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

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

Java面向对象知识测试_C卷_答案

Java面向对象知识测试_C卷_答案

面向对象部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。

单选2分/题,多选4分/题。

多选题不全对半分,全对满分。

1.下面描述函数重写错误的是A. 要有继承或实现关系B. 子类方法的权限必须大于等于父类的权限C. 父类中被private权限修饰的方法可以被子类重写D. 子类重写接口中的抽象方法,子类的方法权限必须是public的//接口所有方法前面都是默认public abstract2.下列说法哪个正确?(){指的是.class文件}A. 一个程序可以包含多个源文件B. 一个源文件中只能有一个公共类?C. 一个源文件中可以有多个类D. 一个源文件只能供一个程序使用3.下面关于类的设计思路描述错误的是 ( )A. 根据需求写出类所包含的字段(成员变量)B. 所有的字段都建议私有化C. 封装之后的字段在本类内访问也必须使用get/set方法//private修饰之后可以在本类中直接使用,不需要通过get/set方法调用D. 按需求可添加若干构造方法4.关于封装下面介绍错误的是()。

A. 封装将变化隔离B. 封装提高重用性。

C. 封装提高安全性D. 只有被private修饰才叫做封装//仅仅是封装的一种5.试图编译运行下面的代码会发生什么情况public class MyClass{static int i; // int型的成员变量默认值为 0public static void main(String[] args){System.out.println(i);}}A. 错误,变量i没有被初始化B. 输出nullC. 输出1D. 输出06.下面对static的描述错误的是A. 静态修饰的成员变量和成员方法随着类的加载而加载B. 静态修饰的成员方法可以不用创建对象就能访问非静态的成员变量 //对象都没有,访问什么呀?C. 静态修饰的成员可以被该类所有的对象所共享D. 静态修饰的成员变量和成员方法随着类的消失而消失7.在Java中,下面对于构造函数的描述正确的是()。

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

cin >> sel;switch(sel){case 1:cin >> ...;cout << getEarning(...);break;case 2:cin >> ...;cout << getEarning(...);break;case 3:cin >> ...;cout << getEarning(...);break;case 4:cin >> ...;cout << getEarning(...);break;default:break;}return 0;}来源:#include<iostream>using namespace std;double getEarning(double salary ,int absenceDays){return (salary -salary*absenceDays/22);}// admindouble getEarning(double baseSalary ,double salesSum,double rate) {return (baseSalary + salesSum*rate);}double getEarning(int workPieces,double wagePerPiece){return (workPieces*wagePerPiece);}double getEarning(double hours ,double wagePerHour){return (hours*wagePerHour);}int main(){int kind = 0 ;cout << "Please select..." << endl;cout << "1: Manager." << endl;cout << "2: Sales Man." << endl;cout << "3: Pieces Worker." << endl;cout << "4: Hour-Worker." << endl;cout << "Others: Quit" << endl;cin >> kind ;switch(kind){case 1:{double salary ;int abDays;cin>>salary>>abDays;cout<<getEarning(salary,abDays);break;}case 2:{double base ;double salesSum;double rate;cin>>base>>salesSum>>rate;cout<<getEarning(base,salesSum,rate);break;}case 3:{int workPieces;double wagePerPiece;cin>>workPieces>>wagePerPiece;cout<<getEarning(workPieces,wagePerPiece);break;}case 4:{double hours;double wagePerHour;cin>>hours>>wagePerHour;cout<<getEarning(hours,wagePerHour);break;}default:break;}// cout<<getEarning(100.0,11);// cout<<getEarning(100.0,10.0,0.1);// cout<<getEarning(100,0.2);// cout<<getEarning(200,0.3);return 0 ;}#include<iostream>using namespace std;void Math(float a , float b ,float& sum,float &sub,float&pro) {sum = a+ b ;sub = a-b ;pro = a*b ;}int main(){float sum = 0 ;float sub = 0 ;float pro = 0 ;float a = 0 ;float b = 0 ;cin>>a>>b;Math(a,b,sum,sub,pro);cout<<sum<<" "<<sub<<" "<<pro<<endl; return 0 ;}#include<iostream>using namespace std;template<class T>T cg(T &a ,T& b){T c ;c = a ;a =b ;b =c ;}int main(){int a = 0 ;int b = 0 ;char c = 0 ;char d = 0 ;cin>>a>>b>>c>>d;cout<<a<<" "<<b<<endl<<c<<" "<<d<<endl;return 0 ;}#include<iostream>#include<cmath>using namespace std;float distance(float x1,float y1,float z1,float x2=0,float y2=0,float z2=0) {return sqrt(pow(x1-x2,2)+pow(y1-y2,2)+pow(z1-z2,2));}int main(){float x1 = 0 ;float x2 = 0 ;float y1 = 0 ;float y2 = 0 ;float z1 = 0 ;float z2 = 0 ;cin>>x1>>y1>>z1>>x2>>y2>>z2;cout<<distance(x1,y1,z1)<<endl;cout<<distance(x1,y1,z1,x2,y2,z2)<<endl;return 0 ;}实习三标题:类的定义_静态常量时限:3000 ms内存限制:10000 K总时限:3000 ms描述:设计并实现一个圆柱类Cylinder,要求:(1)设计两个double型的私有数据成员:高度height和底圆半径radius。

(2)设计一个double型的公有静态常量数据成员pi(其值初始化为3.1415926),以及一个获取该常量的公有静态成员函数GetPI。

(3)在构造函数的初始化列表中初始化高度height和底圆半径radius。

(4)设计用于获取半径的成员函数GetRadius、获取高度的成员函数GetHeight、设置半径的成员函数SetRadius、设置高度的成员函数SetHeight。

(5)设计用于计算圆柱体积的成员函数Volume()、计算圆柱表面积的成员函数Area。

在main函数中:根据输入的高度和半径构造圆柱对象,并输出圆柱的基本信息、体积和表面积。

输入:圆柱的高度和底圆半径输出:圆周率pi、圆柱高度、底圆半径、圆柱的体积和表面积输入样例: 2.0 1.0输出样例:pi=3.14159, height=2, radius=1:volume=6.28319, area=18.8496 #include <iostream>using namespace std;class Cylinder{private:double height,radius;public:static const double Pi=3.1415926;Cylinder(double a=0,double b=0){height=a;radius=b;}double GetPI(){return Pi;}void GetRadius(){cin >> radius;}void GetHeight(){cin >> height;}double SetRadius(){return radius;}double SetHeight(){return height;}double Volume(){return Pi*radius*radius*height;}double Area(){return 2*Pi*radius*height+2*Pi*radius*radius; }};int main(){Cylinder y;y.GetHeight();y.GetRadius();cout << "pi=" << y.GetPI() << "," << " ";cout << "height=" << y.SetHeight() << "," << " "; cout << "radius=" << y.SetRadius() << ":" ;cout << "volume=" << y.Volume() << "," <<" ";cout << "area=" << y.Area() <<endl;return 0;}描述:设计并实现一个动态整型数组类Vect,要求:(1)实现构造函数重载,可以根据指定的元素个数动态创建初始值为0的整型数组,或根据指定的内置整型数组动态创建整型数组。

相关文档
最新文档