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

下载本文档

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

文档简介

1、C C语言程序设计语言程序设计p C语言的语句用来向计算机系统发出操作指令。语言的语句用来向计算机系统发出操作指令。 一个一个C程序可以由若干个源程序文件组成,一个源文件可以由程序可以由若干个源程序文件组成,一个源文件可以由 若干个函数和预编译若干个函数和预编译 命令组成,一个函数又由数据定义部分和命令组成,一个函数又由数据定义部分和 语句部分组成,语句部分组成,C程序的总体结构如图程序的总体结构如图 :C 程序程序源程序文件源程序文件1源程序文件源程序文件i源程序文件源程序文件n预编译命令预编译命令函数函数1函数函数n说明部分说明部分语句部分语句部分. . . . . . .C C语言程序设

2、计语言程序设计 (一一). C语句可以分为以下五类语句可以分为以下五类 :1. 控制语句控制语句2. 函数调用语句函数调用语句3. 表达式语句表达式语句4. 空语句空语句5. 复合语句复合语句程序包括程序包括数据描述数据描述和和数据操作数据操作。数据描述:表示数据类型和数据初值,由数据定义部分来实现。数据描述:表示数据类型和数据初值,由数据定义部分来实现。数据操作:任务是对已提供的数据进行加工,由语句来实现。数据操作:任务是对已提供的数据进行加工,由语句来实现。C C语言程序设计语言程序设计1. 控制语句控制语句 作用作用 :完成一定的控制功能完成一定的控制功能 。 语句形式语句形式 : C语

3、言只有语言只有 9 种控制语句种控制语句上面的上面的9种语句中的种语句中的 括号括号( ) 表示的是一个表示的是一个条件条件, - 表示的是内嵌的语句表示的是内嵌的语句. 如如 :if(xy) while(x = =y) (1) if ( ) - else - (条件语句条件语句)(2) for ( ) - (循环语句循环语句)(3) while ( ) - (循环语句循环语句)(4) do - while ( ) (循环语句循环语句)(5) continue (结束本次循环语句结束本次循环语句)(6) break (中止执行中止执行switch或循环语句或循环语句)(7) switch (多

4、分支选择语句多分支选择语句)(8) goto (转向语句转向语句)(9) return (从函数返回语句从函数返回语句)C C语言程序设计语言程序设计2 . 函数调用语句函数调用语句函数调用加一个分号构成的语句。函数调用加一个分号构成的语句。 如如 : printf( This is a C statement. ) ;3. 表达式语句表达式语句 由一个表达式构成的语句。由一个表达式构成的语句。 如如 : 由赋值表达式构成的赋值语句由赋值表达式构成的赋值语句 a = 3 是一个赋值表达式是一个赋值表达式 a = 3 ; 是一个赋值语句是一个赋值语句 可见可见一个表达式加上一个分号就成了一个语句

5、一个表达式加上一个分号就成了一个语句,一个语句,一个语句 必须是分号结尾。必须是分号结尾。 任何表达式都可以加上分号而成为语句。任何表达式都可以加上分号而成为语句。 如如 : x+y 是一个表达式是一个表达式 x+y ; 则是一个语句则是一个语句 i+ ;C语言中的大多数语句是表达式语句语言中的大多数语句是表达式语句(包括函数调用语句包括函数调用语句)C C语言程序设计语言程序设计4. 空语句空语句 只有一个分号的语句。只有一个分号的语句。 即即 ; 这个语句不作任何操作这个语句不作任何操作5. 复合语句复合语句 用用 括起来的一些语句括起来的一些语句 如如 : 注意注意 : 复合语句中最后一

6、个语句也必须以复合语句中最后一个语句也必须以 “;” 结尾。结尾。 C语言中允许一行书写几个语句语言中允许一行书写几个语句,也允许将一个语句书写在几行上也允许将一个语句书写在几行上. z=x+y; t=z/100; printf(%f,t);C C语言程序设计语言程序设计( 二二 ). 程序的三种基本机构程序的三种基本机构( p19-2.4节节) 结构化程序设计能够使得程序结构清晰、易读性强、并能提高结构化程序设计能够使得程序结构清晰、易读性强、并能提高程序设计的质量和效率。程序设计的质量和效率。 结构化的程序由若干个基本结构组成结构化的程序由若干个基本结构组成 ,每个基本结构可以包含每个基本

7、结构可以包含一个或若干个语句。一个或若干个语句。程序的基本结构有以下三种程序的基本结构有以下三种 : 1. 顺序结构顺序结构 2. 选择结构选择结构 3. 循环结构循环结构C C语言程序设计语言程序设计先执行先执行 A 操作,再执行操作,再执行 B 操作,操作, 两者是顺序关系。两者是顺序关系。1. 顺序结构顺序结构 A B C C语言程序设计语言程序设计2. 选择结构选择结构 A B p图中图中 p 代表一个条件代表一个条件,当当 p 条件成立条件成立(为真为真)时执行时执行 A 操作操作,否则执行否则执行 B 操作操作注意注意:只能执行只能执行 A 或或 B 之一之一, 两条路径汇合在一起

8、然后出口两条路径汇合在一起然后出口真真假假由选择结构可以派生出另一种基本结构由选择结构可以派生出另一种基本结构: 多分支选择结构多分支选择结构kA1A2AiAn. . . . .根据根据 k 的值的值 的不同而决的不同而决定执行操作定执行操作 A1, A2, . , Ai , . An 之一之一.C C语言程序设计语言程序设计3 .循环结构循环结构: A p真真假假当当 p 条件成立条件成立(为为真真)时时,反复执行反复执行 A 操作操作,直到直到 p 为为假假时停止循环时停止循环(1) 当型循环当型循环(2) 直当型循环直当型循环先执行先执行 A 操作操作,再判断再判断 p 是否为是否为假假

9、,若若 p 为为假假 ,再执行再执行 A 操作操作,如此反复如此反复,直到直到 p 为为真真时为止时为止 A p真真假假已经证明已经证明,由以上基本结构组成的程序可以处理任何复杂的问题由以上基本结构组成的程序可以处理任何复杂的问题.C C语言程序设计语言程序设计 赋值语句是由赋值表达式加上一个分号构成的。赋值语句是由赋值表达式加上一个分号构成的。 注意注意 : (1) C语言中的赋值号语言中的赋值号 “=” 作为赋值运算符作为赋值运算符 (2) C语言中有赋值表达式和赋值语句之分,语言中有赋值表达式和赋值语句之分,赋值表达式可以赋值表达式可以 包括在其它的表达式之中。包括在其它的表达式之中。例

10、如例如 : a=(b=5); 是是合法的合法的赋值语句赋值语句, 其中其中 b=5 是一个赋值表达式是一个赋值表达式 a = (b = 5;); 是是非法的非法的,因为因为 b=5; 已经是一个赋值语句了已经是一个赋值语句了, 它不能被包括在另一个赋值语句之中它不能被包括在另一个赋值语句之中. if(a=b)0) 是是合法的合法的。 t=a ; if(a=b;)0) 是是非法的非法的。 t=a ;4.2 赋值语句赋值语句C C语言程序设计语言程序设计 1. C语言本身没有输入输出语句,语言本身没有输入输出语句, C语言中的输入输出操作是由语言中的输入输出操作是由 函数来实现函数来实现的。的。

11、2. C语言的标准函数库中提供了一些输入输出函数。语言的标准函数库中提供了一些输入输出函数。 如如 : printf 函数和函数和 scanf 函数。函数。 注意注意 : 不要把它们认为是不要把它们认为是“输入输出输入输出”语句,语句, printf , scanf 也不是也不是 C语言的关键字,而是语言的关键字,而是函数名函数名。 C语言提供的函数以语言提供的函数以库库的形式存放在系统中,的形式存放在系统中,它们不是它们不是C语言的语言的 组成部分组成部分,因此,因此,各函数的功能和名字在不同的计算机系统中有各函数的功能和名字在不同的计算机系统中有 所不同。但是有些通用的函数,各种计算机系统

12、都提供,成为各所不同。但是有些通用的函数,各种计算机系统都提供,成为各 种系统的种系统的标准函数标准函数。 4.3 数据输入输出数据输入输出C C语言程序设计语言程序设计3. 在使用语言库函数时,要用在使用语言库函数时,要用预编译命令预编译命令 :#include 或或#include stdio.h其中其中 stdio.h 是是standard input & output 的缩写。称为的缩写。称为头文件头文件 程序编译连接时,用户程序与标准函数文件相连,因此,程序编译连接时,用户程序与标准函数文件相连,因此,在程序中可以直接使用标准函数。在程序中可以直接使用标准函数。C C语言程序

13、设计语言程序设计 putchar 函数的作用是函数的作用是向终端输出一个字符。向终端输出一个字符。 使用方式使用方式 : putchar(c); -输出变量输出变量 c 的值的值,。 (c 可以是字符型变量和整型变量)可以是字符型变量和整型变量) putchar函数是标准函数是标准I/O库函数库函数(标准输入输出库函数标准输入输出库函数),因此使,因此使用时要用预编译命令用时要用预编译命令“#include”将将“stdio.h”文件包括到用户源文件包括到用户源文件中。文件中。 stdio.h文件中包含了与标准文件中包含了与标准I/O库有关的库有关的变量定义和宏定义变量定义和宏定义。如果在程序

14、中需要用到标准如果在程序中需要用到标准I/O库中的函数时,应该在程序前面库中的函数时,应该在程序前面用预编译命令将用预编译命令将stdio.h文件包含进去。文件包含进去。 4.4 字符数据的输入输出字符数据的输入输出4.4.1 putchar 函数(字符输出函数)函数(字符输出函数)C C语言程序设计语言程序设计#include void main( ) char a, b, c ; a =A ; putchar(a) ; putchar(n) ; putchar(101) ; 例如例如: 输出输出 A输出换行符输出换行符输出输出 ASCII码为码为101的字符的字符A具体用法是具体用法是:

15、#include (注意命令后面没有分号注意命令后面没有分号;)putchar函数可以输出一个函数可以输出一个字符字符、字符变量字符变量,也可以输出,也可以输出控制字符控制字符或转义字符。或转义字符。运行结果运行结果: A AC C语言程序设计语言程序设计#include void main( ) char a, b, c ; a = B; b = O; c = Y; putchar(a) ; putchar(b) ; putchar(c) ; 如:如: putchar(a) ; putchar(n) ; putchar(b) ; putchar(n) ; putchar(c) ; putch

16、ar(n) ; 输出单个字符。输出单个字符。例例 4.1运行结果运行结果 :BOY运行结果:运行结果: B O YC C语言程序设计语言程序设计getchar函数的作用是从键盘输入一个字符。函数的作用是从键盘输入一个字符。 一般形式为一般形式为 : getchar( )#include void main( ) purchar(getchar( ) ; #include void main( ) char c ; c = getchar( ) ; putchar( c) ; 输入单个字符。输入单个字符。输入输入 :a输出输出 :a或或例例 4.24.4.2 getchar函数(字符输入函数)函

17、数(字符输入函数)C C语言程序设计语言程序设计 printf 函数的作用是向终端输出若干个函数的作用是向终端输出若干个任意类型任意类型的数据的数据 而而 putchar函数只能输出一个字符。函数只能输出一个字符。 1. printf 函数的一般格式函数的一般格式 :printf( 格式控制格式控制 , 输出表输出表 );(1). “格式说明格式说明”是用是用双引号双引号扩起来的字符串。扩起来的字符串。(2). 格式说明由格式说明由 % 和格式字符组成和格式字符组成, 如如 %d, %f 等。等。 作用是将输出的数据转换为指定的格式输出。作用是将输出的数据转换为指定的格式输出。 格式说明总是由

18、格式说明总是由 % 字符开始。字符开始。4.5 格式输入输出函数格式输入输出函数4.5.1 printf 函数(格式输出函数)函数(格式输出函数)C C语言程序设计语言程序设计(4). “输出表列输出表列”是需要输出的一些数据,可以是表达式。是需要输出的一些数据,可以是表达式。 例如例如 : printf(%d , a) ; printf(%d , a+b) ; printf(%d , a+3) ;(3). 普通字符普通字符 照原样输出。照原样输出。例如例如 : printf(input a value :) ;输出输出 : input a value :C C语言程序设计语言程序设计 输出输

19、出 : a=3 , b=4 printf(“a=%d b=%d”, a ,b) ; 输出输出 : a=3 b=4可见,双引号中的字符除了格式说明的字符外,可见,双引号中的字符除了格式说明的字符外, 其它非格式其它非格式说明的普通字符按原样输出说明的普通字符按原样输出. 普通字符普通字符例如例如 : int a=3, b=4;printf(a=%d , b=%d, a ,b) ;printf(%d %d , a , b) ;格式说明格式说明输出列表输出列表输出输出 :3 4C C语言程序设计语言程序设计printf 的格式说明字符的格式说明字符: d - 十进制十进制整数输出整数输出 o - 八

20、进制八进制整数无符号形式输出整数无符号形式输出 x - 十六进制十六进制整数无符号形式输出整数无符号形式输出 u - 无符号十进制无符号十进制整数形式输出整数形式输出2. printf 函数函数 格式字符格式字符c - 输出单个字符输出单个字符s - 输出字符串输出字符串f - 以小数形式输出单、双精度实数以小数形式输出单、双精度实数e - 以标准指数形式输出单、双精度实数以标准指数形式输出单、双精度实数g - 以以 %f和和 %e格式中输出宽度较短的一种格式输出格式中输出宽度较短的一种格式输出C C语言程序设计语言程序设计 printf 的附加格式说明字符的附加格式说明字符 : l - 用于

21、用于长整型数据长整型数据 , 可加在可加在 d , o , x , u 之前之前 , (%ld , %lo .)。 m-(正整数正整数)输出数据的输出数据的最小宽度。最小宽度。 .n-(正整数正整数) 指定指定输出实数的小数位数输出实数的小数位数 或或输出字符串中截取的字符个数。输出字符串中截取的字符个数。 - - 表示输出时是表示输出时是左左对齐,否则为向右对齐。对齐,否则为向右对齐。C C语言程序设计语言程序设计 1. d格式符格式符: 用来输出十进制整数。用来输出十进制整数。 (1) %d 按整型数据的实际长度输出按整型数据的实际长度输出 如如 : printf(%d,%d,a,b);

22、输出输出 3,4 (2) %md m为指定的输出字段的宽度,如果数据的位数小于为指定的输出字段的宽度,如果数据的位数小于m 则左边补空格,如果大于则左边补空格,如果大于m,则按实际位数输出。,则按实际位数输出。 如如 : printf(%4d,%4d, a , b); m 的值为的值为4,向右对齐向右对齐 输出输出 3, 4 printf(%-4d,%-4d, a , b) ; 向左对齐向左对齐 输出输出 3 ,4C C语言程序设计语言程序设计(3) %ld 输出长整型数据输出长整型数据 如如 : long a =1234567 ; printf(%ld, a) ; 输出输出 : 123456

23、7 (按实际长度输出按实际长度输出)。 也可以指定字段宽度也可以指定字段宽度 %mld 如如 : printf(%8ld,a); 输出输出 : 1234567 对对long型数据应当用型数据应当用 %ld 输出,如果用输出,如果用 %d 输出,会出错。输出,会出错。 对对 int型数据可以用型数据可以用 %d 或或 %ld 格式输出格式输出C C语言程序设计语言程序设计 (4). 在在%md 前有前有0, 如如 : int k=8567 ; printf(“|%06d|n”, k) ; 输出为:输出为: |008567|如如 : printf(“|%-06d|n”,k) ; 输出为:输出为:

24、|8567| 后面不加后面不加 0如如 : printf(“|%6dn|”,k) ; 输出为:输出为: | 8567|printf(“|%-6d|”,K) ; 输出为:输出为: |8567 |C C语言程序设计语言程序设计3. x 格式符格式符: 以以16进制数形式输出整数进制数形式输出整数 注意注意 : 不会输出带符号的不会输出带符号的16进制数。进制数。 对对 long int 型整数型整数,可以用可以用 %lx 格式输出格式输出 用用 %mx 格式来指定输出字段宽度格式来指定输出字段宽度 2. o格式符格式符: 以以 8 进制数形式输出整数进制数形式输出整数 由于是将内存单元中的各位的值

25、由于是将内存单元中的各位的值( 0 或或 1 )按按8进制形式输出,进制形式输出,因此,输出因此,输出 的数值的数值不带符号不带符号,即将符号位也一起作为,即将符号位也一起作为8进制数的进制数的一部分输出。一部分输出。 注意注意 : 不会输出带符号的不会输出带符号的 8进制数。进制数。 对对 long int 型整数,可以用型整数,可以用 %lo 格式输出。格式输出。 用用 %mo 格式来指定输出字段宽度格式来指定输出字段宽度 C C语言程序设计语言程序设计输出输出: a = -1 , 177777, ffff , 65535 b = -2 , 177776 , fffe , 65534 c

26、=12 , 14 , c , 124. u 格式符格式符: 用来以十进制形式输出用来以十进制形式输出 unsigned 型数据型数据(即无符号数即无符号数) 一个有符号的整数一个有符号的整数(int型型)可以用可以用 %u 格式输出。格式输出。 一个无符号的整数一个无符号的整数(unsigned型型)也可以用也可以用 %d 格式输出。格式输出。 一个无符号的整数一个无符号的整数(unsigned型型)也可以用也可以用% o 或或 %x 格式输出。格式输出。#include void main( ) unsigned a=65535; int b=-2; int c=12; printf(a=%

27、d,%o,%x,%un,a,a,a,a); printf(b=%d,%o,%x,%un,b,b,b,b); printf(c=%d,%o,%x,%un,c,c,c,c);a : 1111111111111111b : 1111111111111110c : 0000000000001100例例 4.3C C语言程序设计语言程序设计#include void main( ) char c=a; int i=97; printf(%c,%dn,c,c); printf(%c,%dn,i,i);例例 4.4输出输出: a,97 a,97 注意变量注意变量 c 与格式符与格式符 c 的区分的区分 5.

28、 c 格式符格式符 : 用来输出一个字符用来输出一个字符 一个整数,只要它的值在一个整数,只要它的值在 0 - 255 的范围内,也可以用字符的范围内,也可以用字符形式输出,在输出前形式输出,在输出前,先将该整数转换成相应的先将该整数转换成相应的 ASCII 字符。字符。 一个字符数据也可以用整数形式输出。一个字符数据也可以用整数形式输出。 用用 %mc 格式来指定输出字段宽度。格式来指定输出字段宽度。C C语言程序设计语言程序设计6. s 格式符格式符: 用来输出一个字符串用来输出一个字符串 (1) %s 按实际长度输出字符串按实际长度输出字符串 如如: printf(%s,PROGRAM)

29、; 输出输出: PROGRAM (2) %ms 右对齐输出字符串占右对齐输出字符串占 m 列列 如果字符串本身长度大于如果字符串本身长度大于 m , 则按实际长度输出则按实际长度输出 如果字符串长度小于如果字符串长度小于 m , 则左边补空格则左边补空格 如如: printf(%10s,%3s,PROGRAM,PROGRAM); 输出输出: PROGRAM , PROGRAM(3) %-ms 左对齐输出字符串占左对齐输出字符串占 m 列列 如果字符串本身长度大于如果字符串本身长度大于 m , 则按实际长度输出则按实际长度输出 如果字符串长度小于如果字符串长度小于 m ,则右边补空格则右边补空格

30、 如:如: printf(“%-10s,%3s”,”PROGRAM”,”PROGRAM”) ; 输出输出 : PROGRAM ,PROGRAMC C语言程序设计语言程序设计#include void main( ) printf(%3s,%7.2s,%.4s,%-5.3s.n, CHINA, CHINA, CHINA, CHINA); (5)%-m.ns 左左对齐输出字符串占对齐输出字符串占 m 列列,但只取字符串中左端的但只取字符串中左端的 n 个字符个字符. 一般情况下一般情况下, 即即 m n 时时, 右边补空格。右边补空格。 如果如果 n m , 则则 m 自动取自动取 n 的值的值,

31、以保证以保证 n 个字符的正常输出。个字符的正常输出。(4) %m.ns 右对齐输出字符串占右对齐输出字符串占 m 列列 , 但只取字符串中左端的但只取字符串中左端的 n 个字符个字符, 一般情况下一般情况下, 即即 m n 时时,左边补空格。左边补空格。 如果如果 n m , 则则 m 自动取自动取 n 的值的值,以保证以保证 n 个字符的正常输出个字符的正常输出例例 4.5输出输出: CHINA, CH,CHIN,CHI .C C语言程序设计语言程序设计 void main( ) float x,y; x=111111.111; y=222222.222; printf(%fn,x+y);

32、 说明有效位数对输出结果的影响说明有效位数对输出结果的影响例例 4.6输出输出: 333333.3281257. f 格式符格式符: 用来以小数形式输出实数用来以小数形式输出实数(包括单精度型和双精度型包括单精度型和双精度型) (1) %f 不指定字段宽度不指定字段宽度,由系统自动指定由系统自动指定,使得整数部分全部完使得整数部分全部完 整输出整输出, 并输出并输出 6 位小数位小数,但是但是,并非全部数字都是有效数字。并非全部数字都是有效数字。 单精度数的有效位数一般是单精度数的有效位数一般是 7 位。位。 双精度数的有效位数一般是双精度数的有效位数一般是 16 位位, 输出小数输出小数 6

33、 位。位。C C语言程序设计语言程序设计void main( ) double x,y ; x=1111111111111.11111 ; y=2222222222222.22222 ; printf(%lf, x+y) ;例例 4.7输出结果输出结果 :3333333333333.333010C C语言程序设计语言程序设计(2) %m.nf 右对齐输出实数右对齐输出实数,指定输出的数据共占指定输出的数据共占 m 列列,其中有其中有 n 位小数位小数, 如果数据的位数小于如果数据的位数小于m, 则左边补空格。则左边补空格。(3) %-m.nf 左对齐输出实数左对齐输出实数,指定输出的数据共占指

34、定输出的数据共占 m 列列, 其中有其中有 n 位小数位小数, 如果数据的位数小于如果数据的位数小于m, 则右边补空格。则右边补空格。void main( ) float f ; f=123.456; printf(%f,%10f,%10.2f,%10.3f,%-10.3fn,f,f,f,f,f);当当n 小于实际的小数位数时,小于实际的小数位数时,将小数部分四舍五入。将小数部分四舍五入。输出输出: 123.456001,123.456001, 123.46, 123.456,123.456例例 4.8C C语言程序设计语言程序设计 8. e 格式符格式符: 用来以指数形式输出实数用来以指数形

35、式输出实数 (1) %e 不指定输出数据所占的宽度和数字部分小数位数不指定输出数据所占的宽度和数字部分小数位数, 由系统自动指定给出由系统自动指定给出6位小数位小数,指数部分占指数部分占 5 位位,数值按标准数值按标准 化指数形式化指数形式 输出输出(即即小数点前必须有而且只有一位非零数字小数点前必须有而且只有一位非零数字), 则以则以%e格式输出时格式输出时,一个数据总共占一个数据总共占 13 列。列。 注意注意: 有的系统中有的系统中,指数部分占指数部分占 4 列列,数值的小数部分数值的小数部分(含小数点含小数点) 占占 6 列列,整个数据占整个数据占 11 列。列。 例如例如: prin

36、tf(%e,123.456); 输出:输出:1.23456e+002C C语言程序设计语言程序设计(2) %m.ne,%-m.ne 指定输出的数据共占指定输出的数据共占 m 列,其中数字部分有列,其中数字部分有 n 位小数,位小数, 如果没有指定如果没有指定n,则自动使,则自动使n=6,整个数据占整个数据占13列。列。如果没有指定如果没有指定m,则自动使,则自动使 m 等于数据应占的列数。等于数据应占的列数。 例如例如: f=123.456时,用以下格式输出时,用以下格式输出 printf(%e,%10e,%10.2e,%.2e,%-10.2en,f,f,f,f,f); 输出输出: 1.234

37、56e+002,1.23456e+002,1.23e+002,1.23e+002,1.23e+002C C语言程序设计语言程序设计9. g格式符格式符: 用来输出实数,它根据数值占宽度的大小,自动选用来输出实数,它根据数值占宽度的大小,自动选 择择 f 格式或格式或 e 格式。格式。 (选择输出时占宽度较小的一种选择输出时占宽度较小的一种),并且不输出无意义的零。并且不输出无意义的零。 float f=123.468 ; printf(%f %e %g, f, f, f) ;输出结果输出结果 : 123.468000 1.234680e+002 123.468 10 列列 13列列 C C语言

38、程序设计语言程序设计注意注意: 1. printf 函数的格式控制字符串中可以包含转义字符函数的格式控制字符串中可以包含转义字符(n,t)。 2. 用在用在 % 后面的格式字符才是格式控制符。后面的格式字符才是格式控制符。 3. 两个连续的两个连续的 % 用来输出字符用来输出字符 % (%)。 4. 输出输出 long整型变量时要求使用整型变量时要求使用 %ld格式。格式。 5. 注意以下输出结果:注意以下输出结果: char ch=a ; int k=12 ; printf(%x,%o,ch, ch, k) ; 没有输出没有输出 k 的值的值 printf(k=%dn, k) ; 输出输出

39、k=%d printf(k=%Dn, k) ; %D,D大写不是格式大写不是格式C C语言程序设计语言程序设计4.5.2 scanf 函数(格式输入函数)函数(格式输入函数)void main( ) int a,b,c ; scanf(%d %d %d, &a, &b, &c) ; printf(%d,%d,%d, a, b, c) ;例例 4.9如如 输入为输入为 :3 4 5 输出为输出为 :3,4,5C C语言程序设计语言程序设计由若干个地址组成的表列由若干个地址组成的表列 ,可以是可以是变量的地址或字符串的首地址。变量的地址或字符串的首地址。 getchar(

40、) 只能输入一个字符只能输入一个字符 scanf 函数可以用来输入函数可以用来输入任何类型任何类型的多个数据的多个数据scanf 函数的一般形式函数的一般形式: scanf(格式控制格式控制 , 地址表列地址表列 );含义与含义与 printf 函数相同函数相同 C C语言程序设计语言程序设计scanf 的格式说明和的格式说明和 printf 的格式说明相似的格式说明相似: 以以 % 开始,以一个开始,以一个 格式字符结束。格式字符结束。 scanf 的格式说明符的格式说明符: d - 输入十进制整数输入十进制整数 o - 输入八进制整数输入八进制整数 x - 输入十六进制整数输入十六进制整数

41、 c - 输入单个字符输入单个字符 s - 输入字符串输入字符串 f 或或 e-输入实数输入实数scanf 还可以使用附加说明符。使用还可以使用附加说明符。使用: l - 输入输入长整型长整型数据或数据或double型数据,如型数据,如: %ld,%lo,%lx,%lf,%le h - 输入输入短整型短整型数据数据,如如: %hd,%ho,%hx m - 域宽域宽(正整数正整数) 指定输入数据所占的宽度指定输入数据所占的宽度 * - 表示该读入项不赋给相应的变量,称为抑制符表示该读入项不赋给相应的变量,称为抑制符C C语言程序设计语言程序设计注意注意: 1. scanf函数中使用的是函数中使用

42、的是变量的地址变量的地址,而不是变量名而不是变量名 如如: int a; 如果写成如果写成 scanf(%d, &a); scanf(%d, a); -错误错误 2. 如果在如果在格式控制格式控制字符串中包含了其它字符字符串中包含了其它字符,则在输入数据时则在输入数据时 在相应的位置输入这些字符在相应的位置输入这些字符 如如: int a,b; scanf(%d,%d,&a,&b); 与与 scanf(%d%d,&a,&b); 输入输入: 1 , 2 输入输入: 1 2 必须以必须以,分隔分隔 以一个或多个空格分隔以一个或多个空格分隔 或者以回车键或或者

43、以回车键或tab键分隔键分隔 但是不能用但是不能用“,”C C语言程序设计语言程序设计 3. 用用 %c 输入字符时输入字符时,所有字符所有字符(包括空格和转义字符包括空格和转义字符)都是有效输入都是有效输入 如如: scanf(%c%c%c,&c1,&c2,&c3); 如果输入如果输入: a b c 则则c1=a c2=(空格空格) c3=b 如果输入如果输入: anc 则则c1=a c2= c3=n 4. 可以用域宽来指定输入数据的所占的列数可以用域宽来指定输入数据的所占的列数,由系统自动按域宽来由系统自动按域宽来 截取所需的数据截取所需的数据(%mc)。 如如:

44、scanf(%3d%3d,&a,&b); 输入输入:123456 则系统自动将则系统自动将123赋给赋给a, 456赋给赋给b 如果用于字符的输入如果用于字符的输入,则取这些列的字符中的第一个字符则取这些列的字符中的第一个字符 如如: scanf(%3c,&c); 输入输入: abc 则则 c=aC C语言程序设计语言程序设计6. 输入数据时不能规定精度,如:输入数据时不能规定精度,如:scanf(“%5.2f”,&a);7. 输入数据时输入数据时, 如果遇到如果遇到 如:如: (1) 空格、回车、跳格空格、回车、跳格(t) scanf(%d%d,&a,

45、&b) ; (2) 宽度结束宽度结束 输入:输入: (1) 3 4 (3) 非法输入非法输入 (2) 3 4 则认为该数据输入结束则认为该数据输入结束 (3) 3 123o.3 4 5. 如果在如果在%后有一个后有一个“*”符,表示跳过它指定的列数。符,表示跳过它指定的列数。 例如:例如: scanf(%2d %*3d %2d, &a,&b ) ; 输入:输入:12 345 67 将将12赋给赋给 a,%*3 表示跳过表示跳过3 位整数不赋给任何变量,位整数不赋给任何变量, 67赋给赋给 b。C C语言程序设计语言程序设计8. 输入输入long整型变量时,要求使用整型变

46、量时,要求使用 %ld格式格式 如:如: long a ; scanf(%ld,&a) ;9. 如:如:scanf(a=%d,&a); 输入时要求键入:输入时要求键入:a=3 C C语言程序设计语言程序设计 输入三角形的三边长输入三角形的三边长,求面积求面积(假设输入三边长,假设输入三边长, 能能 构成三角形构成三角形)。 设设a,b,c为边长,为边长,s=(a+b=c)/2. area= sqrt(s*(s-a)*(s-b)*(s-c) 4.6 顺序结构程序设计举例顺序结构程序设计举例#include #include void main ( ) float a,b,c,s,

47、area ; scanf(%f,%f,%f,&a,&b,&c) ; s=(a+b+c)/2.0 ; area=sqrt(s*(s-a)*(s-b)*(s-c) ; printf(a=%7.2f, b=%7.2f, c=%7.2f,n,a,b,c,s) ; printf(area=%7.2fn,area) ; 例例 4.10C C语言程序设计语言程序设计从键盘输入一个大写字母从键盘输入一个大写字母,然后用小写输出然后用小写输出.#include void main( ) char c1, c2 ; c1=getchar( ) ; printf(%c,%dn, c1, c1) ; c2=c1+32 ; printf(%c,%dn, c2, c2) ;例例 4.11C C语言程序设计语言程序设计 求二次方程的根求二次方程的根. ax*x+bx+c=0, 设设 b*b-4*a*c0, a不等于零。不等于零。#inc

温馨提示

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

评论

0/150

提交评论