《计算机c语言.pdf》由会员分享,可在线阅读,更多相关《计算机c语言.pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机C语言题目1 1 (字符串字母移位题)程序p r o g l.c的功能是:把 s字符串中的所有字母改写成该字母的下一个字母,字母z 改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。请考生编写函数chg(char *s)实现程序要求,最后调用函数r eadwr iteD AT()把结果输出到文件bcl.o u t中。例如:s字符串中原有的内容为:Mn.1 2 3 Z xy,则调用该函数后,结果为:No.1 2 3 Ayz0注意:部分源程序存在文件p r o g l.c文件中。请勿改动主函数m ain()和输出数据函数r eadwr iteD AT()的内容。
2、ftin cl u de ftin cl u de ttin cl u de ttin cl u de ftdefin e N 8 1v o id r eadwr it eD AT ();v o id chg(char *s)in t I;fo r (1=0;Ks tr l en (s);I+)if(s i=,z)|s i=Z )s i-=2 5;el s e if(s i=,a&s i =A Y)s i+=l;)m ain ()(char a N;cl r s cr ();p r in tf(E n ter a s tr in g :);g ets (a);p r in tf C T he
3、o r ig in al s tr in g is :);p u ts (a);chg(a);p r in tf(T he s tr in g after m o dified:);p u ts (a);r eadwr it eD AT ();)v o id r eadwr it eD AT ()in t i ;char a N;F ILE *r f,*wf;r f=fo p en(bcl.in ,r );wf=fo p en (bcl.o u t,w);fo r (i=0 ;i 5 0 ;i+)fs can f(r f,%s”,a);chg(a);fp r in tf(wf,%s n ,a)
4、;)fcl o s e(r f);fcl o s e(wf);)5 1 c 5 1 c 5 1 c 5 1 c 5 1 c j|c 5 1 c 5 1 c x|c|c|c 5 1 cXxTlxS X T X xX Tlz*X j*X T*X T X *lJzx *lJzX X T X X T X X T S *T Xx lXzT s*ixT X*lXxjXx lXzIX x lZxT*题目1 2 (结构体运算题题)已知在文件IN.D AT 中存有1 0 0 个产品销售记录,每个产品销售记录由产品代码dm(字符型4 位),产品名称m e(字符型1 0 位),单价dj (整型),数量s i(整型)
5、,金额j e(长整型)五部分组成。其中:金额=单价*数量计算得出。函数R eadD at()是读取这1 0 0 个销售记录并存入结构数组s el l 中。请编制函数S o r tD atO,其功能要求:按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组s el l 中,最后调用函数W r iteD at()把结果输出到文件0 U T 5.D AT 中。部分源程序存在文件p r o g l.c中。请勿改动主函数m ain ()、读数据函数R eadD at()和输出数据函数W r iteD at()的内容。ttin cl u de ttin cl u
6、 de ttin cl u de ttin cl u de ttin cl u de#defin e MAX 1 0 0typ edef s tr u ct char dm 5 ;/*产品代码*/char m e 1 1 ;/*产品名称*/in t dj ;/*单价*/in t s i;/*数量*/l o n g j e;/*金额*/PR 0;PR O s el l MAX;v o id R eadD at();v o id W r iteD at();v o id S o r tD at()in t i,j;PR O xy;fo r(i=0;i 9 9;i+)fo r(j=i+l;j 0|s
7、 tr em p(s el l i.m e,s el l j .m c)=0&s el l i.j e s el l j .j e)xy=s el l i;s el l i=s el l j ;s el l j =xy;)v o id m ain()memset(sell,0,sizeof(sell);ReadDat();SortDat();WriteDat();)void ReadDat()(FILE*fp;char str80,chll;int i;fp=fopen(,IN.DAT,r);for(i=0;i100;i+)fgets(str,80,fp);memcpy(sei 1 i.dm,
8、str,4);memcpy(selli.me,str+4,10);memcpy(ch,str+14,4);ch4=0;sell i.dj=atoi(ch);memcpy(ch,str+18,5);ch5=0;sell i.sl=atoi(ch);sell i.je=(long)selli.dj*selli.si;)fclose(fp);)void WriteDat()FILE*fp;int i;fp=fopen(,0UT5.DAT,w);for(i=0;i XVX XTX J、jX XTS XTX XIX jX XTX*T*XTX XJX XTX XT*T X XTS XTX TX XJX X
9、TX XTX XTS XTX XTX XJX XVX XTS XTX XT*XTX XTS XT*TS ZTX*7X XTX XT*XTS XTX XTX*7S XTX XTS ZT*1*1*1*1*Jx xtzxr zTs xjx xp*xTx*7*xTx XTXZTS xTx xjs ZTs xjx Ts题目1 3 (结构体运算题)已知在文件IN.D A T中存有1 0 0个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称m e(字符型1 0位),单价dj (整型),数量s i(整型),金额j e(长整型)五部分组成。其中:金额=单价*数量计算得出。函数R eadD a
10、t()是读取这1 0 0个销售记录并存入结构数组s el l中。请编制函数S o r tD at(),其功能要求:按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列,最终排列结果仍存入结构数组s el l中,最后调用函数W r iteD atO把结果输出到文件0 U T 9.D A T中。部分源程序存在文件p r o g l.c中。请勿改动主函数m ain。、读数据函数R eadD at()和输出数据函数W r iteD at()的内容。ttin cl u dettin cl u deftin cl u deftin cl u deftin cl u dettdefin e
11、MAX 1 0 0typ edef s tr u ctchar dm 5 ;/*产品代码*/char ;/*产品名称*/in t dj ;/*单价*/in t s i;/*数量*/l o n g j e;/*金额*/PRO;PRO sell MAX;void ReadDat();void WriteDat();void SortDat()int i,j;PRO xy;for(i=0;i99;i+)for(j=i+l;j0|strcmp(sell i.dm,sell j.dm)=0&selli.jesellj.je)xy=selli;selli=sellj;sellj=xy;)void main
12、()(memset(sell,0,sizeof(sell);ReadDat();SortDat();WriteDat();)void ReadDat()(FILE*fp;char str80,chll;int i;fp=fopen(IN.DAT,r);for(i=0;i100;i+)fgets(str,80,fp);memcpy(sell i.dm,str,4);memcpy(selli.me,str+4,10);m em cp y(ch,s tr+1 4,4);ch 4 =0;s el l i.dj=ato i(ch);m em cp y(ch,s tr+1 8,5);ch 5 =0;s e
13、l l i.s l=ato i(ch);s el l i.j e=(l o n g)s el l i.dj*s el l i.s i;)fcl o s e(fp);)v o id W r iteD at()F ILE *fp;in t i;fp=fo p en(z,0 U T 9.D AT ,w);fo r(i=0;iXTX XT*TX ZTX XT*XV*XjX ZTS XTS XTX X|XTS XT*TX IX 题目1 4 (整数统计排序题)已知数据文件IN.D AT中存有2 0 0个四位数,并已调用读函数r eadD at()把这些数存入数组a中,请考生编制一函数j s V al(),
14、其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以后的五个数且该数是奇数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数en t并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数wr iteD at()把结果e n t以及数组b中符合条件的四位数输出到OU T.D AT文件中。注意:部分源程序存在文件p r o g l.c中。程序中已定义数组:a 2 0 0 ,b 2 0 0 ,已定义变量:en t请勿改动数据文件IN.D A T中的任何数据、主函数m ain。、读函数r eadD at()和写函数wr it eD at()的内容。ftin cl u
15、de ftdefin e MAX 2 0 0in t a MAX,b MAX,en t=0 ;v o id j s V al ()in t i,j,fl ag;fo r(i=0;i MAX-5;i+)fo r(j=i+l;j a j&a i%2)fl ag=l;el s e fl ag=0;br eak;if(fl ag=l)b cn t+=a i;)fo r (i=0;i cn t-l;i+)fo r(j=i+l;j b j )fl ag=b i ;b i=b j ;b j =fl ag;)v o id r eadD at()(in t i;F ILE *fp ;fp =fo p en (i
16、n.dat,r );fo r(i=0 ;i MAX;i+)fs can f(fp,%d,&a i );fcl o s e(fp);)v o id m ain()in t i;r eadD at()j s V al ();p r in tf(满足条件的数=%d n ,en t);fo r(i=0 ;i en t;i+)p r in tf(%d ,b i);p r in tf(n );wr iteD at();)wr iteD at()F ILE *fp ;in t i ;fp =fo p en (o u t.dat,w);fp r in tf(fp,%d n ,en t);fo r(i=0 ;i
17、 en t;i+)fp r in tf(fp,%d n ,b i);fcl o s e(fp);)xlz xtz xlz xtz xlz xl*xL*six vtx xL*xL*1*xL*xlz HL*xlx xL*xL*vtx xL*six*1*xlz xlz xl*xL*xL*xtz xL*xlx xlz xtz*TS XTX XTX XJX XTX XTS xL*XTX jX XTX*T*XTX XJX XTX J、XTS题目1 5 (整数各位数字运算排序题)已知数据文件IN.D AT 中存有2 0 0 个四位数,并已调用读函数r eadD at()把这些数存入数组a 中,请考生编制一函
18、数j s V al(),其功能是:若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数en t并把这些四位数按从小到大的顺序存入数组b 中,最后调用写函数wr iteD at()把结果en t以及数组b 中符合条件的四位数输出到OU T.D AT 文件中。注意:部分源程序存在文件p r o g l.c 中。程序中已定义数组:a 2 0 0 ,b 2 0 0 ,已定义变量:en t请勿改动数据文件IN.D AT 中的任何数据、主函数m ain。、读函数 r eadD at(
19、)和写函数wr iteD at()的内容。ftin cl u de ttdefin e MAX 2 0 0in t a MAX,b MAX,cn t=0;v o id j s V al ()in t i,j;in t q w,bw,s w,g w;fo r (i=0;i MAX;i+)q w=a i/1 0 0 0;bw=a i%1 0 0 0/1 0 0;s w=a i%1 0 0/1 0;g w=a i%1 0;i f(q w=bw)&(bw=s w)&(s w=g w)&(a i%2=0)b cn t+=a i;)fo r (i=0;i cn t-l;i+)fo r(j=i+l;j b
20、j )q w=b i ;b i=b j ;b j =q w;)v o id r eadD at()in t i;F ILE *fp ;fp =fo p en (in.dat,r );fo r (i=0 ;i MAX;i+)fs can f(fp,%d,&a i)fcl o s e(fp);)v o id m ain()(in t i;r eadD at();j s V al ();p r in tf(满足条件的数=%d n ,e n t);fo r(i=0 ;i en t;i+)p r in tf(%d ,b i);p r in tf(,/n,/);wr iteD at 0 ;)wr iteD
21、 at()F ILE *fp ;in t i ;fp =fo p en (o u t.dat,w);fp r in tf(fp,%d n ,en t);fo r(i=0 ;i en t;i+)fp r in tf(fp,%d n ,b i);fcl o s e(fp);)题目1 6 (字符替换题)函数R eadD at()实现从文件IN.D AT 中读取一篇英文文章存入到字符串数组xx中,请编制函数S tr C har JR (),其函数的功能是:以行为单位把字符串中所有字符的AS C II值右移4 位,然后把右移后的字符AS C II值再加上原字符的AS C II值,得到新的字符仍存入原字符
22、串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组X X中,最后调用函数writeD a t()把结果xx输出到文件0UT8.D A T中。原始数据文件存放的格式是:每行的宽度均小于8 0个字符,含标点符号和空格。部分源程序存在文件p ro gl.c 中。请勿改动主函数ma in。、读数据函数Rea dD a t()和输出数据函数writeD a t()的内容。ttinclude ttinclude ttinclude cha r xx 50 8 0;int ma xline=0;/*文章的总行数*/int Rea dD a t(vo id);vo id W riteD a t(vo
23、 id);vo id StrC ha rJ R()int i,j;fo r(i=0;i ma xline;i+)fo r(j=0;j strlen(xxi);j+)xxi j+=(xxi j 4);)vo id ma in()(clrscr();if(Rea dD a t()p rintf(数据文件I N.D A T不能打开!n007);return;)StrC ha rJ R();W riteD a t();)int Rea dD a t(vo id)(F I L E *fp;int i=0;cha r*p;if(fp=fo p en(I N.D A T,r)=N UL L)return 1
24、;while(fgets(xxi,8 0,fp)!=N UL L)p=strchr(xxi,n);if(p)*p=0;i+;)ma xline=i;fclo se(fp);return 0;vo id W riteD a t(vo id)F I L E *fp;int i;clrscr();fp=fo p en(,0UT8.D A T,w);fo r(i=0;i7 xy*、xj、*V*T*T xrx XTX ZTX TX XTX xj、ZTX XT*TX XT%TX ZTX XT*xr*xrx XTX ZTX TX XTX XT*ZTXxlx xlx*1*%1*vlx*lx*lz xfxXT%
25、xTx xTx xp*xTx XT%xj、xTx xT%xTx xT%题目17 (亲朋字符替换题)函数RE A D D A T()实现从文件I N.D A T中读取一篇英文文章存入到字符串数组X X中;请编制函数C H A(),其函数功能是:以行为单位把字符串中的第一个字符的A SC I I值加第二个字符的A SC I I值,得到第一个亲朋字符,第二个字符的A SC I I值加第三个字符的A SC I I值,得到第二个新字符,依此类推一直处理到最后第二个字符,最后一个字符的A S C H值加原第一个字符的A S C H值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最后把
26、已处理的字符串逆转后按行重新存入字符串数组X X中,最后调用函数W RI TE D A T()把结果X X输出到文件0UT9.D A T中.原始数据文件存放的格式是:每行的宽度均小于8 0个字符,含标点符号和空格.注意:部分源程序已给出。请勿改动主函数ma in。、读数据函数Rea dD a t()和输出数据函数writeD a t()的内容。ftinclude ftinclude ftinclude cha r xx 50 8 0;int ma x line=0;/*文章的总行数*/int Rea dD a t(vo id);vo id W riteD a t(vo id);vo id C
27、hA(vo id)int i,j;cha r ch;fo r(i=0;K ma xl ine;i+)ch=xxi 0;fo r(j=0;j strlen(xxi)-l;j+)xxi j+=xxi j+1;xxi strlen(xxi)-l+=ch;strrev(xxi);)vo id ma in()clrscr();if(Rea dD a t()p rintf(数据文件I N.D A T不能打开!n007);return;)C hA();W riteD a t0;)int Rea dD a t(vo id)(F I L E *fp ;int i=0;cha r*p ;if(fp =fo p e
28、n(I N.D A T,r)=N UL L)return 1while(fgets(xxi,8 0,fp)!=N UL L)p =strchr(xxi,n);if(p)*p =0;i+;)ma xline=i ;fclo se(fp);return 0;)vo id W riteD a t(vo id)IF I L E *fp ;int i ;clrscr();fp =fo p en(0UT9.D A T,w);fo r(i=0;i *T*T*XjX XJS XTX JX XT*Xj *XT*XTX Jx XTX TX XT*XTX XJ*T*JX XTX XTX XTX XTX XTX XT
29、X XTX XTX ZT*XIX XTX XJX XTX XT*XTS XT*XJS*T X XTX XTX XTX XTX XTX*A*Jx sl*1 xlzxlz xlx xlx xlz*Az xtx xlz xl*1*TX xp JX XTS XTX XTX X7 XTS XjX XTX XTX XTX XTS*T*XTS XTX XTS题目18函数Rea dD a t()实现从文件E N G.I N 中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryp tC ha r(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数W rit
30、eD a t()把结果xx输出到文件P S10.D A T中。替代关系:f(p)=p*H mo d 256 (p 是数组中某一个字符的A SC H值,f(p)是计算后新字符的A SC H 值),如果原字符的A SC I I 值是偶数或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。部分源程序存在文件p ro gl.c 中。原始数据文件存放的格式是:每行的宽度均小于8 0个字符。请勿改动主函数ma in()读数据函数Rea dD a t()和输出数据函数W riteD a t()的内容。ftinclude ttinclude ftinclude ftinclude
31、 unsigned cha r xx50 8 0;int ma xline=0;/*文章的总行数*/int Rea dD a t(vo id);vo id W riteD a t(vo id);vo id encryp tC ha r()int i,j;fo r(i=0;i ma xline;i+)fo r(j=0;j strlen(xxi);j+)if(xxi j*ll%256 =32|xxi j%2=0)co ntinue;else xxi j=xxi j*ll%256;)vo id ma in()(clrscr();if(Rea dD a t()p rintf(数据文件E N G.I N
32、 不能打开!n007);return;)encryp tC ha r();W riteD a t();)int Rea dD a t(vo id)F I L E *fp;int i=0;unsigned cha r*p;if(fp=fo p en(eng.in,r)=N UL L)return 1;whi1e(fgets(xxi,8 0,fp)!=N UL L)p=strchr(xxi,n);if(p)*p=0;i+;)ma xline=i;fclo se(fp);return 0;)vo id W riteD a t(vo id)(F I L E *fp;int i;fp=fo p en(p
33、 slO.da t,w);fo r(i=0;i ma xline;i+)p rintf(%sn”,xxi);fp rintf(fp,%sn”,xxi);)fclo se(fp);)six xl*xlx vl*1*1*1*1*1*1*1*1*xfx*1*1*1*xT*7 xjx xT%xTx xp*xrs yjx xTx q、Tx xTx xj、xy*q、xrx*7 xjx xT%XTN TX xp*xrs yjx xTx q、xrx xj、XTV XTX*TX*TX XTX XTX zps xj、XT%XTV*1*1*1*lz%tz*1*1*1*1*vizxT%xTx xT%*Ts zT XT
34、s ZT%Tx xT%xjx xTx xTx xT%、题目19 (单词个数统计题)编写一个函数 findStr(cha r*str,cha r*sub str),该函数统 1 个长度为2 的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为a sd a sa sdfg a sd a s zx6 7 a sd mklo,子字符串为a s”,函数返回值是6O函数Rea dW rite()实现从文件in.da t中读取两个字符串,并调用函数findStr(),最后把结果输出到文件o ut.da t中。注意:部分源程序存在文件p ro gl.c 中。请勿改动主函数ma in。和其它函数中的任
35、何内容,仅在函数findStr0 的花括号中填入你编写的若干语句。ttinclude ftinclude ftinclude int findStr(cha r*str,cha r*sub str)int i,j,lenl,len2,cnt=0,fla g;lenl=strlen(str);len2=strlen(sub str);fo r(i=0;i lenl;i+)fo r(j=0;j len2;j+)if(stri+j=sub strj)fla g=l;else fla g=0;b rea k;if(fla g=l)cnt+;return ent;)ma in()cha r str8 1
36、,sub str3;int n;clrscr();p rintf(输入原字符串:)gets(str);p rintf(输入子字符串:)gets(sub str);p uts(str);p uts(sub str);n=findStr(str,sub str);p rintf(n=%dn”,n);Rea dW rite();)Rea dW rite()cha r str8 1,sub str3,ch;int n,len,i =0;F I L E *rf,*wf;rf=fo p en(in.da t,r);wf=fo p en(o ut.da t,w);while(i 25)fgets(str,8
37、 0,r f);fgets(sub str,10,r f);len=strlen(sub str)-1 ;ch=sub strlen;if(ch=n|ch=O xla)sub strlen =0;n=findStr(str,sub str);fp rintf(wf,%dn,n);i+;)fclo se(rf);fclo se(wf);)six xl*xlx vl*1*1*1*1*1*1*1*1*xfx*1*1*1*xT*7 xjx xT%xTx xp*xrs yjx xTx q、xTx xj、xy*q、xrx*7 xjx xT%XTN xp*xrs yjx xTx q、xrx xj、XTV X
38、TX*TX*TX XTX XTX zps xj、XT%XTV*1*1*1*lz%tz*1*1*1*XT*xT%zT XTs xTx xT%XT%XT*xT*题目20(F ib o na cci数列题)编写函数jsV a lue,它的功能是:求 F ib o na cci数列中大于t 的最小的一个数,结果由函数返回。其中F ib o na cci数列F(n)的定义为:F(0)=0,F =1F (n)=F (n-1)+F (n-2)最后调用函数writeD at。读取5 0 个数据t,分别得出结果且把结果输出到文件out.dat中。例如:当 t=1 0 0 0 时,函数值为:1 5 9 7。部分源
39、程序存在文件progl.c 中。请勿改动主函数main()和写函数writeD at()的内容。ttinclude int jsValue(int t)int f0=0,f 1=1,fn;fn=fO+fl;while(fn=t)fO=fl;fl=fn;fn=fO+fl;return fn;)main()(int n;n=1 0 0 0;printf C,n=%d,f=%dn”,n,jsValue(n);writeD at();)writeD at()(F I L E *in,*out;int i,n,s;in=fopen in.dat,r);out=fopen(,out.dat,w);for(i=0;i 5 0;i+)f scanf(in,%d,&n);s=jsValue(n);printf(%dn,s);fprintf(out,%dn,s);)fclose(in);fclose(out);