首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdlib.h> #inclu
下列给定程序中函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdlib.h> #inclu
admin
2017-02-24
28
问题
下列给定程序中函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<stdio.h>
#define MAXLINE 20
fun(char*pstr[6])
{
int i,j;
char*P;
for(i=0;i<5;i++)
{
/*********found*********/
for(j=i+1,j<6,j++)
{
if(strcrnp(*(pstr+i),(pstr+j))>0)
{
P=*(pstr+i);
/*********found*********/
*(pstr+i)=pstr+j;
*(pstr+j)=p;
}
}
}
}
void main()
{
int i;
char*pstr[6],str[6][MAxLINE];
system("CLS");
for(i=0;i<6;i++)
pstr
=str
;
printf("\nEnter 6 string(1 string at each line):\n");
for(i=0;i<6;i++)
scanf("%s",pstr
);
fun(pstr);
printf("The strings after sorting:\n");
for(i=0;i<6;i++)
printf("%s\n",pstr
);
}
选项
答案
(1)for(j=i+l;j<6;j++) (2)*(pstr+i)=*(pstr+j);
解析
本题考查:冒泡排序算法;for循环语句格式;指针数组。
(1)此处考查for语句的格式,各表达式之间应用“;”隔开。
(2)此处考查用指针表示数组元素的方法,*(pstr+i)表示pstr所指向数组的第i个元素,同理*(pstr+j)表示pstr所指向数组的第j个元素。
冒泡排序算法,其基本思想是:将待排序的元素看做是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中要对“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理两遍之后,“次轻”的元素就浮到了次高位置。依此类推,完成排序。
实现数组s[N]的升序排列代码如下:
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
if(s
>s[j])
{ t=s
;s
=s[j];
s[j]=t;)
转载请注明原文地址:https://jikaoti.com/ti/noi0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序#include<string.h>main(){charp[20]={’a’,’b’,’c’,’d’},q[]="abc",r[]="abcde";strcat(p,r);strcpy(p+strlen(q),
下面程序段的运行结果是chara[]="lanuage",*p;p=a;while(*p!=’u’){printf("%c",*p-32);p++;}
下列有关数据库的描述,正确的是
设有如下三个关系表下列操作中正确的是
以下程序的输出结果是【】。#includevoidswap(int*a,int*b){int*t;t=a;a=b;b=t;}main(){inti=3,j=5,*p=&i,
已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
下面程序的运行结果是【】。#include#defineSIZE12main(){chars[SIZE];intI;for(I=0;I
下列函数的运行结果是main(){inti=2,p;intj,k;j=i;k=++i;p=f(j,k);printf("%d",p);}intf(inta,intb){intc;if(a>b
函数的值通过return语句返回,下面关于return语句的形式描述错误的是
随机试题
1岁患儿,高热伴咳嗽5天,曾用青霉素治疗3天无效。查体:体温39.6℃,呼吸50次/分,心率150次/分,口唇青紫,轻度三凹征,两肺中小水泡音,右下肺叩诊稍浊,呼吸音减低,腹稍胀,肝肋下2cm。胸片示两肺大小不等斑片状密度增深影,右上肺有两个透光区。最
业务处理系统又被称为___________,它的主要服务对象位于企业的操作和执行层面()
关于深Ⅱ度烧伤,下列哪项是错误的()
位于A市甲区的家居公司与位于B市乙区的集美公司签订了一份木质家具买卖合同,合同约定:一年内集美公司分三次向家居公司提供木质家具,双方在集美公司位于B市丙区的仓库交付木质家具。集美公司向家居公司交付两批家具后,家居公司发现两批家具均存在不同程度的开裂等质量问
锅炉压力容器在运行中发生事故,应及时如实上报主管部门及()。
分析下面的谱例。要求:划分歌曲的乐句,用字母标记并注明每乐句起止的小节数。
个体关于自己或他人的认识活动、过程、结果以及与之有关的知识称为()
A、 B、 C、 D、 C
一台交换机总带宽为24Gbps,具有48个10/100Mbps电端口和若干个1000Mbps光端口,如果所有端口都工作在全双工作状态,那么该交换机光端口数最多为()。
A、Whilesittingintheirschool’scourtyard.B、Whileplayinggamesontheirphones.C、Whilesolvingamathematicalproblem.D、Wh
最新回复
(
0
)