C语言程序设计教程 第3章_第1页
C语言程序设计教程 第3章_第2页
C语言程序设计教程 第3章_第3页
C语言程序设计教程 第3章_第4页
C语言程序设计教程 第3章_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章顺序程序设计,3.1 C语言的基本语句 3.2 数据输入与输出 3.3 程序举例,3.1 C语言的基本语句,C语言数据操作语句,简单语句,表达式语句(表达式;),函数调用语句(函数名(参数表);),空语句(;),复合语句(一条或多条语句;),流程控制语句,结构化语句,条件语句(if语句,switch语句),循环语句,while语句,do-while语句,for语句,非结构化语句,break语句,continue语句,return语句,非限定转向语句,3.3.1简单语句 1、表达式语句 一般形式:表达式 ; 注意:分号不可省略 表达式语句可以分为:运算符表达式语句、赋值语句 (1)运算符表

2、达式语句(运算符表达式;) 如:i+;-j; (2)赋值语句(赋值表达式;) 如:x=3;a=a*5+1;,2、函数调用语句 一般形式:函数名(参数列表); 如:printf(“%d”,a); scanf(“%d”, int x=2; int x=3; printf(“x=%d,y=%dn”,x,y); printf(“x=%d,y=%dn”,x,y); printf(“x=%d,y=%dn”,x,y); ,3.2 数据输入与输出,3.2.1 字符输入输出函数 1、字符输出函数 函数原型: int putchar(int); 功能:向标准输出设备输出一个字符,并返回输出字符的ASCII编码值。

3、函数的参数可以是字符常量、字符型变量或者整型变量。即将一个整数作为ASCII编码,输出相应的字符。,如: #include main() int i=97; char ch=a; putchar(i); putchar(n); putchar(ch); ,2、字符输入函数 函数原型: int getchar(int); 功能:向标准输入设备输入一个字符,函数的返回值是该字符的ASCII编码值。该函数每调用一次,就从输入设备上取一个字符。函数的值可以赋给一个字符变量,也可以赋给一个整型变量。 注意:1、执行getchar()输入字符时,输入字符后需要按回车键,程序才会响应输入。 2、getcha

4、r()会将回车键作为一个回车字符读入,因此在用该函数连续输入两个字符的时候要注意回车符。,#include main() int ch; ch=getchar(); putchar(ch);,3.2.3 printf函数(格式输出函数) 一般格式为: printf(格式控制,输出表列); 例如:printf(“a=%d,b=%f”,a,b); (1)“格式控制” :双引号括起来的字符串,也称“转换控 制字符串”,它包括两种信息: a.普通字符,即需要原样输出的字符。 b.格式说明,由%和格式字符构成:如%d,%c。它 的作用是将输出的数据转换为指定的格式输出。,(2)“输出表列”是需要输出的对

5、象即数据,可以是常量、变 量或表达式的值。 printf(“a=%d b=%d” , a , b ); 格式说明 输出表列,格式输出(2),输 出 表 列,格式字符*int(1),(1)%d格式符,用来输出十进制整数。 a、 %d:按整数数据的实际长度输出。 b、 %ld:输出长整型数据。 c、 %md或%mld: m规定输出字段的宽度, 右对齐, 左补空格 d、 %-md:md同上,-表示数据输出时,左对齐,右补空格,注意: 1、 如果数据的原始位数小于m,则左端补以空格, 若大于m,则按实际位数输出。 2、一个int型数据可以用%d或%ld格式输出。,s1.c 输出整型数据。,格式字符*i

6、nt(2),(2)%o格式符,以八进制数形式输出整数。 输出的数值不带符号,即将符号位也一起作为八进制 的一部分输出,无负值。 对长整型(long型)可以用“%lo”格式输出。 可以指定输出字段的宽度 (3)%x格式符,以十六进制数形式输出。 使用同%o,(4)%u格式符,用来输出unsigned型数据, 一个有符号整数(int型)也可以用%u格式输出;反之, 一个unsigned型数据也可以用%d格式输出。Unsigned型 数据也可以用%o或%x格式输出。 例 无符号数的输出。 main( ) unsigned int a=65535; int b= - 2; printf(“a=%d,%

7、o,%x,%un”,a,a,a,a); printf(“b=%d,%o,%x,%un”,b,b,b,b); ,运行结果为: a=-1,177777,ffff,65535 b=-2,177776,fffe,65534,格式字符*int(3),s2.c 输出整型数据。,格式字符char(1),(5)%c格式符,用来输出一个字符。 char c=a; printf(“%c”,c); /*输出字符a*/ 注意: 一个整数,只要它的值在0255范围内,也可以用字 符形式输出,在输出前系统会将该整数作为ASCII码 转换成相应的字符;反之,一个字符数据也可以用整 数形式输出。,格式字符char(2),例、

8、字符数据的输出。 main( ) char c=a; int i=97; printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i);,另外: 也可以指定输出字符宽度, 如: printf(“%3c”,c) 则输出: a占3列,实际a占有效宽度为最后一列, 前2列补空格。,运行结果为: a,97 a,97,s3.c 输出整型数据。,格式字符string(1),(6)%s格式符,用来输出一个字符串。 %s 例如:printf(“%s”,”CHINA”);输出“CHINA” (不包括双引号),1. %ms: 输出的字符串占m列,如字符串长度m,则字符 串原样输出; 若串长

9、m,则左补空格,右对齐。,2. %-ms: 字符串向左靠齐,右补空格。,3. %m.ns: 输出共占m列,有效字符为字符串中左端n个字 符。右对齐,左补空格。如果nm,则m自动取n 值,即保证n个字符正常输出。,4. %-m.ns: 其中m、n同上。左对齐,右补空格。,格式字符string(2),例字符串的输出。 main( ) printf(“%3s,%7.2s,%.4s,%-5.3sn”, ”CHINA”,”CHINA”,”CHINA”,”CHINA”); ,输出如下: CHINA, CH,CHIN,CHI 其中第3个输出项,格式说明为“%.4s”,即只指定了n,没指定m,自动使m=n=4

10、,故占4列。,s4.c 输出整型数据。,注意:并非全部数字都是有效数字。单精度实数的有效位数一般为7位,给出小数6位。双精度数也可用%f格式输出,它的有效数字一般为16位。,格式字符float,(7)%f : 用来输出实数(单、双精度),以小数形式输出。 a. %f 不指定字段宽度,由系统自动指定(即使用默认值),使整数部分全部输出,并输出6位小数。,main( ) float x,y; x=111111.111;y=222222.222; printf(“%f”,x+y); ,s5.c 输出 单 精 度 实数,运行结果为: 333333.328125,格式字符double,main( ) d

11、ouble x,y; x=1111111111111.111111111 y=2222222222222.222222222 printf(“%f”,x+y); ,最后3位小数(超过16位)是无意义的。,输出结果为 3333333333333.333010,格式字符小数,%m.nf 输出的数据共占m列,其中有n位小数。若数值长 度小于m,则左端补空格;若大于m,则设定无效 c. %-m.nf 基本同上,数值向左端靠齐,右端补空格。,main( ) float f=123.456; printf(“% f-% 10f-%10.2f-%.2f-%-10.2f n”,f,f,f,f,f); ,s6.

12、c 输出 实数,指定小数位数,输出结果如下: 123.456001,123.46,123.46,123.46,123.456001,格式字符指数,(8)%e格式符,以指数形式输出实数。 a. %e,不指定宽度和数字部分小数位数,由系统自动给出6 位小数,小数点另占1位;指数部分占5位(如 e+002),其中“e”占1位,指数占3位。数值按规范 化指数形式输出;%e格式输出的实数共占13列宽度。 b. %m.ne和%-m.ne,m、n和“-”字符含义不变。此处n指拟输出的数据的小数部分(又称尾数)的小数位数。,s7.c 输出 实数,指定小数位数,格式字符%g,(9)%g格式符,用来输出实数,自动

13、选择%f格式或%e格式中输出时占宽度较小的一种,不输出无意义的零。,注意:使用printf函数输出时,数据类型必须与上述格式说明匹配。,说明: (1)除了X,E,G外,其他格式字符必须用小写字母。 (2)一个格式说明以%开头。 (3)可以在printf函数中的“格式说明”字符串内包含转义字符。 (4)如果想输出字符“%”,则应该在“格式控制”字符串中用 连续两个%表示。 如:,printf( “ % f % % ” , 1.0 / 3 ) ; 输出:0.333333%,输 出 表 列(1),main( ) int i = 8 , j = 10 , m , n ; m = + + i ; n =

14、 j + + ; printf( “ n %d,%d,%d,%d ” , i , j , m , n ) ;,9 , 11 , 9 , 10,main( ) int i = 8 , j = 10 ; printf( “ n %d,%d,%d,%d ” , i+ , j+ , i , j ) ;,8 , 10 , 8 , 10,printf ( )在处理输出列表时,是从右到左进行运算的, 但输出时,是按从左到右的顺序排列的。,s8.c,main( ) int i = 8 , j = 10 ; printf( “ n %d,%d,%d,%d ” , i , j , i+ , j+ ) ;,9 ,

15、11 , 8 , 10,输 出 表 列(2),格 式 输 入(1),格式控制:含义同 printf函数,其中, , 是多个格式控制符的 间隔符,可以是其它符号,也可以没有 地址表列:由若干个地址组成的表列,可以是变量的地址, 或字符串的首地址。,scanf函数 (格式输入函数) 一般格式:scanf(格式控制,地址表列); 如:scanf( “%d,%d” , ,格 式 输 入 (2),s9.c 格式输入,main( ) int a,b,c; scanf ( “%d : %d : %d ”, ,运行时按以下方式输入a,b,c的值: 3 : 4 : 5,输出a、b、c的值 3,4,5,main(

16、 ) int a,b,c; scanf ( “%d%d%d ”, ,运行时按以下方式输入a,b,c的值: 3 4 5,输出a、b、c的值 3,4,5,格 式 输 入 (3),2、格式说明 与printf函数中的格式说明相似,以%开始,以一个格式 字符结束,中间可以插入附加的字符。 说明: (1)对unsigned型变量所需的数据,可以用%u,%d或%o,%x输出。 (2)可以指定输入数据所占列数即宽度,系统自动按它截取所需数据。 (3)如果在%后有一个“*”抑制字符,表示跳过它指定的列数。 (4)输入数据时不能规定精度。,格 式 输 入 (4),s10.c 格式输入,格 式 输 入 (5),3

17、、使用scanf函数时应注意的问题: (1) “格式控制”后面应当是变量地址,而不应是变量名。 (2)如果在“格式控制”字符串中除了格式说明以外还有其他 字符,则在输入数据时应输入与这些字符相同的字符。 (3)对于“%c” ,空格字符和转义字符都是有效字符。 (4)在输入数据数据时,遇以下情况时该数据认为结束。 a.遇空格,或按“回车”或“跳格”(Tab)键。 b.按指定的宽度结束。 c.遇非法输入。,顺序结构程序设计举例 (1),sprogm4_1 从键盘输入一个大写字母,用小写字母输出。 #include main( ) char c1,c2; C1 = getchar ( ) ; printf ( “% c , % d n ”, c1 , c2 ) ; C2 = c1 + 32 ; printf ( “%c , % d n ”, c1 , c2 ) ; ,运行情况如下: A A,65 A,97,3.3 顺序结构程序设计举例,sprogm4_2 输入三角形的三边长,求三角形面积。 设输入的三边长a、b、c能构成三角

温馨提示

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

评论

0/150

提交评论