C语言理论考试要点.doc_第1页
C语言理论考试要点.doc_第2页
C语言理论考试要点.doc_第3页
C语言理论考试要点.doc_第4页
C语言理论考试要点.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言理论考试要点学习C语言后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最重要的。比如:在C语言中最典型的是关于结构化程序设计构思,不管是那种教材,一开始就强调这种方法,这时也许你不能充分体会,但是学到函数时,再回头来仔细体会,温故知新,理解它就没有那么难了。学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。C语言学得好的学生都是知难而上,不轻易放弃的强者。等级考试分优秀、合格、不合格三档。江苏省计算机二级考试成绩分为:大学计算机信息基础20分C语言理论部分40分C语言上机考试40分证书分:合格、优秀两种,没有期限通过准考证在网上查询成绩,大约考完后50天可查。期末复习以理论为主,上机为次;暑假开始以上机为主,理论为次。二级C语言等级考试没有通过的98%以上是因为上机未达线。目前我校C语言等级考试通过率为40%左右。仔细研究大纲和样题,大纲提到的知识点和库函数要熟练掌握。常用算法默写后对照,再默写再对照。不要不肯动笔,多做归纳总结,包括知识点的归纳和算法的归纳。大学计算机信息基础占20分,要作适当复习。C语言理论部分占40分,上机占40分。C语言理论题大多数是数组以后的内容,但要熟练运用前面表达式、数据类型、三种基本结构等知识。选择题需要记忆的知识包括计算机基础知识、基本概念。这些内容看似不起眼,但如果不适当加以记忆,考试时因此失分十分可惜。我们可以在理解的基础上归纳整理,适当记忆。近年大学计算机信息基础考得比较实用、如:优盘、数量级、存取速度、通讯技术、网络知识。每年必考的知识点如下: 循环嵌套 字符数组的输入输出、插入或删除、或排序、或重新组合 函数参数的传递,传值和传址的不同、函数的定义和返回值 变量的作用域(选择题,全局变量和局部变量的区别,如:05春25题) 变量的存储类型(填空题,如:04春填空第9题,每次调用函数,静态变量y保留上次调用时的值;C是全局变量,&b对应指针sum传址,b和*sum值一致;a单向传值给x,x的值不影响a) 指针传址、指针数组、指针处理二维数组、指针处理字符串数组和字符串、指针处理结构体和链表(填空题)、指针与结构体结合(填空题)笔试只有选择题和填空题两种题型。这两种题型的解题方法有所不同,考生在备考时要深化对基本概念和知识点的理解,并注重实践,同时要作一些针对性的练习,特别是历年真题,从中找出规律性的东西以及解题技巧。一、选择题这种类型的题,要求考生从四个待选答案中选择一个正确答案。考生可综合运用直选法,排除法等多种方法。但是这类题目考的知识点往往都比较多且细,容易出错,考生在做这类题时,切忌不加分析,一看就选,从而漏掉正确的答案。一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算。明确运算符按优先级不同分类,运算符可分为15种优先级,从高到低,优先级为115,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序。下面我们通过几个例子来说明: (1)5*8/4%10这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算5*8=40,然后被4除,结果为10,最后是%(求余数)运算,所以表达式的最终结果为10%10=0; (2)a=3;b=5;c=+a*b;d=a+*b;对于c=+a*b来说,按表中所列顺序,+先执行,*后执行,所以+a执行后,a的值为4,由于+为前置运算,所以a的值4参与运算,C的值计算式为4*5=20而不是3*5=15了;而对于d=a+*b来说,由于a+为后置运算,所以a值为4参与运算,使得d的值仍为20,而a参与运算后其值加1,值为5。这个例子执行后,a的值为5,b的值为5,c的值为20,d的值也是20; (3)(a=3,b=5,b+=a,c=b*5) 例子中的“,”是逗号结合运算,上式称为逗号表达式,自左向右结合,最后一个表达式的结果值就是逗号表达式的结果,所以上面的逗号表达式结果为40,a的值为3,b的值为8,c的值为40。逗号表达式作为函数的实参时,代表一个参数。如下函数调用语句:func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是 3 。(4)a=5;b=6;c=ab?a:b; 例中的ab?a:b是一个三目运算,它的功能是先做关系运算ab部分,若结果为真,则取问号后a的值,否则取冒号后b的值,因此c的值应该为6,这个运算可以用来代替ifelse语句的简单应用,反过来则不一定能替换,如ifelse中不是简单的表达式而是可执行语句时就不能用条件表达式,如ab?return a: return b是错误的。如:有以下程序:main() int a33,*p,i;p=&a00;for(i=0;i9;i+)pi=i+1;printf(%dn,a12);程序运行后的输出结果是6 此题主要考的知识点有: (1)数组与指针的关系; (2)数组的初始化和数组元素的引用。 在C语言中,数组与指针有着非常密切的联系。任何能用数组下标完成的操作也都可以用指针来实现。语句“p=&a00;”使p指向数组中的第0号元素,即a00,指针变量p中存放了数组元素a00的地址,由于数组元素在内存中是连续存储的,因此,我们就可以通过指针变量p访问数组中的任何一个元素。本题中通过“for(i=0;i10?m+|+m:+m;后m,n的值为_6,1_n=(11)10?m+|+m:+m;n=1?m+|+m:+m; (|后m不加1)n=1二、填空题填空题主要考查考生对基础知识的准确理解。对于这类型的题,考生应深刻理解题意,明确题目要求,运用相关知识做出正确回答。在历年考试中,考生这部分试题的得分直接决定考试成绩。由于这部分共20个空,计40分,有的考生能得3540分,而有的考生却得不到10分,直接拉开了最后成绩。 考生常犯的错误有以下几个方面:1.基础知识掌握不扎实,概念理解不准确。如main()int a=1,b=3,c=5;if (c=a+b) printf (yesn);else printf(no);题目问程序运行后的输出结果,答案应是yes。因为“if(c=a+b)printf(yesn);”中的条件“c=a+b”是一个赋值语句,c的值为a+b=1+3=4,所以条件为真。而许多考生却把赋值语句“c=a+b”理解为关系表达式“c=a+b”即5=1+3为逻辑假,故答no。 2.答案表述不准确,会做的题却不得分或少得分。如第12题:main()inti,n=0,0,0,0,0;for(i=1;i=4;i+)ni=ni-1?2+1;printf(%d,ni);问程序运行后的输出结果是_。答案是“13715”许多考生虽然写对了但却在每个数字后加了标点而不得分如“1,3,7,15”或“1.3.7.15”。细节决定成败 又如:以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串;例如,输入字符串:abc123edf456gh,执行后输出:123456。请填空:main()chars80,d80;inti,j;gets(s);for(i=j=0;si!=0;i+)if(_)dj=si;j+dj= 0;puts(d); 答案应是si=0或si=57而许多考生却把“=”,“=”写成“”,“”导致不能得分。3.注意答题卡的号码并不是试题卷上的题号,而是填空的顺序号。许多考生答题时将答案张冠李戴,位置写错,白白丢了分。 总之,只要考生能准确理解基本知识点,善于动手动脑多练习,举一反三,触类旁通,就能从中找出规律性的东西,作好充分准备,带齐证件,早点到考场(老师一般会提前发答题卡、答题纸,甚至试卷,在开考之前填好准考证号等信息,浏览题目内容),有把握的题目先做,保证正确率,剩余时间做难题,部分题目可放弃。保证考试时有良好的精神状态,摒弃一切杂念,轻松通过笔试。例:-6在内存中的存放形式:(10000000 00000110)原,求反加1(11111111 11111010)补例:转义符代表一个字符, 转义符代表一个字符一般用于printf函数和字符串常量。strlen(“112112t”);例:while(.); .在循环之外三、C程序设计基本步骤 程序设计方法包括三个基本步骤: 第一步: 分析问题。 第二步: 画出程序的基本轮廓。 第三步: 实现该程序。 下面, 我们来说明每一步的具体细节。 第一步: 分析问题 在这一步, 你必须: 1. 作为解决问题的一种方法, 确定要产生的数据(输出)。作为这一子步的 一部分, 你应定义表示输出的变量。 2. 确定需产生输出的数据(称为输入), 作为这一子步的一部分, 你应定义表示输入的变量。 3. 研制一种算法, 从有限步的输入中获取输出。 这种算法定义为结构化的顺序操作, 以便在有限步内解决问题。就数字问题而言, 这种算法包括获取输出的计算, 但对非数字问题来说, 这种算法包括许多文本和图象处理操作。 第二步: 画出程序的基本轮廓 在这一步, 你要用一些句子(伪代码)来画出程序的基本轮廓。每个句子对应一个简单的程序操作。对一个简单的程序来说, 通过列出程序顺序执行的动作,便可直接产生伪代码。然而, 对复杂一些的程序来说, 则需要将大致过程有条理地进行组织。对此, 应使用自上而下的设计方法。 当使用自上而下的设计方法时, 你要把程序分割成几段来完成。列出每段要实现的任务, 程序的轮廓也就有了, 这称之为主模块。当一项任务列在主模块时,仅用其名加以标识, 并未指出该任务将如何完成。这方面的内容留给程序设计的下一阶段来讨论。将程序分为几项任务只是对程序的初步设计。要画出模块的轮廓, 你可不考虑细节。如果这样的话, 你必须使用子模块, 将各个模块求精, 达到第三级设计。继续这一过程, 直至说明程序的全部细节。 这一级一级的设计过程称为逐步求精法。在编写程序之前, 对你的程序进行逐步求精, 对你来说, 是很好的程序设计实践, 会使你养成良好的设计习惯。我们则才描述了程序设计中自上而下的设计方法。实际上就是说, 我们设计程序是从程序的顶部开始一直考虑到程序的底部。 第三步: 实现该程序 ,分为以下三步: 1. 编写程序 2. 测试和调试程序 3. 提供数据打印结果 程序设计的最后一步是编写源码程序。 在这一步, 把模块的伪代码翻译成Turbo C语句。对于源程序, 你应包含注释方式的文件编制, 以描述程序各个部分做何种工作。此外, 源程序还应包含调试程序段, 以测试程序的运行情况, 并允许查找编程错误。一旦程序运行情况良好, 可去掉调试程序段, 然而, 文件编制应做为源程序的固定部分保留下来, 便于你或其他人维护和修改。四、源程序的输入、编译和运行 C语言是一种中级语言, 用户用C语言编写的程序称为源程序, 存放用C 语言所写源程序文件名字最后的两个字符一般必须为.c。计算机硬件不能直接执行源程序, 必须将源程序翻译成二进制目标程序。翻译工作是由一个程序完成的,这个程序称为编译程序, 翻译的过程称为编译, 编译的结果称为目标程序, 存放目标程序文件名字紧后的字符一般为.OBJ或.O。程序翻译成目标程序后, 便可进行连接。连接的目的是使程序变成在计算机上可以执行的最终形式。在这一阶段, 从系统程序库来的程序要与目标程序连接, 连接的结果称为执行程序,存放执行程序文件名字一般以.EXE结尾。 判断程序是否出错或者为什么出错是编程中最有挑战意义的一方面。这里建 义你进行预防性设计, 具体做法为: (1) 将代码写清楚点, 应作适当缩进, 使用文字说明和描述性的变量名。 (2) 代码应简单, 把精力放在简单语句中的复杂表达式, 而不是一些复杂语句。Turbo C的代码优化机制将大大提高代码的效率, 而且调试、阅读、修改起来容易。 (3) 尽量用目的简单、好定义的函数构建程序。 这会便于编制调试程序和 分析结果, 而且阅读、修改起来也要容易一些。 (4) 应尽量减少各个函数要求的数据和改变数据的元素个数。这也会便于 编制测试程序和分析结果; 同样便于阅读、修改程序。并且还限制了出错函数可能造成的巨大混乱的牵涉面, 便得能在一个调试节中多运行函数几次。 (5) 要留心编写程序中的公共函数, 或者说在其它程序中可再用的函数。 编写、调试一个一般性的函数通常要比编写、调试两个或更多的特殊函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论