语言程序设计电子与教案_第1页
语言程序设计电子与教案_第2页
语言程序设计电子与教案_第3页
语言程序设计电子与教案_第4页
语言程序设计电子与教案_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

语言程序设计电子与教案第三章简单的C程序设计——顺序3.1顺序程序设计举例3.2数据的表现形式及其运算

常量、变量

整形、字符型、浮点型

运算符及表达式3.3C语句——赋值语句3.4数据的输入和输出

scanf

和printf

getchar和putchar小结顺序程序设计举例#include<>intmain(){floatf,c;f=68.0;c=(5/9)*(f–32);printf("f=%f\nc=%f\n",f,c);return0;}A0301华氏温度(如68℉)转为摄氏温度(如20℃)输入f的值输出c的值C=顺序程序设计举例intmain(){floatr,a,b;r=2;a=2*PI*r;b=PI*r*r;printf(“半径=%f\n周长=%f\n面积=%f\n",r,a,b);return0;}A0302例:根据圆半径,求圆周长和圆面积。输入半径r的值输出a、b的值半径周长面积周长a=2*pi*r面积b=pi*r*rscanf("%f",&r);键盘输入一、数据的概念在计算机科学中,数据是指能由程序处理的对象。日常生活中的数字、字符、图形图象及声音等,在计算机中均作为数据看待。二、数据的类型在高级语言中,每一个数据都属于一个特定的类型。不同类型的数据的表示、存储及操作不相同。3.2数据的表现形式及其运算姓名Alice性别F年龄20英语80数学85平均字符串字符整型实型实型实型3.2.1常量与变量3.3.1常量和符号常量

1、常量:在程序运行过程中,其值不能被改变的量。常量说明关键字:const。

2、常量的分类:1)整型常量。如:1234,562)实型常量。如:3)字符常量。如:‘A’,‘a’,‘m'4)字符串常量。如:"A","China"5)转义字符。如:'\n','\t','\123','\xF9'6)符号常量。如:#defineN30转义字符例:在屏幕上输出一个笑脸(ASCII码值为2)#include<>voidmain(){printf("%c\n",2);/*输出"笑脸"字符*/

}增加一个转义字符的图符号常量概念:用一个标识符表示常量#define标识符常量表达式

例:注意:1)标识符一般用大写2)不能给符号常量赋值例:PI=6;错误常用于:(1)把有意义的常数定义为符号常量(2)在程序中多次出现的常数,定义为符号常量优点:含义清晰;一改全改#include<>main(){floatr,area;printf("pleaseenterr:");

scanf("%f",&r);area=PI*r*r;printf("Theareais%f",a);}符号常量的应用例2.3录入50个学生的成绩,统计100~90,89~80,79~70,69~60,59~0个分数段学生的人数,并显示统计结果(统计结果记为count)自顶向下:1:录入50个学生的成绩2:统计个分数段学生的人数3:显示统计结果S1.1:使i=1S1.2:输入ni学生的成绩S1.3:i=i+1S1.4:如果i≦50,执行S1.2S2.1:使i=1S2.2:判断ni学生的属于哪个分数段,该分数段人数+1S2.3:i=i+1S2.4:如果i≦50,执行S2.2S3.1:使i=1S3.2:显示countiS3.3:i=i+1S3.4:如果i≦5,执行S3.2#defineN5030303030NN3.2.2标示符与变量1、变量变量:在程序执行过程中其值可以改变的存储单元,该存储单元的名字称为变量名。变量有不同的类型,存放不同类型的数据。注意:变量要先定义再使用定义变量:类型变量名表;abc变量名变量值inta,b,c;a=3;b=8;c=a+b;a=5;存储单元38115变量的命名规则标示符

用于命名程序中的实体对象(如变量,符号常量函数,数组等)(1)标示符是以字母或下划线开头,由字母、数字及下划线等组成的字符序列,如:abc,_x1,AB67,NAME2;(2)序列长度最大值依编译系统而定;(3)区分大小写字母,如abc和Abc是不同的变量(4)不允许使用关键字作变量名。例:123dr+43auto5A*2#88(错误)_123dr_43Auto(正确)C语言的数据类型图构造类型数组结构(struct)共用体(union)其它类型指针(point)空类型(void)基本数据类型数值型整型基本型(int)短整型(short)长整型(long)无符号型(unsigned)浮点型单精度(float)双精度(double)长双精度(longdouble)枚举型(enum)字符型(char)字符字符串在C语言中,数据类型用相应的关键字表示3.2.3整型类型存储大小取值范围int2字节-215~215-1-32768~32768short2字节-215~215-1-32768~32768long4字节-231~231-1longlong8字节-263~263-1身份证号,学号?------没有负数!符号位数值位115C语言的unsigned和signed数对整型和字符型1、signed:有符号数可以存放正数和负数2、unsigned:无符号数只能存放正数(实数没有unsigned和signed的区分)如:身份证号,学号等。

取消符号位,与右边的各位一起用来表示数值本身。数值位16符号位数值位115整型默认有符号型3.2.3整型unsignedint0~216-10~65535unsignedshortint0~216-10~65535unsignedlongint0~232-1类型存储大小取值范围int16bit-215~215-1-32768~32768shortint16bit-215~215-1-32768~32768longint32bit-231~231-1intmain(){charc1,c2;c1='a';c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);return0;}3.2.4字符型数据c1c2变量名变量值a98存储单元97(1)可以是转义字符\n(2)存储:字符的ASCII码(3)输出:整数或字符(4)允许对字符进行算术运算(即对ASCII码值进行算术运算)字符变量:关键字char,占1字节字符常量:用单引号括起来的单个字符A0303例:字符数据的算术运算。3.2.4字符型数据intmain(){charc1,c2;c1='a';c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);return0;}运行结果:ab9798c1c2变量名变量值a98存储单元97字符ASCII码a97b98c99c1+1;'a'+1;以字符方式输出以整数方式输出A0303例:字符数据的算术运算。课堂练习:给定一个小写字母,输出大写字母。

#include<>intmain()

{charc1,c2;c1=‘a’;c2=c1-32;printf("%c",c2);return0;} 运行结果:Pleaseinputachar:a(输入)A(输出)3.2.4字符型数据3.2.5浮点型数据实型变量分为三种:1、单精度:float(有效数字7位)2、双精度:double(有效数字16位)3、长双精度:longdouble(有效数字19位)。3.4.2舍入误差intmain(){floata,b;b=a+20;

printf("%f\n",b);return0;}实际:期望:错误原因:float有效数字7位,后面的数字无意义。如何得到正确计算结果?doubleA0304例:数据有效长度数据在内存中的存储方式1.内存单元的地址:内存单元的编号,与变量名对应。2.内存单元的内容:变量的值。例:对如下定义:inta,b;charc;floatx;变量a,b,c,x的内存分配情况:abxc基本数据类型练习1.以下正确的字符常量是()A)‘A’B)’\398’C)"A"D)’\xgh’2.以下正确的整数常量是()

3.以下是正确的实型常量是()A)9.0B)0.5eC)1.2e+2.6D)e-24.设有chara=‘a’;inti=2;printf("%c",a+i)的结果为:A)‘c’B)‘d’C)‘r’D)'g‘5、以下转义字符用于换行的是()。A)'\r'B)'\t'C)'\n'D)'\\'3.2.7运算符和表达式运算符的优先级为:()*,/高低%+,-1基本算数运算符+(加),-(减法/取负),*(乘),/(除),%(模运算,即求余数)关于除法运算"/"的说明a/b:

①a,b都是整数,其商取整数,小数部分舍弃例:5/2=2结果取整商值‘a’/2=4897/2的整商值

②a,b其一是实型,另一个自动转换为实型例如:5./2=2.5;例如:1/2=0;关于求余数运算符"%"的说明a%b:

求a除以b的余数。

①a,b均为整型,或者单字符数据②运算结果为整数,结果为a除以b的余数。例:5%2=1‘a’%2=197%25.0%2错

自增(++)、自减(--)运算实例A0305例:自增自减运算符intmain(){inta,b,c,d;a=5;b=5;c=++a;d=b++;printf("c=%d\n",c);printf("d=%d\n",d);printf("a=%d,b=%d

\n",a,b);return0;}先将a值自加1,再将增加后的a值赋值给c先将b的值赋给d,然后b再自加1输出结果:c=6d=5a=6,b=6++ii=i+1,使i的值增1--ii=i-1,使i的值减1自增(++)、自减(--)运算2、用法与运算规则

(1)前置运算:++i、--i;即先增减、后运算先使i增(减)1,再以增、减后的值参与其它运算

(2)后置运算:i++、i--。即先运算、后增减变量先参与其它运算,然后再使变量的值增、减1【自增、自减运算的几点说明】1)++、--只能用于变量,不能用于常量和表达式。例1:5++、--(a+b)错误2)其结合方向是从右到左,注意前置、后置问题。例2:inta=5,b;b=-a++;运算结果:a=6b=-5(a++:后置运算,先引用变量的值,然后变量值加1)3)在表达式中,避免这种用法x+++x+++x++算术表达式例:设有定义:floata=2,b=4,h=3;,以下C语言表达式与代数式结果不同的是()A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)例:a/*简单表达式*/2/*简单表达式*/(x+y)/2–1/*复杂算术表达式*/(1)概念:用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合语法规则的式子,称为表达式。(2)表达式求值:按运算符的优先级高低次序执行算术表达式常用函数:1)幂次方用函数pow()3)平方根用函数sqrt()表示使用以上数学函数需要#include<>例1:代数式3x3+x-2算术表达式:3*pow(x,3)+x-2例2代数式

算术表达式:a/2-(6*y)/(5*x)例:inti;floatf;doubled;longe如何计算:10+’a’+i*f-d/e?3.7不同类型数据之间的转化1.自动转化

2.类型强制转化混合运算的转化规则转化规则:运算符两侧的操作数的数据类型不同,则系统"先转换、后运算",首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。double←float↑long↑unsigned↑int←char,short1)←表示必须的转换。char和short型必须转换成int型,float型必须转换成double型。2)↑表示不同类型的转换方向。3.7不同类型数据之间的转化类型强制转化和自动转化实例inti;floatf;doubled;longe10+’a’+i*f-d/e计算机从左到右扫描1)10+’a’10+97=107i*fi,f转为double运算107转为double+i*fe转为double上述类型转换为系统自动进行。double←float↑long↑unsigned↑int←char,short数据类型强制性转化y=3A0306例:取整运算main();inty;y=(int)x;printf("y=%d",y);printf("x=%f",x);}强制转换:转化为为指定的数据类型。格式:

(要转换成的数据类型)(被转换的表达式)强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。将转化为整型数赋值给y,但x本身的类型和其值未改变(1)类型名称必须用()括号括起来(2)强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。(3)当被转换的表达式是一个简单表达式(如简单变量)时,外面的一对圆括号可以缺省。数据类型强制性转化说明(double)a(float)5/2(float)(5/2)(double)(a)(float)(5)/2将5转换成实型再除以2;()(float)(5/2)将5整除2的结果转换成实型算数运算符练习(1)1.设intx,y=3;执行x=y++之后,x,y的值分别为:A)3,5B)4,5C)3,4D)4,42.设有intm,i=5;执行m=++i之后,m,i的值分别为:A)5,5B)5,6C)6,6D)6,53.表达式7%5的值为:()A)1B)2.5C)2D)04.设有;表达式(float)a+b/2+(int)x%2的结果值为:()A)3B)5C)5.0D)75、,y=3.6,则表达式(int)(x+y)的结果值为:()A)6B)4C)3D)76、,y=3.6,则表达式(int)x+y的结果值为:()A)7B)4C)3.6D)7、设有chara='A';inti=a/2;printf("%d",i)的结果为:()A)65B)66C)32D)67算数运算符练习(2)3.3C语言的语句1.控制语句:(1)选择结构控制语句:if()~else~,switch()~(2)循环结构控制语句:do~while(),for()~,while()~,break,continue(3)其它控制语句:goto,return2.函数调用语句:由一次函数调用加一个分号构成。例如,printf("ThisisaCfunctionstatement.");3.表达式语句:表达式后加一个分号构成。例如:num=5;是一个赋值语句。4.空语句:仅由一个分号构成,不执行任何操作。例:;5.复合语句:由大括号括起来的一组语句构成。例如:main(){……{……}/*复合语句。。*/……}3.2C语言的语句注意:没有分号赋值语句及赋值运算符赋值运算符:=

变量=表达式将表达式的值赋给变量例1:t=x+5p=q=r=9x=(y=1)-(z=2)P=9x=-1注意:赋值运算符按自右而左的结合顺序例:floatf;f=23;/*计算机中f=23.00000*/注意:将右边表达式类型转化为左边变量的类型例:a+=2a=a+2a*=3a=a*3x+=y+7x=x+(y+7)a*=5+6a=a*(5+6)a/=3*5a=a/(3*5)复合赋值运算+=-=*=/=%=<<=>>=&=^=|=运算时要把整个表达式当做一个整体3.4数据输出/输入1)C语言中本身不提供输入/输出语句,所有的输入/输出操作都是由函数来实现的。printf,scanf,putchar,getchar2)使用输入输出库函数时,必须#include<>3.4数据的输入输出#include<>intmain(){floata,b,c,disc,x1,x2,p,q;printf("输入abc:");scanf(“%lf%lf%lf”,&a,&b,&c);disc=b*b-4*a*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);return0;}A0307例:求ax2+bx+c=0方程的根。设b2-4ac>0

a,b,c由键盘输入计算disc=b2-4ac计算根x1和x2输入abc输出x1,x2计算p和qprintf函数输出数据功能:向屏幕输出一个或多个任意类型的数据。

语法:printf(格式控制字符串,输出项表列);例:printf("max=%d",c);原样输出的字符串格式字符串输出列表:变量或表达式

printf("Theareais%f",a);printf("%c%c\n",c1,c2);printf("Pleaseinputachar:");整形实型字符型多用于提示信息

printf("sum=%d",a+b);printf函数输出数据(1)常用格式符之一%d,按整型数的实际长度输出十进制数%f,输出实数(单、双精度),以小数形式输出%c,输出一个字符%s,输出一个字符串A0308例:输出不同类型的数据#include<>voidmain(){inti=2;charc=′H′;floatx=3.14;printf("i=%d,c=%c,x=%f\n",i,c,x);}输出结果i=2,c=H,xprintf格式字符说明%f,不指定字段宽度,整数全部输出,并输出6位小数%,指定输出共m列,其中小数n位例:输出实数#include<>voidmain(){floatx,y;;;printf("%f\n",x+y);}运行结果只有前7位有效运行结果scanf函数输入数据功能:从标准输入设备中读字符串语法:scanf(控制字符串,参数1,参数2,…)1)输入的数据存放在参数列表中,参数必须是地址(&变量)若控制字符串中包含普通字符,则输入时必须与其对应格式说明,用"%d%d"格式输入时,不能用逗号作为数据分割符,可以用回车和tab键例:scanf("%d,%d",&a,&b);例452:inta,b;scanf("%d,%d",&a,&b);printf("a=%d,b=%d",a,b);输入:100,200输出:a=100,b=2001.输入变量前要加符号&2.输入函数格式要求严格3.类型必须匹配4.控制串中的普通字符必须原样一起输入floatffff输入函数scanf例452:inta,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d",a,b);输入:100□

200输出:a=100,b=200用系统默认的分隔符:回车、tab键、空格

例如:scanf("a=%d,b=%d",&a,&b);输入a=

温馨提示

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

评论

0/150

提交评论