第4章简单的C程序设计 4.1流程结构和语句 程序的基本结构 顺序结构 选择结构 循环结构
第4章 简单的C程序设计 4.1 流程结构和语句 程序的基本结构: 顺序结构 选择结构 循环结构
4.1流程结构和语句 C语言中的语句:完成一定的操作任务 、表达式语句:P70 在任何表达式后面加一个分号“;”就构成一条 表达式语句。 例x=3 xty;
4.1 流程结构和语句 C语言中的语句:完成一定的操作任务 1、表达式语句: P70 例 x=3; x+y; 在任何表达式后面加一个分号“ ;”就构成一条 表达式语句
2、控制语句: 用来完成一定的控制功能。 条件语句(if) 循环语句( while, do while,for 结束本次循环语句( continue 中止执行 switch或循环语句( (break) 多分支选择语句( switch 转向语句(goto) 从函数中返回语句 return
2、控制语句: 条件语句(if) 循环语句(while,do while,for) 结束本次循环语句(continue) 中止执行switch或循环语句(break) 多分支选择语句(switch) 转向语句(goto) 从函数中返回语句(return) 用来完成一定的控制功能
3、函数调用语句: 由一个函数调用加一个分号构成函数调用语句。 例 printf(" hello!”) 4、空语句: 5、复合语何: 只有一个分号的语句,它 用把一些语句 什么也不做,有时候用来 括起来。 作被转向点,或循环语句 中的循环体。 例{t=x; ⅹ=y 例 y=t;}
3、函数调用语句: 由一个函数调用加一个分号构成函数调用语句。 例 printf(“hello!”); 4、空语句: 只有一个分号的语句,它 什么也不做,有时候用来 作被转向点,或循环语句 中的循环体。 例 ; 5、复合语句: 用{}把一些语句 括起来。 例 {t=x; x=y; y=t;}
4.5格式输入输出函数 C语言无I/O语句,I/O操作由函数实现 include 标准输出函数 printf 格式: printf(“格式控制串”,输出表) 功能:按指定格式向显示器输出数据 输出表:要输出的数据(可以没有,多个时以“”分隔) 格式控制串:包含两种信息 格式说明:%[修饰符]格式字符,用于指定输出格式 普通字符或转义序列:原样输出 格式字符
C语言无I/O语句,I/O操作由函数实现 #include 4.5 格式输入输出函数 格式:printf(“格式控制串”,输出表) 功能:按指定格式向显示器输出数据 –标准输出函数printf • 输出表:要输出的数据(可以没有,多个时以“ , ”分隔) • 格式控制串:包含两种信息 –格式说明:%[修饰符]格式字符,用于指定输出格式 –普通字符或转义序列:原样输出 • 格式字符
格式字符 di+进制整数 int a=567: printf(%od, a 567 xX+六进制无符号整数inta=25 printf(/ox3a f 0八进制无符例inta-3b-4 101 u不带符号十 printf(%/od%dm2ab) 567 单一字符 printf( a=%d, b=%dn, a, b) A 字符串 输出结果:34 ABC a=3,b=4 e,E指数形式浮 5.677890e+02 f小数形式浮输出结果:u=1 567789000 ge和P较短一种 float a=567789: printf(%og, a) 567789 %%百分号本身 printf(%0%0) 说明 格式字符要用小写 111111111111111165535 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换:格式字符与输出项类型不一致,自动按指定格式输出
d,i x,X o u c s e,E f g %% 格式字符: 十六进制无符号整数 不带符号十进制整数 十进制整数 指数形式浮点小数 单一字符 字符串 八进制无符号整数 小数形式浮点小数 e和f中较短一种 百分号本身 int a=567;printf ( “%d”,a); int a=255;printf(“%x”,a); int a=65;printf(“%o”,a); int a=567;printf(“%u”,a); 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(“%%”); 567 ff 101 567 A ABC 5.677890e+02 567.789000 567.789 % • 说明 – 格式字符要用小写 – 格式字符与输出项个数应相同,按先后顺序一一对应 – 输出转换:格式字符与输出项类型不一致,自动按指定格式输出 例 main() { unsigned int u=65535; printf(“u=%d\n”,u); } 输出结果:u=-1 例 int a=3,b=4; printf(“%d %d\n”,a,b); printf(“a=%d , b=%d\n”,a,b); 输出结果: 3 4 a=3, b=4 11 11 11 11 11 11 11 11 65535
附加格式说明符(修饰符) 修饰符 能 m输出数据域宽数据长度<m左补空格否则按实际输出 对实数指定小数点后位数(四舍五入 对字待串指定实际输出位数 输出数据在域内左对齐(缺省右对齐) 指定在有符号数的正数前显示正号(+) 0# 输出数值时指定左面不使用的空位置自动填0 在八进制和十六进制数前显示前导0.0x 在d,O,x,u前,指定输出精度为1ong型 在e,f,g前,指定输出精度为 double型
• 附加格式说明符(修饰符) .n 对实数,指定小数点后位数(四舍五入) 对字符串,指定实际输出位数 修饰符 功 能 m 输出数据域宽,数据长度<m,左补空格;否则按实际输出 - 输出数据在域内左对齐(缺省右对齐) 指定在有符号数的正数前显示正号(+) + 0 输出数值时指定左面不使用的空位置自动填0 # 在八进制和十六进制数前显示前导0,0x 在d,o,x,u前,指定输出精度为long型 在e,f,g前,指定输出精度为double型 l
例 例inta=1234 float f=123. 456 char ch="a printf(8d,%2dn”,aa) printf(" %of, %8f, %8.1f, %.2f, %.2en',f,f, f, f,f) printf(903c,, ch) 还行 1234.1234 结果:123.456000,123.456000.123.5,12346,1.23e+02 a
例 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 例 m.n
fG] static char a[=Hello, world printf(" %osn%15sn%10.5sn02.5sn%.3sn', a, a, a, a, a) 运行结果: Hello, world! Hello world! Hello Hello Hel
例 static char a[]=“Hello,world!” printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a); 运行结果:Hello,world! Hello,world! Hello Hello Hel
例 例inta=1234; float f123. 456 static char c[=Hello, world printf(%8d, %-8d0 odn.aaa printf(%102f, %0-10 1fn,ff) printf( %/10.5s, %0-10. send\n,c, c) 运行结果: 1234.1234 1234 123.46.123.5 123.456000 Hello. Hel end
例 int a=1234; float f=123.456; static char c[]=“Hello,world!”; printf(“%8d,%-8d,%d\n”,a,a,a); printf(“%10.2f,%-10.1f\n”,f,f); printf(“%10.5s,%-10.3send\n”,c,c); 运行结果:_ _ _ _1234,1234_ _ _ _,1234 _ _ _ _123.46,123.5_ _ _ _ _,123.456000 _ _ _ _ _Hello,Hel_ _ _ _ _ _ _end 例 -