程序改错
-------------------------------------
1题目:在一个一维整型数组中出其中最大的数及其下标。
      程序中共有4条错误语句,请改正错误。
-----------------*/
#define N 10
/**********FOUND**********/
float fun(int *a,int *b,int n)
{
int *c,max=*a;
for(c=a+1;c<a+n;c++)
  if(*c>max)
    {
    max=*c;
/**********FOUND**********/
    b=c-a;}
  return max;
}
main()
{
int a[N],i,max,p=0;
printf("please enter 10 integers:\n");
for(i=0;i<N;i++)
/**********FOUND**********/
scanf("%d",a[i]);
/**********FOUND**********/
m=fun(a,p,N);
printf("max=%d,position=%d",max,p);
}
-------------------------------------『错误答案』:
        1 int fun(int *a,int *b,int n)
        2 *b=c-a;}
        3 scanf("%d",&a[i]);
        4 max=fun(a,&p,N);
/*-----------------------------------
2题目:用起泡法对10个整数从小到大排序。
      程序中共有4条错误语句,请改正错误。
-------------------------------------
/**********FOUND**********/
void sort(int x,int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
/**********FOUND**********/
  for(j=0;j<n-i;j++)
/**********FOUND**********/
    if(x[i]>x[i+1])
      { t=x[j];x[j]=x[j+1];x[j+1]=t;}
}
main()
{
int i,n,a[100];
printf("please input the length of the array:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
    scanf("%d",&a[i]);
sort(a,n);
printf("output the sorted array:\n");
for(i=0;i<=n-1;i++)
  printf("%5d",a[i]);
printf("\n");
}
-------------------------------------
『错误答案』:
    1 void sort(int x[],int n)
  2 for(j=0;j<n-1-i;j++) for(j=0;n-1-i>j;j++) for(j=0;j<n-(1+i);j++) for(j=0;n-(1+i)>j;j++)
        3 if(x[j]>x[j+1]) if(x[j+1]<x[j])
-------------------------------------
3题目:在一个已按升序排列的数组中插入一个数,插入后,数
      组元素仍按升序排列。
      程序中共有4条错误语句,请改正错误。
#define N 11
main()
{
int i,j,t,number,a[N]={1,2,4,6,8,9,12,15,149,156};
printf("please enter an integer to insert in the array:\n");
/**********FOUND**********/
scanf("%f",&number)
printf("The original array:\n");
for(i=0;i<N-1;i++)
    printf("%5d",a[i]);
printf("\n");
/**********FOUND**********/
for(i=N-1;i>=0;i--)
  if(number<=a[i])
/**********FOUND**********/
    a[i]=a[i-1];
  else
    {a[i+1]=number;
/**********FOUND**********/
    exit;}
  if(number<a[0]) a[0]=number;
    printf("The result array:\n");
  for(i=0;i<N;i++)
    printf("%5d",a[i]);
printf("\n");
}
-------------------------------------
『错误答案』:
        1 scanf("%d",&number);
        2 for(i=N-2;i>=0;i--) for(i=N-2;0<=i;i--)
        3 a[i+1]=a[i];
        4 break;}
    ------------------------------------
4【程序改错】
题目:以下程序的功能是求如下表达式:
        S = 1 + 1/(1+2)+1/(1+2+3)+
1/(1+2+3+4)
      请改正程序中的错误,使程序能得到正确的运行结果。
#include <stdio.h>
main()
{
int n;
float fun();
printf("Please input a number:");
/**********FOUND**********/
printf("%d",n) ;                             
printf("%10.6f\n",fun(n));
}
/**********FOUND**********/
fun(int n)                                 
{
int i,j,t;
float s;
s=0;
/**********FOUND**********/
for(i=1;i<=n;i++);                           
{
  t=0;
scanf输入整型数组  for(j=1;j<=i;j++)
  t=t+j;
/**********FOUND**********/
  s=s+1/t;
  }                                 
return s;
}
『错误答案』:
        1 scanf("%d",&n);
        2 float fun(int n)
        3 for(i=1;i<=n;i++) for(i=1;n>=i;i++) for(i=1;i<n+1;i++) for(i=1;n+1>i;i++)
        4 s+=1.0/t s=s+1.0/(float)t; s=s+1.0/t; s+=1.0/(float)t
/*-----------------------------------
5题目:输入一行英文文本,将每一个单词的第一个字母变成大写。例如:输入"This is a C program.",输出为"This
      Is A C Program."
-------------------------------------
#include <string.h>
#include <stdio.h>
#include <conio.h>
/**********FOUND**********/
fun(char p)
{
int k=0;
/**********FOUND**********/
while(*p=='\0')
  {
  if(k==0&&*p!=' ')
    {
    *p=toupper(*p);
/**********FOUND**********/
      k=0;}
  else if(*p!=' ') k=1;
          else k=0;
/**********FOUND**********/
  *p+;
  }
}
main()
{
char str[81];
clrscr();
printf("please input a English text line:");
gets(str);
printf("The original text line is :");
puts(str);
fun(str);
printf("The new text line is :");
puts(str);
}
『错误答案』:
        1 fun(char *p) fun(char p[])
        2 while(*p!='\0') while(*p)
        3 k=1;}
        4 p++; p=1+p; ++p; p=p+1;
-------------------------------------
6【程序改错】
题目:将一个字符串中的大写字母转换成小写字母。
      例如:输入aSdFG输出为asdfg
-------------------------------------

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。