您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 理学 > C语言程序设计第3章顺序结构配套教材高等教育清华大学
第3章顺序结构3.1赋值语句3.2数据输出3.3数据输入3.4复合语句和空语句3.5程序举例2020年1月11日7时37分3.1赋值语句3.1.1C语句的作用和分类3.1.2最基本的语句----赋值语句2020年1月11日7时37分3.1.1C语句的作用和分类C语句分为以下5类:(1)控制语句:if、switch、for、while、do…while、continue、break、return、goto等(2)函数调用语句(3)表达式语句(4)空语句(5)复合语句2020年1月11日7时37分3.1.2最基本的语句----赋值语句在C程序中,最常用的语句是:赋值语句输入输出语句其中最基本的是赋值语句2020年1月11日7时37分3.2数据输出2020年1月11日7时37分几乎每一个C程序都包含输入输出输入输出是程序中最基本的操作之一3.2数据输出(1)所谓输入输出是以计算机主机为主体而言的从计算机向输出设备(如显示器、打印机等)输出数据称为输出从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机输入数据称为输入2020年1月11日7时37分3.2数据输出(2)C语言本身不提供输入输出语句输入和输出操作是由C标准函数库中的函数来实现的printf和scanf不是C语言的关键字,而只是库函数的名字putchar、getchar、puts、gets2020年1月11日7时37分3.2数据输出(3)在使用输入输出函数时,要在程序文件的开头用预编译指令#includestdio.h或#include″stdio.h″2020年1月11日7时37分3.2.1printf函数的一般调用形式在C程序中用来实现输出和输入的,主要是printf函数和scanf函数这两个函数是格式输入输出函数用这两个函数时,必须指定格式2020年1月11日7时37分3.2.1printf函数的一般调用形式printf函数的一般格式printf(格式控制,输出表列)例如:printf(”i=%d,c=%c\n”,i,c);格式声明2020年1月11日7时37分3.2.1printf函数的一般调用形式printf函数的一般格式printf(格式控制,输出表列)例如:printf(”i=%d,c=%c\n”,i,c);普通字符2020年1月11日7时37分3.2.1printf函数的一般调用形式printf函数的一般格式printf(格式控制,输出表列)例如:printf(”i=%d,c=%c\n”,i,c);可以是常量、变量或表达式2020年1月11日7时37分3.2.2printf函数中常用的格式说明常用格式字符d格式符。用来输出一个有符号的十进制整数可以在格式声明中指定输出数据的域宽printf(”%5d%5d\n”,12,-345);%d输出int型数据%ld输出long型数据2020年1月11日7时37分3.2.2printf函数中常用的格式说明常用格式字符c格式符。用来输出一个字符charch=’a’;printf(”%c”,ch);或printf(”%5c”,ch);输出字符:a2020年1月11日7时37分3.2.2printf函数中常用的格式说明常用格式字符s格式符。用来输出一个字符串printf(”%s”,”CHINA”);输出字符串:CHINA2020年1月11日7时37分3.2.2printf函数中常用的格式说明常用格式字符f格式符。用来输出实数,以小数形式输出①不指定数据宽度和小数位数,用%f例如用%f输出实数,只能得到6位小数。doublea=1.0;printf(”%f\n”,a/3);2020年1月11日7时37分3.2.2printf函数中常用的格式说明常用格式字符f格式符。用来输出实数,以小数形式输出②指定数据宽度和小数位数。用%m.nfprintf(%20.15f\n,1/3);printf(%.0f\n”,10000/3.0);2020年1月11日7时37分3.2.2printf函数中常用的格式说明常用格式字符f格式符。用来输出实数,以小数形式输出②指定数据宽度和小数位数。用%m.nffloata;a=10000/3.0;printf(%f\n,a);2020年1月11日7时37分3.2.2printf函数中常用的格式说明常用格式字符f格式符。用来输出实数,以小数形式输出③输出的数据向左对齐,用%-m.nf2020年1月11日7时37分3.2.2printf函数中常用的格式说明常用格式字符f格式符。用来输出实数,以小数形式输出float型数据只能保证6位有效数字double型数据能保证15位有效数字计算机输出的数字不都是绝对精确有效的2020年1月11日7时37分有以下程序#includestdio.hmain(){intk=-17;printf(%d,%o,%x\n,k,1-k,1-k);}程序的运行结果是A)-17,22,12B)-17,12,22C)-17,-22,-12D)17,22,12【解析】整型常量有3种表示方法,分别是十进制数表示法、八进制数表示法和十六进制数表示法。十进制整常量没有前缀,输出格式控制符为%d;八进制整常量以0作为前缀,输出格式控制符为%o;十六进制整常量以0X或0x作为前缀,输出格式控制符为%x。1-k=18,整型常量18用八进制表示为22,十六进制表示为12,A选项正确。参考答案:A2020年1月11日7时37分设有定义:doublex=2.12;,以下不能完整输出变量x值的语句是A)printf(x=%5.0f\n,x);B)printf(x=%f\n,x);C)printf(x=%lf\n,x);D)printf(x=%0.5f\n,x);参考答案:AA输出为2B输出为2.120000C输出为2.120000D输出为2.12000【解析】float类型变量有效位数为6~7位,double类型变量有效位数为15~16位。printf函数控制字符%f输出float类型,%lf输出double类型。对于float或double型数据,在指定数据输出宽度的同时,也可以指定小数位的位数,格式为%m.nf,表示数据输出总的宽度为m位,其中小数部分占n位。当数据的小数位多于指定宽度n时,截去右边多余的小数,并对截去的第一位小数做四舍五入处理;而当数据的小数位少于指定宽度n时,在小数的右边补零;当m小于有效位数时,整数部分输出所有有效数字并且自动对齐,小数部分按照n指定位数输出。2020年1月11日7时37分若有以下程序段doublex=5.16894;printf(%f\n,(int)(x*1000+0.5)/(double)1000);则程序段的输出结果是A)5.170000B)5.175000C)5.169000D)5.168000参考答案:C【解析】%f的输出格式是以带小数点的数学形式输出浮点数。首先计算x*1000,结果为5168.94然后+0.5,结果为5169.44,然后进行强制类型转换,转换成整型为5169,然后除以双精度数据1000,结果也为双精度数据5.169,输出时按照%f的格式输出,所以输出结果为5.169000。2020年1月11日7时37分3.2.2printf函数中常用的格式说明常用格式字符e格式符。指定以指数形式输出实数%e,VC++给出小数位数为6位指数部分占5列小数点前必须有而且只有1位非零数字printf(”%e”,123.456);输出:1.234560e+0022020年1月11日7时37分3.2.2printf函数中常用的格式说明常用格式字符e格式符。指定以指数形式输出实数%m.neprintf(”%13.2e”,123.456);输出:1.23e+002(前面有4个空格)2020年1月11日7时37分若要输出%,可以在格式控制中使用%%表示,将输出一个%符号。格式控制中必须含有与输出项一一对应的输出格式说明,类型必须匹配。若不匹配,则不能正确输出,但编译时不会报错。若格式说明个数少于输出项个数,则多余的输出项不予输出;若格式说明的个数多余输出项个数,则输出毫无意义的数字乱码。2020年1月11日7时37分3.2.3使用printf函数时的注意事项3.3数据输入3.3.1scanf函数的一般调用形式scanfscanf(格式控制,地址表列)含义同printf函数2020年1月11日7时37分3.3.1scanf函数的一般调用形式scanfscanf(格式控制,地址表列)可以是变量的地址,或字符串的首地址注意:地址表列的参数必须是地址,不能直接引用变量名2020年1月11日7时37分3.3.2scanf函数中常用的格式说明scanf函数中的格式声明与printf函数中的格式声明相似以%开始,以一个格式字符结束,中间可以插入附加的字符scanf(a=%f,b=%f,c=%f,&a,&b,&c);2020年1月11日7时37分3.3.3通过scanf函数从键盘输入数据使用scanfscanf(”%f%f%f”,a,b,c);错scanf(”%f%f%f”,&a,&b,&c);对对于scanf(a=%f,b=%f,c=%f,&a,&b,&c);132↙错a=1,b=3,c=2↙对a=1b=3c=2↙错2020年1月11日7时37分3.3.3通过scanf函数从键盘输入数据使用scanf对于scanf(”%c%c%c”,&c1,&c2,&c3);abc↙对abc↙错对于scanf(”%d%c%f”,&a,&b,&c);若输入1234a123o.26↙2020年1月11日7时37分3.3.3通过scanf函数从键盘输入数据使用scanf对于scanf(”%c%c%c”,&c1,&c2,&c3);abc↙对abc↙错对于scanf(”%d%c%f”,&a,&b,&c);若输入1234a123o.26↙2020年1月11日7时37分3.3.3通过scanf函数从键盘输入数据使用scanf对于scanf(”%c%c%c”,&c1,&c2,&c3);abc↙对abc↙错对于scanf(”%d%c%f”,&a,&b,&c);若输入1234a123o.26↙2020年1月11日7时37分3.4复合语句和空语句3.4.1复合语句2020年1月11日7时37分在C语言中,一对花括号“{}”不仅可用作函数体的开头和结尾的标志,也可用作复合语句的开头和结尾的标志。复合语句也可称为“语句块”,其语句形式如下:{语句1语句2……语句N}3.4.2空语句2020年1月11日7时37分C程序中所有语句都必须由一个分号“;”作为结束。如果只有一个分号,如:main(){;}这个分号也是一条语句,称为“空语句”3.5程序举例例3.1给出三角形的三边长,求三角形面积。2020年1月11日7时37分3.5程序举例解题思路:假设给定的三个边符合构成三角形的条件关键是找到求三角形面积的公式公式为:其中s=(a+b+c)/2))()((csbsassarea2020年1月11日7时37分#includestdio.h#includemath.hintmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(a=%f\tb=%f\t%f\n,a,b,c);printf(area=%f\n,area);return0;}对边长a、b、c赋值计算s计算area2020年1月11日7时37分#includestdio.h#includemath.hintmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(a=%f\tb=%f\t
本文标题:C语言程序设计第3章顺序结构配套教材高等教育清华大学
链接地址:https://www.777doc.com/doc-2909152 .html