1
第 4章 顺序程序设计
教学目与要求,
了解 C语句的分类,理解输入输出的概念及在 C中的实现,
掌握赋值语句,字符数据及格式输入输出。
教学内容:
C语句概述;赋值语句;数据输入输出的概念及在 C语言中的实现;字符数据的输入输出;格式输入与输出;顺序结构程序设计举例
教学难点与重点:
赋值语句的格式及作用,字符数据的输入输出,printf和
scanf函数的功能,格式及使用方法。
2
§ 4.1 C语句概述
C程序源程序文件 1 源程序 文件 2 源程序文件 N。。。。
预处理命令 全局变量声明 函数 1 。。。。 函数 N
函数首部 函数 体局部 变量 声明 执行语句
C语句,以分号作分隔符,
编译后产生机器指令,完成一定操作任务。
3
for( )~ (循环)
while( )~ (循环)
do~while( ) (循环)
选择
(分支)
循环
(重复)
if( )~else~ (条件)
switch (多分支)
continue (结束本次循环)
break (终止 switch或循环语句)
goto (转向)
return (从函数返回)
辅助控制
(1) 程序控制语句
4
控制语句,用于完成一定的控制功能,
顺序:按语句顺序执行例如:
顺序结构语句 A
语句 B
float a,b,c,s,area;
scanf(“%f,%f,%f”,&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
各语句依次顺序执行
5
选择结构,if( 表达式 ) …… else
表达式语句 A 语句 B
真 假选择结构
int a,b;
if(a>b)
printf(“%d”,a);
else
printf(“%d”,b);
例如:
6
循环结构,do…… while或 while或 for
P
A
真假当型循环 例:
main( )
{ int t=1,i=2;
while (i<=5)
{ t=t*i;
i++;
}
printf(“t=%d”,t);}
7
循环结构,do…… while或 while或 for
A
P
直到型循环假真例:
main( )
{ int t=1,i=2;
do
{ t=t*i;
i++;
}
while (i<=5);
printf(“t=%d”,t);}
8
3.简单表达式语句赋值语句:
如,i=1;x=sin(y);
4.空语句:
如,;
问题,既然空语句什么都不作,为什么还要它?
(空语句可用来作被转向点,或 循环语句中的循环体)
2.函数调用语句:
如,printf(“This is a c programe”);
9
(5) 复合语句将几个表达式组合在一起,形成一个复合表达式语句 。
例如,++i,++j; i=1,j=2;
用 { }把一些语句括起来成为复合语句。
如,{ z=x+y; t=z/100; printf(“%f”,t);}
注意,} 后无分号,其余各行均有分号 。
例 4.1 main( )
{ int a;
{ int b;
b=3; //复合语句 ( 分程序 )
printf(“%d\n”,a+b);
}
b=1; }
★ b的作用域 只 在 内层 大 括 号这 样 一 个局部由于 b是复合语句中定义的,在它之外使用是错误的
4-1.c
说明,花括号配对规则,从后向前配对,一个后花括号和它最近的前花括号配对。
10
§ 4.2 赋值语句赋值语句是由赋值表达式加上一个分号构成
1.C语言中的赋值号,=”是一个运算符,而其它大多数语言中赋值号不是运算符。
2.注意在变量说明中给变量赋初值和赋值语句的区别。
在变量说明中,不允许连续给多个变量赋初值。
如说明是错误的,int a=b=c=5
必须写为 int a=5,b=5,c=5;
而赋值语句允许连续赋值。
下述语句是合法的,if((x=y+5)>0) z=x;
语句的功能是,若表达式 x=y+5大于 0则 z=x。
下述语句是非法的,if((x=y+5;)>0) z=x;
因为 x=y+5;是语句,不能出现在表达式中。
11
§ 4.3数据输入输出的概念与 C语言中的实现
输出,向外部输出设备(显示器,打印机,磁盘等)输出数据。
输入,从输入设备(键盘,磁盘,光盘,扫描仪等)输入数据
实现,C语言中没有输入或输出语句。输入和输出操作都是由函数来实现的。
在使用C语言库函数时,要用预编译命令 #include
将有关“头文件”包括到源文件中。
使用标准输入输出库函数时要用到,stdio.h”文件
#include< stdio.h >
或
#include,stdio.h”
12
§ 4.4字符数据的输入输出
4.4.1 字符输出函数 putchar
向终端输出 一个字符,一般形式为
putchar( 变量名 );
4.4.2 字符输入函数 getchar
从终端(或系统隐含指定的输入设备)输入 一个字符,它 没有参数,一般形式为 getchar()
函数的值就是从输入设备得到的字符。
#include <stdio.h>
main()
{ int c; printf("Enter a character:");
c=getchar(); printf("%c--->hex%x\n",c,c);
}
注意,1,当输入多个字符时,多余字符作废;
2,用 getchar()得到的字符可以赋给字符变量,整型变量或作为表达式的一部分。
/*ch4_1.c*/
#include <stdio.h>
main()
{ int c; char a;
c=65; a='B';
putchar(c); putchar('\n');
putchar(a);
}
13
1.printf函数格式,printf(,格式控制,,输出表 )
功能,按 自右向左 的顺序,依次计算,输出列表,中 各表达式的值,再 按,格式串,规定的 格式 将表达式的值输出到 显示器 。
4.5 格式输出函数
格式控制串:包含两种信息
格式说明,%[修饰符 ]格式字符,用于指定输出格式
普通字符或转义序列:原样输出
输出表,要输出的数据(可以没有,多个时以“,”
分隔)
14
d,i
x,X
o
u
c
ms
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);
例 main()
{ unsigned int u=65535;
printf(”u=%d\n",u);
}
2,格式字符
15
附加格式说明符(修饰符) %[修饰符 ]格式字符
.n 对实数,指定小数点后位数 (四舍五入 )对字符串,指定实际输出位数修饰符 功 能
m 输出数据域宽,数据长度 <m,左补空格 ;否则按实际输出输出数据在域内左对齐(缺省右对齐 )-
指定在有符号数 的正数前显示正号 (+)+
输出数值时指定左边不使用的空位置自动填
0
0
在八进制和十六进制数前显示前导 0,
0x
#
在 d,o,x,u前,指定输出精度为 long
型在 e,f,g前,指定输出精度为 double
型
l
16
例 int a=1234; float f=123.456; char ch=?a?;
printf(“%-8d,%8d%2d\n”,a,a,a);
printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f);
printf(“%3c\n”,ch);
运行 1234,1234,1234
结果,123.456000,123.456000,123.5,123.46,1.23e+02
a
例 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
17
4.5.2 输入函数
1.一般形式,scanf(“格式控制串,,地址表 )
功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束
地址表:变量的地址,常用取地址运算符 &
格式字符,d,i,o,x,u,c,s,f,e
例 scanf(“%d”,&a);
输入,10?
例 scanf(“%x”,&a);
输入,11?
a=10 a=17
18
附加格式说明符(修饰符)
l
修饰符 功 能
h
m
*
用于 d,o,x前,指定输入为 short型整数用于 d,o,x前,指定输入为 long型整数用于 e,f前,指定输入为 double型实数指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量
例 scanf(“%4d%2d%2d”,&yy,&mm,&dd);
输入 19991015?
例 scanf(“%3d%*4d%f”,k,&f);
输入 12345678765.43?例 scanf(“%2d %*3d %2d”,&a,&b);输入 12 345 67?
例 scanf(“%3c%2c”,&c1,&c2
输入 abcde?
19
输入分隔符的指定一般以空格,TAB或回车键作为分隔符
例 scanf(“%d%o%x”,&a,&b,&c);
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
输入 123 123 123?
例 scanf(“%d:%d:%d”,&h,&m,&s);
输入 12:30:45?
例 scanf(“%d,d”,&a,&b)
输入 3,4?
输出 a=123,b=83,c=291h=12,m=30,s=45a=3,b=4
20
注意,用,%c”格式符时,空格和转义字符 作为有效字符输入
如 scanf(“%c%c%c”,&c1,&c2,&c3);
若输入 a b c?
输入数据时,遇以下情况认为 该数据结束,
遇空格,TAB,或回车
遇宽度结束
遇非法输入输入数据时,不能规定数据的精度。
如 scanf(“%d%c f”,&a,&b,&c);
若输入 1234a123o.26?
例 int x;
char ch;
scanf(“%d”,&x);
ch=getchar();
printf(“x=%d,ch=%d\n”,x,ch);
执行,123?
例 int x;
char ch;
scanf(“%d”,&x);
scanf(“%c”,&ch);
printf(“x=%d,ch=%d\n”,x,ch);
执行,123?
则 a?c1,?c2,b?c3
输出,x=123,ch=10 输出,x=123,ch=10
输出,x=1234,b=?a?,c=123
21
§ 4.6 程序举例 与练习
#include <math.h>
main()
{ float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);}
例 输入三角形边长,求面积输入,3,4,6?
输出,a= 3.00,b= 4.00,c= 6.00 s= 6.50
area= 5.33
文件包含预处理命令变量定义输入数据输出数据
)()()(
)(21
csbsassa r e a
cbas
22
1:已有如下定义和输入语句,若要求 a1,a2,c1,c2的值分别为 10,20,A和 B,当从第一列开始输入数据是,
正确的数据输入方式是 __________。
int a1,a2;char c1,c2;
scanf(“%d%d”,&a1,&a2);
scanf(“%c%c”,&c1,&c2);
A) 1020AB? B)10 20? AB?
C)10 20 AB? D)10 20AB?
23
2:根据定义和数据的输入方式,输入语句的正确形式为
__________。
已有定义,float f1,f2;
数据的输入方式,4.52?
3.5?
A)scanf(“%f,%f”,&f1,&f2);
B) scanf(“%3.2f %2.1f”,&f1,&f2);
C)scanf(“%f%f”,&f1,&f2);
D) scanf(“%3.2f %2.1f”,&f1,&f2);
24
3:以下合法的 C语言赋值语句是 ( )
A) a=b=58 B) k=(int) (a+b) ;
C) a=58,b=58 D) --i;
4,若有以下程序段,c3中的值是 ( )
A)0 B)1/2 C)0.5 D)1
int c1=1,c2=2,c3;
c3=c1/c2;
25
5:若变量已正确定义,要将 a和 b中的数进行交换,下面不正确的语句组是 ( )
A)a=a+b;b=a-b;a=a-b; B) t=a,a=b,b=t;
C)a=t;t=b;b=a; D) t=b;b=a;a=t;
6,若 x为 int型变量,则执行以下语句后 x的值是 ___________。
x=7;
x+=x-=x+x;
26
程序改错 1:
#include <stdio.h>
void main( )
{ float a,b,c,disc,x1,x2,q
scanf(“a=%f,b=%f,c=%f,a,b,c);
disc=b*b-4*a*c;
p=-b/2*a;
q=sqrt(disc)/(2*a);
x1=p+q; x2=p-q;
printf(“\nx1=%5.2f\n%5.2f\n”,&x1,&x2);
}
27
作业
P88 T4.4
T4.5
第 4章 顺序程序设计
教学目与要求,
了解 C语句的分类,理解输入输出的概念及在 C中的实现,
掌握赋值语句,字符数据及格式输入输出。
教学内容:
C语句概述;赋值语句;数据输入输出的概念及在 C语言中的实现;字符数据的输入输出;格式输入与输出;顺序结构程序设计举例
教学难点与重点:
赋值语句的格式及作用,字符数据的输入输出,printf和
scanf函数的功能,格式及使用方法。
2
§ 4.1 C语句概述
C程序源程序文件 1 源程序 文件 2 源程序文件 N。。。。
预处理命令 全局变量声明 函数 1 。。。。 函数 N
函数首部 函数 体局部 变量 声明 执行语句
C语句,以分号作分隔符,
编译后产生机器指令,完成一定操作任务。
3
for( )~ (循环)
while( )~ (循环)
do~while( ) (循环)
选择
(分支)
循环
(重复)
if( )~else~ (条件)
switch (多分支)
continue (结束本次循环)
break (终止 switch或循环语句)
goto (转向)
return (从函数返回)
辅助控制
(1) 程序控制语句
4
控制语句,用于完成一定的控制功能,
顺序:按语句顺序执行例如:
顺序结构语句 A
语句 B
float a,b,c,s,area;
scanf(“%f,%f,%f”,&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
各语句依次顺序执行
5
选择结构,if( 表达式 ) …… else
表达式语句 A 语句 B
真 假选择结构
int a,b;
if(a>b)
printf(“%d”,a);
else
printf(“%d”,b);
例如:
6
循环结构,do…… while或 while或 for
P
A
真假当型循环 例:
main( )
{ int t=1,i=2;
while (i<=5)
{ t=t*i;
i++;
}
printf(“t=%d”,t);}
7
循环结构,do…… while或 while或 for
A
P
直到型循环假真例:
main( )
{ int t=1,i=2;
do
{ t=t*i;
i++;
}
while (i<=5);
printf(“t=%d”,t);}
8
3.简单表达式语句赋值语句:
如,i=1;x=sin(y);
4.空语句:
如,;
问题,既然空语句什么都不作,为什么还要它?
(空语句可用来作被转向点,或 循环语句中的循环体)
2.函数调用语句:
如,printf(“This is a c programe”);
9
(5) 复合语句将几个表达式组合在一起,形成一个复合表达式语句 。
例如,++i,++j; i=1,j=2;
用 { }把一些语句括起来成为复合语句。
如,{ z=x+y; t=z/100; printf(“%f”,t);}
注意,} 后无分号,其余各行均有分号 。
例 4.1 main( )
{ int a;
{ int b;
b=3; //复合语句 ( 分程序 )
printf(“%d\n”,a+b);
}
b=1; }
★ b的作用域 只 在 内层 大 括 号这 样 一 个局部由于 b是复合语句中定义的,在它之外使用是错误的
4-1.c
说明,花括号配对规则,从后向前配对,一个后花括号和它最近的前花括号配对。
10
§ 4.2 赋值语句赋值语句是由赋值表达式加上一个分号构成
1.C语言中的赋值号,=”是一个运算符,而其它大多数语言中赋值号不是运算符。
2.注意在变量说明中给变量赋初值和赋值语句的区别。
在变量说明中,不允许连续给多个变量赋初值。
如说明是错误的,int a=b=c=5
必须写为 int a=5,b=5,c=5;
而赋值语句允许连续赋值。
下述语句是合法的,if((x=y+5)>0) z=x;
语句的功能是,若表达式 x=y+5大于 0则 z=x。
下述语句是非法的,if((x=y+5;)>0) z=x;
因为 x=y+5;是语句,不能出现在表达式中。
11
§ 4.3数据输入输出的概念与 C语言中的实现
输出,向外部输出设备(显示器,打印机,磁盘等)输出数据。
输入,从输入设备(键盘,磁盘,光盘,扫描仪等)输入数据
实现,C语言中没有输入或输出语句。输入和输出操作都是由函数来实现的。
在使用C语言库函数时,要用预编译命令 #include
将有关“头文件”包括到源文件中。
使用标准输入输出库函数时要用到,stdio.h”文件
#include< stdio.h >
或
#include,stdio.h”
12
§ 4.4字符数据的输入输出
4.4.1 字符输出函数 putchar
向终端输出 一个字符,一般形式为
putchar( 变量名 );
4.4.2 字符输入函数 getchar
从终端(或系统隐含指定的输入设备)输入 一个字符,它 没有参数,一般形式为 getchar()
函数的值就是从输入设备得到的字符。
#include <stdio.h>
main()
{ int c; printf("Enter a character:");
c=getchar(); printf("%c--->hex%x\n",c,c);
}
注意,1,当输入多个字符时,多余字符作废;
2,用 getchar()得到的字符可以赋给字符变量,整型变量或作为表达式的一部分。
/*ch4_1.c*/
#include <stdio.h>
main()
{ int c; char a;
c=65; a='B';
putchar(c); putchar('\n');
putchar(a);
}
13
1.printf函数格式,printf(,格式控制,,输出表 )
功能,按 自右向左 的顺序,依次计算,输出列表,中 各表达式的值,再 按,格式串,规定的 格式 将表达式的值输出到 显示器 。
4.5 格式输出函数
格式控制串:包含两种信息
格式说明,%[修饰符 ]格式字符,用于指定输出格式
普通字符或转义序列:原样输出
输出表,要输出的数据(可以没有,多个时以“,”
分隔)
14
d,i
x,X
o
u
c
ms
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);
例 main()
{ unsigned int u=65535;
printf(”u=%d\n",u);
}
2,格式字符
15
附加格式说明符(修饰符) %[修饰符 ]格式字符
.n 对实数,指定小数点后位数 (四舍五入 )对字符串,指定实际输出位数修饰符 功 能
m 输出数据域宽,数据长度 <m,左补空格 ;否则按实际输出输出数据在域内左对齐(缺省右对齐 )-
指定在有符号数 的正数前显示正号 (+)+
输出数值时指定左边不使用的空位置自动填
0
0
在八进制和十六进制数前显示前导 0,
0x
#
在 d,o,x,u前,指定输出精度为 long
型在 e,f,g前,指定输出精度为 double
型
l
16
例 int a=1234; float f=123.456; char ch=?a?;
printf(“%-8d,%8d%2d\n”,a,a,a);
printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f);
printf(“%3c\n”,ch);
运行 1234,1234,1234
结果,123.456000,123.456000,123.5,123.46,1.23e+02
a
例 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
17
4.5.2 输入函数
1.一般形式,scanf(“格式控制串,,地址表 )
功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束
地址表:变量的地址,常用取地址运算符 &
格式字符,d,i,o,x,u,c,s,f,e
例 scanf(“%d”,&a);
输入,10?
例 scanf(“%x”,&a);
输入,11?
a=10 a=17
18
附加格式说明符(修饰符)
l
修饰符 功 能
h
m
*
用于 d,o,x前,指定输入为 short型整数用于 d,o,x前,指定输入为 long型整数用于 e,f前,指定输入为 double型实数指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量
例 scanf(“%4d%2d%2d”,&yy,&mm,&dd);
输入 19991015?
例 scanf(“%3d%*4d%f”,k,&f);
输入 12345678765.43?例 scanf(“%2d %*3d %2d”,&a,&b);输入 12 345 67?
例 scanf(“%3c%2c”,&c1,&c2
输入 abcde?
19
输入分隔符的指定一般以空格,TAB或回车键作为分隔符
例 scanf(“%d%o%x”,&a,&b,&c);
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
输入 123 123 123?
例 scanf(“%d:%d:%d”,&h,&m,&s);
输入 12:30:45?
例 scanf(“%d,d”,&a,&b)
输入 3,4?
输出 a=123,b=83,c=291h=12,m=30,s=45a=3,b=4
20
注意,用,%c”格式符时,空格和转义字符 作为有效字符输入
如 scanf(“%c%c%c”,&c1,&c2,&c3);
若输入 a b c?
输入数据时,遇以下情况认为 该数据结束,
遇空格,TAB,或回车
遇宽度结束
遇非法输入输入数据时,不能规定数据的精度。
如 scanf(“%d%c f”,&a,&b,&c);
若输入 1234a123o.26?
例 int x;
char ch;
scanf(“%d”,&x);
ch=getchar();
printf(“x=%d,ch=%d\n”,x,ch);
执行,123?
例 int x;
char ch;
scanf(“%d”,&x);
scanf(“%c”,&ch);
printf(“x=%d,ch=%d\n”,x,ch);
执行,123?
则 a?c1,?c2,b?c3
输出,x=123,ch=10 输出,x=123,ch=10
输出,x=1234,b=?a?,c=123
21
§ 4.6 程序举例 与练习
#include <math.h>
main()
{ float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);}
例 输入三角形边长,求面积输入,3,4,6?
输出,a= 3.00,b= 4.00,c= 6.00 s= 6.50
area= 5.33
文件包含预处理命令变量定义输入数据输出数据
)()()(
)(21
csbsassa r e a
cbas
22
1:已有如下定义和输入语句,若要求 a1,a2,c1,c2的值分别为 10,20,A和 B,当从第一列开始输入数据是,
正确的数据输入方式是 __________。
int a1,a2;char c1,c2;
scanf(“%d%d”,&a1,&a2);
scanf(“%c%c”,&c1,&c2);
A) 1020AB? B)10 20? AB?
C)10 20 AB? D)10 20AB?
23
2:根据定义和数据的输入方式,输入语句的正确形式为
__________。
已有定义,float f1,f2;
数据的输入方式,4.52?
3.5?
A)scanf(“%f,%f”,&f1,&f2);
B) scanf(“%3.2f %2.1f”,&f1,&f2);
C)scanf(“%f%f”,&f1,&f2);
D) scanf(“%3.2f %2.1f”,&f1,&f2);
24
3:以下合法的 C语言赋值语句是 ( )
A) a=b=58 B) k=(int) (a+b) ;
C) a=58,b=58 D) --i;
4,若有以下程序段,c3中的值是 ( )
A)0 B)1/2 C)0.5 D)1
int c1=1,c2=2,c3;
c3=c1/c2;
25
5:若变量已正确定义,要将 a和 b中的数进行交换,下面不正确的语句组是 ( )
A)a=a+b;b=a-b;a=a-b; B) t=a,a=b,b=t;
C)a=t;t=b;b=a; D) t=b;b=a;a=t;
6,若 x为 int型变量,则执行以下语句后 x的值是 ___________。
x=7;
x+=x-=x+x;
26
程序改错 1:
#include <stdio.h>
void main( )
{ float a,b,c,disc,x1,x2,q
scanf(“a=%f,b=%f,c=%f,a,b,c);
disc=b*b-4*a*c;
p=-b/2*a;
q=sqrt(disc)/(2*a);
x1=p+q; x2=p-q;
printf(“\nx1=%5.2f\n%5.2f\n”,&x1,&x2);
}
27
作业
P88 T4.4
T4.5