目录
3.1 引例
3.2 C语言的语句
3.3 数据的输入与输出
3.4 数学库函数
3.1 引例
3.2 C语言的语句
1.说明语句
说明语句用于定义程序所用的变量与类型。例如:
int a,b; /* 定义两个整型变量 */
char ch; /* 定义一个字符型变量 */
2.表达式语句
表达式语句由表达式加上分号“;”组成。其一般形式如下:
表达式;
例如:
c=a+b
是一个赋值表达式,而
c=a+b;
则是一个表达式语句。
3.分支语句
分支语句实现分支控制过程,根据条件成立与否Z执行不同的语句。有两种分支结构,即双分支 if-else语句与多分支的switch语句。例如,下面是一个双分支 if-else语句:
if(x>y)
z=x;
else
z=y;
4.循环语句
C语言中实现循环控制的语句有3种,即 for语句、while语句和do-while语句。如要求计算1+3+5+7+...+99的和,采用while语句的代码如下:
sum=o
i=1
while(i<99)
{ sum=sum+i;
i=i+2;
}
5.转向语句
转向语句有break语句、goto语句、continue语句、return语句。
6.复合语句
用一对大括号{ }将若干语句顺序组合在一起所形成的语句称为复合语句。C语言中,除复合语句外的其他所有语句都以分号结束。如
{ sum=sum+i
i=i+2;
}
即为复合语句。
7.空语句
空语句只有一个分号构成。如
;
8.函数定义与调用
函数是完成特定功能的小模块,是C语言中唯一的一种子程序,常常在一个C程序中包含若干个函数,复杂的任务通过调用这些函数来完成。如函数:
int max(int x,int y)
{ int z,
if(x>Y)
z=x;
else
z=y;
return z;
}
9.输入与输出
C语言没有提供用于数据输入及输出的语句,所有的输入与输出都是通过系统提供的有关函数(如scanf( )和printf( )函数)来实
3.3 数据的输入与输出
3.3.1 输入函数(printf( ))和输出函数(scanf( ))
1. printf()函数
printf()函数是系统提供的用于在标准输出设备(屏幕)输出数据的库函数,其一般调用格式为:
pintf("格式控制字符串“,输出项表例)
格式控制字符串用双引号括起来,表示输出的格式;而输出项表列则是要输出的数据,这些数据可以是常量、变量或表达式。
格式控制字符串中包含两种信息,格式控制说明和普通字符。
(1)格式控制说明:按指定的格式输出数据,其格式为以%开头的格式控制字符,不同类型的数据采用不同的格式控制字符,以说明输出数据的类型、形式、长度、小数位数等。例如,int 型数据采用%d,float 型和 double 型数据都采用%f
(2)普通字符:在输出数据时,需要原样输出的字符。
[例3.3] 按指定格式输出整型数据示例。
使用printf( )函数进行数据输出需注意:
(1)格式字符与输出项的类型要一一对应,不同类型的数据所使用的格式字符不同。
(2)一般情况下,格式字符与输出项的个数应相同。如果格式字符的个数多于输出项的个数,则多余的格式将输出不确定的值;如果格式字符的个数少于输出项的个数,则多余的输出项将不能输出。
(3)printf( )函数中可以没有输出项,此时printf函数只用来输出一个字符串;也可以有多个输出项,多个输出项之间使用逗号进行分隔。若输出项是表达式时,printf( )函数将按从左到右的顺序计算出其值后输出
(4)若要在printf( )函数中输出字符“%”,则应在格式控制字符串中使用连续两个“%”。
2. scanf( )函数
scanf("格式控制字符串",输入项表列)
格式控制字符串用双引号括起来,表示输入的格式;而输入项表列指出各变量的地址(变量名前加&)。
格式控制字符串中包含两种信息,格式控制说明和普通字符。
(1)格式控制说明:按指定的格式输出数据,其格式为以%开头的格式控制字符,不同类型的数据采用不同的格式控制字符。例如,int 型数据采用%d,float 型数据采用%f,而 double 型数据都采用%lf (%lf其中的l是long 的首字母,不是数字1)。
(2)普通字符:在输入数据时,需要原样输出的字符。
注意scanf( )函数的输入参数必须和格式控制字符串中的格式控制说明相对应,并且它们的类型、个数和位置都要一一对应。若程序中有多个scanf( )函数时,程序会等待用户输入并有依次赋给相应变量。
例如,语句“scanf("%d",&a);”中的格式字符串“%d”指明了要输入数据的类型为十进制整型,输入项“&x”表明从键盘输入的数据将赋值给整型变量x。
使用scanf( )函数进行数输入时需注意:
(1)格式字符与输入项的类型、个数要一一对应;输入项必须是地址,不能是变量名。
(2)格式字符可以指定输入数据所占列数,系统会截取相应列数的数据。
(3)在输入数据时遇到以下情况则认为数据输入结束:空格、Tab键、回车键、非法键入、指定宽度。用户也可以自己指定其他字符作为输入间隔。
3.3.2 整形数据的输入与输出
表3.1 printf()、scanf( )函数中的格式字符(整型数据)
格式字符 含义
d 以十进制形式输入/输出带符号整形
o 以八进制形式输入/输出无符号整形
x,X 以十六进制形式输入/输无带符号整形
u 以十进制形式输入/输出无符号整形
表3.2 printf()函数中的格式修饰符
格式字符 含义
l 用于输出长整型
—— 输出结果左对齐,右边补空格
+ 输出符号(正号或负号)
# 对 d、u 格式字符无影响;对 o 格式字符,在输出
时加前缀o;对 x 格式字符,在输
出时加前缀ox
m 指定数据的输出宽度。当数据的实际位数大于m时,则按实际位数输出;当数据的 实际位数小于m时,若输出宽度前有“——”则左对齐右补空格,否则右对齐左补空格
表3.3 scanf ( ) 函数中的格式修饰符
格式字符 含义
l 用于输入长整型
m 指定输入数据所占的宽度
* 表示本输入项不会赋值给相应的变量
【例3.4】整型数据的输出示例。
【例3.5】整型数据的输入示例
3.5(1) 若程序运行时输入:12 23 34
3.5(2) 若程序运行时输入:12,23 34
3.5(3) 若将语句 1 改为“scanf("a=%d,b=%d,c=%ld",&a,&b,&c);”, 程序运行时输入:12 23 34
3.5(4) 若将语句 1 改为“scanf("a=%d,b=%d,c=%ld",&a,&b,&c);”, 此时正确的输入形式为:a=12,b=23,c=34
【例3.6】带有修饰符的整型数据的输入输出示例。
3.3.3 实型数据的输入和输出
表3.4 格式字符(实型数据)
函数 格式字符 含义
f 以小数形式输出单精度或双精度数(保留 6 位小数)
printf E,e 以指数形式输出单精度或双精度数
g 以 %f、%e 中较短的输出宽度输出单精度或双精度
函数 格式字符 含义
f 以小数形式输入单精度数
E,e 以指数形式输入单精度数
scanf lf 以小数形式输入双精度数
le 以指数形式输入双精度数
【例3.7】实型数据的输入输出示例
3.3.4 字符型数据的输入和输出
1. 使用 scanf( )函数和printf( )函数对字符型数据进行输入和输出
【例3.8】字符型数据的输入和输出示例。
3.8(1)若程序运行时输入 :x y z
3.8(2)若将语句 1 改为“scanf( "%c %c %c",&a,1,&b,2,&c,3);”, 程序运行时输入 :x y z
3.8(4)若将语句 1 改为“scanf( "%3c %3c %*3c%c",&a,3,&b,3,&c,3);”, 程序运行时输入 :x y z
2. 使用 getchar( )函数和 putchar( )函数对字符型数据进行输入输出
(1) getchar( )函数。
设 ch 是字符型变量,函数 getchar ( )的一般调用格式为:
ch=getchar( );
运行时从键盘输入缓冲区中读取一个字符,并赋值给变量 ch。由于函数 getchar( )z只能读入一个字符,若要输入多个字符,就需要多次调用函数,一般采用循环调用的方式。
(2) putchar( )函数。
函数putchar( )的一般调用格式为:
putchar(输入与参数);
输出一个字符,输出参数是字符型变量或字符型或字符型常量。
【例3.9】由键盘输入一个字符,将其输出到屏幕。
#include
int main()
{ char ch;
ch=getchar();
puutchar(ch);
return 0;
}
3.4 数学库函数
C语言处理系统提供了许多事先编好的库函数,供用户在编程序时使用,这些先编好的函数称为库函数。
常用的数学函数有:
①指数函数 exp(x):计算e^x。如exp(2.3)的值为:9.974182.
②绝对值函数fabs(x):计算|x|。如fabs(-2.8)的值为:2.8
③以e为底的对数函数 log(x):计算lnx。如log(123.45)的值为4.815836。
④幂函数 pow(x,y):计算x^y。如pow(1.3,2)的值为1.69。
⑤平方根函数 sprt(x):计算√x。如sprt(4.0)的值为2.0。
用户在程序中调用数学库函数时,一定要在程序的开头使用#inclde<math.h>。
【例3.10】输入一个球的半径,根据公式4/3Π*r*r*r 计算并输出球的体积。