C03_顺序
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§3·2 赋值语句
赋值语句是由赋值表达式加上一个分号构成。 C语言的赋值语句具有其他高级语言的赋值语句的一切 特点和功能。但也应当注意到它们的不同: (l) C语言中的赋值号“=”是一个运算符,在其他大多数语言中赋值号 不是运算符。 (2) 关于赋值表达式与赋值语句的概念,其他多数高级语言没有“ 赋值表达式”这一概念。作为赋值表达式可以包括在其他表达式之 中,例如: if ((a=b)>0) t=a ; 由此可以看到,C把赋值语句和赋值表达式区别开来,增加了表达式的 种类,能实现其他语言难以实现的功能。
C 程 序 设 计
§ 3.3 数据的输入与输出
C语言无I/O语句,I/O操作由函数实现 #include <stdio.h>
§ 3.4 数据输出
第 三 章 顺 序 结 构 设 计
字符输出函数
格式: putchar( c ) 参数: c为字符常量、变量或表达式 功能:把字符c输出到显示器上 返值:正常,为显示的代码值;出错,为EOF(-1)
C 程 序 设 计
例:字符的输出 /*ch3_1.c*/ #include <stdio.h> main( ) { int c; char a; c=65; a='B'; putchar(c); putchar('\n'); putchar(a); } 运行结果:A B
第 三 章 顺 序 结 构 设 计
格式输入函数
格式: scanf(“格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束 返值:正常,返回输入数据个数 地址表:变量的地址,常用取地址运算符& 格式字符:d,i,o,x,u,c,s,f,e
例: scanf(“%d”,&a); 输入:10 ↵ 则 a=10
附加格式说明符(修饰符) 修饰符 功 能 m 输出数据域宽,数据长度<m,左补空格;否则按实际输出 .n + 0 # l 对实数,指定小数点后位数(四舍五入) 对字符串,指定实际输出位数 输出数据在域内左对齐(缺省右对齐) 指定在有符号数的正数前显示正号(+) 输出数值时指定左面不使用的空位置自动填0 在八进制和十六进制数前显示前导0,0x 在d,o,x,u前,指定输出精度为long型 在e,f,g前,指定输出精度为double型
说明: 用“%c”格式符时,空格和转义字符作为有 效字符输入 输入数据时,遇以下情况认为该数据结束: 如 scanf(“%c%c%c”,&c1,&c2,&c3); 遇空格、TAB、或回车 若输入abc↵ 遇宽度结束 则a⇒c1, ⇒c2, b ⇒c3 遇非法输入 例 int x; 如 scanf(“%d%c%f”,&a,&b,&c); 输入函数留下的“垃圾”: char ch; 例 int x; 若输入1234a123o.26 ↵ 解决方法: int x; 例 scanf(“%d”,&x); charchar ch; ⇒a, ‘a’ ⇒b, 123 ⇒c ch; 1234 (1)用getchar()清除 则 scanf(“ %c”,&ch); scanf(“%d”,&x); (2)用函数fflush(stdin)清除全部剩余内容 scanf(“%d”,&x); 或 scanf(“%*c%c”,&ch); ch=getchar(); (3) 用格式串中空格或“%*c”来“吃掉” scanf(“%c”,&ch); printf(“x=%d,ch=%d\n”,x,ch); printf(“x=%d,ch=%d\n”,x,ch); 执行:123↵ 执行:123↵ 输出:x=123,ch=10 输出:x=123,ch=10
例 例 int a=1234; float f=123.456; static char c[]=“Hello,world!”; printf(“%8d,%-8d\n”,a,a); printf(“%10.2f,%-10.1f\n”,f,f); printf(“%10.5s,%-10.3s\n”,c,c); 运行结果:1234,1234 123.46,123.5 Hello,Hel
第 三 章 顺 序 结 构 设 计
2、 函数调用语句 直 接使用函数而构成的语句。如: printf(“ This is a Book!”) ; printf() ___是C语言提供的一个标准函数。 3、表达式语句 由 一个表达式构成一个语句,如: a=3; /* 这是一条赋值语句 */ 又 如: i=i+1; /* 与表达式i=i+1 不同 */ i=i+1 4、 空语句 、 一行中仅有一个分号。 5、复合语句(又称为分程序) 、 又称为分程序) 把多条语句包含在大括号“{ }”中,则为复合语句。如: { z=x+y; t=z/100; priintf(“%f “, t); }
例 : scanf(“%x”,&a); 输入:11 ↵ 则 a=17
附加格式说明符(修饰符) 修饰符 功 能 h 用于d,o,x前,指定输入为short型整数 l m * 用于d,o,x前,指定输入为long型整数 用于e,f前,指定输入为double型实数 指定输入数据宽度,遇空格或不可转换字符则结束 抑制符,指定输入项读入后不赋给变量
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00
//00001234 //0000123.46 //000+1234 //000+123.56
例 long a=65536; printf(“%d,%8ld\n”,a, a); //0, 65536
§3.5 数据输入
例: 0 、+ 例 int a=1234; float f=123.456; printf(“%08d\n”,a); printf(“%010.2f\n”,f); printf(“%0+8d\n”,a); printf(“0+10.2f\n”,f); 例: # 例 int a=123; printf(“%o,%#o,%X,%#X\n”,a,a,a,a); //173,0173,7B,0X7B 例 l:
int a,b;
它不产生机器指令,而只是对变量的定义。 它不产生机器指令,而只是对变量的定义。
第 三 章 顺 序 结 构 设 计
C语句可分为五类:
1、控制语句 2、函数调用语句 3、表达式语句 4、空语句 5、复合语句
C 程 序 设 计
1、 控制语句 、
① if ( ) …else … ② for ( ) … ③ where ( ) … ④ do … where( ) ⑤ continue ⑥ break ⑦ switch ⑧ goto ⑨ return 以上9种语句,其中,( )中的内容是表示 条件;…表示语句行。
格式输出函数
格式:printf printf(“格式控制串”,输出表) printf 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回EOF(-1)
输出表:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息 格式说明: %[修饰符]格式符,用于指定输出格式 普通或转义字符:原样输出
三种基本结构
顺序结构
A B A B N-S图
流程图
选择结构
二分支选择结构
真
P
假 真 B A
P B
假
A
k k=k1 k=k2 A2 ... k=kn k=ki Ai ... An
多分支选择结构
A1
循环结构
当型循环结构
P 真 A
假
当P为真 A
直到型循环结构
假
A P 真
A 直到P为真
注:A,B,A1….An可以是一个简单语句,也可以是一个基本结构
例 main() 例 int a=3,b=4; 说明 例 printf(“%d %d\n”,a,b); int a=3,b=4; { unsigned int u=65535; 格式字符要用小写 printf(“%d %d\n”,a,b); 格式字符与输出项个数应相同,按先后顺序一一对应 printf(”u=%d\n",u); printf(“a=%d , b=%d\n”,a,b); printf(“a=%d , b=%d\n”,a,b); } 输出结果: 3格式字符与输出项类型不一致,自动按指定格式输出 4 输出结果:u=-1 a=3, b=4
格式符:
格式字符:
d,i x,X o u c s e,E f g %%
十进制整数
int a=567;printf ( “%d”,a);
567 ff 101 567 A ABC 5.677890e+02 567.789000 567.789 %
十六进制无符号整数 int a=255;printf(“%x”,a); int a=65;printf(“%o”,a); 八进制无符号整数 不带符号十进制整数 int a=567;printf(“%u”,a); 单一字符 字符串 指数形式浮点小数 小数形式浮点小数 e和f中较短一种 百分号本身 char a=65;printf(“%c”,a); printf(“%s”,“ABC”); float a=567.789;printf(“%e”,a); float a=567.789;printf(“%f”,a); float a=567.789;printf(“%g”,a); printf(“%%”);
字符输入函数
格式:getchar( ) 功能:从键盘读一字符 返值:正常,返回读取的代码值;出错,返回EOF(-1) 例: /*输入大写字母,输出16十六进制数*/
#include <stdio.h> 运行结果: main() Enter a character:A↵ { int c; A--->hex41 printf("Enter a character:"); c=getchar(); printf("%c--->hex%x\n",c,c); }
例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 例 scanf(“%3c%2c”,&c1,&c2); 例: scanf(“%3d%*4d%f”,&k,&f); 例 scanf(“%2d%*3d%2d”,&a,&b); 输入 19991015 ↵ 输入 12345678765.43↵ 输入 abcde ↵ 输入 1234567↵ 则1999⇒yy, 10 ⇒mm, 15 ⇒dd 则123⇒k, 8765.43⇒f 则‘a’⇒c1, ‘d’ ⇒c2 则12⇒a, 67⇒b
例 : m.n
例 int a=1234; float f=123.456; char ch=‘a’; printf(“%8d,%2d\n”,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f); printf(“%3c\n”,ch);
运行 1234,1234 结果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a 例: static char a[]=“Hello,world!” printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”rld! Hello Hello Hel
输入分隔符的指定 一般以空格、TAB或回车键作为分隔符 其它字符做分隔符:格式串中两个格式符间字符
例 scanf(“%d%o%x”,&a,&b,&c); 例例: scanf(“%d,%d”,&a,&b) scanf(“%d:%d:%d”,&h,&m,&s); printf(“a=%d,b=%d,c=%d\n”,a,b,c); 输入 12:30:45↵ 输入输入 3,4 ↵ 123 123 123↵ 例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 则12 ⇒h, 30 ⇒b 45 ⇒s 则3⇒a, 4 ⇒m, 输出 a=123,b=83,c=291 输入 a=12,b=24,c=36 ↵
第三章 最简单的C程序设计
——顺序程序设计
C 程 序 设 计
§ 程序的三种基本结构
结构化程序设计
基本思想:任何程序都可以用三种基本结构表示,限 制使用无条件转移语句(goto) 结构化程序:由三种基本结构反复嵌套构成的程序叫 ~ 优点:结构清晰,易读,提高程序设计质量和效率
第 三 章 顺 序 结 构 设 计
C 程 序 设 计
§3·1 C 语句概述 1
C语句是用来向计算机系统发出操作指令。 语句是用来向计算机系统发出操作指令。 语句是用来向计算机系统发出操作指令 一条语句经编译后产生若干条机器指令。 一条语句经编译后产生若干条机器指令。 要注意,程序中的声明部分不应称为语句。如: 要注意,程序中的声明部分不应称为语句。