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





《计算机三级机试C语言一百题.pdf》由会员分享,可在线阅读,更多相关《计算机三级机试C语言一百题.pdf(148页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 三级 语言 一百

限制150内