-
4 4c语言表格的画法_C语言学习|赋值及简单表达语句介绍(4)
2021-01-16 09:20:53其一般的形式为:变量名=表达式例如 :a=12、a=b+c、a=sqrt(7)等在C语言程序里是合法的,但“=”左边为表达式,“=”右边为变量名只是不被编译器所允许的表达式。注意:C语言中,赋值运算的操作是有方向的,即将右侧...一、赋值
1.赋值运算符含义是将一个数据赋值给一个变量。其一般的形式为:变量名=表达式
例如 :a=12、a=b+c、a=sqrt(7)等在C语言程序里是合法的,但“=”左边为表达式,“=”右边为变量名只是不被编译器所允许的表达式。
注意:C语言中,赋值运算的操作是有方向的,即将右侧表达式的值(也称为右值)赋值左侧的变量,只能是标识一个特定存储单元的变量名。
由于变量名只能出现在赋值运算符的左边,因此它也被称为左值;由于常量只能出现在赋值运算符的右边,因此它也被称为右值。左值可以用作右值,但右值不能用作左值。
赋值运算符的优先级低于算术运算符、关系运算符以及逻辑运算符。由于赋值表达式的值被规定为运算完成后操作数的值,类型与左操作数相同,且赋值运算符的结合性为右结合,因此,C语言还允许这样的赋值形式:
变量1=变量2=变量3=……=变量n=表达式
这种形式称为多重赋值表达式,一般用于多个变量赋予同一个值。由于赋值运算符是右结合,因此执行是把表达式值依次赋给变量n,……,变量1,即上面的形式等价于
变量1=(变量2=(变量3+(……=(变量n=表达式)……)))
2.复合的赋值运算符,其形式如下:
变量 二元运算符=表达式等价于变量=变量 二元运算符 表达式
涉及算数的复合运算符,即+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=。这种形式更直观,执行效率更高些。
小贴士:将赋值表达式n*=m+4按照n=n*m+2来运算是错误的,事实上应按n=n*(m+2)来运算。
二、C语句的分类
1.控制语句。C语言只有9种控制语:
if~elsefor()~continue
switchwhile~goto
breakdo~whilereturn
2.变量定义语句。由类型关键字后变量名,如“int a,b,c;”。值得注意的是,变量定义语句不是可执行语句。它只是将某些信息传递给编译器,通知编译器变量的类型是什么,以便编译器为其预留出相应的大小存储空间,因为不同类型的变量在内存中占据的存储空间大小不同。
3.表达式语句。由表达式后接一个分号构成的语句。
4.函数调用语句。表达式必须是有值的,而函数调用不一定是用返回值。在C语言中,没有专门的输入和输出语句,输入和输出操作通常通过调用输入和输出函数实现。
5.复合语句。两条或两条以上的语句序列,用一对花括号括起来构成的语句。
6.空语句。只有一个分号构成的语句,表示什么也不做,过渡作用。
二、表达式语句
顺序结构是最简单的程序结构。在顺序结构程序中,程序的执行是按照语句书写的顺序来完成,赋值操作是顺序结构中最常见的操作。在C语言中,没有专门的赋值语句赋值操作通常使用赋值表达式后接一个分号(;)构成赋值表达式语句实现。例如“C=100;”这是一个赋值语句表达式。
1.复合语句
两条或两条以上语句序列,用一对花括号括起来构成的语句,称为复合语句,也叫语句块,其形式:
{
语句一;
语句二;
语句N;
}
例如
{
a++;
t=a*2;
y--;
}
在逻辑上形成一个整体,在语法上等同于一条语句,可被当作一条语句来处理,这样就为程序设计带来便利。
2.空语句
在表达语句中,如果没有任何表达式而只是一个分号,则称为空语句,其形式如
; //空语句
自动跳过,不起任何作用。
-
你必须知道的495个C语言问题
2015-10-16 14:14:28这为什么是合法的C语言表达式呢? 数组的指针 6.12 既然数组引用会退化为指针,如果array是数组,那么array和&array又有什么区别呢? 6.13 如何声明一个数组的指针? 动态数组分配 6.14 如何在运行时设定数组的... -
C语言习题综合.pdf
2020-08-21 10:31:47不合法的用户标识符 A _123 B printf C A $ D Dim 1.表达式3.5+1/2的计算结果是_ 2.对数学表达式 ,写出三个等价的c语言表达式_ } 第三章 练习题 一选择题 1.若a ,b,c都是int型变量且初值为0以下选项中不正确的赋值 ... -
计算机二级C语言模拟题20套
2018-04-18 20:15:45若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。 A、x+n=I; B、x==5; C、x=n/2.5; D、5=x=4+1; C 用scanf函数输入数据,使得x=9.6,y=81.73选择正确的输入语句( ). A、scanf("x=?",x); scanf("y=_",&y);... -
你必须知道的495个C语言问题.pdf
2013-01-20 14:30:54这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1;却明确说明不能这样做? 2.9 为什么不能用内建的==和!=操作符比较结构? 2.10 结构传递和返回是如何实现的? 2.11 如何... -
《你必须知道的495个C语言问题》
2010-03-20 16:41:18这样是合法的和可移植的吗? 23 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不能这样做? 25 2.9 为什么不能用内建的==和!=操作符比较结构? 26 2.10 结构传递和返回是如何实现... -
你必须知道的495个C语言问题(中文高清版)
2013-03-20 13:28:28这为什么是合法的C语言表达式呢? 数组的指针 6.12 既然数组引用会退化为指针,如果array是数组,那么array和&array;又有什么区别呢? 6.13 如何声明一个数组的指针? 动态数组分配 6.14 如何在运行时... -
你必须知道的495个C语言问题(高清版)
2010-03-31 16:24:09这样是合法的和可移植的吗? 23 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不能这样做? 25 2.9 为什么不能用内建的==和!=操作符比较结构? 26 2.10 结构传递和返回是如何实现... -
c语言练习题
2013-01-02 12:08:3514、 若变量已正确定义并赋值,表达式( )不符合C语言语法。 A)4&&3 B)+a C)a=b=5 D)int(3)14) 15、 C语句”x*=y+2;”还可以写作( ) A) x=x*y+2; B) x=2+y*x; C) x=x*(y+2); D) x=y+2*x; 16、 下列... -
[你必须知道的495个C语言问题]人民邮电出版社
2012-08-18 19:02:28[你必须知道的495个C语言问题] 第1章 声明和初始化 基本类型 1.1 我该如何决定...这为什么是合法的C语言表达式呢? 数组的指针 6.12 既然数组引用会退化为指针,如果array是数组,那么array和&array;又有什么区别... -
单片机C语言入门-以最为流行的80C51 单片机为例来学习单片机的C 语言编程技术
2011-02-22 11:13:20在C 语言里,如果直接写P1.0,C 编译器并不能识别,而且P1.0 也不是一个合法的C 语言变量名,所以得给它另起一个名字,这里起的名为P1_0,可是P1_0 是不是就是P1.0 呢?你这么认为,C 编译器可不这么认为,所以必须... -
c语言你知识点总结
2018-05-15 00:42:54C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中,一定不能出现分号,源程序扩展名为.c,目标文件扩展名.obj,可执行文件扩展名.exe。 2、每个C语言程序中main函数是有且只有一个。 3、在函数中不可以再... -
你必须知道的495个C语言问题.[美]Steve Summit(带详细书签).pdf 压缩版
2018-04-08 02:26:50这样是合法的和可移植的吗? 52 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1;却明确说明不能这样做? 54 2.9 为什么不能用内建的==和!=操作符比较结构? 55 2.10 结构传递和返回是如何实现的... -
《C语言 200道练习题及答案》.ppt
2020-10-20 15:38:43190.假设所有变量均为int则表达式a=2,b=5,b++,a+b的值 A7 B8 C6 D2 191....设x,y均为float型变量则以下不合法的赋值语句是 A++x; By=(x%2)/10; Cx*=y+8; Dx=y=0; 193.下面不正确的字符串常量是 Aab -
C语言程序设计复习题 (3).doc
2020-07-21 22:15:13C语言程序设计复习题 一选择题 1.以下选项中可作为C语言合法整数的是 A10110B B0386 C0Xffa Dx2a2 2.以下选项中合法的字符常量是 A) "B" B) '...以下语句或语句组中能正确进行字符串赋值的是 A)char *sp*sp="right; B)c -
[你必须知道的495个C语言问题]人民邮电出版社.扫描版.pdf
2011-10-01 21:39:52这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不能这样做? 2.9 为什么不能用内建的==和!=操作符比较结构? 2.10 结构传递和返回是如何实现的? 2.11 如何向... -
C语言程序设计标准教程
2009-05-22 18:29:14又如在例题中,使用了库函数 sin,由于系统规定其函数返回值为双精度浮点型,因此在赋值语句s=sin (x);中,s 也必须是双精度浮点型,以便与sin函数的返回值一致。所以在说明部分,把s说明为双精度浮点型。但是,也有... -
C语言基础知识复习(1)
2021-02-22 21:36:282.赋值语句的值 例如:a=(b=4)+(c=6) 是一个合法的赋值表达式。 (b=4)该表达式的值为4,(c=6)该表达式的值为6。 3.const的定义与运用 4.指针(*p与&p的区别) 5.字符串操作函数 6.a++与++a的区别 7.sizeof(a)...1.运算符的优先级与结合性
- C语言运算符优先级与结合性详细列表:跳转
- 运算符的类型:
1.单目运算符:
-(负号运算符)~(按位取反运算符)++ - -(自增自减运算符)
*(取值运算符)&(取地址运算符)!(逻辑非运算符)2.双目运算符:
算术运算符(/ * % + - << >>)(按优先级递减排序)
关系运算符(> >= < <= == != & ^ | && ||)(按优先级递减排序)3.三目运算符:
条件运算符(a?b:c)结论:
优先级:
- 单目运算符 > 双目运算符 > 三目运算符
- 逻辑非(!) > 算术运算符 > 关系运算符 > 逻辑与(&&) > 逻辑或(||) > 赋值运算符
(口诀:非算关与或赋)(非算关羽伙夫)
结合方向:
- 从左到右:双目运算符
- 从右到左:单目运算符、三目运算符
2.赋值语句的值
例如:a=(b=4)+(c=6) 是一个合法的赋值表达式。
(b=4)该表达式的值为4,(c=6)该表达式的值为6。3.const的定义与运用
const 为 定义只读变量(常变量)的关键词,关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变。
const修饰符的作用:
1、可以保护被修饰的东西,防止意外修改,增强程序的健壮性;
2、编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。const的用法:
1、修饰局部变量;
能够在编译期间检测出对只读内存区域赋值的逻辑错误。
2、常量指针与指针常量;
常量指针是指针指向的内容是常量,可以有以下两种定义方式。
const int* n; int const* n;
指针常量是指指针本身是个常量,不能在指向其他的地址,写法如下:
int*const n;
区别:
常量指针说的是不能通过这个指针改变变量的值,指针常量说的是指向的地址不能改变。
区分方法:
区分常量指针和指针常量的关键就在于星号的位置,我们以星号为分界线,如果const在星号的左边,则为常量指针,如果const在星号的右边则为指针常量。
如果我们将星号读作‘指针’,将const读作‘常量’的话,内容正好符合。int const * n;是常量指针,int *const n;是指针常量。
4.指针(*p与&p的区别)
首先需要明白一点的是,指针是个变量,它和int类型、float类型等的变量一样,也存储在内存中,占据一定的字节。只是int变量存储的是整形数字,而指针变量存储的是地址。
5.字符串操作函数
6.a++与++a的区别
a++ 表示 先读a的值,在进行+1操作;
++a 表示 先进行+1操作,再读a的值。
7.sizeof(a)的意思
8.短路原理
短路原理:对于逻辑语句,电脑为了高效率,在且语句(&&)内,前面的判断如果是假的,那么后面的就不在进行直接跳过。
9.转义字符
\0oo: 八进制值(oo必须是有效的八进制数,即每个o可表示0~7中的一个数)
\xhh: 十六进制值(hh必须是有效的十六进制数,即每个h可表示0~f中的一个数)
其他常见的转义字符:\t ,\n,\a,\b,\r,\f,\v
-
你必须知道的495个C语言问题(PDF)
2009-09-15 10:25:47难道在C语言中一个结构不能包含指向自己的指针吗? . . . . 3 1.7 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返 回指向字符的指针的函数的指针的数组? . . . . . . . . . . . . . . 3 1.8 函数只定义... -
6套C语言试卷
2012-11-13 15:47:13下面标识符中,合法的用户标识符为( )。 A、long B、E2 C、3AB D、enum 4.下列四组选项中, 均是合法转义字符的选项是( )。 A、‘\’” ‘\\’ ‘\n’ B、g’\’ ‘\017’ ‘\’’ C、’\018’ ‘\f’ ... -
C语言FAQ 常见问题列表
2010-10-28 16:41:29这为什么是合法的 C 表达式呢 ? o 7.9 既然数组引用会蜕化为指针, 如果 arr 是数组, 那么 arr 和 &arr 又有什么区别呢 ? o 7.10 我如何声明一个数组指针 ? o 7.11 我如何在运行期设定数组的大小 ? 我怎样... -
C语言10年选择题题库.doc
2020-11-11 15:57:07A应使用顺序选择循环三种基本控制结构表示程序逻辑 B根据需要可使用嵌套基本控制结构表示程序逻辑 C为提高程序效率应尽量使用Goto语句 D选用的控制结构可有多个入口和一个出口 下列不合法的字符常量的是 B A\n Ba C\... -
2020年新版C语言判断题.docx
2020-10-21 01:06:48题干 答 案 ~^\n 是一个转义字符. Y #define~和 printf 都不是 C 语句. Y #include "stdio.h" 是每个程序中必须写的.... N a=(b=4)+(c=6)~是一个合法的赋值表达式~- Y char *p)[6]; 若 p 值为 1000 -
C语言常见错误小结,希望对大家有帮助
2009-08-04 18:37:592.忽略了变量的类型,进行了不合法的运算。 main() { float a,b; printf("%d",a%b); } %是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。 3.将字符常量与字符串... -
51单片机C语言编程基础及实例
2011-04-19 21:50:45} } //给 P3_1 赋值 1,引脚 P3.1 就能输出高电平 VCC //给 P3_1 赋值 0,引脚 P3.1 就能输出低电平 GND //非零表示真,如果为真则执行下面循环体的语句 //void 表示没有输入参数,也没有函数返值,这入单片机运行... -
《c和指针》(九)
2016-09-28 19:23:17C语言并不存在专门的赋值语句,C语言的赋值和加、减法一样是一种操作,操作在表达式内完成。赋值操作符为“=”。例如:x = y + 3 ; 是一个表达式语句,而不是一个赋值语句。理解这一点特别重要,因为像 y + 3;...一、C语言表达式语句
C语言并不存在专门的赋值语句,C语言的赋值和加、减法一样是一种操作,操作在表达式内完成。赋值操作符为“=”。例如:x = y + 3 ; 是一个表达式语句,而不是一个赋值语句。理解这一点特别重要,因为像 y + 3; 这样的表达式语句也是合法的。
二、C语言的while、do循环语句 和 for循环语句
while和do循环语句在每一次的循环完成后,跳转到测试部分继续执行;而for循环语句在每一次循环完成后跳转到调整部分执行,并且for循环语句的结构更紧凑。
三、switch语句
1、switch的表达式必须是整型值
2、每个case标签必须具有唯一值,并且必须是常量表达式(即在编译期间进行求值),不能是任何变量
3、case标签并不会把语句列表划分为几个部分,他们只是确定语句列表的入口点(即与switch表达式相匹配的case标签处),匹配到入口点以后,执行流从该语句开始一直到语句列表结束,之间的所有语句均被执行。switch语句的这个特点可以当做一个技巧(为了使同一组语句在两个或更多不同的表达式满足时都能够执行)来处理一些特殊的情况,这一点在《C语言陷阱与缺陷》中也提及。
4、用break可以打断执行流
5、加上default标签是个好习惯