资源描述:
《C语言上机考题分析3》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三类题主要是基本算法和字符串操作。例如求最大(小)值、排序、数字拆分、字符串操作(连接、长度、合并、回文、插入、删除、反序、排序、单词分割等)。3-1.编程,任意输入6个整数,按从小到大的顺序输出。结果:输入:9、7、8、6、7、5输出:5、6、7、7、8、9。分析:用选择法排序。3-2.编程,任意输入10个人的成绩,按从大到小的顺序排列。运行程序时,只要输入名次,计算机就能输出该名次对应的成绩。结果:输入:4、7、3、6、1、5,12,0,23,-1输入:4输出:The4this6分析:用选择法排序。第n名是a[n-1]。3-3.编程,输入10
2、个人的序号和成绩,对成绩从小到大排序,输出排序后的序号和成绩。结果:输入:1,102,93,84,75,66,77,88,99,1210,0输出:10:05:64:76:73:87:82:98:91:109:12。分析:用选择法排序。a[j][0]--序号,a[j][1]--成绩。按a[j][1]排序,注意交换时a[j][0]、a[j][1]同步交换。3-4.编程,输入10个人的序号和成绩,对成绩从大到小进行排序,输出排序后的序号和成绩。结果:输入:1,102,93,84,75,66,77,88,99,1210,0输出:9:12。1:108:92:
3、97:83:86:74:75:610:0分析:用选择法排序。a[j][0]--序号,a[j][1]--成绩。3-5.编程,输入10个整数及其序号,求出10个整数的最大值、次大值、最小值和次小值,并输出它们原来输入时的序号。结果:输入:1,152.113,04,75,16,57,78,409,210,23输出:8:4010:233:05:1分析:用选择法排序。a[j][0]--序号,a[j][1]--成绩。交换时a[j][0]、a[j][1]一起交换。前两名和后两名即为所求。也可以分两次求最大、最小值,但不如排序法简单。3-6.编程,输入10个整数,
4、然后进行查找。输入要查找的整数,若找到,则输出该数在数组中的下标位置,否则输出“cannotfound!”。结果:输入:12234321567943367(a数组的内容)56(要找的数)输出:56=a[4]65(要找的数)输出:65cannotfound!分析:用数组存放10个整数,对10个整数循环,输出找到的整数及其在数组中的下标。3-7.编程,输入一个字符串并删除其中的指定字符。例如,对于字符串abcdcf,指定删除c,则结果为:abdf。结果:输入:abcdcf和c输出:abdf分析:输入一个字符串s和要删除的字符ch,从字符串首开始逐个字符
5、检查,每遇ch则将后面的字符向前移动一个位置覆盖要删字符ch(参考例7-16中删除数组元素的方法).3-8.编程,输入一行字符,将其反序后再输出。结果:输入abcdefg,输出:gfedcba分析:输入n个字符到a数组,a[j]与a[n-j-1]互换(j=0,1,2,…,n/2-1)。(参考例7-3)3-9.编程,输入一行字符,将其中的每个字符从小到大排列后输出。结果:输入:china输出:achin分析:用选择法对字符数组进行排序。3-10.编程,输入一行字符,将其中的每个字符从大到小排列后输出。结果:输入:china输出:nihca分析:用选择
6、法对字符数组进行排序。3-11.编程,按学生的序号输入10名学生的成绩,按照分数由高到低的顺序输出学生的名次、序号和成绩,要求成绩相同的学生具有相同的名次。结果:输入:2468923432194输出:1:7432:6233:8214:594:995:486:367:247:1048:12分析:用选择法排序。a[j][0]--序号,a[j][1]—名次。a[j][2]--成绩。如果a[j][2]=a[j-1][2],则a[j][1]=a[j-1][1]。3-12.编程,输出所有不超过n(取n<256)的、其平方具有对称性质的正整数(也称为回文数)。结
7、果:1*1=12*2=43*3=911*11=12122*22=48426*26=676101*101=10201111*111=12321121*121=14641202*202=40804212*212=44944分析:对j循环(j=1~255),将j*j的n位数字放入数组a,输出具有对称性质的j(若a[i]=a[n-1-i](i=1,2,…n/2-1)则对称)。3-13.编程,输入两个已经按从小到大顺序排列好的字符串,将两个字符串合并为一个新的从小到大排列字符串并输出。结果:输入:1357924acf输出:1234579acf分析1:先将两个
8、字符串合并成一个字符串,然后按从小到大排序。分析2:对b串的每个字符b[i]在a串中找插入位置j,将a[j],a[j+1]