计算机二级C语言上机题库2.pdf
《计算机二级C语言上机题库2.pdf》由会员分享,可在线阅读,更多相关《计算机二级C语言上机题库2.pdf(159页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 01套:给 定 程 序 中,函 数 fun的 功 能 是:将 形 参 n所 指 变 量 中,各 位 上 为 偶 数 的 数 去 除,剩 余 的 数 按 原 来 从 高 位 到 低 位 的 顺 序 组 成 一 个 新 的 数,并 通 过 形 参 指 针 n传 回 所 指 变 量。例 如,输 入 一 个 数:2 7 6 3 8 4 9 6,新 的 数:为 739。请 在 程 序 的 下 划 线 处 填 入 正 确 的 内 容 并 把 下 划 线 删 除,使 程 序 得 出 正 确 的 结 果。注 意:源 程 序 存 放 在 考 生 文 件 夹 下 的 B L A N K 1.C 中。不 得 增
2、 行 或 删 行,也 不 得 更 改 程 序 的 结 构!给 定 源 程 序:#include void fun(unsigned long*n)unsigned long x=0,i;int t;i=l;while(*n)t=*n%1;if(t%2!=_ 2 _)x=x+t*i;i=i*10;*n=*n/10;*n=_ 3_;)main()unsigned long n=-l;while(n99999999lln0)printf(MPlease input()nl()OOOOO(X):“);scanf(kT,&n);fun(&n);printf(nnThe result is:%ldnM,n
3、);)解 题 思 路:第 一 处:t是 通 过 取 模 的 方 式 来 得 到*n的 个 位 数 字,所 以 应 填:10o第 二 处:判 断 是 否 是 奇 数,所 以 应 填:0o第 三 处:最 后 通 形 参 n来 返 回 新 数 X,所 以 应 填:Xo给 定 程 序 M O D I 1.C中 函 数 f u n 的 功 能 是:计 算 n!。例 如,给 n输 入 5,则 输 出 120.000000。请 改 正 程 序 中 的 错 误,使 程 序 能 输 出 正 确 的 结 果。注 意:不 要 改 动 main函 数,不 得 增 行 或 删 行,也 不 得 更 改 程 序 的 结 构
4、!给 定 源 程 序:#include double fun(int n)double result=1.0;ifn=Oreturn 1.0;while(nl&n 170)result*=n-return result;)main()int n;printf(Input N:H);scanf(%d,&n);printf(nn%d!=%lfnnM,n,fun(n);)解 题 思 路:第 一 处:条 件 语 句 书 写 格 式 错 误,应 改 为:if(n=O)。第 二 处:语 句 后 缺 少 分 号。*请 编 写 一 个 函 数 f u n,它 的 功 能 是:将 一 个 数 字 字 符 串 转
5、 换 为 一 个 整 数(不 得 调 用 C 语 言 提 供 的 将 字 符 串 转 换 为 整 数 的 函 数)。例 如,若 输 入 字 符 串-1234”,则 函 数 把 它 转 换 为 整 数 值-1234。函 数 fun中 给 出 的 语 句 仅 供 参 考。注 意:部 分 源 程 序 存 在 文 件 P R O G 1.C文 件 中。请 勿 改 动 主 函 数 main和 其 它 函 数 中 的 任 何 内 容,仅 在 函 数 fun的 花 括 号 中 填 入 你 编 写 的 若 干 语 句。给 定 源 程 序:#include#include long fun(char*p)int
6、i,len,t;/*len为 串 长,t为 正 负 标 识*/long x=0;len=strlen(p);if(P=-)t=-l;len-;p+;else t=l;/*以 下 完 成 数 字 字 符 串 转 换 为 一 个 数 字*/return x*t;)main。/*主 函 数*/char s6;long n;printf(nEnter a string:nH);gets(s);n=fun(s);printf(%ldn”,n);NONO();)NONO()/*本 函 数 用 于 打 开 文 件,输 入 数 据,调 用 函 数,输 出 数 据,关 闭 文 件。*/FILE*fp,*wf;i
7、nt i;char s20;long n;fp=fopen(nc:testin.dat,r);wf=fopen(,c:testout.dat,,w);for(i=0;i 10;i+)fscanf(fp,u%sn,s);n=fun(s);fprintf(wf,H%ldn,n);)fclose(fp);fclose(wf);)解 题 思 路:本 题 是 将 一 个 数 字 字 符 串 转 换 为 一 个 整 数。参 考 答 案:#include#include long fun(char*p)(int i,len,t;/*len为 串 长,t为 正 负 标 识*/long x=0;len=strl
8、en(p);if(pO=-1)t=-l;len-;p+;else t=l;/*以 下 完 成 数 字 字 符 串 转 换 为 一 个 数 字*/while(*p)x=x*1048+(*p+);return x*t;)main。/*主 函 数*/char s6;long n;printfCnter a stringAn);gets(s);n=fun(s);printf(,%ldn,n);NONO();)NONO()/*本 函 数 用 于 打 开 文 件,输 入 数 据,调 用 函 数,输 出 数 据,关 闭 文 件。*1FILE*fp,*wf;int i;char s20;long n;fp=f
9、open(,c:testin.dat,rH);wf=fopen(c:testoul.dat Jw);for(i=0;i 10;i+)fscanf(fp,u%sM,s);n=fun(s);fprintf(wf,%ldnM,n);)fclose(fp);fclose(wf);)注 意:由 于 NONO()这 个 函 数 是 改 卷 人 用 的,与 考 生 没 有 什 么 关 系,故 下 面 从 第 2套 试 题 开 始 均 省 略 NONO()第 02套:给 定 程 序 中,函 数 fun的 功 能 是 将 形 参 给 定 的 字 符 串、整 数、浮 点 数 写 到 文 本 文 件 中,再 用 字
10、 符 方 式 从 此 文 本 文 件 中 逐 个 读 入 并 显 示 在 终 端 屏 幕 上。请 在 程 序 的 下 划 线 处 填 入 正 确 的 内 容 并 把 下 划 线 删 除,使 程 序 得 出 正 确 的 结 果。注 意:源 程 序 存 放 在 考 生 文 件 夹 下 的 BLANK1.C中。不 得 增 行 或 删 行,也 不 得 更 改 程 序 的 结 构!给 定 源 程 序:#include void fun(char*s,int a,double f)-1-fp;char ch;fp=fopenCYilel.txt1,w);fprintf(fp,%s%d%fn,s,a,f);
11、fclose(fp);fp=fopen(”fHel.txt”,V);printf(HnThe result:nnH);ch=fgetc(fp);while(!feof(_ 2_)putchar(_ 3_);ch=fgetc(fp);putchar(n);fclose(fp);main()char a10=Hen。!”;int b=12345;double c=98.76;fun(a,b,c);)解 题 思 路:本 题 是 考 察 先 把 给 定 的 数 据 写 入 到 文 本 文 件 中,再 从 该 文 件 读 出 并 显 示 在 屏 幕 上。第 一 处:定 义 文 本 文 件 类 型 变 量
12、,所 以 应 填:FILE*o第 二 处:判 断 文 件 是 否 结 束,所 以 应 填:fp。第 三 处:显 示 读 出 的 字 符,所 以 应 填:ch。*给 定 程 序 MODI 1.C中 函 数 fun的 功 能 是:依 次 取 出 字 符 串 中 所 有 数 字 字 符,形 成 新 的 字 符 串,并 取 代 原 字 符 串。请 改 正 函 数 fun中 指 定 部 位 的 错 误,使 它 能 得 出 正 确 的 结 果。注 意:不 要 改 动 main函 数,不 得 增 行 或 删 行,也 不 得 更 改 程 序 的 结 构!给 定 源 程 序:#include void fun(
13、char*s)int i,j;for(i=O,j=O;si!=W;i+)if(si=0&si=9)sj=si;sj=O;1main()char item80;printf(nEnter a string:M);gets(item);printf(nnThe string is:,%sn,item);fun(item);printf(HnnThe string of changing is:s”n”,item);)解 题 思 路:第 一 处:要 求 是 取 出 原 字 符 串 中 所 有 数 字 字 符 组 成 一 个 新 的 字 符 串,程 序 中 是 使 用 变 量 j来 控 制 新 字 符
14、 串 的 位 置,所 以 应 改 为:sj+=si;。第 二 处:置 新 字 符 串 的 结 束 符,所 以 应 改 为:s lik、。,;.*请 编 写 函 数 f u n,函 数 的 功 能 是:将 M行 N列 的 二 维 数 组 中 的 字 符 数 据,按 列 的 顺 序 依 次 放 到 一 个 字 符 串 中。例 如,二 维 数 组 中 的 数 据 为:W W W WS S S SH H H H则 字 符 串 中 的 内 容 应 是:WSHWSHWSHo注 意:部 分 源 程 序 在 文 件 PROG 1.C中。请 勿 改 动 主 函 数 main和 其 它 函 数 中 的 任 何 内
15、 容,仅 在 函 数 fun的 花 括 号 中 填 入 你 编 写 的 若 干 语 句。给 定 源 程 序:#include#define M 3#define N 4void fun(char sN,char*b)(int i,j,n=O;for(i=0;i N;i+)/*请 填 写 相 应 语 句 完 成 其 功 能*/bn=O;)main()chara100,w M N=W 7W?W W S,S,S,SH,H,H,H*);int i,j;printf(The matrixAn1);for(i=0;iM;i+)for(j=0;jN;j+)printf(M%3cn,wi j);printf(
16、nH);)fun(w,a);printf(HThe A string:nM);puts(a);printf(nn);NONO();)解 题 思 路:本 题 是 把 二.维 数 组 中 的 字 符 数 据 按 列 存 放 到 一 个 字 符 串 中。1.计 算 存 放 到 一 维 数 组 中 的 位 置。2.取 出 二 维 数 组 中 的 字 符 存 放 到 一 维 数 组(已 计 算 出 的 位 置)中。参 考 答 案:void fun(char sN,char*b)(int i,j,n=O;for(i=0;i N;i+)/*请 填 写 相 应 语 句 完 成 其 功 能*/(for(j=0;
17、j M;j+)bn=sji;n=i*M+j+1;bn=O;第 03套:程 序 通 过 定 义 学 生 结 构 体 变 量,存 储 了 学 生 的 学 号、姓 名 和 3门 课 的 成 绩。所 有 学 生 数 据 均 以 二 进 制 方 式 输 出 到 文 件 电 函 数 fun的 功 能 是 重 写 形 参 filename所 指 文 件 中 最 后 一 个 学 生 的 数 据,即 用 新 的 学 生 数 据 覆 盖 该 学 生 原 来 的 数 据,其 它 学 生 的 数 据 不 变。请 在 程 序 的 下 划 线 处 填 入 正 确 的 内 容 并 把 下 划 线 删 除,使 程 序 得 出
18、 正 确 的 结 果。注 意:源 程 序 存 放 在 考 生 文 件 夹 下 的 BLANK1.C中。不 得 增 行 或 删 行,也 不 得 更 改 程 序 的 结 构!给 定 源 程 序:#include#define N 5typedef struct student long sno;char name10;float score3;STU;void fun(char*filename,STU n)FILE*fp;fp=fopen(一 1一,“rb+”);fseek(_2_,-lL*sizeof(STU),SEEK_END);fwrite(&n,sizeof(STU),1,3);fclo
19、se(fp);)main()STU tN=10001;,MaChaor,91,92,77,10002,MCaoKain,75,60,88,10003JLiSi”,85,70,78,10004,FangFang,90,82,87),10005JZhangSan”,95,80,88;STU n=10(X)6,ZhaoSi,55,70,68,ssN;int i,j;FILE*fp;fp=fopen(nstudent.datH,Hwb);fwrite(t,sizeof(STU),N,fp);fclose(fp);fp=fopen(student.datH,rb);fread(ss,sizeof(STU
20、),N,fp);fclose(fp);printf(nThe original data:nnn);for(j=0;jN;j+)printf(nNo:%ld Name:%-8s Scores:n,ssj.sno,ssj.name);for(i=0;i3;i+)printf(H%6.2fn,ssj.scorei);printfCAn1);)fun(Hstudent.datn,n);printf(nThe data after modifing:nnH);fp=fopen(student.dat nrbM);fread(ss,sizeof(STU),N,fp);fclose(fp);for(j=0
21、;jN;j+)printf(nNo:%ld Name:%-8s Scores:,ssj.sno,ss|j.name);for(i=0;i3;i+)printf(H%6.2fn,ssj.scorei);printf(nnn);)解 题 思 路:本 题 是 考 察 如 何 从 文 件 中 读 出 数 据,再 把 结 构 中 的 数 据 写 入 文 件 中。第 一 处:从 指 定 的 文 件 中 读 出 数 据,所 以 应 填:filename第 二 处:读 取 文 件 fp的 最 后 一 条 记 录,所 以 应 填:fPo第 三 处:再 把 读 出 的 记 录,写 入 文 件 fp指 定 的 位
22、置 上,所 以 应 填:fp。*给 定 程 序 MODI 1.C中 的 函 数 Creatlink的 功 能 是 创 建 带 头 结 点 的 单 向 链 表,并 为 各 结 点 数 据 域 赋 0到 m-1的 值。请 改 正 函 数 Creatlink中 指 定 部 位 的 错 误,使 它 能 得 出 正 确 的 结 果。注 意:不 要 改 动 main函 数,不 得 增 行 或 删 行,也 不 得 更 改 程 序 的 结 构!给 定 源 程 序:#include#include typedef struct aa int data;struct aa*next;NODE;NODE*Creat
23、link(int n,int m)NODE 昨 NULL,*p,*s;int i;p=(NODE)malloc(sizeof(NODE);h=p;p-next=NULL;for(i=l;idata=rand()%m;s-next=p-next;p-next=s;p=p-next;)return p;outlink(NODE*h)NODE*p;p=h-next;printf(nnTHE LIST:nn HEAD”);while(p)printf(-%d n,p-data);p=p-next;)printf(n);)main()NODE*head;head=Creatlink(8,22);outl
24、ink(head);)解 题 思 路:第 一 处:指 向 刚 分 配 的 结 构 指 针,所 以 应 改 为:p=(NODE*)malloc(sizeof(NODE);第 二 处:在 动 态 分 配 内 存 的 下 一 行 语 句 是,使 用 临 时 结 构 指 针 变 量 h保 存 p指 针 的 初 始 位 置,最 后 返 回 不 能 使 用 P,是 因 为 p的 位 置 已 经 发 生 了 变 化,所 以 应 改 为 返 回 h。*请 编 写 函 数 f u n,函 数 的 功 能 是:统 计 一 行 字 符 串 中 单 词 的 个 数,作 为 函 数 值 返 回。一 行 字 符 串 在
25、主 函 数 中 输 入,规 定 所 有 单 词 由 小 写 字 母 组 成,单 词 之 间 由 若 干 个 空 格 隔 开,一 行 的 开 始 没 有 空 格。注 意:部 分 源 程 序 在 文 件 PROG1.C中。请 勿 改 动 主 函 数 main和 其 它 函 数 中 的 任 何 内 容,仅 在 函 数fun的 花 括 号 中 填 入 你 编 写 的 若 干 语 句。给 定 源 程 序:#include#include#define N 80int fun(char*s)main()char lineN;int num=0;printf(Enter a string:nH);gets(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言 上机 题库
限制150内