请教几道C语言的题目

来源:百度知道 编辑:UC知道 时间:2024/05/01 00:54:27
(1)
struct abc
{
int a, b, c;
};
??
main()
{
struct abc s[2]={{1,2,3},{4,5,6}};
int t;
?? t=s[0],a+s[1],b;
?? printf("%d\n",t);
}

(2)
main()
{
char arr[2][4];
?? strcpy(arr,"you");
strcpy(arr[1],"me");
?? arr[0][3]='&';
?? printf("%s \n",arr);
}

以上两个程序的运行结果分别是什么?可以解释一下是各是怎么得出结果的吗?

下列程序段的输出结果是什么?
printf("%o\n", 010<<1^1);
可以解释一下位运算符^是怎么使用的吗?

(1)
结果是6.

t=s[0],a+s[1],b;//这句话你打错了。应该是: t=s[0].a+s[1].b;
用来计算结构体数组s中,第1个结构体的第一个值(1)与第二个结构体的第二个值(5)之和.

(2)
结果是you&me
main()
{
char arr[2][4];
?? strcpy(arr,"you");//把you拷贝到字符串arr[0]前三个位置中.
strcpy(arr[1],"me"); //把me拷贝到字符串arr[1]前2个位置中.
?? arr[0][3]='&'; ");//把&拷贝到字符串arr[0]第四个位置中.

?? printf("%s \n",arr); //输出arr[0]和arr[1].
}

^是按二进制算,相同是0,不同是1.

第一题:1
第二题:you&me
位运算符^是怎么使用:
按二进制算,同出0异出1