77范文网 - 专业文章范例文档资料分享平台

程序改错题

来源:网络收集 时间:2020-03-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

程序改错练习题

/*---------------------------------------------------- 【程序改错】第1题

------------------------------------------------------ 功能:输入一行字符,分别统计出其中英文字母、空格、数字

和其它字符的个数。

----------------------------------------------------*/ #include main() {

char c;

int letters=0,space=0,digit=0,others=0; printf(\ /**********FOUND**********/ while((c=getchar())=='\\n') {

/**********FOUND**********/

if(c>='a'&&c<='z'&&c>='A'&&c<='Z') letters++;

/**********FOUND**********/ else if(c=!' ') space++;

else if(c>='0'&&c<='9') digit++; else

others++; }

printf(\others=%d\\n\ space,digit,others); }

答案:

=======(答案1)=======

while((c=getchar())!='\\n') =======(答案2)=======

if( c>='a'&&c<='z' || c>='A'&&c<='Z' ) =========或=========

if( c<='z'&&c>='a' || c>='A'&&c<='Z' ) =========或=========

if( c <= 'z' && c >= 'a' || c >= 'A' && c<='Z' ) =======(答案3)======= else if(c==' ')

/*---------------------------------------------------- 【程序改错】第2题

------------------------------------------------------ 功能:实现交换两个整数的值。

例如:给a和b分别输入3和6 ,输出为a=6 b=3

----------------------------------------------------*/ #include

/**********FOUND**********/ void fun (int a, b) {

int t;

/**********FOUND**********/

t=a;

/**********FOUND**********/ a=b;

/**********FOUND**********/ b=t; }

main() {

int a,b;

printf(\ fun(&a,&b);

printf(\}

答案:

=======(答案1)======= void fun (int *a,int *b) =========或========= fun (int *a,int *b) =======(答案2)======= t=*a;

=======(答案3)======= *a=*b;

=======(答案4)======= *b=t;

/*---------------------------------------------------- 【程序改错】第3题

------------------------------------------------------ 功能:在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。

----------------------------------------------------*/ #include #define N 11 main() {

int i,number,a[N]={1,2,4,6,8,9,12,15,149,156}; printf(\array:\\n\

/**********FOUND**********/ scanf(\

printf(\ for(i=0;i

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

printf(\ for(i=0;i

printf(\ printf(\}

答案:

=======(答案1)======= scanf(\=======(答案2)======= for(i=N-2;i>=0;i--) =========或========= for(i=N-2;0<=i;i--) =======(答案3)======= a[ i + 1 ]=a[i];

=======(答案4)======= break;

/*---------------------------------------------------- 【程序改错】第4题

------------------------------------------------------ 功能:读取7个数(1-50)的整数值,每读取一个值,程序打

印出该值个数的*。

----------------------------------------------------*/ #include main() {

int i,a,n=1;

/**********FOUND**********/ while(n<7) { do {

scanf(\ }

/**********FOUND**********/ while(a<1&&a>50);

/**********FOUND**********/ for(i=0;i<=a;i++) printf(\ printf(\ n++; } }

答案:

=======(答案1)======= while(n<=7)

=========或========= while(n<8)

=======(答案2)======= while(a<1||a>50); =========或========= while(a>50||a<1);

=======(答案3)======= for(i=1;i<=a;i++)

/*---------------------------------------------------- 【程序改错】第5题

------------------------------------------------------ 功能:求1到10的阶乘的和。

----------------------------------------------------*/ #include main() {

int i; float s=0;

float fac(int n);

/**********FOUND**********/ for(i=1;i<10;i++)

/**********FOUND**********/ s=fac(i);

printf(\}

float fac(int n) {

/**********FOUND**********/ int y=1; int i;

for(i=1 ;i<=n;i++) y=y*i;

/**********FOUND**********/ return; }

答案:

=======(答案1)======= for(i=1;i<=10;i++) =========或========= for(i=1;10>=i;i++) =========或========= for(i=1;i<11;i++) =========或========= for(i=1;11>i;i++)

=======(答案2)======= s= s + fac(i) ;

=========或========= s+=fac(i);

=========或========= s=fac(i)+s;

=======(答案3)======= float y=1.0;

=========或========= float y=1;

=======(答案4)======= return y;

=========或========= return(y);

=========或========= return (y);

/*---------------------------------------------------- 【程序改错】第6题

------------------------------------------------------ 题目:下列给定程序中函数fun的功能是:用选择法对数组中的n个元素进行升序排列。

----------------------------------------------------*/ #include #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(\ printf(\ fun(a,m);

printf(\排序后的数据:\ for(i = 0;i < m;i++)

printf(\ printf(\}

答案:

=======(答案1)======= p=j ;

=======(答案2)======= p=i;

/*---------------------------------------------------- 【程序改错】第7题

------------------------------------------------------ 功能:用起泡法对10个整数从小到大排序。

----------------------------------------------------*/ #include

/**********FOUND**********/ void sort(int x,int n) {

int i,j,t;

for(i=0;i

/**********FOUND**********/ for(j=0;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(\ scanf(\ for(i=0;i

scanf(\

/**********FOUND**********/ sort(n,a);

printf(\ for(i=0;i<=n-1;i++) printf(\ printf(\}

答案:

=======(答案1)======= void sort(int *x,int n) =========或========= 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

for(j=0;n-( 1 + i )>j;j++) =========或=========

for(j=0;j<= n -2 -i ;j++) =======(答案3)======= if(x[j]>x[ j + 1 ]) =========或========= if(x[ j + 1]

/*---------------------------------------------------- 【程序改错】第8题

------------------------------------------------------ 功能:在一个一维整型数组中找出其中最大的数及其下标。 ---------------------------------------------------*/ #include #define N 10

/**********FOUND**********/ float fun(int *a,int *b,int n) {

int *c,max=*a;

for(c=a+1;cmax) {

max=*c;

/**********FOUND**********/ b=c-a; }

return max; }

void main() {

int a[N],i,max,p=0;

printf(\ for(i=0;i

/**********FOUND**********/ get(\

/**********FOUND**********/ m=fun(a,p,N);

printf(\}

答案:

=======(答案1)=======

int fun(int *a,int *b,int n) =======(答案2)======= *b=c-a;

=======(答案3)======= scanf(\=========或========= scanf(\=======(答案4)======= max=fun(a,&p,N);

/*---------------------------------------------------- 【程序改错】第9题

------------------------------------------------------ 功能:判断字符ch是否与str所指串中的某个字符相同; 若

相同,什么也不做,若不同,则将其插在串的最后。

----------------------------------------------------*/ #include #include #include

/**********FOUND**********/ void fun(char str, char ch ) {

while ( *str && *str != ch ) str++;

/**********FOUND**********/ if ( *str == ch ) {

str [ 0 ] = ch;

/**********FOUND**********/ str[1] = '0'; } }

main( ) {

char s[81], c ;

printf( \ gets ( s );

printf (\Please enter the character to search : \); c = getchar(); fun(s, c) ;

printf( \}

答案:

=======(答案1)=======

void fun(char *str, char ch ) =======(答案2)======= if ( *str == '\\0' ) =======(答案3)======= str[1] = '\\0';

/*---------------------------------------------------- 【程序改错】第10题

------------------------------------------------------ 功能:有一数组内放10个整数,要求找出最小数和它的下标,

然后把它和数组中最前面的元素即第一个数对换位置.

----------------------------------------------------*/ #include main( ) {

int i,a[10],min,k=0; printf(\ for(i=0;i<10;i++)

/***********FOUND***********/ scanf(\ for(i=0;i<10;i++) printf(\ min=a[0];

/***********FOUND***********/ for(i=3;i<10;i++)

/***********FOUND***********/ if(a[i]>min) {

min=a[i]; k=i; }

/***********FOUND***********/ a[k]=a[i]; a[0]=min;

printf(\ for(i=0;i<10;i++) printf(\

printf(\}

答案:

=======(答案1)======= scanf(\=======(答案2)======= for(i=1;i<10;i++) =========或========= for(i=0;i<10;i++) =========或========= for(i=1;i<=9;i++) =========或========= for(i=0;i<=9;i++)

=======(答案3)======= if(a[i]

=======(答案4)======= a[k]=a[0];

/*---------------------------------------------------- 【程序改错】第11题

------------------------------------------------------ 功能:判断m是否为素数,若是返回1,否则返回0。

----------------------------------------------------*/ #include

/**********FOUND**********/ void fun( int n) {

int i,k=1; if(m<=1) k=0;

/**********FOUND**********/ for(i=1;i

/**********FOUND**********/ if(m%i=0) k=0;

/**********FOUND**********/ return m; }

void main() {

int m,k=0;

for(m=1;m<100;m++)

if(fun(m)==1) {

printf(\

if(k%5==0) printf(\ } }

答案:

=======(答案1)======= int fun( int m)

=========或========= fun( int m)

=======(答案2)======= for(i=2;i

=========或========= for(i=2;m>i;i++)

=========或========= for(i=2;i<=m-1;i++) =========或========= for(i=2;m-1>=i;i++) =======(答案3)======= if( m%i == 0 ) k=0; =======(答案4)======= return k;

/*---------------------------------------------------- 【程序改错】第12题

------------------------------------------------------ 题目:下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。 例如:给字符串s输入:AAaaBBbb123CCcccd,则应输出:upper=6,lower=8。

----------------------------------------------------*/ #include

/***********FOUND***********/

void fun ( char *s, int a, int b ) {

while ( *s ) {

if ( *s >= 'A' && *s <= 'Z' ) /***********FOUND***********/ *a=a+1 ;

if ( *s >= 'a' && *s <= 'z' ) /***********FOUND***********/ *b=b+1; s++; } }

main( ) {

char s[100]; int upper = 0, lower = 0 ; printf( \ gets ( s );

fun ( s, & upper, &lower );

printf( \lower ); }

答案:

=======(答案1)=======

void fun ( char *s, int *a, int *b ) =======(答案2)======= *a=*a+1;

=======(答案3)======= *b=*b+1;

/*---------------------------------------------------- 【程序改错】第13题

------------------------------------------------------ 功能:求两个形参的乘积和商数,并通过形参返回调用程序。 例如:输入:61.82 和 12.65,输出为:c = 782.023000 d = 4.886957

----------------------------------------------------*/ #include #include

/**********FOUND**********/

void fun ( double a, b, double *x, double *y ) {

/**********FOUND**********/ x = a * b;

/**********FOUND**********/ y = a / b; }

main ( ) {

double a, b, c, d;

printf ( \ scanf ( \ fun ( a , b, &c, &d ) ;

printf (\}

答案:

=======(答案1)=======

void fun ( double a, double b, double *x, double *y ) =======(答案2)======= *x = a * b;

=======(答案3)======= *y = a / b;

/*---------------------------------------------------- 【程序改错】第14题

------------------------------------------------------ 功能:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min

代表最低分,avg代表平均分。

----------------------------------------------------*/ #include main( ){ int i;

/***********FOUND***********/ float a[8],min,max,avg; printf(\ for(i=0;i<=9;i++) {

printf(\ /***********FOUND***********/ scanf(\ }

max=min=avg=a[0]; for(i=1;i<=9;i++) {

/***********FOUND***********/ if(min

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库程序改错题在线全文阅读。

程序改错题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/907761.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: