1、 short int x(short x)-称为短整型,它规定的X的取值范围和int x基本一样,只不过取的数要比int x要小而已,因为它是用两个字节来存放X的(-32768+32767)。而上面的是用 四个字节来存放X的。long int x(long x)-称为长整型,其规定的X取值范围和int x一样,也是用四个字节来存放X的(输入时要用%ld、%Ld)。unsigned int x(unsigned x)-称为无符号整型,它规定了X只能取正整数,也是用四个字节来存放X的。unsigned short int x-称为无符号短整形,其十进制的 取值范围喂065535char x-称为字
2、符型,用一对单引号括起来的任意字符,包括字母字符、数字字符、转义字符等如:a、3、n等分析:a、A 、2、 2 、ab 、123float x-单精度浮点型,小数点后默认保留6位小数如:0.123、.123、123.等1.23e+2、1.23e2、1.23E2、.123e-2等(指数形式)用指数形式表示浮点数要注意三点:、e或E前后必须有数 、e或E后面必须是整数 、e或E的前后以及数字之间不得插入空格double x-双精度浮点型(输入时要用%lf或%Lf,输出可用%f、%lf、%Lf)(2)关于常量(整数、小数、字符型数据)5-可以认为是int型、short int、unsigned in
3、t都可以5L或5l-是long int型5h或5H-是short int型1.23-是double型a-97A-652-50123-(3)关于类型的强制转换问题-即把一个类型强制转换成其他类型#include”stdio.h”int x=5; /* 给变量X初始化*/float y,z;z=2.56; /*给变量Z赋值 */y=(float)x; /*对变量X的值进行强制转换 ,而X的类型和值都不改变 */printf(“%d,%fn”,x,y); /*5,5.000000 */x=(int)z; (或写成x=z) /* 对变量Z的值进行强制转换,且不进行四舍五入*/printf(“%d”,x
4、); /* 2 */a=(float)b+c;和a=(float)(b+c);有什么区别?关于强制转换要注意两点:一是待转换的类型一定要用小括号括起来;二是对后面变量的值进行转换,不改变原来变量的类型和值,并且不进行四舍五入。5 常用的算术运算符+、-、*、/、%、+=、-=、*=、/=、+、-、,等下面把需要特殊注意的运算符加以说明:/-除号, 若分子和分母都是整型,其结果也是整型(不进行四舍五入) 若分子或分母至少有一个是浮点型,其结果就是浮点型。%-取余,注意%的前后都必须是整型的,且结果的符号与被除数相同.举例:把两个两位的正整数按要求组成一个新数a=45,b=32,要求组成一个新数C
5、=4325int a=45,b=32,c;c=a/10*1000+b/10*100+b%10*10+a%10;如何取出1234的每个位上的数?(使用算术符%和 /)+=、-=、*=、/=-称为复合运算符(注意:两个符号不能分开)a=a+b;可以写成a+=b;a+=b-c 和a-=b+c可以写成什么呢?(由学生来回答)a+=a-=a+a (假设a=9),最后a=?(-18)(由老师来讲解)+、-称为自增自减运算符(单目的),很重要a+ 先用a,然后再把a加1+a 先把a加1,然后再用aa- 先用a,然后再把a减1-a 先把a减1,然后再用a见如下程序int a=3,b=6,c,d,e,f;c=b
6、+a+;d=a+(-b);e=-a+;f=a+b+c;printf(“a=%d,b=%d,c=%d,d=%d,e=%d,f=%dn”,a,b,c,d,e,f);答案:a=5,b=5,c=9,d=9,e=-4,f=19 , 逗号-称为逗号运算符,由逗号运算符构成逗号表达式,逗号表达式最后一项的值就是逗号表达式的值,逗号运算符的优先级最低。a=3,b=4,c=5;x=(a,b,c); 问:x=?(5),逗号表达式的值=?(5)x=a,b,c;(3),逗号表达式的值=?x=(a+,-b,a+b);(7),逗号表达式的值=?(7)x=a+,-b,a+b;x=(a+,-b,a+b+c+);(12),逗号
7、表达式的值=?(12)6 关于数据溢出问题,看下面例子:int a=-3;unsigned short x;x=a;(65533)7 分析:int a=b=c=1;对不? 领学生做书后的习题第三章顺序结构程序设计1 关于输出函数的使用 使用的格式: printf(“各种字符及汉字等”);/*printf要小写 */ 这种使用就是在屏幕上显示双引号中的内容 printf(“输出格式控制”,待输出的变量列表);这种使用就是在屏幕上以何种形式输出变量的值要重点掌握输出格式控制都有哪些?1 格式符:%d 以普通整型输出(不可以写成%D)%md 以普通整型输出,数据占m位,右对齐%+md 以普通整型输出
8、,数据占m位,右对齐(正数的前面有+号)%-md 以普通整型输出,数据占m位,左对齐%hd 以短整型输出%ld(或%Ld) 以长整型输出%u 以无符号整型输出%o 以八进制形势输出%x(或%X) 以十六进制形势输出%f 以单精度小数形势输出,点后6位小数%lf(或%Lf或%f) 以双精度小数形势输出,%m.nf 以单精度小数形势输出,点后n位小数,且进行四舍五入%.nf 以单精度小数形势输出,点后n位小数,且进行四舍五入%c 以字符形式输出%s 以字符串形式输出说明:以上的常用格式符必须和后面的变量一一对应,并且后面的 变量是什么类型前面就必须用相应的格式符例:int a=-2;unsigne
9、d int b=30;float c=3.1456;printf(“%d%u%5.2f”,a,b,c);输出结果是什么?(-230 3.15)普通字符普通字符原样输出,它不控制变量的输出。printf(“a=%d,b=%u,c=%5.2f”,a,b,c);转义字符n 回车且换行r 回车但不换行b 退一个字符t 走一个制表位(8个字符) 转译成 转译成” 转译成”% 转译成%ddd 转译成13位八进制所对应的ascii码值所代表的字符xdd 转译成12位十六进制所对应的ascii码值所代表的字符 老师举例子说明printf(“a=%d,b=%u,c=%5.2fn”,a,b,c); printf(
10、“%cn%cn”,56,x2a);问:以上输出结果是什么?int a=1,b=3;printf(“%d”,a,b);(1)printf(“%d”,(a,b); 输出结果是什么?(3)2 关于输入函数的使用格式:scanf(“输入格式控制”,变量地址列表);重点掌握都有哪些输入格式?(有格式符和普通字符,没有转义字符)%d 以普通整型输入%ld(%Ld) 以长整型输入%hd 以短整形输入%md 取整型的m位%u 以无符号型输入%o 以八进制输入%x(%X) 以十六进制输入%f 以单精度小数输入%lf(%Lf) 以双精度小数输入%mf 以单精度小数输入(但是不能规定它的精度。%5.2f )%c 以
11、字符型输入%s 以字符串型输入int a;float b;double c;long d;scanf(“%d%f%lf%ld”,&a,&b,&c,&d);假设让 a=23,b=2.6,c=12.66,d=12345在键盘上应如何输入?普通字符不影响输入,只是在输入时原样打上就 行把上例改为:scanf(a=%d,b=%f,c=%lf,d=%ld);那么应该如何输入?关于混合输入问题假设让a=23,b=k,c=12.5,d=pscanf(“%d%c%f%c”,&如何输入?(23k 12.5p或23k12.5p)关于跳过某个输入项的问题scanf(“%d%*d%f”,&x,&y);假设输入如下:2
12、0 30 2.5回车 (20) y=?(2.5)按照给定的长度输入scanf(“%3d%2d”,&2345678回车 (234) y=?(56)下面举三个综合的 例子:(让学生自己写写看行不?)例1:从键盘输入两个两位的正整数,第一个数的十位作为千位,个位作为十位;第二个数的十位作为百位,个位作为个位,组成一个新的数输出。 scanf(“%d%d”,&b); c=a/10*1000+b/10*100+a%10*10+b%10;printf(“nc=%d”,c);例2:从键盘输入两个数,然后把这两个数交换并输出int a,b,t; t=a;a=b;b=t;printf(“n%d,%d”,a,b)
13、;例3:输入一个double型数,保留两位小数,第三位小数进行四舍五入,然后输出。double x,y; scanf(“%lf”,&x); y=(int)(x*100+0.5)/100.0;printf(“ny=%.2f”,y);最后领学生做做书后习题第四章 选择(分支)结构程序设计1 在C语言中真和假的概念 真-若一个表达式成立则称为真;若值为非0也称为真。2关系运算符和关系表达式C语言提供六种关系运算符: = = (等于) !=(不等于)注意几点: 由两个符号组成的关系运算符不能分开 前四个运算符优先级相同且高于后两个 关系符低于算术运算符,但高于赋值运算符(=) 如:a+b=c相当于(a
14、+b)=c 关系表达式的值:一个是真(用1来表示);另一个是假(用0来表示) 注意“=“和”=“的区别 0x-5&0) y=x;if(x=0) /* 注意x=0 与x=0的区别 */ y=x-1;0&10) y=x+1;printf(“y=%dn”,y); /* 把结果输出到屏幕上 */在C语言中可以用if 语句和switch语句来实现程序的分支。(1) 用if 语句实现分支if(条件) 语句1即:条件为真,执行语句1、 if(条件) /* if 和 else是关键字,要小写 */ else 语句2条件为真,执行语句1,否则执行语句2注意以下几点:if 后面的条件可以是如下类型: 关系表达式,
15、如xy 逻辑表达式,如xy&yz 算术表达式,如x+y 赋值表达式,如x=y 变量,如x 常量,如-5 + 或出现在条件里,如x+如果语句1或语句2是一条语句,则一对花括号可以省略 if.else 是一条语句,else 不能单独出现,要注意else 与 if的搭配问题(既:else与其上面最近的且没使用的if搭配)下面举几个例子来说明:从键盘输入一个整数,判断其是奇数还是偶数?if(x%2=0) printf(“偶数”); else printf(“奇数”);下面程序的输出结果是什么?int a=2,b=-1,c=2;if(ab) if(b0) c=0; else c+=1;2 if(b3例4
16、:if(a+printf(“%d,%d”,c,a);2,3可以把条件a+b分成三个步骤来执行:第一步:先判断ab是真?还是假?第二步:把a加1,既a=a+1第三步:根据第一步的判断情况来决定程序的执行方向请同学们考虑:若改为+ab?a:b;y=?(2)ac?c:a;用switch开关语句来实现程序的分支switch() case 常量表达式1:语句; case 常量表达式2: case 常量表达式3: 。 default :语句 switch和case是关键字,要小写 switch后面括号里可以是以下内容: 整型常量或变量、字符常量或变量、关系表达式、逻辑表达式、整型的算术表达式,总之是整数
17、case要和后面的常量表达式用空格分开,且这个常量表达式必须是整型常量或字符常量,不是变量。 default可以放在任何位置,不一定在最后,也可以没有 可以用break 语句跳出switch举几个例子:程序输出结果是什么?int x=0,y=2,z=3;switch(x) case 0:printf(“*”); case 1:printf(“#”);break; default: printf(“!”);*#switch(y=2)case 1: printf(“*”);break case 2:printf(“%”);领学生做书后习题第五章循环结构程序设计如何计算1+2+3+4+。+100?这
18、就需要用到循环,C语言有三种循环结构,while()、 dowhile;、for()int i,sum=0; /* 定义所需的变量,并给变量sum初始化为0 */i=1;while(i;或写成while(x0);请说出循环条件和循环体?(2) dowhile()循环do 循环体 while(循环条件);先执行循环体中的语句,执行完后再去判断循环条件,若为真,则继续执行循环体,否则退出循环。do和 while是关键字,都要小写循环至少执行一次while()后面要有分号;(3) for循环for(表达式1;表达式2;表达式3)执行过程:先执行表达式1,然后判断表达式2是否为真?,若为假则退出循环;若为真则执行循环,再执行表达式3,然后再去判断表达式2是否为真?,若为真则继续执行循环体,再执行表达式3,直到表达式2为假三个表达式可有可无,但分号;必须有三个表达式的含义如下: 表达式1:一般是给变量赋值的是循环条件表达式3:是变量的变化重点弄明白循环条件是什么?如何结束循环,两种方式:用dowhile()循环 和for()循环来改写上面的例子:1 用dowhile()循环dosum+=i;100); /* 注意后面的分号一定要有 */2 用for()循环for(i=1;i=100;i+
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1