上机考试试题3

更新时间:2023-10-15 18:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第21套上机考试试题

函数RData()实现从文件IN.dat中读取一篇英文文章并存入到字符串数组StrResult中,请编写函数StrRes(),其功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应小含标点符号)仍按行重新存入字符串数组StrResult中,最后调用函数WData(),把结果StrResult输出到文件OUT.dat中。原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 例如,原文:You He Me I am a student. 结果:Me He You student a am I

注意:部分程序已给出。请勿改动主函数main()、读数据函数RData()和输出数据函数WData()内容。

第21套试题答案及详解

【审题分析】解答本题的关键在于读懂题目意思。题目意思有3点:①以单词为单位将每行中的单词倒排(即逆排);②文章中的标点符号不显示出来;③重新存到数组StrResult中,并输出到0ut.dat文件中。 【解题思路】根据上面的意思我们可以分为以下几个步骤来设计程序:

第1步:确定如何判断。个单词结束和如何判断一行结束。如果函数isalpha(StrResult[1][i])的值为零时,说明一个单词结束:如果变量i的值小于零,则说明一行结束。

第2步:题中要求最后输出的结果不能包含标点符号,因此可以利用二次循环把文章中的所有非英文字母和非空字符改成空字符。

第3步:用临时字符串数组ch和pp作为中转数组将每行的字符从行尾到行头进行置换。置换的方法是:首先把数组PP 中的每一个元素都向后移动一个位置,然后把strResult[1][i]存入数组元素pp[o]中,接着变量k加1,变量i减1,依次循环直到变量i减到零,即对一行的字符处理完毕。 第4步:最后把字符串数组ch的内容拷贝到字符串数组StrResult[1]中来实现倒排列。 【参考答案】

【易错分析】宁符串的倒排要考虑宁符为英文宁符和非英文宁符两种情况,出错者往往没有考虑到非英文字符的状况。

【考点链接】函数isalpha(int c)的功能是判断字符C是否为英文字母,当C为英文字母a-z或A-Z时,返回非零值,否则返回零。 第22套上机考试试题

下列程序的功能是:把str字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符小做改变。

请编写函数CharChange(char*str)实现程序要求,最后渊用函数RWData()从IN.dat文件中读取50组数据,分别得出结果,并把结果输出剑文件0UT.dat中。

例如,str字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。 注意:部分程序已经给出。请勿改动丰函数main()和输出数据函数RWData()的内容。

第22套试题答案及详解

【审题分析】分析题目可知,题中需要解决的问题就是实现CharChange函数的功能问题,而CharChange函数的功能是:实现“把str字符串中的所有字母改写成该字母的下一个字母,字母2改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变”。因此本题的关键在于如何判断将字符串拆分成单独的字母,之后就可以通过一个循环来将所有字符逐个替换,并存入数组str中。

【解题思路】首先要考虑对特殊字符2和Z的处理,因为字符2和z的ASCII值比字符a和A的ASCII值大25,所以要把字符Z和z改写成字符a和A,只需要用字符z和z的ASCII值减去25,就得到字符a和A的ASCII值;对其他的字符,只需要对其值加1,就得到其下一个字符的ASCII值。 【参考答案】

8 )

9 }

【易错分析】字符2和Z的ASCII值减玄25就得到字符a和A的ASCII值。 【考点链接】while循环语句的使用、字符ASCII值之间的关系 第23套上机考试试题

已知在文件IN.dat中存有100个产品销售记录,每个产品销售记录由产品代码code(字符型4位)、产品名称name(字符型10位)、单价uprice(整型)、数量amount(整型)、金额sum(长整型)5部分组成。其中,金额=单价×数量。函数RData()读取这100个销售记录并存入结构数组sell巾。请编写AscendSort()函数,其功能是:按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中。最后调用函数WData(),把结果输出到文件OUT.dat中。

注意:部分程序已给出。请勿改动主函数main()、读数据函数RData()和输出数据函数WData()的内容。

第23套试题答案及详解

【审题分析】分析题口可知,题中需要解决的问题就是实现AscendSort函数的功能问题,而AscendSort函数的功能是:实现“按产品名称从小到人进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中”。因此本题的关键住于对数组进行排序。

【解题思路】要实现产品从小到大排序,就需要两个整型变量i、j分别来记录当前的产品和后一个要比较的产品,然后用一个双重循环来对100个产品的记录进行扫描。在双重循环语句中用字符串比较函数strcmp0对两个产品的产品名称进行比较,并将小的往前排,大的往后排,实现按产品名称从小到大进行排序。如果产品名称相等,则比较这两个产品的金额大小,实现按产品金额从小到大进行排序的功能。

本文来源:https://www.bwwdw.com/article/dfhf.html

Top