1、二级 C 语言-21 及答案解析(总分:74.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:47.00)1.使用视图之前,应首先U /U。 A. 新建一个数据库 B. 新建一个数据库表 C. 打开相关的数据库 D. 打开相关的数据表(分数:2.00)A.B.C.D.2.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和 U /U A. 可重用性差 B. 安全性差 C. 非持久性 D. 冗余性(分数:1.00)A.B.C.D.3.在软件开发过程中,软件结构设计是描述_。 A. 数据存储结构 B. 软件体系结构 C. 软件结构测试 D. 软附控制挝程 (分数:1.
2、00)A.B.C.D.4.用 MIPS 来衡量计算机性能的指标是 ( ) A.存储容量 B.可靠性 C.处理能力 D.运算速度 (分数:1.00)A.B.C.D.5.若有说明 int i,j=2,*p=,则能完成 i=j 赋值功能的语句是_。 A. i=*p B. *P=*printf(“%d/n“,strlen(p4);执行后的输出结果是 _。 A. 2 B. 3 C. 4 D. 5(分数:2.00)A.B.C.D.7.下列叙述中正确的是 A. 一个算法的空间复杂度大,则其时间复杂度也必定大 B. 一个算法的空间复杂度大,则其时间复杂度必定小 C. 一个算法的时间复杂度大,则其空间复杂度必定
3、小 D. 上述三种说法都不对(分数:2.00)A.B.C.D.8.在关系型的数据库管理系统中,3 种基本关系运算是_。 A. 选择、投影和连接 B. 选择、删除和复制 C. 创建、修改和合并 D. 统计、连接和分类(分数:2.00)A.B.C.D.9.下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数:876 675 896 101 301 401 980 431 451 777#includeconio.h#includestdio.hint fun(int *s,int t,int *k) int i;*k=0;for(i=0;it;i+)if(s*ksi)*k=i;return
4、 s*k;main() int a10=876,675,896,101,301,401,980,431,45l,777,k;clrscr();fun(a,10, A. 14 B. 8 C. 5 D. 输出项不合法,无正常输出A.B.C.D.11.若用数组名作为实参,则传递给形参的是_。 A. 数组的首地址 B. 数组第一个元素的值 C. 数组中全部元素的值 D. 数组元素的个数(分数:1.00)A.B.C.D.12.算法具有五个特性,以下选项中不属于算法特性的是_。 A. 有穷性 B. 简洁性 C. 可行性 D. 确定性(分数:2.00)A.B.C.D.13.数字字符 0 的 ASC值为 48
5、,若有以下程序:main()char a=1,b=2;printf(“%c,“,b+);printf(“%d/n“,b-a);程序运行后的输出结果是 A. 3,2 B. 50,2 C. 2,2 D. 2,50(分数:1.00)A.B.C.D.14.下列关于 C 语言数据文件的叙述中正确的是 A. 文件由 ASCII 码字符序列组成,C 语言只能读写文本文件 B. 文件由二进制数据序列组成,C 语言只能读写二进制文件 C. 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D. 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(分数:1.00)A.B.C.D.15.
6、关系表中的每一横行称为个_。 A. 元组 B. 字段 C. 属性 D. 码(分数:2.00)A.B.C.D.16.下列程序的输出结果是U /U。#includestdio.hmain()int a3,b2,c1;if(aB) if(bO)c0;else c+;printf(“%d/n“,c) ; A. 0 B. 2 C. 1 D. 3(分数:1.00)A.B.C.D.17.按照“后进先出”原则组织数据的数据结构是U /U。 A. 队列 B. 栈 C. 双向链表 D. 二叉树(分数:1.00)A.B.C.D.18.有以下程序段: char ch;int k; ch=a;k=12; printf(
7、“%c,%d,“,ch,ch);printf(“k=%d/n“,k); 已知字符 a 的 ASC码值为 97,则执行上述程序段后输出结果是U /U。 A)因变量类型与格式描述符的类型不匹配,输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 (分数:1.00)A.B.C.D.19.若变量已正确定义,则以下语句的输出结果是_。s=32; s=32; printf(“%d“,s); A. -1 B. 0 C. 1 D. 32(分数:2.00)A.B.C.D.20.结构化分析可以使用的工具是 A. N-S 图 B. DFD 图 C. P
8、AD 图 D. 程序流程图(分数:2.00)A.B.C.D.21.下列程序的运行结果是U /U。 #includestdio.h void fun(int*s,int*p) static int t=3; *p=st; t-; void main() int a=2,3,4,5,k,x; for(k=0;k4;k+) fun(a,S+;main() char strl100=“abcddfefdbd“,c=d:ss(strl,c);printf(“% s/n“ ,strl);程序运行后的输出结果是()。 A. ABCDDEFEDBD B. abcDDfeDbD C. abcAAfefAbA D
9、. Abcddfefdbd(分数:2.00)A.B.C.D.27.以下叙述中错误的是_。 A. C 语句必须以分号结束 B. 复合语句在语法上被看作一条语句 C. 空语句出现在任何位置都不会影响程序运行 D. 赋值表达式末尾加分号就构成赋值语句(分数:1.00)A.B.C.D.28.关系数据模型U /U A.只能表示实体间的 1:1 联系 B.只能表示实体间的 1:n 联系 C.只能表示实体间的 m:n 联系 D.可以表示实体间的上述 3 种联系(分数:1.00)A.B.C.D.29.在 C 语言中引用数组元素时,其数组下标的数据类型只能是U /U。 A. 整型常量 B. 整型表达式 C. 整
10、型常量或整型表达式 D. 任何类型的表达式(分数:1.00)A.B.C.D.30.结构化程序设计的 3 种结构是U /U。 A. 顺序结构,分支结构,跳转结构 B. 顺序结构,选择结构,循环结构 C. 分支结构,选择结构,循环结构 D. 分支结构,跳转结构,循环结构(分数:2.00)A.B.C.D.31.有以下程序#include stdio.hmain( ) FILE *fp; int i,k=0,n=0;fp=fopen(“d1.dat”,”w”);for(i=1;i4;i+) fprintf(fp,”%d”,i);fclose(fp);fp=fopen(“d1.dat”,”r”);fsc
11、anf(fp,”%d%d”, printf(“%d %d/n”,k,n);fclose(fp);执行后输出结果是( ) A.1 2 B.123 0 C.1 23 D. 0 0 (分数:1.00)A.B.C.D.32.定义如下变量:int n=10;则下列循环的输出结果是( )。while(n7) -n;printf(“%d/n“,n); A. 1098 B. 987 C. 10987 D. 9876(分数:1.00)A.B.C.D.33.有以下程序:typedef structint b,p;A;void f(A C /*C 是结构变量名*/int j;c.b+=1;c.p+=2;main()
12、int i;A a=1,2;f(A) ;printf(“%d,%d/n“,a.b,a.p);程序运行后的输出结果是U /U。 A. 2,3 B. 2,4 C. 1,4 D. 1,2(分数:2.00)A.B.C.D.34.开发软件时对提高开发人员工作效率至关重要的是 U /U A. 操作系统的资源管理功能 B. 先进的软件开发工具和环境 C. 程序人员的数量 D. 计算机的并行处理能力(分数:1.00)A.B.C.D.35.以下合法的赋值语句是( )。 A. x=y=100 B. d-; C. x+y; D. c=int(a+b);(分数:1.00)A.B.C.D.二、B填空题/B(总题数:15
13、,分数:27.00)36.有以下程序: main() int t=1,i=5; for(; i=0;i-) t*=i; printf(“%d/n“,t); 执行后输出结果是U U /U /U。(分数:2.00)填空项 1:_37.函数 strcmp( )的功能是对两个字符串进行比较,当 s 所指字符串和 t 所指字符串相等时,返回值为0; 当 s 所指字符串大于 t 所指字符串时,返回值大于 0;当 s 所指字符串小于 t 所指字符串时,返回值小于 0(功能等同于库函数 strcmp( ) ),请填空。 #include stdio.h int strcmp ( chat * s, char
14、* t) while( * s * t * s=U 【15】 /U s+;t+; return U 【16】 /U ; (分数:1.00)填空项 1:_38.若 a 是 int 型变量,则下列表达式的值为_。 (a=2*3,a*2) ,a+4(分数:2.00)填空项 1:_39.下程序的输出是U U /U /U。 main() char str1=“How do you do“,*p1=str1; strcpy(str1+strlen(str1)/2,“es she“); printf(“%s/n“,p1); (分数:1.00)填空项 1:_40.下列程序的输出结果是_。 long fun5(
15、int n) ( long s; if(n=l)(n=2) s=2; else s=n+fun5(n-1); return(s); main() long x; x=fun5(4); printf(%1d/n“,x);(分数:2.00)填空项 1:_41.设变量 a 和 b 已正确定义并赋初值。请写出与 a-=a+b 等价的赋值表达式 1。(分数:2.00)填空项 1:_42.有以下程序: #includestdio.h typedef struct int num;double s;)REC; void funl(REC x)x.num=23;x.s=88.5; main() REC a=1
16、6,90.0); fun1(a); printf(“%d/n“,a.num); 程序运行后的输出结果是_。(分数:4.00)填空项 1:_43.有以下程序: main() int a33,*p,i; p= for(i=0;i9;i+)pi=i+1; printf(“%d/n“,a12); 程序运行后的输出结果是U U /U /U。(分数:2.00)填空项 1:_44.以下定义的结构体类型拟包含两个成员,其中成员变量 info 用来存入整形数据;成员变量 link 是指向自身结构体的指针,请将定义补充完整。 struct node int info; _link;(分数:1.00)填空项 1:_
17、45.关系操作的特点是U U /U /U操作。(分数:1.00)填空项 1:_46.数据库保护分为:安全性控制、U U /U /U、并发性控制和数据的恢复。(分数:1.00)填空项 1:_47.以下程序用来输出结构体变量 ex 所占存储单元的字节数,请填空。 struct st char name20; double score; main() struct st ex; printf(“ex size:%d/n“, sizeof(_);(分数:4.00)填空项 1:_48.以下程序的输出结果是_。 main() int arr=30,25,20,15,10,5,*p=arr; p+; pri
18、ntf(“%d/n“,*(p+3); (分数:1.00)填空项 1:_49.先有两个 C 程序文件 T18.c 和 myfun.c 同在 TC 系统目录(文件夹)下,其中 T18.c 文件 如下: #includestdio.h #include“myfun.C“ main() fun();printf(“/n“); /myfun.c 文件如下: void fun() char s80,c;int n=0; while(c=getchar()!=/n) sn+=c; n-; while(n=0)printf(“%c“,sn-); 当编译连接通过后,运行程序 T18 时,输入 Hello!则输出
19、结果是_。(分数:2.00)填空项 1:_50.表示“整数 x 的绝对值大于 5“时值为“真“的 C 语言表达式是U U /U /U。(分数:1.00)填空项 1:_二级 C 语言-21 答案解析(总分:74.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:47.00)1.使用视图之前,应首先U /U。 A. 新建一个数据库 B. 新建一个数据库表 C. 打开相关的数据库 D. 打开相关的数据表(分数:2.00)A.B.C. D.解析:解析 使用视图之前需要先打开存有视图的相应数据库。2.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和 U /U A. 可重用
20、性差 B. 安全性差 C. 非持久性 D. 冗余性(分数:1.00)A.B.C.D. 解析:3.在软件开发过程中,软件结构设计是描述_。 A. 数据存储结构 B. 软件体系结构 C. 软件结构测试 D. 软附控制挝程 (分数:1.00)A.B. C.D.解析:解析 从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。4.用 MIPS 来衡量计算机性能的指标是 ( ) A.存储容量 B.可靠性 C.处理能力 D.运算速度 (分数:1.00)A.B.C.D. 解析:5.若有说明 int i,j=
21、2,*p=,则能完成 i=j 赋值功能的语句是_。 A. i=*p B. *P=*printf(“%d/n“,strlen(p4);执行后的输出结果是 _。 A. 2 B. 3 C. 4 D. 5(分数:2.00)A. B.C.D.解析:解析 本题中 p4=“cd“,所以 strlen(p4)=2。7.下列叙述中正确的是 A. 一个算法的空间复杂度大,则其时间复杂度也必定大 B. 一个算法的空间复杂度大,则其时间复杂度必定小 C. 一个算法的时间复杂度大,则其空间复杂度必定小 D. 上述三种说法都不对(分数:2.00)A.B.C.D. 解析:解析 算法的复杂度主要包括时间复杂度和空间复杂度。算
22、法的时间复杂度是指执行算法所需要的计算工作量,可以用执行算法过程中所需基本运算的执行次数来度量;算法的空间复杂度是指执行这个算法所需要的内存空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。8.在关系型的数据库管理系统中,3 种基本关系运算是_。 A. 选择、投影和连接 B. 选择、删除和复制 C. 创建、修改和合并 D. 统计、连接和分类(分数:2.00)A. B.C.D.解析:解析 在关系型数据库管理系统中,基本的关系运算有选择、投影和联接 3 种操作。选择,指的是从二维关系表的全部记录中,把那些符合指定条件的记录挑选出来。对于投影,是指从所有字段中选取一部分字段及其值进行操
23、作,它是一种纵向操作。投影操作可以改变关系的结构。而联接运算则通常是对两个关系进行投影操作来连接生成一个新的关系。当然,这个新的关系可以反映出原来两个关系之间的联系。9.下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数:876 675 896 101 301 401 980 431 451 777#includeconio.h#includestdio.hint fun(int *s,int t,int *k) int i;*k=0;for(i=0;it;i+)if(s*ksi)*k=i;return s*k;main() int a10=876,675,896,101,301,4
24、01,980,431,45l,777,k;clrscr();fun(a,10, A. 14 B. 8 C. 5 D. 输出项不合法,无正常输出A.B.C. D.解析:解析 在 C 语言中,以“/”开头的字符均为转义字符,其中“/”后可跟 13 位八进制数或在“/”后跟字母 x 及 12 位十六进制数,以此来代表个特定的字符。11.若用数组名作为实参,则传递给形参的是_。 A. 数组的首地址 B. 数组第一个元素的值 C. 数组中全部元素的值 D. 数组元素的个数(分数:1.00)A. B.C.D.解析:解析 用数组名作为实参,调用函数只是把数组的首地址传送给形参指针。12.算法具有五个特性,以
25、下选项中不属于算法特性的是_。 A. 有穷性 B. 简洁性 C. 可行性 D. 确定性(分数:2.00)A.B. C.D.解析:解析 一个算法应该具有以下 5 个特性:有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。13.数字字符 0 的 ASC值为 48,若有以下程序:main()char a=1,b=2;printf(“%c,“,b+);printf(“%d/n“,b-a);程序运行后的输出结果是 A. 3,2 B. 50,2 C. 2,2 D. 2,50(分数:1.00)A.B.C. D.解析:解析 语句 printf(“%c,“,b+);中 b+是先返回后自增,所以执行完该
26、语句后,输出结果是2,变量 b 的值为3。printf(“%d/n“,b-a); b=3,ASC值是 51,a=1,ASC值是 49,所以 b-a=51-49=2。14.下列关于 C 语言数据文件的叙述中正确的是 A. 文件由 ASCII 码字符序列组成,C 语言只能读写文本文件 B. 文件由二进制数据序列组成,C 语言只能读写二进制文件 C. 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D. 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(分数:1.00)A.B.C.D. 解析:解析 C 语言把文件看成是一个字符(字节)的序列,即由一个一个字符(字节)的
27、数据顺序组成。根据数据的组织形式,可分为 ASCII 文件和二进制文件。ASCII 文件又称文本文件,它的每一个字节放一个 ASCII 代码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。15.关系表中的每一横行称为个_。 A. 元组 B. 字段 C. 属性 D. 码(分数:2.00)A. B.C.D.解析:解析 在关系数据库中,关系模型采用二维表来表示,简称“表”。二维表是由表框架及表元组组成。在表框架中,按行可以存放数据,每行数据称为元组。16.下列程序的输出结果是U /U。#includestdio.hmain()int a3,b2,c1;if(aB
28、) if(bO)c0;else c+;printf(“%d/n“,c) ; A. 0 B. 2 C. 1 D. 3(分数:1.00)A.B.C. D.解析:解析 本题考查汀语句。第一个 if 语句,先判断条件,发现 ab 不成立,不再执行下列的语句,直接执行最后的 printf 输出语句,然后结束程序,整个过程 c 的值没有发生变化。17.按照“后进先出”原则组织数据的数据结构是U /U。 A. 队列 B. 栈 C. 双向链表 D. 二叉树(分数:1.00)A.B. C.D.解析:解析 栈只允许在表的一端进行插入或删除操作,是一种“后进先出”线性表;而队列只允许在表的一端进行插入操作,在另一端
29、进行删除操作,是一种“先进先出”线性表。18.有以下程序段: char ch;int k; ch=a;k=12; printf(“%c,%d,“,ch,ch);printf(“k=%d/n“,k); 已知字符 a 的 ASC码值为 97,则执行上述程序段后输出结果是U /U。 A)因变量类型与格式描述符的类型不匹配,输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 (分数:1.00)A.B.C.D. 解析:解析 考查 prinf 函数的相关知识。输出格式控制符%c 表示将变量以字符的形式输出;输出格式控制符%d 表示将变量以带符
30、号的十进制整型数输出,所以第一个输出语句输出的结果为 a,97;第二个输出语句输出的结果为 k=12。所以选项 D)为正确答案。19.若变量已正确定义,则以下语句的输出结果是_。s=32; s=32; printf(“%d“,s); A. -1 B. 0 C. 1 D. 32(分数:2.00)A.B. C.D.解析:20.结构化分析可以使用的工具是 A. N-S 图 B. DFD 图 C. PAD 图 D. 程序流程图(分数:2.00)A.B. C.D.解析:解析 数据流图(DFD)、数据字典、判定表和判定树是结构化分析常用的工具。程序流程图、N-S图、PAD 图是详细设计过程中常用的图形工具
31、。21.下列程序的运行结果是U /U。 #includestdio.h void fun(int*s,int*p) static int t=3; *p=st; t-; void main() int a=2,3,4,5,k,x; for(k=0;k4;k+) fun(a,S+;main() char strl100=“abcddfefdbd“,c=d:ss(strl,c);printf(“% s/n“ ,strl);程序运行后的输出结果是()。 A. ABCDDEFEDBD B. abcDDfeDbD C. abcAAfefAbA D. Abcddfefdbd(分数:2.00)A.B. C.
32、D.解析:解析 在内存中,字符数据以 ASC码存储,它的存储形式与整数的存储形式类似。C 语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的 ASC码进行算术运算,在本题中,s+相当于 s=s+1,即让 s 指向数组中的下一个元素。在函数 SS(char*s,char t)中,当*s=t 时,*s 通过运算变为大写,因此答案选择 B) 。27.以下叙述中错误的是_。 A. C 语句必须以分号结束 B. 复合语句在语法上被看作一条语句 C. 空语句出现在任何位置都不会影响程序运行 D. 赋值表达式末尾加分号就构成赋值语句(分数:1.00)A.B.C. D
33、.解析:28.关系数据模型U /U A.只能表示实体间的 1:1 联系 B.只能表示实体间的 1:n 联系 C.只能表示实体间的 m:n 联系 D.可以表示实体间的上述 3 种联系(分数:1.00)A.B.C.D. 解析:解析 数据模型用来表示实体间的联系,但不同的数据库管理系统支持不同的数据模型。常用的数据模型有层次模型、网状模型和关系模型,层次模型不能表示多对多联系,网状模型和关系模型都能表示任意一种联系。29.在 C 语言中引用数组元素时,其数组下标的数据类型只能是U /U。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式(分数:1.00)A.B.C
34、. D.解析:解析 在 C 语言中,数组元素的下标只能是整型常量或整型表达式。30.结构化程序设计的 3 种结构是U /U。 A. 顺序结构,分支结构,跳转结构 B. 顺序结构,选择结构,循环结构 C. 分支结构,选择结构,循环结构 D. 分支结构,跳转结构,循环结构(分数:2.00)A.B. C.D.解析:解析 程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。31.有以下程序#include stdio.hmain
35、( ) FILE *fp; int i,k=0,n=0;fp=fopen(“d1.dat”,”w”);for(i=1;i4;i+) fprintf(fp,”%d”,i);fclose(fp);fp=fopen(“d1.dat”,”r”);fscanf(fp,”%d%d”, printf(“%d %d/n”,k,n);fclose(fp);执行后输出结果是( ) A.1 2 B.123 0 C.1 23 D. 0 0 (分数:1.00)A.B. C.D.解析:解析 在文件写操作时,两个数之间应用空格隔开,而在本题中,没有用空格隔开,所以 123 视为一个数。32.定义如下变量:int n=10;
36、则下列循环的输出结果是( )。while(n7) -n;printf(“%d/n“,n); A. 1098 B. 987 C. 10987 D. 9876(分数:1.00)A.B. C.D.解析:解析 第 1 次循环,107,-n=9,输出 9。第 2 次循环,97,-n=8,输出 8。第 3 次循环,87,-n=7,输出 7。33.有以下程序:typedef structint b,p;A;void f(A C /*C 是结构变量名*/int j;c.b+=1;c.p+=2;main()int i;A a=1,2;f(A) ;printf(“%d,%d/n“,a.b,a.p);程序运行后的输
37、出结果是U /U。 A. 2,3 B. 2,4 C. 1,4 D. 1,2(分数:2.00)A.B.C.D. 解析:解析 本题主要考查的是:结构体用作函数参数。结构体变量用作函数参数时,是将实参复制给被调用函数的形参,即传值。因此,本题中的川函数对传入参数的修改不会影响到外面的实参,即 a 的内容还是(1,2),故本题应该选择 D)。34.开发软件时对提高开发人员工作效率至关重要的是 U /U A. 操作系统的资源管理功能 B. 先进的软件开发工具和环境 C. 程序人员的数量 D. 计算机的并行处理能力(分数:1.00)A.B. C.D.解析:35.以下合法的赋值语句是( )。 A. x=y=
38、100 B. d-; C. x+y; D. c=int(a+b);(分数:1.00)A.B. C.D.解析:解析 选项 A 的结尾没用;,所以不是一条语句:选项 C 中的表达式不会改变任何变量的内容,也不是合法的赋值语句;选项 D 有语法错误,int 应该加上括号。所以,4 个选项中只有选项 B 符合题意,运行后 d 的内容被减一。二、B填空题/B(总题数:15,分数:27.00)36.有以下程序: main() int t=1,i=5; for(; i=0;i-) t*=i; printf(“%d/n“,t); 执行后输出结果是U U /U /U。(分数:2.00)填空项 1:_ (正确答案
39、:0)解析:解析 本题中的 for 循环共执行了 6 次,每执行一次将相应 i 的值相乘,最后当 i=-1 时停止循环。该 for 循环执行完后 t 的值为 5*4*3*2*1*0=0,故最后输出 t 的值为 0。37.函数 strcmp( )的功能是对两个字符串进行比较,当 s 所指字符串和 t 所指字符串相等时,返回值为0; 当 s 所指字符串大于 t 所指字符串时,返回值大于 0;当 s 所指字符串小于 t 所指字符串时,返回值小于 0(功能等同于库函数 strcmp( ) ),请填空。 #include stdio.h int strcmp ( chat * s, char * t)
40、while( * s * t * s=U 【15】 /U s+;t+; return U 【16】 /U ; (分数:1.00)填空项 1:_ (正确答案:【15】 * 或 t0 【16】 * s- *t 或 * s-t0或 s0- * t 或 s0-t0)解析:解析 对字符串比较的方法是依次对两字符串对应位置上的字符两两比较,当出现第一对不相同的 字符时,即由这两个字符(ASC码值)决定所在串的大小。 【解析】对字符串比较的方法是依次对两字符串对应位置上的字符两两比较,当出现第一对不相同的 字符时,即由这两个字符(ASC码值)决定所在串的大小。38.若 a 是 int 型变量,则下列表达式的
41、值为_。 (a=2*3,a*2) ,a+4(分数:2.00)填空项 1:_ (正确答案:10)解析:解析 此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是a+4。前面已经给 a 赋值 6,所以返回值 a+4=6+4=10。39.下程序的输出是U U /U /U。 main() char str1=“How do you do“,*p1=str1; strcpy(str1+strlen(str1)/2,“es she“); printf(“%s/n“,p1); (分数:1.00)填空项 1:_ (正确答案:How does she)解析:解析 strcpy(str1,
42、s1):字符串拷贝函数,作用是将字符串 s1 拷贝到字符数组 str1 中去。strlen(str):测试字符串 str 的长度,函数的值为字符串中实际长度,不包括/0在内。本题中strlen(str1)的值为 13,则 strcpy(str1+strlen(str1)/2,“es she“);相当于 strcpy(str1+6,“es she“);,因此可得答案为 How does she。40.下列程序的输出结果是_。 long fun5(int n) ( long s; if(n=l)(n=2) s=2; else s=n+fun5(n-1); return(s); main() lon
43、g x; x=fun5(4); printf(%1d/n“,x);(分数:2.00)填空项 1:_ (正确答案:9)解析:解析 考查 if else 语句,n=4 不满足条件,所以 fun5(4)=4+fun5(3),n=3 也不满足条件,fun5(3)=3+fun5(2),n=2 满足条件 fun5(2)=2,故 x=4+3+2=9。41.设变量 a 和 b 已正确定义并赋初值。请写出与 a-=a+b 等价的赋值表达式 1。(分数:2.00)填空项 1:_ (正确答案:a=-b)解析:解析 本题考查的是复合赋值运算符。“m-=n“相当于“m=m-n”。所以,a-=a+b 就相当于 a=a-(a+b)=-b。42.有以下程序: #includestdio.h typedef struct int num;double s;)REC; void funl(REC x)x.num=23;x.s=88.5; main() REC a=16,90.0); fun1(a); printf(“%d/n“,a.num); 程序运行后的输出结果是_。(分数:4.00)填空项 1:_ (正确答案:16)解析:解析 本题考查了结构体的调用。主函数中给出了结构体 REC a 的格式,然后调用 fun1(a)函数,fun1 函数共有两个参数,主函数中的 a 也