在C语言中,宏定义不是C语言。
解释如下:
宏是C语言的预处理函数,在编译前必须在程序中进行替换。
预处理是在编译之前完成的工作。
C语言中的语句全部以分号结尾,预处理后不能有分号;
宏可以分为两种类型:不带参数的宏和带参数的宏。
注释也不是合法的 C 语句
选择题下方合法的C语句是[B]。 A.#MY 100B. a=25;C. a=b=100D. /*米=100;*/
2. 下列描述中,正确的是[D]。
A. C 程序中的所有标识符都必须小写
B. C程序中的关键字必须小写,其他标识符不区分大小写
C. C 程序中的所有标识符都不区分大小写 D. C 程序中的关键字必须小写,其他标识符区分大小写(关键字是 C 语言中规定的具有特定含义的标识符。它们不能用作预定义标识符或用户定义的标识符和[关键字必须是小写字母])
3. 下列标识符中,[D]不是C语言关键字。 A. charB. gotoC. 案例D.
图片来源百度
4、以下标识符中非法的用户标识符是[A]。 A。 。 _123C。 周日D. XYZ
5. 下列非C语言常量的数据是[A]。 A. e-2B。 074C。 '\0'D. "a"(e/E前必须有数字,指数为整数)
6. 下面错误的转义字符是[C]。 A. ''B. '\' 'C。 '\19'D。 '\0'(转义字符以反斜杠开头,后跟一个或多个字符;\ddd和\xhh(十六进制)可以方便地表示任意字符,ddd表示1到3个八进制数的ASC2码,例如\ 101代表字母A。\102代表字母B。\x41代表字母A)
7. 假设t是类型变量,表达式t=1,t+2,t++的值为[D]。 (表示双精度浮点数;表达式语句是C语言中最基本的语句,在程序中用于对操作对象进行运算。一般形式为:表达式;(分号是不可缺少的)。对于例如语句 a+b; 执行了操作 a+b,这在 C 语言中是合法的,但是该语句没有将运算结果赋值给任何变量,因此该语句没有实际意义。同样,对于这道题, t+1和t++执行后没有赋值,所以t的值保持不变。)
A.4.0B。 3.0C。 2.0D。 1.0
8. 如果变量已经正确定义并赋值,则下面的合法表达式为[B]。
A. (int) a=b+7B. a=7+b+c,++a
C. int (12.3%4)D. a=a+2=c+b(不带括号的int;余数运算符两边不能有小数;赋值运算符是把一个数据(常量或表达式)赋给一个变量,左边必须是a变量,不能是常量或表达式!)
9. 假设a是一个整型变量。 下面的数学关系不能正确表达1010 && a=15)(关系运算符是左结合的。关系表达式的运算成分可以是算术量、字符量和逻辑量,但结果只能是逻辑量数量有真有假;例如关系运算符和数学公式的区别: 数学公式10
10、能正确表达a不等于0的关系式是[C]。
A. a=0B. a≠0C. 广告。 !A
假设int a=04,b; 变量定义,则表达式 b=a3)?2+4:1,2,3 的值为。 答:逗号表达式由条件表达式、2、3组成。逗号表达式的值为最后一个表达式的值,所以为3。 If int a=1,b=15; 被定义并且 --a&&b++ 被执行 在 ; 之后语句,b的值为。 答:--a是第一次减操作,先做a=a-1=0,然后取a的值0参与表达式运算。 由于逻辑与运算的短路性质,其一个操作数为0,而不管另一个操作数的值是多少? 整个逻辑与的结果已经确定,所以b++不会被执行,所以b的值仍然是15。表达式10||20||30的值是。 答案:1表达式10&0xd+06的值为。 答:十进制数10的二进制码为1010B,十六进制数0xd的二进制码为1101B,按位与结果为1000B,即十进制数8,8+06=14
读取程序并写入结果
#
无效主()
int i=5, j=6, m=i+++j;(“%d,%d,%d\n”,i,j,m);
答案:6,6,11(注意运算符的优先级++自增运算符优先级是2,+加法运算符优先级是4;所以先执行(i=5) i++=5 i=6;( j=6 ) m=(i++)+j=5+6=11)
#
无效主()
f=3.14159;
整数 n;
n=(int)(f+10)%3;
(“%d\n”,n);
答案:1 解析:%为余数运算符; int() 是舍入函数,它将要舍入的实数(可以是数学表达式)四舍五入到最接近的整数,而不是四舍五入。 这里,f+10=13.14159 四舍五入为 13,然后将 13 除以 3 得到余数。 商为 4,余数为 1。
#
#
无效主()
{char s[ ]=”ab\n\\\'\r\b”;(“%d,%d \n”,(s), (s));
答案:8,7
#
无效主()
int a = 2,b = 4,c = 6,x,y;
y=(x=a+b),(b+c);(“y=%d,x=%d \n”,y, x);
答案:y=6,x=6
#
无效主()
整数 i、j、x、y;
我=5; j=7;
x=++i;
y=j++;
("%d,%d,%d,%d\n",i,j,x,y);
答案:6,8,6,7
补充:自增和自减的比较,第一次自增和最后一次自增int i=5(比较两列)
++aa++
将变量a的值加上①,得到变量a的值(即5)
(变为 6) 作为表达式的值
然后将a中a的值加上①(变成6)
取 a 的值(即 6)并将其存储在 a 中
作为表达式的值
表达式=6
总结:
先递增++a,然后递增a++
表达式的值为加号 ①表达式的值为a
变量的值增加了①