C语言程序设计期末考试卷A答案.pdf

上传人:s****u 文档编号:12791581 上传时间:2020-05-24 格式:PDF 页数:10 大小:200.20KB
返回 下载 相关 举报
C语言程序设计期末考试卷A答案.pdf_第1页
第1页 / 共10页
C语言程序设计期末考试卷A答案.pdf_第2页
第2页 / 共10页
C语言程序设计期末考试卷A答案.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述
北 京 信 息 科 技 大 学20082009 学 年 第 一 学 期 C 语 言 程 序 设 计 课 程 期 末 考 试 试 卷 ( A 卷 )授 课 系 别 : _计 算 机 学 院 _ 适 用 班 级 : _计 科 所 有 班 级 _ 考 试 形 式 : _闭 卷 _班 级 : 姓 名 : 学 号 :题 号 一 二 三 四 五 六 七 总 分得 分一 : 填 空 题 : ( 每 题 2 分 , 共 10 题 ) 1、 结 构 化 程 序 设 计 的 基 本 结 构 有 三 种 , 分 别 是 顺 序 结 构 、 选 择 结 构 和 循 环 结构 。2、 有 如 下 程 序 :voidmain() intk=1,n=263;dok*=n%10;n/=10;while(n);printf(%dn,k);则 k值 为 _36_。3、 有 如 下 程 序 chara=China,intnum=sizeof(a),num的 值 为 _6_。4、 函 数 直 接 或 间 接 的 调 用 自 己 成 为 函 数 的 _递 归 调 用 _。5、 有 如 下 定 义 : staticinta6=1,2,3,4,5,6;int*p=a+1;p+;则 *(p+1)的 值 为 _4_。6、 有 以 下 程 序 :#defineA 4#defineB(x)A*x/2voidmain() floatc,a=4.5;c=B(a);printf(%5.1fn,c); 则 c的 值 为 _9.0_。7、 C语 言 的 变 量 值 存 在 时 间 角 度 来 分 , 可 以 分 为 _动 态 _存 储 方 式 和 _静 态 _存 储 方 式 。8、 C 语 言 可 以 定 义 枚 举 类 型 , 其 关 键 字 为 enum 。 9、 写 出 下 面 程 序 的 运 算 结 果 。structks inta;s4,*p;voidmain() intn=1,i;for(i=0;ia);p-a的 值 为 _3_。10、 C语 言 打 开 文 件 的 函 数 是 _fopen_, 关 闭 文 件 的 函 数 是 _fclose_。二 单 项 选 择 题 : (每 题 2分 , 共 12 题 )1: 以 下 程 序 片 段 _D_。voidmain() intx=0,y=0,z=0;if(x=y+z)printf(*); else printf(#);A) 有 语 法 错 误 , 不 能 通 过 编 译 B) 输 出 : *C) 可 以 编 译 , 但 不 能 通 过 连 接 , 所 以 不 能 运 行 D) 输 出 : #2: 若 w=1,x=2,y=3,z=4,则 条 件 表 达 式 wx?w:yz?y:z ; 的 值 为 _B_。A) 4 B) 3 C) 2 D) 13: 下 述 程 序 的 输 出 结 果 是 C 。voidmain() intx=-1,y=4,k;k=(x+=0); while(s);-s;5: 下 列 程 序 运 行 结 果 为 : _C_。inta=1,b=2,c=1,t;while(ab0i+=2)s=10*s+chi-0;printf(%dn,s);A) 1 B) 1256 C) 12ab56 D) ab7: 以 下 正 确 的 描 述 是 B 。A) 函 数 的 定 义 可 以 嵌 套 , 但 函 数 的 调 用 不 可 以 嵌 套B) 函 数 的 定 义 不 可 以 嵌 套 , 但 函 数 的 调 用 可 以 嵌 套C) 函 数 的 定 义 和 函 数 的 调 用 均 不 可 以 嵌 套D) 函 数 的 定 义 和 函 数 的 调 用 均 可 以 嵌 套 8: 以 下 程 序 的 运 行 结 果 是 A 。#defineADD(x)x+xvoidmain() intm=1,k=2,sum;sum=ADD(m)*k;printf(%dn,sum);A) 3 B) 4 C) 5 D) 69: 下 面 程 序 段 的 运 行 结 果 是 C 。chara=language,*p;p=a;while(*p!=u)printf(%c,*p-32);p+; A) LANGUAGE B) language C) LANG D) langUAGE10: 若 有 定 义 : int a5,*p=a;则 对 a数 组 元 素 的 正 确 引 用 是 D 。A) *charname20;charsex;struct intyear;intmonth;intday;birth;s;设 结 构 变 量 s 中 的 “ birth” 应 是 “ 1985年 10 月 1 日 ” , 则 下 面 正 确 的 赋 值 方 式 是 D 。A) year=1985 B) birth.year=1985month=10 birth.month=10 day=1 birth.day=1C) s.year=1985 D) s.birth.year=1985s.month=10 s.birth.month=10s.day=1 s.birth.day=112: 函 数 rewind的 作 用 是 A 。A) 使 位 置 指 针 重 新 返 回 文 件 的 开 头B) 将 位 置 指 针 指 向 文 件 中 所 要 求 的 特 定 位 置C) 使 位 置 指 针 指 向 文 件 的 末 尾D) 使 位 置 指 针 自 动 移 至 下 一 个 字 符 位 置三 : 阅 读 程 序 , 写 出 正 确 结 果 : (每 题 4 分 , 共 5 题 )1、 下 列 程 序 的 运 行 结 果 是 :intfun(char*s) char*p=s;while(*p)p+;return(*p-*s);voidmain() char*a=abcdef;printf(%dn,fun(a);程 序 运 行 结 果 为 : -972、 若 inti=0;执 行 下 列 程 序 后 , 变 量 i的 结 果 是 _1_。 switch(i) case 9:i+=1;case 10:i+=1;case 11:i+=1; default :i+=1;3、 下 列 程 序 的 运 算 结 果 为 :int*sort(int*s) int*p=s;p+;returnp;voidmain() inta5=1,2,3,4,5; int*p;p=sort(a+2);printf(%dn,*p);程 序 运 行 结 果 为 : _4_。4、 下 列 程 序 的 运 算 结 果 为 :intmm(int,int);intmm(intm,intn) staticints=1;s+;return(s*(m+n); voidmain() inti;for(i=0;im的 值 为 _2_。四 : 阅 读 程 序 , 在 横 线 上 填 上 正 确 内 容 : ( 每 空 3 分 , 共 8 空 )1、 下 面 函 数 用 “ 折 半 查 找 法 ” 从 有 10 个 数 的 a 数 组 中 对 关 键 字 m 查 找 , 若 找 到 ,返 回 其 下 标 值 , 否 则 返 回 1, 请 填 ( 2) 空 使 程 序 完 整 。经 典 算 法 提 示 :折 半 查 找 法 的 思 路 是 先 确 定 待 查 元 素 的 范 围 , 将 其 分 成 两 半 , 然 后 比 较 位 于 中间 点 元 素 的 值 。 如 果 该 待 查 元 素 的 值 大 于 中 间 点 元 素 的 值 , 则 将 范 围 重 新 定 义为 大 于 中 间 点 元 素 的 范 围 , 反 之 亦 反 。intsearch(inta10,intm) intx1=0,x2=10,mid;while(x1=x2) mid=(x1+x2)/2;if(mamid) 【 _x1=mid+1_】 ;elsereturn(mid);return(-1);2、 编 写 函 数 void fun(char s1,char s2)把 两 个 字 符 串 s1,s2 连 接 起 来 存 放在 s1 中 。voidfun(chars1,chars2) inti=0, j; for(;s1i!=0;) 【 _i+_】 ;for(j=0;s2j!=0;j+) 【 _s1i=s2j_】 ;【 _i+_】 ;s1i=0;3、 输 入 10个 整 数 , 找 出 10个 数 中 的 最 大 数 和 最 小 数 。voidmain() intMax,Min;inta10,i;for(i=0;i10;i+) scanf(%d,【 _Max=Min=a0_】 ;for(i=1;i10;i+) if(Maxai)【 _Min=ai_】 ;printf(Max=%d,Min=%dn,Max,Min);五 程 序 编 写 。 (每 题 6 分 , 共 两 题 ) 1: 有 一 个 整 型 数 组 a11, 向 数 组 中 输 入 10个 整 数 , 要 求 : 用 冒 泡 排 序 法 对 10个 数 进 行 排 序 并 输 出 。 输 入 一 个 数 , 然 后 按 原 来 排 完 序 的 规 律 将 它 插 入 到 数 组 中 。#include stdio.hvoid main() int a11,i,j,temp;int num;for (i=0;i10;i+) scanf(%d,for (j=0;j9;j+) for (i=0;iai+1) temp=ai;ai=ai+1;ai+1=temp;for (i=0;ia9) a10=num;else if (num=1;i-) ai=ai-1;a0=num;else for (i=0;i10;i+) if (numk;i-) ai=ai-1;ak=num;printf(输 出 插 入 数 字 后 的 数 组 :n); for (i=0;i11;i+) printf(%d,ai);2: 有 5个 学 生 , 每 个 学 生 包 括 学 号 , 姓 名 , 和 一 门 课 成 绩 , 求 出 课 程 的 总 分 和 平 均 分 。 : 将 这 些 数 据 全 部 写 入 一 个 ”stu”文 件 中 保 存 。 : 重 新 打 开 文 件 ”stu”读 出 这 些 数 据 显 示 到 屏 幕 上 。#includestdio.h#includestdlib.hstructstudent intnum; charName20;floatscore; stu5;voidmain() floatallscore=0,aver;inti;FILE*fp;printf(输 入 五 位 学 生 学 号 , 姓 名 , 成 绩 :n);for(i=0;i5;i+) printf(输 入 学 生 学 号 :n);scanf(%d,printf(输 入 学 生 姓 名 :n);getchar();gets(stui.Name); printf(输 入 学 生 分 数 :n);scanf(%f,for(i=0;i5;i+) allscore+=stui.score;aver=allscore/5;if(fp=fopen(student.txt,w)=NULL) printf(文 件 打 开 出 错 !);exit(0);for(i=0;i5;i+) fwrite(fprintf(fp,%5.2f,allscore);fprintf(fp,%5.2f,aver);fclose(fp);fp=fopen(student.txt,r);for(i=0;i5;i+) printf(输 出 学 生 学 号 ,姓 名 ,分 数 :n);printf(%dn,stui.num);printf(%sn,stui.Name);printf(%5.2fn,stui.score); fscanf(fp,%5.2f,fscanf(fp,%5.2f, printf(总 分 为 :);printf(%5.2fn,allscore);printf(平 均 分 为 :);printf(%5.2fn,aver);
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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