C语言题。求详解

1.
main()
{
char s[]="ABCD",*p;
for (p=s;p<s+4;p+=2)
printf("%s",p);
printf("\n");
}
程序运行后的输出结果是:
2.
struct std
{
char ch;
int a[2];
float t;
double f;
} std1;
结构体变量 std1 占用内存的字节数为:
3.
struct dog
{
char ch[10];
int i;
int *p;
double k;
}dog1;
结构体变量dog1占用内存的字节数为:
3.
有以下结构体说明,请填空,以完成对结构体数组t定义:
struct STR
{
char a;
int b;
float c;
double d;
};
_____struct STR________t[20];

++a
先a自增1,然后赋值;a++
先赋值,
然后自增1
b=(++a)+(a++)+(++a)此时a先自增1为9即a=9,
=9+(a++)+(++a)下步a++
先赋值为9算
然后a自增1,就是a=9先运算在变成a=10
=9+9+(++a)此时a=10
做下步时
++a时
a先自增1
为11,且此时a=11
=9+9+11
=29
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-27
答案是30,先运算(++a),因为有两个(++a),所以a的值最后变成了10;(a--)是
b=(++a)+(a++)+(++a)这一句执行了以后再执行的,所以b=10+10+10,就是30
第2个回答  2012-11-14
1.
main()
{
char s[]="ABCD",*p;
for (p=s;p<s+4;p+=2)
printf("%s",p);
printf("\n");
}
程序运行后的输出结果是:
ABCD
CD

2.
struct std
{
char ch;
int a[2];
float t;
double f;
} std1;
结构体变量 std1 占用内存的字节数为:1+2*2+4+8=17

3.
struct dog
{
char ch[10];
int i;
int *p;
double k;
}dog1;
结构体变量dog1占用内存的字节数为:10+2+2+8=22

3.
有以下结构体说明,请填空,以完成对结构体数组t定义:
struct STR
{
char a;
int b;
float c;
double d;
};
_____struct STR________t[20]; --------------不明白什么意思追问

我也不知道,试卷上这么写的。

本回答被提问者和网友采纳
第3个回答  2012-11-14
1 ABCD
CD
2.1+3+2*4+4+8=24;
3.10+2+4+4+4+8=32;
//2.3存在字节对齐
第4个回答  2012-11-14
1,A
C
2,17
3,24
4,空上什么都不填就可以定义
相似回答