正确答案: B
0
题目:下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));
解析:在本题中,程序段首先定义了一个字符型数组str,并将其初始化为“ABC”,然后定义一个字符型的指针变量p,使其指向数组str的首地址。然后程序运行输出语句,从输出语句的输出格式可以看出,要求输出的是一个十进制数值,而输出列表中的*(p+3)表示输出的是数组str中的第四个元素,从数组的初始化我们可以看出,其中只有三个字符元素,而输出语句则要求输出第四个元素。
查看原题
举一反三的答案和解析:
[单选题]下列程序输出的结果是( )。 main() { int a; a=-4+4*5-6;printf("%d",a); a=4+4%5-6;printf("%d",a); a=-3+4%6/5;printf("%d",a); a=(7+6)%5/2;printf("%d",a); }
102-3 1
解析:解析: 本题考查%和/算符的使用。如果两个数不能整除,只取结果的整数部分,小数部分全部舍去。运算符“%”要求两个运算对象都为整型,其结果是整数除法的余数。表达式:a=-4+4*5-6=-4+20-6=10;表达式:a=4+4%5-6=4+4-6=2;表达式:a=-3+4%6/5=-3+0=-3;表达式:a=(7+6)%5/2=13%5/2=1。
[单选题]下面程序main(){ int x=32; printf("%d\n", x=x1);}的输出是______。
64
解析:解析:是C语言中规定的左移运算符,例如,a=a2,这个语句即是将a的二进制数左移两位,左移一位相当于该数乘于2,左移两位相当于该数乘以2的2次方。所以,x1=32*2=64。