请教C语言高手回答!!!

来源:百度知道 编辑:UC知道 时间:2024/05/26 21:27:41
1.根据定义和数据的输入方式,输入语句的正确形式为 B
已有定义:float f1,f2;
数据的输入方式: 4.52
3.5
A.scanf("%f,%f",&f1,&f2); B,scanf("%f%f",&f1,&f2);
我想问的是为什么答案是B, A为什么不行???

2.若有以下定义
struct stru{int a;
long b;
char c[6];
}samp1;
则以下赋值正确的是(B)
A.samp1.c="abcd"; B.strcpy(samp1.c,"abcd"); C.samp1->c="abcd";
我想请教一下 答案为什么为B , A,C为什么不行???谢谢!!!

3.以下程序的输出结果是 10
main()
{
union un{int i;
long k;
char c;
};
struct byte{
int a;
long b;
union un c;
}r;
printf("%d\n",sizeof(r));
}
请问以下 老师 结果10 是如何得来的???

4.以下程序段;
char s[20]="abcd",*p=s;
sp++;pus(strcat(sp,"ABCD"));
的输出结果是(D)
A.abcdABCD B.ABCDabcd C.bcdABCD D.BCDabcd
我想请问一下老师 答案D是如何得来的???

5.下面程序段中,for循环的执

1、scanf("%f%f", &a, &b);
输入数据时以一个或多个空格间隔,也可以用回车或tab,
如果%f之间有格式说明以外的其他字符,则在输入数据时
应输入与这些字符相同的字符。
2、AB答案好比:char str[6];
//str = "abcd"; //err
strcpy(str, "abcd");//right
参考数组定义的有关资料
C答案:samp1并不是指针,用-->本身就不符合c的语法。
3、sizeof(结构体)返回值,与成员声明的顺序有关,最大成
员占的字节数为自然对界条件,从前往后算,当某个成员
不在自然对界地址上并且在这个对界条件装不下的时候,
前面的成员补空字节对齐,这个成员从新的对界条件开始。
4、你的意思是不是
char s[20]="abcd",*sp=s;
sp++;
puts(strcat(sp,"ABCD"));
sp是指向字符数组的指针,sp=s;表示sp指向了数组s的首
地址,sp++表示sp指向下一个元素的地址。此时p[0]为'b',
p[1]为'c', p[2]为'd'。连接字符串后p[3]为'A'.....。
puts输出从p指向的地址到'\0'之间的字符串。"bcdABCD"
5、"\ta\018bc"中,编译器解析成'\01'表示成ASCII码
为1的字符。
6、*、/和%为同一优先级。1*7%2/4:1*7等于7,然后7%2等于
1,然后1/4等于0。
附加:两个整数相除,结果为一个整数