精华内容
下载资源
问答
  • 其一般的形式:变量名=表达式例如 :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语句的分类

    f4cf3e738007959730ce3cb66b72ce50.png

    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.空语句

    在表达语句中,如果没有任何表达式而只是一个分号,则称为空语句,其形式如

    ; //空语句

    自动跳过,不起任何作用。

    展开全文
  • 什么是合法的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语言赋值语句是( )。 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);...
  • 这样是合法的和可移植的吗? 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 结构传递和返回是如何实现...
  • 什么是合法的C语言表达式呢?  数组的指针  6.12 既然数组引用会退化指针,如果array是数组,那么array和&array;又有什么区别呢?  6.13 如何声明一个数组的指针?  动态数组分配  6.14 如何在运行时...
  • 这样是合法的和可移植的吗? 23  2.8 我听说结构可以赋给变量也可以对函数传入和传出。什么K&R1却明确说明能这样做? 25 2.9 什么能用内建的==和!=操作符比较结构? 26 2.10 结构传递和返回是如何实现...
  • c语言练习题

    2013-01-02 12:08:35
    14、 若变量已正确定义并赋值,表达式( )符合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语言问题] 第1章 声明和初始化 基本类型 1.1 我该如何决定...这什么是合法的C语言表达式呢? 数组的指针 6.12 既然数组引用会退化指针,如果array是数组,那么array和&array;又有什么区别...
  • 在C 语言里,如果直接写P1.0,C 编译器并能识别,而且P1.0 也不是一个合法的C 语言变量名,所以得给它另起一个名字,这里起的名P1_0,可是P1_0 是不是就是P1.0 呢?你这么认为,C 编译器可不这么认为,所以必须...
  • c语言你知识点总结

    2018-05-15 00:42:54
    C语言编译程序称为源程序,它以ASCII数值存放在文本文件中,一定能出现分号,源程序扩展名.c,目标文件扩展名.obj,可执行文件扩展名.exe。 2、每个C语言程序中main函数是有且只有一个。 3、在函数中可以再...
  • 这样是合法的和可移植的吗? 52 2.8 我听说结构可以赋给变量也可以对函数传入和传出。什么K&R1;却明确说明能这样做? 54 2.9 什么能用内建的==和!=操作符比较结构? 55 2.10 结构传递和返回是如何实现的...
  • 190.假设所有变量均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语言程序设计复习题 一选择题 1.以下选项中可作为C语言合法整数的是 A10110B B0386 C0Xffa Dx2a2 2.以下选项中合法的字符常量是 A) "B" B) '...以下语句语句组中能正确进行字符串赋值的是 A)char *sp*sp="right; B)c
  • 这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。什么K&R1却明确说明能这样做? 2.9 什么能用内建的==和!=操作符比较结构? 2.10 结构传递和返回是如何实现的? 2.11 如何向...
  • 又如在例题中,使用了库函数 sin,由于系统规定其函数返回值双精度浮点型,因此在赋值语句s=sin (x);中,s 也必须是双精度浮点型,以便与sin函数返回值一致。所以在说明部分,把s说明双精度浮点型。但是,也有...
  • 2.赋值语句的值 例如: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 表达式呢 ? o 7.9 既然数组引用会蜕化指针, 如果 arr 是数组, 那么 arr 和 &arr 又有什么区别呢 ? o 7.10 我如何声明一个数组指针 ? o 7.11 我如何在运行期设定数组的大小 ? 我怎样...
  • A应使用顺序选择循环三种基本控制结构表示程序逻辑 B根据需要可使用嵌套基本控制结构表示程序逻辑 C提高程序效率应尽量使用Goto语句 D选用的控制结构可有多个入口和一个出口 下列不合法的字符常量的是 B A\n Ba C\...
  • 题干 答 案 ~^\n 是一个转义字符. Y #define~和 printf 都不是 C 语句. Y #include "stdio.h" 是每个程序中必须写的.... N a=(b=4)+(c=6)~是一个合法的赋值表达式~- Y char *p)[6]; 若 p 值 1000
  • 2.忽略了变量的类型,进行了不合法的运算。 main() { float a,b; printf("%d",a%b); } %是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。 3.将字符常量与字符串...
  • } } //给 P3_1 赋值 1,引脚 P3.1 就能输出高电平 VCC //给 P3_1 赋值 0,引脚 P3.1 就能输出低电平 GND //非零表示真,如果真则执行下面循环体的语句 //void 表示没有输入参数,也没有函数返值,这入单片机运行...
  • 《c和指针》(九)

    2016-09-28 19:23:17
     C语言存在专门的赋值语句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标签是个好习惯

    展开全文

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

不合法的c语言赋值语句为

c语言 订阅