1、二级 C 语言笔试 320 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.下列能正确进行字符串赋值的是( )。(分数:2.00)A.chars5“ABCDE“;B.char s5+A,B,C,D,E),C.char*s;s“ABCDE“;D.char*s;printf(“%S;2.下列程序的输出结果是( )。 main() int a4,b5,c; ifaB) ca*b;printf(“%d,%d,%d/n“,b,a,c); else cb/a;printf(“%d,%d,%d/n“,b,a,c); (分数:2.00)A.4,5,1
2、2B.20C.5,4,20D.123.设计程序时,应采纳的原则之一是( )。(分数:2.00)A.程序的结构应有助于读者的理解B.限制 GOTO 语句的使用C.减少或取消注释行D.程序越短越好4.下列叙述中正确的是( )。(分数:2.00)A.一个逻辑数据结构只能有一种存储结构B.逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率5.在 C 语言中,while 和 dowhile 循环的主要区别是( )。(分数:2.00)A.dowhile 的循环体不能是
3、复合语句B.dowhile 允许从循环体外转到循环体内C.while 的循环体至少被执行一次D.dowhile 的循环体至少被执行一次6.下列能正确定义且赋初值的语句是( )。(分数:2.00)A.int n1n210;B.charc32;C.float ff+1.1;D.doublex12.3E2.5;7.下列描述错误的是( )。(分数:2.00)A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合8.有下列程序: fun(int x,inty)retum(x+y); mai
4、n() int a1,b2,c3,sum; stunfun(a+,b+,a+b) ,c+); printf(“%d/n“,sum); 执行后的输出结果是( )。(分数:2.00)A.6B.7C.8D.99.下列合法的声明语句是( )。(分数:2.00)A.int_abc50;B.double int3+5e2.5;C.long do1L;D.float 3_asd3e-3;11.下列叙述中正确的是( )。(分数:1.00)A.一个算法的空间复杂度大,则其时间复杂度必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述 3 种说法都不对12
5、.若变量已正确定义,要求通过 scanf(“%c%d%c%d,B.inta34;C.#define N 5D.inta29.5; float a3;14.若 ch 为 char 型变量,k 为 int 型变量(已知字符 a 的 ASCII 码是 97),则执行下列语句后输出的结果为( )。 chb; k10; printf(“%x,%o,“,ch,ch,k); printf(“k%d/n“,k);(分数:1.00)A.因变量类型与格式描述符的类型不匹配,输出无定值B.输出项与格式描述符个数不符,输出为 0 值或不定值C.62,142,k%dD.62,142,k%1015.设有变量说明 int(
6、*p)m,其中的标识符 p 是( )。(分数:1.00)A.m 个指向整型变量的指针B.指向 m 个整型变量的指针C.一个指向具有 m 个整型元素的一维数组的指针D.具有 m 个指针元素的一维指针数组,每个元素都指向整型变量16.下列程序的输出结果是( )。 main() int i1,j2,k3; if(i+1 (分数:1.00)A.1 2 3B.2 3 4C.2 2 3D.2 3 317.关于结构化程序设计原则和方法的描述错误的是( )。(分数:1.00)A.选用的结构只准许有一个入口和一个出口B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C.不允许使用 GOTO 语句D.语言中所
7、没有的控制结构,应该采用前后一致的方法来模拟18.下列叙述中正确的是( )。(分数:1.00)A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B.实型变量中允许存放整型数C.若 a 和 b 类型相同,在执行了赋值 ab 后,b 中的值将放入 a 中,但 b 中的值不变D.在 c 程序中,求余运算符“%”两边的类型相同时才能进行运算19.sizeof(float)是( )。(分数:1.00)A.一种函数调用B.一种函数定义C.一个浮点表达式D.一个整型表达式20.若有说明 chars130“abc“,s2“defghi“;,则在使用函数 strcat(s1,s2)后,结果是( )
8、(分数:1.00)A.s1 的内容更新为 abcdefghiB.s1 的内容更新为 defghi/0C.s1 的内容更新为 defghiabc/0D.s1 的内容更新为 abcdefghi/021.若有定义: “inta23;”则对 a 数组的第 i 行第 j 列元素的正确引用为( )(分数:2.00)A.*(a+B.(a+C.*(a+i+D.*(a+j22.若有定义和语句: int*pp,*p,a20,b10; ppppprintf(“%d,%d/n“,*p,*pp); 则输出结果是( )。(分数:2.00)A.20,10B.20,20C.10,20D.10,1023.在位运算中,操作数每右
9、移两位,其结果相当于( )。(分数:2.00)A.操作数乘以 2B.操作数除以 2C.操作数除以 4D.操作数乘以 424.下列说法不正确的是( )。(分数:2.00)A.一个 C 语言源程序可以由一个函数组成也可以由多个函数组成B.main()中的“()”是函数的参数部分,括号内可为空,但括号不能省略C.C 语言程序是以函数为基本单位的D.在 C 语言程序中,注释行只能位于一条语句的后面25.若函数调用时,参数为基本数据类型的变量,下列叙述中正确的是( )。(分数:2.00)A.实参与其对应的形参共占存储单元B.只有当实参与其对应的形参同名时才共占存储单元C.实参与其对应的形参分别占用不同的
10、存储单元D.实参将数据传递给形参后,立即释放原先占用的存储单元26.下列叙述中正确的是( )。(分数:2.00)A.软件交付使用后还需要进行维护B.软件一旦交付使用就不需要再进行维护C.软件交付使用后其生命周期就结束D.软件维护是指修复程序中被破坏的指令27.有下列程序: main() int k5; while(-k) printf(“%d“,k-3); printf(“/n“); 执行后的输出结果是( )。(分数:2.00)A.1B.2C.4D.死循环28.下列程序的输出结果是( )。 #includestdio.h main() int a0,i; for(i1;i5;i+) Switc
11、h(i) case 0: case 3:a+1; case 1: case 2:a+2; default:a+3; printf(“%d“,a) : (分数:2.00)A.19B.18C.6D.829.在 C 语言程序中,下列说法正确的是( )。(分数:2.00)A.函数的定义和函数的调用均可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义可以嵌套,但函数的调用不可以嵌套D.函数的定义和函数的调用均不可以嵌套30.C 语言结构体类型变量在程序执行期间( )。(分数:2.00)A.所有成员一直驻留在内存中B.没有成员驻留在内存中C.部分成员驻留在内存中D.只有一个成员驻留在内存
12、中31.若有结构体定义: struct stuint num; char sex; int age; al,a2; 则下列语句中错误的是( )。(分数:2.00)A.printf(“%d,%C,%d“,a1);B.a2.agea1.age;C.a1.age+;D.a1.num5;33.下列特征中不是面向对象方法的主要特征的是( )。(分数:2.00)A.多态性B.继承C.封装性D.模块化34.在“文件包含”预处理语句的使用形式中,当#include 后面的文件名用“(双撇号)括起时,寻找被包含文件的方式是( )。(分数:2.00)A.直接按系统设定的标准方式搜索目录B.先在源程序所在的目录搜索
13、,如没找到,再按系统设定的标准方式搜索C.仅仅搜索源程序所在目录D.仅仅搜索当前目录35.最简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序36.设 x、y 和 z 是 int 型变量,且 x4,y6,z8,则下列表达式中值为 0 的是( )。(分数:2.00)A.x switch(x) case1: switch(y) case 0:a+;break; case 1:b+;break; case2: a+;b+;break; printf(“a%d,b%d/n“,a,B); (分数:2.00)填空项 1:_49.C 语言用于结构化程序设计的 3 种
14、基本结构是 1、选择结构和循环结构。(分数:2.00)填空项 1:_50.下列循环的循环次数是_。 ihtk2; while(k0) printf(“%d“,k); k-; printf(“/n“);(分数:2.00)填空项 1:_51.若有定义 floatb15,*pb;,且数组 b 的首地址为 200H,则 p/13 所指向的数组元素的地址为 1。(分数:2.00)填空项 1:_52.“printf(“%d/n“,strlen(“/t/“/023/xABC/n“);“语句的输出结果是_。(分数:2.00)填空项 1:_53.设有下列宏定义:#define A2#define B A+3则执
15、行赋值语句:tb *2;t 为血型变量后的值是_。(分数:2.00)填空项 1:_54.下列程序的功能是将字符串 s 中所有的字符 c 删除。请填空。 #includestdio.h main() char s80; int i,j; gets(S); for(ij0;si!/0;i+) if(si!c)_; sj/0; puts(S); (分数:2.00)填空项 1:_55.下列程序的运行结果是_。 #includestdio.h func(a,B) static int m0,i2; i+m+1; mi+a+b; return(m); main0 intk5,m3,p; pfunc(k,m
16、); printf(“%d“,p); pfunc(k,m); printf(“%d/n“,p); (分数:2.00)填空项 1:_二级 C 语言笔试 320 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.下列能正确进行字符串赋值的是( )。(分数:2.00)A.chars5“ABCDE“;B.char s5+A,B,C,D,E),C.char*s;s“ABCDE“; D.char*s;printf(“%S;解析:解析 字符串存储要有结束符“/0”且要占用一个空间,选项 A)、B)的空间不够;printf 用来输出字符,不能输入字符串。
17、2.下列程序的输出结果是( )。 main() int a4,b5,c; ifaB) ca*b;printf(“%d,%d,%d/n“,b,a,c); else cb/a;printf(“%d,%d,%d/n“,b,a,c); (分数:2.00)A.4,5,12B.20C.5,4,20 D.12解析:解析 本题考查 if else 语句。第一个 if 语句,先判断条件,发现 ab 成立,执行下列的复合语句,得 ca *b20,b、a 的值不变。3.设计程序时,应采纳的原则之一是( )。(分数:2.00)A.程序的结构应有助于读者的理解 B.限制 GOTO 语句的使用C.减少或取消注释行D.程序
18、越短越好解析:解析 程序设计的风格主要强调程序的简单、清晰和可理解性,以便读者理解。程序滥用 GOTO 语句,将使程序流程无规律,可读性差:添加注释行有利于对程序的理解,不应减少或取消,程序的长短要依据实际的需要而定,并不是越短越好。4.下列叙述中正确的是( )。(分数:2.00)A.一个逻辑数据结构只能有一种存储结构B.逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率 解析:解析 数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结
19、构可以根据需要采用不同的存储结构,常用的存储结构有顺序和链式结构。采用不同的存储结构,其处理的效率是不同的。5.在 C 语言中,while 和 dowhile 循环的主要区别是( )。(分数:2.00)A.dowhile 的循环体不能是复合语句B.dowhile 允许从循环体外转到循环体内C.while 的循环体至少被执行一次D.dowhile 的循环体至少被执行一次 解析:解析 本题考查 while 和 dowhile 循环的区别。while 循环的控制出现在循环体之前,只有当while 后面的表达式的值为非零时,才可能执行循环体;在 dowhile 构成的循环体中,总是先执行一次循环体,然
20、后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。6.下列能正确定义且赋初值的语句是( )。(分数:2.00)A.int n1n210;B.charc32; C.float ff+1.1;D.doublex12.3E2.5;解析:解析 C 语言规定,可以在定义变量的同时给变量赋初值,称为变量初始化。选项 A)中在给 n1 和 n2 进行赋初值,但变量 n2 没有定义;选项 C)中定义变量 f 时,不能在赋值表达式的右边出现变量 f 自身,所以选项 C)错误;选项 D)用指数表达式的常量中,字母 E 后面的数应该为整数,而不应该为小数形式。因此,选项 B)正确。7.下列描述错
21、误的是( )。(分数:2.00)A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征 D.类是具有共同属性、共同方法的对象的集合解析:解析 对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。8.有下列程序: fun(int x,inty)retum(x+y); main() int a1,b2,c3,sum; stunfun(a+,b+,a+b) ,c+); printf(“%d/n“,sum); 执行后的输出结果是( )。(分数:2.00)A.6B.7C
22、.8 D.9解析:解析 函数 fun(intx,inty)的功能是返回两个整型数据的和。在主函数中,变量 a,b,c 的初始值分别为 1,2,3。因此逗号表达式“a+,b+,ab”的值等于 5,表达式 c+的值为 3,调用子函数的表达式为“fun(5,3);”,其返回值等 8。所以变量 sam 的值等于 8。9.下列合法的声明语句是( )。(分数:2.00)A.int_abc50; B.double int3+5e2.5;C.long do1L;D.float 3_asd3e-3;解析:解析 C 语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。另外 C 语言
23、规定了一些专用的标识符,它们有着固定的含义,不能更改。int 就是表达变量类型的标识符,它不能再用做变量名和函数名,所以选项 B)不正确。do 是 C 语言的一个关键字,也不能再用做变量名和函数名,所以选项 C)不正确。解析:解析 C 语言规定,函数必须先定义,后调用(函数的返回值类型为 int 或 char 时除外)。在选项A)中,调用的子函数在调用后面定义,所以不正确。在选项 B)、C)中,被调用函数在主调函数之前定义,再在主函数中调用,所以是正确的;在选项 D)中,在主调函数中先对子函数 float fun(int,intj)进行了定义,然后进行调用。11.下列叙述中正确的是( )。(分
24、数:1.00)A.一个算法的空间复杂度大,则其时间复杂度必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述 3 种说法都不对 解析:解析 算法的时间复杂度和算法的空间复杂度是从不同的角度来衡量算法的执行情况,它们之间没有内在联系。12.若变量已正确定义,要求通过 scanf(“%c%d%c%d,B.inta34;C.#define N 5D.inta29.5; float a3; 解析:解析 C 语言规定,对于二维数组,只可以省略第一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达式;二维数组的一般定义格式:类型说明符数组名
25、常量表达式常量表达式)。14.若 ch 为 char 型变量,k 为 int 型变量(已知字符 a 的 ASCII 码是 97),则执行下列语句后输出的结果为( )。 chb; k10; printf(“%x,%o,“,ch,ch,k); printf(“k%d/n“,k);(分数:1.00)A.因变量类型与格式描述符的类型不匹配,输出无定值B.输出项与格式描述符个数不符,输出为 0 值或不定值C.62,142,k%d D.62,142,k%10解析:解析 第 1 个 printf 函数,格式说明的个数是 2,而输出项的个数是 3,所以对于多余的输出项k 不予输出;第 2 个 pfintf 函
26、数,有两个%说明,第 1 个%后面的字符要原样输出。 知识拓展 本题考查 printf 函数的格式。“%x”和“%o”分别表示以十六进制和八进制无符号型输出整型数据(不带前导0x 或 0):printf 函数中格式说明符之前插入的任何字符都原样输出;格式说明与输出项的个数也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。15.设有变量说明 int(*p)m,其中的标识符 p 是( )。(分数:1.00)A.m 个指向整型变量的指针B.指向 m 个整型变量的指针C.一个指向具有 m 个整型元素的一维数组的指针 D.具有 m 个指针元素的一维指针数组,每个元素都指向整型变量
27、解析:解析 本题考查指向数组的指针变量的声明。这里的 p 表示一个指向数组的指针; *p 表示指针 p 指向地址的内容。16.下列程序的输出结果是( )。 main() int i1,j2,k3; if(i+1 (分数:1.00)A.1 2 3B.2 3 4C.2 2 3D.2 3 3 解析:解析 本题考查自增运算符“+”、逻辑与运算符“,则在使用函数 strcat(s1,s2)后,结果是( )(分数:1.00)A.s1 的内容更新为 abcdefghiB.s1 的内容更新为 defghi/0C.s1 的内容更新为 defghiabc/0D.s1 的内容更新为 abcdefghi/0 解析:解
28、析 strcat(s1,s2)是把 s2 字符串连接到 s1 字符串的末尾,要保证 s1 能容纳下连接后的字符串。21.若有定义: “inta23;”则对 a 数组的第 i 行第 j 列元素的正确引用为( )(分数:2.00)A.*(a+ B.(a+C.*(a+i+D.*(a+j解析:解析 本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有 5 种:aij;*(ai+j);*(*(a+i)+j);*(aij;*( ppppprintf(“%d,%d/n“,*p,*pp); 则输出结果是( )。(分数:2.00)A.20,10B.20,20C.10,20D.10,10 解析:解析
29、 本题考查指针变量的赋值。*pp 是定义了一个指向指针的指针变量,语句 pp while(-k) printf(“%d“,k-3); printf(“/n“); 执行后的输出结果是( )。(分数:2.00)A.1 B.2C.4D.死循环解析:解析 在程序语句中,k 的初始值为 5,进行第 1 次 while 循环后,k 自减 1 为 4,非 0,执行循环体里的 printf 语句,输出 1,此时 k 的值变为 1。程序执行第 2 次循环时,k 自减 1 变为 0,为假,退出 while 循环语句。所以程序的最后结果为 1。28.下列程序的输出结果是( )。 #includestdio.h ma
30、in() int a0,i; for(i1;i5;i+) Switch(i) case 0: case 3:a+1; case 1: case 2:a+2; default:a+3; printf(“%d“,a) : (分数:2.00)A.19 B.18C.6D.8解析:解析 本题考查 switch 语句。当 i1 时,执行 casel,因为没有遇到 break 语句,所以依次往下运行,aa+22,aa+35;当 i2 时,执行 case2,因为没有遇到 break 语句,所以依次往下运行,aa+27,aa+310;当 i3 时,执行 case 3,aa+111,因为没有遇到 break 语句
31、,所以依次往下运行,aa+213;aa+316:当 i4 时,执行 default,aa+319,结束循环。29.在 C 语言程序中,下列说法正确的是( )。(分数:2.00)A.函数的定义和函数的调用均可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义可以嵌套,但函数的调用不可以嵌套D.函数的定义和函数的调用均不可以嵌套解析:解析 本题考查函数调用的基本概念。因为函数的结果是个未知量,而函数定义时不能使用未知量,所以函数定义不可以嵌套,但函数的调用可以嵌套。30.C 语言结构体类型变量在程序执行期间( )。(分数:2.00)A.所有成员一直驻留在内存中 B.没有成员驻留在
32、内存中C.部分成员驻留在内存中D.只有一个成员驻留在内存中解析:解析 C 语言结构体类型变量在程序执行期间所有成员一直驻留在内存中。31.若有结构体定义: struct stuint num; char sex; int age; al,a2; 则下列语句中错误的是( )。(分数:2.00)A.printf(“%d,%C,%d“,a1); B.a2.agea1.age;C.a1.age+;D.a1.num5;解析:解析 题中 a1 和 a2 两个结构体变量名所对应的成员相同,可以与运算“+“相结合。结构体变量的输出格式:prinf(“要输出变量名:%d/t“,结构变量名要输出的成员变量名)。解
33、析:解析 C 语言规定,字符常量在程序中要用单引号括起来。判断 c1 是否为小写字母的充要条件c1tat 和 c1z用逻辑与( switch(x) case1: switch(y) case 0:a+;break; case 1:b+;break; case2: a+;b+;break; printf(“a%d,b%d/n“,a,B); (分数:2.00)填空项 1:_ (正确答案:a2,b3)解析:解析 分析程序,程序从 xl 语句开始执行,之后执行第一个 switch 语句,switch(x)switch(1),所以执行 case1,casel 语句中包含一个复合 switch 语句;这时
34、执行第二个 switch 语句,此时 y1,所以 switch(y) switch(1),因此执行 case1,将 b 加 1,得到 b2,遇到 break 语句,退出第二个 switch 语句,则整个 case 1 的复合语句执行完毕,由于在这个 case 1 的后面没有 break 语句使其退出第一个 switch 语句,所以接着执行下列的 case 2 后面的语句,即将 a、b 各加 1,得到a2,b3。49.C 语言用于结构化程序设计的 3 种基本结构是 1、选择结构和循环结构。(分数:2.00)填空项 1:_ (正确答案:顺序结构)解析:解析 结构化程序有 3 种基本结构,即顺序结构
35、、选择结构(包括 if 语句和 switch 语句)和循环结构(包括 for 语句、while 语句、dowhile 语句)。50.下列循环的循环次数是_。 ihtk2; while(k0) printf(“%d“,k); k-; printf(“/n“);(分数:2.00)填空项 1:_ (正确答案:0)解析:解析 解答本题需要注意表达式“k0”,它是赋值表达式而不是关系表达式,不论 k 为何值,表达式 k0 总会使 k 为 0,所以不能进入循环。51.若有定义 floatb15,*pb;,且数组 b 的首地址为 200H,则 p/13 所指向的数组元素的地址为 1。(分数:2.00)填空项
36、 1:_ (正确答案:252H)解析:解析 要解答本题,首先要明白在对指针进行加、减运算时,数字“1“不是十进制数的“1“,而是指“1“个存储单元长度。1 个存储单元长度占存储空间的多少,应该视具体情况而定,如果存储单元的基类型是 int 型,则移动 1 个存储单元的长度就是位移 2 个字节;如果存储单元基类型是 float 型,则移动1 个存储单元的长度就是位移 4 个字节。所以旷 13 所指向的数组元素的地址为:200H+(13*4)H252H。52.“printf(“%d/n“,strlen(“/t/“/023/xABC/n“);“语句的输出结果是_。(分数:2.00)填空项 1:_ (
37、正确答案:6)解析:解析 strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志/0。 /t是转义字符,代表横向跳若干格:/“是转义字符,代表双引号:/023只代表一个字符,而不管转义字符后面有几个字符;/xAB是以两位十六进制数 AB 表示的 ASCII 码字符,只代表一个字符;/n是转义字符,代表回车换行。 5 个字符常量各代表一个字符,再加上字母 C,所以返回的长度是 6。53.设有下列宏定义:#define A2#define B A+3则执行赋值语句:tb *2;t 为血型变量后的值是_。(分数:2.00)填空项 1:_ (正确答案:8)解析:
38、解析 本题考查带参数的宏定义及相关运算。运算过程为:t-B *2A+3 *22+3 *28。54.下列程序的功能是将字符串 s 中所有的字符 c 删除。请填空。 #includestdio.h main() char s80; int i,j; gets(S); for(ij0;si!/0;i+) if(si!c)_; sj/0; puts(S); (分数:2.00)填空项 1:_ (正确答案:sj+si)解析:解析 循环开始后如果数组 s 中储存值与字符 c 相同,则 i+直接跳过当前值;如果不相同,则将当前值赋予数组指定位置,并通过j+将下标加 1,指向下一元素要存储的位置。55.下列程序
39、的运行结果是_。 #includestdio.h func(a,B) static int m0,i2; i+m+1; mi+a+b; return(m); main0 intk5,m3,p; pfunc(k,m); printf(“%d“,p); pfunc(k,m); printf(“%d/n“,p); (分数:2.00)填空项 1:_ (正确答案:11 23)解析:解析 在主函数中第一次调用 func 子函数时,m0,i2,ii+m+13,mi+a+b3+5+311。因为在子函数中将 m 和 i 定义成了 static 类型,所以在子函数中对 m 和 i 进行的改变,在下一次调用子函数时能进行保存,所以第二次调用子函数时,m11,i3,则ii+m+115,mi+a+b15+5+323。