”< } 程序功能: 4.int f(char*s)
{ int i=0:
while(*s++)i++; return i; }; 函数功能:
五、编程题(每小题6分,共12分)
1.编写一个函数,分别求出由指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素中,该函数的原型声明如下: void fun(char*a,int b[]);
2.根据下面类中CompareBig函数成员的原型和注释写出它的类外定义。 class AA{ Int*a: int n; int MS: public:
void InitAA(int aa[],int nn,int ms){ if(nn>ms){cout<<”Error!”<exit(1);}
MS=ms; n=nn:
a=new int[MS]:
for(int i=0;i;i++)a[i]=aa[i]; }
int CompareBig(AA&b):
//比较*this与b的大小,从前向后按两数组
//中的对应元素比较,若*this中元素值大则返回l,若b中 //元素值大则返回一l,若相等则继续比较下一个元素,直到 //一个数组中无元素比较,此时若两者的n值相同则返回0, //否则若*this中的n值大则返回l,若b中的n值大则返回一l。 };
试题答案及评分标准
一、单项选择题(每小题2分。共20分)
1.C 2.C 3.B 4.A 5.B6.D 7.C 8.B 9.A l0.A 二、填空题【每小题2分。共20分) 1. /* 2. 35 3.相同 4. 19 5.文件 6.数组名 7.char* 8.析构 9.a 10.主文件
三、程序填充题,根据题意在横线上填写合适的内容。(每小题6分。共24分)评分标准:每空3分
1.a=b b=r 2.Tahle[j] P
3.new ~A(){delete[]a;}
4.return Name return tolalWeight
四、理解问答题。分别写出前2小题的程序运行结果和指出后2小题的程序或函数功能。(每小题6分。共24分) 1.K=9 2. 12
3.计算并输出N阶乘的值,其中N值由键盘输入。 4.求出并返回字符指针参数S所指向的字符串长度。 五、编程题(每小题6分。共12分)、 评分标准:按编程完整程度酌情给分。 1.void fun(char*a,int b[]){ int i;
for(i=0;i<10;i++)b[i]=0; //2分while(*a){
int j=*a一0;
if(j>一0&&j<=9)b[j]++; a++;
} //6分 }
2.int AA::CompareBig(AA&b) { int k;
if(n>b.n)k=b.n;else k=n; //1分 for(int i=0;i;i++) if(a[i]>b.a[i])return l;
else if(a[i].a[i])return—l; //3分 if(k= =n&&k==b.n)return 0; //4分 else if(k; else return一1; //6分 }
《面向对象程序设计》题库及答案二
一、单项选择(每小题2分,共20分)
1.字符串“a+b=12\n”的长度为( )。 A.6
B.7
C.8
D.9
2.假定一个二维数组的定义语句为“int a[3][4]={{3,4),{2,8,6));”,则元素a[2][1] 的值为( )。 A.0
B.4
C.8
D.6
3.以下正确的描述是( )。
A.函数的定义可以嵌套,函数的调用不可以嵌套 B.函数的定义不可以嵌套,函数的调用可以嵌套 C.函数的定义和函数的调用均可以嵌套 D.函数的定义和函数的调用均不可以嵌套
4.设有定义“double array[10];”,则表达式sizeof(array)/sizeof(array[0])的结果为array
数组的( )。
A.首地址 B.元素个数
C.每个元素所占的字节数 D.总字节数
5.若使P指向包含30个整型元素的动态数组空间,则使用的定义语句为( )。 A.int*p=new int[30] B.int*p=new int(30) C.int*p=new[30]D.*p=new int[30] 6.软件产品与其他软件产品组合成一个整体的难易程度叫做软件的( )。 A.可维护性 B.可复用性C.兼容性 D.正确性
7.在多文件结构的程序中,通常把类的声明单独存放于( )中。 A.主文件 B.实现文件C.库文件 D.头文件
8.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队首的后一个位置为( )。
A.first+1 B.(first+1)%MS C.(first一1)%MS D.(first+length)%MS
9.假定一个类的构造函数为“A(int aa=1,int bb=0){a=aa;b=bb;)”,则执行“A x(4);”语句后,x.a和x.b的值分别为( )。
A.1和0 B.1和4 C.4和1 D.4和0
10.假定AB为一个类,则执行“AB a(2),b[3],*p[4];”语句时共调用该类构造函数的次数为( )。 A.3
B.4
C.5
D.9
二、填空题(每小题2分,共20分)
1.用于输出表达式值的标准输出流对象是 2.假定x=5,y=6,则表达式x- -*一 一y的值为 3.假定x是一个逻辑量,则x||true的值为 。
4.c++提供的预处理命令有宏定义命令,条件编译命令和 命令。 5.假定a是一个一维数组,则a[i]的指针访问方式为 。
6.变量V定义为“double V=23.4;”,要使指针pv指向v,则定义‘pv的语句为 . 7.若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数 名前必须加上 和两个冒号分隔符。
8.若采用x.abc(y)表达式调用一个成员函数,在成员函数中使用的 就代表了类外的X对象。 9.假定用户没有给一个名为AB的类定义析构函数,则系统为其定义的析构函数为 10.假定用户只为类AB定义了一个构造函数“AB(int a8,int bb=O)(a=aa;b=bb;)”,
则定义该类的对象时,其实参表中至多带有 个实参。
三、程序填充题。根据题意在横线上填写合适的内容。(每小题6分。共24分) 1.下面函数是求两个整型参数a和b的最小公倍数。 int f2(int a,int b) {
int i=2,p=1; do{
while(a%i= =0 && ){ p*=i;a/=i;b/=i;
}
i++;
}while(a>=i&& ); return p*a*b;
2.对数组a中的元素按相反次序重新排列。 void PV(int a[],int n) {
int i;
for(i=0;i/2;i++){
int x=a[i];
; ;
}
}
3.假定有定义为“struct NODE{int data;NODE*next;);”,下面算法是把以L为表头 指针的链表中各结点依次按相反次序链接并返回新链表的表头指针。 NODE*f8(NODE*L) {
if(L= =NULL)return NULL;
NODE*p=NULL,*q=L,*t;//P为新链表的表头指针,初始值为空 while(q!=NULL){ t2q;
q=q->next; t一>next= ; p= ; }
return P; }
4.类A的定义 class A{
int*a;int n;int MaxLen; public:
A():a(O),n(O),MaxLen(O){) //无参构造函数 A(int*aa,int nn,int MM){ //带参构造函数
N=nn: MaxLen=MM;
if(n>MaxLen)exit(1); a=new int[MaxLen];
for(int i=0;i;i++) ; //利用数组aa给数组a赋值
}
~A(){ ;} //释放动态存储空间
int GetValue(int i){return a[l];} //函数体返回a{1]的值 };
四、理解问答题。分别写出前2小题的程序运行结果和指出后2小题的程序或函数功能。(每小题6分。共24分)
1.#include.h> const int B=2: void main() {
int p=1,s=1;
while(s<50){ P*=B; s+=P。
}
cout<<“S=”< 运行结果:
2.#include.h> class CE{ private:
int a,b;
int getmin(){return(a:b);} public: int C;
void SetValue(int xl,int x2,int x3){ a=xl;b=x2;c=x3; }
int GetMin(); };
int CE::GetMin(){
int d=getmin(); return(d:c); }
void main(){
int x=5,y=12,z=8; CE*ep=new CE;
ep-->SetValue(x+y,y—z,10); cout<一>GetMin()<; 运行结果:
3.int ff(int x,int Y,char op){
int z: switch(op){ case ‘+’:
cout<cin>>z; if(x+y= =z)return l;else return 0;
break;
case’一’:
cout<cin>>z; if(x—y= =z)return l;else return 0;
break;
case’*’:
cout<cin>>z; if(x*y= =z) return l;else return 0; break; case’/’:
cout<=’;cin>>z; if(x/y= =)return l;else return 0; break;
default:cout<<”运算符错,退出!”;exit(1); } }
函数功能: 4.char*f(char*s){ int n=strlen(s); char*r=new char[n+11; for(int i=0;i;i++)
if(s[il>=’a’&&s[i]<=’z’)r[i]=s[i]—‘a’+’A’; else r[i]=s[i];
r[n]=’\o’; return r; } 函数功能:
五、编程题(每小题6分,共12分)
1.按照下面函数原型语句编写一个递归函数求出并返回数组fl中n个元素的平方和。int f(int aE],int n);
2.根据下面类中拷贝构造函数的原型写出它的类外定义。
class Array(
int*fl; //指向动态分配的整型数组空间
int n; //记录数组长度 public:
Array(int aa[],int nn); //构造函数,利用tiff数组长度nn初始化n,
//利用fla数组初始化a所指向的数组空间
Array(Array&aa););//拷贝构造函数 }
试题答案及评分标准
一、单项选择题(每小题2分。共20分) 1.B 2.A 3.B6.C 7.D 8.B 二、填空题(每小题2分。共20分)
1.Cout 2. 25 3.true(或1) 4.文件包含 8.*this
9.~AB(){} 10.2
5.*(a+i) 6.double*pv=&v;7.类名
三、程序填充题。根据题意在横线上填写合适的内容。(每小题6分,共24分)评分标准:每空3分。 1.b%i= =0 b>=i
2.A[i]=a[n—i一1] a[n—i一1]=X 3.P t
4.A[i]=aa[i] delete[]a
四、理解问答题.分别写出前2小题的程序运行结果和指出后2小题的程序或函数功能。(每小题6分。共24分) 评分标准:第3、4小题根据叙述完整程度酌情给分。】.
1.s=63 2.4
3.以参数x和Y作为运算对象,以参数0p所存字符作为运算符,要求从键盘上输入运算结果,若正确则返回1否则返回0。
4.根据参数S所指向的字符串,生成一个由r所指向的新字符串并返回,该字符串使s字符串中的小写字母均变为大写。
五、编程题(每小题6分。共12分)
评分标准:按编程完整程度酌情给分。 1.int f(int a[],int n)
(
if(n= =o)return 0; //1分
else return a[n一1]*a[n一1]+f(a,n一1); //6分) 2.Array::Array(Array8L aa){ n—aa.n; //1分 a=new int[-n]; //3分
for(int i=0;i;i++)a[i]=aa.a[i]; //6分 }
《面向对象程序设计》题库及答案三
得分
评卷人
一、单选题:从供选择的答案中选出正确的答案,将其字母编号填入下列叙述的括号内(每小题4分,共40分)。
请将答题结果填入该表:
题号 答案 题号 1 6
2 7
答案
题号 3 8
答案
题号 4 9
答案
题号 5 10
答案
1. 在C#.Net中,用来创建主菜单的对象是( )。 A. Menu B.MenuItem C.MenuStrip D.Item 2. 以下说法正确的是( )。
A. 接口可以实例化
B. 类只能实现一个接口
D. 接口的成员前面可以加访问修饰符
C. 接口的成员都必须是未实现的 3.加载窗体时触发的事件是( )。
A. Click B.Load C.GotFoucs D.DoubleClick 4.在C#中定义接口时,使用的关键字是( )。
A.interface B.: C.class D.overrides
5.在C#中,定义派生类时,指定其基类应使用的语句是( )。
A.Inherits B.: C.Class D.Overrides 6.在VC#.Net中,可以标识不同的对象的属性是( )。
A.Text B.Name C.Title D.Index 7.属于C#语言的关键字( )。
A. abstract B. camel C. Salary D. Employ
8. 假定一个10行20列的二维整型数组,下列哪个定义语句是正确的( )。
A. int[]arr = new int[10,20] B. int[]arr = int new[10,20] C. int[,]arr = new int[10,20] D. int[,]arr = new int[20;10]
9. 使用Dirctory类的下列方法,可以获取指定文件夹中的文件的是( ).
A.Exists() B.GetFiles() C.GetDirectories() D.CreateDirectory()
10. 继承具有( ),即当基类本身也是某一类的派生类时,派生类会自动继承间接基类的成员。
A. 规律性 得分
请将答题结果填入该表:
题号 1 2 3 4 5
1.类中声明的属性往往具有get()和 两个访问器。
2.C#提供一个默认的无参构造函数,当我实现了另外一个有一个参数的构造函数时,还想保留这个无参数
的构造函数。这样我应该写 构造函数。 3. 在switch语句中,每个语句标号所含关键字case后面的表达式必须是 。 4.传入某个属性的SET方法的隐含参数的名称是 。
5.C#数组类型是一种引用类型,所有的数组都是从System命名空间的 类继承而来的引用对象。
答案
评卷人
二、填空题(每空2分,共10分)。
B. 传递性
C. 重复性
D. 多样性
得分
评卷人
三、判断题(每空2分,共10分)。
请将答题结果填入该表:
题号 1
答案
题号 2
答案
题号 3
答案
题号 4
答案
题号 5
答案
1. 一个窗体中可以有多个弹出式菜单。
2.在数据类型转化时,只能通过类型转换关键字或Convert类实现。 3.定义枚举时至少为其中的一个枚举成员赋值。
4. DataSet对象中的表可以和数据库中的表同名,也可以不同名。 5.在C#类中,this代表了当前类本身。
得分
评卷人
四、程序阅读题(每题10分,共30分)。
请将答题结果填入该表:
题号 1 2 3
1. 写出下列函数的功能。 static int SA(int a,int b) {
if (a>b)
return 1;
else if (a==b)
return 0;
else
return -1;
}
2.写出以下程序的功能。
static void WA(ref int[] a, int n) {
答案
for(int i=0;i{ }
3.写出以下程序运行结果。 using System; class Test {
static void LE(ref int a, ref int b) { int x = a; a = b; b = x;
Console.writeLine (a + “ “ +b); }
public static void Main () {
int x=10, y=25;
LE(ref x, ref y);
Console.writeLine (x + “ “ +y); } }
得分
评卷人
五、简答题(共10分)。
1.C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它们之间的区别是什么?
答:
int k=i;
for(int j=i+1;j
if(a[j]k=j;
int x=a[i]; a[i]=a[k]; a[k]=x; }
一、单选题:从供选择的答案中选出正确的答案,将其字母编号填入下列叙述的括号内(每小题4分,共40分)。
题号 答案 1 6
C B
题号 2 7
答案 C A
题号 3 8
答案 B C
题号 4 9
答案 A B
题号 5 10
答案 D B
二、填空题(每空2分,共10分)。
题号 1 2 3 4 5
三、判断题(每空2分,共10分)。 题号 1
四、程序阅读题(每题10分,共30分)。
题号 1 2 3
五、简答题(共10分)。
答案
比较两个整数a和b的大小,若a>b则返回1,若a= =b则返回0,若a则返回-1。
采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。 25 10 25 10
答案 √
题号 2
答案 X
题号 3
答案 X
题号 4
答案 √
题号 5
答案 X
set() 两个 常量表达式 value object
答案
1.C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它们之间的区别是什么?
答:
public 可以被任意存取
protected只可以被本类和其继承子类存取
internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。
protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。
private只可以被本类所存取。
《面向对象程序设计》题库及答案四
得分
评卷人
一、单选题:从供选择的答案中选出正确的答案,将其字母编号填入下列叙述的括号内(每小题4分,共40分)。
请将答题结果填入该表:
题号 答案 题号 1 6
2 7
答案
题号 3 8
答案
题号 4 9
答案
题号 5 10
答案
1. 在C#.Net中,用来创建主菜单的对象是( )。 A. Menu B.MenuItem C.MenuStrip D.Item 2.在C#中,定义派生类时,指定其基类应使用的语句是( )。
A.Inherits B.: C.Class D.Overrides 3.加载窗体时触发的事件是( )。
A. Click B.Load C.GotFoucs D.DoubleClick 4.属于C#语言的关键字( )。
A. abstract B. camel C. Salary D. Employ 5. 以下说法正确的是( )。
A. 接口可以实例化
B. 类只能实现一个接口
D. 接口的成员前面可以加访问修饰符
C. 接口的成员都必须是未实现的
6.在VC#.Net中,可以标识不同的对象的属性是( )。
A.Text B.Name C.Title D.Index
7.在C#中定义接口时,使用的关键字是( )。
A.interface B.: C.class D.overrides 8.可用作C#程序用户标识符的一组标识符是( )。
A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 9.类的以下特性中,可以用于方便地重用已有的代码和数据的是( ).
A.多态 B.封装 C.继承 D.抽象 10. C#是一种面向( )的语言。
A. 机器 B.过程 C.对象 D.事物 得分
评卷人
二、填空题(每空2分,共10分)。
请将答题结果填入该表:
题号 1 2 3 4 5
1.在switch语句中,每个语句标号所含关键字case后面的表达式必须是 。 2.类中声明的属性往往具有get()和 两个访问器。
3.C#提供一个默认的无参构造函数,当我实现了另外一个有一个参数的构造函数时,还想保留这个无参数
的构造函数。这样我应该写 构造函数。 4.传入某个属性的SET方法的隐含参数的名称是 。
5.当在程序中执行到 语句时,将结束所在循环语句中循环体的一次执行。
得分
评卷人
请将答题结果填入该表:
题号 1
答案
题号 2
答案
题号 3
答案
题号 4
答案
题号 5
答案
三、判断题(每空2分,共10分)。
答案
1. 一个窗体中可以有多个弹出式菜单。 2. 在C#中,任何方法都不能实现多继承。
3. 如果要实现重写,在基类的方法中必须使用virtual关键字,在派生类的方法中必须使用overrides关键字。
4. 在C#类中,this代表了当前类本身。
5. 在C#中,子类不能继承父类中用private修饰的成员变量和成员方法。
得分
评卷人
四、程序阅读题(每题10分,共30分)。
请将答题结果填入该表:
题号 1 2 3
1. 写出下列函数的功能。 static void SA(int a,int b) {
if (a>b)
Console.writeLine (“a的值大于b的值”);
else if (a==b)
Console.writeLine (“a的值等于b的值”);
else
Console.writeLine (“a的值小于b的值”);
}
2.写出以下程序的功能。
static void WA(ref int[] a, int n) { for(int i=0;i{
int k=i;
for(int j=i+1;j
if(a[j]k=j;
答案
}
int x=a[i]; a[i]=a[k]; a[k]=x; }
3.写出以下程序运行结果。 using System; class Test {
static void LE(ref int a, ref int b) { int x = a; a = b; b = x;
Console.writeLine (a + “ “ +b); }
public static void Main () {
int x=70, y=32;
LE(ref x, ref y);
Console.writeLine (x + “ “ +y); } }
得分
评卷人
五、简答题(共10分)。
1.C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它们之间的区别是什么?
答:
答案:
一、单选题:从供选择的答案中选出正确的答案,将其字母编号填入下列叙述的括号内(每小题4分,共40分)。
题号 答案 1 6
C B
题号 2 7
答案 D A
题号 3 8
答案 B B
题号 4 9
答案 A C
题号 5 10
答案 C C
二、填空题(每空2分,共10分)。
题号 1 2 3 4 5
三、判断题(每空2分,共10分)。 题号 1
四、程序阅读题(每题10分,共30分)。
题号 1 2 3
五、简答题(共10分)。
1.C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它们之间的区别是什么?
答:
答案
比较两个整数a和b的大小,若a>b则输出a的值大于b的值,若a= =b则输出a的值等于b的值,若a则输出a的值小于b的值。 采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。 32 70 32 70
答案 √
题号 2
答案 X
题号 3
答案 X
题号 4
答案 X
题号 5
答案 √
常量表达式 set() 两个 value continue
答案
public 可以被任意存取
protected只可以被本类和其继承子类存取
internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。
protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。
private只可以被本类所存取。
《面向对象程序设计》题库及答案五
得分
评卷人
一、单选题:从供选择的答案中选出正确的答案,将其字母编号填入下列叙述的括号内(每小题4分,共40分)。
请将答题结果填入该表:
题号 答案 题号 1 6
2 7
答案
题号 3 8
答案
题号 4 9
答案
题号 5 10
答案
1.在C#中定义接口时,使用的关键字是( )。
A. interface B. : C. class D. overrides
2.类的以下特性中,可以用于方便地重用已有的代码和数据的是( ).
A.多态 B.封装 C.继承 D.抽象
3. 将变量从字符串类型转换为数值类型可以使用的类型转换方法是( )。
A.Str() B.Cchar C.CStr() D.int.Parse(); 4.改变窗体的标题,需修改的窗体属性是( )。
A. Text B. Name C.Title D. Index 5.在类的成员中,用于存储属性值的是( )。
A. 属性 B. 方法 C. 事件 D.成员变量 6. 下列说法中,正确的是( )。
A. 派生类对象可以强制转换为基类对象
B. 在任何情况下,基类对象都不能转换为派生类对象 C. 接口不可以实例化,也不可以引用实现该接口的类的对象 D. 基类对象可以访问派生类的成员
8.在C#.Net中,用来创建主菜单的对象是( )。
A. Menu B.MenuItem C.MenuStrip D.Item 9. C#是一种面向( )的语言。
A. 机器 B.过程 C.对象 D.事物 10. 以下正确的描述是( )。
A. 函数的定义可以嵌套,函数的调用不可以嵌套 B. 函数的定义不可以嵌套,函数的调用可以嵌套 C. 函数的定义和函数的调用均可以嵌套 D. 函数的定义和函数的调用均不可以嵌套 得分
请将答题结果填入该表:
题号 1 2 3 4 5
1. 当在程序中执行到 语句时,将结束所在循环语句中循环体的一次执行。 2. 在方法定义中,virtual含义: 。
3.接口(interface)是指: 。 4. 在while循环语句中,一定要有修改循环条件的语句,否则,可能造成 。
5. C#提供一个默认的无参构造函数,当我实现了另外一个有一个参数的构造函数时,还想保留这个无参
数的构造函数。这样我应该写 个构造函数。
得分
评卷人
请将答题结果填入该表:
三、判断题(每空2分,共10分)。
答案
评卷人
二、填空题(每空2分,共10分)。
题号 1
答案
题号 2
答案
题号 3
答案
题号 4
答案
题号 5
答案
1.接口与类同样是面向对象程序设计的核心,是创建对象的模版。
2.在同一行上可以书写多条语句,每条语句间用分号分隔。
3.如果要实现重写,在基类的方法中必须使用virtual关键字,在派生类的方法中必须使用overrides关键字。
4.不能指定接口中方法的修饰符。
5.在定义数组时不允许为数组中的元素赋值。
得分
评卷人
四、程序阅读题(每题10分,共30分)。
请将答题结果填入该表:
题号 1 2 3
1.写出下列函数的功能。 static float FH() { float y=0,n=0;
int x = Convert.ToInt32(Console.ReadLine()); //从键盘读入整型数据赋给x while (x!=-1) { n++; y+=x;
x = Convert.ToInt32(Console.ReadLine()); }
if (n==0) return y; else return y/n; }
答案
2.写出以下程序的功能。
static void f2(ref double[] a, int n) { int i; double sum=0; for(i=0;isum+=a[i]; sum/=n; for(i=0;i
if(a[i]
Console.write( a[i] + “ “ );
Console.writeLine ();
}
3.写出以下程序的运行结果。
using System; class Test {
public static void Main() {
int x = 15; int y = x++;
Console.WriteLine(y); y=++x;
Console.WriteLine(y); } }
得分
评卷人
五、简答题(共10分)。
1.如何区别重载方法? 答:
试题答案
一、单选题:从供选择的答案中选出正确的答案,将其字母编号填入下列叙述的括号内(每小题4分,共40分)。
题号 答案 1 6
A A
题号 2
答案 C
题号 3 8
答案 D C
题号 4 9
答案 A C
题号 5 10
答案 D B
二、填空题(每空2分,共10分)。
题号 1 2 3 4 5
三、判断题(每空2分,共10分)。 题号 1
3. 子接口可以包含与父接口相同的方法,但此时子接口的方法必须使用关键字new来隐藏父接口的方法,而不能使用override修饰符来重载父接口的方法。
4. 接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。
四、程序阅读题(每题10分,共30分)。
题号 1 2
答案
计算从键盘上输入的所有数的平均值,以-1作为结束输入的标志。 显示输出数组中小于平均值的所有元素值。
答案 √
题号 2
答案 √
题号 3
答案 X
题号 4
答案 √
题号 5
答案 X
continue 虚拟方法
只含有公有抽象方法(public abstract method)的类。这些方法必须在子类中被实现 死循环 两
答案
3
15 17
五、简答题(共10分)。
1.如何区别重载方法?
不同的参数类型,不同的参数个数,不同的参数顺序
本文来源:https://www.wddqxz.cn/caff481bed06eff9aef8941ea76e58fafab04534.html