第三章 顺序结构程序设计

目录

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 计算并输出球的体积。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值