第3 章
顺序结构程序设计
C 程序设计
2
30 M a r c h 2011
内容
1. C 语言的语句
2. 赋值语句
3. 输出函数
4. 输入函数
5. 一般输出函数
6. 一般输入函数
7. 顺序结构程序设计举例
C 程序设
计
330 M a r c h 2011
C 语言的语句概述
•C 语言的语句用来向计算机系统发出操作指令
•C 语言程序(函数)由语句组成
•C 语言提供了丰富的语句,可分为5大类:
流程控制语句函数调用语句表达式语句空语句
复合语句
C 程序设计
4
30 M a r c h 2011
C 语言的语句分类
1.流程控制语句(9种)
if-else for while do-while continue break switch goto
return
2.函数调用语句
函数调用后加一个分号构成函数调用语句。
3.表达式语句
在表达式后面加上分号,构成表达式语句。
常见的表达式语句:赋值语句——赋值表达式后加分号。
4.空语句:只由一个分号组成的语句
5.复合语句:用{}把一组语句合到一起成为一个语句
体,称之为复合语句。通常把具有一定联系、完成一定功
能的一组语句合在一起构成复合语句。
C 程序设计
530 M a r c h 2011
C 语言的语句分类
printf和scanf有什么不同其实,C 语言的语句可以概括为3大类:
流程控制语句、表达式语句、空语句
函数调用语句是表达式语句的特殊形式复合语句是上述语句的组合体。
C 程序设计
6
30 M a r c h 2011
赋值语句
赋值语句由赋值表达式后加分号构成。格式:赋值表达式;
赋值符号包括=及其扩展形式。[例]
int a, b;float x,y,z;char c;
b=99;c=’a’;
a=b; a+=9; x=a; y=a+c;c=b-(int)x;
z=sin(a*3.14/180);
C 程序设
计
730 M a r c h 2011
赋值语句
声明变量时,可以进行初始化,即对变量赋初值。
变量的初始化可看作是在变量声明后执行了一个赋值语句。[例]
注意:
初始化不是在编译阶段完成的(只有后面介绍的静态存储变量和外部变量的初始化是在编译阶段完成的),而是在程序运行时赋予初值的,相当于有一个赋值语句。
int a ,b=99;⇔{int a ,b ;b=99;}char c=’a’;⇔{char c ;c=’a’;}int *p=&a ;⇔{int *p ;p=&a ;}
C 程序设计
8
30 M a r c h 2011
输入/输出
C 语言本身不提供输入输出语句
C 语言的输入输出功能通过函数来实现,函数在头文件“stdio.h ”中加以声明。
使用这些函数前,需要在源程序中包含预编译命令:
#include <stdio.h>
注:输入输出语句并不是
C 语言的组成部分。
C 程序设计
930 M a r c h 2011
格式化输出函数—printf()
格式:
printf(”格式控制字符串”[,输出表列]);功能:向标准输出设备(显示器)有格式地输出;
“输出表列”标明输出项(是可选项),由逗号分隔开
的表达式组成;
“格式控制字符串”用于控制输出格式;
C 程序设计
10
30 M a r c h 2011
格式化输出函数—printf()
“格式控制字符串”可以包含3种形式的字符串:(1)格式指示字符串
由格式引导符号“%”和格式控制字符组成,其一般格式为
%[标志][宽度][.精度][类型]
标志:指明输出的靠齐方式:“+”——向右靠齐
“-”——向左靠齐
宽度:非负整数,指明输出项占的列宽;精度:非负整数;
指明浮点数中小数部分占的列宽,
或者指明字符串中从左算起字符的个数;
类型:指明输出项的类型,见下表:
C 程序
设计
1130 M a r c h 2011
格式化输出函数—printf()
格式字符
含义
c 以字符形式输出一个字符s 输出字符串
f 以小数形式输出单双精度实数,6位小数d,i 以有符号十进制形式输出整数u 以无符号十进制形式输出整数o 以无符号八进制形式输出整数X, x 以无符号十六进制形式输出整数x :输出小写a~f ;X :输出大写A~F
E, e 以科学记数法输出实数(分大小写E 和e )G,g
选择%e 和%f 格式输出中宽度较短的格
式,且不输出无意义的0 (分大小写E 和e )
C 程序设计
12
30 M a r c h 2011
格式化输出函数—printf()
除了格式控制符,还有附加格式控制符:
格式字符含义l :在d, o, x, u 之前出现,输出长整数m ,n :(1)m,n 为非负整数
(2)m 用于控制总的输出宽度
(3) 对于浮点数,n 控制小数的输出宽度;对于字符串,n 控制输出字符的个数;
-:使输出向左边靠齐(缺省为向右靠齐)
C 程序设
计
1330 M a r c h 2011
格式化输出函数—printf()
(2)转义字符串:
由“\”引导的转义字符串:
\n:换行打印;\t:输出指标符;
\r:将当前位置移到行首;\b:退格;\f:换页;\’,\”,\\分别输出单引号、双引号和反斜杠;\ddd: 输出3位8进制数代表的字符;
\xhh:输出2位16进制数代表的字符;等等
(3)其它字符串
上述两种格式控制字符串外的其他字符串,照原样输出。主要用于提示输出项的名称、含义等。
C 程序设计
14
30 M a r c h 2011
格式化输出函数—printf()
说明:
(1)当所给的总宽度不能满足输出项的需要时:
对于非实数,突破所给场宽的要求, 按实际需要输出;对于实数,满足小数场宽,突破总场宽,输出。
(2)输出项表中的每一项应当与格式控制串中对应的
指示类型相同,否则出错。
C 程序设
计1530 M a r c h 2011
格式化输出函数—printf()
[例]整数的格式输出#include<stdio.h>void main()
{ int a=123,b=-6789;long c=-98098234;printf("%d,%d,%ld\n",a,b,c);
printf("%4d,%-7d,%3d\n",a,b,b);printf("%o,%x\n",a,a);}输出结果:
123,-6789,-98098234
123,-6789 ,-6789
173,7b
C 程序设计
16
30 M a r c h 2011
格式化输出函数—printf()
[例]实数的格式控制输出#include<stdio.h>void main()
{ float a=12.345;double x=-98097.2341;printf("%f,%f\n",a,x);printf("%e,%E\n",a,x);
printf("%8.4f,%8.2f,%4.2f\n",a,a,a);}
输出结果:
12.345000,-98097.234100
1.234500e+01,-9.809723E+04 1
2.3450, 12.35,12.35
C 程
序设计1730 M a r c h 2011
格式化输出函数—printf()
[例]字符的格式控制输出#include<stdio.h>void main(){
char c='a';
printf("%c,%d\n",c,c);
printf("%-5c,%+5c\n",c,c);}
输出结果:a,97
a , a
C 程序设计
18
30 M a r c h 2011
格式化输出函数—printf()
[例]字符串的格式控制输出#include<stdio.h>#define s "ab123"void main(){
printf("%7s,%-7s\n",s,s);printf("%7.2s,%-7.2s\n",s,s);}
输出结果:
ab123,ab123 ab,ab
C 程序设
计1930 M a r c h 2011
格式化输出函数—printf()
[例]字符串的格式控制输出#include<stdio.h>void main(){
printf(”Please input two integers\n");printf(”which fall in [-100,100]\n");}
输出结果:
Please input two integers which fall in [-100,100]
C 程序设计
20
30 M a r c h 2011
格式化输出函数—printf()
[例]字符串的格式控制输出#include<stdio.h>void main()
{int a=2; float x=2.5;
printf(”Print values of ’a’and \”x\”\n”);printf(”a=%d\n x=%5.2f\n”, a, x);}
输出结果:
Print values of ’a ’and ”x ”a=2
x= 2.50
C 程序设计
2130 M a r c h 2011
格式化输入函数—scanf()
格式:
scanf (”格式控制字符串”,输入表列);功能:从标准输入设备输入数据;
输入表列:一串由逗号分隔开的地址表,每个地址的常见形
式是“&”后跟变量名。
格式控制字符串:由格式引导符“%”和格式控制字符组成的字符串;指明要输入的数据类型和输入方式;见下表:
C 程序设计
22
30 M a r c h 2011
格式化输入函数—scanf()
格式字符含义c 输入一个字符s 输入字符串f 以小数形式或指数形式输入单,双精度实数d,i 输入有符号十进制形式整数u 输入无符号十进制形式整数o 输入无符号八进制形式整数X, x 输入无符号十六进制整数E, e 作用同%f G,g 作用同%f
C 程序设计
2330 M a r c h 2011
格式化输入函数—scanf()
除了上述格式控制符,还有附加格式控制符:
格式字符含义
l 在d, o, x, u 之前出现输入长整数在e ,f 之前出现输入double 数h 在d, o, x,之前出现输入短整数
m m 为非负整数,m 用于控制总输入宽度*
读入本输入项但不赋给任何变量
C 程序设计
24
30 M a r c h 2011
格式化输入函数—scanf()
说明:
(1)输入多个同类型数据时,如果在格式控制字符
串中除了格式控制字符,没有别的字符,则输入数据之间用空格、回车、或tab 键分开;(2)输入多个不同类型的数据时,有时不需要分隔
符号。例如:
scanf(“%d%c%f ”,&i,&c,&x))输入时可输入:123A456.789;
C 程序设
计2530 M a r c h 2011
格式化输入函数—scanf()
(3)格式控制字符串中,可以出现其他的字符(只
能在%的左侧或控制字符的右侧),输入时也应当按相应的格式输入这些字符;例如,scanf(”%d :%c :%f”,&i,&c,&x))输入格式:123:A :456.789(4)输入数据的个数不应小于scanf 函数中输入变量
的个数;
(5)输入数据时,不能指定精度:
scanf(”%4.2f”,&x);是错误的
C 程序设计
26
30 M a r c h 2011
格式化输入函数—scanf()
[例]格式控制输入#include<stdio.h>void main()
{ int m; short n; long k; float x; char c;①scanf("%d%hd%ld",&m,&n,&k); ②scanf("%d,%hd,%ld",&m,&n,&k);
③scanf("%d%c%x",&m,&c,&x);
}
1 2 3↵或1↵2↵3↵
1,2,3↵或1,↵2,↵3↵
1a 2 ↵或1a2 ↵
C 程序设
计
2730 M a r c h 2011
格式化输入函数—scanf()
④scanf("%2d%5f",&m,&x);
⑤scanf("%d%*d%f",&m,&x);
⑥scanf("%1d%*2d%3f",&m,&x);}
11 23456789↵或1123456789↵或11↵23456789↵
1 2 3↵或1↵2↵3↵
122333 ↵或1 22 3333↵或1↵22↵3333↵
C 程序设计
28
30 M a r c h 2011
字符输入和输出
getchar()
:输入一个字符,并返回读入的字符;putchar(c):输出字符c.
它们在头文件“stdio.h ”中被声明,使用它们时,要在源文件中加入包含命令:#include <stdio.h>用这两个函数进行字符的输入输出,很方便,因为不需要进行格式说明,且输入不涉及变量及地址。
C 程序设计
2930 M a r c h 2011
字符输入和输出
[例]#include<stdio.h>void main(){
printf(”input a small character:”);char c=getchar();
printf(”The small character you input is:”);putchar(’\n’); putchar(c);
printf(”The capital character is:”);putchar(’\n’); putchar(c-32);}
C 程序设计
30
30 M a r c h 2011
字符的输入和输出
从上边的例子可见:
putchar(c) ⇔printf(”%c ”,c)c=getchar() ⇔scanf(”%c ”,&c)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论