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

上传人:tia****nde 文档编号:12706170 上传时间:2020-05-14 格式:PPT 页数:64 大小:495KB
返回 下载 相关 举报
C语言基础与顺序结构.ppt_第1页
第1页 / 共64页
C语言基础与顺序结构.ppt_第2页
第2页 / 共64页
C语言基础与顺序结构.ppt_第3页
第3页 / 共64页
点击查看更多>>
资源描述
C语言基础与顺序结构,学习目标,学会合理选用数据类型学会使用常用的运算符学会使用常用的标准输入/输出函数控制数据的输入/输出学会顺序程序的设计方法,2.1C数据类型,数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作,2.1.0预备知识,计算机中数的表示及进制转换数码、基与权数码:表示数的符号基:数码的个数权:每一位所具有的值数制十进制:09二进制:0、1八进制:07十六进制:09,af,各种进制之间的转换,1、二进制、八进制、十六进制转换成十进制方法:按权相加,2、十进制转换成二进制、八进制、十六进制方法:连续除以基,从低到高记录余数,直至商为0,例把十进制数459转换成二进制数,2459余12229余1114余0257余128余0214余07余123余11余120,(459)10=(111001011)2,例把十进制数459转换成八进制数,例把十进制数459转换成十六进制数,3、二进制与八进制之间的转换二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制八进制转换成二进制:用3位二进制数代替每一位八进制数,00000011010201131004101511061117,例(1101001)2=(001,101,001)2=(151)8,例(246)8=(010,100,110)2=(10100110)2,4、二进制与十六进制之间的转换二进制转换成十六进制从右向左,每4位一组(不足4位左补0),转换成十六进制十六进制转换成二进制:用4位二进制数代替每一位十六进制数,000000001100102001130100401015011060111710008100191010A1011B1100C1101D1110E1111F,例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16,例(4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2,字节和位,内存以字节为单元组成每个字节有一个地址一个字节一般由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个字节的存储单元,整型变量的定义和赋值inta,b;a=3;b=4;或inta=3,b=4;longe=123L;,举例2-1:从键盘输入两个整数,求它们的和,#includemain()inta,b,sum;scanf(“a=%d,b=%d”,变量声明,输入语句,执行语句,输出语句,练习1,1、求32766+1与32767+1的和2、从键盘上输入数据,求四则运算(a+b)*c/(d-e)的结果,#includemain()inta;intb;a=32767;b=a+1;printf(%dn,b);,#includemain()inta;longb;a=32767;b=a+1L;printf(%ldn,b);,-32768,课后作业,P.11习题,2.1.2浮点型数据,浮点型常量十进制数形式:(必须有小数点)如0.123,.123,123.0,0.0,123.指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3,123E2,1.23e4e-5,1.2E-3.5(),浮点型变量一般占4个字节,浮点数变量定义和赋值floata,b;floatc=123456.789e3;,举例2-2:从键盘输入两个浮点数,求它们的积,#includemain()floata,b,c;scanf(“a=%f,b=%f”,练习2,1、求一个较大的浮点数(上例中的c)与一个较小数(20)的和2、求一个整数与一个浮点数的和3、将第2题结果转换为整数类型输出,float型数据提供7位有效数字double型数据提供16位有效数字使用不当导致舍入误差,#includemain()floata;floatb;a=123456.789e3;b=a+20;printf(%fn,a,b);,#includemain()doublea;doubleb;a=123456.789e3;b=a+20;printf(%lfn,a,b);,12345678848.000000,2.1.3字符型数据,字符常量用单引号括起来的单个普通字符或转义字符字符串常量用双引号括起来的字符序列,如aA?n101,如:“hello”,转义字符,符号常量(宏常量)一般采用大写字母表示#define标识符字符串不是语句,而是一种编译预处理命令宏替换(MacroSubstitulition),#include#definePI3.14159#defineR5.3main()printf(area=%fn,PI*R*R);printf(circumference=%fn,2*PI*R);,字符变量一般占1个字节将该字符的相应的ASCII码值放到存储单元中(参见P.251附录A)用来表示256个ASCII字符,或者0255的整数,字符变量定义和赋值charc1,c2;c1=a;c2=”;c1=a;与c1=97;等价c1=c1+1;c1=?大小写字母如何转换?c1=c1-32;,举例2-3:大小写字母的转换,#includemain()charc1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c%cn”,c1,c2);运行结果:AB,类型转换,自动类型转换ch/i+f*d-(f+i)强制类型转换i=(int)f;(int)9.6%4,同种数据类型的运算结果,还是该类型不同种数据类型的运算结果,是两种类型中取值范围更大的那种longdoubledoublefloatlongintshortchar把数据赋值给另外一种类型变量也会发生自动类型转换从小到大,顺利转换从大到小,可能丢失信息强制类型转换可以消除从大到小转换时的警告,变量声明总结,使用变量的基本原则变量必须先定义,后使用所有变量必须在第一条可执行语句前定义声明的顺序无关紧要一条声明语句可声明若干个同类型的变量声明变量,是初始化变量的最好时机不被初始化的变量,其值为危险的随机数,课后作业,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作为后缀运算符时,先取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;+、-、*、/、%、floatz=4;x=(y=y+6,y/z);,例:inta=5,b;b=(a=a+4,a*4,a+15);,2.2.4sizeof运算符,sizeof用于获得变量或者数据类型的长度,#includemain()printf(DatatypeNumberofbytesn);printf(-n);printf(char%dn,sizeof(char);printf(int%dn,sizeof(int);printf(shortint%dn,sizeof(short);printf(longint%dn,sizeof(long);printf(float%dn,sizeof(float);printf(double%dn,sizeof(double);,2.2.5逻辑运算符,逻辑运算也被称为布尔(Boolean)运算输出若干个任意类型的数据printf(a=%db=%f,a,b);P.31例2-7,函数名,输出项表列,普通字符,举例2-4,#includemain()floatf1=100.15799,f2=12.55,f3=1.7;intn1=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,格式输入函数,格式输入函数scanf(“格式控制”,地址表列);scanf(%d,%f”,格式输入函数,常见错误scanf(%d,%fn”,输入数据时,遇以下情况时该数据认为结束遇空格、回车、TAB键遇宽度:%3d遇非法输入,举例2-5,#includemain()chara,b;printf(Pleaseinputaandb:);scanf(%c%c,Pleaseinputaandb:,a=A,b=B,AB,举例2-6,#includemain()inta,b;longc;printf(Pleaseinputa,b,c:);scanf(a=%d,%d,%ld,Pleaseinputa,b,c:,a=12,b=34,c=56,a=12,34,56,举例2-7,#includemain()floata,b;doublec;printf(Pleaseinputa,b,c:);scanf(“%f,%e,%lf,Pleaseinputa,b,c:,a=5.2,b=1.2e3,c=7.89,5.2,1.2e3,7.89,举例2-8,#includemain()inta,b;printf(Pleaseinputaandb:);scanf(%2d%*2d%2d,Pleaseinputaandb:,a=12,b=56,a+b=68,123456,虚读,即跳过本输入项,常用格式说明,字符输入输出函数,字符输出函数putchar(ch)输出一个字符ch字符输入函数getchar():无参数;函数值为从输入设备接收的字符,存放到一个字符变量中getch():从键盘上读取一个字符并返回一个字符,但不显示在屏幕上。,举例2-9,#includemain()charc;printf(Pleaseinputc:);c=getchar();putchar(c);,Pleaseinputc:,a,a,举例2-9,#includemain()printf(Pleaseinputc:);putchar(getchar();,Pleaseinputc:,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按照顺序结构编写程序:从键盘输入圆周半径,求圆周长度和圆周面积(提示:考虑半径可能的数据类型),
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!