目录
1.由于主函数首部经常缩写成main(),所以它不可能有形式参数。请问这句话的说法是正确的吗?
2.C 语言本身有输入输出语句,这句话对吗?
3 .以下叙述中正确的是()
4. 下面程序段中,for循环的执行次数是()
5.下面表达式(本题数值均为十进制) 的结果是()
5.以下表达式选择结果是()
6.在 32 位大端模式处理器上变量 b 等于()
强度上来了啊,加油加油!!!
1.由于主函数首部经常缩写成main(),所以它不可能有形式参数。请问这句话的说法是正确的吗?
答案:错误
解析:main函数是有参数的。
int main(int argc,char *argv)
{
...
return 0;
}
2.C 语言本身有输入输出语句,这句话对吗?
答案:错误
解析:C语言本身并不提供输入输出语句,输入和输出操作都是有函数实现的。
也就是说printf和scanf并不是C语言的关键字,而只是函数的名字,他们不是C语言文本中的组成成分。
3 .以下叙述中正确的是()
解析: break 语句通常用在循环语句和开关语句中。当 break 用于开关语句 switch 中时 , 可使程序跳出 switch 而执行 switch 以后的语句;当 break 语句用于 do-while 、 for 、 while 循环语句中时 , 可使程序终止循环而执行循环后面的语句,即满足条件时便跳出循环。 continue 语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。 B 、 C 和 D 三个选项中均有错误。因此 A 选项正确。
4. 下面程序段中,for循环的执行次数是()
char *s="ta 18bc";
for(; *s != ' '; s++) printf("*");
答案:6次
解析:
for循环的执行次数其实就是字符串s的长度,在s所指向的字符串中,’t’
是转义字符,’ 1’也是一个转义字符,这样字符串的长度就是6。所以正确答案是C。
ddd(d为任意数字)在转义字符中表示三位八进制,因为八进制中的数只有0-7,因此 18不能表示三位八进制,所以取 1
5.下面表达式(本题数值均为十进制) 的结果是()
11|10
答案:11
解析:‘|’ 该符号是按位或运算,我们首先需要把他转换成二进制:
1011|1010 -->1011 //按位运算,有1出1 无 1出0最后结果就是 1011 转成10进制 => 11
5.以下表达式选择结果是()
int a = 0;
int b = (a=-1) ? 2:3;
int c = (a=0) ? 2:3;
答案:b=2, c=3
解析:
a=-1,表达式的值为-1,非零,为真,故b=2;
a=0,表达式的值为,为零,为假,故c=3;
6.在 32 位大端模式处理器上变量 b 等于()
unsigned int a = 0x1234;
unsigned char b = *(unsigned char *)&a;
答案:0x00
解析:unsigned int a = 0x1234; 其中 int 是 4 字节, 大端存储,补齐 16 进制表示为: 0x00 00 12 34
unsigned char b = *(unsigned char *)&a; 由于大端存储,所以上述 int a 变量的最低地址存储的是十六进制表示中最左边的 1 字节为 0x00。



