全国计算机等级考试三级上机试题(C) 联系客服

发布时间 : 星期二 文章全国计算机等级考试三级上机试题(C)更新完毕开始阅读5c3638f8f705cc17552709eb

totfc?1N-1型值(注意:中间变量定义成型变量),如果原字符是

?(xx[i]?aver)2数字字符0至9或计算后f(p)值小于等于32,则该字符Ni?0

62. 请编制函数Compute()分别计算出xx中数值为偶数的个

数even,所有数值为奇数的平均值ave1,偶数的平均值ave2以及所有偶数的方差totfc的值。

设N为偶数的个数,xx[i]为偶数,ave2为奇数的平均值。

N-1totfc?1N?(xx[i]?ave2)2i?0

63. 将文件IN.DAT中的200个整数读至数组xx中。要求:

求出数组xx中的最大数max及最大数的个数cnt和数组xx中的元素值能被3整除或能被7整除的所有数的算术平均值pj。结果max,cnt,pj输出到OUT.DAT中。 64. 请编写函数void countValue(int *a,int *n),它的功能

是:求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数,其结果按从小到大的顺序放在数组a中,并通过形式参数n传递这些数的个数。 65.请编制函数countValue(int n),它的功能是:求n以内

(不包括n)同时能被3与7整除的所有自然数和的平均值的平方根s,s作为函数返回值,最后结果s输出到文件OUT.DAT中。

66. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章,

存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,任存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件OUT.DAT中,替代关系:f(p)=p*11mod256,mod为取余运算,p是数组xx中某一个字符的ASCLL值,f(p)是计算后的无符号整型值(注意:中间变量定义成型变量),如果计算后f(p)值小于等于32或f(p)值在65至90范围内(包括65和90),则原字符不变,否则用f(p)替代所有对应的字符。原始数据文件格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。

67. 替代关系:f(p)=p*13mod256,mod为取余运算,p是数组

xx中某一个字符的ASCLL值,f(p)是计算后的无符号整型值(注意:中间变量定义成型变量),如果计算后f(p)值小于等于32或是偶数,则该字符不变,否则用f(p)替代所有对应的字符。

68. 替代关系:f(p)=p*11mod256,mod为取余运算,p是数组

xx中某一个字符的ASCLL值,f(p)是计算后的无符号整

5

不变,否则用f(p)替代所有对应的字符。

69. 替代关系:f(p)=p*11mod256,mod为取余运算,p是数组

xx中某一个字符的ASCLL值,f(p)是计算后的无符号整型值(注意:中间变量定义成型变量),如果原字符的ASCLL值是偶数或计算后f(p)值小于等于32,则该字符不变,否则用f(p)替代所对应的字符。

70. 替代关系:f(p)=p*11mod256,mod为取余运算,p是数组

xx中某一个字符的ASCLL值,f(p)是计算后的无符号整

型值(注意:中间变量定义成型变量),如果计算后f(p)值小于等于32或f(p)对应的字符是“0”至“9”,则该字符不变,否则用f(p)替代所对应的字符。

71. 替代关系:f(p)=p*11mod256,mod为取余运算,p是数组

xx中某一个字符的ASCLL值,f(p)是计算后的无符号整型值(注意:中间变量定义成型变量),如果计算后f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变,否则用f(p)替代所对应的字符。

72. 替代关系:f(p)=p*17mod256,mod为取余运算,p是数组

xx中某一个字符的ASCLL值,f(p)是计算后的无符号整型值(注意:中间变量定义成型变量),如果计算后f(p)值小于等于32或f(p)是奇数时,则该字符不变,否则用f(p)替代所对应的字符。

73. 替代关系:f(p)=p*11mod256,mod为取余运算,p是数组

xx中某一个字符的ASCLL值,f(p)是计算后的无符号整型值(注意:中间变量定义成型变量),如果原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则用f(p)替代所对应的字符。

74. 替代关系:f(p)=p*17mod256,mod为取余运算,p是数组

xx中某一个字符的ASCLL值,f(p)是计算后的无符号整型值(注意:中间变量定义成型变量),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则用f(p)替代所对应的字符。

75. 替代关系:f(p)=p*11mod256,mod为取余运算,p是数组

xx中某一个字符的ASCLL值,f(p)是计算后的无符号整型值(注意:中间变量定义成型变量),如果原字符是小写字母或计算后f(p)值小于等于32,则该字符不变,否则用f(p)替代所对应的字符。

76.函数ReadDat()实现从文件IN.DAT中读取一篇英文文章,

存入到字符串数组xx中;请编制函数ConverCharA(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a,大写字母和其他字符保持不变。把已处理的字符串任按行重新存入字符串数组xx中。最后main()

函数调用函数WriteDat()把结果xx输出到文件OUT.DAT中。

77. 其函数的功能是:以行为单位把字符串中的所有小写字

母改写成该字母的上一个字母,如果是字母a,则改写成字母z,其他字符保持不变。把已处理的字符串任按行重新存入字符串数组xx中。

78. 程序PROG1.C的功能是:把s字符串中的所有英文字

母改写成该字母的下一个字母,字母z改写成字母a,字母Z改写成字母A,其他字符保持不变。编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT()把结果输出到文件OUT.DAT中。

79. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章

存入到字符串数组xx中;请编制函数SortCharD(),其函数的功能是:以行为单位对字符按ASCLL码从大到小的顺序进行排序,排序后的结果任按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT.DAT中。原始数据文件格式是:每行的宽度均小于80个字符,含标点符号和空格。

80. 其函数功能是:以行为单位对字符按从小到大的顺序进

行排序,排序后的结果任按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT.DAT中。

81. 函数readDat()是从文件IN.DAT中读取20行数据存放到

字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果任按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT.DAT中。条件:从字符串中间一分为二,左边部分按字符的ASCLL值降序排序,右边部分不作处理,排序后,左边部分与右边部分按例子所示进行交换,如果厡字符串长度为奇数,则最中间的字符不参加处理,字符依放在原位置上。

82. 其功能是:以行为单位对字符串变量的下标为奇数的位

置上的字符按其ASCLL值从小到大的顺序进行排序,下标为偶数的位置上的字符任按原来位置存放,排序后的结果任按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT.DAT中。

83. 其功能是:以行为单位对字符串按下面给定的条件进行

排序,条件:从字符串中间一分为二,左边部分按字符的ASCLL值降序排序,右边部分按字符的ASCLL值升序排序。如果源字符串长度为奇数,则最中间的字符不参加排序,字符任放在原位置上。

84. 其功能是:以行为单位对字符串按下面给定的条件进行

排序,条件::从字符串中间一分为二,左边部分按字

6

符的ASCLL值升序排序,右边部分不变,左边经排序后再与右边部分进行交换。如果源字符串长度为奇数,则最中间的字符不参加处理,字符任放在原位置上。 85. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章

存入到无符号字符串数组xx中;请编制函数StrCharJL(),其函数的功能是:以行为单位把字符串中的所有字符的ASCLL值左移4位二进制位,低位补0,如果左移后,其值小于等于32或大于100,则原字符保持不变,留在原字符串对应的位置上,否则就把左移后的值再加上原字符的ASCLL值,得到新的值任存入源字符串对应的位置上,之后把已处理的字符串任按行重新存入无符号字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT.DAT中。原始数据文件格式是:每行的宽度均小于80个字符,含标点符号和空格。 86. 请编制函数ChA(),其函数的功能是:以行为单位把字符

串中的第一个字符的ASCLL值加第二个字符的ASCLL值,得到第一个新的值,存入数组单元xx[i][0]中(其中:i是文章中的某行)。第二个字符的ASCLL值加第三个字符的ASCLL值,得到第二个新的值,存入数组单元xx[i][1]中。以此类推一直处理到最后第二个字符,最后一个字符的ASCLL值加原第一个字符的ASCLL值,得到最后一个新的值,存放在原字符串对应的位置上,之后把已处理的字符串逆转后任按行重新存入无符号字符串数组xx中。

87. 程序PROG1.C的功能是:把s 字符串中的所有字符左移

一个位置,串中的第一个字符移到最后。请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT()把结果输出到OUT.DAT文件中。 88. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章

存入到无符号字符串数组xx中;请编制函数CharConvA(),其函数的功能是:以该文章中的行为单位把字符串中的最后一个字符的ASCLL值右移4位二进制位,高位补0后加最后第二个字符的ASCLL值,得到最后一个新的值,最后第二个字符的ASCLL值右移4位二进制位,高位补0后加最后第三个字符的ASCLL值,得到最后第二个新的值,以此类推一直处理到第二个字符。注意:第一个新的值与上述处理不同,第一个字符的ASCLL值加原最后一个字符的ASCLL值,得到第一个新的值。得到的新值分别存放在源字符串对应的位置上,之后吧处理的字符串重新存入数组xx中。原始数据文件格式是:每行的宽度均小于80个字符,含标点符号和空格。并也按他的ASCLL值作以处理。

89. 请编制函数StrCharJR(),其函数的功能是:以该文章中的

行为单位把字符串中的所有字符的二进制ASCLL值右移

4位,高位补0,然后把右移后的字符ASCLL值再加上原字符的ASCLL值,得到新的值任存入源字符串对应的位置上,之后把以处理的结果人按行重新存入数组xx中。最后main()函数调用函数writeDat()把结果xx输出到文件OUT.DAT中。

90.编写一个函数findStr(char *str,char *substr),该函数统计

一个长度为2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数值返回。例如,假定输入的字符串为\,子字符串为\,函数返回值是6。函数ReadWrite()实现从文件IN.DAT中读取两个字符串,并调用函数findStr(),最后把结果输出到文件OUT.DAT中。

注意:部分源程序存在文件PROG1.C中。请勿改动主函数main()和其它函数中的任何内容,仅在函数findStr()的花括号中填入你编写的若干语句。

91.函数ReadDat()实现从文件IN.DAT中读取一篇英文文

章存入到字符串数组xx中;请编写函数strOR(),其函数功能是:以该文章中的行为单位依次扫描一行字符串中的小写字母o,每次把小写字母o的左右字符串部分作交叉换位,即左边字符串移到小写字母o的右边,而原先右边的则反之,并把小写字母o删除,依次直至这一行中的小写字母o处理完,之后把已处理的字符串仍按行重新存入字符串xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT.DAT中 提示:对于每一行字符串数组处理有,如下步骤可供参考:

第一步:查找字符串中小写字母o的位置,没有找到则结束本字符串的处理;

第二步:如果找到字符串中小写字母o的下标为pos,则调用函数change完成一次处理,并形成新的字符串输出;

第三步;对新的字符串回到第一步重新进行以上处理。 原始数据文件存放的格式是;每行的宽度均小于80个字符,含标点符号和空格。

注意:部分源程序存放在PROG.c中。请勿改动主函数main(),读数据函数ReadDat()和输出数据函数WriteDat()的内容。

92.函数ReadDat()实现从文件IN.DAT中读取一篇英文文

章存入到字符串数组xx中;请编写函数strOR(),其函数功能是:以读入文章的行为单位,以空格和标点符号(数据文章中仅含”,”或’’.”作为分隔符,对行中所有单词进行倒排,单词间必须以空格作为分隔符,之后把已处理的字符串(分隔符只包含空格)仍按行重新存入字符串数组xx中。

7

最后main()函数调用函数WriteDat()把结果xx输出到文本OUT.DAT。

提示:先把每一行的标点符号变为空格符号,每一行单词之

间全部是以空格为分隔符的,对于每一行字符串可以先提取最后一个单词,在提取倒数第二个单词,直至第一个单词,单词之间采用空格作为分隔符,连接成一行新的字符串。

原始数据文件存放的格式是:每一行的宽度均小于80个字符,含标点符号和空格。

注意:部分源程序存放在PROG.c中。原字符串中第1个单词和最后1个单词在在构造新的字符串时不能遗漏。请勿改动主函数main(),读数据函数ReadDat()和输出数据函数WriteDat()的内容。

93.对10个候选人进行选举,现有一个100条记录的选票数

据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个候选人的选中情况,第二位表示第二个候选人的选中情况,依次类推;每一位内容均为字符\或\,\表示此人被选中,\表示此人未被选中,若一张选票选中人数小于等于5个人时被认为无效的选票则不作统计。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个候选人的选票数并把得票数依次存入yy[0]到yy[9]中,即第一个候选人的得票数存入yy[0]中,以此类推。最后调用函数WriteDat()把结果yy输出到文件OUT.DAT中。

注意:部分源程序存放在PROG1.C中。请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。

94.对10个候选人进行选举,现有一个100条记录的选票数

据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个候选人的选中情况,第二位表示第二个候选人的选中情况,依次类推;每一位内容均为字符\或\,\表示此人被选中,\表示此人未被选中,全选或全不选(空选票)均为无效的选票则不统计。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个候选人的选票数并把得票数依次存入yy[0]到yy[9]中,即第一个候选人的得票数存入yy[0]中,以此类推。最后调用函数WriteDat()把结果yy输出到文件OUT.DAT中。注意:部分源程序存放在PROG1.C中。请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。

95.对10个候选人进行选举,现有一个100条记录的选票数

据文件IN.DAT,其数据存放的格式是每条记录的长度均

为10位,第一位表示第一个候选人的选中情况,第二位表示第二个候选人的选中情况,依次类推;每一位内容均为字符\或\,\表示此人被选中,\表示此人未被选中,若一张选票选中人数大于5个人时被认为无效的选票则不作统计。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个候选人的选票数并把得票数依次存入yy[0]到yy[9]中,即第一个候选人的得票数存入yy[0]中,以此类推。最后调用函数WriteDat()把结果yy输出到文件OUT.DAT中。

注意:部分源程序存放在PROG1.C中。请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。

96.设有n个人坐一圈并按顺时针方向从1到n编号,从第

s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始从1到m报数,如此进行下去直到所有的人都出圈为止。先要求按出圈次序,每10个人为一组,给出这n个人的顺序表。请编制函数Josegh()实现此功能,并调用函数WriteDat()把编号按照出圈顺序输出到文件OUT.DAT中。设n=100,s=1,m=10进行编程。

注意:部分源程序存放在PROG1.C中。请勿改动主函数main()和写函数WriteDat()的内容。

97.程序PROG1.c的功能是:计算出自然数six和nine满足

条件six+six+six=nine+nine的个数cnt,以及满足此条件所有的six与nine的和sum。请编写函数countValue()实现程序的要求,最后main()函数调用函数WriteDat()把结果cnt和sum,输出到文件OUT.DAT中。其中的s、i、x、n、e各代表一个十进制数字,允许代表的数字相同,但

s和

n不能为0.例如:

944+944+944=1416+1416

注意:部分源程序存放在PROG1.c中,请勿改动主函数main()和输出数据函数WriteDat()的内容。

98.程序PROG1.C的功能是:在三位整数(100至999)中寻

找符合下面条件的整数,并依次从小到大存入数组b[]中。条件如下:某数既是完全平方数,又有两位数字相同,例如144、676等。请考生编制函数int jsValue(int bb[])实现此功能,满足该条件的整数的个数通过所编制的函数返回。最后调用函数writeDat()把结果输出到文件OUT.DAT中。

注意:部分源程序存放在PROG1.C中。请勿改动主函数main()和写函数writeDat()的内容。

99.程序PROG1.C的功能是:寻找并输出11到999之间的数

m,它满足m,m2和m3均为回文数。所谓回文数是指

8

其各位数子左右的对称的整数,例如:121,676,94249等,满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请考生编写函数int jsValue(long m)实现此功能,如果是回文数,则函数返回1,反之则返回0.最后把结果输出到文件OUT.Dat中。

注意:部分源程序存放在PROG1.C中。请勿改动主函数main()。

100.下列程序的功能是:将一个正整数序列{K1,K2,?,

K9}重新排成一个新的序列。新序列中,比K1小的数都在k1的左面(后续的再向左存放),比k1大的数都在k1的右面(后续的再向右存放),从k1向右扫描。有求编写函数jsValue()实现此功能,最后调用函数WriteDat()把新序列输出到文件OUT.DAT中。 说明:在程序中已给出了10个序列,每个序列中有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。

例如:序列排序前:{6,8,9,1,2,5,4,7,3}

{3,4,5,2,1,6,8,9,7 }

注意:部分源程序存放在PROG.c中。请勿改动主函数main()和写函数WriteDat()的内容。 101.已知在文件IN.DAT中存有100个产品销售记录,

每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),

其功能要求:按金额从大到小进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中。最后main()函数调用函数WriteDat()把结果输出到文件OUT.DAT中。

提示:若中间变量为PRO temp,则可以直接使用结构赋值语句进行解题;产品名称比较请用函数strcmp进行解题。 例如:sell[i]=temp;

注意:部分源程序存放在PROG1.C中。请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。

102.在文件IN.DA中存有200个四位数,并已调出读函数

ReadDat()把这些数存入数组a中,请考生编制一函数jsVal(),

其功能是:把一个四位数的个位数上的值减去千位数上的值在减去百位数上的值最后减去十位数上的