云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C语言资料

C语言资料

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 4:46:00

char < int < float < double

即左边级别\低\的类型向右边转换。具体地说,若在表达式中优先级最高的数据是double型,则此表达式中的其他数据均被转换成double型,且计算结果也是double型;若在表达式中优先级最高的数据是float型,则此表达式中的其他数据均被转换成float型,且计算结果也是float型。

在做赋值运算时,若赋值号左右两边的类型不同,则赋值号右边的类型向左边的类型转换;当右边的类型高于左边的类型时,则在转换时对右边的数据进行截取。

除自动转换外,还有强制转换,表示形式是: ( 类型 )(表达式);

第2章 运算符与表达式 2.1 C语言运算符简介

2.1.1 C运算符简介

C语言的运算符范围很宽,几乎把所有的基本操作都作为运算符处理,具体运算符见表2-1。

另外,按参与运算的对象个数,C语言运算符可分为:单目运算符 (如 !)、双目运算符 (如+,- )和三目运算符 (如 ? : )。 2.1.2 运算符的结合性和优先级

(1)在C语言的运算符中,所有的单目运算符、条件运算符、赋值运算符及其扩展运算符,结合方向都是从右向左,其余运算符的结合方向是从左向右。

(2)各类运算符优先级的比较:

初等运算符>单目运算符>算术运算符(先乘除后加减)>关系运算符>逻辑运算符(不包括\!\)>条件运算符>赋值运算符>逗号运算符。

说明:以上优先级别由左到右递减,初等运算符优先级最高,逗号运算符优先级最低。 2.1.3 强制类型转换运算符

可以利用强制类型转换符将一个表达式转换成所需类型,其一般形式为:

(类型名)(表达式) 例如:

(char)(x+y);,将(x+y)的值强制转换为字符型。

(double)(m*n);,将(m*n)的值强制转换为double类型。

表达式应用括号括起来,如果写成(char)x+y,则表示只将x转化为字符型,然后与y相加。

2.1.4 逗号运算符和逗号表达式

用逗号运算符将几个表达式连接起来,例如a=b+c, b=a*a , c=a+b , 称为逗号表达式。 一般形式为:

表达式1 ,表达式2 ,表达式3 , …,表达式n

逗号表达式的求解过程是:先求解表达式1,然后依次求解表达式2,直到表达式n的值。整个逗号表达式的值就是表达式n的值。需要注意的是,逗号运算符是所有运算符中级别最低的。

2.2 算术运算符和算术表达式

2.2.1 基本的算术运算符

(1)+(加法运算符或正值运算符,如2+6)。 (2)-(减法运算符或负值运算符,如6-3)。 (3)*(乘法运算符,如2*8)。 (4)/(除法运算符,如6/5)。

(5)%(模运算符或称求余运算符,%两侧均应为整型数据,如9%7的值为2)。

需要说明的是:两个整数相除的结果为整型,如5/3的结果值为1,舍去小数部分,如果参加+、-、*、/ 运算的两个数中有一个数为实数,则结果是double类型。 2.2.2 算术表达式和运算符的优先级与结合性

算术表达式是用算术运算符和括号将运算量(也称操作数)连接起来的、符合C语言语法规则的表达式。运算对象包括函数、常量和变量等。

在计算机语言中,算术表达式的求值规律与数学中的四则运算的规律类似,其运算规则和要求如下。

(1)在算术表达式中,可使用多层圆括号,但括号必须配对。运算时从内层圆括号开始,由内向外依次计算各表达式的值。

(2)在算术表达式中,对于不同优先级的运算符,可按运算符的优先级由高到低进行运算,若表达式中运算符的优先级相同,则按运算符的结合方向进行运算。

(3)如果一个运算符两侧的操作数类型不同,则先利用自动转换或强制类型转换,使两者具有相同类型,然后进行运算。 2.2.3 自增自减运算符

作用:使变量的值增1或减1。

如:++i,--i (在使用i之前,先使i的值加1、减1)。

i++,i-- (在使用i之后,使i的值加1、减1)。

(1)只有变量才能用自增运算符 (++)和自减运算符(--),而常量或表达式不能用,如10++或(x+y)++都是不合法的。

(2)++和--的结合方向是\自右向左\,如 -i++ ,i的左边是负号运算符,右边是自增运算符,负号运算和自增运算都是 \自右向左\结合的,相当于 -(i++)。

在循环语句中常用到自增(减)运算符,在指针中也常用到该运算符,考生要弄清楚\和\及\和\的区别,防止用错。

2.3 赋值运算符与赋值表达式

2.3.1 赋值运算符和赋值表达式

赋值符号 \就是赋值运算符,作用是将一个数据赋给一个变量或将一个变量的值赋给另一个变量,由赋值运算符组成的表达式称为赋值表达式。一般形式为:

变量名 = 表达式

在程序中可以多次给一个变量赋值,每赋一次值,与它相应的存储单元中的数据就被更新一次,内存中当前的数据就是最后一次所赋值的那个数据。 2.3.2 复合的赋值运算符

在赋值运算符之前加上其他运算符可以构成复合赋值运算符。其中与算术运算有关的复合运算符是:+=,-=,*=,/=,%= 。

两个符号之间不可以有空格,复合赋值运算符的优先级与赋值运算符的相同。表达式n+=1等价于n=n+1,作用是取变量n中的值增1再赋给变量n,其他复合的赋值运算符的运算规则依次类推。

如求表达a+=a-=a*a 的值,其中a的初值为12 。

步骤:(1)先进行\运算,相当于a=a-a*a=12-144=-132 。

(2)再进行\运算,相当于 a=a+(-132)=-132-132=-264 。

2.3.3 赋值运算中的类型转换

如果赋值运算符两侧的类型不一致,在赋值前系统将自动先把右侧表达式求得的数值按赋值号左边变量的类型进行转换(也可以用强制类型转换的方式),但这种转换仅限于

某些数据之间,通常称为\赋值兼容\。对于另一些数据,例如,后面将要讨论的地址值,就不能赋给一般的变量,称为\赋值不兼容\。常用的转换规则如下:

(1)当实型数据赋值给整型变量时,将实型数据的小数部分截断。

如int x;,执行\;\后,x的值为5。

(2)当整型数据赋值给实型变量时,数值不变,但以浮点数形式存储到实型变量中。

如float x=45;

输出x的结果为45.00000。

(3)当double类型数据赋值给float型变量时,取其前面7位的有效数字,存放到float型变量的存储单元中,这时数值可能溢出。

(4)当字符型数据赋值给整型变量时,由于整型变量占两个字节,而字符只占一个字节,只需将字符数据(8位)放到整型变量低8位中,对该整型变量最高位进行符号扩展,其他位补零。

(5)当整型、短整型、长整型数据赋值给一个char类型变量时,将其低8位原封不动地送到char类型变量中(即截断)。

2.4 位运算

在计算机中,数据都是以二进制数形式存放的,位运算就是指对存储单元中二进制位的运算。

2.4.1 位运算符和位运算

C语言提供6种位运算符,见表2-2。

表2-2 位运算符

说明:(1)位运算中除\以外,均为双目运算符,要求两侧各有一个运算量。

(2)运算量只能是整型或字符型数据,不能为实型数据。

2.4.2 位运算举例

【例1】下面程序的输出结果是。 #include main() {

char x=040;

printf(\}

例题解析:左移运算是每移一位数值将放大一倍,x为八进制数的40,即十进制数的32,程序是以十进制数方式输出移位后的x,等于64。实际上,按二进制数展开后也可得到正确结果。八进制数的40转换成二进制数为00100000 ,再按题意左移一位后得到01000000 ,最后按printf语句中的\格式输出其十进制数形式为64。

【例2】设二进制数a是00101101 ,若通过异或运算a∧b 使a的高4位取反,低4位不变,则二进制数b是。

例题解析:异或运算常用来使特定位翻转,只要使需翻转的位与1进行异或操作就可以了,因为原数中值为1的位与1进行异或运算得0 ,原数中值为0的位与1进行异或运算结果得1。而与0进行异或的位将保持原值。异或运算还可用来交换两个值,不用临时变量。如 int a=3 , b=4;,想将a与b的值互换,可用如下语句实现:

a=a∧b; b=b∧a; a=a∧b;

所以本题的答案为: 11110000 。

【例3 】位运算符 & |~<< >> ∧ 按优先级从高到低排列的顺序是。

例题解析:位运算符中求反运算\优先级最高,而左移和右移相同,居于第二,接下来的顺序是按位与 \、按位异或 \∧\和按位或 \。 因此题中的正确顺序为~<< >> & ∧ | 。

第3章 基本语句 3.1 C语句概述

C语言的语句用来向计算机系统发出指令,一个实际的源程序通常包含若干语句,这些语句用来完成一定的操作任务。

C程序中的语句,按照它们在程序中出现的顺序依次执行,由这样的语句构成的程序结构称为顺序结构。 3.1.1 C语句分类 3.1.1.1 控制语句

控制语句完成一定的控制功能,C语言共有9种控制语句,见表3-1。

表3-1 控制语句

说明:以上语句中\表示一个条件,\ 3.1.1.2 其他类型语句

函数调用语句(由函数调用加一个分号构成),如 scanf(\;。 表达式语句(由一个表达式;构成一个语句),如 a=b;。 3.1.1.3 空语句

C语言中所有语句都必须由一个分号( ;)结束,如果只有一个分号如main(){;},这个分号也是一条语句,称为空语句,程序执行时不产生任何动作,但表示存在着一条语句。 3.1.1.4 复合语句

在C语言中花括号\不仅可以用做函数体的开始和结束标志,同时也常用做复合语句的开始和结束标志,复合语句也可称为 \语句体\。

在C语言中,任何表达式都可以加上分号构成语句,如 \。随意加\;\会导致很多逻辑上的错误,要慎用,不要乱用。复合语句中最后一个语句中最后的分号不能忽略不写。

3.2 赋值语句

前面已经介绍赋值语句是由赋值表达式和末尾的分号 (;)构成的。这里要提醒读者注意:\与\是两个不同的运算符,前者才是赋值运算符,而后者是关系运算符,用来进行条件判断,不能把二者混为一谈。如\,功能是把数值2放到变量i中,而i==2是判断变量i的值是否为2。\在程序执行时,首先取出j中的值,执行加数值1的操作后再把新值放回到j中。

3.3 输入输出概念及其实现

搜索更多关于: C语言资料 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

char < int < float < double 即左边级别\低\的类型向右边转换。具体地说,若在表达式中优先级最高的数据是double型,则此表达式中的其他数据均被转换成double型,且计算结果也是double型;若在表达式中优先级最高的数据是float型,则此表达式中的其他数据均被转换成float型,且计算结果也是float型。 在做赋值运算时,若赋值号左右两边的类型不同,则赋值号右边的类型向左边的类型转换;当右边的类型高于左边的类型时,则在转换时对右边的数据进行截取。 除自动转换外,还有强制转换,表示形式是: ( 类型 )(表达式); 第2章 运算符与表达式 2.1 C语言运算符简介 2.1.1 C运算符简介 C语言的运算符范围很宽,几乎把所有的基本操作都作为运算符处理,具体运算符见表

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com