计算机三级机试C语言一百题.pdf

上传人:奔*** 文档编号:92971322 上传时间:2023-06-18 格式:PDF 页数:148 大小:16.46MB
返回 下载 相关 举报
计算机三级机试C语言一百题.pdf_第1页
第1页 / 共148页
计算机三级机试C语言一百题.pdf_第2页
第2页 / 共148页
点击查看更多>>
资源描述

《计算机三级机试C语言一百题.pdf》由会员分享,可在线阅读,更多相关《计算机三级机试C语言一百题.pdf(148页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1已 知 数 据 文 件 IN1.DAT中 存 有 200个 4位 数,并 已 调 用 读 函 数 readDat()把 这 些 数 存 入 数 组 a中,请 编 制 一 函 数 jsV al(),其 功 能 是:如 果 4位 数 各 位 上 的 数 字 均 是 奇 数,则 统 计 出 满 足 此 条 件 的 个 数 e n t,并 把 这 些 4位 数 按 从 大 到 小 的 顺 序 存 入 数 组 b中。最 后 调 用 函 数 writeDat()把 结 果 ent及 数 组 b中 符 合 条 件 的 4位 数 输 出 到 OUT1.DAT文 件。注 意:部 分 源 程 序 已 给 出。程

2、 序 中 已 定 义 数 组:a200,b 2 0 0,已 定 义 变 量:ent。请 勿 改 动 主 函 数 main。、读 函 赤 eadDat()和 写 函 数 whteDat()的 内 容。试 题 程 序:#include#define MAX 200int aMAXLb MAX,cnt=O;void writeDat();void jsVal()int i,j;int a1,a2,a3,a4;int temp;for(i=0;i200;i+)(a4=ai/1000;a3=ai%1000/100;a2=ai%100/10;a1=ai%10;if(a4%2!=0&a3%2!=0&a2%2

3、!=0&a1%2!=0)(bcnt=ai;cnt+;)for(i=0;icnt-1;i+)for(j=i+1;jcnt;j+)if(bibj)(temp=bi;bi=bj;bj=temp;void readDat()int i;FILE*fp;fp=fopen(IN1.DAT,r);for(i=0;iMAX;i+)fscanf(fp,%d,&ai);fclose(fp);void main()int i;readDat();jsVal();满 足 条 件 的 数=%小 优 5。;:or(i=0;icnt;i+)printf(%dnbi);printfCn);writeDat();void wr

4、iteDat()(FILE*fp;int i;fp=fopen(out1.dat,w);fprintf(fp?%dn,cnt);for(i=0;icnt;i+)fprintf(fp,%dn,bi);fclose(fp);2已 知 IN2.DAT中 存 有 200个 4位 数,并 已 调 用 读 函 数 readDat。把 这 些 数 存 入 数 组 a中,请 编 制 一 函 数 js V a l(),其 功 能 是:依 次 从 数 组 a中 取 出 一 个 数,如 果 该 4位 数 连 续 大 于 该 4位 数 以 后 的 5个 数 且 该 数 是 奇 数,则 统 计 出 满 足 此 条 件

5、的 数 的 个 数 ent,并 把 这 些 4位 数 按 从 小 到 大 的 顺 序 存 入 数 组 b中,最 后 调 用 写 函 数 w riteD at()把 结 果 ent及 数 组 b中 符 合 条 件 的 4位 数 输 出 到 OUT2.DAT文 件 中。注 意:部 分 源 程 序 已 给 出。程 序 中 已 定 义 数 组:a200,b 2 0 0,已 定 义 变 量:ent。请 勿 改 动 主 函 数 main。、读 函 薪 readDat()和 写 函 数 writeDat。的 内 容。试 题 程 序:include#define MAX 200int a MAX,bMAX,e

6、nt=0;void writeDat();void jsVal().int i,j;int temp;for(i=0;iMAX-5;i+)if(ai%2!=0)for(j=i+1;j=i+5;j+)(if(aiaj)break;else if(j=i+5)bcnt=ai;cnt+;)for(i=0;icnt-1;i+)for(j=i+1;jbU)(temp=bi;bi=bU;bj=temp;bid readDat()(int i;FILE*fp;fp=fopen(IN2.DAT,r);for(i=0;i MAX;i+)fscanf(fp,%d,&ai);fclose(fp);)void mai

7、n()(int i;readDat();jsVal();printf(满 足 条 件 的 数=%dn,ent);for(i=0;i ent;i+)printf(%d,bi);printf(n);writeDat();)void writeDat()(FILE*fp;int i;fp=fopen(OUT2.DAT,w);fprintf(fp,%dn,ent);for(i=0;i ent;i+)fprintf(fp,%dn,bi);fclose(fp);)3已 知 在 文 件 IN3.DAT中 存 有 100个 产 品 销 售 记 录,每 个 产 品 销 售 记 录 由 产 品 代 码 dm(字

8、符 型 4位)、产 品 名 称 me(字 符 型 10位)、单 价 dj(整 型)、数 量 si(整 型)、金 额 je(长 整 型)几 部 分 组 成。其 中:金 额=单 价 x数 量。函 数 ReadDat。的 功 能 是 读 取 这 100个 销 售 记 录 并 存 入 结 构 数 组 sell中。请 编 制 函 数 SortDat。,其 功 能 要 求:按 产 品 名 称 从 小 到 大 进 行 排 列,若 产 品 名 称 相 同,则 按 金 额 从 小 到 大 进 行 排 列,最终 排 列 结 果 仍 存 入 结 构 数 组 sell中,最 后 调 用 函 数 WriteDat()把

9、 结 果 输 出 到 文 件 OUT3.DAT 中。注 意:部 分 源 程 序 已 给 出。请 勿 改 动 主 函 数 main。、读 函 数 ReadDat。和 写 函 数 WriteDat。的 内 容。试 题 程 序:#include#include#include#include#define MAX 100typedef structchar dm5;char mc11 1;int di;int si;long je;PRO;PRO sell MAX;void ReaaDat();void WriteDatQ;/*产 品 代 眄*1I*产 品 茗 称*1I*单 价*1I*数 量*1I*

10、金 额*/void SortDat()int i,j;PRO temp;for(i=0;i99;i+)for(j=i+1;j0)(temp=selli;sell i=sellj;sellj=temp;)else if(strcmp(selli.mc,sellj.mc)=O)if(selli.jesellj.je)(temp=selli;selli=sellj;sellj=temp;)void main()memset(sell,0,sizeof(sell);ReadDat();SortDat();WriteDat();void ReadDat()(FILE*fp;char str80,ch11

11、;inti;fp=fopen(IN3.DAT,r);for(i=0;i 100;i+)(fgets(str,80,1memcpy(sellimemcpy(sell!fp);.,i.dm,str,4);memcby(selli.me,str+4,10);str+14,4);ch4=0;-s5(ch);_memcpy(ch,str+18,5);ch5=0;selli.sl=atoi(ch);sellij.je=(long)selli.dj*selli.sl;memcpyiselli.dj=:close(fp);vofp;po0UT3.DAT,w;100;i+)fprintf(fp,%s%s%4d%

12、5d%10ldn,selli.dm,selli.mc,selli.dj,selli.sl,selli.je);:close(fp);函 数 ReadDat()的 功 能 是 实 现 从 文 件 ENG4.IN中 读 取 一 篇 英 文 文 章,存 入 到 字 符 串 数 组 xx中。请 编 的 函 数 encryptChar(),按 给 定 的 替 代 关 系 对 数 组 xx中 的 所 有 字 符 进 行 替 代,结 果 仍 存 入 数 组 xx对 应 的 位 置 上,最 后 调 用 函 数 WriteDat()把 结 果 xx输 出 到 文 件 PS4.DAT中。替 代 关 系:f(p)=

13、p*11 mod 256(p是 数 组 xx中 某 一 个 字 符 的 ASCII值,f(p)是 计 算 后 新 字 符 的 ASCII值),如 果 计 算 后 f(p)的 值 小 于 等 于 32或 大 于 1 3 0,则 该 字 符 不 变,否 则 将 f(p)所 对 应 的 字 符 进 行 替 代。注 意:部 分 源 程 序 已 给 出。原 始 数 据 文 件 存 放 的 格 式 是:每 行 的 宽 度 均 小 于 80个 字 符。请 勿 改 动 主 函 数 main。、读 函 数 ReadDat。和 写 函 数 WriteDat()的 内 容。试 题 程 序:#include#incl

14、ude include#include unsigned char xx50801;int maxline=0;/*文 簟 的 总 行 数 7int ReadDat(void);void WriteDat(void);void encryptChar()int i,j;int str;char ch;for(i=0;imaxline;i+)(str=strlen(xxi);for(j=0;jstr;j+)(ch=xxij*11%256;if(ch130)continue;elsexxij=ch;)void main()SDLucaCDemeadys(Rs讦.printf(数 据 文 件 ENG

15、4.IN不 能 打 开!n007);return;encryptChar();WriteDat();int ReadDat(void)FILE*fp;int i=0;unsigned char*p;if(fp=fopen(ENG4.IN,r)=NULL)return 1;while(fgets(xxi,80,fp)!=NULL)=)strchrxxi,n);i+;maxline=i;fclose(fp);return 0;void WriteDat(void)fppeo;E*fo=LEti;=r(i日.Ii nw+)J+printf(%sn,xxil);fprintf(fp,%sn,xxi);

16、:close(fp);函 数 ReadDat()的 功 能 是 实 现 从 文 件 IN5.DAT中 读 取 一 篇 英 文 文 章 存 入 到 字 符 串 数 组 xx中。请 编 制 函 数 ConvertCharA(),该 函 数 的 功 能 是:以 行 为 单 位 把 字 符 串 中 的 所 有 小 写 字 母 改 写 成 该 字 母 的 下 一 个 字 母,如 果 是 字 母 z,则 改 写 成 字 母 a。大 写 字 母 仍 为 大 写 字 母,小 写 字 母 仍 为 小 写 字 母,其 他 字 符 不 变。把 已 处 理 的 字 符 串 仍 按 行 重 新 存 入 字 符 串 数

17、组 xx中,最 后 调 用 函 数 WriteDat。把 结 果 xx输 出 到 文 件 OUT5.DAT 中。例 如,原 文:Adb.Bcdzaabck.LLhj结 果:Aec.Bdeabbcdl.LLik原 始 数 据 文 件 存 放 的 格 式 是:每 行 的 宽 度 均 小 于 80个 字 符,含 标 点 符 号 和 空 格。注 意:部 分 源 程 序 已 给 出。请 勿 改 动 主 函 数 main。、读 函 数 ReadDat。和 写 函 数 WriteDat。的 内 容。试 题 程 序:#include#include#include char xx50801;int maxli

18、ne=0;/*文 章 的 总 行 数*/int ReadDat(void);void WriteDat(void);void ConvertCharA(void)int i,j;int str;for(i=0;imaxline;i+)(str=strlen(xxi);for(j=0;j=a&xxij=z)if(xxiU=z)xxiU=a;elsexxilU+=1;void main()(systemCCLS);if(ReadDat()(printf(数 据 文 件 IN5.DAT 不 能 打 开!n007);return;ConvertCharA();WriteDat();int ReadDa

19、t(void)(FILE*fp;int i=0;char*pif(fp=fopen(IN5.DAT,r)while(fgets(xxi,80,fp)!=NU=)strchrxxi,n);i+;).maxhne=i;fclose(fp);return 0;=NULL)return 1;LL)void WriteDat(void)5HxUTaxs 仇 mZdLvcnifpwpoLEti;yste=fr(i=日.Insyfpfo“,+T+A.;IDeknprintf(%sn,xxi);fprintf(fp,%sn,xxi);lclose(fp);)6在 文 件 IN6.DAT中 有 200个 正 整

20、 数,且 每 个 数 均 在 1000至 9999之 间。函 数 readDat()的 功 能 是 读 取 这 200个 数 存 放 到 数 组 aa中。请 编 制 函 数 js S o rt(),该 函 数 的 功 能 是:要 求 按 每 个 数 的 后 3位 的 大 小 进 行 降 序 排 列,将 排 序 后 的 前 10个 数 存 入 数 组 b中,如 果 数 组 b中 出 现 后 3位 相 等 的 数,则 对 这 些 数 按 原 始 4位 数 据 进 行 升 序 排 列。最 后 调 用 函 数 whteDat()把 结 果 bb输 出 到 文 件 OUT6.DAT中。例 如:处 理 前

21、 9012 5099 6012 7025 8088处 理 后 5099 8088 7025 6012 9012注 意:部 分 源 程 序 已 给 出。请 勿 改 动 主 函 数 main。、读 函 数 readDat()和 写 函 数 whteDat()的 内 容。试 题 程 序:#include#include#include int aa200,bb10;void readDatQ;void writeDatQ;void jsSort()int i,j;int temp;for(i=0;i199;i+)for(j=i+1;j200;j+)(if(aai%1000aaj)(temp=aai;

22、aai=aaj;aaj=temp;for(i=0;i10;i+)bbi=aai;void main()readDat();jsSort();writeDat();void readDat()1 FILE*in;int i;in=fopen(IN6.DAT,r);for(i=0;i 200;i+)fscanf(in,%d,&aai);fclose(in);void writeDat()FILE*out;int i;out=fopenCOUT6.DAT,w);systemrCLS);for(i=0;i 10;i+)printf(i=%d,%dn,i+1,bbi);fprintr(out,%dn,b

23、bi);)fclose(out);7函 数 ReadDat()的 功 能 是 实 现 从 文 件 IN7.DAT中 读 取 一 篇 英 文 文 章 存 入 到 字 符 串 数 组 xx中。请 编 制 函 数 SortCharD(),该 函 数 的 功 能 是:以 行 为 单 位 对 字 符 按 从 大 到 小 的 顺 序 进 行 排 序,排 序 后 的 结 果 仍 按 行 重 新 存 入 字 符 串 数 组 xx中,最 后 调 用 函 数 W riteDat()把 结 果 xx输 出 到 文 件 OUT7.DAT中。例 如,原 文:dAe,BfCCCbbAA结 果:fedCBA,bbCCAA原

24、 始 数 据 文 件 存 放 的 格 式 是:每 行 的 宽 度 均 小 于 80个 字 符,含 标 点 符 号 和 空 格。注 意:部 分 源 程 序 已 给 出。请 勿 改 动 主 函 数 m ain()、读 函 数 ReadDat()和 写 函 数 W riteDat()的 内 容。试 题 程 序:#include#include#include char xx5080;int maxline=0;int ReadDat(void);void WriteDat(void);void SortCharD()int i,j,k;int str;char temp;for(i=0;imaxli

25、ne;i+)(str=strlen(xxi);for(j=0;jstr-1;j+)for(k=j+1;kstr;k+)if(xxijxxik)(temp=xxij;xxij=xxik;xxik=temp;void main()(system(CLS);if(ReadDat()phntf(数 据 文 件 IN7.DAT不 能 打 开!n007);return;ortCharD();WriteDat();int ReadDat(void)(FILE*fp;int i=0;char*n*if(fp=fopen(IN7.DAT,r)=NULL)return 1;while(fgets(xxi,80,f

26、p)!=NULL)p=strchr(xxi,n,);if(p)*p=0;i+;maxline=i;fclose(fp);return 0;void WriteDat()(FILE*fp;int i;system(CLS);fp=fopen(OUT7.DAT,w);for(i=0;imaxline;i+)(printf(%sn,xxi);fprintf(fp,%sn;xxi);lclose(fp);8对 10个 候 选 人 进 行 选 举,现 有 一 个 100条 记 录 的 选 票 数 据 文 件 IN 8.D AT,其 数 据 存 放 的 格 式 是 每 条 记 录 的 长 度 均 为 10

27、位,第 一 位 表 示 第 一 个 人 的 选 中 情 况,第 二 位 表 示 第 二 个 人 的 选 中 情 况,依 次 类 推。每 一 位 内 容 均 为 字 符 0或 1,1表 示 此 人 被 选 中,0表 示 此 人 未 被 选 中,若 一 张 选 票 选 中 人 数 小 于 等 于 5个 人 时 则 被 认 为 是 无 效 的 选 票。给 定 函 数 ReadDat()的 功 能 是 把 选 票 数 据 读 入 到 字 符 串 数 组 xx中。请 编 制 函 数 CountRs()来 统 计 每 个 人 的 选 票 数 并 把 得 票 数 依 次 存 入 yyO到 yy9中,最 后

28、调 用 函 数 WriteDat。把 结 果 yy输 出 到 文 件 OUT8.DAT中。注 意:部 分 源 程 序 已 给 出。请 勿 改 动 主 函 数 main。、读 函 数 ReadDat。和 写 函 数 WriteDat。的 内 容。试 题 程 序:#include#include charxx10011;int yy10;int ReadDat(void);void WriteDat(void);void CountRs(void)int i,j;int ent;for(i=0;i10;i+)yyi=o;for(i=0;i100;i+)(cnt=0;for(j=0;j5)(for(

29、j=0;j10;j+)if(xxiU=1)yyj+;void main()int i;for(i=0;i10;i+)yyi=0;if(ReadDat()printf(选 票 数 据 文 件 IN8.DAT不 能 打 开!007n);return;LountRs();WriteDatQ;int ReadDat(void)(FILE*fp;int i;chartt13;if(fp=fopen(IN8.DAT,r)=NULL)return 1;for(i=0;i 100;i+)if(fgets(tt,13,fp)=NULL)return 1;memcpy(xxi,tt,10);lclose(fp);

30、return 0;void WnteDat(void)fppeo;E*fo=LEti;=r(i日.Infpfo.0UT8.DAT,w;10;i+)fprintfffp,%dn,yyi);printf9第 d个 人 随 嬲 数=%dn,i+1,yyi);fclose(fp);)9下 列 程 序 的 功 能 是:利 用 以 下 所 示 的 简 单 迭 代 方 法 求 方 程:cos(x)-x=0的 一 个 实 根。Xn+1=COS(Xn)迭 代 步 骤 如 下:(1)取 x1初 值 为 0.0。(2)x 0=x 1,把 x1的 值 赋 给 x0。(3)x1=cos(x0),求 出 一 个 新 的

31、x1。(4)若 x0-x1的 绝 对 值 小 于 0.000001,执 行 步 骤(5),否 则 执 行 步 骤(2)。(5)所 求 x1就 是 方 程 cos(x卜 x=0的 一 个 实 根,作 为 函 数 值 返 回。请 编 写 函 数 countvalue()实 现 程 序 要 求,最 后 调 用 函 数 wiiteDAT()把 结 果 输 出 到 文 件 out9.dat中。注 意:部 分 源 程 序 已 给 出。请 勿 改 动 主 函 数 main。和 写 函 数 whteDAT()的 内 容。试 题 程 序:include#include include void writeDAT

32、();float countValue()float x0,x1=0.0;while(1)(x0=x1;x1=cos(x0);if(fabs(x0-x1)1 e-6)break;return x1;)void m ain()(system(CLS);a$tR=%fn,countValue();%An,cos(countValue()-countValue();A T();void writeDAT()(FILE*wf;wf=fopen(out9.dat,w);fprinttwf/%fn,countValue();fclose(wf);)10请 编 写 函 数 void countValue(i

33、nt*a,int*n),它 的 功 能 是:求 出 1到 1000之 内 能 被 7或 11整 除 但 不 能 同 时 被 7和 11整 除 的 所 有 整 数 并 存 放 在 数 组 a中,并 通 过 n返 回 这 些 数 的 个 数。注 意:部 分 源 程 序 已 给 出。请 勿 改 动 主 函 数 main。和 写 函 数 writeDAT()的 内 容。试 题 程 序:#include#include void writeDAT();void countValue(int*a,int*n)int i;*n=0;for(i=1;i=1000;i+)if(i%7=0&i%11!=0)|(i

34、%7!=0&i%11=0)*a=i;*n=*n+1;a+;)void main()(int aa1000,n,k;system(CLS);countValue(aa,&n);for(k=0;kn;k+)if(k+1)%10=0)(printf(%5d,aak);printf(n);else,printf(%5d,aak);writeDAT();)void writeDAT()int aa1000,n,k;FILE*fp;fp=fopen(out10.dat,w);countValue(aa,&n);for(k=0;kn;k+)if(k+1)%10=0)(fprintf(fp,%5d,aak);

35、fprintf(fp,n);else fprintf(fp,%5d,aak);fclose(fp);)11已 知 在 文 件 IN11.DAT中 存 有 若 干 个(个 数 200)4位 数 字 的 正 整 数,函 数 ReadDat()的 功 能 是 读 取 这 若 干 个 正 整 数 并 存 入 数 组 xx中。请 编 制 函 数 CalValue(),其 功 能 要 求:(1)求 出 该 文 件 中 共 有 多 少 个 正 整 数 totNum;(2)求 这 些 数 右 移 1位 后,产 生 的 新 数 是 偶 数 的 数 的 个 数 to tC n t,以 及 满 足 此 条 件 的

36、这 些 数(右 移 前 的 值)的 算 术 平 均 值 to tP jz,最 后 调 用 函 数 WriteDat()把 所 求 的 结 果 输 出 到 文 件 OUT11.DAT 中。注 意:部 分 源 程 序 已 给 出。请 勿 改 动 主 函 数 main。、读 函 数 ReadDat。和 写 函 数 WriteDat。的 内 容。试 题 程 序:include include#define MAXNUM 200int xxMAXNUMl;int totNum=0;A 文 件 IN11.DAT中 共 有 多 少 个 正 整 数*/int totCnt=0;/*符 备 条 件 的 正 整

37、数 的 个 数*/double totPjz=0.0;/*值*/int ReadDat(void);void WriteDat(void);void CalValue(void)int i;int data;for(i=0;i0)(totNum+;data=xxi1;if(data%2=0)(totCnt+;totPjz+=xxi;totPjz/=totCnt;mXNUM1SMADXo uvci=atem耨/SKRsyfow.+printf(数 据 文 件 IN11.DAT 不 能 打 开!007n);return;CalValueQ;printf(文 柞 IN11.DAT中 共 有 正 整

38、数=%d 个 n,totNum);phntf符 合 条 件 的 正 整 数 的 个 数=%d个 n,totCnt);printf平 均 值=%.2lfn,totPjz);乎 WriteDat();int ReadDat(void)(FILE*fp;int i=0;if(fp=fopen(IN11.DAT,r)=NULL)return 1;while(!feof(fp)fscanf(fp,%d,&xxi+);lclose(fp);return 0;)void WriteDat(void)FILE*fp;fp=fopen(OUT11.DAT,w);fprintf(fp,%dn%dn%.2lfn,t

39、otNum,totCnt,totPjz);fclose(fp);)12已 知 数 据 文 件 IN12.DAT中 存 有 300个 4位 数,并 已 调 用 读 函 数 readDat。把 这 些 数 存 入 数 组 a中。请 编 制 函 数 jsV a lu e(),其 功 能 是:求 出 千 位 数 上 的 数 加 个 位 数 上 的 数 等 于 百 位 数 上 的 数 加 十 位 数 上 的 数 的 个 数 e n t,再 把 所 有 满 足 此 条 件 的 4位 数 依 次 存 入 数 组 b中,然 后 对 数 组 b的 4位 数 按 从 小 到 大 的 顺 序 进 行 排 序,最 后

40、 调 用 写 函 数 writeDat。把 数 组 b中 的 数 输 出 到 OUT12.DAT文 件 中。例 如:6712,6+2=7+1,则 该 数 满 足 条 件,存 入 数 组 b中,且 个 数 cnt=cnt+1 08129,8+9 R 1+2,则 该 数 不 满 足 条 件,忽 略。注 意:部 分 源 程 序 已 给 出。程 序 中 已 定 义 数 组:a300,b 3 0 0,已 定 义 变 量:ent。请 勿 改 动 主 函 数 main。、读 函 薪 readDat()和 写 函 数 writeDat。的 内 容。试 题 程 序:include int a300,b300,c

41、nt=O;void readDatQ;void writeDat();void jsValue()int i,j;int a1,a2,a3,a4;int temp;for(i=0;i300;i+)(a4=ai/1000;a3=ai%1000/100;a2=ai%100/10;a1=ai%10;if(a4+a1=a3+a2)(bcnt=ai;cnt+;)for(i=0;icnt-1;i+)for(j=i+1;jbj)(temp=bi;bi=bj;bj=temp;)void main()int i;readDat();jsValue();writeDati);printfCcnt=%dn,ent)

42、;for(i=0;icnt;i+)printf(b%d=%dn,i,bi);void readDat()(FILE*fp;int i;fp=fopen(IN12.DAT,r);for(i=0;i300;i+)fscanf(fp,%d,&ai);fclose(fp);void writeDat()(FILE*fp;int i;fp=fopenCOUT12.DAT,w);fprintf(fp,%dn,cnt);for(i=0;icnt;i+)fprintf(fp,%d,n,bi);fclose(fp);)已 知 数 据 文 件 IN13.DAT中 存 有 200个 4位 数,并 已 调 用 读 函

43、 数 readDat()把 这 些 数 存 入 数 组 a中,请 编 制 一 函 数 js V a l(),其 功 能 是:如 果 4位 数 各 位 上 的 数 字 均 是 0或 2或 4或 6或 8,则 统 计 出 满 足 此 条 件 的 数 的 个 数 e n t,并 把 这 些 4位 数 按 从 大 到 小 的 顺 序 存 入 数 组 b中,最 后 调 用 写 函 数 writeDat。把 结 果 ent及 数 组 b中 符 合 条 件 的 4位 数 输 出 到 OUT13.DAT文 件 中。注 意:部 分 源 程 序 已 给 出。程 序 中 已 定 义 数 组:a200,b 2 0 0

44、,已 定 义 变 量:ent。请 勿 改 动 主 函 数 main。、读 函 薪 readDat()和 写 函 数 writeDat。的 内 容。试 题 程 序:#include#define MAX 200int aMAXL bMAX,ent=0;void writeDat();void jsVal()int i,j;int a1,a2,a3,a4;int temp;for(i=0;i200;i+)(a4=ai/1000;a3=ai%1000/100;a2=ai%100/10;a1=ai%10;if(a4%2=0&a3%2=0&a2%2=0&a1%2=0)(bcnt=ai;cnt+;)for

45、(i=0;icnt-1;i+)for(j=i+1;jcnt;j+)if(bibj)temp=bi;)bi=bj;bj=temp;)void readDat()int i;FILE*fp;fp=fopen(IN13.DAT,r);for(i=0;i MAX;i+)fscanf(fp,%d,&ai);fclose(fp);void main()(int i;readDat();品 湍“满 足 条 件 的 数=%dn,ent);for(i=0;i ent;i+)printf(%d,bi);printfpn);乎 writeDat();void writeDat()FILE*fp;int i;fp=f

46、open(OUT13.DAT,w);fprintf(fp,%dn,ent);for(i=0;i ent;i+)fprintf(fp,%dn,bi);fclose(fp);)14已 知 数 据 文 件 IN14.DAT中 存 有 300个 4位 数,并 已 调 用 读 函 数 readDat。把 这 些 数 存 入 数 组 a中,请 编 制 一 函 数 jsV a lu e(),其 功 能 是:求 出 千 位 数 上 的 数 加 百 位 数 上 的 数 等 于 十 位 数 上 的 数 加 个 位 数 上 的 数 的 个 数 e n t,再 把 所 有 满 足 此 条 件 的 4位 数 依 次 存

47、 入 数 组 b中,然 后 对 数 组 b的 4位 数 从 大 到 小 进 行 排 序,最 后 调 用 写 函 数 writeDat()把 数 组 b中 的 数 输 出 到 OUT14.DAT文 件。例 如:7153,7+1=5+3,则 该 数 满 足 条 件,存 入 数 组 b中,且 个 数 cnt=cnt+1。8129,8+1#2+9,则 该 数 不 满 足 条 件,忽 略。注 意:部 分 源 程 序 已 给 出。程 序 中 已 定 义 数 组:a300,b 3 0 0,已 定 义 变 量:ent。请 勿 改 动 主 函 数 main。、原 函 赤 eadDat()和 写 函 数 writ

48、eDat。的 内 容。试 题 程 序:#include int a3001,b300,cnt=O;void readDatQ;void writeDatf);void jsValue()int i,j;int a1,a2,a3,a4;int temp;for(i=0;i300;i+)(a4=ai/1000;a3=ai%1000/100;a2=ai%100/10;a1=ai%10;if(a4+a3=a2+a1)(bcnt=ai;cnt+;)for(i=0;icnt-1;i+)for(j=i+1;jcnt;j+)if(bibj)(temp=bi;bi=bj;bj=temp;)void main()

49、int i;readDat();jsValue();writeDati);printf(cn(=%dn,ent);for(i=0;i ent;i+)乎 printf(b%d=%dn,i,bi);void readDat()FILE*fp;int i;fp=fopen(IN14.DAT,r);for(i=0;i 300;i+)fscanf(fp,%d,&ai);fclose(fp);void writeDat()(FILE*fp;int i;fp=fopen(OUT14.DAT,w);fprintf(fp,%dn,cnt);for(i=0;i ent;i+)fprintf(fp,%d,n,bi)

50、;fclose(fp);)15已 知 数 据 文 件 in15.dat中 存 有 200个 4位 数,并 已 调 用 读 函 数 readDat()把 这 些 数 存 入 数 组 a中,请 编 制 一 函 数 jsV al(),其 功 能 是:若 一 个 4位 数 的 千 位 数 字 上 的 值 小 于 等 于 百 位 数 字 上 的 值,百 位 数 字 上 的 值 小 于 等 于 十 位 数 字 上 的 值,以 及 十 位 数 字 上 的 值 小 于 等 于 个 位 数 字 上 的 值,并 且 此 4位 数 是 偶 数,则 统 计 出 满 足 此 条 件 的 数 的 个 数 ent并 把 这

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁