C语言学习教程(2)

2019-04-23 22:35

本上包含了所有的上机考试题目类型。这本书里一共有100道题,都很经典。但也许有人会觉得太多了,没时间看完所有的题目。下面我给大家介绍一个复习技巧。 简化问题

每道试题的程序都很长,而且涉及的知识点很多。实际上,在考试时看完全部程序并没有必要。每次只用把主要精力放在子程序的编制上,认真思考其“功能要求”。所以平时我们只用关注需要编制的子程序。 试题归类

要学会找出题目之间的规律,复习起来就会事半功倍。在一百道题目中,实际上只需要仔细分析其中的二十多道题就足够了,其他的只用看一下就行。因为大部分的题目都是类似的,总结出规律来之后,我们可以举一反三。例如下面两类题目:

例1. (占题库10%)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额=单价×数量可计算得出。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT10.DAT中。 程序:void SortDat( ) {int I,J; PRO xy;

for (I=0;I<100;I++)

{if (strcmp(sell[I].dm,sell[J].dm)<0)① { xy=sell[I]; sell[I]=sell[J]; sell[J]=xy; }

else if (strcmp(sell[I].dm,sell[J].dm)==0)② if (sell[I].je { xy=sell[I];

sell[I]=sell[J]; sell[J]=xy;} } }

分析:这类程序题目的关键部分在于①、②、③三句上。它们的作用就是给出调换记录次序的条件。与其类似的题目只是在功能要求上有所不同(例如把“从大到小”改为“从小到大”,把“产品代码”换成“产品名称”等),所以我们只需要修改这三句。如果我们抽到的题目是“金额从小到大,如相同,则产品名称从大到小”,我们就将 ①改为:if (sell[I].je>sell[J].je) ②改为:else if (sell[I].je= =sell[J].je) ③改为:if (strcmp(sell[I].mc,sell[J].mc)<0)

而对于将记录次序进行调换的程序xy=sell[I]、sell[I]=sell[J]、sell[J]=xy,我们只需要套用就行。

例2. (占题库10%)函数ReadDat()的功能是实现从文件ENG.IN中读取一篇英文文章,存入大字符串数组xx中;请编制函数encryptChar(),按给定的代替关系对数组xx中的所有字符进行代替,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中。

代替关系:f(p)=p*11 mod 256。其中p是数组xx中某一个字符的ASCII值,f(p)是计算后的新字符的ASCII值,如果计算后f (p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行代替。 程序:void encryptChar() { int I; char *pf; for (I=0;I { pf=xx[I]; while(*pf!=0)

{ if(*pf*11%6>130||*pf*11%6<=32)① { pf++;

continue;} *pf=*pf*11%6; pf++; } } }

分析:这一类题目较例1更为简单,其关键只有①一句,它是对条件“如果计算后f(p)的值小于等于32或大于130”的描述。上机考试中类似的题目可能只对这个条件作少许变动。例如:“如果原字符是大写字母或计算后f(p)的值小于等于32”,则只需把①改为:if ((*pf>=`A`&&&&*pf<=`Z`)||*pf*11%6<=32)

其他试题也可以按照上述方法进行总结。总而言之,对于三级上机考试,我们不仅要提高编程能力,还应该注意分析试题,寻找规律,用更少的时间和精力解决更多的问题! 备战C语言上机考试

C语言是目前最常用的软件开发语言之一,其功能强大,具有悠久的历史,从C、C++发展到现在的C#,不断地得以更新繁衍。在全国计算机等级考试中有,五个类别使用C语言作为上机考试内容,为各编程语言中应用最多的。 理论先行

[被屏蔽广告]

虽是上机考试,仍需以理论知识为基础,所以必须将C语言教材从头到尾学习一遍(应选择权威教材),对C语言的基本概况做到心中有数。

学完教材后,选取一些有代表性的编程范例,将其语句逐条理解透彻。同时还须注意一点,看的懂未必等于自己就会编写,应当自己尝试默写,从而找出知识薄弱点、思维盲点。

要养成一些良好习惯,比如,代码书写格式使用规范的锯齿形,尽量使用完整表达。如果采用简化方式,虽然不一定影响运算结果,但有的考试评分标准是按答题要点给分,所以还是不省为妙。 以下是学习C语言过程中容易出现的问题: 1.函数、变量使用前未定义。

2.混淆“=”和“= =”。

3.语句后或预定义的函数名后漏掉分号。 4.将else拼写成esle、continue拼写成contiune。 5.括号搭配错误。 6.首地址理解为1。 7. p++与++p区别不清。 8. break、continue运用不当。

9.误将单引号用于字符串常量,将双引号用于字符常量。 10. else分句中嵌套条件语句时,漏掉了“if”。 上机实践

虽然考点、培训点一般都提供模拟上机,但毕竟时间、地点受到限制,不能保证充分的练习时间,因此很多考生都希望能在自家电脑上进行操作实践,下面具体谈谈如何实现在个人电脑上进行练习的方法。 一、简易环境练习 系统要求:Windows系统 需用软件:Turbo C 2.0

TC软件虽然不是标准的Windows程序,但在Windows环境下依然可以使用。为使软件处于理想运行状态,运行tc.exe后需要做一些设置:

1.按“汉”按钮,否则会出现部分乱码。

2.点击属性按钮,在程序选项卡的“工作目录”栏中根据上一命令行填入程序所在目录,“运行”栏选择最大化,选择“退出时关闭”。

设置好后即可依照练习册输入习题,进行编译调试。编程中用到的处理数据一般需自建。为了提高效率,可从网上下载习题。这里应留意一些下载习题中的问题,比如遗漏字符、录入错误等,还有一些不易发现的情况,像双引号的字体不标准、文件扩展名前的句号成了逗号、甚至一些看似无内容的空行中包含着某些ASCII码,都会影响编程结果。

二、全真环境练习 系统要求:DOS系统

需用软件:Turbo C 2.0、UCDOS、上机模拟软件

经过基础阶段学习后,再来进行针对等级考试的练习,这就需要用到模拟软件了。市面上模拟软件很容易买到,其操作界面与正式考试完全一样,还往往汇集了丰富的题库和答案、源程序、输入数据,并可进行自我评分。有的还提供笔试题知识点查询,介绍考试技巧等。

使用模拟软件前,应先安装UCDOS(这与真实考试要求一样,须选5.0以上版本,而且最好采用正式版,否则可能影响软件使用)。通常情况下在Windows环境下是无法使用模拟软件的,经过一些专业设置后虽可实现,但仅限于Windows 9X操作系统,而且设置不当易使系统崩溃,所以笔者建议还是在纯DOS环境下使用为妥。 实战心得

笔者参加的今年上半年考试题目大意如下:要求将一篇英文文章中每个字符的ASCII值按公式f(p)=p 17%6计算,如f(p)的ASCII值小于32或为奇数,则原字符不变,否则予以替代。这道题目需要编写的程序代码没几行,我写好后调试运行,一切正常,复查几遍也看不出有哪儿不妥。正打算离开考场时,忽然觉得运算结果值得怀疑,根据题意,经过ASCII值计算后的结果不大可能仍都是常规字符,因此回过头来再逐字审查题目,反复对照编好的程序,焦点集中在了存放f(p)值的变量定义上,难道应将“char”改为“unsigned char”?一试,结果果然不同。

事后查知,char变量值的范围为-128至+127,unsigned char变量值的范围为0至255。比如字符“x”的ASCII值为120,按上述公式运算后值为248,字符应予以替代;如果存放f(p)值的变量定义为char型,值则转换为-8,字符因而不被替代,难怪刚才运算结果显出全篇常规字符了。所以说,仔细严谨的应考作风能弥补一些技术上的不足,有助于临场发挥。 友情提示

1.由于使用UCDOS,当屏幕下方显示其状态条时,Turbo C中的快捷键Alt+F9(调试编译)、Alt+F5(查看运行结果)等提示会被屏蔽掉,解决的办法为按一下右Shift键,隐藏UCDOS状态条后即可正常使用。值得一提的是,Alt+F9虽然是Turbo C菜单中的Run/Run命令的快捷键,但两者不完全相同:菜单命令包括自动编译、连接和运行程序;而快捷键方式却不包括运行程序,自然也就无运算结果,所以即使程序代码编写正确,考试成绩仍有可能为零分。

2.虽然一些模拟软件的习题也是从国家考试中心发行的《全国计算机等级考试上机考试习题集》中选取,但正式考试时如遇到练习过的题目,仍应看仔细,其中可能会有“小于”与“大于”之类的一字之别。

C语言程序设计技巧


C语言学习教程(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:监理规划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: