第三章 顺序结构程序设计
第3章 顺序结构程序设计
第三章顺序结构程序设计一、输出函数printf的使用使用的格式:printf(“输出格式串”,表达式表); /*printf要小写*/重点掌握输出格式符① 格式符:%d 以普通整型输出(不可以写成%D)%md 以普通整型输出,数据占m位,右对齐%+md 以普通整型输出,数据占m位,右对齐(正数的前面有+号)%-md 以普通整型输出,数据占m位,左对齐%hd 以短整型输出%ld(或%Ld) 以长整型输出%u 以无符号整型输出%o 以八进制形势输出%x(或%X) 以十六进制形势输出%f 以单精度小数形势输出,点后6位小数%lf(或%Lf或%f) 以双精度小数形势输出,%±m.nf 以单精度小数形势输出,点后n位小数,且进行四舍五入%.nf 以单精度小数形势输出,点后n位小数,且进行四舍五入%c 以字符形式输出%s 以字符串形式输出说明:以上的常用格式符必须和后面的变量一一对应,并且后面的变量是什么类型前面就必须用相应的格式符例:int a=-2;unsigned int b=30;float c=3.1456;printf(“%d%u%5.2f”,a,b,c); 问:输出结果是什么?(-230 3.15)②普通字符普通字符原样输出,它不控制变量的输出。
printf(“a=%d,b=%u,c=%5.2f”,a,b,c); 问:输出结果是什么?③转义字符\n 回车且换行\r 回车但不换行\b 退一个字符\t 走一个制表位(8个字符)\\ 转译成\\’转译成’\”转译成”%% 转译成%\ddd 转译成1~3位八进制所对应的ascii码值所代表的字符\xdd 转译成1~2位十六进制所对应的ascii码值所代表的字符二、输入函数scanf的使用格式:scanf(“格式串”,变量地址列表);重点掌握输入格式(有格式符和普通字符,没有转义字符)① 格式符:%d 以普通整型输入%ld(%Ld) 以长整型输入%hd 以短整形输入%md 取整型的m位%u 以无符号型输入%o 以八进制输入%x(%X) 以十六进制输入%f 以单精度小数输入%lf(%Lf) 以双精度小数输入%mf 以单精度小数输入(但是不能规定它的精度。
《C语言程序设计》第三章 顺序结构程序设计
第三章顺序结构程序设计3.1 基本要求z掌握C语言中使用最多的一种语句——赋值语句的使用方法。
z掌握各种类型数据的输入输出的方法,并能正确使用各种格式转换符。
z掌握文件包含预处理命令#include。
3.2 内容小结本章主要介绍了一些为编写简单程序所必须的语句及基本的输入输出方法。
它们是C语言中5类基本语句:控制语句、函数调用语句、表达式语句、空语句和复合语句。
格式输入输出函数scanf( )和printf( ):在C语言中没有专用的输入输出语句,但可通过调用输入输出函数及C系统提供的9种格式字符,进行各种类型数据、各种格式的输入输出。
单个字符的输入输出函数getchar( )和putchar( )。
文件的包含:函数是C程序的构成单元,C程序中的函数调用可分为两类,本源程序中函数的调用和非本源程序中函数的调用,如是后者需用#include 文件包含预处理命令把该函数所在的源文件包含到本源文件中来。
3.3 典型例题分析z例题1 printf( )函数的功能main( ){ int a , b;a=10;b=25;printf(“a=%d b=%d\n”,a,b);printf(“a+b=%d\na-b=%d\n”,a+b,a-b);}运行结果:a=10 b=2529a+b=35a-b=-15从上例中可以看出,转换说明符不仅规定了输出格式,而且也决定了输出项在整个输出信息中的位置。
此外,从上例也可以看出,输出项还可以是运算表达式,这时输出的是它的运算结果值。
z例题2 scanf( )函数的功能main( ){ int x, y;printf(“Enter integer x:”);scanf(“%d”,&x);printf(“Enter integer y:”);scanf(“%d”,&y);printf(“x+y=%d\n”,x+y);printf(“x-y=%d\n”,x-y);}该程序是以人机对话方式给变量x和y赋值,它的某次运行情况如下所示:Enter integer x:16〈CR〉Enter integer y:25〈CR〉x+y=41x- y=-9其中划有下横线的部分是从键盘打入的字符,其中〈CR〉表示回车键。
顺序结构的程序设计
(3)在用%c格式输入字符时,空格和转义字符 都作为有效字符输入;
(4)在输入数据时,遇以下情况时该数据认为 结束:
• 遇空格,或按TAB或回车键; • 按指定的宽度结束; • 遇非法输入。
§3.4 顺序结构程序设计
从键盘输入一个大写字母,要求改用小写字 母输出。
#include <stdio.h> void main() {
2.若变量已正确定义,要将a和b中的数进行交 换,下面不正确的语句组是:
A.a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t;
C.a=t;t=b;b=a;
D.t=b;b=a;a=t;
3.写出输出结果: x=5.16894; printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);
注意: 在使用这两个函数时,必须包含头文件 stdio.h。
#include “stdio.h” void main() {
char c; c=getchar(); putchar(c); }
#include<stdio.h> void main() {
char ch1,ch2,ch3; ch1=getchar();ch2=getchar();ch3=getchar(); putchar(ch1);putchar(′′);putchar(ch2); putchar(′′);putchar(ch3); putchar(′\n′); utchar(′\101′);putchar(66);putchar(‘\″’); putchar(′\n′); }
• %-m.nf:同上,左对齐。 (8)e格式符:以指数形式输出实数。 • %e:输出位数13位(正数)或14位(负
第3章 顺序结构程序设计
3.2 实现顺序结构程序设计的基本语 句
• 赋值语句 语句
赋值语句由赋值表达式加上一个分号构成,一般形式为: 变量=表达式; 变量=表达式; 例如: radius=14.5; i++; x+=2; 赋值语句是将右边表达式的值赋给左边的变量中去。赋值 语句要先对表达式加以计算求得其值,而后再将求得的值赋给 左边的变量中去,因此可以说赋值语句兼有计算功能。
例3.1
例3.2
例3.3
• 输出项表 输出项表中可以有多个输出项,各项之间用逗号分隔。 • 注意事项: ①格式控制中的格式说明符必须按从左到右的顺序,与输出 项表中的每个数据一一对应。 ②除x,e,g外,其他类型转换字符必须用小写字母。 ③类型转换字符紧跟在“%”后面时作为类型转换字符,否则 上一页 将 作为普通字符处理。
• 标准输入输出
C语言本身并不提供输入输出语句,其输入输出操作是由标 准库函数来实现的,在使用标准库函数时,要用预编译命令: 首页 上一页 #include将“stdio.h”文件包括到用户源文件中。
– 格式输出函数—printf()
形式: printf(“格式控制”[,输出项表]); printf( 格式控制” 输出项表] • 格式控制 ①普通字符:即需要原样输出的的字符信息。 ②格式说明符:即用%开头后面跟有一个字母,它规定了输 出项的输出形式。常用格式说明符见表3.1和表3.2。 ③转义字符:以“\”开头的字符序列。常用转义字符见表3.3。
上一页
–单个字符的输入—getchar()函数
形式: c=getchar(); c=getchar(); 执行上面的调用时,变量c将得到用户从键盘输入的一 个字符值,这里的c可以是字符型或整型变量。
第3章 顺序结构程序设计
致命错误: main函数中,xxx行 语句丢分号 Warning xxx Possible use of „x‟ before definition in … 警告:xxx中xxx行 在定义前可能使用了‘x’ 运行错误要具体问题具体分析;一般较复杂。 简单跟踪:在程序中加入输出语句
[例4.2] 从键盘输入一个小写字母,要求用大小写 字母形式输出该字母及对应的ASCII码值。 #include "stdio.h" main() {char c1,c2; printf("Input a lowercase letter: "); c1=getchar(); putchar(c1);printf(",%d\n",c1); c2=c1-32;/*将大写字母转换成对应的小写字母*/ printf("%c,%d\n",c2,c2); } 程序运行情况如下: Input a lowercase letter: a↙ a,97 A,65 程序演示
在顺序结构程序中,各语句 (或命令)是按照位置的先后次序, 顺序执行的,且每个语句都会被执 行到。
顺序结构程序设计举例
[例子4.1]输入一个圆的半径,求它的面积。 #include <stdio.h> #define PI 3.1415 void main() {float r, area; scanf(“%f”,&r); area=PI*r*r; printf(“r=%7.2f, area=%7.2f\n”,r,area); } 程序演示
建议:为改善人机交互性,同时简化输入 操作,在设计输入操作时,一般先用 printf()函数输出一个提示信息,再用 scanf()函数进行数据输入。 如: printf(“please input data:\n”); scanf(“%d,%d”,&sum1,&sum2);
C3 顺序结构程序设计
第 3 章 顺 序 结 构 程 序 设 计
1234,1234 运行 结果: 结果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a 例 static char a[]=“Hello,world!” printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a); 运行结果: 运行结果:Hello,world! Hello,world! Hello Hello HelCopyright@ Henan Polytechnic University
本章主要内容
3.1
第 3 章 顺 序 结 构 程 序 设 计
C语言语句概述 语言语句概述 字符数据的输入输出 格式化输入输出函数 顺序结构程序设计举例
3.2 3.3 3.4
Copyright@ Henan Polytechnic University
C 语 言
3.3 格式化输入输出函数
格式输出函数
C 语 言
第 3 章 顺 序 结 构 程 序 设 计
C语言程序设计
第3章 顺序结构程序设计
Copyright@ Henan Polytechnic University
C 语 言
引子
问题:一年有春夏秋冬四季,按序执行, 问题:一年有春夏秋冬四季,按序执行,做事亦有先后 顺序,那么C 顺序,那么C语言在编写程序时可以采用这样的顺序结 构吗? 构吗?
Copyright@ Henan Polytechnic University
C 语 言
本章主要内容
3.1
第 3 章 顺 序 结 构 程 序 设 计
C语言语句概述 语言语句概述 字符数据的输入输出 格式化输入输出函数 顺序结构程序设计举例
3 顺序结构程序设计
对D框进一步细化如图3-10所示。求素数的
方法是:将xi用2到之间的整数去除,如能 被其中之一整除,则xi就不是素数,使xi=0。
对图3-7的C框可以细化如图所示
到此为止,已全部细化完毕。每一部分都
可以分别直ห้องสมุดไป่ตู้用C语言来表示。将以上各图 综合起来,可得到下图所示的N-S流程图。
3.4 字符的输入与输出函数
第3章 顺序结构程序设计
一个程序应包括以下两方面内容: (1) 对数据的描述。在程序中要指定数据的类 型和数据的组织形式,即数据结构(data structure)。 (2) 对操作的描述。即操作步骤,也就是算法 (algorithm)。 程序 = 算法 + 数据结构 + 程序 设计方法 + 语言工具和环境
3.1 算法概述
3.1.1 算法的概念
为解决某一个特定问题而采取的方法和 步骤,叫做”算法”。算法是问题求解过程 的精确描述,一个算法由有限条可完全机械 执行的、有确定结果的指令组成。
例3.1 交换两个变量的数据 已知变量x和y中分别存放了数据,现在要交 换其中的数据,为了达到交换的目的,需 要引进一个中间变量m,其算法如下: (1) 输入x、y的值; (2) 将x中的数据送给变量m,即x→m; (3) 将y中的数据送给变量x,即y→x; (4) 将m中的数据送给变量y,即m→y; (5) 输出x、y的值。
例3.2 #include "stdio.h" void main() { int a,b,c,min; scanf("%d,%d,%d",&a,&b,&c); if(a<b) min=a; else min=b; if(c<min) min=c; printf("min=%d",min); }
第3章 顺序结构程序设计
第3章 顺序结构程序设计
【例题3.1】阅读下列程序,认识格式输出函数的用法,写结果 #include<stdio.h> int main() { int i,j,m,n; 格式控制字符串 输出列表项 i=5; j=15; m=i++; n=++j; printf("i=%d, j=%d, m=%d, n=%d\n",i,j,m,n); return 0; }
※ %s:输出一个字符串。
※ %f:按实型数据输出且有6位的小数点。 ※ %e: 按实型数据输出且按指数形式
※ %g:按实型数据输出由系统自动选择f格式或e格式。
2016年12月12日星期一 8
第3章 顺序结构程序设计
3.3.2 格式输入函数scanf
阅读下列程序,认识scanf()函数的用法
#include<stdio.h> int main() 格式控制字符串(注意表示形式) { 输入地址列表 int a,b,c; float aver; printf("请输入三个数a,b,c:"); scanf("%d%d%d",&a,&b,&c); aver=(a+b+c)/3; printf("aver=%f\n",aver); return 0; }
第3章 顺序结构程序设计
3.4 字符输入/输出函数
【例题3.4.1】 通过键盘输入一个小写字母,输出该 字母的大写。 分析:输入可采用格式输入函数scanf()实现,输出可 采用格式输出函数printf()实现,使用格式符%c。小 写字母与大写字母的ASCII码值相差32。 思考:不用格式输入/输出函数能不能完成?能,用C 语言提供的另一类函数即字符输入/输出函数。
精品课件-C语言程序设计实用教程-第3章 顺序结构的程序设计
3.printf()函数应用举例 【例3.8】 用不同的格式输出同一变量。 #include "stdio.h" main( ) {
char ch='b'; int x=65; printf("ch=%c,%4c,%d\n", ch, ch, ch); printf("x=%d,%c\n", x, x); }
【例3.9】 输出不同的数据类型的应用。
#include "stdio.h"
main()
{ int a,b;
float c;
char ch ;
a=123;
b=-1;
c=1.23;
ch='a';
printf("a=%d, a=%4d\n", a, a ); /*输出整数a的值*/
printf("%d, %o, %x, %u\n", b, b, b, b); /* 输出b的 值*/
(1)格式控制 格式控制由双引号括起来的字符串,主要包括格式说明和需要原 样输出的字符。 ①格式说明 由“%”和格式字符组成,如%d,%f等,作用是将要输出的数据转 换为指定的格式后输出。 ②普通字符 需要原样输出的字符。如“printf("radius=%f", radius);” 语句中的“radius=”就是普通字符。 (2)输出表列:是需要输出的一些数据,可以是常量、变量和 表达式。
printf("%f, %6.1f\n",c,c); c的值 */
/* 输出实数
printf("%c\n", ch);
/*输出字符
3.4.2 scanf()函数
高树芳C语言程序设计--第三章
数。
程序代码
10
3.2
格式化输入
相关知识: 1.scanf的基本格式 2.scanf的格式字符串
11
3.2
格式化输入
[课堂训练3-1]
编写程序,把700分钟表示为:HH小时MM分钟。
12
3.3
字符数据的输入输出
案例3-4 putchar()与getchar()函数 案例3-5 连续输入多个字符
[解决方案]一是使用printf 输出固定字符串,二是
使用printf 输出变量、常量或表达式。
程序代码
5
3.1 格式化输出
相关知识:
1.printf的两种用法 2.C语言的语句 3.C语言中语句的分类
6
3.1 格式化输出
案例3-2 [案例任务]
printf函数的语法
运行下列程序,分析运行结果。
案例3-6 计算圆的面积与周长 案例3-7 两个整数的交换
18
3.4
顺序结构程序设计
案例3-6 计算圆的面积与周长 [案例任务] 键盘输入圆的半径,计算并输出圆的面积 与周长。要求结果保留2位小数,输出数据 左对齐。例如输入6,则运行结果如下:
程序代码
19
3.4
顺序结构程序设计
相关知识: 1.三种程序结构 2.顺序结构程序
第3章 顺序结构
知识目标: 1.掌握格式化输出函数printf和格式化输入 函数scanf的用法 2.掌握字符输入函数getchar和字符输出函 数putchar的用法 3.掌握C语言的顺序结构的特点及程序设 计模式
1
第3章 顺序结构 能力目标: 1.会使用printf函数输出各种数据类型的数据 2.会使用scanf函数输入各种数据类型的数据 3.会使用putchar和getchar函数输出或输入字符数 据 4.掌握求余运算和取整运算,掌握数字拆分等算法 5.能看懂简单的算法流程图 6.能编写简单的顺序结构程序 本章内容: 格式化输出,格式化输入,字符数据的输入和输出, 顺序结构程序设计。
第3章 顺序结构程序设计
知识链接
分析:此程序主要是格式化输入函数scanf的运 实践 用,要熟练掌握scanf函数的使用方法 理论
目标
知识链接
/*案例3-4 */
运行结果
实践 理论 目标
实践任务
任务5:分析下面程序运行结果 /*案例3-5 */
#include <stdio.h> main() { double a,b,c; scanf("%lf,%lf",&a,&b ); c=a*b; printf("\na*b=%lf*%lf=%le\n",a,b,c); }
数据的输入/输出
计算机对程序的执行过程可以总结成一句话,即输 入数据—处理数据—输出数据。一般一个很小的程序都 要具备数据的输入输出功能。在C语言中,C本身不提供 输入输出语句,C所有数据的输入/输出都是由库函数完 成的。例如printf函数和scanf函数,同学们不要误认为 它们是C语言提供的“输入输出”语句,实际上它们是函 数名。 C提供的函数以库的形式存放在系统中,它们不是C 语言文本中的组成部分。在使用C语言库函数时,要用预 编译命令#include将有关“头文件”包括到源文件中去。 格式为:#include<stdio.h>或#include“stdio.h”。但考 虑到printf和scanf函数使用频繁,系统允许在使用这两 个函数时可以不加#include命令。
知识链接
程序执行情况
分析:此程序主要是练习putchar和getchar函数的 使用。
实践 目标
理论
理论知识
1 2 3 4
C言语句 赋值语句 程序的3种基本结构 数据的输入/输出
实践 理论 目标
第3章 顺序结构程序设计教案
第3章顺序结构程序设计本章要点✧结构化程序设计及三种基本控制结构✧语句的概念✧数据的输入/输出本章学习目标✧掌握顺序结构程序设计方法✧掌握Visual Basic数据的输入/输出方法第3章顺序结构程序设计473.1 结构化程序设计概述Visual Basic是面向对象的程序设计语言,但面向对象的程序设计并不是要抛弃结构化程序设计方法,而是站在比结构化程序设计更高、更抽象的层次上去解决问题。
当它被分解为低级代码模块时,仍需要结构化编程的方法和技巧,只是它分解一个大问题为小问题时采取的思路与结构化方法是不同的。
结构化的分解突出过程,强调的是如何做(How to do?),代码的功能如何完成;面向对象的分解突出现实世界和抽象的对象,强调的是做什么(What to do?),它将大量的工作由相应的对象来完成,程序员在应用程序中只需说明要求对象完成的任务。
3.1.1 结构化程序设计20世纪60年代末,著名学者E.W.Dijkstra首先提出了“结构化程序设计”的思想。
这种方法要求程序设计者按照一定的结构形式来设计和编写程序,使程序易阅读、易理解、易修改和易维护。
这个结构形式主要包括两方面的内容:(1)在程序设计中,采用自顶向下、逐步细化的原则。
按照这个原则,整个程序设计过程应分成若干层次,逐步加以解决。
每一步是在前一步的基础上,对前一步设计的细化。
这样,一个较复杂的大问题,就被层层分解成为多个相对独立的、易于解决的小模块,有利于程序设计工作的分工和组织,也使调试工作比较容易进行。
(2)在程序设计中,编写程序的控制结构仅由三种基本的控制结构(顺序结构、选择结构和循环结构)组成,避免使用可能造成程序结构混乱的GoTo语句。
所谓程序的控制结构是指用于规定程序流程的方法和手段。
它是一种逻辑结构,描述程序执行的顺序,也是一种形式结构,描述程序的编写规则。
按照结构化程序设计方法,使设计编写的程序的控制结构由上述三种结构组成,这样的程序就是结构化程序。
第三章 顺序结构程序设计
步骤1:0 => s; 步骤2:1 => I; 步骤3:s+i => s; 步骤4:i+1 => I; 步骤5:如果i≤1000,转到步骤3,否则结束。 在上面的算法中,符号s、i表示变量,符号“=>” 表示给变量赋值。步骤1和步骤2表示给变量s和i 赋初始值为0和1;步骤3将变量i的当前值累加到 变量s中;步骤4使变量i在原值的基础上增加1; 步骤5判断i的值如果小于等于1000,重复做步骤 3和步骤4,构成一个循环,而当i的值不小于等于 1000时,循环结束,这时,变量s的值就是要求 的计算结果。
2.函数调用语句 函数调用语句由一次函数调用加一个分号(语句结 束标志)构成。例如: printf("This is a C Program."); 3.表达式语句 表达式语句由表达式后加一个分号构成。 表达式能构成语句是C语言的一大特色。最典型的 表达式语句是在赋值表达式后加一个分号构成的赋值 语 句 。 例 如 , “ num=5” 是 一 个 赋 值 表 达 式 , 而 “num=5;”却是一个赋值语句。
3.3 格式化输出函数printf()
程序运行中,有时候需要从外部设备(例如键盘)上得 到一些原始数据,程序计算结束后,通常要把计算结果发 送到外部设备(例如显示器)上,以便人们对结果进行分析。 我们把程序从外部设备上获得数据的操作称为“输入”, 而把程序发送数据到外部设备的操作称为“输出”。 不像其他的高级语言,C语言没有专门的输入/输出语 句,输入/输出的操作是通过调用C语言的库函数来实现的。 printf()函数是最常用的输出函数,它的作用是向计算机系 统默认的输出设备(一般指显示器)输出一个或多个任意指 定类型的数据。
3.1.2 算法的特征 通常,一个算法必须具备以下五个基本特征: (1) 有穷性。一个算法必须在它所涉及的每一种情 形下,都能在执行有限次的操作之后结束。 (2) 确定性。算法的每一步,其顺序和内容都必须 严格定义,而不能有任何的歧义。 (3) 有零个或多个输入。输入是算法实施前需要从 外界取得的信息,有些算法需要有多个输入,而有些 算法不需要输入,即零个输入。 (4) 有一个或多个输出。输出就是算法实施后得到 的结果,显然,没有输出的算法是没有意义的。 (5) 可行性。算法的每一步都必须是可行的,也就 是说,是能够由计算机执行的。
河南理工大学C语言第三章课后答案
A. a=98, b=765, c=4321
B. a=10, b=432, c=8765 C. a=98, b=765.000000, c=4321.000000
D. a=98, b=765.0, c=4321.0
第三章 顺序结构程序设计
2.解析题 (1)请写出下面程序的运行结果 #include <stdio.h> main( ) { int x=170; float a=513.789215; printf("x=%3d,x=%6d,x=%6o,x=%6u\n",x,x,x,x,x,x); printf("x=%-3d,x=%-6d,x=%6d,x=%%6d\n",x,x,x,x); printf("x=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf\n",a,a,a,a); }
#include <stdio.h> main() { int a,b; float x,y; char c1,c2; scanf("a=%d b=%d",&a,&b); scanf("x=%f y=%f",&x,&y); scanf("c1=%c c2=%c",&c1,&c2); printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c",a,b,x,y,c1,c2); }
x=170,x=ㄩㄩㄩ170,x=ㄩㄩㄩ252, x=ㄩㄩㄩ170 x=170,x=170ㄩㄩㄩ,x=ㄩㄩㄩ170,x=%6d a=513.789185,a=ㄩㄩ513.79,a=ㄩㄩ513.78918457,a=ㄩㄩ513.78918457
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章顺序结构程序设计一、结构化程序设计:1.程序是命令的有序集合,命令执行的顺序即程序的结构。
2.在结构化程序设计中,把所有程序的逻辑结构归纳为三种:顺序结构、选择结构和循环结构。
3.结构化程序设计概述:结构化程序设计的原则:自顶向下→逐步细化→模块化设计(所谓模块化设计,就是按模块组装的方法编程。
把一个待开发的软件分解成若干个小的简单部分,称为模块。
)→结构化编码(编码俗称编程序)。
二、算法:1. 算法就是一种在有限的步骤内解决问题或完成任务的方法。
2. 计算机程序就是告诉计算机如何去解决问题或完成任务的一组详细的、逐步执行的指令集合。
3. 数据时操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。
4. 算法的流程成图表示法:起止框:输入/输出操作:判断框:流程线:5. 基本算法:累加,累乘,求最大或最小值。
穷举:穷举就是一种重复型算法。
它的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。
迭代:是一个不断用新值取代变量的旧值,由旧值递推出变量的新值过程。
递归:算法自我调用的过程,一种算法是否称为递归,关键取决于该算法定义中是否有它本身。
排序:是在待排序记录中按照一定次序排列数据的过程。
查找:是在数据列表中确定目标所在位置的过程。
(顺序查找:可在任何列表中查找,对半查找:要求列表是有序的)三、C语句概述:1. 表达式语句:在各种表达式后加一个分号构成的语句。
2. 函数调用语句:在函数调用的一半形式后加一个分号构成的语句,其作用是完成特定的功能。
一般形式:函数名(实参表);3. 空语句:只有一个分号的语句称为空语句,其形式如:;空语句在语法上占据一个语句的位置,但是它不具备任何操作功能。
4. 复合语句:用一对花括号“{}”将多条语句括起来构成的语句体。
形式{语句组}5. 控制语句:C程序设计中用来构成分支结构和循环结构并完成一定控制功能的语句。
●条件语句:if …else。
●多分支选择语句:switch●当型循环语句:while,for●直到循环型循环语句:do…while●终止本次循环语句:continue●终止整个循环或跳出switch语句:break●无条件转移语句:goto●函数返回语句:return四、输入/输出语句:1. C语言不提供输入/输出语句,它的输入/输出操作是由输入/输出函数调用语句来实现的。
2. 常用的标准输入/输出函数有两种:●用于格式输入/输出的函数(scanf()/printf())。
●用于字符输入/输出的函数(getchar()/putchar())。
●这里所谓的标准输入/输出是指以系统隐含指定的输入/输出设备作为输入/输出设备的,例如:对于微型计算机,是指键盘和显示器。
3. 格式化输出函数printf()1) Printf()函数:①调用形式:printf(格式字符串,输出项表);②功能:按格式字符串中的格式依次输出输出项表中的各输出项表中的各输出项。
③说明:●字符串是用双引号括起来的一串字符。
●格式字符串用来说明输出项表中各输出项的输出格式。
●输出项表列出要输出的项,各输出项之间要用逗号分开。
●若没有输出项表,且格式字符串不含格式信息,则输出的是格式字符串本身。
2) 格式字符串:●非格式字符:非格式字符(或称普通字符)一律按原样输出。
●格式字符:格式字符的形式:%[附加格式说明符]格式符格式符功能d 输出带符号的十进制整数o 输出无符号的八进制整数x 输出无符号的十六进制整数u 输出无符号的十进制整数c 输出单个字符s 输出一串字符(若字符串长度超过指定的精度则自动突破,不会截断字符串)f 输出实数(默认6位小数)(单精度和双精度)e 以指数形式输出实数(尾数1位整数,默认6位小数,指数至多3位)g 选择f与e格式中输出宽度较小的格式输出,且不输出无意义的0p 输出变量的内存地址% 也就是%%形式,输出一个%附加格式说明符功能m(m为正整数) 数据输出宽度为m,如数据宽度超过m,按实际输出.n(n为正整数) 对实数,n是输出的小数位数,对字符串,n表示输出前n个字符l ld输出long型数据,If和le输出double型数据h用于格式符d、o、u、x或X,表示对应的输出项是短整型- 数据左对齐输出,无-是默认右对齐输出。
3) 每个格式说明都必须用“%”开头,以一个格式字符作为结束,在此之间可以根据需要插入“宽度说明”、左左对齐符号“—”、前导零符号“0”等。
4) 注意:●%o不带先导0,例如十进制数15用%o输出为17,%#o加先导0,例如十进制数15用%#o输出为017●同理:%#x或%#X输出带先导0x或0X的十六进制数。
E或e:以指数形式输出浮点数(单精度和双精度),格式是:[—]m.dddddde xx。
小数位数(d的个数)由输出精度决定,隐含的精度是6.若指定的精度为0,则包括小数点在内的小数部分都不输出。
Xxx为指数,保持3位,不足补0.若指数为0,输出指数是0005)长度修饰符:在%和格式字符之间,可以加入长度修饰符,以保证数据输出格式的正确和对齐。
对于长整形即%ld;对于短整型数可以加h,即%hd。
4、输出数据所占的宽度说明:当使用%d,%c,%f…的格式说明时,输出数据所占的宽度(域宽)由系统决定,通常按照数据本身的实际宽度输出,前后不加空格,并采用右对齐的形式。
也可以用以下三种方法人为控制:1) 在%和格式字符之间插入一个整数常数来指定输出的宽度n(%4d,n代表整数4)。
如果指定的宽度n不够,输出时将会自动突破,保证数据完整输出。
如果指定的宽度n超过输出数据的实际宽度,输出时将会右对齐,左边补以空格,达到指定的宽度。
2) 对于float和double类型的实数,可以用“n1,n2”的形式来指定输出宽度(n1和n2分别代表一个正常数),其中n1指定输出数据的宽度(包括小数点),n2指定小数点后小数位的位数,n2也称为精度。
(%12.4f,n1代表整数12,n2代表整数4)。
3) 对于f、e、E,当输出数据的小数位多于n2位时,截取右边多于的小数,并对截取部分的第一位小数做四舍五入处理;当输出数据的小数位少于n2时,在小数的最右边补0,使得输出数据的小数部分宽度为n2.若给出的总宽度n1小于n2加上整数位数和小数点(e或E格式还要加上指数的5位),则自动突破n1的限制;反之,数字右对齐,左边补空格。
4) 也可以用“.n2”格式(%.6f),不指定总宽度,仅指定小数部分的输出位数,由系统自动突破,按照实际宽度输出、如果指定“n1.0”或“.0”格式,则不输出小数点和小数部分。
5) 对于g或G,宽度用来指定输出的有效数字位数。
若宽度超过数字的有效数字位数,则左边自动补0;若宽度不足,则自动突破。
不指定宽度,将自动按照6位有效数字输出,截取右边多余的小数,并对截取部分的第一位小数做四舍五入处理。
6) 对于整型数,若输出格式是“0n1”或“.n2”格式,(%05d或%.5d),则如果指定的宽度超过输出数据的实际宽度,输出时将会右对齐,左边补0、7) 对于float和double类型的实数,若用“0n1.n2”格式输出(%012.4f),如果给出的总宽度n1大于n2加上整数位数和小数点(e或E格式还要加上指数的4位),则数字右对齐,左边补0。
8) 对于字符串,格式“n1”指定字符串的输出宽度,若n1小于字符串的实际长度,则自动突破,输出整个字符串;若n1大于字符串的实际长度,则右对齐,左边补空格。
若用“.n2”格式指定字符串的输出宽度,则若n2小于字符串的实际长度,将只输出字符串的前n2个字符。
9) 输出数据左对齐:由于输出数据都隐含右对齐,如果想左对齐,可以在格式控制中的“%”和宽度之间加一个“—”号来实现。
10) 使输出数据总带+号或—号:通常输出的数据如果是负数,前面有符号“—”,但正数前面的“+”一般都省略了。
如果要每一个数前面都带正负号,可以在“%”和格式字符间加一个“+”号来实现。
11) 符合语句:一个符合语句在语法上视为一条语句,在一对花括号内的语句数量不限。
5、使用printf函数时的注意事项:1) Printf的输出格式为自由格式,是否在两个数之间留逗号、空格或回车、完全取决于格式控制,如果不注意,很容易造成数字连在一起,使得输出结果没有意义。
例如:若K=1234,f=123.456,则printf("%d%d%f\n",k,k,f);语句的输出结果是:12341234123.456,无法分辨其中的数字含义。
而改用printf("%d %d %f\n",k,k,f);其输出结果是:1234 1234 123.456,看起来就一目了然了。
2) 若格式说明与输出项的类型不一一对应匹配,则不能正确输出,而且编译时不会报错。
若格式说明个数少于输出项个数,则多余的输出项不予输出;若格式说明个数多余输出项个数。
则将出现一些毫无意义的数字乱码。
3) Printf函数有返回值,返回值是本次调用输出字符的个数,包括回车等控制符。
4) 尽量不要在输出语句中改变输出变量的值,因为可能会造成输出结果的不确定性。
例如:int k=8,printf("%d,%d\n",k,++k);输出结果不是8,9而是9,9。
这是因为调用函数printf时,其参数是从右至左进行处理的,将先进行++k运算。
5) 输出数据时的域宽可以改变。
若变量m、n、i和f都已正确定义并赋值,则语句printf("%*d",m,i);将按照m指定的域宽输出i的值,并不输出m的值。
而语句printf("%*.*f",m,n,f);将按照m和n指定的域宽输出浮点型变量f的值,并不输出m、n的值。
6、数据输入:●scanf函数的一般调用形式如下:scanf(格式字符串,输入项地址表)●在scanf函数调用之后加上“;”,则构成输入语句。
●功能:按格式字符串中规定的格式,在键盘上输入各输入项的数据,并依次赋给各输入项。
●说明:格式字符串与printf()函数基本相同,但需要特别注意的是:输入项以其地址的形式出现,而不是输入项的名称。
如:scanf("%d,%f",&a,&b);其中&a、&b分别表示变量a,b的地址,&是取地址运算符(优先级及结合性与++相同)。
●格式控制的主要作用是指定输入时的数据转换格式,即格式转换说明。
输入项之间用逗号隔开。
●用于输入的格式字符及其功能:格式字说明符c 输入一个字符d 输入带符号的十进制整型数i 输入整型数,整型数可以是带先导0的八进制数,也可以是带先导0x(或0X)的十六进制数o 以八进制格式输入整型数,可以带先导0,也可以不带x 以十六进制格式输入整型数,可以带先导0X或0x,也可以不带u 以无符号是禁止行使输入整型数f(lf)以带小数点的数学形式或指数形式输入浮点数(单精度数用f,双精度数用lf)e(le) 同上s 输入一个字符串,直到遇到“\0”。