2008级C 面向对象程序设计试题A 计算机学院2009年冬天
2008级C语言程序设计试卷_A带答案(2009.6)
天津工业大学200 8 ~200 9 学年第 2 学期C 程序设计试卷(A)学院班级学号姓名注意事项:1、本试卷共13 页,满分为100 分,考试时间为110 分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。
二、阅读程序题答题处:(每空3分,共30分)四、完善程序填空题答题处:(每空2分,共18分)一、单项单选题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.以下标识符中,能够作为变量名使用的是【1】。
A) n_1 B) charC) x(2) D) 2_a2.若有定义语句char ch='\072'; 则变量ch 【2】。
A) 定义错误B) 包含1个字符C) 包含3个字符D) 包含4个字符3.已知字母B的ASCII码值为66,则运行下面程序段后,输出结果是【3】。
char ch1; ch1='B'+'5'-'3'; printf("%d,%c",ch1,ch1);A) D,D B) 68,DC) D,68 D) 68,684.若有如下语句:int x; float y;scanf("k=%d,f=%f",&x,&y);则能够正确的为变量x输入5、为变量y输入3.2的方法是【4】。
说明:备选答案中的<CR>表示回车符A) 5 3.2 <CR> B) 5 <CR> 3.2 <CR>C) k=5,f=3.2 <CR> D) x=5,y=3.2 <CR>int k=10; printf("%d,%o,%x",k,k,k);A) 12,a,10 B) 12,10,aC) 10,12,a D) 10,a,126.判断char 型变量ch 是否为小写字母的正确表达式是【6】。
2008年1月全国自学考试试题面向对象程序设计试卷
全国2008年1月高等教育自学考试面向对象程序设计试题课程代码:02328一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.编写C++程序一般需经过的几个步骤依次是( )A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编译、连接2.函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为( )A.1B.2C.4D.53.假定AB为一个类,则执行“AB a(2), b[3], *p[4];”语句时共调用该类构造函数的次数为( )A. 3B. 4C. 5D. 94.假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;”语句时共调用该类析构函数的次数为( )A. 0B. 1C. nD. n+15.如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )A. a.operator++(1)B. operator++(a)C. operator++(a,1)D. a.operator++()6. 继承机制的作用是( )A. 信息隐藏B. 数据封装C. 定义新类D. 数据抽象7.以下哪个基类中的成员函数表示纯虚函数?( )A. virtual void vf(int)B. void vf(int) = 0C. virtual void vf()=0D. virtual void yf(int){}18.假定一个类的构造函数为“A(int aa, int bb) {a=aa; b=aa*bb;}”,则执行“Ax(4,5);”语句后,x.a和x.b的值分别为( )A. 4和5B. 5和4C. 4和20D. 20和59.一个类的静态数据成员所表示属性( )A. 是类或对象的属性B. 只是对象的属性C. 只是类的属性D. 是类和友元的属性10.一个C++源程序文件的扩展名为( )A. .hB. .cC. .cppD. .cp二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
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. 简述面向对象程序设计中的“封装”概念及其重要性。
计08面向对象程序设计 考试参考答案(A卷)
《面向对象程序设计》课程试题参考答案及评分标准(中文试卷)( A卷)适用专业年级:计算机科学与技术08级考试时间: 100分钟命题人:彭召意一、判断题(每小题1分,共计10分)(评分标准:每对一个得1分)1 2 3 4 5 6 7 8 9 10××√√×××√√×二、简答题(每小题8分,共24分)(评分标准:以答对关键词来给分,用自己的语言理解回答,可适当得分)1.(评分标准:前两个知识点各2分,后一个知识点4分)答:类:是指具有相同的属性和操作方法,并遵守相同规则的对象的集合。
对象:是包含现实世界物体特征的抽象实体,每个对象有内部的属性和操作方法。
主要区别:面向对象的程序设计:它的整个程序由一系列相互作用的对象构成,对象之间的交互通过发送消息来实现,对象通过响应消息来实现程序的功能。
编程时可以不知道对象的内部实现细节。
面向过程的程序设计:程序由一系列的函数构成,程序的实现通过函数的顺序执行来实现。
编程时需要清楚程序实现的每一步细节。
2.(评分标准:前两个知识点各4分)答:在一个类中,用friend声明的非本类函数就是友元函数。
友元函数的作用:可以直接访问本类的私有成员,提高编程的灵活性和程序执行效率。
3.(评分标准:前两个知识点各4分)答:函数重载主要作用是:用同一个函数名可以去调用不同参数或功能的函数,即用同一个函数实现不同的操作。
函数重载时参数个数不同时,不能有缺省参数。
因为:有缺省参数时,就会发生二义性,编译出错。
三、填空题(评分标准:每空2分,共10分,等价写法给满分)(1) Value[Len-i-1](2) i++(3) return 1(4) *pstr++(5) new MyString(5,"12345")四、阅读下面的程序,写出程序运行的结果。
(共26分)1.程序1答:(评分标准:a和c正确分别得3分)5 5 1110 10 212. 程序2(10分,评分标准:前4行每行2分,后2行每行1分)答:程序运行结果为:Win BeginWin BeginWinOpenWinButOpenWin3. 程序3(10分,评分标准:每对一个得1分)答:程序运行结果为:create bed:3create chair:2create bed:3create chair.create recliner.delete recliner.delete chair.delete bed.delete chair.delete bed.五、理解问答题(10分)1.解答:(1):(评分标准:指出错误得1分,改错2分(程序功能上等价也行))标记行5错误,因为在类外不能直接访问对象的受保护的成员。
c面向对象程序设计考试试卷(详细讲解).doc
c面向对象程序设计考试试卷(详细讲解).docC++面向对象程序设计考试试卷(详细讲解)一、单项选择题(共20 题,每题 1 分,共 20 分)1、下列关于 C++标识符的命名不合法的是C与 C#一样A. PadB. name_1C. A#bcD. _a122、若有以下类型标识符定义:() Dint x=2;char w='a';float y=23.45f;double z=45.6712;则表达式 w*x+y-z 的结果类型是A. floatB. charC. intD. double6、对重载函数形参的描述中,错误的是 D 重载是重点A.参数的个数可能不同B.参数的类型可能不同C.参数的顺序可能不同D.参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并正确赋初值的语句是 DA. int N=5,b[N][N];B. int a[2]={{1},{3},{4},{5}};C. int c[2][]={{1,2},{3,4}};D. int d[3][2]={{1,2},{3,4}};8、下列给字符数组进行的初始化中,不正确的是 DA. char s1[]="abcd";B. char s2[3]={'x','y','\0'};C. char s3[]={'a','x','y','\0'};D. char s4[6]={"xyz","mnp"};9、通常的拷贝构造函数的参数是 CA.某个对象名 B.某个对象成员名C.某个对象的引用D.某个对象的指针名10、关于构造函数特点的描述中,错误的是 AA.定义构造函数必须指出类型(构造函数特点是无返回类型)B.构造函数的名字与该类的类名相同C.一个类中可定义0 至多个构造函数(不写构造函数,系统会自动生成一个空的构造函数)D.构造函数是一种成员函数11、下面程序的运行结果为 C#includeint add(int a,int b);void main(){extern int x,y;cout<<add(x,y)<<endl;< bdsfid="108" p=""></add(x,y)<<endl;<>}int x=20,y=5;int add(int a,int b){int s=a+b;- 1 -return s;}A.20 B.5 C.25 D.编译会提示出错信息12、关于常成员的描述中,错误的是 BA.常成员包含常数据成员和常成员函数两种B.常数据成员必须是公有的C.常数据成员要使用构造函数成员初始化列表进行初始化D.常对象只能调用它的常成员函数,不能调用其它的成员函数13、关于友元函数的描述中,错误的是 BA.友元函数不是成员函数B.友元函数只能访问类中私有成员C.友元函数破坏隐藏性,尽量少用D.友元函数说明在类体内,使用关键字friend14、如果有 int x,*p; float y,*q; 则下面操作正确的是 CA.p=x B.p=qC.p=&x D.p=&y16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 DA.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址17、对于动态分配内存空间描述正确的是 DA.使用 new 运算符分配的内存空间的长度必需是常量B.delete 运算符可以释放动态的存储空间和静态的存储空间C.由 new 分配的内存空间是不连续的D.delete 运算符只能释放由new 分配的动态存储空间18、能够释放对象所占资源的是() AA.析构函数 B.数据成员C.构造函数 D.静态成员函数19、虚函数的定义是在基类中进行的,定义时需要冠以关键字 CA.static B.frendC.virtualD.public20、在 C++中串流类是在头文件 strstrea.h 中定义的,下列不属于串流类的是) CA.strstream B.ostrstreamC.ofstream D.istrstream二、填空题(共9 题 16 空,每空 1 分,共 16 分)1、函数重载时,编译系统会根据 __形参的类型 __或__形参的个数__来区分。
2008-2009第二学期《C程序设计》试卷A(08级09.4,含答案)
一、选择题(每题1分,共20分)1.设 int b=2;表达式b/(b*2)的值是()。
A. 0B. 0.5C. 0.500000D. 0.000002.下列标识符中不合法的标识符的是()。
A. hot_doB. cat1C. _priD. 2ab3.以下程序的输出结果是()。
void main(){int k=17;printf("%d,%o,%x \n",k,k,k);}A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,114.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为()。
A.4 B.16 C.32 D.525.下述程序段中,while循环执行次数是( )。
int k=0;while(k=1) k++;A. 无限次B. 有语法错误,不能执行C. 一次也不执行D. 执行一次6. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。
A. a < > 0B. !aC. a=0D. a!=07.执行下述语句后,*(p+1)的值是( )。
char s[]= “ab”,*p;p=s;A.‘b’B. OC. 不定值D. 非法引用128.有以下语句:int b;char c[10];,则正确的输入语句是( )。
A. scanf("%d%s",&b,&c);B. scanf("%d%s",&b,c);C. scanf("%d%s",b,c);D. scanf("%d%s",b,&c);9.能正确表示a 和b 同时为正或同时为负的逻辑表达式是( )。
A. (a>=0‖b>=0)&&(a<0‖b<0)B. (a>=0&&b>=0)&&(a<0&&b<0)C. (a+b>0)&&(a+b<=0)D. a*b>010.C 语言中的逻辑运算结果,用( )表示逻辑“真”值。
面向对象程序设计试题集多套
目录C++面向对象程序设计模拟测试题 (2)计算机技术与软件水平考试面向对象程序设计试题(1) (39)计算机技术与软件水平考试面向对象程序设计试题(2) (41)计算机技术与软件水平考试面向对象程序设计试题(3) (47)计算机技术与软件水平考试面向对象程序设计试题(4) (54)计算机技术与软件水平考试面向对象程序设计试题(5) (58)计算机技术与软件水平考试面向对象程序设计试题(6) (64)面向对象程序设计试题(6)参考答案 (67)计算机技术与软件水平考试面向对象程序设计试题(7) (69)面向对象程序设计试题(7)参考答案 (74)2008年全国计算机及应用面向对象程序设计试卷 (75)2009高等教育自学考试面向对象程序设计试题 (79)《面向对象程序设计》期末考试(开)试题及答案 (86)计科开放本科网络专业面向对象程序设计试题 (94)【面向对象程序设计】全国2011年试题及答案 (101)【面向对象程序设计】全国2010年试题及答案 (110)【面向对象程序设计】2010年试题及答案 (118)C++面向对象程序设计模拟测试题一.选择填空1.下面关于对象概念的描述中,( A )是错误的。
A.对象就是C语言中的结构变量;B.对象代表着正在创建的系统中的一个实体;C.对象是一个状态和操作(或方法)的封装体;D.对象之间的信息传递是通过消息进行的2.下面关于类概念的描述中,( D )是错误的。
A.类是抽象数据类型的实现:B.类是具有共同行为的若干对象的统一描述体;C.类是创建对象的样板:D.类就是C语言中的结构类型3.在16位机中,int 型字宽为( A )字节。
A.2;B.4;C.6;D.84.类型修饰符unsigned 修饰( D )类型是错误的。
A.char;B.int ;C.long int ;D.float5.在int a[5]={1,3,5};中,数组元素a[1]的值是( C )。
2008级C 面向对象程序设计试题A 计算机学院2009年冬天
指针型变量。 5. 若有语句 A*const p=new A; 那么通过指针 p 只能访问类 A 的常成员函数或静态成员函数。 6. 在基类的成员函数都是虚函数的情况下,该基类也称虚基类。 7. 将一个能够正常执行的程序中所有形如 void f(A&)的函数都改成 void f(const A&)形式,那
7. 下列关于单继承的说法,不正确的是:
(A) 基类的析构函数是虚的,那么派生类的析构函数也一定是虚的
(B) 实例化派生类对象,总会调用到基类的某个构造函数
(C) 无论采用何种继承方式,创建派生类对象时,总是先初始化基类数据成员,再初始化
派生类数据成员
(D) 若要在 main 函数中创建派生类对象,那么派生类的析构函数必须是公有的,基类析构
(A) a
(B) 类 A 中定义的类型为 A 的静态数据成员
(C) *this
(D) 函数 f 中用语句 A& b=a; 定义的量 b
5. 下列关于 C++动态内存管理的说法,正确的是:
(A) 用 new 分配的内存,系统可以自动回收
(B) 用 new 分配内存时,系统不可能产生异常
(C) 语句块 int n=10; char array[n]; 含有语法错误,但语句块 int n=10; char * array=new
1. class A{
2. class A{
5. class A {
int m_ival=0;
const A m_val;
public: A(int n) {}
2008级信息类C语言程序设计期末A卷
5、以下循环语句可以正确终止的是 C 。 A、int i = 100; B、for( ; ;); while( 1 ) { i = i++ % 100; if( i > 100 ) break; } C、int k = 32764; do { k++;k++; }while( k > 0 ); 6、sizeof ( float )是 B 。 A、一个双精度型表达式 C、一种函数调用 D、int s = 32764; while( ( s++ % 2) || ( s % 2 ) ) s++;
2、编程实现,任意输入一个偶数 n,将它们分解为两个 素数之和。(10分) 输出形式为 * = * + *,例如输入12,输出:12 = 7 + 5。
测试用例: 输入 1.2↙ 2.12↙ 3.124↙ 4.1234↙ 5.20000↙
输出 2 = 1 + 1↙ 12 = 7 + 5↙ (公开) 124 = 11 + 113↙ 1234 = 3 + 1231↙ 20000 = 3 + 19997↙
三、上机编写程序题(共40分)
1、编程实现,输入顶行字符和图形的高,在屏幕上输出如 图所示的图形(下例顶行字符为’A’,图形的高为5)。 (10分) A BCD EFGHI JKLMNOP QRSTUVWXY
测试用例: 输入 1.3 Z↙
2.1 B↙ 3.4 M↙
4.5 A↙
5.0 A↙
输出 Z↙ A B C↙ D E F G H↙ B↙ M↙ N O P↙ Q R S T U↙ V W X Y Z A B↙ A↙ (公开) B C D↙ E F G H I↙ J K L M N O P↙ Q R S T U V W X Y↙ ↙
2009年上学期《C语言程序设计》期末试卷(A)参考答案
2009年上学期《C语⾔程序设计》期末试卷(A)参考答案华东师范⼤学期末试卷(A)2008 —2009学年第⼆学期课程名称:C语⾔程序设计学⽣姓名:学号:______________专业:年级/班级 2007级课程性质:专业必修(请将所有答案写在答题纸上)⼀、填空题(每空1分,共10分)1. 设x和y均为int型变量,且x=2,y=3,则表达式1.0+x/y的值为 1.0。
2. 有如下输⼊语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输⼊数据的正确形式应是a=1,b=3,c=2 。
3. 变量y满⾜以下两条件中的任意⼀个:①能被4整除,但不能被100整除;②能被400整除。
请⽤逻辑表达式表⽰所给条件:___(y%4==0&&y%100!=0)||(y%400==0)_ __4. 在内存中存储“A”要占⽤ 2 个字节,存储…A?要占⽤ 1 个字节。
5. C语⾔编译系统在判断⼀个量是否为“真”时,以0代表“假”,以⾮0代表“真”。
6. 结构化程序设计⽅法规定程序或程序段的结构有三种:顺序结构、选择结构和循环结构。
7. 设有“int x=1;”,则“x>0 ? 2*x+1 : 0”表达式的值是___3_______。
8. C语⾔的表达式与语句的区别在于C语⾔的语句是以分号结束的,⽽表达式是没有分号的。
⼆、选择题(每⼩题1分,共20分)1. 以下关于C程序执⾏叙述正确的是( A)A)程序的执⾏总是从main函数开始,在main函数结束B)程序的执⾏总是从程序的第⼀个函数开始,在main函数结束C)程序的执⾏总是从main函数开始,在程序的最后⼀个函数中结束A)计算机不能直接执⾏⽤C语⾔编写的源程序B)C程序经C编译程序编译后,⽣成后缀为.obj的⽂件是⼀个⼆进制⽂件C)后缀为.obj的⽂件,经连接程序⽣成后缀为.exe的⽂件是⼀个⼆进制⽂件D)后缀为.obj和.exe的⼆进制⽂件都可以直接运⾏3. 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A )A)k++ B) k+=1 C) ++k D) k+14. 若⽤数组名作为函数调⽤时的实参,则实际上传递给形参的是(A)。
C++面向对象程序设计清考试卷A
说明:1.试题须用碳素墨水钢笔集中填在方格内,答题纸另附并装订于后,字迹须工整清晰;2.试题须经教研室或系(部)领导认真审核并签署本人代号;3.学生只须在第一页试题纸上填写姓名等
说明:1.试题须用碳素墨水钢笔集中填在方格内,答题纸另附并装订于后,字迹须工整清晰;2.试题须经教研室或系(部)领导认真审核并签署本人代号;3.学生只须在第一页试题纸上填写姓名等
说明:1.试题须用碳素墨水钢笔集中填在方格内,答题纸另附并装订于后,字迹须工整清晰;2.试题须经教研室或系(部)领导认真审核并签署本人代号;3.学生只须在第一页试题纸上填写姓名等
说明:1.试题须用碳素墨水钢笔集中填在方格内,答题纸另附并装订于后,字迹须工整清晰;2.试题须经教研室或系(部)领导认真审核并签署本人代号;3.学生只须在第一页试题纸上填写姓名等。
面向对象的程序设计试题库
面向对象的程序设计一、单项选择题1、下面那种结构不是C++的控制结构()A 顺序结构B 选择结构C 循环结构D 判断结构答: D2、下列是C++语言中合法标识符的是()。
A.3three B.ifC._1oneD.while答:C3、下列是合法的C++语言语句的是()。
A.if(x>0) then x=x-1;else x=x+1;B.if(x>0) x=x-1;else x=x+1;C.if x>0 x=x-1;else x=x+1;D.if x>0 x=x-1;答:B4、下面那一种不是计算机内部表示整数的方法()A 二进制码B原码C 补码D反码答:A5、在C++语言中,下列数为合法的实数的是()。
A.5E-3B.5E-3.5C. E5D.-3.5E答:A6、C++语言中数据类型最大的是()A longB floatC intD char7、如果一个函数可以在定义中直接或间接的调用自己,这样的函数称为()。
A.函数声明B.嵌套函数C.定义函数D.递归函数答:D8、表达式0x55^0xB4的结果为()。
A.0xF5B.0x15C.0xE1D.0x1E答:C9、C++中,源代码文件后缀为()A .cppB .objC .exeD .c答: A10、0X5A&0XB7结果是()A 0X13B 0X12C 0X14D 0X15答: B二、填空题1、程序的基本控制结构包括()、()和()。
答:顺序结构,选择结构,循环结构2、用来解决问题的,与有限多个步骤组成的具体过程称为()。
答:算法3、整数类型变量a和b被初始化为3和10,则循环语句while(a<=b) a=a+2;共执行()次,执行完语句后a的值为(),b的的值为()。
答:4,11,10)。
答:警告信息,致命错误5、计算机中的数据可以分为()和()两大类。
答:数值型、字符型6、字符型数据有两种编码方法:()和()答:有美国国家标准局制定的ASCII码、IBM公司提出的EBCDIC码7、通过C++ 语言中的()机制,可以从现存类中构建其子类。
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进行初始化。
2009年春08级c期末试卷a卷
2009年08级C程序设计期末考试卷(A)[注意] 所有答案写在单张的答题卷上。
一、判断题(本题共10分,每小题1分,用A表示正确,用B表示错误。
)(1) C语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母。
B第一个字母必须是字母或下划线(2) C语言的变量在使用前都必须先定义,定义变量时要指定变量名和数据类型。
A(3) 如果a=1,b=2,c=3则表达式a=b==c的值等于3。
B 这个好像是先判断b和c是否相等,然后在决定结果是0还是1(4) 在程序设计中,经常用选择(又称分支)、循环和函数3种控制结构。
B不是函数而是顺序(5) 在C语言中,提供了3种循环语句:for、while、do-while。
A(6) 如果定义了int a[20],那么使用语句a[20]=10可以给数组元素a[10]初始化。
B对一维数组的初始化在书本122页有详细的介绍(7) 用关键字static声明的变量是全局变量,在整个程序的全部执行过程中都占用存储单元。
B对全局变量在书86页讲的很详细,在这里题目可能是把全局变量,局部变量与静态,动态的知识混淆了(8) 如果a=1,b=2,c=3,d=4则表达式a>b?c:d的值等于3。
B本题的结果应该是4,对这种条件表达式的内容在书113有详细的介绍(9) 如果a=15,那么执行a=a>>2以后,a的值就变成了3。
A对这种位移运算在书116页,有详细的介绍(10) Struct是定义结构类型的关键字,struct和它后面的结构名一起组成一个新的数据类型。
A对结构的内容在书本176页二、单选题(本题共20分,每小题2分)(11) 假设定义变量如下:int x;float y;以下输入语句中____C____是正确的。
[A]scanf(“%f%f”,&y,&x); [B] scanf(“%f%d”, y, x);[C] scanf(“%f%d”,&y,&x);[D]scanf(“%5.2f%2d”,&y,&x);在书本23页有相关的内容(12) 假设有以下定义:int a[5]={1,2,3,4,5},i=3,*p=a , *q=a; 则不能正确执行的语句是_B_______。
c面向对象程序设计期末考试题及完整参考答案
3.distanee/400.0改为distanee/400或者distanee/400.0f;
4.public float ISwimmable.Run(float distanee)改为float ISwimmable.Run(float distanee)
7.类索引函数的参数类型必须为或。
8.类对接口方法的实现时,在方法名称之前加上接口名,这叫做对接口方法的实现,此时这个方法是这个
类的员,不能通过类的实例来访问。
9.作为一种特殊的函数成员,重载类的操作符时,被重载的操作符必须被声明为公有的和,并通过在关键
字operator后跟操作符来声明。
二、判断题(每小题1分,共5分)
public virtual float Run( float dista nce)
{
retur n dista nce/Speed;
}
public Automobile(float speed)
{
Speed = speed;
}
}
public class Amphicar:Automobile, ISwimmable
Console.WriteLine("{0}空中飞行1000公里需{1}小时", plane, plane.Run(1000)); //调用IFlyable接口Run方法
Con sole.ReadL in e();
}
}
public in terface IFIyable
{
public float Run( float dista nee);
c面向对象程序设计试题和答案汇总
一、填空题(每空1分,共14分)1、观看以下程序:classpoint{public:voidshow({cout<<”point”<};voidmain({pointp1;point*p;p=&p1;_______________//经过对象p1接见show函数______________//经过指针p接见show函数}2、在C++类中可以包括______________、______________和______________三种拥有不相同接见控制权的成员。
3、定义类时,在类头中将使用要点字_____________来表示类定义的开始。
4、若是一个类中最少有一个纯虚函数,则该类称为________________。
5、C++类的组成包括数据成员和______________,友元_____(是、不是)该类的成员函数。
6、友员函数是用要点字____________修饰的非成员函数。
7、若有:inti;int&j=i;i=10;j=i+1;则i=__________,j=__________。
8、new的功能是____________________,delete的功能是____________________。
二、选择题(每题分,共30分1、以下特点中不是面向对象程序设计语言所特有的是()。
(A)数据封装(B)继承(C)多态性(D)模板2、()是给变量取一个别名,它引入了变量的赞成词。
(A)指针(B)引用(C)列举(D)构造3、类成员的接见权限中,()只能被本类的成员函数和其友元函数接见。
(A)share(B)public(C)private(D)protected4、关于构造函数,以下说法不正确的选项是()。
(A)构造函数名字和类名相同(B)构造函数在创办对象时自动执行(C)构造函数无任何函数返回种类(D)构造函数有且只有一个5、派生类可以接见其基类的()。
2008-2009年二级C语言笔试真题及答案2
}
main()
{ STU c={“Qian”,’p’,95.0,92.0};
f(c); printf(“%s,%c,%2.0f,%2.0f\n”,,c.sex,c.score[0],c.score[1]);
}
程序的运行结果是
typedef struct { char name[9]; char sex; float score[2]; } STU;
void f( STU a)
{ STU b={“Zhao”,’m’,85.0,90.0} ; int i;
strcpy(,);
a.sex=b.sex;
b 1 n1
B C D
f 3 h2
a 0 k1
n 2 x1
有关系R和S通过运算得到关系T,则所使用的运算为
A)并B)自然连接C)笛卡尔积D)交
(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为
for(k=0;k<10;k++)printf(“%d”,a[k]); printf(“\n”);
}
程序运行的结果是
A)0987654321 B)4321098765
C)5678901234 D)0987651234
(33)有以下程序
#include <stdio.h>
#include <string.h>
while(*b=*a) {b++;a++;}
}
《面向对象程序设计》习题答案2008-c++部分
(3) 静态成员属于 类 ,而不属于 对象 ,它由同一个类的所有对象共 同维护,为这些对象所共享。静态函数成员可以直接引用该类的 静态 数据 和函数成员,而不能直接引用 非静态数据成员 。对于公有的静 态函数成员,可以通过 类名 或 对象名 来调用;而一般的非静态函 数成员只能通过对象名来调用。 (4) 在实际程序设计中,一个源程序可划分为三个文件: 类声明文件 、类 实现文件 、 和 类的使用文件 。
面向对象程序设计习题
3-3 阅读程序题 (1) 以下是一个类中包含另一个类对象成员(类的组合) 的例子,试分析并给出以下程序的运行结果。
面向对象程序设计习题
void print() {cout<<“ 父 亲 的 年 龄 是 : "<<age<<endl; } Son &gets1() { cout<<"第一个"; return s1; } Son &gets2() { cout<<"第二个"; return s2; } }; void main() { Father f(10,5,38); f.print(); f.gets1().print(); f.gets2().print(); }
}
面向对象程序设计习题
void main() {
student stu[]={student("王红",18),student("吴伟",19),student("李丽",17)};
int i,min=0,max=0; for(i=1;i<3;i++) { if(compare(stu[max],stu[i])==-1) max=i; else if(compare(stu[max],stu[i])==1) min=i; } cout<<"最大年龄:"<<stu[max].get_age() <<",姓名:"<<stu[max].get_name()<<endl; cout<<"最小年龄:"<<stu[min].get_age() <<",姓名:"<<stu[min].get_name()<<endl;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
class C: public A {
表 public:virtual ~A( );
public:
public:
1
bool f(A &);
virtual ~B( );
virtual ~C( );
};
};
};
针对实际问题—“游戏中有多种怪物,如猫、狗等,每个怪物都可能与其它怪物发生战斗。”
进行面向对象程序设计时,可以抽象出怪物、猫、狗三个类,而且这些类及其成员函数与表
么修改后的程序一定还能正常执行。 8. 一个类中可定义多个转换函数。 9. 当异常被捕获后,可以直接处理该异常,也可以进行部分处理后,将该异常向上层再抛出。 10. 释放对象时,若对象含有指向虚函数表的指针,那么指向的虚函数表也会被自动释放。
三、指出下列程序代码片断中存在的不合理之处,并简要说明理由。(共 10 分,每题 2 分)
在等级不变的前提下减少经验分(至多减至 0),减少值为 5*鲨鱼的重量。考虑到游戏的趣味性,
将来可能还要增加其他类型的鱼以及相应的奖励或惩罚方法。
请根据上面的模型描述,制定合理的设计方案,请完整定义并实现小猫类,其中类的成员至少
要有一个非虚的成员函数 CatchFish,用来体现小猫钓鱼的行为过程。同时完整定义并实现其它
函数也必须是公有的
第1页共4页
8. 下列哪个函数可以定义成虚函数:
(A) 构造函数
(B) 拷贝构造函数
(C) 静态成员函数
(D) 常成员函数
9. 类 Inner 是类 Outer 的嵌套类,那么下列哪个不能成为类 Outer 的友元:
(A) 全局函数 void f( );
(B) 全局整型变量 int var;
private: Data d2;
};
};
class Base {
int main( )
public: Base(int x):d1(x)
{
{cout<<"Base cons."<<endl;}
Derived* pobj=new Derived(5);
virtual ~Base( ){cout<<"Base des."<<endl;}
{cout<<"Derived cons."<<endl;}
{Data::x=x; cout<<"Data cons."<<endl; }
~Derived( )
~Data( ) {cout<<"Data des."<<endl; }
{cout<<"Derived des."<<endl;}
private: int x;
protected:
protected:
virtual void NewFunc( ) = 0;
virtual void NewFunc ( )
private: A * pA;
{ /* 略*/ }
};
};
现请你使用文字,也描述一个类似“游戏中有多种怪物,…”这样的实际问题,使得该问题
是对应于表 2 代码的一个应用例子,同时请指出你所描述的问题中分别与 A、B、C、D、E、
一并交上来。
一、单选题(共 20 分,每题 2 分)
1. 下列关于 C++与 C 语言关系的描述中,错误的是:
(A) C++语言是 C 语言的超集
(B) C++语言与 C 语言是兼容的
(C) C++语言对 C 语言做了一些改进 (D) C++语言和 C 语言都支持面向对象程序设计
2. 下列不属于 ANSI C++关键字的是:
};
void Call(Base b)
void main( ) {
{
Base b(10); Derived d(10,40);
cout<<"sum="<<b.sum( )<<endl;
Call(b); Call(d文字描述一个实际问题。 (共 10 分)
class A {
class B: pubic A {
2009-2010 学年第 1 学期
2008 级《C++面向对象程序设计》期末考试试题(A 卷)
考试时间:2010 年 1 月 12 日
班级
学号
姓名
本试卷满分 100 分;
请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;
请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸
f、NewFunc 具有对应关系的事物或行为。
七、(共 10 分)定义一个抽象类 Stereo,包含纯虚函数 Volume(用来计算体积)。然后派生出立
方体 Cube 类、圆球体 Sphere 类、圆柱体 Cylinder 类,分别求其体积。各立体形状的相关
数据通过各类的构造函数设置。total( )则是一个通用的用以求不同立体形状的体积总和的全
int main( ) { A a[5]; return 0;
}
四、回答下列各题(共 10 分) 1. 举例说明拷贝构造函数在哪几种情况下被调用?(至少 3 种)(4 分)。 2. 类的 protected 访问权限下的成员和 private 访问权限下的成员的不同点是什么。(3 分) 3. 举例说明自定义赋值函数时,进行自赋值检查的必要性。(3 分)
数据成员同名。 4. 在 public 或 protected 继承方式下,派生类对象的地址均可安全地赋给一个指向基类类型的
指针型变量。 5. 若有语句 A*const p=new A; 那么通过指针 p 只能访问类 A 的常成员函数或静态成员函数。 6. 在基类的成员函数都是虚函数的情况下,该基类也称虚基类。 7. 将一个能够正常执行的程序中所有形如 void f(A&)的函数都改成 void f(const A&)形式,那
(A) struct
(B) template
(C) string
(D) catch
3. 假定 A 为一个类,则执行 A* px=new A(5); 语句时将自动调用该类的:
(A)无参构造函数
(B) 自定义有参构造函数
(C)赋值函数
(D) 系统提供的默认拷贝构造函数
4. 定义类 A 的静态成员函数 A& f(A &a)时,下列不能作为函数返回值的是:
必要的类。
(全卷完)
第4页 共4页
char[n]; 语法正确
(D) A 是一个类,执行语句块 A * p=new A[5]; delete[ ] p;不会产生任何输出结果
6. 派生类的构造函数的成员初始化列表中,不能包含:
(A) 基类的无参构造函数
(B) 基类的拷贝构造函数
(C) 基类中非静态对象成员的初始化
(D) 派生类中非静态对象成员的初始化
delete pobj;
private: Data d1;
return 0;
};
}
2.
#include<iostream.h>
class Derived: public Base {
class Base {
public:
public: Base(int i=0):x(i){}
Derived(int i=0,int j=0):Base(i),y(j){}
s[1]=new Sphere(6.0);
//实参为圆球体的半径
s[2]=new Cylinder(5.0,8.0); //实参为圆柱体的底面半径、高
float sum=total(s,3);
cout<<sum<<endl;
for(int i=0;i<3;i++) delete s[i];
}
八、(共 10 分)一个小猫钓鱼的游戏程序的基本需求如下:每个小猫有自己的等级(level)和经验
表 class C: public A {
{ /* 略*/ }
2 public: C(A* p): pA(p) { }
};
virtual ~C( );
class E: public C {
virtual void f( ) { pA->f( ); NewFunc( ); }
public: virtual ~E( );
局函数。(圆球体的体积公式为 V=4/3*PI*R*R*R)。
1)请根据下面主函数代码,给出各个类的定义和实现。
2)请根据下面主函数代码,给出 total( )函数的定义和实现。
void main( ) {
Stereo* s[3];
s[0]=new Cube(5.0,5.0,8.0); //实参为立方体的长、宽、高
分(exp),每累计获得 500 经验分,就升一级,同时经验分清 0;小猫每次只能钓一条鱼,如果
钓上一条章鱼(Octopus),经验分的增加值为 2*章鱼的重量;如果钓上一条鲸鱼(Whale),经验
分增加 200; 如果钓上一个金龟(Turtle),则等级直接升一级;如果钓上来一条鲨鱼(Shark),则
(A) a
(B) 类 A 中定义的类型为 A 的静态数据成员
(C) *this
(D) 函数 f 中用语句 A& b=a; 定义的量 b
5. 下列关于 C++动态内存管理的说法,正确的是: