
上周实验题讲解P.6例1.1P15习题5教材例1.3增加输入提示——增加输入提示, 便于用户操作便于用户操作——也可以不用函数——多次运行, 测试各种顺序的组合P15习题6——三个数比较: 用max函数比较两次第3章顺序程序设计3.1 最简单的程序结构——顺序结构数据输入运算处理结果输出顺序结构流程步骤1步骤2步骤3阅读顺序结构实例P.37-38例3.1为什么要写 5.0/9 而不是 5/9? f 的值可否由用户输入? f 的值可否由用户输入?本章要点:数据的类型及运算输入与输出3.2 C语言的数据及运算数据有类型(type), 有具体的值(value)。不同类型的数据存储格式不同, 能够进行的运算也不同。谭浩强c语言程序设计第四版课件谭浩强c语言程序设计第四版课件数据的形式有常量, 变量, 表达式。常量(Constant)运行过程中值不改变的量(类型也不变)直接常量整型常量: 1246实型常量实型常量: 45.96 -2.78e845 962 78e8字符常量: ’ A’\n(转义字符)字符串常量 " Hello World "常量(Constant)符号常量#define PI 3.14159不占内存单元不占内存单元运行过程中值不改变的量(类型也不变)不可赋值不指定类型名称通常大写使用符号常量的好处 P.41变量(Variable)用于存放数据的一个存储单元存放的数据即变量值变量名是存储单元地址的一个名称先定义, 后使用int a,b;定义时指定变量类型——编译时分配存储空间命名规则——标识符的命名规则标识符(identifier)标识一个对象(变量、 符号常量、函数、 数组、 类型等) 的名称关键字不可作为标识符(附录C)系 统预定义的 标识符如 库函 数名(附录F)建议不要再定义, 以免混淆标识符命名规则只包括字母、 数字、 下划线, 以字母或下划线开头区分大小写——习 惯上变量名小写,常量名大写长度规定各编译系统不同命名的良好习惯——“见名知义”常变量C99新增存储方式和用法都是变量, 但只能在定义时赋值一次C语言的数据类型1.基本类型整型、 浮点型、 字符型2.派生类型数组数组, 结构体, 共用体结构体共用体3.指针类型4.空类型5.枚举型整型数据(Integer)整型常量三种数制的表示形式十进制(Decimal)十进制(Decimal): 例如 61例如 61八进制(Octal): 例如 075十六进制(Hexadecimal): 例如 0x3D整型数据(Integer)整型常量的类型确定根据其值的范围自动确定类型(P51)可赋值给能够容纳其值的各种整型变量整常量后加l或L视为long intVC++中int就是long int整常量后加u或U视为unsigned int整型数据(Integer)整型变量根据占用内存字节数分类(P.45表3.2)int(长整型或短整型)基本整型短整型short [int]signed长整型long [int]无符号整型 unsigned …int在不同编译系统中分配存储字节数各不相同, 可用sizeof函数测试printf("%d",sizeof(int));例:浮点型数据(Floating point, 即实型)浮点型常量两种表示形式十进制小数: 例如 3.14159指数形式: 例如 1 72e3指数形式: 例如 1.72e3main( ){ float x;x=23456.789;printf("x=%e",x); }2.345679e+004对照一下%f的格式浮点型数据浮点型变量单精度 float双精度 double长双精度 long double同一类型在不同的编译系统中分配存储字节数各不相同, 可用sizeof函数测试浮点型常量的类型确定浮点型常量默认为double类型浮点型常量后加f或F视为float浮点型常量后加 或 视为浮点型数据的有效范围(P.50-51)练习: 判断下面程序的运行结果int main(){ float a;格式符与数据类型不相符类型不相符a=12;printf("%d",a);}字符型数据(character)字符常量一对单引号(即撇号' )括起的一个字符用八进制或十六进制数(ASCII码)表示用八进制或十六进制数(ASCII码)表示的字符, 如'\101'和'\x41' (P.40)以 \ 开头的控制字符(P.40表3.1)字符型数据(character)字符变量使用char定义保存一个字符占用1个字节的内存空间字符数据的存储与使用在存储单元中保存字符的ASCII码因此字符数据可以参加算术运算例如字符数据的存储与使用int main( ){ char x, z;int y;x=65;i tf("printf("x=%c\n",x+32);y='D';printf("y=%c\n",y);printf("y=%d\n",y);z='a'-32;printf("z=%c\n",z);}% \ "32)字符串(string)——概念一对双引号(")括起的字符序列字符串长度: 字符串中字符的个数空串空串: 长度为0的字符串(即一个长度为 的字符串个字符都没有的字符串) 表示为 ""字符串(string)——存储方式字符串结束符, 占一个字节,由系统自动加上, 源代码中不写"CHINA"CHINA\0 由5个字符组成的字符串在内存中占用6个字节存储空间字符常量与字符串常量的区别字符常量字符串常量定界符'"长度1非负整数存储要求 单个字符的ASCII码有效字符和结束标志’ \0’的ASCII码注意:C语言只有字符变量, 没有字符串变量使用字符数组保存字符串数值型数据的混合运算整型(int, short, long)、 浮点型(float, double,long double)、 字符型(char)数据可混合运算运算前先自动转换成同一类型必定转换必定转换float→double, char→int运算对象类型不同时由较低精度向较高精度转换成相同类型精度: int < unsighed < long < double数值型数据的混合运算练习: 判断下面表达式的值10 + 'a' – 10.1 * 'b'运算符和表达式C语言的运算符(P.56, Operator)算术运算符 P.52关系运算符 P.91逻辑运算符 P93逻辑运算符 P.93位运算符赋值运算符 P.60条件运算符 P.97逗号运算符 P.123指针运算符 Ch8.指针求字节数运算符强制类型转换运算符P56强制类型转换运算符P.56成员运算符 Ch9.结构体下标运算符 Ch6.数组其他详见附录D待补充算术运算符和算术表达式基本算术运算符+ -*/% (求余)/% (求余)练习, 判断算术表达式的值5 / 35%35.1 / 35.1 % 3算术运算符和算术表达式自增、 自减运算符♪ 使变量值加1或减1i++ ii++, i-- 先使用i值再使i值加1(或减1)先使用i值再使i值加1(或减1)++i, --i 先使i值加1(或减1)再使用i值可组成复杂的形式, 但建议不要滥用算术运算符和算术表达式自增、 自减运算符♪ 例1main()main(){ int i, j;i=3;j=i++;printf("i=%d,j=%d\n",i,j);}i=4,j=3i 4,j 3算术运算符和算术表达式自增、 自减运算符♪ 例2main()main(){ int i,j;i=3;j=++i;printf("i=%d,j=%d\n",i,j);}i=4,j=4i 4,j 4算术运算符和算术表达式运算符的优先级和结合性♪ 附录D♪ 由优先级别决定运算顺序♪ 由优先级别决定运算顺序♪ 不同的运算符有不同的结合性, 多为从左向右(左结合性) , 少数为从右向左(右结合性)算术运算符和算术表达式强制类型转换运算符♪ 系统不能进行自动类型转换时可使用强制转换(类型符)变量(类型符)变量(类型符)(表达式)例(int)(12.1/2.5)(int)12.1/2.53.3 C语句C程序的构成C程序源程序文件1源程序文件2源程序文件n预处理命令全局变量声明函数1函数n局部变量声明执行语句3.3 C语句(statement)C语句的分类 P.57-59•控制语句•函数调用语句函数调用语句•表达式语句•空语句•复合语句赋值(Assignment)语句赋值运算符a=3+2复合赋值运算符 a+=3 a=a+3复合赋值运算符 a+=3 a=a+3赋值运算符和赋值表达式自右向左结合P.61 实例尽量读懂, 但建议不要采用太复杂的写法赋值语句•赋值中的类型转换•赋值表达式, 赋值语句赋值表达式, 赋值语句•定义变量时赋初值——初始化(initialize)数据输入输出的概念输入(input): 输入设备→主机输出(output): 主机→输出设备C语言的输入输出由函数(function)实现stdio.h 头文件包含标准输入输出库函数p rin tf ( "格式控制", 输出表列)常量、 变量、 表达式格式输出函数printf例: printf("a=%d, b=%f \n" , a , b/2)普通字符(原样输出)格式说明输出列表printf 函数的基本格式符% d 或 % i% c% s% s% f% e更多的格式符见P.74十进制整数字符(一个字符)字符串字符串实数(小数形式)实数(指数形式)输入函数scanfsca n f ( "格式控制", 地址表列)&变量名,&变量名例1: scanf("%d%f",&a ,&b)输入时以空格或回车分隔两个数值scanf("%d,%f",&a ,&b)输入时以逗号分隔两个数值输入函数scanf例2: scanf("%c%c",&a ,&b)直接输入两个字符直接输入两个字符, 不加空格或回车不加空格或回车例3:scanf("%d%c",&a ,&b)数值后直接输入字符, 不加空格或回车输入函数scanf例4: scanf("a=%d,b=%f" , &a ,&b)普通字符普通字符(原样输入)格式说明 地址列表输入 a=34,b=45输入函数scanf地址列表中只能是变量名前加地址运算符&的形式, 其作用是将数据传送到变量的内存地址, 相当于赋值。

表达式及输入与输出2.1c语言的发展与特点2.2c程序概述2.2.1c语言程序的基本结构2.2.2c语言的字符集2.2.3c语言的词汇2.2.4c语言的书写规则2.3c程序的上机过程2.4常量和变量2.4.1常量2.4.2变量2.5数据类型2.5.1整型数据2.5.2实型数据2.5.3字符型数据2.5.4各类数值型数据之间的混合运算2.6运算符与表达式2.6.1算术运算符和算术表达式2.6.2关系运算符和关系表达式2.6.3逻辑运算符和逻辑表达式2.6.4赋值运算符和赋值表达式2.6.5逗号运算符和逗号表达式2.7输入与输出简介2.7.1数据输入与输出的概念2.7.2字符数据的输入与输出2.7.3格式的输入与输出2.8本章小结习题2第3章顺序和选择结构程序设计3.1顺序结构编程3.1.1c语句3.1.2顺序结构程序设计3.2选择结构程序设计。运行程序输入“5 空格8 he”,结果是:a=5,b=8,c1=’\n’,c2=’h’,将产生错误,出现这种情况的原因是输入的第一个回车表示输入结束,但该回车被下一个scanf函数的第一个变量c1接收而成为换行符’\n’,而字符’h’赋给了变量c2,输入的字符’e’未被任何变量接收。Ⅱ.在输入数值型(整型或实型)数据时,数据间要用空格或回车分隔开各个数据,输入足够个数的数据,否则仍要继续等待输入,但最后一定要有回车,表示该输入行结束,直到数据足够,该读语句执行结束,程序继续运行。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-97902-1.html
真心提醒各位国内的食用油价格低于5元
教授本是代表了文化
这次国家必须要做坚决的回应