第 3 章 顺序结构程序设计

41
3 3 C C 目目目目目目目目目 目目目目目目目目目 第3第 第第第第第第第第 3.1 目目目目目目目目目 3.2 目目目目目目目目目 3.3 目目目目目目目目目目

Upload: elvis-reid

Post on 04-Jan-2016

171 views

Category:

Documents


0 download

DESCRIPTION

第 3 章 顺序结构程序设计. 3.1 顺序结构的设计思想 3.2 实现顺序结构的语句 3.3 顺序结构程序设计举例. 3.1 顺序结构的设计思想. 顺序结构是程序中最简单的一种结构。 组成顺序结构 程序的最基本语句是 赋值语句 和 输入输出语句 。 【 例 3-1】 计算两个整数的差并输出结果。 该算法的 伪代码 如下: 输入 a , b result ← a-b 输出 result. 3.1 顺序结构的设计思想. 本题的程序 如下: main() { int a,b,result; - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

第 3 章 顺序结构程序设计

3.1 顺序结构的设计思想

3.2 实现顺序结构的语句

3.3 顺序结构程序设计举例

Page 2: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.1 顺序结构的设计思想

顺序结构是程序中最简单的一种结构。组成顺序结构程序的最基本语句是赋值语句和输入输出语句。

【例 3-1 】计算两个整数的差并输出结果。

该算法的伪代码如下:

输入 a , b

result ← a-b

输出 result

Page 3: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.1 顺序结构的设计思想本题的程序如下:main(){ int a,b,result; scanf("%d, %d",&a,&b); /* 从键盘接收两个整数 */ result=a-b; /* 计算两数的差 */ printf("a-b=%d",result); /* 输出结果 */}【例 3-1 】程序运行结果下图所示。

Page 4: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2 实现顺序结构的语句

3.2.1 赋值语句

3.2.2 标准的输入输出

Page 5: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.1 赋值语句

赋值语句,是由赋值表达式再加上分号构成的表达式语句。其一般形式为:变量 =表达式 ;

赋值语句的功能和特点都与赋值表达式相同。 在赋值语句的使用中需要注意以下几点:( 1 )由于在赋值符“ =” 右边的表达式也可

以又是一个赋值表达式,因此,下述形式:变量 =(变量 =表达式 );

是成立的,从而形成嵌套的情形。其展开之后的一般形式为:变量 =变量 =…=表达式 ;

Page 6: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.1 赋值语句( 2 )注意在变量说明中给变量赋初值和

赋值语句的区别。 例如:int a=5,b,c;

( 3 )在变量说明中,不允许连续给多个变量赋初值。

( 4 )注意赋值表达式和赋值语句的区别。( 5 )赋值语句中的“ =”是赋值号,而不

是数学意义上的等号,赋值号两侧的内容不能任意调换。

Page 7: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

1. printf 函数(格式输出函数)

printf 函数称为格式输出函数,其关键字最末一个字母 f 即为“格式”( format )之意。其功能是按用户指定的格式,把指定的数据输出到显示器屏幕上。

Page 8: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出 1 ) printf 函数调用的一般形式

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

其中格式控制字符串用于指定输出格式。 %d 表示按十进制整型输出。%ld 表示按十进制长整型输出。%c 表示按字符型输出等。非格式字符串在输出时原样输出。

格式字符串和各输出项在数量和类型上应该一一对应。

Page 9: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出 2 ) printf 格式字符串 在 Turbo C 中格式字符串的一般形式为:

[ 标志 ][ 输出最小宽度 ][. 精度 ][ 长度 ]类型

其中方括号 [] 中的项为可选项。( 1 )类型。类型字符用于表示输出数据的类型。

( 2 )标志。标志字符为 - 、 + 、 # 、空格四种。( 3 )输出最小宽度。( 4 )精度。精度格式符以“ .”开头,后跟十进

制整数。

( 5 )长度。长度格式符为 h 、 l 两种, h 表示按短整型输出, l 表示按长整型输出。

Page 10: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

【例 3-3 】 printf 函数的使用。main(){ int a=15; float b=123.1234567; double c=12345678.1234567; char d='p'; printf(“a=%d,%5d,%o,%x\n”,a,a,a,a); /*

按照不同格式显示整型变量 */ printf(“b=%f,%lf,%5.4lf,%e\n”,b,b,b,b); /*

按照不同格式显示 float 型变量 */

Page 11: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

printf("c=%lf,%f,%8.4lf\n",c,c,c); /* 按照不同格式显示 double 型变量 *

/

printf("d=%c,%8c\n",d,d); /* 按照不同格式显示字符型变量 */

}

【例 3-3 】程序运行结果如下图所示。

Page 12: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出 【例 3-5 】main(){ int i=8; printf("%d\n",++i); printf("%d\n",--i); printf("%d\n",i++); printf("%d\n",i--);

printf("%d\n",-i++); printf("%d\n",-i--);}【例 3-5 】程序运行结果如下图所示。

Page 13: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出 2. scanf 函数(格式输入函数)

scanf 函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

1 ) scanf 函数的一般形式 scanf ( " 格式控制字符串 " ,地址表列) ;

其中,格式控制字符串的作用与 printf 函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“ &” 后跟变量名组成的。

Page 14: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

2 ) scanf 格式字符串 scanf 格式字符串的一般形式为:

%[*][ 输入数据宽度 ][长度 ]类型 其中有方括号 [] 的项为任选项。 ( 1 )类型。表示输入数据的类型。( 2 )“ *” 符。用以表示该输入项读入后不赋予相应的变量,即跳过该输入值。

( 3 )宽度。用十进制整数指定输入的宽度(即字符数)。

( 4 )长度。长度格式符为 l 和 h 。

Page 15: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

使用 scanf 函数还必须注意以下几点:

( 1 ) scanf 函数中没有精度控制。

( 2 ) scanf 中要求给出变量地址。

( 3 )在输入多个数值数据时,若格式控制串中没有非格式字符作为输入数据之间的间隔则可用空格、 TAB或回车作间隔。

Page 16: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

( 4 )在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

( 5 )如果格式控制串中有非格式字符则输入时也要输入该非格式字符。

( 6 )如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。

Page 17: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

例如:scanf("%c%c%c",&a,&b,&c);输入为:d e f则把 'd' 赋予 a , ' ' (空格)赋予 b , 'e' 赋予 c 。只有当输入为:def时,才能把 'd' 赋于 a , 'e' 赋予 b , 'f' 赋予 c 。

如果在格式控制中加入空格作为间隔。如:scanf ("%c %c %c",&a,&b,&c);则输入时各数据之间可加空格。

Page 18: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出 【例 3-7 】main(){char a,b;printf("input character a,b\n");scanf(“%c%c”,&a,&b); /*scanf 函

数 "%c%c" 中没有空格*/printf("%c%c\n",a,b);}

Page 19: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

【例 3-7 】程序运行结果如下图所示。

Page 20: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出 【例 3-9】main(){int a;printf("input a number\n");scanf("%d",&a); /* 输入数据类型为整型 */printf(“%ld”,a); /* 输出语句的格式串中说明为长

整型 */}【例 3-9】程序运行结果如下图所示。

Page 21: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出 【例 3-10】main(){long a;printf("input a long integer\n");scanf("%ld",&a); /* 输入数据类型为长整型 */printf("%ld",a); /* 输出语句的格式串中说明为长整型 */}【例 3-10】程序运行结果如图 3-10所示。

Page 22: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

【例 3-12 】main(){int a;long b;float f;double d;char c;printf(“\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\nchar:%d\n”,sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c)); /* 输出各种数据类型的字节长度 */}

Page 23: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

【例 3-12 】程序运行结果如下图所示。

Page 24: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

3. putchar 函数(字符输出函数)

putchar 函数是字符输出函数,其功能是在显示器上输出单个字符。其一般形式为:

putchar (字符变量)

对控制字符则执行控制功能,不在屏幕上显示。

使用本函数前必须要用文件包含命令: #include<stdio.h> 或 #include“stdio.h” 。

Page 25: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

【例 3-13 】输出单个字符。#include<stdio.h>main(){ char a='B',b='o',c='k'; putchar(a);putchar(b);putchar(b);putchar(c);putchar('\t'); putchar(a);putchar(b); putchar('\n'); putchar(b);putchar(c); }

Page 26: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

【例 3-13 】程序运行结果如下图所示。

Page 27: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

4. getchar 函数(字符输入函数)

getchar 函数的功能是从键盘上输入一个字符。其一般形式为:

getchar();

通常把输入的字符赋予一个字符变量,构成赋值语句,如:

char c;

c=getchar();

Page 28: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出 【例 3-14 】输入单个字符。#include<stdio.h>main(){ char c; printf("input a character\n"); c=getchar(); putchar(c);}【例 3-14 】程序运行结果如下图所示。

Page 29: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

使用 getchar 函数还应注意几个问题:

( 1 ) getchar 函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。

( 2 )使用本函数前必须包含文件“ stdio.h” 。

( 3 )在 Turbo C 屏幕下运行含本函数程序时,将退出 Turbo C 屏幕进入用户屏幕等待用户输入。输入完毕再返回 Turbo C屏幕。

Page 30: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

5. puts 和 gets 函数

1 ) puts() 函数

puts() 函数用来向标准输出设备(屏幕)输出字符串并换行 , 不能输出数值或进行格式变换 , 其调用格式为:

puts(str);

其中 str 为字符串变量。

Page 31: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出 【例 3-15 】 puts() 函数。main() { char string[] = "This is a pen.\n"; puts(string); puts("Hello, my friend.");}【例 3-15 】程序运行结果如图 3-15 所示。

Page 32: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出

2 ) gets() 函数

gets() 函数用来从标准输入设备(键盘)读取字符串直到回车结束,但回车符不属于这个字符串。其调用格式为:

gets(str);

其中 str 为字符串变量。

Page 33: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.2.2 标准的输入输出 【例 3-16 】 gets() 函数。main() { char string[80]; printf("Input a string:"); gets(string); /* 输入字符串 */printf("The string input was: %s\n", string);}【例 3-16 】程序运行结果如下图所示。

Page 34: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.3 顺序结构程序设计举例

【例 3-17 】给出一个大写字母,要求按照字母顺序打印出 3 个字母,指定的字母是三个字母中间的一个字母,输入的字母不能为A或 Z。

编程思路:

由于字符变量在内存中存储的实际上是其ASCII码值,而 26 个英文字母的 ASCII码值是连续的,所以要求出某个字母的两个相邻字母,只要直接在该字符变量上减一和加一即可。

Page 35: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.3 顺序结构程序设计举例 源程序:#include <stdio.h>main(){ int c1,c2; char c; printf("Enter a capital letter: \n"); c=getchar(); /* 输入大写字母 */ c1=c-1; /*求该字母的前一个字母 */ c2=c+1; /*求该字母的后一个字母 */ printf("%c %c %c\n",c1,c,c2); /* 输出三个字母 */}

Page 36: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.3 顺序结构程序设计举例

【例 3-17 】程序运行结果如下图所示。

Page 37: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.3 顺序结构程序设计举例

【例 3-18 】求三个数的平均数。

编程思路:

输入三个整数,把它们相加再除以3 就能得出平均数。为提高精度,结果变量应设为 float 型,因为除法运算的结果可能是小数,另外除数也应该写成 float 型(即 3.0),这样除法运算就能得出 float 型的结果。

Page 38: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.3 顺序结构程序设计举例 源程序:main(){ int a,b,c; float ave; scanf("%d,%d,%d",&a,&b,&c); /* 输入三个数 */ ave=(a+b+c)/3.0; /*求平均数 */ printf("%d,%d,%d\n",a,b,c); printf("ave=%7.2f\n",ave); /* 显示结果 */}【例 3-18 】程序运行结果如下图所示。

Page 39: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.3 顺序结构程序设计举例

【例 3-19】用 * 号输出字母 C 的图案。编程思路: 可先用 * 号在纸上写出字母 C ,再分行输出。源程序:main(){printf(" ****\n");printf(" *\n");printf(" * \n");printf(" ****\n");}

Page 40: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页

3.3 顺序结构程序设计举例

【例 3-19】程序运行结果如下图所示。

Page 41: 第 3 章  顺序结构程序设计

目 录

下一页

退 出

第第 33章章

CC语言程序设计及应用语言程序设计及应用

上一页 bye