早教吧 育儿知识 作业答案 考试题库 百科 知识分享

小弟不才,有几题c语言的问题请教大虾,还请答疑解惑!1.以下程序的输出结果是#include"stdio.h"main(){inti=010,j=10,k=0x10;printf("%d,%d,%d\n",i,j,k);}A.8,10,16B.8,10,10C.10,10,10D.10,10,16PS:请问第

题目详情
小弟不才,有几题c语言的问题请教大虾,还请答疑解惑!
1.以下程序的输出结果是
#include"stdio.h"
main( )
{ int i=010,j=10,k=0x10;
printf("%d,%d,%d\n",i,j,k);
}
A.8,10,16 B.8,10,10 C.10,10,10 D.10,10,16
PS:请问第三个输出的16是十六进制的转化为是十进制的,请问十六进制在c语言中合法的表示方法是怎么样的?
2.一下对c语言字符数组的描述中错误的是
A 字符数组可以存放字符串
B 字符数组中的字符串可以整体输入、输出
C 可以在复制语句中通过赋值运算符“=”对字符数组整体赋值
D 不可以用关系运算符对字符数组中的字符串进行比较
3,有以下程序段:
int x=3;
do
{ printf("%2d",x-=2); }
while(! (--x));
执行后的输出结果是
A 1 B 30 C 1 -2 D 死循环
4.设有以下定义:
int a[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)+2 D.*(*(a+1)+2
补充:答案分别是A C C D,但是不是太懂,请大虾给解释下!谢谢
▼优质解答
答案和解析
1.打印时,想打印16进制的不是%d,而是%x2. char a[] = "abcdef"; printf("%s\n",a);这样可以的3.当x=3,x=x-2,x=1; --x=0,!(--x)为真,x=x-2=-2, !(--x)为假 因此1 -24.你要知道数组和指针*(a + x) == a[x];*(*(a ...