《复习 1C有几种算术运算符?15%6的值是多少?45=2自增和自减运算符?i=7,执行j=i++和j=++i后, j、i的值是多少?3分别写出a+=1; b=x+10;c-=x-y的等价表达式4执行:a=1,b=c=2+a,d=a+b+c, 后a,b,c,d及逗号表达式的值是多少?.ppt》由会员分享,可在线阅读,更多相关《复习 1C有几种算术运算符?15%6的值是多少?45=2自增和自减运算符?i=7,执行j=i++和j=++i后, j、i的值是多少?3分别写出a+=1; b=x+10;c-=x-y的等价表达式4执行:a=1,b=c=2+a,d=a+b+c, 后a,b,c,d及逗号表达式的值是多少?.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、复 习 1。C有几种算术运算符?15%6的值是多少?45=2。自增和自减运算符?i=7,执行j=i+和j=+i后,j、i的值是多少?3。分别写出a+=1;b=x+10;c-=x-y的等价表达式。4。执行:a=1,b=c=2+a,d=a+b+c,后a,b,c,d及逗号表达式的值是多少?Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第第4章章顺序程序设计顺序程序设计4.1 C4.1 C语句概述语句概述 C C语句用来发出操作命令,编译后产生若干语句用来发出操作命令,编
2、译后产生若干机器指令,一个机器指令,一个C C程序应包含若干语句。程序应包含若干语句。一、一、C C程序的组成程序的组成.程序由若干源程序文件(模块)组成。程序由若干源程序文件(模块)组成。.一个源文件可以由若干函数和预编译命令组成一个源文件可以由若干函数和预编译命令组成.一个函数由数据描述(声明部分)和数据操作一个函数由数据描述(声明部分)和数据操作(执行部分)组成。(执行部分)组成。本章重点:本章重点:1。数据的输入与输出方法。2。顺序程序设计的基本步骤与方法。二、语句的分类二、语句的分类 语句是构成程序(函数)不可缺少的部分语句是构成程序(函数)不可缺少的部分是机器要完成任务的操作命令。
3、语句是用是机器要完成任务的操作命令。语句是用“;”号结束。号结束。语句分为以下五类:语句分为以下五类:.控制语句:控制语句:完成控制功能,如分支完成控制功能,如分支,转向转向,循循环等环等.函数调用语句:函数调用语句:在调用函数后加一个在调用函数后加一个“;”号号,如如:printf(“This is a programe”);printf(“This is a programe”);3.3.表达式语句:表达式语句:表达式后加表达式后加“;”号如:号如:赋值表达式:赋值表达式:x=x+5 x=x+5;自加表达式自加表达式:i+;:i+;逗号表达式逗号表达式:a=1,b=2,c=a+b+3;:a
4、=1,b=2,c=a+b+3;函数调用语句(如函数调用语句(如sin(x);)sin(x);)也可以也可以看成是表达式语句。看成是表达式语句。4.4.空语句:空语句:;只有一个只有一个“;”号什么也不做号什么也不做。5.5.复合语句复合语句(分程序):将多个语句用(分程序):将多个语句用括括起来。比如起来。比如 i+;i+;x=(i+10)*5;x=(i+10)*5;printf(“%d”,x);printf(“%d”,x);由三个语句构成一个复合语句由三个语句构成一个复合语句三三 、程序的三种基本结构、程序的三种基本结构C是属于结构化程序设计是属于结构化程序设计.结构化程序设计特点结构化程序
5、设计特点:(1)程序组成模块化)程序组成模块化.(2)程序走向靠控制结构来完成。)程序走向靠控制结构来完成。三种基本结构:三种基本结构:1.顺序结构顺序结构:从上到下一句句执行从上到下一句句执行 前面讲的都是顺序结构程序前面讲的都是顺序结构程序 2.选择(分支)结构选择(分支)结构 3.循环结构循环结构4.2 *数据的输入输出数据的输入输出 C的输入与输出由输入输出函数实现。重的输入与输出由输入输出函数实现。重点讲在点讲在标准函数库中的标准函数库中的标准输入输出函数标准输入输出函数。一一 、字符数据的输入输出、字符数据的输入输出 1。标准字符输出函数。标准字符输出函数putchar()形式形式
6、:putchar(变量变量);如:如:putchar(c);作用:作用:向终端输出变量的值向终端输出变量的值,一次只能输出一一次只能输出一个字符。个字符。说明说明:(1)变量可以是)变量可以是字符型变量或整型变量字符型变量或整型变量(2)putchar()包括在标准包括在标准I/O库中,库中,使用前应使用前应先用预编译命令:先用预编译命令:#include “stdio.h”或或#include 例例1:#include “stdio.h”void main()char a,b;int y=65;a=O;b=K;putchar(a);putchar(b);putchar(n);putchar(
7、y);运行结果:运行结果:“n”“n”为换行的转义符。为换行的转义符。65还是A?AOK2。标准字符输入函数。标准字符输入函数getchar()形式:形式:getchar();没有参数没有参数作用作用:从终端输入一个字符从终端输入一个字符。getchar()也也 包括在标准包括在标准I/OI/O库中,使库中,使用前应先用预编译命令用前应先用预编译命令。例例2:从键盘输入一个大写字母从键盘输入一个大写字母(c1),改用小,改用小写字母输出(写字母输出(c2,大、小写间差大、小写间差32)char ;printf(”请输请输 一大写一大写 字母字母:”);c1=getchar();c2=;(c2)
8、;c1,c2c1+32putchar#include void main()char c1,c2;printf(”请输入一个大写字母:请输入一个大写字母:”););c1=getchar()();c2=c1+32;printf(“%的的ASC码值为:码值为:%n”,c1,c1);printf(“%的的ASC码值为:码值为:%n”,c2,c2);d运行:运行:请输入一个大写字母:请输入一个大写字母:B(B(回车)回车)B B的的ASCASC码值为:码值为:66 66b b的的ASCASC码值为:码值为:98 98以后作题时,以后作题时,最后一句加最后一句加getch();c二、二、*格式输入与输出
9、格式输入与输出 1。格式输出函数格式输出函数-printf()1)一般格式:一般格式:printf(格式控制,输出表列格式控制,输出表列)作用:作用:向终端输出若干任意类型的数据。向终端输出若干任意类型的数据。如:如:printf(“i=%d,i*j=%dn”,i,i*j)说明:说明:(1)格式控制格式控制,包含三种信息包含三种信息:提示字符串提示字符串,如如:“i=”,原样照印原样照印.格式说明格式说明:由由“%”“%”和格式字符组成和格式字符组成,如如%d,%f,%d,%f,%c%c等等.其作用是将输出的数据转换为指定的格式输出其作用是将输出的数据转换为指定的格式输出.%与格式符之间不能有
10、空格与格式符之间不能有空格。可是表达式可是表达式转义字符转义字符,如:如:n,t。(2)格式控制要用格式控制要用双引号引起来双引号引起来.(3)格式符格式符最好小写最好小写,有的系统不许大写如有的系统不许大写如:%D.2)格式字符的用法)格式字符的用法(1)*d格式符格式符:以十进制形式输出整数以十进制形式输出整数%d按整型数据实际长度输出按整型数据实际长度输出%md,m为指定的输出数据宽度为指定的输出数据宽度,若数据宽度若数据宽度小于小于m,左端填空格左端填空格,若大于若大于m则按实际输出则按实际输出.a=12345;printf(“%3d,%8d”,a,a);12345,_ _ _ 123
11、45%ld,输出长整型数据输出长整型数据,也可用也可用%mld.(2)o(字母字母)格式符格式符-以无符号以无符号8进制输出进制输出数据数据.也可以也可以%lo,%mo输出长整型和指定输出长整型和指定输出宽度输出宽度.(3)x格式符格式符-以无符号以无符号16进制输出整型进制输出整型数,也可以用数,也可以用%lx输出长整型和输出长整型和%mx(%8x).(4)U格式符格式符-输出无符号十进制整型数输出无符号十进制整型数(5)*C格式符格式符-用以输出一个字符用以输出一个字符.(6)*S格式符格式符-输出一串字符,输出的字符串原样照印输出一串字符,输出的字符串原样照印.如如:printf(“%s
12、”,”How are you!”);%ms,若实际小于若实际小于m,左补空格左补空格,大于大于m原样原样输出。输出。%-ms,若实际小于若实际小于m,右补空格右补空格,大于大于m原原样输出样输出.(7)*f格式符格式符-用来以小数形式输出实数用来以小数形式输出实数。%f 不指定宽度不指定宽度,由系统决定由系统决定,整数部分全整数部分全输出,小数部分输出输出,小数部分输出6 6位位。float,double均可均可例例3(4.8)给出程序运行结果给出程序运行结果void main()float f=123.456;printf(“%f,%8f,%10.2f,%.2f,%-10.2fn”,_ f,
13、f,f,f);m m列含小数点位及列含小数点位及“-”号位号位 结果:结果:123.456001,123.456001,_ _ _ _123.46,123.46,123.46_ _ _ _%m.nf 指定输出指定输出m列,列,n位小数位小数。数值向右靠,数值向右靠,左补空格,左补空格,m列含小数点位及列含小数点位及“-”号位号位。%-m.nf 输出输出m列列,n位小数位小数,数值向左靠数值向左靠,右右补空格补空格。(8)e格式符格式符-以指数形式输出实数以指数形式输出实数。如:如:4.512500e+04 (Vc+6.0中为中为+004)(9)g格式符格式符-用来输出实数,根据数值大用来输出实
14、数,根据数值大小,自选小,自选f f格式或格式或e e格式格式。选占位小的,不输出小数后无意义的零。选占位小的,不输出小数后无意义的零。如:如:l=654.321;printf(“%f,%e,%g”,l,l,l);输出:输出:654.321000,6.543210e+02,654.321 6位位 去掉后面的零去掉后面的零 2 2。*格式输入函数格式输入函数-scanf()如:如:int x,y;scanf(“%d%d”,&x,&y);x 5 printf(“%d,%d”,x,y);运行:运行:5_8 (或5 8 )y 8 输出:输出:5,8&为地址运算符,为地址运算符,&x&x为为x x在内存
15、中的地址在内存中的地址。getchar()只能输入一个字符只能输入一个字符,scanf()可以可以输入任意类型的多个数据。输入任意类型的多个数据。一般形式一般形式:scanf(格式控制,地址表列格式控制,地址表列)格式控制同格式控制同printf类似,地址表列为若干地类似,地址表列为若干地址,用址,用“,”分开,分开,以以&加变量形式加变量形式。空格空格说明:说明:(1 1)格式控制中)格式控制中%和格式符之外的字符,输入和格式符之外的字符,输入必输相应字符。必输相应字符。如:如:scanf(“%d,%d”,&x,&y);中中“,”号,输入数据时应输为:号,输入数据时应输为:5,8 若为若为%
16、d:%d 应输为:应输为:5:8 定义定义x,y 时,时,c在编译时就给在编译时就给 x,y分配了分配了地址。执行地址。执行scanf时,相当于将时,相当于将x,y赋值。赋值。如:如:scanf(“%d%d”,&x,&y);输入输入:5_ 8 5 8 scanf(“%c%c”,&x,&y):应应:a b 若若a _ b,则把则把_赋给赋给y.scanf(“%c,%c”,&x,&y);应:应:a,b注意注意:不能加不能加nscanf(“%d%dn”,&x,&y);(2 2)程序中最好)程序中最好用用printfprintf函数函数,提示用户输提示用户输入的信息与格式。入的信息与格式。(3 3)若
17、格式说明间无分隔符:)若格式说明间无分隔符:输入数字时,可用空格或输入数字时,可用空格或Tab键分隔或回车键分隔或回车。输入字符时,不能用空格,只用回车分隔输入字符时,不能用空格,只用回车分隔。(4)scanf格式字符见格式字符见P83,表,表4.3和表和表4.4。与与printf类似。类似。主要掌握主要掌握:%d,%ld,%f,%lf,%c,%s,(5)输入数据时,不能规定精度,但可指)输入数据时,不能规定精度,但可指定输入数据的宽度。定输入数据的宽度。如:如:scanf(“%8.3f”,&a);是错的是错的。但但 scanf(%5f%4d”,&a,&b);可以可以输入时达到指定宽度则结束输
18、入输入时达到指定宽度则结束输入,如输入如输入:123.45678 a b含小数点含小数点(5(5位位)用于输入double4.3 *顺序结构程序设计举例顺序结构程序设计举例例例4(4.10)输入三角形的三边,求三角形的面积输入三角形的三边,求三角形的面积分析:分析:1.定义?输入?定义?输入?2.计算公式:计算公式:area=s(s-a)(s-b)(s-c)s=(a+b+c)/23.输出?输出?注意注意:用求平方根函数用求平方根函数sqrt()求面积,要调用数求面积,要调用数学函数库的函数,学函数库的函数,要调用头文件要调用头文件“math.h”.#include “math.h”aera=s
19、qrt()#include#include “math.h”void main()float a,b,c,s,area;printf(“Input a,b,c:”);scanf(“%f,%f,%f”,&a,&b,&c);s=1.0/2*(a+b+c);/*1.0为实数为实数*/1/2为为0area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“a=%f,b=%.2f,c=%6.2fn”,a,b,c);printf(“area=%-6.2fn”,area);运行:运行:Input a,b,c:3,4,6 a=3.000000,b=4.00,c=_ _ 6.00 area=5.
20、33 _ _#include#include void main()float a,b,c,d,x1,x2,p,q;scanf(“”,);d=;p=-b/(2*a);q=sqrt(d)/(2*a);x1=;x2=;printf(“n ”,);分析:分析:例例5:(P84,例例4.12)求:求:ax2+bx+c=0的根。(设:的根。(设:b2-4ac0)1.定义定义:a,b,c,x1,x22.输入输入:a,b,c3.计算:计算:d=b2-4acx1=(-b+sqrt(d)/(2*a)x2=(-b-sqrt(d)/(2*a)输出:输出:x1,x2例例5:(例4.12)求:求:ax2+bx+c=0的
21、根。(设:的根。(设:b2-4ac0)#include “math.h”main()float a,b,c,d,x1,x2,p,q;scanf(“%f,%f,%f”,&a,&b,&c);d=b*b-4*a*c;p=-b/(2*a);q=sqrt(d)/(2*a);x1=p+q;x2=p-q;printf(“nx1=%5.2f,x2=%5.2f”,x1,x2);练练 习习:编程序编程序,用用getchargetchar输入两个字符输入两个字符a a和和b,b,然然后用后用putcharputchar函数输出这两个字符函数输出这两个字符;用用printfprintf函函数输出这两个字符及其数输出这
22、两个字符及其ASCIIASCII码值码值.#include void main()char a,b;printf(”请输入两个字母:请输入两个字母:”););a=getchar()();b=getchar()();putchar(a);putchar(b);printf(“%c的的ASC码值为:码值为:%dn”,a,a);printf(“%c的的ASC码值为:码值为:%dn”,b,b);上机作业上机作业实验三:实验三:2,4,6,77题提示:输入题提示:输入h,f,求出求出x,y.作完一题后,选择作完一题后,选择“File/Close Workspace”再选择再选择“New”答疑时间:每周三,答疑时间:每周三,7 7,8 8节节答疑地点:答疑地点:1#1#楼楼204204,信管教研室。,信管教研室。关闭工作区关闭工作区