南邮《高级语言程序设计》期末总复习及模块一.doc

上传人:hw****26 文档编号:3153334 上传时间:2019-05-23 格式:DOC 页数:31 大小:113KB
下载 相关 举报
南邮《高级语言程序设计》期末总复习及模块一.doc_第1页
第1页 / 共31页
南邮《高级语言程序设计》期末总复习及模块一.doc_第2页
第2页 / 共31页
南邮《高级语言程序设计》期末总复习及模块一.doc_第3页
第3页 / 共31页
南邮《高级语言程序设计》期末总复习及模块一.doc_第4页
第4页 / 共31页
南邮《高级语言程序设计》期末总复习及模块一.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、高级语言程序设计期末总复习课程的全部内容可分为五大模块:(1) 基础知识(2) 三种基本结构及流程控制(3) 函数(4) 数据类型(5) 文件下面按这五大模块分别作回顾模块一:基础知识部分需要掌握的知识要点:(1)冯诺依曼体系结构的计算机组成:运算器、控制器、存储器、输入设备、输出设备,以及各部分的主要功能。(2)C 语言程序的组成:由一个或多个文件组成,每个文件由一个或多个函数组成,函数是 C程序的基本单位,一个程序有且只有一个 main( )函数,这是程序的入口函数(3)从 C的源程序到可执行的文件的全过程:编辑、编译、链接最后才能运行,各阶段生成的文件扩展名分别为:.c、.obj、.ex

2、e,头文件的扩展名:.h(4)函数的组成:函数首部和函数体,函数中可有注释行/* */ (5)编译预处理有三种:文件包含、宏、条件编译:预处理命令行都必须以“#”号开始宏定义#define 宏名 串也是一种编译预处理,取消宏定义用:#undef 宏名 C程序中定义一个 符号常量 是借助于宏定义实现的,例如: #define NUM 35 注意: 不在行末加分号,因为在对源程序编译过程中(不是运行时)进行宏替换时,将宏所代表的字符串原样替换进去,有时加了分号是要出错的,例如: int arrNUM 。 宏替换因为只在编译时进行,所以 不占运行时间,只占编译时间带参数的宏可以完成一些简单函数的功能

3、,例如:#define MUL(x,y) x*y主函数中如果有变量定义如下:int a=2,b=3,c;用形如:c= MUL(a,b);实现求 a、b 的乘积。但是请大家思考,如果用c= MUL(a+2,b+5),则变量 c的值为?因此,一般将宏中的参数在所定义的串中打上括号,如:#define MUL(x,y) (x)*(y)再求 c= MUL(a+2,b+5)(6)C 程序中的六种符号:关键字、标识符、运算符、分隔符、其它符号、数据(包括常量和变量)熟记所有常见关键字,关键字中最多的是流程控制语句中的关键字,如:for、while、do、if、else、switch、case、defaul

4、t、break、continue、goto、return 等,还有一大类是变量类型及存储类别的,如:int、short、long、signed、unsigned、char、double、float、enum、union、struct、typedef、static、register、auto、extern,还有一些如:void 、sizeof 等;能正确定义标识符(在程序中,符号常量名、变量名、函数名都是用户自定义标识符) ,自定义标识符的正确与否可从以下几方面判断:是否以字母或下划线开头;是否是只有字母、数字、下划线的序列是否选用了关键字练习:下列哪一个是合法的用户自定义标识符_。A、_do_

5、while; B、begin?end; C、for; D、1st_run;掌握所有的运算符及其优先级、结合方向及特殊的运算规则:34种运算符的优先级关系大致为: 、( )、-、.-一元运算符-乘除类算术运算符-加减类算术运算符-移位运算符-有大小关系的关系运算符 -等与不等的关系运算符-位运算符-逻辑与-逻辑或- 条件运算符-各种赋值运算符-逗号运算符。结合方向:一元运算符、条件运算符、赋值运算符三种为自右向左结合,其它均为自左向右结合能改变变量值的运算符:赋值、+、- -,注意前后+、- -的区别具有特殊运算规则的运算符:逻辑与c=c-35;putchar(c);的输出结果是_3、下列哪一个

6、不是合法的常量A、027 B、2.5e2.5 C、 0xfdaL D、10.e+0变量:在程序运行过程中其值可变的量,需要先定义后使用。每一个变量都具有:变量名、变量的当前值、变量的地址、变量的存储属性,指针变量中存的是地址,其余变量中存放的是值。在所有函数之外定义的变量称为全局变量,其作用域为定义点开始到程序结束(去掉含同名局部量的作用区域) ;在函数内部定义的变量称为局部变量(形式参数也是局部变量) ,局部变量分 auto(默认)和 static两种,前者是在函数被调用时分配空间,每次函数执行完毕后将不再存在,但是 static型的局部变量在函数第一次被调用时进行分配空间,只初始化一次,每

7、次函数执行完毕后将继续存在,但是只在本函数中才起作用,因此这种变量的读程序题一定要注意!练习:#include int cal(int n) static int f=20;f+=n;return f;void main ( )int i;for(i=1;i,则对应的输入语句是什么?2、float v1234.5678;,输出格式为:输出总宽度为 10,精度为 3,则应使用语句 printf(_);实现;若输出语句为:printf(“%.3f”,v);,输出的内容为:_(2)选择结构:用 if.else、switch 语句配合复合语句、 break语句控制实现。If 语句有三种形式:单分支 i

8、f、双分支 if、嵌套 if,注意 else 应与其前最靠近的未匹配过的 if 相对应,而与对齐的形式无关,每一个 else 实际上都隐含了一个条件,要充分利用这些条件分析程序;if 后的条件通常是关系表达式,但是实际上可以是任何表达式,仅以该表达式是 0 或非 0 来判断条件的假和真。注意:if ( )及 else 后面都只能控制一条语句,经常需要用到复合语句。switch 语句中特别要注意的是:( 1)switch 后面的表达式类型应当为整型、字符型、枚举型,而不可以是 float 或 double 型,因为表达式的取值必须是离散值。(2)找到与表达式匹配的常量后开始执行,直到遇到 bre

9、ak 或语句结束才会停止。因此每一个分支后如果没有及时用break,则继续向下执行,这样,switch 结构可以选择多个分支执行(3)这些常量的顺序调整不影响程序的正确性,只要每个分支执行的功能固定就可以了。练习:1、已知变量 tf为整型,下面的条件语句中,五种表达有一种与其它四个不等价,它是?A、 if (tf ) 语句 1; else 语句 2; B、if ( tf=0 ) 语句 2; else 语句 1;C、if (tf!=0 ) 语句 1; else 语句 2;D、if (!tf ) 语句 2; else 语句 1;E、if (tf=1 ) 语句 1; else 语句 2;2、设以下所

10、有变量均为整型,下列程序所实现的分段函数是?if (x0) y=1; else y=0;if (xb)c=a;a=b;b=c;4、设有声明 int a=1, b=2,则下面程序段的输出结果是? 如果是内层的每个 case后有 break,而外层没有 break,输出结果是?switch (a)case 1:printf(“#n“);switch (b)case 1: printf(“*n“); case 2: printf(“*n“); case 3: printf(“*n“); break;case 2: printf(“#n“); break;(3)循环结构:常用 while、dowhil

11、e、for 三种流程控制语句实现,注意 while 和 for 属于当型循环,dowhile 属于直到型循环,若 while 后的条件为非 0 则继续循环,若为 0 则结束,三种循环是可以相互转化的。这里特别强调的是:循环的退出一般是条件为 0(for 的表达式 2,如果表达式 2 缺省,则表示永真条件、while 或 do while 后的表达式就可以表示条件,如:while (A) ,这就是一个永真条件)时不进入循环体,但是在循环体内也可以用一定条件下的 break 语句退出本层循环。如果表示条件的表达式值永远不可能为 0,则为一个死循环,这一点要注意!在循环语句中可以用 break 表示退出本层次循环、continue 表示忽略本次循环体中的后续语句,重新开始下一次循环条件的判断,以便决定是否要继续循环。循环体只有一条语句,注意复合语句的正确使用,不要误用分号形成循环体为空语句,例如:for (i=0;i头文件中练习:1、若已有定义 int i,则对于如下循环语句,循环体执行的次数分别为_。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 建筑建材

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。