【计算机类职业资格】全国计算机等级考试二级C语言真题题库1+2016年3月及答案解析.doc

上传人:吴艺期 文档编号:1329735 上传时间:2019-10-17 格式:DOC 页数:15 大小:113KB
下载 相关 举报
【计算机类职业资格】全国计算机等级考试二级C语言真题题库1+2016年3月及答案解析.doc_第1页
第1页 / 共15页
【计算机类职业资格】全国计算机等级考试二级C语言真题题库1+2016年3月及答案解析.doc_第2页
第2页 / 共15页
【计算机类职业资格】全国计算机等级考试二级C语言真题题库1+2016年3月及答案解析.doc_第3页
第3页 / 共15页
【计算机类职业资格】全国计算机等级考试二级C语言真题题库1+2016年3月及答案解析.doc_第4页
第4页 / 共15页
【计算机类职业资格】全国计算机等级考试二级C语言真题题库1+2016年3月及答案解析.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、全国计算机等级考试二级 C语言真题题库 1+2016年 3月及答案解析(总分:100.00,做题时间:120 分钟)一、选择题(每小题 1分,共 40分)(总题数:40,分数:40.00)1.有以下程序: #include int mul(int val) static int init = 1; return init *= val; main() int i; for(i=1;isB.* P*sC.apasD.paPs5.若有语句:int a34,(。P)4;P=a;,则以下选项中叙述错误的是( )。(分数:1.00)A.系统将开辟一个名为 P的二维数组,“oo中的值即为 aoo中的值B.

2、P+1代表 a10的地址C.P中将存放 a数组的首地址D.P+2代表 a数组最后一行的首地址6.有以下程序: #include #include main() chara =“TEXT“,*b=“+“,c3=“1“; printf(“%d,%d,“,strlen(a),sizeof(a); printf(“%d,%d,“,strlen(b),sizeof(b); printf(“%d,%d,/n“,strlen(c),sizeof(c); 程序运行后的输出结果是( )。(分数:1.00)A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,

3、37.若有定义:int a,b,C;以下程序段的输出结果是( )。 a=11;b=3;C=0; pfinff(”dn”,c=(ab,aB.);(分数:1.00)A.2B.0C.3D.18.若有定义:doublea,b,c;能正确给 a,b,c 输入数据的语句是( )。(分数:1.00)A.seanf(”lf1f1P int i; for(i=0;iA.3B.p3C.str2D.*P10.在最坏情况下,二分查找法的时间复杂度为( )。(分数:1.00)A.B.C.D.n11.有以下程序: #include struct tt int x;struct tt *y;s2=1,0,2,0; main

4、() struct tt *p=s; p-y=s; printf(“%d“,=p-x); 程序运行后的输出结果是( )。(分数:1.00)A.2B.0C.1D.312.若有定义: typedefint*T10;T a; 则以下选项与上述定义中 a的类型完全相同的是( )。(分数:1.00)A.int*a10;B.int(*A.10;C.int a10;D.int(*a10);13.医生可以为病人开不同的药,而同一种药也可由不同医生开给病人,则实体医生和实体药之间的联系是( )。(分数:1.00)A.多对多B.一对一C.多对一D.一对多14.为了建立如图所示的存储结构(即每个结点含两个域,dat

5、a 是数据域,next 是指向结点的指针域)则在( )处填入的选项是( )。 *struetlinkehardata;( )node;(分数:1.00)A.struetlink*next;B.linknext;C.link$next;D.struetlinknext;15.有以下程序: #include main() char a,b,c,d; scanf(“%c%c“, c=getchar(); d=getchar();printf(“%c%c%c/n“,a,b,c,d); 当执行程序时,按下列方式输入数据(从第 l列开始,代表回车,注意:回车也是一个字符1234 则输出结果是( )。(分数

6、:1.00)A.123B.12C.1234D.1216.有以下程序: #include main() char ch=D; while(chA)d |ch -; putchar(ch); if(ch =A) break; putchar(ch+1); 程序运行后的输出结果是( )。(分数:1.00)A.CBB.BCAC.CCBBD.CDBCA17.有以下程序: #include main() inta=-2,b=2; for(;+a) ; printf(“%d,%d/n“,a,b); 程序运行后的输出结果是( )。(分数:1.00)A.0,1B.0,0C.1,-1D.0,218.有以下程序:

7、(分数:1.00)A.9B.-1C.10D.019.下列叙述中错误的是( )。(分数:1.00)A.数据结构中的数据元素不能是另一数据结构B.数据结构中的数据元素可以是另一数据结构C.空数据结构可以是线性结构也可以是非线性结构D.非空数据结构可以没有根结点20.以下选项中合法的 c语言常量是( )。(分数:1.00)A.,CSTRB.20141C.”10D.2EK21.有以下程序: (分数:1.00)A.编译有错B.0,0,0,3C.1,1,2,0D.0,1,2,022.有以下程序 (分数:1.00)A.4B.2C.8D.123.软件生命周期是指( )。(分数:1.00)A.软件的定义和开发阶

8、段B.软件的需求分析、设计与实现阶段C.软件的开发阶段D.软件产品从提出、实现、使用维护到停止使用退役的过程24.有以下程序: (分数:1.00)A.2400000B.1500000C.1600000D.200000025.有以下程序: (分数:1.00)A.?B.32GC.?D.72G26.有以下程序: (分数:1.00)A.6B.8C.7D.527.能从任意一个结点开始没有重复地扫描到所有结点的数据结构是( )。(分数:1.00)A.循环链表B.双向链表C.二叉链表D.有序链表28.以下是正确 c语言标识符的是( )。(分数:1.00)A.3B.#3C.jD.-329.关于地址和指针,以下

9、叙述正确的是( )。(分数:1.00)A.可以通过强制类型转换让 char型指针指向 double型变量B.函数指针 P指向一个同类型的函数 f时,必须写成:p= b = (a=1)+4; printf(“%d,%d“,a,b); 程序运行后的输出结果是( )。(分数:1.00)A.1,5B.2,4C.2,6D.2,531.有以下程序: (分数:1.00)A.8B.6C.7D.932.有以下程序: #include int new_div(double a,double b) return a/b+0.5; main() printf(“%d“,new_div(7.8,3.1); 程序运行后的

10、输出结果是( )。(分数:1.00)A.1B.2C.3D.033.设 ZX 树中共有 31个结点,其中的结点值互不相同。如果该二叉树的后序序列与中序序列相同,该二叉树的深度为( )。(分数:1.00)A.31B.16C.17D.534.有以下程序: (分数:1.00)A.2,2,4,4,B.2,3,4,C.2,2,3,4,D.2,3,3,4,5,6,35.以下叙述错误的是( )。(分数:1.00)A.一个算法所包含的操作步骤应该是有限的B.任何能通过编译和运行的算法都一定能得到所期望的结果C.算法中每一条指令必须有确切的含义D.算法可以用各种描述方法来进行描述36.设栈的存储空间为 S(1:m

11、),初始状态为 top=m+1。经过一系列入栈与退栈操作后,top=1。现又要将一个元素进栈,栈顶指针 t叩值变为( )。(分数:1.00)A.发生栈满的错误B.2C.mD.037.有以下程序: #include main() int x=0x9; printf(“%c/n“,A+x) 程序运行后的输出结果是( )。(分数:1.00)A.IB.JC.KD.H38.有以下程序: #include main() int m,n; scanf(“%d%d“, while(m!=n) while(mn)| m=m-n;| while(nm)| m=n-m;| printf(“%d/n“,m); 该程序

12、的功能是( )。(分数:1.00)A.计算 m和 n的最小公倍数B.计算 m和 n的最大公约数C.计算 m和 n的差值D.找出 m和 n中的较大值39.有以下程序: (分数:1.00)A.1 23 4B.5 431C.1235D.32 1 440.若要建立下图所示的存储结构,以下正确的程序段是( )。 (分数:1.00)A.char *q,*p,c;p=q=B.char *q,*p,c;p=q=*p;C.char *q,*p,c;p=*q=p;D.char *q,*p,c;q=p;q=*c;二、程序填空题(共 18分)(总题数:1,分数:18.00)41.给定程序中,函数 fun的作用是:不断

13、从终端读入整数,由变量 a统计大于 0的个数,用变量 c来统计小于 0的个数,当输入 0时结束输入,并通过形参 pa和 pb把统计的数据传回主函数进行输出。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在BLANKlC 中。 不得增行或删行,也不得更改程序的结构!试颖程序 (分数:18.00)_三、程序改错题(共 24分)(总题数:1,分数:24.00)42.给定程序 MODIIC 中,函数 fun的功能是判断整数 n是否是”完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为”完数”。例如:6 的因子包括 1、2、3,而 6=1+2+3,所以

14、 6是完数。如果是完数,函数返回值为 1,否则函数返回值为 0。数组 a中存放的是找到的因子,变量 k中存放的是因子的个数。请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。试题程序: (分数:24.00)_四、程序设计题(共 18分)(总题数:1,分数:18.00)43.请编写函数 fun,其功能是分别统计形参 t所指二维数组中字母 A和 c的个数。 注意:部分源程序存在 PROGlC 中,请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所缩写的若干语句。 试题程序: (分数:18.0

15、0)_全国计算机等级考试二级 C语言真题题库 1+2016年 3月答案解析(总分:100.00,做题时间:120 分钟)一、选择题(每小题 1分,共 40分)(总题数:40,分数:40.00)1.有以下程序: #include int mul(int val) static int init = 1; return init *= val; main() int i; for(i=1;isB.* P*s C.apasD.paPs解析:函数 fun的功能是在形参 a所指的具有 n个元素的数组中查找最大值并返回。通过 for循环比较,s始终指向最大值的那个元素。取指针的值,使用+P,因此比较使用P

16、 和8,需要找到最大值,当8y=s; printf(“%d“,=p-x); 程序运行后的输出结果是( )。(分数:1.00)A.2 B.0C.1D.3解析:P=s,可得 P指向 so,P 一Y 指向 s1,现 P-Y=s,因此 P与 Y指向 s0。因此 P-X=1,+PIx等价于+(P_x),因此打印结果为 2。答案为 A选项。12.若有定义: typedefint*T10;T a; 则以下选项与上述定义中 a的类型完全相同的是( )。(分数:1.00)A.int*a10; B.int(*A.10;C.int a10;D.int(*a10);解析:c 语言允许由用户自己定义类型说明符,也就是说

17、允许由用户为数据类型取”别名”。类型定义符typedef即可用来完成此功能,可以完全代替原来的类型说明符。因此,变量 a的类型为 inta10。typedefintT10,由于运算符优先级高于,可以看成 typedef int10T,替换 T可得 int10,a=inta10,因此,答案为 A选项 013.医生可以为病人开不同的药,而同一种药也可由不同医生开给病人,则实体医生和实体药之间的联系是( )。(分数:1.00)A.多对多 B.一对一C.多对一D.一对多解析:实体集之间通过联系来建立联接关系分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。由于医生可以为病人开

18、不同的药,而同一种药也可由不同医生开给病人,所以两者的联系属于多对多。故选 A选项。14.为了建立如图所示的存储结构(即每个结点含两个域,data 是数据域,next 是指向结点的指针域)则在( )处填入的选项是( )。 *struetlinkehardata;( )node;(分数:1.00)A.struetlink*next; B.linknext;C.link$next;D.struetlinknext;解析:存储结构用链式存储。链式结构每个节点有个指针域,指针域指向下一个链式结构的节点,因此指针域的结构应该是该结构形式,因此应定义为 struct linknext,故答案为 A选项。s

19、truct 是结构体的说明符,不能省。15.有以下程序: #include main() char a,b,c,d; scanf(“%c%c“, c=getchar(); d=getchar();printf(“%c%c%c/n“,a,b,c,d); 当执行程序时,按下列方式输入数据(从第 l列开始,代表回车,注意:回车也是一个字符1234 则输出结果是( )。(分数:1.00)A.123 B.12C.1234D.12解析:seanf()函数从标准输入输出中读人两个字符1、2分别赋给变量 ab,遇到回车自动结束,但回车符已经存入缓冲区,函数 getchar()将从中接受了回车符,故 c赋值为回

20、车符,第二个 getehar()读入字符3,因此 a=1,b=2,c=,d=3。故答案为 A选项。16.有以下程序: #include main() char ch=D; while(chA)d |ch -; putchar(ch); if(ch =A) break; putchar(ch+1); 程序运行后的输出结果是( )。(分数:1.00)A.CBB.BCAC.CCBBD.CDBCA 解析:putehox()函数功能是输出个字符,由 while判断条件和 ch初始值可知,只要 chA,每次执行二次 putchar,否则跳出。第一次输出 CD,第二次输出 Bc,第三次输出 A,跳出循环。因

21、此答案为 D选项。17.有以下程序: #include main() inta=-2,b=2; for(;+a) ; printf(“%d,%d/n“,a,b); 程序运行后的输出结果是( )。(分数:1.00)A.0,1 B.0,0C.1,-1D.0,2解析:for(;+ab;);for 循环中第 l,3 表达式为缺省项,判断条件为+ab;a 一2,b=2;,第一次执行了+a 和一 b,表示为真,循环条件成立,第二次执行+a 为 0,由于运算符,当第一个条件为假时,不执行第二个条件,所以 b=1,发生短路,一 b不执行了。因此 a,b 的最终值0,1。故答案为 A选项。18.有以下程序: (

22、分数:1.00)A.9 B.-1C.10D.0解析:while(P19.下列叙述中错误的是( )。(分数:1.00)A.数据结构中的数据元素不能是另一数据结构 B.数据结构中的数据元素可以是另一数据结构C.空数据结构可以是线性结构也可以是非线性结构D.非空数据结构可以没有根结点解析:数据元素是一个含义很广泛的概念,它是数据的“基本单位”,在计算机中通常作为一个整体进行考虑和处理。数据元素可以是一个数据也可以是被抽象出的具有一定结构数据集合,所以数据结构中的数据元素可以是另一数据结构。满足有且只有一个根结点并且每一个结点最多有一个前件,也最多有一个后件的非空的数据结构认为是线性结构,不满足条件的

23、结构为非线性结构。空数据结构可以是线性结构也可以是非线性结构。非空数据结构可以没有根结点,如非性线结构“图”就没有根结点。故选 A选项。20.以下选项中合法的 c语言常量是( )。(分数:1.00)A.,CSTRB.20141 C.”10D.2EK解析:所谓常量是指在程序运行的过程中,其值不能被改变的量。在 C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项 A是字符串,但使用单引号,错误,选项 c,D,为实型常量中指数形式,但指数形式 e(E)之前必须是数字,之后必须为整数,错误。故答案为 B选项。21.有以下程序: (分数:1.00)A.编译有错 B.0,0,0,3C.1,1

24、,2,0D.0,1,2,0解析:c 语言规定 else总是和之前与其最近的且不带 else的 if配对,题目中,if(a=1)b=1;C=2;默认省的 else已经配对了,下一句 else没有匹配,if 为非法 else。另外 if的判断条件 a=1是赋值语句,不是判断语句,此处也会产生编译错误。因此答案为 A选项。22.有以下程序 (分数:1.00)A.4B.2C.8 D.1解析:在 c语言中,需要在 main函数后面定义函数,需要提前声明,否则调用报错,无法找到该函数。HI=f(f(f(n),一共调用 3次 f()函数,f()函数是对 n:it2,因此,结果是 n22$2,得到结果为 8。

25、故答案为 c选项。23.软件生命周期是指( )。(分数:1.00)A.软件的定义和开发阶段B.软件的需求分析、设计与实现阶段C.软件的开发阶段D.软件产品从提出、实现、使用维护到停止使用退役的过程 解析:通常把软件产品从提出、实现、使用、维护到停止使用、退役的过程称为软件生命周期。选项A、B、C 选项均为生命周期的一部分。故选 D选项。24.有以下程序: (分数:1.00)A.2400000 B.1500000C.1600000D.2000000解析:题目中程序执行过程中关键语句 z=xy 的结果为:z=15,if 条件成立,X=24,Y=24,Z=10,下一次循环 if条件不成立跳出循环,按

26、照格式打印 Y值为 2400000。故答案为 A选项。25.有以下程序: (分数:1.00)A.?B.32GC.? D.72G解析:二个类型相同的结构体,可以使用一个给另一个初始化,使它们相等。前提是结构体变量所有成员全部初始化了。pcl=pc2,pc2 的成员值和 pcl中对应的成员相等。因此 pclCPU 输出?。答案为 c选项。26.有以下程序: (分数:1.00)A.6B.8C.7 D.5解析:后置自增运算:k+表示先运算,后自如。if(t+27.能从任意一个结点开始没有重复地扫描到所有结点的数据结构是( )。(分数:1.00)A.循环链表 B.双向链表C.二叉链表D.有序链表解析:在

27、单链表的第一个结点前增加一个表头结点,队头指针指向表头结点,最后一个结点的指针域的值由 NULL改为指向表头结点,这样的链表称为循环链表。在循环链表中只要指出表中任何一个结点的位置,就可以从它出发没有重复地扫描到表中其他所有的结点。双向链表与二叉链表都可以扫描到所有结点,但是会有重复。有序链表如果是单链表的情况下,不能扫描到所有结点。故 A选项正确。28.以下是正确 c语言标识符的是( )。(分数:1.00)A.3B.#3C.j D.-3解析:c 语言合法标识名的命名规则是:(1)标识符由字母、数字和下划线组成。(2)第一个字符不能是数字只能是字母或下划线。选项 A的第一个字符为,非法,选项

28、B,第一个字符为#,非法,选项 D,第一个字符为一,非法。答案为选项 C。29.关于地址和指针,以下叙述正确的是( )。(分数:1.00)A.可以通过强制类型转换让 char型指针指向 double型变量 B.函数指针 P指向一个同类型的函数 f时,必须写成:p= b = (a=1)+4; printf(“%d,%d“,a,b); 程序运行后的输出结果是( )。(分数:1.00)A.1,5 B.2,4C.2,6D.2,5解析:a=1 等价于 a=a1,即 a除以 2,则 a=2,b=(a1)+4=1+4=5,因此,打印出来为 1,5。答案为A选项。31.有以下程序: (分数:1.00)A.8B

29、.6C.7 D.9解析:fun()获取矩阵正反对角线的元素的最 f大值,fun()中 for(i=0;i32.有以下程序: #include int new_div(double a,double b) return a/b+0.5; main() printf(“%d“,new_div(7.8,3.1); 程序运行后的输出结果是( )。(分数:1.00)A.1B.2C.3 D.0解析:newdiv()的返回值是 int类型,因此,ab+05(其中 a,b 均为 double类型)的小数部分被将被截断。经计算,7831+05=2516+05=3016,故打印的结果为 3。故答案为 C选项。33

30、.设 ZX 树中共有 31个结点,其中的结点值互不相同。如果该二叉树的后序序列与中序序列相同,该二叉树的深度为( )。(分数:1.00)A.31 B.16C.17D.5解析:二叉树遍历可以分为 3种:黄序遍历(访问根结点在访问左子树和访问右子树之前)、中序童历(访问根结点在访问左子树和访问右子树两者之问)、后序童历(访问根结点在访问左子树和访问右子树之后)。由结点售互不相同而后序序列与中序序列相同,可知该二叉树所有的结点都没有右子树,所以 31个结点的二叉树深度为 31:故选 A选项。34.有以下程序: (分数:1.00)A.2,2,4,4,B.2,3,4,C.2,2,3,4, D.2,3,3

31、,4,5,6,解析:continue 语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。在 switchcase语句中,如果没有 break会导致多个分支重叠。因此,输入 1,2,3,则 l执行 casel:prinff(”d,”,b+1);ce 2:prinff(”d,”,b+1);continue;后结束。2 则执行 ce 2:prinff(”d,”,b+1);continue;3 则执行 default:printf(”d,”,b+1);continue;得到的结果是 2,2,3,4。故答案为 c选项。35.以下叙述错误的是( )。(分数:1.00)A.一个算法所包含的操作步骤应该

32、是有限的B.任何能通过编译和运行的算法都一定能得到所期望的结果 C.算法中每一条指令必须有确切的含义D.算法可以用各种描述方法来进行描述解析:算法的特点:零个或多个输入,至少一个输出,可行性(能编程实现),有穷性(有限步出结果),确定性(描述不能有歧义)。可知选项 A,c,D 正确。c 语言中。通过编译,可以运行的程序,不一定符合题目的本意,因此即使可以运行得到结果,也不一定和预期的结果一样,否则就不需要调试和修改程序了,故 B选项错误。答案为 B选项。36.设栈的存储空间为 S(1:m),初始状态为 top=m+1。经过一系列入栈与退栈操作后,top=1。现又要将一个元素进栈,栈顶指针 t叩

33、值变为( )。(分数:1.00)A.发生栈满的错误 B.2C.mD.0解析:栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。人栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指定变量。题目中初始状态为 top=m+1,可知入栈栈顶指针 top=top一 1,出栈栈顶指针 top=top+1,由于栈长为 rn,当 top=1时栈满,不能再进行人栈操作。故选 A选项。37.有以下程序: #include main() int x=0x9; printf(“%c/n“,A+x) 程序运行后的输出结果是( )。(分数:1.00)A.IB.J C.KD.H解析:(”en”,

34、A+x),x=oxg(16)转为十进制 x=9,因此 prinff(”en”,7A+9),打印格式要求是c,因此需要从字符 A,按字母顺序向后偏移 9个位置,可得结果为 J。故答案为 B选项。38.有以下程序: #include main() int m,n; scanf(“%d%d“, while(m!=n) while(mn)| m=m-n;| while(nm)| m=n-m;| printf(“%d/n“,m); 该程序的功能是( )。(分数:1.00)A.计算 m和 n的最小公倍数B.计算 m和 n的最大公约数 C.计算 m和 n的差值D.找出 m和 n中的较大值解析:题目使用更相减

35、损术求最大公约数,其思想:l、任意给定两个正整数,判断它们是否都是偶数。若是,则用 2约简,若不是则执行第二步。2、以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止。则第一步中约掉的若干个 2与第二步中等数的乘积就是所求的最大公约数。因此。故答案为 B选项。39.有以下程序: (分数:1.00)A.1 23 4B.5 431C.1235 D.32 1 4解析:第一个 for循环初始化数组 a,分别为 l,3,5,随机数,形成了基本有序的序列,再将输入的数字插入到数组 a,使他们形成有序序列。因此可以分析出,打印的结果为 1,2,3,5

36、。故答案为 c选项。40.若要建立下图所示的存储结构,以下正确的程序段是( )。 (分数:1.00)A.char *q,*p,c;p=q= B.char *q,*p,c;p=q=*p;C.char *q,*p,c;p=*q=p;D.char *q,*p,c;q=p;q=*c;解析:由图示可知,e 是个普通变量,P 指向 c,因此 P是指针,且 P=c,q 指向 p,但是 P也是指针,因此 q是指向指针的指针,q=p,因此定义是 int$+q,宰 p,c,q=p,P=c,因此答案为 A选项。二、程序填空题(共 18分)(总题数:1,分数:18.00)41.给定程序中,函数 fun的作用是:不断从

37、终端读入整数,由变量 a统计大于 0的个数,用变量 c来统计小于 0的个数,当输入 0时结束输入,并通过形参 pa和 pb把统计的数据传回主函数进行输出。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在BLANKlC 中。 不得增行或删行,也不得更改程序的结构!试颖程序 (分数:18.00)_正确答案:(1)a=0,b=0,k (2)(k!=O) (3)scanf(”d”,k)解析:【解题思路】 填空 1:a=0,b=0,k 下面的 scanf函数用到变量 k,需要提前定义,在 while循环中使用了临时存放正负数个数的变量 a,b,因此也要提前定义。

38、 填空 2:(k!=0)根据题意,输入 0时结束程序,因此当 k!=0时进入循环记录正负数的个数。 填空 3:scanf(”d“,k)需要不断从终端输入整数,因此在循环体内添加输入操作。三、程序改错题(共 24分)(总题数:1,分数:24.00)42.给定程序 MODIIC 中,函数 fun的功能是判断整数 n是否是”完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为”完数”。例如:6 的因子包括 1、2、3,而 6=1+2+3,所以 6是完数。如果是完数,函数返回值为 1,否则函数返回值为 0。数组 a中存放的是找到的因子,变量 k中存放的是因子的个数。请改正函数 fun中指定部位

39、的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。试题程序: (分数:24.00)_正确答案:(1)for(i=0;i解析:【解题思路】 (1)for(i=0;i四、程序设计题(共 18分)(总题数:1,分数:18.00)43.请编写函数 fun,其功能是分别统计形参 t所指二维数组中字母 A和 c的个数。 注意:部分源程序存在 PROGlC 中,请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所缩写的若干语句。 试题程序: (分数:18.00)_正确答案:( )解析:【解题思路】 对二维数组的行列分别循环,行优先,查找数组中元素为 A或者 C,分别对其进行计数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1