清华大学C语言第四章_第1页
清华大学C语言第四章_第2页
清华大学C语言第四章_第3页
清华大学C语言第四章_第4页
清华大学C语言第四章_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、第第4章章 顺序程序设计顺序程序设计4.1 c4.1 c语句概述语句概述c c语言中语句可分为语言中语句可分为5 5类:类:(1 1)控制语句;)控制语句;(2 2)函数调用语句;)函数调用语句;(3 3)表达式语句;)表达式语句;(4 4)空语句;)空语句;(5 5)可以用)可以用把一些语句括起来成为复合把一些语句括起来成为复合语句,又称分程序。语句,又称分程序。具体内容请同学们看教材具体内容请同学们看教材68696869页。页。4.2 4.2 赋值语句赋值语句赋值语句是由赋值表达式加一个分号构成,下面讲在赋值语句中需要注意的地方:(1)c语言中,=是运算符。(2)注意区分赋值表达式与赋值语

2、句的不同,其它语言中没有赋值表达式的概念。体会下面两个语句: int a,b=3; a=b=2;4.3 4.3 数据输入输出的概念及在数据输入输出的概念及在c c中的实现中的实现(1 1)输入输出是对计算机而言的。)输入输出是对计算机而言的。(2 2)c c中没有输入输出语句,其操作是通过中没有输入输出语句,其操作是通过库函数来实现的。库函数来实现的。(3 3)使用)使用c c函数库时,要用预编译命令函数库时,要用预编译命令“#include”#include”将有关将有关“头文件头文件”包括到用户包括到用户源文件中。源文件中。stdiostdio是是standard input &

3、outputstandard input & output的缩写,它包含的缩写,它包含了与标准了与标准i/oi/o库有关的变量定义和宏定义,库有关的变量定义和宏定义,考虑考虑printfprintf和和scanfscanf函数使用频繁,系统允许函数使用频繁,系统允许使用这两个函数时不加使用这两个函数时不加#include#include命令。命令。 . .字符数据的输入输出字符数据的输入输出 4.4.1 putchar 4.4.1 putchar函数(字符输出函数)函数(字符输出函数)1) 1)作用:向终端输出一个字符。作用:向终端输出一个字符。2) 2)形式:形式:putchar(c

4、putchar(c); c); c可以是字符变量或整型变可以是字符变量或整型变量。量。3) 3)说明:该函数包含在说明:该函数包含在stdio.hstdio.h库中,(在程序的库中,(在程序的连接阶段要将目标文件与相应的库文件连接在连接阶段要将目标文件与相应的库文件连接在一起形成最终的可执行文件。这里的一起形成最终的可执行文件。这里的stdio.hstdio.h是所是所需的库文件)。因而要将需的库文件)。因而要将stdio.hstdio.h用预编译命令用预编译命令#include#include将其包含在原文件中。将其包含在原文件中。 例:例: #include stdio.h main()c

5、har a,b,c; a=b; b=o; c=y; putchar(a); putchar(b); putchar(c); 运行结果:运行结果: boy 注意:用注意:用putchar函数也可输出控制字符。函数也可输出控制字符。 例:例:putchar(n);4.4.2 getchar4.4.2 getchar函数(字符输入函数)函数(字符输入函数) 1) 1) 作用:从终端(或系统隐含指定的输入设备)作用:从终端(或系统隐含指定的输入设备)输入一个字符。输入一个字符。 2) 2) 形式:形式:getchargetchar( )( );无参数无参数 3) 3) 说明:该函数只能接收一个字符,其

6、函数值说明:该函数只能接收一个字符,其函数值可以赋给一个字符变量或整型变量,也可作为表可以赋给一个字符变量或整型变量,也可作为表达式的一部分,该函数包含在达式的一部分,该函数包含在stdio.hstdio.h中。中。例:例:#include stdio.h main( ) char c; c=getchar( ); putchar(c); putchar(getchar();4.5.1 4.5.1 printfprintf函数(格式输出函数)函数(格式输出函数)1) 1) 作用作用:向终端输出若干个任意类型的数据。:向终端输出若干个任意类型的数据。2) 2) 格式格式:printfprintf

7、( (格式控制,输出表列格式控制,输出表列) )3) 3) 说明说明: 格式控制格式控制是用双引号括起来的字符串,也称是用双引号括起来的字符串,也称“转转换控制字符串换控制字符串”,它包括两种信息:,它包括两种信息: 格式说明格式说明:由:由“%”%”和格式字符组成。和格式字符组成。 普通字符普通字符:即需要原样输出的字符。:即需要原样输出的字符。 输出表列是需要输出的数据,可以是常量输出表列是需要输出的数据,可以是常量 、 变变量或表达式。量或表达式。4.5 4.5 格式输入与输出格式输入与输出4) 4) 格式字符:格式字符:对不同类型的数据用不同的格式字对不同类型的数据用不同的格式字符,有

8、以下几种:符,有以下几种: d d格式符格式符: : 用来输出十进制整数用来输出十进制整数 %d %d 按整型数据的实际长度输出。按整型数据的实际长度输出。 %md%md m m为指定的输出字段的宽度。为指定的输出字段的宽度。 %ld %ld 输出长整型数据。输出长整型数据。 %mld%mld 输出长整型数据,输出长整型数据,m m为指定的输出宽度。为指定的输出宽度。 o o格式符:格式符:以以8 8进制形式输出整数,符号位被进制形式输出整数,符号位被作为作为8 8进制的一部分输出,不会输出带负号的进制的一部分输出,不会输出带负号的8 8进制数。也可分为进制数。也可分为%o%o,%mo %mo

9、 ,%lo %lo ,%mlo%mlo几几种。种。 x x格式符:格式符:以以1616进制形式输出整数,同样进制形式输出整数,同样不会出现负的不会出现负的 1616进制数。也可分为进制数。也可分为%x %x ,%mx %mx ,%lx %lx ,%mlx%mlx几种。几种。 u u格式符:格式符:输出输出unsignedunsigned型数据,以十进制型数据,以十进制形式输出。形式输出。 注意:注意:一个一个intint型整数可以用型整数可以用%u%u格式输格式输出,一个出,一个unsignedunsigned型数据也可以用型数据也可以用%d%d格格式输出,按相互赋值的规则处理。式输出,按相互

10、赋值的规则处理。 例例 main() unsigned int a=65535; int b=-2; printf(a=%d,%o,%x,%un,a,a,a,a); printf(b=%d,%o,%x,%un,b,b,b,b); 运行结果:运行结果:a=-1,177777,ffff,65535b=-2,177776,fffe,655341 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 11 1 1 0ab c c格式符:格式符:用来输出一个字符。用来输出一个字符。 s s格式符:格式符:用来输出一个字符串。用来输出一个字符串。 %s %s

11、 按字符串原长输出。按字符串原长输出。 %ms %ms 输出字符串占输出字符串占m m列,列,右对齐,左补右对齐,左补空格空格 %-ms %-ms 输出字符串占输出字符串占m m列,列,左对齐,右左对齐,右补空格补空格 %m.ns %m.ns 字符串占字符串占m m列,但只取左端列,但只取左端n n个字个字符,符,右对齐,左补空格右对齐,左补空格 %-m.ns %-m.ns 字符串占字符串占m m列,但只取左端列,但只取左端n n个字个字符,符,左对齐,右补空格左对齐,右补空格 f f格式符:格式符:用来输出以小数形式表示的用来输出以小数形式表示的实数实数 %f%f 不指定字段宽度,由系统自动

12、指定,不指定字段宽度,由系统自动指定,整数部分全部输出,输出整数部分全部输出,输出6 6位小数,单精度位小数,单精度有效位为有效位为6 6位,双精度有效位为位,双精度有效位为1616位。位。 %m.nf%m.nf 输出数据共占输出数据共占m m列,其中有列,其中有n n位小数,右对齐,不足左边补空格。位小数,右对齐,不足左边补空格。 %-m.nf%-m.nf 输出数据共占输出数据共占m m列,其中有列,其中有n n位小数,左对齐,不足右边补空格。位小数,左对齐,不足右边补空格。例例 main( ) int a=6,b=10; float x=2.3,y=1.58; printf( a=%d,b

13、=%3dn ,a,b); printf( x=%f,y=%6.2f ,x,y); 运行结果:运行结果: a=6,b= 10 x=2.300000,y= 1.58 4.5.2 scanf4.5.2 scanf函数(格式输入函数)函数(格式输入函数)1) 1) 作用:作用:输入任何类型的多个数据。输入任何类型的多个数据。2) 2) 形式:形式:scanfscanf( (格式控制,地址表列格式控制,地址表列) )3) 3) 说明说明: : 格式控制与格式控制与printfprintf函数中的格式控制相函数中的格式控制相同。同。 地址表列是由若干个地址组成的表列,地址表列是由若干个地址组成的表列,可以

14、是变量的地址,或字符串的首地址。可以是变量的地址,或字符串的首地址。例:例: main( ) int a,b,c;scanf( %d%d%d ,&a,&b,&c);printf( %d,%d,%dn ,a,b,c); “&”是地址运算符,是地址运算符,&a指指a在内存中的地址。在内存中的地址。“%d%d%d”表示按十进制整数形式输入数表示按十进制整数形式输入数据,输入数据时,在两个数据之间以一个或据,输入数据时,在两个数据之间以一个或多个多个空格空格间隔,也可以用间隔,也可以用回车键回车键、跳格键、跳格键tab,但不能用逗号但不能用逗号。4) 4) 格式

15、说明:格式说明: 格式说明符与格式说明符与printfprintf中相似,以中相似,以“%”%”开头,开头,以一个格式字符结束,中间可以插入附加的以一个格式字符结束,中间可以插入附加的字符。字符。另有几点说明:另有几点说明: (a)(a) 在在scanfscanf中对中对unsignedunsigned型数据,可以用型数据,可以用%u%u,%d%d,%o%o,%x%x格式进行输入。格式进行输入。 (b)(b) 可以指定输入数据所占列数,系统自动按可以指定输入数据所占列数,系统自动按它截取所需数据。它截取所需数据。 scanfscanf( %3d%3d ,&a,&b);( %3d

16、%3d ,&a,&b); 输入输入123456123456, 则自动将则自动将123123a a,456456b b scanf( %3c ,&chscanf( %3c ,&ch); ); 输入输入3 3个字符,把第一个字符赋给变量个字符,把第一个字符赋给变量chch。 (c) %后的后的“*”附加说明符,用来表示跳附加说明符,用来表示跳过它相应的数据。过它相应的数据。 scanf( %2d %*3d %2d ,&a,&b); 输入输入 12 345 67 则将则将12a,67b,345被跳过被跳过 (d) 输入数据时不能规定精度。输入数据时不能

17、规定精度。 scanf(“ %7.2f ”,&a);非法非法例已知三角形的三边长,求三角形面积。例已知三角形的三边长,求三角形面积。 # include math.h main() float a,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.2fn ,a,b,c,s); printf( area=%7.2fn ,area); 例从键盘输入一个大写字母,要求改

18、用例从键盘输入一个大写字母,要求改用 小写字母输出。小写字母输出。 # include stdio.h main() char c1,c2; c1=getchar(); printf( %c,%dn ,c1,c1); c2=c1+32; printf( %c,%dn ,c2,c2); 例求例求axax2 2+bx+c=0+bx+c=0方程的根方程的根(a,b,c(a,b,c由键盘输入,由键盘输入,设设b b2 2-4ac0)-4ac0) # include math.h main() float a,b,c,disc,x1,x2,p,q; scanf( a=%f,b=%f,c=%f ,&

19、;a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf( nnx1=%5.2fnx2=%5.2fn ,x1,x2); 例例. . 输入一个华氏温度,要求输出摄氏温度,输入一个华氏温度,要求输出摄氏温度, 公式为公式为 main() float c,ft; scanf( input a f %f ,&ft); c=5.0/9*(ft-32); printf( nc=%7.2fn ,c); )32(9/5fc 例例 : : 计算等差数列前计算等差数列前n n项和项和已

20、知等差数列的第一项为已知等差数列的第一项为a1,a1,公差为公差为d d,前,前n n项和的计算公式为:项和的计算公式为:s=a1s=a1* *n+n(n-1)n+n(n-1)* *d/2d/2 #include stdio.h #include stdio.h main() main() int int a1,n,d,s; a1,n,d,s; scanf(%d,%d,%d,&a1,&n,&d); scanf(%d,%d,%d,&a1,&n,&d); s=a1 s=a1* *n+nn+n* *(n-1)/2(n-1)/2* *d; d; prin

21、tf(a1=%d,n=%d,d=%d,sprintf(a1=%d,n=%d,d=%d,s=%dn,a1,n,d,s); =%dn,a1,n,d,s); 输入:输入:1 1,3030,2 2a1=1,n=30,d=2,s=900a1=1,n=30,d=2,s=900养成良好的源程序书写风格养成良好的源程序书写风格顺序程序段左对齐顺序程序段左对齐 顺序程序段中的所有语句(包括说明语句),一般与本顺序程序段的首行左对齐。c程序的上机步骤:程序的上机步骤: 在编好一个在编好一个c源程序后,如何上机运行呢?下面我们以微型源程序后,如何上机运行呢?下面我们以微型机下的机下的turbo c 2.0为例,讲述其运行步骤。为例,讲述其运行步骤。一、一、turbo c 2.0系统环境。系统环境。 首先获得一首先获得一turbo c 2.0打包文件,解包后在硬盘上形成打包文件,解包后在硬盘上形成tc目录树,其目录结构如下:目录树,其目录结构如下:tc主目录,下面有主目录,下面有tc系统文件、系统文件、include(头包含文件)和(头包含文件)和lib(库文件)子目录。(库文件)子目录。二

温馨提示

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

评论

0/150

提交评论