1、计算机二级(C)7 及答案解析(总分:645.00,做题时间:120 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:40,分数:60.00)1.有以下程序 main( ) char str =“xyz“,*ps=str; while(*ps) ps+; for(ps-;ps-str=0;ps-) puts(ps); 执行后输出结果是( )。 (分数:1.50)A.yz xyzB.z yzC.z yz xyzD.x xy xyz2.有以下程序: int f(int b 4) int i,j,s=0; for(j=0;j2) i=3-j; s+=bij; return s;
2、main( ) int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0; printf(“%d/n”,f(a); 执行后的输出结果是( )。 (分数:1.50)A.12B.11C.18D.163.若有说明语句:double *p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是_。 (分数:1.50)A.*p= scanf(“%lf“,p);B.*p= scanf(“%f“,p);C.p= scanf(“%lf“,*p);D.p= scanf(“%lf“,p);4.在一个 C 语言程序中( )。(分数:1.50)A.main( )函数必须出现在所有函数之前
3、B.main( )函数可以在任何地方出现C.main( )函数必须出现在所有函数之后D.main( )函数必须出现在固定位置5.以下能正确定义数组并正确赋初值的语句是(分数:1.50)A.int N=5,bNN;B.int a12=1,3;C.int c2 =1,2,3,4;D.int d32=1,2,3,4;6.有一函数 (分数:1.50)A.if(x0)y=1; else if(x= =0)y=0; else y=-1;B.y=0; if(x0)y=1; else if(xC.y = 0; if (x = 0) if (x0) y = 1; else y = -1;D.if ( x = 0
4、) if ( x0)y = 1; else y = 0; else y = -1;7.有以下程序: #define P 3 void F(int x)return(P*x*x); main() printf(“%d/n“,F(3+5); 程序运行后的输出结果是_。 (分数:1.50)A.192B.29C.25D.编译出错8.在 Windows 环境下,PrintScreen 键的作用是( )。(分数:1.50)A.打印当前窗口的内容B.打印屏幕内容C.复制屏幕到剪贴板D.复制当前窗口到剪贴板9.有以下程序 void swap(char *x,char *y) char t; t=*x;*x=*
5、y;*y=t; main() char *s1=“abc“,*s2=“123“; swap(s1,s2); printf(“%s,%s/n“,s1,s2); 程序执行后的输出结果是_。 (分数:1.50)A.123,abcB.abc,123C.1bc,a23D.321,cba10.在 DOS 环境下,代表键盘和显示器的设备文件名为( )。(分数:1.50)A.PRNB.CONC.NULD.LPT11.有以下程序: #include main() FILE *fp; int i,k,n; fp=fopen(“data.dat“,“w+“); for(i=1;iA.0 0B.123 45C.1 4
6、D.1 212.有以下程序 main() int c=35;printf(“%d/n“,c 程序运行后的输出结果是_。 (分数:1.50)A.0B.70C.35D.113.与数学式 (分数:1.50)A.3*xn/(2*x-1)B.3*x*n/(2*x-1)C.3*pow(x,n)*(1/(2*x-1) )D.3*pow(n,x)/(2*x-1)14.在 Windows 环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住( )。(分数:1.50)A.Alt 键B.Esc 键C.Shift 键D.Ctrl 键15.有以下程序: main( ) int a=15,b=21,m=0; swit
7、ch(a%3) case 0:m+;break; case l:m+; switch(b%2) default:m+; case 0:m+;break; printf(“%d/n“,m); 程序运行后的输出结果是( )。 (分数:1.50)A.1B.2C.3D.416.下列对于线性链表的描述中正确的是_。 (分数:1.50)A.存储空间不一定是连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的17.有以下程序(提示:程序中 fseek(fp,-2L*
8、sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移 2*sizeof(int)字节) #include stdio.h main( ) FILE *fp; int i,a4=1,2,3,4,b; fp=fopen(“data.dat“,“wb“); for(i=0;iA.2B.1C.4D.318.已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码是 97,则用八进制表示的字符常量/101是( )。(分数:1.50)A.字符 AB.字符 aC.字符 eD.非法的常量19.有以下程序: main() char a1=M,a2=m; pri
9、ntf(“%c/n“,(a1,a2); 以下叙述中正确的是_。(分数:1.50)A.程序输出大写字母 MB.程序输出小写字母 mC.格式说明符不足,编译出错D.程序运行时产生出错信息20.在计算机中,一个字节所包含二进制位的个数是( )。(分数:1.50)A.2B.4C.8D.1621.有以下程序 void fun(char *a, char *b) a=b; (*a)+; main( ) char c1=A,c2=a,*p1,*p2; p1= p2= fun(p1,p2); printf(“%c%c/n“,c1,c2); 程序运行后的输出结果是( )。 (分数:1.50)A.AbB.aaC.
10、AaD.Bb22.以下叙述中错误的是_。 (分数:1.50)A.C 语言中对二进制文件的访问速度比文本文件快B.C 语言中,随机文件以二进制代码形式存储数据C.语句 FILE fp;定义了一个名为 fp 的文件指针D.C 语言中的文本文件以 ASCII 码形式存储数据23.下列描述中正确的是_。 (分数:1.50)A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构24.有以下程序: struc STU char name10; int num; ; void f1(struct STU c) struct STU b=“LiSiG
11、uo”,2042; c=b; void f2(struct STU *c) struct STU b=“SunDan”,2044; *c=b; main( ) struct STU a=“YangSan”,2041,b=“WangYin”,2043 ; f1(a);f2( printf(“%d %d/n”,a.num,b.num); 执行后的输出结果是( )。 (分数:1.50)A.2041 2044B.2041 2043C.2042 2044D.2042 204325.以下叙述中正确的是_。 (分数:1.50)A.预处理命令行必须位于源文件的开头B.在源文件的一行上可以有多条预处理命令C.宏
12、名必须用大写字母表示D.宏替换不占用程序的运行时间26.以下能正确定义一维数组的选项是_。 (分数:1.50)A.int a5=0,1,2,3,4,5;B.char a=0,1,2,3,4,5;C.char a=A,B,C;D.int a5=“0123“;27.有以下程序段 struct st int x;int *y;*pt; int a=1,2,b=3,4; struct st c2=10,a,20,b; pt=c; 以下选项中表达式的值为 11 的是_。(分数:1.50)A.*pt-yB.pt-xC.+pt-xD.(pt+)-x28.有以下程序: main( ) char s =“ABC
13、D“,*p; for(p=s+1;ps+4;p+)printf(“%s/n“,p); 程序运行后的输出结果是( )。 (分数:1.50)A.ABCD BCD CD DB.A B C DC.B C DD.BCD CD D29.若变量已正确定义,要求程序段完成求 5!的计算,不能完成此操作的程序段是( )。(分数:1.50)A.for(i=1,p=1;inext; r=q-next; sum+=q-next-num; sum+=r-next-next-num; printf(“%d/n“,sum); (分数:40.00)填空项 1:_63.以下程序运行后的输出结果是 1。 main( ) int
14、x=1,y=0,a=0,b=0; switch(x) case 1:switch(y) case 0:a+; break; case 1:b+; break; case 2:a+;b+; break; printf(“%d %d/n“,a,b); (分数:40.00)填空项 1:_64.以下程序运行后的输出结果是 1。 main2 int a,b,c; a=10; b=20; c=(a%b1); printf(“%d %d %d/n“,a,b,c); (分数:40.00)填空项 1:_65.以下程序运行后的输出结果是 1。 main2 char c; int n=100; float f=10
15、; double x; x=f*=n/=(c=50); printf(“%d %f/n“,n,x); (分数:40.00)填空项 1:_填空项 1:_66.数据的基本单位是 1。(分数:-1.00)填空项 1:_67.由关系数据库系统支持的完整性约束是指 1 和参照完整性。(分数:-1.00)填空项 1:_68.数据的逻辑结构有线性结构和 1 两大类。(分数:-1.00)填空项 1:_69.数据结构分为逻辑结构与存储结构,线性链表属于 1。(分数:-1.00)填空项 1:_70.数据库保护分为:安全性控制、 1、并发性控制和数据的恢复。(分数:-1.00)填空项 1:_计算机二级(C)7 答案
16、解析(总分:645.00,做题时间:120 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:40,分数:60.00)1.有以下程序 main( ) char str =“xyz“,*ps=str; while(*ps) ps+; for(ps-;ps-str=0;ps-) puts(ps); 执行后输出结果是( )。 (分数:1.50)A.yz xyzB.z yzC.z yz xyz D.x xy xyz解析:2.有以下程序: int f(int b 4) int i,j,s=0; for(j=0;j2) i=3-j; s+=bij; return s; main( ) i
17、nt a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0; printf(“%d/n”,f(a); 执行后的输出结果是( )。 (分数:1.50)A.12B.11C.18D.16 解析:3.若有说明语句:double *p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是_。 (分数:1.50)A.*p= scanf(“%lf“,p);B.*p= scanf(“%f“,p);C.p= scanf(“%lf“,*p);D.p= scanf(“%lf“,p); 解析:p=”,它等效于:int *p; p=, scanf()语句的格式是“scanf(格式控制,地址表
18、列)”, 在选项 D 中,“p”本身就代表着一个地址,故选项 D 正确。4.在一个 C 语言程序中( )。(分数:1.50)A.main( )函数必须出现在所有函数之前B.main( )函数可以在任何地方出现 C.main( )函数必须出现在所有函数之后D.main( )函数必须出现在固定位置解析:5.以下能正确定义数组并正确赋初值的语句是(分数:1.50)A.int N=5,bNN;B.int a12=1,3;C.int c2 =1,2,3,4;D.int d32=1,2,3,4; 解析:6.有一函数 (分数:1.50)A.if(x0)y=1; else if(x= =0)y=0; else
19、 y=-1;B.y=0; if(x0)y=1; else if(xC.y = 0; if (x = 0) if (x0) y = 1; else y = -1; D.if ( x = 0) if ( x0)y = 1; else y = 0; else y = -1;解析:7.有以下程序: #define P 3 void F(int x)return(P*x*x); main() printf(“%d/n“,F(3+5); 程序运行后的输出结果是_。 (分数:1.50)A.192B.29C.25D.编译出错 解析:return 语句用于从被调函数带回一个函数值。void 关键字表示“无类型”
20、,即不需要从被调函数中 带回函数值,所以不需要 return 语句,故编译时出错。8.在 Windows 环境下,PrintScreen 键的作用是( )。(分数:1.50)A.打印当前窗口的内容B.打印屏幕内容C.复制屏幕到剪贴板 D.复制当前窗口到剪贴板解析:9.有以下程序 void swap(char *x,char *y) char t; t=*x;*x=*y;*y=t; main() char *s1=“abc“,*s2=“123“; swap(s1,s2); printf(“%s,%s/n“,s1,s2); 程序执行后的输出结果是_。 (分数:1.50)A.123,abcB.abc
21、,123C.1bc,a23 D.321,cba解析:此题考核的知识点是指针变量值的交换。C 语言中,字符串常量在内存中是以字符数组的形式进行 存放的,因此字符指针 x 和 y 指向的是各字符串的首地址,也就是字符串第一个字符的地址,则*x 与*y 交 换的是字符串的第一个字符,即字符“a”与“1”的交换,而字符串中其它字符保持不变,所以答案选 C。10.在 DOS 环境下,代表键盘和显示器的设备文件名为( )。(分数:1.50)A.PRNB.CON C.NULD.LPT解析:11.有以下程序: #include main() FILE *fp; int i,k,n; fp=fopen(“dat
22、a.dat“,“w+“); for(i=1;iA.0 0B.123 45C.1 4D.1 2 解析:语句“fprintf(fp,“%d “,i);”的作用是将变量 i 的值按“%d”的格式输出到 fp 指向的文件上;“rewind(fp)” 的作用是使指针重新返回文件的开头;“fscanf(fp,“%d%d“,printf(“%d/n“,c 程序运行后的输出结果是_。 (分数:1.50)A.0B.70C.35 D.1解析: 按位“与”时,1 语句的作用是使位置指针从文件尾向前移 2*sizeof(int)字节) #include stdio.h main( ) FILE *fp; int i,
23、a4=1,2,3,4,b; fp=fopen(“data.dat“,“wb“); for(i=0;iA.2B.1C.4D.3 解析:18.已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码是 97,则用八进制表示的字符常量/101是( )。(分数:1.50)A.字符 A B.字符 aC.字符 eD.非法的常量解析:字符,/101,所对应的八进制数为 101,转换成十进制数为 65。19.有以下程序: main() char a1=M,a2=m; printf(“%c/n“,(a1,a2); 以下叙述中正确的是_。(分数:1.50)A.程序输出大写字母 MB.程序输
24、出小写字母 m C.格式说明符不足,编译出错D.程序运行时产生出错信息解析:在逗号表达式(表达式 1,表达式 2)中,其运算方法是先求表达式 1 的值,然后求表达式 2 的值, 整个逗号表达式的值是表达式 2 的值。故本题输出的是 a2 的值 m。20.在计算机中,一个字节所包含二进制位的个数是( )。(分数:1.50)A.2B.4C.8 D.16解析:21.有以下程序 void fun(char *a, char *b) a=b; (*a)+; main( ) char c1=A,c2=a,*p1,*p2; p1= p2= fun(p1,p2); printf(“%c%c/n“,c1,c2)
25、; 程序运行后的输出结果是( )。 (分数:1.50)A.Ab B.aaC.AaD.Bb解析:22.以下叙述中错误的是_。 (分数:1.50)A.C 语言中对二进制文件的访问速度比文本文件快B.C 语言中,随机文件以二进制代码形式存储数据C.语句 FILE fp;定义了一个名为 fp 的文件指针 D.C 语言中的文本文件以 ASCII 码形式存储数据解析:FILE 是由系统定义的一个结构体类型,并用该类型来定义若干个 FILE 类型的变量,以便存放若干 个文件。所以用 FILE 定义的变量必须是数组或指针,所以选项 C 中的“FILE fp;”改为“FILE *fp;”就 对了。23.下列描述
26、中正确的是_。 (分数:1.50)A.线性链表是线性表的链式存储结构 B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构解析:根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与 非线性结构。如果一个非空的数据结构满足下列两个条件: 有且只有一个根结点; 每个结点最多有 一个前件,也最多有一个后件。则称该数据结构为线性结构,又称线性表。所以线性表、栈与队列、线性 链表都是线性结构,而二叉树是非线性结构。24.有以下程序: struc STU char name10; int num; ; void f1(struct STU c)
27、 struct STU b=“LiSiGuo”,2042; c=b; void f2(struct STU *c) struct STU b=“SunDan”,2044; *c=b; main( ) struct STU a=“YangSan”,2041,b=“WangYin”,2043 ; f1(a);f2( printf(“%d %d/n”,a.num,b.num); 执行后的输出结果是( )。 (分数:1.50)A.2041 2044 B.2041 2043C.2042 2044D.2042 2043解析:25.以下叙述中正确的是_。 (分数:1.50)A.预处理命令行必须位于源文件的开
28、头B.在源文件的一行上可以有多条预处理命令C.宏名必须用大写字母表示D.宏替换不占用程序的运行时间 解析: 通常,预处理命令位于源文件的开头,也可以写在函数与函数之间;不能在一行上写多条预处理命 令;宏名一般习惯用大写字母表示,以便与变量名相区别,但这并非规定,也可用小写字母。26.以下能正确定义一维数组的选项是_。 (分数:1.50)A.int a5=0,1,2,3,4,5;B.char a=0,1,2,3,4,5; C.char a=A,B,C;D.int a5=“0123“;解析: 选项 A 中定义的是 5 个数组元素,但赋值的时候赋的是 6 个元素,所以出错;选项 C 不符合数组 定义
29、形式,数组名后应加上“”;选项 D 的类型说明符错误,如果用 char 定义就对了;选项 B 中的 0,1,2,3,4,5 分别表示对应字符的 ASCII 码,所以选项 B 是正确的。27.有以下程序段 struct st int x;int *y;*pt; int a=1,2,b=3,4; struct st c2=10,a,20,b; pt=c; 以下选项中表达式的值为 11 的是_。(分数:1.50)A.*pt-yB.pt-xC.+pt-x D.(pt+)-x解析:此题主要考核的是结构体类型的指针。题目中定义了一个 st 结构体类型,然后定义了 st 型的结构体 指针变量*pt 及结构体
30、数组 c,并对结构体数组进行了初始化,且将结构体指针变量 pt 指向了数组 c,则 pt-x 的值为 10,则+pt-x 的值为 11(注:“-”运算符的优先级高于“+”),故选项 C 正确。28.有以下程序: main( ) char s =“ABCD“,*p; for(p=s+1;ps+4;p+)printf(“%s/n“,p); 程序运行后的输出结果是( )。 (分数:1.50)A.ABCD BCD CD DB.A B C DC.B C DD.BCD CD D 解析:29.若变量已正确定义,要求程序段完成求 5!的计算,不能完成此操作的程序段是( )。(分数:1.50)A.for(i=1
31、,p=1;i0。故本题经过排序后,得到第二个字符串是“abbd”,所以输出结果是 4。33.已定义以下函数 int fun(int *p) return *p; fun 函数返回值是_。 (分数:1.50)A.不确定的值B.一个整数 C.形参 p 中存放的值D.形参 p 的地址值解析:函数值的类型应当是在定义函数时指定的。在定义函数时对函数值说明的类型一般和 return 语句中 的表达式类型一致,即函数类型决定返回值的类型。此题中定义函数类型为 int 型,故函数返回值也为整型。34.有以下程序: main() int p8=11,12,13,14,15,16,17,18,i=0,j=0;
32、while(i+A.42B.45 C.56D.60解析:本程序的作用是求除 p0外的其他奇数的和。35.以下程序的功能是按顺序读入 10 名学生 4 门课程的成绩,计算出每位学生的平均分并输出,程序如下:main( ) int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+) scanf(“%f“,score);sum+=score; ave=sum/4.0; printf(“NO%d:%f/n“,n,ave); 上述程序运行后结果不正确,调试中发现有条语句出现在程序中的位置不正确。这条语句是( )。 (分数
33、:1.50)A.sum=0.0; B.sum+=score;C.ave=sum/4.0;D.printf(“NO%d:%f/n“,n,ave);解析:本题中 sum 用来保存每位学生的总成绩,所以在计算不同学生的总成绩时,应将 sum 重新赋值 初值 0,即语句 sum=0.0;,它应在第二个 for 语句前执行。36.下列关于 C 语言用户标识符的叙述中正确的是( )。(分数:1.50)A.用户标识符中可以出现下划线和中划线(减号)B.用户标识符中不可以出现中划线,但可以出现下划线 C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头D.用户标识符中可以出现下划线和数字,它们都可以放
34、在用户标识符的开头解析:37.有以下程序: #includestdlib.h struct NODE int num;stmct NODE *next;main( ) struct NODE * p, * q,* r; p=(struct NODE * )malloc(sizeof(struct NODE) ); q=(struct NODE * )malloc(sizeof(struct NODE) ); r=(struct NODE * )malloc(sizeof(struct NODE) ); p-num=10; q-num=20; r-num=30; p-next=q; q-next
35、=r; printf(“%d/n“,p-num+q-next-num); 程序运行后的输出结果是( )。 (分数:1.50)A.10B.20C.30D.40 解析:本题主要考查利用结构体变量构成链表,链表关系如下: 38.以下叙述中错误的是_。 (分数:1.50)A.可以通过 typedef 增加新的类型 B.可以用 typedef 将已存在的类型用新的名字来代表C.用 typedef 定义新的类型名后,原有类型名仍有效D.用 typedef 可以为各种类型起别名,但不能为变量起别名解析: 选项 A 错误,原因是 typedef 可以声明新的类型名来代替已有的类型名,但却不能增加新的类型。39
36、.有以下程序: #include main() char p=a,b,c,q10=a,b,c; printf(“%d %d/n“,strlen(p),strlen(q); 以下叙述中正确的是_。(分数:1.50)A.在给 p 和 q 数组置初值时,系统会自动添加字符串结束符,故输出的长度都为 3B.由于 p 数组中没有字符串结束符,长度不能确定;但 q 数组中字符长度为 3 C.由于 q 数组中没有字符串结束符,长度不能确定;但 p 数组中字符长度为 3D.由于 p 和 q 数组中没有字符串结束符,故长度都不能确定解析:strlen 是计算以“/0”结束的字符串的长度的函数,函数的值为字符串中
37、实际长度,不包括“/0”。 题中“q10=a,b,c”虽然给出了数组大小,即数组实际分配的存储空间,但此字符串只占用前 3 个存 储单元,其余存储单元系统自动加上“/0”,故数组 q 的长度为 3;由于 p 数组中没有字符串结束符,故字 符串的长度不能确定。40.Internet 的通信协议是( )。(分数:1.50)A.TCP/IP B.BBSC.WWWD.FTP解析:41.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。(分数:-1.00)A.控制流 B.加工C.数据存储D.源和潭解析:数据流图包括 4 个方面,即
38、加工(转换)(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体)。不包括选项中的控制流。42.开发大型软件时,产生困难的根本原因是( )。(分数:-1.00)A.大系统的复杂性 B.人员知识不足C.客观世界千变万化D.时间紧、任务重解析:软件的显著特点是规模庞大,复杂度超线性增长,在开发大型软件时,要保证高质量,极端复杂困难,不 仅涉及技术问题,更重要的是必须要有严格而科学的管理。43.下列关系运算的叙述中,正确的是( )。(分数:-1.00)A.投影
39、、选择、连接是从二维表行的方向进行的运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表列的方向进行的运算 D.以上 3 种说法都不对解析:在关系模型的数据语言中,一般除了运用常规的集合运算(并、交、差、笛卡尔积等),还定义了一些专门的关系运算,如投影、选择、连接等。前者是将关系 (即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行的。后者是从二维表的列的方向来进行运算的。44.已知数据表 A 中每个元素距其最终位置不远,为节省时间,应采用的算法是( )。(分数:-1.00)A.堆排序B.直接插入排序 C.快速排序D.直接选择排序解析:当数据表 A 中
40、每个元素距其最终位置不远,说明数据表 A 按关键字值基本有序,在待排序序列基本有序的情况下,采用插入排序所用时间最少,故答案为选项 B) 。45.在设计程序时,应采纳的原则之一是( )。(分数:-1.00)A.不限制 goto 语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解 解析:滥用 goto 浯句将使程序流程无规律,可读性差,因此选项 A)不选; 注解行有利于对程序的理解,不应减少或取消,选项 B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项 C)也不选。46.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( )。(分数:
41、-1.00)A.特定的数据模型 B.数据无冗余C.数据可共享D.专门的数据管理软件解析:在文件系统中,相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,易造成存储空间大量浪费,不方便使用。而在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描述数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。47.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的( )。(分数:-1.00)A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性 D.激活机制和控制方法解析:模块的独立程序是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和
42、内聚性两个定性的度量标准。48.关系模型允许定义 3 类数据约束,下列不属于数据约束的是( )。(分数:-1.00)A.实体完整性约束B.参照完整性约束C.域完整性约束 D.用户自定义的完整性约束解析:关系模型允许定义 3 类数据约束,它们是实体完整性约束、参照完整性约束及用户自定义的完整性约束。其中前两种完整性约束由关系数据库系统支持,对于用户自定义的完整性约束,则由关系数据库系统提供完整性约束语言,用户利用该语言给出约束条件,运行时由系统自动检查。49.下列 SQL 语句中,用于修改表结构的是( )。(分数:-1.00)A.ALTER B.CREATEC.UPDATED.INSERT解析:
43、SQL 语句中凡创建都用 CREATE,删除都用 DROP,改变用 ALTER,再跟类型和名字附加子句。50.数据结构中,与所使用的计算机无关的是数据的( )。(分数:-1.00)A.存储结构B.物理结构C.逻辑结构 D.物理和存储结构解析:数据结构概念一般包括 3 个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。三、填空题(每空 2 分,共 40 分)(总题数:15,分数:600.00)51.以下程序运行后的输出结果是 1。 main2 int x=10,y=20,t=0; if(x= =y)t=x
44、;x=y;y=t printf(“%d,%d/n“,x,y); (分数:40.00)填空项 1:_ (正确答案:20,0)解析:52.计算机软件分为系统软件和应用软件,UNIX 系统属于 1。(分数:40.00)填空项 1:_ (正确答案:系统软件)解析:53.若 fp 已正确定义为一个文件指针,d1.dat 为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen 1;。 (分数:40.00)填空项 1:_ (正确答案:“dl.dat“,“rb“ 或“dldat“,“r+b“ 或“dl.dat“,“rb+“。)解析:54.在面向对象方法中 1 描述的是具有相似属性与操作的一组对象。(
45、分数:40.00)填空项 1:_ (正确答案:类)解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以, 类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。55.在 DOS 环境下,表示打印机的设备文件名是 1。(分数:40.00)填空项 1:_ (正确答案:PRN)解析:56.有以下程序 main( ) int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%d/n”,x); 执行后输出结果是 1。 (分数:40.00)填空项 1:_ (正确答案:-4)解析:57.在关系模型中,把数据看成是二维表,每一个二维表称为一个 1。(分数:40.00)填空项 1:_ (正确答案:关系)解析:在 Visual FoxPro 中,一个“表”就是一个关系。一个关系的逻辑结构就是一张二维表。58.假设在当前盘的当前目录下有两个文件 A.TXT 和 B.TXT,现要将文件 B.TXT 合并连接到文件 A.TXT 的后面。若使用 TYPE 命令,则完整的命令为 1。(分数:40.00)填空项 1:_ (正确答案:TYPE B.TXT A.TXT)解