《国家计算机二级C语言培训教案.docx》由会员分享,可在线阅读,更多相关《国家计算机二级C语言培训教案.docx(191页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、全国计算机等级考试(二级)C语言程序设计课程讲授人:邹竞2008年8月课程安排日期期上课时 间课程形 式授课内容备注8月12日8:00理论第1章 第2章8月12日14:30理论第3章顺序结构、第4章选择结构布置习题18月13日8:00理论第5章循环结构8月13日14:30上机循环结构习题1解答、布置习题28月14日四8:00理论第6章字符型数据习题2解答8月14日四14:30理论第7章函数布置习题38月15日五8:00上机循环结构、函数习题3解答8月15日五14:30理论第8章地址和指针布置习题48月16日六8:00理论第9章数组8月16日六14:30上机循环结构、函数习题4解答布置习题58月
2、17日日8:00理论第9章数组、第10章字符串8月17日日14:30理论第11章、第12章、第13章8月18日8:00上机指针、一维数组习题5解答8月18日14:30理论第14章、第15章、第16章布置习题68月19日8:00理论公共基础知识8月19日14:30上机指针 一维数组习题6解答 布置习题78月20日8:00上机二维数组8月20日14:30上机二维数组8月21日四8:00上机字符串习题7解答8月21日四14:30上机字符串8月22日五8:00上机字符串8月22日五14:30上机结构体8月23日六8:00上机结构体、文件9月4日四19:00上机填空题9月7日日19:00上机改错题9月8
3、日19:00上机设计题9月9日19:00上机综合练习 考试注意 事项第一章程序设计基本概念一、程序和程序设计1、程序计算机程序是一组有限的指令序列。它告诉计算机该做什么,怎么做。2、程序设计程序设计即通过程序设计语言将需要处理的对象和 对其处理的方法转化成计算机能够理解的指令。3、程序设计语言与计算机打交道就必须用计算机理解的语言。所谓程 序设计语言是指具有一定的语法规则,能够被计算机所理 解的一组符号的集合。程序设计语言大致可分为三类:(1)机器语言计算机的“自然语言”,由“0”和“1”组成的符号 序列表示指令。机器语言程序可以被计算机直接执行。(2)汇编语言用英文单词的缩写来表示指令,与机
4、器语言指令一一 对应。执行时需要通过“汇编程序”转换为机器语言执行。(3)高级语言类似于人类的自然语言,一条语句可对应多条指令。 执行时可通过“编译程序”或者“解释程序”转换为机器 语言执行。C语言属于高级语言中的一种,由c语言直接编写的 代码称为C语言“源程序”,计算机无法直接执行,而必 须通过编译程序转换成为机器语言程序再由计算机执行, 即生成“目标程序”。C语言源程序的后缀名为“.C”,编译之后生成的目 标程序后缀名为“.obj”,再由连接程序与库函数连接生 成后缀名为“.exe”的可执行文件,在windows中直接执 行。4、C程序开发过程(1)确定数据结构。数据结构:数据的组织形式。
5、在C 语言中,数据结构是通过数据类型的形式体现出来的。即将 需要处理的数据用C语言支持的形式表示。(2)确定算法。算法:求解的步骤地描述,也即操作的 具体步骤。将求解的步骤用特定的形式进行描述。(3)编写程序代码。将算法转换成为C语言程序代码。(4)编译连接,修改错误。通过编译器将C语言源程序 转换成为可执行的目标程序。C语言编译器能够自动寻找 部分程序错误(主要是语法错误),提示错误原因及错误位置。在这些错误未被改正之前,不会生成目标程序。(5)运行,修改错误。部分错误编译器无法查出,但会 导致程序中断运行,称为运行时错误;有些程序能够正常 运行,但运行结果与期望的结果不符,称为逻辑错误。运
6、 行时错误和逻辑错误出现时,都必须返回编辑源程序,修 改后再编译运行。二、算法1、算法的概念算法即运算方法,是对问题求解步骤的描述。一个问题有多种解决方法,即同一个问题可以设计多种 算法。2、算法的特点(1)有穷性:对于任何合法输入,可在有穷的时间内, 通过有穷步骤得出结果。(2)确定性:每个步骤有确定的意义,对相同的输入 必须得到相同的结果。(3)有效性:每个步骤都应当有可能有效地被执行到, 并得到确定的结果。(4)输入:可以有0个或多个输入。(5)输出:可以有一个或多个输出。没有输出的算法是没有意义的。3、算法举例例1求0+1+2+3+10的和。算法1:stepl: sum=0;step2
7、: sum=sum+1;step3: sum=sum+2; stepIO: sum=sum+9;stepl1: sum=sum+10;stepl2:输出sum的值;该算法可以得出正确的结果,但步骤太繁琐。算法2:(设置累加器)stepl: sum=0;step2: add=1;step3: sum=sum+add;step4: add=add+1;step5:判断add的值,如果add=10,则转向执行step3;step6:输出sum的值;显然,该算法比算法1更简洁。例2输入两个数,找出其中大的数输出。算法3:setpl :输入两个数分别保存在变量a和b中 step2:比较两个数step3:
8、如果a大于b,则输出astep4:否则输出b4、算法的描述(D自然语言:用日常使用的语言描述算法。上例中算法3就是使用自然语言描述的。(2)流程图:用特定的图形符号表示操作以及操作的执行顺序。这种描述方式易于理解,直观。流程图中主要图形符号有:输入输出框判断框上例中算法2同样可以用流程图描述:算法3用流程图描述为:开始结束(3)伪码用介于自然语言和计算机语言之间的文字和符号描述 算法。如上例中算法2用伪码描述为:开始sum=O;add=1;dosum=sum+add;add=add+1;while(add=10);输出sum的值;结束三、结构化程序设计和模块化结构1、结构化程序C语言程序由若干
9、条指令(语句)组成,这些指令(语句) 按照一定的顺序执行。指令(语句)的执行顺序主要有三种: (1)顺序结构按照语句的书写顺序执行,不会发生控制的转移,例如 算法1。(2)选择结构根据给出的条件从给出的多条语句中选择一条执行,其它 语句不执行。例如算法3。(3)循环结构根据给出的条件判断是否重复执行一条(段)固定的语 句。例如算法2。2、模块化结构计算机中处理大型问题时,往往将该大型问题分解成为 多个小的问题分别解决;每一个小的问题通过一段独立的程 序来解决。这样一段独立的程序称为一个“功能模块”,在C 语言中表现为函数。最后将若干函数组合起来构成一个完成 的程序。第二章C程序设计的初步知识一
10、、简单C语言程序的构成和格式1、C语言程序的特点下面我们将算法2和算法3转化为C语言程序。 程序1求0+1+2+10的和。#i ncIudevo i d ma i n 0(i nt sum, add;sum=0;add=1;dosum=sum+add;add=add+1;whi Ie(add=10);pr i ntf ( “010 的和为:%dn,5 , sum);1程序2输入两个数,将其中大的数输出。# i ncIudema i n ()(1 nt a, b;scanf( M%d, %dn ,&a, &b);if (a=b)printf (“大的数是:d” ,a);e I seprintf
11、(“大的数是:d” ,b);)(D C语言程序由函数构成函数组成C语言程序的基本单位;C程序中的函数分为 两种:库函数和自定义函数。库函数是预先编译好的、严格而高效的函数,C语言中 的输入输出操作就是通过调用scanf ()和pr i ntf ()两个库函 数完成的。(2)函数由函数首部和函数体构成函数首部是函数的第一行,其格式为:函数类型函数名(参数类型参数名,)例: i nt fun ( i nt x , i nt y )函数首部之后的内的部分称为函数体。函数体包括声明部分和执行部分。(3)程序从ma in ()函数开始执行不管ma i n ()函数在程序中的位置如何,一个C程序总是 从m
12、a i n ()函数体的第一条语句开始执行,到最后一条语句结 束。同一程序中其他函数的执行是通过函数的调用完成的。(4)语句以分号结束(5)程序书写自由一行可以写多条语句;一条语句也可写在多行。(6)程序中可以添加注释/*/程序是写给计算机看的,而注释是写给程序员看的,以 增加程序的可读性。注释中的内容不会被计算机执行。(7) C语言区分大小写(8)变量先声明再使用2、C语言程序的书写规则(1) 一个C程序中必须有且只能有一个main ()函数(2)函数名后必须有一对小括号()(3)语句末尾必须有分号,预处理命令和函数首部后不能有分号(4)关键字和库函数名必须用小写(5)标识符、关键字之间必须
13、用间隔符或空格分开(6)括号和引号必须成对出现(7)声明部分必须在执行部分之前(8)程序书写最好采用缩进格式二、标识符 常量和变量1、标识符程序员为变量、数组、函数等取的名字,必须满足一定的规 则:由字母、数字和下划线组成;第一个字符不能为数字;区分 大小写。(1)关键字又称为保留字,是C语言中具有特定含义的单词,共32 个。(2)预定义标识符C语言中已有特殊含义的标识符,如库函数名等,但可 重新定义。(3)用户标识符不能与关键字相同,尽量不要与预定义标识符相同,应 当做到“见名思意”。2、常量常量是指在程序运行过程中,其值不能被改变的量。常量按照类型又可分为:整型常量、实型常量、字符常量、
14、字符串常量。3、符号常量符号常量即用一个标识符代替的常量。其定义形式为:#define标识符常量如:#def ine PI 3. 14#define PRICE 40程序中任何使用该常量的地方都可用指定标识符代替。符号常量不同于变量,其值在程序运行过程中不能改变。为与变量区分,定义符号常量时,标识符一般采用全大写。使用符号常量的优点:(1)可提高程序的可读性;(2) 一改全改,便于调试。4、变量变量即程序运行过程中,其值可以改变的量。一个变量实际上对应一个存储单元,其有4个属性:(1)变量地址:变量在内存中的实际地址;(2)变量名:变量名就是区分这个单元的符号化的地址。调用一个变量时,实际上就
15、是通过该变量的变量名访问对 应的存储单元。例如:a=b;即读取变量名为b的存储单元的值,然后写 入到变量名为a的存储单元中,变量b的值不变。(3)变量类型:确定了变量所占内存单元的大小和存储方式;(4)变量的值:变量所对应的内存单元中存放的数据。变量的定义形式:类型变量名;变量必须先定义后使用,一次可定义多个变量。变量的初始化:在定义变量的同时为其赋值,不可使用“连等”同时为多 个变量初始化。数据类型数据类型表现为数据为何种类型以及能对其进行何种操作。程序中用到的所有数据都必须指明其类型。 字符型 整型 基本类型-S单精度实型 实型| L双精度实型C 枚举型三、整型数据1、整型常量整型常量即整
16、常数,可用三种形式表示:(1)十进制整数。如:123, 0, 723 等。(2)八进制整数,以。作为前缀表示。如:037 (31D), -010 (-8D)等。(3)十六进制整数,以0X或者Ox作为前缀表示。如:OxF (15D), -0x10 (-16D)等。当数值在-28211范围内,则表示为基本整型常量,在内 存中用2个字节保存。当数值在上述范围之外而在-223-1范围内,则表示为长 整型常量,在内存中用4个字节保存。整型常量默认为基本整型常量。如需表示一个长整型常 量,即用4个字节保存,可在其后添加I或者L,如15为基 本整型常量,而15L表示长整型常量,其值相同,但前者在 内存中占据
17、2个字节,而后者用4个字节保存。2、整型变量根据占用内存字节数的不同,整型变量又分为4类: (1)基本整型(类型关键字为int)。(2)短整型(类型关键字为short int)o(3)长整型(类型关键字为long int)o(4)无符号整型。无符号型又分为无符号基本整型(unsigned int)、无符号短整型(unsigned short) 和无符号长整型(unsigned long)三种,只能用来存储无 符号整数。上述各类型整型变量占用的内存字节数,随系统而异。 在VC6.0中,一般用4字节表示一个int型变量,且long 型(4字节)int型(4字节)2short型(2字节)。四、实型数
18、据1、实型常量实型常量有两种表示形式:(1)十进制小数形式。in: 1.0, 0. 03, 7.2345 等。(2)指数形式。如:123e3, 4. 567e7 等。实型常量默认为双精度实型常量,在内存中用8个字节保 存。如需表示为单精度实型常量,可在其后添加后缀千或者 F,在内存中占据4个字节,以加快计算机的处理速度。如 1.0表示一个双精度实型常量,而1. OF表示单精度实型常量。2、实型变量实型变量分为:单精度(fl oat)、双精度(double) o单精度:其类型说明符为float单精度说明符双精度:double双精度说明符。在VC中单精度实型占 4个字节(32位)内存空间,其数值范
19、围为3. 4E-383. 4E+38, 只能提供七位有效数字。双精度型占8个字节(64位)内 存空间,其数值范围为1.7E-3081.7E+308,可提供16位 有效数字。运算符和表达式1、概念(1)运算符运算符是表示各种运算的符号。按运算对象(操作数)的个数,运算符可分为单目、双 目和多目等三类。(2)表达式由操作数和运算符组成的符合C语言语法的式子称为表达式。in: 1+2a1.23x&y2、运算符的优先级与结合性(1)优先级优先级指当一个表达式中有多个不同的运算符时,应执行 的运算的顺序。优先级高的先执行,优先级低的后执行。(2)结合性结合性指当一个表达式中有多个优先级相同的运算符时,
20、应执行的运算顺序,分为左结合性和右结合性两种。3、运算符使用规则(1)先看优先级,再看结合性;(2)可使用()避免二义性;(3)多个()嵌套使用时,先执行内层()。题目:求表达式的值1-2/3* (4+5) %6)结果为:-1五、算术表达式1、基本算术运算符+ (正)(3) )+ (加法运算符。如3+5)(4) 法运算符。如5-2)(5) (乘法运算符。如3*5)/ (除法运算符。如5/3, 5. 0/3)% (模运算符或求余运算符)。除了正、 负值运算符为单目运算符外,其它都是双目运 算符。说明:(1)两个整数相除的结果为整数,如5/3的结果为1, 舍去小数部分。但是如果除数或被除数中有一个
21、为负值,则 舍入的方向是不固定的,多数机器采用“向0取整”的方法 (实际上就是舍去小数部分,注意:不是四舍五入)。(2)如果参加运算的两个数有一个为实数,则 结果为double型,因为所有实数都按double型进行计算。(3)求余运算符,要求两个操作数均为整型,结果为 两数相除所得的余数。求余也称为求模。2、算术表达式算术表达式:用算术运算符和括号将运算对象(也称操 作数)连接起来的、符合C语法规则的式子,称为算术表达 式。运算对象可以是常量 变量 函数等。如:a*b/c7.5+ aC语言算术表达式的书写形式与数学表达式的书写形式 有一定的区别:(1) C语言算术表达式的乘号(*)不能省略。例
22、如: 数学式b24ac,相应的C表达式应该写成:b*b-4*a*c。(2) C语言表达式中只能出现字符集允许的字符。例如, 数学nr2相应的C表达式应该写成:Pl*r*r。(其中PI是已 经定义的符号常量)(3) C语言算术表达式不允许有分子分母的形式。例 如,(a+b) / (c+d) o(4) C语言算术表达式只使用圆括号改变运算的优先顺 序(不要指望用 口)。可以使用多层圆括号,此时左右括 号必须配对,运算时从内层括号开始,由内向外依次计算表 达式的值。六、赋值表达式1、基本赋值运算符和表达式二:将右边的表达式的值赋给左边的变量。赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。一般
23、形式:变量赋值符表达式使用注意:(1)赋值运算符左边必须是变量,右边可以是常量、变 量、函数调用或常量、变量、函数调用组成的表达式。例如:x=10 y=x+10尸func()都是合法的赋值表达式。(2)赋值符号“二”不同于数学的等号,它没有相等的含 义。例如:C语言中x=x+1是合法的(数学上不合法),它的含 义是取出变量x的值加1,再存放到变量x中。(3)赋值表达式的值等于左边变量的值。(4)赋值运算符的优先级只高于逗号运算符,为右结合 性。2、复合赋值运算符和表达式在赋值符“二”之前加上某些运算符,可以构成复合赋 值运算符,复合赋值运算符可以构成赋值表达式。C语言中 许多双目运算符可以与赋
24、值运算符一起构成复合运算符, 即:+二,-二,*二,/二,=,=, =, &二,I 二二二复合赋值表达式一般形式:变量X双目运算符二表达式)等价于:变量=变量X双目运算符 表达式例如:n+=1 等价于n=n+1x*=y+1 等价于 x=x*(y+1)七、自加、自减运算符自增运算使单个变量的值增1 ,自减运算使单个变量的值 减1。自增、自减运算符都有两种用法:1、前置运算一运算符放在变量之前:+ +变量、一一 变量先使变量的值增(或减)1 ,然后再以变化后的值参与其 它运算,即先增减 后运算。2、后置运算运算符放在变量之后:变量+ +、变量变量先参与其它运算,然后再使变量的值增(或减)1 , 即
25、先运算、后增减。使用说明:(1)自增、自减运算,常用于循环语句中,使循环控 制变量加(或减)1 ,以及指针变量中,使指针指向下(或 上)一个地址。(2)自增、自减运算符,不能用于常量和表达式。例如,5+、一(a+b)等都是非法的。(3)在表达式中,连续使同一变量进行自增或自减运 算时,很容易出错,所以最好避免这种用法。 八、逗号运算符和表达式C语言提供一种用逗号运算符连接起来的式子, 称为逗号表达式。逗号运算符又称顺序求值运算符。其一般形式为:表达式1 , 表达式2, 表达式n例如:3+5, 6+8其求解过程为:自左至右,依次计算各表达式的值,“表 达式n”的值即为整个逗号表达式的值。例如,逗
26、号表达式“a=3 * 5, a * 4的值二60:先 求解a = 3*5,得a=15;再求a * 4 = 60,所以逗号表达 式的值二60。又例如,逗号表达式“(a=3 * 5, a * 4), a + 5” 的值二20:先求解a = 3*5,得a=15;再求a * 4=60;最 后求解a + 5=20,所以逗号表达式的值二20。九 类型转换在C语言中,整型、实型和字符型数据间可以混合运算 (因为字符数据与整型数据可以通用)。如果一个运算符两侧的操作数的数据类型不同,则系统 按“先转换 后运算”的原则,转换的方法有三种:自动转 换(隐式转换);赋值转换和强制转换。1自动转换(隐式转换)自动转换
27、发生在不同类型数据进行混合运算时,由编译 系统自动完成。转换规则:, double float高tflongfunsignedf低 int - char,short(D 类型不同,先转换为同一类型,然后进行运算。(2)图中纵向的箭头表示当运算对象为不同类型时转 换的方向。可以看到箭头由低级别数据类型指向高级别数据 类型,即数据总是由低级别向高级别转换。(3)图中横向向左的箭头表示必定的转换(不必考虑 其它运算对象)。如字符数据参与运算必定转化为整数, float型数据在运算时一律先转换为双精度型,以提高运算 精度(即使是两个float型数据相加,也先都转换为double 型,然后再相加)。2、
28、赋值转换赋值运算时,当赋值运算符两边数据类型不同时,将由 系统自动进行类型转换。转换原则是:先将赋值号右边表达式类型转换为左边变 量的类型,然后赋值。(1)将低级别数据赋给高级别变量时,其值一般不会改变。(2)将高级别数据赋给低级别变量时,采取截断法, 如高级别数据大于低级别数据的取值范围时,会导致错误。(3)将实型数据赋给整型变量时,只取其整数部分(不 四舍五入)。3、强制转换强制转换是通过类型转换运算来实现。一般形式:(类型说明符)表达式功能:把表达式的结果强制转换为类型说明符所表示的 类型。例如:(int)a 将a的结果强制转换为整型量。(i nt) (x+y)将x+y的结果强制转换为整
29、型量。(float)a+b将a的内容强制转换为浮点数,再与 b相加说明:(1)类型说明和表达式都需要加括号(单个变量可以 不加括号)(2)无论隐式转换,强制转换都是临时转换,不改变数据本身的类型和值。第三章顺序结构为了让计算机处理各种数据,首先就应该把源数据输入 到计算机中;计算机处理结束后,再将目标数据信息以人能 够识别的方式输出。C语言中没有专门的输入输出语句,而 是通过调用库函数来实现。因此,在使用库函数输入和输出之前,需要使用“文件 包含预处理命令将标准输入输出头文件“stdio.h”包含 到程序中,格式如下:#include 一、数据输出用于输出的库函数很多,这里将格式输出函数pri
30、ntf 作为重点进行介绍。1、printf函数的一般调用形式printf函数用于在标准输出设备(显示器)上将数据按指定格式输出。其调用格式如下:pr intf (格式控制,输出项1,输出项2,)例:printf( ua=%d, b=%c,x, y);(1)格式控制(如上例中“a=%d, b二%c)包括在一对双 引号中,分为两个部分:格式说明:由%+格式符组成的格式字符串,指定数据输 出的类型(如上例中1和加)。普通字符:将字符按原样输出。(如上例中和,b=)格式控制部分中,除了格式说明之外的所有字符按原样输 出。(2)输出项(如上例中x和y):列出需要输出的一个或多个常量、变量或表达式,各参数
31、 之间用,隔开。2、printf函数中常用的格式说明每一个格式说明通常以%开头,以一个格式字符作为结 束,其中可包括“宽度说明”、左对齐符号“-”等。(1)格式字符不同类型的数据必须使用不同的格式字符输出。常 用格式字符如下:Be格式符按字符型数据输出。d或i格式符按十进制整型数据输出。hd表示按短整型输出,Id 表示按长整型输出。格式符按八进制整型数据输出。输出的八进制数不会带前 导0。如8输出10,如015输出15ox格式符按十六进制整型数据输出。输出的十六进制数不带 前导Oxo如22输出16, 0x12输出12, 025输出15。 格式符按无符号十进制整型数据输出。(6)f格式符按小数形
32、式的实型数据输出。0e格式符按指数形式的实型数据输出。会自动转换成为格式化 指数形式,小数部分位数默认为6,指数部分位数默认 为3,不足在左端补0。如 12. 3456 输出 1.234560e+001g格式符由系统决定是采用千还是e格式符输出,原则为宽度最小。0s格式符输出一个字符串。Qp格式符输出变量的内存地址。O%表示输出一个。(2)宽度说明可通过在格式符前加一个整型常量说明数据的输出 宽度,如指定宽度小于数据的实际宽度,则按实 际宽度输出;否则,按指定宽度输出,左补空格。例:int a=12345;printf( u%d, %3d, %7d,, a, a, a);输出:12345,12
33、345,12345对于输出实型数据的f和e格式符,可通过加i. j 来控制输出宽度。i指定输出数据的总宽度(f 包括小数点,e包括e和符号);j指定小数位 数。如j小于实际位数,则按j位输出,最后一位 四舍五入;如j大于实际位数,则在最后补0。 例:double x=12. 3456;pr i ntf ( u%f, %3. 3f, %10. 3f, %10. 5f, x,X);12, 346,输出:12. 3456, 12, 346,12. 34560pr i ntf ( u%e, %3. 3e, %12. 3e, %18. 8en , x, x, x ,x);输出:1.234560e+001
34、,1.235e+001r1.235e+001,1.23456000e+001也可只使用. j指定小数部分宽度。.0表示舍去 小数部分和小数点。例:pr i ntf ( %. 3f, %. 2e, %. Of, %. Oe” , x, x, x, x); 输出:12.346, 1.23e+001,12,1 e+001使用s格式符输出字符串时,也可使用i. j形式 控制输出宽度。i指定输出总宽度,j指定输 出字符串的前j个字符。例:String s二 abcdef” ;pr i ntf ( %s, %2s, %3. 2s, %8. 4s, %. 3s”,s, s, s, s, s);输出:abcd
35、ef, abcdef, ab, abed, abc(3)左对齐符号输出数据默认右对齐,可在%和宽度之间加“-” 实现左对齐。例:i nt a=123;printf( u%-5d, %5d, %dJ, , a, a, a);输出:123 , 123, 123(4)使用注意格式说明的个数和类型应当与输出项一至,如格式 说明的个数少于输出项,则多余的输出项将不进 行输出;反之则会输出一些不确定值。格式控制中,除了格式说明之外的所有字符都会照 原样输出。二、数据输入1、scanf函数的一般调用形式scanf ()函数是用来从外部输入设备向计算机主机输入 数据的。一般格式:scanf (格式控制,输入项
36、首地址表);格式控制与printf ()函数的相似,但输入时格式控制部 分如果有普通字符,必须一起输入。输入项首地址表由若干个输入项首地址组成,相邻2个输入项首地址之间,用逗号分开。输入项首地址表中的地址,可以是变量的首地址,也可 以是字符数组名或指针变量。变量首地址的 表ZF方法:&变量名其中是地址运算符。例如,&radius是指变量radius 在内存中的首地址。2、scanf函数常用的格式说明scanf函数的格式说明符与printf函数相同,但以下情 况需注意:(D格式说明与输入地址个数和类型应当一致。如格式 说明多于地址个数,则输入的多余数据作废;反之,多余的 变量不能得到正确的输入值
37、。(2)输入short型数据,应使用hd;输入long型数据, 应使用ld;输入double型数据,应使用肝。(3)输入数据时,可以指定总宽度,但实型数据不能限 制输入的小数位数。3、scanf函数的使用说明(1)输入数值数据输入的数据之间必须用空格或回车等间隔符隔开。例:int a, b, c;scanf ( %d%d%d,&a,&b,&c);输入可以为:1 2 3也可以为:13(2)指定输入宽度可以指定数据的宽度,系统将按指定宽度读取数据。例:scanf ( %3d%2d%4d,&a,&b,&c);如输入:1234567890则 a 为 123, b 为 45, c 为 6789(3)跳过
38、输入数据可通过在%和格式字符间加入*以跳过某个输入的数据。例:scanf ( %d%*d%d%d,&a, &b, &c);如输入:1 2 3 4则a为1, b为3, c为4。(4)格式控制中的普通字符输入格式控制中除了格式说明之外,任何普通字符在输入时 必须按原样输入。例:scanf ( ux=%d, y=%d”,a, b);则必须输入:x=1, y=2三 C语言基本语句1、流程控制语句(1)选择语句if(条件);elsesw i tch语句(2)循环语句for (条件)while (条件);do while (条件);(3)转移语句break;中止执行switch语句或循环语句cont i
39、nue;中止本次循环return;从函数中返回控制权及返回值goto;无条件跳转2、表达式语句由表达式加上分号(;)构成的语句。如:a二 1 ;a二b+c;i+;x=max (a, b);3、函数调用语句调用函数,完成相应操作功能的语句。如:pr i ntf ( very good!,5 );4、空语句不执行任何操作。5、复合语句用一对。括起来的多条语句,可作为一条语句使用,也称为语句块;其中可包含声明部分。例如:(X二y+z;a=b+c;pr i ntf ( u%d %d”,x,a);是一条复合语句。我们可以把它看成是一条语句。注意:复合语句内的各条语句都必须以分号结尾, 在括号“”外不能加
40、分号。第四章选择结构一、关系运算和逻辑运算1、C语言中的逻辑值在C语言中,运算符的操作数以非。表示“真二以0 表示“假:表达式结果以1表示“真”,以。表示“假工2、关系运算符和关系表达式所谓“关系运算”实际上就是“比较运算”,即将两个 数据进行比较,判定两个数据是否符合给定的关系。例如,如 b”中的表示一个大于关系运算。如 果a的值是5, b的值是3,则大于关系运算的结果为 “真”,即条件成立;如果a的值是2, b的值是3,则大于 关系运算“”的结果为“假二即条件不成立。(1)关系运算符关系运算符的操作数可以是整型 字符型和实型,而结果是 整型(。和1)。C语言提供6种关系运算符:(小于),
41、(大于),=(大于或等于),=(等于),!二(不等于)注意:在C语言中,“等于”关系运算符是双等号“二二”, 而不是单等号“二”(赋值运算符)。优先级:(1)在关系运算符中,前4个优先级相同,后2个也相 同,且前4个局于后2个。(2)与其它种类运算符的优先级关系关系运算符的优先级,低于算术运算符,但高于赋值运算 符。(2)关系表达式所谓关系表达式是指,用关系运算符将两个表达式连接 起来,进行关系运算的式子。例如,下面的关系表达式都是合法的:ab, a+bc-d, (a=3) = b, (ab) = = (bc)例如,假设 num1=3, num2=4, num3=5,则:(1) num1num
42、2 的值二0。(2) (num1 num2) !=num3 的值二1。(3) num1 num2=0) & (x10)的值为“真,(x5)的值为“假工(2)逻辑表达式所谓逻辑表达式是指,用逻辑运算符将1个或多个表达 式连接起来,进行逻辑运算的式子。在C语言中,用逻辑表 达式表示多个条件的组合。例如:(year%4=0) & (year%100! =0) | | (year%400=0) 就是一个判断一个年份是否是闰年的逻辑表达式。(3)优先级及结合性:逻辑非的优先级最高,逻辑与次之,逻辑或最低,即:!(非)T & (与)T | | (或)逻辑非的结合性为右结合性,其他两种为左结合性。(4)短路
43、原则:对于逻辑与运算,如果第一个操作数被判定为“假”, 系统不再判定或求解第二操作数。对于逻辑或运算,如果第一个操作数被判定为“真二 系统不再判定或求解第二操作数。例如:假设n2、n3、n4、x、y的值分别为1、2、3、 411,则求解表达式 u (x=n1n2)&(y=n3n4) n 后,x 的 值变为0 ,而y的值不变,仍等于1 !二、if选择结构1、if语句格式:if(条件)功能:如果条件为真(非0),执行语句; 否则,直接执行之后的语句。2、ife I se 语句格式:if (条件)语句1;e I se语句2;功能:如果条件为真(非0),执行语句1;否则,执行语句2。3、ifeIse if 语句格式:if (条件1)语句1;else if (条件 2)语句2;e I se语句3;功能:如果条件1为真(非0),执行语句1 ; 否则如