问题标题:
小弟不才,有几题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...
查看更多
其它推荐
热门其它推荐