2008级C 面向对象程序设计试题A 计算机学院2009年冬天

合集下载

2008级C语言程序设计试卷_A带答案(2009.6)

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月全国自学考试试题面向对象程序设计试卷

全国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面向对象程序设计期末考试题及答案

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卷)

计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面向对象程序设计考试试卷(详细讲解).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,含答案)

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年冬天

2008级C  面向对象程序设计试题A 计算机学院2009年冬天
数据成员同名。 4. 在 public 或 protected 继承方式下,派生类对象的地址均可安全地赋给一个指向基类类型的
指针型变量。 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卷

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)参考答案

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

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卷试题及答案

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卷

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面向对象程序设计期末考试题及完整参考答案

c面向对象程序设计期末考试题及完整参考答案
2.Iflyable接口定义中的public float Run(float distanee);,改为float Run(float distanee);
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面向对象程序设计试题和答案汇总

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

2008-2009年二级C语言笔试真题及答案2
for(i=0;i<2;i++) a.score[i]=b.score[i];
}
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++部分

《面向对象程序设计》习题答案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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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++动态内存管理的说法,正确的是:
相关文档
最新文档