首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长
给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长
admin
2013-04-02
35
问题
给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define M 5
#define N 20
void fun(char (*ss)[N])
{int i, j, k=0, n, m, len;
for(i=0; i
{len=strlen(ss
);
if(i==0) n=len;
if(len>n) {
/**********found**********/
n=len; 【1】=i;
}
}
for(i=0; i
if (i!=k)
{m=n;
len=strlen(ss
);
/**********found**********/
for(j=【2】; j>=0; j--)
ss
[m--]=ss
[j];
for(j=0; j
/**********found**********/
【3】=’*’;
}
}
main()
{char ss[M][N]={"shanghai","guangzhou","beijing", "tianjing","cchongqing"};
int i;
printf("\nThe original strings are :\n");
for(i=0; i
);
printf("\n");
fun(ss);
printf("\nThe result:\n");
for(i=0; i
);
}
选项
答案
k len ss[i][j]
解析
第一空:第一for循环寻找最长的字符串,变量n记录字符串的长度,k记录最长字符串的下标位置。i=0时,将n赋值第一个字符串的长度,假设第一个字符串长度最长,以后其他字符串和n比较,如果比n大,则把新的字符串长度赋给n,k记录新的字符串下标位置,因此第一空处应为“k”。
第二空:“ss
[m--]=ss
[j];”是将字符串ss
[j]的字符往后移动,腾出左边位置补“*”。字符串的长度为len,字符串的最后一个字符ss
[len-1]移动到ss
[n-1],ss
[len-2]移动到ss
[n-2],直到全部字符都往后移动len位,因此第二空处应为“len”。
第三空:此处的循环是把空处来的位置补上“*”,因此第三空处应为“ss
[j]”。
转载请注明原文地址:https://kaotiyun.com/show/aJJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序: #include <string.h> main() {char p[]={’a’,’b’,’c’},q[10]={’a’,’b’,’c’}; printf("%d%d\n",strlen(p),strlen(q)
有以下程序: main() { char a1=’M’,a2=’m’; printf("%c\n",(a1,a2)); } 以下叙述中正确的是 ______。
有以下程序段: int n,t=1,S=0; scanf("%d",&n); do{s=s+t;t=t-2;}while(t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是 ______。
以下叙述中错误的是 ______。
以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:ABCDEFGHIJKLMNO
有以下程序 void swap(char *x,char *y) {char t; t=*x;*x=*y;*y=t; } main() {char *s1="
有以下程序 main() {int i,s=0,t[]={1,2,3,4,5,6,7,8,9 }; for(i=0;i<9;i+=2) s+=*(t+i); printf("%d\
有以下程序 int fun1 (double a){return a*=a;} int fun2 (double x,double y) { double a=0,b=0; a=fun1
有以下程序 main() {int a=0,b=0,c=0,d=0; if(a=1)b=1;c=2; else d=3; printf("%d,%d,%d,%d\
若有以下函数首部 int fun(double x[lO],int *n) 则下面针对此函数的函数声明语句中正确的是______。
随机试题
《证券法》规定,证券公司的对外负债总额不得超过其______规定倍数。
企业的预算主要包括哪几个方面?
Besidesbeginanendlesssourceofenergy,theuseofthesunhasotheradvantagesaswell.
胸段食管癌多见于________、________次之,________较少。
男性,54岁。1年前日常活动后出现胸骨后疼痛,每日2~3次,近2月发作次数增多,每日5~6次,轻微活动也能诱发,发作时心电图ST段呈一过性水平压低,应诊断为
患儿,日龄4天,鼻塞,体温39.9℃,咽充血,诊断为上呼吸道感染。对该患儿的护理措施应首选
下列账户中,属于备抵账户的有()。
下列有关文学常识的表述,不正确的一项是()。
治安行政管理必须坚持(),同时努力发展群众的自治管理。
这些辣椒看起来很辣,其实一点儿都不辣。
最新回复
(
0
)