




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机等级考试三级(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)?排序要求:?按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列?if(strcmp(selli.mc,sellj.mc)sellj.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,则该数不满足条件忽略。程序中已定义数组:a300,b300,已定义变量:t?#include?inta300,b300,t=0;?jsvalue()?/*/?inti,j,g,s,b,q,t;?for(i=0;i0)?bt+=ai;?for(i=0;i0)?bt+=ai;?要求:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数t,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。?if(q+b)=(s+g)?bt+=ai;?类型题三:300个数满足条件的求平均值?求满足条件的数的个数、平均值及不满足条件的数的平均值等,此类也是五题。本处仅给出一个全题,其余题只给出不同之处。?已知数据文件in.dat中存有300个四位数,并已调用读函数readdat()把这些数存入数组a中,请编制一函数jsvalue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数t,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。最后main()函数调用写函数writedat()把结果t,pjz1,pjz2输出到out.dat文件。?例如:9123,9-1-2-30,则该数满足条件计算平均值pjz1,且个数t=t+1。9812,9-8-1-20,则该数不满足条件计算平均值pjz2。程序中已定义数组:a300,已定义变量:t,pjz1,pjz2?inta300,t=0;?doublepjz1=0.0,pjz2=0.0;?jsvalue()?/*/?inti,g,s,b,q;?for(i=0;i0)?t+;pjz1+=ai;?elsepjz2+=ai;?if(t)pjz1/=t;?if(t300)pjz2/=300-t;?/*/?之二要求:?求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数t,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。?if(q+b)=(g+s)?t+;pjz1+=ai;?elsepjz2+=ai;?之三要求:?求出个位数上的数减千位数上的数减百位数上的数减十位数上的数小于零的个数t,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。?if(g-q-b-s0)?t+;pjz1+=ai;?elsepjz2+=ai;?之四要求:?求出所有这些四位数是素数的个数t,再求出所有满足此条件的四位数平均z值pjz1,以及所有不满足此条件的四位数平均值pjz2。?jsvalue()?/*/?inti,j,t;?for(i=0;i300;i+)?for(j=2;j?if(ai%j=0)?pjz2+=ai;?break;?if(j=ai)?t+;pjz1+=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;i=10且ab-cd=0且ab-cd=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数t。?类型题五?已知在文件in.dat中存有若干个(个数1)%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;i=#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)?排序要求:?按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列?if(strcmp(selli.mc,sellj.mc)sellj.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,则该数不满足条件忽略。程序中已定义数组:a300,b300,已定义变量:t?#include?inta300,b300,t=0;?jsvalue()?/*/?inti,j,g,s,b,q,t;?for(i=0;i0)?bt+=ai;?for(i=0;i0)?bt+=ai;?要求:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数t,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。?if(q+b)=(s+g)?bt+=ai;?类型题三:300个数满足条件的求平均值?求满足条件的数的个数、平均值及不满足条件的数的平均值等,此类也是五题。本处仅给出一个全题,其余题只给出不同之处。?已知数据文件in.dat中存有300个四位数,并已调用读函数readdat()把这些数存入数组a中,请编制一函数jsvalue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数t,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。最后main()函数调用写函数writedat()把结果t,pjz1,pjz2输出到out.dat文件。?例如:9123,9-1-2-30,则该数满足条件计算平均值pjz1,且个数t=t+1。9812,9-8-1-20,则该数不满足条件计算平均值pjz2。程序中已定义数组:a300,已定义变量:t,pjz1,pjz2?inta300,t=0;?doublepjz1=0.0,pjz2=0.0;?jsvalue()?/*/?inti,g,s,b,q;?for(i=0;i0)?t+;pjz1+=ai;?elsepjz2+=ai;?if(t)pjz1/=t;?if(t300)pjz2/=300-t;?/*/?之二要求:?求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数t,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。?if(q+b)=(g+s)?t+;pjz1+=ai;?elsepjz2+=ai;?之三要求:?求出个位数上的数减千位数上的数减百位数上的数减十位数上的数小于零的个数t,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。?if(g-q-b-s0)?t+;pjz1+=ai;?elsepjz2+=ai;?之四要求:?求出所有这些四位数是素数的个数t,再求出所有满足此条件的四位数平均z值pjz1,以及所有不满足此条件的四位数平均值pjz2。?jsvalue()?/*/?inti,j,t;?for(i=0;i300;i+)?for(j=2;j?if(ai%j=0)?pjz2+=ai;?break;?if(j=ai)?t+;pjz1+=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;i=10且ab-cd=0且ab-cd=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数t。?类型题五?已知在文件in.dat中存有若干个(个数1)%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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年海南省三支一扶招聘考试模拟试卷及1套参考答案详解
- 2025江苏苏州工业园区教育局组织开展西安地区校园招聘的模拟试卷参考答案详解
- 2025福建漳州市诏安县财政投资评审中心招募见习人员1人模拟试卷及答案详解(典优)
- 2025广东东莞麻涌镇人力资源服务有限公司招聘7人模拟试卷及一套完整答案详解
- 2025广东深圳市罗山科技园开发运营服务有限公司高校应届毕业生招聘拟聘考前自测高频考点模拟试题有完整答案详解
- 2025江西南昌市劳动保障事务代理中心招聘劳务派遣人员6人模拟试卷附答案详解(典型题)
- 2025福建南平事业单位招聘工作人员笔试未达开考比例及核减岗位招聘数情况模拟试卷附答案详解(黄金题型)
- HO-PEG-AS-MW-3400-生命科学试剂-MCE
- 2025昆明市盘龙区面向全国引进高中教育管理人才考前自测高频考点模拟试题及一套参考答案详解
- 小学劳动安全培训内容课件
- 2025年中国零售用显示屏行业市场全景分析及前景机遇研判报告
- 吉林省长春市2024-2025学年七年级上学期生物月考试题(含答案)
- 2025至2030中国视觉点胶机市场运行状况与未来发展走势预测报告
- 种草莓劳动课件
- 雀巢牛奶购销合同范本
- 100MW光伏发电场光伏电站建设与环境影响评估可行性研究报告
- 4.1夯实法治基础教学设计 2025-2026学年度九年级上册 道德与法治 统编版
- 连铸工岗位操作规程考核试卷及答案
- 2025-2026学年华中师大版(2024)小学体育与健康一年级(全一册)教学设计(附目录P123)
- 2025兵团普通职工考试试题及答案
- 格拉斯哥(GCS)昏迷评估量表(详xi操作)
评论
0/150
提交评论