首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
admin
2015-06-08
81
问题
给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 5
#defime M 8
void fun(char(*ss)[M])
{ char * ps[N],*tp;int i,j,k;
for(i=0;i
=ss
;
for(i=0; i
/**********found***********/
k= ___1___;
for(j=i+1 ; j
/**********found***********/
if(strlen(ps[k])
(___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
);
}
main()
{ char ch[N][M]={“red”,“green”,
“blue”,“yellow”,“black”};
int i ;
printf(“\nThe original string\n\n”);
for(i=0;i
);
printf(“\n”);
fun(ch);
}
选项
答案
(1)i (2)ps[j] (3)tp
解析
本题中函数fun的功能是利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。在fun函数中采用了选择排序法,在选择排序法中的降序排序,首先从数组中挑选一个最大的元素,把它和第一元素交换,接着从剩下的n—1个元素中再挑出一个最大的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。
[解题思路]
第一空:分析可知,fun函数采用的选择排序,在第一空处是初始化k。“for([j=i+1;j
第二空:“if(strlen(ps[k])<strlen(____2____))k=j;”新的字符串ps
如果比ps[k]的长度长,那么k记录下新的最长的字
符串的下标位置j,故第二空处应为“ps[j]”。
第三空:“tp=ps
;ps
=ps[k];ps[k]=____3____;”是字符串地址交换,显然第三空处应是临时变量tp。
转载请注明原文地址:https://kaotiyun.com/show/wiJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
数据库设计包括两个方面的设计内容,它们是()。
下面程序的输出是【】。main(){intarr[10],i,k=0;for(i=0;i<10;i++)arr[i]=i;for(i=1;i<4;i++)k+=arr
有如下程序:#definen2#definemN+1#defineNUM2*m+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n",
有如下程序intfunc(inta,intB){return(a+B);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);prin
有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;}程序在执行了c=&b;b=&a;语句后,表达式**c的值是______。
X、Y、Z被定义为mt型变量,若从键盘给X、Y、2输入数据,正确的输入语句是______。
下面函数用来求出两个整数之和,并通过形参传回两数相加之和值。请填空。 intadd(intx,inty,【】,) {【】=x+y;}
请读程序:#include<stdio.h>func(inta,intb){intc;c=a+b;returnc;}main(){intx=
在一个容量为25的循环队列中,若头指针front=16,尾指针rear=9,则该循环队列中共有【】个元素。
要求以下程序的功能是计算s=1+1/2+1/3+…+1/10main(){intn;floats;s=1.0;for(n=1O;n>1;n--)s=s+1/n;printf("%6.4f\n
随机试题
十二指肠
男性,70岁,慢性肾衰竭,心悸2天,查心电图发现T波高尖,QT间期延长。
某患者女性,诊断为Graves病,应用甲巯咪唑治疗一个月,症状缓解,但甲状腺肿及突眼反而加重,目前应选择的治疗措施是
慢性肺心病病人不易发生的并发症是
2012年1月1日,乙建筑公司与客户签订—项固定造价建造合同,承建—幢办公楼,预计2013年6月30日完工;合同总金额为8000万元,预计合同总成本为7000万元。2013年4月28日,工程提前完工并符合合同要求。客户同意支付奖励款200万元。截止2012
宗教信仰自由是指()。
USB1.1和USB2.0的区别之一在于传输率不同,USB1.1的传输率是
______magazineisoverthere.Pleasepassittome.
Thefollowingaretwoexcerptsaboutjobhopping.ReadthetwoexcerptscarefullyandwriteanarticleofNOLESSTHAN300WOR
A、ShewillmoveoutnextTuesday.B、Shehasn’tdecidedtomovein.C、ThemancanpossiblymoveinonWednesday.D、Themancanmo
最新回复
(
0
)