顺序结构和常用语句
第4讲 顺序程序设计,一、顺序程序设计 二、格式输出 三、格式输入,程序的三种基本结构:,顺序结构:程序中的语句按顺序无条件地执行。 分支(选择)结构:程序中的语句有条件地执行。 循环(重复)结构:程序中的语句有条件地重复执行。,一、顺序程序设计,表达式语句:任何表达式加上分号构成。 如:x=1; y=x+y; - -x; y+1; 函数调用语句:由一次函数调用加上分号构成 如:printf(“ Very Good!n“);,一、顺序程序设计- 语句,控制语句:控制程序的流程 。 如:ifelse语句,while语句,return语句等。 复合语句: 用 括起来组成的一个语句。 如:if (ab) x=0;b=b+1;x=a; 空语句:仅由一个”;”构成的语句。,一、顺序程序设计- 语句,一、顺序结构程序设计方法 编写步骤 第一步:输入参数; 第二步:根据参数计算; 第三步:输出计算结果。,四、顺序结构程序设计例题 1、输入两个数,交换它们的值。,/*参考程序*/ #include int main() int a,b,temp; scanf(“%d,%d“, ,这三条语句能够实现什么功能? a=a+b; b=a-b; a=a-b;,例2:输入一个三位数,按反序输出。 例如: 输入123,输出321。,/*参考程序*/ #include int main() int x,a,b,c,y; scanf(“%d“, ,C语言对数据的输入、数据的输出是通过函数实现的。其中最基本的有:格式输出函数printf( ),格式输入函数scanf( ),字符输出函数putchar( ),字符输入getchar( )。,一、顺序结构程序输入输出,格式输出: printf(“格式控制“,输出表列); 功能:通过标准输出设备(如显示器)输出一组数据。输出形式由“格式控制“字符串规定。 输出列表:用逗号分隔多个输出列表,输出列表可以是任意的合法表达式。,二、格式输入、输出函数,格式输出函数printf()的格式说明:,printf(“ a+b = %5.2 f “ , c );,输出结果:普通字符原样输出,输出表列根据格式控制符号来输出,即格式控制符控制输出表列的输出结果。,用于输出的格式字符,二、输出整形数,%d:按整型数据的实际长度输出。 %md:m为指定的输出长度。如果数据位小于m,则左端补以空格;大于m,则按实际位输出。,例:printf(“%4d,%4d“,a,b); 若a=12, b=12345则输出为:,%o:以八进制数形式输出整数,且不带符号。 %x:以十六进制数形式输出整数,且不带符号。 %u:用来输出unsigned int 数据,即无符号整数,输出十进制数。,二、输出整形数,#include main() int a ; a=20; printf(“a=%dn“, a); printf(“a=%on“, a); printf(“a=%xn“, a); ,例:写出下面程序的执行结果。,执行结果: a=20 a=24 a=14,#include main( ) int a, b, c; a=20; b=020; c=0x20; printf(“a=%d,b=%d,c=%dn“, a,b,c); printf(“a=%o,b=%o,c=%on“, a,b,c); printf(“a=%x,b=%x,c=%xn“, a,b,c); ,例:写出下面程序的执行结果。,程序的执行结果: a=20, b=16, c=32 a=24, b=20, c=40 a=14, b=10, c=20,#include main( ) short int a,b; unsigned short c; a=-1; b=c=65535; printf(“a=%d,b=%d,c=%dn“, a,b,c); printf(“xa=%x,xb=%x,xc=%xn“,a,b,c); printf(“ua=%u,ub=%u,uc=%un“,a,b,c); ,例:写出下面程序的执行结果。,执行结果: a=-1, b=-1,c=65535 a=ffffffff, b=ffffffff,c=ffff a=4294967295,b=4294967295,c=65535,思考:如果 a=32768; b=c=-32768 程序的执行结果 ?,二、输出字符,%c:用来输出一个字符。 注意:可以输出整数对应的ASCII码字符;也可以输出字符对应的ASCII码。,int x=65; printf (“%c“,x);,int x=A; printf (“%d“,x);,输出: A,输出: 65,二、输出字符,二、字符输出,字符输出:putchar (c ); c为参数,它可以是字符型变量、字符型常量或转义字符。 程序中需要增加包含命令:#include 或者:#include “stdio.h“,#include “stdio.h“ main( ) char a ; int b ; a='b' b = 111; putchar( a ); putchar( b ); putchar('y'); putchar('n'); ,例:putchar( )函数例题 (写出执行结果),程序运行结果: boy,说明: “o“的ASCII码为111。,%s:用来输出一个字符串。 例:printf(“%s“,“Hello!“); 输出为:Hello。 %ms:输出的字符串占m列。如果字符串长度小于m,则左端补以空格;否则输出整个字符串。,二、输出字符串,%-ms:如果串长小于m,则字符串向左靠,右补空格,其余同上。 %m.ns:输出的字符串占m列,但只取字符串中左端n个字符,字符输出在m列的右侧,左端补空格。 %-m.ns:- 是左对齐,即右补空格。,二、输出字符串,#include main( ) char str1 =“abcdefg“; printf(“1234567890n“); printf(“%sn“, str1); printf(“%10sn“, str1); printf(“%-5sn“, str1); printf(“%10.5sn“, str1); printf(“%-10.5sn“, str1); ,例:写出下面程序的执行结果。,执行结果为: 1234567890 abcdefg abcdefg abcdefg abcde abcde,%f:不指定字段宽度,整数部分全部输出,小数部分输出6位。 %m.nf:指定输出数据占m列,其中有n位小数。若数值长度小于m,则左端补以空格。 %-m.nf:功能同上,右端补以空格。,二、输出实型数据,%e:不指定字段宽度,系统自动给出6位小数,指数部分占5位。其中“e“占1位,指数符号占1位,指数占3位。,二、输出实型数据,#include main( ) float x=123.456; printf(“1234567890n“); printf(“%fn“, x); printf(“%11.3n“, x); printf(“%10.3fn“, x); printf(“%-10.3fn“, x); ,例:写出下面程序的执行结果。,执行结果为: 1234567890 123.456000 1. 235e+002 123.456 123.456,输入函数:scanf(“格式控制”,地址表列); 格式控制:与printf相同,但普通字符按原样输入。 地址表列:由若干个变量地址组成的列表。 地址是由“运算得到的。 “是取址运算符,单目运算符,右结合性。,三、输入,普通字符应该原样输入,格式符中无普通字符时,可用空格、Tab键、回车键作分隔符。 如果要使a、b的值为12和678,则: 例1: scanf(“%d%d“, 可以采用格式:12 678,三、数值型数据的输入,例2: scanf(“%d,%d“, 必须采用格式: a=12, b=678,三、数值型数据的输入,无符号数可用 %u、%o、%x 格式输入。 输入格式符带有 * :表示该数据不赋值。 例:scanf(“%d%*d%d“, 键入: 12 34 567 则 a=12, c=567, 34未赋值。,三、数值型数据的输入,数据输入时不可规定精度,但可确定宽度。 例:scanf(“%3f“, 非法。,三、数值型数据的输入,用c格式符输入字符时,空格均为有效字符。 例: scanf(“%c%c%c“, 若键入 ABC 则 a=A,b=B,c=C 若键入 A B C 则 a=A,b=空格,c=B,三、字符输入,三、字符输入,函数getchar() getchar()只能接收一个字符,该字符可赋给字符变量。,#include void main( ) char c ; c=getchar(); putchar(c); ,功能:输入一个字符,再将该字符输出。,三、混合数据的输入,scanf(“%d%c%f”,