1、二级 C语言笔试-344 及答案解析(总分:111.00,做题时间:90 分钟)一、选择题(总题数:50,分数:71.00)1.能正确表示“当 x的取值在1,10和100,110范围内为真,否则为假”的表达式是 ( )A) (x1)程序执行后的输出结果是( )。A) 自然数 19 的累加和 B) 自然数 110 的累加和C) 自然数 19 中奇数之和 D) 自然数 110 中偶数之和(分数:1.00)A.B.C.D.5.设有如下程序段:char s20=“Bejing“,*P;p=s;则执行 p=s;语句后,以下叙述正确的是_。A) 可以用*P 表示 s0 B) s数组中元素的个数和 p所指字
2、符串长度相等C) s和 p都是指针变量 D) 数组 s中的内容和指针变量 p中的内容相等(分数:2.00)A.B.C.D.6.字符串“/“ABCDEF/“/“的长度是( )。A) 15 B) 10 C) 7 D) 8(分数:2.00)A.B.C.D.7.以下不合法的字符常量是A) /“ B) /018 C) /xcc D) /(分数:1.00)A.B.C.D.8.下面程序段的运行结果是char a=“lanuage“,*p;p=a;while(*p!=u)printf(“%c“,*p-32);p+;A) LANGUAGE B) language C) LAN D) langUAGE(分数:2.
3、00)A.B.C.D.9.经过下面的语句定义后:int i,a10,*p;下列语句中,合法的是_。Ap=100; Bp=a5; Cp=a2+2; Dp=a+2;(分数:2.00)A.B.C.D.10.下面程序的输出结果是_。main()char str10,c=a;int i=0;for(;i5;i+)Stri=c+;printf(“%s“,str);A) abcde B) a C) 不确定 D) bcdef(分数:2.00)A.B.C.D.11.若有以下说明和定义union dtint a;char b;double c;data;以下叙述中错误的是A) data的每个成员起始地址都相同B)
4、 变量 data所占的内存字节数与成员 c所占字节数相等C) 程序段:dataa=5;printf(“%f/n“,datac);输出结果为 5.000000D) data可以作为函数的实参(分数:1.00)A.B.C.D.12.有以下程序#include stdioh#define N 5#define M N+1#define f(x) (x*M)main()int i1,i2;i1=f(2);i2=f(1+1);printf(“%d%d/n“,i1,i2);程序的运行结果是A) 12 12 B) 11 7 C) 11 11 D) 12 7(分数:2.00)A.B.C.D.13.以下程序的功
5、能是: 给 r输入数据后计算半径 r圆面积 s。程序在编译时出错。main ()/* Beginning */int r; float s;scanf ( “%d“, s=*r*r;printf (“s=%f/n“, s);出错的原因是A) 注释语句书写位置错误 B) 存放圆半径的变量 r 不应该定义为整型C) 输出语句中格式描述符非法 D) 计算圆面积的赋值语句中使用了非法变量(分数:1.00)A.B.C.D.14.请读程序片段(字符串内没有空格字符):printf(“%d/n“,strlen(“ATS/n012/1/“);上面程序片段的输出结果是_。A) 11 B) 10 C) 9 D)
6、8(分数:1.00)A.B.C.D.15.有以下程序(说明:字母 A的 ASCII码值是 65) #includestdio.hvoid fun(char *s)while(*s)if(*s%2) printf (“%c“, *s);s+;main()char a=“BYTE“;fun(a); printf(“/n“);程序运行后的输出结果是_。A) BY B) BT C) YT D) YE(分数:1.00)A.B.C.D.16.有以下程序void ss(char *s,char t)while(*s)if(*s=t)*s=t-a+A;s+; main()char str1100=“abcdd
7、fefdbd“,c=d;ss(strl,c);printf(“%s/n“,strl);程序运行后的输出结果是A) ABCDDEFEDBD B) abcDDfefDbD C) abcAMefAbA D) Abcddfefdbd(分数:2.00)A.B.C.D.17.索引属于( )。A) 模式 B) 内模式 C) 外模式 D) 概念模式(分数:1.00)A.B.C.D.18.设 int x=2,y=1;表达式(!x|y-)的值是( )。A0 B1 C2 D-1(分数:1.00)A.B.C.D.19.变量 p为指针变量,若 p=语句的输出结果是_。A) 10,3 B) 9,3 C) 9,2 D) 1
8、0,2(分数:1.00)A.B.C.D.24.下列表达式中,可以正确表示 或 (分数:1.00)A.B.C.D.25.有以下程序:street STUchar num10; float score3; ;main()struct STU s3= “20021“,90,95,85,“20022“,95,80,75 ,“20023“,100, 95, 90 ,*p=s,int i; float sum=0;for(i=0;i3 ,i+)sum=sum+ p-scorei;printf(“%6.2f/n“,sum);程序运行后的输出结果是( )。A) 260.00 B) 270.00 C) 280.
9、00 D) 285.00(分数:1.00)A.B.C.D.26.有以下程序:main()int x=102, y=012;printf(“%2d,%2d/n“,x,y);执行后输出结果是( )。A) 10,01 B) 02,12 C) 102,10 D) 02,10(分数:1.00)A.B.C.D.27.下列语句组中,不正确的是( )。A) char *s;s=“Olympic“; B) char s=“Olympic“;C) char *s;s=“Olympic“; D) char s=“Olympic“;(分数:1.00)A.B.C.D.28.下列程序的输出结果是( )。#includes
10、tdio.hf(nt a)int b=0;static int c=4; a=c+;b+;return(a);main()int a=2,i,C;for(i=0;i2;i+)c=f(a+1);printf(“%d/n“,c);A) 4 B) 7 C) 6 D) 5(分数:1.00)A.B.C.D.29.设 Y为整型变量,A=1,A 的地址为 EF01;B=2,B 的地址为 EF02;执行语句 B=p= B) main()int*p;fun(*p=C) #includestdlibh main() int*p; fun( char c=10;float f=100.0; double x;a=f
11、/=c*=(x=6.5);printf(“%d %d %3.1f %3.1f/n“,a,c,f,x);程序运行后的输出结果是( )。A) 1 65 1 6.5 B) 1 65 1.5 6.5C) 1 65 1.0 6.5 D) 2 65 1.5 6.5(分数:1.00)A.B.C.D.38.fun函数的功能是:通过键盘输入给 x所指的整型数组所有元素赋值。在下划线处应填写的是( )。#include#define N 5void fun(int x(N)int m;fol(m=N-1;m=0;m-) scanf(“%d“,_):A) pfintf(“%c/n,a|b);A) 66 B) 98
12、C) b D) B(分数:2.00)A.B.C.D.41.下列数据结构中,能用二分法进行查找的是_。A) 顺序存储的有序线性表B) 线性链表C) 二叉链表D) 有序线性链表(分数:2.00)A.B.C.D.42.以下程序运行后的输出结果是#includestdio.hint f(int n);main()int a=3, s;s=f(a); s=s+f(a); printf(“%d/n“, s);int f(int n)static int a=1;n+=a+;return n;A) 7 B) 8 C) 9 D) 10(分数:2.00)A.B.C.D.43.有以下程序main()int a=(
13、1,2,3,4,5,6,7,8,9,0),*p;for(p=a;pa+10;p+) printf(“%d,“,*p);程序运行后的输出结果是_。A) 1,2,3,4,5,6,7,8,9,0, B) 2,3,4,5,6,7,8,9,10,1, C) 0,1,2,3,4,5,6,7,8,9, D) 1,1,1,1,1,1,1,1,1,1,(分数:1.00)A.B.C.D.44.有以下程序:#includestdio.hint f(int x)int y;if(x=0|x=1)return(3);y=x*x-f(x-2);return y;main()int z;z=f(3);printf(“%d/
14、n“,z);程序的运行结果是_。A) 0 B) 9 C) 6 D) 8(分数:2.00)A.B.C.D.45.以下程序的输出结果是( )。main()int a=666,b=888;prinf(%d/n“,(a,b);A) 错误信息 B) 666 C) 888 D) 666, 888(分数:1.00)A.B.C.D.46.下列定义变量的语句中错误的是( )。A) int_int; B) double int_;C) char For;D) float US$;(分数:1.00)A.B.C.D.47.从工程管理角度,软件设计一般分为两步完成,它们是( )。A) 概要设计与详细设计 B) 数据设计
15、与接口设计C) 软件结构设计与数据设计 D) 过程设计与数据设计(分数:1.00)A.B.C.D.48.设有以下语句:int a=1, b=2, c; c=a(b2); 执行后,c 的值为( )。A) 6 B) 7 C) 8 D) 9(分数:1.00)A.B.C.D.49.在数据管理技术发展的三个阶段中,数据共享最好的是A) 人工管理阶段 B) 文件系统阶段C) 数据库系统阶段 D) 三个阶段相同(分数:1.00)A.B.C.D.50.若有说明:int *p,m=5,n;,以下正确的程序段是A) p=scanf(“%d“, B) p=scanf(“%d“,*p)C) scanf(“%d:,*p
16、=n; D) p=*p=m;(分数:1.00)A.B.C.D.二、填空题(总题数:19,分数:40.00)51.以下程序的输出结果是_。main()unsigned short a=65536;int b;printf(“%d/n“,b=A) ;(分数:1.00)填空项 1:_52.下列表达式用于判断 y是否为闰年。闰年的判断条件是:年号能被 4整除但不能被 100整除或年号能被 400整除,请填空 1。(分数:2.00)填空项 1:_53.表示“整数 x的绝对值大于 5”时值为“假”的 C语言表达式是 1。(分数:2.00)填空项 1:_54.以下程序运行后的输出结果是_。main()cha
17、r a=“123456Y89“,*p;int i=0;p=a;while(*p)if(i%2=0)*p=*;p+;i+;puts(a);(分数:2.00)填空项 1:_55.以下程序运行后的输出结果是_。main()int a=1,b=3,c=5;if(c=a+b) printf(“yes/n“);else printf(“no/n“);(分数:1.00)填空项 1:_56.对下列二叉树进行中序遍历的结果是_。(分数:4.00)填空项 1:_57.关系模型的数据操纵即是建立在关系上的数据操纵,一般有 1、增加、删除和修改四种操作。(分数:1.00)填空项 1:_58.下列程序的运行结果是_。#
18、define POWER(x)(x)*(x)main()int i1;primtf(“%d,%d“,POWER(i+),i);(分数:2.00)填空项 1:_59.有以下程序:main()int a=1,2,3,4,S,6,7,8,9,0,*p;for(p=a;pa+10;p+)printf(“%d,“,*p);程序运行后的输出结果是_。(分数:2.00)填空项 1:_60.以下定义的结构体类型拟包含两个成员,其中成员变量 info用来存入整形数据;成员变量 link是指向自身结构体的指针,请将定义补充完整。struct nodeint info;_link;(分数:2.00)填空项 1:_6
19、1.诊断和改正程序中错误的工作通常称为 1。(分数:2.00)填空项 1:_62.以下程序的功能是:借助指针变量找出数组元素中的最大值及其元素的下标值,请填空。#includestdio.hmain()int a10,*p,*s;for(p=a;p-a10;p+)scanf(“%d“,p);for(p=a;s=a;p-a10;p+)if(“p*s)s=_;printf(“index=%d/n“,s-a);(分数:4.00)填空项 1:_函数 rotate的功能是:将 a所指 N行 N列的二维数组中的最后一行放到 b所指二维数组的第 0列中,把a所指二维数组中的第 0行放到 b所指二维数组的最后
20、一列中,b 所指二维数组中其他数据不变。#define N 4void rotate(int aN,int bN)int i,j;for(i=0;iN;i+)biN-1=_;_=aN-1i;(分数:4.00)填空项 1:_填空项 1:_63.用树形结构表示实体之间联系的模型是 1。(分数:2.00)填空项 1:_64.以下程序中函数 fun的功能是:统计 person所指结构体数组中所有性别(sex)为 M的记录的个数,存入变量 n中,并作为函数值返回。请填空。#includestdio.h#define N 3typedef structint num;char nam10;char sex
21、; SS;int fun(SS person)int i,n=0;for(i=0;iN;i+)if(_ =M)n+;return n;main( )SS WN=1,“AA“,F,2,“BB“,M,3,“CC“,M;int n;n=fun(W);printf(“n=%d/n“,n);(分数:2.00)填空项 1:_65.以下程序中函数 huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda,请填空。#includestring.hchar*huiwen(char*s
22、tr)char*p1,*p2;int i,t=0;p1=str;p2=_;for(i=0;i=strlen(str)/2;i+)if(*p1+!=*p2-)t=1;break;if(t=0)return(“yes!“);else return(“no!“);main()char str50;printf(“Input:“);scanf(“%s“,str);printf(“%s/n“,huiwen(str);(分数:2.00)填空项 1:_66.以下程序运行后的输出结果是_。main()char a=“Language“,b=“Programe“;char *p1,*p2;int k;p1=a;
23、 p2=b;for(k=0; k=7; k+)if (*(p1+k)= =*(p2+k) ) printf(“%c“ , *(p1+k) );(分数:2.00)填空项 1:_67.一个关系表的行称为 1。(分数:2.00)填空项 1:_68.表示“整数 x的绝对值大于 5“时值为“真“的 C语言表达式是 1。(分数:1.00)填空项 1:_二级 C语言笔试-344 答案解析(总分:111.00,做题时间:90 分钟)一、选择题(总题数:50,分数:71.00)1.能正确表示“当 x的取值在1,10和100,110范围内为真,否则为假”的表达式是 ( )A) (x1)110和100,110是逻辑
24、或的关系,因此只要将前两个表达式用逻辑或运算符连接起来即可,所以最后的表达式:(x1)程序执行后的输出结果是( )。A) 自然数 19 的累加和 B) 自然数 110 的累加和C) 自然数 19 中奇数之和 D) 自然数 110 中偶数之和(分数:1.00)A.B.C.D. 解析:解析 本题中,i 赋初值为 1,并对其每次进行加 2操作,即 i每次均为 110 之间的奇数, s+=i+ l,即 s=s+i+1,相当于 s等于原来的 s每次加上 110 之间的偶数,直到 i10 不成立。当 i=1时,s=0+1+1+=2;当 i=3时,s=2+3+1=2+4;当 i=5时,s=2+4+5+1=2
25、+4+6;当 i=7时,s=2+4+6+7+1=2+4+6+8:当 i=9时,s=2+4+6+8+9+1=2+4+6+8+10; 当 i=11时,i10 不成立,结束循环。所以,4 个选项中选项 D 符合题意。5.设有如下程序段:char s20=“Bejing“,*P;p=s;则执行 p=s;语句后,以下叙述正确的是_。A) 可以用*P 表示 s0 B) s数组中元素的个数和 p所指字符串长度相等C) s和 p都是指针变量 D) 数组 s中的内容和指针变量 p中的内容相等(分数:2.00)A. B.C.D.解析:解析 在变量的定义中可以看到,p 是指向字符的指针,执行 p=s;后,指针 p的
26、值为数组 a的首地址,*p=s0,因此选项 A是正确的;P 所指向的字符串为“Beijing”,长度为 7,而数组 a中元素的个数为 20,因此选项 B是错误的;s 为数组名,也可以看作是数组 s的首地址,不是指针变量,因此选项C是错误的;数组 s中的内容为字符串,指针变量 p中的内容为数组 s的首地址,因此选项 D是错误的。6.字符串“/“ABCDEF/“/“的长度是( )。A) 15 B) 10 C) 7 D) 8(分数:2.00)A.B. C.D.解析:解析 本题涉及字符串最基本的两个概念:字符串的长度是指字符串中字符的个数,但不包括字符串结束符;以反斜杠“/”开头的特殊字符序列,意思是
27、把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“/”连同后面的字符为一个长度。7.以下不合法的字符常量是A) /“ B) /018 C) /xcc D) /(分数:1.00)A.B. C.D.解析:解析 在 C语言中,用单引号扩起来的一个字符表示字符常量,转义字符由反斜杠“/”+特定字符组成。选项 B)表示是八进制数码,出现 8属于非法字符,所以正确答案是选项 B)。8.下面程序段的运行结果是char a=“lanuage“,*p;p=a;while(*p!=u)printf(“%c“,*p-32);p+;A) LANGUAGE B) language C)
28、 LAN D) langUAGE(分数:2.00)A.B.C. D.解析:解析 本段程序的作用是输出字符串“lanu-age”中字母 u之前的字符,并将其转化为大写字母。注意:如果一个字符数组用来作为字符串使用,那么在定义该字符数组时,数组的大小就应该比它将要实际存放的最长字符多一个元素,以存放/0。9.经过下面的语句定义后:int i,a10,*p;下列语句中,合法的是_。Ap=100; Bp=a5; Cp=a2+2; Dp=a+2;(分数:2.00)A.B.C.D. 解析:10.下面程序的输出结果是_。main()char str10,c=a;int i=0;for(;i5;i+)Stri
29、=c+;printf(“%s“,str);A) abcde B) a C) 不确定 D) bcdef(分数:2.00)A.B.C. D.解析:解析 字符串少一个结束标志,所以输出的结果不确定。11.若有以下说明和定义union dtint a;char b;double c;data;以下叙述中错误的是A) data的每个成员起始地址都相同B) 变量 data所占的内存字节数与成员 c所占字节数相等C) 程序段:dataa=5;printf(“%f/n“,datac);输出结果为 5.000000D) data可以作为函数的实参(分数:1.00)A.B.C.D. 解析:解析 选项 A共用体的每
30、个成员的起始地址都相同;选项 B共用体变量所占的内存长度等于最长的成员的长度;选项 C因为每个成员的起始地址相同,所以整型数 5 以浮点型输出时为 5.000000;选项D,C 语言规定,不能把共用体变量作为函数的参数。12.有以下程序#include stdioh#define N 5#define M N+1#define f(x) (x*M)main()int i1,i2;i1=f(2);i2=f(1+1);printf(“%d%d/n“,i1,i2);程序的运行结果是A) 12 12 B) 11 7 C) 11 11 D) 12 7(分数:2.00)A.B. C.D.解析:解析 根据宏
31、替换的替换规则,我们可知,f(2)=2*N+12,5+111,f(1+1)1+1*N+11+1*5+ 17。13.以下程序的功能是: 给 r输入数据后计算半径 r圆面积 s。程序在编译时出错。main ()/* Beginning */int r; float s;scanf ( “%d“, s=*r*r;printf (“s=%f/n“, s);出错的原因是A) 注释语句书写位置错误 B) 存放圆半径的变量 r 不应该定义为整型C) 输出语句中格式描述符非法 D) 计算圆面积的赋值语句中使用了非法变量(分数:1.00)A.B.C.D. 解析:解析 在 C语言源程序中了注释部分、字符串常量部分
32、可以使用任意字符外,其余部分只能由 52个大小写:字母、10 个阿拉伯数字以及+-*/=,._:;?/“|!#%上面程序片段的输出结果是_。A) 11 B) 10 C) 9 D) 8(分数:1.00)A.B.C. D.解析:解析 这个语句的目的是输出“ATS/n012/1/”这个串的长度,在串中“/”代表一个“/”,而“/1”代表数字 1,也占一个字符,“/n”是回车换行符,也占一个字符,加上 A、T、S、0、1、2,共 g个字符。15.有以下程序(说明:字母 A的 ASCII码值是 65) #includestdio.hvoid fun(char *s)while(*s)if(*s%2) p
33、rintf (“%c“, *s);s+;main()char a=“BYTE“;fun(a); printf(“/n“);程序运行后的输出结果是_。A) BY B) BT C) YT D) YE(分数:1.00)A.B.C.D. 解析:解析 阅读程序可知,函数只会输出 ASCII码值为奇数的字母,执行 fun(a)时,依次取出 a中的字母,当取第一个字母 B时,因为 B的 ASCII码值为 66,所以不会输出 B,字母 Y的 ASCII码为 89,字母 T的 ASCII码值为 84,字母 E的 ASCII码值为 69,所以最后输出字母 YE。正确答案为 D。16.有以下程序void ss(ch
34、ar *s,char t)while(*s)if(*s=t)*s=t-a+A;s+; main()char str1100=“abcddfefdbd“,c=d;ss(strl,c);printf(“%s/n“,strl);程序运行后的输出结果是A) ABCDDEFEDBD B) abcDDfefDbD C) abcAMefAbA D) Abcddfefdbd(分数:2.00)A.B. C.D.解析:解析 在内存中,字符数据以 ASCII码存储,它的存储形式与整数的存储形式类似。C 语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的 ASCII码进行算术
35、运算,在本题中,s+相当于 ss+1,即让 s指向数组中的下一个元素。17.索引属于( )。A) 模式 B) 内模式 C) 外模式 D) 概念模式(分数:1.00)A.B. C.D.解析:解析 内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及 hash等存取方式与存取路径。18.设 int x=2,y=1;表达式(!x|y-)的值是( )。A0 B1 C2 D-1(分数:1.00)A.B. C.D.解析:解析 因 x为 2所以!x 表达式值为 0,因 y为 1,y-表达式的值为 1然后自减 1,y 为 0,所以!x|y-表达式的值为 1。19.变
36、量 p为指针变量,若 p=语句的输出结果是_。A) 10,3 B) 9,3 C) 9,2 D) 10,2(分数:1.00)A.B.C.D. 解析:解析 C 语言的自减运算符有前置与后置两种形式。当自减运算符前置时,变量先自减一后再参与表达式运算;而后置时,变量先参与表达式运算后再自身减一。24.下列表达式中,可以正确表示 或 (分数:1.00)A. B.C.D.解析:解析 题中要求 x的取值是小于等于 0或者大于等于 1,这说明表达式是或的关系,所以在写成C语言表达式应是逻辑或的关系,逻辑或运算符是“。25.有以下程序:street STUchar num10; float score3; ;
37、main()struct STU s3= “20021“,90,95,85,“20022“,95,80,75 ,“20023“,100, 95, 90 ,*p=s,int i; float sum=0;for(i=0;i3 ,i+)sum=sum+ p-scorei;printf(“%6.2f/n“,sum);程序运行后的输出结果是( )。A) 260.00 B) 270.00 C) 280.00 D) 285.00(分数:1.00)A.B. C.D.解析:解析 程序中首先定义了一个结构体,其成员为一字符数组和一浮点型数组。在 main()首先定义了一个结构体数组并初始化。接下来在 for循环
38、中遍历了结构体数组中的第一个元素中数组成员即“20021”,90,95,85”循环结果为 90+95+85=270最后 sum为 270,又输出格式为“%6.2f/n”要求保留两位小数故最后输出为 270.00。所以 4个选项中 B正确。26.有以下程序:main()int x=102, y=012;printf(“%2d,%2d/n“,x,y);执行后输出结果是( )。A) 10,01 B) 02,12 C) 102,10 D) 02,10(分数:1.00)A.B.C. D.解析:解析 本题中,“printf(“%2d,%2d/n“,x,y)”表示以逗号隔开输出两个十进制整数,每个整数域宽是
39、 2。而在 C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为 102和 10(y的初值 012表示八进制整数 12,等于十进制的 10)。所以,4 个选项中选项 C符合题意。27.下列语句组中,不正确的是( )。A) char *s;s=“Olympic“; B) char s=“Olympic“;C) char *s;s=“Olympic“; D) char s=“Olympic“;(分数:1.00)A.B.C. D.解析:解析 S 是一个字符指针变量,s 代表其地址,C 将字符串赋给地址,因此选项 C)错误。28.下列程序的输出结果是( )。#includ
40、estdio.hf(nt a)int b=0;static int c=4; a=c+;b+;return(a);main()int a=2,i,C;for(i=0;i2;i+)c=f(a+1);printf(“%d/n“,c);A) 4 B) 7 C) 6 D) 5(分数:1.00)A.B.C.D. 解析:解析 static 变量在函数调用结束后的所有变化均不保持,所以当 i=1时,第 2次进入 f函数时c=5,所以最终 main函数中 c的值为 5。29.设 Y为整型变量,A=1,A 的地址为 EF01;B=2,B 的地址为 EF02;执行语句 B=p= B) main()int*p;fu
41、n(*p=C) #includestdlibh main() int*p; fun( char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(“%d %d %3.1f %3.1f/n“,a,c,f,x);程序运行后的输出结果是( )。A) 1 65 1 6.5 B) 1 65 1.5 6.5C) 1 65 1.0 6.5 D) 2 65 1.5 6.5(分数:1.00)A.B. C.D.解析:解析 主函数中先定义了个整型变量 a,一个字符变量 c并赋初值 10,一个浮点型变量 f并赋初值 100.00和一个 double犁 x,接着执行
42、“a=f/=c*=(x=6.5)”,该语句从右向左计算,先把 6.5赋值给x(该括号表达式的值也为 6.5),此时 x的值的变为 6.5,然后执行“c*=(x=26.5)”相当于执行“c=c*(x=6.5)”,此时 c的值为 65,接着向左执行“f/=c*=(x=6.5)”,语句相当于执行“f=f/c”接着向最右边执行“a=f”,由于 a是整型变量,所以 a最后去 f的整数部分为 1。程序最后输出的 a、c、f和 x 的值分别为 1、65、1.5、6.5。所以,4 个选项中选项 B符合题意。38.fun函数的功能是:通过键盘输入给 x所指的整型数组所有元素赋值。在下划线处应填写的是( )。#i
43、nclude#define N 5void fun(int x(N)int m;fol(m=N-1;m=0;m-) scanf(“%d“,_):A) pfintf(“%c/n,a|b);A) 66 B) 98 C) b D) B(分数:2.00)A.B.C. D.解析:解析 位运算符“|”的作用是按位或,即两个二进制数的相应位中只要有个为 1,该位的结果值为 1。最后以字符型输出,98 对应的字符“b”。41.下列数据结构中,能用二分法进行查找的是_。A) 顺序存储的有序线性表B) 线性链表C) 二叉链表D) 有序线性链表(分数:2.00)A. B.C.D.解析:解析 二分查找只适用于顺序存储的有序表。