不属于面向对象表示法的特征是

不属于面向对象表示法的特征是,第1张

不属于面向对象表示法的特征是一致性。

面向对象的特征有对象的唯一性、分类性、继承性、多样性。

1、对象唯一性。

每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。

2、分类性。

分类性是指将具有一致的数据结构(属性)和行为( *** 作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。

3、继承性。

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。

在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。

在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。

除此之外还有一个多态性,是使指相同的 *** 作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

a.

8

b.

16

c.

32

d.

15(4)

下面描述中,符合结构化程序设计风格的是(...(37)

下面不属于软件设计原则的是(c)

注:p73a.

抽象

b.

模块化

一选择题

(1)下列叙述中正确的是

A)算法的效率只与问题的规模有关,而与数据的存储结构无关

B)算法的时间复杂度是指执行算法所需要的计算工作量

C)数据的逻辑结构与存储结构是一一对应的

D)算法的时间复杂度与空间复杂度一定相关

(2)在结构化程序设计中,模块划分的原则是

A)各模块应包括尽量多的功能

B)各模块的规模应尽量大

C)各模块之间的联系应尽量紧密

D)模块内具有高内聚度、模块间具有低耦合度

(3)下列叙述中正确的是

A)软件测试的主要目的是发现程序中的错误

B)软件测试的主要目的是确定程序中错误的位置

C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作

D)软件测试是证明软件没有错误

(4)下面选项中不属于面向对象程序设计特征的是

A)继承性 B)多态性 C)类比性 D)封闭性

(5)下列对列的叙述正确的是

A)队列属于非线性表

B)队列按“先进后出”原则组织数据

C)队列在队尾删除数据

D)队列按“先进先出”原则组织数据

(6)对下列二叉树

进行前序遍历的结果为

A) DYBEAFCZX B) YDEBFZXCA

C) ABDYECFXZ D) ABCDEFXYZ

(7) 某二叉树中有n个度为2的结点,则该二叉树中的叶子结点为

A) n+1 B) n-1 C) 2n D) n/2

(8) 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是

A) 并 B)交 C)投影 D)笛卡儿乘积

(9) 在E-R图中,用来表示实体之间联系的图形是

A) 矩形 B)椭圆形 C)菱形D)平行四边形

(10)下列叙述中错误的是

A) 在数据库系统中,数据的物理结构必须与逻辑结构一致

B)数据库技术的根本目标是要解决数据的共享问题

C)数据库设计是指在已有数据库管理系统的基础上建立数据库

D)数据库系统需要 *** 作系统的支持

(11)算法中,对需要执行的每一步 *** 作,必须给出清楚、严格的规定,这属于算法的

A)正当性 B)可行性 C)确定性D)有穷性

(12)下列叙述中错误的是

A)计算机不能直接执行用C语言编写的源程序

B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件

C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

D)后缀为.obj和.exe的二进制文件都可以直接运行

(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是

A)大写字母 B)连接符 C)数字字符 D)下划线

(14)以下叙述中错误的是

A)C语言是一种结构化程序设计语言

B)结构化程序有顺序、分支、循环三种基本结构组成

C)使用三种基本结构构成的程序只能解决简单问题

D)结构化程序设计提倡模块化的设计方法

(15)对于一个正常运行的C程序,以下叙述中正确的是

A)程序的执行总是从main函数开始,在main函数结束

B)程序的执行总是从程序的第一个函数开始,在main函数结束

C)程序的执行总是从main函数开始,在程序的最后一个函数中结束

D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

(16)设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2)语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式正确的是(注:□代表空格字符)

A)10□X□20□Y〈回车〉B)10□X20□Y〈回车〉

C)10□X〈回车〉D)10X〈回车〉

20□Y〈回车〉20Y〈回车〉

(17)若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是

A)sqrt(abs(n^x+e^x)) B) sqrt(fabs(pow(n,x)+pow(x,e)))

C)sqrt(fabs(pow(n,x)+exp(x,e)))D) sqrt(fabs(pow(x,n)+exp(x)))

(18)设有定义:int k=0,以下选项的四个表达式中与其他三个表达式的值不相同的是

A)k++ B)k+=1 C)++kDD)k+1

(19)有以下程序,其中%u表示按无呼号整数输出

Main()

{unsigned int x=0xFFFF/* x的初值为十六进制数 */

Printf(“%u\n”,x)

}

程序运行后的输出结果是

A)-1 B)65535 C)32767 D)0XFFFF

(20)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是

A)if(x++) B)if(x>y&y!=0)

C)if(x>y)x- -D)if(y<0) {}

else y++: else x++

(21)以下选项中,当x为大于1的奇数时,值为0的表达式

A)x%2==1 B)x/2 C)x%2!=0D)x%2==0

(22)以下叙述中正确的是

A)break语句只能用于switch语句题中

B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环

C)break 语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句的作用相同

(23)有以下程序

Main()

{int k=5,n=0

do

{switch(k)

{case1:case3:n+=1break

Defaultn=0k--

Case2: case4:n+=2k--break

}

Printf(“%d”,n)

}while(k>0&&n<5)

}

程序运行后的输出结果是

A)235 B)0235C)02356 D)2356

(24)有以下程序

mian()

{int i,j

for(i=1i<4i++)

{for(j=ij<4j++) printf(“%d*%d=%d “,i,j,i*j)

Printf(“\n”)

}

}

程序运行后的输出结果是

*p=&n

Printf(“Input n:”) scanf(“%d”,&p) printf(“output n:”) printf(“%d\n”,p)

}

该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是

A)int n,*p=NULL B)*p=&n C)scanf(“%d”,&p) D)printf(“%d\n”,p)

(31)以下程序中函数f的功能是:当flag为4时,进行有小到大排序;当flag为0时,进行由大到小排序。

void f(int b[],int n,int flag)

{int i,j,t

for(i=0i<n-1i++)

for (j=i+1j<nj++)

if(flag?b[ i ]>b[j]:b[ i ]<b[j]) {t=b[ i ]b[ i ]=b[j]b[j]=t}

}

main()

{int a[10]={5,4,3,2,1,6,7,8,9,10},I

f(&a[2],5,0)f(a,5,1)

for(i=0i<10i++) printf(“%d,”a[ i ])

}

程序运行后的输出结果是

A)1,2,3,4,5,6,7,8,9,10, B)3,4,5,6,7,2,1,8,9,10,

C)5,4,3,2,1,6,7,8,9,10,D)10,9,8,7,6,5,4,3,2,1,

(32)有以下程序

void f(int b[])

{int I

for(i=2i<6i++) b[ i ]*=2

}

main()

{int a[10]={1,2,3,4,5,6,7,8,9,10},i

f

for(i=0i<10i++) printf(“%d,”,a[ i ])

}

程序运行后的输出结果是

A)1,2,3,4,5,6,7,8,9,10, B)1,2,6,8,10,12,7,8,9,10

C)1,2,3,4,10,12,14,16,9,10, D)1,2,6,8,10,12,14,16,9,10,

(33)有以下程序

typedef struct{int b,p}A

void f(A c) /*注意:c是结构变量名 */

{int j

c.b+=1c.p+=2

}

main(){int i

A a={1,2}

f

printf(“%d,%d\n”,a.b,a.p)

}

程序运行后的输出结果是

A)2,3 B)2,4C)1,4D)1,2

(34)有以下程序

main()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t

for(i=0i<4i++)

for(j=0j<3j++)

for(k=j+1k<4k++)

if(a[j][ i]>a[k][ i]){t=a[j][ i]a[j][ i ]=a[k][ i ]a[k][ i]=t}/*按列排序*/

for(i=0i<4i++)printf(“%d,”,a[ i ][j])

}

程序运行后的输出结果是

A)1,6,5,7, B)8,7,3,1, C)4,7,5,2, D)1,6,2,1,

(35) 有以下程序

main()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t

for(i=0i<3i++)

for(k=i+ik<4k++) if(a[ i ][ i ]<a[k][k]){t=a[ i ][ i ]a[ i ][ i ]=a[k][k]a[k][k]=t}

for(i=0i<4i++)printf(“%d,”,a[0][ i ])

}

程序运行后的输出结果是

A)6,2,1,1,B)6,4,3,2,C)1,1,2,6,D)2,3,4,6,

(36) 有以下程序

void f(int *q)

{int i=0

for( i<5i++)(*q)++

}

main()

{int a[5]={1,2,3,4,5},i

f

for(i=0i<5i++)printf(“%d,”,a[ i ])

}

程序运行后的输出结果是

A)2,2,3,4,5, B)6,2,3,4,5,C)2,3,4,5,6,

(37) 有以下程序

#include <string.h>

main()

{char p[20]={‘a’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”

Strcpy(p+strlen(q),r) strcat(p,q)

Printf(“%d%d\n”,sizeof(p),strlen(p))

}

程序运行后的输出结果是

A)20 9 B)9 9 C)20 11 D)11 11

(38) 有以下程序

#include <string.h>

main()

{char p[20]={‘a’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”

strcat(p,r)Strcpy(p+strlen(q),q)

Printf(“%d \n”,sizeof(p))

}

程序运行后的输出结果是

A)9 B)6 C)11 D)7

(39) 有以下程序

#include <string.h>

main()

{ char p[20]={‘a’,’b’,’c’,’d’}, q[]=”abc”, r[]=”abcde”

Strcat(p,r) strcpy(p+strlen(q),q)

Printf(“%d\n”,strlen(p))

}

程序运行后的输出结果是

A) 9B) 6 C) 11 D) 7

else {int a=7 ;t+=a++;}

return t+a++;

}

main()

{int s=a,i=0;

for(;i〈2;i++ 〉 s+=f(i)

printf (“%d\n”,s)

}

程序运行后的输出结果是

A)24 B)28C)32D)36

(43) 有一个名为init.txt的文件,内容如下:

#defineHDY(A,B) A/B

# definePRINT(Y) Printf(“y=%d\n.,Y)

有以下程序

#include “init.txt”

main()

{int a=1,b=2,c=3,d=4,k;

K=HDY(a+c,b+d);

PRINT(K);

}

下面针对该程序的叙述正确的是

A)编译有错 B)运行出错

C)运行结果为 y=0D) 运行结果为 y=6

(44) 有以下程序

Main()

{char ch[]=“uvwxyz”,*pc;

Pc=ch printf(“%c\n”,*(pc+5))

}

程序运行后的输出结果是

A)z B)0 C)元素ch[5]地址 D)字符y的地址

(45) 有以下程序

struct S {int n int a[20]}

void f(struct S *P)

{int i,j,t

for(i=0i<p->n-1i++)

for(j=j+1j<p->n-1j++)

程序运行后的输出结果是

A)3 B)4 C)5 D)6

(49)有以下程序

#include<stdio.h>

Main()

{FILE *fp int I,a[6]={1,2,3,4,5,6}

fp=fopen(“d2.dat”,”w”)

fprintf(fp,”%d%d\n”,a[0],a[1],a[2]) fprintf(fp, “%d%d\n”,a[3],a[4],a[5])

fclose(fp)

fp=fopen(“d2.dat”,”r”)

fscanf(fp,” “%d%d\n”,&k,&n) printf(“%d%d\n”,k,n)

fclose(fp)

}

程序运行后的输出结果是

A)1 2B)1 4C)123 4 D) 123 456

(50)有以下程序

#include <stdio.h>

main ()

{fILE *fp int I,a[6]={1,2,3,4,5,6k}

fp=fopen(“d3.dat”,”w+b”)

fwrite(a,size(int),6,fp)

fseek(fp,sizeof(int)*3,SEEK SET)/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/

fread(a,sizeof(int),3,fp) fclose(fp)

for(i=0i<6i++) printf(“%d,”,a[ i])

}

程序运行后的输出结果是

A)4,5,6,4,5,6, B)1,2,3,4,5,6, C)4,5,6,1,2,3, D)6,5,4,3,2,1,

二.填空题(每空2分,共40分)

注:填空题第14题有2空,19道题共20空。

请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分。

注意:以命令关键字填空的必须写完整

(1) 在深度为7的满二叉树中,度为2的结点个数为_________。

(2) 软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于__________ 测试。

(3) 在数据库系统中,实现各种数据管理功能的核心软件称为数据库管理系统______。

(4) 软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 _______阶段。

(5)在结构化分析使用的数据流图(DFD)中,利用 _________ 对其中的图形元素进行确切解释。

(6)执行以下程序后的输出结果是 __________。

main()

{int a=10

a=(3*5,a+4) printf(“a=%d\n”,a)

}

(7) 当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行

___________次。

#include <stdio.h>

main()

{char ch

While((ch=getchar())==’0’) printf(“#”)

}

(8) 以下程序的运行结果是 _________ 。

int k=0

void fun(int m)

{ m+=kk+=mprintf(“m=%d\n k=%d ”,m,k++)}

main()

{ int i=4

fun(i++)printf(“i=%d k=%d\n”,i,k)

}

(9) 以下程序的运行结果是__________ 。

main()

{int a=2,b=7,c=5

Switch(a>0)

{case 1:switch(b<0)

{case 1:switch(“@”)break

Case 2: printf(“!”)break

}

Case 0: switch(c==5)

{ case 0: printf(“*”)break

Case 1: printf(“#”)break

Case 2: printf(“$”)break

}

default : printf(“&”)

}

Printf(“\n”)

}

(10)以下程序的输出结果是 ____________

# include <string.h>

main()

{ printf(“%d\n”,strlen(“IBM\n012\1\\”))

}

(11)已定义char ch=”$”int i=1,j执行j=!ch&&i++以后,i的值为 ___________

(12)以下程序的输出结果是 ________

# include <string.h>

main()

{ char a[]={‘\1’,’\2’,’\3’,’\4’,’\0’}

Printf(“%d %d\n”,sizeof ,srelen )

}

(13)设有定义语句:int a[][3]={{0},{1},{2}},则数组元素a[1][2]的值为 ________

(14)以下程序的功能是:求出数组x中各相邻两个元素的和,依次存放到a数组中,然后输出,请填空。

Main()

{int x[10],a[9],I

For (i=0i<10i++)

Scanf(“%d”,&x[ i])

For(_________ i<10i++)

A[i-1]=x[ i]+ _____________

For(i=0i<9i++)

Printf(“%d”,a[ i])

Printf(“\n”)

(15) 以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上,请填空:

Main()

{int x,y,z,max,*px,*py,*pz,*pmax

Scanf(“%d%d%d”,&x,&y,&z)

Px=&x

Py=&y

Pz=&z

Pmax=&max

__________________

If(*pmax<*py)*pmax=*py

If(*pmax<*pz)*pmax=*pz

Printf(“max=%d\n”,max)

}

(16)以下程序的输出结果是 ____________

Int fun(int*x,int n)

{if(n==0)

Return x[0]

Else return x[0]+fun(x+1,n-1)

}

Main()

{int a[]={1,2,3,4,5,6,7}

Printf(“%d\n”,fun(a,3))

}

(17)以下程序的输出结果是 ______________

# include<stdlib.h>

Main()

{char *s1,*s2,m

S1=s2=(char*)malloc(sizeof(char))

*s1=15

*s2=20

M=*s1+*s2

Printf(“%d\n”,m)

}

(18)设有说明

Struct DATE{int yearint monthint day}

请写出一条定义语句,该语句定义d为上述结构体变量,并同时为其成员year、month、day 依次赋初值2006、10、1: ____________

(19) 设有定义:FILE*fw,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。

fw=fopen(“readme.txt”, “________” )

2007年4月二级C语言笔试答案

选择题

1-5: BDACD

6-10: CABCA

11-15: CDBCA

16-20: DCABC

21-25: DCABA

26-30: ADCDA

31-35: BBDDB

36-40: DCACA

41-45: DADAA

46-50: ACBDA

填空题

1、63

2、黑盒

3、数据库管理系统

4、开发

5、数据字典

6、a=14

7、0

8、m=4 k=4 i=5 k=5

9、#&

10、9

11、1

12、5 4

13、0

14、i=1

15、x[i-1]

16、*pmax=*px

17、10

18、40

19、struct DATE d={2006,10,1}

20、a


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10890126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存