最新二级/基础知识操作和C语言程序设计等级考试研究中心DGMOOK/策划周启海/主编周启海夏锋陶宏图彭岚/编著全国计算机等级考试试题精解丛书上机考试典型逼真试题及精解以国家教育部最新颁布的考试大纲为指南考前冲刺必备内容简介本书以教育部考试中心最新颁行的《全国计算机等级考试考试大纲(2002年版)》为指南,从教育部考试中心最新编写的《全国计算机等级考试上机考试习题集——二级C语言程序设计》(2002年版)"中精心筛选出约30%最具典型代表性的上机考试习题,由计算机教育学知名资深专家周启海教授领衔主解.
内容包括:基础知识操作与C语言程序设计上机考试的主要特点、一般原则、解题要求、必备条件、考试环境,基础知识操作上机逼真试题及精解,C语言程序设计上机改错逼真试题及精解,C语言程序设计上机编程逼真试题及精解.
深入浅出、简明扼要地讲述了全国计算机二级上机考试的要求特点、应试原则、解题技巧、排难去惑、授人以渔,促进广大考生事半功倍、以一当三、投一产三、举一反三,积极备考、顺利胜考、成功拿证.
本书不但是立志要获取全国计算机等级考试(NCRE)资格证书的广大考生考前冲刺、实战备考的指导书,大专院校、中等学校各专业有关课程的教材或教学参考书,具有初中以上文化程度的广大计算机初学者、爱好者的自学指导书,同时亦可作为社会各级各类学习班、培训班的《计算机应用》、《C语言程序设计》、《数据结构》等课程的教材或教学参考书.
图书在版编目(CIP)数据最新二级/基础知识操作和C语言程序设计:全国计算机等级考试上机考试典型逼真试题及精解/周启海主编.
—北京:中国宇航出版社,2003.
3(全国计算机等级考试试题精解丛书;3)ISBN7-80144-530-9Ⅰ.
最…Ⅱ.
周…Ⅲ.
①电子计算机—水平考试—解题②C语言—程序设计—水平考试—解题Ⅳ.
TP3-44中国版本图书馆CIP数据核字(2003)第011491号责任编辑:晓江审校:吴清平责任校对:肖新民排版:宇航IT图书排版中心出版发行社址北京市和平里滨河路1号邮编100013经销新华书店发行部(010)68372924(010)68373451(传真)读者北京市阜成路8号服务部(010)68371105(010)68522384(传真)邮编100830承印北京市双青印刷厂版次2003年3月第1版2003年3月第1次印刷规格787*1092开本1/16印张14.
825字数341千字印数1~5000册书号ISBN7-80144-530-9定价20.
00元本书如有印装质量问题可与发行部调换《全国计算机等级考试试题精解丛书》编写委员会委员:(以姓氏笔画为序)王宇王秀华文进陈江陈康陈杰华陈孟诗刘雁向孟光孙耀邦李志斌李朔枫李瑾坤严迪新杨祥茂林敏周屹钟俊夏锋秦岸秦沿海陶宏图黄天霖黄晓榕曹聪蒋明礼梁庆龙董伟光彭岚谭曦管会生薛飞名誉主任委员:袁开榜全国高等院校计算机教育研究会理事长教育部全国计算机等级考试委员会委员主任委员:周启海西南财经大学教授、硕士生导师四川省有突出贡献优秀专家(享受政府津贴)教育部"十五"规划重点课题负责人国家自然基金委员会同行评议专家副主任委员:吴清平中国计算机学会职业教育专业委员会主任秘书长:韩立凡中国计算机学会职业教育专业委员会副秘书长副秘书长:韩祖德北京市特级教师郑重声明中国宇航出版社依法对本书享有专有出版权.
任何未经许可的非法复制、销售行为均违反《中华人民共和国著作权法》,并有可能触犯我国的刑事法律,导致严重的法律后果.
为了维护正常的出版秩序,保护读者的合法权益,避免读者误用盗版书造成不良后果,我社将配合行政执法部门和司法机关对有关违法的单位和个人给予严厉打击.
社会各界人士如发现上述侵权行为,希望及时予以举报.
为方便有关单位或个人举报,现公布有关举报电话:全国扫黄打非办公室:(010)65231138北京市版权局版权执法处:(010)63461049中国宇航出版社:电话:(010)6837263968373185传真:(010)6837345168522384邮编:100013地址:北京市和平里滨河路1号中国宇航出版社2003年3月致读者(为什么要出版此套丛书)机考是关键,您准备好了吗加大机考力度,考试自动化、无纸化已成为国际潮流.
国家教育部考试中心与时俱进,在全国计算机等级考试(NationalComputerRankExamination,简称NCRE)新版考试大纲中规定,加大上机考试力度.
广大考生是否能迅速适应机考带来的变化,成为"顺利过关"的关键;最新的应试结果也分析表明,上机考试已经成为考生"成功拿证"的难点.
国内首套针对"机考"的《全国计算机等级考试试题精解丛书》!
为了满足广大考生顺利突破上机考试的热切需求,特邀全国计算机教育专家、计算机等级考试研究专家周启海教授组织资深全国等级考试指导教师团队,从国家教育部考试中心编著的最新题库中精选30%的典型试题并作详细分析,帮您理清上机考试应试思路,解题技巧,编成了这套针对"机考"的《试题精解丛书》(共6册).
真诚希望这套丛书能成为拿证路上的理想助手.
本套机考《试题精解丛书》的特色!
1)最新.
以国家教育部考试中心最新考试大纲(书后附有最新版全国计算机等级考试《考试大纲》)为指南,帮您迅速了解NCER上机考试的真实考试环境、上机操作过程;对上机考试要求、考试范围及知识点做到"知己知彼".
2)权威.
本套丛书试题分析的对象是从国家教育部考试中心编著的最新题库中精选30%的典型试题,试题极具典型性;而丛书由全国计算机教育专家、计算机等级考试研究专家周启海教授主编,执笔者都是一些非常有考试教学和培训的资深教师,非常权威.
3)精解.
通过"试题原貌"、"解题分析"、"题解答案"、"经验宝库"等分析过程,详尽给出逼真试题的解题步骤,让您迅速掌握解题的方法与技巧,特别是每套试题后的"经验宝库"更是考试专家的经验之谈,有"举一反三"之功效.
祝福您"顺利过关,成功拿证"!
随着中国加入WTO,市场经济建设的进一步加快,以计算机、互联网为代表的信息技术对国家经济、文化和社会各个影响的进一步深入,全国计算机等级考试持续升温.
每年报考的人数自1994年开考的1万人,迅速增加到如今的200多万人.
全国计算机等级考试证书已经成为公务员、国家企事业单位工作人员、公司员工等上岗、加薪、提拔的必备条件,也是专业技术人员晋升专业技术职务的申报条件之一.
我们真诚希望您能成功通过考试.
等级考试研究中心前言计算机技术,是近20年来发展最迅猛、应用最广泛的现代科学技术之一,是21世纪知识经济时代的重要基础和支柱技术之一,是当今社会人人都应当掌握的基本生存技能与必备文化素质之一.
毋容置疑,全民性普及推广、社会性开发应用计算机技术,对全球各国的生存和发展,有着深远的不可低估的社会经济价值和历史进步意义.
由中国国家教育部考试中心组织的"全国计算机等级考试",是计算机应用水平测试的一种全国性考试,是计算机应用国民基本素质的公开、公正、公平的一种社会性认定.
它实行全国范围内"统一命题,统一考试,统一阅卷"的考评方式,采用"先笔试,后上机"的考试形式,采取"笔试成绩、上机考试成绩均合格者,由国家教育部考试中心统一发给《全国计算机等级考试合格证书》"的颁证方法.
在与时俱进的今天,如何使全国各界广大考生轻松、愉快地在"全国计算机等级考试"的教学(包括自学)、备考与应试中稳操胜算,显然是关系到我国"科教兴国"战略实施与实现的重要问题,同时也是具有重要学术理论价值和社会实践意义的重大课题.
为此,本书以教育部考试中心最新颁行的《全国计算机等级考试考试大纲(2002年版)》为指南,从教育部考试中心最新编写的《全国计算机等级考试上机考试习题集——二级C语言程序设计》(2002年版)"中精心筛选出约30%最具典型代表性的上机考试习题,由计算机教育学知名资深专家周启海教授领衔主解.
内容包括:基础知识操作和C语言程序设计上机考试的主要特点、一般原则、解题要求、必备条件、考试环境,基础知识操作上机全真试题及精解,C语言程序设计上机改错逼真试题及精解,C语言程序设计上机编程逼真试题及精解.
深入浅出、简明扼要地讲述了全国计算机二级上机考试的要求特点、应试原则、解题技巧,排难去惑、授人以渔,促进广大考生事半功倍、投一产三、举一反三,积极备考、顺利胜考、成功拿证.
本书可作全国计算机等级考试的考前学习、实战备考的用书,也可作大专院校、中等学校各专业有关课程的教材或教学参考书;可供具有初中以上文化程度的广大计算机初学者、爱好者使用;亦可为各级各类学习班、培训班的《计算机应用》、《C语言程序设计》、《数据结构》等课程的教学参考书.
同时,它又是当今电脑进入家庭所需要的良师益友.
参加本书撰著的,还有黄晓榕、彭岚等同志.
置此拙著问世之际,请允许我代表全体作者,谨向教育部考试中心,各有关参考文献作者、出版者,以及所有关心、支持、帮助、促成本书出版的各界朋友,致以衷心敬意与谢意.
常言道:人无完人,金无赤金.
故本书倘有疏误,则恳请读者不吝赐教指正(来信请寄:610074成都市西南财经大学经济信息工程学院周启海教授;电话联系:028—87354172;E-mail:zhouqh@swufe.
edu.
cn),以便再版时予以更正.
本丛书主编周启海2003年3月目录致读者前言第1章基础知识操作与C语言程序设计上机考试概要.
11.
1上机考试的主要特点11.
2上机考试的一般原则21.
3上机考试的解题要求21.
4上机考试的必备条件31.
5上机考试的考试环境31.
5.
1操作系统环境.
31.
5.
2TurboC2.
0环境.
4第2章基础知识操作上机逼真试题及精解.
62.
1基础知识操作上机试题的基本内容解题与方法概要.
62.
2基础知识操作上机逼真试题及精解72.
2.
1第1套基础知识操作上机逼真试题及精解.
72.
2.
2第2套基础知识操作上机逼真试题及精解.
82.
2.
3第3套基础知识操作上机逼真试题及精解.
82.
2.
4第4套基础知识操作上机逼真试题及精解.
82.
2.
5第5套基础知识操作上机逼真试题及精解.
92.
2.
6第6套基础知识操作上机逼真试题及精解.
92.
2.
7第7套基础知识操作上机逼真试题及精解.
102.
2.
8第8套基础知识操作上机逼真试题及精解.
112.
2.
9第9套基础知识操作上机逼真试题及精解.
122.
2.
10第10套基础知识操作上机逼真试题及精解.
152.
2.
11第11套基础知识操作上机逼真试题及精解152.
2.
12第12套基础知识操作上机逼真试题及精解.
162.
2.
13第13套基础知识操作上机逼真试题及精解.
182.
2.
14第14套基础知识操作上机逼真试题及精解.
182.
2.
15第15套基础知识操作上机逼真试题及精解.
192.
2.
16第16套基础知识操作上机逼真试题及精解.
202.
2.
17第17套基础知识操作上机逼真试题及精解.
212.
2.
18第18套基础知识操作上机逼真试题及精解.
222.
2.
19第19套基础知识操作上机逼真试题及精解.
23全国计算机等级考试上机考试典型逼真试题及精解viii最新二级/基础知识操作和C语言程序设计2.
2.
20第20套基础知识操作上机逼真试题及精解.
24第3章C语言程序设计上机改错逼真试题及精解263.
1上机改错试题的规定约束和应试模式.
263.
1.
1上机改错试题的规定约束.
263.
1.
2上机改错试题的应试模式.
273.
2上机改错逼真试题及精解293.
2.
1第1套上机改错逼真试题及精解.
293.
2.
2第2套上机改错逼真试题及精解.
323.
2.
3第3套上机改错逼真试题及精解.
353.
2.
4第4套上机改错逼真试题及精解.
383.
2.
5第5套上机改错逼真试题及精解.
423.
2.
6第6套上机改错逼真试题及精解.
453.
2.
7第7套上机改错逼真试题及精解.
473.
2.
8第8套上机改错逼真试题及精解.
493.
2.
9第9套上机改错逼真试题及精解.
523.
2.
10第10套上机改错逼真试题及精解.
553.
2.
11第11套上机改错逼真试题及精解573.
2.
12第12套上机改错逼真试题及精解.
603.
2.
13第13套上机改错逼真试题及精解.
633.
2.
14第14套上机改错逼真试题及精解.
653.
2.
15第15套上机改错逼真试题及精解.
693.
2.
16第16套上机改错逼真试题及精解.
713.
2.
17第17套上机改错逼真试题及精解.
753.
2.
18第18套上机改错逼真试题及精解.
773.
2.
19第19套上机改错逼真试题及精解.
813.
2.
20第20套上机改错逼真试题及精解.
843.
2.
21第21套上机改错逼真试题及精解.
873.
2.
22第22套上机改错逼真试题及精解.
913.
2.
23第23套上机改错逼真试题及精解.
943.
2.
24第24套上机改错逼真试题及精解.
983.
2.
25第25套上机改错逼真试题及精解.
1003.
2.
26第26套上机改错逼真试题及精解.
1033.
2.
27第27套上机改错逼真试题及精解.
1063.
2.
28第28套上机改错逼真试题及精解.
1093.
2.
29第29套上机改错逼真试题及精解.
1123.
2.
30第30套上机改错逼真试题及精解.
114目录ix3.
2.
31第31套上机改错逼真试题及精解.
118第4章C语言程序设计上机编程逼真试题及精解1214.
1上机编程试题的规定约束和应试模式.
1214.
1.
1上机编程试题的规定约束.
1214.
1.
2上机编程试题的应试模式.
1224.
2上机编程逼真试题及精解1244.
2.
1第1套上机编程逼真试题及精解.
1244.
2.
2第2套上机编程逼真试题及精解.
1284.
2.
3第3套上机编程逼真试题及精解.
1314.
2.
4第4套上机编程逼真试题及精解.
1344.
2.
5第5套上机编程逼真试题及精解.
1364.
2.
6第6套上机编程逼真试题及精解.
1404.
2.
7第7套上机编程逼真试题及精解.
1444.
2.
8第8套上机编程逼真试题及精解.
1474.
2.
9第9套上机编程逼真试题及精解.
1504.
2.
10第10套上机编程逼真试题及精解.
1544.
2.
11第11套上机编程逼真试题及精解1564.
2.
12第12套上机编程逼真试题及精解.
1594.
2.
13第13套上机编程逼真试题及精解.
1634.
2.
14第14套上机编程逼真试题及精解.
1664.
2.
15第15套上机编程逼真试题及精解.
1694.
2.
16第16套上机编程逼真试题及精解.
1714.
2.
17第17套上机编程逼真试题及精解.
1754.
2.
18第18套上机编程逼真试题及精解.
1784.
2.
19第19套上机编程逼真试题及精解.
1814.
2.
20第20套上机编程逼真试题及精解.
1844.
2.
21第21套上机编程逼真试题及精解.
1874.
2.
22第22套上机编程逼真试题及精解.
1914.
2.
23第23套上机编程逼真试题及精解.
1954.
2.
24第24套上机编程逼真试题及精解.
1984.
2.
25第25套上机编程逼真试题及精解.
2024.
2.
26第26套上机编程逼真试题及精解.
2044.
2.
27第27套上机编程逼真试题及精解.
2084.
2.
28第28套上机编程逼真试题及精解.
2104.
2.
29第29套上机编程逼真试题及精解.
2134.
2.
30第30套上机编程逼真试题及精解.
215全国计算机等级考试上机考试典型逼真试题及精解x最新二级/基础知识操作和C语言程序设计4.
2.
31第31套上机编程逼真试题及精解.
218附录二级考试大纲229参考文献221全国计算机等级考试二级"基础知识操作和C语言程序设计"上机考试,通常有操作系统(即操作题,共30分)、程序改错(即改错题,共30分)、程序设计(即编程题,共40分)三部分试题各一题;考试时间60分钟,满分100分.
1.
1上机考试的主要特点全国计算机等级考试二级"计算机基础操作和C语言程序设计"上机考试,有三个主要特点:其一,考查考生计算机基础知识(限于DOS操作系统)基本能力的上机操作题,多年来已基本定型,几无变化,故全国计算机二级上机考试基础知识操作题的要求一般、难度不大,考生备考只需适当即可.
其二,考查考生C语言程序调试(限于针对给定C语言程序,找出并修正其中错误,使之正确)基本能力的上机题,2002年起正在发生着新变化,必须引起广大考生特别注意:全国计算机二级考试的上机试题,不但历来均以上机动手能力为核心,对考生的综合分析能力与知识学用能力进行全面的计算机程序设计素质考查;而且,教育部考试中心最新颁发的《全国计算机等级考试考试大纲》(2002年版)、编写的《全国计算机等级考试上机考试习题集》(2002年版)和实施的全国计算机等级考试二级上机考试(2002年、2003年),都表明——全国计算第1章基础知识操作与C语言程序设计上机考试概要全国计算机等级考试上机考试典型逼真试题及精解2最新二级/基础知识操作和C语言程序设计机二级上机考试改错题的实际要求、考试难度已有所提高,故考生备考必须积极到位.
其三,考查考生C语言程序设计(限于针对给定C语言程序,编程并填补其中空缺,使之完整)基本能力的上机编程题,长期来虽然也大体定型、变化不大;但因它只需实现指定功能,而程序解法思路、实现方式不作限制,可灵活设计、自由编程、各显神通,故全国计算机二级上机考试编程题的要求较高、难度最大,考生备考务必特别重视.
因此,为应对这种新形势、新变化、新要求,每一位考生都必须予以足够的高度重视,务必"头脑清醒,早作准备",一定要作好"吃大苦,打硬仗"的心理准备和"狠下功夫,全力备考"的实战准备.
1.
2上机考试的一般原则《全国计算机等级考试大纲》所规定的计算机基础和C语言上机操作,在形式上,具有理论与实践密切结合的特点;在内容上,具有融会贯通、综合应用的特色;在宗旨上,重在通过上机调试,具体达到(某个或某些)指定目标的要求.
因此,上机操作考试是计算机等级考试的又一关键基本环节与重要组成部分;而其学习特点和备考重点主要是"理解+会读+会改+会做",即考生必须对上机操作的相关知识做到"看得懂,分得清,想得开,改得了,用得上,做得对".
因此,考好计算机基础和C语言上机操作部分的试题,其备考要求较高,胜考难度较大,而其应考取胜法则可以归结为"不错读,不误解,不乱改,不昏做".
1.
3上机考试的解题要求全国计算机等级考试二级"计算机基础部分和C语言程序设计"上机考试,是在指定的时间内,在计算机上具体完成如下三部分基本操作:第一部分,是DOS操作系统部分上机.
即:按上机操作试题给定的要求,完成指定的计算机基本操作(包括计算机启动和操作系统命令的使用).
第二部分,是C语言程序修改部分上机.
即:按上机改错试题给定的功能要求和改法约束(即改错题中所谓"注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
"),对所给不正确C语言程序的错误程序行(它们必不在main函数中),进行找错、改错、调通,使之能得到正确的运行结果.
第三部分,是C语言程序设计部分上机.
即:根据编程试题给定的功能要求和做法约束(即编程题中所谓"注意:①部分源程序给出如下.
②请勿改动主函数main和其它函数中的任何内容,仅在fun的花括号中填入你编写的若干语句.
"),对所给不完善C语言程序的函数fun的函数体(它必不在main函数中),进行设计、补充、调试、完善,使之能得到正确的运行结果.
本书第2、3、4章,分别讲述上述第一、第二部分与第三部分的上机考试逼真试题解.
第1章基础知识操作与C语言程序设计上机考试概要31.
4上机考试的必备条件诚然,书本学习和搞好笔试,是上机考试的基本条件和重要基础;然而,上机考试同书本学习和搞好笔试相比,确有很大不同:它可从实际动手能力上,更好地综合检验一个考生的实际程序设计能力.
上机考试和笔试的一个重要不同点,就是上机考试要求考生考前必须在计算机上"多上机,常实习,勤苦练".
那种"读死书,死读书"就想上机考试过关,是不可能的,必定行不通的.
因而,考生绝不能冷落、轻视计算机上机实践环节,只是"看看书,做做题,想想事".
对很多考生(包括笔试已顺利过关的考生)来说:上机考试,客观上是一个颇有难度的大难题,也确实是一个比笔试更为棘手的险关口,它事实上已经成为制约全国计算机等级考试考生能否"顺利过关,最后拿证"的一大主要瓶颈.
必须承认:应对上机考试的学习、备考过程,实际上是一个较长的由生疏到精通的渐进过程.
因此,要想在C语言上机考试中取得好的成绩,考生必须认识到"胜考的功夫在考前,拿证的把握在场外",才能确保自己在上机考试时已经具备如下三大必不可少的备考条件:①编程语言基础条件——扎实的C语言基本功,即对C语言本身要有很深入的了解;②程序设计技能条件——对程序设计基本原理、主要方法、常用技巧,有较深入的掌握;③程序调试工具条件——对C语言上机考试环境、开发工具、调试方法应熟悉、会使用.
这三个条件不是孤立分离的,而是相互联系、彼此促进、相辅相成的,但无疑第二个条件尤为重要.
(例如:对C语言很熟的人,通常对上机考试环境、开发工具、调试方法也很熟悉,而其程序设计技能亦不错.
)1.
5上机考试的考试环境C语言的上机考试环境包括两部分:操作系统环境和C语言编辑、编译、调试环境.
通常,考生所面对的C语言上机环境是"DOS操作系统"和"TurboC2.
0集成开发环境".
这两个部分的环境都需要进行一定的设置工作.
一般情况下,考场工作人员会替考生进行一些设置工作,但仍然建议:考生要对上机考试的环境相当地熟悉,并能够独立地进行完全的系统设置,以便在出现问题,或者考场工作人员没有做相应工作的时候不至于手足无措.
特别是在TurboC2.
0集成环境中,很多情况下,都需要考生自己进行相应的设置.
1.
5.
1操作系统环境通常,考生上机输入自己的考号等考生信息后,就正式进入考试系统,开始了自己的上机考试.
在上机考试期间,考生应该注意以下操作系统环境问题:首先,"全国计算机等级考试环境软件"要求考生一般不能离开自己的工作目录(例如全国计算机等级考试上机考试典型逼真试题及精解4最新二级/基础知识操作和C语言程序设计准考证310023号考生的工作目录为"C:\EXAM\310023"),如果非暂时离开不可,也要尽快回的回到自己的工作目录.
这是因为:①考试期间所需要的所有文件(包括源程序文件、数据输入文件等),都存放在考生的该目录下;②上机过程中所产生的全部文件(包括输出文件等),也都必须存放在考生目录下.
否则,"全国计算机等级考试判卷软件",可能因它找不到考生的有关考试文件而产生误判的情况.
其次,需要注意的另一个问题是,必须确定在操作系统中能否调用TurboC2.
0(以下简称TC)开发环境.
如果不能,就只能在系统中找到TC的存放目录,并使用绝对路径来调用TC.
(为了方便起见,可以将TC所在的目录添加到系统的环境变量"PATH"中.
)倘若确有困难,可立即向监考人员报告和求助(例如,可要求重新配置系统环境,或另换一台已配置好的计算机).
最后,由于"全国计算机等级考试环境软件"是一个常驻内存的程序,它运行时要占用一定的内存空间;所以,如果系统配置不好,可能会出现内存不够用的现象.
其具体表现就是:在TurboC环境中出现"Outofmemory"这样的错误提示信息.
这是一个严重的问题,需要立即报告监考人员,并要求重新配置系统环境.
1.
5.
2TurboC2.
0环境在操作系统能正常工作前提下,就可以启动TurboC2.
0,进入TC的集成开发环境(可简称TC环境).
如果TC启动的时候出现"Invalidconfigurationfile:TCCONFIG.
TC.
PressESC.
",说明系统中有错误的系统配置文件.
此时,可以按"Esc"键而进入TC系统设置状态,然后即可对TC系统进行重新配置.
对TC配置,主要应该注意它的标准工作目录.
在TC系统中,按"Alt+O",选择"Directory"菜单项,就可在出现的对话框中设置相应的目录.
设置时,应主要包括"Includedirectories"(系统头文件目录)、"Librarydirectories"(系统库文件目录)、"TurboCdirectory"(系统目录)和"Outputdirectory"(系统输出目录)等几个关键设置项.
应当注意:如果这几个关键设置项没有设置为正确内容,则在对C语言程序进行编译、连接时,TC系统将会报错,而无法正常工作.
通常,TurboC系统安装在"C:\TC"目录下.
此时,一般情况下"Includedirectories"应设置为"C:\TC\INCLUDE","Librarydirectories"应设置为"C:\TC\LIB","TurboCdirectory"应设置为"C:\TC",而"Outputdirectory"则可不设置.
此外,除了TurboC中的系统设置外,考生还应该对它的编辑、编译、菜单等基本环境较为熟悉.
(关于TurboC具体使用环境的更详细内容,可参阅其它相关书籍,这里不再多说.
)总之,考生在使用TurboC集成环境时,应注意以下三个要点.
①学会使用系统帮助.
TC集成开发环境中的帮助,不但有关于怎样使用该系统的内容还有关于C语言本身的语法、函数调用格式等内容.
②熟练运用编辑工具.
包括怎样复制、粘贴,怎样对齐文本、怎样进行查找,替换.
第1章基础知识操作与C语言程序设计上机考试概要5在熟练使用编辑工具的基础上,将程序的源文件排列整齐,一般情况下,缩进对齐的源程序在易读性上表现最好.
③熟练应用调试工具.
熟练掌握调试工具将使得程序编制的工作效率大大提高,同时也能够增加足够的编程、调试经验,应对上机考试也会更加得心应手.
在全国计算机二级考试的"基础知识操作和C语言程序设计"的上机考试中,有关基础知识部分的上机操作试题只有一题(通常内含3~6道小题),其分值为30分,占整个上机考试总分数的30%.
2.
1基础知识操作上机试题的基本内容解题与方法概要基础知识操作上机试题,其基本内容:只涉及DOS操作系统基本命令(即:设置属性命令ATTRIB,DOS状态提示符修改命令PROMPT,改变路径命令CD,更改文件名命令REN,察看目录命令DIR,拷贝文件命令COPY,建立子目录命令MD,删除子目录命令RD,删除文件命令DEL等)的使用.
这部分试题,都属于用以考查"针对指定的操作系统类题目要求,利用有关操作系统基本操作或者常用命令来实现这一要求"的综合基本知识题.
基础知识操作上机试题,其总体要求:在指定的时间内,使用微机完成指定的关于计算机操作系统的基本操作(包括机器启动和操作命令的使用).
基础知识操作上机试题,其操作过程:在读懂题目内容后,再按题目要求,选用有关命令(或操作);然后,进入DOS系统状态,并在计算机上具体实现之.
考生应当根据试题具体情况,相机行事、灵活作答、正确操作.
基础知识操作上机试题,其应考原则:DOS命令操作题的上机考试中,在进入考试环境第2章基础知识操作上机逼真试题及精解第2章基础知识操作上机逼真试题及精解7后,系统自动选择"\考生"目录(注意:所谓"\考生"目录,实为考生个人当前工作目录"\EXAM\xxxxxx"的简称,且其中xxxxxx是考生的考号,例如准考证310023号的考生个人当前工作目录实际为"\EXAM\310023";下同,以后不再说明)为当前目录;同时要求考生的操作,应该在此目录中进行,否则计算机判断会有误.
因此,基础知识操作上机试题的最简单、可靠、有效方法是:尽量不要脱离考生个人当前工作目录(简称"\考生"目录).
即:一方面,力求就在"\考生"目录完成所要求的DOS基本操作;另一方面,即使确有必要而一时离开了该"\考生"目录,也要及时回到考生个人当前工作目录.
在所使用的DOS命令中,凡能使用相对路径的,最好不用绝对路径,以简化操作;不宜使用改变路径的CD命令任意改变当前目录,否则考试结果的保存可能会出问题.
为此,本章将深入浅出、简明扼要地讲述了基础知识操作上机题的一般应试原则、基本分析方法和主要解题技巧,促进广大考生事半功倍、举一反三地搞好基础知识上机操作题的"积极备考,顺利胜考,成功拿证".
2.
2基础知识操作上机逼真试题及精解鉴于历年基础知识操作上机逼真试题,通常都由与下述20道基础知识操作上机逼真题类似的3~6道小题构成.
故本节,将详细给出这20道精选的基础知识操作上机全真题及其配套典型题解,以供考生参照上述基础知识操作上机逼真试题的应考原则和方法而灵活学用之.
2.
2.
1第1套基础知识操作上机逼真试题及精解【试题原貌】将(根目录下)考生目录下BZP\BZX子目录中的XYZ.
EXE文件设置为系统文件属性.
【解题分析】由于所要更改属性的文件在子目录下,故用ATTRIB命令更名时必须指明原文件的路径(可以用绝对路径,例如本题解法1的"\考生\BZP\BZX\XYZ.
EXE";也可以用相对路径,例如本题解法2的"BZP\BZX\XYZ.
EXE").
此外,设置属性命令ATTRIB命令一般格式为(注意:本章命令格式描述中,"|",表示两者中只取其一;"["和"]",表示这对方括号之间的内容,是可选可不选的;"",表示这对尖括号之间的内容,是必须由用户输入的内容):ATTRIB[+A|-A][+H|-H][+R|-R][+S|-S]其中:"+"、"-"分别表示设置、取消有关属性;"A"、"H"、"R"、"S",分别表示使待设置文件具有"文档(或称归档,即文本)属性"、"隐藏属性"、"只读属性"、"系统(文件)属性".
全国计算机等级考试上机考试典型逼真试题及精解8最新二级/基础知识操作和C语言程序设计【题解答案——解法1】(绝对路径法)ATTRIB+S\考生\BZP\BZX\XYZ.
EXE【题解答案——解法2】("绝对路径+相对路径"法)CD\考生ATTRIB+SBZP\BZX\XYZ.
EXE【经验宝库】(1)注意DOS"设置属性命令ATTRIB,改变路径命令CD"的功能与用法.
(2)注意正确区分、合理使用——指定一个文件的两大要素:路径符"\",逐级子目录名.
(3)注意正确区分、巧妙利用——描述一个路径的两大手段:绝对路径,相对路径.
2.
2.
2第2套基础知识操作上机逼真试题及精解【试题原貌】将考生目录下的LI\I子目录中的文件MAIN.
FOR设置成具有归档属性的文件.
【题解答案——解法1】(绝对路径法)ATTRIB+A\考生\LI\I\MAIN.
FOR【题解答案——解法2】("绝对路径+相对路径"法)CD\考生ATTRIB+ALI\I\MAIN.
FOR2.
2.
3第3套基础知识操作上机逼真试题及精解【试题原貌】取消(根目录下)考生目录下P\P子目录中文件PERSON.
PAS的只读属性.
【题解答案——解法1】(绝对路径法)ATTRIB-R\考生\P\P\PERSON.
PAS【题解答案——解法2】("绝对路径+相对路径"法)CD\考生ATTRIB-RP\P\PERSON.
PAS2.
2.
4第4套基础知识操作上机逼真试题及精解【试题原貌】将考生目录下的IN\IBRW子目录中的文件REAL.
PRG设置成具有隐藏属性的文件.
【题解答案——解法1】(绝对路径法)ATTRIB+H\考生\IN\LBRW\REAL.
PRG第2章基础知识操作上机逼真试题及精解9【题解答案——解法2】("绝对路径+相对路径"法)CD\考生ATTRIB+HIN\LBRW\REAL.
PRG2.
2.
5第5套基础知识操作上机逼真试题及精解【试题原貌】已知:如果当前路径为"\考生\A\B",则其DOS状态提示符为"C>".
设当前盘为C盘.
请将DOS状态提示符改为"C:\考生\A\B>",并显示此目录下的备份文件COMMAND.
COM文件,但所见到的文件名必须已经改为COMMAND.
【解题分析】由于要改变DOS系统提示符设置,必须使用PROMPT命令;而此命令中,参数$p(其中P即Path的首字母P)表示显示当前路径(当前盘当前目录),而$G(其中G即Great的首字母G)表示显示大于符号">".
此外,要更改文件名,必须使用REN命令.
【题解答案——解法1】("绝对路径+相对路径"法)PROMPT$P$GCD\考生\A\BRENCOMMAND.
COMCOMMANDDIRCOMMAND【题解答案——解法2】("绝对路径+相对路径"法)CD\考生\A\BPROMPT$P$GRENCOMMAND.
COMCOMMANDDIRCOMMAND【经验宝库】(1)注意正确区分和合理使用"指定一个文件的三大要素:路径+文件基本名+扩展名".
(2)注意DOS的"提示符修改命令PROMPT,改变路径命令CD,更改文件名命令REN,察看(或称列)目录命令DIR"的功能与用法.
(3)有时,某些DOS命令的执行先后,对最终执行结果无关或者影响不大.
2.
2.
6第6套基础知识操作上机逼真试题及精解【试题原貌】设当前路径为"\考生\A\B\C",而此时的DOS状态提示符为"C:\考生\A\B\C>".
首先,请将DOS状态提示符改为"C>".
然后,把根目录下的COMMAND.
COM文件,拷贝成目录"\考生\A\B\C"下的同名备份文件,并使此备份文件不可用DIR命令显示之.
全国计算机等级考试上机考试典型逼真试题及精解10最新二级/基础知识操作和C语言程序设计【解题分析】由于要改变DOS系统提示符设置,必须使用PROMPT命令;而此命令中,参数$n表示显示当前当前盘,而$G(其中G即Great的首字母G)表示显示大于符号">".
因此,要改变成所需DOS状态提示符,必须使用命令"PROMPT$n$G".
由于"只要更改文件属性为隐藏文件,就不能用DIR命令显示之",而命令一般格式为(注意:"|",表示两者中只取其一;"["和"]",表示这对方括号之间的内容,是可选可不选的;"",表示这对尖括号之间的内容,是必须由用户输入的内容):ATTRIB[+A|-A][+H|-H][+R|-R][+S|-S]其中:"+"、"-"分别表示设置、取消有关属性;"A"、"H"、"R"、"S",分别表示文件的"文档(或称文本)属性"、"隐藏属性"、"只读属性"、"系统(文件)属性".
【题解答案——解法1】(绝对路径法)PROMPT$n$GCOPY\COMMAND.
COM\考生\A\B\C\COMMAND.
COMATTRIB+H\考生\A\B\C\COMMAND.
COM【题解答案——解法2】("绝对路径+相对路径"法)PROMPT$n$GCOPY\COMMAND.
COMCOMMAND.
COMATTRIB+HCOMMAND.
COM【经验宝库】注意DOS的"拷贝文件命令COPY"的功能与用法.
2.
2.
7第7套基础知识操作上机逼真试题及精解【试题原貌】在(根目录下)考生目录下BUF子目录内建立一新的子目录BUR.
【解题分析】由于所要建立的子目录BUR,是在(根目录下)考生目录下BUF子目录内建立,故用MD命令建立该新子目录时,必须指明原文件的路径(可以用绝对路径,如解法1的MD命令、解法1和解法3的CD命令;也可以用相对路径,如解法2、解法3的MD命令).
【题解答案——解法1】(绝对路径法)MD\考生\BUF\BUR【题解答案——解法2】("绝对路径+相对路径"法)CD\考生MDBUF\BUR第2章基础知识操作上机逼真试题及精解11【题解答案——解法3】("绝对路径+相对路径"法)CD\考生\BUFMDBUR【经验宝库】注意DOS的"建立子目录命令MD"的功能与用法.
2.
2.
8第8套基础知识操作上机逼真试题及精解【试题原貌】首先,在(根目录下)考生目录下的A子目录内建立一新的子目录B;接着,在此新子目录B内建立一新的子目录C;然后,在此新子目录C内建立三个新的子目录D、E、F.
最后,在所建立的新子目录F下,为根目录下的系统文件COMMAND.
COM制作一个同名备份文件.
【解题分析】由于所要建立的各下级子目录,是在(根目录下)考生目录下A子目录内逐级建立的,故用建立该新子目录命令MD、改变当前子目录命令CD、文件拷贝命令COPY等时,都必须指明原文件的路径(注意:本题虽然可用相对路径来处理,但更宜用绝对路径来解决,因为可利用"重用上一次所输入字符序列"的功能键F3,来加快当前命令输入速度).
【题解答案——解法1】(绝对路径法)MD\考生\A\BMD\考生\A\B\CMD\考生\A\B\C\DMD\考生\A\B\C\EMD\考生\A\B\C\FCOPY\COMMAND.
COM\考生\A\B\C\F\COMMAND.
COM【题解答案——解法2】("绝对路径+相对路径"法)MD\考生\A\BMD\考生\A\B\CMD\考生\A\B\C\DMD\考生\A\B\C\EMD\考生\A\B\C\FCD\考生COPY\COMMAND.
COMA\B\C\F\COMMAND.
COM【题解答案——解法3】("绝对路径+相对路径"法)CD\考生全国计算机等级考试上机考试典型逼真试题及精解12最新二级/基础知识操作和C语言程序设计MDA\BCDA\BMDCCDCMDDMDEMDFCD\考生\A\B\C\FCOPY\COMMAND.
COMCOMMAND.
COM【题解答案——解法4】("绝对路径+相对路径"法)CD\考生\AMDBCDBMDCCDCMDDMDEMDFCD\考生COPY\COMMAND.
COMA\B\C\F\COMMAND.
COM【题解答案——解法5】("绝对路径+相对路径"法)CD\考生\AMDBCDBMDCCDCMDDMDEMDFCD\COPYCOMMAND.
COM考生\A\B\C\F\COMMAND.
COM2.
2.
9第9套基础知识操作上机逼真试题及精解【试题原貌】首先,在(根目录下)考生目录下的A子目录内建立三个新的子目录B1、B2、B3;接第2章基础知识操作上机逼真试题及精解13着,在所新建立的子目录B1内建立三个新的子目录C1、C2、C3;然后,在所新建立的子目录C1内建立一个新的子目录D1、D2、D3.
最后,在所建立的新子目录D1下,为根目录下的自动批处理份文件建立一个同名备份文件.
【解题分析】由于要在(根目录下)考生目录下A子目录内,同层建立它的下一级子目录B1、B2.
新的子目录C1、C2、C3,又是新子目录B2的下一级子目录;而最后一级的新子目录D1、D2,又是新子目录C2的下一级子目录.
因此,用建立该新子目录命令MD、改变当前子目录命令CD、文件复制命令COPY时,都必须指明原文件的路径(注意:本题虽然可用相对路径来处理,但更宜用绝对路径来解决).
此外,应注意在根目录下的自动批处理文件名为AUTOEXEC.
BAT.
【题解答案——解法1】(绝对路径法)MD\考生\A\B1MD\考生\A\B2MD\考生\A\B3MD\考生\A\B1\C1MD\考生\A\B1\C2MD\考生\A\B1\C3MD\考生\A\B1\C1\D1MD\考生\A\B1\C1\D2MD\考生\A\B1\C1\D3COPY\AUTOEXEC.
BAT:\考生\A\B1\C1\D1\AUTOEXEC.
BAT【题解答案——解法2】("绝对路径+相对路径"法)MD\考生\A\B1MD\考生\A\B2MD\考生\A\B3MD\考生\A\B1\C1MD\考生\A\B1\C2MD\考生\A\B1\C3MD\考生\A\B1\C1\D1MD\考生\A\B1\C1\D2MD\考生\A\B1\C1\D3CD\考生COPY\AUTOEXEC.
BATA\B1\C1\D1\AUTOEXEC.
BAT【题解答案——解法3】("绝对路径+相对路径"法)CD\考生全国计算机等级考试上机考试典型逼真试题及精解14最新二级/基础知识操作和C语言程序设计MDA\B1MDA\B2MDA\B3MDA\B1\C1MDA\B1\C2MDA\B1\C3MDA\B1\C1\D1MDA\B1\C1\D2MDA\B1\C1\D3COPY\AUTOEXEC.
BATA\B1\C1\D1\AUTOEXEC.
BAT【题解答案——解法4】("绝对路径+相对路径"法)CD\考生\AMDB1MDB2MDB3MDB1\C1MDB1\C2MDB1\C3MDB1\C1\D1MDB1\C1\D2MDB1\C1\D3CDB1\C1\D1COPY\AUTOEXEC.
BATAUTOEXEC.
BAT【题解答案——解法5】("绝对路径+相对路径"法)CD\考生\AMDB1MDB2MDB3CDB1MDC1MDC2MDC3CDC1MDD1MDD2第2章基础知识操作上机逼真试题及精解15MDD3CDD1COPY\AUTOEXEC.
BATAUTOEXEC.
BAT【经验宝库】注意自动批处理文件:①位置——在根目录下;②文件名为AUTOEXEC.
BAT.
2.
2.
10第10套基础知识操作上机逼真试题及精解【试题原貌】将(根目录下)考生目录下BLK\BLP子目录中的BAR.
FOR文件和考生目录下BSA\BSC子目录中的BIT.
PAS文件,合并拷贝到考生目录下BWA\BWS子目录中,文件名为BUSY.
DOC.
【解题分析】首先,由于所要拷贝的文件均在不同子目录下,故用COPY命令拷贝它们时必须指明其路径(可以用绝对路径,也可以用相对路径).
其次,由于需要进行合并式拷贝,故必须使用"COPY文件名1+文件名2文件名3"的命令格式.
【题解答案——解法1】(绝对路径法)COPY\考生\BLK\BLP\BAR.
FOR+\考生\BSA\BSC\BIT.
PAS\考生\BWA\BWS\BUSY.
DOC【题解答案——解法2】("绝对路径+相对路径"法)CD\考生COPYBLK\BLP\BAR.
FOR+BSA\BSC\BIT.
PASBWA\BWS\BUSY.
DOC【经验宝库】注意DOS的"拷贝命令COPY的合并式拷贝"特点与用法.
2.
2.
11第11套基础知识操作上机逼真试题及精解【试题原貌】将(根目录下)考生目录下BTT\BTU子目录中的COMP.
PRG文件更名为DESIGN.
PRG.
【解题分析】由于所要更名的文件在子目录下,故用REN命令更名它们时必须指明原文件的路径(可以用绝对路径,也可以用相对路径),而无需指明新文件的路径.
【题解答案——解法1】(绝对路径法)REN\考生\BTT\BTU\COMP.
FRGDESIGN.
PRG【题解答案——解法2】("绝对路径+相对路径"法)CD\考生全国计算机等级考试上机考试典型逼真试题及精解16最新二级/基础知识操作和C语言程序设计RENBTT\BTU\COMP.
FRGDESIGN.
PRG【题解答案——解法3】("绝对路径+相对路径"法)CD\考生\BTTRENBTU\COMP.
FRGDESIGN.
PRG【题解答案——解法4】("绝对路径+相对路径"法)CD\考生\BTT\BTURENCOMP.
FRGDESIGN.
PRG【经验宝库】注意DOS的"文件更名命令REN"特点与用法.
2.
2.
12第12套基础知识操作上机逼真试题及精解【试题原貌】首先,在(根目录下)考生目录下的A子目录内建立三个新的子目录B1、B2、B3;接着,在此新子目录B2内建立两个新的子目录C1、C2;然后,在此新子目录C2内建立一个新的子目录D.
最后,在所建立的新子目录D下,为根目录下的备份文件COMMAND.
COM更名为COMM.
BAK.
【解题分析】由于要在(根目录下)考生目录下A子目录内,同层建立它的下一级子目录B1、B2、B3;新的子目录C1、C2,又是新子目录B2的下一级子目录;而最后一个新的子目录D,又是新子目录C2的下一级子目录.
因此,用建立该新子目录命令MD、改变当前子目录命令CD、文件更名命令REN时,都必须指明原文件的路径(注意:本题虽然可用相对路径来处理,但更宜用绝对路径解决).
【题解答案——解法1】(绝对路径法)MD\考生\A\B1MD\考生\A\B2MD\考生\A\B3MD\考生\A\B2\C1MD\考生\A\B2\C2MD\考生\A\B2\C2\DCOPY\COMMAND.
COM\考生\A\B2\C2\D\COMMAND.
COMREN\考生\A\B2\C2\D\COMMAND.
COMCOMM.
BAK【题解答案——解法2】("绝对路径+相对路径"法)MD\考生\A\B1MD\考生\A\B2第2章基础知识操作上机逼真试题及精解17MD\考生\A\B3MD\考生\A\B2\C1MD\考生\A\B2\C2MD\考生\A\B2\C2\DCD\考生COPY\COMMAND.
COMA\B2\C2\D\COMMAND.
COMRENA\B2\C2\D\COMMAND.
COMCOMM.
BAK【题解答案——解法3】("绝对路径+相对路径"法)CD\考生MDA\B1MDA\B2MDA\B3MDA\B2\C1MDA\B2\C2MDA\B2\C2\DCOPY\COMMAND.
COMA\B2\C2\D\COMMAND.
COMRENA\B2\C2\D\COMMAND.
COMCOMM.
BAK【题解答案——解法4】("绝对路径+相对路径"法)CD\考生\AMDB1MDB2MDB3MDB2\C1MDB2\C2MDB2\C2\DCD\考生\A\B2\C2\DCOPY\COMMAND.
COMCOMMAND.
COMRENCOMMAND.
COMCOMM.
BAK【题解答案——解法5】("绝对路径+相对路径"法)CD\考生\AMDB1MDB2MDB3CDB2MDC1全国计算机等级考试上机考试典型逼真试题及精解18最新二级/基础知识操作和C语言程序设计MDC2CDC2MDDCDDCOPY\COMMAND.
COMCOMMAND.
COMRENCOMMAND.
COMCOMM.
BAK2.
2.
13第13套基础知识操作上机逼真试题及精解【试题原貌】对根目录下的考生目录,把其下级BOW\BDX子目录中的文件BACK.
EXE删除.
【解题分析】由于所要删除的文件在子目录下,故用DEL命令删除它时必须指明其路径(可以用绝对路径,也可以用相对路径).
【题解答案——解法1】(绝对路径法)DEL\考生\BOW\BDX\BACK.
EXE【题解答案——解法2】("绝对路径+相对路径"法)CD\考生DELBOW\BDX\BACK.
EXE【题解答案——解法3】("绝对路径+相对路径"法)CD\考生\BOWDELBDX\BACK.
EXE【题解答案——解法4】("绝对路径+相对路径"法)CD\考生\BOW\BDXDELBACK.
EXE【经验宝库】注意DOS的"删除文件命令DEL"的功能与用法.
2.
2.
14第14套基础知识操作上机逼真试题及精解【试题原貌】已知在根目录下有考生目录,请把考生目录下的BCR\BCU子目录(假设该子目录下无其它内容)删除.
【解题分析】由于该子目录下无其它内容,而"考生"目录是在根目录下;故本题只需在DOS状态第2章基础知识操作上机逼真试题及精解19下,直接使用子目录删除命令"RD\考生\BCR\BCU"即可.
【题解答案——解法1】(绝对路径法)RD\考生\BCR\BCU【题解答案——解法2】("绝对路径+相对路径"法)CD\考生RDBCR\BCU【题解答案——解法3】("绝对路径+相对路径"法)CD\考生\BCRRDBCU【经验宝库】注意DOS的"删除子目录命令RD"的功能与用法.
2.
2.
15第15套基础知识操作上机逼真试题及精解【试题原貌】已知在根目录下有考生目录,请把考生目录下的BCR\BCU子目录(假设该子目录下只有其它无用文件)删除.
【解题分析】由于该子目录下有其它文件,故必须先删除它所具有的全部文件,然后才可能删除此子目录.
此外,"考生"目录是在根目录下;故本题只需在DOS状态下,使用子目录删除命令"RD\考生\BCR\BCU"即可.
【题解答案——解法1】(绝对路径法)DEL\考生\BCR\BCU\*.
*RD\考生\BCR\BCU【题解答案——解法2】("绝对路径+相对路径"法)DEL\考生\BCR\BCU\*.
*CD\考生RDBCR\BCU【题解答案——解法3】("绝对路径+相对路径"法)CD\考生DELBCR\BCU\*.
*RDBCR\BCU【题解答案——解法4】("绝对路径+相对路径"法)CD\考生\BCR全国计算机等级考试上机考试典型逼真试题及精解20最新二级/基础知识操作和C语言程序设计DELBCU\*.
*RDBCU【经验宝库】(1)注意DOS的"删除文件命令DEL"的功能与用法.
(2)特别注意:删除子目录的前提,是"删除一个子目录之前,必须确保它之下(即在此子目录内)既无任何文件,又无任何各层下级子目录".
因此,如果此子目录内的还有文件,就必须先用DEL命令删除此子目录内的所有文件;如果此子目录内还有下级子目录,就必须先用RD命令删除此子目录内的全部各层下级子目录.
2.
2.
16第16套基础知识操作上机逼真试题及精解【试题原貌】已知在根目录下有考生目录,请把考生目录下的BCR\BCU子目录(假设该子目录下只有其它无用文件,以及一个下一级空子目录XX)删除.
【解题分析】首先,由于此子目录下有其它文件,故必须先用DEL命令删除它所具有的全部文件,然后才可能删除此子目录.
其次,由于此子目录只有一个下一级空子目录,故必须先用RD命令删除它所具有的全部下级子目录,然后才可能删除此子目录.
此外,"考生"目录是在根目录下;故本题只需在DOS状态下,使用子目录删除命令"RD\考生\BCR\BCU"即可.
【题解答案——解法1】(绝对路径法)DEL\考生\BCR\BCU\*.
*RD\考生\BCR\BCU\XXRD\考生\BCR\BCU【题解答案——解法2】("绝对路径+相对路径"法)DEL\考生\BCR\BCU\*.
*RD\考生\BCR\BCU\XXCD\考生RDBCR\BCU【题解答案——解法3】("绝对路径+相对路径"法)CD\考生RDBCR\BCU\XXDELBCR\BCU\*.
*RDBCR\BCU【题解答案——解法4】("绝对路径+相对路径"法)CD\考生\BCR第2章基础知识操作上机逼真试题及精解21RDBCU\XXDELBCU\*.
*RDBCU【题解答案——解法5】("绝对路径+相对路径"法)CD\考生\BCR\BCURDXXDEL*.
*CD.
.
RDBCU【经验宝库】从当前目录回到(并不知其名,或无须知其名的)上一级目录,可用DOS命令"CD.
.
".
2.
2.
17第17套基础知识操作上机逼真试题及精解【试题原貌】已知在根目录下有考生目录,请把考生目录下的BCR\BCU子目录(假设该子目录下只有其它无用文件,以及一个下一级非空子目录XX——该子目录XX下只有其它无用文件)删除.
【解题分析】本题属于多级非空子目录删除处理.
由于凡子目录下有内容(包括:其它文件,或者下级子目录),都必须先使它为空(即:一方面,用DEL命令删除它所具有的全部文件;另一方面,对它的每个下级子目录也用DEL命令删除它所具有的全部文件后,再用RD命令删除所对应的该空子目录);否则,不能删除此子目录.
此外,还应注意如何指定文件所在路径(包括:绝对路径,相对路径).
据此:首先,先删除指定子目录XX下所有文件,再删除此子目录XX.
其次,先删除指定子目录BCU下全部文件,再删除此子目录BCU.
【题解答案——解法1】(绝对路径法)DEL\考生\BCR\BCU\XX\*.
*RD\考生\BCR\BCU\XXDEL\考生\BCR\BCU\*.
*RD\考生\BCR\BCU【题解答案——解法2】("绝对路径+相对路径"法)DEL\考生\BCR\BCU\XX\*.
*RD\考生\BCR\BCU\XXDEL\考生\BCR\BCU\*.
*CD\考生全国计算机等级考试上机考试典型逼真试题及精解22最新二级/基础知识操作和C语言程序设计RDBCR\BCU【题解答案——解法3】("绝对路径+相对路径"法)CD\考生DELBCR\BCU\XX\*.
*RDBCR\BCU\XXDELBCR\BCU\*.
*RDBCR\BCU【题解答案——解法4】("绝对路径+相对路径"法)CD\考生\BCRDELBCU\XX\*.
*RDBCU\XXDELBCU\*.
*RDBCU【题解答案——解法5】("绝对路径+相对路径"法)CD\考生\BCR\BCUDELXX\*.
*RDXXDEL*.
*CD.
.
RDBCU2.
2.
18第18套基础知识操作上机逼真试题及精解已知在考生目录下有一个子目录A;在此子目录A下有三个文件F1、F2、F3,和一个子目录B.
请在此子目录A下,把这三个文件F1、F2、F3顺序连接后,作为其子目录B下的文件F3.
【题解答案——解法1】(绝对路径法)COPY\考生\A\F1+\考生\A\F2+\考生\A\F3\考生\A\B\F3【题解答案——解法2】("绝对路径+相对路径"法)CD\考生\A\BCOPY\考生\A\F1+\考生\A\F2+\考生\A\F3F3【题解答案——解法3】("绝对路径+相对路径"法)CD\考生COPYA\F1+A\F2+A\F3A\B\F3第2章基础知识操作上机逼真试题及精解23【题解答案——解法4】("绝对路径+相对路径"法)CD\考生\ACOPYF1+F2+F3B\F3【经验宝库】注意:DOS命令"COPY文件1+文件2+……+文件n新文件",可把文件1、文件2、……、文件内容顺次相连接后的所得内容,作为新文件的内容.
这里,新文件的文件名没有任何限制(例如:可与文件1、文件2、……、文件n之一同名).
2.
2.
19第19套基础知识操作上机逼真试题及精解已知在考生目录下有一个子目录A,在此子目录A下有四个文件F1、F2、F3、F4.
请在此子目录A下,把这四个文件F1、F2、F3、F4顺序连接后,仍然以F3为文件名.
【题解答案——解法1】(绝对路径法)COPY\考生\A\F1+\考生\A\F2+\考生\A\F3+\考生\A\F4\考生\A\FFDEL\考生\A\F3REN\考生\A\FFF3【题解答案——解法2】(绝对路径法)COPY\考生\A\F1+\考生\A\F2+\考生\A\F3+\考生\A\F4\考生\A\FFCOPY\考生\A\FF\考生\A\F3【题解答案——解法3】("绝对路径+相对路径"法)CD\考生COPYA\F1+A\F2+A\F3+A\F4A\FFDELA\F3RENA\FFF3【题解答案——解法4】("绝对路径+相对路径"法)CD\考生COPYA\F1+A\F2+A\F3+A\F4A\FFCOPYA\FFA\F3【题解答案——解法5】("绝对路径+相对路径"法)CD\考生\ACOPYF1+F2+F3+F4FFDELF3RENFFF3【题解答案——解法6】CD\考生\A全国计算机等级考试上机考试典型逼真试题及精解24最新二级/基础知识操作和C语言程序设计COPYF1+F2+F3+F4FFCOPYFFF32.
2.
20第20套基础知识操作上机逼真试题及精解已知在考生目录下有一个文件KK与一个子目录BB,而在此子目录BB下有三个文件K1、K2、K3.
请在此子目录BB下,把这三个文件K1、K2、K3,依次连接在该文件KK的后面.
【题解答案——解法1】(绝对路径法)COPY\考生\KK+\考生\BB\K1+\考生\BB\K2+\考生\BB\K3【题解答案——解法2】("绝对路径+相对路径"法)COPY\考生\KK+\考生\BB\K1+\考生\BB\K2+\考生\BB\K3\考生\KK【题解答案——解法3】("绝对路径+相对路径"法)CD\考生COPYKK+BB\K1+BB\K2+BB\K3【题解答案——解法4】("绝对路径+相对路径"法)CD\考生COPYKK+BB\K1+BB\K2+BB\K3KK【题解答案——解法5】("绝对路径+相对路径"法)CD\考生\BBCOPY\考生\KK+K1+K2+K3【题解答案——解法6】("绝对路径+相对路径"法)CD\考生\BBCOPY\考生\KK+K1+K2+K3\考生\KK【题解答案——解法7】("绝对路径+相对路径"法)CD\考生\BBCOPY\考生\KK+K1+K2+K3\考生\MMDEL\考生\KKREN\考生\MMKK【题解答案——解法8】CD\考生\BBCOPY\考生\KK+K1+K2+K3\考生\MMCOPY\考生\MM\考生\KK【经验宝库】(1)当使用DOS命令"COPY文件1+文件2+……+文件n新文件"中新文件的文件名第2章基础知识操作上机逼真试题及精解25与文件1的文件名同名,DOS命令"COPY文件1+文件2+……+文件n新文件",才可简化为"COPY文件1+文件2+……+文件n".
换言之,如果新文件的文件名与文件1的文件名不同名,就只能采用"COPY文件1+文件2+……+文件n新文件"(例如:第18套、第19套基础知识操作上机全真题与题解).
(2)使用DOS下的文件更名命令"REN旧文件名新文件名"时,如果在旧文件同一子目录下有与新文件名同名的其他文件,就必须先删除该同名其他文件,然后才能正常使用文件更名命令"REN旧文件名新文件名".
在全国计算机二级考试的"计算机基础部分和C语言程序设计"上机考试中,C语言程序设计上机改错试题只有一题,其分值为30分,占整个上机考试总分数的30%.
3.
1上机改错试题的规定约束和应试模式上机改错题考试的答题规定,考生考前需要事先熟悉它,考试时必须遵守它.
上机改错题的应试模式,考生应当根据试题具体情况,见机行事、灵活选用.
3.
1.
1上机改错试题的规定约束为了能够由计算机统一阅卷,对考生上机改错的答题操作有一定的严格要求.
考生只能熟悉并遵守这些答题规定.
即:对给定源程序改错时,改动的范围、形式、内容,都必须严格遵守在试题中明确给出的"注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
"的答题规定.
对此,考生务必千万小心:任何时候都不要违反此答题规定(例如:不可对main函数进行任何增删、修改;对程序中main函数以外各程序行,只可在其本行内进行修改,但不得增行或删行,也不得更改程序的结构).
否则,"全国计算机等级考试判卷软件"将会得出错误的判分结果.
第3章C语言程序设计上机改错逼真试题及精解第3章C语言程序设计上机改错逼真试题及精解27其所以如此制定上机改错题的答题规定和约束,主要为了便于计算机化判卷处理的基本需要,而并非C语言程序设计本身的语法规定或设计要求.
对此,特简要说明如下,以便使广大考生能更好地理解、支持与周知、遵守该答题规定:①要求考生改错时"不得增行或删行"(否则,答题视为无效),是为了减少机读答卷变数、便于计算机程序判卷.
诚然,C语言对程序的书写格式没有较严格的限制,但为了让判分程序能够正确识别出考生所做的修改,务必遵守"不得增行或删行".
如果考试时无意中增加或删除了程序行而破坏了原给定程序,只要未曾存盘,就可以将磁盘上的原给定程序重新调入TC环境中来即可恢复原给定的程序.
(建议:考生在尚未修改程序之前,宜预先拷贝出原给定程序的一个备份文件,以防不测事件发生时,能够及时用它恢复原给定的程序.
)②要求考生改错时"不得更改程序的结构"(否则,答题视为无效),是为了简化机读评卷情况、利于计算机程序判卷.
虽然,使用不同的C语言程序结构、算法思想或设计方法(即更改程序结构),也可以"殊途同归"——实现同样功能.
但是,既然改错题的类型、性质和要求,都只侧重于在给定程序基本框架下的程序"改错",而不是侧重于设计程序、构造框架的程序"编程",故要求考生"不得更改程序的结构",可以说是合理的、恰当的.
要求考生改错时"不要改动main函数"(否则,答题视为无效),是为了缩小机读评卷范围、易于计算机程序判卷.
同时,它也有利于考生过关:减少了改错范围和答题难度.
此外,由于存在上机考试系统环境约束——"考生不能重复进入计算机等级考试系统的同一个答题环境",也就是说,如果因故必须重新进入考试系统,那么进入后的考试系统环境将会是另一个新的答题环境,原来答题时所做的一切工作将不复存在.
所以,如果修改后的程序还有错误,没有仔细检查就运行,就有可能引起死机,而对考试产生很大的不利影响.
对此,强烈建议考生按照下面的步骤进行上机考试:首先,"编写、编辑、修改程序,编译连接程序,调试状态方式运行程序(例如:可用单步跟踪或设置断点的方法调试运行程序),直到没有任何语法错误(包括警告)".
然后,在确认无误后,再让程序正式完整运行完毕.
这样的调试步骤相当重要,不少的考生修改完成程序后,就直接按"Ctrl+F9"运行程序,结果因程序有错误而运行死机,就没有机会再对它进行修改了.
通常,一道C语言程序上机改错题,包括三大部分:数据输入部分、数据处理部分、信息输出部分.
其中,数据输入部分、信息输出部分是由试题完整给出的,并且肯定是正确的.
故考生在考试时,对程序的输入、输出两部分必须同时也只需弄清其功能即可,而不必过多推敲、仔细研究.
(当然,但在复习迎考时,认真看、仔细想这两部分的内容,对加深改错题的理解无疑是很有帮助的.
)3.
1.
2上机改错试题的应试模式必须明确指出:由于2002年版《全国计算机等级考试考试大纲》(以下简称《考试大纲》),已摈弃了2002年以前各老版本《考试大纲》的传统老考法——用注释行"found暗示考生"注意:C语言程序错处就在此注释行或其附近".
所以,完成今天计算机等级考试的上机改错题,要求考生不仅要不违反"答题规定",而且要先由考生自行在全国计算机等级考试上机考试典型逼真试题及精解28最新二级/基础知识操作和C语言程序设计给定原程序中除main函数以外的其它各程序行整个区域内,自己动手找出错处,然后才能进行改错处理.
按现行上机试题的出题惯例和构成规律,在实际全真试题所给定源程序中,需要加以改正的错误,通常有错误2~4个,并多为2~3个.
这些错误的性质,可分为静态错误(包括:语法格式错误、功能逻辑错误)与动态错误(即运行错误);而其错误范围,则只局限在除main函数外的局部范围内.
考生对隐藏在给定源程序中的这些错误进行修改时,应该力求尽快"以最小的改动,达到改错目的".
因此,考生为了增加自己上机的纠错改错题的胜算把握,必须在考试实战中根据试题实际情况,恰当选择与之相适应的上机改错应试模式.
1.
直接观察法改错应试模式对结构较为简单的程序,宜采用直接观察法改错应试模式,其上机纠错效果常常不错.
事实上,不少上机改错题给定程序的纠错(Debug),多可以采用直接观察法改错应试模式.
直接观察法的纠错特点是"通过直接观察、仔细研究相关源代码,便可找到其中的主要错误(甚至全部错误)".
观察、研究源代码的正确性,一般可按照以下原则进行处理:对每一语句,都必须仔细阅读、认真检查,直接察看它是否符合语法规则.
对程序中出现的各个变量的名称仔细进行考察.
通常情况下,试题给出的题目中的变量名通常是具有一定意义的英文单词、词组或其缩写,了解这些变量名的含义,能有助于彻底地掌握源程序各部分的设计意图与对应意义.
对于函数调用、输入输出等语句,应特别检查:其返回值是否"有还应无,对还是错";其参数是否"类型匹配,顺序得当,个数正确,形式合法";"是模拟变参(即所谓传址调用),还是模拟值参(即所谓传值调用)"等等.
根据源程序的总体结构,推测程序解决问题的方法.
在进行推测的时候,可以试着想一想"如果让自己来实现该题目所要求的功能,大体上应该怎么来编写".
这当然要有一定的程序设计经验和阅读软件的能力,是需要长期练习的.
2.
动态模拟法改错应试模式对结构较为复杂的程序,直接观察法上机纠错时常力不从心,但采用动态模拟法改错应试模式则较为适宜.
动态模拟法的纠错特点是"对程序进行动态的模拟运行状态下的跟踪、调试".
此时,若有必要,可自己选用一定的测试数据,对程序进行模拟动态调试,以具体跟踪主要数据、变量的动态变化和各次输出信息的内容变迁,从而发现错处、予以改正.
3.
真实运行法改错应试模式对结构颇为复杂的程序,直接观察法和动态模拟法往往上机纠错乏力.
此时,就宜采用真实运行法改错应试模式来进行纠错.
真实运行法的纠错特点是"对程序进行动态实际运行状态下的跟踪、调试".
第3章C语言程序设计上机改错逼真试题及精解29真实运行法改错应试模式下,既可通过对源程序进行编辑、编译、连接,并根据编译器的反馈信息、错误类型、纠错建议进行改错,以达到一定程度上的计算机辅助纠错效果;也可用一定的测试数据,对程序进行现场调试;还可在适当的地方设置断点、或单步跟踪,来找到程序出错处,并及时进行修改.
另外,对于程序的功能实现处理,函数调用、输入输出等语句使用等,考生还应检查它们的参数类型是否匹配、顺序是否合适、数量是否正确、功能是否实现等等,因为编译程序不能检查出这些逻辑性、功能性错误,且这些错误又时常因C语言的过分灵活性、出题者的干扰性而很容易被引发.
4.
混合应用法改错应试模式它实际上就是混合使用上述两种或三种的上机改错应试模式,来进行综合纠错.
故不必多讲而从略.
3.
2上机改错逼真试题及精解本节,将详细给出约30道精选的改错逼真试题及其配套典型题解.
3.
2.
1第1套上机改错逼真试题及精解第1道精选的"二级C语言程序设计"的上机改错逼真试题,及其代表性配套典型题解,给出如下.
【试题原貌】下列给定程序的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子).
例如,若输入整数2310,则应输出2、3、5、7、11.
请改正程序中的错误,使程序能得出正确的结果.
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:#include#includeIsPrime(intn);{inti,m;m=1;for(i=2;i/*控制台头文件*/#include/*标准输入/输出头文件*/intIsPrime(intn)/*(更正1、2!
)"n为素数"判定函数IsPrime定义*/{inti,m;/*函数IsPrime的局部整型变量定义*/m=1;/*初始标志值:"假使n是素数"*/for(i=2;idoublefun(intn){doubleresult=1.
0;while(n>1&&n/*包含标准输入输出头文件*/doublefun(intn){/*子函数定义语句*/doubleresult=1.
0;/*说明局部变量result并初始化*/while(n>1&&n1&&n#defineN20voidfun(inta[],intn){inti,j,t,p;for(j=0;j/*包含标准输入输出头文件*/#defineN20/*定义常量N的值为20*/voidfun(inta[],intn){/*子函数定义语句*/inti,j,t,p;/*说明局部变量i,j,t和p*/第3章C语言程序设计上机改错逼真试题及精解37for(j=0;j#includevoidfun(char*s,inta,intb){while(*s){if(*s>='A'&&*s='a'&&*s/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/voidfun(char*s,int*a,int*b){/*(更正1!
)子函数定义语句*/while(*s){/*while循环语句*/if(*s>='A'&&*s='a'&&*s#includefun(intm){doubley=0,d;inti;for(i=100,i/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/floatfun(intm){/*(更正1!
)子函数定义语句*/doubley=0,d;/*说明实型局部变量y,d并初始化*/inti;/*说明整型局部变量i*/for(i=100;iintfun(){inta[3][3],sum;inti,j;sum;for(i=0;i/*包含标准输入输出头文件*/intfun(){子函数定义语句inta[3][3],sum;/*说明整型局部变量a[][]和sum*/inti,j;/*说明整型局部变量i和j*/sum=0;/*(更正1!
)将累和变量sum初始化为0*/for(i=0;ifun(chara){if(*a){fun(a+1);printf("%c"*a);}}main(){chars[10]="abcd";clrscr();printf("处理前字符串=%s\n处理后字符串=",s);fun(s);printf("\n");}【解题分析】第一,从表面上看,程序清单中第5至8行语句的并没有什么错误,经过编译后系统会全国计算机等级考试上机考试典型逼真试题及精解48最新二级/基础知识操作和C语言程序设计发现第2行存在"数据类型不匹配"错误.
由于主函数中的函数调用fun(s)使用数组名称s作为实在参数,所以子函数fun()中的形式参数a只能是一个指针变量,即第1错误点应该修改为:fun(char*a).
第二,一般情况下,要求考生们直接从程序清单中发现错误不是很容易的.
所以,我们建议考生们可以利用编译程序来发现错误.
既然编译程序已经发现错误,所以程序肯定有错误.
最后,仔细检查程序清单才注意到:格式描述与输出量之间没有分隔符号",",即第2错误点应该修改为:printf("%c",*a).
第三,主函数main()中,首先说明一维字符数组并初始化,以表示一个具体的字符串,其后输出两行提示信息,并调用递归函数fun()将字符串中的字符按逆序进行输出.
【题解答案】经过修改的正确程序如下所示:#include/*包含标准输入输出头文件*/fun(char*a){/*(更正1!
)子函数定义语句*/if(*a){/*如果串中还有字符的话*/fun(a+1);/*进行递归函数调用*/printf("%c",*a);/*(更正2!
)输出递归函数的"递归"运算结果*/}}main(){/*主函数定义语句*/chars[10]="abcd";/*说明局部变量并初始化*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("处理前字符串=%s\n处理后字符串=",s);/*输出两行提示信息*/fun(s);/*调用递归函数fun()*/printf("\n");/*使显示效果为换行*/}输入数据:处理前字符串=asdfghjkl输出结果:处理后字符串=lkjhgfdsa【经验宝库】C语言系统中除提供大量的库函数外,还允许用户根据应用要求自行定义各种函数.
另外,C语言中允许函数进行递归调用,换言之,可以直接调用自己,也可以间接调用自己.
但不是任何计算问题都可以采用递归方法来解决的,一个计算问题要能够采用递归时,必须符合以下三个条件:必定要有一个明确的结束递归过程的条件;可应用转化递归过程使计算问题得以解决;可以将要解的问题转化为另一问题,而二者之间的解法是完全相同的,被处理的对象必须有规律地递增或递减.
第3章C语言程序设计上机改错逼真试题及精解49例如,在函数fun(a)的定义过程中存在递归调用,即fun(a+1).
下面编写(非递归)的循环程序,考生们可以对二者进行比较:fun(char*a){/*子函数定义语句*/inti,j,k=0;/*说明整型变量k并赋初值0*/chartmp[10];/*说明作为中间变量的一维数组tmp[]*/while(*a){/*如果a串中还有字符的话*/tmp[k]=*a;/*生成数组tmp[]中的全部元素*/k++;/*使整型变量k的值自增1*/a++;/*使指针变量a的值自增1*/}k--;/*使整型变量k的值自减1*/for(i=0;i#includedoublefun(intm){doublet=1.
0;inti;for(i=2;i/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/doublefun(intm){/*子函数定义语句*/doublet=1.
0;/*说明局部变量t并初始化*/inti;/*说明局部变量i*/for(i=2;i#includelongfun(intk){ifk>0return(k*fun(k-1));elseif(k=0)return1L;}main(){intk=10;clrscr();printf("%d!
=%ld\n",k,fun(k));NONO();}NONO(){第3章C语言程序设计上机改错逼真试题及精解53FILE*rf,*wf;inti,k;rf=fopen("gc02.
in","r");wf=fopen("gc02.
out","w");for(i=0;i0).
第二,这是一个递归程序,考生们可能会认为递归程序是非常复杂的,不过只要多使用递归程序并找出程序构造规律,就能深刻理解递归程序.
程序清单中的第4至7行使用条件语句来实现阶乘运算,其中第5行的语句就是递归函数调用,实际上所用的是直接递归.
第三,同样,第2错误点应该修改为:if(k==0),也属于条件语句中的条件式错误.
考生们切记,C语言中的赋值运算使用符号"=",而相等比较运算使用符号"==".
第四,在主函数main()中,首先清除屏幕原有内容,使光标位置回到左上角,然后调用阶乘计算函数fun()并输出计算结果.
第五,测试函数NONO()的主要功能是:打开输入数据文件g02.
in和输出数据文件g02.
out,将输入数据用于fun函数的调用过程中,其间使for循环体进行十次可以计算十次阶乘,并输出数据以便考生们发现程序是否正确,最后关闭这两个数据文件.
【题解答案】经过修改的正确程序如下所示:#include/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/longfun(intk){/*子函数定义语句*/if(k>0)/*(更正1!
)如果k的值大于0*/return(k*fun(k-1));/*函数返回表达式k*fun(k-1)*/elseif(k==0)/*(更正2!
)如果k的值等于0*/return1L;/*函数返回1到主函数main()中*/}main(){/*主函数定义语句*/全国计算机等级考试上机考试典型逼真试题及精解54最新二级/基础知识操作和C语言程序设计intk=10;/*说明局部变量k并初始化*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("%d!
=%ld\n",k,fun(k));/*调用函数fun()并显示结果*/NONO();/*调用测试函数*/}NONO(){/*打开文件,输入测试数据,调用fun函数,输出数据,关闭文件*/FILE*rf,*wf;/*说明文件指针变量rf和wf*/inti,k;/*说明局部变量i和k*/rf=fopen("g02.
in","r");/*以只读方式打开输入文件g02.
in*/wf=fopen("g02.
out","w");/*以写方式打开输出文件g02.
out*/for(i=0;i#includeintfun(intm){intk=2;while(k/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/intfun(intm){/*子函数定义语句*/intk=2;/*说明局部变量k并初始化*/while((kfun(char*str,char*substr){inti,j,k,num=0;for(i=0,str[i],i++)for(j=i,k=0;substr[k]==str[j];k++,j++)If(substr[k+1]=='\0'){num++;break;}returnnum;}main(){charstr[80],substr[80];全国计算机等级考试上机考试典型逼真试题及精解58最新二级/基础知识操作和C语言程序设计clrscr();printf("Inputastring:");gets(str);printf("Inputasubstring:");gets(substr);printf("%d\n",fun(str,substr));}【解题分析】第一,程序清单中的第1至3行完全正确,但第4行存在错误.
第二,由【试题原貌】和原程序可知,函数fun()中的形参str和substr都是指针变量,分别用于表示主字符串和子字符串.
所以,在原程序应该使用一个双重的for循环来进行对应字符的比较处理,循环次数由主函数中的字符串指针说明部分确定.
不过考生们很容易发现第1错误点的问题,这是因为错得非常地"离谱",既有语法方面的错误也有逻辑方面的错误.
所以,第1错误点应该修改为:for(i=0;i/*包含标准输入输出头文件*/fun(char*str,char*substr){/*子函数定义语句*/inti,j,k,num=0;/*说明局部变量i,j,k和num并初始化*/for(i=0;i#include#includechar*fun(char*s,char*t){char*p,*r,*a;a=Null;while(*s){p=s;r=t;while(*r)if(r==p){r++;p++;}elsebreak;if(*r=='\0')第3章C语言程序设计上机改错逼真试题及精解61a=s;s++;}returna;}main(){chars[100],t[100],*p;clrscr();printf("\nPleaseenterstrings:");scanf("%s",s);printf("\nPleaseentersubstringt:");scanf("%s",t);p=fun(s,t);if(p)printf("\nTheresultis:%s\n",p);elseprintf("\nNotfound!
\n");}【解题分析】第一,程序清单中的第1至5行完全正确,但第6行存在语法错误.
主要功能是:包含控制台输入输出头文件conio.
h、标准输入输出头文件stdio.
h和标准字符串处理头文件string.
h,并进行局部变量说明与初始化工作.
第二,由【试题原貌】和原程序清单中可以清楚地知道,函数fun()中的形参s和t都是指针变量,分别用于表示主字符串和子字符串.
所以,在原程序应该使用一个双重的while循环来进行对应字符的比较,循环次数由主函数中的数组说明部分确定.
考生们很容易发现第1错误点的问题,在语法方面应使用关键字NULL,这是因为C语言中对大小写要进行区分,用于表示指针变量a的值为空指针,在逻辑方面应引用指针变量本身.
所以,第1错误点应该修改为:a=NULL.
第三,程序清单中的第7至17行使用一个双重的while循环来进行对应字符的比较处理,并没有任何语法错误,但第11行的语句存在逻辑错误.
其中,外层while循环用于控制两个字符串进行比较,而内层while循环才是具体实现对两个字符串的比较.
条件"*r==*p"表示对应串中的两个字符是否相同,若相同则将指针变量r和p的值自增1,否则终止内层循环部分的执行过程;另外,如果r所指的字符串已经结束,则将s的值赋给指针变量a;最后,将指针变量s的值自增1.
第四,在while循环中要进行对应字符的比较,而这些字符是通过指针变量s和t来指定的,所以第2错误点应该修改为:if(*r==*p){r++;p++;}.
全国计算机等级考试上机考试典型逼真试题及精解62最新二级/基础知识操作和C语言程序设计第五,主函数main()中,首先说明两个字符数组以表示主字符串和子字符串、一个指针变量,并清除屏幕内容并使光标回到左上角;然后,在显示适当的提示信息后,分别从键盘中将主字符串与子字符串读到字符数组s和t中;最后调用子函数fun()计算得到p,如果标志p的值为真,则显示提示信息和相应的运行结果,否则显示"Notfound!
".
【题解答案】经过修改的正确程序如下所示:#include/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/#include/*包含标准字符串处理头文件*/char*fun(char*s,char*t){/*子函数定义语句*/char*p,*r,*a;/*说明局部指针变量p,r和a*/a=NULL;/*(更正1!
)将指针变量a赋成空指针*/while(*s){/*外层while循环*/p=s;/*将s赋给指针变量p*/r=t;/*将t赋给指针变量r*/while(*r)/*内层while循环*/if(*r==*p)/*(更正2!
)如果对应串中的两个字符相同*/{r++;p++;}/*将指针变量r和p自增1*/else/*如果对应串中的两个字符不相同*/break;/*终止内层循环部分的执行*/if(*r=='\0')/*如果r所指的字符串结束*/a=s;/*将s赋给指针变量a*/s++;/*将指针变量s自增1*/}returna;/*返回在主串中最后一次出现的子串的地址*/}main(){/*主函数定义语句*/chars[100],t[100],*p;/*说明局部变量*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("\nPleaseenterstrings:");/*显示提示信息*/scanf("%s",s);/*从键盘中读一个字符串到数组s中*/printf("\nPleaseentersubstringt:");/*显示提示信息*/scanf("%s",t);/*从键盘中读一个字符串到数组t中*/p=fun(s,t);/*调用子函数fun()*/if(p)/*如果p的值为真*/printf("\nTheresultis:%s\n",p);/*显示提示信息和计算结果*/else/*如果p的值为假*/printf("\nNotfound!
\n");/*显示提示信息*/}第3章C语言程序设计上机改错逼真试题及精解63输入数据:Pleaseenterstrings:aasasdasdfPleaseentersubstringt:as输出结果:Theresultis:asdf【经验宝库】子函数fun()的返回值为基类型为char的指针类型,即可能是一个地址数据(其逻辑值对应为真),也可能是一个NULL常量(其逻辑值对应为假).
所以,主函数main()利用这一概念来输出指定的输出信息.
注意:在ANSIC语言中,符号NULL是包含在头文件stdio.
h中的预定义标识符,其含义就是字符'\0'.
另外,'\0'为ASCII码中的字符0,从而以格式符"%d"输出时,将是其对应的ASCII码,即0.
3.
2.
13第13套上机改错逼真试题及精解【试题原貌】给定程序MODI1.
C中函数fun的功能是:将字符串s中位于奇数位置的字符或ASCII码为偶数的字符放入字符串t中(规定第一个字符放在第0位中).
例如,字符串中的数据为:AABBCCDDEEFFF,则输出应当是:ABBCDDEFF.
请改正函数fun中的错误,使它能计算出正确的结果.
注意:不要改正main函数,不得增行或删行,也不得更改程序的结构.
试题程序:#include#include#include#defineN80voidfun(char*s,chart[]){inti,j=0;for(i=0;i/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/#include/*包含标准字符串处理头文件*/#defineN80/*定义整型常量N的值为80*/voidfun(char*s,chart[]){/*子函数定义语句*/inti,j=0;/*说明局部变量并进行初始化*/for(i=0;i#include#includetypedefstructaa{intdata;structaa*next;}NODE;NODE*Creatlink(intn,intm){全国计算机等级考试上机考试典型逼真试题及精解66最新二级/基础知识操作和C语言程序设计NODE*h=NULL,*p,*s;inti;p=(NODE)malloc(sizeof(NODE));h=p;p->next=NULL;for(i=1;idata=rand()%m;s->next=p->next;p->next=s;p=p->next;}returnp;}outlink(NODE*h){NODE*p;p=h->next;printf("\n\nTHELIST:\n\nHEAD");while(p){printf("->%d",p->data);p=p->next;}printf("\n");}main(){NODE*head;clrscr();head=Creatlink(8,22);outlink(head);}【解题分析】第一,程序清单中的第1至7行完全正确,主要功能是:包含控制台输入输出头文件conio.
h、标准输入输出文件stdio.
h和标准库头文件string.
h,定义NODE为结构(注:其实质是"记录",故应称记录为宜)体数据类型标识符,其中包括两个分量:第一个结构体成员为int类型的data,第二个结构体成员为指针类型的next.
第二,子函数Creatlink()的功能是:创建带头结点的单向链表,并为各结点数据域赋0到m-1的值.
C语言中提供动态存储分配的内存空间分配方式:在程序运行过程中需要空第3章C语言程序设计上机改错逼真试题及精解67间存储数据时,才向系统"申请"分配指定的内存空间;在内存空间不用时,可以随时将其释放.
函数malloc的调用形式为:malloc(size).
这里的size是unsignedint类型,函数malloc用来分配size个字节的存储区,返回一个指向向储区起始地址的基类型为void的指针.
只有在内存空间不够分配时,函数返回值才为指针NULL.
由于动态存储分配方法是完全固定的,所以第1错误点应该修改为:p=(NODE*)malloc(sizeof(NODE)).
第三,由【试题原貌】和原程序可知,函数fun()中的局部变量h和p都是指针变量,分别用于表示主表头结点和链表指针.
所以,在原程序使用一个单重的while循环来建立链表,所以在使用return语句时,需要返回表头结点,而不是一个任意的链表指针,即第2错误点应该修改为:returnh.
第四,子函数outlink()的功能是输出一个带头结点的单向链表,具体实现过程如下:首先将结点p的指针域赋给结点p,然后使用一个单重while循环来输出单向链表中每一个结点,最后使显示为换行效果.
第五,在主函数main()中,首先说明局部变量,并清除屏幕内容并使光标回到左上角,然后调用子Creatlink函数来创建带头结点的单向链表,最后调用函数outlink()来输出一个带头结点的单向链表.
【题解答案】经过修改的正确程序如下所示:#include/*包含标准输入输出头文件*/#include/*包含控制台输入输出头文件*/#include/*包含标准库头文件*/typedefstructaa{/*定义结构体数据类型*/intdata;/*说明结构体中的第一个成员为data*/structaa*next;/*说明结构体中的第二个成员为next*/}NODE;/*定义结构体数据类型标识符*/NODE*Creatlink(intn,intm){/*子函数定义语句*/NODE*h=NULL,*p,*s;/*说明局部变量并进行初始化*/inti;/*说明局部变量i*/p=(NODE*)malloc(sizeof(NODE));/*(更正1!
)为指针变量p分配存储空间*/h=p;/*将p的值赋给表头结点h*/p->next=NULL;/*将结点p的指针域赋成NULL,即空指针*/for(i=1;idata=rand()%m;/*调用函数生成指针变量s的数据域*/s->next=p->next;/*将结点p的指针域赋给结点s的指针域*/p->next=s;/*将结点s的值赋给结点p的指针域*/p=p->next;/*将结点p的指针域赋给结点p*/全国计算机等级考试上机考试典型逼真试题及精解68最新二级/基础知识操作和C语言程序设计}returnh;/*(更正2!
)将表头结点h返回给主函数main()*/}outlink(NODE*h){/*子函数定义语句*/NODE*p;/*说明基类型为NODE的指针变量p*/p=h->next;/*将结点p的指针域赋给结点p*/printf("\n\nTHELIST:\n\nHEAD");/*显示提示信息*/while(p){/*while循环*/printf("->%d",p->data);/*显示提示信息*/p=p->next;/*将结点p的指针域赋给结点p*/}printf("\n");/*使显示为换行效果*/}main(){/*主函数定义语句*/NODE*head;/*说明基类型为NODE的指针变量head*/clrscr();/*清除屏幕内容并使光标回到左上角*/head=Creatlink(8,22);/*调用函数来创建带头结点的单向链表*/outlink(head);/*输出一个带头结点的单向链表*/}输出结果:THELIST:HEAD->16->20->4->12->18->11->17->13【经验宝库】在C语言中,结构体数据类型说明的一般形式为:struct结构体标识名{类型名1结构成员名表1;类型名2结构成员名表2;……类型名n结构成员名表n;};这里的符号"struct"是C语言的保留关键字,代表结构体数据类型,结构体标识名和结构成员名是用户自定义的标识符.
另外,符号"typedef"也是C语言的保留关键字,用于定义指定数据类型的标识名称.
所以,本题中定义NODE为结构体数据类型.
建立带表头结点线性链表的基本思想如下:首先应该生成一个表头结点,从而得到一个"空"的链表.
然后,从线性表中的第一个元素开始,依次生成存储每个元素的结点,并逐个链接到线性链表上去,直到最后一个元素链接到线性链表中时为止.
对链表结构感兴趣的第3章C语言程序设计上机改错逼真试题及精解69考生们可以参考《数据结构》方面的书籍.
3.
2.
15第15套上机改错逼真试题及精解【试题原貌】给定程序MODI1.
C中函数fun的功能是:求出以下分数序列的前n项之和.
和值通过函数值返回到main函数.
2/1,3/2,5/3,8/5,13/8,21/13,……例如,若n=5,则应输出:8.
391667.
请改正函数fun中的错误,使它能计算出正确的结果.
注意:不要改正main函数,不得增行或删行,也不得更改程序的结构.
试题程序:#include#includefun(intn){inta,b,c,k;doubles;s=0.
0;a=2;b=1;for(k=1;k/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/doublefun(intn){/*(更正1!
)子函数定义语句*/inta,b,c,k;/*说明整型局部变量a,b,c和k*/doubles;/*说明实型局部变量s*/s=0.
0;/*将累和变量s的初始值赋成0*/a=2;/*将分式项的分子部分a的初始值赋成2*/b=1;/*将分式项的分母部分b的初始值赋成1*/for(k=1;k#includevoidfun(inta,intb){intt;t=b;全国计算机等级考试上机考试典型逼真试题及精解72最新二级/基础知识操作和C语言程序设计b=a;a=t;}main(){inta,b;clrscr();printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);NONO();}NONO(){inti,a,b;FILE*rf,*wf;rf=fopen("gc4.
in","r");wf=fopen("gc4.
out","w");for(i=0;i/*包含标准输入输出头文件*/#include/*包含控制台输入输出头文件*/voidfun(int*a,*b){/*(更正1!
)子函数定义语句*/intt;/*说明局部变量t*/t=*b;/*(更正2!
)交换变量a和b所指内容*/*b=*a;/*用于将变量a和b所指的内容进行交换*/*a=t;/*用于将变量a和b所指的内容进行交换*/}main(){/*主函数定义语句*/inta,b;/*说明局部变量a和b*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("Entera,b:");/*显示提示信息*/scanf("%d%d",&a,&b);/*输入两个整型数据到变量a和b中*/fun(&a,&b);/*调用函数fun*/printf("a=%db=%d\n",a,b);/*输出函数运行结果*/NONO();/*调用测试函数*/}NONO(){/*打开文件,输入测试数据,调用fun函数,输出数据,关闭文件*/inti,a,b;/*说明局部变量i,a和b*/FILE*rf,*wf;/*说明文件指针变量rf和wf*/rf=fopen("gc4.
in","r");/*以只读方式打开输入文件g04.
in*/wf=fopen("gc4.
out","w");/*以写方式打开输出文件g04.
out*/for(i=0;i#includedoublefun(intn){doubleresult=1.
0;ifn==0return1.
0;while(n>1&&n/*包含标准输入输出头文件*/#include/*包含控制台输入输出头文件*/doublefun(intn){/*子函数定义语句*/doubleresult=1.
0;/*说明局部变量result并初始化*/if(n==0)/*(更正1!
)如果n的值为0*/return1.
0;/*将数据"1"返回给主函数main()*/while(n>1&&n0)/*如果n的值大于0*/return(n*fun(n-1));/*函数返回表达式n*fun(n-1)*/elsereturn1;/*函数返回1到主函数main()中*/}/*计算阶乘的循环程序*/longfun(intk){/*子函数定义语句*/longi,fact=1;/*说明局部变量k并初始化*/for(i=1;i#include全国计算机等级考试上机考试典型逼真试题及精解78最新二级/基础知识操作和C语言程序设计#includevoidfun(char*s){while(*s!
='@'){if(*s>='A'&*s='a'&&*s/*包含标准输入输出头文件*/#include/*包含字符数据处理头文件*/#include/*包含控制台输入输出头文件*/voidfun(char*s){/*子函数定义语句*/while(*s!
='\0'){/*(更正1!
)while循环语句*/if(*s>='A'&*s='a'&&*s#includedoublefun(intm){doublet=1.
0;inti;for(i=2;i/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/doublefun(intm){/*子函数定义语句*/doublet=1.
0;/*说明局部变量t并初始化*/inti;/*说明局部变量i*/for(i=2;i#include#includefun(intn,int*a){inti,j,p,t;for(j=0;ja[i])t=i;if(p!
=j){t=a[j];a[j]=a[p];a[p]=t;}}}putarr(intn,int*z){inti;for(i=1;i/*包含控制台输入输出头文件*/全国计算机等级考试上机考试典型逼真试题及精解86最新二级/基础知识操作和C语言程序设计#include/*包含标准输入输出头文件*/#include/*包含标准库头文件*/fun(intn,int*a){/*子函数定义语句*/inti,j,p,t;/*说明局部变量i,j,p和t*/for(j=0;ja[i])p=i;/*(更正2!
)把最小元素的下标存入变量p*/if(p!
=j){/*如果p的值与j的值不相等*/t=a[j];/*用于将最小元素a[p]与a[j]交换*/a[j]=a[p];/*用于将最小元素a[p]与a[j]交换*/a[p]=t;/*用于将最小元素a[p]与a[j]交换*/}}}putarr(intn,int*z){/*子函数定义语句*/inti;/*说明局部变量i*/for(i=1;i#include#includetypedefstructaa{intdata;structaa*next;}NODE;intfun(NODE*h){intsum=0;NODE*p;p=h;while(p){if(p->data%2==0)sum+=p->data;p=h->next;}returnsum;}NODE*creatlink(intn){全国计算机等级考试上机考试典型逼真试题及精解88最新二级/基础知识操作和C语言程序设计NODE*h,*p,*s,*q;inti,x;h=p=(NODE*)malloc(sizeof(NODE));for(i=1;idata=rand()%16;s->next=p->next;p->next=s;p=p->next;}p->next=NULL;returnh;}outlink(NODE*h,FILE*pf){NODE*p;p=h->next;fprintf(pf,"\n\nTHELIST:\n\nHEAD");while(p){fprintf(pf,"->%d",p->data);p=p->next;}fprintf(pf,"\n");}outresult(ints,FILE*pf){fprintf(pf,"\nThesumofevennumbers:%d\n",s);}main(){NODE*head;inteven;clrscr();head=creatlink(12);head->data=9000;outlink(head,stdout);even=fun(head);printf("\nTheresult:\n");outresult(even,stdout);}第3章C语言程序设计上机改错逼真试题及精解89【解题分析】第一,程序清单中的第1至7行完全正确,主要功能是:包含控制台输入输出头文件conio.
h、标准输入输出文件stdio.
h和标准库头文件string.
h,定义NODE为结构体数据类型标识符,其中包括两个分量:第一个结构体成员为int类型的data,第二个结构体成员为指针类型的next.
第二,子函数fun()的功能是:首先说明指针变量p、局部变量sum并进行初始化,将结点h的指针域赋给指针变量p;然后,使用一个单重while循环来对单向链表结点数据域为偶数的值进行累加,并存放到变量sum中,其中语句"p=p->next"可以保证函数能够处理单向链表中的所有结点;最后,将单向链表结点数据域的累加结果返回给主函数.
第三,由题目和原程序可知,函数fun()中的形参h是一个指针变量,用于表示链表的表头结点.
所以,在原程序应该使用一个单重的while循环来对链表中的结点进行处理,指针变量p(属于局部变量)用于"遍访"(或称"遍历","周游")整个链表,其值必须初始化为链表中的首结点.
所以,第1错误点应该修改为:p=h->next.
第四,在函数fun()中,要保证while循环的正确进行,指针变量p必须"遍访"整个链表.
所以,第2错误点应该修改为:p=p->next.
第五,子函数Creatlink()的功能是:创建带头结点的单向链表,并为各结点数据域赋0到m-1的值.
C语言中提供动态存储分配的内存空间分配方式:在程序运行过程中需要空间存储数据时,才向系统"申请"分配指定的内存空间;在内存空间不用时,可以随时将其释放.
第六,子函数outlink()的功能是输出一个带头结点的单向链表,具体实现过程如下:首先将结点p的指针域赋给结点p,然后使用一个单重while循环来输出单向链表中每一个结点,最后使显示为换行效果.
第七,在主函数main()中,首先说明局部变量,并清除屏幕内容并使光标回到左上角;然后调用Creatlink子函数来创建带头结点的单向链表,调用函数outlink()来输出一个带头结点的单向链表;最后,调用函数fun()对单向链表结点数据域为偶数的值求和,并调用函数outresult来输出运行结果.
【题解答案】经过修改的正确程序如下所示:#include/*包含标准输入输出头文件*/#include/*包含控制台输入输出头文件*/#include/*包含标准库头文件*/typedefstructaa{/*定义结构体数据类型*/intdata;/*说明结构体中的第一个成员为data*/structaa*next;/*说明结构体中的第二个成员为next*/}NODE;/*定义结构体数据类型标识符*/全国计算机等级考试上机考试典型逼真试题及精解90最新二级/基础知识操作和C语言程序设计intfun(NODE*h){/*子函数定义语句*/intsum=0;/*说明局部变量sum并进行初始化*/NODE*p;/*说明指针变量p*/p=h->next;/*(更正1!
)将头结点h的指针域赋给指针变量p*/while(p){/*while循环*/if(p->data%2==0)/*如果结点p的数据域为偶数*/sum+=p->data;/*将单向链表结点数据域为偶数的值累加到变量sum中*/p=p->next;/*(更正2!
)将结点p的指针域赋给指针变量p*/}returnsum;/*将单向链表结点数据域的累加结果返回给主函数main()*/}NODE*creatlink(intn){/*子函数定义语句*/NODE*h,*p,*s,*q;/*说明指针变量h,p,s和q*/inti,x;/*说明局部变量i和x*/h=p=(NODE*)malloc(sizeof(NODE));/*为指针h和p分配相同的存储空间*/for(i=1;idata=rand()%16;/*调用随机函数生成指针变量s的数据域*/s->next=p->next;/*将结点p的指针域赋给结点s的指针域*/p->next=s;/*将结点s的值赋给结点p的指针域*/p=p->next;/*将结点p的指针域赋给结点p*/}p->next=NULL;/*将结点p的指针域赋成NULL,即空指针*/returnh;}outlink(NODE*h,FILE*pf){/*子函数定义语句*/NODE*p;/*说明指针变量p*/p=h->next;/*将头结点h的指针域赋给指针变量p*/fprintf(pf,"\n\nTHELIST:\n\nHEAD");/*显示提示信息*/while(p){/*while循环*/fprintf(pf,"->%d",p->data);/*输出结点p的数据域*/p=p->next;/*将结点p的指针域赋给结点p*/}fprintf(pf,"\n");/*显示为换行效果*/}outresult(ints,FILE*pf)/*子函数定义语句*/{fprintf(pf,"\nThesumofevennumbers:%d\n",s);}/*输出运行结果*/第3章C语言程序设计上机改错逼真试题及精解91main(){/*主函数定义语句*/NODE*head;/*说明基类型为NODE的指针变量head*/inteven;/*说明局部变量even*/clrscr();/*清除屏幕内容并使光标回到左上角*/head=creatlink(12);/*调用函数来创建带头结点head的单向链表*/head->data=9000;/*将头结点head的数据域设置成9000*/outlink(head,stdout);/*输出一个带头结点的单向链表*/even=fun(head);/*调用函数fun()对单向链表结点数据域为偶数的值求和*/printf("\nTheresult:\n");*显示提示信息*/outresult(even,stdout);/*调用函数fun并输出计算结果*/}输出结果:THELIST:HEAD->10->2->6->2->8->13->11->15->4->6->12->14TheresultThesumofevennumbers:64【经验宝库】尽管本题中的两个错误点修改成完全相同的语句,但逻辑意思是不一致的,即前者表示指针p应该指向单向链表中的第一个结点,而后者表示p应该指向单向链表中的下一个结点,进而使函数能够"遍访"整个单向链表.
线性表的链式存储分配方式不是一种顺序存储结构,它与顺序表完全不同.
顺序表是用顺序存储分配方法将线性表中的数据元素依次存放在一组连续的存储单元中,数据元素之间的逻辑关系是由存储空间连续性确定的.
但是,线性表的链式存储分配方法是用一组任意的存储单元来存放数据元素的,这组存储单元可以是连续的,也可以是不连续的.
在链式存储分配方法中,数据元素之间的逻辑关系是用指针(pointer)来表示的.
所以,对于线性表中的每个数据元素,除需要存储数据元素值外,还需要存储一个直接指向相应后继元素存放位置的指针信息(即后继元素的存储地址).
我们将存储数据元素的值和相应的指针信息结合在一起,称为结点(node).
一个结点对应线性表中一个数据元素,或者说结点就是数据元素在计算机内的存储表示方式.
在一个结点内部,其中:①用于存放数据元素自身值的部分称为数据域(或值域).
②用于存放后继数据元素存储地址的部分称为指针域(或链域).
3.
2.
22第22套上机改错逼真试题及精解【试题原貌】给定程序MODI1.
C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖.
注意:字符串的长度最长允许为79.
全国计算机等级考试上机考试典型逼真试题及精解92最新二级/基础知识操作和C语言程序设计请改正函数fun中的错误,使它能计算出正确的结果.
注意:不要改正main函数,不得增行或删行,也不得更改程序的结构.
试题程序:#include#include#includevoidfun(chars[],intn){chara[80],*p;inti;s=p;for(i=0;i/*包含标准输入输出头文件*/#include/*包含字符串处理头文件*/#include/*包含控制台输入输出头文件*/voidfun(chars[],intn){/*子函数定义语句*/chara[80],*p;/*说明局部变量a[]和p*/inti;/*说明整型局部变量i*/p=s;/*(更正1!
)将数组s的首地址赋给指针变量p*/for(i=0;i/*包含标准输入输出头文件*/二者都是合法的.
区别是:用双引号形式后,系统将首先在引用被包含文件的源文件所在文件目录中寻找要包含的文件,如果找不到则按系统指定的标准方式检索其它目录;用尖括号形式后,系统将不在引用被包含文件的源文件所在文件目录中寻找要包含的文件,而是直接按系统指定的标准方式检索其它目录.
3.
2.
24第24套上机改错逼真试题及精解【试题原貌】给定程序MODI1.
C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中.
高位仍在高位,低位仍在低位.
例如,若s中的数为:7654321时,t中的数为642.
请改正函数fun中的错误,使它能计算出正确的结果.
注意:不要改正main函数,不得增行或删行,也不得更改程序的结构.
试题程序:#include#includevoidfun(longs,longt){longsl=10;s/=10;*t=s%10;while(s0).
第三,子函数fun()中,首先,说明局部变量sl并初始化成10,将变量s的值"整除"10,将次高位的数字位保存到指针变量t中;然后,使用一个单重while循环语句来生成新的整数,循环体包括三条语句,分别将变量s的值"整除"100、将新的数字位保存到指针变量t中、变量sl的值扩大10倍等.
第四,主函数main()中,首先,说明局部变量s和t,清除屏幕内容并使光标回到左上角;然后,在显示信息"Pleaseenters"后,输入一个整数到变量s中;最后,调用函数fun并输出计算结果.
【题解答案】经过修改的正确程序如下所示:#include/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/voidfun(longs,long*t){/*(更正1!
)子函数定义语句*/longsl=10;/*说明局部变量sl并初始化*/s/=10;/*将变量s的值"整除"10*/全国计算机等级考试上机考试典型逼真试题及精解100最新二级/基础知识操作和C语言程序设计*t=s%10;/*将次高位的数字位保存到指针变量t*/while(s>0){/*(更正2!
)while循环语句*/s=s/100;/*将变量s的值"整除"100*/*t=s%10*sl+*t;/*将新的数字位保存到指针变量t中*/sl=sl*10;/*变量sl的值扩大10倍*/}}main(){/*主函数定义语句*/longs,t;/*说明局部变量s和t*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("\nPleaseenters:");/*显示提示信息*/scanf("%ld",&s);/*输入一个整数到变量s中*/fun(s,&t);/*调用函数fun*/printf("Theresultis:%ld\n",t);/*输出计算结果*/}输入数据:Pleaseenters:123456789输出结果:Theresultis:2468【经验宝库】在程序设计过程中经常使用"迭代"算法,其基本思想是通过相同数学式子的"迭代"运算,能够"逼近"到最终的运算结果.
在本题中,通过执行语句:s=s/100、*t=s%10*sl、sl=sl*10多次"迭代"后,将计算出新的数据,从而得到正确结果.
在C语言中,总共定义13类运算符号,如此众多的运算符号混合在一个表达式内部,必然会出现运算的优先顺序问题,考生们应该适当记忆常用运算符号的运算顺序.
由于C语言的不同函数之间只能实现单向"值传递",所以引入指针变量.
在本题中,主函数为了获得子函数fun()中计算而得的新数,变量t必须是指针类型.
另外,在子函数fun()中进行两个变量内容的交换时,也必须使用运算符"*"获得指针变量所指的变量内容,即t=*b、*b=*a和*a=t,这里的t只是一个中间变量.
3.
2.
25第25套上机改错逼真试题及精解【试题原貌】给定程序MODI1.
C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中.
例如,若s所指字符串为:"ABCD"时,t所指字符串中的内容应为:"ABCDabcd".
请改正函数fun中的错误,使它能计算出正确的结果.
注意:不要改正main函数,不得增行或删行,也不得更改程序的结构.
第3章C语言程序设计上机改错逼真试题及精解101试题程序:#include#include#includevoidfun(chars,chart){inti,d;d=strlen(s);for(i=0;i/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/#include/*包含字符串处理头文件*/voidfun(char*s,char*t){/*(更正1!
)子函数定义语句*/inti,d;/*说明局部变量i和d*/d=strlen(s);/*使变量d的值为字符串s的实际长度*/for(i=0;i#includevoidfun(char*p,char*q,char*c){intk=1;while(*p!
=*q){if(*p/*包含标准输入输出头文件*/#include/*包含标准字符串处理头文件*/voidfun(char*p,char*q,char*c){/*子函数定义语句*/intk=0;/*(更正1!
)说明局部变量并初始化*/while(*p||*q){/*(更正2!
)while循环语句*/if(*p#includevoidfun(char*s){inti,j;for(i=0,j;s[i]!
='\0';i++)if(s[i]>='0'&&s[i]/*包含标准输入输出头文件*/#include/*包含控制台输入输出头文件*/voidfun(char*s){/*子函数定义语句*/inti,j;/*说明局部变量*/for(i=0,j=0;s[i]!
='\0';i++)/*(更正1!
)for循环语句*/if(s[i]>='0'&&s[i]='0'&&s[i]#defineN20fun(int*a,intn,intx){intp=0,i;a[n]=x;while(x!
=a[p])p=p+1;if(p==n)全国计算机等级考试上机考试典型逼真试题及精解110最新二级/基础知识操作和C语言程序设计return-1;else{for(i=p;i/*包含标准输入输出头文件*/#defineN20/*定义整型常量N的值为20*/fun(int*a,intn,intx){/*子函数定义语句*/intp=0,i;/*说明局部变量并初始化*/a[n]=x;/*将x的值赋给下标变量a[]*/while(x!
=a[p])/*while循环语句*/p=p+1;/*使变量k的值自增1*/if(p==n)/*如果p的值与n的值相等*/return-1;/*将-1作为返回值传给主函数main()*/else{/*如果p的值与n的值不相等*/for(i=p;i#include第3章C语言程序设计上机改错逼真试题及精解113#defineN20intfun(float*s,intn,float*aver){floatave,t=0.
0;intcount=0,k,i;for(k=0;k/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/#defineN20/*定义整型常量N的值为20*/intfun(float*s,intn,float*aver){/*子函数定义语句*/floatave,t=0.
0;/*说明局部变量并初始化*/intcount=0,k,i;/*说明局部变量并初始化*/for(k=0;kintfun(char*p){intn;n=*p-'o';p++;while(*p!
=0){n=n*7+*p–'o';p++;}return(n);}main(){chars[6];inti,n;全国计算机等级考试上机考试典型逼真试题及精解116最新二级/基础知识操作和C语言程序设计clrscr();printf("Enterastring(ocataldigits):");gets(s);if(strlen(s)>5){printf("Error:Stringtoolonger!
\n\n");exit(0);}for(i=0;s[i];i++)if(s[i]'7'){printf("Error:%cnotisocataldigital!
\n",s[i]);exit(0);}printf("Theoriginalstring:");puts(s);n=fun(s);printf("\n%sisconveredtointegernumber:%d\n",s,n);}【解题分析】第一,程序清单中的第1至3行完全正确,主要内容是文件包含、子函数定义语句和说明局部变量.
形式参数p表示要进行转换的数据.
第二,程序清单中的第4行存在逻辑错误,注意并不是"语法"错误,尽管字母o与数字0相似,但不是同一个符号.
按照【试题原貌】中的要求,要表示使变量n的初值为八进制数字串中的最高位,所以第1错误点处应该修改为:n=*p–'0'.
第三,同样,第2错误点处应该修改为:n*8+*p–'0',注意应该乘从8而不是7,即所谓:八进制展开十进制求和.
第四,在子函数fun()中,主要功能如下:首先,说明局部变量并初始化,尤其是使变量n的初值为八进制数字串中的最高位;然后,通过一个while循环语句实现八进制数据到十进制数据的转换.
第五,主函数main()包括三部分,第一部分:首先,说明局部变量,清除屏幕内容并使光标回到左上角;然后,在显示信息"Enterastring(ocataldigits)"后,输入一个字符串到字符数组s[]中;最后,使用条件if语句控制在字符数组s[]的长度超过5时,终止函数的执行过程,从而解决"溢出"问题.
第六,主函数main()中的第二部分:使用一个for循环语句,并利用一条if语句来判断原始数据是否一定是八进制的数位,即1至7.
如果发现存在非八进制的数位,则同样要终止函数的执行过程.
第3章C语言程序设计上机改错逼真试题及精解117第七,主函数main()中的第二部分:首先在显示信息"Theoriginalstring"后输出原始字符串,然后调用函数fun并输出函数最终的运行结果.
【题解答案】经过修改的正确程序如下所示:#include/*包含标准输入输出头文件*/intfun(char*p){/*子函数定义语句*/intn;/*说明局部变量并初始化*/n=*p–'0';/*(更正1!
)使变量n的初值为八进制数字串中的最高位*/p++;/*使指针p指向八进制数字串中的下一个字符*/while(*p){/*while循环语句*//*p!
=0*/n=n*8+*p–'0';/*(更正22!
)生成结果数据*/p++;/*使指针p指向八进制数字串中的下一个字符*/}return(n);/*将结果数据返回给主函数main()*/}main(){/*主函数定义语句*/chars[6];/*说明局部变量*/inti,n;/*说明局部变量*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("Enterastring(ocataldigits)显示提示信息*/gets(s);/*输入一个字符串到字符数组s[]中*/if(strlen(s)>5){/*如果字符数组s[]的长度超过5*/printf("Error:Stringtoolonger!
\n\n");/*显示提示信息*/exit(0);/*终止函数的执行过程*/}for(i=0;s[i];i++)/*for循环语句*/if(s[i]'7'){如果s[]中的字符不在'1'至'7'之间printf("Error:%cnotisocataldigital!
\n",s[i]);exit(0);/*终止函数的执行过程*/}printf("Theoriginalstring:");/*显示提示信息*/puts(s);/*输出原始字符串*/n=fun(s);/*调用函数fun*/printf("\n%sisconveredtointegernumber:%d\n",s,n);/*输出运行结果*/}全国计算机等级考试上机考试典型逼真试题及精解118最新二级/基础知识操作和C语言程序设计输入数据:Enterastring(ocataldigits):12345输出结果:Theoriginalstring:1234512345isconveredtointegernumber:5349【经验宝库】下面我们编写一个完全直接使用一维数组的程序,供考生们参考.
intfun(charp[6]){/*子函数定义语句*/inti=0,n;/*说明局部变量并初始化*/n=p[0]–'0';/*使变量n的初值为八进制数字串中的最高位*/i++;/*获得八进制数字串中的下一个字符位置*/while(i#includedoublefunx(doublex){return(2*x*x*x-4*x*x+3*x-6);}doublefun(doublem,doublen){第3章C语言程序设计上机改错逼真试题及精解119intr;r=(m+n)/2;while(fabs(n-m)>0.
001){/*fabs(n-m)0.
001).
第四,在子函数fun()中,主要功能如下:首先,说明局部变量并进行初始化,其中变量r就是二分位置;然后,使用while循环语句来实现二分法求方程的一个根,新的二分点由两个端点m和n的函数值是否异号确定;最后,将最终的计算结果返回给主函数.
第五,在主函数main()中,主要功能如下:首先,说明局部变量,清除屏幕内容并使光标回到左上角;然后,在显示信息"Entermn"后,输入两个实型数据到变量m和n中;最后,调用函数fun并输出最终的运行结果.
【题解答案】经过修改的正确程序如下所示:#include/*包含标准输入输出头文件*/全国计算机等级考试上机考试典型逼真试题及精解120最新二级/基础知识操作和C语言程序设计#include/*包含数学运算头文件*/doublefunx(doublex)/*子函数定义语句*/{return(2*x*x*x-4*x*x+3*x-6);}/*返回数学运算式的结果*/doublefun(doublem,doublen){/*子函数定义语句*/floatr;/*(更正1!
)说明局部变量*/r=(m+n)/2;/*进行二分运算*/while(fabs(n-m)>0.
001){/*(更正2!
)while循环语句*/if(funx(r)*funx(n)#include#includeintfun(intscore[],intm,intbelow[]){}main(){inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90};clrscr();n=fun(score,9,below);printf("\nBelowtheaveragescoreare:");for(i=0;i/*控制台头文件*/#include/*标准输入/输出头文件*/#include/*标准字符串处理头文件*/intfun(intscore[],intm,intbelow[])/*定义"低于平均分的人数"的函数fun*/{inti,j,s;/*局部整型变量定义*/floatmean;/*局部浮点型变量定义.
注意:平均分未必为整数!
*/s=0;/*原始成绩累加器初值*/for(i=0;i#includeintfun(chars[],charc){}main(){staticcharstr[]="turbocandborlandc++";charch;clrscr();printf("原始字符串:%s\n",str);printf("输入一个字符:");scanf("%c",&ch);fun(str,ch);printf("str[]=%s\n",str);NONO();}NONO(){FILE*rf,*wf;chars[81],ch,w;intlen;rf=fopen("b0303.
in","r");wf=fopen("b0303.
out","w");fgets(s,80,rf);fscanf(rf,"%c",&ch);第4章C语言程序设计上机编程逼真试题及精解129len=strlen(s)-1;w=s[len];if(w=='\n'||w==0x1a)s[len]=0;fun(s,ch);fprintf(wf,"%s",s);fclose(rf);fclose(wf);}【解题分析】第一,由【试题原貌】和原程序可知,函数fun()中的形参s是指针变量,用于表示字符串.
另外,形参c是一个简单字符变量,用于表示要删除的字符.
所以本题应该使用一个单重的for循环来访问串中的所有字符并进行比较,循环次数由字符串长度确定.
另外,在程序设计时,首先用语句"k=strlen(s)"让变量k保存字符串s的长度,然后在for循环中比较每一个字符是否需要删除,如果是则进行字符的移位删除操作.
第二,在主函数main()中,首先说明字符局部变量ch和一维字符数组str[],其中str[]代表字符串"turbocandborlandc++",清除屏幕内容并使光标回到左上角;然后,在显示信息输入一个字符到字符变量ch中;最后,调用子函数fun()进行字符串处理并输出运行结果.
第三,测试函数NONO()的主要功能是:打开输入数据文件b0303.
in和输出数据文件b0303.
out,将输入数据用于fun函数的调用过程中,并输出数据以便考生们发现程序是否正确,最后关闭这两个数据文件.
【题解答案】编程后的正确程序如下所示:#include/*包含标准输入输出头文件*/#include/*包含控制台输入输出头文件*/intfun(chars[],charc){/*子函数定义语句*/inti,j=0,k;/*说明局部变量i、j和k并进行初始化*/k=strlen(s);/*局部变量k保存字符串s[]的长度*/for(i=0;i#include#defineM100voidfun(intm,int*a,int*n){}main(){intaa[M],n,k;clrscr();fun(50,aa,&n);for(k=0;k/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/#defineM100/*说明符号常量M的值为100*/voidfun(intm,int*a,int*n){/*子函数定义语句*/inti,k=0;/*说明局部变量i和k并进行初始化*/for(i=1;i#includefloatfun(floath){}main(){floata;clrscr();printf("Entera:");scanf("%f",&a);printf("Theoriginaldatais:");第4章C语言程序设计上机编程逼真试题及精解135printf("%f\n\n",a);printf("Theresult:%f\n",fun(a));NONO();}NONO(){inti;floata;FILE*rf,*wf;rf=fopen("bc6.
in","r");wf=fopen("bc6.
out","w");for(i=0;i/*包含标准输入输出头文件*/#include/*包含控制台输入输出头文件*/floatfun(floath){/*子函数定义语句*/intk;/*说明局部变量k*/k=h*100;/*将变量h的值扩大100倍后存入变量k中*/h=(float)k/100.
0;/*将变量k的值缩小100倍后存入变量h中*/returnh;/*将最后的计算结果返回到主函数中*/全国计算机等级考试上机考试典型逼真试题及精解136最新二级/基础知识操作和C语言程序设计}main(){/*主函数定义语句*/floata;/*说明局部变量a*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("Entera:");/*显示提示信息*/scanf("%f",&a);/*从键盘输入一个实型数据到变量a中*/printf("Theoriginaldatais:");/*显示提示信息*/printf("%f\n\n",a);/*输出变量a中的数据*/printf("Theresult:%f\n",fun(a));/*调用函数fun()并输出计算结果*/NONO();/*调用测试函数*/}NONO(){/*打开文件,输入测试数据,调用fun函数,输出数据,关闭文件*/inti;/*说明局部变量i*/floata;/*说明局部变量a*/FILE*rf,*wf;/*说明文件指针变量fp和wf*/rf=fopen("bc6.
in","r");/*以只读方式打开输入文件bc6.
in*/wf=fopen("bc6.
out","w");/*以写方式打开输出文件bc6.
out*/for(i=0;i#include#include#defineN10typedefstructss{charnum[10];ints;}STU;fun(STUa[],STU*s){}main(){STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;inti;clrscr();printf("*****Theoriginaldata*****\n");for(i=0;i/*包含标准输入输出头文件*/#include/*包含字符串处理头文件*/#include/*包含控制台输入输出头文件*/#defineN10/*说明常量符号N的值为10*/typedefstructss{/*定义结构体数据类型*/charnum[10];/*说明结构体中的第一个成员为num[]*/ints;/*说明结构体中的第二个成员为s*/}STU;/*定义结构体数据类型标识符*/fun(STUa[],STU*s){/*子函数定义语句*/inti=0;/*说明局部变量并初始化*/strcpy((*s).
num,a[i].
num);/*复制学生的学号数据*/(*s).
s=a[i].
s;/*复制学生的成绩数据*/for(i=1;ia[i].
s){/*如果不是最低成绩*/strcpy((*s).
num,a[i].
num);/*记录最低成绩者的学号*/(*s).
s=a[i].
s;/*记录最低成绩者的成绩*/}第4章C语言程序设计上机编程逼真试题及精解139}main(){/*主函数定义语句*/STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;/*说明局部变量并初始化*/inti;/*说明局部变量*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("*****Theoriginaldata*****\n");/*显示提示信息*/for(i=0;i#includeintfun(intarray[3][3]){}main(){inti,j;intarray[3][3]={{100,200,300},第4章C语言程序设计上机编程逼真试题及精解141{400,500,600},{700,800,900}};clrscr();for(i=0;i/*包含标准输入输出头文件*/#include/*包含控制台输入输出头文件*/intfun(intarray[3][3]){/*子函数定义语句*/inti,j,tmp;/*说明局部变量i、j和tmp*/for(i=0;ishanghai(为回车键),则函数将返回shanghai.
要求不得调用C语言提供的求字符串的长度的函数.
注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句.
试题程序:#includechar*fun(char*s,char*t){}main(){chara[20],b[20],*p,*q;inti;printf("Input1thstring:");gets(a);printf("Input2thstring:");gets(b);printf("%s\n",fun(a,b));NONO();}NONO(){FILE*fp,*wf;inti;chara[20],b[20];第4章C语言程序设计上机编程逼真试题及精解145fp=fopen("bc03.
in","r");if(fp==NULL){printf("数据文件bc03.
in不存在!
");return;}wf=fopen("bc03.
out","w");for(i=0;i/*包含标准输入输出头文件*/char*fun(char*s,char*t){/*子函数定义语句*/inti;/*说明局部变量i以控制for循环*/for(i=0;i#include#includeintfun(char*str,char*substr){}main(){charstr[81],substr[3];intn;clrscr();printf("输入主字符串:");gets(str);printf("输入子字符串:");gets(substr);puts(str);puts(substr);n=fun(str,substr);printf("n=%d\n",n);NONO();}NONO(){charstr[81],substr[3],ch;intn,len,i=0;FILE*rf,*wf;rf=fopen("b0703.
in","r");全国计算机等级考试上机考试典型逼真试题及精解148最新二级/基础知识操作和C语言程序设计wf=fopen("b0703.
out","w");while(i/*包含标准输入输出头文件*/#include/*包含字符串处理头文件*/#include/*包含控制台输入输出头文件*/intfun(char*str,char*substr){/*子函数定义语句*/inti,k,n=0;/*说明局部变量n以统计子串个数*/k=strlen(str);/*使用局部变量k来控制for循环*/for(i=0;i#include#include#defineN5intfun(inta[][N],intn){}main(){inta[N][N],n,i,j;clrscr();printf("*****Thearray*****\n");for(i=0;i=3);printf("n=%4d\n",n);fun(a,n);printf("*****THERESULT*****\n");for(i=0;i/*包含标准输入输出头文件*/#include/*包含控制台输入输出头文件*/#include/*包含标准库头文件*/#defineN5/*说明符号常量N的值为5*/intfun(inta[][N],intn){/*子函数定义语句*/inti,j;/*说明局部变量i和j*/for(i=0;i=3);/*实施循环控制*/printf("n=%4d\n",n);/*输出计算结果*/fun(a,n);/*调用函数fun()*/printf("*****THERESULT*****\n");/*显示提示信息*/for(i=0;i#includevoidfun(inta[],intn,int*max,int*d){}main(){inti,x[20],max,index,n=10;clrscr();randomize();for(i=0;i/*包含标准库头文件*/#include/*包含标准输入输出头文件*/voidfun(inta[],intn,int*max,int*d){/*子函数定义语句*/inti;/*说明局部变量i以控制for循环*/*max=a[0];/*给最大值变量赋初值为a[0]*/*d=0;/*给记录下标变量赋初值为0*/for(i=1;i#includedoublefun(doubleeps){}main(){doublex;clrscr();printf("Inputeps:");scanf("%lf",&x);printf("\neps=%lf,PI=%lf\n",x,fun(x));NONO();}NONO(){FILE*fp,*wf;inti;doublex;fp=fopen("bc04.
in","r");if(fp==NULL){printf("数据文件bc04.
in不存在!
");return;}wf=fopen("bc04.
out","w");for(i=0;i=eps"实现.
第二,测试函数NONO()的主要功能是:打开输入数据文件bc0704.
in和输出数据文件bc04.
out,将输入数据用于fun函数的调用过程中,并输出数据以便考生们发现程序是否正确,最后关闭这两个数据文件.
【题解答案】#include/*包含标准输入输出头文件*/#include/*包含数学计算头文件*/doublefun(doubleeps){/*子函数定义语句*/inti=0;/*说明局部变量i并进行初始化*/doublet=1.
0,s=0.
0;/*说明局部变量t和s并进行初始化*/while(t>=eps){/*设置循环控制条件*/s=s+t;/*进行"累加"*/i=i+1;/*将局部变量i的值增1*/t=t*i/(2*i+1);/*获得要进行"累加"的项*/}return(2*s);/*将计算结果返回到主函数中*/}main(){/*主函数定义语句*/doublex;/*说明局部变量*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("Inputeps:");/*显示提示信息*/scanf("%lf",&x);/*从键盘输入一个实数到变量x中*/printf("\neps=%lf,PI=%lf\n",x,fun(x));/*输出计算结果*/NONO();/*调用测试函数*/}NONO(){/*打开文件,输入测试数据,调用fun函数,输出数据,关闭文件*/FILE*fp,*wf;/*说明文件指针变量rf和wf*/inti;/*说明局部变量i*/doublex;/*说明局部变量x*/fp=fopen("bc04.
in","r");/*以只读方式打开输入文件bc04.
in*/第4章C语言程序设计上机编程逼真试题及精解159if(fp==NULL){/*如果文件指针fp为空指针*/printf("数据文件bc04.
in不存在!
");/*显示提示信息*/return;/*直接返回到主函数main()中*/}wf=fopen("bc04.
out","w");/*以写方式打开输出文件bc04.
out*/for(i=0;i#include#include全国计算机等级考试上机考试典型逼真试题及精解160最新二级/基础知识操作和C语言程序设计voidfun(char*s,chart[]){}main(){chars[100],t[100];clrscr();printf("\nPleaseenterstringS:");scanf("%s",s);fun(s,t);printf("\nTheresultis:%s\n",t);NONO();}NONO(){chars[100],t[100];FILE*rf,*wf;inti;rf=fopen("bc09.
dat","r");wf=fopen("bc09.
out","w");for(i=0;i/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/#include/*包含字符串处理头文件*/voidfun(char*s,chart[]){/*子函数定义语句*/inti,j=0;/*说明局部变量i和j并初始化*/for(i=0;*(s+i)!
='\0';i=i+2)/*for循环*/if((*(s+i)%2)==0){/*判断字符本身是否为偶数*/*(t+j)=*(s+i);/*生成结果字符串*/j++;/*将变量j的值自增1*/};*(t+j)='\0';/*为结果字符串设置串结束标记*/}main(){/*主函数定义语句*/chars[100],t[100];/*说明两个一维数组s[]和t[]*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("\nPleaseenterstringS:");/*显示提示信息*/scanf("%s",s);/*从键盘输入一个字符串到变量s中*/fun(s,t);/*调用函数fun()*/printf("\nTheresultis:%s\n",t);/*显示提示信息并输出计算结果*/NONO();/*调用测试函数*/}NONO(){/*打开文件,输入测试数据,调用fun函数,输出数据,关闭文件*/chars[100],t[100];FILE*rf,*wf;/*说明文件指针变量rf和wf*/inti;/*说明局部变量i*/rf=fopen("bc09.
dat","r");/*以只读方式打开输入文件bc09.
dat*/wf=fopen("bc09.
out","w");/*以写方式打开输出文件bc09.
out*/for(i=0;ivoidfun(int(*s)[10],int*b,int*n,intmm,intnn){}main(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf("Thematrix:\n");for(i=0;i/*包含标准输入输出头文件*/voidfun(int(*s)[10],int*b,int*n,intmm,intnn){/*子函数定义语句*/inti,j,k;/*说明局部变量i、j和k*/k=0;/*将k初始为0以指定一维数组b的下标*/for(j=0;j#include#defineN80intfun(char*s){}main(){charline[N];intnum=0;printf("Enterastring:\n");gets(line);第4章C语言程序设计上机编程逼真试题及精解167num=fun(line);printf("Thenumberofwordis:%d\n\n",num);NONO();}NONO(){FILE*rf,*wf;inti,num;charline[N],*p;rf=fopen("bc.
in","r");wf=fopen("bc.
out","w");for(i=0;i/*包含标准输入输出头文件*/#include/*包含字符串处理头文件*/#defineN80/*说明符号常量N的值为80*/intfun(char*s){/*子函数定义语句*/inti=0,k,num=0;/*说明局部变量i、k和num并初始化*/全国计算机等级考试上机考试典型逼真试题及精解168最新二级/基础知识操作和C语言程序设计k=strlen(s);/*由变量k记录字符串s的长度*/do{/*do-while循环*/while(*(s+i)i++;/*移过单词前的全部空格*/num++;/*统计单词的数量*/while(*(s+i)i++;/*移过单词中的全部符号*/}while(i全国计算机等级考试上机考试典型逼真试题及精解170最新二级/基础知识操作和C语言程序设计fun(inta[][M]){}main(){intarr[2][M]={5,8,3,45,76,-4,12,82};printf("max=%d\n",fun(arr));}【解题分析】第一,由【试题原貌】和原程序可知,函数fun()中的形参a是一个二维数组.
所以本题应该使用一个双重的for循环来进行二维数组的"遍访".
在每次for循环过程中,都要正确指定二维数组的行号和列号.
程序中使用变量i来表示行号,使用变量j来表示列号.
第二,子函数fun()中的主要语句如下:说明局部变量i、j和max并进行初始化,使用一个双重for循环来找出二维数组中的最大值,其中使用循环控制变量i代表二维数组中的行下标,循环控制变量j代表二维数组中的列下标,最后将最大值max返回到主函数中.
第三,函数main()中的主要语句如下:在说明局部变量并初始化后,直接调用fun函数并输出函数的运行结果.
【题解答案】#defineM4/*说明符号常量M的值为4*/#include/*包含标准输入输出头文件*/fun(inta[][M]){/*子函数定义语句*/inti,j,max;/*说明局部变量i、j和max*/max=a[0][0];/*初始化局部变量max为a[0][0]*/for(i=0;imax)max=a[i][j];/*找出二维数组中的最大值*/return(max);/*将最大值max返回到主函数中*/}main(){/*主函数定义语句*/intarr[2][M]={5,8,3,45,76,-4,12,82};/*说明局部变量并初始化*/printf("max=%d\n",fun(arr));/*输出函数运行结果*/}输出结果:max=82【经验宝库】在主函数定义main()中,对二维数组arr[2][N]进行初始化,这样的程序将没有数据的"通第4章C语言程序设计上机编程逼真试题及精解171用"性,即没有输入数据,程序的运行结果将是固定的.
当然,考生们根据【试题原貌】中的要求,知道程序的正确运行结果,在程序改错过程中可充分利用.
在C语言程序中进行参数传递时,允许使用数组名称,这时的数组名称将代表数组的"首地址",进而可以进行正常的数据返回.
4.
2.
16第16套上机编程逼真试题及精解【试题原貌】请编写一个函数voidfun(inttt[M][N],intpp[N]),函数的功能是:求出二维数组每列中的最小元素,并依次放入pp所指一维数组中.
tt指向一个M行N列的二维数组,二维数组中的数据已在主函数中赋予.
注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句.
试题程序:#include#include#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){}main(){intt[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}};intp[N],i,j,k;clrscr();printf("Theoriginaldatais:\n");for(i=0;i/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/#defineM3/*说明符号常量M的值为3*/#defineN4/*说明符号常量N的值为4*/voidfun(inttt[M][N],intpp[N]){/*子函数定义语句*/inti,j;/*说明局部变量i和j*/for(j=0;j#includelongfun(char*p){}main(){chars[6];longn;printf("Enterastring:\n");gets(s);n=fun(s);printf("%ld\n",n);NONO();}NONO(){FILE*fp,*wf;inti;chars[20];longn;fp=fopen("bc02.
in","r");if(fp==NULL){printf("数据文件bc02.
in不存在!
");return;}wf=fopen("bc02.
out","w");for(i=0;i/*包含标准输入输出头文件*/#include/*包含字符串处理头文件*/longfun(char*p){/*子函数定义语句*/inti=0,k,num=0,flag=0;/*说明局部变量并进行初始化*/k=strlen(p);/*使用局部变量k来控制for循环*/if(*(p+0)条件判断*/{flag=1;i=1;}/*处理负数中的符号位*/for(;i#defineN80voidfun(int*w,intp,intn){}main(){inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};inti,p,n=15;clrscr();printf("Theoriginaldata:\n");for(i=0;i/*包含标准输入输出头文件*/#defineN80/*说明符号常量N的值为80*/voidfun(int*w,intp,intn){/*子函数定义语句*/inti;/*说明局部变量i以表示一维数组下标*/for(i=0;i#include#includeintfun(char*str){}main(){charstr[81];intn;clrscr();printf("Inputastring:");gets(str);puts(str);fun(str);printf("***str:%s\n",str);NONO();}NONO(){charstr[81];intn=0;FILE*rf,*wf;rf=fopen("b0803.
in","r");wf=fopen("b0803.
out","w");while(n/*包含标准输入输出头文件*/#include/*包含字符处理头文件*/#include/*包含控制台输入输出头文件*/intfun(char*str){/*子函数定义语句*/inti,k,j=0;/*说明局部变量并进行初始化*/k=strlen(str);/*使用局部变量k来控制for循环*/for(i=0;i#includevoidfun(inta,intb,long*c){}第4章C语言程序设计上机编程逼真试题及精解185main(){inta,b;longc;clrscr();printf("Inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld\n",c);NONO();}NONO(){FILE*rf,*wf;inti,a,b;longc;rf=fopen("in1.
dat","r");wf=fopen("bc04.
dat","w");for(i=0;i/*包含控制台输入输出头文件*/全国计算机等级考试上机考试典型逼真试题及精解186最新二级/基础知识操作和C语言程序设计#include/*包含标准输入输出头文件*/voidfun(inta,intb,long*c){/*子函数定义语句*/inti,j,k,l;/*说明局部变量i,j,k和l*/i=a%10;/*使用变量i的值为a的个位数*/j=a/10;/*使用变量j的值为a的十位数*/k=b%10;/*使用变量k的值为b的个位数*/l=b/10;/*使用变量l的值为b的十位数*/*c=i+j*100+l*10+k*1000;/*通过i,j,k和l"拼"出新数*/}main(){/*主函数定义语句*/inta,b;/*说明整型变量a和b*/longc;/*说明实型变量c*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("Inputa,b:");/*显示提示信息*/scanf("%d%d",&a,&b);/*从键盘输入两个整数字符串到变量a和b*/fun(a,b,&c);/*调用函数fun()*/printf("Theresultis:%ld\n",c);/*输出函数运行结果*/NONO();/*调用测试函数*/}NONO(){/*打开文件,输入测试数据,调用fun函数,输出数据,关闭文件*/FILE*rf,*wf;/*说明文件指针变量rf和wf*/inti,a,b;/*说明局部变量i,a和b*/longc;/*说明局部变量c*/rf=fopen("in1.
dat","r");/*以只读方式打开输入文件in1.
dat*/wf=fopen("bc04.
out","w");/*以写方式打开输出文件bc04.
out*/for(i=0;i#defineN80intfun(char*str){}main(){chars[N];printf("Enterastring:");gets(s);printf("\n\n");puts(s);if(fun(s))printf("YES\n");elseprintf("NO\n");NONO();}NONO(){FILE*rf,*wf;inti;chars[N];rf=fopen("bc.
in","r");wf=fopen("bc.
out","w");for(i=0;i/*包含标准输入输出头文件*/#defineN80/*说明符号常量N的值为80*/intfun(char*str){/*子函数定义语句*/inti,k,yn=1;/*说明局部变量并进行初始化*/k=strlen(str);/*说明局部变量i以控制for循环*/for(i=0;i#defineN50#defineM11voidfun(int*a,int*b){}doublernd(){statict=29,c=217;staticm=1024,r=0;r=(r*t+c)%m;return((double)r/m);}全国计算机等级考试上机考试典型逼真试题及精解192最新二级/基础知识操作和C语言程序设计main(){intage[N],i,d[M];for(i=0;i/*包含标准输入输出头文件*/#defineN50/*说明符号常量N的值为50*/#defineM11/*说明符号常量M的值为11*/voidfun(int*a,int*b){/*子函数定义语句*/inti,k;/*说明局部变量i和k*/for(i=0;i9)/*如果k的值大于9的话*/*(b+10)=*(b+10)+1;/*将超过90分的成绩统计到b[10]*/else/*如果k的值不大于9的话*/*(b+k)=*(b+k)+1;/*将低于90分的成绩统计到b[k]中*/}}doublernd(){/*子函数定义语句*/statict=29,c=217;/*说明局部变量并初始化*/staticm=1024,r=0;/*说明局部变量并初始化*/r=(r*t+c)%m;/*使用除同余算法生成随机数*/return((double)r/m);/*将随机数返回给调用函数*/}main(){/*主函数定义语句*/intage[N],i,d[M];/*说明局部变量*/for(i=0;i#include#include#defineN10typedefstructss{charnum[10];ints;}STU;fun(STUa[],STU*s){}main(){STUa[N]={"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;全国计算机等级考试上机考试典型逼真试题及精解196最新二级/基础知识操作和C语言程序设计inti;clrscr();printf("*****Theoriginaldata*****\n");for(i=0;i/*包含标准输入输出头文件*/#include/*包含字符串处理头文件*/#include/*包含控制台输入输出头文件*/#defineN10/*说明符号常量N的值为10*/typedefstructss{/*定义结构体数据类型*/charnum[10];/*说明结构体中的第一个成员为num[]*/ints;/*说明结构体中的第二个成员为s*/}STU;/*定义结构体数据类型标识符*/fun(STUa[],STU*s){/*子函数定义语句*/inti=0;/*说明局部变量i并初始化为0*/(*s).
num=a[0].
num;/*将成绩分量s.
num初始化为a[0].
num*/(*s).
s=a[0].
s;/*将学号分量s.
s初始化为a[0].
s*/for(i=1;i#include#includevoidfun(char*s,chart[]){}main(){chars[100],t[100];clrscr();printf("\nPleaseenterstringS:");scanf("%s",s);fun(s,t);printf("\nTheresultis:%s\n",t);NONO();}NONO(){chars[100],t[100];FILE*rf,*wf;inti;rf=fopen("bc10.
dat","r");wf=fopen("bc10.
out","w");for(i=0;i/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/#include/*包含字符串处理头文件*/voidfun(char*s,chart[]){/*子函数定义语句*/inti,j=0;/*说明局部变量i和j并初始化*/for(i=1;*(s+i)!
='\0';i=i+2)/*for循环*/if((*(s+i)%2)==1){/*判断字符本身是否为奇数*/*(t+j)=*(s+i);/*生成新的结果字符串并存放到数组t[]中*/j++;/*使变量j的值自增1*/};*(t+j)='\0';/*为结果字符串设置串结束标记*/}main(){/*主函数定义语句*/chars[100],t[100];/*说明两个字符数组s[]和t[]*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("\nPleaseenterstringS:");/*显示提示信息*/scanf("%s",s);/*从键盘输入字符串到变量s*/fun(s,t);/*调用函数fun()*/printf("\nTheresultis:%s\n",t);/*输出函数运行结果*/NONO();/*调用测试函数*/}NONO(){/*打开文件,输入测试数据,调用fun函数,输出数据,关闭文件*/第4章C语言程序设计上机编程逼真试题及精解201chars[100],t[100];/*说明两个字符数组s[]和t[]*/FILE*rf,*wf;/*说明文件指针变量rf和wf*/inti;/*说明局部变量i*/rf=fopen("bc10.
in","r");/*以只读方式打开输入文件bc10.
in*/wf=fopen("bc10.
out","w");/*以写方式打开输出文件bc10.
out*/for(i=0;i#includevoidfun(int*a,int*n){}main(){intaa[1000],n,k;clrscr();fun(aa,&n);for(k=0;k/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/voidfun(int*a,int*n){/*子函数定义语句*/intI,k=0;/*说明局部变量并初始化*/for(i=0;i#includevoidfun(intx,intpp[],int*n){}main(){intx,aa[1000],n,i;clrscr();printf("\nPleaseenteranintegernumber:\n");scanf("%d",&x);fun(x,aa,&n);for(i=0;i/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/全国计算机等级考试上机考试典型逼真试题及精解206最新二级/基础知识操作和C语言程序设计voidfun(intx,intpp[],int*n){/*子函数定义语句*/inti,k=0;/*说明局部变量并初始化*/for(i=1;i/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/第4章C语言程序设计上机编程逼真试题及精解207voidfun(intx,intpp[],int*n){/*子函数定义语句*/inti,k=0;/*说明局部变量并初始化*/for(i=1;i#includevoidfun(intm,intk,intxx[]){}main(){intm,n,zz[1000];clrscr();printf("\nPleaseentertwointeger:");scanf("%d%d",&m,&n);第4章C语言程序设计上机编程逼真试题及精解209fun(m,n,zz);for(m=0;m/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/voidfun(intm,intk,intxx[]){/*子函数定义语句*/inti,j,flag,n=0;/*说明局部变量并初始化*/j=m;/*说明局部变量*/do{/*do-while循环语句*/j=j+2;/*使变量j的值自增2*/flag=1;/*预置标记变量flag的值为1*/for(i=3;i#include#defineLEN20voidfun(chara[],charb[],intn){}main(){charstr1[LEN],str2[LEN];intn;clrscr();printf("Enterthestring:\n");gets(str1);printf("Enterthepositionofthestringdeleted:\n");scanf("%d",&n);fun(str1,str2,n);printf("Thenewstringis:%s\n",str2);NONO();}NONO(){inti,n;charstr1[LEN],str2[LEN];FILE*rf,*wf;rf=fopen("g20.
in","r");wf=fopen("g20.
out","w");for(i=0;i/*包含标准输入输出头文件*/#include/*包含控制台输入输出头文件*/#defineLEN20/*说明符号常量LEN的值为20*/voidfun(chara[],charb[],intn){/*子函数定义语句*/inti,k=0;/*说明局部变量并初始化*/for(i=0;i#include#includefloatfun(){}main(){clrscr();printf("Root=%10.
6f\n",fun());}【解题分析】第一,在子函数fun()中,主要语句情况如下:首先,说明局部变量并初始化;然后,使用一个do-while循环语句实现"简单迭代"算法;最后,将求出方程的根(即x1的值)返回给主函数main().
第二,在主函数main()中,主要语句情况如下:第一条语句clrscr()用于清除屏幕内容并使光标回到左上角,第二条语句printf("Root=%10.
6f\n",fun())用于*输出函数的运行结果.
【题解答案】编程后的正确程序如下所示:#include/*包含控制台输入输出头文件*/#include/*包含数学运算头文件*/#include/*包含标准输入输出头文件*/floatfun(){/*子函数定义语句*/第4章C语言程序设计上机编程逼真试题及精解215floatx0,x1=0.
0;/*说明局部变量并初始化*/do{/*do-while循环语句*/x0=x1;/*将旧函数值保存到变量x0中*/x1=cos(x0);/*算出新函数值并保存到变量x1中*/}while(fabs(x0-x1)>0.
000001);/*循环条件判断*/returnx1;/*将x1的值返回给主函数main()*/}main(){/*主函数定义语句*/clrscr();/*清除屏幕内容并使光标回到左上角*/printf("Root=%10.
6f\n",fun());/*输出函数运行结果*/}输出结果:Root=0.
739085【经验宝库】由于函数运算要使用标准数学函数fabs(),所以必须使用文件包含数学处理头文件math.
h,这一点考生们最好注意一下.
另外,编译程序可能会给出适当的提示信息.
例如,在没有数学处理头文件math.
h时,出错信息如下:运算结果为全0.
在子函数定义fun()中,没有任何形式参数,这样的程序将没有数据的"通用"性,即没有输入数据,程序的运行结果将是固定的.
另一方面,考生们根据【试题原貌】中的要求,知道程序的正确运行结果,在程序改错过程中可充分加以利用.
从本题中可以看出,主函数main()的定义与调用都是非常简单的.
子函数定义fun()中使用"迭代"算法,其基本思想是通过相同数学式子的"迭代"运算,能够最终"逼近"运算结果.
在本题中,语句"x0=x1"的功能是将旧函数值保存到变量x0中,语句"x1=cos(x0)"的功能是计算出新函数值并保存到变量x1中.
其中,"迭代"控制的条件是fabs(x0-x1)>0.
000001.
4.
2.
30第30套上机编程逼真试题及精解【试题原貌】请编写函数fun,它的功能是:求出数组周边元素的平均值,并作为函数值返回给主函数中的s.
程序中定义了一个N*N的二维数组,并在主函数中进行赋值.
例如:若a数组中的值为:0127919745238314568259141a=则返回主程序后s的值应为3.
375.
全国计算机等级考试上机考试典型逼真试题及精解216最新二级/基础知识操作和C语言程序设计注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句.
试题程序:#include#include#include#defineN5doublefun(intw[][N]){}main(){inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};inti,j;doubles;clrscr();printf("*****Thearray*****\n");for(i=0;i/*包含控制台输入输出头文件*/#include/*包含标准输入输出头文件*/#include/*包含标准库头文件*/#defineN5/*说明符号常量N的值为5*/doublefun(intw[][N]){/*子函数定义语句*/intk;/*说明局部变量k*/doublesum;/*说明局部变量sum*/sum=w[N-1][N-1]-w[0][0];/*使变量sum保存合理的初始值*/for(k=0;k#include#includedoublefun(intn){}main(){intn;doublesum;clrscr();printf("\n\nInputn:");scanf("%d",&n);sum=fun(n);printf("\n\nsum=%f\n\n",sum);}【解题分析】第一,由【试题原貌】和原程序可知,函数fun()中的形参n是整型变量,用于表示所求素数平方根之和的范围.
另外,函数fun()中有三个局部变量,其中变量i和j分别用于控制外层for循环和内层for循环,变量m用于记录所求素数的平方根之和,并初始化为0.
第二,在参考答案程序中,外层for循环控制变量i对应判断是否素数的数据,内层for循环控制变量j对应整数中的可能因子.
如果数据j是整数i的因子,则使用break语句强行终止内层for循环的执行过程.
如果整数i是素数,则计算其平方根之和并存放到变量sum中.
最后,使用return语句将所有素数的平方根之和返回给主函数.
第三,主函数main()中,首先说明整型变量n和实型变量sum,并清除屏幕内容,以便使光标回到左上角;然后,显示提示信息"Inputn:",并从键盘输入一个整数到变量n;最后,调用子函数fun(),并输出函数最终的运行结果.
【题解答案】编程后的正确程序如下所示:#include/*包含数学运算头文件*/#include/*包含控制台输入输出头文件*/全国计算机等级考试上机考试典型逼真试题及精解220最新二级/基础知识操作和C语言程序设计#include/*包含标准输入输出头文件*/doublefun(intn){/*子函数定义语句*/inti,j;/*说明局部变量i和j*/doublem=0;/*说明局部变量m*/for(i=3;i<=n;i++){/*外层for循环*/for(j=2;j480997【经验宝库】所谓"素数"是指该数具有只能由1和自身整除的性质,即该数(这里为n)一定没有2,3,4,5,……,n-1等因子,参考答案程序正是利用这一性质而成.
已知条件中的"n的值要求大于2但不大于100",一方面规定n值的合理性,另一方面控制运行的复杂.
考生们应该注意:参考答案程序是一个双重的for循环,其对应的时间复杂性为二次式,即O(n2).
(QBASIC、C、FoxBASE+语言程序设计)基本要求1.
具有计算机的基础知识.
2.
了解操作系统的基本概念,掌握常用操作系统的使用.
3.
掌握基本数据结构和常用算法,熟悉算法描述工具——流程图的使用.
4.
能熟练地使用一种高级语言或数据库语言编写程序、调试程序.
考试内容一、基础知识与基本操作(一)基础知识1.
计算机系统的主要技术指标与系统配置.
2.
计算机系统、硬件、软件及其相互关系.
3.
微机硬件系统的基本组成.
包括:中央处理器(运算器与控制器),内存储器(RAM附录二级考试大纲全国计算机等级考试上机考试典型逼真试题及精解222最新二级/基础知识操作和C语言程序设计与ROM),外存储器(硬盘、软盘与光盘),输入设备(键盘与鼠标)输出设备(显示器与打印机).
4.
软件系统的组成,系统软件与应用软件;软件的基本概念,文档;程序设计语言与语言处理程序(汇编程序、编译程序、解释程序).
5.
计算机的常用数制(二进制、十六进制及其与十进制之间的转换);数据基本单位(位、字节、字).
6.
计算机的安全操作;计算机病毒的防治.
7.
计算机网络的一般知识.
8.
多媒体技术的一般知识.
(二)DOS的基本操作1.
操作系统的基本功能与分类.
2.
DOS操作系统的基本组成.
3.
文件、目录、路径的基本概念.
4.
常用DOS操作,包括:初始化与启动;文件操作(TYPE,COPY,DEL,REN,XCOPY,ATTRIB);目录操作(DIR,MD,CD,RD,TREE,PATH);磁盘操作(FORMAT,DISKCOPY,CHKDSK);功能操作(VER,DATE,TIME,CLS,PROMPT,HELP);批处理(批处理文件的建立与执行,自动批处理文件);输入输出改向.
(三)Windows的基本操作1.
Windows的特点、基本构成及其运行环境.
2.
Windows用户界面的基本元素.
包括:窗口、图标、菜单、对话框、按钮、光标等.
3.
Windows基本操作.
包括:启动与退出,鼠标操作,窗口操作,图标操作、菜单操作,对话框操作.
二、程序设计1.
能运用结构化程序设计方法编写程序.
2.
掌握基本数据结构和常用算法.
3.
能熟练使用一种高级语言或一种数据库语言(共有QBASIC、FORTRAN、C以及FoxBASE+等四种语言,考生任选其中一种.
各种语言的考试内容附后).
三、上机操作在指定的时间内使用微机完成下述操作:附录二级考试大纲2231.
完成指定的计算机基本操作(包括机器启动和操作命令的使用).
2.
按给定要求编写和运行程序.
3.
调试程序,包括对给出的不完善的程序进行修改和补充,使之能得到正确的结果.
QBASIC、C以及FoxBASE+语言的考试内容一、QBASIC语言程序设计(一)QBASIC的基本概念1.
QBASIC提供的数据类型.
2.
常量和变量的概念、变量的命名规则、变量的类型说明.
3.
运算符和运算规则(算术运算、关系运算、逻辑运算、字符运算).
4.
表达式(算术表达式、关系表达式、逻辑表达式、字符表达式)的概念及求值.
(二)顺序结构程序设计1.
变量的赋值(LET语句).
2.
数据输出(PRINT语句).
3.
数据输入(INPUT语句,READ/DATA语句,RESTORE语句).
4.
程序停止执行(END语句,STOP语句).
5.
程序注释(REM语句).
(三)选择结构程序设计1.
行IF语句.
2.
块IF结构.
3.
SELECTCASE结构4.
选择结构的嵌套(四)循环结构程序设计1.
循环的概念.
2.
WHILE循环结构.
3.
FOR-NEXT循环结构.
4.
DO循环结构.
5.
循环结构的嵌套.
(五)数组1.
数组和数组元素.
2.
数组定义的方法.
3.
引用数组元素的方法.
4.
静态数组和动态数组.
全国计算机等级考试上机考试典型逼真试题及精解224最新二级/基础知识操作和C语言程序设计5.
一维数组和多维数组.
6.
数组的运算.
(六)函数与子程序1.
标准函数.
2.
单行自定义函数和多行自定义函数的定义和引用.
3.
块内子程序——子例程(GOSUB-RETURN语句,ONGOSUB-RETURN语句及ONKEY(n)GOSUB-RETURN语句).
4.
独立模块的子程序的定义(SUB-ENDSUB语句)和调用(CALL语句).
5.
模块化函数的定义(FUNCTION-ENDFUNCTION语句)和调用.
6.
模块间的数据传递(虚实结合).
7.
全局变量与局部变量.
8.
过程的嵌套调用.
9.
过程的递归调用.
(七)字符处理1.
字符串和字符串变量的概念.
2.
字符串变量的赋值.
3.
字符串的运算.
4.
字符串函数.
5.
字符串数组.
(八)文件1.
文件的概念.
2.
对源程序文件的操作.
3.
对顺序文件的操作.
4.
记录型变量的定义(TYPE-ENDTYPE语句)和随机文件的操作.
(九)屏幕控制与作图1.
屏幕控制(CLS语句,LOCATE语句).
2.
显示模式的控制(SCREEN语句).
3.
颜色的设置(COLOR语句).
4.
标准作图语句(PSET语句,PRESET语句,LINE语句,DRAW语句和CIRCLE语句).
5.
图形的着色(PAINT语句).
二、C语言程序设计(一)C语言的结构附录二级考试大纲2251.
程序的构成,MAIN函数和其他函数.
2.
头文件、数据说明、函数的开始和结束标志.
3.
源程序的书写格式.
4.
C语言的风格.
(二)数据类型及其运算1.
C的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法.
2.
C运算符的种类、运算优先级和结合性.
3.
不同类型数据间的转换与运算.
4.
C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则.
(三)基本语句1.
表达式语句,空语句,复合语句.
2.
数据的输入与输出,输入输出函数的调用.
3.
复合语句.
4.
GOTO语句和语句标号的使用.
(四)选择结构程序设计1.
用IF语句实现选择结构.
2.
用SWITCH语句实现多分支选择结构.
3.
选择结构的嵌套.
(五)循环结构程序设计1.
FOR循环结构.
2.
WHILE和DOWHILE循环结构.
3.
CONTINUE语句和BREAK语句.
4.
循环的嵌套.
(六)数组的定义和引用1.
一维数组和多维数组的定义、初始化和引用.
2.
字符串与字符数组.
(七)函数1.
库函数的正确调用.
2.
函数的定义方法.
3.
函数的类型和返回值.
4.
形式参数与实在参数,参数值的传递.
5.
函数的正确调用,嵌套调用,递归调用.
全国计算机等级考试上机考试典型逼真试题及精解226最新二级/基础知识操作和C语言程序设计6.
局部变量和全局变量.
7.
变量的存储类别(自动、静态、寄存器、外部),变量的作用域和生存期.
8.
内部函数与外部函数.
(八)编译预处理1.
宏定义:不带参数的宏定义;带参数的宏定义.
2.
"文件包含"处理(九)指针1.
指针与指针变量的概念,指针与地址运算符.
2.
变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量.
通过指针引用以上各类型数据.
3.
用指针作函数参数.
4.
返回指针值的指针函数.
5.
指针数组,指向指针的指针,MAIN函数的命令行参数.
(十)结构体(即"结构")与共用体(即"联合")1.
结构体和共用体类型数据的定义方法和引用方法.
2.
用指针和结构体构成链表,单向链表的建立、输出、删除与插入.
(十一)位运算1.
位运算符的含义及使用.
2.
简单的位运算.
(十二)文件操作只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求.
1.
文件类型指针(FILE类型指针).
2.
文件的打开与关闭(FOPEN,FCLOSE).
3.
文件的读写(FPUTC,FGETC,FPUTS,FGETS,FREAD,FWRITE,FPRINTF,FSCANF函数),文件的定位(REWIND,FSEEK函数).
三、数据库语言程序设计(一)数据库系统及FoxBASE+基础知识1.
基本概念:数据库、数据库管理系统、数据库系统、数据库模型及其相互关系.
关于HostYun主机商在之前也有几次分享,这个前身是我们可能熟悉的小众的HostShare商家,主要就是提供廉价主机,那时候官方还声称选择这个品牌的机器不要用于正式生产项目,如今这个品牌重新转变成Hostyun。目前提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路,访问质量不错。今天和大家分享下...
HostKvm是一家成立于2013年的国外主机服务商,主要提供VPS主机,基于KVM架构,可选数据中心包括日本、新加坡、韩国、美国、俄罗斯、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。商家本月针对香港国际机房提供特别7折优惠码,其他机房全场8折,优惠后2G内存香港VPS每月5.95美元起,支持使用PayPal或者支付宝付款。下面以香港国际(HKGlobal)为...
香港最便宜的vps要多少钱?最便宜的香港vps能用吗?香港vps无需备案,整体性能好,而且租用价格便宜,使用灵活,因为备受站长喜爱。无论是个人还是企业建站,都比较倾向于选择香港VPS。最便宜的香港vps能用吗?正因为有着诸多租用优势,香港VPS在业内颇受欢迎,租用需求量也在日益攀升。那么,对于新手用户来说,香港最便宜的vps租用有四大要点是务必要注意的,还有易探云香港vps租用最便宜的月付仅18元...