【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编18及答案解析.doc

上传人:orderah291 文档编号:1334706 上传时间:2019-10-17 格式:DOC 页数:14 大小:82.50KB
下载 相关 举报
【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编18及答案解析.doc_第1页
第1页 / 共14页
【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编18及答案解析.doc_第2页
第2页 / 共14页
【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编18及答案解析.doc_第3页
第3页 / 共14页
【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编18及答案解析.doc_第4页
第4页 / 共14页
【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编18及答案解析.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、国家二级(C 语言)机试历年真题试卷汇编 18及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列叙述中错误的是( )。(分数:2.00)A.算法的时问复杂度与算法所处理数据的存储结构有直接关系B.算法的空间复杂度与算法所处理数据的存储结构有直接关系C.算法的时间复杂度与空间复杂度有直接关系D.算法的时间复杂度与算法程序执行的具体时间是不一致的2.在满足实体完整性约束的条件下( )。(分数:2.00)A.一个关系中应该有一个或多个候选关键字B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字3.

2、下面描述中,不属于软件危机表现的是( )。(分数:2.00)A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高4.下列各项中不属于需求分析阶段任务的是( )。(分数:2.00)A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划5.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码 15被放到第( )个位置。(分数:2.00)A.2B.3C.4D.56.构成计算机软件的是( )。(分数:2.00)A.源代码B.程序和数据C.程序和文档D

3、.程序、数据及相关文档7.在黑盒测试方法中,设计测试用例的主要根据是( )。(分数:2.00)A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图8.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(分数:2.00)A.外模式B.内模式C.概念模式D.逻辑模式9.在关系模型中,每一个二维表称为一个( )。(分数:2.00)A.关系B.属性C.元组D.主码(键)10.有三个关系 R、S 和 T如下: (分数:2.00)A.自然连接B.交C.除D.并11.以下叙述中正确的是( )。(分数:2.00)A.我们所写的每条 C语句,经过编译最终都将转换成二进制的机器指令B.程

4、序必须包含所有三种基本结构才能成为一种算法C.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达D.只有简单算法才能在有限的操作步骤之后结束12.以下叙述中正确的是( )。(分数:2.00)A.计算机只接收由 0和 1代码组成的二进制指令或数据B.计算机只接收由 0和 1代码组成的十进制指令或数据C.计算机可直接接收并运行 C源程序D.计算机可直接接收并运行任意高级语言编写的源程序13.以下叙述中错误的是( )。(分数:2.00)A.C程序在运行过程中所有计算都以十进制方式进行B.C程序在运行过程中所有计算都以二进制方式进行C.所有 C程序都需要编译链接无误后才能运行D.C程

5、序中字符变量存放的是字符的 ASCII值14.若有定义语句: int a=3,b=2,c=1; 以下选项中错误的赋值表达式是( )。(分数:2.00)A.a=(b=4)+c;B.a=b=c+1;C.a=(b=4)=3;D.a=1+(b=c=4):15.有以下程序: #include main() int x,y,z; x=y=1; z=x+;y+;+y; printf(“d d dn“,x,y,z); 程序运行后的输出结果是( )。(分数:2.00)A.2 3 2B.2 3 3C.2 3 1D.2 2 116.以下选项中,合法的实数是( )。(分数:2.00)A.45E2B.E13C.711E

6、D.12E1217.以下能正确输出字符 a的语句是( )。(分数:2.00)A.printf(“s“,“a“);B.printf(“s“,a);C.printf(“c“,“a“);D.printf(“d“,a);18.有以下程序段: int m=33,n=66; m=mn;n=nm;m=mn; 执行上述语句后,m 和 n的值分别是( )。(分数:2.00)A.m=66,n=33B.m=33,n=66C.m=66,n=66D.m=33,n=3319.有以下程序段,若变量已正确定义并赋值 if(ab)printf(“x=d“,x); else printf(“y=d“,y);if(a0;x 一一)

7、 if(x 一一A.4,3,2,B.4,3,1,C.5,4,2,D.5,3,1,21.有以下程序: #include main() char b,c;int i; b=a; c=A; for(i=0;iA.ABCDEFB.AbCdEfC.aBcDeFD.abcdef22.有以下程序: #include main() int y=9; for(;y0;y 一一) if(y3=0) printf(“d”,一一 y); 程序的运行结果是( )。(分数:2.00)A.875421B.963C.741D.85223.下列叙述中正确的是( )。(分数:2.00)A.可以用关系运算符比较字符串的大小B.空字

8、符串不占用内存,其内存空间大小是 0C.两个连续的单引号是合法的字符常量D.两个连续的双引号是合法的字符串常量24.以下叙述中正确的是( )。(分数:2.00)A.语句 int a3=1,2,4,5;是错误的初始化形式B.语句 int a43=1,2,4,5;是错误的初始化形式C.在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵D.语句 int a43=1,2,4,5;是错误的初始化形式25.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是( )。(分数:2.00)A.(E=0)B.(E0E0)C.(!E=0)D.(E!=0)26.有以下程序: #include v

9、oid main() char ch80=“123abcdEFG“: int j;long s=0; puts(ch);for(j=0;chj0;j+) if(chi=Achj1); printf(“dn“,z); 程序的输出结果是( )。(分数:2.00)A.4B.1C.0D.838.以下关于宏的叙述错误的是( )。(分数:2.00)A.宏替换不具有计算功能B.宏是一种预处理指令C.宏名必须用大写字母构成D.宏替换不占用运行时间39.有以下程序: #include struct sint a;int b; main() struct s a,*p=&a; aa=99; printf(“dn“

10、,_); 程序要求输出结构体中成员 a的数据,以下不能填入横线处的内容是( )。(分数:2.00)A.aaB.*paC.p一aD.(*p)a40.若有以下程序: #include struct sint a;int b; main() FILE *fp; int i,a6=1,2,3,4,5,6,k; fp=fopen(“datadat“,“w+“); for(i=0;iA.123456B.1C.6D.21二、程序填空题(总题数:1,分数:2.00)41.下列给定程序中,函数 fun的功能是:统计所有小于等于 n(n2)的素数的个数,素数的个数作为函数值返回。 请在程序的下画线处填入正确的内容

11、并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #includestdioh int fun(int n) int i,j,count=0; printf(“The prime number between 3 to dn“,n); for(i=3;i=n;i+) *found* for(【1】;ji;j+) *found* if(【2】j=0) break; *found* if(【3】=i) count+: printf(count15? “5d“:“n 5d“,i); return count; main() int n=20,r; r=

12、fun(n); printf(“nThe number of prime is:dn“,r); (分数:2.00)_三、程序修改题(总题数:1,分数:2.00)42.下列给定程序中,函数 fun的功能是:用选择法对数组中的 n个元素进行升序排列。 请修改程序中的错误,使它能得出正确的结果。 注意:不得增行和删行,也不得更改程序的结构! 试题程序: #includestdioh #define N 20 void fun(int a,int n) int i,j,t,p; for(j=0;jn一 1;j+) *found* p=j for(i=j;in;i+) if(aiap) *found*

13、p=j; t=ap;ap=aj;aj=t; main() int aN=9,6,8,3,一 1,i,m=5; printf(“排序前的数据:“); for(i=0;im;i+) printf(“d“,ai); printf(“n“); fun(a,m); printf(“排序后的数据:“); for(i=0;im;i+) printf(“d“,ai);printf(“n“); (分数:2.00)_四、程序设计题(总题数:1,分数:2.00)43.请编写函数 fun,其功能是:计算并输出下列多项式的值, S=(112)+(1314)+(1(2n一 1)一 12n) 例如,若主函数从键盘给 n输入

14、 8后,则输出为 S=0662872。 注意:要求 n的值大于1但不大于 100。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序: #includestdioh double fun(int n) main() int n;double s; void NONO(); printf(“Input n:“); scanf(“d“,&n); s=fun(n): printf(“ns=fn“,s); NONO();void NONO() int n,i;double s; for(i=0;i10;i+) s=fun(n); (分数:2.0

15、0)_国家二级(C 语言)机试历年真题试卷汇编 18答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列叙述中错误的是( )。(分数:2.00)A.算法的时问复杂度与算法所处理数据的存储结构有直接关系B.算法的空间复杂度与算法所处理数据的存储结构有直接关系C.算法的时间复杂度与空间复杂度有直接关系 D.算法的时间复杂度与算法程序执行的具体时间是不一致的解析:解析:算法的时间复杂度是指执行算法所需要的计算工作量。数据的存储结构直接决定数据输入,而这会影响算法所执行的基本运算次数,A 项正确。算法的空间复杂度是指执行这个算法所需要的内存空间,其中包

16、括输入数据所占的存储空间,B 项正确。而算法的时间复杂度与空间复杂度没有直接关系,C项错误。算法程序执行的具体时间受到所使用的计算机、程序设计语言以及算法实现过程中的许多细节所影响,而算法的时间复杂度与这些因素无关,所以是不一致的,D 项正确。2.在满足实体完整性约束的条件下( )。(分数:2.00)A.一个关系中应该有一个或多个候选关键字 B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字解析:解析:实体完整性约束要求关系的主键中属性值不能为空值,因此本题答案为 A。3.下面描述中,不属于软件危机表现的是( )。(分数:2.00)A.软件过程

17、不规范 B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高解析:解析:软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。因此本题答案为 A。4.下列各项中不属于需求分析阶段任务的是( )。(分数:2.00)A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划 解析:解析:需求分析阶段的工作包括:需求获取、需求分析、编写需求规格说明书、需求评审,因此本题答案为 D。5.待排序的关键码序列为(15,

18、20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码 15被放到第( )个位置。(分数:2.00)A.2B.3 C.4D.5解析:解析:简单选择排序的算法可以描述为:前面的元素己经有序,扫描剩下的线性表,找到最小的元素,将它交换到剩余表的最前面,直到剩余表为空。所以第一趟排序后,将选出的最小元素与 15交换,15被放在第 3个位置。6.构成计算机软件的是( )。(分数:2.00)A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档 解析:解析:计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、

19、文档及数据。答案选 D。7.在黑盒测试方法中,设计测试用例的主要根据是( )。(分数:2.00)A.程序内部逻辑B.程序外部功能 C.程序数据结构D.程序流程图解析:解析:黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明,因此本题答案为 B。8.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(分数:2.00)A.外模式B.内模式 C.概念模式D.逻辑模式解析:解析:数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结

20、构的描述,是全体用户的公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。内模式又称物理模式,它给出了数据库的物理存储结构与物理存取方法,因此本题答案为 B。9.在关系模型中,每一个二维表称为一个( )。(分数:2.00)A.关系 B.属性C.元组D.主码(键)解析:解析:关系模型采用二维表来表示,一个二维表表示一个关系。10.有三个关系 R、S 和 T如下: (分数:2.00)A.自然连接B.交C.除 D.并解析:解析:如果 T=RS,则 T称为 R除以 S的商。在除运算中,T 的域由 R中那些不出现在 S中的域所组成,对于 T中的任一有序组,由它与关

21、系 S中每个有序组所构成的有序组均出现在关系 R中。因此本题选择 C。11.以下叙述中正确的是( )。(分数:2.00)A.我们所写的每条 C语句,经过编译最终都将转换成二进制的机器指令 B.程序必须包含所有三种基本结构才能成为一种算法C.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达D.只有简单算法才能在有限的操作步骤之后结束解析:解析:顺序、选择、循环是 C语言程序的三个基本结构,一个 C语言算法可以由其中一种或者多种构成,选项 B错误;三种基本结构能解决所有的问题,而且 C语言只能有这三种结构,选项 C错误;C 语言算法的特点之一就是有穷性,任何一个算法都必须能在有

22、限的操作步骤之后结束,选项 D错误;C 语言程序编译时将每条可执行语句转换为二进制的机器指令,答案选 A。12.以下叙述中正确的是( )。(分数:2.00)A.计算机只接收由 0和 1代码组成的二进制指令或数据 B.计算机只接收由 0和 1代码组成的十进制指令或数据C.计算机可直接接收并运行 C源程序D.计算机可直接接收并运行任意高级语言编写的源程序解析:解析:二进制数中只有两个字符 0和 1,表示具有两个不同稳定状态的元器件。例如,电路中有无电流,有电流用 1表示,无电流用 O表示。类似的还比如电路中电压的高低,晶体管的导通和截止等;二进制数运算简单,大大简化了计算中运算部件的结构,故选项

23、A正确。13.以下叙述中错误的是( )。(分数:2.00)A.C程序在运行过程中所有计算都以十进制方式进行 B.C程序在运行过程中所有计算都以二进制方式进行C.所有 C程序都需要编译链接无误后才能运行D.C程序中字符变量存放的是字符的 ASCII值解析:解析:C 程序在运行过程中,所有计算都以二进制方式进行。14.若有定义语句: int a=3,b=2,c=1; 以下选项中错误的赋值表达式是( )。(分数:2.00)A.a=(b=4)+c;B.a=b=c+1;C.a=(b=4)=3; D.a=1+(b=c=4):解析:解析:b=4 不能作为左值,(b=4)=3 出现编译错误。15.有以下程序:

24、 #include main() int x,y,z; x=y=1; z=x+;y+;+y; printf(“d d dn“,x,y,z); 程序运行后的输出结果是( )。(分数:2.00)A.2 3 2B.2 3 3C.2 3 1 D.2 2 1解析:解析:考查逗号表达式。逗号表达式的计算过程是分别计算所有表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。x=y=1;将 x、y 初始化为 1,逗号表达式 z=x+,y+,+y;中先计算z=x+,得到 x=2,z=1,计算 y+,得 y=2,再计算+y,得 y=3。所以最终结果为 x=2,y=3,z=1,答案选 C。16.以下选项中,合

25、法的实数是( )。(分数:2.00)A.45E2 B.E13C.711ED.12E12解析:解析:实型常量用带小数点的数字表示,其值有两种表达形式,分别为十进制小数形式和指数形式。十进制小数形式由数字和小数组成,必须有小数点,且小数点的位置不受限制。指数形式由十进制数加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。45E2 为指数形式实数,A 项正确。E13 阶码标志前缺少十进制数,并且阶数不是整数,B 项错误。711E 缺少阶数,C 项错误。12E12 阶数不是整数,D 项错误。17.以下能正确输出字符 a的语句是( )。(分数:2.00)A.printf(“s“,“a“);

26、 B.printf(“s“,a);C.printf(“c“,“a“);D.printf(“d“,a);解析:解析:输出函数 printf()的一般形式为“printf(“格式控制字符串“,输出项 1,输出项 2,)”,输出项的形式要和格式控制字符串中的格式控制符保持一致,“s”为输出字符串,“c”为输出单个字符,“d”为以十进制形式输出带符号整数,答案选 A。18.有以下程序段: int m=33,n=66; m=mn;n=nm;m=mn; 执行上述语句后,m 和 n的值分别是( )。(分数:2.00)A.m=66,n=33 B.m=33,n=66C.m=66,n=66D.m=33,n=33解

27、析:解析:m=mn;n=nm;m=mn;语句实现了 m和 n的交换。故正确选项为 A。19.有以下程序段,若变量已正确定义并赋值 if(ab)printf(“x=d“,x); else printf(“y=d“,y);if(a0;x 一一) if(x 一一A.4,3,2,B.4,3,1, C.5,4,2,D.5,3,1,解析:解析:本题主要考查 if选择语句的嵌套和自加自减运算符的用法。其中 x+和 x一一是先参与计算,再自加自减。x 一 5时,判断 if条件 x一一5,先比较 x5 是否成立,而 55 显然不成立,此时x自减 1即 4,执行 else后的语句,先输出 4,;然后 x再自加 1

28、为 5,接着执行第 2次 for循环,此时经过 for循环中的 x一一后,x 变为 40,执行 if语句,由于 45,条件成立,x 先自减 1为 3,然后执行 printf语句,输出 3,;接着执行第三次 for循环,经 x一一后,x 值为 20,判断 25 成立,x先自减为 1,然后输出 1,;接着执行第四次 for循环,经 x一一后,x 值为 0,否循环表达式中判断条件x0 不成立,结束本次循环。故最后输出结果是 4,3,1,。21.有以下程序: #include main() char b,c;int i; b=a; c=A; for(i=0;iA.ABCDEFB.AbCdEf C.aB

29、cDeFD.abcdef解析:解析:字符常量与其 ASCII码值一一对应,计算时一般用字符常量对应的 ASCII码参与运算,输出时会依据输出函数的不同决定输出是字符或者对应的 ASCII码值。该程序的运算逻辑是,i 从 0循环到5,若 i为奇数则输出 i+b;a+i 对应的字符即小写字符,若 i为偶数则输出 i+c;A+i 对应的字符即大写字符。答案选 B。22.有以下程序: #include main() int y=9; for(;y0;y 一一) if(y3=0) printf(“d”,一一 y); 程序的运行结果是( )。(分数:2.00)A.875421B.963C.741D.852

30、 解析:解析:该程序的运行过程是 y从 9开始自减,每次判定 y是否能被 3整除,若是,则输出一一 y后的值,能被 3整除的 y值分别为 9、6、3,所以答案选 D。23.下列叙述中正确的是( )。(分数:2.00)A.可以用关系运算符比较字符串的大小B.空字符串不占用内存,其内存空间大小是 0C.两个连续的单引号是合法的字符常量D.两个连续的双引号是合法的字符串常量 解析:解析:A 项错误,关系运算符不能比较字符串大小,可以用函数库中的字符串比较函数来比较字符串的大小;B 项错误,空字符串占用一个字节的内存;C 项错误,字符常量是用单引号把一个字符括起来。D项正确,两个连续的双引号是一个字符

31、串常里,称为空串。24.以下叙述中正确的是( )。(分数:2.00)A.语句 int a3=1,2,4,5;是错误的初始化形式B.语句 int a43=1,2,4,5;是错误的初始化形式C.在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵 D.语句 int a43=1,2,4,5;是错误的初始化形式解析:解析:考查二维数组的初始化。初始化二维数组的时候可以对其部分元素赋初值,选项 B错。还可以对数组的全部元素赋初值,此时第一维的元素个数可以不指定,也可以分行赋值,只对部分元素赋初值,选项 A、D 错。C 的描述正确,答案选 C。25.在以下给出的表达式中,与 while(E)中的(E)

32、不等价的表达式是( )。(分数:2.00)A.(E=0) B.(E0E0)C.(!E=0)D.(E!=0)解析:解析:E 为 0,while 条件为假,而 E为 0,(E=0)为真,所以选择 A。26.有以下程序: #include void main() char ch80=“123abcdEFG“: int j;long s=0; puts(ch);for(j=0;chj0;j+) if(chi=Achj1); printf(“dn“,z); 程序的输出结果是( )。(分数:2.00)A.4B.1C.0 D.8解析:解析:x、y 的 ASCII码为 2,对应二进制为 0010,y1 的结果

33、为 0100,x1 的结果为0001,而 0100&0001的结果为 0,所以答案选 C。38.以下关于宏的叙述错误的是( )。(分数:2.00)A.宏替换不具有计算功能B.宏是一种预处理指令C.宏名必须用大写字母构成 D.宏替换不占用运行时间解析:解析:宏名习惯采用大写字母,以便与一般变量区别,但是并没有规定一定要用大写字母。39.有以下程序: #include struct sint a;int b; main() struct s a,*p=&a; aa=99; printf(“dn“,_); 程序要求输出结构体中成员 a的数据,以下不能填入横线处的内容是( )。(分数:2.00)A.a

34、aB.*pa C.p一aD.(*p)a解析:解析:本题考查指针变量的引用。有三种引用方式:结构体变量成员名;(*p)成员名;p 一成员名。题目中要求输出结构体中成员 a的数据,p 为指针,*p 为结构体变量,所以*pa 不能引用结构体中成员 a的数据。故 B选项错误。40.若有以下程序: #include struct sint a;int b; main() FILE *fp; int i,a6=1,2,3,4,5,6,k; fp=fopen(“datadat“,“w+“); for(i=0;iA.123456B.1C.6 D.21解析:解析:本题考查文件操作函数,fseek 用于二进制方式

35、打开的文件,并移动文件,读写指针位置。将文件内部的位置指针重新指向一个流(数据流文件)的开头,所以最后只保留了 6。故 C选项正确。二、程序填空题(总题数:1,分数:2.00)41.下列给定程序中,函数 fun的功能是:统计所有小于等于 n(n2)的素数的个数,素数的个数作为函数值返回。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #includestdioh int fun(int n) int i,j,count=0; printf(“The prime number between 3 to dn“,n

36、); for(i=3;i=n;i+) *found* for(【1】;ji;j+) *found* if(【2】j=0) break; *found* if(【3】=i) count+: printf(count15? “5d“:“n 5d“,i); return count; main() int n=20,r; r=fun(n); printf(“nThe number of prime is:dn“,r); (分数:2.00)_正确答案:(正确答案: (1)j=2 (2)i (3)j)解析:解析:填空 1:j 的初始化要从 2开始,因为要判断一个数是否为素数,即将其除以从 2开始的数字,

37、看有没有被整除的。 填空 2:如果碰到有个数字 j可以被 i整除,那么表示这个数不是素数,要用break直接结束循环,这个时候的 j肯定小于 i。 填空 3:j=i,表示在上面 if(ij=0)没有成功,所以会循环执行 for(j=2;ji;j+),以致最后 j=i,这样可以知道该数字 i就是素数。三、程序修改题(总题数:1,分数:2.00)42.下列给定程序中,函数 fun的功能是:用选择法对数组中的 n个元素进行升序排列。 请修改程序中的错误,使它能得出正确的结果。 注意:不得增行和删行,也不得更改程序的结构! 试题程序: #includestdioh #define N 20 void

38、fun(int a,int n) int i,j,t,p; for(j=0;jn一 1;j+) *found* p=j for(i=j;in;i+) if(aiap) *found* p=j; t=ap;ap=aj;aj=t; main() int aN=9,6,8,3,一 1,i,m=5; printf(“排序前的数据:“); for(i=0;im;i+) printf(“d“,ai); printf(“n“); fun(a,m); printf(“排序后的数据:“); for(i=0;im;i+) printf(“d“,ai);printf(“n“); (分数:2.00)_正确答案:(正确

39、答案: (1)p=j; (2)p=i;)解析:解析:本题考查:选择法排序。 (1)这里是一个语法错误,缺少一个“;”号。 (2)p 用来存放进行比较的两个数组元素中,较小元素的下标,因此此处应为 p=i。四、程序设计题(总题数:1,分数:2.00)43.请编写函数 fun,其功能是:计算并输出下列多项式的值, S=(112)+(1314)+(1(2n一 1)一 12n) 例如,若主函数从键盘给 n输入 8后,则输出为 S=0662872。 注意:要求 n的值大于1但不大于 100。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序: #

40、includestdioh double fun(int n) main() int n;double s; void NONO(); printf(“Input n:“); scanf(“d“,&n); s=fun(n): printf(“ns=fn“,s); NONO();void NONO() int n,i;double s; for(i=0;i10;i+) s=fun(n); (分数:2.00)_正确答案:(正确答案: double fun(int n) int i; double s=00; for(i=1;i=n;i+) s=s+(10(2*i 一 1)一 10(2*i); *计算 S=(112)+(1314)+(1(2n 一 1)一 12n)* return s; )解析:解析:对于求多项式值的题目,一般都使用循环语句来累加计算多项式的通项。本题中多项式的通项为 1(2n 一 1)一 12n,循环变量的取值范围为 1n。注意,存放累加和的变量 s要定义为实型,累加时要进行类型转换。

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

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

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