请教C语言高手回答!!!
1.根据定义和数据的输入方式,输入语句的正确形式为B已有定义:floatf1,f2;数据的输入方式:4.523.5A.scanf("%f,%f",&f1,&f2);B,s...
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循环的执行次数是(C)
char*s="\ta\018bc";
for( ;*s!='\0';s++) printf("*");
A.9 B,5 C.6 D.7
请问答案C从何而来???
谢谢帮我解答!!
6.下述程序的输出结果是(2.50000)
main()
{printf("%f",2.5+1*7%2/4);
}
请问为什么答案是2.50000????
麻烦Y_Snow - 秀才 二级再解释一下第三题~~ 谢谢这位老师!!! 展开
已有定义: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循环的执行次数是(C)
char*s="\ta\018bc";
for( ;*s!='\0';s++) printf("*");
A.9 B,5 C.6 D.7
请问答案C从何而来???
谢谢帮我解答!!
6.下述程序的输出结果是(2.50000)
main()
{printf("%f",2.5+1*7%2/4);
}
请问为什么答案是2.50000????
麻烦Y_Snow - 秀才 二级再解释一下第三题~~ 谢谢这位老师!!! 展开
3个回答
展开全部
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。
附加:两个整数相除,结果为一个整数,大多数编译器采用
“向零取整”的方法。
printf("%d\n", 5/3); //结果为1
printf("%d\n", -5/3); //结果为-1
输入数据时以一个或多个空格间隔,也可以用回车或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。
附加:两个整数相除,结果为一个整数,大多数编译器采用
“向零取整”的方法。
printf("%d\n", 5/3); //结果为1
printf("%d\n", -5/3); //结果为-1
展开全部
1,每个语言都有自己的定义,不是自己想怎么来就怎么来!输入输出都有固定的格式的!
2,也是定义问题,同上理由,字符串有好几种赋值,不一定是b,但是ac没有那种格式!
3r表示struct c ,c占用的空间是int a; long b;char c; 各占用多少每个版本的不一样,但基本上是a2b4c4
4,不懂!没看过这样的写法!
5char*s="\ta\018bc中的\0表示的是空格好像!总之这个不算字符!,下面那个;*s!='\0',表示结尾停止,你应该知道每个字符串后面必定以\0结尾!
6,纯粹是先乘除后加减问题,注意一点的是,1/8这样的取整问题,即c中整数类型,1/8等于0而不是0.125!
2,也是定义问题,同上理由,字符串有好几种赋值,不一定是b,但是ac没有那种格式!
3r表示struct c ,c占用的空间是int a; long b;char c; 各占用多少每个版本的不一样,但基本上是a2b4c4
4,不懂!没看过这样的写法!
5char*s="\ta\018bc中的\0表示的是空格好像!总之这个不算字符!,下面那个;*s!='\0',表示结尾停止,你应该知道每个字符串后面必定以\0结尾!
6,纯粹是先乘除后加减问题,注意一点的是,1/8这样的取整问题,即c中整数类型,1/8等于0而不是0.125!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1: A方式也可以输入,但是输入时两数中间要输入逗号;
#include <stdio.h>
void main()
{
int a,b;
scanf("%d,%d",&a,&b);
printf("%d,%d",a,b);
}
输入10,12回车;
输出10,12.
#include <stdio.h>
void main()
{
int a,b;
scanf("%d,%d",&a,&b);
printf("%d,%d",a,b);
}
输入10,12回车;
输出10,12.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询