全国计算机三级C语言上机题库附答案.docx
- 文档编号:12133832
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:43
- 大小:31.93KB
全国计算机三级C语言上机题库附答案.docx
《全国计算机三级C语言上机题库附答案.docx》由会员分享,可在线阅读,更多相关《全国计算机三级C语言上机题库附答案.docx(43页珍藏版)》请在冰豆网上搜索。
全国计算机三级C语言上机题库附答案
三级机试题库(附答案)
1、已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
依次从数组a中取出一个四位数,如果该四位数大于该四位数以后的连续五个数且该数是偶数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义数组:
a[200],b[200],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
2、在文件in.dat中已存有200个正整数,且每个数均在1000至9999之间。
函数readDat()是读取这200个数存放到数组aa中。
请编制函数jsSort(),其函数的功能是:
要求按每个数的后三位的大小进行降序排列,如果出现后三位相等的数值,则对这些数值按原始4位数据进行升序排列,将排序后的前10个数存入数组bb中。
最后调用函数writeDat()把结果bb输出到文件out.dat中。
例:
处理前90125099601270258088
处理后50998088702560129012
注意:
部分源程序存在文件PROG1.C文件中。
请勿改动数据文件in.dat中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
3、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章,存入到无符号字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,其替代值仍存入数组xx所对应的位置上,最后调用函数WriteDat()把结果xx输出到文件OUT.DAT中。
替代关系:
f(p)=p*11mod256,mod为取余运算,p是数组xx中某一个字符的ASCII值,f(p)是计算后无符号的整型值(注意:
中间变量定义成整型变量),如果计算后f(p)值小于等于32或f(p)是奇数时,则该字符不变,否则用f(p)替代所对应的字符。
注意:
部分源程序存放在PROG1.C中,原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
4、已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。
其中:
金额=单价*数量计算得出。
函数ReadDat()读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品名称从大到小进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中。
最后main()函数调用函数WriteDat()把结果输出到文件OUT.DAT中。
提示:
若中间变量为PROtemp,则可以直接使用结构赋值语句进行解题;产品名称比较请用函数strcmp进行解题。
例如:
sell[i]=temp;
注意:
部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
5、已知在IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。
请编制函数CalValue(),其功能要求:
1.求出这文件中共有多少个正整数totNum;2.求出这些正整数中的各位数字之和是奇数的数的个数totCnt,以及满足此条件的这些正整数的算术平均值totPjz。
最后main()函数调用函数WriteDat()把所求的结果输出到OUT.DAT文件中。
注意:
部分源程序存放在PROG1.C中。
请勿改动数据文件IN.DAT中的任何数据,主函数main()、读函数ReadDat()和输出数据函数WriteDat()的内容。
6、将文件IN.DAT中的200个整数读至数组xx中。
请编制jsValue()函数,要求:
求出数组xx中的最大数max及最大数的个数cnt和数组xx中的元素值能被3整除或能被7整除的所有数的算术平均值pj。
结果max,cnt,pj输出到OUT.DAT中。
注意:
部分源程序存在文件PROG1.C文件中。
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数read_dat()和输出函数writeDat()的内容。
7、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件OUT.DAT中。
替代关系:
f(p)=p*11mod256,mod为取余运算,p是数组xx中某一个字符的ASCII值,f(p)是计算后的无符号整型值(注意:
中间变量定义成整型变量),如果原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则用f(p)替代所对应的字符。
注意:
部分源程序存放在PROG1.C中,原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
8、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到无符号字符串数组xx中;请编制函数ChA(),其函数的功能是:
以该文章中的行为单位把字符串中的所有字符的二进制ASCII值右移4位,高位补0,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的值仍存入原字符串对应的位置上,之后把已处理的结果仍按行重新存入数组xx中。
最后main()函数调用函数WriteDat()把结果xx输出到OUT.DAT文件中。
原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格,并也按它的ASCII值作以上处理。
例如:
"z"对应的ASCII值为7AH,二进制值为01111010,右移4位后为00000111,加上原来"z"的ASCII值01111010得到10000001结果。
注意:
部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
9、已知数据文件IN1.DAT和IN2.DAT中分别存有100个两位十进制数,并且已调用读函数readDat()把这两个文件中的数存入数组a和b中,请考生编制一个函数jsVal(),实现的功能是依次对数组a和b中的数按条件重新组成一个新数并依次存入数组c中,再对数组c中的数按从小到大的顺序进行排序,最后调用输出函数writeDat()把结果c输出到文件OUT.DAT中。
组成新数的条件:
如果数组a和b中相同下标位置的数必须符合一个是偶数,另一个是奇数,则数组a中的数按二进制数左移八位后再加上数组b对应位置上的数,把这样组成的新数依次存入数组c中。
例如:
a:
1233241521
b:
3235171518
c:
61615394
排序后c:
53946161
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义:
a[100]、b[100]和c[100]。
请勿改动数据文件IN1.DAT和IN2.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
10、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件OUT.DAT中。
替代关系:
f(p)=p*11mod256,mod为取余运算,p是数组xx中某一个字符的ASCII值,f(p)是计算后的无符号整型值(注意:
中间变量定义成整型变量),如果原字符是数字字符0至9或计算后f(p)值小于等于32,则该字符不变,否则用f(p)替代所对应的字符。
注意:
部分源程序存放在PROG1.C中,原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
11、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数SortCharD(),其函数的功能是:
以行为单位对字符按ASCII码从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中。
最后main()函数调用函数WriteDat()把结果xx输出到文件OUT.DAT中。
例:
原文:
dAe,BfC.
CCbbAA
结果:
fedCBA.,
bbCCAA
原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格。
注意:
部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()
的内容。
12、已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
把千位数字和十位数字重新组成一个新的含有两位数字的数(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的含有两位数字的数(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的百位数字),如果两个新组成的数均是素数且新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义数组:
a[200],b[200],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
13、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR(),其函数的功能是:
以该文章中的行为单位依次扫描一行字符串中的小写字母o,每次将小写母o的左右字符串部分作交叉换位,即左边字符串移到小写字母o的右边,而原先右边的则反之,并把小写母o删除,依次直至这一行中的小写母o处理完,之后把已处理的字符串仍按行重新存入字符串数组xx中。
最后main()函数调用函数WriteDat()把结果xx输出到文件OUT.DAT中。
例如原文:
youhavethecorrectrecord.
第1个o:
uhavethecorrectrecord.y
第2个o:
rrectrecord.yuhavethec
第3个o:
rd.yuhavethecrrectrec
提示:
可使用临时变量来保存小写字母o左边的字符串。
原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格。
注意:
部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
14、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章,存入到无符号字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,其替代值仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件OUT.DAT中。
替代关系:
f(p)=p*11mod256,mod为取余运算,p是数组xx中某一个字符的ASCII值,f(p)是计算后无符号的整型值(注意:
中间变量定义成整型变量),如果计算后f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变,否则用f(p)替代所对应的字符。
注意:
部分源程序存放在PROG1.C中,原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
15、已知数据文件IN.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:
求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。
最后main()函数调用写函数writeDat()把数组b中的数输出到OUT.DAT文件。
例如:
5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件忽略。
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义数组:
a[300],b[300],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
16、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOL(),其函数的功能是:
以读入文章的行为单位,以空格或标点符号(数据文件中仅含','或'.'作为标点符号)作为分隔符,对行中所有单词进行倒排,单词间仍以空格作为分隔符,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中。
最后main()函数调用函数WriteDat()把结果xx输出到文件OUT.DAT中。
例如:
原文:
YouHeMe
Iamastudent.Ilikestudy.
结果:
MeHeYou
studylikeIstudentaamI
原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格。
注意:
部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容
17、已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
把一个四位数的千位数位置上的值减去百位数位置上的值再减去十位数位置上的值最后减去个位数位置上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()
把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义数组:
a[200],b[200],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
18、程序PROG1.C的功能是:
在三位整数(100至999)中寻找符合下面条件的整数,并依次从小到大存入数组b[]中。
条件如下:
某数既是完全平方数,又有两位数字相同,例如144、676等。
请考生编制函数intjsValue(intbb[])实现此功能,满足该条件的整数的个数通过所编制的函数返回。
最后调用函数writeDat()把结果输出到文件out.dat中。
注意:
部分源程序存放在PROG1.C中。
请勿改动主函数main()和写函数writeDat()的内容。
19、已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
把一个四位数的千位数位置上的值加上个位数位置上的值恰好等于百位数位置上的值加上十位数位置上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合
条件的四位数输出到OUT.DAT文件中。
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义数组:
a[200],b[200],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
20、请编写函数voidcountValue(int*a,int*n),它的功能是:
求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数,其结果按从小到大的顺序放在数组a中,并通过形式参数n传递这些数的个数。
注意:
部分源程序存在文件PROG1.C文件中。
请勿改动主函数main()和输入输出数据函数writeDAT()的内容。
21、程序PROG1.C的功能是:
把s字符串中的所有字符左移一个位置,串中的第一个字符移到最后。
请考生编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT()把结果输出到out.dat文件中。
例如:
s字符串中原有内容为:
Mn.123xyZ,则调用该函数后,结果为:
n.123xyZM。
注意:
部分源程序存在文件PROG1.C文件中。
请勿改动数据文件in.dat中的任何数据、主函数main()和输出函数readwriteDAT()的内容。
22、已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中。
最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义数组:
a[200],b[200],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
23、程序PROG1.C的功能是:
把s字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a,字母Z改写成字母A,其它字符不做改变。
请考生编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT()把结果输出到文件out.dat中。
例如:
s字符串中原有的内容为:
Mn.123Zxy,则调用该函数后,结果为:
No.123Ayz。
注意:
部分源程序存在文件PROG1.C文件中。
请勿改动数据文件in.dat中的任何数据、主函数main()和输出数据函数readwriteDAT()的内容。
24、已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。
其中:
金额=单价*数量计算得出。
函数ReadDat()读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中。
最后main()函数调用函数WriteDat()把结果输出到文件OUT.DAT中。
提示:
若中间变量为PROtemp,则可以直接使用结构赋值语句进行解题;产品名称比较请用函数strcmp进行解题。
例如:
sell[i]=temp;
注意:
部分源程序存放在PROG1.C中。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
25、已知数据文件IN.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:
求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。
最后main()函数调用写函数writeDat()把数组b中的数输出到文件OUT.DAT中。
例如:
7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。
8129,8+1!
=2+9,则该数不满足条件忽略。
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义数组:
a[300],b[300],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
26、已知数据文件IN.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:
求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。
最后main()函数调用写函数writeDat()把结果cnt,pjz1,pjz2输出到OUT.DAT文件。
例如:
1239,9-1-2-3>0,则该数满足条件,参加计算平均值pjz1,且个数cnt=cnt+1。
8129,9-8-1-2<0,则该数不满足条件,参加计算平均值pjz2。
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义数组:
a[300],已定义变量:
cnt,pjz1,pjz2
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
27、已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
把千位数字和十位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数均是素数且新数的十位数字均不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 三级 语言 上机 题库 答案