二级c语言全部授课课件_第1页
二级c语言全部授课课件_第2页
二级c语言全部授课课件_第3页
二级c语言全部授课课件_第4页
二级c语言全部授课课件_第5页
已阅读5页,还剩352页未读 继续免费阅读

下载本文档

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

文档简介

1、全国计算机等级考试教案C语言程序设计目录第一章 程序设计基础概念第二章 c程序设计的初步知识第三章 顺序结构第四章 选择结构第五章 循环结构第六章 字符型数据第七章 函数第八章 地址和指针第九章 数组第十章字符串第十一章 函数的进一步讨论第十二章 标示符的作用域和存储类型第十三章 编译预处理和动态内存分配第十四章结构体、共用体和用户定义类型第十五章 位运算第十六章 文件第十七章 上机指导第一章 程序设计的基本概念目标了解C程序的一些基本概念了解程序、算法和流程图的概念了解C 程序的三大基本结构掌握 C 程序的编译和运行过程使用Visual C+ 6.0 创建 C程序 1.1程序和程序设计 一、

2、基本概念1.程序(program):为解决某一问题而设计的一系列指令,能被计算机识别和执行。2.程序设计语言:人与计算机打交道时交流信息的一类媒介和工具,由语句(statement)组成。银行带上存折去银行 3. 将存折和取款单递给银行职员 2.填写取款单并到相应窗口排队4.银行职员办理取款事宜 日常生活中的程序5. 拿到钱并离开银行 程序:为解决某一问题而设计的一系列指令,能被计算机识别和执行。什么是语句?做口述笔记键入信函的内容发送传真口述2.信函_3.传真语句被逐条执行程序员老板秘书3、语句:组成程序的基本单位程序4.机器语言:(machine language)计算机直接使用的二进制形

3、式的程序语言或机器代码。 5.汇编语言:(assembler language)一种面向机器的用符号表示的低级程序设计语言。相当于机器指令的助记符号,与机器语言很接近。6.高级语言:(highlevel language)是易为人们所理解的完全符号化的程序设计语言。 7.源程序:用户用高级语言编写的程序称为,C源程序文件名字后缀一般必须为“.c“。 8.目标程序:由二进制代码组成的程序 9.编译程序:具有翻译功能的软件10.连接(linker):将目标模块和其它一些必要的功能模块装配在一起,生成可执行文件,执行程序文件后缀为.exe。算 法 计算长方形的面积问题:1.接收用户输入的长方形长度和

4、宽度两个值;2.判断长度和宽度的值是否大于零;3.如果大于零,将长度和宽度两个值相乘得到面积,否则显示输入错误;4.显示面积。算法算法:解决问题的具体方法和步骤流程图流程图是算法的一种图形化表示方式。流程图直观、清晰,更有利于人们设计与理解算法。它使用一组预定义的符号来说明如何执行特定任务。 开始/结束处理输入/输出判断/分支连接符流程线C 语言简介编程语言低级高级CC 语言是贝尔实验室的 Dennis Ritchie 在1973 年设计的。C 最初用于开发系统级程序。在微机上,有许多性能良好的商品C 语言系统可用。包括Turbo C、Borland C/C+;Microsoft Visual

5、 C/C+ 等。 结构化的程序设计语言:层次清晰,便于按模块化方式组织程序,易于调试和维护 语句简洁:学习时入门相对容易,C 语言很好地总结了其他语言提出的程序库概念 功能强大:既可用于系统软件的开发,也适合于应用软件的开发。 移植性好:只要对这种语言稍加修改,便可以适应不同型号机器或各类操作系统。 特点二、三大基本结构1.顺序结构:(第三章)语句1语句2语句32.选择结构判断表达式满足语句1语句2不满足3.循环结构判断表达式循环体满足不满足第四章内容第五章内容高级语言的编译和执行高级编程语言中的指令哎呀 我理解不了编译程序/解释程序可以 我现在可以理解了高级语言由编译/解释程序转换为机器代码

6、这种机器代码计算机可以理解计算机硬件高级语言程序 编译程序/解释程序(编译器/解释器) 机器代码编译和执行C程序C 源程序目标文件可执行程序C语言函数库编译连接源程序:是用户创建的文件,以“.c”为文件扩展名保存 目标文件:是编译器的输出结果。这类文件的常见扩展名为.obj” 0 1 形式头文件:含有函数的声明和预处理语句,用于帮助访问外部定义的函数。头文件的扩展名为“.h”。 可执行文件:是连接器的输出结果。可执行文件的扩展名为“.exe”。 演示下面例题演示:使用Visual C+ 6.0编辑和运行程序的过程#include“stdio.h”main()int a,b,c;a=4;b=10

7、;c=a+b;printf(“%dn”,c);总结 2-1算法就是解决问题的具体方法与步骤流程图是算法的一种图形化表示方式程序是为让计算机完成某项任务而编写的逐条执行的指令序列C语言的特点包括:结构化的程序设计语言、语句简洁、功能强大、移植性好总结 2-2C程序编写完成后,首先需要通过编译转换成目标文件,然后通过连接创建可执行程序,最后才可以执行该程序可以使用Visual C+ 6.0 IDE编辑和运行C程序 程序的三大结构是1、顺序结构 2、选择结构 3、循环结构第二章C程序设计的初步知识(一)回顾1、程序是为执行一项任务而编写的有序指令集2、编译器将源程序转换成机器能理解的程序3、连接器用

8、于连接相关的目标文件以生成可执行程序问:1、C的源程序是后缀是什么? 2、目标文件的后缀是什么? 3、程序的三大结构是什么?目标理解C程序的基本结构理解变量和常量的含义熟悉基本数据类型 :int、char、float 和 doubleC语言的基本结构#include void main() printf(Hello Worldn);以 # 开始的语句称为预处理器指令#include语句不是必需的,但是,如果程序有该语句,就必须将它放在程序的开始处以.h为后缀的文件被称为头文件,可以是 C 程序中现成的标准库文件,也可以是自定义的库文件。stdio.h文件中包含了有关输入输出语句的函数 main

9、() 函数是 C 程序处理的起点。 main() 函数可以返回一个值,也可以不返回值。如果某个函数没有返回值,那么在它的前面有一个关键字 void在函数定义的后面有一个左大括号,即 它表示函数的开始,后面是函数的主体大括号也可以用于将语句块括起来在函数定义的结尾处有一个右大括号,即 在屏幕上产生一行输出“Hello world”,并换行(n) 函数主体中的每个语句都以分号结束。C 程序中的一个语句可以跨越多行,并且用分号通知编译器该语句已结束。 C 程序中的注释#include void main() printf(Hello Worldn);/ 此程序用来打印Hello World 单行注释

10、C 程序可以包含注释,以便向读者作一般说明编译器并不处理这些注释 /* 此程序由 编写 * 用来打印输出“Hello World”*/多行注释/* *作者:创建日期:描述:* */#include void main() 注释在程序中添加注释是一个好的编程习惯,可以增强程序的可读性。说明: 1.必须使用main作为主函数名 ,程序是从主函数开始执行,具有唯一性 注意后面不能带“ ;” 2.函数体用左花括号“”开始,用右花括号结束“” 3.用分号“;”作为语句结束的标志 注意是语句的结束标志 4.注释部分:必须用/*和*/括起来 必须成对出现, ”/“和”*“之间不能有空格 注释可以出现在程序的

11、任何地方 注释部分对程序运行不起作用 在注释之间不可以再嵌套/* */ 5,预处理器指理必须以”#“开头,但不能加分号/ * 此程序由 编写 * 用来打印输出/*“Hello World”*/ * /#include ;void main(); printf(Hello Worldn)什么是标识符 标识符:在C语言中,有许多符号的命名,如变量名、函数名、数组名等,都必须遵守一定的规则,按此规则命名的符号称为标识符。在 C 语言中,标识符命名需要遵循一定的规则有效名称principalcost_pricemarks_3lastnamecity无效名称123ratecurrency$discoun

12、t%zip code标识符的命名规则:标识符名可以由字母、数字和 _(下划线)组合而成标识符不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等标识符必须以字母或 _(下划线)开头标识符不能包含空白字符(换行符、空格和制表符称为空白字符)C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作标识符名C 语言区分大小写,因此标识符price 与标识符PRICE 是两个不同的标识符一、标识符1.分类:关键字:c语言规定了一批标识符,他们在c语言中代表着固定的含义,不能另做它用auto break case char const continue defa

13、ult do double else enum extern float or goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while预定义标识符:c语言语法允许用户把这类标识符另做它用,但是这些标识 符将失去系统规定的原意。比如:printf define用户标识符:由用户根据需要定义的标识符称为用户标识符程序指令常 量标识符关键字常量运算符分隔符等常量是在程序中保持不变的量常量用于定义具有如下特点的数据:在程序中保

14、持不变在程序内部频繁使用需要用比较简单的方式替代某些值二、常量1.分类:整型常量、实型常量、字符常量、字符串常量三、用定义一个符号名的方法来代表一个常量例2.2 计算圆的面积#include “stdio.h”#define PI 3.14159 /*定义符号名PI为3.14159*/main() float r; double s; r=5.0; s=PI*r*r; Printf(“s=%fn”,s); (演示一下)说明: 1、在整型常量的后面加一个字母L(大小写均可)这个常量就成为长整型常量在内存中占四个字节。 2、 无符号整数在数的未尾应该加上字母后缀u(大小写均可),若是长整型无符号整

15、型常量,则可以加后缀lu或LU。 3、常量的名子一定要大写。 4、定义常量的语句后面不能加“;”。 2.3整 型 数 据一、整型常量整数的表示(1)十进制表示:用一串连续的数字表示十进制数。 例:345 31684 0 -23456 只有十进制可以是负数。(2)八进制表示:以数字0开头的一个连续数字序列,序列中只能有0-7这八个数字。 例:045、06745l 而019、423、 -078是非法的八进制数。(3)十六进制表示:以0X或0 x开头的连续数字和字母序列,序列中只能有0-9、A-F和 a-f这些数字和字母,字母a、b、c、d、e、f分别对应数字10、11、12、13、14、15,大小

16、写均可。二、整型变量可以分为基本型、短整型、长整型和无符号型四种名称全称类型说明符缩写类型说明符字节范围整型intint4-2,147,483,648 至 2,147,483,647无符号整型unsigned intunsigned40 至 4,294,967,295短整型short intshort2-32768 至 +32767无符号短整型unsigned short intunsigned short20 至 65,535长整型long intlong4-2,147,483,648 至 2,147,483,647无符号长整型unsigned long intunsigned long40

17、 至 4,294,967,295声明和使用变量声明变量:Datatype variablename;定义时初始化变量:Datatype variablename = value;定义后初始化变量:variablename = value;给变量赋值,除了给一个直接的值以外,还可以通过计算获得。演示二、变量1.定义:在程序的运行过程中,值可以改变的量2.说明: (1)每个变量有一个名字作为标识,它是属于用户标识符 (2)变量必须先定义后使用(定义后还得赋值才能用)习题:1.以下选项中不合法的用户标识符是 ( )A._123 B.printf C.A$ D.Dim2.可在c程序中用作用户标识符的一

18、组标识符是 ( )A.void B.as_b3 C.For D.2c define _123 _abc DO WORD If (大写) case SIG2.4实型数据一、实型常量1.小数形式:由数字和小数点组成,必须有小数点。 例:4.23、0.15、.56、78.、0.02.指数形式:以幂的形式表示,以字母e或E后跟一个以10为底的幂数。 字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数,字母e或 E的前后及数字之间不得有空格(实型变量也遵守这个规则)。 例:2.3e5、500e-2、.5E3、4.5e0,而e4、.5e3.6、.e5、e都不合法二、实型变量1.单精度:关键字为

19、float 2.双精度: 关键字为 double 定义的一般形式 float a,b,c; 定义的一般形式 double a,b,c; float a=4.5,b=5.6; double a=5.9,b=45.36 注: (1)占四个字节 32位 注: (1)占八个字节 64位 (2)7位有效数字 -10381038 (2)1516位有效数字 -1030810308 说明: 1.在内存中,实数一律以指数形式存放 2.在内存中,整数可以精确存放,实型数据存在误差 3.实型常量不分float和double 一个实型常量可以赋给一个float型或者 double型变量 4.定义变量的同时可以赋初值三

20、、课堂练习1.下面四个选项中,那一组全是不合法浮点数的选项是A.160. B.123 C.-.18 D.-e3 0.12 2e4.2 123e4 .234 e3 .e5 0.0 1e3 2.下面四个选项中,均是合法浮点数的选项是A.+1e+1 B.-.60 C.123e D.-e3 5e-9.4 12e-4 1.2e-.4 .8e-4 3e2 -8e5 +2e-1 5.e-0总结:1、 c语言是区分大小写的2、常量的分类:整型常量、实型常量、字符常量、字符串常量3、变量的分类:1、整型变量:基本型、短整型、长整型和无符号型四种 2、实型变量分类:单精度、双精度4、指数形式:字母e或E之前必须要

21、有数字,且字母e或E后面的指数必须为整数,字母e或E的前后及数字之间不得有空格(实型变量也遵守这个规则)第二章 数值转换、算术运算符(二)回顾1、c语言是区分大小写的2、常量在程序中不能被更改,而变量在程序中可以被更改(定义常量的关健字是什么?)3、标识符只能由字母、数字和下划线组成,且第一个字符不能为数字4、整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型5、实数分为单精度浮点型和双精度浮点型(表现方式为两种,1、小数 2、指数)6、八进制表示为076 十六进制表示为0X或0 x目标理解二进制、八进制、十进制、十六进制之间的转换理解原码、补码及如何计算熟练使用算术运算符理解类

22、型转换改错: #include stdio h#define PI 3.14;Main int a,b,c; a=1.2; b=3.4; c=a*b; printf(“c的值是:%f”,c) 选择题:1、以下选项中正确的变量名是a*123 b)_ yyAcd d)yy&2、以下那个是八进制的表示方法?0Xf b)80080 d)0763、以下那些是正确的实型常量?a) 0.73e 2 b)0.72e0.2c)-65.55 d)0四、整数在内存中的存储形式(包括一下各种进制的转换)位(bite):计算机里最小的存储单元字节(byte):8个二进制组成一个字节字(word):若干个字节组成一个字1

23、6个二进制位 2个字节最高位最低位0表示正数1表示负数一、正整数以原码形式存储 例 正整数5的二进制代码:0000000000000101二、负整数1.以补码形式存储反码:1和 0 互换补码:对原码取反加1(符号位不参加取反)例 负整数-5的二进制代码:11111111111110112.补码形式存储的二进制转换成负整数(1)对补码取反 (2)转换成十进制(3)根据最高位加负号(4)对所求数减11111111111111011-5的补码1000000000000100取反转换成十进制-4减1-5三、无符号整数不在是符号位 参与数值的大小中算术运算符算术 一元 二元操作数操作数运算符二元运算符+

24、-*/%#include void main() int a = 5, b = 3, c = 25, d = 12; float qu; int re,in,de; /* 使用算术运算符 */ qu = a / b; / 除法 re = a % b; / 求余 in = +c; de = -d; printf (商为 %fn,qu); printf (余数为 %dn,re); printf (“加 1 后为 %dn,in); printf (减 1 后为 %dn,de);算术运算符示例输出:商为 1.000000余数为 2加 1 后为 26减 1 后为 11类型转换自动类型转换(双目运算符两边

25、运算数的类型必须一致,当不一致时自动转换 )原则:把表示范围小的类型的值转换到表示范围大的类型的值(举例a+1) short int long float double说明:%取模或求余运算符1.运算对象必须为整型2.符号与被除数相同例如:-5%3 值为-2 /两端为整数时,它取整,有一端为实数时,他就变成了除二、强制类型转换1.一般形式: (类型名)(表达式)2.作用:将一个表达式转换所需类型说明: 1. (类型名)(表达式)括号不能省略(int)(x+y)(int)x+y对x、y整体只对x 2.强制类型转换运算得到一个中间变量,不改变原来变量的类型。 四、课堂练习 1. 已知 a=7, b

26、=3, x=3.5, y=2.5 (1). x+a%3*(int)(x+y)%2/4 (2). (float)(a+b)/2+(int)x%(int)y三、运算符的优先级、结合性和算术表达式1.算术运算符的优先级( )、 +、 -、 *、 /、 %、 +、 -高 底同 级同 级同 级单目双 目2.算术运算符和圆括号的结合性 正负运算符: 右左其它算术运算符:左右Sum=num1+num2操作数运算符表达式Z = ( X * 2 ) + ( 5 Y ) 操作数操作数表达式表达式表达式运算符赋 值 表 达 式一、赋值运算符和赋值表达式 1. 赋值运算符和赋值表达式 赋值运算符:= 赋值表达式:由赋

27、值运算符组成的表达式 形式: 变量名=表达式 说明:1.优先级倒数第二,结合方向 右 左2.是一种赋予的关系而不是等价的关系 x=5 y=8 怎么样交换x、y中的数值?3.赋值运算符的左侧只能是变量不能是表达式4.赋值号右边的表达式也可以是一个赋值表达式 a=b=c=5 都为5a=5+(c=6) a=11a=(b=4)+(c=6) 10a=(b=10)/(c=2) 5课堂练习:二、复合赋值表达式 1. 复合赋值运算符: +=、 -=、 *=、 /=、 %=、 =、 &=、 =、 |=(两个运算符之间不能有空格) 将形如: 变量名=变量名+表达式 的表达式 简化成: 变量名+=表达式 的形式a=

28、a+3例:a+=3x*=y+8x=x*(y+8)x%=3x=x%3理解: a+=b移到=右侧=a+b=左侧补变量名a=a+b例:已知变量a=6,计算表达式 a+=a-=a*a 结果为:-60练习: 已知 a=12 求运算后a的值(1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2) n=5(6)a+=a-=a*=a 说明:凡是有赋值运算符参加的运算都是从右往左算一、自加(+)和自减(-)运算符1.作用:使运算对象的值增加1或者减少1 例 i+ i=i+1i- i=i-1 2.使用i+表达式的值:先用后加变量的值: 增加1+i表达式的值:先加后用变量的值

29、: 增加1习题:int a,b; b=3; a=b+; a的值是多少,b的值是多少 a=+b; a的值是多少,b的值是多少习题:int i=10,j=5,b; b=+i-j; printf(b=%dn,b); int i=10,j=5,b; b=i+-j; printf(b=%dn,b);表达式如何计算结果 (num1=5)num2 = +num1;num1 = num1 + 1;num2 = num1;num2 = 6;num1 = 6;num2 = num1+;num2 = num1;num1 = num1 + 1;num2 = 5;num1 = 6;num2 = -num1;num1 =

30、 num1 - 1;num2 = num1;num2 = 4;num1 = 4;num2 = num1-;num2 = num1;num1 = num1 - 1;num2 = 5;num1 = 4;二、逗号运算符和逗号表达式1.定义:用逗号将表达式连接起来的式子 一般形式:表达式1,表达式2,表达式3,,表达式n2.求解过程: 从左到右一个一个求解 ,最后一个表达式的值就是整个逗号表达式的值3.说明: (1)结合方向 左 右(2)优先级最底例如:已知a=3 a=3,a+3 结果:表达式的值为6 b=a+3,a-3 结果:表达式的值为0总结:1、正整数以原码形式存储 2、负整数以补码形式存储3、

31、%取模或求余运算符:1.运算对象必须为整型 2.符号与被除数相同4、双目运算符自动转换原则:把表示范围小的类型的值转换到表示范围大的类型的值5、凡是有赋值运算符参加的运算都是从右往左算6、i+表达式的值:先用后加7、+i表达式的值:先加后用习题:1、表达式13%5的值是多少()a.2 b.3 c.5 d.12、要存储一个双精度浮点型的值,需要()字节的内存空间a.6 b.2 c.4 d.83、表达式a+=a-=a+a的值是多少?已知a=9a.12 b.18 c.-18 d.04、计算机里最小的存储单元是()a. 位 b.字节 c. 单元 d.kb 1、写出程序运行结果 main() int I

32、,j,m,n; i=8;j=10; m=+i; n=j+; printf(“%d,%d,%d,%d”,I,j,m,n);2、写出下列表达式的结果已知:A=3;1、A=A-3,A+32、B=A+3,A-31、写出程序运行结果#include main() int i,j,m,n; float k=2.0; i=8; j=10; m=j/i; n=j/k; printf(%d,%d,m,n);2、写出下列表达式的结果已知:A=3;1、A-=3*6/5;2、A*=6-3;3、A%=7+2;第三章 顺序结构回顾1、算术运算符提供运算功能,包括+、-、*、/、%、+、-2、位(bit):计算机里最小的存

33、储单元3、有符号的变量(以二进制形式表示时)最高位为符号位,1为负数 0为正数。4、正整数以原码形式存储 ,负整数以补码形式存储。5、凡是有赋值运算符参加的运算都是从右往左算目标熟练使用 scanf() 和 printf() 函数3.1赋值语句一、概念: 语 句:是C语言中描述计算过程的最基本单位。由分号 ;结束。 顺序结构:按语句在程序中出现的顺序逐条执行,没有分支、没有转移。二、赋值语句:在赋值表达式的尾部加上一个“;” 就构成了辅助赋值语句也称为表达式语句例如: a=a+b i=i+1,j=9 i+ i-表达式语句 a=a+b; i=i+1,j=9; i+; i-;3.2 数据输出一、基

34、本概念1.输出:把数据从计算机内部送到计算机外部设备上的操作称为“输出 ”2.输入:从计算机外部设备将数据送入计算机内部的操作称为“输入”注意:c语言本身不提供输入和输出语句,但是有输入和输出函数 二、printf函数的一般调用形式1.作用;在终端设备上按指定格式输出2.形式: 表达式 : printf(格式控制,输出项表) 语 句: printf(格式控制,输出项表); 输入/输出函数 (printf/scanf) 用于接受和显示数据或信息#include void main()int num;printf(请输入一个数:);scanf(%d,&num);printf( n%d 的平方为 %

35、d n,num,num*num);输入/输出函数转换字符串转义序列int visitor_count = 150;printf ( %d , visitor_count);printf将一些信息按照指定的格式送到标准输出(显示器) %d visitor_count将按指定的格式显示该变量的值转换字符串说 明%d将参数按整数形式转换输出,对应参数应是int 类型%ld将参数按长整数形式转换输出,对应参数应是long 类型%c输出一个字符,对应参数应该是一个字符%s输出一个字符串,对应参数应该是一个字符串%f将参数按带小数点数形式输出,对应参数应是double 类型,默认情况下精确到 6 位小数i

36、nt visitor_count = 150;printf ( %d , visitor_count);输出结果:150printf 函数int salary = 5500;printf ( %10d , salary);输出结果: 5500输出结果的左边显示了 6 个空格 %10d printf 函数float circumference = 78.53;printf ( %f , circumference);输出结果:78.530000默认情况下精确到六位小数9.4786789; 9.478679printf 函数double mercury_level = 168.2251074;pr

37、intf (%7.2f , mercury_level);输出结果: 168.23宽度,表示所有的数字和小数点所占的位数。不够7位右对齐。 %7.2f 精度(精确到小数点后多少位)如果后面的输出项表比%d多的话,那么系统不提示错误,但变量并不输出,即多出的变量没有结果.3.输出数据所占的宽度 指数部分占5位(如e+002),其中e占1位,正常输出时 以实际长度输出 指数符号占1位,指数占3位。 (1)% 插入整数n 格式符n实际长度 右对齐 左补空格 例: %6dnn:舍掉多余小数 进行四舍五入 小数位数n:在小数的右侧添“0” %8.3f整数位数m:不受n的限制 正常输出g、G :用来指定输

38、出的有效数字d 用来指定输出的数字个数整数位数n实际长度输出字符串:5.2s(代表最长度为5,取二个字符,其余左面三个字符就空格代替,如没有小数那么就全部输出,从左至右的截取。)输出结果:Name: Audrey HepburnMovie: Roman Holiday代码:printf(“Name: Audrey Hepburn n Movie: Roman Holiday”);转义序列允许在输出结果中包括特殊字符转义序列名称描述a 警告产生一则警告。b 退格将光标回退一格。f 换页将光标移到下一页的第一格。n 换行将光标移到下一行的第一格。r 回车将光标移到当前行的第一格。t 水平制表 将光

39、标移到下一个水平制表位置。v 垂直制表将光标移到下一个垂直制表位置。 单引号产生一个单引号。 双引号产生一个双引号。? 问号产生一个问号。反斜线产生一条反斜线。0 空产生一个空字符。scanf(%d,&num);scanf 函数scanf 函数从标准输入(键盘)读取信息,按照格式描述把读入的信息转换为指定数据类型的数据,并把这些数据赋给指定的程序变量。 转换字符串&符号(附在读取的每个变量上)用于指明变量在内存中的位置变量的名称转换字符串参数变量的类型要求的实际输入%dint 十进制数字序列 %ld long 十进制数字序列%f float 十进制数,可以有小数点及指数部分 %lf doubl

40、e 十进制数,可以有小数点及指数部分内存scanffloat tax_rate;scanf ( %f , &tax_rate);tax_rate在内存中分配一块 32 位存储空间存储空间使用名称“tax_rate”标识提示用户输入一个值输入的值存储在变量中(因为 scanf 提供此变量的地址)12.234#include void main() double radius,high,vol; printf(请输入圆柱体底面积的半径和圆柱体的高: ); scanf(%lf%lf,&radius,&high); vol=3.14*radius*radius*high; printf(radius=

41、%7.2f, high=%7.2f, vol=%7.2fn,radius,high,vol);scanf 函数使用示例内存radiushighvol510785请输入圆柱体底面积的半径和圆柱体的高: 5 10radius= 5.00, high= 10.00, vol= 785.00一、Scanf函数的一般调用形式1.作用:是在终端设备上输入数据2.形式: 表达式: scanf(格式控制,输入项表) 语 句 : scanf(格式控制,输入项表); 注意:格式控制必须与你对应的变量的类型相等,否则会出现相不到的数据二、通过scanf函数从键盘输入数据当调用scanf函数从键盘输入数据时,最后一定

42、要按下回车,scanf才能接受从键盘 输入的数据1.输入数值数据“%d%d%d” :用空格、tab、回车做为数据之间的间隔,间隔数量不限 “%d,%d,%d”10,20,30(回车) 正确 10, 20, 30(回车) 正确10 ,20 ,30(回车) 错误“%d , %d , %d” 10,20,30(回车) 正确 10, 20, 30(回车) 正确10 ,20 ,30(回车) 正确2.指定数据输入的宽度3.跳过输入数据的方法 :在%和格式符之间加*4.输入的数据少于scanf函数要求输入的数据时,scanf将等待输入,直到满足要求或 遇到非法字符5.输入的数据多于scanf函数要求的数据,

43、多余的数据将留在缓冲区作为下一次 输入操作的输入数据3.4复合语句和空语句 一、复合语句1.定义:用一对花括号把若干语句括起来构成一个语句组2.注意: (1)花括号内语句的数目不限 (2)里面可以有定义语句 (3)在花括号外面不能加分号二、空语句 main() ; 总结:1、输出:把数据从计算机内部送到计算机外部设备上的操作称为“输出 ”2、输入:从计算机外部设备将数据送入计算机内部的操作称为“输入”2、 printf() 和 scanf() 函数属于格式输入输出函数3、语句以;结尾 表达式的后面不能有“;”分号(如果有;)就成为语句。4、 ;是空语句第四章 选择结构回顾:1、什么是输入?2、

44、什么是输出?3、输入的命令是什么?4、输出的命令是什么?5、输出一个如下结果:例:已知a=3.1415927;保留3位小数,前面带2空格的。目标熟练使用关系运算符熟练使用逻辑运算符熟练使用多重 if 结构熟练使用嵌套 if 结构熟练使用 switch 结构理解条件运算符的用法关系运算和逻辑运算一、C语言中的逻辑值语言中规定:(1)用0、1 表示逻辑假和真值;语言没有专门的逻辑值,而是用来表示“真”,用表示“假”。(2)任何基本类型的值都可作为逻辑值使用。所有非0的值被当作“真”使用,而0值被当作“假”使用二、关系运算符和关系表达式 1.C语言的关系运算符共种:(大于)= (大于等于)(小于)

45、= != (num3 num4)num=40;num/10 != 2gender = m真假=如果 gender = f如果 gender = m逻辑运算符 运算运算符表达式逻辑“与”&operand1 & operand2逻辑“或”|operand1 | operand2逻辑“非”!operand1 逻辑运算符用于连接一个或多个条件,判断这些条件是否成立逻辑运算符的类型为: 逻辑“与”运算符 &所有学科及格考勤率达到 75%留级留级留级升级YesNoNoNoNoYesYesYes逻辑“与”运算符 &表达式 1表达式 2结果000010100111所有学科及格考勤率达到 75%留级NoNo升级

46、YesYes留级NoYes留级NoYes逻辑“或”运算符 |无法支付可支付可支付可支付YesNoNoNoNoYesYesYes购物帐单信用卡现金信用卡逻辑“或”运算符 |表达式 1表达式 2结果000011101111无法支付NoNo可支付NoYes可支付NoYes可支付YesYes逻辑“非”运算符 !不带伞带伞NoYes天气 NOT 阴天逻辑“非”运算符 !表达式结果1001天气 NOT 阴天真假带伞操作不带伞逻辑运算符总结所有学科及格考勤率达到 75%&天气 NOT 阴天只有当两个条件都为真时结果才为真只要任何一个条件为真时结果就为真对原条件取反,即:如果原条件为假时结果就为真|!优先次序

47、:!(非) &(与)|(或)逻辑运算符中的&和|低于关系运算符,!高于算术运算符说明: (1)a&b&c 只有a为真值时,才有必要去计算b的值, 只有a和b都为 真值的情况下才有必要去计算c的值,只要a 为假值 此时整个表达式已经确定为假值b和c就不在进行计算 (2)a|b|c 只要a为真值,就没必要去计算b和c的值,只有a为假时,才计算b,a和b都为假时,才去计算c短 路 运 算课堂练习:写出下面逻辑表达式的值已知a=3,b=4,c=5;1、a+bc&b=c2、a|b+c&b-c3、!(ab)&c|1 答案:1、0 2、1 3、1解题思想:1、&一面为假就为假,那么b=c(很容易判断出来)2

48、、3、 2题和3题中,只要知道|的级别比& 低,那么最后算它,可|现在一面的值已为真了,那么不管另一侧的结果是多少一定也为真。练习: a=1,b=2,c=3(1)ab (2)bc (3) a+bc (4)a+b (5)abc (6)+ac&b=c(2)a|b+c&b-c(3)!(+ab)&!c|1条件结构 2-1 条件结构就是需要根据不同条件进行判断,然后执行不同的操作简单 if 语句的一般形式为:if () 如果条件为真,if 语句执行一个语句或一组语句; 如果条件为假,则执行 if 语句后面的语句(如果有)。条件结构 2-2 if-else 语句的一般形式为: if () else 如果条

49、件为真,执行 if 后面的一个语句或一组语句; 如果条件为假,则执行 else 后面的语句。# include void main() int num1, num2, sum; printf(n请输入两个数:); scanf(%d %d, &num1,&num2); sum = num1+ num2 ; if(sum 100) printf(n两数的和大于 100 n );简单if语句的示例内存num1num2sum5678134请输入两个数:56 78两数的和大于 100#include void main()int num;printf(n请输入一个整数:); scanf (%d,&num

50、);if(num % 2) = 0)printf(%d 是一个偶数。n,num); elseprintf(%d 是一个奇数。n,num);if-else语句的示例内存num57请输入一个整数:5757 是一个奇数。问题描述:确定用户输入的数字是否可以被5整除,并输出相应的消息。 #include void main() int num; printf(n 请输入一个数:); scanf(%d,&num); if (!(num %5) printf(n 该数能被 5 整除 n ); else printf(n 该数不能被 5 整除 n );请输入一个数:90该数能被 5 整除综合示例1问题描述:

51、接受用户输入的三种商品的价格。如果购买的三种商品中至少有一种商品的价格大于 50 或者三种商品的总额大于 100,则折扣率为15,否则折扣率为,计算并显示用户应付的钱数。 #include void main() float rate1,rate2,rate3; double discount,total; printf(n请输入第一种商品的价格:); scanf(%f,&rate1); printf(n请输入第二种商品的价格:); scanf(%f,&rate2); printf(n请输入第三种商品的价格:); scanf(%f,&rate3); total=rate1+rate2+rate

52、3; if(rate150)|(rate250)|(rate350)|(total100) discount=0.15*total; total=total-discount; printf(n折后总价为:%6.2fn,total); else printf(n总价为:%6.2fn,total); if(rate150)|(rate250)|(rate350)|(total100)输出:请输入第一种商品的价格:34请输入第二种商品的价格:42请输入第三种商品的价格:38折后总价为:96.90综合示例2问题描述: 判定给定的年份是否为闰年。提示:闰年的判定规则为:能被 4 整除但不能被 100

53、整除的年份,或能被 400 整除的年份。 #include void main() int year; printf(n 请输入年份:); scanf(%d,&year); if(year % 4 =0 & year % 100 != 0) | (year % 400 = 0) printf(n %d 年是闰年 n , year); else printf(n %d 年不是闰年 n , year);综合示例3请输入年份:20052005 年不是闰年问题描述:输入一个5位数,判断它是不是回文数。例如:12321是回文数,个位与万位相同,十位与千位相同。 #include void main()l

54、ong ge,shi,qian,wan,x;printf(n 请输入一个五位整数:);scanf(%ld,&x);wan=x/10000; /分解出万位数qian=x%10000/1000; /分解出千位数shi=x%100/10; /分解出十位数ge=x%10; /分解出个位数if (ge=wan & shi=qian) /*个位等于万位并且十位等于千位*/printf(n 这个数是回文数n);elseprintf(n 这个数不是回文数n);综合示例4输出:请输入一个五位整数:45654这个数是回文数不能上菜有胡萝卜吗?有黄瓜吗?制作胡萝卜沙拉有多重条件判断有可以上菜制作黄瓜沙拉制作黄瓜沙拉

55、没有没有开始做黄瓜沙拉做胡萝卜沙拉有没有不能上菜可以上菜是否有胡萝卜有没有是否有黄瓜?结束多重if要处理多重条件判断的情况,需要使用多重条件结构多重条件结构嵌套 ifswitch结构多重条件结构if (表达式1)语句1;else if (表达式2)语句2;else if (表达式3)语句3;.else 语句n;多重 if 结构是if-else 的另一种形式 ,这种形式也称为阶梯式 if-else-if 多重 if 结构真假真假真假多重 if 结构示例问题描述:编写一个程序,根据用户输入的期末考试成绩,输出相应的成绩评定信息。成绩大于等于90分输出“优”;成绩大于等于80分小于90分输出“良”;

56、成绩大于等于60分小于80分输出“中”;成绩小于60分输出“差”。 #include void main()float grade;printf(n 请输入期末考试成绩: );scanf(%f, &grade);if(grade=90)printf(n 优);else if (grade=80) & (grade=60) & (grade 0) if (y 1) z = 1;else /*这个 else 部分属于哪个 if?*/ z = 2; 嵌套 if 结构 2-2C语言规定,每个 else 部分总属于前面最近的那个缺少对应的 else 部分的 if 语句。提倡使用大括号括起来以避免看起来有

57、二义性。?#includevoid main()int a,b;printf(n 请输入 A 和 B 的值: );scanf(%d%d,&a,&b);if(a!=b) if(ab)printf(n ABn);elseprintf(n ABn);elseprintf(n A=Bn); 嵌套 if 结构的示例内存ab6893输出:A100) value=50;else value=100;value = num 100 ? 50 : 100;(1)(0)条件表达式使用“if-else”的等同代码 假设 num = 200 value = num 100;?50:100200value=50算术运算

58、符示例问题描述:个人所得税收取规定:工资大于1000元的部分将扣除5的个人所得税。小于1000元的部分不扣除个人所得税。要求用户输入基本工资,计算税后工资。 #include void main()double sal;double rate;printf(n 请输入基本工资:);scanf(%lf,&sal);rate= (salb) t=a;a=b;b=t; if(ac) t=a; a=c; c=t; if(bc) t=b; b=c; c=t; printf(“%d,%d,%dn”,a,b,c);例 输入两个值给变量a、b,然后输出比较大的数 main() int a,b,max; sca

59、nf(“%d%d”,&a,&b); max=ab?a:b;printf(“max=%d,max);第五章 循环结构(一)回顾多重if结构就是在主if块的else部分中还包含其他if块嵌套if结构是在主if块中还包含另一个if 语句C语言规定,嵌套if结构中每个else部分总是属于前面最近的那个缺少对应的else部分的if语句switch结构也可以用于多分支选择。用于分支条件是整型表达式,而且判断该整型表达式的值是否等于某些值(可以罗列的),然后根据不同的情况,执行不同的操作条件运算符是 ifelse 语句的另一种表现形式目标 理解为什么使用循环结构理解循环的两大规则熟练掌握while循环的使用

60、熟练掌握do-while循环的使用理解while 和 do-while 循环的区别循环的必要性 Int result1,result2,result3;int result4,result5;result1 = 1 * 10;printf(1 10 %d n,result1);result2 = 2 * 10;printf(2 10 %d n,result2);result3 = 3 * 10;printf(3 10 %d n,result3);result4 = 4 * 10;printf(4 10 %d n,result4);result5 = 5 * 10;printf(5 10 %d

温馨提示

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

评论

0/150

提交评论