C语言程序设计 程序填空题库及答案 下载本文

内容发布更新时间 : 2024/11/15 16:35:12星期一 下面是文章的全部内容请认真阅读。

【3.41】下面程序的功能是从键盘上输入两个字符串,对两个字符串分别排序;然后将它们合并,合并后的字符串按ASCII码值从小到大排序,并删去相同的字符。 #include

strmerge(a,b,c) /* 将已排好序的字符串a、b合并到c */ char *a,*b,*c; { char t,*w; w=c;

while( *a!= '\\0' ① *b!='\\0' )

{ t= ② ?*a++:*b<*a ? *b++ : ( ③ ); /* 将*a、*b的小者存入t */

if( *w ④ '\\0' ) *w=t;

else if( t ⑤ *w) *++w=t; /* 将与*w不相同的t存入w */ }

while( *a != '\\0' ) /* 以下将a或b中剩下的字符存入w */

if( *a != *w ) *++w=*a++; else a++; while( *b != '\\0')

if( *b != *w ) *++w=*b++; else b++; *++w = ⑥ ; }

strsort( char *s ) /* 将字符串s中的字符排序 */ { int i,j,n; char t,*w; ⑦ ;

for( n=0;*w != '\\0'; ⑧ ) w++;

for( i=0;i

if( s[i]>s[j] ) { ⑨ } } main( )

{ char s1[100],s2[100],s3[200]; printf(\; scanf(\,s1);

printf(\; scanf(\,s2); strsort(s1); strsort(s2); ⑩ = '\\0';

strmerge(s1,s2,s3); printf(\,s3); }

【3.42】已知某数列前两项为2和3,其后继项根据前面最后两项的乘积,按下列规则生成:

① 若乘积为一位数,则该乘积即为数列的后继项; ② 若乘积为二位数,则该乘积的十位上的数字和个位上的数字依次作为数列的两个后继项。

下面的程序输出该数列的前N项及它们的和,其中,函数sum(n,pa) 返回数列的前N项和,并将生成的前N项存入首指针为pa的数组中,程序中规定输入的N值必须大于2,且不超过给定的常数值MAXNUM。

例如:若输入N的值为10,则程序输出如下内容: sum(10)=44 2 3 6 1 8 8 6 4 2 4 #include \#define MAXNUM 100 int sum(n, pa) int n, *pa;

{ int count, total, temp; *pa = 2; ① =3; total=5; count=2; while( count++

{ ② = temp/10; total += *pa; if( count