首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放
给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放
admin
2019-09-02
41
问题
给定程序中,函数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://jikaoti.com/ti/9Yf0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
下列排序方法中,最坏情况下比较次数最少的是
有以下程序voidfun(intx,inty,int*C,int*d)D){*c=x+y;*d=x—y;}main(){inta=4,b=3,c=0,d=0;fun(a,b,&c,&d);printf(
有以下程序#includevoidf(int*p,int*q);main(){intm=1,n=2,*r=&m;f(r,&n);printf("%d,%d",m,n);}voidf(int*p,int*q){p=
有以下程序:#includevoidfun(char*c){while(*c){if(*c>=’a’&&*c<=’z’)*c=*c一(’a’-’A’);C++;}}voidmain(){char
在嵌套使用if语句时,C语言规定else总是
s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是
当用户要求输入的字符串中含有空格时,应使用的输入函数是
关系R经过运算σA=B∧C>4∧D>3(R)的结果为()。
随机试题
A.HoldthelineB.flightnumberC.askaquestionD.ToNewYorkE.
试述支气管哮喘近代观点及治疗要点。
支配角膜的神经是
奥美拉唑治疗消化性溃疡其作用是( )
立式圆筒形焊接储液罐安装方法有()。
利须商贸公司于2007年3月213办理了工商登记并领取了营业执照,会计张某于当月办理了税务登记并领取了税务登记证,随即在注册地银行开立了基本存款账户。5月4日该公司出纳签发了一张支票,但未在支票上注明收款人姓名和金额;6月公司聘用了一位退休老会计担任出纳,
企业的专项工程人员薪酬应计入“管理费用”账户。()
H公司是一家农机生产企业。最近,该公司拟把业务延伸到种子、化肥、农药等农业生产相关服务体系。下列各项中,不属于H公司进入新产业所面临的行为性障碍有()。
根据《城市房地产开发经营管理条例》规定,达到房地产开发企业资格的条件是()。
渎职罪,是指国家机关工作人员利用职务上的便利或者徇私舞弊、滥用职权、玩忽职守,妨害国家机关的正常活动,损害公众对国家机关工作人员职务活动客观公正性的信赖,致使国家与人民利益遭受重大损失的行为。根据上述定义,下列行为犯了渎职罪的是:
最新回复
(
0
)