首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放
给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放
admin
2019-09-02
47
问题
给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include<string.h>
#define N 5
#define M 8
void fun(char(*ss)[M])
{char*ps[N],*tp;int i,j,k;
for(i=0;i<N;i++)ps
=ss
;
for(i=0;i<N-1;i++) {
/**********found**********/
k=___1___;
for(j=i+1;j<N;j++)
/**********found**********/
if(strlen(ps[k])<strlen(___2___))k=j;
/**********found**********/
tp=ps
;ps
=ps[k];ps[k]=___3___;
}
printf("\nThe string after sorting by length:\n\n");
for(i=0;i<N;i++)puts(ps
);
}
main()
{char ch[N][M]={"red","green","blue","yellow","black"};
int i;
printf("\nThe original string\n\n");
for(i=0;i<N;i++)puts(ch
);
printf("\n");
fun(ch); }
选项
答案
(1)i (2)ps[j] (3)tp
解析
本题中函数fun的功能是利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。在fun函数中采用了选择排序法,在选择排序法中的降序排序,首先从数组中挑选一个最大的元素,把它和第一元素交换,接着从剩下的n-1个元素中再挑出一个最大的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。
第一空:分析可知,fun函数采用的选择排序,在第一空处是初始化k。“for(j=i+1;j<N;j++)”循环是寻找长度最长的字符串,找到之后和k字符串交换,因止匕k从0开始,随着i变化,故第一空处应为“i”。 第二空:“if(strlen(ps[k])y<strlen(___2___))k=j;”新的字符串ps[j]如果比ps[k]的长度长,那么k记录下新的最长的字符串的下标位置j,故第二空处应为“ps[j]。
第三空:“tp=ps
;ps
=ps[k];ps[k]=___3___;”是字符串地址交换,显然第三空处应是临时变量tp。
转载请注明原文地址:https://kaotiyun.com/show/vORp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、"ZhangQi"、9
下列选项中不属于面向对象程序设计特征的是
针对简单程序设计,以下叙述的实施步骤顺序正确的是
对长度为n的线性表排序,在最坏情况下,比较次数不是n(n一1)/2的排序方法是
对下列二叉树进行前序遍历的结果是
有以下程序#includevoidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]="ace",aa[10]="bbxxyy";
有以下程序#includevoidfun(char*a,char*b){while(*a==’*’)a++;while(*b=*a){b++;a++;}}main(){char*s="*a*b*",t[
s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是
有以下程序#includetypedefstruct{intb,p;}A;voidf(AC)/*,注意:c是结构变量名*/{intj;c.b+=1;c.p+=2;}main(){i;Aa={1,2};f(a);p
以下正确使用C语言标识符的是()。
随机试题
英国古典经济学家亚当.斯密以制针为例说明以下哪一点的好处( )
细胞需要直接消耗能量的电活动过程是
伤寒沙门菌Vi抗体的检查可用于
以下属于细胞内第二信使的是
不属于基底神经节的神经核团是
国家级文物保护单位的重点砖木、木结构的古建筑的室外消火栓设计流量应按()级耐火等级民用建筑物消火栓设计流量确定。
证券公司建立客户选择与授信制度,应采取的措施有()。Ⅰ.制定融资融券业务客户选择标准和开户审查制度,明确客户从事融资融券交易应当具备的条件和开户申请材料的审查要点与程序Ⅱ.建立客户信用评估制度Ⅲ.明确客户征信的内容、程序和方式,验证客户资
事业单位2010年6月30日对自用材料进行盘点,发现事业活动用A材料盘亏10件,每件600元,经营活动用B材料盘盈5件,每件800元。经查实并按规定报经批准同意,A材料盘亏属于正常损耗,B材料盘盈属于正常溢余,下列处理正确的有()。
在西周教育制度中,王侯太子入小学和大学的年龄分别是()。
When,in1976,JohnMidgleywasawardedtheCBEfortellingreadersofTheEconomistabouttheUnitedStates,hetookparticular
最新回复
(
0
)