《电脑基础知识2程序设计基础ppt课件》由会员分享,可在线阅读,更多相关《电脑基础知识2程序设计基础ppt课件(61页珍藏版)》请在金锄头文库上搜索。
1、第二章 程序设计根底王颖yingqingsi163v2.1 数据类型数据类型 v2.2 常量与变量常量与变量v2.3 整型数据整型数据 v2.4 实型数据实型数据 v2.5 字符型数据字符型数据 v2.6 运算符运算符 v2.7 控制流程语句控制流程语句 v2.8 程序的根本构造与算法程序的根本构造与算法2.1 数据类型 v在设计一个程序时,首先要确定采用什么类型的数据,对不同的问题,采用的数据类型应不同。例如,在统计全校有多少学生时就应该用整型数据,而不应运用带小数的数据或其他数据。v数据是程序的必要组成部分,是程序处置的对象。由于数据类型表达了数据构造的特点,高级言语所提供的数据类型越丰富
2、,由其数据类型所表现的数据构培育越丰富、复杂,因此,这种高级言语的功能和所处置问题的才干就越强。图图2-1 C言语数据类型及分类关系图言语数据类型及分类关系图 留意v1个字节相当于8位。即:1Byte=8bitv修饰符signed有符号的和unsigned无符号的可用于修饰整形和字符型两种类型,缺省形状下指的是有符号的。vshort short int signed short intvlong long int signed long intvunsigned int unsignedvunsigned long int unsigned longvunsigned short int un
3、signed short2.2 常量与变量v常量:在程序的运转过程中,一直坚持不变的量。如:5,3.14,a,“abc123等。v常量的分类v根据常量的取值对象,C言语将常量分为以下5种类型:v(1) 整型常量。例如:16,0,-3等。v(2) 实型常量。例如:3.14159,-3.6等。v(3) 字符常量。例如:A,5,#等。 v(4) 符号常量。例如:“#define PI 3.14159中的PI等。v(5) 字符串常量。例如:Abc,6estghj,45+35等。2.2 常量与变量v变量:在程序的运转过程中,可以发生变化的量。例如:float x; 中的x。v变量的两个要素:变量名和变量
4、值。v (1) 变量名。每个变量都必需有一个名字,变量命名应遵照标识符的命名规那么。v (2) 变量值。在程序运转过程中,变量值存储在内存中;不同类型的变量,占用的内存单元(字节)数不同。在程序中,经过变量名来援用变量的值。v在C言语中,要求对一切用到的变量,必需先定义后运用。2.3 整 型 数 据2.3.1 整型常量1三种表示方式(1) 十进制以非0开头,包含09。例如50,-365,123等。(2) 八进制(以数字0开头,包含07)。例如016,0165等。(3) 十六进制(以数字0加字母x或X开头,包含09,af,AF)。例如0x336,0x2af等。 v判别整形常量能否合法v 0782
5、 74A 0XAG vint类型范围:-3276832767v unsigned int: 065535v一个常数后面加了小写字母l或者大写字母L的话,被以为是long类型。v 例如12L 和12 。区别在于, 12L在存放的时候占用四个字节;12占用两个字节。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);v运转结果v a+u=22,b+u=-14v a,b,c,d为有符号的整形变量;u为无符号的整形变量。两者之间可以进展算术运算表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 2952.4 实 型 数 据 2.4.1 实型常量 实型常量即实数,又称浮点数,两种表达方式:(1) 十进制方式。由数字和小数点组成,例如,3.141 59,9.8,-12.567等。(2) 指数方式。普通格式为:尾数E(e)整型指数。例如,3
7、.05E+5,-1.2342e-12等。用指数方式表示实型数据时,在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等都是不合法的指数方式。 2.4.2 实型变量C言语的实型变量分为单精度型(float)和双精度型(double)两种。类型标识符占用的字节数取值范围精 度float 4+(3.4E
8、-383.4E+38)6位double 8+(1.7E-3081.7E+308)16位main() float a; a=111111.111; printf(“a=%f,a);结果:a=11111.100000float类型,七个有效数字为,输出时默许坚持六位精度2.5 字 符 型 数 据 2.5.1 字符常量定义:用一对单引号括起来的单个字符。例如:A,6,+ 等。在c中,字符是按照其对应的ASCII值来存储的,一个字符占用一个字节。参考272页附录C。A65:0100 0001,a97:0110 00012.5.2 字符串常量定义:用一对双引号引起来的一串字符。字符串长度:字符串中所含字
9、符的个数。例如,“How do you do其长度为13(空格也是一个字符)。空串:长度为0的字符串(即一个字符都没有的字符串) ,表示为“ (一对紧连的双引号)。vC言语规定:在存储字符串常量时,由系统在字符串的末尾自动加一个0作为字符串的终了标志。v 留意:在源程序中书写字符串常量时,不用加终了字符0,系统会自动加上。v 例如:CHINA,长度为5,所占内存为6。在内存中的实践存储为CHINA0v 字符常量A(A)与字符串常量A(A)的区别:v (1) 定界符不同:字符常量运用单引号,而字符串常量运用双引号。v (2) 长度不同:字符常量的长度固定为1,而字符串常量A的长度是2。v (3)
10、 存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量除了要存储有效的字符外,还要存储一个终了标志 0。字符串在内存中的存储字符串在内存中的存储转义字符形式意 义n换行t水平制表v垂直制表b退格r回车f走纸换页a报警(如铃声)反斜杠?问号“双撇号单撇号ddd13位八进制常数xhh12位十六进制常数2.5.3 本义字符v本义字符:一种表示字符的特殊方式v三种运用方式:v1.用开头后跟一个字母代表一个控制字符v2.ddd:用后跟三个八进制的数,代表ASCII码为该八进制的字符。vmain( )vv char ch;v ch=102;v printf(“%c,ch);v结果:B(102)
11、8=1*82+0*81+2*80=66v2.xhh:用后跟两个十六进制的数,代表ASCII码为该十六进制的字符。vmain( )vv char ch;v ch=x42;v printf(“%c,ch);v结果:B(42)16=4*161+2*160=662.5.4 符号常量v定义:用一个符号去代表一个常量,普通用大写的英文字母表示v结果:v 2v c=12.560000v s=12.560000v思索:求恣意半径和高的圆锥的面积和体积。#define PI 3.14main() float r,c,s; scanf(%f,&r); c=2.0*PI*r; s=PI*r*r; printf(c=
12、%fns=%fn,c,s);2.5.5 字符变量v字符变量的类型关键字为char,占1字节内存单元。v 1变量值的存储v 字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实践上是将该字符的ASCII码值(无符号正数)存储到内存单元中。v例如:v char ch1,ch2;v ch1=a;v ch2=b; /*给字符变量ch1、ch2赋值*/v小写字母a、b的ASCII码值分别为97、98。在内存中,字符变量ch1、ch2的值如以下图所示。图 字符变量ch1、ch2在内存中的存储 (a) 十进制方式;(b) 二进制方式v(1) 一个字符型数据,既可以以字符方式输出%c,也可以以整数
13、%d方式输出。vmain()v v char ch1,ch2;v ch1=A;ch2=a;v printf(ch1=%c,ch2=%cn,ch1,ch2);v printf(ch1=%d,ch2=%dn,ch1,ch2);v v程序运转结果:v ch1=A,ch2=av ch1=65,ch2=97v(2) 允许对字符数据进展算术运算,也就是对它们的ASCII码值进展算术运算。 vmain( )vv char ch1,ch2;v ch1=a;ch2=B;v printf(ch1=%c,ch2=%cn,ch1-32,ch2+32);v 程序运转结果:v ch1=A,ch2=bv字母的大小写转换:小
14、写字母-32大写,大写字母+32小写2.6 运算符按照功能分类:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符、逗号运算符按照目分类:单目运算符、双目运算符、三目运算符2.6.1 算术运算符v根本算术运算符有如下5种: +(加法)、(减法)、*(乘法)、/(除法)、%(求余数)v1) 关于除法运算“/v C言语规定:两个整数相除,其商为整数,小数部分被舍弃。例如,10/3=3。假设相除的两个数中至少有一个是实型的,那么结果为实型。例如,10.0/3=3.333333。2) 关于求余数运算“%求余数运算要求两侧的操作数均为整型数据,否那么出错。5%2=1。思索:怎样求出一个
15、整数的个位?怎样舍去一个整数的个位?对10取余:求出个位。236%106对10整除:舍去个位。236/1023求一个恣意三位数的逆序数。例如:123的逆序数是321main() int x,a,b,c,y; printf(input number:(100-999):n); scanf(%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); 2.6.2 自增/减运算符v自增运算+使单个变量的值增1,v自减运算 - 使单个变量的值减1。 v(1) 前置
16、运算 +变量、-变量,即:加加减减在前。如:+i;-j;。它先使变量的值增(或减)1,然后再以变化后的值参与其他运算,即先增减,后运算。v(2) 后置运算变量+、变量-,即:加加减减在后。如:i+;j-;。它使变量先参与其他运算,然后再使变量的值增(或减)1,即先运算,后增减。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算术运算符的优先级v+、 最最高高v一元减
17、一元减v*、/、%v+、 最低最低2.6.3 关系/逻辑运算符v六种关系运算符:、=、b; e=ab; f=a=c; printf(“%d%d%d%d%d%d,d,e,f,g,h,i);0 1 1 0 1 0v三种逻辑运算符&、|、!v1&11 1&00 v0&10 0&00v1 | 11 1 | 01 v0 | 11 0 | 00v!01 !10v短路规那么:不用计算a的值,即可得出最终结果 v 0&a=0v 1 | a=1留意vX属于(1,10) 即1x1&x=102.6.4 赋值运算符和表达式1根本赋值运算符“=方式: 变量=赋值表达式作用:把赋值号右边的表达式的值赋给左边的变量。结合方
18、向从右向左。课本17页例24main( ) int a,b=322; float x,y=8.88; char c1=k,c2; a=y; printf(“%dn,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,B2. 10种复合赋
19、值运算符如下:+=,-=,*=,/=,%= /*复合算术运算符*/=,=,|=,= /*复合位运算符,将在第11章引见*/例如:x+=8 即:x=x+8; z/=a+b 即:z=z/(a+b)2.6.5 逗号运算符及其表达式v普通方式:表达式1,表达式2,表达式nv逗号表达式的值和类型由最后一个表达式决议v逗号表达式的优先级最低v例如:f=a+b,g=c/b,e=8,10;v上述表达式的值为102.6.6 条件运算符和条件表达式v表达式1条件?表达式2:表达式3v功能:条件表达式1假设为真,那么取表达式2的值,条件假设为假,那么取表达式3的值。v例如:e=(ab)?c:dv当ab成立时,那么e
20、=c;v当ab?a:b;Eg2:求a、b、c中较小者,放于min中 min=ab?(ac?a:c):(bb) printf(“%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);v1.在C言语中,合法的字符常量是( )。v A) 084 B) x43
21、vC) ab D) 0v2.下面程序段的int i=010 , j=10 ; v printf(%d , %dn , +i , j-) ;v 输出结果是( )。v A) 11 , 10 B) 9 , 10 v C) 010 , 9 D) 11 , 9BBv3.知在ASCII代码中,字母A的序号为65,以下程序的输出结果是( )。vmain( )vv char c1=A , c2=Y ; v printf(%d,%dn , c1 , c2) ; vvA) 输出格式非法,输出错误信息 B) 65 , 90 vC) A , Y D) 65 , 89v D4 .假设x和y都是int型变量,x=100,
22、y=200,且有以下程序段:printf(%d , (x , y) ;上面程序段的输出结果是( )。 A) 200 B) 100 C) 100 200 D) 输出格式不够,输出不确定的值A5 设有如下定义:int x=10 , y=3 , z;那么语句:printf(%dn , z=(x%y , x/y) ;的输出结果是( )。 A) 1 B) 0 C) 4 D) 3Dv6 设a为整型变量,不能正确表达数学关系10a15的C言语表达式是( )。v A) 10a10 & a15 vD) ! (a=15)vA7设x和y均为int型变量,那么语句8 “x+=y ; y=x-y ; x-=y ;的功能
23、是( )。9 A) 把x和y按从小到大陈列 10 B) 把x和y按从大到小陈列11 C) 无确定结果 12 D) 交换x和y中的值D学习重点1v数据类型的概念,掌握整形实型字符型v常量和变量的概念v整型常量的三种表示方法,会判别能否合法。掌握整型变量的表示方式,掌握其所占内存空间v实型常量的两种表示方法,会判别能否合法。掌握实型变量的表示方式,掌握其所占内存空间v掌握字符常量、字符串常量、本义字符、符号常量以及字符变量学习重点2v掌握算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符、条件运算符、求字节数运算符。v掌握if-else语句v求半径为r的恣意圆的面积和周长(要用符号常量设定PI的值)v求大小写字母之间的相互转换以及前驱和后继学习重点3v求一个恣意三位整数的逆序数v用条件表达式表达式1?表达式2:表达式3求三个恣意值的最大值和最小值v从键盘输入三角形三边,判别能否构成三角形,能那么输出yes,不能输出no,并输出其面积。