C语言基本语句.ppt
,C语言基本语句,共 26 页 第 2 页,第四章 C语言基本语句,第一节 介绍基本语句第二节 字符数据的输入输出第三节 格式输出 printf第四节 格式输入 scanf,共 26 页 第 3 页,4-1 介绍基本语句,语句,表达式语句,空语句,复合语句,1)表达式语句:任意的表达式末尾加分号 例如:x+;x=a+b;2)空语句:;/*表示什么也不做*/3)复合语句:若干语句用花括号括起来构成一条复合语句例如:a=1;b=2;复合语句被看做一个整体,被认为 是一条语句,语句的分类,程序:语句的集合,函数调用语句,程序流程控制语句,语句以;结尾,共 26 页 第 4 页,4-1 介绍基本语句,语句,表达式语句,空语句,复合语句,4)函数调用语句:函数名(参数列表);例如:sqrt(4);/printf(“this is a c programe.”);函数可以是库函数和用户自定义函数5)程序流程控制语句:举例:if(xy)m=x;else m=y;一共九种语句:ifelse for()while()dowhile()switch goto continue break return,语句的分类,程序:语句的集合,函数调用语句,程序流程控制语句,语句以;结尾,基本语句的实例,实例:以下都是什么语句?a=1;b=2;sum=a+b;printf(sum=%d,sum);if(ab)a=1;b=2;else a+;int a,b,sum;/*变量定义不是语句*/,共 26 页 第 6 页,4-2 输入输出语句,C语言里,输入输出功能是通过调用标准库函数实现的,函数调用语句,printfscanf,输入输出语句,字符输入输出语句,格式输入输出语句,getcharputchar,输入:用户借助计算机的输入设备将数据输入到计算机中。输出:将计算机中的数据通过输出设备呈现给用户输入设备:键盘、鼠标输出设备:显示器、打印机,程序划分为三部分:数据输入,数据处理,数据输出,4-2 字符输入输出语句,字符输入输出语句,负责输入输出一个字符,getchar();,字符输入语句,常用形式:c=getchar();,从输入设备(键盘)上取一个字符作为函数值返回,赋予变量c,putchar();,字符输出语句,常用形式:putchar(c);,将变量c中存放的字符,通过输出设备(显示器)呈现给用户,4-2 字符输入输出语句,举例:#include stdio.hmain()char c;c=getchar();putchar(c);,运行程序,如果从键盘输入:aENTER 则输出为:a,输入以回车结束,注意:使用这两个函数,包含头文件,4-2 字符输入输出语句,举例:#include stdio.h main()putchar(getchar()+32);,运行程序,如果从键盘输入:AENTER则输出为:如果从键盘输入:BENTER则输出为:,a,b,大写字母转换为小写字母,调用形式:printf(”输出格式”,输出表列);,4-3 格式输出语句,输出语句,按照指定的输出格式,输出各数据项例:int a=2,b=3;printf(“%dn%d”,a,b);printf(“%dt%d”,a,b);可以输出基本数据类型的数据(int,float,double,char),格式输出语句 printf,23,23,输出表列列出了所有要输出的数据项,输出项之间用逗号分隔.输出项可以是常量、变量和表达式,组成:转义字符,格式说明,原样输出字符,格式说明和数据项一 一对应,举例:printf(”a=%d b=%d a*b=%dn”,2,b,a*b),转义字符:以打头的字符,不是原样输出,而表示控制含义,P28 例:n格式说明:%格式字符,按照格式字符的要求,依次将后面的各数据项的值按相应类型输出 例:%d 十进制整型%f 十进制实型,4-3 格式输出语句,格式说明,格式字符,格式字符 说 明 d 以十进制带符号形式输出整数(正数不输出符号)例如:20 o 以八进制无符号形式输出整数(不输出前缀符0)例如:24 x 以十六进制无符号形式输出整数(不输出前缀符0 x)例:14 u 以十进制无符号形式输出整数 例:20,举例:main()int a=100,b=-1;printf(a=%d,%x,%o,%un,a,a,a,a);printf(b=%d,%x,%o,%un,b,b,b,b);,a=100,64,144,100,b=-1,ffff,177777,65535,1000 0000 0000 00011111 1111 1111 11101111 1111 1111 1111,-1原,-1补,格式字符限制输出的数据类型和形式,对于整数输出,0000 0000 0110 0100,4-3 格式输出语句,格式说明,格式字符,格式字符 说 明 f 以小数形式输出单、双精度数。整数部分全部输出,小数部分输出6位 例如:317.700000 e 以指数形式输出单、双精度数。整数部分全部输出,小数部分输出5位,指数4位,其中e占一位,符号一位,指数占两位,并且以规范化指数形式 输出 规范化:小数点前有且仅有1位非0数字 例如:3.17700e+02 g 选%f或%e格式中输出宽度较短的一种格式,不输出无意义的0,举例:main()float pi=3.14159;printf(pi=%f,%e,%g,pi,pi,pi);,pi=3.141590,3.14159e+00,3.14159,例如:317.7,格式字符限制输出的数据类型和形式,对于实数输出,4-3 格式输出语句,格式说明,格式字符,格式字符 说 明 c 以字符形式输出,仅输出一个字符 s 输出字符串,举例:main()char ch=a;printf(“ch=%cn,ch);printf(“str=%s,”abc”);,对于字符数输出,注意:1)格式字符要和输出的类型匹配main()float f=3.1;int d=3;printf(“%d”,f);/*出错*/printf(“%f”,d);/*出错*/printf(“%s”,a);/*出错*/char和int可以通用 char c=a;int a=97;printf(“%d,%c”,c,a);97,a,4-3 格式输出语句,根据要数据的数据类型,来选择格式字符,4-3 格式输出语句,格式说明,修饰符 格式字符,修饰符可省略,修饰符 说 明 m(整数)输出数据占的总列数,不足补空格 例:%6d+,-对齐方式,-表示结果向左对齐,否则右对齐 例:%-d0m 以宽度m输出整型数,不足m时,补0-0m 以宽度m输出整型数,不足m时,补空格,举例:int a=789;printf(“%6d,%-6d”,a,a);,对于整数部分,如果m比实际长度短,按实际长度输出,789,printf(“%06d,%-06d”,a,a);,000789,789_ _ _,printf(“%2d”,a);,float b=5.686;c=3.1415926printf(“%0.2f,%8.4f”,b,b);printf(“%f,%.7f”,c,c);,4-3 格式输出语句,格式说明,修饰符 格式字符,修饰符可省略,修饰符 说 明 m.n 对实数,占的总列数是m(小数点占一位),n表示小数位数;长度不足时,整数部分原样输出,小数部分按n截取,四舍五入 对字符串,m表示字符串宽度,n表示截取的字符个数 m长度不足时,按原样输出,printf(%s,%10s,%-12s,%-8s,%6.4sn,Good-bye.,Good-bye.,Good-bye.,Good-bye.,Good-bye.);,Good-bye.,_Good-bye.,Good-bye._ _ _,Good-bye.,_ _Good,3.141593,3.1514926,long a=40000;printf(“%ld”,a);,4-3 格式输出语句,格式说明,修饰符 格式字符,修饰符可省略,修饰符 说 明 l 按long型输出%ld-长整%lx-十六进制的长整%lo-八进制的长整,%lu-无符号的长整,40000,调用形式:printf(”输入格式”,变量地址表列);,4-4 格式输入语句,输入语句,按照指定的输入格式输入数据,并存放于各变量例:int a,b;scanf(“%d%d”,可以输入基本数据类型的数据(int,float,double,char),格式输入语句 scanf,由若干变量的地址组成,用逗号分隔.变量的地址就是在变量名前加&.表示将输入的数据存放到变量a所对应的内存单元,输入格式的含义类似printf函数,格式说明和变量地址一一对应,举例:scanf(”%d%d”,&a,&b),格式说明:%格式字符,按照格式字符的要求,依次将输入的数据存放到各变量中 例如:%d 十进制整型,格式说明,格式字符 说 明 d 输入十进制整数 举例:int a;scanf(“%d”,3.1415,修饰符 格式字符,修饰符可省略,修饰符 说 明 l 用于输入长整型数据(%ld)及double型数据(%lf)m 用于指定输入数据占据的宽度%2d*表示本输入项在读入后舍弃,4-4 格式输入语句,注意:1)变量地址表列中的变量前一定加/*出错*/3)输入格式中,如果有非格式字符,必须原样输入,4-4 格式输入语句,根据要数据的数据类型,来选择格式字符,scanf(“a=%d,b=%d,输入序列:a=123,b=45ENTER 结果:x=123,y=45,4)输入数据时,可以规定总宽度m,不能规定精度 scanf(“%5f”,/*出错*/5)输入double数据时,用%lf,4-4 格式输入语句,1)在连续输入多个数据时,如果输入格式中有非格式字符作为间隔,输入时以非格式字符作为间隔 scanf(“%d,%d,输入序列:123,45ENTER 结果:x=123,y=45,2)连续输入的数据之间,如果没有非格式字符做为间隔,可以用空格,TAB,回车做分隔 scanf(“%d%d%d”,输入序列一:123ENTER 输入序列二:1TAB2TAB3ENTER 输入序列三:1ENTER2ENTER3ENTER 结果一样:x=1,y=2,z=3,3)连续输入的数据间,如果已经规定长度m,系统按m截取数据 scanf(%3d%2d,输入序列:123456ENTER 结果:x=123,y=45,4-4 格式输入语句,4)字符数据输入,不能以空格为间隔,所有输入均被认为是有效字符 scanf(“%c%c,输入序列:a,bENTER 结果:x=a,y=b,共 26 页 第 23 页,第四章 C语言基本语句,第一节 介绍基本语句第二节 字符数据的输入输出第三节 格式输出 printf第四节 格式输入 scanf,