顺序程序设计第3讲-c语句和输入输出_第1页
顺序程序设计第3讲-c语句和输入输出_第2页
顺序程序设计第3讲-c语句和输入输出_第3页
顺序程序设计第3讲-c语句和输入输出_第4页
顺序程序设计第3讲-c语句和输入输出_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

第3章顺序程序设计3

——C语句和输入输出上回讲到。。。类型——存储长度+存储方式整型int,短整型short,长整型long字符型char,可以与整型无条件转换(ASCII码)浮点型单精度float,有效数字6位;双精度double,有效数字15位运算符——算术,逻辑,位运算。。。自增++,自减—前缀式(++i)——先自加,后赋值;后缀式(i++)——先赋值,后自加优先级:括号最高,逗号/赋值最低结合性:大部分都是从左到右,赋值运算符是从右到左上回讲到。。。自动的类型转换:向高级转(3+2.5+’a’double型)强制类型转换:a=(int)b;课前小练1、写出下面计算式的值:1)16–13%102)14/3–23)(2+6)/(12–9)2、设inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是多少?3、已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’–‘3’的值为多少?3.3C语句组成C程序的语句intmain(){inta,b,n;b=10;n=0;do{scanf("%d",&a);if(a>b){

printf("Toobig!\n");

n++;}elseif(a<b){

printf("Toosmall!\n");

n++;}else{

;

break;}}while(n<10);

return0;}3.3C语句组成C程序的语句intmain(){inta,b,n;b=10;n=0;do{scanf("%d",&a);if(a>b){

printf("Toobig!\n");

n++;}elseif(a<b){

printf("Toosmall!\n");

n++;}else{

;

break;}}while(n<10);

return0;}声明语句3.3C语句组成C程序的语句intmain(){inta,b,n;b=10;n=0;do{scanf("%d",&a);if(a>b){

printf("Toobig!\n");

n++;}elseif(a<b){

printf("Toosmall!\n");

n++;}else{

;

break;}}while(n<10);

return0;}表达式语句表达式

+分号由一个或多个操作数通过操作符组合而成算术表达式:a+b逻辑表达式:a>b赋值表达式:a=b逗号表达式:a,b……3.3C语句组成C程序的语句intmain(){inta,b,n;b=10;n=0;do{scanf("%d",&a);if(a>b){

printf("Toobig!\n");

n++;}elseif(a<b){

printf("Toosmall!\n");

n++;}else{

;

break;}}while(n<10);

return0;}函数调用语句函数调用

+分号3.3C语句组成C程序的语句intmain(){inta,b,n;b=10;n=0;do{scanf("%d",&a);if(a>b){

printf("Toobig!\n");

n++;}elseif(a<b){

printf("Toosmall!\n");

n++;}else{

;

break;}}while(n<10);

return0;}空语句分号3.3C语句组成C程序的语句intmain(){inta,b,n;b=10;n=0;do{scanf("%d",&a);if(a>b){

printf("Toobig!\n");

n++;}elseif(a<b){

printf("Toosmall!\n");

n++;}else{

;

break;}}while(n<10);

return0;}控制语句选择:if,switch循环:for,while,do…while,continue,break特殊:return,goto3.3C语句组成C程序的语句intmain(){inta,b,n;b=10;n=0;do{scanf("%d",&a);if(a>b){

printf("Toobig!\n");

n++;}elseif(a<b){

printf("Toosmall!\n");

n++;}else{

;

break;}}while(n<10);

return0;}复合语句花括号的内容语句的集合3.3C语句除了控制语句,C语句都带分号,以分号结束#defineP1,#include<>

都不是C语句最常用的C语句:赋值语句——表达式语句a=b;(最基本)输入输出语句——函数调用语句printf();,scanf();3.3.2最基本的语句——赋值语句赋值运算符:“=”赋值表达式的一般形式:左值

=

右值赋值语句:赋值表达式+分号例:√

a

=

4;a

=

b;a

=

a+b;a

=

a<b;

×

3

=

a;a+b=

c;

constinta;a=3;在运算符左边只能是可改变的量——变量在运算符右边常数或变量表达式;×3.3.2最基本的语句——赋值语句复合运算符:左值

OP=右值

左值

=左值

OP右值常见的OP:+=,-=,*=,/=,%=…假设a=2,b=3,c=4:(1)a+=3;<->a=a+3; (2)a-=b;<->a=a–b; (3)a*=b+c;<->a=a*(b+c); a=5a=-1a=143.3.2最基本的语句——赋值语句例1:设intk=7,x=12;则执行完语句x%=k–k%5;后x的值为多少?解:(1)k%5=2(2)k-2=5(3)x%=5x=x%5x=12%5=23.3.2最基本的语句——赋值语句赋值过程中的类型转换

if(左值和右值类型相同)

直接赋值;else

自动将右值类型转换为左值类型;

3.3.2最基本的语句——赋值语句赋值过程中的类型转换

if(左值和右值类型相同)

直接赋值;else

自动将右值类型转换为左值类型;

整型浮点型字符型整型=字符型将字符对应的ASCII码赋给整型变量3.3.2最基本的语句——赋值语句赋值过程中的类型转换

if(左值和右值类型相同)

直接赋值;else

自动将右值类型转换为左值类型;

整型浮点型字符型字符型=整型将整数作为ASCII码赋给字符型变量,超出范围截断处理3.3.2最基本的语句——赋值语句赋值过程中的类型转换

if(左值和右值类型相同)

直接赋值;else

自动将右值类型转换为左值类型;

整型浮点型字符型整型=浮点型将浮点型取整后赋给整型变量3.3.2最基本的语句——赋值语句赋值过程中的类型转换

if(左值和右值类型相同)

直接赋值;else

自动将右值类型转换为左值类型;

整型浮点型字符型浮点型=整型数值不变,直接转型(不失真)3.3.2最基本的语句——赋值语句赋值过程中的类型转换

if(左值和右值类型相同)

直接赋值;else

自动将右值类型转换为左值类型;

整型浮点型字符型浮点型

字符型先转为整型,再转换为相应的类型3.3.2最基本的语句——赋值语句赋值时的数据溢出问题一个变量被赋予一个超出其数据类型表示范围的数值溢出会使运行结果偏差,但不会引起编译错误,且不会有错误提示(难发现)例:shorta=50000;//a的有效范围是[-32768,32767]printf(“a=%d\n”,x);

//50000超出short能表示的范围,产生数据溢出3.3.2最基本的语句——赋值语句变量初始化实质上也是赋值的过程定义但没赋值的变量,在使用时不会报错,但会得到一个随机的值3.3.2最基本的语句——赋值语句变量初始化时可以只对部分变量初始化例:inta=0,b,c=-1;

但不能这样写:inta=b=c=1;

要写成:inta,b,c;a=b=c=1;//赋值运算符右结合3.4数据的输入和输出键盘硬盘扫描仪输入输入设备显示器打印机输出设备计算机程序输出3.4数据的输入和输出C语言不提供输入输出函数(加载函数库,如stdio.h,P387表3)stdio.h里的输入和输出:输入:scanf(格式化输入),getchar(字符输入),gets(字符串输入),fscanf(格式化文件输入),fread(二进制流文件输入)输出:printf(格式化输出),putchar(字符输出),puts(字符串输出),fprintf(格式化文件输出),fwrite(二进制流文件输出)3.4数据的输入和输出printf——格式化输出函数(输出到DOS界面)一般形式格式控制:用双引号界定,描述输出的内容(包括普通字符,转义字符和格式符,如%d)输出列表:与格式控制中的格式符一一对应的常量或变量列表,用逗号分隔例:printf(“Character,文字,\n\\\b,%d%c%f”,a,b,c);printf(格式控制,输出列表)3.4数据的输入和输出常用的控制格式(P74表3-6)(1)%d——十进制整型(int型)格式符,%ld(long型),%u(无符号整型)注意:当输出列表中的变量类型与控制格式中的输出类型不一致时同类型之间自动转换不同类型之间产生“数据溢出”字符型属于整型,自动转换浮点型不能以整型输出(存储结构不同)不会报错!!3.4数据的输入和输出常用的控制格式(P74表3-6)(2)%c——字符型格式符与整型可以相互转换,与其它类型不可以3.4数据的输入和输出常用的控制格式(P74表3-6)(3)%s——字符串格式符输出字符串数组3.4数据的输入和输出常用的控制格式(P74表3-6)(4)%f——浮点型格式符(不管是float型还是double型都采用%f进行输出)整型数据不能用浮点型格式输出(存储格式不同)默认保留小数点后6位3.4数据的输入和输出常用的控制格式(P74表3-6)(5)%e——指数形式的浮点型格式符实质上是用指数形式输出浮点数,不能输出整型3.4数据的输入和输出格式附加字符——描述输出时的数据长度m——输出的数据长度。

当m小于数据实际长度时,按实际长度输出;

当m大于数据实际长度时,在数据前加空格填充。%[-/m/.n][d/c/s/f/e…]3.4数据的输入和输出.n——数字(小数点后)位数(1)对整型%d,n表示输出的数字位数

当n小于数据实际位数,按实际位数输出;

当n大于数据实际位数,在整数最高位前加0填充(2)对字符型%c,n没有效果!!(3)对字符串型%s,n表示要输出的字符个数,只有小于实际字符串长度时有效

3.4数据的输入和输出.n——数字(小数点后)位数(4)对浮点型%f,n表示小数点后位数

当n大于数据实际小数点位数,输出时在末数数后加0(5)对指数形式的浮点型%e,n表示底数的小数点后位置有四舍五入的效果!!!3.4数据的输入和输出-——左对齐。不加-时,输出默认为右对齐一个综合的例子:加-后,填充的空格加到数据后面3.4数据的输入和输出3.4数据的输入和输出scanf——格式化输出函数(输出到DOS界面)一般形式格式控制,基本上跟printf一样%f——输入float型浮点数%lf——输入double型浮点数scanf(格式控制,地址列表)3.4数据的输入和输出地址:变量存放数据的地方(内存的某个位置)&——提取变量的内存地址(&a=102,&b=105…)123‘A’1.5变量a变量b变量c101102103104105106107108109内存地址每次运行,变量的地址不一样,但数值一样3.4数据的输入和输出scanf的输入格式——双引号内怎么写,输入时就要求怎么输入(1)输入1(2)输入2(3)输入33.4数据的输入和输出输入字符时需要注意的事(空格)例1字符间用其它符号隔开例2字符不隔开,但输入没有空格例3字符不隔开,但输入有空格空格也算一个字符!!!3.4数据的输入和输出不同类型数据输入时,程序会依次截取符合条件的部分作为输入3.4数据的输入和输出不同类型数据输入时,程序会依次截取符合条件的部分作为输入3.4数据的输入和输出不同类型数据输入时,程序会依次截取符合条件的部分作为输入3.4数据的输入和输出不同类型数据输入时,程序会依次截取符合条件的部分作为输入3.4数据的输入和输出不同类型数据输入时,程序会依次截取符合条件的部分作为输入3.4数据的输入和输出不同类型数据输入时,程序会依次截取符合条件的部分作为输入3.4数据的输入和输出字符的输入输出(1)字符输入函数:getchar()调用方式:c=getchar();相当于scanf(“%c”,&c);getchar没有参数,返回值c为从键盘获得的字符数据(2)字符输出函数:调用方式:putchar(c);相当于printf(“%c”,c);putchar参数是要输出的字符常量或变量,返回值就是要输出的c,一般不用putchar不包含换行字符!!方案一:3.4数据的输入和输出例:从键盘输入BOY三个字符,然后输出到屏幕上。要求用getchar和putchar函数实现

方案二:省去了变量的定义作业1.求解一元二次方程ax2+bx+c=0。要求输出三个实数a,b和c,输出两个根x1和x2,结果保留2位小数。提示:1)计算开平方的函数为sqrt,调用方式是:a=sqrt(b);其中,b为实数,a为开方后的结果,也是实数。调用sqrt需要包含数学运算头文件math.h,即#include<math.h>2)要加入对方程是否有实数根进行判断,没有实数根输出相应提示,然后退出程序2.输入一个单词(五个字母),输出它的密文。加密方法是用每个字母后面的第5个字母代替当前字母。

如:输入China,输出Hmnsf总结1、常量与变量定义与区别?如何定义变量?变量的取名有什么限制?如何在定义时初始化?常变量与变量和常量的关系?2、数据类型有哪些常用的类型?各常用类型的长度?整型与字符型的关系?数据溢出的原因?类型转换:自动转换,强制转换总结3、运算符自加++,自减—(前缀式++i与后缀式i++的区别)优先级和结合性4、赋值语句赋值运算符对左、右值的要求?复合赋值运算符的正确计算方法?赋值时的类型转换?赋值时的数据溢出问题?5、输入输出语句有哪些格式符?每个修饰符的含义和效果?总结输入函数格式控制与输入的对应关系?针对字符输入输出的函数?习题讲解知识点:常量与变量例1C语言中的标识符只能由3种字符组成,分别是(1),(2)和(3)解:(1)字母;(2)数字;(3)下划线例2下面4个选项中,全是非法常量的选项是()A)‘as’B)‘\\’C)-0x18

温馨提示

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

评论

0/150

提交评论