A、a=0x7bc=a7 ;
B、a=0x7b=a7;
C、a=0x7ba7=c;
D、a=0x7b,c=a7;
答案:D
解析:符合C语言语法的赋值语句应该使用等号(=)进行赋值操作,且左边是变量,右边是一个表达式或一个已经声明的变量。选项D中的语句"a=0x7b,c=a7"满足这个要求,左边是变量"a"和"c",右边是表达式"0x7b"和"a7",使用逗号运算符将两个赋值语句连接起来。
A、a=0x7bc=a7 ;
B、a=0x7b=a7;
C、a=0x7ba7=c;
D、a=0x7b,c=a7;
答案:D
解析:符合C语言语法的赋值语句应该使用等号(=)进行赋值操作,且左边是变量,右边是一个表达式或一个已经声明的变量。选项D中的语句"a=0x7b,c=a7"满足这个要求,左边是变量"a"和"c",右边是表达式"0x7b"和"a7",使用逗号运算符将两个赋值语句连接起来。
A. 10
B. 20
C. 18
D. 19
解析: 执行语句后,先执行--x,即将x减1,得到9。然后将9加上原先的值10,得到19。所以选项C的答案是正确的。
A. char b[10]={'H','e','l','l','o','!'};
B. char b[10];b="Hello!";
C. char b[10];strcpy(b,"Hello!");
D. char b[10]="Hello!";
解析:不能把字符串 "Hello!" 赋给数组b的语句是( )。 A.char b[10]={'H','e','l','l','o','!'}; B.char b[10];b="Hello!"; C.char b[10];strcpy(b,"Hello!"); D.char b[10]="Hello!"; 答案:B 解析:在C语言中,数组名是数组的首地址,数组变量本身不能被赋值。选项A使用了初始化列表的方式初始化数组b,选项C使用了strcpy函数将字符串复制给数组b,选项D使用了数组初始化的方式。这些选项都是正确的赋值方式。但选项B尝试直接将字符串赋值给数组b,这是错误的,因为数组变量本身不能被赋值。
A. 2
B. 3
C. 4
D. 5
解析:题目解析 根据题目中的定义 static int x[2][3]={2,3,4,5,6,7},我们可以知道数组x是一个二维数组,其中有2行3列。表达式x[0]表示数组x的第一行,因此,对应的元素是{2,3,4}。由于表达式x[0]是一个指向数组的指针,所以通过解引用操作符*可以获取该指针指向的值。因此,*x[0]的值为2。因此,答案选项A是正确的。
A. 6
B. 7
C. 8
D. 9
解析:表达式y+=fabs(x)+x+z的值为7。首先,fabs(x)将返回x的绝对值,即4。然后,将4与x的值相加(-4),再加上z的值(5),结果为7,将该结果赋给y。因此,y的值将为7。
A. 4
B. 3
C. 2
D. 1
解析:的答案是B. 3。
解析:
根据给定的条件表达式:
yaml
Copy code
w>x ? w : y
A. 5
B. 6
C. 7
D. 8
解析:的答案是C。在表达式 z+=++x+y++ 中,先进行前缀自增运算符++x,将x的值增加1,得到3。然后将y的值2相加,得到5。最后进行后缀自增运算符y++,将y的值增加1,但此时y的值仍为2,因为后缀自增运算符的值是在运算完成后才增加。将3+5的结果赋给z,所以 z 的值为7。
A. float
B. int
C. char
D. double
解析:表达式a*b+d-c值的类型为( ) A.float B.int C.char D.double 答案:D
解析:根据C语言的类型转换规则,当表达式中存在不同类型的操作数时,会进行隐式类型转换,将其转换为最宽类型的操作数类型。在这个表达式中,a和b都是char类型,c是float类型,d是double类型。根据类型转换规则,char类型会被提升为int类型,int类型会被提升为float类型,float类型会被提升为double类型。因此,ab的结果将是int类型,d-c的结果也将是double类型。最终,ab+d-c的结果的类型将是double类型。
A. 打印出212
B. 打印出12
C. 不打印任何内容
D. 陷入死循环
解析:在C中,执行下面程序片段的结果是()。
int x=13;
do
{ printf("%2d",--x);}
while(!x);
答案: B. 打印出12
解析: 程序使用do-while循环,先执行循环体再判断循环条件。循环体中使用printf函数打印x的值,并在打印前将x减1。循环条件是!x,即x为0时循环结束。初始值x=13,第一次循环时x减1变为12,打印出12。因为x不为0,所以循环再次执行,x减1变为11,打印出11。当x减到1时,继续执行循环,x减1变为0,打印出0。此时x为0,循环条件不满足,退出循环。因此,打印的结果是12。
A. 200
B. 100
C. 100 200
D. 输出格式符不够,输出不确定的值
解析:
题目给出的代码是:
perl
Copy code
printf("%d\n", (x, y));
这段代码中的逗号运算符,会依次计算它两边的表达式,并返回最后一个表达式的值。所以,(x, y)的值为变量y的值,即200。因此,printf函数会输出200。因此,答案选项A是正确的。
A. 9
B. 6
C. 7
D. 8
解析:题目解析:题目中给出了一个数组的定义int a[7]={3,4,5,6,7,8,9},数组的索引从0开始,所以a[5]表示数组中的第6个元素,即8。因此,答案选项D.8是正确的。
char a; int b;
float c; double d;
则表达式a*b+d-c值的类型为( )
int x=13;
do
{ printf("%2d",--x);}
while(!x);
printf("%d\n",(x,y));