




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机等级考试三级(C语言)上机考试试题总结 第一种:产品销售记录问题:?/*已知在文件in.dat中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:?金额=单价*数量计算得出。函数readdat()读取这100个销售记录并存入结构数组sell中。请编制函数sortdat(),其功能要求:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中。最后main()函数调用函数writedat()把结果输出到文件out1.dat中。注意:部分源程序存放在prog1.c中。?#definemax100?typedefstruct?chardm5;/*产品代码*/?charmc11;/*产品名称*/?intdj;/*单价*/?intsl;/*数量*/?longje;/*金额*/?pro;?函数解析:/if(selli.jesellj.je)|(selli.je=sellj.je)&(strcmp(selli.dm,?sellj.dm)0)是此题的精华所在理解它就理解了这道题的编程道理?首先selli.jesellj.je如果金额大小成立的话,就条件成立,把两个数据换位置,如果前者不成立,就判定金额是否相等,如果相等的话,代码还有大小的话,按从小到大的顺序排列。?这种函数的编程方法,适用于有一定基础的编程者,如果是初学者的话建议用以下函数来表达,此方法是按照题意一部一部来分析的,是比较保守的编程方法。?voidsortdat()?inti,j;?proswap;?for(i=0;isellj.je)?swap=selli;selli=sellj;sellj=swap;?elseif(selli.je=sellj.je)&(strcmp(selli.dm,sellj.dm)0)?swap=selli;selli=sellj;sellj=swap;?100个产品销售记录排序其余9题说明?1)in.dat内容完全相同。?2)程序也基本雷同,仅排序的要求不一样。?3)考生应熟悉strcmp()函数,否则有的题相当不好处理。?试题变化:?排序要求:?按金额从小到大进行排列,若金额相等,则按产品代码从大到小进行排列相应语句:?if(selli.jesellj.je)|(selli.je=sellj.je)&(strcmp(selli.dm,sellj.dm)sellj.je)?排序要求:?按产品名称从小到大进行排列,若产品名称相同,则按金额从大到小进行排列?if(strcmp(selli.mc,sellj.mc)0|(strcmp(selli.mc,sellj.mc)=0)&(selli.jesellj.je?第二类习题300个四位数问题:?300个四位数问题(此类共10题)本类10题中,五题产生数组b,并对b按一定要求排序;?其余五题是求平均值。我把它们分成两组五题来讨论。以下为产生数组b之题一:?已知数据文件in.dat中存有300个四位数,并已调用读函数readdat()把这些数存入数组a中,请编制一函数jsvalue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数t,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。最后main()函数调用写函数writedat()把数组b中的数输出到文件out.dat。?例如:1239,9-1-2-30,则该数满足条件存入数组b中,且个数t=t+1。?8129,9-8-1-20)?bt+=ai;?for(i=0;it;j+)?if(bi0,则该数满足条件计算平均值pjz1,且个数t=t+1。9812,9-8-1-20)?t+;pjz1+=ai;?elsepjz2+=ai;?if(t)pjz1/=t;?if(tcd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数t。程序中已定义数组:a200,b200,已定义变量:t?#include?#definemax200?intamax,bmax,t=0;?voidjsval()?/*/?inti,j,k,a,b,c,d;?for(i=0;i10*c+d)?bt+=ai;?for(i=0;it;j+)?if(bk=10且ab-cd=0且ab-cd1)%2)?tott+;totpjz+=xxtotnum;?if(tott)totpjz/=tott;?/*/?类似题一、编制函数calvalue(),其功能要求:1.求出这文件中共有多少个正整数totnum;2.求这些数右移1位后,产生的新数是偶数的数的个数tott,以及满足此条件的这些数(右移前的值)的算术平均值totpjz。?voidcalvalue(void)?/*/?for(;xxtotnum0;totnum+)?if(xxtotnum1)%2=0)?tott+;totpjz+=xxtotnum;?if(tott)totpjz/=tott;?/*/?类型题六?函数readdat()实现从文件in.dat中读取一篇英文文章存入到字符串数组xx中;请编制函数sortchard(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行?重新存入字符串数组xx中。最后main()函数调用函数writedat()把结果xx输出到文件out2.dat中。例:原文:dae,bfc.?bbaa?结果:fedcba.,?bbaa?charxx5080;?intmaxline=0;/*文章的总行数*/?voidsortchard(void)?/*/?inti,j,k,m,n;charch;?for(i=0;ij;n+)?if(xxim=#39;a#39;)&(xxij#39;z#39;)?xxij+;/*如果不是z的话就把字符向?后移动一个。*/?/*/?字符串类型题之三?函数readdat()实现从文件in.dat中读取一篇英文文章存入到字符串数组xx中;请编制函数sortchara(),其函数的功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中。?voidsortchard(void)?/*/?inti,j,k,m,n;charch;?for(i=0;ixxin)?ch=xxim;xxim=xxin;xxin=ch;?字符串处理之四?函数readdat()实现从文件in.dat中读取一篇英文文章存入到字符串数组xx中;请编制函数strcharjl(),其函数的功能是:以行为单位把字符串中的所有字符的ascii值左移4位,如果左移后,其字符的ascii值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ascii值再加上原字符的ascii值,得到新的字符仍存入原字符串对应的位置上,之后把已处理的字符串仍按行重新?存入字符串数组xx中。最后main()函数调用函数writedat()把结果xx输出到out7.dat文件中。?voidstrcharjl(void)?/*/?inti,j;charm;?/*此题的关键是定义charm,如果定义为intc的话就会出现错误?for(i=0;i32)&(m4;?/*/?字符串处理之六:?函数readdat()实现从文件in.dat中读取一篇英文文章存入到字符串数组xx中;请编制函数convertchard(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z,大写字母和其它字符保持不变。把已处理的字符串仍按行重新存入字符串数组xx中。?voidconvertchard(void)?/*/?inti,j;?for(i=0;i 第一种:产品销售记录问题:?/*已知在文件in.dat中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:?金额=单价*数量计算得出。函数readdat()读取这100个销售记录并存入结构数组sell中。请编制函数sortdat(),其功能要求:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中。最后main()函数调用函数writedat()把结果输出到文件out1.dat中。注意:部分源程序存放在prog1.c中。?#definemax100?typedefstruct?chardm5;/*产品代码*/?charmc11;/*产品名称*/?intdj;/*单价*/?intsl;/*数量*/?longje;/*金额*/?pro;?函数解析:/if(selli.jesellj.je)|(selli.je=sellj.je)&(strcmp(selli.dm,?sellj.dm)0)是此题的精华所在理解它就理解了这道题的编程道理?首先selli.jesellj.je如果金额大小成立的话,就条件成立,把两个数据换位置,如果前者不成立,就判定金额是否相等,如果相等的话,代码还有大小的话,按从小到大的顺序排列。?这种函数的编程方法,适用于有一定基础的编程者,如果是初学者的话建议用以下函数来表达,此方法是按照题意一部一部来分析的,是比较保守的编程方法。?voidsortdat()?inti,j;?proswap;?for(i=0;isellj.je)?swap=selli;selli=sellj;sellj=swap;?elseif(selli.je=sellj.je)&(strcmp(selli.dm,sellj.dm)0)?swap=selli;selli=sellj;sellj=swap;?100个产品销售记录排序其余9题说明?1)in.dat内容完全相同。?2)程序也基本雷同,仅排序的要求不一样。?3)考生应熟悉strcmp()函数,否则有的题相当不好处理。?试题变化:?排序要求:?按金额从小到大进行排列,若金额相等,则按产品代码从大到小进行排列相应语句:?if(selli.jesellj.je)|(selli.je=sellj.je)&(strcmp(selli.dm,sellj.dm)sellj.je)?排序要求:?按产品名称从小到大进行排列,若产品名称相同,则按金额从大到小进行排列?if(strcmp(selli.mc,sellj.mc)0|(strcmp(selli.mc,sellj.mc)=0)&(selli.jesellj.je?第二类习题300个四位数问题:?300个四位数问题(此类共10题)本类10题中,五题产生数组b,并对b按一定要求排序;?其余五题是求平均值。我把它们分成两组五题来讨论。以下为产生数组b之题一:?已知数据文件in.dat中存有300个四位数,并已调用读函数readdat()把这些数存入数组a中,请编制一函数jsvalue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数t,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。最后main()函数调用写函数writedat()把数组b中的数输出到文件out.dat。?例如:1239,9-1-2-30,则该数满足条件存入数组b中,且个数t=t+1。?8129,9-8-1-20)?bt+=ai;?for(i=0;it;j+)?if(bi0,则该数满足条件计算平均值pjz1,且个数t=t+1。9812,9-8-1-20)?t+;pjz1+=ai;?elsepjz2+=ai;?if(t)pjz1/=t;?if(tcd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数t。程序中已定义数组:a200,b200,已定义变量:t?#include?#definemax200?intamax,bmax,t=0;?voidjsval()?/*/?inti,j,k,a,b,c,d;?for(i=0;i10*c+d)?bt+=ai;?for(i=0;it;j+)?if(bk=10且ab-cd=0且ab-cd1)%2)?tott+;totpjz+=xxtotnum;?if(tott)totpjz/=tott;?/*/?类似题一、编制函数calvalue(),其功能要求:1.求出这文件中共有多少个正整数totnum;2.求这些数右移1位后,产生的新数是偶数的数的个数tott,以及满足此条件的这些数(右移前的值)的算术平均值totpjz。?voidcalvalue(void)?/*/?for(;xxtotnum0;totnum+)?if(xxtotnum1)%2=0)?tott+;totpjz+=xxtotnum;?if(tott)totpjz/=tott;?/*/?类型题六?函数readdat()实现从文件in.dat中读取一篇英文文章存入到字符串数组xx中;请编制函数sortchard(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行?重新存入字符串数组xx中。最后main()函数调用函数writedat()把结果xx输出到文件out2.dat中。例:原文:dae,bfc.?bbaa?结果:fedcba.,?bbaa?charxx5080;?intmaxline=0;/*文章的总行数*/?voidsortchard(void)?/*/?inti,j,k,m,n;charch;?for(i=0;ij;n+)?if(xxim=#39;a#39;)&(xxij#39;z#39;)?xxij+;/*如果不是z的话就把字符向?后移动一个。*/?/*/?字符串类型题之三?函数readdat()实现从文件in.dat中读取一篇英文文章存入到字符串数组xx中;请编制函数sortchara(),其函数的功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加工中心操作工专业知识考核试卷及答案
- 棉花保管员新员工考核试卷及答案
- 陶瓷工艺品制作师质量追溯知识考核试卷及答案
- 制浆备料工安全规范考核试卷及答案
- 2024-2025学年度自考专业(护理)模考模拟试题及答案详解【易错题】
- 球拍球网制作工协同作业考核试卷及答案
- 幼儿体育游戏飞盘亲子活动方案
- 聚苯乙烯装置操作工标准化作业考核试卷及答案
- 汽车生产线操作工工艺考核试卷及答案
- 弹射玩具品牌合作策略分析报告
- 收割芦苇施工方案
- 湖北省公务员遴选考试题目及答案
- 医疗机构小儿推拿技术规范-公示稿
- 吊篮临时用电施工方案
- 2025-2030中国小麦加工行业市场发展分析及发展趋势与投资前景研究报告
- 肠系膜上动脉夹层护理查房
- 减盐减油知识课件
- 焊接过程化学反应
- 手术体位安全管理制度
- 慈善基金会财务管理制度
- 八马加盟合同样本
评论
0/150
提交评论