计算机二级C上机语言题库_南开100题.pdf
《计算机二级C上机语言题库_南开100题.pdf》由会员分享,可在线阅读,更多相关《计算机二级C上机语言题库_南开100题.pdf(354页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 0 1套:给 定 程 序 中,函 数 fu n的 功 能 是:将 形 参 n 所 指 变 量 中,各 位 上 为 偶 数 的 数 去 除,剩 余 的 数 按 原 来 从 高 位 到 低 位 的 顺 序 组 成 一 个 新 的 数,并 通 过 形 参 指 针 n 传 回 所 指 变 量。例 如,输 入 一 个 数:27638496,新 的 数:为 739。请 在 程 序 的 下 划 线 处 填 入 正 确 的 内 容 并 把 下 划 线 删 除,使 程 序 得 出 正 确 的 结 果。注 意:源 程 序 存 放 在 考 生 文 件 夹 下 的 BLANK1.C中。不 得 增 行 或 删 行,
2、也 不 得 更 改 程 序 的 结 构!给 定 源 程 序:#include void fun(unsigned long*n)unsigned long x=0,i;int t;i=l;while(*n)/*found*/t=*n%_ 1 _;/*found*/if(t%2!=_ 2 _)x=x+t*i;i=i*10;*n=*n/10;)/*found*/*n=_ 3_;)main()unsigned long n=-l;while(n99999999lln0)printf(Please input(0n 100000000):);scanf(n%ld&n);fun(&n);printf(u
3、nThe result is:%ldn,n);)解 题 思 路:第 一 处:t 是 通 过 取 模 的 方 式 来 得 到*n 的 个 位 数 字,所 以 应 填:10。第 二 处:判 断 是 否 是 奇 数,所 以 应 填:0。第 三 处:最 后 通 形 参 n 来 返 回 新 数 x,所 以 应 填:X。给 定 程 序 MODI 1.C中 函 数 f u n的 功 能 是:计 算 n!。例 如,给 n输 入 5,则 输 出 120.000000。请 改 正 程 序 中 的 错 误,使 程 序 能 输 出 正 确 的 结 果。注 意:不 要 改 动 m ain函 数,不 得 增 行 或 删
4、行,也 不 得 更 改 程 序 的 结 构!给 定 源 程 序:#include double fun(int n)double result=1.0;/*found*/if n=0return 1.0;while(n 1&n 170)/*found*/result*=n-return result;)main()int n;printfCInputN:-1);scanf(M%dn,&n);printf(nnn%d!=%lfnnM,n,fun(n);)解 题 思 路:第 一 处:条 件 语 句 书 写 格 式 错 误,应 改 为:if(n=0)。第 二 处:语 句 后 缺 少 分 号。请 编
5、写 一 个 函 数 f u n,它 的 功 能 是:将 一 个 数 字 字 符 串 转 换 为 一 个 整 数(不 得 调 用 C 语 言 提 供 的 将 字 符 串 转 换 为 整 数 的 函 数)。例 如,若 输 入 字 符 串“-1234”,则函 数 把 它 转 换 为 整 数 值-1 2 3 4 o函 数 fu n中 给 出 的 语 句 仅 供 参 考。注 意:部 分 源 程 序 存 在 文 件 PR 0G 1.C文 件 中。请 勿 改 动 主 函 数 m ain和 其 它 函 数 中 的 任 何 内 容,仅 在 函 数 fu n的 花 括 号 中 填 入 你 编 写 的 若 干 语
6、句。给 定 源 程 序:#include#include long fun(char*p)(/*以 下 代 码 仅 供 参 考*/in ti,le n,t;/*le n为 串 长,t 为 正 负 标 识*/long x=0;len=strlen(p);if(pO=-)t=-l;len-;p+;else t=1;/*以 下 完 成 数 字 字 符 串 转 换 为 一 个 数 字*/return x*t;)main()/*主 函 数*/char s6;long n;printf(Enter a stringAn);gets(s);n=fun(s);printf(ldn,n);NONO();)NON
7、O()/*本 函 数 用 于 打 开 文 件,输 入 数 据,调 用 函 数,输 出 数 据,关 闭 文 件。*/FILE*fp,*w f;int i;chars20;long n;fp=fopen(c:testin.dat”T);wf=fbpen(c:testout.dat,w);for(i=0;i 10;i+)fscanf(fp,s);n=fun(s);fprintf(wf,ldn”,n);)fclose(fp);fclose(wf);)解 题 思 路:本 题 是 将 一 个 数 字 字 符 串 转 换 为 一 个 整 数。参 考 答 案:#include#inciude long fir
8、n(char*p)(/*以 下 代 码 仅 供 参 考*/int i,len,t;/*le n为 串 长,t 为 正 负 标 识*/long x=0;len=strlen(p);if(pO=-t)t=-l;len-;p+;else t=1;/*以 下 完 成 数 字 字 符 串 转 换 为 个 数 字*/while(*p)x=x*10-48+(*p+);return x*t;)main。/*主 函 数*/char s6;long n;printf(Enter a stringAn);gets(s);n=fun(s);printf(%ldnn,n);NONO();NONO()/*本 函 数 用
9、于 打 开 文 件,输 入 数 据,调 用 函 数,输 出 数 据,关 闭 文 件。*/FILE*fp,*wf;int i;char s20;long n;fp=fopen(c:testin.dat,T);wf=fopen(c:testout.dat,w);for(i=0;i 10;i+)fscanf(fp,s);n=fun(s);fprintf(wf,ldn,n);)fclose(fp);fclose(wf);注 意:由 于 N O N O()这 个 函 数 是 改 卷 人 用 的,与 考 生 没 有 什 么 关 系,故 下 面 从 第 2 套 试 题 开 始 均 省 略 NONO()第 0
10、 2套:给 定 程 序 中,函 数 fu n的 功 能 是 将 形 参 给 定 的 字 符 串、整 数、浮 点 数 写 到 文 本 文 件 中,再 用 字 符 方 式 从 此 文 本 文 件 中 逐 个 读 入 并 显 示 在 终 端 屏 幕 上。请 在 程 序 的 下 划 线 处 填 入 正 确 的 内 容 并 把 下 划 线 删 除,使 程 序 得 出 正 确 的 结 果。注 意:源 程 序 存 放 在 考 生 文 件 夹 下 的 BLANK1.C中。不 得 增 行 或 删 行,也 不 得 更 改 程 序 的 结 构!给 定 源 程 序:#include void fun(char*s,i
11、nt a,double f)char ch;fp=fopen(filel.txt,w);fprintf(fp,n%s%d%fn s,a,f);fclose(fp);fp=fopen(,filel.txt,Y1);printf(nnThe result:nn);ch=fgetc(fp);/*fou nd*/while(!feof(_ 2_)/*found*不*/putchar(_ 3_);ch=fgetc(fp);putchar(n);fclose(fp);)main()char a10=MHello!;int b=12345;double c=98.76;fun(a,b,c);解 题 思 路:
12、本 题 是 考 察 先 把 给 定 的 数 据 写 入 到 文 本 文 件 中,再 从 该 文 件 读 出 并 显 示 在 屏 幕 上。第 一 处:定 义 文 本 文 件 类 型 变 量,所 以 应 填:FIL E*。第 二 处:判 断 文 件 是 否 结 束,所 以 应 填:fp。第 三 处:显 示 读 出 的 字 符,所 以 应 填:ch。给 定 程 序 MODI 1.C中 函 数 fu n的 功 能 是:依 次 取 出 字 符 串 中 所 有 数 字 字 符,形 成 新 的 字 符 串,并 取 代 原 字 符 串。请 改 正 函 数 fu n中 指 定 部 位 的 错 误,使 它 能 得
13、 出 正 确 的 结 果。注 意:不 要 改 动 m ain函 数,不 得 增 行 或 删 行,也 不 得 更 改 程 序 的 结 构!给 定 源 程 序:#include void fun(char*s)int i,j;for(i=0,j=0;si!=W;i+)if(si=,0,&si=,9,)*found*/s|j=si;/*und*/sU=OH;)main()char item80;printf(nEnter a string:M);gets(item);printf(nnnThe string is:%sn,item);fun(item);printf(HnnThe string of
14、 changing is:n%sHnn,item);)解 题 思 路:第 一 处:要 求 是 取 出 原 字 符 串 中 所 有 数 字 字 符 组 成 一 个 新 的 字 符 串,程 序 中 是 使 用 变 量 j来 控 制 新 字 符 串 的 位 置,所 以 应 改 为:sj+=s;。第 二 处:置 新 字 符 串 的 结 束 符,所 以 应 改 为:sU=(y;.请 编 写 函 数 f u n,函 数 的 功 能 是:将 M 行 N 列 的 二 维 数 组 中 的 字 符 数 据,按 列 的 顺 序 依 次 放 到 一 个 字 符 串 中。例 如,二 维 数 组 中 的 数 据 为:W
15、W W WS S S SH H HH则 字 符 串 中 的 内 容 应 是:WSHWSHWSHo注 意:部 分 源 程 序 在 文 件 PROG1.C中。请 勿 改 动 主 函 数 m ain和 其 它 函 数 中 的 任 何 内 容,仅 在 函 数 fu n的 花 括 号 中 填 入 你 编 写 的 若 干 语 句。给 定 源 程 序:#include#define M 3#define N 4void fun(char sN,char*b)int i,j,n=O;fo r(i=0;i N;i+)/*请 填 写 相 应 语 句 完 成 其 功 能*/bn=O,;)main()char a10
16、0,wMN=,WVW,;W,;W,S,SVS,;S,H,H,;H,;H,;int i,j;printf(The matrix:nn);for(i=0;iM;i+)for(j=0;jN;j+)printf(,%3c,wij);printf(nnM);)fun(w,a);printfCThe A string:n,);puts(a);printf(nnn);NONO();解 题 思 路:本 题 是 把 二 维 数 组 中 的 字 符 数 据 按 列 存 放 到 一 个 字 符 串 中。1.计 噂 存 放 到 一 维 数 组 中 的 位 置。2.取 出 二 维 数 组 中 的 字 符 存 放 到 一
17、 维 数 组(已 计 算 出 的 位 置)中。参 考 答 案:void fun(char sN,char*b)int i,j,n=O;for(i=0;i N;i+)/*请 填 写 相 应 语 句 完 成 其 功 能*/(fo r(j=0;j M;j+)bn=sji;n=i*M+j+1;bn=AO;第 0 3套:程 序 通 过 定 义 学 生 结 构 体 变 量,存 储 了 学 生 的 学 号、姓 名 和 3 门 课 的 成 绩。所 有 学 生 数 据 均 以 二 进 制 方 式 输 出 到 文 件 中。函 数 fu n的 功 能 是 重 写 形 参 filenam e所 指 文 件 中 最 后
18、 一 个 学 生 的 数 据,即 用 新 的 学 生 数 据 覆 盖 该 学 生 原 来 的 数 据,其 它 学 生 的 数 据 不 变。请 在 程 序 的 下 划 线 处 填 入 正 确 的 内 容 并 把 下 划 线 删 除,使 程 序 得 出 正 确 的 结 果。注 意:源 程 序 存 放 在 考 生 文 件 夹 下 的 BLA N K 1.CW。不 得 增 行 或 删 行,也 不 得 更 改 程 序 的 结 构!给 定 源 程 序:#include#define N 5typedef struct student long sno;char name10;float score 3;S
19、TU;void fun(char.filename,STU n)FILE*fp;/*Qund*/fp=f o p e n(_ l_,rb+);/*found*/fs e e k(_ 2 _,-lL*sizeof(STU),SEEK_END);/*found*/fwrite(&n,sizeof(STU),1,3);fclose(fp);)main()STU tN=10001;,MaChaon,91,92,77,10002,nCaoKaiu,75,60,88,10003,nLiSin,85,70,78,10004,FangFang1,90,82,87,10005,HZhangSanM,95,80,
20、88;STU n=10006,nZhaoSi,55,70,68,ss|N;int i,j;FILE*fp;fp=fopenCtudent.dat,Mwbn);fwrite(t,sizeof(STU),N,fp);fclose(fp);fp=fopenCstudentdat*,MrbM);fread(ss,sizeof(STU),N,fp);fclose(fp);printf(nThe original data:nn);for(j=0;jN;j+)printf(nNo:%ld Name:%-8s Scores:n,ssjl.sno,ssj.name);for(i=0;i3;i+)printf(
21、M%6.2f,ssj.scorei);printf(,nM);)fun(student.datn,n);printf(nThe data after modifing:nnH);fp=fopen(ustudent.datn,nrbM);fread(ss,sizeof(STU),N,fp);fclose(fp);for(j=0;jN;j+)printf(nNo:%ld Name:%-8s Scores:n,ssj.sno,ssj.name);for(i=0;i3;i+)printf(M%6.2f ssj.scorei);printf(,nM);解 题 思 路:本 题 是 考 察 如 何 从 文
22、件 中 读 出 数 据,再 把 结 构 中 的 数 据 写 入 文 件 中。第 一 处:从 指 定 的 文 件 中 读 出 数 据,所 以 应 填:filename第 二 处:读 取 文 件 f p的 最 后 一 条 记 录,所 以 应 填:fp。第 三 处:再 把 读 出 的 记 录,写 入 文 件 fp指 定 的 位 置 匕 所 以 应 填:fp。给 定 程 序 M 0D I1.C中 的 函 数 Creatlink的 功 能 是 创 建 带 头 结 点 的 单 向 链 表,并为 各 结 点 数 据 域 赋 0 到 m-1的 值。请 改 正 函 数 Creatlink中 指 定 部 位 的
23、错 误,使 它 能 得 出 正 确 的 结 果。注 意:不 要 改 动 m ain函 数,不 得 增 行 或 删 行,也 不 得 更 改 程 序 的 结 构!给 定 源 程 序:#include#include typedef struct aa int data;struct aa*next;NODE;NODE*Creatlink(int n,int m)NODE*h=NULL,*p,*s;int i;/*found*/p=(NODE)malloc(sizeof(NODE);h=p;p-next=NULL;for(i=l;idata=rand()%m;s-next=p-next;p-next
24、=s;p=p-next;)*/return p;)outlink(NODE*h)NODE*p;p=h-next;printf(nnnTHE LIST:nn HEAD);while(p)printf(-%d u,p-data);p=p-next;)printf(nnn);main()NODE*head;head=Creatlink(8,22);outlink(head);)解 题 思 路:第,处:指 向 刚 分 配 的 结 构 指 针,所 以 应 改 为:p=(NODE*)malloc(sizeof(NODE);第 二 处:在 动 态 分 配 内 存 的 下 一 行 语 句 是,使 用 临 时
25、结 构 指 针 变 量 h保 存 p指 针 的 初 始 位 置,最 后 返 回 不 能 使 用 P,是 因 为 p 的 位 置 已 经 发 生 了 变 化,所 以 应 改 为 返 回 h。请 编 写 函 数 f u n,函 数 的 功 能 是:统 计 一 行 字 符 串 中 单 词 的 个 数,作 为 函 数 值 返 回。一 行 字 符 串 在 主 函 数 中 输 入,规 定 所 有 单 词 由 小 写 字 母 组 成,单 词 之 间 由 若 干 个 空 格 隔 开,一 行 的 开 始 没 有 空 格。注 意:部 分 源 程 序 在 文 件 PR 0G 1.C中。请 勿 改 动 主 函 数 m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 上机 语言 题库 南开 100
限制150内