C语言不是很懂,急切请教该题选什么?求详细步骤
答案:6 悬赏:50
解决时间 2021-02-28 14:58
- 提问者网友:自食苦果
- 2021-02-27 21:19
C语言不是很懂,急切请教该题选什么?求详细步骤
最佳答案
- 二级知识专家网友:山河有幸埋战骨
- 2021-02-27 21:30
#include
#include
main(){
char a[5][10]={"china","beijing","you","tiananmen","welcome"};
int i,j;
char t[10];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(strcmp(a[i],a[j])>0)//strcmp是比较函数
{ strcpy(t,a[i]);//strcpy是复制函数
strcpy(a[i],a[j]);
strcpy(a[i],t);//你这里没变化啊答案是D,如果strcpy(a[j],t) 答案是C
}
puts(a[3]);//输出字符串
}
#include
main(){
char a[5][10]={"china","beijing","you","tiananmen","welcome"};
int i,j;
char t[10];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(strcmp(a[i],a[j])>0)//strcmp是比较函数
{ strcpy(t,a[i]);//strcpy是复制函数
strcpy(a[i],a[j]);
strcpy(a[i],t);//你这里没变化啊答案是D,如果strcpy(a[j],t) 答案是C
}
puts(a[3]);//输出字符串
}
全部回答
- 1楼网友:傲气稳了全场
- 2021-02-28 00:44
B项正确。
整个算法的目的是将字符串数组a的元素进行升序排列。
整个算法的目的是将字符串数组a的元素进行升序排列。
- 2楼网友:英雄的欲望
- 2021-02-28 00:22
这个应该是字符串的排序程序,a3是中间靠后一个,不是china就是welcome
应该是升序排列,那么就是welcome
应该是升序排列,那么就是welcome
- 3楼网友:愁杀梦里人
- 2021-02-27 23:40
这题确实是选C
我的理解是这样的:
两个for循环没什么好说的,冒泡排序,有小到大。
关键在于:他到底在排什么?字符串?我觉得不对。
根据定义,a是一个二维数组对不对,所以单取a[n]的时候,我们得到的是什么?应该是每个字符串的第一个字母
strcmp(a[i],a[j])比较的实际不是字符串的长度,而是 每个字符串的首字母,排序的结果是根据首字母,由小到大
你可以加上puts(a[0]); puts(a[1]); puts(a[2]); puts(a[3]); puts(a[4]);
我觉得输出应该是: Beijing China Tiananmen Welcome You
故而选C
这种学院派的题目,除了考试之外,真的没啥用处
我的理解是这样的:
两个for循环没什么好说的,冒泡排序,有小到大。
关键在于:他到底在排什么?字符串?我觉得不对。
根据定义,a是一个二维数组对不对,所以单取a[n]的时候,我们得到的是什么?应该是每个字符串的第一个字母
strcmp(a[i],a[j])比较的实际不是字符串的长度,而是 每个字符串的首字母,排序的结果是根据首字母,由小到大
你可以加上puts(a[0]); puts(a[1]); puts(a[2]); puts(a[3]); puts(a[4]);
我觉得输出应该是: Beijing China Tiananmen Welcome You
故而选C
这种学院派的题目,除了考试之外,真的没啥用处
- 4楼网友:爱难随人意
- 2021-02-27 22:45
该程序就是一个字符串的交换排序,但是程序本身存在问题,而没有实现排序,
puts(a[3]的内容还是tiananmen,答案是D
运行结果:
具体错误程序为:
{ strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[i],t);}应该修改为{ strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[j],t);}
正确的排序程序为
#include
#include
main()
{
char a[5][10]={"china", "beijing", "you", "tiananmen", "welcome"};
int i,j;
char t[10];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(strcmp(a[i],a[j])>0)
{
strcpy(t,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],t);
}
puts(a[3]);
}
- 5楼网友:猎心人
- 2021-02-27 22:30
strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[i],t) 估计应该写错了
strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[j],t)
如果是这样则
答案选 C
原型:extern int strcmp(const char *s1,const char * s2);
所在头文件:string.h
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1 当s1==s2时,返回值=0
当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[j],t)
如果是这样则
答案选 C
原型:extern int strcmp(const char *s1,const char * s2);
所在头文件:string.h
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1
当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯