《简单程序设计C语言程序设计第三版电子教案.ppt》由会员分享,可在线阅读,更多相关《简单程序设计C语言程序设计第三版电子教案.ppt(43页珍藏版)》请在三一办公上搜索。
1、第3章 简单程序设计,21世纪高等学校精品规划教材,掌握C语言中的语句类型、程序结构掌握赋值语句和基本输入/输出函数的使用学会用正确的格式进行简单的输入输出程序设计,3.1 C语言语句,表达式语句 表达式;例如:x=100/*表达式*/x=100;/*语句*/函数调用语句 函数名(参数列表);例如:printf(Hello World!n);,3.1 C语言语句,控制语句 控制语句用于完成一定的控制功能,以实现程序的结构化。C语言有9种控制语句,可分为以下3类:条件判断语句:if语句、switch语句。转向语句:break语句、continue语句、goto语句、return语句。循环语句:f
2、or语句、while语句、do-while语句。,3.1 C语言语句,复合语句 复合语句是用花括号将若干语句组合在一起,又称分程序 例如,下面是一个复合语句:i=5;printf(%dn,i);空语句;,3.2 程序结构,3.2.1 程序结构简介 在C语言中,程序结构一般分为顺序结构、选择结构、循环结构。任何复杂的程序都是由这3种基本结构组成的。【例3-1】简单的程序结构。#include void main()int a,b,c;/*声明部分,定义了3个整型变量*/a=100;/*执行部分开始,直到最后的花括号*/b=200;c=a+b;printf(a+b=%dn,c);,3.2 程序结构
3、,【例3-2】由多个函数构成的程序结构。#include void main()/*主函数*/int a,b,c;/*声明部分,定义变量的类型*/scanf(%d,%d,/*将变量c的值通过返回语句带回调用处*/,3.2 程序结构,3.2.2 顺序结构 程序运行时按语句书写的次序依次执行 最简单、最基本的结构【例3-3】分析下面程序结构。#include void main()int a,b,c;scanf(%d,%d,3.3 赋值语句,3.3.1 基本赋值语句变量=表达式;正确的赋值语句:a=100;a=a+200;/*两个赋值语句,最后a变成300*/a=b=c=100;/*相当于 a=(
4、b=c=100);*/c=(a=100,b=a,a+b);/*右边是逗号表达式*/错误的赋值语句:c+2=a+b;/*左边不是变量名,是表达式*/赋值运算符“=”可以理解成,例如:c=a+b可以看成ca+b。,3.3 赋值语句,3.3.2 复合赋值语句 a+=3;/*相当于a=a+3*/b-=6;/*相当于b=b-6*/c/=2;/*相当于c=c/2*/在构造以上赋值语句之前,变量必须已经初始化或赋值。下面的程序是错误的:int a;a+=10;因为a+=10相当于a=a+10,而右边表达式中的a是刚刚定义的,还没有具体的值。,3.4 数据输入与输出,C语言本身不提供输入输出语句,其数据的输入
5、和输出功能是由函数来实现的#include printf(格式输出)、scanf(格式输入)、putchar(输出字符),getchar(输入字符)Turbo C中允许在使用这两个函数时不用#include命令 使用数学函数库时,要用到math.h文件,3.4 数据输入与输出,3.4.1 格式化输出函数printf功能是向系统指定的设备输出若干个任意类型的数据 调用形式 printf(格式控制字符串,输出列表);格式控制字符串是用双引号括起来的字符串,它包括两个信息:格式说明。由“%”和格式字符组成,如%d、%c、%f等。它的作用是将要输出的数据转化成指定的格式输出,格式说明都是由“%”字符开
6、始的。一般字符。或者称为非格式说明符,即按原样输出的字符。,3.4 数据输入与输出,3.4.1 格式化输出函数printf输出列表是需要输出的变量、函数、表达式。例如:printf(a+b=%dn,c);“%d”是格式说明,用来控制输出项c的输出格式。“a+b=”和“n”都是一般字符,原样输出,“n”是转义字符,代表换行符。假设c为300,则输出结果为:a+b=300,3.4 数据输入与输出,3.4.1 格式化输出函数printf格式说明%标志最小宽度.精度长度 类型 表示可选项 标志 可以是-、+、0,3.4 数据输入与输出,3.4.1 格式化输出函数printf最小宽度:十进制整数,表示输
7、出的最少位数。.精度:“.”加上十进制整数n,其含义是:如果输出的是数值,则该数表示小数位数,若实际小数位数大于该值,则超出部分四舍五入;如果输出的是字符,则表示输出字符的个数。长度:可以是h、l。h表示按短整型量输出,l表示按长整型量或双精度量输出。,3.4 数据输入与输出,3.4.1 格式化输出函数printf类型:格式说明符中必须要有的,它表示输出列表里要输出的数据类型,【例3-4】分析下面程序运行结果,#include void main()char c=A;int a=65,b=-100;long d=100;double dxprintf(c=%d,c=%c,c=%xn,c,c,c
8、);printf(a=%d,a=%x,a=%o,a=%cn,a,a,a,a);printf(a=%d,a=%10d,a=%-10d,a=%+dn,a,a,a,a);printf(b=%d,b=%10d,b=%-10d,b=%+dn,b,b,b,b);printf(d=%d,d=%ld,d=%x,d=%lxn,d,d,d,d);printf(x=%f,x=%6.f,x=%.3f,x=%6.3f,x=%10.3fn,x,x,x,x,x);printf(y=%f,y=%6.f,y=%10.fn,y,y,y);printf(dx=%f,dx=%6.f,dx=%.3f,dx=%6.3f,dx=%10.3
9、fn,dx,dx,dx,dx,dx);printf(x=%.8f,dx=%.8fn,x,dx);,【例3-4】分析下面程序运行结果,【例3-4】分析下面程序运行结果,分析char型变量c分别用%d、%c、%x输出,结果分别为65、A、41。int型变量a当输出宽度大于其自身宽度2时,空余部分填充空格,附加字符“-”可以将默认的右对齐格式改成左对齐格式,附加字符“+”在正数65前加上符号“+”。负数b的符号位必须存在,默认比正数多出一个字符位置。long型变量d在16位机上的输出必须加l修饰,否则输出错误,但在VC下却可以忽略。TC下“%f”和“%6.f”输出float型变量x时意义相同,但在V
10、C下,“%6.f”相当于“%6.0f”。float类型变量x和double类型变量dx的精度可以从输出结果中看出,用“%.8f”输出x时,其精度只能达到3.141592,后面的数字是不可知的。,3.4.1 格式化输出函数printf,注意:可以在格式控制字符串中包含前面所讲的“转义字符”,如n、t、r、b、377等。跟在%后面的格式符除X(表示输出的十六进制数用大写字母输出)、E(表示输出的指数e用大写字母E输出)、G(表示若选用指数形式输出,则用大写字母E输出)外,其余必须是小写字母。如%d不能写成%D。若想输出字符“%”,则在格式字符串中用连续两个%表示。如:printf(%f%,1.0/
11、4);输出:0.250000%。,3.4 数据输入与输出,3.4.2 格式化输入函数scanf scanf函数的功能是从键盘上将数据按用户指定的格式输入并赋给指定的变量调用的一般形式为:scanf(格式控制字符串,地址列表);其中格式控制字符串的定义与使用方法和printf函数相同,但不能显示非格式字符。地址列表是要赋值的各变量地址。地址是由地址运算符“&”后跟变量名组成,如&x表示变量x的地址。默认的分隔符有空格、回车符、Tab(跳格)键,【例3-5】scanf函数的使用,#include void main()int a,b;scanf(%d%d,运行时按以下方式输入a、b的值:100-2
12、00程序将输出:a=100,b=-200,3.4.2 格式化输入函数scanf,格式说明%*宽度 长度 类型*:表示输入的数值不赋给相应的变量,即跳过该数据不读。宽度:十进制正整数,表示输入数据的最大宽度。长度:长度格式符为l和h,l表示输入长整型数据或双精度实型数据;h表示输入短整型数据。,3.4.2 格式化输入函数scanf,类型,【例3-6】分析下面程序,#include void main()char c;int a,b;float x,y;double dx,dy;printf(1.Input a,b(100-200):);scanf(%d%d,【例3-6】分析下面程序,scanf(
13、%d%d%c,【例3-6】分析下面程序,scanf(%3d%*3d%4d,【例3-6】分析下面程序,运行结果,【分析】,默认空格作为分隔符。自定义逗号“,”作为分隔符。输入字符给变量c时,前面不能使用分隔符,因为分隔符也是字符,所以直接在-200后面输入字符A。为了避免默认分隔符可以被字符型变量(%c可以接受所有字符,包括转义字符)接收,采用自定义分隔符。不用分隔符的情况。由于字符A区别于数字字符,所以系统可以识别并分隔数据。,【分析】,采用长度限制,3个数字字符111和4个数字字符2222分别输入给变量a和b。%*3d是一种虚读格式,111后面3个字符222被读入但没有赋值给任何变量。flo
14、at类型的数据输入,显然所能接收的数据精度只有7位,后面的数字四舍五入。double类型的数据输入,但用%f形式输出,只有6位小数精度,读者可以修改为%.8f试试,观察其小数位数的情况。在输入两个实型数据中间插入一个字符输入,系统可以识别并分隔数据。,3.4.2 格式化输入函数scanf,注意:scanf函数中的“格式控制字符串”后面的输入项应该是地址,而不应是变量名。例如:scanf(%d,%d,则输入时应输入:a=12,b=-2,3.4.2 格式化输入函数scanf,注意:输入数据时,遇到以下情况认为该数据输入结束:按指定的宽度结束。遇空格,或回车键,或Tab键。遇非法输入。如例3-6第5
15、部分:scanf(“%d%c%d”,之所以输入:100A-200可以分别使得a、b、c为100、-200、A,其主要原因是读入100后遇到字符A,不是数字字符,从而变量a的输入结束。当输入的数据与输出的类型不一样时,虽然编译没有提示出错,但结果将不正确。,3.4.3 字符数据的输入与输出,字符输入函数getchar从标准设备(键盘)上读入一个字符【例3-7】字符输入函数的使用。#include void main()char c1,c2;c1=getchar();c2=getchar();printf(%c,%cn,c1,c2);,3.4.3 字符数据的输入与输出,字符输出函数putchar
16、向标准输出设备(显示器)输出一个字符.例如:putchar(A);/*输出字符A*/putchar(65);/*输出65所对应的字符A*/putchar(n);/*输出换行符*/在上例最后的花括号“”前添加语句:putchar(c1);putchar(c2);putchar(n);,3.5 程序举例,【例3-8】从键盘上输入两个整数放入变量a和b中,编程将这两个变量中的数据交换。#include main()int a,b,t;a=3;b=5;t=a;a=b;b=t;printf(a=%d,b=%dn,a,b);,【例3-9】从键盘上输入一个小写英文字母,编程输出该字母所对应的大写字母。,【分
17、析】大写字母AZ的ASCII码值为6590,小写字母az的ASCII码值为97122。每对字母的ASCII码值差都是32,即a-A、b-B、c-C、z-Z都等于32。程序如下:#include void main()char c1,c2;c1=getchar();c2=c1-32;printf(%d,%d,%c,%cn,c1,c2,c1,c2);,【例3-10】输入三角形的三条边,编程求该三角形的面积。,【分析】三角形面积公式为(设三角形的三条边分别为a、b、c):,#include#include void main()float a,b,c,s,area;scanf(%f%f%f,【例3-
18、11】设计程序计算方程的解。其中a、b、c用scanf函数输入(设为2、3、1),【分析】由数学知识可知:求ax2+bx+c=0的根可用求根公式。即当b2-4ac0时,方程的两个根可用如下公式进行求解:,#include#include void main()float a,b,c,d,x1,x2;printf(Please input a,b,c:);scanf(%f,%f,%f,【例3-12】分析下面程序的运行结果。,#include void main()int i,j;i=10;printf(%d,%d,%dn,i-,j=i+,j=+i);printf(%d,%dn,i,j);prin
19、tf(%d,%dn,i+j,j+);printf(%d,%dn,i+j,+j);printf(%dn,(+j+j+);,本章介绍了顺序程序结构、赋值语句、基本的输入/输出函数。其中重点讲解了以下几方面的内容:程序结构。C程序的结构分为顺序结构、选择结构、循环结构。任何C程序都由这3种结构构成。赋值语句。由赋值运算表达式构造的赋值语句是最常用的语句,是对变量的最基本操作。基本的输入/输出函数。格式化输出函数printf和格式化输入函数scanf。字符输出函数putchar和字符输入函数getchar。使用上述函数需要包含头文件stdio.h,TC中允许在使用printf和scanf函数时忽略包含
20、该头文件。,格式字符。格式字符是以%开头、类型字符结尾的特殊字符串,其中输出格式字符要更为复杂些。输出格式字符。可以简单理解成:%标志 宽度 精度 长度 类型。类型字符是必须有的,主要有d、o、x、u、f、e、g、c、s,其中d、o、x、u用于整型数据,f、e、g用于实型数据,c、s用于字符型数据。d表示十进制整数,o表示八进制整数,x表示十六进制整数,u表示无符号整数。f表示十进制小数,e表示十进制指数,g表示自动选取f或e中较短长度的格式。c表示单个字符,s表示一串字符。x、e、g可以是大写的X、E、G,相应输出结果中的字母也将是大写。e默认输出5位小数,指数部分TC下默认2位、VC下默认
21、4位。g默认输出1位小数。,标志、宽度、精度、长度是可选的,如果没有设置,则按默认的格式输出。标志有+、-、0三种字符,“+”用于增加标注正数前面的“+”号,“-”用于更改对齐方式为左对齐,“0”用于修改默认空余填充的空格为“0”。宽度是十进制整数,不是强制执行的,当宽度小于实际宽度时无效,如果超出,则默认填充空格。当宽度超出实际宽度时,还会带来对齐的问题,默认是右对齐。精度是十进制整数,主要用于实型和字符型数据的输出控制。实型数默认输出6位小数,精度可以修改小数位数,精度不同于有效数字位数。同时包含宽度和精度的格式串,首先处理精度,然后得到实际宽度,再把设置的宽度和实际宽度比较,超出则填充空格,否则设置宽度无效。长度有h、l两种字符。h用于标注是短整型,l用于标注是长整型或double实型。值得注意的是,32位机器下,VC编程环境中int和long都是4个字节,在输出long型数据时可以不加l修饰了。输入格式字符。可以简单理解成:%*宽度 长度 类型。很显然,输入格式字符要简单得多。宽度、长度和类型的意义基本同输出格式符。“*”表示虚读。,编程求方程2x2-3x-6=0的根。输入3个整数a、b、c,编程交换它们的值,即把a中的值给b,把b中的值给c,把c中的值给a。编程将任意输入的小写字母转化成大写字母并输出。,
链接地址:https://www.31ppt.com/p-6372872.html