第3章顺序结构程序新_第1页
第3章顺序结构程序新_第2页
第3章顺序结构程序新_第3页
第3章顺序结构程序新_第4页
第3章顺序结构程序新_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

第3章顺序结构程序设计第3章顺序结构程序设计本章主要内容:

3.1c语句概述3.2数据输入输出的概念在c语言中的实现3.3字符数据的输入输出3.4格式输入输出3.5顺序结构程序设计举例重点:掌握数据输入输出语句的使用方法掌握顺序结构程序设计的方法顺序结构是三种基本结构中最简单的一种结构。执行的顺序:按自上向下的顺序依次执行ABABN-S图流程图3.1顺序结构程序的组成顺序结构程序组成:数据描述部分(变量说明部分)输入语句(已知)赋值语句(已知,计算)输出语句(显示结果)例1求半径为r的圆的面积。/*calculatingtheareaofacircle*/#definePI3.14intmain(){floatr,area;scanf(“%f″,&r);或r=3;area=PI*r*r;printf(″Thearea=%f\n″,area);return0;}3.1顺序结构程序的组成3.2赋值语句赋值语句是由赋值表达式加上一个分号构成。如x=a+b;赋值语句的使用:①给变量一个初始值时使用赋值语句;②改变变量的值时使用赋值语句;③保存计算的中间结果和最终结果时使用赋值语句。例2关于赋值语句的使用#definePI3.14intmain(){floatr1,r2=1,r,a1,a2;r1=3;r2=r1+5;r=r2*r2;a1=PI*r1*r1;a2=PI*r;printf(″%f,%f\n″,a1,a2);return0;}语句分类简单语句空语句复合语句流程控制语句表达式语句(表达式;)函数调用语句(函数名(参数表);)(;)({一条或多条语句})条件语句循环语句break;continue;return;转向语句①表达式语句例如:i++;--j;i=i+1;i=i+1×②赋值语句例如:a=1;a=a*3*cos(a);a=3×

区分:赋值表达式和赋值语句?1.表达式语句形式:表达式;简单语句2.函数调用语句形式:函数调用;作用:完成特定的任务。例如:scanf(“%f”,&x);

printf(“%f”,x);y1=sin(1.7);y2=3*sin(3.14*x/180);简单语句3.空语句空语句只用一个分号表示。形式:;注意:执行该语句不做任何操作。常用在循环语句中,构成空循环。4.复合语句用{}将一些简单语句括起来,构成复合语句。注意:1.在语法上相当于一条语句。

2.{}外无分号。例如:{z=x+y;t=z/100;printf(“%f”,t);}例如:醋和酱油互换问题{t=a;a=b;b=t;}3.3数据输入/输出的概念在C语言中的实现在调用标准输入/输出库函数时,是以计算机主机为主体而言的。C语言本身不提供输入/输出语句,输入/输出操作是由C函数库中函数来实现的。所以printf和scanf不是C语言的关键字,而只是函数名。在调用系统库函数时,要用预编译命令”#include”将”头文件”包括到用户源文件中。在调用标准输入输出库函数时,文件开头应该有以下预编译命令:#include<stdio.h>或#include“stdio.h”。在调用数学函数时,应包含头文件#include<math.h>。C语言提供给用户有丰富的标准库函数(参考附录F),标准库函数完成预先设定好的任务,可直接调用。标准库函数调用的规则:1、库函数调用的形式函数名(参数表);2、调用目的一类调用是为了得到函数的返回值,另一类只是为了完成某项任务。数据的输入与输出C语言的标准函数库提供有常用的输入和输出函数,其中putchar()函数可用来输出一个字符,getchar()函数可用来输入一个字符,printf()函数用来输出任意格式的数据,scanf()函数用来输入任意格式的数据。这四个函数都以终端(系统隐含指定的输出设备,一般为键盘和屏幕)为输入/出对象。单个字符的输入/输出在程序设计中,除了需要使用整型和实型数据之外,还需要另外一种很重要的数据类型,即字符型数据,如姓名,文字信息等,都是字符型数据,也叫文字型数据。文字型数据有两种类型:单个字符和字符串大多数系统采用ASCII字符集字母:A~Z,a~z数字:0~9不能显示的字符:空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回车(以‘\r’表示)等基本ASCII码表的前32个字符为控制字符(ASCII码值为0~31)。接着为标准英文键盘上的每一个字符都规定了一个ASCII码值,字符在内存中的存储格式按照ASCII码值所对应的二进制数确定。空格——3200100000A——6501000001a——9701100001b——9801100010一、字符常量字符常量:用单引号括起来的一个字符。如:‘A’、‘e’、‘?’等。由反斜杠(\)引导的转义字符。如:“\n”表换行符。注意:a与'a'不同,前者为变量,后者为字符常量。9与‘9’也不同,前者为整型常量,后者是字符常量。‘a’与‘A’是不同的字符常量。

以“\”开头的字符序列称为转义字符,这些字符的含义不是其本身,而是转成了新的意义。

\n 换行,将当前位置移到下一行开头\t换区(横向跳格,跳到下一个输出区,一区占8列)\b 退格(删除前面的一个字符)\r回车,将当前位置移到本行开头\\代表一个反斜杠字符(\)

\’ 代表一个单引号字符(')

\”代表一个双引号字符(")

\ddd 1~3位8进制数所表示的字符

\xhh 1~2位16进制数所表示的字符字符形式 功能二、字符变量字符变量:只能存放一个字符并能改变其值的变量。字符型变量在内存中占1个字节。字符变量的定义:char

变量名;

例如:charc1,c2,c3,c4;变量c1,c2,c3,c4中可存储字符数据、介于-128~127的整数或者转义字符。例如:字符A的ASCII码为:65D(十进制)=41H(十六进制)=101Q(八进制)∴字符A可以表示为‘A’、’\x41’、’\101’。字符变量分类:char和unsignedchar;三、字符型数据在内存中的存储形式及使用方法存储形式:按ASCII码存储。使用方法:

按字符使用(%c):则使用字符本身。

按数值使用(%d):则使用该字符的ASCII码值。例如:chara;a=‘a’,并不是把字符‘a’本身放到内存单元中,而是将该字符的相应的ASCII码97放到内存单元中。四、字符型数据使用方法举例例3.6main(){charc1,c2,c3='\007'

;c1='A';c2='B';printf("c1=%c,c2=%c\n",c1,c2);printf("c1=%d,c2=%d\n",c1,c2);printf(“c3=%c,c3=%d\n”,c3,c3

);}

运行结果如下:c1=A,c2=Bc1=65,c2=66一声响,c3=7但注意:一个字符变量不可以存放一个字符串,所以字符不能用双引号括起来。例3.7小写字母转换为大写字母#include<stdio.h>main(){charc1,c2;c1=‘a’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c%c”,c1,c2);}运行结果:A

B注意字符的相加、字符的运算问题:1.字符型数据和整型数据之间可以通用,可直接进行算术运算.2.对字符数据进行算术运算,相当于对它们的ASCII进行算术运算.3.字符型与数值型可以互相赋值。4.一个字符数据既可以字符形式输出,也可以整数形式输出.1、VC++将字符变量默认定义为signedchar型。其存储单元的最高位为符号位,取值范围是-128~127。2、如果在字符变量中存放一个ASCII码为0~127间的字符,由于字节中最高位为0,因此用%d格式输出字符变量时,是一个正整数。3、如果在字符变量中存放一个ASCII码为128~255间的字符,由于字节中最高位为1,因此用%d格式输出字符变量时,是一个负整数。例如:charc=130;printf(“%d”,c);结果:-126字符按有符号处理例如:unsignedcharc=130;printf(“%d”,c);结果:130字符按无符号处理需要说明:简单的屏幕输出如何输出a、b、c三个变量的值。#include<stdio.h>main(){inta=1;floatb=2.5;charc=‘A’;printf(“a=%d\n”,a);printf(“a=%f\n”,b);printf(“a=%c\n”,c);printf(“endofprogram\n”);}养成对变量初始化的习惯,有助于因忘记对变量赋初值导致的计算错误。#include<stdio.h>main(){inta=1;floatb=2.5;charc=‘A’;

}3.4字符的输入/输出1、字符输出函数格式:putchar(ch)功能:将字符变量ch的值输出到屏幕的当前位置上。即向终端(显示器)输出一个字符。注意事项:ch可以是字符常量、字符变量、整型变量、转义字符。如:①putchar('A');/*在屏幕上输出大写字母A*/②c=putchar(‘A’);/*在屏幕上输出大写字母A,并将大写字母A赋给变量c*/③c=‘*’;putchar(c);/*在屏幕上输出c的值,即输出一个*号*/④inti=97;putchar(i);/*输出字符‘a’*/输出转义字符:putchar(’\101’)/*输出字符‘A’*/putchar(’\’’)/*输出单引号字符‘’’*/putchar(’\015’)/*输出回车,不换行,使输出的当前位置移到本行开头*/例:#include<stdio.h>/*必须加*/main(){inti=97;charch=‘a’;/*变量初始化*/putchar(i);putchar(‘\n’);putchar(ch);}运行结果:aa例4.1输出单个字符#include<stdio.h>main(){chara,b,c;a=‘B’;b=‘O’;c=‘Y’;putchar(a);putchar(b);putchar(c);putchar(‘\n’);}运行结果:BOY若运行结果为:BOY程序应怎样改?

putchar(‘\n’);/*输出换行符*/2、字符输入函数格式:getchar()功能:从键盘上读入一个字符,按回车键输入结束,读入的字符会自动被回显到屏幕上。返回值:该字符的ASCII码值3.4字符数据的输入/输出注意:1、程序运行后,在调用getchar()函数时,将返回用户屏幕,等待用户输入一个字符后,才能继续向下运行。2、getchar()函数只能接受一个字符。键入字符后需要敲回车键,回车后,程序才会响应输入,继续执行后续语句。3、getchar()函数得到的字符可以赋给字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。例如:输入单个字符#include"stdio.h"

main(){charc;c=getchar();putchar(c);putchar(‘\n’);}putchar(getchar());printf(“%c”,getchar());输入:aa若要调用putchar(),getchar()函数,应在程序的前面使用文件包含命令:#include"stdio.h"例题:从键盘输入一个大写英文字母,要求改用小写字母输出#include<stdio.h>main(){charc1,c2;c1=getchar();c2=c1+32;putchar(c2);putchar(‘\n’);}/*getchar()没有参数,getchar(c1)是错误的;*//*可写为c2=c1+(‘a’-’A’)*/分析:观察附录A常用的ASCII字符表,可以发现一个规律,即小写英文字母的ASCII码值比相应的大写英文字母的ASCII码值大32,根据这个规律,即可实现他们的转换/*putchar(c2)必须有参数*/此程序还能改为:#include<stdio.h>main(){charc2;c2=getchar()+32;putchar(c2);putchar(‘\n’);}3.4数据的格式化输入/输出一、格式输出函数的一般格式printf(“格式控制字符串”);printf(“格式控制字符串”,输出值参数表);格式控制字符串:必须用双引号括起来,其作用是控制输出项的格式和输出一些提示信息。输出值参数表:可有多个输出值也可没有。输出值可以是常量、变量、运算符表达式、函数返回值等。若多个输出,每个输出项之间用逗号分隔。输出的数据可以是整数、实数、字符、字符串。例如:inti=97;printf(“i=%d,%c”,i,i);输出结果:i=97,a例如:printf(“%d”,100);输出结果:100例如:intn=8;printf(“n=%d\n%d”,n,n*10);输出结果:n=880例inta=3,b=4;printf(“%d%d%d”,a,b,a+b);输出结果:347例inta=3,b=4;printf(“a=%3d,b=%5d\n”,a,b);输出结果:a=3,b=43.5格式输入/输出一、格式输出函数形式:printf(“格式控制字符串”,输出值参数表);格式控制字符串:由3部分组成:普通字符、转义字符、输出项格式说明输出值参数表:需要输出的一些数据;必须与格式控制符一一对应格式说明普通字符由%+格式字符组成普通字符即需要原样输出的字符作用:将输出的数据转换为指定的格式输出可以使用字母、数字、标点符号、空格、数学符号等例如:printf(“%d%d”,a,b);printf(“a=%d,b=%d\n”,a,b);格式字符格式符功能%d以带符号的十进制形式输出整数(整数不输出正号)%o以不带符号的八进制形式输出整数%x以不带符号的十六进制形式输出整数%u以不带符号的十进制形式输出整数%c以字符形式输出一个字符%s输出一个或多个字符%f以小数形式输出单、双精度数,默认输出6位小数%e以标准指数形式输出单、双精度数,数字部分小数位数为6位例题:从键盘输入一个大写英文字母,将其转换为小写字母后,将转换后的小写字母及其十进制的ASCII码值显示到屏幕上#include<stdio.h>main(){charch;ch=getchar();ch=ch+32;printf(“%c,%d\n”,ch,ch);}运行结果:Bb,98printf(“%c”,ch);与putchar(c2);等价printf()函数中整数的输出格式%d格式:按十进制输出有符号整数(-231~231-1)

。%ld格式:按十进制输出有符号整数(-231~231-1)。%5d格式:按十进制输出有符号整数至少占5位,右对齐,超过5位时按实际位数输出。 %-5d格式:按十进制输出有符号整数至少占5位,左对齐。%8ld格式:按十进制输出长整型整数,至少占8位,右对齐,超过8位时按实际位数输出。%u格式:按十进制输出无符号整数(0~65535)。%o格式:按八进制输出无符号整数。%x格式:按十六进制输出无符号整数。注意:以u、八、十六进制格式输出,不会输出负数例如:inta=-1;b=123;printf(“%u,%d,%o,%x\n”,a,a,a,a);printf(“%d,%2d,%-5d,%5d\n”,b,b,b,b);再如:main(){unsignedinta=65535;intb=-2;printf(“a=%d,%o,%x,%u\n”,a,a,a,a);printf(“b=%d,%o,%x,%u\n”,b,b,b,b);}%f格式:按十进制输出实数,不指定宽度,系统自定,整数部分全部输出,保留6位小数。单精度实数有效位数为7位。双精度为16位。%e格式:按指数形式输出实数,按规范化形式输出(13位),尾数部分的小数位数为6位,指数部分占5位(包括1位指数的符号位和占1位的e),%.3f格式:按十进制输出实数,保留3位小数。%8.3f格式:按十进制输出实数,列宽占8位,保留3位小数,右对齐,超过8位时按实际位数。%8.3e格式:按指数形式输出实数,尾数部分保留3位有效数字,占8位,右对齐,超过8位时按实际位数。%g格式:按%e和%f中较短的一种格式输出实数。printf()函数中实数的输出格式例如:main(){floatf=123.456;printf(“%f%10f%10.2f%.2f%-10.2f\n”,f,f,f,f,f);printf(“%e”,f);printf(“%8e”,f);printf(“%10.9e”,1000.7654321);}结果:123.456001123.456001123.46123.46123.461.234560e+0021.234560e+0021.000765432e+003f格式符的说明:保留6位小数,单精度有效位数为7位;双精度有效位数为16位。e格式符的说明:尾数部分保留6位小数。o、e、u格式符的说明:按不同进制输出无符号整数。例如:格式符的用法main(){inta=1234;floatf=123.456;printf(“%d%2d\n”,a,a);printf(“%f%8f%8.1f%.2f%.2e\n”,f,f,f,f,f);}运行结果:12341234123.456001123.456001123.5123.461.23e+02注意:实数型的运算常常会出现误差P79例如4.6小于数字的位数,照原样输出只管小数位数,其他照原样输出有3个空格%c格式:按字符输出一个字符,但不输出单引号。%d格式:按数值输出,输出该字符相应的ASCII码值%3c格式:按字符输出一个字符,占3位,右对齐。%-8c格式:按字符输出一个字符,占8位,左对齐。%s格式:输出一个字符串,但不输出双引号。%6s格式:输出一个字符串,至少占6位,右对齐,超过6位,按实际位数。%-6s格式:输出一个字符串,至少占6位,左对齐,超过6位,按实际位数。%6.3s格式:输出一个字符串,占6列,取字符串左端3个字符,右对齐。%-6.3s格式:输出一个字符串,占6列,取字符串左端3个字符,左对齐。printf()函数中字符及字符串的输出格式例1:main(){printf(“%3s,%7.2s,%.4s,%-5.3s\n”,“china”,“china”,“china”,”china”);}结果:china,ch,chin,chi例2:#include<stdio.h>main(){printf(“a=%4d,b=%-6.2f,c=%4c,d=%s,e=%c”,12,3.456,’A’,”hello”,’B’);}运行结果:a=12,b=3.46,c=A,d=hello,e=B对printf()函数的说明:除了X、E、G外,其他格式字符必须用小写字母;可以在"格式控制"中使用转义字符;在%和格式字符之间可加入任何其他修饰符(如l,宽度);如果要输出字符%,应在“格式控制”字符串中连续两个%表示。%d√

%D×printf(“%f\n”,a);printf(“f=%lf,c=%c\n”,a,c);printf(“%f%%”,1.0/3);转义字符转义字符功能\n回车换行符,光标移动下一行行首\r回车不换行,光标移动本行行首\t横向跳格(8位为一格,光标跳到下一格起始位置,如第9或17位等)\b退一格,光标往左移动一格\f走纸换页\\用于输出反斜杠字符“\”\’用于输出单引号字符“‘”\’’用于输出双引号字符“””\ddd三位八进制数ddd对应的ASCII码字符\xhh两位十六进制数hh对应的ASCII码字符转义字符的使用#include<stdio.h>main(){printf(“123456789012345678901234567890\n”);printf(“123\t456\n”);printf(“12345\b123\r9\n”);}运行结果:1234567890123456789012345678901234569234123思考:写出下列输出结果:printf(“\tfirst\b\b\bsh\\\r\’No.1’”);举例:求半径为1的圆面积#definePI3.14#include<stdio.h>main(){doubler,area,circum;r=1;area=PI*r*r;circum=2*PI*r;printf(“area=%7.2f\n”,area);printf(“circum=%f\n”,circum);}同学思考:当要求r=3或r=3.5时,怎么办?3.5格式输入/输出二、格式输入函数形式:scanf("格式控制",地址表列)格式控制:同printf()函数,区别:无\n功能:按照格式控制字符串所规定的格式,从键盘上输入数据,然后回车,依次赋给各个变量。地址表列:由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。在变量前必须加&符号。各地址间以逗号隔开。"格式控制":格式字符普通字符scanf中的普通字符是不显示的,而是规定了输入时必须输入的字符由%+[格式符]格式字符;重视f,d,c格式符函数scanf()的格式转换符格式转换说明符用法%d%o%x%c%s%f或%e%%输入十进制整数输入八进制整数输入十六进制整数输入一个字符,空白字符(包括空格、回车、tab)也作为有效字符输入输入字符串,遇到第一个空白字符(包括空格、回车、tab)时结束输入实数,以小数或指数形式输入均可输入一个百分号%举例:求半径为1的圆面积#definePI3.14#include<stdio.h>main(){floatr,area;area=PI*r*r;printf(“area=%f”,area);}当要求r=3或r=3.5时,怎么办?scanf(“r=%f”,&r);r=1;运行结果:输入:r=3则area=28.6运行程序scanf(“%f”,&r);运行结果:输入:3则area=28.6l可用于d,f,e前,指定输入long型数值例如:scanf(“%ld,%lf”,&x,&y);m指定输入数据的宽度,系统自动按域宽截取所需数据例如:scanf(“%3d%5d%f”,&a,&b,&x);执行时,输入20012004.1则200→a,1200→b,4.1→x*抑制字符,表示对应的输入项在读入后不赋给相应的变量例如:scanf(“%3d%*5d%f”,&a,&x);执行时,输入20011200

4.1则200→a,1200→,4.1→x修饰符scanf(“%*5d%f”,&a,&x);输入20011

4.1则20011→,4.1→a.nscanf()没有精度格式修饰符,即用scanf()输入实型数据时不能规定精度例1:用scanf()函数输入数据#include<stdio.h>voidmain(){inta,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%d,%d,%d\n”,a,b,c);}运行时输入数据:345输出结果:3,4,5输入数据时注意事项:1、输入的数据之间以什么间隔?#include<stdio.h>main(){intx,y,a1,b1,a2,b2,a3,b3,a4,b4;scanf(“x=%d,y=%d”,&x,&y);scanf(“%d,%d”,&a1,&b1);scanf(“%d%d”,&a2,&b2);scanf(“%d%d”,&a4,&b4);scanf(“%d:%d”,&a3,&b3);printf(“x=%d,y=%d\n”,x,y);printf(“a1=%d,b1=%d\n”,a1,b1);printf(“a2=%d,b2=%d\n”,a2,b2);printf(“a3=%d,b3=%d”,a3,b3);}注意:照原样输入运行结果:从键盘中输入时分别是:

x=1,y=23,46781012:23屏幕显示:x=1,y=2a1=3,b1=4a2=6,b2=7a3=12,b3=23输入数据时注意事项:1、输入的数据之间以什么间隔?2、可以指定输入数据所占的列数,系统自动按它截取所需数据;思考:当输入abc时,c1,c2,c3的值是什么?例1:scanf(“%3d%3d”,&a,&b);执行时输入:123456则123→a,456→b例2:scanf(“%3c”,&ch);执行时输入:abc则‘a’→ch例3:canf(“%c%c%c”,&c1,&c2,&c3);执行时输入:abc则‘a’→c1,’’→c2,’b’→c3输入数据时注意事项:1、输入的数据之间以什么间隔?2、可以指定输入数据所占的列数,系统自动按它截取所需数据;3、如果在%后有一个“*”附加说明符,表示跳过它指定的列数。scanf(“%2d%*3d%2d”,&a,&b);输入:123456712→a,345→?,67→b输入数据时注意事项:1、输入的数据之间以什么间隔?2、可以指定输入数据所占的列数,系统自动按它截取所需数据;3、如果在%后有一个“*”附加说明符,表示跳过它指定的列数。4、输入数据时,遇以下情况认为该数据结束:遇空格、TAB、或回车遇指定宽度结束遇非法输入scanf(“%d%c%f”,&a,&b,&c);输入:1234

a

123o.26↓↓↓↓abc非法输入scanf()函数中的输入格式%c格式:读入一个字符常量,但不需要输入单引号。%*c格式:跳过一个字符。%d格式:读入一个基本整型常量。%*d格式:跳过一个整数。%f格式:读入一个十进制单精度型常量。%lf格式:读入一个十进制双精度型常量。%s格式:读入一个字符串常量。%ld格式:读入一个长整型常量。%e格式:按指数表示法读入一个实型常量。注意:格式控制字符串中的其它字符必须照原样从键盘上输入!scanf()函数的%c格式符存在的问题例如:按如下数据输入格式,从键盘输入一个整数加法算式:操作数1+操作数2然后计算并输出该表达式的计算结果,输出格式如下:操作数1+操作数2=计算结果#include<stdio.h>main(){intdata1,data2;charop;printf(“pleaseentertheexpressiondata1+data2\n”);scanf(“%d%c%d”,&data1,&op,&data2);printf(“%d%c%d=%d\n”,data1,op,data2,data1+data2);}从键盘先后输入12、空格、+、空格、3后程序运行结果如下:如果输入12、+、3结果如何?说明:在用%c格式读入字符时,空格字符和转义(包括回车)都会被当做有效字符读入。如何解决scanf()函数的%c格式符存在的问题?用函数getchar()将数据输入时存入缓冲区中的回车符读入,以避免被后面的字符型变量作为有效字符读入。在%c前面加一个空格,将前面数据输入时存入缓冲区中的回车符读入,避免被后面的字符型变量作为有效字符读入。例如程序段:scanf(“%d”,&a);getchar();/*吸收了上面读入a键入的回车*/scanf(“%c”,&b);或:scanf(“%d”,&a);scanf(“%c”,&b);/*%c前加一个空格,将上面a后面的回车吸收*/scanf与printf函数的区别main(){inta;scanf("%d\n",&a);printf("%d\n",a);}×√main(){inta;scanf("%d",a);printf("%d\n",a);}×√main(){floata;scanf("%.2f",&a);printf("%.2f\n",a);}×√main(){doublea;scanf("%f",&a);printf("%f\n",a);}×√使用scanf函数时,如果双引号中加一个\n,则在程序运行时需要多输入一个数据。使用printf函数时,如果双引号中加一个\n,则在程序运行时在屏幕上输出一个换行符。使用scanf函数从键盘上为变量赋值时,应在变量名前使用取地址符号。使用printf函数输出数值时,输出项可以是一个常量、变量、或一个表达式。使用scanf函数从键盘上为变量赋值时,不能规定精度。使用printf函数输出实数时,可以在%和f之间加.2,使输出保存留2位小数。使用scanf函数从键盘上为双精度型变量赋值时,必须使用%lf格式。使用printf函数输出双精度实数时,使用%f格式。程序设计方法程序设计的一般方法可以概括为五个步骤:从实际问题抽象出模型选择适合的算法画流程图编写程序调试程序举例:求3个数的和同学思考:如何编写程序?例1.输入三角形的三边长,求三角形面积程序设计需考虑以下问题:*需定义几个变量?各为何种类型?*需要为哪些变量赋初值,哪些变量不需要赋初值?*按什么样的顺序计算中间变量的值?*计算面积值;*输出计算结果,哪些变量的值不需要输出?解题思路:假设给定的三个边符合构成三角形的条件关键是找到求三角形面积的公式公式为:其中s=(a+b+c)/2伪代码算法:定义a,b,c,s,k,area变量输入a,b,c的值s=1.0/2*(a+b+c)k=s*(s-a)*(s-b)*(s-c)area=sqrt(k)输出a,b,c,area的值开始输入a,b,c的值结束s=1.0/2*(a+b+c)k=s*(s-a)*(s-b)*(s-c)输出a,b,c,area的值定义变量a,b,c,s,k,areaarea=sqrt(k)#include"math.h"/*包含数学函数头文件*/#include“stdio.h"main(){floata,b,c,s,k,area;/*a,b,c分别表示边长,area表示面积,s,k为中间变量*/scanf("%f,%f,%f",&a,&b,&c);/*注意输入格式*/s=1.0/2*(a+b+c);k=s*(s-a)*(s-b)*(s-c);area=sqrt(k);printf("a=%7.2f,b=%7.2f,c=%7.2f\n",a,b,c);printf("area=%7.2f\n",area);}注意:因为此题用到了sqrt()数学函数,所以源程序的开头应加一条#include“math.h”,作为头文件。文件包含预处理命令变量定义输入数据输出数据输入:3,4,6输出:a=3.00,b=4.00,c=6.00s=6.50area=5.33例2.输入一个大写字母,输出对应小写字母和ASCII码值。

程序设计时应考虑以下问题:需定义几个变量,各为什么类型?怎样从键盘上输入一个字符?为哪个变量从键盘上输入字符?怎样将大写字母转换成小写字母?怎样输出最终结果?#include<stdio.h>main(){charc1,c2;c1=getchar();

温馨提示

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

评论

0/150

提交评论