1、二级 C 语言-18 及答案解析(总分:79.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:49.00)1.以下程序企图把从终端输入的字符输出到名为 abc.txt 的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。#include stdio.hmain() FILE *fout; char ch;fout=fopen(abc.txt,w);ch=fgetc(stdin);while(ch!=#) fputc(ch,fout);ch =fgetc(stdin);fclose(fout);出错的原因是 A. 函数 fopen 调用形式有误 B. 输入文件没有
2、关闭 C. 函数 fgetc 调用形式有误 D. 文件指针 stdin 没有定义(分数:1.00)A.B.C.D.2.在 16 位 IBM-PC 机上使用 C 语言,若有如下定义struct data int i;char ch;double f; b;则结构变量 b 占用内存的字节数是 A. 1 B. 2 C. 7 D. 11(分数:1.00)A.B.C.D.3.以下叙述中正确的是 _。 A.用 C 程序实现的算法必须要有输入和输出操作 B.用 C 程序实现的算法可以没有输出但必须要输入 C.用 C 程序实现的算法可以没有输入但必须要有输出 D.用 C 程序实现的算法可以既没有输入也没有输出
3、 (分数:1.00)A.B.C.D.4.下列关于栈的叙述中正确的是U /U。 A. 在栈中只能插入数据 B. 在栈中只能删除数据 C. 栈是先进先出的线性表 D. 栈是先进后出的线性表(分数:2.00)A.B.C.D.5.有以下程序段char eh; int k;ch=a; k=12;printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“,k);已知字符 a 的 ASCII 码值为 97,则执行上述程序段后输出结果是 A. 因变量类型与格式描述符的类型不匹配输出无定值 B. 输出项与格式描述符个数不符,输出为零值或不定值 C. a,97,12k=12 D. a,97
4、,k=12(分数:1.00)A.B.C.D.6.面向对象方法中,继承是指 A. 一组对象所具有的相似性质 B. 一个对象具有另一个对象的性质 C. 各对象之间的共同性质 D. 类之间共享属性和操作的机制(分数:2.00)A.B.C.D.7.设有定义:int a,*pa=scanf(“%d“,s):while(s0) switch(s) case 1:printf(“%d“,s+5);case 2:printf(“%d“,s+4);break;case 3:printf(“%d“,s+3);default:printf(“%d“,s+1);break;scanf(“%d“,s);运行时,若输入
5、123450回车,则输出结果是_。 A.66656 B.6566456 C.66666 D.6666656(分数:1.00)A.B.C.D.10.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的_。 A.总貌 B.细节 C.抽象 D.软件的作用(分数:2.00)A.B.C.D.11.在结构化方法中,用数据流程图(DFD) 作为描述工具的软件开发阶段是_。 A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码 (分数:1.00)A.B.C.D.12.有以下程序:main()int m,n,p;scanf(“m=%dn=%dp=%d“,printf(“%d%d%/n
6、“,m,n,p);若想从键盘上输入数据,使变量 m 中的值为 123,n 中的值为 456;p 中的值为 789,则正确的输入是 _ 。 A.m=123 n=456p=789 B.m=123 n=456 p=789 C.m=123,n=456,p=789 D.123 456 789 (分数:1.00)A.B.C.D.13.若有以下程序#includestdio.htypedef struct stuchar name10,gender;int score;STU;void f(STU a,STU b) b=a;printf(“%s,%c,%d,“,b.name,b.gender,b.score
7、);main() STU a=“Zhao“,m,290,b=“Qian“,f,350;f(a,b);printf(“%s,%c,%d/n“,b.name,b.gender,b.score;则程序的输出结果是_。 A.Zhao,m,290,Qian,f,350 B.Zhao,m,290,Zhao,m,290 C.Qian,f,350,Qian,f,350 D.Zhao,m,290,Zhao,f,350(分数:2.00)A.B.C.D.14.若有定义语句:char s10=“1234567/0/0“;则 strlen(s)的值是_。 A.7 B.8 C.9 D.10(分数:1.00)A.B.C.D
8、.15.下面程序输出的结果是_。main()int i=5,j=9,z;x=(i=j?i:(j=7);printf(:/n%d,%d“,i,j); A. 5,7 B. 5,5 C. 语法错误 D. 7,5(分数:1.00)A.B.C.D.16.有以下程序:#includestdio.hmain() int a=6,b=7,m=1;switch(a%2) case 0:m+;break;case 1 :m+;switch(b%2) defaut:m+;case0:m+;break;printf(“%d/n“,m); A. 1 B. 2 C. 3 D. 4(分数:1.00)A.B.C.D.17.有
9、以下程序:#includestdio.hmain() char s=“aeiou“), *ps; ps=s; printf(“%c/n“, *ps+4); 程序运行后的输出结果是( )。 A. a B. e C. u D. 元素 s4的地址(分数:1.00)A.B.C.D.18.有以下程序main() int p8=(11,12,13,14,15,16,17,18),i=0,j=0;while(i+7)if(pi%2) j+=pi;printf(“%d/n“,j);程序运行后的输出结果是_。 A. 42 B. 45 C. 56 D. 60(分数:1.00)A.B.C.D.19.检查软件产品是否
10、符合需求定义的过程称为 A. 确认测试 B. 集成测试 C. 验证测试 D. 验收测试(分数:1.00)A.B.C.D.20.下列程序的输出结果是U /U。main()int a,b,d25;a:d/10%9;baprintf(“%d,%d/n“,a,b) ; A. 6,1 B. 2,1 C. 6,0 D. 2,0(分数:1.00)A.B.C.D.21.经下列语句定义后,sizeof(x)、sizeof(y)、sizeof(a)、sizeof(b)在 IBM-PC 机上的值分别为_。char x=65;float y=7.3;int a=100;double b=4.5; A.2,2,2,4
11、B.1,2,2,4 C.1,4,2,8 D.2,4,2,8(分数:2.00)A.B.C.D.22.下列叙述中,不属于软件需求规格说明书的作用的是( )。 A. 便于用户、开发人员进行理解和交流 B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据 C. 作为确认测试和验收的依据 D. 便于开发人员进行需求分析(分数:1.00)A.B.C.D.23.有以下程序:main() char s=“159“,*P;P=s;printf(“%c“,*P+);printf(“%c“,*P+);程序运行后的输出结果是_。 A. 15 B. 16 C. 12 D. 59(分数:2.00)A.B.C.D.
12、24.下列判断正确的是U /U。 A. char a“ABCD“;等价于 char*a;*a“ABCD“; B. char str10ABCD“;等价于 char str10;str“ABCD“; C. char*s“ABCD“;等价于 char s;*s“ABCD“; D. char c5“ABCD“,d5“ABCD“;等价于 char c5d5“ABCD“;(分数:2.00)A.B.C.D.25.以下叙述正确的是 A. 在 C 语言中,只能用“/*“和“*/“对程序进行注释 B. 在 C 语言注释语句中,“/“和“*“之间不可以有空格 C. 注释语句只能使用西文 D. 在 C 程序中,注释
13、说明只能位于一条语句的后面(分数:1.00)A.B.C.D.26.若有运算符,sizeof,for(i=1;i3;i+)for(j=0;j=i;j+)s+=aij;printf(“%d/n“,s);该程序的输出结果是_。 A. 18 B. 19 C. 20 D. 21(分数:2.00)A.B.C.D.30.下列程序段的输出结果是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“);ca
14、se d: case D: printf(“warn“); A. passwarn B. passerror C. goodpasswarn D. pass(分数:1.00)A.B.C.D.31.下列程序的执行结果是U /U。#includestdio.hmain() int a,b,c;a=b=2;c=(a+)-1;printf(“%d,%d“,a,c);c+=-a+(+b);printf(“%d,%d“,a,c); A. 3,14,1 B. 3,14,2 C. 2,04,1 D. 2,14,1(分数:2.00)A.B.C.D.32.有以下程序main( ) int i,s=0;for(i=
15、1;il0;i+=2) s+=i+1printf(“%d/n“,s);程序执行后的输出结果是 _。 A. 自然数 19 的累加和 B. 自然数 110 的累加和 C. 自然数 19 中奇数之和 D. 自然数 110 中偶数之和(分数:2.00)A.B.C.D.33.线性表的顺序存储结构和线性表的链式存储结构分别是U /U。 A. 顺序存取的存储结构、顺序存取的存储结构 B. 随机存取的存储结构、顺序存取的存储结构 C. 随机存取的存储结构、随机存取的存储结构 D. 任意存取的存储结构、任意存取的存储结构(分数:2.00)A.B.C.D.34.以下选项中,值为 1 的表达式是U /U。 A. 1
16、-0 B. 1-/0 C. 1-0 D. /0-0(分数:1.00)A.B.C.D.35.现有如下定义语句int*p,s20,i;p=s;表示数组元素 si的表达式不正确的是 A. *(s+i) B. *(p+i) C. *(s=s+i) D. *(p=p+i)(分数:1.00)A.B.C.D.二、B填空题/B(总题数:15,分数:30.00)36.以下程序运行后输入:3,abcde回车,则输出结果是_。 #include string. h move (char *str,int n) char cemp; int i; temp=strn-1; for (i=n-1;i0;i-) stri
17、=stri-1); str0=temp; main() char s50; int n, i, z; scanf(“%d,%s”, i=n;i+)move (s,z); printf(“%s/n”,s); (分数:4.00)填空项 1:_37.开发个 C 语言程序需要经过 1、 2、 3 和 4 四个基本过程。(分数:2.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_38.下列的 for 语句的循环次数为_。 for(x=1,y=0;(y!=19)x+);(分数:2.00)填空项 1:_39.实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多学
18、生,而一个学生只属于一个学校,则实体集学校与实体集学生之间的联系属于U U /U /U的联系。(分数:1.00)填空项 1:_40./13在内存中占 1 个字节,“/12“在内存中占_个字节。(分数:2.00)填空项 1:_41.若想通过以下输入语句使 a 中存放字符串 1234,b 中存放字符 5,则输入数据的形式应该是U U/U/U。 char a10,b;scanf(“a%s b%c“,a, scanf(“%d“, c1); c2=c1+9; printf(“%c%c/n“, c1, c2); 若程序运行时从键盘输入 48回车,则输出结果为_。(分数:2.00)填空项 1:_44.若有定
19、义:int a441,2,3,4,0,4,6,8,10,1,3,5,7,则初始化后,a22得到的初值是 1。(分数:2.00)填空项 1:_45.以下程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于 COPY 命令),假定文件在当前目录下。 #include stdio.h void main(int argc,char *argv) FILE*f1*f2; if(argc_) printf(“parameter error!/n“);exit(0); f1=fopen(argv1,“r“); f2=fopen(argv2,“w“); while(_)
20、fputc (fgetc (f1),f2); fclose(f1): fclose(f2);(分数:1.00)填空项 1:_46.对于顺序存储的栈,因为栈的空间是有限的,在 1 运算时,可能发生栈的上溢。(分数:2.00)填空项 1:_47.以下程序的输出结果是_。 main() int arr=30,25,20,15,10,5,*p=arr; p+; printf(“%d/n“,*(p+3); (分数:1.00)填空项 1:_48.若输入 12、3、2、5、7,则以下程序的运行结果为U U /U /U。 int max,min; void max_min_value(); main() in
21、t i,number5; printf(“输入 5 个整数;/n“); for(i=0;i5;i+) scanf(“%d“, scanf(“%d“, c1); c2=c1+9; printf(“%c%c/n“, c1, c2); 若程序运行时从键盘输入 48回车,则输出结果为_。(分数:2.00)填空项 1:_二级 C 语言-18 答案解析(总分:79.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:49.00)1.以下程序企图把从终端输入的字符输出到名为 abc.txt 的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。#include stdio.hmai
22、n() FILE *fout; char ch;fout=fopen(abc.txt,w);ch=fgetc(stdin);while(ch!=#) fputc(ch,fout);ch =fgetc(stdin);fclose(fout);出错的原因是 A. 函数 fopen 调用形式有误 B. 输入文件没有关闭 C. 函数 fgetc 调用形式有误 D. 文件指针 stdin 没有定义(分数:1.00)A. B.C.D.解析:解析 本题考核的知识点是文件的简单应用。stdin 是标准输入设备的文件指针,不需定义直接可以使用,它随系统的启动而打开,随系统的关闭而关闭,fgetc()函数的作用是
23、从某个文件中读取一个数据,其参数为要读取文件的文件指针,所以本题中的调用形式是正确的。fopen()函数有两个参数,第一个参数是打开的文件名,第二个参数是文件打开模式,两个参数都是字符串,本例中“fout=fopen(abc.txt,w);”语句的 fopen()函数参数是错误的,应该用双引号“,正确的应改为 fout=fopen(“abc.txt”,“w”);。所以,A 选项为所选。2.在 16 位 IBM-PC 机上使用 C 语言,若有如下定义struct data int i;char ch;double f; b;则结构变量 b 占用内存的字节数是 A. 1 B. 2 C. 7 D.
24、11(分数:1.00)A.B.C.D. 解析:解析 结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中整型变量 i所占用的内存是 2 字节,字符型变量 ch 所占用的内存是 1 字节,双精度型变量 f 所占用的内存是 8 字节,三者相加即可。3.以下叙述中正确的是 _。 A.用 C 程序实现的算法必须要有输入和输出操作 B.用 C 程序实现的算法可以没有输出但必须要输入 C.用 C 程序实现的算法可以没有输入但必须要有输出 D.用 C 程序实现的算法可以既没有输入也没有输出 (分数:1.00)A.B.C. D.解析:解析 算法的特性中包括“有零个或多个输入”及“有一个或多个输
25、出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一千算法必须至少有一个输出。4.下列关于栈的叙述中正确的是U /U。 A. 在栈中只能插入数据 B. 在栈中只能删除数据 C. 栈是先进先出的线性表 D. 栈是先进后出的线性表(分数:2.00)A.B.C.D. 解析:解析 栈是限定在一端进行插入与删除的线性表。 栈是按照“先进后出”的或“后进先出”的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。5.有以下程序段char eh; int k;ch=a; k=12;printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“,
26、k);已知字符 a 的 ASCII 码值为 97,则执行上述程序段后输出结果是 A. 因变量类型与格式描述符的类型不匹配输出无定值 B. 输出项与格式描述符个数不符,输出为零值或不定值 C. a,97,12k=12 D. a,97,k=12(分数:1.00)A.B.C.D. 解析:解析 输出格式控制符%c 表示将变量以字符的形式输出;输出格式控制符%d 表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为 a,97;第二个输出语句输出的结果为 k=12。6.面向对象方法中,继承是指 A. 一组对象所具有的相似性质 B. 一个对象具有另一个对象的性质 C. 各对象之间的共同性质
27、D. 类之间共享属性和操作的机制(分数:2.00)A.B.C.D. 解析:解析 本题考查继承的概念,属于记忆型题目。面向对象方法中,继承是指类之间共享属性和操作的机制。选项 D 正确。7.设有定义:int a,*pa=scanf(“%d“,s):while(s0) switch(s) case 1:printf(“%d“,s+5);case 2:printf(“%d“,s+4);break;case 3:printf(“%d“,s+3);default:printf(“%d“,s+1);break;scanf(“%d“,s);运行时,若输入 123450回车,则输出结果是_。 A.66656
28、B.6566456 C.66666 D.6666656(分数:1.00)A.B. C.D.解析:解析 switch 语句的执行流程是:首先计算 switch 后面圆括号中表达式的值,然后用此值依次与各个 case 的常量表达式比较,若圆括号中表达式的值与某个 case 后面的常量表达式的值相等,就执行此 case 后面的语句,执行后遇 break 语句就退出 switch 语句,若圆括号中表达式的值与所有 case 后面的常量表达式都不等,则执行 default 后面的语句,然后退出。所以输入 1 时打印 65,输入 2 时打印 6,输入 3 时打印 64,输入 4 时打印 5,输入 5 时打
29、印 6。10.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的_。 A.总貌 B.细节 C.抽象 D.软件的作用(分数:2.00)A. B.C.D.解析:11.在结构化方法中,用数据流程图(DFD) 作为描述工具的软件开发阶段是_。 A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码 (分数:1.00)A.B. C.D.解析:解析 软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。12.有以下程序:main()int m,n,p;scanf(“m=%dn=%dp=%d“,printf(“%d%d%
30、/n“,m,n,p);若想从键盘上输入数据,使变量 m 中的值为 123,n 中的值为 456;p 中的值为 789,则正确的输入是 _ 。 A.m=123 n=456p=789 B.m=123 n=456 p=789 C.m=123,n=456,p=789 D.123 456 789 (分数:1.00)A. B.C.D.解析:解析 根据本题的数据输入形式“scanf(“m=%dn=%dp=%d“,int score;STU;void f(STU a,STU b) b=a;printf(“%s,%c,%d,“,b.name,b.gender,b.score);main() STU a=“Zha
31、o“,m,290,b=“Qian“,f,350;f(a,b);printf(“%s,%c,%d/n“,b.name,b.gender,b.score;则程序的输出结果是_。 A.Zhao,m,290,Qian,f,350 B.Zhao,m,290,Zhao,m,290 C.Qian,f,350,Qian,f,350 D.Zhao,m,290,Zhao,f,350(分数:2.00)A. B.C.D.解析:解析 f 函数将结构体 a 赋值给 b,然后输出,注意这是值传递,不会改变 main 中结构体 b 值,所以答案选择 A。14.若有定义语句:char s10=“1234567/0/0“;则 s
32、trlen(s)的值是_。 A.7 B.8 C.9 D.10(分数:1.00)A. B.C.D.解析:解析 strlen()函数在计算字符串长度时,遇到结束标识为止,且长度不包括结束标识。本题中字符串,从第一个字符开始,遇到第一个结束标识/0为止,注意/0不占字符串长度,所以字符串长度为 7。A 选项正确。15.下面程序输出的结果是_。main()int i=5,j=9,z;x=(i=j?i:(j=7);printf(:/n%d,%d“,i,j); A. 5,7 B. 5,5 C. 语法错误 D. 7,5(分数:1.00)A. B.C.D.解析:解析 条件表达式的一般形式为:表达式 1?表达式
33、 2:表达式 3;先求解表达式 1,若为真则求解表达式 2;若表达式 1 的值为假,则求解表达式 3。本题中先判断 i=j,不等,执行 j=7;然后执行x=7。故本题为 A。16.有以下程序:#includestdio.hmain() int a=6,b=7,m=1;switch(a%2) case 0:m+;break;case 1 :m+;switch(b%2) defaut:m+;case0:m+;break;printf(“%d/n“,m); A. 1 B. 2 C. 3 D. 4(分数:1.00)A.B. C.D.解析:解析 本题考查 swish 语句。第一个 switch 语句,因
34、为 a=6,a%2=0,所以执行 case 0,将 m 加1,遇到 break 语句跳出 switch 语句,结束循环。17.有以下程序:#includestdio.hmain() char s=“aeiou“), *ps; ps=s; printf(“%c/n“, *ps+4); 程序运行后的输出结果是( )。 A. a B. e C. u D. 元素 s4的地址(分数:1.00)A.B. C.D.解析:解析 本题考查的知识点是指针。程序首先定义了一个字符数组 s,然后让字符指针 ps 指向该数组的首地址。最后按字符形式输出*ps+4 的值,即 s0+4 的值,a+=e。故应该选择 B)。1
35、8.有以下程序main() int p8=(11,12,13,14,15,16,17,18),i=0,j=0;while(i+7)if(pi%2) j+=pi;printf(“%d/n“,j);程序运行后的输出结果是_。 A. 42 B. 45 C. 56 D. 60(分数:1.00)A.B. C.D.解析:解析 本题程序中 while 循环的条件是 i+7,由于在循环体中没有改变 i 的值,所以循环过程是 i 从初始值 0 开始,每次自加 1,当 i 为 7 再次进行循环条件判断时退出循环。而在循环体中,i 从 1到 7 变化。循环体是一个 if 语句,当 pi%2 为真,即 pi为奇数时执
36、行 j+=pi。所以该段程序的实际效果是将 p1p7中的奇数累加到变量 j 中。所以 j=13+15+17=45,选 B。19.检查软件产品是否符合需求定义的过程称为 A. 确认测试 B. 集成测试 C. 验证测试 D. 验收测试(分数:1.00)A. B.C.D.解析:解析 确认测试的任务是验证软件的功能和性能及其他特征是否满足了需求规格说明中确定的各种需求以及软件配置是否完全、正确。20.下列程序的输出结果是U /U。main()int a,b,d25;a:d/10%9;baprintf(“%d,%d/n“,a,b) ; A. 6,1 B. 2,1 C. 6,0 D. 2,0(分数:1.0
37、0)A.B. C.D.解析:解析 算术运行符“/”、“%”的优先级处于同一级,并且两者的结合性都是从左到右。所以算术表达式运算过程为:a25/10%92%92;当逻辑运算符“printf(“%c“,*P+);程序运行后的输出结果是_。 A. 15 B. 16 C. 12 D. 59(分数:2.00)A. B.C.D.解析:解析 本题的考点是 C 语言的数组和指针。数组 s 中存放字符串“159“,p 指向 s 的首地址。因此语句“printf(“%c“,*p+);”输出的是字符 1,输出后 p 加 1 指向下一个字符 5,下一个“printf(“%c“,*p+);”输出的是字符 5。因此输出结
38、果应该是 15。正确选项是 A。24.下列判断正确的是U /U。 A. char a“ABCD“;等价于 char*a;*a“ABCD“; B. char str10ABCD“;等价于 char str10;str“ABCD“; C. char*s“ABCD“;等价于 char s;*s“ABCD“; D. char c5“ABCD“,d5“ABCD“;等价于 char c5d5“ABCD“;(分数:2.00)A.B.C.D. 解析:解析 a“ABCD“书写错误,因为“”左边不能出现常量;数组名 s 是代表 s 数组首地址的地址常量,而不是变量;字符串只有在定义时维数可以省略。25.以下叙述正
39、确的是 A. 在 C 语言中,只能用“/*“和“*/“对程序进行注释 B. 在 C 语言注释语句中,“/“和“*“之间不可以有空格 C. 注释语句只能使用西文 D. 在 C 程序中,注释说明只能位于一条语句的后面(分数:1.00)A.B. C.D.解析:解析 在 C 语言程序段中可以对程序进行注释,注释部分必须用“/*”和“*/”括起来,其中,“/”和“*”之间不可有空格,注释可以是西文,也可以是中文,注释说明语同步以出现在程序的任意位置。综上所述,本题的答案为 B)。26.若有运算符,sizeof,for(i=1;i3;i+)for(j=0;j=i;j+)s+=aij;printf(“%d/
40、n“,s);该程序的输出结果是_。 A. 18 B. 19 C. 20 D. 21(分数:2.00)A. B.C.D.解析:解析 题中的外循环只执行了 2 次: 第 1 次:a10=3,a11=4,所以 s=7; 第 2 次:a20=5,a21=6,a22=0,所以 s=7+5+6+0=18。30.下列程序段的输出结果是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
41、: case D: printf(“warn“); A. passwarn B. passerror C. goodpasswarn D. pass(分数:1.00)A. B.C.D.解析:解析 本题的考查点是 switch()语句。当用户输入的字符时,会进入一个多分支选择语句,根据n 的值,来确定下一步执行的选择语句;最后的结果应当为 passwarn。本题需要注意的是,当 case 语句没有跟随 break 语句时,不会跳出 switch,而是继续执行下一个 case 语句,直至遇到 break 语句。31.下列程序的执行结果是U /U。#includestdio.hmain() int
42、a,b,c;a=b=2;c=(a+)-1;printf(“%d,%d“,a,c);c+=-a+(+b);printf(“%d,%d“,a,c); A. 3,14,1 B. 3,14,2 C. 2,04,1 D. 2,14,1(分数:2.00)A. B.C.D.解析:解析 本题主要考查自加运算符(+、-)的使用。前缀变量“+i、-i”,在使用 i 之前,先使 i 的值加 1 或者减 1,再使用此时的表达式的值参与运算;后缀变量“i+、i-”,先使用此时的表达式的值参与运算,在使用 i 之后,再使 i 的值加 1 或者减 1。 本题中计算表达式 c=(a+)-1 时先使用a 的值进行计算,结果为
43、c=2-1=1,然后将 a 的值加 1,即执行完此语句后 a 的值是 3;表达式 c+=-a+(+b)等价于 c=c(-a+)+(+b),c=1+(-3)+3=1,此时 a=4,b=3。32.有以下程序main( ) int i,s=0;for(i=1;il0;i+=2) s+=i+1printf(“%d/n“,s);程序执行后的输出结果是 _。 A. 自然数 19 的累加和 B. 自然数 110 的累加和 C. 自然数 19 中奇数之和 D. 自然数 110 中偶数之和(分数:2.00)A.B.C.D. 解析:解析 本题中 s=(1+1)+(3+1)+(5+1)+(7+1)+(9+1)=2+
44、4+6=8+10。33.线性表的顺序存储结构和线性表的链式存储结构分别是U /U。 A. 顺序存取的存储结构、顺序存取的存储结构 B. 随机存取的存储结构、顺序存取的存储结构 C. 随机存取的存储结构、随机存取的存储结构 D. 任意存取的存储结构、任意存取的存储结构(分数:2.00)A.B. C.D.解析:解析 顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式 LOC(ai)=LOC(a1)+(i-1)L 计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。34.以下选项中,值为 1 的表达式是U /U。 A. 1-0 B. 1-/0 C. 1-0 D. /0-0(分数:1.00)A.B. C.D.解析:解析 本题考查的是字符常量的概念。在 C 语言中,一个字符常量常常被当作一个整型常量来参与运算,它所代表的值为该字符的 ASCII 码值。在 ASC码中,字符串结束符/0的 ASC码为 0,字符0的 ASC
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1