下列给定程序中,函数fun()的功能是;利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头两个元素进行排序,然后把第3个字符插入到前两个字符中,插入后前3个字符依然有序;再把第4个字符插入到前3个字符中,待排序的字符串已在主函数中赋予。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.
试题程序:
include <String.h>
include <stdio.h>
define N 80
void insert(char *aa)
{ iht i, j, n; char ch;
n=strlen (aa);
for (i=1; i<n; i++)
/**********************************/
{ c=aa[i];
j=i-1;
while ((j>=0) && (ch<aa [j] ))
{ aa [j+l]=aa[j];
j--;
}
aa [j+l]=ch;
}
}
main ()
{ char a [N] = "QWERTYUIOPASDFGHJKIMNBVCXZ";
int i;
printf("The original string: %s\n",a);
insert (a);
printf("The string after sorting:
%s\n\n", a);
}
第1题
否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:abcba。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<string.h>
include<stdio.h>
char *fun(char*str)
{
char *p1,*p2;
int i, t=0;
p1=str;p2=str+strlen(str)-1;
for (i=0;【 】;i++)
if(【 】)
{
t=1;
break;
}
if (【 】)
return("yes!");
else
return("no!");
}
main()
{
char str[50];
printf("Input;");
scanf("%s",str);
printf("%s\n",fun(str));
}
第2题
降序排序后输出。
例如:输入dafhc,则应输出hfdca。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,敢不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio.h>
/*************found**************/
int fun(char t[])
{
char c;
int i,j;
for(i=0;i<strlen(t)-1;i++)
for(j=i+1;i<strlen(t);j++)
if(t[i]<t[j])
{
c=t[j];
/*************found**************/
t[i]=t[i++];
t[i]=c;
}
}
main()
{
char s[81];
clrscr();
printf("\nPlease enter a character
string:");
gets(s);
printf("\n\nBefore sorting:\n%S",s);
fun(s);
printf("\nAfter sorting decendingly:\n
%s",s);
}
第3题
偶数的字符保存在字符串str2中并输出。例如,当str1=“cdefghij”,则 str2=“cegi”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
include<conio.h>
define LEN 80
main()
{
char str1[LEN],str2 [LEN];
char *p1=str1,*p2=str2;
int i=0,j=0;
clrscr();
printf("Enter the string:\n");
scanf(【 】);
printf("***the origial string***\n");
while(*(p1+j))
{
printf("【 】",*(p1+j));
j++;
}
for(i=0;i<j;i+=2)
*p2++=*(str1+i);
*p2='\0';
printf("\nThe new string is:%s\n", 【 】 );
}
第4题
写代表最大值的输出项。
include<stdio.h>
main( )
{int a[10],*p,*S;
for(p=a;p-a<10;p++)scanf(”%d”,p);
for(p=a,s=a;p-a<10;p++)if(*p>*s)s=p;
printf(”max=%d\n”,________);
}
第5题
下列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include<stdio.h>
define N 20
void fun(int a[],int n)
{int i,j,t,p;
for (j=0;j<n-1;j++)
/*************found**************/
{p=j
for(i=j;i<n;i++)
if(a[i]<a[p])
/*************found**************/
p=j;
t=a[p]; a[p]=a[j]; a[j]=t;
}
}
main()
{int a[N]={9.6,8,3,-1},i,m=5;
printf("排序前的数据: ");
for(i=0;i<m;i++) printf("%d",a[i]);
printf("\n");
fun(a,m);
printf("排序后的顺序: ");
for(i=0;i<m;i++) printf("%d",a[i]);
printf("\n");
}
第6题
下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。
例如:输入352,则输出应该是38;若输入328,则输出应该是77。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio.h>
include <conio.h>
long fun(long num)
{
/*+**+*+*+*found************/
long k=1;
do
{
k+=(num%10)*(num%10);
num/=10;
/*********+found*+**+*+******/
}while(num)
return(k);
}
main()
{
long n;
clrscr();
printf("\Please enter a number:");
scanf("%ld",&n);
printf("\n%ld\n",fun(n));
}
第7题
下列给定程序中,函数fun()的功能是:根据整型参数m,计算如下公式的值。
y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)
例如,若m=2000,则应输出0.000160。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio. h>
/*************found**************/
fun (int m)
{ double y=0, d;
int i;
/*************found**************/
for (i=100, i<=m, i+=100)
{d= (double) i* (double) i;
y+=l. 0/d;
}
return (y);
}
main ( )
{ int n=2000;
clrscr();
printf("\nThe result is %lf\n",fun(n));
第8题
下列给定程序中,函数fun()的功能是:计算整数n的阶乘。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio.h>
double fun(int n)
{
double result=l.0;
whil (n>l&&n<170)
/**************found********************/
result*=--n;
/**************found********************/
return;
main()
{int. n;
clrscr();
printf("Enter an integer: ");
scanf("%d",&n);
printf("\n\n%d!=%lg\n\n ",n, fun(n));
}
第9题
角线元素之积。
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include<stdio.h>
int fun()
{
int a[3][3],mu1;
int i,j;
mu1=l;
for (i=0;i<3;i++)
{
/*************found*************/
for(i=0;i<3;j++)
scanf(“%d”,&a[i][j]);
}
for(i=0;i<3;i++)
/*************found*************/
mu1=mu1*a[i][j];
printf("Mu1=%d\n",mu1);
}
main()
{
fun();
}
第10题
以下程序运行后的输出结果是 。
include
main()
{FILE*fp;int x[6]={l,2,3,4,5,6},i;
fp=fopen(“test.dat”,”wb“);
fwrite(x,sizeof(int),3,fp);
rewind(fp);
fread(x,sizeof(int),3,f}]);
for(i=0;i<6;i++)printf(“%d”,x[i]);
printf(“\n”);
fclose(fp);
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!