㈠ 什么是非法表达式,为什么就不合法了呢,比如a+1=c+b,还有其他的。
首先, 等号表示赋值,不是比较, 比较的话用==
赋值=的左边必须是一个可写的变量,其余的如数字都是非法的。
㈡ (15) 以下选项中非法的表达式是A)0<=x<100 B) i=j==0 C) (char)(65+3) D) x+1=x+1
他们都有问题,正确答案为D,A项可以那样写。
选项A)在c语言中是一个合法的关系表达式,但它并不代表数学式o<=x<
100。计算0<=x<100时,从左到右结合,先计算0<=x,其结果只能是0或1,然后再比较0<
100或1<100。根据运算符的优先级,选项B)先判断j==0是否成立,其结果只能是0或1,然后再将0或1赋给i。选项C)中,(char)(65+3)为类型强制转换,将整数型数据转换为字符型。选项D)是将一个数据赋给一个表达式,等号左边不合要求,所以错误。
㈢ 在C语言中,下面标识符非法的是() A.sum& B abc3 C name D SUM
那你首先得知道什么是标识符
和其他高级语言一样,在C语言中用来表示对变量,符号常量,函数,数组,类型等数据对象命名的有效字符序列统称为标识符.简单地说,标识符就是一个名字.
在C语言中,规定标识符只能由 字母 , 数字 , 下划线组成, 且第一个字符必须为字母或下划线.
合法的标识符如下:
sum,average,_total,Class,day,month,Student,Student_name,tan,louts_1_2_3,BASIC,li_ling等
非法的标识符如下:
M.D.John,#123,3D45,a>b等
补充:
(1).标识符只能由字母、数字和下划线三类字符组成
(2).第一个字符必须是字母(第一个字符也可以是下划线,但被视作系统自定义的标识符)
(3).大写字母和小写字母被认为是两个不同的字符,如A和a是两个不同的标识符
(4).标识符可以任意长,但只有前32位有效。有些旧的C版本对外部标识符的限制为6位。这是由于链接程序的限制所总成的,而不是C语言本身的局限性
㈣ C语言判断表达式 是否非法
1合法,其就等于 a = (b = (c = 1))
而2并不合法,因为赋值对象(即在等号左边)的必须是一个变量,而(a+b)是一个常量,所以不合法。
㈤ qq 各位 一道C语言问题(关于非法的表达式)
应该是D吧,x + 1在C里面是左值吗?
0 <= x < 100是个布尔表达式,只不过其意义不和数学表达式的相同,布尔表达式求值是从左往右的,这里的这个表达式的值无论如何都是true,1和0肯定小于100,像这种写法只是得不到0 <= x < 100的数学表达式测试结果(比如x取 >= 100),但其句法在C语言中是合法的。
㈥ 若变量已正确定义,以下非法的表达式是(B) A、a/=b+c B、a%(4.0) C
A
a/=b+c 等价于
a = a/b + c,只要b不等于0,这个表达式就是合法的
B
a%(4.0)
%是去余数运算符,余数只有对整数才有意义,对浮点数没有意义。我们可以说5除以2,等于2,余数为1。
但是5除以2.2,就没有余数的概念。这里虽然4.0就是整数4,但是对于计算机来说是浮点数,浮点数不能去余数,是非法的
C
a=1/2*(x=y=20,x*3)
括号优先级最高,先计算括号里面的x=y=20,x*3,这是一个逗号表达式,从左到右计算,最右边的表达式的值作为整个括号表达式的值。
即先计算x=y=20,然后计算x*3=20*3=60,60作为(x=y=20,x*3)表达式的结果
上面的表达式就等价于
a=1/2*60
所以是合法的
㈦ C语言题目 以下非法的赋值语句是
选C,因为先进行i+1,这时候表达式已经是常量了,不能进行++运算。
C语言在赋值语句的使用中需要注意以下几点:
1、由于在赋值符“=”右边的表达式也可以又是一个赋值表达式, 因此,下述形式 变量=(变量=表达式); 是成立的,从而形成嵌套的情形。 其展开之后的一般形式为:变量=变量=…=表达式; 例如:a=b=c=d=e=5;按照赋值运算符的右接合性,因此实际上等效于:e=5; d=e; c=d; b=c; a=b;
2、注意在变量==说明==中给变量赋初值和赋值语句的区别。 给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。 例如:int a=5,b,c;
3、在变量说明中,不允许连续给多个变量赋初值。 如下述说明是错误的:int a=b=c=5必须写为int a=5,b=5,c=5;而赋值语句允许连续赋值。
4、注意赋值表达式和赋值语句的区别。 赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
(7)在c语言中非法的表达式扩展阅读:
C语言的特点
1、语言简洁,紧凑,使用方便,灵活
2、运算符丰富
3、数据类型丰富,具有现代语言的各种数据结构
4、具有结构化的控制语句。
5、语法限制不太严格,程序设计自由度大。
6、C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
7、生成目标代码质里高,程序执行效率高。
8、用C语言编写的程序可移植性好(与汇编语言比)。
㈧ c语言中非法字符有哪些
首先看定义,用单引号括起来的单个字符,或用双引号括起来的一串字符即字符常量。
C '&' 是用单引号括起来的单个字符,正确。
A '\xff' B '\65' D'\028' 是用单引号括起来的多个字符,但因它们前面都 有一个转义符 ‘\‘ ,就不能说它们都不符合定义,都不合法的。
A '\xff' 中 '\x' 组合表示是一个十六进制数 ffH = 10 进制的 255 ,它代表一个不可见字符的ASCII 码, 合法 。
B '\65' 同理 '\' + 三个十进制数 '\ddd' 表示的是 八进制数。'\65' = '\065' = 10 进制的 53, 是 ‘F’ 的ASCII 码表示。单 字,合法。
D '\028' 同上表示是八进制数,但八进制数中逢八则进一,是不会出现 8 的,所以格式虽对但数值错了。不合法。
㈨ 在C语言中,以下非法的表达式是( ) A. 0<=x<=100; B. i=j==0; C. (char)(65+3); D. x+1=x+1;
A的意思是(0<=x)<=100;(比较运算符从左到右计算)
//先返回0<=x的值,正确为1错误为0,再把它的值与100进行比较,因为0和1都比100小
B的意思是i=(j==0);(比较运算符级别比赋值运算符高)
//先返回j==0的值,正确为1错误为0,再把它的值赋值给i
C的意思是把整型数65+3的值强制转换为字符类型char,返回ASCII为68的'D'
D的意思是将x+1赋值给x+1,因为x+1是个右值,只能放在赋值运算符的右边,所以非法
答案为D
第二题是B
++(i+1)等价于i+1=i+1+1,因为i+1是右值,所以非法
㈩ 在C语言中,以下非法的表达式是( ) A. 0<=x<=100; B. i=j==0; C. (char)(65+3); D. x+1=x+1;
D x+1=x+1