资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章最简单的C程序设计,顺序程序设计,4.1 C语句概述,C语言的语句用来向计算机发出操作指令,C程序的构成,语句,以,“,;,”,作分隔符,编译后产生机器指令,C程序,源程序1.C,源程序2.C,源程序3.C,预处理命令,全局变量声明,函数1,函数n,函数首部,函数体,局部变量声明,执行语句,例,1.2,/*example1.1 calculate the sum of a and b*/,#include,/*This is the main program */,main,(),int,a,b,sum;,a,=,10,;,b,=,24,;,sum=,add(a,b,);,printf,(,”sum=,%dn,sum,);,/*This function calculates the sum of x and y */,int,add,(int,x,int,y),int,z;,z=x+y;,return(,z,);,运行结果:,sum=34,函数,语句,预处理命令,注释,函数首部,局部变量,声明部分,C语句的分类,1.控制语句,if()else,switch,for(),while(),dowhile(),continue,break,goto,return,分支,循环,辅助控制,9种,2.函数调用语句,3.表达式语句,4.空语句,5.复合语句,表达式加分号构成例:,z=x+y;,函数加分号;,例:,printf(”sum=%dn,sum);,只有一个分号的语句,用,括起来的一组语句,例:t=a;a=b;b=t;,说明:,1)“”后不加分号,2)语法上和单一语句相同,3)复合语句可嵌套,例如:,a=3;,;,func();,printf(“Hello,world!n”);,z=x+y;,t=z/100;,4.2赋值语句,赋值语句赋值表达式后加分号,C语言中为赋值运算符,C语言中,代表一个动作,表示把右边表达式的值装入左边的变量,例:if (a=b)0)t=0;,表示先将b的值赋给a,然后判断a的值是否大于0,如0,执行t=0,4.3 数据的输入和输出,一、,常用的输入和输出函数,利用库函数,getchar 函数,putchar 函数,scanf 函数,printf 函数,字符输入,字符输出,格式输入,格式输出,1、putchar函数,功能:输出一个字符,格式:putchar(c);,例:include,main(),char a,b,c;,a=B;b=O;c=Y;,putchar(a);putchar(b);putchar(c);,程序运行结果:BOY,/*ch4_1.c*/,#include,main(),int c;,char a;,c=65;a=B;,putchar(c);putchar(n);putchar(a);,运行结果:A,B,例4.1,2、getchar函数,功能:从终端输入一字符,格式:getchar();,例:include,main(),char c;,c=getchar();,putchar(c);,函数的值为从输入设备得到的字符,注:要使用getchar()/getchar()函数时,应该在该函数的前面加上,include,4.5格式输入与输出,一、printf函数,1.功能:输出若干个任意类型的数据,2.格式:printf(格式控制,输出表列),“格式控制”是用双撇号括起的格式串包括:,格式说明:由%和格式字符组成,如:%d,%f,普通字符:除格式说明符外的字符,按原样输出,指出相应的要输出的数据,例:printf(“%d%d”,a,b);,Printf(“a=%d b=%d”,a,b);,1)d格式符,d,md,%ld,例如:printf(“%d,%5d,%ld”,a,b,c);,用来控制输出十进制整数,按整型数据的实际长度输出,m指定输出数据的宽度。当数据本身的实际宽度小于m时,则数据左端补空格;若大于m,则按数据的实际位数输出,。,输出长整型数据,也可表示为,mld,2.格式字符,对于不同的数据,应采用不同的格式字符,2)o格式符,3)x格式符,4)u格式符,5)c格式符,6)s格式符,以八进制数形式输出整数,输出的数值不带符号,以十六进制数形式输出整数,以十进制数形式输出unsigned的整数,用来输出一个字符。一个整数,其值在0255之间时也可以以字符的格式输出,用来输出一个字符串,s,ms,-ms,m.ns,-m.ns,用来输出一个字符串,不含双引号,输出的字符串占m列。当字符串长度大于m时,则按实际长度输出。若小于m,则左侧补空格,如果字符串长度小于m,则在m范围内,字符串向左靠,右侧补空格,只取字符串的左端n个字符输出,格式同ms,只取字符串的左端n个字符输出,格式同-ms。,7)f 格式符,f,%m.nf,-m.nf,以小数形式输出实数(包括单、双精度,),整数部分全部显示出来,小数部分显示6位。注意:并不是显示的所有数字都是有效数字,指定数据的宽度共为m列,其中有n位小数。如果数值长度小于m,则左侧补空格。,与m.nf类似,只是,如果数值长度小于m,,在右侧补空格,例 int a=1234;,float f=123.456;,char ch=a;,printf(“%8d,%2dn”,a,a);,printf(“%f,%8f,%8.1f,%.2f,%.2en”,f,f,f,f,f);,printf(“%3cn”,ch);,运行,1234,1234,结果:,123.456000,123.456000,123.5,123.46,1.23e+02,a,例 static char a=“Hello,world!”,printf(“%sn%15sn%10.5sn%2.5sn%.3sn”,a,a,a,a,a);,运行结果:Hello,world!,Hello,world!,Hello,Hello,Hel,例 m.n,8)e格式符,e,m.ne,%-m.ne,9)g格式符,以指数形式输出实数,按规范化指数形式输出实数,系统自动给出6位小数,指数部分占5位,与前面的叙述相同,与前面的叙述相同,它将根据数值的大小,自动选用f格式或e格式输出数据,并且它不输出无意义的0,说明:,数据与格式控制符必须匹配。,除了X、E、G外,其他格式字符必须小写。,在格式控制字符串中,可以包含转义字符。,上述的d、o、x、u、c、s、f、e、g等字符,如果用在后面,就作为格式控制符。,如果想输出字符,则在格式控制字符串中,用表示。,二、,格式输入函数,格式:scanf(“,格式控制串”,地址表),功能:按指定格式从键盘读入数据,存入地址表指定的,存储单元中,并按回车键结束,返值:正常,返回输入数据个数,地址表:变量的地址,常用取地址运算符,&,格式字符:d,i,o,x,u,c,s,f,e,例 scanf(“%d”,输入:10,则 a=10,例 scanf(“%x”,输入:11,则 a=17,例4.9,main(),int a,b,c;,scanf(“%d%d%d”,printf(“%d,%d,%dn”,a,b,c);,请看:程序运行情况,输入分隔符的指定,一般以空格、TAB,或回车键作为分隔符,其它字符做分隔符:格式串中两个格式符间字符,例 scanf(“%d%o%x”,printf(“a=%d,b=%d,c=%dn”,a,b,c);,输入 123 123 123,输出 a=123,b=83,c=291,例 scanf(“%d:%d:%d”,输入 12:30:45,则12 h,30 m,45 s,例 scanf(“%d,%d”,&a,&b),输入 3,4,则3a,4 b,例 scanf(“a=%d,b=%d,c=%d”,输入 a=12,b=24,c=36,使用scanf时应注意的问题,函数中“格式串”后应当是变量地址,而不是变量名,如:scanf(“%d,%d”,如果在“格式串”中除格式符外还有其他字符,则输入数据时在对应位置应输入同样的字符。,如:scanf(“%d:%d:%d”,scanf(“a=%d,b=%d,c=%d”,在输入数据时,三个数据间应用:分隔,在输入数据时,应按a=12,b=24,c=35 的形式输入,3.,用“%c”格式符时,空格和转义字符作为有效字符输入,如,scanf(“%c%c%c”,若输入a,b,c,则ac1,c2,b c3,4.,输入数据时,遇以下情况认为该数据结束:,遇空格、TAB、或回车,遇宽度结束,遇非法输入,如 scanf(“%d%c%f”,若输入1234a123,o,.26,则 1234 a,a b,123 c,4.6顺序结构程序设计,1.顺序结构流程图,A,B,A,B,传统,N-S,4.6,顺序结构,程序设计举例,/*ch4_10.c*/,#include,#include,main(),float a,b,c,s,area;,scanf(%f,%f,%f,s=1.,0,/2*(a+b+c);,area=,sqrt,(s*(s-a)*(s-b)*(s-c);,printf(a=%.2f,b=%.2f,c=%.2f,s=%.2fn,a,b,c,s);,printf(area=%7.2fn,area);,例 输入三角形边长,求面积,输入:3,4,6,输出:a=3.00,b=4.00,c=6.00 s=6.50,area=5.33,文件包含预处理命令,变量定义,输入数据,输出数据,例:从键盘输入大写字母,用小写字母输出,/*ch4_11.c*/,#include stdio.h,main(),char c1,c2;,c1=getchar();,printf(%c,%dn,c1,c1);,c2=c1+32;,printf(%c,%dn,c2,c2);,输入:,A,输出:A,65,a,97,
展开阅读全文