c语言一道题,设常量和变量都是表达式a值为1,表达式(2+a)^(~3)的值

在C语言中标识符是对常量和变量都是表达式、函数标号和其它各种用户定义对象的命名。标识符的长度可以是一个或多个字符绝大多数情况下,标识符的第一个字符必须是字母或下划线随后的字符必须是字母、数字或下划线(某些C语言编译器可能不允许下划线作为标识符的起始字符)。

下面是一些囸确或错误标识符命名的实例

ANSI标准规定,标识符可以为任意长度但外部名必须至少能由前8个字符唯一地区分。

这里外部名指的是在链接过程中所涉及的标识符其中包括文件间共享的函数名和全局常量和变量都是表达式名。这是因为对某些仅能识别前8个字符的编译程序洏言下面的外部名将被当作同一个标识符处理。

ANSI标准还规定内部名必须至少能由前31个字符唯一地区分内部名指的是仅出现于定义该标識符的文件中的那些标识符。

C语言中的字母是有大小写区别的因此count Count COUNT是三个不同的标识符。

标识符不能和C语言的关键字相同也不能和用戶已编制的函数或C语言库函数同名。

C语言中的常量是不接受程序修改的固定值常量可为任意数据类型,如下例所示:

C语言还支持另一种预萣义数据类型的常量这就是串。所有串常量括在双撇号之间例如"This is a test"。切记不要把字符和串相混淆,单个字符常量是由单撇号括起来的如'a'。

其值可以改变的量称为常量和变量都是表达式一个常量和变量都是表达式应该有一个名字(标识符),在内存中占据一定的存储单元在该存储单元中存放常量和变量都是表达式的值。请注意区分常量和变量都是表达式名和常量和变量都是表达式值这两个不同的概念所有的C常量和变量都是表达式必须在使用之前定义。定义常量和变量都是表达式的一般形式是:

这里的type必须是有效的C数据类型variable_list(常量和變量都是表达式表)可以由一个或多个由逗号分隔的多个标识符名构成。下面给出一些定义的范例

注意C语言中常量和变量都是表达式名與其类型无关。

整型常量及整常数它可以是十进制、八进制、十六进制数字表示的整数值。

这里digits可以是从0到9的一个或多个十进制数位苐一位不能是0。

在此digits可以是一个或多个八进制数( 0~7之间),起始0是必须的引导符

十六进制常数是下述形式:

这里hdigits可以是一个或多个┿六进制数(从0~9的数字,并从“ a”~“ f”的字母)

引导符0是必须有的,X即字母可用大写或小写

注意,空白字符不可出现在整数数字の间表2 - 3列出了整常数的形式。

表2-3 整常数的例子

十进制 八进制 十六进制

整常数在不加特别说明时总是正值如果需要的是负值,则负号“ -”必须放置于常数表达式的前面

每个常数依其值要给出一种类型。当整常数应用于一表达式时或出现有负号时,常数类型自动执行相應的转换十进制常数可等价于带符号的整型或长整型,这取决于所需的常数的尺寸

八进制和十六进制常数可对应整型、无符号整型、長整型或无符号长整型,具体类型也取决于常数的大小如果常数可用整型表示,则使用整型如果常数值大于一个整型所能表示的最大徝,但又小于整型位数所能表示的最大数则使用无符号整型。同理如果一个常数比无符号整型所表示的值还大,则它为长整型如果需要,当然也可用无符号长整型

在一个常数后面加一个字母l或L,则认为是长整型如10L、79L、012L、0115L、0XAL、0x4fL等。

前面已提到 C规定在程序中所有用箌的常量和变量都是表达式都必须在程序中指定其类型,即“定义”

可以看到不同类型的整型数据可以进行算术运算。在本例中是i n t型数據与unsingned int型数据进行相加减运算

实型常量又称浮点常量,是一个十进制表示的符号实数符号实数的值包括整数部分、尾数部分和指数部分。实型常量的形式如下:

在此digits是一位或多位十进制数字(从0~9)E(也可用e)是指数符号。小数点之前是整数部分小数点之后是尾数部汾,它们是可省略的小数点在没有尾数时可省略。

指数部分用E或e开头幂指数可以为负,当没有符号时视为正指数的基数为1 0如1.575E10表示为:1.575×101 0。在实型常量中不得出现任何空白符号

在不加说明的情况下,实型常量为正值如果表示负值,需要在常量前使用负号

下面是一些实型常量的示例:

所有的实型常量均视为双精度类型。

实型常量的整数部分为0时可以省略如下形式是允许的:

注意字母E或e之前必须有數字,且E或e后面指数必须为整数如e 3、2 . 1 e 3 . 5、. e 3、e

等都是不合法的指数形式。

实型常量和变量都是表达式分为单精度( f l o a t型)和双精度( d o u b l e型)对烸一个实型常量和变量都是表达式都应再使用前加以定义。如:

在一般系统中一个float型数据在内存中占4个字节( 3 2位)一个double型数据占8个字节(6 4位)。单精度实数提供7位有效数字双精度提供1 5 ~ 1 6位有效数字,数值的范围随机器系统而异

值得注意的是,实型常量是double型当把一个实型常量赋给一个float型常量和变量都是表达式时,系统会截取相应的有效位数例如

由于float型常量和变量都是表达式只能接收7位有效数字,因此朂后两位小数不起作用如果将a改为double型,则能全部接收上述9位数字并存储在常量和变量都是表达式a中

字符常量是指用一对单引号括起来嘚一个字符。如‘ a’,‘9’,‘!’字符常量中的单引号只起定界作用并不表示字符本身。单引号中的字符不能是单引号(’)和反斜杠( \)它们特有的表示法在转义字符中介绍。

在C语言中字符是按其所对应的A S C I I码值来存储的,一个字符占一个字节例如:

字符 ASCII码值(十进制)

注意字符'9'和数字9的区别,前者是字符常量后者是整型常量,它们的含义和在计算机中的存储方式都截然不同

由于C语言中字符常量是按整数( s h o r t型)存储的,所以字符常量可以像整数一样在程序中参与相关的运算例如:

字符串常量是指用一对双引号括起来的一串字符。雙引号只起定界作用双引号括起的字符串中不能是双引号( ")和反斜杠(\),它们特有的表示法在转义字符中介绍例如:


C语言中,字苻串常量在内存中存储时系统自动在字符串的末尾加一个“串结束标志”,即ASCII码值为0的字符NULL常用\0表示。因此在程序中长度为n个字符嘚字符串常量,在内存中占有n + 1个字节的存储空间

例如,字符串China有5个字符作为字符串常量" China "存储于内存中时,共占6个字节系统自动在后媔加上NU LL字符,其存储形式为: C h i n a NULL

要特别注意字符串与字符串常量的区别除了表示形式不同外,其存储性质也不相同字符'A'只占1个字节,而芓符串常量"A"占2个字节

转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的芓符如用于表示字符常量的单撇号( '),用于表示字符串常量的双撇号( ")和反斜杠( \)等转义字符用反斜杠\后面跟一个字符或一个仈进制或十六进制数表示。表2 - 4给出了C语言中常用的转义字符

转义字符 意义 ASCII码值(十进制)

\ddd 任意字符 三位八进制

\xhh 任意字符 二位十六进制

字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示即在这些字符前加上反斜杠。

在C程序中使用轉义字符\ d d d或者\ x h h可以方便灵活地表示任意字符\ d d d为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制A S C I I码值\ x后面跟两位十六進制数,该两位十六进制数为对应字符的十六进制A S C I I码值

使用转义字符时需要注意以下问题:

1) 转义字符中只能使用小写字母,每个转义字苻只能看作一个字符

2) \v 垂直制表和\f 换页符对屏幕没有任何影响,但会影响打印机执行响应操作

3) 在C程序中,使用不可打印字符时通常用轉义字符表示。

C语言允许将程序中的常量定义为一个标识符称为符号常量。符号常量一般使用大写英文字母表示以区别于一般用小写芓母表示的常量和变量都是表达式。符号常量在使用前必须先定义定义的形式是:

#define是C语言的预处理命令,它表示经定义的符号常量在程序运行前将由其对应的常量替换

定义符号常量的目的是为了提高程序的可读性,便于程序的调试和修改因此在定义符号常量名时,应使其尽可能地表达它所代表的常量的含义例如前面所定义的符号常量名PI(p),表示圆周率3.1415926此外,若要对一个程序中多次使用的符号常量的徝进行修改只须对预处理命令中定义的常量值进行修改即可。

字符常量和变量都是表达式用来存放字符常量注意只能存放一个字符,鈈要以为在一个字符常量和变量都是表达式中可以放字符串

字符常量和变量都是表达式的定义形式如下:

它表示c 1和c 2为字符常量和变量都昰表达式,各放一个字符因此可以用下面语句对c 1、c 2赋值:

c1、c2被指定为字符常量和变量都是表达式。但在第3行中将整数9 7和9 8分别赋给c 1和c 2,咜的作用相当于以下两个赋值语句:

因为'a'和'b'的ASCII码为97和98第4行将输出两个字符。"%c"是输出字符的格式程序输出:

它的作用是将两个小写字母轉换为大写字母。因为'a'的ASCII码为97而'A'为65,'b'为98'B'为66。从ASCII代码表中可以看到每一个小写字母比大写字母的ASCII码大32即'a'='A' + 32。

c语言入门基础知识有:c语言的命洺常量和变量都是表达式及赋值,基本的数据类型格式化输出语句,强制类型转换以及运算符等知识

编程时给常量和变量都是表达式戓者函数起的名字就是标识符C语言的标识符是不可以随便起名字的,必须遵守一定的规则C 语言规定,标识符可以是字母(A~Za~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须是字母或下划线在使用标识符时还有注意以下几点:

(1)标识符的长度最好不要超过8位,因為在某些版本的C中规定标识符前8位有效当两个标识符前8位相同时,则被认为是同一个标识符

(2)标识符是严格区分大小写的。例如Imooc和imooc 是两個不同的标识符

(3)标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文

(4)标识符不能是C语言的关键字。想了解更多C语言关鍵字的知识请查阅WIKI。

常量和变量都是表达式就是可以变化的量而每个常量和变量都是表达式都会有一个名字(标识符)。常量和变量嘟是表达式占据内存中一定的存储单元使用常量和变量都是表达式之前必须先定义常量和变量都是表达式,要区分常量和变量都是表达式名和常量和变量都是表达式值是两个不同的概念就好比:住在房间里的客人与房间号是两个不同的概念。

常量和变量都是表达式定义嘚一般形式为:数据类型 常量和变量都是表达式名;

多个类型相同的常量和变量都是表达式:数据类型 常量和变量都是表达式名, 常量和变量嘟是表达式名, 常量和变量都是表达式名...;

常量和变量都是表达式名和标识符的命名规范完全相同%d在后面会有详细讲解

注意:在定义中不允许連续赋值,如int a=b=c=5;是不合法的

常量和变量都是表达式的赋值分为两种方式:

C语言中的数据也是有类型的,C语言中数据类型可分为:基本数據类型,构造数据类型指针类型,空类型四大类如图所示:

格式化输出语句,也可以说是占位输出是将各种类型的数据按照格式化後的类型及指定的位置从计算机上显示。这样做的好处是有利于计算机能够准确的将我们所要类型数据给我们。

C语言中的常用格式化符:

在程序执行过程中值不发生改变的量称为常量。C语言的常量可以分为直接常量和符号常量

直接常量也称为字面量,是可以直接拿来使用无需说明的量,比如:

整型常量:13、0、-13;

字符常量:‘a’、‘M’

在C语言中可以用一个标识符来表示一个常量,称之为符号常量苻号常量在使用之前必须先定义,其一般形式为:

符号常量的标示符一般习惯使用大写字母常量和变量都是表达式的标示符一般习惯使鼡小写字母,加以区分下面是一个使用符号常量的小例子:

数据类型存在自动转换的情况,自动转换发生在不同数据类型运算时在编譯的时候自动完成。自动转换遵循的规则就好比小盒子可以放进大盒子里面一样下图表示了类型自动转换的规则。

强制类型转换是通过萣义类型转换运算来实现的其一般形式为:

 (数据类型) (表达式)

其作用是把表达式的运算结果强制转换成类型说明符所表示的类型,例如:

紸意:double类型的数据的格式符 %f或%lf

在使用强制转换时应注意以下问题:

1、数据类型和表达式都必须加括号如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int型之后再除2再与y相加了。

2、转换后不会改变原数据的类型及常量和变量都是表达式值只在本次运算中临时性转换。

3、强制转换后的运算结果不遵循四舍五入原则

那么C语言中又有哪些运算符呢?

C语言基本算术运算符如下表:

C语言中赋值运算符分为简单赋值运算符和复合赋值运算符之前我们已经接触过简单赋值运算符“=”号了,下面讲一下复合赋值运算符:

复合赋值运算符就是在简单赋值符“=”之前加上其它运算苻构成例如+=、-=、*=、/=、%=。

分析:定义整型常量和变量都是表达式a并赋值为3a += 5;这个算式就等价于a = a+5; 将常量和变量都是表达式a和5相加之后再赋值給a

注意:复合运算符中运算符和等号之间是不存在空格的。

下面是C语言中的关系运算符:

关系表达式的值是“真”和“假”在C程序用整數1和0表示。

下面我们看一下C语言中的逻辑运算符:

C语言中的三目运算符:“?:”其格式为:

以上就是c语言入门基础知识有哪些的详细内容,更多请关注php中文网其它相关文章!

我要回帖

更多关于 常量和变量都是表达式 的文章

 

随机推荐