电脑基础知识2程序设计基础课件_第1页
电脑基础知识2程序设计基础课件_第2页
电脑基础知识2程序设计基础课件_第3页
电脑基础知识2程序设计基础课件_第4页
电脑基础知识2程序设计基础课件_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章 程序设计基础王颖第1页,共61页。2.1 数据类型 2.2 常量与变量2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 运算符 2.7 控制流程语句 2.8 程序的基本结构与算法第2页,共61页。2.1 数据类型 在设计一个程序时,首先要确定采用什么类型的数据,对不同的问题,采用的数据类型应不同。例如,在统计全校有多少学生时就应该用整型数据,而不应使用带小数的数据或其他数据。数据是程序的必要组成部分,是程序处理的对象。由于数据类型体现了数据结构的特点,高级语言所提供的数据类型越丰富,由其数据类型所表现的数据结构就越丰富、复杂,因而,这种高级语言的功能和所处理问题的能力就越

2、强。第3页,共61页。图2-1 C语言数据类型及分类关系图 第4页,共61页。注意1个字节相当于8位。即:1Byte=8bit修饰符signed(有符号的)和unsigned(无符号的)可用于修饰整形和字符型两种类型,缺省状态下指的是有符号的。short short int signed short intlong long int signed long intunsigned int unsignedunsigned long int unsigned longunsigned short int unsigned short第5页,共61页。2.2 常量与变量常量:在程序的运行过程中,始

3、终保持不变的量。如:5,3.14,a,“abc123”等。常量的分类根据常量的取值对象,C语言将常量分为以下5种类型:(1) 整型常量。例如:16,0,-3等。(2) 实型常量。例如:3.14159,-3.6等。(3) 字符常量。例如:A,5,#等。 (4) 符号常量。例如:“#define PI 3.14159”中的PI等。(5) 字符串常量。例如:Abc,6estghj,45+35等。第6页,共61页。2.2 常量与变量变量:在程序的运行过程中,可以发生变化的量。例如:float x; 中的x。变量的两个要素:变量名和变量值。 (1) 变量名。每个变量都必须有一个名字,变量命名应遵循标识符

4、的命名规则。 (2) 变量值。在程序运行过程中,变量值存储在内存中;不同类型的变量,占用的内存单元(字节)数不同。在程序中,通过变量名来引用变量的值。在C语言中,要求对所有用到的变量,必须先定义后使用。第7页,共61页。2.3 整 型 数 据2.3.1 整型常量1三种表示形式(1) 十进制(以非0开头,包含09)。例如50,-365,123等。(2) 八进制(以数字0开头,包含07)。例如016,0165等。(3) 十六进制(以数字0加字母x或X开头,包含09,af,AF)。例如0 x336,0 x2af等。 第8页,共61页。判断整形常量是否合法 0782 74A 0XAG int类型范围:

5、-3276832767 unsigned int: 065535一个常数后面加了小写字母l或者大写字母L的话,被认为是long类型。 例如12L 和12 。区别在于, 12L在存放的时候占用四个字节;12占用两个字节。第9页,共61页。2.3.2 整形变量例2-1:main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(a+u=%d,b+u=%dn,c,d);运行结果 a+u=22,b+u=-14 a,b,c,d为有符号的整形变量;u为无符号的整形变量。两者之间可以进行算术运算第10页,共61页。表2-1 各类整型数据的长

6、度及取值范围类型标识符占用的字节数取值范围short int2-32 76832 767int2-32 76832 767long int4-2 147 483 6482 147 483 647unsigned short int2065 535unsigned int2065 535unsigned long int404 294 976 295第11页,共61页。2.4 实 型 数 据 2.4.1 实型常量 实型常量即实数,又称浮点数,两种表达形式:(1) 十进制形式。由数字和小数点组成,例如,3.141 59,9.8,-12.567等。(2) 指数形式。一般格式为:尾数E(e)整型指数。

7、例如,3.05E+5,-1.2342e-12等。第12页,共61页。用指数形式表示实型数据时,在C语言中有如下语法规定:(1) 字母e或E之前必须要有数字。(2) 字母e或E之后的指数必须为整型。(3) 在字母e或E的前后以及数字之间不得插入空格。(4)实型常量的整数部分为0时,0可省略.57、.0075e2、-.125、-.175E-2均合法。 例如,e6、-2.432E0.5、5.234125e(3+6)、.e5、2.543 543E13等都是不合法的指数形式。第13页,共61页。 2.4.2 实型变量C语言的实型变量分为单精度型(float)和双精度型(double)两种。类型标识符占用

8、的字节数取值范围精 度float 4+(3.4E-383.4E+38)6位double 8+(1.7E-3081.7E+308)16位第14页,共61页。main() float a; a=111111.111; printf(“a=%f”,a);结果:a=11111.100000float类型,七个有效数字为,输出时默认保持六位精度第15页,共61页。2.5 字 符 型 数 据 2.5.1 字符常量定义:用一对单引号括起来的单个字符。例如:A,6,+ 等。在c中,字符是按照其对应的ASCII值来存储的,一个字符占用一个字节。参考272页附录C。A(65:0100 0001),a(97:011

9、0 0001)第16页,共61页。2.5.2 字符串常量定义:用一对双引号引起来的一串字符。字符串长度:字符串中所含字符的个数。例如,“How do you do”其长度为13(空格也是一个字符)。空串:长度为0的字符串(即一个字符都没有的字符串) ,表示为“” (一对紧连的双引号)。第17页,共61页。C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个0作为字符串的结束标志。 注意:在源程序中书写字符串常量时,不必加结束字符0,系统会自动加上。 例如:”CHINA”,长度为5,所占内存为6。在内存中的实际存储为CHINA0第18页,共61页。 字符常量A(A)与字符串常量A(A)

10、的区别: (1) 定界符不同:字符常量使用单引号,而字符串常量使用双引号。 (2) 长度不同:字符常量的长度固定为1,而字符串常量A的长度是2。 (3) 存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量除了要存储有效的字符外,还要存储一个结束标志 0。第19页,共61页。字符串在内存中的存储第20页,共61页。转义字符形式意 义n换行t水平制表v垂直制表b退格r回车f走纸换页a报警(如铃声)反斜杠?问号“双撇号单撇号ddd13位八进制常数xhh12位十六进制常数2.5.3 转义字符第21页,共61页。转义字符:一种表示字符的特殊形式三种使用方式:1.用开头后跟一个字母代表一个控

11、制字符2.ddd:用后跟三个八进制的数,代表ASCII码为该八进制的字符。main( ) char ch; ch=102; printf(“%c”,ch);结果:B(102)8=1*82+0*81+2*80=66第22页,共61页。2.xhh:用后跟两个十六进制的数,代表ASCII码为该十六进制的字符。main( ) char ch; ch=x42; printf(“%c”,ch);结果:B(42)16=4*161+2*160=66第23页,共61页。2.5.4 符号常量定义:用一个符号去代表一个常量,一般用大写的英文字母表示结果: 2 c=12.560000 s=12.560000思考:求任

12、意半径和高的圆锥的面积和体积。#define PI 3.14main() float r,c,s; scanf(%f,&r); c=2.0*PI*r; s=PI*r*r; printf(c=%fns=%fn,c,s);第24页,共61页。2.5.5 字符变量字符变量的类型关键字为char,占1字节内存单元。 1变量值的存储 字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号正数)存储到内存单元中。第25页,共61页。例如: char ch1,ch2; ch1=a; ch2=b; /*给字符变量ch1、ch2赋值*/小写字母a、b的ASCII码

13、值分别为97、98。在内存中,字符变量ch1、ch2的值如下图所示。第26页,共61页。图 字符变量ch1、ch2在内存中的存储 (a) 十进制形式;(b) 二进制形式第27页,共61页。(1) 一个字符型数据,既可以以字符形式输出(%c),也可以以整数(%d)形式输出。main() char ch1,ch2; ch1=A;ch2=a; printf(ch1=%c,ch2=%cn,ch1,ch2); printf(ch1=%d,ch2=%dn,ch1,ch2); 程序运行结果: ch1=A,ch2=a ch1=65,ch2=97第28页,共61页。(2) 允许对字符数据进行算术运算,也就是对它

14、们的ASCII码值进行算术运算。 main( ) char ch1,ch2; ch1=a;ch2=B; printf(ch1=%c,ch2=%cn,ch1-32,ch2+32); 程序运行结果: ch1=A,ch2=b字母的大小写转换:小写字母-32大写,大写字母+32小写第29页,共61页。2.6 运算符按照功能分类:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符、逗号运算符按照目分类:单目运算符、双目运算符、三目运算符第30页,共61页。2.6.1 算术运算符基本算术运算符有如下5种: +(加法)、(减法)、*(乘法)、/(除法)、%(求余数)1) 关于除法运算“/”

15、 C语言规定:两个整数相除,其商为整数,小数部分被舍弃。例如,10/3=3。如果相除的两个数中至少有一个是实型的,则结果为实型。例如,10.0/3=3.333333。第31页,共61页。2) 关于求余数运算“%”求余数运算要求两侧的操作数均为整型数据,否则出错。5%2=1。思考:怎样求出一个整数的个位?怎样舍去一个整数的个位?对10取余:求出个位。236%106对10整除:舍去个位。236/1023求一个任意三位数的逆序数。例如:123的逆序数是321第32页,共61页。main() int x,a,b,c,y; printf(input number:(100-999):n); scanf(

16、%d,&x); a=x%10; /*a为x的个位*/ b=x/10%10; /*b为x的十位*/ c=x/100; /*c为x的百位*/ y=a*100+b*10+c; printf(y=%d,y); 第33页,共61页。2.6.2 自增/减运算符自增运算(+)使单个变量的值增1,自减运算( - )使单个变量的值减1。 (1) 前置运算 +变量、-变量,即:加加减减在前。如:+i;-j;。它先使变量的值增(或减)1,然后再以变化后的值参与其他运算,即先增减,后运算。(2) 后置运算变量+、变量-,即:加加减减在后。如:i+;j-;。它使变量先参与其他运算,然后再使变量的值增(或减)1,即先运算

17、,后增减。第34页,共61页。Eg1:main( ) int x,y,i; i=5; x=+i; y=i; printf(“%d,%d,%d”,i,x,y);Eg2:main( ) int x,y,i; i=5; x=i+; y=i; printf(“%d,%d,%d”,i,x,y);6, 6, 66, 5, 6第35页,共61页。算术运算符的优先级+、 最高(一元减)*、/、%+、 最低第36页,共61页。2.6.3 关系/逻辑运算符六种关系运算符:、=、b; e=ab; f=a=c; printf(“%d%d%d%d%d%d”,d,e,f,g,h,i);0 1 1 0 1 0第37页,共6

18、1页。三种逻辑运算符&、|、!1&11 1&00 0&10 0&001 | 11 1 | 01 0 | 11 0 | 00!01 !10短路规则:不用计算a的值,即可得出最终结果 0&a=0 1 | a=1第38页,共61页。注意X属于(1,10) 即1x1&x=10第39页,共61页。2.6.4 赋值运算符和表达式1基本赋值运算符“=”形式: 变量=赋值表达式作用:把赋值号右边的表达式的值赋给左边的变量。结合方向从右向左。第40页,共61页。课本17页例24main( ) int a,b=322; float x,y=8.88; char c1=k,c2; a=y; printf(“%dn”

19、,a); x=b; a=c1; c2=b; printf(“%f,%d,%c”,x,a,c2);1.实型赋予整形,舍去小数部分2.整形赋予实型,增加小数部分3.字符型赋予整形,高8位补04.整形赋予字符型,只赋低8位注:k的ASCII值是107, 322化为二进制为 0000 0001 0100 0010只取其后八位,即0100 0010,化为十进制为66,ASCII值为66的字符是B8322.000000,107,B第41页,共61页。2. 10种复合赋值运算符如下:+=,-=,*=,/=,%= /*复合算术运算符*/=,=,|=,= /*复合位运算符,将在第11章介绍*/例如:x+=8 即

20、:x=x+8; z/=a+b 即:z=z/(a+b)第42页,共61页。2.6.5 逗号运算符及其表达式一般形式:表达式1,表达式2,表达式n逗号表达式的值和类型由最后一个表达式决定逗号表达式的优先级最低例如:f=a+b,g=c/b,e=8,10;上述表达式的值为10第43页,共61页。2.6.6 条件运算符和条件表达式表达式1(条件)?表达式2:表达式3功能:条件(表达式1)若为真,则取表达式2的值,条件若为假,则取表达式3的值。例如:e=(ab)?c:d当ab成立时,则e=c;当ab?a:b;Eg2:求a、b、c中较小者,放于min中 min=ab?(ac?a:c):(bb) printf

21、(“%d”,a); if(a=5) y=20-5*x; else y=6*x-8; printf(“x=%dty=%dn”,x,y);20-5*x;(x=5)6*x-8;(x0&b0&c0&a+bc&a+cb&b+ca) printf(yes!n); p=(a+b+c)/2.0; s=sqrt(p*(p-a)*(p-b)*(p-c); printf(s=%fn,s); else printf(no!n);第52页,共61页。1.在C语言中,合法的字符常量是( )。 A) 084 B) x43 C) ab D) 0”2.下面程序段的int i=010 , j=10 ; printf(%d , %dn , +i , j-) ; 输出结果是( )。 A) 11 , 10 B) 9 , 10 C) 010 , 9 D) 11 , 9BB第53页,共61页。3.已知在ASCII代码中,字母A的序号为65,以下程序的输出结果是( )。main( ) char c1=A , c2=Y ; printf(%d,%dn , c1 , c2) ; A) 输出格式非法,输出错误信息 B) 65 , 90 C) A , Y D) 65 , 89 D第54页,共61页。4 .若x和y都是int型变量,x=100,y=200,且有以下程序段:printf(%d , (x , y) ;上

温馨提示

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

评论

0/150

提交评论