第3章 顺序结构程序设计_第1页
第3章 顺序结构程序设计_第2页
第3章 顺序结构程序设计_第3页
第3章 顺序结构程序设计_第4页
第3章 顺序结构程序设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计技术基础太原理工大学计算机学院计算机基础部第3章顺序结构程序设计§3.1C语言的基本语句§3.2常用输出与输入函数§3.3顺序结构程序举例第3章顺序结构程序设计§3.1C语言的基本语句一个完整的C程序可以存放于一个或多个C源文件中,每一个C源文件又可以包含若干预处理命令和C函数,数据声明和执行语句是构成C函数的基本单元。C语言的语句是指示计算机完成某项任务的操作指令,是C程序中算法实现的最小单位。程序或函数的功能是由一系列语句实现的,不同的语句结构可以构成一个完整的程序。在C语言中,根据语句的功能可将C语句分为5类:表达式语句、函数调用语句、程序控制语句、空语句及复合语句。§3.1C语言的基本语句【例3-1】输入两个整数,求它们的和与积。#include<stdio.h> voidmain(){

inta,b;

intsum,mul; /*以上是数据描述部分,以下是执行语句部分*/

printf("请输入两个整数:\n");

scanf(“%d%d”,&a,&b

); sum=a+b;

mul=a*b;

printf("两数之和sum=%d,两数之积mul=%d\n",sum,mul);}

3.1.1表达式语句表达式语句由表达式加一个分号“;”组成,其一般形式为:表达式;表达式可以是任意的表达式,包括赋值表达式、算术运算表达式、关系运算表达式及逻辑运算表达式等。 例如:

a=8; x=2*x+3*y; i++;

printf("Pleaseinputdata!\n");3.1.2函数调用语句函数调用语句由函数调用后加分号“;”构成。 其一般形式为: 函数名(实际参数列表);函数调用语句的执行过程为调用执行被调函数,实现函数的功能。例如:

printf("%d",a);

为调用C语言标准输出函数,完成输出变量a的功能。3.1.3程序控制语句

1.条件判断语句

(1)选择(分支)语句:if()…else…;

(2)多分支选择语句:switch。

2.循环执行语句

(1)while语句:while()…;

(2)do-while语句:do…while();

(3)for语句:for()…。

3.转向语句

(1)无条件转向语句:goto<标号>;

(2)终止语句:break;可用于终止执行switch和循环语句;

(3)结束本次循环语句:continue;

(4)函数返回语句:return。3.1.4空语句C语言中的空语句就是只有一个分号的语句:

;在编译时,空语句不产生任何指令代码,不执行任何操作。3.1.5复合语句在C语言中,复合语句又称为分程序(block),它是由一对花括号括起来的若干语句组成的。例如:

{

int

a,b,x; a=10; b=5; x=a-b;

printf("%d",x); }在上面的例子中,5条语句被一对花括号括起来,构成一条复合语句。从语法上看,复合语句是作为一个语法整体出现,在选择结构和循环结构程序设计中,经常利用复合语句作为一个语法成分。返回§3.2常用输出与输入函数所谓输入/输出是以计算机主机为主体而言的,当需要将外界的数据送入计算机内部时,由输入设备(键盘、鼠标等)向计算机传输数据称为输入;当需要将计算机中的数据送给外界,即向输出设备(显示器、打印机等)传输数据成为输出。在C语言中没有专门的输入/输出语句,输入/输出操作是由C函数库中的相关函数提供的。使用这些函数时,用预编译命令“#include”将输入/输出头文件包含在源程序文件中:

#include<stdio.h>常用的标准输入/输出函数: (1)格式化输入/输出函数:scanf()/printf()。 (2)字符输入/输出函数:getchar()/putchar()。 (3)字符串输入/输出函数:gets()/puts()。3.2.1输出函数1.格式化输出函数printf()

printf()函数的功能是按格式控制字符串指定的格式,向标准输出设备输出指定的数据,其一般格式为:

printf("格式控制字符串",输出项列表)

3.2.1输出函数【例3-2】格式输出简例。 #include<stdio.h> voidmain() {

int

a;float

b;charc; a=5; b=12.3; c='A';

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

3.2.1输出函数printf()函数的参数包括两部分。 (1)输出项列表 输出项列表是一系列输出项,各个输出项之间用逗号“,”分隔,其中的输出项可以是任何表达式,如常量、变量、运算表达式、函数调用表达式等。如【例3-2】中的“a,b,c”构成一个输出项列表。 (2)格式控制字符串 格式控制字符串是用于描述格式控制的字符串,如【例3-2】中的“a=%d,b=%f,c=%c\n”。

3.2.1输出函数格式控制字符串包含两种成分: ①普通字符:普通字符包括可见字符和转义字符,可见字符主要是一些说明字符,输出时按原样显示在屏幕上,如【例3-2】中的“a=”、“b=”、“c=”和“,”;转义字符是不可见字符,控制产生特殊的输出效果,如【例3-2】中的“\n”为回车换行符,输出时显示自动换到新的一行。

3.2.1输出函数②格式说明:格式说明字符由“%”和“格式字符”组成,其作用是将要输出的数据转换为指定的格式,如【例3-2】中的“%d”、“%f

”和“%c”格式说明符按照左对应关系控制输出项列表中数据的输出,如【例3-2】中格式控制中的第一个“%d”控制变量a的输出,第二个“%f

”控制变量b的输出,第三个“%c”控制变量c的输出。在输出时用格式说明字符对应的控制项替代格式字符输出。

3.2.1输出函数

printf()函数从左向右将格式控制字符串中的普通字符输出到屏幕上,如遇到格式说明符,就按格式说明符的规定将输出项列表中对应的输出项所指的数据输出到屏幕上显示。在输出时,对不同类型的数据要使用不同的格式字符,其一般形式为: %[<修饰符>]<格式字符>常用输出格式字符和修饰符如表3-1和表3-2所示。

3.2.1输出函数【例3-3】格式输出函数综合应用。 #include<stdio.h> voidmain() {

inta=20,b=-50; floatx=12.345,y=-35.762; charc='E';

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

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

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

printf("a=%d,a=%o,a=%x\n",a,a,a); printf("x=%f,y=%f\n",x,y); printf("x=%8.2f,y=%8.2f\n",x,y);

printf("x=%-8.2f,y=%-8.2f\n",x,y

printf("%c,%3c\n",c,c);

printf("%s\n","CProgram"); printf("%10.5s\n","CProgram"); }

3.2.1输出函数在使用printf()函数进行格式输出时,还应注意以下几点:(1)输出项列表中表达式的个数和类型与格式控制字符串中格式符一致。如果输出项个数多于格式字符个数,多余部分不输出。(2)如果想输出字符“%”,需要在格式控制字符串中连续使用两个“%”,例如: printf("a=%%d\n",a); 若a的值为12,则输出为: a=%12(3)printf()函数输出项列表中的参数按从右向左的顺序计算。不同编译系统对函数参数的扫描顺序不一定相同,可从右往左,也可从左往右。TurboC和VisualC++6.0是从右往左进行的。

3.2.1输出函数【例3-4】参数求值顺序简例。

#include<stdio.h> voidmain() {

intx=8;

printf("x++=%d,x=%d,y=%d,x=%d\n",x++,x, (++x)+(x++)+(++x),x);

printf("x=%d\n",x); }

3.2.1输出函数2.字符输出函数putchar()

putchar()函数是字符输出函数,其功能是向终端输出单个字符。其一般形式为:

putchar(参数)

putchar()函数的参数可以是一个字符变量、一个整型变量或一个字符型常量(包括控制字符和转义字符)等,作用是输出该参数ASCII码所对应的字符。3.2.1输出函数【例3-5】字符输出函数简例。

#include<stdio.h> voidmain() {

inta=71,b=79,c=68; charx='G',y='o',z='d'; putchar(a);putchar(b);putchar(b);putchar(c); putchar('\n'); putchar(x);putchar(y);putchar(y);putchar(z); putchar('\n'); }

3.2.2输入函数1.格式化输入函数scanf()

scanf()函数的功能是从键盘按指定格式输入数据,并将输入的数据赋值给相应的变量。其一般格式为:

scanf(“格式控制字符串”,输入项列表)

3.2.2输入函数【例3-6】格式输入简例。

#include<stdio.h> voidmain() {

int

a;float

b;charc;

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

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

}

3.2.2输入函数

scanf()函数的参数包括两部分。 (1)输入项列表 输入项列表由一系列变量地址组成,各个变量地址之间用逗号“,”分隔,其中的变量地址是在变量名前面加上地址操作符“&”构成。如【例3-6】中的“&a,&b,&c”构成一个输入项列表。 (2)格式控制字符串 格式控制字符串用于描述数据的输入格式,如【例3-6】中的“%d,%f,%c”,包含两种成分。

3.2.2输入函数格式控制字符串包含两种成分: ①普通字符:与printf()函数不同,scanf()函数中的可见字符并不在屏幕上显示,在输入数据时要求原样输入。如【例3-6】中的scanf(“%d,%f,%c”,&a,&b,&c);输入数据时应输入5,12.3,A↙,3个数据之间必须输入“,”。

3.2.2输入函数②格式说明:格式说明字符由“%”和“格式字符”组成,其作用是规定输入项中的变量以何种数据类型的格式被输入, 如【例3-6】中的“%d”、“%f”和“%c”。格式说明符按照左对应关系控制输入项列表中数据的输入,如【例3-6】中格式控制中的第一个“%d”控制变量a以十进制整数的格式输入,第二个“%f”控制变量b以小数形式浮点数的格式输入,第三个“%c”控制变量c以字符型的格式输入。

3.2.2输入函数

scanf()函数与printf()函数中的格式说明类似,在输入时,对不同类型的数据要使用不同的格式字符

,其一般形式为: %[<修饰符>]<格式字符>常用输入格式字符和修饰符如表3-3和表3-4所示。

3.2.2输入函数【例3-7】格式输入函数综合应用。

#include<stdio.h> voidmain() {

inta,b; floatx=2.4,y=5.2,z=3.3; charch1,ch2; printf("请输入三个实数:"); scanf("%f,%*f,%f",&x,&y,&z); printf("x=%.1f,y=%.1f,z=%.1f\n",x,y,z); printf("请输入两个整数:"); scanf("%d%3d",&a,&b); printf("a=%d,b=%d\n",a,b); fflush(stdin);/*清空输入缓冲区*/ printf("请输入两个字符:"); scanf("%c%c",&ch1,&ch2); printf("ch1=%c,ch2=%c\n",ch1,ch2);

}

3.2.2输入函数在使用scanf()函数进行格式输入时,还应注意以下几点:(1)输入的数据可以用空格符、制表符(tab)和换行符(enter)作为每个变量输入值完毕的标志,以换行符作为数据输入的结束。(2)如果在“格式控制字符串”中除了格式说明外还有其他的字符,则在输入数据时在对应位置应输入与这些字符相同的字符,如【例3-7】中:scanf("%f,%*f,%f",&x,&y,&z);在输入时应用如下形式:6.6,7.7,8.8↙(3)输入数据时不能指定精度,例如: scanf("%5.2f",&x);这是一种错误的用法,在使用printf()函数输出数据时可以规定精度。

3.2.2输入函数2.字符输入函数getchar()

getchar()函数是字符输入函数,其功能是从终端输入单个字符。getchar()函数没有参数,其一般形式为:

getchar()使用getchar()函数时必须注意以下几点:getchar()函数只能接受单个字符,输入的数字也按字符处理。输入多于一个字符时,只接收第一个字符。(2)通常把输入的字符赋予一个字符变量,构成赋值语句,例如: charc; c=getchar();(3)键盘接收字符之前屏幕上无任何提示信息,若需有提示信息,可在输入语句前面用printf()函数提示用户从键盘输入数据。(4)用getchar()函数接收字符时,并不是从键盘输入一个字符后立即响应,而是将输入的数据先送入缓冲区,待按下回车键后再一并执行。3.2.2输入函数【例3-8】字符输入函数简例。

#include<stdio.h> voidmain() { charc;

printf("inputacharacter\n"); c=getchar();

putchar(c);

putchar('\n');

}

返回§3.3顺序结构程序举例【例3-9】编写程序,从键盘输入圆半径,求圆周长和圆面积,并输出结果(保留两位小数)。分析:圆周长的计算公式为;圆面积的计算公式为。在计算时使用的圆周率是一个常数,使用C语言中的符号常量表示该常量,取值为3.1415926。数据设计:本程序根据圆半径计算圆周长和圆面积,因此需要定义以下变量:

1个单精度实型变量r用来存放圆半径。

1个单精度实型变量l用来存放圆周长。

1个单精度实型变量s用来存放圆面积。§3.3顺序结构程序举例程序如下: #include<stdio.h> #definePI3.1415926 voidmain() { floatr,l,s;

printf("请输入圆的半径:\n");

scanf("%f",&r); l=2*PI*r; s=PI*r*r;

printf("r=%-7.2f,l=%-7.2f,s=%-7.2f\n",r,l,s); }§3.3顺序结构程序举例【例3-10】编写程序,从键盘输入两个电阻的值,求它们并联和串联的电阻值,并输出结果(保留两位小数)。分析:并联和串联的电阻值计算公式如下:并联电阻,串联电阻。数据设计:本程序根据上述公式计算两个电阻并联和串联后的电阻值,因此需要定义以下变量: 两个单精度实型变量r1、r2用来存放两个电阻值。 1个单精度实型变量rs用来存放串联后的电阻值。 1个单精度实型变量rp用来存放并联后的电阻值。§3.3顺序结构程序举例程序如下: #include<stdio.h> voidmain() { floatr1,r2,rp,rs;

printf("PleaseinputR1andR2:");

scanf("%f%f",&r1,&r2);

rs=(r1+r2);

rp=rs/(r1*r2);

printf("RP=%.2fRS=%.2f\n",rp,rs); }§3.3顺序结构程序举例【例3-11】编写程序,从键盘输入一个字符,求出与该字符前后相邻的两个字符,按从小到大的顺序输出这3个字符的ASCII码。

分析:字符变量的输出可以有两种形式,用“%c”输出字符型,用“%d”输出整型,其中整型数为字符所对应的ASCII码值。一个字符与其前后相邻的两个字符的ASCII码值分别相差1。

数据设计:本程序只需要1个字符型变量ch用来存放键盘输入的字符。与此字符前后相邻的两个字符在输出函数中分别用表达式求解获得。§3.3顺序结构程序举例程序如下: #include<stdio.h> voidmain() { charch;

ch=getchar();

printf("%cASCIIcodeis%d\n",ch-1,ch-1);

printf("%cASCIIcodeis%d\n",ch,ch);

printf("%cASCIIcodeis%d\n",ch+1,ch+1); }§3.3顺序结构程序举例【例3-12】编写程序,根据公式计算我国10年后的人口数。人口增长问题:按照每年0.8%的增长速度,我国现有人口13.7亿,10年后将有多少人口?并输出结果(保留两位小数)。分析:人口计算公式为:其中,p0=13.7亿,rate=0.8%,n=10。数据设计:本程序根据上述公式计算10年后我国的人口数,因此需要定义以下变量:

1个整型变量n用来存放年限

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论