最新国家开放大学电大本科《面向对象程序设计》期末题库及答案

2022-07-21 17:52:18   文档大全网     [ 字体:小 中 大 ] [ 阅读: ]

【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《最新国家开放大学电大本科《面向对象程序设计》期末题库及答案》,欢迎阅读!
电大,题库,程序设计,期末,面向
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案



考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。本文库还有其他网核及教学考一体化答案,敬请查看。



《面向对象程序设计》题库及答案一



一、单项选择题(每小题2分,共20分)

1.设x和y均为bool量,则x||y为假的条件是( )。

A.它们均为真 B.其中一个为真C.它们均为假 D.其中一个为假

2.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}}”,则元素a[1][2] 的值为( )。

A.2 B.4 C.6 D.8

3.假定P是具有int* *类型的指针变量,则给P赋值的正确语句为( )。 A.p=new int B.p=new int* C.p=new int** D.p=new int[10]

4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进 行相应的软件更新的难易程度叫做软件的( )。 A.可维护性 B.可复用性

C.兼容性 D.正确性

5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。 ‘ A.in B.inline C.inLine D.InLiner .

6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为( )。 A.1ength+1 B first+length

C.(first+1ength—1)%MS D.(first+length)%MS

7.假定一个类的构造函数为“A(int aa,int bb){a=aa;b=aa*bb;)”,则执行“A x(4, 5);”语句后,X.a和x.b的值分别为( )。


A.4和5 B.5和4 C.4和20 D.20和5

8.假定AB为一个类,则执行“AB*p=new AB(1,2);”语句时共调用该类构造函数的 次数为( )。

A.0 B.1 C.2 D.3

9.一个类的成员函数也可以成为另一个类的友元函数,这时的友元声明( )类域的限 定。

A.需加上 B.不需加上 C.可加可不加D.取消 10.队列具有( )的操作特性。

A.先进先出 B.先进后出 C.进出无序 D.仅进不出 二、填空题(每小题2分,共20分) 1.多行注释的开始标记符为——。

2.假定x=5,y=6,则表达式x++*++y的值为 。 3.假定x是一个逻辑量,则x &&true的值与x的值——。 4.含随机函数的表达式rand()%20的值在0至——的整数区间内。 5.程序的编译是以——为单位进行的。

6.一个数组的——实际上是指向该数组的第一个元素的指针,并且在任何时候都不允许修改它。 7.指针变量pv和pc定义为“void*pv=”Hell0,word!”;char*pc;”,要将pv值赋给pc,则正确的赋值语句是pc=(——)pv

8.一个类的——函数通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务。 9.假定用户为类AB定义了一个构造函数“AB(int aa):a(aa){}”则——是该类的数据成员。 10.在多文件结构的程序中,通常把含有main()函数的文件称为该程序的 三、程序填充题,根据题意在横线上填写合适的内容。(每小题6分-共24分) 1.采用辗转相除法求出两个整数的最大公约数。. #include.h> void main() {

int a,b;

cout<<”请输入两个正整数:”; ein>>a>>b;

while(a<=0 || b<=0){cout<<”重新输人:”;cin>>a>>b;} while(b){


int r; r=a%b;

——;——;//分别修改a和b的值 }

cout<;//输出最大公约数

2·用插入排序方法对table指针数组中size个指针所指向的字符串进行按升序排序的算法。

void sort(char*table[ ],int size){ for(int i=1;i;i++){ char*p=table[i];

for(int j=i=1;j>=0;j- -)

if(strcmp(p,table[j])<0)table[j+1]= ;

else break;

table[j+1]= ;

} }

3.类A的定义 class A{ char*a: public:

A(){a=NULL;) //定义无参构造函数,使a为空指针

A(char*aa){

a= char[strlen(aa)+1];

strcpy(a,aa); //N aa所指字符串初始化a所指向的动态存储空间 }

//定义析构函数,删除a所指向的动态存储空间 };

4.类Goods的定义 class { private:

char Name[20];//商品名称


int Weight; //商品重量

static int totalWeight;//同类商品总重量 public:

Goods(char*str,int w){ //构造函数

strcpy(Name,str); Weight=w;

totalWeight+ =Weight; }

~Goods(){totalWeight-=Weight; }

char*GetN()( ;) //返回商品名称 int GetW(){return weight;)

static int GetTotalWeight(){ //定义静态成员函数返回总重量 ( ); }

}

四、理解问答题,分别写出前2小题的程序运行结果和指出后2小题的程序或函数功能。(每小题6分.共24分)

1.#include.h>const int T=6; void main()( int i,j,k=0; for(i=1;i<=T;i+=2){ for(j=2;j<=T;j+=2)k++; }

cout<<”k=”< } 运行结果:

2.#include.h>

class CE { private: int a,b;


int getmax(){return(a>b?a.b);} public: int c:

void SetValue(int xl,int x2,int x3){ a=xl;b=x2;c=x3; }

int GetMax(); };

int CE::GetMax(){ int d=getmax(); return(d>c?d:c); }

void main(){

int x=5,y=12,z=8; CE ex;

ex.SetValue(x,y,z); cout<%ex.GetMax()<; } 运行结果:

3.#inelude.h> void main( ) {

int i,p=1; int N;

cout<<”输入一个正整数:”; cin>>N;

for(i=1;i<=N;i++)P*=i; cout<<”N!=”< } 程序功能: 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

相关推荐