在职高内所学的专科起点在职研究生已经填入电脑是否可更改

& 知识点 & “以下是某省2010年教育发展情况有关数据...”习题详情
0位同学学习过此题,做题成功率0%
以下是某省2010年教育发展情况有关数据: 全省共有各级各类学校25000所,其中小学12500所,初中2000所,髙中450所,其它学校10050所;全省共有在校学生995万人,其中小学440万人,初中200万人,高中75万人,其它280万人;全省共有在职教师48万人,其中小学20万人,初中12万人,高中5万人,其它11万人. 请将上述资料中的数据按下列步骤进行统计分析. (1)整理数据:请设计一个统计表,将以上数据填入表格中. (2)描述数据:下图是描述全省各级各类学校所数的扇形统计图,请将它补充完整. (3)分析数据: ①分析统计表中的相关数据,小学、初中、高中三个学段的师生比,最小的是哪个学段?请直接写出.(师生比=在职教师数:在校学生数) ②根据统计表中的相关数据,你还能从其它角度分析得出什么结论吗?(写出一个即可) ③从扇形统计图中,你得出什么结论?(写出一个即可) &
本题难度:
题型:解答题&|&来源:网络
分析与解答
习题“以下是某省2010年教育发展情况有关数据: 全省共有各级各类学校25000所,其中小学12500所,初中2000所,髙中450所,其它学校10050所;全省共有在校学生995万人,其中小学440万人,初中200...”的分析与解答如下所示:
(1)根据题意列出二维统计表即可; (2)算出小学、初中、其它学校的百分比,再根据圆心角所占圆周角的百分比即可画出扇形统计图; (3)①根据统计表直计算出小学、初中、高中三个学段的师生比即可; ②③只要正确即可,答案不唯一.
解:(1)1)2010年全省教育发展情况统计表
学校所数 (所)
在校学生数 (万人)
教师数 (万人)
(说明:“合计”栏不列出来不扣分)(3分) (2)
(3)①小学师生比=20:440=1:22, 初中师生比=12:200≈1:16.7, 高中师生比=5:75=1:15, ∴小学学段的师生比最小. ②如,小学的在校学生数最多等. ③如,高中学校所数偏少等.
找到答案了,赞一个
如发现试题中存在任何错误,请及时纠错告诉我们,谢谢你的支持!
以下是某省2010年教育发展情况有关数据: 全省共有各级各类学校25000所,其中小学12500所,初中2000所,髙中450所,其它学校10050所;全省共有在校学生995万人,其中小学440万人,...
错误类型:
习题内容残缺不全
习题有文字标点错误
习题内容结构混乱
习题对应知识点不正确
分析解答残缺不全
分析解答有文字标点错误
分析解答结构混乱
习题类型错误
错误详情:
我的名号(最多30个字):
看完解答,记得给个难度评级哦!
经过分析,习题“以下是某省2010年教育发展情况有关数据: 全省共有各级各类学校25000所,其中小学12500所,初中2000所,髙中450所,其它学校10050所;全省共有在校学生995万人,其中小学440万人,初中200...”主要考察你对“冀教版数学七年级下学期”
等考点的理解。
因为篇幅有限,只列出部分考点,详细请访问。
冀教版数学七年级下学期
与“以下是某省2010年教育发展情况有关数据: 全省共有各级各类学校25000所,其中小学12500所,初中2000所,髙中450所,其它学校10050所;全省共有在校学生995万人,其中小学440万人,初中200...”相似的题目:
下列调查,比较容易用普查方式的是(  )了解宁波市居民年人均收入了解宁波市初中生体育中考的成绩了解宁波市中小学生的近视率了解某一天离开宁波市的人口流量
下列事件中最适合使用普查方式收集数据的是(  )了解某班同学的身高情况了解全国每天丢弃的废旧电池数了解一批炮弹的杀伤半径了解我国农民的年人均收入情况
下列调查方式,合适的是(  )要了解一批灯泡的使用寿命,采用普查方式要了解淮安电视台“有事报道”栏目的收视率,采用普查方式要保证“神舟六号”载人飞船成功发射,对重要零部件的检查采用抽查方式要了解外地游客对“淮扬菜美食文化节”的满意度,采用抽查方式
“以下是某省2010年教育发展情况有关数据...”的最新评论
该知识点好题
该知识点易错题
欢迎来到乐乐题库,查看习题“以下是某省2010年教育发展情况有关数据: 全省共有各级各类学校25000所,其中小学12500所,初中2000所,髙中450所,其它学校10050所;全省共有在校学生995万人,其中小学440万人,初中200万人,高中75万人,其它280万人;全省共有在职教师48万人,其中小学20万人,初中12万人,高中5万人,其它11万人. 请将上述资料中的数据按下列步骤进行统计分析. (1)整理数据:请设计一个统计表,将以上数据填入表格中. (2)描述数据:下图是描述全省各级各类学校所数的扇形统计图,请将它补充完整. (3)分析数据: ①分析统计表中的相关数据,小学、初中、高中三个学段的师生比,最小的是哪个学段?请直接写出.(师生比=在职教师数:在校学生数) ②根据统计表中的相关数据,你还能从其它角度分析得出什么结论吗?(写出一个即可) ③从扇形统计图中,你得出什么结论?(写出一个即可)”的答案、考点梳理,并查找与习题“以下是某省2010年教育发展情况有关数据: 全省共有各级各类学校25000所,其中小学12500所,初中2000所,髙中450所,其它学校10050所;全省共有在校学生995万人,其中小学440万人,初中200万人,高中75万人,其它280万人;全省共有在职教师48万人,其中小学20万人,初中12万人,高中5万人,其它11万人. 请将上述资料中的数据按下列步骤进行统计分析. (1)整理数据:请设计一个统计表,将以上数据填入表格中. (2)描述数据:下图是描述全省各级各类学校所数的扇形统计图,请将它补充完整. (3)分析数据: ①分析统计表中的相关数据,小学、初中、高中三个学段的师生比,最小的是哪个学段?请直接写出.(师生比=在职教师数:在校学生数) ②根据统计表中的相关数据,你还能从其它角度分析得出什么结论吗?(写出一个即可) ③从扇形统计图中,你得出什么结论?(写出一个即可)”相似的习题。程序员常去的6个网站,第一个你绝对用过—兰州IT培训_常见问题_中公优就业
IT培训学院
400-650-7353
> 程序员常去的6个网站,第一个你绝对用过—兰州IT培训
程序员常去的6个网站,第一个你绝对用过—兰州IT培训
18:30:55 来源:
优就业是中公教育IT培训品牌,致力于培养面向电商及互联网领域的高端人才,以学员就业为目的,优质就业为宗旨,是一家集、、、、、、、、、、、iOS工程师、C/C++工程师、课程为一体的IT培训机构。
&微信关注:gsujiuye,下载100G干货资料
第一名:W3cschool
w3cschool在国内算是一个做得比较久的基础技术知识学习的网站了,很多猿们在入手一项新的技术时,都是从w3cschool开始的。w3cschool的基础知识算是整理得蛮详细的了.正在入门或者已经在职的开发人员想学习一些新东西的时候,w3cschool是挺有价值的。w3cschool的魅力在于,开发过程中遇到某个函数,某个方法的时候,能够可以快速查询定位到这个知识点,并且拷贝代码实例进行改造,省时省力。
第二名:github
github作为全球最大的开源代码库及版本控制系统,相信大家都不陌生吧?小编也喜欢空闲的时候去逛逛,上面数以万计的开源项目为热爱编程的程序员们提供了展示自己的机会,即使你不参与开源项目,看看别人代码也将获益良多。
第三名:Stack Overflow
stack overflow
不得不说Stack Overflow棒极了,作为一个IT技术问答型社区,汇聚世界各地的IT人才,一个问题,不同的解决方法,各种思想的碰撞,是不是很有趣?
第四名:csdn
作为高内最大的IT社区和服务平台,拥有超过3000万注册会员(其中活跃会员800万)、50万注册企业及合作伙伴,可见该社区确实很牛逼,给我印象比较深的是上面的代码资源,记得我好几次都到上面下载东西,不过要下载币。
第五名:开源中国
开源中国现在还是比较火的,2008年至今,用户数量不断攀升,服务的质量也不断提高,不过个人觉得有点像github的翻版,如果你英文不是很好的话,去开源中国也是一个不错的选择,该社区同样能提高代码托管平台,还有其他服务等。
第六名:博客园
很良心的一个社区,有近四年,博客园仅靠一个人几年工作的积蓄在维持,互联网浪潮的此起彼伏,&博客&从耀眼的明星成为平民,这些似乎都与博客园无关,博客园一步一个脚印地走着自己的路,傻傻地对每个用户注册进行人工审批、对首页内容宁缺毋滥、对不合适的广告拒之门外,只是为了给IT人一个交流技术的空间。
相关推荐&&
更多IT互联网相关干货资讯:
&&&优就业IT培训墙裂推荐&&&
、、、、、、
微信二维码
QQ群二维码
微博二维码
免责声明:本文来源于网络,由网友提供或网络搜集,仅供个人交流学习参考使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。谢谢合作!
热门标签:
在线学习 ● APP下载
微信扫一扫
400-650-7353- Copyright & 2017 www.xue63.com All Rights Reserved待解决问题&
濮阳市油田职高,四高内
(濮阳市华龙区)有谁上过油田职高,在四高里面,不知道那怎么样啊,上过的可不可以聊聊!我Q
更新时间: 12:05
濮阳市油田二高好还是濮阳市油田三高好,明年中考会加上生物和地理的分吗?
二高\(^o^)/~,三高有老些学生PK有点乱
濮阳市油田的学校,中考能报市里面的市一高吗
我是市里面的~不过我在油田上的初中~你不能报考市里面的高中~我亲身实践~谢谢~我初中在油田十八中~为了想上市一高~我差点转学转到市里~不过最后没有~你只能报油田的高中~谢谢~学籍不一样~
濮阳市油田第四高级中学附近有哪些银行
建行和邮政的
濮阳市油田四高
油田四高和艺术高中是两个不同的学校。艺术高中在油田二小对面,任丘路路南,油田党校东面。四高的位置在任丘路的东段路北,油田技校家属院的对面。学校的教学设施还不错,学校所处位置,比较安静周围是家属区,较为安全、安静,利于学生的学习和生活。
濮阳市油田1中,2高中招考什么科目,英语有口语吗
除了体育和实验考试,油田一中和二中还有口语和生物考试,分数分布如下:语文 数学 英语主三门各120分,政治开卷考试70分,物理70分,化学和历史各50分,体育30分,实验15分,英语口语10分。 此外,生物也计入总分之内,但生物没有设考试,生物成绩是这样计算的:把学生在初一初二和初三时的生物成绩整合,算出平均分,这个平均分就是该考生的生物得分。生物占15分。 简单的说,总分是670分 有英语口语和体育考试 只有政治考试开卷。 希望我的解答对你会有所帮助
濮阳市直学校和油田地区小学语文使用的什么版本
濮阳市高中好的学校都有什么,包括油田,哪个最好 依次排下去
一级:市一高、油田一中二级:油田二高、外高其他的毒不好啦!
河南省濮阳市中原油田地区哪家婚纱摄影最好,哪的婚纱最好看
春艺国际婚纱摄影机构,中国首批五星级婚纱摄影名店,河南省内最具影响力的五A级摄影机构,濮阳市第一家五星五钻级婚纱摄影名店。春艺婚纱摄影自开业以来就一直秉承着用视觉创造美好,用影像典藏生活,用快乐生产快乐的服务理念。 二十六年来,已经为中原地区数十万对结婚新人打造了视觉魅力的摄影作品.来到春艺婚纱摄影,感受春艺的每一处服务,每一处亮点。 1995年春艺国际婚纱摄影旗舰店盛大开业。自开业起,春艺人一直坚持独立 领先 创新唯美的经营理念,在不断创新不断进步的同时春艺婚纱摄影获得了辉煌傲人的巨大成就。春艺国际婚摄影机构二十多年的倾心付出,终于赢得了众多支持春艺,关心春艺的广大新人朋友。春艺属于你,属于我,属于他,属于我们大家的春艺。 在秉承二十多年来,一贯以专业领先理念的同时,我们也会坚持自己永不改
濮阳市艺术高中!
舞蹈 聲樂 器樂 表演 影視製作 播音主持 戲曲 美術 藝術學校了根本沒 街舞這個專業! 全部都是民族舞!!!
濮阳市油田四高的进
我油田二高的,油田四高千万不要上.........一中考场,二高战场,三高情场,四高垃圾场,花点钱上二高或三高吧,也比在四高强。
二高\(^o^)/~,三高有老些学生PK有点乱...
我是市里面的~不过我在油田上的初中~你不能报考市里面的高中~我亲身实践~谢谢~我初中在油田十八中~为了想上市一...
建行和邮政的...
微信扫一扫咨询技校问题
&本站QQ官方微博:@jixiaoJE &
Copyright &&&www.qyxxpd.com(JE中专网)&&All Rights Reserved.
网站版权与免责声明
①由于各方面不确定的因素,有可能原文内容调整与变化,本网所提供的相关信息请网友以权威部门公布的正式信息为准.
②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权及个人隐私等问题,请在两周内邮件联系当前位置: >>
计算机二级c语言笔试真题
2012 年 3 月全国计算机等级考试二级 C 语言真题一、选择题 1、 下列叙述中正确的是: A、循环队列是队列的一种顺序存储结构 B、循环队列是队列的一种链式存储结构 C、循环队列是非线性结构 D、循环队列是一直逻辑结构 2、 下列叙述中正确的是 A、栈是一种先进先出的线性表 B、队列是一种后进先出的线性表 C、栈和队列都是非线性结构 D、以上三种说法都不对 3、 一棵二叉树共有 25 个节点,其中 5 个时子节点,那么度为 1 的节点数为 A、4 B、6 C、10 D、16 4、 在下列模式中,能够给出数据库物理存储结构与物理存取方法的是 A、内模式 B、外模式 C、概念模式 D、逻辑模式 5、 在满足实体完整性约束的条件下 A、 一个关系中可以没有候选关键词 B、 一个关系中只能有一个候选关键词 C、 一个关系中必须有多个候选关键词 D、 一个关系中应该有一个或者多个候选关键词 6、 有三个关系 R、S 和 T 如下: R S T A B C A B C A B C a 1 2 b c 2 3 1 1 a b 1 2 2 1 a b 2 3 1 1则由关系 R 和 S 得到关系 T 的操作是 A、自然连接 B、并 C、差 D、交 7、 软件生命周期中的活动不包括 A、软件维护 B、市场调研 C、软件测试 D、需求分析 8、 下面不属于需求分析阶段任务的是 A、确定软件系统的功能需求 B、确定软件系统的系统的系能需求 B、制定软件集成测试计划 D、需求规格说明书审评 9、 在黑盒测试方式中,设计测试用例的主要根据是 A、程序外部功能 B、程序内部逻辑 C、程序数据结构 D、程序流程图 10、 在软件设计中不使用的工具是 A、系统结构图 B、程序流程图 C、PAD 图 D、数据流图(DFD 图) 11、针对简单程序设计,以下叙述的实施步骤正确的是 A、确定算法和数据结构、编码、调试、整理文档 B、编码、确定算法和数据结构、调试、整理文档 C、整理文档、确定算法和数据结构、编码、调试 D、确定算法和数据结构、调试、编码、整理文档 12、关于 C 语言中数的表示,以下叙述正确的是 A、只有整型数在允许范围内能精确无误的表示,实型数会有误差 B、只要在在允许范围内整型和实型都能精确表示 C、只有实型数在允许范围内能精确无误的表示,整型数会有误差 D、只有八进制表示的数在不会有误差 13、以下关于算法叙述错误的是 A、算法可以用伪代码、流程图等多种形式来描述 B、一个正确的算法必须有输入 C、一个正确的算法必须有输出 D、用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码 14、以下叙述错误的是 A、一个 C 程序可以包含多个不同名的函数 B、一个 C 程序只能有一个主函数 C、C 程序在书写时,有严格的缩进要求,否则不能编译通过 D、C 程序的主函数必须用 main 作为函数名 15、设有以下语句 Char ch1,ch2, scanf(”%c%c”,&ch1,&ch2); 若要为变量 ch1 和 ch2 分别输入字符 A 和 B,正确的输入形式应该是 A、A 和 B 之间用逗号间隔 B、A 和 B 之间不能有任何间隔符 C、A 和 B 之间可以用回车间隔 D、A 和 B 之间用空格间隔 16、以下选项中非法的字符常量是 A、’\102’ B、’\65’ C、’\xff’ D、’\019’ 17、有以下程序 #include &sthio.h& Main() { Int A=0,B=0,C=0; C=(A-=A-5);(A=B,B+=4); Printf(“%d, %d, %d\n”,A,B,C) } 程序运行后输出的结果是 A 0,4,5 B 4,4,5 C 4,4,4 D 0,0,0 18、设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是 A、x++; printf((“%d\n”,x); B、n=++x; printf((“%d\n”,n); C、++x; printf((“%d\n”,x); D、n=x++; printf((“%d\n”,n); 19、以下选项中,能表示逻辑值“假”的是 A1 B 0.000001 C 0 D 100.0 20、有以下程序 #include &sthio.h& Main() { int a; Scanf(“%d”,&a); If(a++&9) printf((“%d\n”,a); Else printf((“%d\n”,a--); } 程序运行时键盘输入 9&回车&,则输出的结构是 A、10 B 11 C 9 D 8 21、有以下程序 #include &sthio.h& Main() {int s=0,n; For (n=0;n&3;n&++) {switch(s) { case 0; Case 1;s+=1; Case 2;s+=2; Case 3;s+3; Case 4;s+=4; } printf((“%d\n”,s); } } 程序运行后的结果是 A 1,2,4 B 1,3,6 C 3,10,14 D 3,6,10 22、若 k 是 int 类型变量,且有以下 for 语句 For(k=-1;k&0;k++) printf(****\n”); 下面关于语句执行情况的叙述中正确的是 A、循环体执行一次 B、循环体执行两次 C、循环体一次也不执行 D、构成无限循环 23、有以下程序 #include &sthio.h& Main() {char A,B,C; B=’1’;C=’A’ For(A=0;A&6;A++) {if(A%2) putchar(B+A); Else putchar(C+A) ; } } 程序运行后输出的结果是 A 1B3D5F B ABCDFE C A2C4E6 D 、设有如下定义语句 Int m[ ]={2,4,6,8},*k=m; 以下选项中,表达式的值为 6 的是 A *(k+2) B k+2 C *k+2 D *k+=2 25、fun 函数的功能是:通过键盘输入给 x 所指的整型数组所有元素赋值。在下列划线处应 该填写的是 #include &sthio.h& #define N 5 Viod fun(int x[N]) { For(m=N-1;m&0;m--) scanf(“%d\n”, ); } A &x[++m] B &x[m+1] C x+(m++) D x+m 26、若有函数 Viod fun(double a[], int *n) {………} 以下叙述中正确的是 A、 调用 fun 函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送 B、 形参 a 和 n 都是指针变量 C、 形参 a 是一个数组名,n 是指针变量 D、 调用 fun 函数时将把 double 型实参数组元素一一对应地传送给形参 a 数组 27、有以下程序 #include &sthio.h& Main() {int a,b,k,m,*p1,*p2; k=1,m=8; p1=&k,p2=&m; a=/*p1-m; b=*p1+*p2+6; printf(“%d ”,a); printf(“%d\n”,b); } 编译时编译器提示错误信息,你认为出错的语句是 A、a=/*p1-m B、b=*p1+*p2+6 C、k=1,m=8; D、p1=&k,p2=&m; 28、以下选项中有语法错误的是 A char *str[ ]={“guest”}; B、char str[10 ]={“guest”}; C、char *str[3] *str[1]={“guest”}; D、char str[3][10];str[1]={“guest”}; 29、avg 函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过 10,则下列函数说明语句错误的是 A、int avg(int *a,int n); B、int avg(int a[10],int n); C、int avg(int a,int n) ; D、int avg(int a[],int n); 30、有以下函数 #include &sthio.h& #include &string.h& main() { printf(“%d\n”,strren”ATS\n012\1”) );} 程序运行后的输出结果是 A3 B8 C 4 D 9 31、有以下函数 #include &sthio.h& main() { char a[20],b[20],c[20]; scanf(”%s%s”,a,b); get(c); printf(”%s%s\n”,a,b,c); } 程序运行时从第一行开始输入 this is a cat!&回车&,则输出结果是 A thisisacat! B this is a C thisis a cat! D thisisa cat! 32、有以下函数 #include &sthio.h& viod fun(char c) {if(c&’x’) fun(c-1); printf (“%c”,c); } main() {fun”z”;} 程序运行输出结果是 A xyz B wxyz C zyxw D zyx 33、有以下函数 #include &sthio.h& viod func(int n) { for(i=0;i&=n;i++) printf(“*”); printf(“#”); main() { func(3); printf(“????”); func(4); printf(“\n”); } 程序运行输出结果是 A ****#????***# B ***#????*****# C **#????*****# D ****#????*****# 34、有以下函数 #include &sthio.h& viod fun(int *s) {staic int j=0; do {s[j]=s[j]+s[j+1];} wihle(++j&2); } main() {int k,a[10]={1,2,3,4,5}; for(K+1;k&3;k++) fun(a); for(K+1;k&5;k++) printf(“%d”,a[k]); printf(“\n”); } 程序运行输出结果是 A 12345 B 23445 C 34756 D 35745 35、有以下函数 #include &sthio.h& #define S(x) (x)*x*2 main() {int k=5,j=2; printf(“%d,”,S[k+j]); printf(“%d\n”,S(k-j))); } 程序运行输出结果是 A 98,18 B 39,11 C39,18 D98,11 36、有以下函数 #include &sthio.h& Viod exch(int t[ ]) {t[0]=t[5];} {int x[10]={1,2,3,4,5,6,7,8,9,10},i=0; While(i&=4) {exch(&x[i])’i++;} for(i=0;i&5;i++) printf(“%d”,x[i]); printf(“\n”); } 程序运行输出结果是 A 2 4 6 8 10 B 1 3 5 7 9 C12345 D 6 7 8 9 10 37、设有以下程序段 Struct MP3 {char name[20]; C F }std,* ptr=& 若要引用结构体变量 std 中的 color 成员,写法错误的是 A std.color B ptr-& color C std-& color D (*ptr) .color 38、有以下函数 #include &sthio.h& struct stu { char name[10];}; viod fun(struct stu *p) { printf(“%s\n”,p-&name);} mian() { struct stu x[3]={{01,”zhang”,20},{02,”wang”,19},{03,”zhao”,18}}; fun(x+2); } 程序运行输出结果是 A zhang B zhao C wang D 19 39、有以下函数 #include &sthio.h& mian() {int a=12,c; c=(a&&2)&&1; printf(“%d\n”,c): } 程序运行输出结果是 A 3 B 50 C2 D 96 40、以下函数不能用于向文件写入数据的是 A ftell B fwrite C fputcD fprintf二、填空题 1、将长度为 n 的顺序存储在线性表中删除一个元素,最坏情况下需要移动表中的元素个数 为( ) 。 2、设循环队列的存储空间为 Q(1:3),初始状态为 front=rear=30。现经过一系列入队与退队运 算后,front=16,rear=15,则循环队列中有( )个元素。 3、数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是( ) 。 4、在将 E-R 图转换到关系模式时,实体和联系都可以表示成( )。 5、常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于 ( ) 。 6、设变量 a 和 b 已定义为 int 类型,若要通过 scanf(”a=%d,b=%d”,&a,&b);语句分别给 a 和 b 输入 1 和 2,则正确的数据输入内容是( ) 。 7、以下程序的输出结果是( ) 。 #include &sthio.h& mian() { int a=37; a+=a%=9; printf(“%d\n”,a); } 8、设 a、b、c 都是整型变量,如果 a 的值为 1,b 的值为 2,则执行 c=a++||b++;语句后, 变量 b 的值是( ). 9、有以下程序段 s=1.0; for(k=1,k&=n;k++) s=s+1.0(k*(k+1)); printf(“%f\n”,s); 请填空,使以下程序段的功能与上面的程序段完全相同。 s=1.0; k=1; while( ) { s=s+1.0(k*(k+1)); k=k+1;} printf(“%f\n”,s); 10、以下程序段的输出结果是( ) #include &sthio.h& mian() { char a,b; for(a=0;a&20;a+=7) { b=a%10; putchar(b+’0’); } } 11、以下程序段的输出结果是( #include &sthio.h& mian() ) { char *ch[4]={“red”,”green”,”blue”}; Int i=0; While(ch[i]); { putchar(ch[i][0]; i++; } } 12、 有以下程序 #include &sthio.h& mian() {int arr[]={1,3,5,7,2,4,6,8{, i, Scanf(“%d”, &start); For(i=0,i&3,i++) printf(“%d”,arr[(start+i)%8]); } 若在程序运行时输入整数 10 &回车&,则输出结果为() 。13、 以下程序的功能是输出 a 数组中的所有字符串,请填空 #include &sthio.h& mian() {char *a[]={“ABC”,”DEFGH”,”IJ”,”KLMNOP”}; Int i=0; For(;i&4;i++) printf(“%s\n”, ); } 14、以下程序的输出结果是( #include &sthio.h& #include &sthio.h& #include &string.h& mian() { char *p, *q, *r; p=q=r=(char *)malloc(sizeof(char)*20); strcpy(p,”attaboy,welcome!”); printf(“%c%c%c\n”,p[11], q[3], r[4]); free(p); } ) 。15 、 设 文 件 test.txt 中 原 已 写 入 字 符 串 Begin , 执 行 以 下 程 序 后 , 文 件 中 的 内 容 为 ( ) 。 #include &string.h& mian() { file * fp=fopen(“test.txt”,”w+”); fputs(“test”,fp); fclose(fp); }(1)【答案】A 【解析】为了充分利用存储空间,可以把顺序队列看成一个环状空间,即把顺 序队列的头尾指针相连,这样的队列称之为循环队列。它是对顺序队列的改进,故 循环队列是队列的一种顺序存储结构 (2)【D】 【解析】栈是一种后进先出的线性表,队列是一种先进先出的线性表,二者均 是线性结构,故选项 A)、B)、C)均不对,答案为选项 D)。 (3)【D】 【解析】由二叉树的性质 n0=n2+1 可知,度为 0 的结点数(即叶子结点数)= 度为 2 的结点数+1,根据题意得知,度为 2 的结点数为 4 个,那么 25-5-4=16 即为度为 1 的结点数,选项 D)正确 (4)、【答案】A 【解析】内模式也称存储模式,它是数据物理结构和存储方式的描述,是数据 在数据库内部的表示方式,对应于物理级,它是数据库中全体数据的内部表示或底 层描述,是数据库最低一级的逻辑描述。所以选项 A)正确。 (5)【答案】D 【解析】在关系 R 中如记录完全函数依赖于属性(组)X,则称 X 为关系 R 中的 一个候选关键字。在一个关系中,候选关键字可以有多个且在任何关系中至少有一 个关键字。所以在满足数据完整性约束的条件下,一个关系应该有一个或多个候选 关键字,所以选项 D)正确。 (6)【答案】C 【解析】R 和 S 的差是由属于 R 但不属于 S 的元组组成的集合,运算符为“-”。 记为 T=R-S。根据本题关系 R 和关系 S 运算前后的变化,可以看出此处进行的是 关系运算的差运算 (7)【答案】B 【解析】通常把软件产品从提出、实现、使用、维护到停止使用(退役)的过程 称为软件生命周期。可以将软件生命周期分为软件定义、软件开发及软件运行维护 三个阶段。软件生命周期的主要活动阶段是可行性研究与计划制定、需求分析、软 件设计、软件实现、软件测试、运行和维护。软件生命周期不包括市场调研。 (8)【答案】C 【解析】需求分析是对待开发软件提出的需求进行分析并给出详细的定义。主 要工作是编写软件需求规格说明书及用户手册。需求分析的任务是导出目标系统的 逻辑模型,解决“做什么”的问题。制定软件集成测试计划是软件设计阶段需要完成 的任务 (9)【答案】A 【解析】黑盒测试也称功能测试或数据驱动测试,设计测试用例着眼于程序外 部结构、不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 (10)【答案】D 【解析】软件设计包括概要设计和详细设计,软件概要设计中,面向数据流的 设计方法有变换型系统结构图和事务型数据流两种。软件详细设计,程序流程图 (PDF)和 PAD(问题分析图)是过程设计的常用工具。 数据流图(DFD 图)是软件定义 阶段结构化分析方法常用的工具。 (11)【答案】A) 【解析】简单程序设计的步骤是首先要确定算法和数据结构,然胡编码、调试, 最后整理相关文档。 (12)【答案】A) 【解析】实型数据在内存中存储的二进制位数是有限的,例如 float 型数据在 内存中有 24 位二进制尾数。而一个十进制实数转化为二进制实数时,其有效数字 位数有可能会超过尾数的存储长度,从而导致有效数字丢失而产生误差。 (13)【答案】B) 【解析】一个正确的算法可以有零个或者多个输入,必须有一个或者多个输出。 (14)【答案】C) 【解析】一个 C 程序有且只有一个主函数 main()。一个 C 程序可以包含多个 不同名字的子函数。C 程序在书写时没有严格的缩进要求。 (15)【答案】B) 【解析】考察 C 语言中输入格式,因为在输入格式中定义好了”%c%c”,其中 没有任何符号,所以中间不能加任何字符,包含不能加逗号、回车和空格,因为这 些也算是字符。所以在输入时也不可以有任何间隔符号。 (16)【答案】D) 【解析】字符常量有两种表示方法: 一种是用该字符的图形符号,如'b' ,'y','*'。另外还可以用字符的 ASCII 码 表示,即用反斜符(\)开头,后跟字符的 ASCII 码,这种方法也称为转义序列表示 法,具体方法是:有两种形式:一种是用字符的八进制 ASCII 码,表示为:\odd. 这里,ddd 是八进制值(o 可以省略)。另一种使用字符的十六进制 ASCII 码值,表 示为 \0xhh 或 0Xhh 这里 hh 是两位十六进制值。 本题中 D)选项?\019'使用是八进制表示,不应该出现 9,所以错误。 (17)【答案】A) 【解析】考察 C 语言关于赋值的应用,首先执行 a-=a-5,即 a=a-(a-5),使 得 a 的值为 5,然后执行 c=(a-=a-5),即将 a 的值 5 赋给变量 c,使得 c 的值也 为 5。然后执行下句逗号表达式中的 a=b,把 b 的值 0 赋给 a,此时 a 的值为 0, 然后执行 b=b+4,使得 b 的值为 4。最后打印输出。 (18)【答案】D) 【解析】本题考察自增运算符,++x 表示先将 x 值加 1 后再用,x++表示先 使用 x 值,用后加 1,所以本题中 ABC 选项都会输出 x+1 的值,只有 D 选项会输 出 x 值。 (19)【答案】C) 【解析】在 C 语言中非 0 的值表示真,0 表示假。 (20)【答案】A) 【解析】考察 if 语句和自增自减运算符,判断条件中 if(a++&9)是先用后加, 即 a 的值为 9, 所以条件不成立, 但是 a 已经进行了自增 1 操作, 的值此时为 10。 a 执行 else 语句时,因为打印 a--,是先用后减,所以先输出 10,然后 a 的值变为 9。 (21)【答案】C) 【解析】本题考察 switch 语句的应用,case 分支后面如果没有 break,那么 就会顺序执行下面的 case,直到遇到 break 跳出。所以第一次循环后 s 的值为 3 打印输出。第二次 s 的值为:s=s+3,s=s+4,即为 10,打印输出。第三次没有 匹配成功直接执行 default 语句,s=s+4,所以 s 的值为 14,打印输出。 (22)【答案】A) 【解析】考察 for 循环语句,本题中 k 初始值为-1,执行一次循环体,执行完 后 k 值为 0,不满足 k&0 条件,推出循环,所以执行了一次。 (23)【答案】C) 【解析】考察 for 语句和 if 语句,第一次循环 a 的值为 0 ,a%2 也为 0 ,条 件不满足所以打印的是(c+a)即变量 c 的值“A”。第二次 a 的值为 1,条件 a%2 的 值为 1,条件满足打印字符(b+a)即字符 “2”。第三次 a 的值为 2,条件不满足, 打印(a+c)即字符”C”。同理打印后续字符为“4E6”。 (24)【答案】A) 【解析】考察数组和指针的概念,本题中*k 指向数组 m 的首地址。*(k+2) 现将指针后移两个元素,即为 m[2]的首地址,然后取出 m[2]的值 6,所以选择 A 选项。选项 B 的值是一个地址无意义。选项 C 的值为 4。选项 D 使得 m[0]的值为 4。 (25)【答案】D) 【解析】考察指针的概念和应用,数组名本身就是地址,所以不需要在用&符 号。C 选项不能对所有元素赋值而是反复再给一个数值赋值且是死循环。 (26)【答案】B) 【解析】函数中的形参 a[]已经退化为一个指针,所以 AC 都不对,D 选项中 只是传入一个指针,并没有把数组的元素挨个赋值,正确选项为 B。 (27)【答案】A) 【解析】选项 A 中 a = /*p1-m;表示方式不正确,未能正确表示出含义。 (28)【答案】D) 【解析】考察指针数组的概念,D 选项中 str 为二维字符数组,不能够直接把 一个字符串赋值到二维数组的某一行中。 (29)【答案】C) 【解析】考察函数声明基本用法,C 选项中函数的第一形参没有指名是数组, 代表的是一个整型数,声明不正确。 (30)【答案】B) 【解析】考察转义字符的用法,strlen 函数的作用是求得字符串长度,\n 与\1 均是反义字符各表示一个字符所以打印值为 8。 (31)【答案】C) 【解析】考察 scanf 和 gets 输入字符串的区别,scanf 语句接收字符时遇到 空格就作为一个字符串的结束, 所以 a 数组中为 this , 数组中为 is, b 但是 getchar 函数见到回车才认为结束所以 c 数组为 a cat!。所以打印结果如选项 C。 (32)【答案】A) 【解析】考察函数的嵌套调用,当运行 fun(?z?),调用 fun(?y?),然后嵌套调 用 fun(?x?),输出结果为先输出 x,然后输出 y,最后输出 z。 (33)【答案】D) 【解析】考察 for 循环函数调用,执行 fun(3)是输出****,然后输出#,执 行 fun(4)时输出*****,然后输出#,所以选项 D)正确。 (34)【答案】D) 【解析】考察静态局部变量,静态局部变量属于静态存储方式,它具有以下特 点: (1)静态局部变量在函数内定义,它的生存期为整个源程序。 (2)静态局部变量只能在定义该变量的函数内使用该变量。退出该函数后, 尽 管该变量还继续存在,但不能使用它。 (3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋以 0 值。 (4) 根据静态局部变量的特点, 可以看出它是一种生存期为整个源文件的量。 虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使 用,而且保存了前次被调用后留下的值。 根据这个特点, 函数第一次调用时, 会将数组 a 变为 35345, 当第二次调用时, 函数内的 j 值为 2, 所以会将数组 a 的第三个元素更改为 7, 所以最终结果为 35745, 选项 D)正确。 (35)【答案】B) 【解析】考察宏定义的使用,根据该宏的定义,S(k+j)=(k+j)*k+j*2=39, S(k-j)=(k-j)*k-j*2=11,所以答案为 39,11 选项 B)正确。 (36)【答案】D) 【解析】通过分析代码,可以看出来,函数的作用就是把数组某个元素的变为 这个元素位置加 5 后对用的元素值, 所以执行完之后输出数组 x 的前五个元素的值, 其实就是数组 x 的后五个元素的值,即 6 7 8 9 10。 (37)【答案】C) 【解析】考察结构体的用法,在引用结构体中的成员变量时,可以使用?.?来引 用,当指针指向结构体时,可以使用?-&?来指向结构体重的成员,C 选项引用错误。 (38)【答案】B) 【解析】考察结构体的用法,结构体数组存储了三个人的信息,x+2 代表了指 向第三个元素,所以输出 name 为 Zhao。 (39)【答案】D) 【解析】考察移位操作,执行 c=(a&&2)&&1 语句时,首先是 a 左移两位, 其等效于将 a 乘以 4,得到 48,然后将 48 左移一位,相当于是乘以 2,所以结果 为 c=96,选项 D 正确。 (40)【答案】A) 【解析】考察文件的操作,函数 ftell() 用于得到文件位置指针当前位置相对 于文件首的偏移字节数。在随机方式存取文件时,由于文件位置频繁的前后移动, 程序不容易确定文件的当前位置。调用函数 ftell()就能非常容易地确定文件的当前 位置。不能写入数据,其他三个选项都可以向文件中写入。 二、填空题 (1)【答案】【1】n-1 【解析】在顺序表中删除一个元素,最坏情况是删除第一个元素,后面的(n-1) 个元素均要向前移动,所以此处填 n-1。 (2)【答案】【2】29 【解析】通过题干的描述可知此循环队列共 30 个空间,另外队尾指针 rear 的 值小于队头指针 front 的值,所以利用公式(rear-front+30)%30=29,可知此循 环队列的元素个数为 29。 (3)【答案】【3】数据操纵语言 【解析】数据操纵语言 DML(Data Manipulation Language),用户通过它 可以实现对数据库的基本操作。例如,对表中数据的查询、插入、删除和修改。 在 DML 中,应用程序可以对数据库作插、删、改、排、检等五种操作。 (4)【答案】【4】关系 【解析】关系数据库逻辑设计的主要工作是将 E-R 图转换成指定 RDBMS 中的 关系模式,这种转换是比较直接的,实体与联系都可以表示成关系。 (5)【答案】【5】面向对象方法 【解析】 面向对象方法是一种基于对象模型的程序设计方法,包括面向对象分析、 面向对象设计、面向对象编程,是目前应用范围最广的设计方法。其中对象模型包 括六个要素:封装、抽象、模块化、层次结构、类、并发性。面向对象方法的主要 特征是封装、继承和多态性,所以此空应填面向对象方法。 (6)【答案】a=1,b=2 【解析】scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入 的信息,其调用格式为: scanf(&&格式化字符串&&,&地址 表&),scanf(&a=%d,b=%d&,&a,&b)中 a=%d,b=%d 之间有逗号,在输入数据 时也要加逗号,如果去掉逗号,输入时就不用逗号,而用空格,tab 键或回车键将 各个数据隔开。 (7)【答案】2 【解析】a+=a%=9; 其中 a%=9 等价于 a=a%9; 结果为 1, 所以 a+=a%=9 等价于 a=a+1,故答案为 2. (8)【答案】2 【解析】a||b 若 a,b 都为假,则 a||b 为假,其他都为真. 如果 a 为真时,则对 b 不进行真假,所以对于 c=a++||b++, 因为 a++时为真,所以 b++不进行判断,b 的值保持不变,故 b=2。 (9)【答案】k&=n 【解析】for 和 while 都是循环语句,可以实现相同的功能.。 (10)【答案】074 【解析】本题第一次循环时 a 的值为 0,b 的值为 0 所以打印字符?0?。第二次 循环时 a 的值为 7,b 的值为 7,所以打印字符?7?。第三次 a 的值为 14,b 的值为 4,打印字符?4?。 (11)【答案】rgb 【解析】char * ch[4]是指针数组,数组元素全为 char 类型指针, 由于数组元 素均为指针, 因此 ch[i]是指第 i 个字符串的指针,ch[i][0]为指向第 i 个字符串的首 地址。 (12)【答案】572 【解析】第一次循环打印 arr[10%8]即 arr[2]的值,为 5。第二次循环打印 arr[11%8]即 arr[3]的值,为 7。第三次循环打印 arr[12%8]即 arr[4]的值,为 2。 (13)【答案】a[i] 【解析】char *a[] 为指针数组, a[i]为指向第 i 个字符串的指针。 (14)【答案】cab 【解析】p=q=r=(char*)malloc(sizeof(char)*20);等价于 r=(char*)malloc(sizeof(char)*20); q=r; p=q,所以 p,q,r,指向相同的地址。 (15)【答案】test 【解析】fopen 函数功能是打开一个文件,函数原型 FILE * fopen(const char * path,const char * mode); 当 mode 为 w+,若文件存在则文件长度清为零, 即该文件内容会消失。若文件不存在则建立该文件.fputs 将字符串写入到 fp 中.所 以文件内容为 test。2011 年 9 月全国计算机等级考试二级笔试试卷 C 语言程序设计 一、选择题 下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的。 (1)下列叙述中正确的是(D)。 A)算法就是程序 B)设计算法时只需要考虑数据结构的设计 C)设计算法时只需要考虑结果的可靠性 D)以上 三种说法都不对 (2)下列关于线性链表的叙述中,正确的是(C)。 A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致 B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续 C)进行插入与删除时,不需要移动表中的元素 D)以上三种说法都不对 (3)下列关于二叉树的叙述中,正确的是(B)。 A)叶子结点总是比度为 2 的结点少一个 B)叶子结点总是比度为 2 的结点多一个 C)叶子结点数是度为 2 的结点数的两倍 D)度为 2 的结点数是度为 1 的结点数的两倍 (4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是(A)。 A)学生成绩管理系统 B)C 语言编译程序 C)UNIX 操作系统 D)数据库管理系统 (5)某系统总体结构图如下图所示:该系统总体结构图的深度是(C)。 A)7 B)6 C)3 D)2 (6)程序调试的任务是(D)。 A)设计测试用例 B)验证程序的正确性 C)发现程序中的错误 D)诊断和改正程序中的错误 (7)下列关于数据库设计的叙述中,正确的是(A)。 A)在需求分析阶段建立数据字典 B)在概念设计阶段建立数据字典 C)在逻辑设计阶段建立数据字典 D)在物理设计阶段建立数据字典 (8)数据库系统的三级模式不包括(D)。 A)概念模式 B)内模式 C)外模式 D)数据模式 (9)有三个关系 R、S 利 T 如下:则由关系 R 和 S 得到关系 T 的操作是(B)。 A)自然连接 B)差 C)交 D)并 (10)下列选项中属于面向对象设计方法主要特征的是(A)。 A)继承 B)自顶向下 C)模块化 D)逐步求精 (11)以下叙述中错误的是(C)。 A)C 语言编写的函数源程序,其文件名后缀可以是.C B)C 语言编写的函数都可以作为一个独立的源程序文件 C)C 语言编写的每个函数都可以进行独立的编译并执行 D)一个 C 语言程序只能有一个主函数 (12)以下选项中关于程序模块化的叙述错误的是(C)。 A)把程序分成若干相对独立的模块,可便于编码和调试 B)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块 C)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 D)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序 (13)以下选项中关于 C 语言常量的叙述错误的是(D)。 A)所谓常量,是指在程序运行过程中,其值不能被改变的量 B)常量分为整型常量、实型常量、字符常量和字符串常量 C)常量可分为数值型常量和非数值型常量 D)经常被使用的变量可以定义成常量 (14)若有定义语句:int a=10;double b=3.14;,则表达式'A'+a+b 值的类型是(C)。 A)char B)int C)double D)float (15)若有定义语句:int x=12,y=8,z;,在其后执行语句 z=0.9+x/y;,则 z 的值为(B)。 A)1.9 B)1 C)2 D)2.4 (16)若有定义:int a,b;,通过语句 scanf(&%d;%d&,&a,&b);,能把整数 3 赋给变量 a,5 赋给变量 b 的输 入数据是( C)。 A)3 5 B)3,5 C)3;5 D)35 (17)若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1 和 l(2 的值分别为 ( B)。 A)0 和 1 B)0 和 20 C)10 和 1 D)10 和 20 (18)有以下程序 #include<stdio.h> main() { int a=1,b=0; if(--a)b++; else if(a==0) b+=2; else b+=3; printf(&%d\n&,b); } 程序运行后的输出结果是( C)。 A)0 B)1 C)2 D)3 (19)下列条件语句中,输出结果与其他语句不同的是( D)。 A)if(a)printf(&%d\-n&,x); else printf(&%d\n&,y); B)if(a==0)printf(&%d\n&,y); else printf(&%d\n&,x); C)if(a!=0)printf(&%d\n&,x); else printf(&%d\n&,y); D)if(a==0)printf(&%d\n&,x); else printf(&%d\n&,y); (20)有以下程序 #include <stdio.h> main() { int a=7; while(a--); pfintf(&%d\n&,a); } 程序运行后的输出结果是(A )。 A)-1 B)0 C)1 D)7 (21)以下不能输出字符 A 的语句是(注:字符 A 的 ASCII 码值为 65,字符 a 的 ASCII 码值为 97)( B ) A)printf(“%c\n&,'a'-32); B)printf(&%d\n&,'A'); C)printf(&%c\n&,65); D)printf(&%c\n&,'B'-1); (22)有以下程序(注:字符 a 的 ASCII 码值为 97) #include<stdio.h> main() { char*s={&abc&}; do { printf(&%d&,&s%10);++s;) while(*s); } 程序运行后的输出结果是( B)。 A)abc B)789 C)7890 D))若有定义语句:double a,*p=&a;以下叙述中错误的是(A )。 A)定义语句中的+号是一个间址运算符 B)定义语句中的*号只是一个说明符 C)定义语句中的 p 只能存放 double 类型变量的地址 D)定义语句中,*p=&a 把变量 a 的地址作为初值赋给指针变量 p (24)有以下程序 #include<stdio.h> double f(double x); main() { double a=0; for(i=0;i<30;i+=10)a+=f(double)i); printf(&%5.0f\n&,a); } double f(double x) {return x*x+1;} 程序运行后的输出结果是( A)。 A)503 B)401 C)500 D)1404 (25)若有定义语句:int year=2009,*p=&,以下不能使变量 year 中的值增至 2010 的语句是(D )。 A)*p+=1; B)(*p)++; C)++(*p); D)*p++; (26)以下定义数组的语句中错误的是( C )。 A)int num[]={1,2,3,4,5,6}; B)int num[][3]={{1,2},3,4,5,6); C)int num[2][4]=({1,2},{3,4},{5,6)); D)int num[][4]={1,2,3,4,5,6}; (27)有以下程序 #include <stdio.h> void fun(int *p) { printf(&%d\n&,p[5]);} main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; fun(&a[3]); } 程序运行后的输出结果是( D )。 A)5 B)6 C)8 D)9 (28)有以下程序 #include<stdio.h> #define N 4 void fun(int a[][N],int b[]) { for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i]; } void main() { int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i; fun(x,y); for(i=0;i<N;i++)printf(&%d,&,y[i]);printf(&\n&); } 程序运行后的输出结果是(B )。 A)-12,-3,0,0, B)-3,-1,1,3, C)0,1,2,3, D)-3,-3,-3,-3, (29)有以下函数 int fun(char *x,char *y) { int n=0; while((*x==*y)&&*x!='\0'){x++; y++; n++;} } 函数的功能是( B )。 A)查找 x 和 y 所指字符串中是否有'\0' B)统计 x 和 y 所指字符串中最前面连续相同的字符个数 C)将 y 所指字符串赋给 x 所指存储空间 D)统计 x 和 y 所指字符串中相同的字符个数 (30)若有定义语句:char *s1=&OK&,*s2=&ok&;,以下选项中,能够输出&OK&的语句是( D )。 A)if(strcmp(s1,s2)==0) puts(s1); B)if(strcmp(s1,s2)!=0) puts(s2); C)if(strcmp(s1,s2)==1) puts(s1,); D)if(strcmp(s1,s2)!=0)puts(s1); (31)以下程序的主函数中调用了在其前面定义的 fun 函数 #include <stdio.h> ☆ main() { double a[15],k; k=fun(a); ☆ } 则以下选项中错误的 fun 函数受部是( D )。 A)double fun(double a[15]) B)double fun(double *a) C)double fun(double a[]) D)double fun(double a) (32)有以下程序 #include<stdio.h> #include<string.h> main() {char a[5][10]={&china&,&beijing&,&you&,&tiananmen&,&welcome&); int i,j; char t[10]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(strcmp(a[i],a[j])>0) {strcpy(t,a[i]);strcpy(a[i],a[j]);strcpy(a[j],t);} puts(a[3]); } 程序运行后的输出结果是( C )。 A)Beijing B)china C)welcome D)tiananmen (33)有以下程序 #include<stdio.h> int f(int m) { static int n=0; n+=m; } main() { int n=0; printf(&%d,&,f(++n)); printf(&%d\n&,f(n++)); } 程序运行后的输出结果是( A )。 A)1,2 B)1,1 C)2,3 D)3,3 (34)有以下程序 #include<stdio.h> main() {char ch[3][5]={&AAAA&,&BBB&,&CC&}; printf(&%s\n&,ch[1]); } 程序运行后的输出结果是( D )。 A)AAAA B)CC C)BBBCC D)BBB (35)有以下程序 #include<stdio.h> #include<string.h> void fun(char*w,int m) {char s,*p1,*p2; p1=w;p2=w+m-1; while(p1<p2){s=*p1;*p1=*p2;*p2=s;p1++;p2--;} } main() {char a[]=&123456&; fun(a,strlen(a));puts(a); } 程序运行后的输出结果是( A )。 A)654321 B)116611 C)161616 D))有以下程序 #include<stdio.h> #include<string.h> typedef struct{char name[9];int score[2];}STU; STU f(STU a) { STU b={&Zhao&,'m',85,90); strcpy(a.name,b.name); a.sex=b. for(i=0;i<2;i++)a.score[i]=b.score[i]; } main() { STU c={&Qian&,'f',95,92),d; d=f(c); printf(&%s,%c,%d,%d,&,d.name,d.sex,d.score[0],d.score[1]); printf(&%s,%c,%d,%d,&,c.name,c.sex,c.score[0],c.score[1]); } 程序运行后的输出结果是( A )。 A)Zhao,m,85,90,Qian,f,95,92 B)Zhao,m,85,90,Zhao,m,85,90 C)Qian,f,95,92,Qian,f,95,92 D)Qian,f,95,92,Zhao,m,85,90 (37)有以下程序 #include<stdio.h> main() { struct node{struct node *} *p; struct node x[3]={{2,x+1},{4,x+2},{6,NULL}}; p=x; printf(&%d,&,p->n); printf(&%d\n&,p->next->n); } 程序运行后的输出结果是( B )。 A)2,3 B)2,4 C)3,4 D)4,6 (38)有以下程序 #include<stdio.h> main() { int a=2,b; b=a<<2;pfinff(&%d\n&,b); } 程序运行后的输出结果是( D )。 A)2 B)4 C)6 D)8 (39)以下选项中叙述错误的是( A )。 A)C 程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值 B)在 C 程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内 C)C 程序函数中定义的自动变量,系统不自动赋确定的初值 D)C 程序函数的形参不可以说明为 static 型变量 (40)有以下程序 #include<stdio.h> main() { FILE* int k,n,i,a[6]={1,2,3,4,5,6}; fp=fopen(&d2.dat&,&w&); for(i=0;i<6;i++)fprintfffp,&%d\n&,a[i]); fclose(fp); fp=fopen(&d2.dat&,&r&); for(i=0;i<3;i++)fscanf(fp,&%d%d&,&k,&n); fclose(fp); printf(&%d,%d\n&,k,n); } 程序运行后的输出结果是( C )。 A)1,2 B)3,4 C)5,6 D)123,456 二、填空题 请将每空的正确答案写在横线上。 (1)数据结构分为线性结构与非线性结构,带链的栈属于______。 (2)在长度为 n 的顺序存储的线性表中插入一个元素,最坏情况下需要移动表中______个元素。 (3)常见的软件开发方法有结构化方法和面向对象方法。对某应用系统经过需求分析建立数据流图(DFD), 则应采用______方法。 (4)数据库系统的核心是______。 (5)在进行关系数据库的逻辑设计时, 图中的属性常被转换为关系中的属性, E-R 联系通常被转换为______。 (6)若程序中已给整型变量 a 和 b 赋值 10 和 20,请写出按以下格式输出 a、b 值的语句______。 ****a=10,b=20**** (7)以下程序运行后的输出结果是______。 #include<stdio.h> main() { int a=37; a%=9;printf(&%d\n&,a); } (8)以下程序运行后的输出结果是______。 #include<stdio.h> main() { int i,j; for(i=6;i>3;i--)j=i; printf(&%d%d\n&,i,j); } (9)以下程序运行后的输出结果是______。 #include<stdio.h> main() { int i,n[]={0,0,0,0,0); for(i=1;i<=2;i++) {n[i]=n[i-1]*3+1; printf(&%d&,n[i]); } printf(&\n&); } (10)以下程序运行后的输出结果是______。 #include<stdio.h> main() { for(a=0;a<15;a+=5) { putchar(a+'A');} printf(&\n&); } (11)以下程序运行后的输出结果是______。 #include<stdio.h> void fun(int x) { if(x/5>0)fun(x/5); printf(&%d&,x); } main() { fun(11);pfintf(&\n&);} (12)有以下程序 #include<stdio.h> main() { int c[3]={0},k,i; while((k=getchar())!='\n') c[k-'A']++; for(i=0;i<3;i++)printf(&%d&,c[i]);printf(&\n&); } 若程序运行时从键盘输入 ABCACC<回车>,则输出结果为______。 (13)以下程序运行后的输出结果是______。 #include<stdio.h> main() { int n[2],i,j; for(i=0;i<2;i++)n[i]=0; for(i=0;i<2;i++) for(j=0;j<2;j++)n[j]=n[i]+1; printf(&%d\n&,n[1]); } (14)以下程序调用 fun 函数把 x 中的值插入到 a 数组下标为 k 的数组元素中。主函数中,n 存放 a 数组中 数据的个数。请填空。 #include<stdio.h> void fun(int s[],int *n,int k,int x) { for(i=*n-1;i>=k;i--)s[ (14) ]=s[i]; s[k]=x; *n=*n+ (15) ; } main() {int a[20]={1,2,3,4,5,6,7,8,9,10,11},i,x=0,k=6,n=11; fun(a,&n,k,x); for(i=0,i<n,i++)printf(&%4d&,a[i]);printf(&\n&); } 2011 年 9 月全国计算机等级考试二级 C 语言程序设计答案及详解 一、选择题 (1)D) [解析] 所谓算法是指解题方案的准确而完整的描述。是一组严谨地定义运算顺序的规则,并且每一 个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。算法不等于程序,也不等于计算方法。 设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。 (2)C) [解析] 线性表的链式存储结构称为线性链表。在链式存储结构中,存储数据结构的存储空间可以不 连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指 针域来确定的。 (3)B) [解析] 由二叉树的性质可以知道在二叉树中叶子结点总是比度为 2 的结点多一个。 (4)A) [解析] 学生成绩管理系统为应用软件。 (5)C) [解析] 这个系统总体结构图是一棵树结构,在树结构中,根结点在第 1 层,同一层上所有子结点都 在下一层,由系统总体结构图可知,这棵树共 3 层。在树结构中,树的最大层次称为树的深度。所以这棵 树的深度为 3。 (6)D) [解析] 所谓程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正 语法错误和逻辑错误的过程。其任务是诊断和改正程序中的错误。 (7)A) [解析] 数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若 干阶段。分别是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、 运行阶段、进一步修改阶段。数据字典是对系统中数据的详尽描述,是各类数据属性的清单。对数据设计 来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。 (8)D) [解析] 数据库系统的三级模式包括概念模式、外模式和内模式(物理模式)。 (9)B) [解析] 由三个关系 R、S 和 T 的结构可以知道,关系 T 是由关系 R、S 经过差运算得到的。 (10)A) [解析] 面向对象设计方法的主要特征有封装性、继承性和多态性。而结构化程序设计方法的主要 原则有自顶向下,逐步求精,模块化,限制使用 goto 语句。 (11)C) [解析] C 语言程序是从 main 函数开始执行的,每一个函数可以进行独立的编译。 (12)C) [解析] 如果应用结构化程序设计方法设计程序,那么可采用自顶向下,逐步细化的设计方法把若 干独立模块组装成所要求的程序。 (13)D) [解析] 常量指在程序运行过程中,其值不能被改变的量。常量分为整型常量,也就是整常数,实 型常量,字符型常量和字符串常量。常量也可以按数据类型分为为数据常量和非数据常量。变量是指在程 序运行过程中,其值能被改变的量。 (14)C) [解析] 在 C 语言中不同类型的数据进行运算时,除了强制数据类型转换外,都要进行默认的数据 类型转换, 通常转换为精度较高的数据类型。 对于本题来说, 字符型数据'A'与整型 a 相加转换为整型数据, 其和再与双精度型数据 b 相加,要转换为双精度型数据。 (15)B) [解析] 由于 x,y,z 都是整型数据,所以 x 除以 y 的值为整型数值 1,1 和 0.9 相加得到 1.9,再转 换为整型数 1 赋给整型变量 z。 (16)C) [解析] 在采用 scanf 这个函数输入数据时,要严格遵守其输入的规则定义。本题此函数定义的规 则是,在两个整数之间加分号输入。 (17)B) [解析] 由于 k1 等于 10,k2 等于 20,所以关系表达式 k1>k2 的值为假,即等于 0,所以在执行逻 辑表达式(k1=k1>k2)&&(k2=k2>k1)的第一个赋值表达式 k1=k1>k2 执行后,k1 的值等于 0。又因为在逻 辑与表达式中只要第一表达式的值为假时, 整个逻辑表达式的值就为假, 第二表达式不执行,k2 值不改变。 (18)C) [解析] 由于变量 a 的初始值等于 1,所以在程序中执行 if(--a)后,a 的值等于 0,执行 else if(a==0)b+=2;这条语句后,变量 b 的值等于 2。 (19)D) [解析] 选项 A)、B)、C)这三条语句都是在变量不等于 0 的情况下,输出 x;等于 0 的情况下输出 y,而选项 D)则正好相反。 (20)A) [解析] 在 while 语句中,先判断 while 后面的表达式是否为 0,如果为 0,则退出循环,否则执行 循环体。在本题中,当变量 a 的值经过几次循环后,其值等于 0 时,退出 while 循环语句,变量 a 再执行 自减运算,所以其值等于-1。 (21)B) [解析] 在选项 B)的输出函数中,大写字符'A'以整型数据的形式输出。 (22)B) [解析] 因为小写字符 a,b,c 的 ASCII 的值分别为 97,98,99,而在 do while 循环语句中,每次 对字符的 ASCII 的值取余数并输出,第一次循环输出 7,第二次循环输出 8,第三次循环输出 9。 (23)A) [解析] 在指针定义语句 double a,*p=&a 中,指针变量 p 前面的*号,只是一个说明符,说明变量 p 是指针类型的变量。 (24)A) [解析] 由于函数 f 的作用是对形参 x 求平方再加 1,所在在主函数中,循环第一次执行后变量 a 的值等于 1,第二次执行后,变量 a 的值等于 102,第三次执行后,变量 a 的值等于 503。 (25)D) [解析] 由于自加运算符++的运算级高于间接运算*的运算级,所以选项 D)的表达式*p++不能使变 量 year 中的值增至 2010。 (26)C) [解析] 在选项 C)的数组定义中,赋值号左边定义了一个 2 行 4 列的二维数组,而在右边定义了一 个 3 行 2 列的二维数组。 (27)D) [解析] 函数 fun 的功能是输出数组 p 的第 5 个元素, 在主函数中, 把元素 a[3]的地址赋给函数 fun, 因为在 C 语言中,数组的下标是从 0 开始,所以输出数组 a 中的第 8 个元素,即 9。 (28)B) [解析] fun 函数的功能是求出二维数组 a 中第 i 行第 i 个元素与第 N-1-i 元素的差,赋给 b[i]。 在主函数中,把实参二维数组 x 和一维数组 y 传递给形参 a 和 b,最后输出一维数组 y 中元素的值。 (29)B) [解析] 在 while 循环中的判断表达式为(*x==*y)&&*x!='\0',所以只要字符串 x 与 y 的当前字符 不相等时,循环就结束。 (30)D) [解析] 字符串比较函数 strcmp 的功能是对 s1 和 s2 所指字符串进行比较。如果 s1<s2,返回负 数,如果 s1=s2,返回 0,如果 s1>s2,返回正数,所以对于本题来说,能够输出“OK”的语句是 D)选项 所指的语句。 (31)D) [解析] 由函数 fun 在主函数中的调用形式可以看出,函数 fun()的函数返回值类型为 double,形 参为一维数组或指针变量。 (32)C) [解析] 由程序中的两层 for 循环可知, 对数组串数组进行从小到大的排序, 所以字符串数组 a[][], 经过排序后值应该为{&beijing&,&china&,&tiananmen&,&welcome&,&you&),输出字符串 a[3]的值为 “welcome”。 (33)A) [解析] 由于在函数 f 中,变量 n 为静态局部变量,所以在主函数中第一次调用函数 f 后,变量 n 的值等于 1,当第二调用函数 f 时,在函数 f 的内部静态局部变量 n 的值仍然保留等于 1,所以返回函数值 等于 2。 (34)D) [解析] 字符串数组 ch 的元素下标是从 0 开始的,所以数组元素 ch[1]值为字符串“BBB”。 (35)A) [解析] 函数 fun 的功能是将字符串 w 中的元素从大到小进行排列,所以在主函数中调用函数 fun 后,字符串 a 的元素从大到小进行了排列。 (36)A) [解析] 在 C 语言中,函数实参与形参之间数据的传递是传值,也就是说在用实参调用形参时,是 把实参的值拷贝一份给形参, 而实参的值并不变化, 仍是原来的值。 所以对于本题来说, 在主函数中调 f(e) 后,实参 e 的值并不会变化,仍是原值。在函数 f 中把局部变量 b 的值依次返回给变量 d。 (37)B) [解析] 在程序中由结构休 node 的数组 x[3]组成了一个线性链表, 指针 p 指向链表的第一结点 x[0], 所以首先输出 2,p->next 指向第二个结点 x[1],所以输出 4。 (38)D) [解析] 表达式 a<<2,把 a 向左移动 2 位,相当于扩大 4 倍。 (39)A) [解析] 在函数定义的静态变量,只需要赋值 1 次,即可保存初始值,不需要每次调用时都赋初始 值。 (40)C) [解析] 在程序中首先把数组 a 中的各个元素写入到文件 d2.dat 中,然后利用循环语句每次从 d2.dat 中读出两个元素赋给变量 k,n;,循环共执行 3 次,所以最后变量 k,n 的随等于 5,6。 二、填空题 (1)线性结构 [解析] 一般将数据结构分为线性结构与非线性结构两大类。如果一个非空的数据结构满足以下两个条件: ①有且只有一个根结点; ②每一个结点最多有一个前件,也最多有一个后件。 则称该数据结构为线性结构,所以带链栈为线性结构。 (2)n [解析] 在顺序存储的线性表中插入一个元素时, 一般是从最后的元素向后移动一位, 移动到插入的位置后, 插入元素。在最坏情况下,需要移动 n 个元素。 (3)结构化 [解析] 采用结构化方法开发软件时,需求分析阶段建立数据流图。 (4)数据库管理系统 (或 DBMS) [解析] 一般认为,数据库系统包括四个部分:数据库、数据库管理系统、数据库应用程序、数据库管理员。 其中 DBMS 是为数据库的建立、使用和维护而配置的软件,是数据库系统的核心。 (5)关系 [解析] 在实体-关系图中的联系通常被转换为关系。 (6)printf(&****a=%d,b=%d****&,a,b); [解析] 要按照题目所要求的格式****a=10,b=20****输出,所以要在输出函数的格式中定义 ****a=%d,b=%d****料这个字符串。 (7)1 [解析] 37 对 9 求余数其值等于 1。 (8)34 [解析] 在 for 循环中,当变量 i 的值等于 4 时,把 4 赋给变量 j,同时变量 i 的值减 1 等于 3,所以程序 输出结果为 34。 (9)14 [解析] 在 for 循环第一次执行结束后,n[1]的值等于 1,输出 1;循环第二次执行结束后,n[2]的值等于 4,输出 4,所以输出结果为 14。 (10)AFK [解析] 在程序中,for 循环共执行三次,第一次输出字符 A,第二次输出字符 F,第三次输出字符 K。 (11)211 [解析] 这个题目主要考查函数的递归调用,当把实参 11 传递给形参 x 时,因为 11 除以 5 得 2,所以要调 用 f(2),输出 2,再执行 f(11)中的输出语句,输出 11。所以结果为 211。 (12)213 [解析] 这个题目考查的是从键盘输入的大写字母的个数, 数组元素 c[0]存放的是大写字母 A 的个数, c[1] 存放的是大写字母 B 的个数,c[2]存放的是大写字母 C 的个数,所以当从键盘输出 ABCACC 时,输出结果为 213。 (13)3 [解析] 在两层 for 循环中当外层的循环变量 i 的值等于 0 时,执行内层的 for 循环,其结果是 n[0]=1, n[1]=2;,当外层的循环变量 i 的值等于 1 时,执行内层的 for 循环,其结果是 n[0]=3,n[1]=3;,所以结 果为 3。 (14)i+1 [解析] 在函数 fun 中,使用 for 循环语句,把数组 s[]中下标大于 k 的元素向后移动一位,所以应该填入 i+1。 (15)1 [解析] 因为变量 n 的值表示数组元素的个数,插入一个元素后,其值加 1,所以填入 2010 年 9 月全国计算机等级考试二级笔试试卷 C 语言程序设计 一、选择题 下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的 (1) 下列叙述中正确的是( )。 A) 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 B) 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C) 线性表的链式存储结构所需要的存储空唰一般要少于顺序存储结构 D) 上述三种说法都不对 (2) 下列叙述中正确的是( )。 A) 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 B) 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 C) 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D) 上述三种说法都不对 (3) 软件测试的目的是( )。 A) 评估软件可靠性 B) 发现并改正程序中的错误 C) 改正程序中的错误 D) 发现程序中的错误 (4) 下面描述中,不属于软件危机表现的是( A) 软件过程不规范 B) 软件开发生产率低 C) 软件质量难以控制 D) 软件成本不断提高 (5) 软件生命周期是指( )。 A) 软件产品从提出、实现、使用维护到停止使用退役的过程 B) 软件从需求分析、设计、实现到测试完成的过程 C) 软件的开发过程 D) 软件的运行维护过程 (6) 面向对象方法中,继承是指( )。 A) 一组对象所具有的相似性质 B) 一个对象具有另一个对象的性质 C) 各对象之间的共同性质 D) 类之间共享属性和操作的机制 (7) 层次型、网状型和关系型数据库划分原则是( A) 记录长度 B) 文件的大小 C) 联系的复杂程度 D) 数据之间的联系方式 (8) 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之 间的联系是( )。 A) 一对一 B) 一对多 C) 多对多 D) 多对一 (9) 数据库设计中反映用户对数据要求的模式是( A) 内模式 B) 概念模式 C) 外模式 D) 设计模式 (10) 有三个关系 R、S 和 T 如下: )。 )。 )。 则由关系 R 和 S 得到关系 T 的操作是( A) 自然连接 B) 交 C) 投影 D) 并)。(11) 以下关于结构化程序设计的叙述中正确的是( B) 结构化程序使用 goto 语句会很便捷 C) 在 C 语言中,程序的模块化是利用函数实现的 D) 由三种基本结构构成的程序只能解决小规模的问题)。A) 一个结构化程序必须同时由顺序、分支、循环三种结构组成(12) 以下关于简单程序设计的步骤和顺序的说法中正确的是( A) 确定算法后,整理并写出文档,最后进行编码和上机调试)。B) 首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档 C) 先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档 D) 先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构 (13) 以下叙述中错误的是( )。 A) C 程序在运行过程中所有计算都以二进制方式进行 B) C 程序在运行过程中所有计算都以十进制方式进行 C) 所有 C 程序都需要编译链接无误后才能运行 D) C 程序中整型变量只能存放整数,实型变量只能存放浮点数 (14) 有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是( A) a%(int)(x-y) B)a=x!=y; C) (a*y)%b D)y=x+y=x (15) 以下选项中能表示合法常量的是( A) 整数:1,200 B) 实数:1.5E2.0 C) 字符斜杠:'\' D) 字符串:&\007& (16)表达式 a+=a-=a=9 的值是( A) 9 B) -9 C) 18 D) 0 (17) 若变量已正确定义,在 if(W)printf(&%d\n&,k);中,以下不可替代 W 的是( A) a<>b+c B) ch=getchat() C) a==b+c D) a++ (18) 有以下程序: #include<stdio.h> main() {inta=1,b=0; if(!a)b++: else if(a==0) if(a)b+=2; else b+=3: printf(&%d\n&,b); } )。 )。 )。 )。 程序运行后的输出结果是( A) 0 B) 1 C) 2 D) 3)。(19) 若有定义语句 int a,b;double x;则下列选项中没有错误的是( A) switch(x%2) {cage 0:a++;break; case 1:b++;break; default:a++;b++; } B) switch((int)x/2.0) {ease 0:a++;break; case 1:b++;break; default:a++;b++; } C) switch((int)x%2) {case 0:a++;break; case 1:b++;break; default:a++;b++; } D) switch((int)(x)%2) {case 0.0:a++;break; case 1.0:b++;break; default:a++;b++; } (20) 有以下程序 #include<stdio.h> main() {int a=1,b=2; while(a<6){b+=a;a+=2;b%=10;} printf(&%d,%d、n&,a,b); } 程序运行后的输出结果是( A) 5,11 B) 7,1 C) 7,11 D) 6,1 (21) 有以下程序 #include<stdio.b> main() {int y=10; While(y-); printf(&y=%d\n&,y); } 程序执行后的输出结果是( A) y=0 B) y=-1 C) y=1 D) while 构成无限循环 )。 )。)。 (22) 有以下程序 #include<stdio.h> main() {char S[]=&rstuv&; printf(&%c\n&,*s+2); } 程序运行后的输出结果是( C) t D) 出错 (23) 有以下程序 #include<stdio.h> #include<string.b> main() {char x[]=&STRING&; x[0]=0;x[1]='\0';x[2]='0'; printf(&%d%d\n&,sizeof(x),strlen(x)); } 程序运行后的输出结果是( A) 6 1 B) 7 0 C) 6 3 D) 7 1 (24) 有以下程序 #include<stdio.h> int f(int x); main() {int n=1,m; m=f(f(f(n)));printf(&%d\n&,m); } int f(int x) {return x*2;} 程序运行后的输出结果是( A) 1 B) 2 C) 4 D) 8 (25) 以下程序段完全正确的是( A) int *p;scanf(&%d&,&p); B) int *p;scanf(&%d&,p); C) int k,*p=&k;scanf(&%d&,p) D) int k,*p;*p=&k;scanf(&%d&,p); (26) 有定义语句:int*p[4];以下选项中与此语句等价的是( A) int p[4]; B) int **p; C) int*(p[4]); D) int(*p)[4]; (27) 下列定义数组的语句,正确的是( A)int N=10; B)#define N 10 int x[N]; int x[N]; C) int x[0..10]; D) int x[]; )。 )。 )。 )。 )。 )。 A) tuv B) 字符 t 的 ASCII 码值 (28) 若要定义一个具有 5 个元素的整型数组,以下错误的定义语句是( A) int a[5]={0}; B)int b[]={0,0,0,0,0}; C) int c[2+3]; D) int i=5,d[i]; (29) 有以下程序 #include<stdio.h> void f(int *p); main() {inta[5]={1,2,3,4,5),*r=a; f(r);printf(&%d\n&,*r); } void f(int *P) {p=p+3;printf(&%d,&,*p);} 程序运行后的输出结果是( A) 1,4 B) 4,4 C) 3,1 D) 4,1 (30) 有以下程序(函数 fun 只对下标为偶数的元素进行操作) #include<stdio.h> voidfun(int *a,int n) {int i,j,k,t; for(i=0;i<n-1;i+=2) {k=i; for(j=i;j<n;j+=2)if(a[j]>a[k])k=j; t=a[i];a[i]=a[k];a[k]=t; } } main() {int aa[10]={1,2,3,4,5,6,7),i; fun(aa,7); for(i=0;i<7;i++)printf(&%d,&,aa[i]); printf(&\n&); } 程序运行后的输出结果是( )。 A) 7,2,5,4,3,6,1 B) 1,6,3,4,5,2,7 C) 7,6,5,4,3,2,1 D) 1,7,3,5,6,2,1 )。)。(31) 下列选项中,能够满足“若字符串 s1 等于字符串 s2,则执行 ST”要求的是( A) if(strcpy (s2,s1)==0)ST; B) if(s1==s2)ST; C) if(strcpy(s1,s2)==1)ST; D) if(s1-s2==0)ST; (32) 以下不能将 s 所指字符串正确复制到 t 所指存储空间的是( A) while(*t= *s){t++;s++;) B)for(i=0;t[i]=s[i];i++); C) do{*t++=*s++;}while(*s); D)for(i=0,j=0;t[i++]=s[j++];); (33) 有以下程序(strcat 函数用以连接两个字符串) #include<stdio.h> #include<string.h> main() )。)。 {char a[20]=&ABCD\0EFG\0&,b[]=&IJK&; strcat(a,b);printf(&%s\n&,a); } 程序运行后的输出结果是( C) IJK D) EFGIJK (34) 有以下程序,程序中库函数 islower(ch)用以判断 ch 中的字母是否为小写字母 #include<stdio.h> #include<ctype.h> void fun(char*P) {int i=0; while(p[i]) {if(p[i]==''&&islower(p[i-1))p[i-1]=p[i-1]-'a'+'A'; i++: } } main() {char s1[100]=&ab cd EFG!&; fun(s1);printf(&%s\n&,s1); } 程序运行后的输出结果是( A) ab cd EFG! B) Ab Cd EFg! C) aB cD EFG! D) ab cd EFg! (35) 有以下程序 #include<stdio.h> void fun(int x) {if(x/2>1)fun(x/2); printf(&%d&,x); } main() {fun(7);printf(&\n&);) 程序运行后的输出结果是( A) 1 3 7 B) 7 3 1 C) 7 3 D) 3 7 (36) 有以下程序 #include<stdio.h> int fun() {static int x=1; x+=1;return x: } main() {int i,s=1; for(i=1;i<=5;i++)s+=fun(); printf(&%d\n&,s); )。 )。 )。 A) ABCDE\0FG\0IJK B) ABCDIJK } 程序运行后的输出结果是( A) 11 B) 21 C) 6 D) 120 (37) 有以下程序 #include<stdio.h> #include<stdlib.h> main() {int *a,*b,*c; a=b=c=(int*)malloc(sizeof(int)); *a=1;*b=2,*c=3; a=b: printf(&%d,%d,%d\n&,*a,*b,*c); } 程序运行后的输出结果是( A) 3,3,3 B) 2,2,3 C) 1,2,3 D) 1,1,3 (38) 有以下程序 #include<stdio.h> main() {hat s,t,A=10;double B=6; s=sizeof(A);t=sizeof(B); printf(&%d,%d\n&,s,t); } 在 VC6 平台上编译运行,程序运行后的输出结果是( A) 2,4 B) 4,4 C) 4,8 D) 10,6 (39) 若有以下语句 typedef struct S {int g;char h;}T; 以下叙述中正确的是( )。 A) 可用 S 定义结构体变量 B) 可用 T 定义结构体变量 C) S 是 struct 类型的变量 D) T 是 struct S 类型的变量 (40) 有以下程序 #include<stdio.h> main() {short c=124; c=c______; printf(&%d\n&,c); } 若要使程序的运行结果为 248,应在下划线处填入的是( A) >>2 B) |248 C) & 0248 D) <<1 二、填空题 )。 )。 )。 )。 (1) 一个栈的初始状态为空。首先将元素 5,4,3,2,1 依次入栈,然后退栈一次,再将元素 A,B,C,D 依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为 (1) 。 (2) 在长度为 n 的线性表中,寻找最大项至少需要比较 (2) 次。 (3) 一棵二叉树有 10 个度为 1 的结点,7 个度为 2 的结点,则该二叉树共有 (3) 个结点。 (4) 仅由顺序、选择(分支)和重复(循环)结构构成的程序是 (4) 程序。 (5) 数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和 (5) 。 (6) 以下程序运行后的输出结果是 (6) 。 #include<stdio.h> main() {inta=200,b=010; printf(&%d%d\n&,a,b); } (7) 有以下程序 #include<stdio.h> main() {int x,y; scarf(&%2d%1d&,&x,&y);printf(&%d\n&,x+y); } 程序运行时输入:1234567,程序的运行结果是 (7) 。 (8) 在 C 语言中,当表达式值为 0 时表示逻辑值“假”,当表达式值为 (8) 时表示逻辑值“真”。 (9) 有以下程序 #include<stdio.h> main() {int i,n[]={0,0,0,0,0}; for(i=l;i<=4;i++) {n[i]=n[i-1]*3+1;printf(&%d&,n[i]);} } 程序运行后的输出结果是 (9) . (10) 以下 fun 函数的功能是: 找出具有 N 个元素的一维数组中的最小值, 并作为函数值返回, 请填空。 (设 N 已定义) int fun(int x[N]) {int i,k=0; for(i=0;i<N;i++) if(x[i]<x[k])k= (10) ; return x[k]; } (11) 有以下程序: #inciude<stdio.h> int *f(int *P,int *q); main() {intm=1,n=2,*r=&m; r=f(r,&n);printf(&%d\n&,*r); } int *f(int*p,int*q) {return(*p>*q)?p:q;} 程序运行后的输出结果是 (11) (12) 以下 fun 函数的功能是在 N 行 M 列的整型二维数组中, 选出一个最大值作为函数值返回, 请填空。 (设 M,N 已定义) int fun(int a[N][M]) {inti,j,row=0,co1=0; for(i=0;i<N;i++) for(i=0;j<M;j++) if(a[i][j]>a[row][co1]){row=i;co1=j;} return (12) ; } (13) 有以下程序 #include<stdio.h> main() {int n[2],ij; for(i=0;i<2;i++)n[i]=0; for(i=0;i<2;i++) for(j=0;j<2;j++)n[j]=n[i]+1; printf(&%d\n&,n[1]); } 程序运行后的输出结果是 (13) 。 (14) 以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句 处填写代表最大值的输出项。 #include<stdio.h> main() {int a[10],*P,*s; for(p=a;p-a<10;p++)scanf(&%d&,p); for(p=a,s=a;p-a<10;p++)if(*p>*s) s=p; printf(&max=%d\n&, (14) ; } (15) 以下程序打开新文件 f.txt,并调用字符输出函数将 a 数组中的字符写入其中,请填空。 #include<stdio.h> main() { (15) *fp: char a[5]={'1','2','3','4’,'5'},i; fp=fopen(&f.txt&,&w&); for(i=0;i<5;i++)fputc(a[i],fp); fclose(fp); } 2010 年 9 月 C 语言程序设计参考答案及详解 一、选择题 (1) B) [解析] 线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的,各数 据元素在存储空间中是按逻辑顺序依次存放的。所以每个元素只存储其值就可以了,而在链式存储的方式 中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用 于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大 一些。 (2) C) [解析] 在栈中, 允许插入与删除的一端称为栈顶, 而不允许插入与删除的另一端称为栈底。 栈跟队列不同, 元素只能在栈顶压入或弹出,栈底指针不变,栈中元素随栈顶指针的变化而动态变化,遵循后进先出的规 则。 (3) D) [解析] 软件测试的目的是为了发现程序中的错误,而软件调试是为了更正程序中的错误。 (4) A) [解析] 软件危机主要表现在以下 6 个方面: ①软件需求的增长得不到满足。 ②软件开发成本和进度无法控制。 ③软件质量难以保证。 ④软件不可维护或维护程序非常低。 ⑤软件的成本不断提高。 ⑥软件开发生产率的提高赶不上硬件的发展和应用需求的增长。 (5) A) [解析] 软件生命周期是指软件产品从提出、实现、使用、维护到停止使用、退役的过程。 (6) D) [解析] 面向对象方法中,继承是使用已有的类定义作为基础建立新类的定义技术。广义地说,继承是指能 够直接获得已有的性质和特征,而不必重复定义它们。 (7) D) [解析] 根据数据之间的联系方式,可以把数据库分为层次型、网状型和关系型数据库,它们是根据数据之 间的联系方式来划分的。 (8) C) [解析] 如果一个工作人员只能使用一台计算机且一台计算机只能被一个工作人员使用,则关系为一对一; 如果一个工作人员可以使用多台计算机,但是一台计算机只能被一个工作人员使用,则关系为一对多;如 果一个工作人员可以使用多台计算机,一台计算机也可以被多个工作人员使用,则关系为多对多。 (9) C) [解析] 概念模式,是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数 据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管 理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的,体现、反映了数据 库系统的整体观。 外模式对应于用户级,它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻 辑表示。外模式是从模式导出的一个子集,也称为子模式或用户模式,它是用户的数据视图,也就是用户 所见到的数据模式,它反映了用户对数据的要求。包含模式中允许特定用户使用的那部分数据,用户可以 通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(Data ManipulationLanguage,DML)对这些数据记录进行描述。 内模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述, 它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由 内模式描述语言来描述、定义,它是数据库的存储观。 (10) A) [解析] 选择是单目运算,其运算对象是一个表。该运算按给定的条件,从表中选出满足条件的行形成一个 新表作为运算结果。投影也是单目运算,该运算从表中选出指定的属性值组成一个新表。自然连接是一种 特殊的等价连接,它将表中有相同名称的列自动进行记录匹配。自然连接不必指定任何同等连接条件。 (11) C) [解析] C 语言是结构化程序设计语言,顺序结构、选择结构、循环结构是结构化程序设计的种基本结构, 研究证明任何程序都可以由这三种基本结构组成。但是程序可以包含一种或者几种结构,不是必须包含全 部三种结构。自从提倡结构化设计以来,goto 就成了有争议的语句。首先,由于 goto 语句可以灵活跳转, 如果不加限制,它的确会破坏结构化设计风格。其次,goto 语句经常带来错误或隐患。它可能跳过了某些 对象的构造、 变量的初始化、 重要的计算等语句。goto 语句的使用会使程序容易发生错误并且也不易阅读, 所以应避免使用。由三种基本结构构成的程序几乎能解决大部分问题。 (12) B) [解析] 对于简单程序设计的步骤是首先在确定数据结构,然后确定算法,再编码并上机调试,最后整理文 档。 (13) B) [解析] 计算机程序都是编译为二进制的代码,计算机才会执行。 (14) B) [解析] 选项 A),若 x 和 y 相等,则分母为 0,出现除 0 错误。选项 C),double 类型不能进行取余(%)操作, 要求两个运算数必须是整数。选项 D),x+y=x 错误。 (15) D) [解析] 选项 A),1200 中间不能有逗号,否则编译时会认为是 1 或出错。选项 B),2.0 错误,必须为整数。 选项 C),要表示字符斜杠常量'\',应该在反斜杠的前面再加上一个反斜杠。选项 D),字符串常量是用一 对双引号括起来的一串字符。 (16) D) [解析] 第一步 a=9,然后计算 a-a 的值,并将此值赋给 a,因此此时 a=0,最后计算 a+a,并将此值赋给 a, 因此最终结果为 0。 (17) A) [解析] 在 if()语句的括号是一个合法的 C 语言表达式即可,如果表达式的值为 0,则不执行 if 语句,否 则执行 if 语句,而在选项 A 中,符号<>不是 C 语言的合法运算符,如果要表达 a 大于或小于 b+c 可用 a!=b+c 或(a>b+c)||(a<b+c)来表达,而不能使用 a<>b+c。所以它不是一个合法的 C 语言表达式。 (18) A) [解析] 本题考查 if else 语句。最开始 a=1,b=0;此时 if(!a)不成立,转到执行 else if(a==0),由于 a=1, 导致对应的语句 if(a)b+=2; else b+=3; 不会执行, 所以 b 的值没有改变, 最后执行 printf(“%d\n”, b);输出 0。 (19) C) [解析] %运算符两边的表达式必须是整型, 所以选项 A)、 B)错误。 选项 D 中 switch 后的表达式类型和 case 后的表达式类型不一致。 (20) B) [解析] 程序的执行过程如下: a=1 时,b=b+a=3,a=a+2=3,b=b%10=3; a=3 时,b=b+a=6,a=3+2=5,b=b%10=6; a=5 时,b=b+a=11,a=a+2=7,b=b%10=1。 此时 a=7>6 不满足循环条件,退出循环,此时 a=7,b=1。 (21) B) [解析] 在 while 循环中每次变量 y 的值减 1,直到其值等于 0 时退出循环,这时 y 的再减 1 变为-1。 (22) C) [解析] 本题考查字符变量,s 是字符指针,*s 为即 s[0],*s+2 相当于将指针后移两位,然后取其值。s 后移 2 位则指向字符 t,所以输出 t。 (23) B) [解析] sizeof(表达式)的功能是返回“表达式”结果所占机器“字节”的大小。strlen(字串)的功能是计 算“字串”中的'\0'之前的字符个数。 二者都可以用来取字符串长度,不同之处在于 sizeof 取到的字符 串长度包括字符串结束标记'\0',而 strlen 得到的长度则不包括'\0',而'\0'在字符串中是不显示的,所 以 sizeof 得到的字符串长度要比 strlen 得到的字符串长度大 1。本题中 sizeof。求得的为数组分配的空 间的大小,字符串“STRING”6 个字符再加上最后的'\0',为 7 个字符。strlen 遇见 0 或'\0'结束统计, 所以为 0。 (24) D) [解析] 根据函数 f(int x)的定义可以知,函数 f 每执行一次变量 x 的值乘以 2,所以在主函数中,函数 f 共嵌套执行了 3 次,所以对变量 n 的值连续 3 次乘以 2,所以 m 的值等于 8。 (25) C) [解析] 选项 A)错在没有对指针进行初始化,无效指针,并且在 scanf(&%d&,&p)中无需再进行取地址操 作。选项 B)没有对指针进行初始化,无效指针。选项 D),语句*p=&k;的左端*p 是指针所指内存空间的 值,&k 是地址,应为 p=&k。 (26) C) [解析] int *p[2];首先声明了一个数组,数组的元素是 int 型的指针。int(*p)[2];声明了一个指针, 指向了一个有两个 int 元素的数组。其实这两种写法主要是因为运算符的优先级,因为[]的优先级比*高。 所以第一种写法,p 先和[]结合,所以是一个数组,后与*结合,是指针。后一种写法同理。 (27) B) [解析] 数组说明的一般形式为:类型说明符数组名[常量表达式];其中类型说明符可以是任一种基本数据 类型或构造数据类型,数组名是定义的数组标识符。常量表达式表示数据元素的个数,也就是数组的长度, 必须是整型常量。 (28) D) [解析] 定义数组对, 元素个数不能为变量, 但可以为常量或常量表达式, 或在后面有初始化的情况下空缺。 因此选项 D)错误,选项 A)、B)、C)正确。选项 A)中没有被完全赋值,其中没有赋值的几个默认为 0。 (29) D) [解析] C 语言只存在传值调用,形参的改变不会影响实参的改变,调用函数 f,p 指向 a[3]输出 4,但是 r 仍然指向 a[0]输出 1。 (30) A) [解析] 函数 fun 的功能是对下标为偶数的元素进行}

我要回帖

更多关于 专科在职研究生 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信