1、二级 C 语言-29 及答案解析(总分:79.50,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:47.50)1.有以下程序main() int i;for(i=0;i3;i+)switch(i) case 0: printf(“%d“,i);case 2: printf(“%d“,i);default: printf(“%d“,i);程序运行后的输出结果是_。 A. 022111 B. 021021 C. 000122 D. 012(分数:1.00)A.B.C.D.2.在计算机中,算法是指 _ 。 A. 查询方法 B. 加工方法 C. 解题方案的准确而完整的描述 D. 排序方法
2、 (分数:1.00)A.B.C.D.3.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为 A. 课号,成绩 B. 学号,成绩 C. 学号,课号 D. 学号,姓名,成绩(分数:2.00)A.B.C.D.4.以下不能定义为用户标识符的是_。 A. scanf B. Void C. _3com D. int(分数:1.00)A.B.C.D.5.若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后,a 的值是 _ 。 A. -3 B. 9 C. -12 D. 6 (
3、分数:1.00)A.B.C.D.6.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W 的是_。 A.ab+c B.ch=getchar() C.a=b+c D.a+(分数:2.50)A.B.C.D.7.有以下程序#includemain() char p20=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(分数:2.00)A.B.C.D.8.现在有以下定义,int
4、a;double b;float c;char k;则下面的表达式 a/b+c-k 值的类型为: A. int B. double C. float D. char(分数:1.00)A.B.C.D.9.以下程序的结果是_。int a,b;void fun() a=100;b=200;main() int a=5,b=7;fun();printf(“%d%d/n“,a,b) ; A. 100200 B. 57 C. 200100 D. 75(分数:1.00)A.B.C.D.10.下列程序段的输出结果是int n=c;switch(n+)default: printf(“error“);break
5、;case a: case A: case b: case B: printf(“good“);break;case c: case C: printf(“pass“);case d: case D: printf(“warn“); A. passwarn B. passerror C. goodpasswarn D. pass(分数:1.00)A.B.C.D.11.设 q1 和 q2 是指向一个 int 型一维数组的指针变最,k 为 float 型变量,下列小能正确执行的语句是U /U。 A. k=*q1*(*q2); B. q1=k; C. q1=q2; D. k=*q1+*q2;(分数:
6、2.00)A.B.C.D.12.已知字母 A 的 ASCII 代码值为 65,若变量 kk 为 char 型,下列不能正确判断出比中的值为大写字母的表达式是( )。 A. kk=Aprintf(“x=%d,y=%d,=%d/n“,x,y,a); A. x=4,y=4,a=1 B. x=5,y=5,a=1 C. x=5,y=4,a=3 D. x=5,y=4,a=1(分数:2.00)A.B.C.D.17.DOS 文件系统的组织结构属于_。 A. 星形结构 B. 网形结构 C. 环形结构 D. 树形结构(分数:1.00)A.B.C.D.18.设有以下定义:typedef union longi; i
7、nt k5;char c;DATE;srtuct date int cat;DATEcow;double dog; too;DATE max;则下语句的执行结果是 ( )printf(“%d,“sizeof(struct date)+size of(max); A.25 B.30 C.18 D.8 (分数:1.00)A.B.C.D.19.阅读下列程序,则运行结果为#include “stdio.h“fun()static int x=3;x+;return x;main()int i,x;for(i=0;i3;i+)x=fun();printf(“%d/n“,x); A. 3 B. 4 C.
8、5 D. 6(分数:1.00)A.B.C.D.20.有以下程序:#includestdio.hmain()unsigned char a=8, c; c=a3; printf(“%d/n“, c); 程序运行后的输出结果是 A. 32 B. 16 C. 1 D. 0(分数:2.00)A.B.C.D.21.有以下程序:#includestdio.hvoid fun(char*p,int n) char b6=“abcde“;int i;for(i=0,p=b;in;i+)pi=bi;main() char a6=“ABCDE“;fun(a,5);printf(“%s/n“,a);程序运行后的输出
9、结果是_。 A.abcde B.ABCDE C.edcba D.EDCBA(分数:1.00)A.B.C.D.22.下列关于 C 语言文件的叙述中正确的是 A. 文件由一系列数据依次排列组成,只能构成二进制文件 B. 文件由结构序列组成,可以构成二进制文件或文本文件 C. 文件由数据序列组成,可以构成二进制文件或文本文件 D. 文件由字符序列组成,其类型只能是文本文件(分数:2.00)A.B.C.D.23.有如下程序:#include stdio.hint func(int a,int b) return(a+b):main() int x=2,y=5,z=8,r;r=func(func(x,y
10、),z);printf(“%d/n“,r);该程序的输出结果是U /U。 A. 12 B. 13 C. 14 D. 15(分数:1.00)A.B.C.D.24.有以下程序:#define P3void F(int x)return(P*x*x);main()printf(“%d/n“,F(3+5);程序运行后的输出结果是 _。 A.192 B.29 C.25 D.编译出错 (分数:1.00)A.B.C.D.25.算法具有五个特性,以下选项中不属于算法特性的是 _。 A.有穷性 B.简洁性 C.可行性 D.确定性 (分数:1.00)A.B.C.D.26.下列叙述中正确的是( )。 A. 数据库系
11、统是一个独立的系统,不需要操作系统的支持 B. 数据库技术的根本目标是要解决数据的共享问题 C. 数据库管理系统就是数据库系统 D. 以上 3 种说法都不对(分数:1.00)A.B.C.D.27.一个 C 程序中_。 A. main 函数必须出现在所有函数之前 B. main 函数可以在任何地方出现 C. main 函数必须出现在所有函数之后 D. main 函数必须出现在固定位置(分数:2.00)A.B.C.D.28.下列叙述中,不属于结构化分析方法的是_。 A. 面向数据流的结构化分析方法 B. 面向数据结构的 Jackson 方法 C. 面向数据结构的结构化数据系统开发方法 D. 面向对
12、象的分析方法(分数:1.00)A.B.C.D.29.已知函数的调用形式:fread(buffer,size,count,fp);其中 buffer 代表的是U /U。 A. 一个整型变量,代表要读入的数据项总数 B. 一个文件指针,指向要读的文件 C. 一个指针,是指向的输入数据放在内存中的起始位置 D. 一个存储区,存放要读的数据项(分数:2.00)A.B.C.D.30.有以下程序main()int a=3,b=4,c=5,d=2;if(aB) if(bC) printf (“%d“, d+ +1);elseprintf(“%d“, +d +1);printf(“%d/n“, D) ;程序运
13、行后的输出结果是 A. 2 B. 3 C. 43 D. 44(分数:1.00)A.B.C.D.31.若有以下定义和语句 ( )int u010,vOx10,w10;printf(“%d,%d%d/n“,u,v,w);则输出结果是 A.8,16,10 B.10,10,10 C.8,8,10 D.8,10,10(分数:1.00)A.B.C.D.32.数据库设计中反映用户对数据要求的模式是_。 A.内模式 B.概念模式 C.外模式 D.设计模式(分数:1.00)A.B.C.D.33.以下程序#includestdio.h#includestring.hmain() char*pl=“abc“,*p2
14、=“ABC“,str50=“xyz“;strcpy(str+2.strcat(p1,p2);printf(“%s/n,str);的输出是_。 A. xyzabcABC B. zabcABC C. yzabcABC D. xyabcABC(分数:2.00)A.B.C.D.34.若执行下列程序时从键盘上输入 2,则输出结果是U /U。#includestdio.hmain() int a;scanf(“%d“, B. char A=65+1,b=b; C. float a=1,*b=a,*c=b; D. double a=0.0;b=1.1;(分数:1.00)A.B.C.D.二、B填空题/B(总题
15、数:15,分数:32.00)36.数据库三级模式体系结构的划分,有利于保持数据库的U U /U /U。(分数:1.00)填空项 1:_37.阅读下面程序段,则执行后输出的结果是U U /U /U。 #include “stdio.h“ main() char fun(char,int); char a=A; int b=13; a=fun(a,b); putchar(a); char fun(char a,int b) char k; k=a+b; return k;(分数:2.00)填空项 1:_38.若 fp 已正确定义为个文件指针,d1.dd 为二进制文件,请填空,以便为“读”而打开此文
16、件:fp=fopen(_);。(分数:3.00)填空项 1:_39.以下程序用来输出结构体变量 student 所占存储单元的字节数,请填空。 struct st char name20;double score; ; main() struct st student; printf(“student size:%d/n“,sizeof(_); (分数:2.00)填空项 1:_40.以下程序输出的最后一个值是_。 int ff(int n) static int f=1; f=f*n; return f main() int i; for(i=1;i=5;i+) printf(“%d “,ff
17、(i); (分数:1.00)填空项 1:_41.顺序存储方法是把逻辑上相邻的结点存储在物理位置 1 的存储单元中。(分数:1.00)填空项 1:_42.在树形结构中,树根结点没有U U /U /U。(分数:1.00)填空项 1:_43.下述程序的输出结果是U U /U /U。 #includestdio.h int fun(int x) int p; if(x=0|x=1) return 3; else p=x-fun(x-2); return p; void main() printf(“/n%d“,fun(9);(分数:1.00)填空项 1:_44.己定义 char ch=$;int i=
18、l,j;,执行 j=!ch a=(int)(double)(3/2)+0.5+(int)1.99*2); printf(“%d/n“, a); (分数:2.00)填空项 1:_50.设有如下图所示的二叉树: (分数:4.00)填空项 1:_二级 C 语言-29 答案解析(总分:79.50,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:47.50)1.有以下程序main() int i;for(i=0;i3;i+)switch(i) case 0: printf(“%d“,i);case 2: printf(“%d“,i);default: printf(“%d“,i);程序运行后
19、的输出结果是_。 A. 022111 B. 021021 C. 000122 D. 012(分数:1.00)A.B.C. D.解析:2.在计算机中,算法是指 _ 。 A. 查询方法 B. 加工方法 C. 解题方案的准确而完整的描述 D. 排序方法 (分数:1.00)A.B.C. D.解析:解析 计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。3.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为 A. 课号,成绩 B. 学号,成绩
20、 C. 学号,课号 D. 学号,姓名,成绩(分数:2.00)A.B.C. D.解析:解析 “选课 SC”表是“学生 S”表和“课程 C”表的映射表,主键是两个表主键的组合。4.以下不能定义为用户标识符的是_。 A. scanf B. Void C. _3com D. int(分数:1.00)A.B.C.D. 解析:解析 本题选项 D 中 int 为 C 语言的保留字,是错误的。注意:C 语言的标识符是区分大小写的,void 是 C 语言的保留字,而 Void 不是 C 语言的保留字,故 Void 也可定义为用户标识符。5.若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*
21、a 后,a 的值是 _ 。 A. -3 B. 9 C. -12 D. 6 (分数:1.00)A.B.C. D.解析:解析 C 语言中对赋值运算的运算的运算顺序是自右向左。本题中,计算 a*a 之后,a 的值依然为3,表达式 a*a 的值为 9;a-=9, a=3-9=-6:a+=-6,a=-6+-6=-12。6.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W 的是_。 A.ab+c B.ch=getchar() C.a=b+c D.a+(分数:2.50)A. B.C.D.解析:解析 选项 A 是非法的表达式,C 语言中没有“”运算符。7.有以下程序#in
22、cludemain() char p20=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(分数:2.00)A.B. C.D.解析:8.现在有以下定义,int a;double b;float c;char k;则下面的表达式 a/b+c-k 值的类型为: A. int B. double C. float D. char(分数:1.00)A.B. C.D.解析:解析 双目运算中两边运算量类型转换规律:
23、运算数 1 运算数 2 转换结果类型 短整型 长整型 短整型-长整型 整型 长整型 整型-长整型 字符型 整型 字符型-整型 有符号整型无符号整型有符号整型-无符号整型 整型 浮点型 整型-浮点型 在 a/b 的时候,a,b 的类型不一致,根据类型转换规则,把整型转换成 double 类型,之后的加,减类似。转化规则为char,shortintunsignedlongdoublefloat9.以下程序的结果是_。int a,b;void fun() a=100;b=200;main() int a=5,b=7;fun();printf(“%d%d/n“,a,b) ; A. 100200 B.
24、57 C. 200100 D. 75(分数:1.00)A.B. C.D.解析:解析 全程变量是可以在于函数中对其值作改变,且它也可作为函数间的值传递。但当函数或子函数中定义了与全程变量名称相同的局部变量,则全程变量将被屏蔽。10.下列程序段的输出结果是int n=c;switch(n+)default: printf(“error“);break;case a: case A: case b: case B: printf(“good“);break;case c: case C: printf(“pass“);case d: case D: printf(“warn“); A. passwa
25、rn B. passerror C. goodpasswarn D. pass(分数:1.00)A. B.C.D.解析:解析 本题的考查点是 switch()语句。当用户输入的字符时,会进入一个多分支选择语句,根据n 的值,来确定下一步执行的选择语句;最后的结果应当为 passwarn。本题需要注意的是,当 case 语句没有跟随 break 语句时,不会跳出 switch,而是继续执行下一个 case 语句,直至遇到 break 语句。11.设 q1 和 q2 是指向一个 int 型一维数组的指针变最,k 为 float 型变量,下列小能正确执行的语句是U /U。 A. k=*q1*(*q2
26、); B. q1=k; C. q1=q2; D. k=*q1+*q2;(分数:2.00)A.B. C.D.解析:解析 本题考查指针变量的赋值操作。选项 A)是将指针 q1 和 q2 所指向的变量值相乘,然后赋给k;选项 B)中,float 型数据和指引型数据之间不能进行赋值运算;选项 C)中,是两个指针变量之间的赋值;选项 D)中,是两个指针型变量所指向的两个 int 型数据相加。12.已知字母 A 的 ASCII 代码值为 65,若变量 kk 为 char 型,下列不能正确判断出比中的值为大写字母的表达式是( )。 A. kk=Aprintf(“x=%d,y=%d,=%d/n“,x,y,a)
27、; A. x=4,y=4,a=1 B. x=5,y=5,a=1 C. x=5,y=4,a=3 D. x=5,y=4,a=1(分数:2.00)A.B.C.D. 解析:解析 注意的是 x+中 x 值的引用时,这里应当是先引用,后自加,具体执行过程如下: 第次while 循环:条件为真,执行 a=a+1=1;此时,x 的值已为 4,判断 yx 不成立,继续执行循环; 第二次while 循环;条件为假,此时 x 的值已为 5,退出 while 循环,执行 printf。17.DOS 文件系统的组织结构属于_。 A. 星形结构 B. 网形结构 C. 环形结构 D. 树形结构(分数:1.00)A.B.C.
28、D. 解析:解析 在 DOS 文件系统中,我们打开了一个文件夹,可以看到一个或者若干个子文件夹和文件,在这些子文件夹中,我们同样可以看到若干文件或者文件夹,这给人一种形象的树形结构的概念。首先存在有一个根文件夹,然后通过这个根文件夹可以找到文件的目标位置。18.设有以下定义:typedef union longi; int k5;char c;DATE;srtuct date int cat;DATEcow;double dog; too;DATE max;则下语句的执行结果是 ( )printf(“%d,“sizeof(struct date)+size of(max); A.25 B.30
29、 C.18 D.8 (分数:1.00)A.B. C.D.解析:19.阅读下列程序,则运行结果为#include “stdio.h“fun()static int x=3;x+;return x;main()int i,x;for(i=0;i3;i+)x=fun();printf(“%d/n“,x); A. 3 B. 4 C. 5 D. 6(分数:1.00)A.B.C.D. 解析:解析 在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,静态局部变量的初值是在编译的时候赋予的,在程序执行期间不再赋予初值
30、。本题由于连续 3 次调用函数 fun(),3 次对静态变量 x进行操作,x 的值应依次为 4,5,6。20.有以下程序:#includestdio.hmain()unsigned char a=8, c; c=a3; printf(“%d/n“, c); 程序运行后的输出结果是 A. 32 B. 16 C. 1 D. 0(分数:2.00)A.B.C. D.解析:解析 本题中将 8 赋值给字符变量 a,则 a 的二进制为“00001000”,a3 的位运算是把 a 向右移动 3 位,结果为“00000001”,输出其十进制的值 1。21.有以下程序:#includestdio.hvoid fu
31、n(char*p,int n) char b6=“abcde“;int i;for(i=0,p=b;in;i+)pi=bi;main() char a6=“ABCDE“;fun(a,5);printf(“%s/n“,a);程序运行后的输出结果是_。 A.abcde B.ABCDE C.edcba D.EDCBA(分数:1.00)A.B. C.D.解析:解析 本题考查数组名作为函数参数。执行 f 函数时,传进去的 a 指针被重新指向了 b,所以原本 a 数组的地址内容不变,输出结果为“ABCDE”,答案为 B 选项。22.下列关于 C 语言文件的叙述中正确的是 A. 文件由一系列数据依次排列组成
32、,只能构成二进制文件 B. 文件由结构序列组成,可以构成二进制文件或文本文件 C. 文件由数据序列组成,可以构成二进制文件或文本文件 D. 文件由字符序列组成,其类型只能是文本文件(分数:2.00)A.B.C. D.解析:解析 文件由数据序列组成,可以构成二进制文件,也可以构成文本文件。23.有如下程序:#include stdio.hint func(int a,int b) return(a+b):main() int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%d/n“,r);该程序的输出结果是U /U。 A. 12 B. 13 C. 14 D.
33、 15(分数:1.00)A.B.C.D. 解析:解析 在表达式 r=func(func(x,y),z)中,func(x,y)是第一次调用函数,它的返回值 7 作为 func函数第二次调用的实参,结果为 15。24.有以下程序:#define P3void F(int x)return(P*x*x);main()printf(“%d/n“,F(3+5);程序运行后的输出结果是 _。 A.192 B.29 C.25 D.编译出错 (分数:1.00)A.B.C.D. 解析:解析 return 语句用于从被调函数带回一个函数值。void 关键字表示“无类型”,即不需要从被调函数中带回函数值,所以不需要
34、 return 语句,故编译时出错。25.算法具有五个特性,以下选项中不属于算法特性的是 _。 A.有穷性 B.简洁性 C.可行性 D.确定性 (分数:1.00)A.B. C.D.解析:解析 有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性是算法的基本特性。26.下列叙述中正确的是( )。 A. 数据库系统是一个独立的系统,不需要操作系统的支持 B. 数据库技术的根本目标是要解决数据的共享问题 C. 数据库管理系统就是数据库系统 D. 以上 3 种说法都不对(分数:1.00)A.B. C.D.解析:数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编
35、译系统、应用软件开发工具等,选项 A 的说法是错误的数据库具有为各种用户所共享的特点,选项 B 的说法是正确的。通常将引入数据库技术的计算机系统称为数据库系统。一个数据库系统通常由 5 个部分组成,包括相关计算机的硬件、数据库集合、数据库管理系统、相关软件和人员。因此,选项 C 的说法是错误的。27.一个 C 程序中_。 A. main 函数必须出现在所有函数之前 B. main 函数可以在任何地方出现 C. main 函数必须出现在所有函数之后 D. main 函数必须出现在固定位置(分数:2.00)A.B. C.D.解析:解析 本题主要考查 main 函数的基本知识。main 函数可以出现
36、在 C 程序的任何地方。28.下列叙述中,不属于结构化分析方法的是_。 A. 面向数据流的结构化分析方法 B. 面向数据结构的 Jackson 方法 C. 面向数据结构的结构化数据系统开发方法 D. 面向对象的分析方法(分数:1.00)A.B.C.D. 解析:解析 常见的需求分析方法有结构化分析方法和面向对象的分析方法两类。其中结构化分析方法又包括面向数据流的结构化分析方法(SA,Structured analysis)、面向数据结构的 Jackson 方法(JSD,Jackson system development method) 和面向数据结构的结构化数据系统开发方法(DSSD,Data
37、 structured system development method) 。29.已知函数的调用形式:fread(buffer,size,count,fp);其中 buffer 代表的是U /U。 A. 一个整型变量,代表要读入的数据项总数 B. 一个文件指针,指向要读的文件 C. 一个指针,是指向的输入数据放在内存中的起始位置 D. 一个存储区,存放要读的数据项(分数:2.00)A.B.C. D.解析:解析 数据块输入/输出函数的调用形式为:fread(buffer,size,count,fp)。 fread 函数参数说明:“buffer”是一个指引,对 fread 来说,它是读入数据的
38、存放地址;“size”是要读写的字节数;“count”是要进行读写多少个 size 字节的数据项;“fp”是指文件型指针。30.有以下程序main()int a=3,b=4,c=5,d=2;if(aB) if(bC) printf (“%d“, d+ +1);elseprintf(“%d“, +d +1);printf(“%d/n“, D) ;程序运行后的输出结果是 A. 2 B. 3 C. 43 D. 44(分数:1.00)A. B.C.D.解析:解析 本题考核的知识点是 if-else 语句的程序分析。我们首先看程序中 if-else 的匹配,由于C 语言中规定 else 总是与最近的 i
39、f 搭配,因此程序中 else 与第二个订搭配,即该 if-else 语句为第一个 if 语句的执行部分,接着判断第一个 if 后面括号里的表达式的值“ab”为假(“34“为假),因此不执行后面 if-else 语句,程序将执行下面的输出语句输出 d,而 d 一直未被改变故为原来的值 2,所以,4 个选项中选项 A 符合题意。31.若有以下定义和语句 ( )int u010,vOx10,w10;printf(“%d,%d%d/n“,u,v,w);则输出结果是 A.8,16,10 B.10,10,10 C.8,8,10 D.8,10,10(分数:1.00)A. B.C.D.解析:32.数据库设计
40、中反映用户对数据要求的模式是_。 A.内模式 B.概念模式 C.外模式 D.设计模式(分数:1.00)A.B.C. D.解析:解析 数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,所以选择 C。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。33.以下程序#includestdio.h#includestring.hmain() char*pl=“abc“,*p2=“ABC“,str50=“xyz“;strcpy(str+2.strc
41、at(p1,p2);printf(“%s/n,str);的输出是_。 A. xyzabcABC B. zabcABC C. yzabcABC D. xyabcABC(分数:2.00)A.B.C.D. 解析:解析 strcat(p1,P2)将字符串 abcABC 放到了*pl 所指向的存储单元中;strcpy 在本题将 abcABC复制到 str+2 所指向的存储单元中,即覆盖原 str 数组中的字符 z 及其后的所有字符,故 str 的值为“xyabcABC”。34.若执行下列程序时从键盘上输入 2,则输出结果是U /U。#includestdio.hmain() int a;scanf(“%
42、d“, B. char A=65+1,b=b; C. float a=1,*b=a,*c=b; D. double a=0.0;b=1.1;(分数:1.00)A.B. C.D.解析:二、B填空题/B(总题数:15,分数:32.00)36.数据库三级模式体系结构的划分,有利于保持数据库的U U /U /U。(分数:1.00)填空项 1:_ (正确答案:数据独立性)解析:解析 数据库的三级模式体系结构把数据的组织管理工作进行了划分,把数据的具体组织留给DBMS 管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式,保证了数据的独立性。37.阅读下面程序段,则执行后
43、输出的结果是U U /U /U。 #include “stdio.h“ main() char fun(char,int); char a=A; int b=13; a=fun(a,b); putchar(a); char fun(char a,int b) char k; k=a+b; return k;(分数:2.00)填空项 1:_ (正确答案:N)解析:解析 函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符“A”的ASCII 码值上加上一个常数,使之变成另一个 ASCII 码值,从而输出字符。38.若 fp 已正确定义为个文件指针,d1.dd 为二进制文件,请填空,
44、以便为“读”而打开此文件:fp=fopen(_);。(分数:3.00)填空项 1:_ (正确答案:d1.dat“,“rb“或“d1.dat“,“r+b”或 “d1.dat“,“rb+“)解析:解析 本题考查的知识点是二进制文件的打开方式。打开文件的函数为 fopen(“文件名“ “mode“),其中“mode“表示文件的打开方式如果打开的是二进制文件,其 mode 字符串可以是:“rb“ “wb“、“ab“、“rb+“、“wb+“、“ab+“。“r“表示以只读方式打开。“w“表示以写方式打开,如果已有在该文件名的文件,文件中的内容将被清空。若文件名不存在,则将创建该文件“a“为追加方式打开。若
45、文件存在时,将打开这个文件并且在文件的末尾进行追加当文件不存在,将创建新文件。“r=“打开一个已有在文件用于更新(可读可写)。“w+“创建一个新文件用于更新,如果文件存在,文件被重写(可读可写)。“a+“打开用于追加,当文件不存在时,创建新文件,并在文件末尾进行追加(可读可写)。根据题意,应该填“d1.dat“,“rb“或其他等价的表达法。39.以下程序用来输出结构体变量 student 所占存储单元的字节数,请填空。 struct st char name20;double score; ; main() struct st student; printf(“student size:%d/n“,si