1、二级 C 语言全真-2014 年 03 月-1 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:40.00)1.下列叙述中正确的是_。 A.每一个节点有两个指针域的链表一定是非线性结构 B.所有节点的指针域都为非空的链表一定是非线性结构 C.循环链表是循环队列的链式存储结构 D.线性结构的存储节点也可以有多个指针(分数:1.00)A.B.C.D.2.使用白盒测试方法时,设计测试用例应根据_。 A.程序的内部逻辑 B.程序的复杂结构 C.程序的功能 D.使用说明书(分数:1.00)A.B.C.D.3.在医院,每个医生只属于某一个诊疗科,医生同一天可为多
2、位患者看病,而一名患者可在多个科室治疗,则实体医生和患者之间的联系是_。 A.多对多 B.多对一 C.一对多 D.一对一(分数:1.00)A.B.C.D.4.设序列长度为 n,在最坏情况下,时间复杂度为 0(log2n)的算法是_。 A.二分法查找 B.顺序查找 C.分块查找 D.哈希查找(分数:1.00)A.B.C.D.5.设数据集合为 D=1,3,5,7,9,D 上的关系为 R,下列数据结构 B=(D,R)中为非线性结构的是_。 A.R=(5,1),(7,9),(1,7),(9,3) B.R=(9,7),(1,3),(7,1),(3,5) C.R=(1,9),(9,7),(7,5),(5,
3、3) D.R=(1,3),(3,5),(5,9)围(分数:1.00)A.B.C.D.6.深度为 7 的二叉树共有 127 个节点,则下列说法中错误的是_。 A.该二叉树有一个度为 1 的节点 B.该二叉树是满二叉树 C.该二叉树是完全二叉树 D.该二叉树有 64 个叶子节点(分数:1.00)A.B.C.D.7.二叉树的中序序列为 BDCA,后序序列为 DCBA,则前序序列为_。 A.DCBA B.BDCA C.ABCD D.BADC(分数:1.00)A.B.C.D.8.下面能作为软件需求分析工具的是_。 A.PAD 图 B.程序流程图 C.甘特图 D.数据流程图(DFD 图)(分数:1.00)
4、A.B.C.D.9.下面不属于对象主要特征的是_。 A.唯一性 B.多态性 C.可复用性 D.封装性(分数:1.00)A.B.C.D.10.关系 R 经过运算 A=BC4D3 (R)的结果为_。 RA B C Da a 2 4b e 1 2c c 11 4e e 6 1 A.(c,c,11,4) B.(e,e,6,1) C.(a,a,2,4) D.(a,a,2,4)和(e,e,6,1)(分数:1.00)A.B.C.D.11.C 语言整数不包括_。 A.带小数点的整数 B.正整数 C.负整数 D.无符号整数(分数:1.00)A.B.C.D.12.设 a,b,c 是整型变量,且已正确赋初值,以下选
5、项中错误的赋值语句是_。 A.a=1%(b=c=2); B.a=(b=3)*c; C.a=b=c/10; D.a=2=(b=9)=1;(分数:1.00)A.B.C.D.13.以下选项中,合法的实数是_。 A.1.5E2 B.E1.1 C.2.10E D.1.9E1.4(分数:1.00)A.B.C.D.14.关于程序设计基本概念,以下叙述错误的是_。 A.计算机可以直接执行由任意高级语言编写的程序 B.高级语言都有与之对应的编译程序或解释程序 C.用任何一种计算机高级语言都可以把算法转换为程序 D.结构化算法可以解决任何复杂的问题(分数:1.00)A.B.C.D.15.以下不能用于实型数据的运算
6、符是_。 A.% B./ C.* D.+(分数:1.00)A.B.C.D.16.C 语言中,最基本的数据类型包括_。 A.整型、实型、逻辑型 B.整型、字符型、数组 C.整型、实型、字符型 D.整型、实型、结构体(分数:1.00)A.B.C.D.17.若有定义:int a=0,b=0,c=0,d=0;,有 C 语言表达式(a+while (chE)printf(“%d“, ch-A);ch+;printf(“/n“);程序运行后的输出结果是_。 A.123 B.ABC C.abc D.012(分数:1.00)A.B.C.D.19.以下关于指针的叙述,错误的是_。 A.两个基类型相同的指针变量不
7、能指向同一个对象 B.可以通过对指针变量自增、自减来移动指针 C.只有两个类型相同的指针才能进行减运算 D.一个指针变量可以通过不同的方式获得一个确定的地址值(分数:1.00)A.B.C.D.20.对于函数声明:void fun(float array,int * ptr);以下叙述正确的是_。 A.调用函数时,array 数组的元素和 ptr 都是按值传送 B.函数声明有语法错误,参数 array 缺少数组大小定义 C.调用函数时,array 数组中将存储从实参中复制来的元素值 D.函数参数 array,ptr 都是指针变量(分数:1.00)A.B.C.D.21.有以下程序:#include
8、 stdio.hmain( )int i,k;int array42 = 1,0,0,2,9,3;for (i=0; i2; i+)for (k=0; k3; k+)printf(“%d,“, arrayki);printf(“/n“);程序运行后的输出结果是_。 A.1,0,2,0,0,9, B.1,2,4,9,6,0, C.2,9,0,0,1,4, D.1,2,0,1,4,1,(分数:1.00)A.B.C.D.22.要求定义一个具有 6 个元素的 int 型一维数组,以下选项中错误的是_。 A.int N =6,aN; B.int a2*3 = 0; C.#define N 3 int a
9、N+N; D.int a = 1,2,3,4,5,6;(分数:1.00)A.B.C.D.23.有以下程序:#include stdio.hmain( )char b310,c;int i;for(i=0; i2; i+) scanf(“%s“, bi);i=0;while(c=getchar()!=/n)b2i+ = c;b2i =/0;printf(“%s%s%s/n“, b0, b1, b2);执行时若输入以下字符串:Peach flower is pink. 回车则输出结果是_。 A.Peachflower is pink. B.Peaehfloweris pink. C.Peachfl
10、owerispink. D.Peach flower is pink.(分数:1.00)A.B.C.D.24.有以下程序:#include stdio.hmain( ) char w20, a510 = “abcdef“, “ghijkl“, “mnopq“, “rstuv“, “wxyz“;int i,j;for (i=0; i5; i+) j = 0;while (aij !=/0)j+;wi = aij-2;w5 =/0;puts(w);程序运行后的输出结果是_。 A.agmrw B.ekpuy C.djotx D.flqvz(分数:1.00)A.B.C.D.25.有以下程序:#incl
11、ude stdio.h#include string.hmain( )char name9=“c#1ine“;char* str = name;printf(“%d,%d,%d,%d/n“, sizeof(name), strlen(name), sizeof(str), strlen(str);程序运行后的输出结果是_。 A.9,7,4,7 B.8,6,9,6 C.8,6,3,6 D.10,8,5,8(分数:1.00)A.B.C.D.26.有以下程序:#include stdio.hmain( )int password;char *p, old_str10 = “wind“;scanf(“
12、%d“, p = old_str;while (* p)printf(“#%c“,* p + password);p+;printf(“/n“);程序运行时,从键盘输入 2回车,输出结果是_。 A.#y#k#p#f B.#wi#nd# C.xj#oe D.#2222#(分数:1.00)A.B.C.D.27.若有定义:char*ps=“aa“,“bb“,“cc“,“dd“;,则以下叙述正确的是_。 A.ps0是字符串“aa“ B.* ps0是字符串“aa“的首地址 C.ps0是字符串“aa“的首地址 D.*ps0是字符串“aa“(分数:1.00)A.B.C.D.28.若有定义:char*ps=“
13、aa“,“bb“,“cc“,“dd“;,则以下叙述正确的是_。 A.* ps0是字符a B.* ps 0是字符串“aa“ C.ps0是字符a D.ps 是字符串“aa“(分数:1.00)A.B.C.D.29.以下合法的转义字符是_。 A./0X41 B./0x41 C./X41 D./x41(分数:1.00)A.B.C.D.30.在源程序的开始处加上“#include stdio.h“进行文件引用的原因,以下叙述正确的是_。 A.stdio.h 文件中包含标准输入输出函数的函数说明,通过引用此文件以便能正确使用printf、scanf 等函数 B.将 stdio.h 中标准输入输出函数链接到编
14、译生成的可执行文件中,以便能正确运行 C.将 stdio.h 中标准输入输出函数的源程序插入到引用处,以便进行编译链接 D.将 stdio.h 中标准输入输出函数的二进制代码插入到引用处,以便进行编译链接(分数:1.00)A.B.C.D.31.设有定义:int a10=0,1,2,3,4,5,6,7,8,9,*p=a,i;,若 0i9,则对 a 数组元素的引用错误的是_。 A.a10 B.*(c = (131) 1;d = (131)11;printf(“%d,%d/n“, c, d);程序运行后的输出结果是_。 A.6,1 B.1,1 C.7,1 D.7,2(分数:1.00)A.B.C.D.
15、33.有以下程序:#include stdio.h#include string.hstruct Schar name10 ;main() struct S s1, s2;strcpy(s1.name,“XXX“);strcpy(s2.name,“=“);s1 = s2;printf(“%sin“, s1.name);程序运行后的输出结果是_。 A.= B.XXX C.=XX D.X=(分数:1.00)A.B.C.D.34.有以下程序:#include stdio,hmain( )int i, array6 = 1,5,0,4;for(i=0; i5; i+)printf(“%d,“, arr
16、ayiprintf(“/n“);程序运行后的输出结果是_。 A.1,2,1,2,0 B.1,5,0,4,0, C.1,5,5,4,0, D.0,4,0,4,0,(分数:1.00)A.B.C.D.35.有以下程序:#include stdio.h#include stdlib.hvoid fun(int*s, int x23)*s=*(x1+1);main() int a23 = 1,2,3,4,5,6,*p;p = (int*) malloc(sizeof(int);fun(printf(“%d/n“,*p);程序的运行结果是_。 A.5 B.2 C.6 D.3(分数:1.00)A.B.C.D
17、.36.有如下定义:struct int num;char name10;struct int y; int m; mt d; birth; s,*ps=以下对内嵌结构体成员的引用形式错误的是_。 A.ps-birth.y B.s.birth.y C.ps.birth.y D.(*ps).birth.y(分数:1.00)A.B.C.D.37.有以下程序:#include stdio.hmain( ) FILE *fp;int i,a6 = 1,2,3,4,5,6,k;fp = fopen(“data.dat“,“w+“);fprintf(fp,“%d/n“, a0);for(i=1; i6;
18、i+) rewind(fp);fprintf(fp,“%d/n“,ai);rewind(fp);fscanf(fp,“%d“, fclose(fp);printf(“%din“, k);程序运行后的输出结果是_。 A.6 B.21 C.123456 D.654321(分数:1.00)A.B.C.D.38.以下程序段中,与其他三个功能不同的程序段是_。 A.s=0;i=1; for(; ;)s+=i; i+; if(i=10)break; B.s=0,i=1;for(; i=10;) s+=i, i+; C.s=0; for(i=1;i=10; i+) s+=i; D.for(s=0,i=1;i
19、=10; s+=i,i+);(分数:1.00)A.B.C.D.39.设有定义:int a=0,b=1;,以下表达式中,会产生“短路”现象,致使变量 b 的值不变的是_。 A.+a+b B.a+b C.+a char name10; PERSON; /*found*/ void fun(PERSON _ /*found*/ _temp; if(std0.numstd1.num) temp=std0; std0=std1; std1=temp; if(std0.numstd2.num) temp=std0; std0=std2; std2=temp; if(std1.numstd2.num) te
20、mp=std1; std1 =std2; std2=temp; main() PERSON std=5,“Zhanghu“,2,“WangLi“,6,“LinMin“; int i; /*found*/ fun _; printff(“The result is”:); for(i=0; i3; i+) printf(“%d,%s”,stdi.num,stdi.name.); (分数:20.00)填空项 1:_三、B程序修改题/B(总题数:1,分数:20.00)42.下列给定程序中函数 fun 的功能是:将 m(1m10)个字符串连接起来,组成一个新串,放入 pt 所指存储区中。例如:把三个串
21、“abc”、“CD”、“EF”连接起来,结果是“abcCDEF”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include stdio.h #include string.h void fun( char str10,int m, char *pt) /*found*/ Int k, q, i; for( k=0; km; k+) q = strlen ( strk );for (i=0; iq; i+) /*found*/ pti = strk,i; pt += q; pt0 = 0; main( )
22、int m,h; char s1010, p120; printf(“Please enter m:”); scanf(“%d”, gets(s0); printf(“Please enter%d string:”, m); for( h = 0; h m; h+ ) gets( sh); fun(s, m, p); printf(“The result is: %S”,p); (分数:20.00)_四、B程序设计题/B(总题数:1,分数:20.00)43.下列程序定义了 NN 的二维数组,并在主函数中自动赋值。请编写函数 fun(int aN),该函数的功能是:将数组左下半三角元素中的值全部
23、置成 0。例如 a 数组中的值为: 1 9 7 2 3 8 4 5 6 则返回主程序后 a 数组中的值应为: 0 9 7 0 0 8 0 0 0 注意:部分源程序给出如下。 请勿改动 main 函数和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #include conio.h #include stdio.h #include stdlib.h #define N 5 void fun (int aN) void main() int aNN,i,j; system(“CLS“); printf(“*The array*/n“); for(i=0;iN
24、;i+) /*产生一个随机的 5*5 矩阵*/ for(j=0;jN;j+) aij = rand()%10; printf(“%4d“, aij); printf(“/n“); fun(a); printt(“THE RESULT/n“); for(i=0;iN;i+) for(j=0;jN;j+) printf(“%4d“,aij); printf(“/n“); (分数:20.00)_二级 C 语言全真-2014 年 03 月-1 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:40.00)1.下列叙述中正确的是_。 A.每一个节点有两个指针域的链
25、表一定是非线性结构 B.所有节点的指针域都为非空的链表一定是非线性结构 C.循环链表是循环队列的链式存储结构 D.线性结构的存储节点也可以有多个指针(分数:1.00)A.B.C.D. 解析:解析 一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,则称为线性结构,在数据结构中习惯称为线性表。双向链表节点具有两个指针域,属于线性结构,故 A 选项错误。循环链表所有节点的指针域都为非空,属于线性结构,故 B 选项错误。循环链表是链表,循环队列属于队列,队列只能在队尾入队,在排头退队,链表可以在任何位置插入、删除,故 C 选项错误。双向链表节点具有
26、多个指针域,故 D 选项正确。2.使用白盒测试方法时,设计测试用例应根据_。 A.程序的内部逻辑 B.程序的复杂结构 C.程序的功能 D.使用说明书(分数:1.00)A. B.C.D.解析:解析 白盒测试又称为结构测试或逻辑驱动测试,它允许测试人员利用程序内部的逻辑结构及有关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试,故 A 选项正确。3.在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而一名患者可在多个科室治疗,则实体医生和患者之间的联系是_。 A.多对多 B.多对一 C.一对多 D.一对一(分数:1.00)A. B.C.D.解析:解析 一般来说,实体集之间必须通
27、过联系来建立连接关系,分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。医生可为多位患者看病,患者也可以找多位医生看病,实体医生与患者联系是多对多,故 A 选项正确。4.设序列长度为 n,在最坏情况下,时间复杂度为 0(log2n)的算法是_。 A.二分法查找 B.顺序查找 C.分块查找 D.哈希查找(分数:1.00)A. B.C.D.解析:解析 对长度为 n 的线性表排序,最坏情况下时间复杂度,二分法查找为 O(log2n);顺序查找法为 O(n);分块查找时间复杂度与分块规则有关;哈希查找时间复杂度为 O(1),因其通过计算 Hashcode 来定位元素位置,所以
28、只需一次即可。故正确答案为 A 选项。5.设数据集合为 D=1,3,5,7,9,D 上的关系为 R,下列数据结构 B=(D,R)中为非线性结构的是_。 A.R=(5,1),(7,9),(1,7),(9,3) B.R=(9,7),(1,3),(7,1),(3,5) C.R=(1,9),(9,7),(7,5),(5,3) D.R=(1,3),(3,5),(5,9)围(分数:1.00)A.B.C.D. 解析:解析 一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,则称为线性结构,在数据结构中习惯称为线性表。A 选项中,5 为根节点,线性表为 51
29、793。B 选项中,9 为根节点,线性表为 97135。C 选项中,1 为根节点,线性表为 19753。D 选项中,节点 1 与 7 都是根节点,属于非线性结构,故 D 选项正确。6.深度为 7 的二叉树共有 127 个节点,则下列说法中错误的是_。 A.该二叉树有一个度为 1 的节点 B.该二叉树是满二叉树 C.该二叉树是完全二叉树 D.该二叉树有 64 个叶子节点(分数:1.00)A. B.C.D.解析:解析 在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度。完全二叉树指除最后一层外,每一层上的节点数均达到最大值,在最后一层上只缺少右边的若干节点。满二叉树指
30、除最后一层外,每一层上的所有节点都有两个子节点的二叉树。深度为 7 的二叉树,前 6 层共有节点个数为 26-1=63,则第 7 层有 127-63=64 个节点,即第 7 层节点数达到最大值,故此二叉树为满二叉树,也是完全二叉树,该二叉树没有度为 1 的节点,有 64 个叶子节点。故正确答案为 A 选项。7.二叉树的中序序列为 BDCA,后序序列为 DCBA,则前序序列为_。 A.DCBA B.BDCA C.ABCD D.BADC(分数:1.00)A.B.C. D.解析:解析 二叉树遍历可以分为 3 种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访
31、问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。本题中中序序列为 BDCA,后序序列为 DCBA,可知 A 为根节点,BDC 为左侧节点,C 是 B 右子节点,D 是 C 右子节点,故前序序列为 ABCD,C 选项正确。8.下面能作为软件需求分析工具的是_。 A.PAD 图 B.程序流程图 C.甘特图 D.数据流程图(DFD 图)(分数:1.00)A.B.C.D. 解析:解析 软件需求分析方法包括结构化分析方法和面向对象的分析方法两大类,前者常用工具为数据流图(DFD)、数据字典(DD)、判定表、判定树等。故 D 选项正确。选项 B 是软件功能实现时设计图。9.下面不属
32、于对象主要特征的是_。 A.唯一性 B.多态性 C.可复用性 D.封装性(分数:1.00)A.B.C. D.解析:解析 对象的基本特点如下表所示。 特点 描述标识唯一性 一个对象通常可由对象名、属性和操作三部分组成分类性 指可以将具有相同属性和操作的对象抽象成类多态性 指同一个操作可以是不同对象的行为,不同对象执行同一操作产生不同的结果封装性 从外面看只能看到对象的外部特性,对象的内部对外是不可见的模块独立性好由于完成对象功能所需的元素都被封装在对象内部,所以模块独立性好可知 C 选项正确。10.关系 R 经过运算 A=BC4D3 (R)的结果为_。 RA B C Da a 2 4b e 1
33、2c c 11 4e e 6 1 A.(c,c,11,4) B.(e,e,6,1) C.(a,a,2,4) D.(a,a,2,4)和(e,e,6,1)(分数:1.00)A. B.C.D.解析:解析 从关系中找出满足给定条件的元组的操作称为选择,”为交运算,它由属于前者且属于后者的元组组成。题目为选出属于属性 B,同时属性 C 大于 4,并且属性 D 大于 3 的元组,结果为(c,c,11,4),应保留全部属性。故 A 选项正确。11.C 语言整数不包括_。 A.带小数点的整数 B.正整数 C.负整数 D.无符号整数(分数:1.00)A. B.C.D.解析:解析 C 语言整数包括正整数,负整数,
34、无符号整数,不含带小数点的整数,故答案选 A 选项。12.设 a,b,c 是整型变量,且已正确赋初值,以下选项中错误的赋值语句是_。 A.a=1%(b=c=2); B.a=(b=3)*c; C.a=b=c/10; D.a=2=(b=9)=1;(分数:1.00)A.B.C.D. 解析:解析 D 选项中,“()”具有最高优先级,b 先赋值 9,再根据赋值运算符号自右向左进行赋值,再给 b 赋值为 1,再计算 2=b,赋值运算符左边必须是一个变量,但数值 2 是常量,语法错误,故答案为D 选项。13.以下选项中,合法的实数是_。 A.1.5E2 B.E1.1 C.2.10E D.1.9E1.4(分数
35、:1.00)A. B.C.D.解析:解析 E 表示“10 的幂次”,E 的右侧必须是整数,排除 B、C、D 选项,答案为 A 选项。14.关于程序设计基本概念,以下叙述错误的是_。 A.计算机可以直接执行由任意高级语言编写的程序 B.高级语言都有与之对应的编译程序或解释程序 C.用任何一种计算机高级语言都可以把算法转换为程序 D.结构化算法可以解决任何复杂的问题(分数:1.00)A. B.C.D.解析:解析 计算机只能识别机器语言,不能直接识别由高级语言编写的程序,故答案为 A 选项。15.以下不能用于实型数据的运算符是_。 A.% B./ C.* D.+(分数:1.00)A. B.C.D.解
36、析:解析 “%”符号两边必须是整数,因此答案为 A 选项。16.C 语言中,最基本的数据类型包括_。 A.整型、实型、逻辑型 B.整型、字符型、数组 C.整型、实型、字符型 D.整型、实型、结构体(分数:1.00)A.B.C. D.解析:解析 C 语言中,最基本的数据类型包括整型、实型、字符型,答案为 C 选项。17.若有定义:int a=0,b=0,c=0,d=0;,有 C 语言表达式(a+while (chE)printf(“%d“, ch-A);ch+;printf(“/n“);程序运行后的输出结果是_。 A.123 B.ABC C.abc D.012(分数:1.00)A. B.C.D.
37、解析:解析 当满足 chE,输出 ch-A,即字符在 AsCII 码相减进行输出,%d 表示输出十进制整数。循环开始 ch=B,print(“%d”,ch-A)=1,以此类推答案为 A 选项。19.以下关于指针的叙述,错误的是_。 A.两个基类型相同的指针变量不能指向同一个对象 B.可以通过对指针变量自增、自减来移动指针 C.只有两个类型相同的指针才能进行减运算 D.一个指针变量可以通过不同的方式获得一个确定的地址值(分数:1.00)A. B.C.D.解析:解析 只要两个指针变量基类型相同,可以指向同一个对象,故答案为 A 选项。20.对于函数声明:void fun(float array,i
38、nt * ptr);以下叙述正确的是_。 A.调用函数时,array 数组的元素和 ptr 都是按值传送 B.函数声明有语法错误,参数 array 缺少数组大小定义 C.调用函数时,array 数组中将存储从实参中复制来的元素值 D.函数参数 array,ptr 都是指针变量(分数:1.00)A.B.C.D. 解析:解析 void fun(noat array,int * ptr)定义了 2 个形参:array和*ptr,其中函数形参中int array其实相当于 int*array,答案为 D 选项。21.有以下程序:#include stdio.hmain( )int i,k;int ar
39、ray42 = 1,0,0,2,9,3;for (i=0; i2; i+)for (k=0; k3; k+)printf(“%d,“, arrayki);printf(“/n“);程序运行后的输出结果是_。 A.1,0,2,0,0,9, B.1,2,4,9,6,0, C.2,9,0,0,1,4, D.1,2,0,1,4,1,(分数:1.00)A. B.C.D.解析:解析 本题定义一个 4 行 2 列数组,其中赋值 6 个数,其余自动为 0,根据 for 循环,第一次输出第一列前三行数,分别是 1,0,2;第二次输出第二列前三行数,分别是 0,0,9,因此答案为 A 选项。22.要求定义一个具有
40、 6 个元素的 int 型一维数组,以下选项中错误的是_。 A.int N =6,aN; B.int a2*3 = 0; C.#define N 3 int aN+N; D.int a = 1,2,3,4,5,6;(分数:1.00)A. B.C.D.解析:解析 数组名后面括号内,必须是整型常量,不可以是变量,A 选项定义错误,答案为 A 选项。23.有以下程序:#include stdio.hmain( )char b310,c;int i;for(i=0; i2; i+) scanf(“%s“, bi);i=0;while(c=getchar()!=/n)b2i+ = c;b2i =/0;p
41、rintf(“%s%s%s/n“, b0, b1, b2);执行时若输入以下字符串:Peach flower is pink. 回车则输出结果是_。 A.Peachflower is pink. B.Peaehfloweris pink. C.Peachflowerispink. D.Peach flower is pink.(分数:1.00)A. B.C.D.解析:解析 由于用“%s”格式输出字符串时,是以空格作为间隔符,因此,输入给 b0=“Peach“,b1=“flower“,而 whie 语句给 c 赋值时,getchar()能识别空格符,b2=“is pink“,答案为 A 选项。2
42、4.有以下程序:#include stdio.hmain( ) char w20, a510 = “abcdef“, “ghijkl“, “mnopq“, “rstuv“, “wxyz“;int i,j;for (i=0; i5; i+) j = 0;while (aij !=/0)j+;wi = aij-2;w5 =/0;puts(w);程序运行后的输出结果是_。 A.agmrw B.ekpuy C.djotx D.flqvz(分数:1.00)A.B. C.D.解析:解析 在 for 循环中,执行完 while 语句后,j 值为每行字符串的长度,此时 aij-1为字符串数组每个元素的最后一个
43、字符,aij-2为倒数第二个字符。因此 wi=aij-2,比如 i=0;j=6,则w0=a04=e,循环依次赋值,最后输出y,答案为 B 选项。25.有以下程序:#include stdio.h#include string.hmain( )char name9=“c#1ine“;char* str = name;printf(“%d,%d,%d,%d/n“, sizeof(name), strlen(name), sizeof(str), strlen(str);程序运行后的输出结果是_。 A.9,7,4,7 B.8,6,9,6 C.8,6,3,6 D.10,8,5,8(分数:1.00)A. B.C.D.解析:解析 由于 name 是一个长度为 9 的一维数组,故在内存中占用 9 字节长度,而其中字符串“c#line只有 7 个字符,strlen()函数返回的是该字符串的长度,不包含结束符,str 是一个指针变量,占用 4 字节长度,但是由于 name 首地址赋给了 str 指针变量,在调用 strlen()函数时,返回的是指针对应地址单元的字符串的长度 7,因此答案为 A 选项。26.有以下程序:#includ