- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《全国计算机等级考试二级教程——C语言程序设计》习题分析与解答(四)
第九章 数组习题分析与解答
一、 选择题
9.1【参考答案】 D)
9.2【参考答案】 A)
9.3【参考答案】 A)
9.4【参考答案】 A)
9.5【参考答案】 C)
9.6【参考答案】 A)
9.7【参考答案】 B)
9.8【参考答案】 D)
9.9【参考答案】 C)
9.10【参考答案】 C)
9.11【参考答案】 C)
9.12【参考答案】 D)
9.13【参考答案】 D)
9.14【参考答案】 A)
9.15【参考答案】 A)
9.16【参考答案】 A)
9.17【参考答案】 C)
9.18【参考答案】 C)
二、 填空题
9.19【参考答案】 [1]9 [2]0
9.20【参考答案】 6
9.21【参考答案】 12
9.22【参考答案】 3
9.23【参考答案】 2721
9.24【参考答案】 -850,2,0
9.25【参考答案】 [1]k=p [2]k
9.26【参考答案】 [1] (c=getchar()) [2] c-′A′
三、 上机题
9.27【分析与解答】
(1) 对于字符的输入可参考教材例6.3和习题9.26中的while循环,只是要注意,循环的终止条件是:等于′\[KG-*3]n′。
(2) 在while循环体中,用if条件来判断是否为数字字符,若是,就使对应的元素增1;if中的条件表达式可用C的库函数:isdigit(ch),这时要在程序前加:#include <ctype.h>行;也可用:ch>[KG-*3]=′0′&&ch<[KG-*3]=′9′。
(3) 若用num数组元素来进行统计,当ch中是数字“0”时,使num[0]增1、当ch中是数字 “1”时,使num[1]增1……num的下标表达式可用:ch-′0′。
(4) 注意,在定义数组时,数组的大小应符合使用的要求。在利用数组元素作为计数器时,不要忘记首先应该给数组元素赋0值。
(5) 总结:通过本题的编程,要求掌握利用数组元素作为计数器的基本算法。
9.28【分析与解答】 本题的编程请参考例9.8。
(1) 若有以下10个整数:
0 1 2 3 4 5 6 7 8 9
要求从第5个元素依次向前移,则移动之后的数列应该是:
0 1 2 4 5 6 7 8 9
第5个元素不是指下标为5的元素,而是指排列的顺序,对此数列而言是指数值为4的那个。
(2) 完成移动后,数列中的数据个数减1。
(3) 若进行指定操作的函数名为moves,则函数的首部可如下:
void moves(int *a,int n,int *m)
这里a用以指向一维数组的首地址,n接受开始移动的元素的位置,m指向主函数中存放元素个数的变量,因为没有函数值返回,因此函数的类型定义为void。
(4) 可用以下for循环完成指定的移动:
for(i=n-1;i<*m;i[KG-*3]+[KG-*3]+) a[i-1]=a[i];
注意,应当先把第n个元素(下标为n-1)移到第n-1个元素(下标为n-2)的位置上,依次从前到后向前移动。
(5) 完成移动之后,应使m所指变量中的值减1,表示数列中的数据少了一个;这可由于句:
*m=*m-1;来完成。
(6) 可设计一个输出函数,在移动前、后调用此函数输出数组中的数据,以便验证操作是否正确。若输出函数名为:outarr,则函数首部可写成:
void outarr( int a[], int num)
形参a指向待输出的数组,num接受数组中元素的个数。输出操作可由一个for循环来完成:
for(i=0; i<num; i[KG-*3]+[KG-*3]+) printf(″%d″,a[i]);
printf(″\[KG-*3]n\[KG-*3]n″);
退出循环后的printf语句使上面的输出行结束。
(7) 在主函数中定义所需的数组和变量。数组中的值可以在主函数中输入,也可定义一个函数用于输入数据。n的值在主函数中输入,然后调用以上函数。需要注意的是,给n输入的值不能是1,因为第一个元素(下标为0)再向前移,下标就越界了,同时,n的值也不可大于10,因为已指定只有10个元素。
(8) 总结:
① 对于需要进行多次的操作,如本程序中输出数组元素中的值,应当编写一个独立的函数多次调用,而不应重复地编写代码。虽然该函数中只
文档评论(0)