第4章_最简单的C程序设计——顺序程序设计_第1页
第4章_最简单的C程序设计——顺序程序设计_第2页
第4章_最简单的C程序设计——顺序程序设计_第3页
第4章_最简单的C程序设计——顺序程序设计_第4页
第4章_最简单的C程序设计——顺序程序设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章第四章 最简单的最简单的C C程序设计程序设计 顺序程序设计顺序程序设计南理工紫金学院南理工紫金学院2 2本章主要内容本章主要内容n4.1 C4.1 C语句概述语句概述n4.2 4.2 赋值语句赋值语句n4.3 4.3 数据输入输出的概念及在数据输入输出的概念及在c c语言中的实现语言中的实现n4.4 4.4 字符数据的输入输出字符数据的输入输出n4.5 4.5 格式输入与输出格式输入与输出n4.6 4.6 顺序结构程序设计举例顺序结构程序设计举例南理工紫金学院南理工紫金学院3 34.1 C4.1 C语句概述语句概述一、一、C C语句语句n用来向计算机系统发出操作命令用来向计算机系统发出

2、操作命令。一条语句经。一条语句经编译后产生若干条编译后产生若干条机器指令机器指令。n注意:注意:声明部分的内容不应称为语句。声明部分的内容不应称为语句。 例例: int a; int a; n函数体内可有若干条语句函数体内可有若干条语句( (在声明部分的后面在声明部分的后面) )。每条语句必须以分号结束。每条语句必须以分号结束。/不是不是C C语句,因为不产生机器操作语句,因为不产生机器操作南理工紫金学院南理工紫金学院4 4C C程序结构图程序结构图C C程序程序源程序文件源程序文件1 1源程序文件源程序文件2 2源程序文件源程序文件n n预处理命令预处理命令函数函数n n函数函数1 1数据声

3、明数据声明函数首部函数首部函数体函数体数据声明数据声明执行执行语句语句南理工紫金学院南理工紫金学院5 5二、二、C C语句的分类语句的分类5 5类类控制语句控制语句函数调用语句函数调用语句表达式语句表达式语句空语句空语句复合语句复合语句南理工紫金学院南理工紫金学院6 61. 1. 控制语句控制语句 if(if( ) ) else else 条件语句条件语句 for(for( ) ) 循环语句循环语句 while(while( ) ) 循环语句循环语句 do do while( while( ) ) 循环语句循环语句 continue continue 结束本次循环语句结束本次循环语句 swit

4、ch( ) switch( ) 多分支选择语句多分支选择语句 break break 中止执行中止执行switchswitch或循环语句或循环语句 goto goto 转向语句转向语句 return return 从函数返回语句从函数返回语句控制程序流程控制程序流程南理工紫金学院南理工紫金学院7 72. 2. 函数调用语句函数调用语句n函数调用语句函数调用语句:由一个:由一个函数调用函数调用加一个加一个分号分号构成构成n例例:printf(This is a C statement.);printf(This is a C statement.);3. 3. 表达式语句表达式语句n表达式语句:

5、表达式语句:由一个由一个表达式表达式加一个加一个分号分号构成构成n例例:赋值表达式后面加上分号称为赋值表达式后面加上分号称为赋值语句赋值语句 如:如:a=3a=3 a=3 a=3; ;/赋值表达式赋值表达式/赋值语句赋值语句南理工紫金学院南理工紫金学院8 84. 4. 空语句空语句 n空语句空语句:只有一个分号的语句。:只有一个分号的语句。(什么也不做)(什么也不做)n用途:用途:用来做流程的转向点;用来做流程的转向点; 用来作为循环语句中的空循环体。用来作为循环语句中的空循环体。5. 5. 复合语句复合语句n复合语句复合语句:用一对:用一对 括起来的语句括起来的语句n例如例如:while(i

6、100)while(i0 ) )0 ) t=a;t=a; 赋值表达式赋值表达式赋值语句赋值语句不能写成不能写成 if( (a=bif( (a=b; ; )0 ) t=a; )0 ) t=a; 南理工紫金学院南理工紫金学院10104.3 4.3 数据输入输出的概念及在数据输入输出的概念及在C C语言中语言中的实现的实现一、输入输出是以计算机主机为主体而言的一、输入输出是以计算机主机为主体而言的n输出输出q从计算机向输出设备从计算机向输出设备( (显示器显示器, , 打印机打印机) )输出数据输出数据q默认的输出设备是显示器默认的输出设备是显示器n输入输入q从输入设备从输入设备( (键盘键盘, ,

7、 鼠标鼠标) )向计算机输入数据向计算机输入数据q默认的输入设备是键盘默认的输入设备是键盘南理工紫金学院南理工紫金学院1111二、二、C C语言没有输入输出语句语言没有输入输出语句, ,输入和输出操作是通过调输入和输出操作是通过调用系统用系统库函数库函数来实现的来实现的三、在使用系统库函数时三、在使用系统库函数时, ,要用预编译命令要用预编译命令“#include”“#include”将有关的将有关的“头文件头文件”包括到用户源文件中。包括到用户源文件中。n例如:如果要用例如:如果要用printfprintf函数,必须在程序开头有:函数,必须在程序开头有: #include #include

8、或或 #include #include stdiostdio.h .h n例如:如果要用求平方根的函数例如:如果要用求平方根的函数sqrtsqrt,必须在程序开,必须在程序开头有:头有: #include #include mathmath.h .h 或或 #include #include 字符输入函数字符输入函数: getchar : getchar 字符输出函数字符输出函数:putchar:putchar格式输入函数格式输入函数: scanf : scanf 格式输出函数格式输出函数: printf: printf字符串输入函数字符串输入函数:gets :gets 字符串输出函数字符串

9、输出函数:puts:puts在在系统目录系统目录里找头文件里找头文件先在先在用户目录用户目录里找头里找头文件,找不到再到文件,找不到再到系系统目录统目录里找里找南理工紫金学院南理工紫金学院12124.4 4.4 字符数据的输入输出字符数据的输入输出一、字符输出函数一、字符输出函数putcharputcharn调用形式调用形式:putchar(putchar(参数参数c) c)n函数功能函数功能:向显示器上输出:向显示器上输出参数参数c c对应的字符对应的字符n注意:注意: qputcharputchar只能输出一个字符!只能输出一个字符!qputcharputchar函数所在的头文件为函数所在

10、的头文件为“stdio.hstdio.h”字符型字符型和和整型整型的的常量、变量、表达式常量、变量、表达式南理工紫金学院南理工紫金学院1313例:例:输出单个字符。输出单个字符。#include #include void main ( ) void main ( ) char c1char c1=a;=a;int int c2=98c2=98; ;putchar(c1);putchar(c1); putchar(c2);putchar(c2);putchar(99);putchar(99); putchar(c1+3);putchar(c1+3);putchar(e); putchar(e)

11、; putchar(n); putchar(n); 运行结果:运行结果:abcdeabcdePress any key to continuePress any key to continue/ /* * 输出字符输出字符a a * */ / /* * 输出字符输出字符b b * */ / /* * 输出字符输出字符c c * */ / /* * 输出字符输出字符d d * */ / /* * 输出字符输出字符e e * */ / /* * 换行换行 * */ /南理工紫金学院南理工紫金学院1414二、字符输入函数二、字符输入函数getchargetcharn一般形式一般形式:getchar(

12、getchar( ) )n函数作用:函数作用:从从键盘缓冲区键盘缓冲区输入一个字符。输入一个字符。n函数值:函数值:从输入设备得到的字符。从输入设备得到的字符。ngetchargetchar函数所在的头文件为函数所在的头文件为“stdio.hstdio.h”。例例4.2 4.2 输入单个字符。输入单个字符。#include #include void main ( )void main ( ) char c=getchar( );char c=getchar( );putchar(c);putchar(c);putchar(n);putchar(n); 运行结果:运行结果:a aa aPres

13、s any key to continuePress any key to continue南理工紫金学院南理工紫金学院1515注意:注意:ngetchargetchar只能接收一个字符只能接收一个字符,当输入多个字符时,当输入多个字符时,多余字符作废!多余字符作废!n用用getchargetchar得到的字符可以赋给得到的字符可以赋给字符型变量字符型变量、整整形变量形变量或或作为表达式的一部分作为表达式的一部分 例如例如:putchar(getchar()+2);putchar(getchar()+2);南理工紫金学院南理工紫金学院16164.5 4.5 格式输入与输出格式输入与输出一、格式

14、输出函数一、格式输出函数printfprintfn函数作用:函数作用:向终端(显示器)输出向终端(显示器)输出若干个若干个任意任意类型类型的数据。的数据。n调用形式:调用形式:printfprintf(格式控制(格式控制,输出表列)输出表列)双引号双引号括起来的字符串。括起来的字符串。l普通字符普通字符( (含含转义字符转义字符) ):原样输出:原样输出l格式说明:由格式说明:由%和和格式字符格式字符组成组成 如如%d%d、%c%c、%f%f等。作用是等。作用是将要输将要输出的数据按指定的格式输出出的数据按指定的格式输出。要输出的数据。要输出的数据。可以是可以是常量常量、变量变量、表达式表达式

15、。南理工紫金学院南理工紫金学院1717n例如:例如:printf(a=printf(a=%d%d, b=, b=%d%d, , a, a, b b); );普通字符普通字符格式说明格式说明输出表列输出表列n例如:例如:printf(Hello!);printf(Hello!);普通字符普通字符南理工紫金学院南理工紫金学院1818格式字符格式字符n%d d:以:以带符号带符号的的十十进制形式输出进制形式输出整数整数n%u u:以:以无符号无符号的的十十进制形式输出进制形式输出整数整数n%o o:以:以无符号无符号的的八八进制形式输出进制形式输出整数整数n%x/Xx/X:以:以无符号无符号的的十六

16、十六进制形式输出进制形式输出整数整数n%c c:以字符形式输出,只输出一个字符:以字符形式输出,只输出一个字符n%s s:输出字符串:输出字符串n%f f:以:以小数形式小数形式输出单、双精度数,隐含输出输出单、双精度数,隐含输出六六 位小数位小数n%e/Ee/E:以:以规范化指数形式规范化指数形式输出实数输出实数n%g/G%g/G:选用:选用%f%f或或%e%e格式中输出宽度较短的一种格式中输出宽度较短的一种 格式,不输出无意义的格式,不输出无意义的0 0(了解了解)南理工紫金学院南理工紫金学院1919格式字符的格式字符的修饰符修饰符nL/lL/l:用于:用于长整型长整型整数,可加在格式符整

17、数,可加在格式符d d、o o、x x、u u前面前面nh h:用于:用于短整型短整型整数,可加在格式符整数,可加在格式符d d、o o、x x、u u前前面面nm m( (正整数正整数) ):域宽。输出项在输出设备上所占字符:域宽。输出项在输出设备上所占字符( (列列) )数数n.n .n( (正整数正整数) ):精度。对于实数,表示输出:精度。对于实数,表示输出n n位小数;位小数;对于字符串,表示自对于字符串,表示自左左边截取边截取n n个字符个字符n- -:输出的数字或字符在域内:输出的数字或字符在域内左对齐左对齐(默认是(默认是右对右对齐齐)南理工紫金学院南理工紫金学院2020格式说

18、明完整的格式格式说明完整的格式% % - m .n l /h - m .n l /h 格式字符格式字符指定数据的输出指定数据的输出类型类型输出输出长度的修正长度的修正指定指定精度精度指定指定域宽域宽指定指定左对齐左对齐输出输出格式说明的格式说明的引导符号引导符号必须要有必须要有南理工紫金学院南理工紫金学院2121例:整型、字符型及字符串的输出例:整型、字符型及字符串的输出#include #include void main( )void main( ) int a = -1;int a = -1;char c = a;char c = a;printf(printf(%d%d, ,%X%X,

19、 ,%hx%hx, ,%#o%#o, , %u%un, a, a, a, a, a);n, a, a, a, a, a);printf(printf(%4d%4d, ,%-4d%-4dn, a, a);n, a, a);printf(printf(%3c%3c, ,%c%cn, c, c);n, c, c);printf(printf(%s%s, ,%7.2s%7.2sn, CHINA, CHINA);n, CHINA, CHINA); #:输出前缀:输出前缀南理工紫金学院南理工紫金学院2222浮点型数据的输出浮点型数据的输出 %f%f:不指定字段宽度,:不指定字段宽度,使整数部分全部输出,并

20、输使整数部分全部输出,并输出位小数出位小数。注意:在输出的数字中并非全都是有效。注意:在输出的数字中并非全都是有效数字数字 ( (单精度为单精度为7 7位位, ,双精度为双精度为15161516位位) ) 。 %lf%lf:输出输出doubledouble型型数。(实际效果与数。(实际效果与%f%f一样)一样) %.nf%.nf:输出输出位小数。位小数。%mf%mf、%-mf%-mf、%m.nf%m.nf、%-m.nf%-m.nf %e%e:以:以规范化指数形式规范化指数形式输出,默认输出,默认输出输出6 6位小数位小数。 %.ne%.ne 、%me%me、%-me%-me 、%m.ne%m.

21、ne、%-m.ne%-m.ne南理工紫金学院南理工紫金学院2323例:输出浮点数时的有效位数。例:输出浮点数时的有效位数。#include #include void main()void main() float x; float x; double y; double y; x=x=11134.6711134.678; 8; /共共8 8位数字位数字y=y=123456789237.8764123456789237.8764589987; 589987; /共共2222位数字位数字printf(x=printf(x=%f%f, x=, x=%lf%lfn, x, x);n, x, x);

22、printf(y= printf(y=%f%f, y=, y=%lf%lfn, y, y);n, y, y); 南理工紫金学院南理工紫金学院2424例例: : 以十进制小数形式、指数形式输出浮点数以十进制小数形式、指数形式输出浮点数#include #include void main ( )void main ( ) float f=123.456;float f=123.456; printf( printf(%f%f, , %.2f%.2f, , %-10.2f%-10.2fn, f, f, f);n, f, f, f);printf(printf(%e%e, ,%1010e e, ,

23、%.2E%.2E, , %-10.2e%-10.2en, f, f, n, f, f, f, f, f); f); VCVC中运行结果中运行结果:1.234561.234560 0e+002, 1.23456e+002, 1.234560 0e+002,1.2e+002,1.23 3E E+002, 1.2+002, 1.23 3e+002e+0021313列列9 9列列1010列列123.456123.456001001, 123.4, 123.46 6, 123.4, 123.46 6四舍五入四舍五入后的结果后的结果四舍五入四舍五入后的结果后的结果1313列不是列不是1010列列南理工紫金

24、学院南理工紫金学院2525说明:说明:n除了除了X X,E E,G G外,其他格式字符必须用外,其他格式字符必须用小写小写。n想想输出字符输出字符%,则应该在格式控制字符串中用连,则应该在格式控制字符串中用连续续两个两个%表示。如表示。如printf(printf(%););n调用调用printfprintf函数时若函数时若格式字符格式字符与与输出项类型不匹配输出项类型不匹配,系统系统不自动进行类型转换不自动进行类型转换,数据可能会出错。,数据可能会出错。n例如:例如:printf(%f,321);printf(%f,321);运行结果运行结果:0.0000000.000000printf(%

25、f, printf(%f, (float)(float)321);321);运行结果运行结果:321.000000321.000000printf(%d, 12.34);printf(%d, 12.34);运行结果运行结果:20615843022061584302printf(%printf(%f f, 12.34);, 12.34);运行结果运行结果:12.34000012.340000南理工紫金学院南理工紫金学院2626二、格式输入函数二、格式输入函数scanfscanfn调用形式调用形式:scanfscanf(格式控制,(格式控制,地址地址表列)表列)n函数作用函数作用:按:按格式说明格

26、式说明符符的要求,的要求,将从将从键盘键盘输入输入的数据传送到的数据传送到地址所指定的内存空间地址所指定的内存空间。双引号双引号括起来的字符串。括起来的字符串。l普通字符:普通字符:原样输入原样输入l格式说明:指定输入数格式说明:指定输入数据的格式。据的格式。是由是由若干个地址若干个地址组组成的表列,可以是成的表列,可以是变量的地址变量的地址,或,或字字符数组的首地址符数组的首地址南理工紫金学院南理工紫金学院27271. 1. 变量地址变量地址n将将地址运算符地址运算符& &作用于变量即可得到变量地址作用于变量即可得到变量地址n形式:形式:& &变量名变量名 n

27、例如:例如:&a&a 表示变量表示变量a a的内存的内存首地址首地址例例4.9 4.9 用用scanfscanf函数输入数据。函数输入数据。#include #include void main ( ) void main ( ) int a,b,c; int a,b,c; scanf(%d scanf(%d%d%d%d,%d,& &a, a,& &b, b,& &c);c); printf(%d,%d,%dn,a,b,c); printf(%d,%d,%dn,a,b,c); 运行结果:运行结果:3 34 45 53,4,53,4

28、,5Press any key to continuePress any key to continue两个数据之间可以两个数据之间可以用用1 1个或多个个或多个空格空格间隔,也可用间隔,也可用EnterEnter键键或或TabTab键键间隔间隔南理工紫金学院南理工紫金学院28282. 2.格式字符格式字符格式字符格式字符说明说明d d输入输入有符号有符号的的十十进制整数进制整数o o输入输入无符号无符号的的八八进制整数进制整数x/Xx/X输入输入无符号无符号的的十六十六进制整数进制整数( (大小写作用大小写作用相同相同) )u u输入输入无符号无符号的的十十进制整数进制整数c c输入单个字符

29、输入单个字符f f、e/Ee/E、g/Gg/G以小数形式或指数形式输入浮点型数以小数形式或指数形式输入浮点型数( (大小写作用相同大小写作用相同) )s s输入字符串送到一个输入字符串送到一个字符数组字符数组中中南理工紫金学院南理工紫金学院29293. 3.格式字符的修饰符格式字符的修饰符标标 志志意意 义义L/lL/l用于输入长整型数据(用于输入长整型数据(%ld%ld、%lo%lo、%lu%lu、%lx%lx)或用于输入或用于输入doubledouble型数据型数据( %lf%lf、%le%le)h h用于输入短整型数据(用于输入短整型数据(%hd%hd、%ho%ho、%hx%hx)域宽域

30、宽指定输入数据所占宽度(列数),应为正整数指定输入数据所占宽度(列数),应为正整数* *表示本输入项在读入后不赋给相应变量表示本输入项在读入后不赋给相应变量南理工紫金学院南理工紫金学院3030说明:说明:1. 1. 对对unsignedunsigned型变量所需要的数据,可以用型变量所需要的数据,可以用%u%u, %o %o ,%x%x或或%d%d格式输入。格式输入。2. 2. 可以指定输入数据所占的列数可以指定输入数据所占的列数( (域宽域宽) ),系统自动按,系统自动按它截取所需数据。它截取所需数据。n例如:例如:scanf(%3d%3d,&a,&b);scanf(%3d%

31、3d,&a,&b);3. 3. 如果在如果在%后有一个后有一个“* *”附加说明符,表示跳过它附加说明符,表示跳过它指定的列数。指定的列数。n例如:例如:scanf(%2d scanf(%2d %* *3d3d %2d,&a,&b); %2d,&a,&b);4. 4. 输入数据时不能规定精度。输入数据时不能规定精度。运行:运行:1231234564567878则系统将则系统将123123赋给赋给a a,456456赋给赋给b b运行:运行:1212345345678678则系统将则系统将1212赋给赋给a a,6767赋给赋给b bscanf(%

32、7scanf(%7.2 .2f,&d);f,&d);南理工紫金学院南理工紫金学院31315. scanf5. scanf函数中用函数中用“地址表列地址表列”,可以是,可以是变量地址变量地址,而,而不能是变量名不能是变量名。 6. 6. 在在“格式控制格式控制”字符串中若有字符串中若有普通字符普通字符,则在输入,则在输入时应时应照原样输入照原样输入。 n例如:例如:scanf(scanf(a=a=%d%d,b=,b=%d,&a,&b);%d,&a,&b);7. 7. 在用在用“%c”“%c”格式输入字符时,格式输入字符时,空格字符空格字符和和“转义

33、字转义字符符”都作为有效字符输入都作为有效字符输入 。n例如:例如:scanf(%cscanf(%c%c%c%c,&c1,&c2,&c3);%c,&c1,&c2,&c3);8. 8. 输入数据给输入数据给doubledouble型型变量时应用格式符变量时应用格式符%lf%lf而非而非%f%f。9. 9. 格式符应该与变量类型匹配格式符应该与变量类型匹配,否则数据会出错。,否则数据会出错。输入:输入:a=a=2323, , b=b=7 7输入:输入:a a 则将则将a a赋给赋给c1c1,空格赋给,空格赋给c2 c2 , 赋给赋给c3c3南理工紫金

34、学院南理工紫金学院32324.6 4.6 顺序结构程序设计举例顺序结构程序设计举例例例4.10 4.10 输入三角形的三边长,求三角形面积。输入三角形的三边长,求三角形面积。分析:分析:设三角形的三个边长分别为设三角形的三个边长分别为a a,b b,c c。n面积公式:面积公式:n其中,其中,s=(a+b+c)s=(a+b+c)* *0.50.5 )()(csbsassarea计算计算s s计算面积计算面积开始开始结束结束输入三边长输入三边长输出信息输出信息库函数库函数sqrtsqrt,头文件,头文件math.hmath.h原型:原型:double sqrt(double x);double

35、sqrt(double x);南理工紫金学院南理工紫金学院3333#include #include #include #include void main( )void main( ) floatfloat a, b, c, s, area; a, b, c, s, area; printf(Input a,b,c:); printf(Input a,b,c:); /输出提示信息输出提示信息 scanf(%fscanf(%f, ,%f%f, ,%f,%f,& &a, a,& &b, b,& &c);c); s= (a+b+c) s= (a+b+c) * *0.5;0.5; area= area=sqrt( sqrt( s s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c) (s-c)

温馨提示

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

评论

0/150

提交评论