第四章
主要内容
4.1 C语句概述
4.2 赋值语句
4.3 数据输入输出的概念及在 c语言中的实现
4.4 字符数据的输入输出
4.5 格式输入与输出
4.6 顺序结构程序设计举例
C语言程序设计 (第三版) http://ccf.tsinghua.edu.cn 3
§ 4.1 C语句概述
C程序源程序文件 1 源程序文件 2 源程序文件 n
预处理命令 函数 n函数 1数据声明函数首部 函数体数据声明 执行 语句
C语言程序设计 (第三版) http://ccf.tsinghua.edu.cn 4
(一 )控制语句:
if( )~else ~ while( )~ do~while( ); return( )
(二 )函数调用语句
printf(“This is a C statement.”); a=sqrt(n);
(三 )表达式语句 i=3,j=5;
(四 )空语句 ;如 while(i=1); while(i==1);
(四 )复合语句 if(n<0)
{
n=-n; printf(“%d”,n);
}
else
printf(“ok”);
语句分类:
C语言程序设计 (第三版) http://ccf.tsinghua.edu.cn 5
§ 4.2 赋值语句
赋值表达式加一个分号构成一个赋值语句例,a=100 赋值表达式
a=100; 赋值语句
赋值表达式可以包含于条件表达式中例,if((a=b)>0)t=a;相当于 a=b;if(a>0)t=a;
if((a=b;)>0)t=a;错误
C语言程序设计 (第三版) http://ccf.tsinghua.edu.cn 6
§ 4.3 数据输入输出的概念及在 C语言中的实现
C语言输入和输出由 C函数库中的函数来实现的,相关声明包含在 stdio.h中例,
字符输入 \输出函数,getchar putchar
格式输入 \输出函数,scanf printf
字符串输入 \输出函数,gets puts
C语言程序设计 (第三版) http://ccf.tsinghua.edu.cn 7
§ 4.4 字符数据的输入输出例 4.1 输出单个字符。
#include<stdio.h>
void main()
{
char a,b,c;
a=‘B’;b=‘O’;c=‘Y’;
putchar(a);putchar(b);putchar(c);putchar(‘ \n’);
}
运行结果,BOY
1、字符输出函数,int putchar(char c)
C语言程序设计 (第三版) http://ccf.tsinghua.edu.cn 8
例 4.2’ 输入 两个 字符并输出
#include<stdio.h>
void main()
{
char c,d;
c=getchar();
d=getchar();
putchar(c);
putchar(d);
putchar(“%d %d”,c,d);
}
2、字符输入函数,int getchar(void)
运行结果 1,AB
AB
运行结果 2,A
A
注意,回车也会 getchar
函数被接受
C语言程序设计 (第三版) http://ccf.tsinghua.edu.cn 9
§ 4.5 格式输入与输出
1.格式输出函数 printf(“格式控制,,输出表列 )
如 printf(“所求的 5!=%d\n”,p);
注:格式控制部分的普通字符及转义字符 原样输出,格式说明符 (以 %开头,以 d/f/c等结束 )由双引号外 变量或表达式的值 代替格式说明符,%d %u %c %x %X %o %f %s
修饰符,l m.n -m.n
C语言程序设计 (第三版) http://ccf.tsinghua.edu.cn 10
补充,
输出时现将欲输出的值读入寄存器,以% c输出意味着输出 ASCII码值与寄存器最末一个字节对应的字符 ; 以
% d输出意味着将寄存器中的数据当作补码,输出此补码对应的真值;以% u输出意味着将寄存器中的数据当作一个无符号的二进制数,直接转换为十进制数后输出; 以% x
或% X输出则将寄存器中的二进制数从低到高四位合一位输出,高位零省略;以% o则三位合一位输出
C语言程序设计 (第三版) http://ccf.tsinghua.edu.cn 11
一般格式,scanf(,格式控制,,地址表列)
如 scanf(“%d%d%d”,&i,&j,&k);
scanf(“%f,%f,%f”,&a,&b,&c);
scanf(“%lf%lf%lf”,&a,&b,&c); /*输入 double型用 lf*/
说明,输入或输出时格式说明符要与变量类型一致,
printf("%d\n",2.5);printf("%f\n",3);
int j;float f; scanf("%f",&j);scanf("%d",&f);
注意,常见问题
scanf(“请输入 x,%f”,&x);
scanf(“%d\n%d”,&i,&j);
scanf(“%d”,i);
2、格式输入函数作业与实验说明:
\t:光标跳到下一个 Tab位置 (1,9,17… )
\b:相当 backspace,通常删除一个字符,但对于 \t产生的空格将一次性删除试验:
float e=-6.87;
printf(“%f”,e);
注意:字符型、整型 常量 在寄存器均占 4字节,float和 double型均占四字节。 (书中问题,P45-46 P59-62 P76-P77)
C语言程序设计 (第三版) http://ccf.tsinghua.edu.cn 13
§ 4.6 顺序结构程序设计举例例 4.10 输入三边长,求三角形面积。
s=(a+b+c)/2,area= ( ) ( ) ( )s s a s b s c
例 4.11 键盘输入一大写字母,变成小写字母输出例 4.12 输入 a,b,c,求方程 ax2+bx+c=0的根,
设 deta>0
C语言程序设计 (第三版) http://ccf.tsinghua.edu.cn 14
作业:
作业本,4.5
试验报告:试验名称、试验目的(参考试验指导
18.3);写出( 1)中各步的执行结果,写出( 2)
、( 3)的源程序,并分析出现的问题