问题标题:
小弟不才,有几题c语言的问题请教大虾,还请答疑解惑!1.以下程序的输出结果是#include"stdio.h"main(){inti=010,j=10,k=0x10;printf("%d,%d,%dn",i,j,k);}A.8,10,16B.8,10,10C.10,10,10D.10,10,16PS:请问第
问题描述:
小弟不才,有几题c语言的问题请教大虾,还请答疑解惑!
1.以下程序的输出结果是
#include"stdio.h"
main()
{inti=010,j=10,k=0x10;
printf("%d,%d,%dn",i,j,k);
}
A.8,10,16B.8,10,10C.10,10,10D.10,10,16
PS:请问第三个输出的16是十六进制的转化为是十进制的,请问十六进制在c语言中合法的表示方法是怎么样的?
2.一下对c语言字符数组的描述中错误的是
A字符数组可以存放字符串
B字符数组中的字符串可以整体输入、输出
C可以在复制语句中通过赋值运算符“=”对字符数组整体赋值
D不可以用关系运算符对字符数组中的字符串进行比较
3,有以下程序段:
intx=3;
do
{printf("%2d",x-=2);}
while(!(--x));
执行后的输出结果是
A1B30C1-2D死循环
4.设有以下定义:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*prt)[3]=a,*p=a[0];
则下列能够正确表示数组元素a[1][2]的表达式是
A.*((*prt+1)[2])B.*(*(p+5))C.(*prt+1)+2D.*(*(a+1)+2
补充:答案分别是ACCD,但是不是太懂,请大虾给解释下!谢谢
杜召彬回答:
1.打印时,想打印16进制的不是%d,而是%x2.chara[]="abcdef";printf("%sn",a);这样可以的3.当x=3,x=x-2,x=1;--x=0,!(--x)为真,x=x-2=-2,!(--x)为假因此1-24.你要知道数组和指针*(a+x)==a[x];*(*(a...
查看更多