资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第4章,顺序程序设计,4.1 C语句概述,C语句用来发出操作命令,编译后产生若干机器指令,一个C程序应包含若干语句。,一、C程序的组成,.程序由若干源程序,文件(模块)组成。,.一个源文件可以由若干函数和预编译命令组成.,.一个函数由数据描述(声明部分)和数据操作(执行部分)组成。,其组成图见69图4.1,本章重点:,1。数据的输入与输出方法。,2。,顺序程序设计的基本步骤与方法。,第4章顺序程序设计4.1 C语句概述本章重点:1。数据的,二、语句的分类,语句是构成程序(函数)不可缺少的部分是机器要完成任务的操作命令。语句是用“;”号结束,语句分为以下五类:,.控制语句,:完成控制功能,如分支,转向,循环等。,.函数调用语句,:在调用函数后加一个“;”号,如,:,printf(“This is a programe”);,在输出函数后加“;”号,变为输出函数调用语句。,3.表达式语句,:表达式后加“;”号如:,赋值表达式: x=x+5;,自加表达式: i+;,二、语句的分类 语句是构成程序(函数)不可,逗号表达式: a=1,b=2,c=a+b+3;,函数调用语句(如sin(x)也可以看成是表达式语句。表达式语句是C中最多的语句,故有人称C语言为“表达式语言”,4.,空语句:,;,只有一个“;”号什么也不做,。,5.,复合语句,(分程序):,将多个语句用括起来。比如, i+;,x=(i+10)*5;,printf( “%d”, x) ;,由三个语句构成一个复合语句,逗号表达式: a=1,b=2,c=a+b+3;,三 、程序的三种基本结构,C是属于结构化程序设计:,结构化程序设计特点:,(1)程序组成模块化.,(2)程序走向靠控制结构来完成。,三种基本结构:,1. 顺序结构(从上到下一句句执行),2. 选择(分支)结构,3. 循环结构,三 、程序的三种基本结构C是属于结构化程序设计:,4.2 *数据的输入输出,C没有输入与输出语句,其操作由输入输出函数实现。重点介绍在,标准函数库中的标准输入输出函数,。,一 、字符数据的输入输出,(一) 标准字符输出函数-putchar(),形式:,putchar(,变量),;,如: putchar(c);,作用:向终端(显示器,打印机)输出变量的值一次只能输出一个字符。,说明:(1)变量可以是,字符型变量或整型变量,。,(2),putchar() 包括在标准I/O库中,使用前应先用预编译命令:,#include “stdio.h” 或 #include ,4.2 *数据的输入输出 C没有输入与输出语句,其,例1:,#include “stdio.h”,main( ), char a,b; int y=65;,a=O;b=K;,putchar(a); putchar(b); putchar(n); putchar(y);,运行结果:,OK,“n”为换行的转义符。,65还是A,A,例1:#include “stdio.h”65还是AA,(一) 标准字符输入函数-getchar(),形式:,getchar(),;,没有参数,作用:,从终端输入一个字符,。,getchar()也 包括在标准I/O库中,使用前应先用预编译命令。,例2:,从键盘输入一个大写字母,改用小写字母输出(大、小写间差32),char,;,printf(”请输 一大写 字母:”);,c1= getchar(); c2=,;,(c2);,c1,c2,c1+32,putchar,(一) 标准字符输入函数-getchar()char,#include ,char c1,c2;,printf(”请输入一个大写字母:”);,c1= getchar();,c2=c1+32;,printf(“%,的ASC码值为:%,n”, c1,c1);,printf(“%,的ASC码值为:%,n”, c2,c2);,c,d,运行:,请输入一个大写字母:B (回车),B的ASC码值为: 66,b的ASC码值为: 98,#include cd运行:,二、*格式输入与输出,(一)格式输出函数-printf( ),1.一般格式:,p,rintf(,格式控制,输出表列),作用:,向终端输出若干任意类型的数据。,如:printf(“i=%d, i*j=%dn”, i, i*j),说明:,(1),格式控制,,,包含三种信息,:,提示字符串,如:“i=”, 原样照印,.,格式说明,:,由“%”和格式字符组成,如%d, %f, %c,等.其作用是将输出的数据转换为指定的格式输出.,%与格式符之间不能有空格,。,二、*格式输入与输出(一)格式输出函数-printf( ),转义字符, 如: n 换行符.,(2)格式控制要用,双引号引起来,.,(3)格式符,用小写%d%c,.,2.格式字符的用法,(1) d格式符,:,以十进制形式输出整数, %,d,按整型数据实际长度输出, %md, m,为指定的输出数据宽度,若数据宽度小于m, 左端填空格,若大于m则按实际输出.,a=12345; printf(“%3d,%8d”,a,a);,12345,_ _ _ 12345,% ld,输出长整型数据,也可用%mld.,转义字符, 如: n 换行符.(1) d格式符: 以十,main(), long u=32768;,printf(“u=%d,u);,getch();,输出?,-32768,main()-32768,(2),o格式符,以无符号8进制输出数据,也可以%lo, %mo,输出长整型和指定输出宽度 .,(3),x格式符,-,以无符号16进制输出整型数,也可以用%lx输出长整型和%mx,(4),u,格式符,-输出无符号十进制整型数,(5),c格式符,- 用以输出一个字符.,(2) o格式符以无符号8进制输出数据 也可以,(6) s格式符,-,输出一串字符,输出的字符串原样照印.,如:,printf(“ % s”, ”How are you!”);,% ms,若实际小于m,左补空格,大于m原样输出。,% -ms,若实际小于m,右补空格,大于m原样输出。,(7) f格式符,-,以小数形式输出实数,。, %f 不指定宽度,,,由系统决定,整数部分全输出,,,小数部分输出6位,。,double 用%lf,(6) s格式符-,% m.nf 指定输出m列,n位小数,。,数值向右靠,左补空格。,% - m.nf 输出m列,,,n位小数,数值向左靠,右补空格,。,例3,main( ), float f =123.456;,printf(“%f _ _ %10f _ _%10.2f _ _ %.2f_ _,%-10.2fn”,f,f,f,f,f);,m列含小数点位,结果:,123.456001_ _123.456001_ _,_ _ _ _,123.46 _ _ 123.46,_ _ 123.46,_ _ _ _, % m.nf 指定输出m列,n位小数。数值向右靠,左补空,(,8),e格式符,-以指数形式输出实数。,(9),g格式符,-用来输出实数,根据数值大小,自选f格式或e格式。,选占位小的,不输出小数后无意义的零。,如:,l=654.321;,printf(“%f,%e,%g”,l,l,l);,输出:,654.321000, 6.543210e+2 , 654.321,6,位 去掉后面的零,(8)e格式符-以指数形式输出实数。,(二)*格式输入函数-scanf( ),如:,int x,y;,scanf(“%d %d”, x 5,printf(“%d,%d”, x,y );,运行:,5_8 (或5 8 ) y 8,5,8,&为地址运算符,&x,为x在内存中的地址,。,getchar( )只能输入一个字符,scanf( )可以输任意类型的多个数据。,一般形式:,scanf(格式控制,地址表列),格式控制同printf,类似,地址表列为若干地址,用“,”分开,,以& 加变量形式,。,(二)*格式输入函数-scanf( )如:int x,y;,说明:,(1)格式控制中%和格式字符之外的字符,输入数据时,必输相应字符。如:,scanf(“%d,%d”,&x,&y);,中“,”是%和格式字符d之外的字符,因此,,输入数据时应输为:,5,8,若为%d: %d 应输为:,5,: 8,在定义x,y 时,c在编译时,就给 x,y分配了地址。执行scanf函数时,相当于将x,y赋值。比如:输5,8,相当于x=5,y=8。,说明: 在定义x,y 时,c在编译时,就给 x,y分,(2)程序中最好,用printf函数,,,提示用户输入的信息与格式。,(3)若格式说明间无分隔符:,输入数字时,可用空格或Tab键分隔或回车,。,输入字符时,不能用空格分隔,。,如:,scanf(“%d%d”,输入:,5_ 8 5 8,scanf(“%c%c”,&x,&y):,应:,ab 若a _ b ,则把_赋给y.,scanf(“%c,%c”,,应:,a, b,(2)程序中最好用printf函数,提示用户输入的信息与格式,(4) scanf格式字符见P83,表4.3和表4.4。,与printf类似。,主要掌握:,%,d, %,ld,,%,f, %,c, %,s,(5)输入数据时,不能规定精度,但可指定输入数据的宽度。,如:,scanf(“%8.3f”,是错的,。,但,scanf(“%5f%4d”,可以,输入时达到指定宽度则结束输入,如输入:,123.456789,a b,(4) scanf格式字符见P83,表4.3和表4.4。,例:输入两个实数,按从大到小输出,保留两位小数。,#include ,main(),float a,b,c;,printf(input :n);,scanf(%f,%f,if(ab)c=a,a=b;b=c;,printf(output:%.2f,%.2fn,a,b);,getch();,例:输入两个实数,按从大到小输出,保留两位小数。#inclu,4.3 *顺序结构程序设计举例,例4(4.10),输入三角形的三边,求三角形的面积,。,分析:,1.定义?输入?,2.计算公式:,area= s(s-a)(s-b)(s-c),s=(a+b+c)/2,3.输出?,注意,:,要用求平方根函数sqrt( )求面积,要调用数学函数库的函数,要调用头文件“math.h”.,#include “math.h”,aera=sqrt(),4.3 *顺序结构程序设计举例例4(4.10) 输入三角形,#include “math.h”,main( ),float a,b,c,s,area;,scanf(“%f,%f,%f ”, ,s=1.0/2*(a+b+c);,/*1.0为实数,1/2整数为0*/,area=sqrt(s* (s-a)*(s-b)*(s-c);,printf(“a=%7.2f, b=%7.2f, c=%7.2fn”,a,b,c);,printf(“area=%7.2fn”,area);,运行:,3,4,6,a=_ _ _3.00,b=_ _ _ 4.00,c=_ _ _ 6.00,area=_ _ _ 5.33,#include “math.h”,
展开阅读全文