C语言教案第三讲_第1页
C语言教案第三讲_第2页
C语言教案第三讲_第3页
C语言教案第三讲_第4页
C语言教案第三讲_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、位运算符〔~、<<、>>、&、^、|〕2、位运算本卷须知〔1〕对象只能是整数或字符型数据。〔2〕进展位运算前,一定要先将数据转换成二进制数。〔3〕各个位运算符的优先级注:字符型数据参与位运算时,采用其ASCII码进展运算。第九节位运算23、位运算的规那么〔1〕~:0变1,1变0。〔2〕<<:a<<i表示a向左移动i位,右补0。〔3〕>>:a>>i表示a向右移动i位,左补符号位。〔4〕&:a&b a、b对应的二进制位,同时为1,那么结果即为1,否那么为0。〔5〕|:a|b a、b对应的二进制位,只要有一个为1,那么结果即为1,否那么为0。〔6〕^:a^b a、b对应的二进制位,一样为0,不同为1。注意:<<左移一位表示乘以2;>>右移一位表示除以23〔7〕位数不同的运算数之间的运算规那么a将两个运算数右端对齐b再将位数短的一个运算数往高位扩大,即:无符号数和正整数左侧用0补全,负数左侧用1补全,然后对补齐后位数相等的两个数按位进展位运算4本章考点:考点考核几率分值printf函数〔难点〕100%3~4putchar函数60%1~2scanf函数〔难点〕100%3~4getchar函数60%1~2第二章数据输出与输入

5第一节数据输出1、printf函数的一般格式:printf(格式输出控制,输出列表)〔1〕格式输出控制:需用一对双引号括起来,双引号内包含“格式说明〞和“普通字符〞两局部。〔2〕输出列表:需要输出的数据,多个数据之间用逗号隔开。printf(“%d,%o\n〞,m,n);printf(“m=%d,n=%o\n〞,m,n);62、格式说明“格式说明〞由“%〞和格式字符组成,如%d,%c,更多格式说明请参考P34,表2-1。它的作用是把输出数据转换为指定格式输出。注:在printf函数中,假设格式说明的个数少于输出项的个数,多余的输出项那么忽略不输出,这是二级C考试中经常出现的题目,〔参考P34,例2〕73、普通字符普通字符会原样输出,转义字符需要输出对应的字符。注:printf函数输出数据时,学生做题很容易忽略普通字符的输出。在二级C考试中,这类题目常出现。例:main(){inta,b;a=10;b=15;printf("a+b=%d",a+b);}8说明:〔1〕可以在%和格式字符之间参加一个整数来控制输出数据所占的宽度,如果整数指定的宽度大于实际输出数据的宽度,数据的输出采用右对齐的方式,左边自动补空格;反之,那么以输出数据的实际宽度输出。输出语句输出结果printf(“%d〞,258);258printf(“%2d〞,258);258printf(“%4d〞,258);□258printf(“%f〞,1.25);1.250000printf(“%10f〞,1.25);□□1.2500009〔2〕当在%和格式字符f之间参加“整数1.整数2〞来控制输出数据的格式时,“整数1〞用于指定输出数据占的总宽度,“整数2〞用于指定输出实数的小数局部的个数,当输出数据的小数个数多余“整数2〞指定的个数时,截去多余的数据,并对截去的第一位小数做四舍五入处理,当输出数据的小数个数少于“整数2〞指定的个数时,在小数的右边添0补足。输出语句输出结果printf(“%4.4f〞,3.15);3.1500printf(“%7.4f〞,3.15);□3.1500printf(“%2.0f〞,3.15);□310〔3〕如果在输出的八进制前添加0,或在输出的十六进制前添加0x,可在%号和格式字符0和x之间插入#号〔注意:#号对其他格式字符通常不起作用〕。输出语句输出结果printf(“%o〞,207);317printf(“%#o〞,207);0317printf(“%#x〞,207);0xce11特别说明:如果要输出“%〞时,那么应该在格式控制中用两个连续的“%〞,即“%〞来表示,也就是在格式控制中出现两个连续的“%〞,那么此时“%〞不再用来代表格式说明。例如:

printf(“%%d〞,258);不会输出整数258,在屏幕上看到的结果为“%d〞。因为“%%〞会输出一个“%〞,“d〞会按原样输出,这时因为没有格式说明,整数258无法输出到屏幕上124、数据输出实例〔inta=66;floatb=123.56;〕通过以下各输出语句,讲解输出函数的各种格式。〔1〕printf("%d",a); 66〔2〕printf("%3d",a); □66〔3〕printf("%-3d",a); 66□〔6〕printf("%-7.2f",b); 123.56□〔6〕printf("%c",a); B〔7〕printf("%x",a); 42135、putchar函数格式为:putchar(c)这里的c只能是字符型变量或字符型常量,即putchar函数只能输出字符型数据。例如putchar〔‘C’〕知指输出一个大写字母C到大屏幕上141、scanf函数的一般格式:scanf(格式输入控制,输入数据列表)格式输入控制与printf函数的格式输出控制一样。输入数据列表必须是一个或者是多个合法的地址表达式。scanf〔“%d〞,&a〕;scanf〔“%f〞,&a〕;scanf〔“%c〞,&a〕;参考书39页表2-5第二节数据输入函数152.说明:〔1〕当从键盘中输入多个数值数据时,输入数值数据之间用分隔符〔包括空格符、制表符和回车符,但是不包括逗号〕隔开。例如:intx,y,z;scanf(“%d%d%d〞,&x,&y,&z);如对x、y、z三个整型变量分别输入10、20、30,那么数据的输入格式如下:10<间隔符>20<间隔符>30<回车>16〔2〕在输入控制中,格式说明的类型与输入项的类型应该一一对应匹配。如果类型不匹配,系统并不给出出错信息,但不能得到正确的输入数据。当输入长整型数据〔long〕时,必须使用%ld格式;输入double数据时,必须使用%lf或%le,否那么不能得到正确数据。〔3〕与printf相似,在scanf函数中的格式字符前可以用一个整数指定输入数据所占的宽度,但对实数不能指定小数的位数。17〔4〕在输入控制中,格式说明的个数与输入项的个数应该一样。如果格式说明的个数少于输入项的个数,系统自动完毕输入,多余的数据没有被读入,但可以作为下一个输入操作的输入数据;如果格式说明的个数多余输入项的个数,系统同样自动完毕输入。例如:对于如下输入语句:intx,y,z;scanf(“%d%d〞,&x,&y,&z);如采用如下的输入形式:10<间隔符>20<间隔符>30<回车>,由于在输入控制中只有两个格式说明%d,那么只能对x和y变量分别输入10和20,而30不能被读入,只能作为以后其他输入的输入数据。18〔5〕跳过输入数据的方法。可以在格式字符与%之间参加一个“*〞使输入过程跳过输入的数据。例如如下程序:intx,y,z;scanf(“%d%*d%d%d〞,&x,&y,&z);如采用如下的输入形式:10<间隔符>20<间隔符>30<间隔符>40<回车>,那么系统会把10赋给变量x,跳过数据20,把30赋给变量y,把40赋给变量z。19〔6〕假设在scanf函数的输入控制中含有其他的字符,那么在输入时要求按一一对应的位置原样输入这些字符。例如:intx,y,z;scanf(“x=%dy=%dz=%d〞,&x,&y,&z);要求按如下的形式输入:X=10<间隔符>y=20<间隔符>z=30<回车>203注意:〔1〕scanf的输入分隔符不包含逗号,因此在使用键盘输入数据时,不能以逗号作为分隔符。如果需要以逗号作为分隔符,那么应该在格式控制字符串中使用逗号,例如:scanf(“%d,%d,%d〞&x,&y,&z);注意:在以上三个%d之间有逗号隔开。按要求输入格式如下:10,20,30<回车>21〔2〕一般情况下,scanf的格式控制字符串中不要包含其它非格式控制符,否那么往往容易让人混淆。也就是说,在scanf中只使用格式控制符,可以简化操作。列如:scanf(“%d%d%d〞&x,&y,&z);注意:在scanf的双引号中除了有3个%d外,没有其他任何字符。按要求如数格式如下:102030<回车>也可以输入一个数据就使用一个回车符号:10<回车>20<回车>30<回车>223〕使用scanf时,如果数据输入未能完成,那么程序一直等待键盘输入,此时用户应该完成数据输入。许多初学者在未输入数据的情况下回车,程序没有任何反映,好象死机了一样。这样是没有输入数据的缘故,只要用户输入数据即可。23〔4〕使用scanf给变量赋值和直接使用赋值语句给变量赋值,都能使变量的值发生改变,但二者具有本质的区别。使用赋值语句给变量赋值,是将某一个固定的值在程序源代码中写死,当源代码编译成可执行程序〔即用户软件〕后,用户无法改变变量的值,每次执行的结果均一样。而使用scanf给变量赋值,是在程序运行过程中,使用键盘动态的给变量赋值,这样当生成可执行程序后,用户可以根据自身的需求,给变量赋不同的值,得到不同的运行结果。24总结scanf函数的本卷须知〔1〕输入数值型数据时,各数值间的分隔符可以是:空格、Tab、回车。〔2〕输入字符型数据时,空格、Tab、回车都会被认为是字符,而不是分隔符。〔3〕“格式输入控制〞中的普通字符,在输入数据时一定要原样输入。〔4〕跳过输入数据,在%和格式字符之间加一个“*〞。254、数据输入实例〔charc1,c2; intc,d,e;〕〔1〕scanf("%d%d%d",&c,&d,&e);输入:5<空格>6<空格>7<回车>输入:5<Tab>6<Tab>7<回车>输入:5<回车>6<回车>7<回车> //以上三种输入方式,c、d、e的值分别都为5、6、7。〔2〕scanf(“%d,%d,%d〞,&c,&d,&e);输入:5,6,7<回车>假设输入第一个数据后,使用了任意一种分隔符,那么只确定输入了c的值为5,d和e为本身的初始值,假设没有初始值,那么为不定值。注:在C语言中,没有指定值的任何类型的变量,在输出时为不定值。26〔3〕scanf(“%d%*d%d%d〞,&c,&d,&e);输入:2<空格>3<空格>4<空格>5<回车> //c、d、e的值分别为2、4、5〔4〕scanf("%c%*c%*c%c",&c1,&c2);输入:a<空格>b4<回车> //c1、c2的值分别为a、4〔5〕scanf("%2d%d%d",&c,&d,&e);输入:123<空格>456<回车>

温馨提示

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

评论

0/150

提交评论