手机版

C语言程序改错题

时间:2025-07-08   来源:未知    
字号:

C语言程序改错题

程序改错

-------------------------------------

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条错误语句,请改正错误。 -------------------------------------

1

main() {

int a[10]; void input(); void output(); void max_min(); input(a,10); max_min(a,10); output(a,10); }

void input(int *arr,int n) { int *p,i; p=arr;

printf("please enter 10 integers:\n"); for(i=0;i<n;i++)

/**********FOUND**********/ sca("%d",&p++);

}

void max_min(int *arr,int n) {

int *min,*max,*p,t; min=max=arr;

for(p=arr+1;p<arr+n;p++) if(*p>*max)

/**********FOUND**********/ *max=*p;

else if(*p<*min) min=p; t=*arr;*arr=*min;*min=t; /**********FOUND**********/

if(max=arr) max=min;

t=*(arr+n-1);*(arr+n-1)=*max;*max=t; }

void output(int *arr,int n) {

int *p,i; p=arr;

printf("The changed array is:\n"); /**********FOUND**********/ while(i=0;i<n;i++); printf("%3d",*p++); printf("\n"); }

-------------------------------------『错误

C语言程序改错题

答案』:

1 scanf("%d",p++); 2 max=p;

3 if(max==arr)

4 for(i=0;i<n;i++) 或 for(i=0;n>i;i++) 或 for(p=arr;p<arr+n;) ------------------------------------- 4题目:用起泡法对10个整数从小到大排序。 程序中共有4条错误语句,请改正错误。 ------------------------------------- 3题目:在一个已按升序排列的数组中插入一个数,插入后,数

组元素仍按升序排列。

程序中共有4条错误语句,请改正错误。 #define N 11 main()

{ int

------------------------------------- /**********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 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])

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]; the 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;}

------------------------------------ 5【程序改错】

题目:将一个字符串中第m个字符开始的全部字符

2

C语言程序改错题

复制成为另一

个字符串。

程序中共有4条错误语句,请改正错误。 ------------------------------------- #include<stdio.h>

void strcopy(char *str1,char *str2,int m) /**********FOUND**********/ {char p1,p2;

int i,j;

/**********FOUND**********/ p1=str1+m; p2=str2;

/**********FOUND**********/ if(*p1);

*p2++=*p1++; *p2='\0'; } main() {

int i,m;

char *p1,*p2,str1[80],str2[80]; p1=str1; p2=str2; gets(p1);

scanf("%d",&m);

/**********FOUND**********/ strcat(str1[0],str2[0],m); puts(p1);puts(p2); }

-------------------------------------『错误答案』:

1 { char *p1,*p2; 或 { char *p2,*p1; 2 p1=str1+m-1; 或 p1=-1+str1+m; 3 while(*p1)

4 strcopy(str1,str2,m);

------------------------------------- 6【程序改错】

题目:以下程序的功能是求如下表达式: S = 1 + 1/(1+2)+1/(1+2+3)+ 1/(1+2+3+4)…

请改正程序中的错误,使程序能得到正确的运行结果。

3 …… 此处隐藏:21452字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言程序改错题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)