1、二级 C 语言-36 及答案解析(总分:72.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:46.00)1.下面语句的输出结果是_。printf(“%d/n“,strlen(“/t“/065/xff/n“); A. 14 B. 8 C. 5 D. 输出项不合怯,无正常输出 (分数:1.00)A.B.C.D.2.以下程序段的输出结果是 _。int a=1234;printf(“% 2d/n“,a); A. 12 B. 34 C. 1234 D. 提示出错、无结果(分数:1.00)A.B.C.D.3.已知 i、j、k 为血型变量,若要从键盘输入 2、3、4CR,使 i、j、k
2、的值分别为 2、 3、4,下列正确的输入语句是U /U。 A. scanf(“%3d,%3d,%3d“, B. scan(“%d,%d,%d“, C. scan(“%do/od%d“, D. scanf(“i%d,j%d,k%d“,(分数:1.00)A.B.C.D.4.有下列程序:#include stdio.h#include “string.h“typedef structchar name9; char sex;float score2;STU;void f(STU A) STU b=“Zhao“,m,85.0,90.0; int i;strcpy(a.name,b.name);a.se
3、x=b.sex;for(i=0;i2;i+) a.scorei=b.scorei;main()STU c=“Qian“,f,95.0,92.0;f(C) ;printf(“%s,%c,%2.0f,%2.0f/n“,c.name,c.sex,c.score0,c.score1);程序的运行结果是( )。 A. Qian,f,95,92 B. Qian,m,85,90 C. Zhao,f,95,92 D. Zhao,m, 85,90(分数:2.00)A.B.C.D.5.若有以下说明和语句int c4)5,(*p)5;p=c;能够正确引用 c 数组元素的是 A. p+1 B. *(p+3) C. *
4、(P+1)+3 D. *(p0+2)(分数:1.00)A.B.C.D.6.以下叙述中正确的是( )。 A. 预处理命令行必须位于 C 源程序的起始位置 B. 在 C 语言巾,预处理命令行都以“#“开头 C. 每个 C 程序必须在开头包含预处理命令行;#include stdio.h D. C 语言的预处理不能实现宏定义和条件编译的功能(分数:1.00)A.B.C.D.7.下面程序的输出结果是_。main() enum team my,your=4,his,her=his+10;printf(“%d %d %d %d/n“,my,your,his,her); A. 0 1 2 3 B. 0 4
5、0 10 C. 0 4 5 15 D. 1 4 5 15(分数:1.00)A.B.C.D.8.下列选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是U /U。 A. x%2=1 B. x/2 C. x%2!=0 D. x%2=0(分数:2.00)A.B.C.D.9.有三个关系 R、S 和 T 如下:(分数:1.00)A.B.C.D.10.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是U /U。 A.x=y=5; B.x=n%2.5; C.x+n=i: D.x=5=4+1;(分数:1.00)A.B.C.D.11.以下叙述中错误的是 _。 A. 用户所定义的标识符允许使用关键字
6、B. 用户所定义的标识符应尽量做到“见名知意” C. 用户所定义的标识符必须以字母或下划线开头 D. 用户定义的标识符中,大、小写字母代表不同标识 (分数:1.00)A.B.C.D.12.设有如下程序段:int x=2002,y=2003;printf(“%d/n“,(x,y);则以下叙述中正确的是U /U。 A. 输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B. 运行时产生出错信息 C. 输出值为 2002 D. 输出值为 2003(分数:1.00)A.B.C.D.13.有以下程序#includestdio.hmain()(int x=1, y=0;if(!x) y+;else
7、 if(x=0)if(x)y+=2; else y+=3;printf(“%d/n“, y);程序运行后的输出结果是_。 A. 3 B. 2 C. 1 D. 0(分数:1.00)A.B.C.D.14.程序中头文件 type1.h 的内容是#define N 5#define M1 N*3程序如下:#define “type1.h“#define M2 N*2main ()int i;i=M1+M2;printf(“%d/n“, i);)程序编译后运行的输出结果是( )。 A. 10 B. 20 C. 25 D. 30(分数:1.00)A.B.C.D.15.设有定义:int A,*pA=,以下
8、scanf 语句中能正确为变量 A 读入的数据是 _。 A. scanf (“%d“,pA) ; B. scanf (“%d“,A) ; C. scanf (“%d“, D. scanf (“%d“,*pA) ;(分数:2.00)A.B.C.D.16.以下程序运行后的输出结果是#include stdio.hvoid fun(int a,int b) int t;t=a; a=b; b=t;mainU /U int c10=1,2,3,4,5,6,7,8,9,0,i;for(i=0;i10;i+=2) fun(ci,ci+1);for(i=0;i10;i+) prinff(“%d,“,ci);
9、printf(“/n“); A. 1,2,3,4,5,6,7,8,9,0 B. 2,1,4,3,6,5,8,7,0,9 C. 0,9,8,7,6,5,4,3,2,1 D. 0,1,2,3,4,5,6,7,8,9(分数:2.00)A.B.C.D.17.设 x,y,z,(均为整型变量,现有如下语句 x=y=z=1;t=+x+yreturn b;main() int a=1,t=2;t+=func(while(*b=*A) b+;a+;main()char *s=“*a*b*“,t80;fun(s,t);puts(t);程序的运行结果是( )。 A. *a*b B. a*b C. a*b* D. a
10、b(分数:2.00)A.B.C.D.21.下面程序的输出结果为 ( )struct st int x;int *y; *p;int dt410,20,30,40;struct st aa450, data1=1, 8. data2;则以下赋值语句中错误的是 A. data2=data1; B. data2=(2, 6); C. data2.real=data1.real; D. data2.real=data1.unreal;(分数:2.00)A.B.C.D.24.有以下程序:main( ) char a =a,b,c,d,e,f,g,h,/0;int i,j;i=sizeof(a);j=st
11、rlen(a);printf(“%d,%d/n“,i,j);程序运行后的输出结果是 A.9,9 B.8,9 C.1,8 D.9,8 (分数:1.00)A.B.C.D.25.以下正确的字符串常量是U /U。 A.“/“ B.abc C.Olympic Games D.“(分数:1.00)A.B.C.D.26.若要求从键盘读入含有空格字符的字符串,应使用函数 A. getc() B. gets() C. getchar() D. scanf()(分数:2.00)A.B.C.D.27.有以下程序#include stdio.hint fun(char s) int n=O;while(*s=9 s+
12、; return (n);main() char s10= 6, 1, *, 4, *, 9, *, 0, *;printf(“%d/n“,fun(s); A. 9 B. 61490 C. 61 D. 5(分数:1.00)A.B.C.D.28.有如下程序段int *p,a=10,b=1;p=当 flag 为 0 时,进行由大到小排序。void f(int b, int n, int flag)int i, j, t;for (i=0; in-1; i+)for (j=i+1; jn; j+)if(flag ? b!j: bibj) t=bi; bi=bj; bj=t; main () int
13、a10=5,4,3,2,1,6,7,8,9,10, i;f(f(a, 5, 1),for (i=0; i10; i+)printf(“%d,“, ai);程序运行后输出结果是U /U。 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,(分数:1.00)A.B.C.D.33.以下叙述中错误的是( )。 A. 用户定义的函数中可以没有 return 语句 B. 用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值 C. 用户
14、定义的函数中若没有 return 语句,则应当定义函数为 void 类型 D. 函数的 return 语句中可以没有表达式(分数:1.00)A.B.C.D.34.若有以下结构体,则正确的定义或引用的是U /U。struct Test int x;int y; vl; A. Test.x=10; B. Test v2;v2.x=10; C. struet v2;v2.x=10; D. struct Test v2=10;(分数:2.00)A.B.C.D.35.在执行完下列的 C 语句段之后,则 B 的值是U /U。char a=A;int b;B=(34 A. 0 B. 1 C. TRUE D.
15、 FALSE(分数:2.00)A.B.C.D.二、B填空题/B(总题数:15,分数:26.00)36.有以下程序,请在_处填写正确语句,使程序可正常编译运行。 #includestdio.h _; main() (double x, y, (*p)(); scanf(“%1f%1f“, x, y); p=avg; printf(“%f/n“, (*p)(x, y); double avg(double a, double b) return(a+b)/2);(分数:2.00)填空项 1:_37.以下程序的运行结果是_。 # include string.h typedef struct stu
16、dent char name10;long sno; float score; STU; main() STU a= “Liuyifei“,2001,95,b=“Shangxian“,2002,90,c= “Zhangli“,2003,95 ,d,*p= d=a; if(strcmp(a.name,b.name)0) d=b; if(strcmp(c.name,d.name)0) d=c; printf(“%ld%s/n“,d.sno,p-name); (分数:2.00)填空项 1:_38.以下程序的输出结果是U U /U /U。 void reverse(int a,int n) int i
17、,t; for(i=0;in/2;i+) t=ai;ai=an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0; reverse(b,8); for(i=6;i10;i+)s+bi;printf(“%d/n“,s); (分数:2.00)填空项 1:_39. 1 的任务是诊断和改正程序中的错误。(分数:2.00)填空项 1:_40.某二叉树中度为 2 的结点有 18 个,则该二叉树中有U U /U/U个叶子结点。(分数:1.00)填空项 1:_41.fun( )函数的功能是首先对 a 所指的 N 行 N 列的矩阵,找出各行中
18、的最大的数,再求这 N 个最大值中 的最小的那个数作为函数值返回,请填空。 #includestdio.h #define N 100 int fun(int( * a)N) in(row,col,max,min; for(row=0;rowN;row+) for(max=a row0,col=1;colN;col+) if(U 【13】 /U)max=arowcol;if(row= =0)min=max; else if(U 【14】 /U)min=max; return min; (分数:1.00)填空项 1:_42.以下程序运行后的输出结果是U U /U /U。 main() int p
19、7=11,13,14,15,16,17,18; int i=0,j=0; while(i7 myf=U U /U /U(“test.t“,“rb“); fseek(myf,(),SEEK_END) fl+ftell(myf); fclose(myf); printf(“%ld/n“,fl);(分数:2.00)填空项 1:_45.结构化分析方法是面向_进行分析的方法。(分数:2.00)填空项 1:_46.下列程序的输出结果是U U /U /U。 main() int i; for(i=1;i=1;i+) if(i4) printf(“%d/n“,i); break; printf(“%d/n“,
20、i+);(分数:1.00)填空项 1:_47.数据库系统中实现各种数据管理功能的核心软件称为U U /U /U。(分数:1.00)填空项 1:_48.数据流图是描述数据在软件中的流动和变换的过程,而对数据流图中所包含元素的定义则是 1。(分数:2.00)填空项 1:_49.以下程序运行后的输出结果是_。 #includestdio.h main() int x=20; printf(“%d“,0x20); printf(“%d/n“,0x A. 14 B. 8 C. 5 D. 输出项不合怯,无正常输出 (分数:1.00)A.B.C. D.解析:解析 在 C 语言中,以“/”开头的字符均为转义字
21、符,其中“/”后可跟 13 位八进制数或在“/”后跟字母 x 及 12 位十六进制数,以此来代表一个特定的字符。2.以下程序段的输出结果是 _。int a=1234;printf(“% 2d/n“,a); A. 12 B. 34 C. 1234 D. 提示出错、无结果(分数:1.00)A.B.C. D.解析:解析 本题考查 printf 函数中附加格式字符的用法。本题中的“2”是附加格式字符,其作用是指定变量 a 的输出宽度为两列,而本题中 a 的值为 1234,已经超过两列,所以按实际值输出,正确答案为选项 C。3.已知 i、j、k 为血型变量,若要从键盘输入 2、3、4CR,使 i、j、k
22、 的值分别为 2、 3、4,下列正确的输入语句是U /U。 A. scanf(“%3d,%3d,%3d“, B. scan(“%d,%d,%d“, C. scan(“%do/od%d“, D. scanf(“i%d,j%d,k%d“,(分数:1.00)A.B. C.D.解析:解析 函数 scan()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。 若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。4.有下列程序:#include stdio.h#include
23、 “string.h“typedef structchar name9; char sex;float score2;STU;void f(STU A) STU b=“Zhao“,m,85.0,90.0; int i;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i2;i+) a.scorei=b.scorei;main()STU c=“Qian“,f,95.0,92.0;f(C) ;printf(“%s,%c,%2.0f,%2.0f/n“,c.name,c.sex,c.score0,c.score1);程序的运行结果是( )。 A. Qian,f,95,
24、92 B. Qian,m,85,90 C. Zhao,f,95,92 D. Zhao,m, 85,90(分数:2.00)A. B.C.D.解析:解析 本题考查在结构体中函数的实参和形参的传递,调用 f(C)后,实参传向形参,进行 f()函数功能的实现,但程序中没有返回语句,故形参不能将值传回实参,它们值的传递具有不可逆性,所与printf 输出的还是 c 中实参的值,故选项 A)正确。5.若有以下说明和语句int c4)5,(*p)5;p=c;能够正确引用 c 数组元素的是 A. p+1 B. *(p+3) C. *(P+1)+3 D. *(p0+2)(分数:1.00)A.B.C.D. 解析:
25、解析 本题中定义了一个二维数组 c 和一个指针数组 p 并初始化让它指向 c,显然此时 p 中的各元素为地址,选项 A 中 p+1,此时其中的 1 代表的长度是整个二维数组 c 的长度,故 p+1 将让 p 指向 c 数组后面的元素,故不能引用 c 数组中的成员,选项 D 中 p0指的是指针数组中的第一个元素的地址即 c的首地址,此时的 1 的长度代表的是数组 C 中一行的长度,故 p0+2 代表的是第三行的首地址,而*(po+2)将代表第三行的第一个元素的地址。6.以下叙述中正确的是( )。 A. 预处理命令行必须位于 C 源程序的起始位置 B. 在 C 语言巾,预处理命令行都以“#“开头
26、C. 每个 C 程序必须在开头包含预处理命令行;#include stdio.h D. C 语言的预处理不能实现宏定义和条件编译的功能(分数:1.00)A.B. C.D.解析:解析 预处理命令行可以出现在 C 源程序的任何位置,故选项 A 不正确。#includestdio.h预处理命令行的意思是将 stdioh 头文件插入源程序中该行命令所在的位置,表示我们将在后续行中用到stdioh 头文件中定义的函数或类型,若程序中没有用到这些函数或类型就可以不用包含此头文件,故选项 C 不正确。C 提供的预处理功能主要有:宏定义、文件包含和条件编译三种功能,故选项 D 不正确。在 C 语言中,预处理命
27、令行都以”#”开头,故应该选择 B。7.下面程序的输出结果是_。main() enum team my,your=4,his,her=his+10;printf(“%d %d %d %d/n“,my,your,his,her); A. 0 1 2 3 B. 0 4 0 10 C. 0 4 5 15 D. 1 4 5 15(分数:1.00)A.B.C. D.解析:解析 本题考查枚举型变量的定义及其赋初值。第一个变量默认为 1,中间可任意赋值,赋值后其后面的变量依次加 1。8.下列选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是U /U。 A. x%2=1 B. x/2 C. x%2!=
28、0 D. x%2=0(分数:2.00)A.B.C.D. 解析:解析 因为 x 的值为大于 1 的奇数,所以 x 除以 2 的余数等于 1。所以选项 D)等于关系表达式的结果为假,即等于 0。9.有三个关系 R、S 和 T 如下:(分数:1.00)A.B.C. D.解析:解析 本题考查的知识点是关系运算。选项 A 中,自然连接的条件是两关系间有公共域,通过公共域的相等值进行连接,R 与 S 的公共域为 A 和 B,而 T 中根本不存在,所以选项 A 错误。对于选项 B,R与 S 进行交运算后得到的关系是由既在 R 内又在 S 内的元素组成的,显然 T 不在 S 内,所以选项 B 也错误。对于选项
29、 C,R 与 S 除运算后的域由 R 中不出现在 S 中的域组成,选项 C 正确。对于选项 D,R 与 S 进行并运算得到的关系由属于 R 或属于 S 的元组组成,所以选项 D 也错误。10.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是U /U。 A.x=y=5; B.x=n%2.5; C.x+n=i: D.x=5=4+1;(分数:1.00)A. B.C.D.解析:解析 求余运算符“%”两侧的运算对象都应当是整型数据,所以选项 B 错误。因为赋值运算符左侧的操作数必须是一个变量,所以选项 C 和 D 是错误的。11.以下叙述中错误的是 _。 A. 用户所定义的标识符允许使用关键字
30、B. 用户所定义的标识符应尽量做到“见名知意” C. 用户所定义的标识符必须以字母或下划线开头 D. 用户定义的标识符中,大、小写字母代表不同标识 (分数:1.00)A. B.C.D.解析:解析 C 语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。大写字母和小写字母被认为是两个不同的字符,用户在定义标识符时应做到“见名知意”,且不允许使用关键字作标识符。12.设有如下程序段:int x=2002,y=2003;printf(“%d/n“,(x,y);则以下叙述中正确的是U /U。 A. 输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B. 运行时
31、产生出错信息 C. 输出值为 2002 D. 输出值为 2003(分数:1.00)A.B.C.D. 解析:解析 本题考查逗号表达式。逗号表达式的形式为:表达式 1,表达式 2,其求解过程为:先求解表达式 1,再求解表达式 2。整个逗号表达式的值是表达式 2 的值。13.有以下程序#includestdio.hmain()(int x=1, y=0;if(!x) y+;else if(x=0)if(x)y+=2; else y+=3;printf(“%d/n“, y);程序运行后的输出结果是_。 A. 3 B. 2 C. 1 D. 0(分数:1.00)A.B.C.D. 解析:解析 根据在 if.
32、else 语句中,else 总是和最近的 if 配对原则,本题中的层次关系是:if(!x)与elseif(x=0)是一组,位于循环的最外层。而 if(x)与 else 是一组,位于 else if(x=0)条件的内层。由此可知条件均不成立,所以 y 未进行任何操作,仍为 0。14.程序中头文件 type1.h 的内容是#define N 5#define M1 N*3程序如下:#define “type1.h“#define M2 N*2main ()int i;i=M1+M2;printf(“%d/n“, i);)程序编译后运行的输出结果是( )。 A. 10 B. 20 C. 25 D.
33、30(分数:1.00)A.B.C. D.解析:解析 编译预处理时,用“type1.h”中的内容替代命令#include“type1.h”。表达式“i=M1+M2” 经过宏替换为“i=5*3+5*2”即 i=25,所以最后输出的 i 的值为 25。所以 4 个选项中 C 正确。15.设有定义:int A,*pA=,以下 scanf 语句中能正确为变量 A 读入的数据是 _。 A. scanf (“%d“,pA) ; B. scanf (“%d“,A) ; C. scanf (“%d“, D. scanf (“%d“,*pA) ;(分数:2.00)A. B.C.D.解析:解析 选项 B 中不是变量
34、 A 的地址,错误;选项 C 是指针 pA 的地址,错误;选项 D 中*pA 表示变量 A 的值,错误。16.以下程序运行后的输出结果是#include stdio.hvoid fun(int a,int b) int t;t=a; a=b; b=t;mainU /U int c10=1,2,3,4,5,6,7,8,9,0,i;for(i=0;i10;i+=2) fun(ci,ci+1);for(i=0;i10;i+) prinff(“%d,“,ci);printf(“/n“); A. 1,2,3,4,5,6,7,8,9,0 B. 2,1,4,3,6,5,8,7,0,9 C. 0,9,8,7,
35、6,5,4,3,2,1 D. 0,1,2,3,4,5,6,7,8,9(分数:2.00)A. B.C.D.解析:解析 fun 函数无值返回。main 函数调用时数组元素作实参,形参的改变不会影响实参。因此,循环调用结束后,C 数组没有任何改变。17.设 x,y,z,(均为整型变量,现有如下语句 x=y=z=1;t=+x+yreturn b;main() int a=1,t=2;t+=func(while(*b=*A) b+;a+;main()char *s=“*a*b*“,t80;fun(s,t);puts(t);程序的运行结果是( )。 A. *a*b B. a*b C. a*b* D. ab
36、(分数:2.00)A.B.C. D.解析:解析 主函数 main()定义了指向字符串的指针和一个字符数组,接着调用 fun(s,t)函数,进行实参向形参传递,函数 fun()第一个 while 语句判断*a 中的值为“*”时继续扫描,当遇到不是“*”时结束,接着第二个 while 循环语句,将*a 中从“a”开始的后续所有字符都赋予*b,也就是 t80中的内容为“a*b*”,所以此题的运行结果为选项 C)。21.下面程序的输出结果为 ( )struct st int x;int *y; *p;int dt410,20,30,40;struct st aa450, data1=1, 8. dat
37、a2;则以下赋值语句中错误的是 A. data2=data1; B. data2=(2, 6); C. data2.real=data1.real; D. data2.real=data1.unreal;(分数:2.00)A.B. C.D.解析:解析 同类型的结构体变量之间可以相互赋值;同类型的成员间也可相互赋值。24.有以下程序:main( ) char a =a,b,c,d,e,f,g,h,/0;int i,j;i=sizeof(a);j=strlen(a);printf(“%d,%d/n“,i,j);程序运行后的输出结果是 A.9,9 B.8,9 C.1,8 D.9,8 (分数:1.00
38、)A.B.C.D. 解析:解析 sizeof( )函数返回字符串所占字节数,strlen 函数返回字符串的长度,其中/0是一个转义字符,25.以下正确的字符串常量是U /U。 A.“/“ B.abc C.Olympic Games D.“(分数:1.00)A.B.C.D. 解析:解析 选项 A 中“/”为转义字符,故选项 A 错误,选项 B 和 C 显然不是字符串常量。选项 D 是一个字符串常量,称为空串。26.若要求从键盘读入含有空格字符的字符串,应使用函数 A. getc() B. gets() C. getchar() D. scanf()(分数:2.00)A.B. C.D.解析:解析
39、scanf()语句用“空格”区别不同的字符串;getc()与 getchar()语句不能用于字符串的读入。27.有以下程序#include stdio.hint fun(char s) int n=O;while(*s=9 s+; return (n);main() char s10= 6, 1, *, 4, *, 9, *, 0, *;printf(“%d/n“,fun(s); A. 9 B. 61490 C. 61 D. 5(分数:1.00)A.B.C. D.解析:解析 本题考查的知识点是:while 循环的简单应用。 题目 fun()函数中 while 循环的意思是:判断 s 所指内容是
40、否为数字字符,如果是数字字符,则计算表达式 11=10*n+*s-0;。其中。s-0的作用是将相应的数字字符转换为数值,例如字符8减去字符0后,得到的结果就是数值 8 了。n=10*n+的作用是将累计变量 n 中原来内容乘以 10,然后再加上刚转换的数字字符的数值,例如原来 n 的值为 1,*s现在的内容为2,那么执行了 n=10*n+*s-0,;语句后,n 的值变为 12,如果接下来再来一个8字符,执行 n=10*n+*s-0;语句后,n 的值就是 128 了。故不难看出 fun()函数的作用是“将数字字符串转换为相应的十进制数值,碰到非数字字符时结束”。从主函数中定义的字符数组 s 的初始
41、化内容可以看出,fun()函数返回值应该是 61。故应该选择 C。28.有如下程序段int *p,a=10,b=1;p=当 flag 为 0 时,进行由大到小排序。void f(int b, int n, int flag)int i, j, t;for (i=0; in-1; i+)for (j=i+1; jn; j+)if(flag ? b!j: bibj) t=bi; bi=bj; bj=t; main () int a10=5,4,3,2,1,6,7,8,9,10, i;f(f(a, 5, 1),for (i=0; i10; i+)printf(“%d,“, ai);程序运行后输出结果
42、是U /U。 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,(分数:1.00)A.B. C.D.解析:解析 题目中先后两次调用了函数 f()。第 1 次,使用参数“int b;B=(34 A. 0 B. 1 C. TRUE D. FALSE(分数:2.00)A.B. C.D.解析:解析 本题考查 C 语言 3 个知识点:将一个字符赋给一个字符变量时,并不是将该字符本身存储到内存中,而是将该字符对应的 ASCII 码存储到内存单元中;大写字母的
43、ASCII 码值小于其对应小写字母的 ASCII 码值;只要逻辑与运算符 main() (double x, y, (*p)(); scanf(“%1f%1f“, x, y); p=avg; printf(“%f/n“, (*p)(x, y); double avg(double a, double b) return(a+b)/2);(分数:2.00)填空项 1:_ (正确答案:double avg(double a, double b))解析:解析 在 C 语言程序设计中,函数在使用前需要进行声明。观察程序可知,需要在空缺处填上对double avg 函数的声明。37.以下程序的运行结果是
44、_。 # include string.h typedef struct student char name10;long sno; float score; STU; main() STU a= “Liuyifei“,2001,95,b=“Shangxian“,2002,90,c= “Zhangli“,2003,95 ,d,*p= d=a; if(strcmp(a.name,b.name)0) d=b; if(strcmp(c.name,d.name)0) d=c; printf(“%ld%s/n“,d.sno,p-name); (分数:2.00)填空项 1:_ (正确答案:2003Zhangli)解析:38.以下程序的输出结果是U U /U /U。 void reverse(int a,int n) int i,t; for(i=0;in/2;i+) t=ai;ai=an-1-i;an-1-
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1