1、二级 C 语言真题 2013 年 09 月-(2)及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.设循环队列为 Q(1:m),其初始状态为 front=rear=m。经过一系列入队与退队运算后,front=15,rear=20。现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为_。(分数:1.00)A.4B.6C.m-5D.m-62.下列叙述中正确的是_。(分数:1.00)A.循环队列属于队列的链式存储结构B.双向链表是二叉树的链式存储结构C.非线性结构只能采用链式存储结构D.有的非线性结构也可以采用顺序存储结构3.某二叉树中有
2、 n 个叶子节点,则该二叉树中度为 2 的节点数为_。(分数:1.00)A.n+1B.n-1C.2nD.n/24.下列叙述中错误的是_。(分数:1.00)A.算法的时间复杂度与算法所处理数据的存储结构有直接关系B.算法的空间复杂度与算法所处理数据的存储结构有直接关系C.算法的时间复杂度与空间复杂度有直接关系D.算法的时间复杂度与算法程序执行的具体时间是不一致的5.软件工程的三要素是_。(分数:1.00)A.方法、工具和过程B.建模、方法和工具C.建模、方法和过程D.定义、方法和过程6.通常软件测试实施的步骤是_。(分数:1.00)A.集成测试、单元测试、确认测试B.单元测试、集成测试、确认测试
3、C.确认测试、集成测试、单元测试D.单元测试、确认测试、集成测试7.下面可以作为软件设计工具的是_。(分数:1.00)A.系统结构图B.数据字典(DD)C.数据流程图(DFD 图)D.甘特图8.在数据库设计中,将 E-R 图转换成关系数据模型的过程属于_。(分数:1.00)A.逻辑设计阶段B.需求分析阶段C.概念设计阶段D.物理设计阶段9.设有关系表学生表 S(学号,姓名,性别,年龄,身份证号),每个学生学号唯一。除属性学号外,也可以作为键的是_。(分数:1.00)A.姓名B.身份证号C.姓名,性别,年龄D.学号,姓名10.在数据库系统中,考虑数据库实现的数据模型是_。(分数:1.00)A.概
4、念数据模型B.逻辑数据模型C.物理数据模型D.关系数据模型11.以下选项中叙述正确的是_。(分数:1.00)A.结构化程序的三种基本结构是循环结构、选择结构、顺序结构B.C 语言源程序不编译也能直接运行C.使用 N-S 流程图不能描述复杂算法D.计算机能够直接运行 C 语言源程序,不必进行任何转换12.以下选项中叙述正确的是_。(分数:1.00)A.使用三种基本结构就可以实现任何复杂算法B.只要程序包含了三种基本结构中的任意一种,就是结构化程序C.程序语法错误要在运行时才能发现D.C 语言程序不需要包含 main()函数13.以下选项中,合法的 C 语言常量是_。(分数:1.00)A.1.23
5、4B.“C+“C.“/2.0D.2Kb14.以下选项中,合法的 C 语言实数是_。(分数:1.00)A.3.1e0.4B2e0C.E13D.7.12E15.设 a,b,c 是整型变量且均已赋值,则以下选项中错误的赋值语句是_。(分数:1.00)A.a=(b=3)=1;B.a=(b=2)+c;C.a=b=c+10;D.a=1+(b=c=2);16.有如下程序: #include stdio.h main() int x=072; printf(“%d/n“, x+1); 程序运行后的输出结果是_。(分数:1.00)A.59B.73C.115D.7217.有如下程序: #include stdio
6、.h main() int a=0,b=1; if (a+ else printf(“F“); printf(“a=%d,b=%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.Ta=1,b=2B.Fa=0,b=2C.Fa=1,b=1D.Ta=0,b=118.有如下程序: #include stdio.h main() int i,data; scanf(“%d“, for(i=0;i5;i+) if(idata) continue; printf(“%d,“,i); printf(“/n“); 程序运行时,从键盘输入:3回车后,程序输出结果为_。(分数:1.00)A.3,
7、4,B.1,2,3,4,C.0,1,2,3,4,5,D.0,1,2,19.有如下程序: #include stdio.h main() int i,data; scanf(“%d“, for(i=0;i5; i+) if(idata)break; printf(“%d,“,i); printf(“/n“); 程序运行时,从键盘输入:3回车后,程序输出结果为_。(分数:1.00)A.3,4,B.0,1,C.3,4,5,D.0,1,2,3,20.有如下程序: #include stdio.h main() char a=“3“,b=“A“; int i; for(i=0;i6;i+) if(i%3
8、)putchar(a+i); else putchar(b+i); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.A45D78B.ABC678C.34CD78D.34AB7821.有如下程序: #include stdio.h main() int i; for(i=0;i5;i+) putchar(“9“-i); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.54321B.98765C.“9“8“7“6“5“D.“43210“22.有如下程序: #include stdio.h main() int x = 0x13; if(x=0
9、x18) printf(“T“); printf(“F“); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.TFB.TC.FD.TFT23.有如下程序: #include stdio.h int sum(int a,int b) return a+b-2; main() int i; for(i=0; i5; i+) printf(“%d“,sum(i,3); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.54321B.01234C.45678D.1234524.有如下程序: #include stdio.h int change(i
10、nt*data) return(*data)+; main() int data=123; change( printf(“%d,“,data); data = change( printf(“%d,“,data); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.124,124,B.123,124,C.124,123,D.123,123,25.有如下程序: #include stdio.h void change(int*array,int len) for(len=0;len-) arraylen+=2; main() int i,array5 = 1,2; c
11、hange(array,4); for(i=0; i4;i+) printf(“%d,“,arrayi); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.2,3,4,5,B.3,4,5,6,C.3,4,2,2,D.1,2,0,0,26.以下选项中叙述正确的是_。(分数:1.00)A.char c1,c2,*c3,c440j;是合法的变量定义语句B.数组说明符的一对方括号中只能使用整型常量,而不能使用表达式C.数组下标的下限可以是负值D.若有数组定义 float array4;则语句 printf(“%f“,array3.12);是合法的27.若有函数声明: voi
12、d fun(float array,int*ptr); 以下叙述正确的是_。(分数:1.00)A.函数参数 array,ptr 都是指针变量B.函数参数 array 不是指针变量,ptr 是指针变量C.调用函数时,实参数组的值将一一复制给 array 数组D.调用函数时,array 是按值传送,ptr 是按地址传送28.设有如下程序段: int a8 = 0; int b = 0; char c2 = “ A“,“B“; char d=“AB“; 以下叙述正确的是_。(分数:1.00)A.只有 a,b,c 的定义是合法的B.a,b,c,d 的定义都是合法的C.只有 a,b 的定义是合法的D.只
13、有 c 的定义是合法的29.以下涉及字符串数组、字符指针的程序段,不会产生编译错误的是_。(分数:1.00)A.char*str,name10;str=“Hello World“;B.char*str,name10;name=“Hello World“;C.char str110=“prog.c“,str210;str2 = str1;D.char head_line;head_line=“= = = = = = =“;30.有如下程序: #include stdio.h #include string.h main() printf(“%d/n“,strlen(“0/n011/1“); 程序
14、运行后的输出结果是_。(分数:1.00)A.6B.8C.9D.431.有如下程序: #include stdio.h void convert(char ch) if(ch“D“) convert(ch+1); printf(“%c“,ch); main() convert(“A“); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.ABCDDCBAB.ABCDC.AD.DCBA32.有如下程序: #include stdio.h #include string.h main() char a=“THIS“,*b=“OK“; printf(“%d,%d,%d,%d/
15、n“, strlen(a), sizeof(a), strlen(b), sizeof(b); 程序运行后的输出结果是_。(分数:1.00)A.4,5,2,4B.4,4,2,1C.5,5,3,3D.4,5,2,333.有如下程序: #include stdio.h void get_put() char ch; ch = getchar(); if(ch !=“/n“)get_put(); putchar(ch); main() get_put(); printf(“/n“); 程序运行时,输入 1234回车,则输出结果是_。(分数:1.00)A.1234B.4321C.4444D.11113
16、4.有如下程序: #include stdio.h int sum(int data) static int int = 0; return init += data; main() int i; for(i=1;i=5;i+) printf(“%d,“, sum(i); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.1,3,6,10,15,B.1,2,3,4,5,C.0,0,0,0,0,D.1,1,1,1,1,35.以下选项中的编译预处理命令行,正确的是_。(分数:1.00)A.#define PI 3.14B.#define eps 0.001C.#DEFIN
17、E TRUED.#define int INT36.设有以下程序段: struct person char name10; char sex; float weight; zhangsan,*ptr; ptr= 若要从键盘读入姓名给结构体变量 zhangsan 的 name 成员,输入项错误的是_。(分数:1.00)A.scanf(“%s“,zhangsan-name);B.scanf(“%s“,zhangsan.name);C.scanf(“%s“,ptr-name);D.scanf(“%s“,(*ptr).name);37.有如下程序: #include stdio.h struct pe
18、rson char name10; int age; main() struct person room4=“Zhang“,19,“Li“,20,“Wang“,17,“Zhao“,18; printf(“%s;%d/n“,(room+2)-name,room-age); 程序运行后的输出结果是_。(分数:1.00)A.Wang:19B.Wang:17C.Li:20D.Li:1938.有如下程序: #include stdio.h struct pair int first,second; ; struct pair get_min_max(int* array,int len) int i;
19、struct pair res; res.first=array0; res.second=array0; for(i=1;ilen; i+) if(arrayires.first) res.first=arrayi; if(arrayires.second) res.second=arrayi; return res; main() int array5=9,1,3,4; struct pair min_max=get_min_max(array,5); printf(“min=%d,max=%d/n“,min_max.first,min_max.second); 程序运行后的输出结果是_。
20、(分数:1.00)A.min=1,max=9B.min=0,max=9C.min=1,max=4D.min=0,max=439.有如下程序: #include stdio.h main() int a=8,b; b = (a2)%2; printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.8,0B.4,0C.4,1D.8,140.以下选项中叙述正确的是_。(分数:1.00)A.文件指针是指针类型的变量B.文件指针可同时指向不同文件C.文件指针的值是文件在计算机磁盘中的路径信息D.调用 fscanf 函数可以向文本文件中写入任意字符二、程序填空题(总题数:
21、1,分数:20.00)41.人员的记录由编号和出生年、月、日组成,N 名人员的数据已在主函数中存入结构体数组 std 中,且编号唯一。函数 fun 的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。 请在程序的下画线处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include stdio.h #include string.h #define N 8 typedef struct char num10; int year,month,day; STU; /*fo
22、und*/ 1fun(STU*std,char*num) int i; STU a=“,9999,99,99; for(i=0;iN;i+) /*fomad*/ if(strcmp( 2,num)=0) /*found*/ return( 3); return a; main() STU stdN = “111111“,1984,2,15,“222222“,1983,9,21,“333333“,1984,9,1,“444444“,1983,7,15,“555555“,1984,9,28,“666666“,1983,11,15,“777777“,1983,6,22,“888888“,1984,8
23、,19; STU p; char n10=“666666“; p=fun(std,n); if(p.num0=0) printf(“/nNot found!/n“); else printf(“/nSucceed!/n“); printf(“%s%d-%d-%d/n“,p.num,p.year,p.month,p.day); (分数:20.00)三、程序修改题(总题数:1,分数:20.00)42.下列给定程序中,函数 fun 的功能是:从 s 所指字符串中,找出 t 所指字符串的个数作为函数值返回。例如,当 s 所指字符串中的内容为“abcdabfab”,t 所指字符串的内容为“ab”,则函数
24、返回整数 3。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include stdlib.h #include conio.h #include stdio.h #include string.h int fun (char*s, char *t) int n;char *p,*r; n=0; while(*s) p=s; r=t; while(* r) /*found*/ if(*r=*p)r+;p+ else break; /*found*/ if(r=“/0“) n+; s+; return n; vo
25、id main() char s100,t100;int m; system(“CLS“); printf(“/nPlease enter strings;“); scanf(“%s“,s); printf(“/nPlease enter substringt;“); scanf(“%s“,t); m=fun(s,t); printf(“/nThe result is:m=%d /n“,m); (分数:20.00)_四、程序设计题(总题数:1,分数:20.00)43.请编写函数 fun,该函数的功能是:将 s 所指字符串中 ASCII 码值为偶数的字符删除,串中剩余字符形成一个新串放在 t 所
26、指的数组中。 例如,若 s 所指字符串中的内容为“ABCDEFG12345”,其中字符 B 的 ASCII 码值为偶数,字符 2 的 ASCII码值为偶数,都应当删除,其他依此类推。最后 t 所指的数组中的内容应是“ACEG135”。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #include stdlib.h #include stdio.h #include string.h #include conio.h void fun(char*s,char t) void main() char
27、s100,t100; system(“CLS“); printf(“/nPlease enter string S:“); scanf(“%s“,s); fun(s,t); printf(“/nThe result is:%s/n“,t); (分数:20.00)_二级 C 语言真题 2013 年 09 月-(2)答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.设循环队列为 Q(1:m),其初始状态为 front=rear=m。经过一系列入队与退队运算后,front=15,rear=20。现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的
28、次数为_。(分数:1.00)A.4 B.6C.m-5D.m-6解析:解析 循环队列是队列的一种顺序存储结构,用队尾指针 rear 指向队列中的队尾元素,用排头指针指向排头元素的前一个位置,因此,从排头指针 front 指向的后一个位置直到队尾指针 rear 指向的位置之间所有的元素均为队列中的元素,队列初始状态为 front=rear=m,当 front=15,rear=20 时,队列中有 5 个元素,比较次数为 4 次,故 A 选项正确。2.下列叙述中正确的是_。(分数:1.00)A.循环队列属于队列的链式存储结构B.双向链表是二叉树的链式存储结构C.非线性结构只能采用链式存储结构D.有的非
29、线性结构也可以采用顺序存储结构 解析:解析 循环队列是队列的一种顺序存储结构,A 选项错误。双向链表为顺序存储结构,二叉树通常采用链式存储结构,B 选项错误。完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式,C 选项错误,故 D 选项正确。3.某二叉树中有 n 个叶子节点,则该二叉树中度为 2 的节点数为_。(分数:1.00)A.n+1B.n-1 C.2nD.n/2解析:解析 对任何一棵二叉树,度为 0 的节点(即叶子节点)总是比度为 2 的节点多一个。二叉树中有n 个叶子节点,则度为 2 的节点个数为 n-1,故 B 选项正确。4.下列叙述中错误的是_。(分数:1.00)A.算法的
30、时间复杂度与算法所处理数据的存储结构有直接关系B.算法的空间复杂度与算法所处理数据的存储结构有直接关系C.算法的时间复杂度与空间复杂度有直接关系 D.算法的时间复杂度与算法程序执行的具体时间是不一致的解析:解析 算法的时间复杂度是指执行算法所需要的计算工作量。数据的存储结构直接决定数据输入,而这会影响算法所执行的基本运算次数,A 选项叙述正确。算法的空间复杂度是指执行这个算法所需要的内存空间,其中包括输入数据所占的存储空间,B 选项叙述正确。而算法的时间复杂度与空间复杂度没有直接关系,故选择 C 选项。算法程序执行的具体时间受到所使用的计算机、程序设计语言以及算法实现过程中的许多细节所影响,而
31、算法的时间复杂度与这些因素无关,所以是不一致的,故 D 选项叙述正确。5.软件工程的三要素是_。(分数:1.00)A.方法、工具和过程 B.建模、方法和工具C.建模、方法和过程D.定义、方法和过程解析:解析 软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。软件工程包含 3 个要素:方法、工具和过程。故 A 选项正确。6.通常软件测试实施的步骤是_。(分数:1.00)A.集成测试、单元测试、确认测试B.单元测试、集成测试、确认测试 C.确认测试、集成测试、单元测试D.单元测试、确认测试、集成测试解析:解析 软件测试的实施过程主要有 4 个步骤:单元测试、集成
32、测试、确认测试(验收测试)和系统测试。故 B 选项正确。7.下面可以作为软件设计工具的是_。(分数:1.00)A.系统结构图 B.数据字典(DD)C.数据流程图(DFD 图)D.甘特图解析:解析 结构化分析方法的常用工具:数据流图(DFD)、数据字典(DD)、判定表、判定树。常用的过程设计工具如下所述:图形工具(程序流程图、N-S 图、PAD 图、HIPO)、表格工具(判定表)、语言工具(PDL)。结构化设计方法使用的描述方式是系统结构图。故 A 选项正确。8.在数据库设计中,将 E-R 图转换成关系数据模型的过程属于_。(分数:1.00)A.逻辑设计阶段 B.需求分析阶段C.概念设计阶段D.
33、物理设计阶段解析:解析 采用 E-R 方法得到的全局概念模型是对信息世界的描述,并不适用于计算机处理,为了适合关系数据库系统的处理,必须将 E-R 图转换成关系模式。这就是逻辑设计的主内容,故 A 选项正确。9.设有关系表学生表 S(学号,姓名,性别,年龄,身份证号),每个学生学号唯一。除属性学号外,也可以作为键的是_。(分数:1.00)A.姓名B.身份证号 C.姓名,性别,年龄D.学号,姓名解析:解析 候选键是二维表中能唯一标识元组的最小属性集。一个二维表有多个候选码,则选定其中一个作为主键供用户使用。学生学号与身份证号均是唯一的,都可以作为主键,故 B 选项正确。10.在数据库系统中,考虑
34、数据库实现的数据模型是_。(分数:1.00)A.概念数据模型B.逻辑数据模型 C.物理数据模型D.关系数据模型解析:解析 数据模型按照不同的应用层次分为以下 3 种类型:概念数据模型,它是一种面向客观世界、面向用户的模型,它与具体的数据库管理系统和具体的计算机平台无关;逻辑数据模型,是面向数据库系统的模型,着重于在数据库系统一级的实现;物理数据模型,是面向计算机物理实现的模型,此模型给出了数据模型在计算机上物理结构的表示。故 B 选项正确。11.以下选项中叙述正确的是_。(分数:1.00)A.结构化程序的三种基本结构是循环结构、选择结构、顺序结构 B.C 语言源程序不编译也能直接运行C.使用
35、N-S 流程图不能描述复杂算法D.计算机能够直接运行 C 语言源程序,不必进行任何转换解析:解析 结构化程序主要由 3 种基本控制结构组成,循环结构、选择结构、顺序结构,它们组成的算法结构可以解决任何复杂的问题,A 选项正确。编译就是把高级语言变成计算机可以识别的二进制语言,不经过编译的源程序是不能运行的,B 选项错误。算法可以用各种描述方法进行描述,N-S 流程图把算法的每一步都用一个矩形框来表示,把一个个矩形框按执行的次序连接起来就是一个算法描述,无论算法复杂与否都能用 N-S 流程图描述,C 选项错误。C 语言源程序需要经过编译和连接生成目标文件和可执行文件后才能运行,故 D 选项错误。
36、12.以下选项中叙述正确的是_。(分数:1.00)A.使用三种基本结构就可以实现任何复杂算法 B.只要程序包含了三种基本结构中的任意一种,就是结构化程序C.程序语法错误要在运行时才能发现D.C 语言程序不需要包含 main()函数解析:解析 结构化程序主要由 3 种基本控制结构组成,循环结构、选择结构、顺序结构,它们组成的算法结构可以解决任何复杂的问题,A 选项正确。结构化程序设计是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,在设计其中一个模块时,不会受到其它模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计,而不是说包含了三种基本结构就是结构化程序,B 选
37、项错误。程序语法错误是在编译过程中发现的,一般来说编译器只能检查语法和最简单的语义错误,而不检查程序的逻辑错误,C 选项错误。一个 C 程序由一个或若干个函数构成,而程序中有且只能有一个主函数,即 main 函数,C 程序总是从 main 函数开始执行,其他函数由 main 函数直接或间接调用执行,所以 C 语言程序必须包含 main 函数,故 D 选项错误。13.以下选项中,合法的 C 语言常量是_。(分数:1.00)A.1.234 B.“C+“C.“/2.0D.2Kb解析:解析 整型常量:用不带小数点的数字表示。实型常量:用带小数点的数字表示。字符型常量:用带有单引号的一个字符表示。字符串
38、常量:用一对双引号括起来的一串字符。1.234 为实型常量,A 选项正确。C+不合法,若改成“C+”则为字符串常量,B 选项错误。“/2.0 不合法,不是任何类型常量,C 选项错误。2Kb 不合法,若加上双引号“2Kb”为字符串常量,故 D 选项错误。14.以下选项中,合法的 C 语言实数是_。(分数:1.00)A.3.1e0.4B2e0 C.E13D.7.12E解析:解析 实型常量:用带小数点的数字表示,其值有两种表达形式,分别为十进制小数形式和指数形式。十进制小数形式由数字和小数组成,必须有小数点,且小数点的位置不受限制。指数形式由十进制数加阶码标志“e”或“E”以及阶码(只能为整数,可以
39、带符号)组成。.2e0 为指数形式实数,B 选项正确。3.1e0.4,阶数不是整数,A 选项错误。E13 阶码标志前缺少十进制数,C 选项错误。7.12E 缺少阶码,故D 选项错误。15.设 a,b,c 是整型变量且均已赋值,则以下选项中错误的赋值语句是_。(分数:1.00)A.a=(b=3)=1; B.a=(b=2)+c;C.a=b=c+10;D.a=1+(b=c=2);解析:解析 赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类型相同才能实现赋值。A 选项中,赋值运算(b=3)=1,左值为表达式,不是变量不能被赋值,A 选项错误,所以选择 A 选项。B
40、 选项运算过程为,先赋值 b=2,再计算 b+e,将结果赋给 a,是正确的赋值语句。C 选项运算过程为,先计算 c+10 将结果赋给 b,再将 b 赋给 a,是正确的赋值语句。D 选项运算过程为,先将 2 赋给 c,再将 c 赋给 b,然后计算 1+b,将结果赋给 a,是正确的赋值语句。16.有如下程序: #include stdio.h main() int x=072; printf(“%d/n“, x+1); 程序运行后的输出结果是_。(分数:1.00)A.59 B.73C.115D.72解析:解析 整型常量有 3 种表示方法,分别是十进制数表示法、八进制数表示法和十六进制数表示法。十进
41、制整常量没有前缀,输出格式控制符为%d;八进制整常量以 0 作为前缀,输出格式控制符为%o;十六进制整常量以 0X 或 0x 作为前缀,输出格式控制符为%x。八进制数 072 表示成十进制数为 58,即x=072=58,以十进制格式输出 x+1=59,故 A 选项正确。17.有如下程序: #include stdio.h main() int a=0,b=1; if (a+ else printf(“F“); printf(“a=%d,b=%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.Ta=1,b=2B.Fa=0,b=2C.Fa=1,b=1 D.Ta=0,b=1解析:
42、解析 题目中判断 if 条件是否成立,a+先取值为 0,则(a+ scanf(“%d“, for(i=0;i5;i+) if(idata) continue; printf(“%d,“,i); printf(“/n“); 程序运行时,从键盘输入:3回车后,程序输出结果为_。(分数:1.00)A.3,4, B.1,2,3,4,C.0,1,2,3,4,5,D.0,1,2,解析:解析 continue 语句只能用在循环结构中,其作用是结束本次循环,即不再执行循环体中continue 语句之后的语句,而是立即转入对循环条件的判断与执行。本题执行过程为:输入 3,则data=3;执行 for 循环,i=
43、0,if 条件成立,结束本次循环,不输出 i 值,执行下一次循环;直到i=3,if 条件不成立,依次输出 i 值 3,4,直到 i=5 退出 for 循环。故 A 选项正确。19.有如下程序: #include stdio.h main() int i,data; scanf(“%d“, for(i=0;i5; i+) if(idata)break; printf(“%d,“,i); printf(“/n“); 程序运行时,从键盘输入:3回车后,程序输出结果为_。(分数:1.00)A.3,4,B.0,1,C.3,4,5,D.0,1,2,3, 解析:解析 break 语句作用是结束整个循环过程,
44、不再判断执行循环的条件是否成立,且在嵌套循环中,其只跳出最内层的一层循环。本题执行过程为:输入 3,则 data=3;执行 for 循环,在 i=3 时,if条件不成立,执行语句 printf(“%d,“,i);依次输出 i 值,0,1,2,3;直到 i=4 时,if 条件成立,执行 break 退出 for 循环。故 D 选项正确。20.有如下程序: #include stdio.h main() char a=“3“,b=“A“; int i; for(i=0;i6;i+) if(i%3)putchar(a+i); else putchar(b+i); printf(“/n“); 程序运行
45、后的输出结果是_。(分数:1.00)A.A45D78 B.ABC678C.34CD78D.34AB78解析:解析 putchar 函数是向标准输出设备上输出一个字符。字符在内存中以 AScII 码方式存储,可以与整数进行加减运算,但是要保证计算结果在 0255 之间。本题执行过程为:i=0,i%3=0,if 条件不成立执行 else 函数体,输出字符 A;i=1,i%3=1,if 条件成立输出字符 4;i=2,i%3=2,if 条件成立输出字符 5;i=3,if 条件不成立,输出字符 D;i=4 和 i=5 时,分别输出字符 7 与 8;i=6 退出 for 循环。所以程序运行后输出结果为 A
46、45D78,故 A 选项正确。21.有如下程序: #include stdio.h main() int i; for(i=0;i5;i+) putchar(“9“-i); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.54321B.98765 C.“9“8“7“6“5“D.“43210“解析:解析 putcbar 函数是向标准输出设备上输出一个字符。字符在内存中以 ASCII 码方式存储,可以与整数进行加减运算,但是要保证计算结果在 0255 之间。本题执行过程为:i=0,输出字符 9,在i5 的情况下,依次输出字符 8、7、6、5。在 i=5 时,退出 for 循环。最后显示在命令窗口结果为98765,故 B 选项正确。22.有如下程序: #include stdio.h main() int x = 0x13; if(x