第2章C语言基础与顺序结构.ppt

上传人:sccc 文档编号:5897028 上传时间:2023-08-31 格式:PPT 页数:64 大小:495.04KB
返回 下载 相关 举报
第2章C语言基础与顺序结构.ppt_第1页
第1页 / 共64页
第2章C语言基础与顺序结构.ppt_第2页
第2页 / 共64页
第2章C语言基础与顺序结构.ppt_第3页
第3页 / 共64页
第2章C语言基础与顺序结构.ppt_第4页
第4页 / 共64页
第2章C语言基础与顺序结构.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《第2章C语言基础与顺序结构.ppt》由会员分享,可在线阅读,更多相关《第2章C语言基础与顺序结构.ppt(64页珍藏版)》请在三一办公上搜索。

1、C语言基础与顺序结构,学习目标,学会合理选用数据类型学会使用常用的运算符学会使用常用的标准输入/输出函数控制数据的输入/输出学会顺序程序的设计方法,2.1 C数据类型,数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作,2.1.0 预备知识,计算机中数的表示及进制转换数码、基与权数码:表示数的符号基:数码的个数权:每一位所具有的值数制十进制:09二进制:0、1八进制:07十六进制:09,af,各种进制之间的转换,1、二进制、八进制、十六进制转换成十进制 方法:按权相加,2、十进制转换成二进制、八进制、十六进制方法:连续除以基,从低到高记录余数,直至商为0,例 把十进制数45

2、9转换成二进制数,2 459 余12 229 余1114 余02 57 余1 28 余02 14 余0 7 余12 3 余1 1 余12 0,(459)10=(111001011)2,例 把十进制数459转换成八进制数,例 把十进制数459转换成十六进制数,3、二进制与八进制之间的转换二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制 八进制转换成二进制:用3位二进制数代替每一位八进制数,000 0001 1010 2011 3100 4101 5110 6111 7,例(1101001)2=(001,101,001)2=(151)8,例(246)8=(010,100,1

3、10)2=(10100110)2,4、二进制与十六进制之间的转换二进制转换成十六进制从右向左,每4位一组(不足4位左补0),转换成十六进制 十六进制转换成二进制:用4位二进制数代替每一位十六进制数,0000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F,例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16,例(4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2,字

4、节和位,内存以字节为单元组成每个字节有一个地址一个字节一般由8个二进制位组成每个二进位的值是0或1,数值的表示方法原码、反码和补码,2.1.1 整型数据,整型常量十进制整数:由数字09和正负号表示.如 123,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0 x开头,后跟09,af,AF表示.如0 x123,0Xff,整型变量二进制形式表示TC2.0中,在内存中占2个字节的存储单元,整型变量的定义和赋值int a,b;a=3;b=4;或 int a=3,b=4;long e=123L;,举例2-1:从键盘输入两个整数,求它们的和,#includema

5、in()int a,b,sum;scanf(“a=%d,b=%d”,变量声明,输入语句,执行语句,输出语句,练习1,1、求32766+1与32767+1的和2、从键盘上输入数据,求四则运算(a+b)*c/(d-e)的结果,#include main()int a;int b;a=32767;b=a+1;printf(%dn,b);,#include main()int a;long b;a=32767;b=a+1L;printf(%ldn,b);,-32768,课后作业,P.11 习题,2.1.2 浮点型数据,浮点型常量十进制数形式:(必须有小数点)如0.123,.123,123.0,0.0,

6、123.指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3,123E2,1.23e4 e-5,1.2E-3.5(),浮点型变量一般占4个字节,浮点数变量定义和赋值float a,b;float c=123456.789e3;,举例2-2:从键盘输入两个浮点数,求它们的积,#includemain()float a,b,c;scanf(“a=%f,b=%f”,练习2,1、求一个较大的浮点数(上例中的c)与一个较小数(20)的和2、求一个整数与一个浮点数的和3、将第2题结果转换为整数类型输出,float型数据提供7位有效数字double型数据提供16位有效数字 使用不当导致舍入误差,

7、#include main()float a;float b;a=123456.789e3;b=a+20;printf(%fn,a,b);,#include main()double a;double b;a=123456.789e3;b=a+20;printf(%lfn,a,b);,12345678848.000000,2.1.3 字符型数据,字符常量用单引号括起来的单个普通字符或转义字符字符串常量用双引号括起来的字符序列,如 a A?n 101,如:“hello”,转义字符,符号常量(宏常量)一般采用大写字母表示#define 标识符 字符串不是语句,而是一种编译预处理命令宏替换(Macr

8、o Substitulition),#include#define PI 3.14159#define R 5.3main()printf(area=%fn,PI*R*R);printf(circumference=%fn,2*PI*R);,字符变量一般占1个字节将该字符的相应的ASCII码值放到存储单元中(参见P.251 附录A)用来表示256个ASCII字符,或者0255的整数,字符变量定义和赋值char c1,c2;c1=a;c2=”;c1=a;与 c1=97;等价c1=c1+1;c1=?大小写字母如何转换?c1=c1-32;,举例2-3:大小写字母的转换,#includemain()c

9、har c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c%cn”,c1,c2);运行结果:A B,类型转换,自动类型转换ch/i+f*d-(f+i)强制类型转换i=(int)f;(int)9.6%4,同种数据类型的运算结果,还是该类型不同种数据类型的运算结果,是两种类型中取值范围更大的那种long double double float long int short char把数据赋值给另外一种类型变量也会发生自动类型转换从小到大,顺利转换从大到小,可能丢失信息强制类型转换可以消除从大到小转换时的警告,变量声明总结,使用变量的基本原则变量必须先定义,后使

10、用所有变量必须在第一条可执行语句前定义声明的顺序无关紧要一条声明语句可声明若干个同类型的变量声明变量,是初始化变量的最好时机不被初始化的变量,其值为危险的随机数,课后作业,P.40 习题,2.2 运算符与表达式,2.2.1 算术运算符,+-*/%四则混合运算中,先算乘除,后算加减,按从左向右的顺序计算,左结合数学中3ab,在C语言中应写为3*a*b两整数相除,结果为整数%要求两侧均为整型数据,例 5/2=-5/2.0=,2,-2.5,例 5%2=-5%2=1%10=5%1=5.5%2,1,-1,1,0,(),自增、自减运算符n+,n-,+n,-n+让参与运算的变量加1,-让参与运算的变量减1作

11、为后缀运算符时,先取n的值,然后加/减1作为前缀运算符时,先加/减1,然后取n的值m=n+;等价于m=n;n+;m=+n;等价于n+;m=n;,例 j=3;k=+j;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,2.2.2 赋值运算符,下面两个语句是等价的i=i+2;i+=2;+、-、*、/、%、&、|运算符都可以按此种方式处理这种形式看起来更直观,而且执行效率一般也能更高一些,2.2.

12、3 逗号运算符,表达式1,表达式2,表达式n最终结果是表达式n的值,例:int x,y=7;float z=4;x=(y=y+6,y/z);,例:int a=5,b;b=(a=a+4,a*4,a+15);,2.2.4 sizeof运算符,sizeof用于获得变量或者数据类型的长度,#include main()printf(Data type Number of bytesn);printf(-n);printf(char%dn,sizeof(char);printf(int%dn,sizeof(int);printf(short int%dn,sizeof(short);printf(lon

13、g int%dn,sizeof(long);printf(float%dn,sizeof(float);printf(double%dn,sizeof(double);,2.2.5 逻辑运算符,逻辑运算也被称为布尔(Boolean)运算&与运算(a b&b c);a大于b,并且b大于c|或运算(a b|b c);a大于b,或者b大于c!求反(!a);如果a是0,结果非0;如果a是非0,结果是0并不改变a的值,2.3 输入/输出函数,格式输入输出函数字符输入输出函数,调用标准I/O函数时,应在程序首位设置以下的预处理命令:#include stdio.h 在当前目录和TC指定的目录中找该文件#i

14、nclude 在由TC指定的文件目录中找该文件,格式输出函数,格式输出函数printf(“格式控制”,输出项表列);输出若干个任意类型的数据printf(a=%d b=%f,a,b);P.31 例2-7,函数名,输出项表列,普通字符,举例2-4,#include main()float f1=100.15799,f2=12.55,f3=1.7;int n1=123,n2=45,n3=3456;printf(%5.2fn%6.1fn%3.0fn,f1,f2,f3);printf(%5dn%-6dn%3dnn,n1,n2,n3);,100.1612.62,123453456,格式输入函数,格式输入

15、函数scanf(“格式控制”,地址表列);scanf(%d,%f”,格式输入函数,常见错误scanf(%d,%fn”,输入数据时,遇以下情况时该数据认为结束遇空格、回车、TAB 键遇宽度:%3d遇非法输入,举例2-5,#include main()char a,b;printf(Please input a and b:);scanf(%c%c,Please input a and b:,a=A,b=B,AB,举例2-6,#include main()int a,b;long c;printf(Please input a,b,c:);scanf(a=%d,%d,%ld,Please inpu

16、t a,b,c:,a=12,b=34,c=56,a=12,34,56,举例2-7,#include main()float a,b;double c;printf(Please input a,b,c:);scanf(“%f,%e,%lf,Please input a,b,c:,a=5.2,b=1.2e3,c=7.89,5.2,1.2e3,7.89,举例2-8,#include main()int a,b;printf(Please input a and b:);scanf(%2d%*2d%2d,Please input a and b:,a=12,b=56,a+b=68,123456,虚读

17、,即跳过本输入项,常用格式说明,字符输入输出函数,字符输出函数putchar(ch)输出一个字符ch字符输入函数getchar():无参数;函数值为从输入设备接收的字符,存放到一个字符变量中getch():从键盘上读取一个字符并返回一个字符,但不显示在屏幕上。,举例2-9,#include main()char c;printf(Please input c:);c=getchar();putchar(c);,Please input c:,a,a,举例2-9,#include main()printf(Please input c:);putchar(getchar();,Please in

18、put c:,a,a,2.4 顺序结构,C程序的语句类型表达式语句i+;i=i+1;函数调用语句printf(“hellon”);putchar(getchar();控制语句if-else、switch、for复合语句t=x;x=y;y=t;空语句;,B,A,NS图,传统流程图,顺序结构,B,A,顺序结构的设计步骤,依据具体题目的要求合理的选用数据类型并定义相应的变量;提供原始数据(固定不变的数据采用赋值语句,变化的数据可用scanf函数从键盘输入)根据需要进行计算或数据处理;以清新、合理的格式输出计算或处理的结果。,顺序结构程序的基本操作,如何在程序中给变量赋值?赋值表达式语句赋值表达式;Total=m*pow(1+r,n);如何进行数据的输入输出?输入:从标准输入设备上输入数据到计算机内存输出:将计算机内存中的数据送到标准输出设备C语言中输入输出操作通过调用标准库函数来实现#include,作业,阅读P.36 案例1按照顺序结构编写程序:从键盘输入圆周半径,求圆周长度和圆周面积(提示:考虑半径可能的数据类型),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号