程序设计基础第3章讲_第1页
程序设计基础第3章讲_第2页
程序设计基础第3章讲_第3页
程序设计基础第3章讲_第4页
程序设计基础第3章讲_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第3章顺序结构程序设计3.1程序的三种结构3.2C语句总述3.3数据的输入与输出3.4顺序结构程序设计举例3.1程序的三种结构顺序结构、选择结构、循环结构用这三种基本结构作为表示一个良好算法的基本单元。三种基本结构的图示:

顺序结构选择结构当型(While型)循环结构直到型(Until型)循环循环结构的图示:三种基本结构的共同特点:(1)只有一个入口;

(2)只有一个出口;(请注意:一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框的出口和选择结构的出口混淆。)(3)结构内的每一部分都有机会被执行到;(4)结构内不存在“死循环”(无终止的循环)。小结:由三种基本结构组成的算法结构,可以解决任何复杂的问题。由基本结构所构成的算法属于“结构化”的算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。3.2C语句综述一个C程序可以有若干个源程序文件组成一个源文件可以有若干个函数和预处理命令以及全局变量声明部分组成;一个函数有函数首部和函数体组成;函数体由数据声明和执行语句组成;C语句分为5类控制语句函数调用语句表达式语句空语句复合语句(一)控制语句完成一定的控制功能

1if()~else条件语句6break间断语句

2for()~循环语句7switch()开关语句

3while()~循环语句8goto转向语句

4do~while();循环语句9return返回语句

5continue继续语句(二)函数调用语句

一个函数调用加一个分号构成一个语句。

Printf(“ThisisaCstatement.”);例:(三)表达式语句

有一个表达式加一个分号构成一个语句。

a=3;例:(四)空语句只有一个分号的语句。(什么也不做)用来做流程的转向点用来作为循环语句中的循环体(五)复合语句用一对{}括起来的语句

{ intx=123.5,y; y=x/100; printf(“%f”,t); }例:3.3数据的输入与输出输入/输出以计算机为主体,输入是指从输入设备(键盘等)向计算机输入数据,输出是指从计算机向输出设备(显示器等)输出数据。

C语言本身不提供输入输出语句,输入输出操作通过C系统函数库的函数来完成的。如输入函数:scanf()、getchar();输出函数:printf()、putchar()等。在使用系统函数库的函数时,要用编译预处理命令“#include”将有关的“头文件”包含到用户的源文件中。1.单个字符的输出──putchar()函数例3.1putchar()函数的格式和使用方法。#include<stdio.h>

/*编译预处理命令:文件包含*/intmain()

{chara,b,c;/*定义字符型变量*/

a=‘B’;b=‘O’;c=‘Y’;/*为字符型变量赋值*/putchar(a);putchar(b);/*输出字符*/putchar(c);putchar(‘\n’);

}

程序运行结果如下:

BOYputchar()函数的格式:putchar(ch);

其中ch可以是一个字符变量或常量,也可以是一个转义字符。putchar()函数的作用是向终端输出一个字符。(1)putchar()函数只用于输出单个字符,且一次只能输出一个字符。另外,从功能角度来看,printf()函数可以完全代替putchar()函数。(2)在程序中使用putchar()函数,务必牢记:在程序(或文件)的开头加编译预处理命令(也称包含命令):

#include<stdio.h>2.单个字符的输入──getchar()函数例3.2getchar()函数的使用。#include<stdio.h>intmain(){charr;r=getchar();/*输入一个字符*/putchar(r);/*输出该字符*/putchar(‘\n’);}a↙/*键盘输入的字符数据*/a/*屏幕显示的输出数据*/程序执行时输入一个字符a并按回车键后,在屏幕上看到结果。getchar()函数的格式:

getchar();

getchar()函数的作用:从系统输入设备(如键盘)输入一个字符。另外,从功能角度来看,scanf()函数可以完全代替getchar()函数。(1)getchar()函数只能用于单个字符的输入,一次输入一个字符。当需要多个字符时,可通过循环输入实现。(2)程序中要使用getchar()函数,必须在程序(或文件)的开头加上编译预处理命令:

#include<stdio.h>

注意:函数getchar()

和putchar(ch)在格式上和应用上的差别。3.格式化输出函数printf()函数例3.3已知圆半径radius=1.5,求圆的周长和面积并输出。

#include<stdio.h>intmain()

{floatradius,length,area,pi=3.1415926;

radius=1.5;

length=2*pi*radius; /*求圆周长*/

area=pi*radius*radius; /*求圆面积*/

printf(“radius=%f\n”,radius);

/*输出半径*/

printf(“length=%7.2f,area=%7.2f\n”,

length,area);

}

printf()函数的作用:向计算机系统默认的输出设备输出一个或多个任意类型的数据。printf()函数的一般格式如下:printf(“格式控制”,输出表列);

(1)格式控制格式控制时用双引号括起来的字符串,可以包含三种信息:①格式说明。格式说明的一般形式如下:%格式字符

②转义字符例如,中printf()函数中的'\n'就是转义字符,输出时产生一个“换行”操作。③普通字符──除格式字符和转义字符之外的其它字符。格式字符串中的普通字符,原样输出。例如,printf(“radius=%f\n”,radius);(2)输出表列输出表列是可选的。如果要输出的数据不止1个,相邻2个之间用逗号分开。必须与“输出表列”中输出项的数据类型一致,否则会引起输出错误。下面的printf()函数都是合法的:(1)printf("Iamastudent.\n");

(2)printf("%d",3+2);

是普通字符(3)格式字符输出不同类型的数据,要使用不同的格式字符。常用的有:

①格式字符d──以带符号的十进制整数形式。例3.4格式字符d的使用。#include<stdio.h>intmain(){intn1=123;longn2=123456;

/*用3种不同格式,输出int型数据n1的值*/printf("n1=%d,n1=%-5d,n1=%5d\n",n1,n1,n1);

/*用2种不同格式,输出long型数据n2的值*/printf("n2=%ld,n2=%5ld\n",n2,n2);}

②格式字符f─以小数形式、按系统默认的宽度,输出单精度和双精度实数。例3.5显示输出浮点数(左对齐、右对齐)。#include<stdio.h>intmain(){floatf=123.456;doubled1,d2;d1=1111111.111;d2=2222222.222;printf("%f,%10.2f,%-10.2f,%.2f\n",f,f,f,f);printf("d1+d2=%lf\n",d1+d2);}

数据右对齐数据左对齐对于实数,也可使用格式符%e,以标准指数形式输出:尾数中的整数部分大于等于1、小于10,小数点占一位,尾数中的小数部分占5位;指数部分占4位,其中e占一位,指数符号占一位,指数占2位,共计11位。也可使用格式符%g,让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。③格式字符c──输出一个字符(只占一列宽度)。例3.6格式字符c的使用。#include<stdio.h>intmain(){charc='A';inti=65;printf("c=%c,%5c,%d\n",c,c,c);printf("i=%d,%c\n",i,i);}

需要强调的是:在C语言中,整数可以用字符形式输出,字符数据也可以用整数形式输出。④格式字符s──输出一个字符串。例3.7格式字符s的使用。

#include<stdio.h>intmain(){

printf("%s\n","Internet");}

运行结果如下:Internet

注意:系统输出字符和字符串时,不输出单引号和双引号。(4)使用说明①printf()可以输出常量、变量和表达式的值。但格式控制中的格式说明符,必须按从左到右的顺序,与输出表中的每个数据一一对应,否则出错。②格式字符x、e、g可以用小写字母,也可以用大写字母。使用大写字母时,输出数据中包含的字母也大写。除了x、e、g格式字符外,其它格式字符必须用小写字母。例如,%f不能写成%F。③格式字符紧跟在“%”后面就作为格式字符,否则将作为普通字符使用(原样输出)。

4.格式输入——scanf()函数例3.8scanf()函数用来从键盘向计算机输入数据的。#include<stdio.h>intmain(){floatx,y,z,aver;scanf(“%f%f%f”,&x,&y,&z);/*从键盘输入数据*/ aver=(x+y+z)/3; printf("%8.4f+%8.4f+%8.4f=%8.4f\n“,x,y,z,aver);printf("%-8.4f+%-8.4f+%-8.4f=%-8.4f\n",x,y,z,aver);}在程序中给计算机提供数据,可以用赋值语句,也可以用输入函数。在C语言中,可使用scanf()函数,通过键盘输入,给计算机同时提供多个、任意类型的数据。(1)scanf()函数的一般格式scanf("格式字符串",输入项首地址表);①格式字符串。格式字符串可以包含3种类型的字符:格式字符、空格和修饰字符。格式指示符与printf()函数的相似,空白字符作为相邻2个输入数据的缺省分隔符,非空白字符在输入数据时,必须原样一起输入。②输入项首地址表──由若干个输入项首地址组成,相邻2个输入项首地址之间,用逗号分开。输入项地址表中的地址,可以是变量的首地址,也可以是字符数组名或指针变量。变量首地址的表示方法:&变量名其中“&”是地址运算符。

(2)scanf()函数的功能:从键盘上接收格式化输入。

(3)格式字符格式说明符与输出函数中一样。一般形式为:

%格式字符

①格式字符类型字符类似输出。例如案例3.6的scanf()函数语句中,格式字符串“%f”。

②附加说明符(最好不使用)指定该项输入数据所占列数为n。换句话说,读取输入数据中相应的n位,按需要的位数赋给相应的变量,多余部分被舍弃。例如:scanf("%3d%3d",&a,&b);printf(“a=%d,b=%d\n",a,b);使用scanf()注意事项:

1.对应“%d%f%d”从键盘上输入数据时,整型或实型数据可以用空格、回车或Tab键隔开,但对于“%c%c”,输入字符时不需要隔开。

2.“格式字符串”中出现的普通字符(包括转义字符),务必原样输入。例如,scanf("%d,%d",&n1,&n2);

正确的操作是用逗号隔开两个数,即:12,36↙

3.scanf()函数中、格式字符串内的转义字符(如\n),系统并不把它当转义字符来解释,而是将其视为普通字符,所以也要原样输入。例3.9输入三角形的三边长,求三角形面积。假设:三个边长a,b,c能构成三角形。已知面积公式:area=s=(a+b+c)*0.5#include<stdio.h>#include<math.h>intmain(){floata,b,c,s,area;/*定义变量*/scanf(“%f,%f,%f”,&a,&b,&c);/*输入三条边长*/s=1.0/2*(a+b+c);/*计算周长*/area=sqrt(s*(s-a)*(s-b)*(s-c));/*计算面积*/printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);printf("area=%7.2f\n",area);}

温馨提示

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

评论

0/150

提交评论