1、国家二级( C语言)笔试模拟试卷 117及答案与解析 1 下列选项中,不是一个算法的基本特征的是 ( )。 ( A)完整性 ( B)可行性 ( C)有穷性 ( D)拥有足够的情报 2 结构化分析方法是面向 ( )的自顶向下、逐步求精进行需求分析的方法。 ( A)对象 ( B)数据结构 ( C)数据流 ( D)目标 3 下列工具中为需求分析常用工具的是 ( )。 ( A) PAD ( B) PFD ( C) N-S ( D) DFD 4 对线性表进行二分法检索,其前提条件是 ( )。 ( A)线性表以顺序方式存储,并按关键码值排好序 ( B)线性表以顺序方式存储,并按关键码的检索频率排好序 (
2、C)线性表以链式方式存储,并按关键码值排好序 ( D)线性表以链式方式存储,并按关键码的检索频率排好序 5 下列选项中不属于结构化程序设计方法的是 ( )。 ( A)自顶向下 ( B)逐步求精 ( C)模块化 ( D)可复用 6 关于结构化程序设计原则和方法描述错误的是 ( )。 ( A)选用的结构只准许有一个入口和一个出口 ( B)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现 ( C)不允许使用 GOTO语句 ( D)语言中所没有的控制结构,应该采用前后一致的方法来模拟 7 软件需求分析阶段的工作,可以分为 4个方面:需求获取、需求分析、编写需求规格说明书以及 ( )。 ( A)阶段性
3、报告 ( B)需求评审 ( C)总结 ( D)都不正确 8 下列对于软件测试的描述中正确的是 ( )。 ( A)软件测试的目的是证明程序是否正确 ( B)软件测试的目的是使程序运行结果正确 ( C)软件测试的目的是尽可能多地发现程序中的错误 ( D)软件测试的目的是使程序符合结构化原则 9 用链表表示线性表的优点是 ( )。 ( A)便于随机存取 ( B)花费的存储空间较顺序存储少 ( C)便于插入和删除操作 ( D)数据元素的物理顺序和逻辑顺序相同 10 在数据库设计中,将 E-R图转换为关系模式的过程属于 ( )。 ( A)需求分析阶段 ( B)逻辑设计阶段 ( C)概念设计阶段 ( D)
4、物理设计阶段 11 下列说法正确的是 ( )。 ( A)在 C程序中, main()函数必须位于程序的最前面 ( B)在 C程序中,一条语句只能写一行而不能写多行 ( C) C程序是以行 为基本单位的 ( D) C语言本身没有输入输出语句 12 设在 C语言中, float类型数据占 4个字节,则 double类型数据占 ( )个字节。 ( A) 1 ( B) 2 ( C) 8 ( D) 4 13 下列程序的运行结果是 ( )。 int y=5,x=14; y=(x=3*y,x+1),x-1); printf(“x=%d,y=%d“,x,y); ( A) x=27, y=27 ( B) x=1
5、2, y=13 ( C) x=15, y=14 ( D) x=y=27 14 设 int x=1, y=1;表达式 (|x-y)的值是 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) -1 15 下列程序输出的结果是 ( )。 main() int a; a=-4+4*5-6;printf(“%d“,a); a=4+4%5-6;printf(“%d“,a); a=-3+4%6/5;printf(“%d“,a); a=(7+6)%5/2;printf(“%d“,a); ( A) 10 2 -3 1 ( B) 10 -2 2 1 ( C) 11 -2 2 1 ( D) 10 2 2
6、1 16 若有下列定义和语句: int u=011,y=0x11,w=11; printf(“%o,%x,%dn“,u,v,w); 则输出结果是 ( )。 ( A) 9, 17, 11 ( B) 9, 11, 11 ( C) 11, 11, 11 ( D) 11, 17, 11 17 若有下列定义 (设 int类型变量占 2个字节 ): int i=8, j=9; 则下列语句: printf(“i=%d,j=%dn“,i,j); 输出的结果是 ( )。 ( A) i=8, j=9 ( B) i=%d, j=%d ( C) i=%8, j=%9 ( D) 8, 9 18 为了避免在嵌套的条件语句
7、 if else中产生二义性, C语言规定, else子句总是与( )配对。 ( A)缩排位置相同 if ( B)其前面最近的 if ( C)其后面最近的 if ( D)同一行上的 if 19 下列程序的输出结果是 ( )。 main() char a7=“a00a00“;int i,j; i=sizeof(a); j=strlen(a); printf(“%d %dn“,i,j); ( A) 2 2 ( B) 7 6 ( C) 7 2 ( D) 6 2 20 下列程序的运行结果是 ( )。 #include stdio.h main() int a=0,b=4,c=0,d=10,x; if(
8、a) d=d-10; else if(!b) if(!c) x=15; else x=25; printf(“%dn“,d); ( A) 5 ( B) 3 ( C) 20 ( D) 10 21 下列程序的运行结果是 ( )。 #include stdio.h main() int a=2,b=3, c=4; if(a b) if(b 0) c=0; else c+=1; printf(“%dn“, c); ( A) 2 ( B) 3 ( C) 5 ( D) 4 22 在下列给出的表达式中,与 while(E)中的 (E)不等价的表达式是 ( )。 ( A) (!E=0) ( B) (E 0|E
9、 0) ( C) (E=0) ( D) (E!=0) 23 有下列程序: #include “ stdio.h“ main() int x=0; int y=0; while (x 7 printf(“%dn“, s0; 执行后的结果是 ( )。 ( A)输出字符 a的 ASCII码 ( B)输出字符 c的 ASCII码 ( C)输出字符 c ( D)程序出错 25 下列选项中非法的字符常量是 ( )。 ( A) t ( B) 039 ( C) , ( D) n 26 下列叙述中正确的是 ( )。 ( A) break语句只能用于 switch语句 ( B)在 switch语句中必须使用 de
10、fault ( C) break语句必须与 switch语句中的 case配对使用 ( D)在 switch语句中,不一定使用 break语句 27 下列叙述中 ,错误的是 ( )。 ( A)在同一 C程序文件中,不同函数中可以使用名字相同的变量 ( B)在 main()函数体内定义的变量是全局变量 ( C)形参是局部变量,函数调用完成即失去意义 ( D)若同一文件中全局和局部变量同名,则全局变量在局部变量作用范围内不起作用 28 C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是 ( )。 ( A)地址传递 ( B)值传递 ( C)由实参传给形参,并由形参传回给实参 ( D)由用
11、户指定传递方式 29 设 q1和 q2是指向一个 float型一维数 组的指针变量, k为 float型变量,则不能正确执行的语句是 ( )。 ( A) k=*q1+*q2; ( B) q1=k; ( C) q1=q2; ( D) k=*q1*(*q2); 30 若有说明: int*p1, *p2, n=8, m;下列均是正确赋值语句的选项是 ( )。 ( A) p1=p2=p1; 31 若希望下列的程序运行后输出 25,程序空白处的正确选项是 ( )。 main() int i,j=50,a=7,4,10,5,8; for( ) j+=ai; printf(“%d“,j-40); ( A)
12、i=1; i 4; +i ( B) i=1; i 3; +i ( C) i=4; i 2; i- ( D) i=2; i 4; +i 32 若有说明 int a3=1,2,3,4,5,6,7,8,9,则 a数组第一维的大小是 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D)无确定值 33 若二维数组 a有 m列 ,则在 aij前的元素个数为 ( )。 ( A) i*m+j-1 ( B) i*m+j ( C) j*m+I ( D) i*m+j+1 34 函数调用 strcat (strcpy(str1, str2), str3)的功能是 ( )。 ( A)将字符串 str1复制到字符
13、串 str2中后再连接到字符串 str3之后 ( B)将字符串 str1连接到字符串 str2之后再复制到字符串 str3之后 ( C)将字符串 str2复制到字符串 str1中后再将字符串 str3连接到字符串 str1之后 ( D)将字符串 str2连 接到字符串 str1之后再将字符串 str1复制到字符串 str3中 35 下列程序的输出结果是 ( )。 #include stdio.h f(int a) int b 0; static int c 4; a c+; b+; return(a); main() int a=2, i, c; for(i=0; i 2; i+) c=f(a
14、+); printf(“%dn“, c); ( A) 4 ( B) 7 ( C) 6 ( D) 5 36 #define能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5的值的函数 f,正确的宏定义语句为 ( )。 ( A) #define f(x)5*x*x+5*x+5 ( B) #define f5*x*x+5*x+5 ( C) #define f(a)(5*a*a+5*a+5) ( D) #define (5*x*x+5*x+5)f(x) 37 定义结构体数组: struct stu int num; char name20; x5=1,“LI“,2,“ZHAO“,3“WANG
15、“,4,“ZHANG“,5“LIU“; for(i=1;i 5;i+) printf(“%d %c“, xi.num, xi.name2); 以上程序段的输出结果为 ( ). ( A) 2A3N4A5U ( B) 1I2a3h4I ( C) 1A2N3A4U ( D) 2H3A4H5I 38 若有下列说明和语句,已知 int型数据占 2个字节,则下列语句的输出结果是( )。 struct st char a15; int b; double c; ; printf(“%d“,sizeof (struct st); ( A) 15 ( B) 8 ( C) 25 ( D) 2 39 设 int x
16、=7,则 x的值是 ( )。 ( A) -8 ( B) -7 ( C) -1 ( D) 1 40 函数 ftell(fp)的作用是 ( )。 ( A)得到 fp所指向文件的当前读写位置 ( B)初始化流式文件的位置指针 ( C)移动流式文件的位置指针 ( D)以上答案均正确 41 在程序设计阶段应该采取 _和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。 42 注释一般分为序言性注释和 _注释。 43 在面向对象方法中,类的实例称为 _。 44 某二叉树中度为 2的结点有 18个,则该二叉树中有 _个叶子结点。 45 数据流图的类型有 _和事
17、务型。 46 若 a=l, b=2,则表达式 !(x=a)|y=b) 53 下列程序的输出结果是 _。 main () int i,sum; for(i=1; i 7; i+) sum+=i; printf(“%d“,sum); 54 设有下列的程序段: char str=“Hello“; char *ptr; ptr =str; 执行上面 的程序段后, *(ptr+5)的值为 _. 55 下列程序的输出结果是 _. #include stdio.h fun () static int a=O; a+=3; printf(“%d“,a); main () int cc; for (cc=1;c
18、c 5;cc+) fun(); printf (“n“); 国家二级( C语言)笔试模拟试卷 117答案与解析 1 【正确答案】 A 【试题解析】 作为一个算法,一般应该具有下列 4个特征: 可行性,即考虑到实际的条件能够达到一个满意的结果; 确定性,算法中的第一个步骤都必须是有明确定义的; 有穷性,一个算法必须在有限的时间内做完; 拥有足够的情报。 2 【正确答案】 C 【试题解析】 结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。 3 【正确答案】 D 【试题解析】 需求分析常用的工具有数据 流图
19、 (DFD)、数据字典 (DD)、判定树和判定表。 PAD(问题分析图 )、 PFD(程序流程图 )、 N-S(盒式图 )都是详细设计的常用工具,不是需求分析的工具。 4 【正确答案】 A 【试题解析】 对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。 5 【正确答案】 D 【试题解析】 结构化程序设计的主要原则概括为自顶向下、逐步求精和限制使用GOTO语句。 6 【正确答案】 C 【试题解析】 限制使用 GOTO语句是结构 化程序设计的原则和方法之一,但不是绝对不允许使用 GOTO语句。其他 3项为结构化程序设计的原则。 7 【正
20、确答案】 B 【试题解析】 需求分析是软件定义时期的最后一个阶段。可以概括为 4个方面: 需求获取; 需求分析; 编写需求规格说明书; 需求评审。 8 【正确答案】 C 【试题解析】 软件测试是为了尽可能多地发现程序中的错误,尤其是发现至今尚未发现的错误。 9 【正确答案】 C 【试题解析】 在链表中因为除了存放数据元素之外,还要存放指针,所以链表花费的存储空间要比顺序表 还要多。在插入和删除数据元素时,只需要移动相应的记录指针即可。在链表中数据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定的,所以不能进行随机存取。 10 【正确答案】 B 【试题解析】 数据库设计阶段主要包括
21、需求分析、概念设计、逻辑设计和物理设计。其中,逻辑设计的主要工作是将 E-R图转换为关系模式。 11 【正确答案】 D 【试题解析】 本题涉及 C语言最基本的 4个知识点: C语言程序是由函数构成的, C程序的基本单位是函数; 每个 C程序有且只有一个主函数 main(),且 程序必须从 main()函数开始执行,但是 main()函数可以放在程序中的任意位置; C语言的书写格式是自由的,一行可以写多条语句,一条语句也可以写在不同的行上; C语言本身不提供输入输出语句,可以通过函数来实现输入和输出操作。 12 【正确答案】 C 【试题解析】 在 C语言中各种数据类型在内存中所占的字节数和机器的
22、指令周期有关,若 int类型占 2个字节,则 float类型数据占 4个字节, double类型数据占 8个字节。 13 【正确答案】 C 【试题解析】 逗号表达式的求解步骤是先求解表 达式 1,然后依次求解表达式2,直到表达式 N的值。整个逗号表达式的值就是最后一个表达式 N的值。表达式 (x=3*y, x+1)中,第一个表达式 x=3*y=3*5=15;第二个表达式 x+1=16,但没有给 x或 y赋值,所以 x还是等于 15;第 3个表达式 x-1=15-1=14,所以 y的值为14。 14 【正确答案】 A 【试题解析】 当逻辑或运算符两边的运算对象至少有一个为 1时,整个逻辑表达式的
23、值是 1;如果两边的运算对象都为 0,则整个逻辑表达式的值为 0。题中 !x=0, -y=0,所以整个表达式的值是 0。 15 【正确答案】 A 【试题解析】 本题考查 %和 /运算符的使用。如果两个数不能整除,只取结果的整数部分,小数部分全部舍去。运算符 “%”要求两个运算对象都为整型,其结果是整数除法的余数。表达式: a=-4+4*5-6=-4+20-6=10:表达式: a=4+4%5-6=4+4-6=2;表达式: a=-3+4%6/5=-3+0=-3;表达式: a=(7+6)%5/2=13%5/2=1。 16 【正确答案】 C 【试题解析】 在 C语言中, “%d”表示输出带符号的十进制
24、整型数; “%x”表示以十六进制无 符号型输出整型数据 (即不带前导 0x或 0x); “%o”表示以八进制无符号型输出整型数据 (即不带前导 0)。 17 【正确答案】 B 【试题解析】 本题考查 printf函数的格式。在 printf函数中,如果格式说明符中有两个 %说明,则将第 1个 %后面的字符原样输出,并不输出其对应的变量值。 18 【正确答案】 B 【试题解析】 本题考查 if else语句。 C语言规定, else总是与它前面的最近的 if配对。 19 【正确答案】 C 【试题解析】 函数 sizeof(a)的功能是求出字 符串 a中的字符占用存储空间的大小,由于字符数组 a有
25、长度为 7,所以 i=7;函数 strlen(a)的功能是:求出字符串a的长度。而每个字符串都以 0为字符串的结束标记,所以 j的值等于 2。 20 【正确答案】 D 【试题解析】 本题考查 if else语句。第 1个 if语句,先判断条件,发现 a=0条件不成立,则执行与其配对的 else语句;第 2个 if语句,先判断条件,发现 b=4,则 !b条件不成立,又没有与其配对的 else语句,所以执行 printf语句,输出 d。 21 【正确答案】 C 【试题 解析】 本题考查 if else语句。第一个 if语句,先判断条件,发现 a b条件成立,执行下列的语句;第二个 if语句,先判断
26、条件,发现 b 0条件不成立,则执行与其配对的 else语句, c+=1,得 c=5。 22 【正确答案】 B 【试题解析】 在 while(E)中,表达式 E可以是 C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项 B)中表达式 E 0|E 0是一个逻辑表达式。 23 【正确答案】 A 【试题解析】 本题考查 while循环。 y的值在 while循环的控制 表达式中加 1,在循环体内减 1,所以总的 y值不变,且控制条件 +y永远非零。当 x加到 7时不满足循环条件,结束循环。 24 【正确答案】 D 【试题解析】 因为字符数组 s中的数组名 s表示的是一个地址常
27、量。所以语句“s+=2; ”不能将指针在当前位置的基础上再向后移动两位。因而程序编译时出错。 25 【正确答案】 B 【试题解析】 选项 A)中, t,表示的是横向跳若干格;选项 B)中, 039错误,039是八进制形式表示的字符,但其中出现了 9,所以错误;选项 C)中, , 是字符逗号:选项 D)中, n表示的是回车换行。 26 【正确答案】 D 【试题解析】 break为 C语言关键字,又称间断语句。 break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在 switch语句中,也可以出现在循环语句中。 default是关键字,起标号的作用,代表所有 case标号之外的那些标
28、号。 default标号可以出现在语句体中任何标号位置上。在 switch语句体中也可以没有 default标号。 27 【正确答案】 B 【试题解析】 本题考查函数调用时变量的作用 域。形参是局部变量,函数调用完就失去意义了,所以在同一个 C程序文件中,不同的函数体中可以使用名字相同的局部变量。注意:在函数之外定义的变量称为外部变量,外部变量是全周变量。全局变量可以为本文件中其他函数所共用。它的有效范围为:从定义变量的位置开始到本源文件结束。 28 【正确答案】 B 【试题解析】 本题考查函数调用时的参数传递。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间只是实参将值传递
29、给形参。 29 【正确答案】 B 【试题解析】 选项 A)是将指针 q1和 q2所指向的变量值相加,然后赋给 k;选项 B)中, float型数据和指针型数据之间不能进行赋值运算;选项 C)中,是两个指针变量之间的赋值:选项 D)中,是两个指针型变量所指向的两个 float型数据相乘。 30 【正确答案】 D 【试题解析】 本题考查指针变量的赋值。 选项 A)中, p1、 p2本身都是地址变量,不能再将 p1取地址赋给 p2:选项 B)中,不能将整型数据直接赋值给指针型数据;选项 C)中, *p2代表了一个整型变量,而 *p2=p1这个语句试图把一个地址值放入一个整犁变量中是错误的;选项 D)
30、中指针 问的赋值是正确的。 31 【正确答案】 D 【试题解析】 要想使程序输出是 25,则 j-40=25, j=65,而 j初值是 50,所以填入 for循环中的语句,使引用的数组元素累加为 65-50 15即可。 32 【正确答案】 B 【试题解析】 本题考查二维数组第一维的大小如何确定。二维数组第一维的大小由下列规则确定: 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小: 当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加 1。 33 【正确答案】 B 【试题解析】 二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放
31、第二行的元素。数组第一维的下标是 i,说明它前面还有 i行,有i*m个元素,数组第二维的下标是 j,说明它前面还有 j列,有 j个元素,所以共有 i*m +j个元素。 34 【正确答案】 C 【试题解析】 sffcat(s1, s2)是把 s2字符串连接到 s1字符串末尾, strcpy(s1,s2)是把 s2字符串复制给 s1字符串,要保证 sj能容纳下连接或复制后的字符串。 35 【正确答案】 D 【试题解析 】 本题考查静态变量的使用方法和 for循环。在函数调用时, static变量在函数调用结束后所作的所有变化均不保持,所以当 i=1时,第 2次进入 f函数时 c=5,所以最终 ma
32、in函数中 c的值为 5。 36 【正确答案】 C 【试题解析】 带参数宏的格式为: #define标识符 (形参表 ) 形参表达式。其功能是:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。 37 【正确答案】 A 【试题解析】 本题主要考查结构体数组的使用。 xi.mum为结构体 xi中的 num成员, xi.name2是结构体 xi中 name成员的第 3个元素。程序执行循环过程时:第 1次循环, i=1,输出 x1.num, x1.name2的值,即 2A:第 2次循环,i=2,输出 x2.mum, x2.name2的值,即 3N;第 3次循环, i=3,输出x
33、3.num,x3.name2的值,即 4A;第 4次循环, i=4,输出 x4.num,x4.name2的值,即 5U。 38 【正确答案】 C 【试题解析】 本题主要考查结构体的内存使用:对结构体而言,结 构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。题中 int b占 2个字节, char a15占 15个字节, double c占 8个字节,所以共 25个字节。 39 【正确答案】 A 【试题解析】 本题主要考查按位求反运算和 C语言中正负数的表示, “0”代表正数, “1”代表负数; x=7的二进制为 0
34、0111,第一个 0代表正数, x为 11000,第一个 1代表负数,值为 8。 40 【正确答案】 A 【试题解析】 位置 指针当前值函数 ftell()的基本调用格式为: ftell(fp)。 ftell()函数的参数说明: “fp”是指向文件的文件型指针。 ftell函数的功能:得到 fp所指向文件的当前读写位置,即位置指针的当前值,如果函数的返回值为 -1L,表示出错。 41 【正确答案】 自顶向下 【试题解析】 在程序设计时,应先考虑总体,后考虑细节,逐步使问题具体化,对复杂的问题,应该设计一些子目标作为过渡,上述方法概括为:自顶向下,逐步细化。 42 【正确答案】 功能性 【试题解
35、析】 注释一般分为序言性 注释和功能性注释。序言性注释通常位于每个程序的开头部分,给出程序的整体说明;功能性注释一般嵌在源程序体之中,主要描述其后的语句或程序做什么。 43 【正确答案】 对象 【试题解析】 在面向对象的程序设计方法中,类是具有相同的属性或方法的对象的抽象,对象是类的实例。 44 【正确答案】 19 【试题解析】 在任意一棵二叉树中,度数为 0的结点 (即叶子结点 )总比度为 2的结点多一个,因此该二叉树中叶子结点为 18+1=19。 45 【正确答案】 变换型 【试题解析】 典型的数据流类 型有两种:变换型和事务型。 46 【正确答案】 0 【试题解析】 根据运算符的运算顺序
36、可知,该表达式最后运算的是与 (&)运算,而任何表达式与 “0”进行 “与 ”运算,结果都为 0。 47 【正确答案】 X Z|y z 【试题解析】 本题考查逻辑运算符和逻辑表达式。 x或 y中至少有一个小于 z,即 X Z或 y z,是 “或 ”的关系。 48 【正确答案】 1 【试题解析】 if else语句的功能是:若表达式的值为真,执行语句 1,并跳过其他语句,执行 if else语句的下一条语句,若表 达式的值为假,跳过语句 1,执行语句 2,依次往下判断。题中, x=3, y=2,第一个 if语句的控制条件 x y就不满足,又没有与之配对的 else语句,所以直接执行 pfintf
37、语句,在整个过程中变量 z的值都没发生变化。 49 【正确答案】 continue 【试题解析】 continue语句只是结束本次循环,然后进行循环的条件判定。break语句是终止整个循环的执行,不再进行条件判定。 50 【正确答案】 8 【试题解析】 二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段 赋值的, a44可以分解为 4个一维数组,其数组名分别为 a0、a1、 a2、 a3,这 4个一维数组都有, 4个元素, a0的元素为 a00、a01、 aO2、 a03。 51 【正确答案】 aaaaAAAAA 【试题解析】 函数 swcat(sp,“AAAAA“)的作用是
38、将字符串 “AAAAA”连接到字符串 sp的末尾,并自动覆盖字符数组 sp末尾的 0。 52 【正确答案】 1, 1 【试题解析】 POWER(i+)中先引用 i的值 1,再将 i的值 加 1,POWER(i+)=1*1=1。 53 【正确答案】 无定值 【试题解析】 for(i=1; i 7; i+)决定了循环次数为 6次,每次执行的操作是sum+=i,但由于 sum没有初始化,并不知道 sum的初值是多少,所以结果无定值。 54 【正确答案】 0 【试题解析】 本题涉及字符数组和指针的两个知识点: 在 c语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符 0,所以题中数组 str有 6个元素。 ptr指向数组 str的首地址, ptr+5是指向 str5, *(ptr+5)是引用 str5的值,即 0。 55 【正确答案】 3 6 9 12 【试题解析】 本题考查最基本的 for循环: for(cc=1; cc 5; cc+)规定循环次数为 4次,每次 a+=3即每次 a的值增 3,但因为 fun函数中变量 a为 static类型,所以每次调用完子函数之后,变量 a所做的改变都要保存。