第3章 顺序结构程序设计.docx

上传人:b****3 文档编号:3517185 上传时间:2022-11-23 格式:DOCX 页数:13 大小:143.26KB
下载 相关 举报
第3章 顺序结构程序设计.docx_第1页
第1页 / 共13页
第3章 顺序结构程序设计.docx_第2页
第2页 / 共13页
第3章 顺序结构程序设计.docx_第3页
第3页 / 共13页
第3章 顺序结构程序设计.docx_第4页
第4页 / 共13页
第3章 顺序结构程序设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

第3章 顺序结构程序设计.docx

《第3章 顺序结构程序设计.docx》由会员分享,可在线阅读,更多相关《第3章 顺序结构程序设计.docx(13页珍藏版)》请在冰豆网上搜索。

第3章 顺序结构程序设计.docx

第3章顺序结构程序设计

第3章顺序结构程序设计

3.1程序的基本结构

【学习目标】

(1)掌握程序的几种基本结构

(2)掌握顺序结构程序设计的程序模式

(3)掌握字符型输入输出函数

实例11字符型数据的输入和输出——输入与输出几个字符

【实例任务】

输入几个字符然后输出。

程序运行结果如图3-1所示。

图3-1程序运行结果

【程序代码】

#include"stdio.h"

main()

{

/*声明变量*/

chara,b,c;

/*使用getchar()函数接受用户输入的值*/

printf("请输入字符:

\n");

fflush(stdin);

a=getchar();

fflush(stdin);

b=getchar();

fflush(stdin);

c=getchar();

/*使用putchar()函数输出这几个字符,并输出一个换行符*/

putchar(a);

putchar(b);

putchar(c);

putchar('\n');

getch();

}

【相关知识】

1.程序的几种基本结构程序设计模式

C语言中,常用的流程控制结构分为顺序结构、选择结构和循环结构。

由这三种结构可组成各种复杂的程序。

顺序结构是三种结构中最简单,最常见的程序结构。

三种流程控制结构,使用特定的流程控制语句,从而实现程序的各种结构方式。

C语言中常用的控制语句有:

if语句、switch语句、dowhile语句、while语句、for语句、continue语句、break语句等。

2.顺序结构的执行过程

所谓“程序结构”,即指程序中语句的执行顺序。

程序设计者要把事情交给计算机去做,使用的都是写出一条条语句,顺序地执行,这是顺序式结构。

本例中的程序运行就是顺序执行每条语句。

3.getchar()函数

getchar()函数是一个没有参数的函数,它从标准输入(键盘)读取一个字符,返回改字符的编码值。

当使用此函数时,按下的键将自动回显到屏幕上。

使用getchar()函数时,任何键都是有效的返回值。

调用没有参数的函数时应在函数名后写一对空括号。

下面的代码演示了getchar()函数的用法:

charc;

fflush(stdin);

c=getchar();

getchar()函数只能接受单个字符,输入数字也按字符处理。

当输入多于一个字符时,只接收第一个字符。

使用getchar()函数时需要注意这一点。

函数fflush()用于清空输入缓冲区。

stdin是标准的输入,即键盘输入。

分配给键盘的缓冲区需要清空,以便存储新数据。

有时,键盘缓冲区中保留着旧信息,如果不清空,在接受字符时会将旧信息返回,这样就可能引发错误。

4.putchar()函数

putchar()函数对应于getchar()函数。

函数putchar把一个字符送到标准输出。

例如:

putchar('o');

putchar('k');

两个字符“ok”将被送到标准输出。

标准输出的默认连接通常是计算机显示器,因此,执行这两个语句的效果使字符在计算机屏幕上显示出来。

实例中创建了3个变量a、b和c,getchar()函数将用户输入的字符存储在这些变量中。

每个getchar()前都使用一个fflush()函数帮助清空缓冲区。

在该程序中,如果不使用fflush(),也不会出现问题。

随着每个getchar()函数的执行,输入的字符就显示在屏幕上。

最后一行输出结果将显示前面输入的所有字符。

此输出结果显然表明,使用putchar()函数后,所有字符将显示在同一行上,最后换一行(因为它输出一个换行符),程序随即结束。

【课堂精练】

1.从键盘办入3个数,并计算他们的和值。

程序的运行结果如图3-2所示。

图3-2程序运行结果

根据程序的运行结果,请将下面程序补充完整并调试。

#include"stdio.h"

main()

{inta1,a2,a3;/*定义三个整型变量*/

scanf("%d,%d,%d",&a1,&a2,&a3);/*从键盘上输入三个变量的值*/

printf("a1+a2+a3=%d",_______________________);/*输出三个数的和值*/

getch();

}

2.从键盘办入2个整数,计算两数整除所得的余数。

程序的运行结果如图3-3所示。

图3-3程序运行结果

根据程序的运行结果,请将下面程序补充完整并调试。

#include"stdio.h"

main()

{inta1,a2;/*定义两个整型变量*/

scanf("%d,%d",&a1,&a2);/*从键盘上输入两个变量的值*/

printf("两数整除余数为:

%d",____________);/*输出两数整除所得的余数*/

getch();

}

3.从键盘上输入一个大写字母,输出该字母的小写。

程序的运行结果如图3-4所示。

图3-4程序运行结果

根据程序的运行结果,请将下面程序补充完整并调试。

#include"stdio.h"

main()

{charc;/*定义字符型变量*/

c=getchar();/*从键盘上输入字符变量的值*/

__________________;/*将字符转换成对应的小写字母*/

putchar(c);/*输出这个小写字母*/

getch();

}

3.2常用的输入输出函数

【学习目标】

(1)掌握常用的字符型输入输出函数

(2)掌握常用的格式化输入输出函数

(3)掌握头文件在编写程序时的作用

(4)掌握复合语句、空语句的格式及作用

实例12格式化数据的输入和输出——互换两个变量的值

【实例任务】

接收两个整数,分别保存在两个变量中,通过第三个变量将这两个变量的值互换。

运行结果如图3-5所示。

图3-5程序运行结果

【程序代码】

#include"stdio.h"

main()

{intx,y,z;

printf("\n请输入第一个数:

");

scanf("%d",&x);

printf("\n请输入第二个数:

");

scanf("%d",&y);

/*显示互换前的数*/

printf("\n\n输出互换前的数");

printf("\n第一个数是:

%d",x);

printf("\n第二个数是:

%d",y);

/*互换这两个数*/

z=x;x=y;y=z;

/*显示互换后的数*/

printf("\n\n输出互换后的数");

printf("\n第一个数是:

%d",x);

printf("\n第二个数是:

%d",y);

getch();}

【相关知识】

1.头文件“stdio.h”

C语言格式输入函数scanf()和格式输出函数printf(),都在头文件stdio.h里。

因此,程序中使用它们时,在程序的开始处,应该书写一条包含命令:

#include"stdio.h"或#include

2.格式化输出函数printf()

其功能是向显示器输出若干指定类型的数据。

其一般格式为:

printf(参数1,参数2,……参数n)

其中参数1是”格式控制字符串”,即用双引号括起来的字符串,它包含两类字符信息:

一类是格式说明:

由%开始的格式字符序列,如%d、%c、%f等。

表示表达式的值应以给定的格式输出。

另一类是普通字符,按原样输出的字符,除了格式说明字符之外的全是普通字格式输入函数printf的功能是按指定的格式将数据在标准设备上进行输出。

其一般格式为:

    printf(格式控制参数,输出项表列);

其中输出项表列是由各输出项组成,各输出项之间用逗号分隔开。

输出项可以是合法的变量、常量或表达式。

格式控制参数是由双引号括起来的字符串,它是由格式描述符和普通字符组成。

普通字符将被原样输出。

格式描述符是以%开头,以一个格式字符结束,作用是将输出数据按指定的格式输出。

常用的格式描述符为:

%d:

以十进制输出带符号的整数。

%o:

以八进制无符号形式输出整数。

%x:

以十六进制无符号形式输出整数。

%c:

用于输出单个字符。

%f:

以十进制形式输出实型数据。

%s:

用于输出字符串。

在printf函数中一个格式描述符要求输出一个数据,也就是说必须在输出项表列中有一个变量与之相对应,且类型要前后一致。

说明:

(1)在%与格式字符间插入整数来指定输出宽度。

%md:

表明所输出的数据占m个字符的宽度,如果实际输出数据的位数大于m,则按实际的位数输出,否则在输出数据的左端补空格。

%mc:

表明输出的字符占m个字符的宽度,当m大于1时,左端补空格。

%ms:

表明输出m个字符的字符串。

如果实际长度大于m时,则按原样输出字符串,否则左端补空格。

%m.nf:

表明输出数据的总宽度为m(包括整数位数、小数点和小数位数),n为小数位数。

如果输出的数据的总长度小于m,则在输出数据的左端补空格。

对于小数部分,若n小于实际输出的小数位数时,对第n+1位进行四舍五入。

如表中结果表3-1所示(其中Ц表示空格):

表3-1格式控制符与输出项形式之间的关系

输出语句

输出结果

printf(“%d”,123);

123

printf(“%5d”,123);

ЦЦ123

printf(“%f”,123.45);

123.450000

printf(“%12f”,123.45);

ЦЦ123.450000

printf(“%9.3f”,123.45);

ЦЦ123.450

printf(“%9.0f”,123);

ЦЦЦЦЦ123

printf(“%5c”,’c’);

ЦЦЦЦc

printf(“%5s”,”abc”);

ЦЦabc

(2)在输出的数值型数据前总是带正负号。

这可以通过在%与格式符间加一个“+”来实现。

    如:

    printf(”%+d,%+d”,1,-1);

则输出结果为:

+1,-1。

(3)在输出数据前加前导0。

这可以在%与指定输出宽度的整数间加一个“0”来实现。

    如:

    printf(”%05d”,123);

则输出结果为:

00123。

(4)在格式控制字符串中,如果两个%连用,则输出一个%。

    如:

printf(”%%%d”,10);

则输出结果为:

%10。

3.格式化输入函数scanf()

格式输入函数scanf的功能是按指定的格式从键盘上输入数据。

其一般格式为:

    scanf(格式控制参数,地址项表列);

其中地址项表列是由接收数据的变量的地址组成,求地址运算符为&,如&a,&b,&c。

格式控制参数是由双引号括起来的字符串,里边有格式描述符和输入数据分隔符。

常用的格式描述符为:

%d:

用于输入十进制整数。

%o:

用于输入八进制整数。

%x:

用于输入十六进制整数。

%c:

用于输入单个字符。

%f:

用于实型数据。

%s:

用于输入字符串。

在scanf函数中一个格式描述符要求输入一个数据,也就是说必须在址址项表列中有一个变量与之相对应,且类型要前后一致。

(1)如果输入数值型数据时,数据间要用空格、Tab键或回车键分隔。

如:

  scanf(”%d%d”,&a,&b);

对应此语句,可输入13 789↙(↙表示回车)。

(2)如果在各输入描述符间有分隔符,则在输入数据时,要输入与这些字符相同的字符作为分隔符。

如:

  scanf(”%d,%d”,&a,&b);

对应此语句,要求输入数据间要用“,”分隔。

可输入13,789↙。

(3)如果输入多个字符数据时,则不需要在各字符间输入分隔符。

如:

  scanf(”%c%c”,&a,&b);

对应此语句,可输入AB↙。

则对a输入字符A,对b输入字符B。

(4)当交叉输入数值数据和字符数据时,如果字符在前,则字符和数值型数据间要有空格;如果数值在前,则数值和字符间不要有空格。

如:

  scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);

对应此语句,必须用以下形式输入数据:

 20A30B↙。

如:

  scanf(“%c%d%c%d”,&c1,&a1,&c2,&a2);

对应此语句,可以用以下形式输入数据:

 A20B30↙。

4.复合语句

在C语言程序中,可以用一对花括号把若干条语句括起来,形成一个整体。

这个整体就被称为“复合语句”。

从语法上讲,它相当于一个语句。

复合语句的一般格式是:

{语句1;

语句2;

……

语句n;}}

要注意,复合语句中可以出现变量说明,复合语句中的最后一条语句的语句结束符(分号)不能省略,否则会造成语法错误。

另外,标识复合语句结束的右花括号的后面不能有语句结束符(分号)。

5.空语句

在C语言中,称仅由一个分号组成的语句为“空语句”,即:

编译程序在遇到空语句时,不会为其产生任何相应的指令代码。

这就是说,空语句不执行任何操作。

因此,空语句只是C语言语法上的一个概念,它起到一个语句的作用,仅此而已。

【课堂精练】

1.输入圆的半径,求其周长和面积。

程序的运行结果如图3-6所示。

图3-6程序运行结果

根据程序的运行结果,请将下面程序补充完整并调试。

#include"stdio.h"

#definePI3.14159/*定义字符常量PI,且值为3.14159*/

main()

{floatr,l,s;/*定义3个实行变量r、l、s*/

_____________________________________

getchar();

l=2*PI*r;/*计算周长并赋值给l*/

s=PI*r*r;/*计算面积并赋值给s*/

printf("\nr=%7.2f,l=%7.2f\n",r,l);/*输入周长,数据共占7个字符宽,2位小数*/

printf("\nr=%7.2f,s=%7.2f\n",r,s);/*输入面积,数据共占7个字符宽*/

getch();}

2.复合语句和空语句的使用。

程序的运行结果如图3-7所示。

图3-7程序的运行结果

根据程序的运行结果,请将下面程序补充完整并调试。

#include"stdio.h"

main()

{intx=10;

;/*空语句*/

printf("xis%d\n",x);

{/*复合语句开始*/

inty=50;

printf("yis%d\n",y);

______________________________/*空语句*/

}/*复合语句结束*/

printf("xis%d\n",x);

getch();}

3.3课后习题

3.3.1项目练习

一.练习目的

1.进一步巩固顺序结构程序设计

2.进一步巩固各种输入输出函数的使用方法

3.进一步练习常用的语句的使用方法

4.提高编程和调试程序的能力

二.练习内容

1.编写程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符,并思考以下问题:

(1)变量c1、c2应定义为字符型或整型?

抑或二者皆可?

(2)要求输出c1和c2值的ASCII码,应如何处理?

用putchar函数还是printf函数?

(3)整型变量与字符变量是否在任何情况下都可以互相代替?

如"charc1,c2;"与"intc1,c2;"是否无条件等价?

2.求一个圆柱体的体积。

3.编写一个简单的计算器,实现两个整型数的四则运算。

P53

3.3.2练习题

一.选择题

1.putchar函数可以向终端输出一个__________。

(A)整型变量表达式(B)实型变量值

(C)字符串(D)字符或字符型变量值

2.阅读以下程序,当输入数据的形式为:

25,13,10(注:

表示回车),则正确的输出结果为__________。

main()

{intx,y,z;

scanf(“%d%d%d”,&x,&y,&z);

printf(“x+y+z=%d\n”,x+y+z);getch() ;}

(A)x+y+z=48(B)x+y+z=35(C)x+z=35(D)不确定值

3.已知定义inti,j,k;若从键盘输入:

1,2,3回车,分别使i,j,k的值为1、2、3,以下选项中正确的输入语句是__________。

(A)scanf("%2d%2d%2d",&i,&j,&k);(B)scanf("%d%d%d",&i,&j,&k);

(C)scanf("%d,%d,%d",&i,&j,&k);(D)scanf("i=%d,j=%d,k=%d",&i,&j,&k);

4.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为20,30,C和D,当从第一列开始输入数据时,正确的数据输入方式是__________。

inta1,a2;charc1,c1;

scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);

(A)20C30D(回车)(B)20C30D(回车)

(C)20C30D(回车)(D)20,C,30,D(回车)

二.填空题

1.以下程序的运行结果是__________。

#include"stdio.h"

main()

{inta=10,b=20;

intm=-2;longn=987654321;

printf("%d,%d\n",a,b);

printf("a=%d,b=%d\n",a,b);

printf("m=%d\n",m);

printf("n=%ld\n",n);

getch();

}

2.以下程序是实现三个整数的互换,然后输出a,b,c的值。

请将下面程序补充完整。

#include"stdio.h"

main()

{_______________________

scanf("%d,%d,%d",&a,&b,&c);

________________________

a=b;

b=c;

________________________

printf("a=%d,b=%d,c=%d\n",a,b,c);

getch();

}

3.以下程序的运行结果是__________。

#include"stdio.h"

main()

{intx=36,y=12;

inta,b,c;

a=x*y;b=x/y;c=x+y;

printf("%d,%d,%d\n",a,b,c);

getch();

}

4.以下程序运行后的输出结果是__________。

main()

{intk=2,i=2,m;

m=k+=i*=k;

printf("%d,%d\n",m,i);getch();}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1