07级面向对象程序设计语言A期末考试试题A

合集下载

07级面向对象程序设计语言A期末考试试题A

07级面向对象程序设计语言A期末考试试题A

07级面向对象程序设计语言A 期末考试试题A北京林业大学2007--2008学年第I学期试卷试卷名称:面向对象程序设计语言A(A卷)课程所在院系:信息学院考试班级学号姓名成绩试卷说明:1.本次考试为闭卷考试。

本试卷共计 4 页,共 4 大部分,请勿漏答;2.考试时间为120分钟,请掌握好答题时间;3.答题之前,请将试卷和答题纸上的考试班级、学号、姓名填写清楚;4.本试卷所有试题答案写在答题纸上;(特殊要求请详细说明)5.答题完毕,请将试卷和答题纸正面向外对叠交回,不得带出考场;6.考试中心提示:请你遵守考场纪律,参与公平竞争!一.单项选择题(每小题2分,共40分)说明:在每小题列出一组答案,分别标识为A~D,在四个选项中,只有一个是符合题目要求的,请将其代码填在表格题号对应的空白内。

错选或未选均无分。

(1)在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。

(A) main (B) MAIN (C) name (D) Main(2)以下程序段的输出结果是()。

void main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);cout<<k<<”,”<<m;}(A) 0,0 (B) 0,1 (C) 1,0 (D) 1,1第 2 页共4 页(3)存储以下数据,占用存储字节最多的是()。

(A) 0 (B)‘0’(C)“0”(D) 0.0(4)在C++中,常量‘C’和“C”两者()。

(A) 完全不同(B) 存储长度相同(C) 类型相同(D) 存储值相同(5)设x是一个bool型的逻辑量,y的值为10,则表达式 x && y的值为()。

(A) 1 (B) 0 (C) 与x值相同(D) 与x值相反(6)函数重载是指()。

(A) 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同(B) 两个以上的函数取相同的名字和具有相同的参数个数,但返回值的类型不同(C) 两个以上的函数名字不同,但形参的个数或类型相同(D) 两个以上的函数取相同的函数名,并且函数的返回类型相同(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、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。

2007级程序设计基础(一)期末考试参考答案A卷

2007级程序设计基础(一)期末考试参考答案A卷

2007级《程序设计基础(一)》期末考试参考答案(A卷)一、单选题:(每题1分,共20分)1. D2. A3. C4. B5. A6. C7. D8. A9. D10. B11. B12. B13. A14. B15. C16. B17.C 18. D19. C 20. C二、程序阅读题:(每题4分,共24分)1.j=82. 2 4 0 8 103.9*7*8*5*3*4.before swap a[0]=5,a[1]=7after swap a[0]=5,a[1]=75.61231116. 0 3 6 91 4 7 102 5 8 113 6 9 12三、改错题:(每题5分,共15分)1.#include <stdio.h> -----------1分void fun(char s[],char c); -----------1分void fun(char s[],char c) -----------1分{int i,j;for(i=j=0;s[i];i++)if(s[i]!= c)s[j++]=s[i]; ----------1分s[j]='\0'; ----------1分}2.#include <stdio.h>int plus(int ,int); ----------0.5分void main(){int x,y,z; ----------1分scanf("%d,%d",&x,&y); ----------1分z=plus(x,y); ----------0.5分printf("The sum is %d",z);}int plus(int a,int b) ----------1分{int c; ----------1分c=a+b;return c;}3.#include <stdio.h>int fun(float x[],int n){int i,c=0; ----------1分float xn=0; ----------1分for(i=0;i<n;i++)xn=xn+x[i]/n; ----------1分printf("average=%.2f\n",xn); ----------1分for(i=0;i<n;i++)if(x[i]>=xn) ----------1分c++;return c;}四、程序填空:(每空2 分,共16分)⑴flag*1.0/k ⑵flag*=-1(或flag=-flag)⑶top<=bottom ⑷(top+bottom)/2 ⑸key>list[mid] ⑹return mid (或index=mid;break;)⑺x ⑻x*(1-px(x,n-1))五、程序设计题:(第1小题5分,第2小题8分,第3小题12分,共25分)1.#include <stdio.h>void main(){int x,max;printf("input a group of integer end of 0:\n");scanf("%d",&x); ----------1分max=x; ----------1分while(x!=0) ----------1分{scanf("%d",&x);if(max<x) ----------1分max=x;}printf("max=%d\n",max); ----------1分}2.#include <stdio.h>void main(){int i,j,k; ----------1分for(i=1;i<100;i++) ----------1分for(j=1;j<10;j++) ----------2分{k=100-i-j; ----------1分if(i*0.4+j*4+k*0.2==40&&k>0) ----------2分printf("苹果%3d,西瓜%3d,梨%3d\n",i,j,k); ----------1分}}3.#include <stdio.h>#define N 10void sort(int [],int); ----------0.5分void insert(int [],int,int); ----------0.5分void main(){int i,key,a[N+1];for(i=0;i<N;i++) ----------1分scanf("%d",&a[i]);sort(a,N); ----------0.5分printf("排序后:\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n请输入要插入的数:");scanf("%d",&key);insert(a,key,N+1); ----------0.5分printf("\n插入后:\n");for(i=0;i<N+1;i++) ----------1分printf("%5d",a[i]);}void sort(int a[],int n){int i,j,temp;for(i=0;i<n-1;i++) ----------1分for(j=0;j<n-1-i;j++) ----------1分if(a[j]>a[j+1]) ----------1分{temp=a[j]; ----------1分a[j]=a[j+1];a[j+1]=temp;}}void insert(int a[],int k,int n){int i,j;for(i=0;i<n-1;i++) ----------1分if(k<a[i]) ----------1分break;for(j=n-1;j>i;j--) ----------1分a[j]=a[j-1];a[i]=k; ----------1分}。

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

《面向对象程序设计JA V A语言程序设计》期末考试试卷及部分答案2一、单选择题(每小题2分,共10分)1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。

A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。

A. 3B. 3. 5C. 4D. 53、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。

A. start( )B. stop( )C. init( )D. paint( )4、不允许作为类及类成员的访问控制符的是( C )。

A. publicB. privateC. staticD. protected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。

A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )二、填空题(每空格1分,共20分)1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。

2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet、类的子类并且存储该源程序文件的文件名为MyApplet 。

3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器 javac.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 . class 的字节码文件。

4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。

面向对象程序设计期末复习题及答案

面向对象程序设计期末复习题及答案

C++面向对象程序设计复习试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。

15题,每小题2分,共30分) [主要从作业题目中抽出来]2. 填空题。

(10题,每小题3分,共30分)3、阅读程序,写出程序运行结果。

【也称计算题】(3题,每小题5分,共15分)4、程序编制题【也称综合分析题】。

(第1、2题每题8分,第3题9分,共25分) 重点复习内容打*号是重点,打▲号是编程题出题范围* 基本概念,对象,消息,类。

面向对象系统特性,封装性,继承性,多态性。

*▲C++类的构成,类与对象,构造与析构,动态存储,类嵌套。

静态成员,对象数组,友元。

*函数重载。

运算符重载。

*引用定义与引用参数* 基类与派生类的定义。

* 基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。

多继承与虚基类。

*多态性与虚函数。

纯虚函数、抽象类。

*▲函数模板。

*▲使用类来定义对象并在程序中的应用题型样题填空题 1. 假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为_________。

答案:102.可以用p.a的形式访问派生类对象P的基类成员a,其中a是_________。

答案:公有继承的公有成员3.能作为重载函数的调用的依据是_________。

答案:参数个数、参数类型4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________答案:eof5.函数重载是指_________。

答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同6.在派生类中重新定义虚函数时必须在_________ 方面与基类保持一致。

答案:参数个数阅读程序例题【计算题】1.分析以下程序的执行结果#include<iostream.h>class Sample{int x,y;public:Sample() {x=y=0;}Sample(int a,int b) {x=a;y=b;}~Sample(){if(x==y)cout<<“x=y”<<endl;elsecout<<“x!=y”<<endl;}void disp(){cout<<“x=”<<x<<“,y”=<<y<<endl;}};void main(){Sample s1,s2(2,3);s1.disp();s2.disp();}解:x=0,y=0x=2,y=3x!=yx=y2.分析以下程序的执行结果#include<iostream.h>int add(int x,int y){return x+y;}int add(int x,int y,int z){return x+y+z;}void main(){int a=4,b=6,c=10;cout<<add(a,b)<<,<<add(a,b,c)<<endl; }解:10,20 3.分析以下程序执行结果#include<iostream.h>int add(int x,int y){return x+y;}double add(double x,double y){return x+y;}void main(){int a=4,b=6;double c=2.6,d=7.4;cout<<add(a,b)<<","<<add(c,d)<<endl; }解:10,104.分析以下程序执行的结果#include<iostream.h>class Sample{int x,y;public:Sample(){x=y=0;}Sample(int a,int b){x=a;y=b;}void disp(){cout<<"x="<<x<<",y="<<y<<endl;}};void main(){Sample s1,s2(1,2),s3(10,20);Sample *pa[3]={&s1,&s2,&s3};for(int i=0;i<3;i++)pa[i]->disp();}解:x=0,y=0x=1,y=2x=10,y=20 5. 分析以下程序的执行结果:#include<iostream.h>class base{int n;public:base(){};base (int a){cout << "constructing base class" << endl; n=a;cout << "n= "<< n << endl;}~base() { cout << "destructing base class" << endl; }};class subs : public base{int m;public:subs(int a, int b) : base(a){cout << "constructing sub class "<< endl; m=b;cout << "m= "<< m << endl;}~subs() { cout << "destructing sub class "<< endl; }};void main (){subs s(1,2);}解:constructing base classn= 1constructing sub classm= 2destructing sub classdestructing base class6.分析以下程序的执行结果:#include <iostream.h>class Sample{protected:int x;public:Sample() { x=0; }Sample(int val) { x=val; }void operator++() { x++; }};class Derived:public Sample{int y;public:Derived():Sample(){ y=0; }Derived(int val1,int val2):Sample(val1){ y=val2; }void operator--(){ x--;y--;}void disp(){cout<<"x="<< x << ",y=" << y << endl; }};void main (){Derived d(3,5);d.disp();d++;d.disp ();d--;d--;d.disp();}解:x=3,y=5x=4,y=5x=2,y=37 分析以下程序执行结果:#include <iostream.h>class A{public:A(char *s) { cout << s << endl; }~A() {}};class B:public A {public:B(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class C:public A{public:C(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class D:public B,public C{public:D(char *sl,char *s2,char *s3,char *s4) :B(sl,s2),C(sl,s3){cout << s4 << endl;}};void main (){D d("class A","class B","class C","class D");}解:class Aclass Bclass Aclass Cclass D 补充例题1.分析以下程序的执行结果#include<iostream.h>template <class T>T max(T x,T y){ return (x>y?x:y); }void main(){ cout<<max(2,5)<<“,”<<max(3.5,2.8)<<endl; }解答:5,3.5 2.分析以下程序的执行结果#include<iostream.h>void main(){int a[]={10,20,30,40},*pa=a;int *&pb=pa;pb++;cout<<*pa<<endl;}解答:输出为:20 3.分析以下程序的执行结果#include<iostream.h>template <class T>T abs(T x){ return (x>0?x:-x); }void main(){ cout<<abs(-3)<<“,”<<abs(-2.6)<<endl; }解答:输出为:3,2.64.分析以下程序的执行结果#include<iostream.h>class Sample{char c1,c2;public:Sample(char a){c2=(c1=a)-32;}void disp(){ cout<<c1<<“转换为”<<c2<<endl; } };void main(){Sample a('a'),b('b');a.disp();b.disp();}解答:a转换为Ab转换为B 5.分析以下程序的执行结果#include<iostream.h>void main(){int a;int &b=a; // 变量引用b=10;cout<<“a=”<<a<<endl;} 解答:输出为:a=10 6.分析以下程序的执行结果#include<iostream.h>class Sample{int x;public:Sample(){};Sample(int a){x=a;}Sample(Sample &a){x=a.x++ +10;}void disp(){cout<<“x=”<<x<<endl; }};void main(){ Sample s1(2),s2(s1);s1.disp();s2.disp();}解答:x=3 // ++运算的结果x=12 // 2+107.分析以下程序的执行结果#include<iostream.h>class Sample{int x;public:Sample(){};Sample(int a){x=a;}Sample(Sample &a){x=a.x+1;}void disp(){cout<<“x=”<<x<<endl; } };void main(){ Sample s1(2),s2(s1);s2.disp();}解答:输出为:x=3。

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

一、单选题1.在下列概念中,Java语言只保留了DA.运算符重载B.结构和联合C.指针D.方法重载2.下列类定义中,不正确的是BA.class x { .... } B.static class x implements y1,y2 { .... }C.public class x extends Applet { .... } D.class x extends y { .... }3.下列语句序列执行后,k 的值是Bint m=3, n=6, k=0;while( (m++) < (- - n) ) ++k;i++先把i的初值赋给表达式(i++),作为表达式(i++)的值,然后i自增1作为i的值。

如i=1,则表达式(i++)的值等于1,而i的值变为2。

++ii先自增1,再把自增后的值赋给表达式(++i)。

如i=1,则表达式(++i)的值等于2,i的值也为2,A.0 B.1 C.2 D.34.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是AA.a[0] = 7; B.i = i + 2 C.i++ - --j; D.a(0) = 66;5.Java语言的类间的继承关系是BA.多重的B.单重的C.线程的D.不能继承6.下列语句序列执行后,k 的值是Cint i=10, j=18, k=30;switch( j - i ) {case 8 : k++;case 9 : k+=2;case 10: k+=3;default : k/=j;}A.31 B.3 C.2 D.337.设有定义float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是CA.x > y || x > z B.z > ( y + x ) C.x != y D.x < y & ! ( x < z )8.下列修饰符中,定义类头时能使用的修饰符是CA.private B.static C.abstract D.protected9.设i、j、k为类x中定义的int型变量名,下列类x的构造函数中不正确的是BA.x( int m){ ... } B.void x( int m){ ... }C.x( int m, int n){ ... } D.x( int h,int m,int n){ ... }10.下列对封装性的描述中,错误的是 DA.封装体包含了属性和行为B.封装使得抽象的数据类型提高了可重用性C.被封装的某些信息在封装体外是不可见的D.封装体中的属性和行为的访问权限是相同的11.下列关于包的描述中,错误的是BA.包是若干个类的集合B.包是一种特殊的类型C.包是使用package语句创建的D.包有有名包和无名包两种12.下列关于Applet程序的描述中,错误的是 CA.Applet程序的主类必须是Applet类得子类B.Applet不是完整的独立程序C.Applet程序的主类中应有一个main()方法D.Applet的字节码文件必须嵌套在一个HTML文件中13.下列界面元素中,不是容器的是CA.Dialog B.Frame C.List D.Panel14.下列关于异常处理的描述中,错误的是DA.程序运行时异常由Java虚拟机自动进行处理B.使用try-catch-finally语句捕获异常C.使用throw语句抛出异常D.捕获到的异常只能在当前方法中处理,不能在其他方法中处理15.以下方法不属于迭代器(Iterator)接口所定义的方法的是DA.hasNext()B.next()C.remove()D.nextElement()16.主线程属于(C )A.守护线程B.Thread线程C.用户线程D.Runnable线程二、填空题1.三目运算符的3个操作数中,第一个操作数的类型必须是逻辑型的。

软件工程期末试卷A及解答

软件工程期末试卷A及解答

信息工程系 07级软件工程课程考试类型:闭卷 A卷答卷时间:90分钟一、判断题(每题1分,共20分)1.测试计划、测试用例和有关的分析报告一般不用长期保存。

()2.软件需求是指用户提出的目标软件系统在功能、性能、行为、设计约束等方面的期望。

()3.软件工程使用的软件支持工具能够自动或半自动地支持软件的开发、管理和文档的生成。

()4.面对日益增长的软件需求,人们显得力不从心。

往往是产生软件危机的原因之一。

()5.软件过程设计不用遵循“自上而下,逐步求精”的原则和单入口单出口的结构化设计思想。

()6.数据流图就是用来刻画数据流动和转换的信息系统建模技术。

()7.PDL经常表现为一种“混杂”形式的语言,它不允许自然语言如英语的词汇与某种结构化程序设计语言(如Pascal、C、Ada等)的语句结构交织在一起。

()8.内聚度标志一个模块内部各成分彼此结合的紧密程度,按其高低程度可分为七级,内聚度越低越好。

()9.质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动。

()10. 数据字典是数据流图中的数据流动,加工、数据存储、数据的源和终点进行详细定义。

()11. 软件是指用程序设计语言编写的程序,软件开发实际上就是编写程序代码。

()12. 模块化程序设计中,模块越小,模块化的优点越明显。

一般来说,模块的大小都在10行以下。

()13. 集成测试主要由用户来完成。

()14.只有了解用户、了解任务,才能设计出好的用户界面。

()15.开发一个软件项目总存在某些不确定性,即存在风险。

有些风险如果控制得不好,可能导致软件工程第1页(共8页)灾难性的后果。

()16.一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。

()17.快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。

()18.数据输入的一般准则中包括尽量增加用户输入的动作。

面向对象程序设计(JAVA)期末考试试卷(A卷)

面向对象程序设计(JAVA)期末考试试卷(A卷)

5.import
java.io.* ; public class Reverse { public static void main(String args[ ]) { int i , n =10 ,sum=0; int a[ ] = new int[10]; for ( i = 0 ; i < n ; i ++ ) try { BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); a[i] = Integer.parseInt(br.readLine( )); // 输入一个整数 } catch ( IOException e ) { } ; for ( i = n-1 ; i >= 0 ; i ―― ) sum=sum+I; System.out.print(sum); } } 程序的功能是:
} 程序的输出结果为:__
_
2. abstract class A{
abstract void show(); abstract void show(int i); } Class B extends A{ int x; void show(){ System.out.print("x="+x++); } void show(int i){ x=++i; System.out.println("x="+x++); } } Class AbstractDemo{ public static void main(String[] args) {B b=new B(); b.show(); b.show(10); } } 程序的输出结果是:

2007A试卷E

2007A试卷E

浙江大学2006-2007学年夏季学期《程序设计基础及实验》课程期末考试试卷(A)开课学院:计算机学院, 考试形式:闭卷考试时间:2007年7月7日, 所需时间:120 分钟,任课教师考生姓名:学号:专业:(注意:答题内容必须写在答题卷上,写在本试题卷上无效) Section 1: Single Choice(2 marks for each item, total 20 marks)1. According to the declaration: char ch; the assignment expression ______is correct.A.ch=‟\412‟B.ch=255 C.ch=‟\08‟D.ch=‟\‟2. According to the declarations: float x=16/5/2.0, y=16/5.0/2; the values of x and y is ______respectively.A.1.5 1.6 B.1.6 1.6 C.1.5 1.5 D.1.6 1.53. According to the declarations: int a [10], *p=a; the expression *p++ is equivalent to _____.A.a[0]++ B.a[1]++ C.*(p++) D.(*p)++4. In the following initializations/assignments, _____ is correct.A.char s[10]; s=”hello!”;B.int x[2][]={1,2,4,6};C.int x[][3]={1,2,3,4,5,6}; D.char s[10]; s[]=”hello!”;5. In the following statements, _____ will print out “%d” .A.printf(“%d”); B.printf(“%%d”); C.printf(“\%d”); D.printf(“%%%d”)6. The following code fragment prints out _____.int x=1, y=012;printf(“%d”,y*x++);A.12 B.10 C.20 D.247. The following code fragment prints out _____.int a=1,b=2,c=2,t;while(a<b<c) { t=a; a=b; b=t; c--; }printf(“%d,%d,%d”,a,b,c);A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,18. In the following figure, the shading regions of the axis can be described as expression_______.Xa b c《C Programming》TEST PAPER, July 7, 2007 1 / 10A.(x<=a)&&(x>=b)&&(x<=c) B.(x<=a)||(b<=x<=c)C.(x<=a)||(x>=b)&&(x<=c) D.(x<=a)&&(b<=x<=c)9. The following code fragment will print out _______.int x = -3, y = 2;if(x>y);x = -x;if(x<y)y = -y;printf("x=%d,y=%d\n", x, y);A.x=3,y=-2 B.x=3,y=2 C.x=-3,y=2 D.x=-3,y=-210. According to the declaration: int x[5]; _______of the following operations can increase thevalue of the second element of x by 1 (Assume that x[0] is counted as 1st element).A.x[2]++; B.int p=x[1];p++;C.x++; (*x)++; D.int p=x+1; (*p)++;Section 2: Fill in the blanks(2 marks for each item, total 30 marks)1. The value of expression 13&(6<<1) is __12___.2. The following for loop statement will print out: 0 1 2 0 1 2 0 1 2.for( i=1; i<=9; i++ ) printf("%2d", ___(i-1)%3____);3. The value of expression sizeof("%%\\%dxyz") is___9___.4. The following code fragment prints out __23#1B#___.printf("%d# %X#", 027, 27);5. According to the declaration: char s[]={'s', 't', 'r', '0', 'l', 'e', 'n', 0, '=', '\0'}; the value ofexpression strlen(s+1) is __6___.6. The following code fragment prints out __*2*#*3*#___.unsigned char x=255,y=‟\1‟;switch(!!x) {case 0: printf("*0*#");break;case 1:switch(y) {case 0: printf("*1*#");break;case 1: printf("*2*#");break;}default: printf("*3*#");}7. According to the function declarition: void main(int argc, char *argv[]) in the file learn.c,run the command: learn the C programming language, the value of expression *(*(argv+argc-1)+4) is ____u__.8. The following program prints out __3#2#___.#include <stdio.h>《C Programming》TEST PAPER, July 7, 2007 2 / 10void f(int x,int y){int t=x;x=y; y=t;}void main(){int x=3, y=2;f(y, x);printf("%d#%d#", x, y);}9. The following program prints out __6#21#___.# include <stdio.h>int s;int f(int m){static int k=0;for(; k<=m; k++) s++;return s;}void main( ){int s=1;s=f(2)+f(2);printf("%d#%d#", s, f(20));}10. The following program prints out __89___.#include <stdio.h>int f(int n){if (n > 1)return f(n-1)+f(n-2);return 1;}int main(){printf("%d", f(10));return 0;}《C Programming》TEST PAPER, July 7, 2007 3 / 1011. The following program prints out ___15__.#include <stdio.h>#define P(a) a*a+5#define Q(a, b) a*bint main(){printf("%d", P(3)/Q(2, 3));return 0;}12. The following code fragment prints out __1___.char *p=””;printf(“%d”, p==NULL?0:1);13. Use typedef to define a pointer type PA that points to an one-dimension array which contains10 elements of type int ______typedef int *PA[10];________.14. For the following array a, the value of *(a[1]+4) is __8___.int a[][3]={1,2,3,4,5,6,7,8,9};15. For the following definition, the value of s[1].b/++p->a is __2___.struct {int a;int b;} s[2]={2,4,6,8}, *p=s;Section 3: Read each of the following programs and answer questions (5marks for each item, total marks: 30)1. The output of the following program is__a=113#b=72#___.#include <stdio.h>int main(){int a = 57, b = 113;b^=a ^= b ^= a ^= b;printf("a=%d#b=%d#", a, b);return 0;}2. When input: 26734<ENTER>, the output of the following program is __4___.#include <stdio.h>#include <string.h>int main(){char n[1000];《C Programming》TEST PAPER, July 7, 2007 4 / 10int i, tmp1, tmp2;scanf("%s", n);i = 0;tmp1 = 0;while(n[i]!='\0') {tmp1 += n[i] - '0';i++;}while(tmp1>9) {tmp2 = tmp1;tmp1 = 0;while(tmp2!=0) {tmp1 += tmp2%10;tmp2 /= 10;}}printf("%d\n", tmp1);return 0;}3. The output of the following program is __POINT#ENTER#ST#EW#___.#include <stdio.h>char *c[] = {"ENTER", "NEW", "POINT", "FIRST"};char **cp[]= {c+3, c+2, c+1, c};char ***cpp = cp;main(){printf("%s#", **++cpp);printf("%s#", *--*++cpp);printf("%s#", *cpp[-2]+3);printf("%s#", cpp[-1][-1]+1);}4. The output of the following program is __14#12#10#10#8#6#4#2#0#0#___.#include <stdio.h>void f(int A[], int n, int x){int t, i;i=n; A[n+1]=x;while ((i>=0) && (A[i]>A[i+1])) {t=A[i];A[i]=A[i+1];《C Programming》TEST PAPER, July 7, 2007 5 / 10A[i+1]=t;i --;}n++;}int A[10]={0,2,4,6,8,10,12,14,10};void main(){int n=sizeof(A)/sizeof(A[0]);f(A,7,A[8]);f(A,8,A[9]);while (n--)printf(“%d#”,A[n]);}5. The output of the following program is ____zyxwvedcba__.#include <stdio.h>#define NUM 5void p1(char v[]){int i,j,temp;for (i=1; i<NUM; i++)for(j=i-1; j>=0&&v[j]<v[j+1]; j--)temp = v[j], v[j]=v[j+1], v[j+1]=temp;}void p2(char v1[], char v2[]){int i=0, j=0;while (i<NUM && j<NUM)if (v1[i]>v2[j]) putchar(v1[i++]);else putchar(v2[j++]);while (i<NUM) putchar(v1[i++]);while (j<NUM) putchar(v2[j++]);}void main(){char s[2][5]={…v‟,‟d‟,‟x‟,‟c‟,‟b‟,‟e‟,‟a‟,‟y‟,‟z‟,‟w‟};p1(s[0]);p1(s[1]);p2(s[0],s[1]);《C Programming》TEST PAPER, July 7, 2007 6 / 10}6. The text file a.txt contains the following three lines(<ENTER> for the Enter key): Zhejiang University<ENTER>Programming <ENTER>Hello, World!In the following command-line program prog.c, the output of the program after running as “p rog –n a.txt” is __1: Zhejiang University#2:Programming#3:Hello,world!#_____.#include <stdio.h>#include <string.h>void main(int argc, char *argv[]){int flag=0,count=0;FILE *fp;char *file, c;if (argc == 2)file = argv[1];else if (argc == 3 && strcmp(argv[1], “-n”) == 0) {file = argv[2]; flag = 1;} else {printf("Usage: prog [-n] filename\n");exit(-1);}if ((fp=fopen(file, “r”)) == NULL) {printf(“Cannot open file ……%s‟‟\n”, file);exit(-1);}while ((c=fgetc(fp))!=EOF) {if (flag && (count == 0 || c == …\n‟))printf(“%d:”, ++count);putchar (c!=‟\n‟?c:‟#‟);}fclose(fp);}Section 4: According to the specification, complete each program (2 marks for each blank, total: 20 marks)《C Programming》TEST PAPER, July 7, 20077 / 101. Given a simple chain list, which contains a special head node header with no value (This listis null if header->next==NULL). The following program fragment inserts value node to the list, makes its value be greater than that of its previous node,and be less than or be equal to that of its next node. Fill in the blanks.#include <stdio.h>#include <stdlib.h>struct student{int num;struct student *next;};void insert(struct student *header, int value){struct student *tmp, *stud;stud = (struct student *) malloc(sizeof(struct student));_____(1) ____; stud->num=valuetmp = header;while( tmp->next != NULL ) {if(stud->num <= tmp->next->num) {stud->next = tmp->next;_____(2) ____; tmp->next=studreturn;}tmp = tmp->next;}tmp->next = stud;_____(3) ____; stud->next=NULL}2. There is a text file, which contains a number (less than 100) of positive decimal integers (一批不超过100个的十进制正整数). Write a command-line program prog.c to read in these numbers, count the average value of all even numbers(偶数), and find out the number(s) which sum of all digits of each number (各位数字之和) is greater than 10, and store these results above into the other text file. Requirements: take the input and output file names as command-line parameters. If the output file name is omited(省略), the default output will be the standard terminal. Fill in the blanks.For example:The command-line is:prog infile.txt outfile.txt《C Programming》TEST PAPER, July 7, 20078 / 10The input text file infile.txt contains the following numbers:123 234 345 456 567 678 789 890 901 012The result be stored in the output file outfile.txt will contain the followings:454.00345 456 567 678 789 890#include <stdio.h>#define MAX_NUM 100int ds(int num) /*count whether the sum of each digits of num is greater than 10 */{int s = 0;while (num > 0) {___(4) __;num /= 10;}if (s > 10)return(1);return(0);}void main(int argc, char *argv[]){int a[MAX_NUM], n, k, i, sum;FILE *fp_in, *fp_out;float aver;if (argc < 2) {printf(“Usage: prog in_file [out_file]\n”);exit(0);}if (_____(5) ____ ) {printf(“Cannot open input file %s\n”, argv[1]);exit(0);}if (argc > 2) {if ((fp_out=fopen(argv[2], “w”)) == NULL) {printf(“Cannot open output file %s\n”, argv[2]);fp_out = stdout;}} else《C Programming》TEST PAPER, July 7, 20079 / 10_____(6) ____;n = 0;while (!feof(fp_in)) {/*feof() return 1 if end of file has been reached, return 0 otherwise*/ _____(7) ____;n++;}fclose(fp_in);sum = 0; k = 0;for (i = 0; i < n; i++) {if (a[i]%2 == 0) {sum += a[i];k++;}}_______(8) ______;fprintf(fp_out, “%.2f\n”, aver);for (i = 0; i < n; i++)if (ds(a[i]))_______(9) ______;if (_____(10) ____)fclose(fp_out);}《C Programming》TEST PAPER, July 7, 200710 / 10。

Java面向对象程序设计期末考试试卷A

Java面向对象程序设计期末考试试卷A

A) switch (a+1) B) switch a C) switch [a+b] D) switch (a*3.0)8、哪个关键字可以抛出异常?( )A) transient B) finally C )throw D) static9、下列代码哪一行会出错: ( )1) public void modify() {2) int i, j, k;3) i = 100;4) while ( i > 0 ) {5) j = i * 2;6) System.out.println(j);7) k++;8) i--; }9) }A) line 4 B) line 6 C) line 7 D) line 810.、能作为类及其成员的修饰符是:( )A) public B) class C) protect D) interface11.、用于定义接口时声明接口名的关键字是:( )A) package B) class C) implements D) interface12、已知类关系如下:class Employee{…};class Manager extends Employee{…};则以下关于创建对象的语句不正确的是:( )A) Employee e=new Manager();B) Employee m=new Employee ();C) Manager c=new Manager();D) Manager d=new Employee();13、指出下列哪个方法与方法public void add(int a){}为不合理的重载方法。

( )A) public void add(int a) B) public void add(String a)C) public void add(int a,int b) D) public void add(float a)14、建立文件"file.txt" 的字节输入流的语句是:()A)InputStream in=new InputStream("file.txt");B)InputStream in=new FileReader("file.txt");C)FileInputStream in=new FileOutputStream("file.txt");D)FileInputStream in=new FileInputStream("file.txt");15、下面的说法不正确的是()。

面向对象程序设计-试卷-A(附答案)

面向对象程序设计-试卷-A(附答案)

面向对象程序设计-试卷-A(附答案)本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March2012 --2013学年第二学期《面向对象程序设计》试卷开课单位:计算机学院,考试形式:闭卷,允许带入场对应的答题表格中)1、在类定义的外部,可以被访问的成员有()A、所有类成员B、private的类成员C、public或private的类成员D、public的类成员2、下列关于C++语言类的描述中错误的是( ) 。

A 、类用于描述事物的属性和对事物的操作B、类与类之间通过封装而具有明确的独立性C、类与类之间必须是平等的关系,而不能组成层次结构D、类与类之间可以通过一些方法进行通信和联络3、下列数组定义中,不正确的是()。

A、 int x[1][3];B、 int x[2][2]={1,2,3};C、 int x[2][]={1,2,3,4 };D、 int x[][2]={1,2,3,4 }4、定义析构函数时,应该注意:()A、其名与类名完全相同B、返回类型是void类型C、无形参,也不可重载D、函数体中必须有delete语句5、下列函数中,正确的递归函数是()。

A 、int Fun(int n){ if(n<1) return 1; else return n*Fun(n+1); }B 、int Fun(int n){ if (abs(n)<1) return 1; else return n*Fun(n/2); }C 、int Fun(int n){ if(n>1) return 1; else return n*Fun(n*2); }D、 int Fun(int n){ if(n>1) return 1; else return n*Fun(n-1); }6、在C++中编译器所生成的文件的扩展名为()[答案修改过]A、 .cppB、 .objC、 .libD、 .exe7、派生类的对象对它的基类成员中的()是可以访问A、公有继承的公有成员B、公有继承的私有成员C、公有继承的保护成员D、私有继承的公有成员8. C++设置虚基类的目的是( )A、消除二义性B、简化程序C、提高运行效率D、减少目标代码9. 以下关于this指针的叙述中正确的是:()A、任何与类相关的函数都有this指针;B、类的成员函数都有this指针;C、类的友员函数都有this指针;D、类的非静态成员函数才有this指针;10实现运行时的多态性采用( )A、重载函数B、构造函数C、析构函数D、虚函数11、若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=&a[5];则( ) 不是对a数组元素的正确引用(其中0≤i<10)A、p[i]B、 *(*(p+i) )C、a[p-a]D、* (&a[i])12、int Func(int,int);不可与下列哪个函数构成重载()A、int Func(int,int,int);B、double Func(int,int);C、double Func(double,double);D、double Func(int,double);13、局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用()提供对全局变量的访问。

试题面向对象分析与设计试卷(A)及答案

试题面向对象分析与设计试卷(A)及答案

华南农业大学期末考试试卷(A卷)-答案2007学年第1学期考试科目:面向对象分析与设计考试类型:(闭卷)考试时间:120 分钟学号姓名年级专业一、判断题(每题1分,共10分。

对的标“T”,错的标“F”,将答案写入下表)1. 一个状态图最多只能由一个初态和一个终态。

(F)2. 协作图中的消息必须要有消息顺序号。

(T)3. 两个参与者(actor)之间可以有包含(include)关系、扩展(extend)关系或泛化(generalization)关系,而包含关系和扩展关系是依赖(dependency)关系的版型。

(F)4. 参与者(actor)和用例(use case)之间的关系是关联(association)关系。

(T)5. 类A和类B之间的关系如图1所示,则称类B中的getName()方法是对类A中的 getName()方法的重载(overload)。

(F)图1 getName()方法之间的关系图2 活动图6. 如图2所示,活动Gesture和Stream audio可以并发进行。

(T)7. 一个软件系统,如果只有源代码,缺乏其他相应的辅助文档,如缺乏顺序图和类图,则可以利用Rose进行逆向工程得到顺序图和类图,但得到的顺序图和类图会比较简单。

(F)8. CMM描述了五个级别的软件过程成熟度,即初始级、可重复级、已定义、已管理级、优化级。

(T)9. UML由用例视图、物理视图、组件视图、进度视图和配置视图组成。

(F)10. 在设计类图时,可以不用对类图中的每个关联进行命名,但如果需要命名的话,最好用一个“动词”给关联命名。

(T)二、单项选择题(每题2分,共30分。

将正确答案填入下表)1. 一个设计得好的OO系统具有(B)A. 低内聚、低耦合的特征B. 高内聚、低耦合的特征C. 高内聚、高耦合的特征D. 低内聚、高耦合的特征2.下面()不是UML的基本构成元素。

(A)A. 控制语言B. 基本构造块C. 规则D. 公共机制3. 面向对象的特点主要概括为(C)。

面向对象程序设计JAVA期末考试试卷A卷

面向对象程序设计JAVA期末考试试卷A卷

课程代码: 座位号:新疆大学20 -20 学年度第二学期期末考试《面向对象程序设计》试卷姓名: 学号: 专业:学院: 班级:20 年 月 日一、单选题(10小题,共10分) 1.下列选项中,用于在定义子类时声明父类名的关键字是 【 】A .interfaceB . packageC . extendsD . class2.在以下哪种情况下可以获得缺省构造器? 【 】A .当作任何类的定义时B .当类没有其它构造器时C .当定义至少一个构造器的时D .从不需要3.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量?【 】 A .不能引用,必须改名,使它们的名称不相同B .在成员变量前加this ,使用this 访问该成员变量C .在成员变量前加super ,使用super 访问该成员变量D .不影响,系统可以自己区分4.在异常处理中,如释放资源、关闭文件、关闭数据库等由哪个子句来完成【 】A .try 子句B .catch 子句C .finally 子句D .throw 子句5.下面哪个流类属于面向字符的输入流 【 】A .BufferedWriterB .FileInputStreamC .ObjectInputStreamD .InputStreamReader6.在Java 中,由Java 编译器自动导入,而无需在程序中用import 导入的包是【 】。

A .java.appletB .java.awtC .java.utilD .ng7.下面程序定义了一个类,关于该类说法正确的是 【 】Abstract class abstractClass{……}A. 该类能调用new abstractClass(),方法实例化为一个对象B. 该类不能被继承C. 该类的方法都不能被重载D. 以上说法都不对8.已知有下面类的说明:public class X5_1_1 extends x{private float f =10.6f;int i=16;static int si=10;public static void main(String[] args){X5_1_1 x=new X5_1_1();}}在main()方法中,下面哪条语句的用法是正确的?【】A.x.f B.this.si C.X5_1_1.i D.X5_1_1.f9.下列说法中,错误的一项是【】A.Thread类中没有定义run()方法B.可以通过继承Thread类来创建线程C.Runnable接口中定义了run()方法D.可以通过实现Runnable接口创建线程10.当一个Statement对象要执行一个查询类的SQL语句,调用的方法是【】A. executeQueryB.executeC. executeUpdatemit二、填空题(10小题,共10分)1.Java应用程序中有多个类时,java命令后的类名必须是包含了___________方法的那个类的名字。

07级Java语言程序设计试卷(A卷)

07级Java语言程序设计试卷(A卷)
C. setforeground() D. setForeground()
22.Font类的构造方法可以有三个参数,第一个参数和第三个参数分别表示__________。
A. 字体和字色B. 字体和字号C. 字号和字型D. 字体和字型
23.把声音文件存到AudioClip类对象的方法是__________。
20.Graphics类中用于填充矩形的方法是__________。
A. draw()B. drawOval() C. drawRect() D. fillRect()
21.灰色是图形的默认背景颜色。要设置图形背景颜色,应使用的方法是__________。
A. getbackGround() B. setBackground()
A. 事件源 B. 容器C. 窗口 D. 事件组件
二、填空题:20%(每空各1分,共20分)
1.Java源程序文件名的后缀是______,Java字节码文件名的后缀是______。
2.Java程序由______组成,每个程序有一个主类,Java程序文件名应与______类的名称相同。
3.根据占用内存长度将浮点常量分为______和______两种。
A. getAudioClip() B. getImage() C. getHeight() D. getWidth()
24.DataInputStream中包括各种类型数据的读方法。其中,读字符型数据的方法是__________。
A. readChar()B. readDouble()
C. readByte()D. readInt()
}
(2) abstract interface Printable{
void print();

07级Java语言程序设计试卷(A卷)答案

07级Java语言程序设计试卷(A卷)答案

08级《Java程序设计》期末试卷A(答案)一、单项选择题:30%(每题各1分,共30分)二、填空题:20%(每空各1分,共20分)1、java、class2、类、主3、float、double4、4、85、import6、重载7、覆盖、自己的、super8、Object 、equals9、新建、就绪、运行、阻塞、消亡三、判断题:15%(正确的打“√”错误的打“×”每题各1分,共15分)1、(×)2、(√)3、(×)4、(√)5、(×)6、(×)7、(×)8、(×)9、(×) 10、(√) 11、(√) 12、(√) 13、(×) 14、(×) 15、(√)四、简答题:15%(每题5分,共15分)1、接口的定义中,正确的是42、wait():使一个线程处于等待状态,并且释放所持有的对象的lock.sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。

Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

3、Meal()Lunch()PortableLunch()Bread()Cheese()Lettuce()Sandwich()五、编程题:20%(每题10分,共20分)1、import java.awt.*;import java.applet.*;import java.awt.event.*;public class TextEventDemo extends Applet implements ActionListener {TextField tf1,tf2;public void init(){tf1=new TextField(10);tf2=new TextField(10);setLayout(new GridLayout(2,1));add(tf1);add(tf2);tf1.addActionListener(this);}public void actionPerformed(ActionEvent e){if (e.getSource()==tf1)tf2.setText(tf1.getText());}}2、客户端程序:import java.io.*;import .*;public class Client1{public static void main(String[] args) throws Exception{Socket s=new Socket("127.0.0.1",4007);BufferedReader in=new BufferedReader(new InputStreamReader(System.in));BufferedReader is=new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter pw=new PrintWriter(newBufferedWriter(new OutputStreamWriter(s.getOutputStream()))); System.out.println("please input radius of circle:");String s1=in.readLine();pw.println(s1);pw.flush();s1=is.readLine();System.out.println("The area of circle is :"+s1);in.close(); is.close(); pw.close();}}服务器端程序:import java.io.*;import .*;public class Server1{public static void main(String[] args) throws Exception{ServerSocket ss=new ServerSocket(4007);Socket s=ss.accept();BufferedReader is=new BufferedReader(new InputStreamReader(s.getInputStream()));PrintWriter pw=new PrintWriter(newBufferedWriter(new OutputStreamWriter(s.getOutputStream())));String s1;s1=is.readLine();Double r=Double.parseDouble(s1);Double area=Math.PI*r*r;pw.println(""+area);pw.flush(); is.close(); pw.close();}}。

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2

《面向对象程序设计J A V A语言程序设计》期末考试试题及部分答案2------------------------------------------作者------------------------------------------日期年~ 年上学期 《面向对象程序设计♉☺♋❖♋》期末考试试题一、选择题(每道题只有一个正确答案,每小题 分,共 分) 道题、关于☺♋❖♋语言叙述错误的是:(  )✍✍ ✌.☺♋❖♋语言具有跨平台性✍✍ .☺♋❖♋是一种面向对象的语言✍✍ .☺♋❖♋语言中的类可以多继承✍✍ .☺♋❖♋的垃圾收集机制自动回收程序已不再使用的对象、以下叙述正确的是:(  )的确台♋✍✍ ✌.构造方法必须是☐◆♌●♓♍方法✍✍ .❍♋♓⏹方法必须是☐◆♌●♓♍方法✍✍ .☺♋❖♋应用程序的文件名可以是任意的✍✍ .构造方法应该声明为❖☐♓♎类型、关于☺♋❖♋中数据类型叙述正确的是:(  )✍✍ ✌、整型数据在不同平台下长度不同✍✍ .♌☐☐●♏♋⏹类型数据只有 个值,♦❒◆♏和♐♋●♦♏✍✍ .数组属于简单数据类型✍✍ .☺♋❖♋中的指针类型和 语言的一样、设 ♓⏹♦ ⌧♐●☐♋♦ ⍓,则表达式 ⌧  ⍓的值是:(  ) ✌....以上都不是、以下语句有语法错的是:( ✌ )✌.♓⏹♦ ⌧;⍓; .♐☐❒ ☎♓⏹♦ ⌧⍓;⌧;⌧✆.♦♒♓●♏ ☎⌧✆.♐☐❒☎ ✆、关于类和对象的叙述正确的是:( ✌ )✍✍ ✌.☺♋❖♋的类分为两大部分:系统定义的类和用户自定义的类✍✍ .类的静态属性和全局变量的概念完全一样,只是表达形式不同✍✍ .类的成员至少有一个属性和一个方法✍✍ .类是对象的实例化、以下有关构造方法的说法,正确的是:( ✌ )✌.一个类的构造方法可以有多个.构造方法在类定义时被调用.构造方法只能由对象中的其它方法调用.构造方法可以和类同名,也可以和类名不同、以下有关类的继承的叙述中,正确的是:(  )✌.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性 .子类只能继承父类的方法,不能继承父类的属性.子类只能继承父类的非私有属性,不能继承父类的方法.子类不能继承父类的私有属性、下列属于容器的组件有:(  )✌.☺ ◆♦♦☐⏹.☺ ♋⏹♏. ♋⏹❖♋♦.☺❆♏⌧♦✌❒♏♋、❖☐♓♎ 的含义:(  )✌.方法体为空.定义的方法没有形参.定义的方法没有返回值.方法的返回值不能参加算术运算、关于☺♋❖♋中异常的叙述正确的是:(  )✌.异常是程序编写过程中代码的语法错误.异常是程序编写过程中代码的逻辑错误.异常出现后程序的运行马上中止.异常是可以捕获和处理的、所有的异常类皆继承哪一个类?(  )✌. ♋❖♋♓☐☜⌧♍♏☐♦♓☐⏹. ♋❖♋●♋⏹♑❆♒❒☐♦♋♌●♏. ♋❖♋●♋⏹♑☜⌧♍♏☐♦♓☐⏹. ♋❖♋●♋⏹♑☜❒❒☐❒、下面哪个不是 ♋❖♋语言中的关键字?(  )✌.●☐⏹♑.♦♓♏☐♐.♓⏹♦♦♋⏹♍♏☐♐.♍☐⏹♦♦、为实现进程之间的通信,需要使用下列那种流才合适?( )✌. ♋♦♋ ♦♦❒♏♋❍.☞♓●♏ ♦♦❒♏♋❍. ◆♐♐♏❒♏♎ ♦♦❒♏♋❍. ♓☐♏♎ ♦♦❒♏♋❍、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?( )✌.✌♍♦♓☐⏹☹♓♦♦♏⏹♏❒. ☐◆♦♏☹♓♦♦♏⏹♏❒. ☐◆♦♏☐♦♓☐⏹☹♓♦♦♏❒⏹.✋♦♏❍☹♓♦♦♏⏹♏❒二、填空题(每空 分,共 分)、面向对象程序设计所具有的基本特征是:♉♉♉抽象性♉♉♉,♉封装性♉♉♉,♉继承性♉♉,♉多态性♉♉、数组⌧定义如下♓⏹♦ ⌧☯ ☯ ⏹♏♦ ♓⏹♦☯☯则 ⌧●♏⏹♑♦♒ 的值为♉♉♉♉♉♉♉♉♉♉♉♉,⌧☯●♏⏹♑♦♒ 的值为♉♉♉♉♉♉♉♉♉♉♉♉。

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

北京林业大学2007--2008学年第I学期试卷试卷名称:面向对象程序设计语言A(A卷)课程所在院系:信息学院考试班级学号姓名成绩试卷说明:1.本次考试为闭卷考试。

本试卷共计 4 页,共 4 大部分,请勿漏答;2.考试时间为120分钟,请掌握好答题时间;3.答题之前,请将试卷和答题纸上的考试班级、学号、姓名填写清楚;4.本试卷所有试题答案写在答题纸上;(特殊要求请详细说明)5.答题完毕,请将试卷和答题纸正面向外对叠交回,不得带出考场;6.考试中心提示:请你遵守考场纪律,参与公平竞争!一.单项选择题(每小题2分,共40分)说明:在每小题列出一组答案,分别标识为A~D,在四个选项中,只有一个是符合题目要求的,请将其代码填在表格题号对应的空白内。

错选或未选均无分。

(1)在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。

(A) main (B) MAIN (C) name (D) Main(2)以下程序段的输出结果是()。

void main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);cout<<k<<”,”<<m;}(A) 0,0 (B) 0,1 (C) 1,0 (D) 1,1(3)存储以下数据,占用存储字节最多的是()。

(A) 0 (B)‘0’(C)“0”(D) 0.0(4)在C++中,常量‘C’和“C”两者()。

(A) 完全不同(B) 存储长度相同(C) 类型相同(D) 存储值相同(5)设x是一个bool型的逻辑量,y的值为10,则表达式 x && y的值为()。

(A) 1 (B) 0 (C) 与x值相同(D) 与x值相反(6)函数重载是指()。

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

(A) 函数的模板也是一个具体的函数(B) 函数模板的类型参数与函数的参数是同一个概念(C) 通过使用不同的类型参数,函数模板可以生成不同类型的函数(D) 用函数模板定义的函数没有类型(8)函数调用func((exp1,exp2),(exp3,exp4,exp5),(exp6,exp4,exp5))中所含实参的个数为()。

(A) 1 (B) 2 (C) 3 (D) 4(9)有如下程序:#include <iostream.h>class Base{ char c;public:Base(char n):c(n){ }virtual~Base(){cout<<c;}};class Derived:public Base{ c har c;public:Derived(char n):Base(n+1),c(n){ }~Derived(){cout<<c;}};int main(){ Derived d('X');return 0;}执行上面的程序将输出()。

(A) XY (B) YX (C) X (D) Y(10)若int i=10;执行下列语句后,i的值是()。

switch(i){ case 9: i+=1;case 10: i+=1;case 11: i+=1;case 12: i+=1;}(A) 10 (B) 11 (C) 12 (D) 13(11)假定AB为一个类,则执行 "AB x;"语句时将自动调用该类的( )。

(A) 无参构造函数(C) 有参构造函数(B) 拷贝构造函数(D) 赋值重载函数(12)若需要使类中的一个指针成员指向一块动态存储空间,则通常在( )函数中完成。

(A) 析构(B) 构造(C) 任一成员(D) 友元(13)保护继承时,基类的( )在派生类中成为保护成员,不能通过派生类的对象来直接访问该成员。

(A) 任何成员(B)公有成员和保护成员(C) 保护成员和私有成员(D)私有成员(14)声明或定义一个内联函数时,必须在函数开始使用关键字()。

(A) static (B) inline (C) const (D) extern(15)下列对模板的声明中正确的是()。

(A) template<T> (B) template<class T1,class T2>(C) template<class T1,T2> (D) template<C1ass T1,class T2>(16)设x和y均为整型变量,则x||y为假的条件是()。

(A) 它们均为真(B) 其中一个为真(C) 它们均为假(D) 其中一个为假(17)下面的哪个关键字不能作为函数的返回类型?()(A) void (B) int (C) new (D) long(18)假定要对类AB定义加号运算符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为()。

(A) AB operator+(AB & a , AB & b) (B) AB operator+(AB & a)(C) operator+(AB a) (D) AB & operator+( )(19)对于类中定义的成员,其隐含的访问权限为()。

(A) public (B) protected (C) private (D) static(20)程序设计所规定的三种基本控制结构是()。

(A) 输入、处理、输出 (B) 树形、网形、环形(C) 顺序、选择、循环 (D) 主程序、子程序、函数二.判断题(每小题1分,共12分)说明:请判断下列语句是否正确,如果正确请在表格题号对应的空白内用笔打上√;如果错误请在表格题号对应的空白内用笔打上×。

错打或未打均无分。

( )1. 创建派生类对象时,先调用派生类的构造函数,再调用基类的构造函数,当销毁这个对象时顺序正好相反,先调用基类的析构函数,再调用派生类的析构函数。

( )2. 变量分为全局和局部两种,动态局部变量没有赋初值时,其值是不确定的。

( )3. 模板类的成员函数若在类外实现,则必须是模板函数。

( )4. 类的静态成员函数可以不属于整个类。

( )5. 类的友元函数可以访问类的私有成员。

( )6. 常对象必须进行初始化,而且不能被更新。

( )7. 需要基类对象的有些地方不可以使用公有派生类的对象来替代。

( )8. 我们不能用抽象类定义对象,但可以定义抽象类的指针。

( )9. 虚函数的声明只能出现在类定义中的函数实现中。

( )10. 基类中某函数声明为纯虚函数之后,基类中就不能给出函数的实现部分。

( )11. 当一个类的对象离开它的作用域时,系统将自动调用该类的析构函数。

( )12. 关系表达式x+y>5的相反表达式为x+y<=5。

三.读程序写结果(每小题5分,共25分)说明:阅读以下程序,并写出程序运行结果。

1. #include <iostream.h>void main(){ int s=0;for (int i=1; ; i++){ if (s>50) break;if (i%2==0) s+=i;}cout <<"i,s="<<i<<","<<s<<endl;}2.#include <iostream.h>#include <iomanip.h>void LE(int * a,int * b){ int x=*a;*a=*b;*b=x;cout <<*a<<' '<<*b<<endl;}void main(){ int x=10,y=25;LE(&x,&y);cout <<x<<' '<<y<<endl;}3. #include <iostream.h>class Sample{private:int x;static int y;public:Sample(int a){ x=a;x++;y++;}void print(){ cout<<"x="<<x<<",y="<<y<<endl; } };int Sample::y=10;void main(){ Sample s1(20);Sample s2(30);s1.print();s2.print();}4. #include <iostream.h>template <class TT>class FF{ TT a1,a2,a3;public :FF(TT b1,TT b2,TT b3){ a1=b1; a2=b2; a3=b3; }TT Sum() { return a1+a2+a3; } };void main(){ FF <int> x(2,3,4),y(5,7,9);cout <<x.Sum()<<' '<<y.Sum();cout<<endl;}5. #include <iostream.h>class A{ public:A();A(int i,int j);void print();private:int a,b;};A::A(){ a=b=0;cout<<"Default cons called.\n"; }A::A(int i,int j){ a=i;b=j;cout<<"Constructor called.\n"; }void A::print(){ cout<<"a="<<a<<",b="<<b<<endl; } void main(){ A m,n(4,8);m.print();n.print();}四.编程题(共23分)注意:使用规范格式编程,并在适当位置添加注释。

1.(10分)已知6≤a≤30,15≤b≤36,编写程序求出满足方程2a+5b=126的全部整数组解。

相关文档
最新文档