
第3章顺序结构程序设计 本章要点 C语言如何完成计算任务 计算结果如何输出 外部数据知何输入
本章要点 ⚫ C语言如何完成计算任务 ⚫ 计算结果如何输出 ⚫ 外部数据如何输入 第3章 顺序结构程序设计

第3章 顺序结构程序设计 3.1语句类型 ★C语句:以“:”作分隔符,编译后产生机器指令 ★C语句分类 》表达式语句:表达式加分号构成 函数调用语句;函数调用加分号 如 total=total+limit: a=3; func() printf(Hello,world!\n");
第3章 顺序结构程序设计 3.1 语句类型 C语句:以“;”作分隔符,编译后产生机器指令. C语句分类 ❖表达式语句:表达式加分号构成 ❖函数调用语句;函数调用加分号 如 total=total+limit; a=3; func( ); printf(“Hello,world!\n”);

必空语句:; 程序控制语句(9种) 分支 if()~else~ switch for() 循环 while() do~while( continue break 辅助控制 goto return
❖空语句:; ❖程序控制语句(9种) if( )~else~ switch for( )~ while( )~ do~while( ) continue break goto return 分支 循环 辅助控制

》复合语句:用{,}括起来的一组语句 ●一般形式:{ [数据说明部分;] 执行语句部分; ●说明: ◆“)”后不加分号 ◆语法上和单一语句相同 ◆复合语句可嵌套
❖复合语句:用 {.}括起来的一组语句 ⚫一般形式: { [数据说明部分;] 执行语句部分; } ⚫说明: ◆“}”后不加分号 ◆语法上和单一语句相同 ◆复合语句可嵌套

赋值运算符和表达式 简单赋值运算符 例 a-3; 符号: d=func () 格式:变量标识符=表达式 cd+2; 作用:将一个数据(常量或表达式)赋给一个变量 说明: 结合方向:自右向左 例 3=x-2*y 优先级:14 a+b=3; 左侧必须是变量,不能是常量或表达式
赋值运算符和表达式 简单赋值运算符 符号: = 格式:变量标识符=表达式 作用:将一个数据(常量或表达式)赋给一个变量 例 a=3; d=func(); c=d+2; 说明: 结合方向:自右向左 优先级: 14 左侧必须是变量,不能是常量或表达式 例 3=x-2*y; a+b=3;

赋值运算符和表达式 ★赋值转换规则:使赋值号右边表达式值自动转换成其 左边变量的类型 ★赋值表达式的值与变量值相等,且可嵌套 例: a=b=c=5 //表达式值为5,a,b,c值为5 a=(b=5) //表达式值为5,b=5;a=5 a=5+(c=6) //表达式值11,c-6,a=11 a=(b=4)+(c=6) //表达式值10,a=10,b=4,c-6 a=(b=10)/(c-2)//表达式值5,a=5,b=10,c=2
赋值转换规则:使赋值号右边表达式值自动转换成其 左边变量的类型 例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) 赋值表达式的值与变量值相等,且可嵌套 //表达式值为5,a,b,c值为5 //表达式值11,c=6,a=11 //表达式值10,a=10,b=4,c=6 //表达式值5,a=5,b=10,c=2 //表达式值为5 ,b=5;a=5 赋值运算符和表达式

3.3数据的格式输入与格式输出 ▲C语言无I/O语句,I/O操作由函数实现 #include ★格式输出丞数 格式:printf(“格式控制串”,输出表列) 功能:按指定格式向显示器输出数据 公输出表列:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息 ●格式说明: %修饰符]格式字符,用于指定输出格式 ●普通字符或转义序列:原样输出
3.3数据的格式输入与格式输出 C语言无I/O语句,I/O操作由函数实现 #include 格式:printf(“格式控制串”,输出表列) 功能:按指定格式向显示器输出数据 格式输出函数 ❖输出表列:要输出的数据(可以没有,多个时以“,”分隔) ❖格式控制串:包含两种信息 ⚫格式说明: %[修饰符]格式字符 ,用于指定输出格式 ⚫普通字符或转义序列:原样输出

格式字符: di 十进制整数 inta=567 printf(“%d”,a)y 567 xX 十六进制无符号整数 int a=255;printf("%x",a); f 0 八进制无符号整数 int a=65;printf"%o",a); 101 u 不带符号十进制整数 int a=567;printf("u",a); 567 单一字符 char a=65;printf("%c",a); A 字符用例 例 int a=3,b=4; BC e.E 指数形 printf(%d%d小n”,a,b): 677890e+02 f 小数形 printf("a-%d,b-%d n",a,b); 7.789000 e和f中较短 输出结果:34 g 567.789 %% 百分号本身 a=3,b=4 % ●说明 ◆格式字符要用小写 ◆格式字符与输出项个数应相同,按先后顺序一一对应 ◆输出转换:格式字符与输出项类型不一致,自动按指定 格式输出
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 % ⚫说明 ◆格式字符要用小写 ◆格式字符与输出项个数应相同,按先后顺序一一对应 ◆输出转换:格式字符与输出项类型不一致,自动按指定 格式输出 例 int a=3,b=4; printf(“%d %d\n”,a,b); printf(“a=%d , b=%d\n”,a,b); 例 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

附加格式说明符(修饰符) 修饰符 功 能 m 输出数据域宽,数据长度<,左补空格;否则按实际输出 对实数,指定小数点后位数(四舍五入) .n 对字符串,指定实际输出位数 输出数据在域内左对齐(缺省右对齐) 指定在有符号数的正数前显示正号(+) 0 输出数值时指定左面不使用的空位置自动填0 # 在八进制和十六进制数前显示前导0,0x 在d,0,X,u前,指定输出精度为long型 在e,f,g前,指定输出精度为double型
❖附加格式说明符(修饰符) .n 对实数,指定小数点后位数(四舍五入) 对字符串,指定实际输出位数 修饰符 功 能 m 输出数据域宽,数据长度<m,左补空格;否则按实际输出 - 输出数据在域内左对齐(缺省右对齐) 指定在有符号数的正数前显示正号(+) + 0 输出数值时指定左面不使用的空位置自动填0 # 在八进制和十六进制数前显示前导0,0x 在d,o,x,u前,指定输出精度为long型 在e,f,g前,指定输出精度为double型 l

例mn 例 inta=1234; float f=123.456; char ch=‘a'; printf%8d,%2dn",a,a); printf("f,%8f,%8.1f%.2f%.2eln",fff ff); printf(%3cn",ch); 运行 1234,1234 结果: 123.456000,123.456000, 123.5,123.46,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