1.2.8数据类型与表达式 - 数据类型与表达式-专题辅导课件_第1页
1.2.8数据类型与表达式 - 数据类型与表达式-专题辅导课件_第2页
1.2.8数据类型与表达式 - 数据类型与表达式-专题辅导课件_第3页
1.2.8数据类型与表达式 - 数据类型与表达式-专题辅导课件_第4页
1.2.8数据类型与表达式 - 数据类型与表达式-专题辅导课件_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计课程辅导讲座

数据类型与表达式数据类型和表达式主要内容◆数据的存储和基本数据类型

◆常量和变量

◆数据的输入和输出◆类型转换◆表达式◆选择题训练与答疑数据类型基本数据类型整型int实型(浮点型)floatdouble字符型char构造数据类型数组、结构、联合、枚举指针类型空类型数据的存储整型数据设整数在内存中用2个字节存储10000001100000010000000110000001符号位1:负数0:正数数据的存储实型和字符型实型数据的存储-1.2345e+02符号位阶码

尾数字符型数据的存储一个字节存储ASCII码基本数据类型的表示方式整型有符号整型无符号整型数据长度int

unsigned[int]16或32位short[int]unsignedshort[int]16位long[int]unsignedlong[int]32位字符型char8位实型(浮点型)单精度浮点型float32位双精度浮点型double64位整数类型的取值范围int

32位

-231~231-1short[int]16位

-215~215-1long[int]32位

-231~231-1unsigned[int]32位

0

~232-1unsignedshort[int]16位

0

~216-1unsignedlong[int]32位

0

~232-1常量符号常量整型常量、实型常量、字符型常量

变量

变量的定义和使用常量和变量整型常量三种表现形式:十进制整数:正、负号,0-9,首位不是0八进制整数:正、负号,0-7,首位是016进制整数:正、负号,0-9,a-f,A-F,前缀是0x,0X实型常量实数的表示浮点表示法0.123123.412..12科学计数法6.026E-271.2e+301E-5字符型常量字符常量'a''A''9''+''$'ASCII字符集列出所有可用的字符(256个)每个字符:惟一的次序值(ASCII码)'0'-'9'升序排列'A'-'Z''a'-'z'转义字符反斜杠后跟一个字符或数字字符常量,代表一个字符

'\n'

'\101'

'\x41'

'A'所有字符都可以用转义字符表示变量在程序运行过程中,其值可以被改变的量。变量必须先定义,后使用定义变量时要指定变量名和数据类型变量应该先赋值,后引用整型数据的输入和输出实型数据的输入和输出字符型数据的输入和输出数据的使用输入和输出

数据的输入输出函数调用◆printf

(格式控制,输出参数1,...,输出参数n);◆scanf

(格式控制,输入参数1,...,输入参数n);◆getchar()和putchar(char)格式控制说明%…十进制八进制十六进制int

%d%o%xlong%ld%lo%lxunsigned%u

%o%xunsignedlong%lu

%lo%lxfloat:%f或%e以小数或指数形式I/O一个单精度浮点数double:%lf或%le以小数或指数形式I/O一个双精度浮点数char:%cI/O一个字符应用举例:字符运算◆大小写英文字母转换

'b'-'a'='B'-'A'……'z'-'a'='Z'-'A''m'

'M''a'-'A''A'-'a''0''m'-'a'+'A'='M''M'-'A'+'a'='m''8'-'0'=88+'0'='8'◆数字字符和数字转换

9-0='9'-'0''9'=9+'0''8'8不同类型数据的混合运算,先转换为同一类型,再运算。◆

自动类型转换◆

强制类型转换数据类型的转换自动类型转换(非赋值运算)◆水平方向:自动◆垂直方向:低高

高double

float

unsignedlong

long

unsigned

unsignedshort

低int

char,short强制类型转换强制类型转换运算符

(类型名)表达式为什么要用强制类型转换?◆自动类型转换(隐式转换)不能达到目的:

floatx; x%3不合法,而(int)x%3合法。◆在函数调用时,使实参与形参类型一致。

intn;

sqrt((double)n);强制类型转换示例

#include<stdio.h>int

main(void){

inti;doublex;

x=3.8;i=(int)x;

printf("x=%f,i=%d\n",x,i);

printf("(double)(int)x=%f\n",(double)(int)x);

printf("xmod3=%d\n",(int)x%3);

return0;}注意:在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化!

x=3.800000,i=3(double)(int)x=3.000000xmod3=0表达式:

运算符+运算对象(操作数)◆运算符:具有运算功能的符号◆运算对象:常量、变量和函数等表达式类型:

算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式和逗号表达式等

表达式运算符的优先级和结合性()!-+++--(类型名)sizeof* /% + -<<=>>===!=&&||?:=+=-=*=/=%=,运算符汇总◆算术运算符单目+-++--双目+-*/%◆赋值运算符=◆复合赋值运算符

expr1op=expr2<==> expr1=(expr1)op(expr2) where,expr1mustbeavariable.where,opisoneof +,-,*,/,%,<<,>>,&,^,|

◆关系运算符<<=>>=

==!=结果:真1假0

◆逻辑运算符&&||!逻辑运算结果:1(真)

0

(假)判断逻辑量的真假:非0

(真)

0

(假)◆位运算位逻辑运算~

&

^

|移位运算<<>>

◆长度运算符

sizeof◆条件表达式exp1

?

exp2

:

exp3◆逗号表达式表达式1,

表达式2,……,

表达式n程序解析大小写字母转换

#include<stdio.h>int

main(void){

charch;

printf("inputcharacters:");

ch=getchar();

while(ch!='\n'){

if(ch>='A'&&ch<='Z')

ch=ch-'A'+'a';

elseif((ch>='a'&&ch<='z')

ch=ch-'a'+'A';

putchar(ch);

ch=getchar();}

rerurn0;}DADCDBDDACADDACDACBinput10characters:Reold123?rEOLD123?

while((ch=getchar())!='\n')(ch=getchar())!='\n'ch=getchar()!='\n'等价吗?选择题训练与答疑◆下列运算符中,优先级最低的是_____。

A、*B、!=C、+D、=◆若变量已正确定义,表达式(j=3,j++)的值是_____。A、3B、4C、5D、0◆已知字符‘a’的ASCII码为97,执行下列语句的输出是_____。printf("%d,%c",’b’,’b’+1);A、98,bB、语句不合法C、98,99D、98,c◆判断i和j至少有一个值为非0的表达式是_____。

A、i!=0&&j!=0B、i!=0||j!=0C、!(i==0||j==0)D、i&&j

◆以下选项中不正确的整型常量是_____。A.12LB.-10C.1,900D.123U◆表达式______的值是0。A.3%5B.3/5.0C.3/5D.3<5◆表达式!(x>0||y>0)等价于_____。A.!x>0||!y>0B.!(x>0)||!(y>0)C.!x>0&&!y>0D.!(x>0)&&!(y>0)◆若变量已正确定义并赋值,表达式______不符合C语言语法。A.4&&3B.+aC.a=b=5D.int(3.14)◆若变量已正确定义,执行语句scanf("%d%d%d",&k1,&k2,&k3);时,______是正确的输入。

A.203040B.203040C.20,3040D.20,30,40◆执行语句printf("______",2);将得到出错信息。A.%dB.%oC.%xD.%f◆若x是整型变量,表达式(x=10.0/4.0)的值是_____。A.2.5B.2.0C.3D.2◆若变量已正确定义并赋值,表达式-k++等价于______。A.-(k++)B.(-k)++C.-(k+1)D.-(++k)◆在C语言程序中,在函数内部定义的变量称为______。A.全局变量B.外部变量C.局部变量D.内部变量◆下列运算符中,优先级从高到低依次排列为_____。A.!,&&,||B.||,&&,!C.&&,||,!D.&&,!,||◆下列那个选项不能作为字符常量()A.”1”

温馨提示

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

评论

0/150

提交评论