读下列程序说明和C程序,将应填入(n)处。【程序说明】该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。【程序】include<stdio.h>void strmerge(char,a,char *b,char *c) //将字符串a,b合并到字符串c中{char t,*w;w=c;while((1)){//找到字符串a,b当前字符中较小的字符if(*a< *b){t= *a;(2);{else if (*a>*b){t= *b;(3);}else //字符串a,b当前字符相等{t= *a;a++;b++;}if((4)) //开始,可直接赋值*w=t;else if(t!=*w)//如果a,b中较小的当前字符与c中当前字符不相等,才赋值(5);}if(*a!=\'\0') //如果字符串a还没有结束,则将a的剩余部分赋给Cwhile(*a!='\0')if(*a!=*w){*(++w)=*a;a++;}else(6);if(*6!='\0') //如果字符串b还没有结束,则将b的剩余部分赋给cwhile(*b!='\0')if(*b! = *w){*(++w)=*b;b++;}elseb++;(7);}void strsort(char*s) //将字符串S中的字符排序{int i,j,n;char t,*w;W=S;for(n=0;*w!='\0';n++) //得到字符串长度nw++;for(i=0;i<n-1;i++) //对字符串s进行排序,按字母先后顺序for(j=i+1;j<n;j++)if((8)){t=s[i];s[i]=s[j];(9);}}void main(){char s1[100],s2[100],s3[100];printf("\nPlease,input the first string:");scanf("%s",s1);printf("\nPlease input the second string:");scanf("%s",s2);strsort(s1); //将字符串s1排序strsort(s2); //将字符串s2排序printf("%s\n",s1);printf("%s\n",s2);s3[0]='\0'; //字符串s3的第一个字符先置'\0'结束标志(10) //将s1和s2合并,按照字母顺序排列,//且要删去相同字符,存入s3中printf("%s",s3);}

读下列程序说明和C程序,将应填入(n)处。

【程序说明】

该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。

【程序】

include<stdio.h>

void strmerge(char,a,char *b,char *c) //将字符串a,b合并到字符串c中

{

char t,*w;

w=c;

while((1))

{//找到字符串a,b当前字符中较小的字符

if(*a< *b)

{

t= *a;

(2);

{

else if (*a>*b)

{

t= *b;

(3);

}

else //字符串a,b当前字符相等

{

t= *a;

a++;

b++;

}

if((4)) //开始,可直接赋值

*w=t;

else if(t!=*w)

//如果a,b中较小的当前字符与c中当前字符不相等,才赋值(5);

}

if(*a!=\'\0') //如果字符串a还没有结束,则将a的剩余部分赋给C

while(*a!='\0')

if(*a!=*w)

{

*(++w)=*a;

a++;

}

else

(6);

if(*6!='\0') //如果字符串b还没有结束,则将b的剩余部分赋给c

while(*b!='\0')

if(*b! = *w)

{

*(++w)=*b;

b++;

}

else

b++;

(7);

}

void strsort(char*s) //将字符串S中的字符排序

{

int i,j,n;

char t,*w;

W=S;

for(n=0;*w!='\0';n++) //得到字符串长度n

w++;

for(i=0;i<n-1;i++) //对字符串s进行排序,按字母先后顺序

for(j=i+1;j<n;j++)

if((8))

{

t=s[i];

s[i]=s[j];

(9);

}

}

void main()

{

char s1[100],s2[100],s3[100];

printf("\nPlease,input the first string:");

scanf("%s",s1);

printf("\nPlease input the second string:");

scanf("%s",s2);

strsort(s1); //将字符串s1排序

strsort(s2); //将字符串s2排序

printf("%s\n",s1);

printf("%s\n",s2);

s3[0]='\0'; //字符串s3的第一个字符先置'\0'结束标志

(10) //将s1和s2合并,按照字母顺序排列,

//且要删去相同字符,存入s3中

printf("%s",s3);

}


相关考题:

●试题四阅读下列程序说明和C程序,将应填入(n)处的字句写在答卷纸的对应栏内。【程序说明】该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。【程序】#includestdio.hvoid strmerge(char*a,char*b,char*c)//将字符串a,b合并到字符串c中{char t,*w;w=c;while( (1) ){//找到字符串a,b当前字符中较小的字符if(*a*b){t=*a;(2) ;}else if(*a*b){t=*b;(3) ;}else//字符串a,b当前字符相等{t=*a;a++;b++;}if( (4) )//开始,可直接赋值*w=t;else if(t!=*w)//如果a,b中较小的当前字符与c中当前字符不相等,才赋值 (5) ;}if(*a!=\′\0′)//如果字符串a还没有结束,则将a的剩余部分赋给cwhile(*a!=′\0′)if(*a!=*w){*(++w)=*a;a++;}else(6) ;if(*6!=′\0′)//如果字符串b还没有结束,则将b的剩余部分赋给cwhile(*b!=′\0′)if(*b!=*w){*(++w)=*b;b++;}elseb++;(7) ;}void strsort(char*s)//将字符串S中的字符排序{int i,j,n;char t,*w;W=S;for(n=0;*w!=′\0′;n++)//得到字符串长度nw++;for(i=0;in-1;i++)//对字符串s进行排序,按字母先后顺序for(j=i+1;jn;j++)if( (8) ){t=s[i];s[i]=s[j]; (9) ;}}void main(){char s1[100],s2[100],s3[100];printf("\nPlease,input the first string:");scanf("%s",s1);printf("\nPlease input the second string:");scanf("%s",s2);strsort(s1);//将字符串s1排序strsort(s2);//将字符串s2排序printf("%s\n",s1);printf("%s\n",s2);s3[0]=′\0′;//字符串s3的第一个字符先置′\0′结束标志(10) //将s1和s2合并,按照字母顺序排列,//且要删去相同字符,存入s3中printf("%s",s3);}

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。【程序2.1说明】求所有满足如下条件的三位数:它除以11得的商等于它各位数字的平方和。例如 550,除以11商为50,50=52+52+02。【程序2.1】void main(){int i, j,n,s;for(i=100;i<=999;i++){n=i;j=n/11;s=0;while((1)){(2)n/=10;}if((3))printf("%d\t",i);}}【程序2.2说明】本程序输入一字符串,将其中的大写字母改变成小写字母。【程序2.2】void main(){int i=0;char s[120];scanf("%s",s);while((4)){if((5))s[i]=s[i]- 'A'+'a';i++;}printf("%s\n",s);}

阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。【说明】阅读下面几段C++程序回答相应问题。比较下面两段程序的优缺点。①for (i=0; i<N; i++ ){if (condition)//DoSomething…else//DoOtherthing…}②if (condition) {for (i =0; i<N; i++ )//DoSomething}else {for (i=0; i <N; i++ )//DoOtherthing…}

阅读下列程序说明和C程序,将应填入(n)处的字句写在对应栏内。[函数2.1说明]下面程序的功能是计算x和y的最小公倍数。[函数2.1]main(){ int m,n,d,r;seanf("%d %d",m,n);if(m<n) {r=m;m=n;n=r;}(1);while (d%n! =0) (2);printf("%d\n",d);}[函数2.2说明]下述程序接收键盘输入,直到句点“.”时结束。输入的字符被原样输出,但连续的空格输入将转换成一个空格。[函数2.2]include <stdio.h>main(){ char c,preChar='\0';c = getchar();while(c! = '.'){if((3)) putchar(c);else if(preChar! =' ') putchar(c);(4);c=(5);}}

阅读下列说明和程序,回答问题l至问题3.将答案填入答题纸的对应栏内。【说明】在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中:【程序1】;实现两个变量的值的互换;【程序2】:完成某功能的C语言程序;【程序3】和【程序4】:是P、V操作的形式化定义,设S为信号量。在多道程序系统中,进程是并发执行的。这些进程间存在着不同的相互制约关系,主要表现为同步和互斥两个方面。信号量是解决进程间同步与互斥的有效方法。【程序1】【程序3】P操作的形式化定义P (S){(1):If(2) {阻塞该进程;将该进程插入信号量S的等待队列}}【程序4】V操作的形式化定义:V(S){(3)if(4) {从信号量s的等待队列中取出队首进程将其插入就绪队列:}}【问题1】(6分)执行【程序1】后,没有能够实现两个变量值的交换,为什么?请修改上述函数实现两个变量值的交换,要求函数无返回值,形式为:void swap(...)。请将答案填写在答题纸中对应的栏目。【问题2】(3分)请问【程序2】运行结果是什么?【问题3】(6分)请简述什么是临界资源?什么是临界区?请完成【程序3】和【程序4】的形式化定义,将应填入(n)处的内容写在答题纸的对应栏中。

●试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】该程序运行后,输出下面的数字金字塔【程序】includestdio.hmain (){char max,next;int i;for(max=′1′;max=′9′;max++){for(i=1;i=20- (1) ;++i)printf(" ");for(next= (2) ;next= (3) ;next++)printf("%c",next);for(next= (4) ;next= (5) ;next--)printf("%c",next);printf("\n");}}

试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]下面程序是一个带参数的主函数,其功能是显示在命令行中输入的文本文件内容。[C语言函数]#include"stdio.h"main(argc,argv) int argc; char *argv[]; { (1) ; if((fp=fopen(argv[1],”r’’))== (2) ) { printf(”file not open!\n”);exit(0);} while( (3) ) putchar( (4) ); (5); }

函数子程序FJ求一组数的和:为了完整程序,在____处应填入:(A) 0.0 (B) s(C) X(N) (D)N