程序改错题库

合集下载

c语言程序改错题

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

-------------------------------------/**********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题目:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

计算机二级上机考试(程序改错题)1

计算机二级上机考试(程序改错题)1

计算机二级上机考试(程序改错题)1work Information Technology Company.2020YEAR程序编程题目1、第一大类(交换类)共7道2. 程序修改(第3套)给定程序中函数fun的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。

例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b中的值为8./**found**/t=*x; *x=y;/**found**/return(t);2. 程序修改(第60套)给定程序中函数fun的功能是:实现两个整数的交换。

例如给a和b分别输入60和65,输出为:a=65b=60/**found**/void fun(int *a,int *b)/**found**/t=*b;*b=*a;*a=t;2. 程序修改(第88套)给定程序中函数fun的功能是:将主函数中两个变量的值进行交换。

例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。

/**found**/void fun(int *x, int *y)/**found**/t=*x,*x=*y,*y=t;2、第二大类(计算类)共22道2. 程序修改(第1套)给定程序中函数fun的功能是:求出以下分数序列的前n 项之和。

2/1+3/2+5/3+8/5+13/8+21/13 +……和值通过函数值返回main函数。

例如n=5,则应输出:8.391667。

/**found**/double fun(int n)/**found**/s=s+(double)a/b;2. 程序修改(第6套)给定程序中函数fun的功能是:用递归算法计算列中第n 项的值。

从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、……/**found**/switch(g)/**found**/case 1:case 2:return 1;2. 程序修改(第13套)给定程序中函数fun的功能是:求 s=aa…aa—…—aaa—aa—a(此处aa…aa表示n个a,a和n的值在1至9之间)。

程序改错40.

程序改错40.

【程序改错】--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/题目1:以下程序的功能是求如下表达式:1 1 1S = 1 + —— + ——— + ...... + ———————1+2 1+2+3 1+2+3+......+n#include <stdio.h>main(){int n;float fun();printf("Please input a number:");/**********FOUND**********/print("%d",n) ;printf("%10.6f\n",fun(n));}/**********FOUND**********/fun(int n){int i,j,t;float s;s=0;/**********FOUND**********/while(i=1;i<=n;i++);{t=0;for(j=1;j<=i;j++)t=t+j;/**********FOUND**********/=s+1/t;}return s;}题目2:函数fun的功能是:计算正整数num的各位上的数字之积。

例如,输入252,则输出应该是20。

请改正程序中的错误,使它能得出正确的结果。

long fun (long num){/**********FOUND**********/long k;do{k*=num%10;/**********FOUND**********/num\=10;}while (num);return k;}main(){long n;printf("\nPlease enter a number:");/**********FOUND**********/scanf("%ld", n);/**********FOUND**********/printf("\n%ld\n",fun(long n));}题目3:用"冒泡法"对输入的十个字符排序后按从小到大的次序输出.#define N 10main( ){int i;char str[N];/***********FOUND***********/scanf("%s",&str);/***********FOUND***********/sort(str[N]);for(i=0;i<N;i++)printf("%c",str[i]);printf("\n");}sort(char str[N]){int i,j; char t;for(j=1;j<N;j++)/***********FOUND***********/for(i=0;(i<N-j)||(str[i]!='\0');i++)/***********FOUND***********/if(str[i]<str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}题目4:函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。

C语言改错题-含答案

C语言改错题-含答案

第1题【程序改错】功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。

例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。

------------------------------------------------------*/#include <conio.h>#include <stdio.h>#include <string.h>void fun (char *s, char *t){/**********FOUND**********/int i;sl = strlen(s);for (i=0; i<sl; i++)/**********FOUND**********/t[i] = s[sl-i];for (i=0; i<sl; i++)t[sl+i] = s[i];/**********FOUND**********/t[2*sl] = "0";}main(){char s[100], t[100];printf("\nPlease enter string s:"); scanf("%s", s);fun(s, t);printf("The result is: %s\n", t);}答案:1). int i,sl;2). t[i] = s[sl-i-1];3). t[2*sl] = '\0'; 或 t[2*sl] = 0;第2题【程序改错】功能:求出以下分数序列的前n项之和。

和值通过函数值返回main 函数。

2/1+3/2+5/3+8/5+13/8+21/13 ……例如:若n = 5,则应输出:8.391667。

------------------------------------------------------*/#include <conio.h>#include <stdio.h>/**********FOUND**********/fun ( int n ){int a, b, c, k; double s;s = 0.0; a = 2; b = 1;for ( k = 1; k <= n; k++ ){/**********FOUND**********/s = (double)a / b;c = a;a = a + b;b = c;}/**********FOUND**********/return c;}main( ){int n = 5;printf( "\nThe value of function is: %lf\n", fun ( n ) );}答案:1). double fun(int n)2). s = s + (double)a / b; 或 s += (double)a / b; 或 s += a /(double)b; 或s=s+a/(double)b;3). return s;第3题【程序改错】功能:读入一个整数m( 5≤m≤20 ),函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。

C语言改错题考试题库

C语言改错题考试题库
【程序改错】
--------------------------------------------------------
功能:在一个一维整型数组中找出其中最大的数及其下标。
------------------------------------------------------*/
#define N 10
sort(str[N]);
for(i=0;i<N;i++)
printf("%c",str[i]);
printf("\n");
}
sort(char str[N])
{
int i,j; char t;
for(j=1;j<N;j++)
/***********FOUND***********/
for(i=0;i<N-j;i--)
功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。
------------------------------------------------------*/
#include <stdio.h>
#define N 20
void fun(int a[], int n)
{
int i, j, t, p;
------------------------------------------------------*/
#include "conio.h"
#include "stdio.h"
#include "ctype.h"
#include "string.h"

java程序改错12道及答案

java程序改错12道及答案
while(i<100)
{
/***********FOUND***********/
if(i%2==0)
s=s+i;
i=i+2;
}
/***********FOUND***********/
product=i;
}
System.out.println("偶数之和是 : "+sum);
System.out.println("奇数之积是 : "+product);
3)while(i<=10)或while(i<11)
4)}
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------
题目2:计算 1/1+1/2+1/3+...+1/100 的值
-------------------------------------------------------*/
public class Prog1
{
public static void main( String args[ ])
{
/***********FOUND***********/
public static void main (args[])
{
/***********FOUND***********/
int n=100,sum=1;
while(n>0)

程序改错题(17道)

程序改错题(17道)

程序改错(共17道题)1.求1~100之间数的和。

Private Sub Form_Click()Dim i As Integer, sum As Integersum = 1i = 1Do Until i >= 100sum = sum + ii = i + 1LoopPrint "1-100之间和:"; sumEnd Sub答案:sum=0Do Until i > 1002.求1~100之间数的和。

Private Sub Form_Click()Dim i As Integer, sum As Integersum = 1i = 1Do While i < 100sum = sum + ii = i + 1LoopPrint "1-100之间和:"; sum End Sub答案:sum=0Do While i <= 1003.求1~10之间数的和。

Private Sub Form_Click()Dim i As Integer, sum As Integer sum = 1i = 1Do Until i >= 10sum = sum + ii = i + 1LoopPrint "1-10之间和:"; sumEnd Sub答案:sum=0Do Until i > 104.求1~10之间数的和。

Private Sub Form_Click()Dim i As Integer, sum As Integersum = 1i = 1Do While i < 10sum = sum + ii = i + 1LoopPrint "1-10之间和:"; sumEnd Sub答案:sum=0Do While i <= 105.求4!(4!=1×2×3×4)。

-程序改错部分试题及答案

-程序改错部分试题及答案

第1题/*i【程序改错】功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

------------------------------------------------------------------------------------ * #include <stdio. h>ttdefine N 11main(){int i,number,a[N] = {l,2,4,6,8t9t12,15,149,156);printf(^please enter an integer to insert in the array:\n n):/**********FOUND**********/scanf(”%d&number)printf("The original array:\rT);for(i=0;i<N-l;i++)printf (^%5(1 M,a[i]);printf(*\n n);/**********FOUND**********/for(i=N-l;i>二0;i--)if(number<=a[il)/**********FOUND**********/a[i]=a[i-l]:else{a[i+l]=number;/**********FOUND**********/exit;}if(number<a[0]) aL0]二number;printf(^The result array:\n”);for(i=0;i<N;i++)printf(n%5d w,a[il);printf(H\n H);}第2题/♦ ------------------------------------------------------------------------------------ 【程序改错】功能:求如下表达式:S = 1 + ——+ ——+ .................. + ------------1+2 1+2+3 1+2+3+ ......... +n------------------------------------------------------------------------------------ */ #include <stdio.h>main()int n;double fun ();printf ("Please input a nilmber:R):/**********FOUND**********/print("^d^.n);printf(H%10. 6f\n w,fun(n));}/♦♦********FOUND**********/fun(int n){int i,j,t;double s;s=0;/**********POUND**********/while(i=l;i<=n;i++);{t=0;for(j=l;j<=i;j++)t=t+j;/ **********P*OL1ND**********/=s+l/t;}return s;}第3题/* ---------------------------------------------------------- 【程序改错】功能:判断m是否为素数,若是返回1,否则返回0。

程序改错与填空全部试题

程序改错与填空全部试题

程序改错、程序填空程序填空:第1题:题目:下面是计算1+1+2+2+…n+n之和的平方根的程序。

SET TALK OFFINPUT TO N*************SPACE******* 【?】FOR I=1 TO N*************SPACE*******S=【?】ENDFOR*************SPACE*******?“结果是”,【?】RETURN答案:(1)S=0 (2)s+2*I (3)SQRT(S)第2题:题目:以下程序通过键盘输入4个数字,找出其中最小的数。

SET TALK OFF*************SPACE******* 【?】INPUT “请输入第一个数字”TO XDO WHILE I<=3M=XINPUT “请输入数字”TO M *************SPACE********* ****IF 【?】M=XENDIF*************SPACE******* 【?】ENDDO?“最小的数是”,MSET TALK ON答案:(1)I=1(2)X<M(3)I=I+1 第3题:题目:以下程序的功能:t=20+21+22+ (2)SET TALK OFF*************SPACE******* 【?】*************SPACE******* 【?】TO NFOR I=0 TO N*************SPACE*******T=T+【?】ENDFOR?“T的值是:”,TSET TALK ONRETURN答案:(1)T=0(2)INPU T(3)2**I第4题:题目:复制表XSDA.DBF,生成新表XS.DBF,在新表中查找所有男同学的记录,并将男同学的记录逻辑删除。

SET TALK OFFUSE XSDA*************SPACE******* 【?】USE XSLOCA TE FOR 性别=“男”DO WHILE FOUND()*************SPACE******* 【?】*************SPACE******* 【?】ENDDOUSESET TALK ON答案:(1)COPY TO XS(2)DELETE(3)CONTINUE第5套:题目:表RSDA.D BF结构为:姓名(C,6);性别(C,2),年龄(N,2),出生日期(D,8)。

程序改错题

程序改错题
y-=1/(I*I);
return(y);
}
void main()
{int n=5;
system("CLS");
printf("\nThe result is %1f\n", fun(n));
}
(1)错误:for(I=2; I<m; I++) 正确:for(I=2; I<=m; I++)
(2)错误:a++; 正确:(*a)++;
(3)错误:b++; 正确:(*b)++;
【解析】(1)根据题中程序可以看出,函数fun传递的是地址,那么在函数中就应该出现指针,所以改为void fun (char *s ,int *a, int *b)。
(2)和(3)很明显,这里是要累加数值,因为a、b是指针变量,所以是错误的。
【解析】(1)这里是一个简单的格式错误,if条件应该加括号。
(2)根据阶乘的概念,从n开始,n!=n*(n-1)!,直到1,所以应该为result *=n--;
8、下列给定程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。
2、下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值。
t=1-1/(2×2)-1/(3×3)-…-1/(m×m)
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdlib.h>

程序改错题汇总

程序改错题汇总

程序改错题汇总1、用"起泡法"对连续输入的十个字符排序后按从小到大的次序输出.2、分别统计字符串中大写字母和小写字母的个数。

3、求1到10的阶乘的和。

4、判断m是否为素数,若是返回1,否则返回0。

5、用选择法对数组中的n个元素按从小到大的顺序进行排序。

6、求一个3行4列矩阵的外框的元素值之和。

7、以下程序把两个数按由大到小的顺序输出来。

8、求1到20的阶乘的和。

9、判断字符ch是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。

(指针)10、已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项的和。

下列给定程序中,函数fun的功能是:计算并输出该数列的前n项的平方根之和sum,n的值通过形参传入。

11、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数都是多少12、编写函数fun计算下列分段函数的值:x*x+x x<0且x≠-3f(x)= x*x+5x 0≤x<10且x≠2及x≠3x*x+x-1 其它13、请编写函数fun,对长度为8个字符的字符串,将8个字符按降序排列。

14、实现交换两个整数的值。

15、读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。

16、先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。

17、计算数组元素中值为正数的平均值(不包括0)。

18、将s所指字符串中出现的、t1所指子串全部替换成t2所指子字符串,所形成的新串放在w 所指的数组中。

在此处,要求t1和t2所指字符串的长度相同。

19、将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A, z转换为a),其它字符不变。

20、在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),后输出矩阵第一行与第三行元素之积,并在fun()函数中输出。

C语言程序改错基本题库完整

C语言程序改错基本题库完整

石油化工学院12级复习题程序改错一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。

1.求1234nmain(){ long int sum;int n,i=1;scanf("%d",n);printf(“\n”);while(i<n){ sum=sum*i;i++;}printf("sum=%d",sum);}2.求一个数组中最大值及其下标。

main( ){ int max,j,m;int a[5];for(j=1;j<=5;j++)scanf(“%d”,a);max=a[0];for(j=1;j<=5;j++)if(max>a[j]){ max=a[j];m=j;}printf(“下标:%d\n最大值:%d”, j, max)}*3. 求3+4int a=3,b=4;main(){ int a,c;c=a+b;printf(“c=%d”);}4.用一个函数求两个数之和。

sum(x,y){ float z;z=x+y;return;}main(){ float a,b;int c;scanf("%f,%f",&a,&b);c=sum(a,b);printf("\nSum is %f",sum);}5.用指针作函数参数,对输入的两个整数按大小顺序输出。

swap(int *p1,*p2){ int *p;*p=*p1;*p1=*p2;*p2=*p;}main(){ int a,b;int *q1,*q2;scanf("%d,%d",&a,&b);&q1=a,&q2=b;if(a<b) swap(*q1,*q2);printf("\n%d,%d\n",q1,q2);}前五题答案:1.sum应初始化即加入sum=1第四行改为:scanf(“%d”,&n);第六行改为:while(i<=n)第十行改为:printf("sum=%ld",sum);2. 第四行改为:for(j=0;j<5;j++)第五行改为:scanf(“%d”,&a[j]);第七行改为:for(j=0;j<5;j++)第八行改为:if(max<a[j])第十三行改为:printf(“下标:%d\n最大值:%d”, m,max)3. 第三行改为:int c;第五行改为:printf(“c=%d”,c);4. 第一行改为:float sum(float x, float y );第四行改为:return(z);第八行:float c;第十一行:printf("\nSum is %f",c);5. 第2、3行:{ int t;t=*p1;*p1=*p2;*p2=t;第9行:q1=&a,q2=&b;第10行:if(a<b) swap(q1,q2);第11行:printf("\n%d,%d\n",*q1,*q2);6.程序读入20个整数,统计非负数个数,并计算非负数之和.#include “stdio.h”main(){int i, a[20], s , count ;s=count=1; s=count=0;for( i=1; i<20; i- -) for(i=0;i<20;i--)scanf(“%d”, a[i] );scanf(“%d”,&a[i]);for(i=0;i<20;i++){if(a[i]<0)break; continue;s +=a[i];count++;}printf(“s=%f count=%f\n”, s, count);}printf(“s=%d count=%d\n”,s,count);7. x , y两个数中,让x中存较大的数,y存较小的数#include<stdio.h>main( ){int x , y=200 , z=0;x=180;if ( x<y)z=x; x=y; y=z; { z=x;x=y;y=z;}printf(“x=%d,y=%d\n”,&x,&y);}printf(“x=%d,y=%d\n”,x,y); }8. 从键盘输入整数x的值,并输出y的值.main(){ float x,y; 正确的: int x; float y;scanf(“%d”,&x);y=3.5+x;printf(“y=%d”); printf(“y=%f”,y);}9. 从1加到100,并输出.Main ( ){int i , sumi=1;While ( i<=100 ){ sum=sum*i;i++ ;}printf ( “%c”, sum )}10、求一个4×4矩阵的对角线元素之和main( ){int a[4][4], sum=0;int i,j;printf(“Enter data:\n”);for(i=0;i<=4;I++)for(j=0,j<=4;j++)scanf(“%d”,&a[i][j]);for(i=0;i<4;I++)for(j=0;j<4;j++)sum=sum+a[i][j];printf(“sum=%5d\n”,sum);}12.求1+2+3+4+……n的值。

C++改错和填空题题库

C++改错和填空题题库

━━━━━━━━━━━━━━━━━一、程序改错━━━━━━━━━━━━━━━━━第1题/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:用顺序交换法将12个整数中处于奇数位的数从大到小排序。

--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/#include <iostream.h>void main()/***********FOUND***********/{ int m[12],i,j;/***********FOUND***********/for(i=1;i<=12;i++)cin>>m[i];for(i=0;i<11;i+=2)/***********FOUND***********/for(j=i+1;i<11;i++)/***********FOUND***********/if(m[i]>m[j]){ k=m[i];m[i]=m[j];m[j]=k;}for(i=0;i<12;i++)cout<<m[i];}答案:1). {int m[12],i,j,k;2). for(i=0;i<12;i++) 或for(i=0;i<=11;i++)3). for(j=i+2;j<11;j+=2) 或for(j=i+2;j<11;j=j+2)4). if(m[j]>m[i]) 或if(m[i]<m[j])第2题/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:在一个具有n个数的数组中查找并删除一个数K。

C语言程序改错题

C语言程序改错题

C语言程序改错一、程序改错共 138 题(共计 1380 分)━━━━━━━━━━━━━━━━━━第 1 题(10.0 分)/*------------------------------------------------------ 功能:根据整型形参 m,计算如下公式的值:y=1+1/3+1/5+1/7+...+1/(2m-3)------------------------------------------------------*/ #include "stdio.h"double fun(int m){/**********FOUND**********/double y=1int i;/**********FOUND**********/for(i=3; i<m; i++)/**********FOUND**********/y+=1.0/(2i-3);return(y);}void main(void){int n;clrscr();printf("Enter n: ");scanf("%d", &n);printf("\nThe result is %1f\n", fun(n));getch();}答案:1). double y=1;2). for(i=3; i<=m; i++) 或 for(i=3; i<m+1;i++)3). y+=1.0/(2*i-3);第 2 题(10.0 分)/*------------------------------------------------------ 功能:用选择法对数组中的 n 个元素按从小到大的顺序进行排序。

------------------------------------------------------*/ #include <stdio.h>#define N 20void fun(int a[], int n){int i, j, t, p;for (j = 0 ;j < n-1 ;j++){/**********FOUND**********/p = jfor (i = j;i < n; i++)/**********FOUND**********/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");getch();}答案:1). p = j;2). if(a[i] < a[p]) 或 if(a[p] > a[i])3). p = i;第 3 题(10.0 分)/*------------------------------------------------------ 功能:编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。

C语言程序改错练习

C语言程序改错练习
printf("\40: The a & b(decimal) is %d \n",&b);
/**********FOUND**********/
b|=7
printf("\40: The a & b(decimal) is %d \n",b);
}
答案:
=======(答案1)=======
int a,b;
main()
{
int a,b;
double x;
/***********FOUND***********/
scanf("%d,%d",a,b);
/***********FOUND***********/
x=2ab/(a+b)(a+b);
/***********FOUND***********/
printf("x=%d\n",x);
for(i=1;i<=5;i++)
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
/**********FOUND**********/
if (i!=k||i!=j||j!=k)
printf("%d,%d,%d\n",i,j,k);
}
}
答案:
=======(答案1)=======
------------------------------------------------------*/
#include<stdio.h>
void main()
{
/**********FOUND**********/

程序改错题

程序改错题

1. 程序调试题1(X_2_1.C)调试要求:下列程序不能得到正确的结果,它包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。

将结果(包括X_2_1.C文件和X_2_1.EXE文件)保存到目录C:\KS\中。

功能说明:计算半径为1~n的圆的面积,仅打印超过50 的圆面积。

如输入:6则输出:r=4,square=50.265488r=5,square=78.539825r=6,square=113.097351带错误原程序:#include <stdio.h>main(){int r,n;float area;scanf("%d",&n);for (r=1,r<=n;r++){area=3.141593*r*r;if (area<50.0) continue;printf("r=%d,square=%d\n",r,area);}getch();}答案#include <stdio.h>main(){int r,n;float area;scanf("%d",&n);for (r=1;r<=n;r++)/*modified*/{area=3.141593*r*r;if (area<50.0) continue;printf("r=%d,square=%f\n",r,area);/*modified*/}getch();}2. 程序调试题2(X_2_2.C)调试要求:下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。

将结果(包括X_2_2.C文件和X_2_2.EXE文件)保存到目录C:\KS\中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
3.求二维数组a中的最大值。 例如,当二维数组a中的元素为:
4 4 34
7 3 12
5 6 5 程序的输出应为:The max is: 34 。
#include <stdio.h>
int arrmax( int arr[3][3])
int sum ( int arr[ ],int n )
{ int i,s;
s = 0;
for ( i=0; i<n; i++)
if (arr[i] % 2 == 0)
/************found************/
s = s + arr[i];
{ int i,j,max;
max=arr[0][0];
/************found************/
for ( i=0; i<3; i++)
for ( j=0; j<3; j++)
if (max < arr[i][j]) max = arr[i][j];
s /= 10; }
printf("The result is: %ld\n", t); }
7.求出a所指数组中最大数(规定最大数不在a[0]中),最大值和a[0]中的数
对调。例如数组中原有的数为:7、10、12、0、3、6、9、11、5、8,
输出的结果为:12、10、7、0、3、6、9、11、5、8。
return (max); }
void main()
{ int a[3][3]={4,4,34,7,3,12,5,6,5},i,j;
/************found************/
printf("The max is: %d\n",arrmax(a)); }
#include <stdio.h>
void main()
{ long s, t, sl=1;
int d;
printf("\nPlease enter s:"); scanf("%ld", &s);
t = 0;
while ( s > 0)
printf("The max is: %d ,pos is: %d\n", max , maxarr(a));
}
5.猴子第一天摘下若干桃子,当即吃了一半又多吃一个;第二天
将剩下的桃子吃了半又多吃一个,到第12天的早上,只剩下一个
桃子,求第一天共摘了多少桃子。
#include <stdio.h>
{
/************found************/
if(i%3!=0&&i%7!=0)
{ if(n%8==0) printf("\n");
printf("%6d",i);
n++; } }
printf("\nNumbers are: %d\n",n);
max=a[0]; m=0;
for ( k = 1; k <N; k++ )
/************found************/
if ( a[k]>max )
{ max = a[k]; m = k; }
/************found************/
if(m%j==0) break;
if(j>k)
{ if(n%8==0) printf("\n");
/************found************/
printf("%6d",m);
n++;}
} }
9.打印九九乘法表
#include <stdio.h>
void main()
{ int i,j,k;
for(i=1;i<=9;i++)
/************found************/
{ for(j=1;j<=i;j++)
t = a[0]; a[0]=a[m]; a[m] = t;
for ( i=0; i<N; i++ )
printf("%d ",a[i]);
printf("\n");
}
8.输出200~300之间的所有素数,要求每行输出8个素数。
#include <stdio.h>
{ d = s%10;
/************found************/
if (d%2==0)
{ t=d * sl + t;
sl *= 10; }
/************found************/
void main()
{ int i,j,x,p;
x=1;
/************found************/
j=11;
while(j>=1)
{ p=(x+1)*2;
/************found************/
return (s);
}
void main()
{ int a[10]={10,4,2,7,3,12,5,34,5,9},i,s;
/************found************/
s = sum( a ,10 );
printf("The result is: %d\n", s);
#include <math.h>
void main()
{ int m,j,n=0,k;
for(m=200;m<=300;m++)
{ k=sqrt(m);
for(j=2;j<=k;j++)
/************found************/
X=p;
j--;
}
printf("total is %d\n",p);
}
6. 将长整型数中每一位上为偶数的数依次取出,位。
例如,当s中的数为:87653142时,t中的数为:8642。
printf("%3d *%3d =%3d",i,j,i*j);
/************found************/
printf("\n");
}
} {for(j=1;j<=i;j++) printf("\n");
10.输出100~200之间既不能被3整除也不能被7整除的
sl = sl*10;
}
printf("The result is: %ld\n", t);
}
2.求一维数组a中的值为偶数的元素之和。
例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9 ,程序
的输出应为: The result is: 62
若用函数调用呢?
#include <stdio.h>
int max;
maxarr(int arr[ ])
{ int pos,i;
/************found************/
max =arr[ 0];
pos = 0;
for ( i=1; i<10; i++)
if (a[i] % 2 == 0)
s = s + a[i];
/************found************/
printf("The result is: %d\n", s);
}
若用函数调用来求呢?
#include <stdio.h>
整数并统计这些整数的个数,要求每行输出8个数。
#include <stdio.h>
void main()
{ int i;
/************found************/
int n=0;
for(i=100;i<=200;i++)
{
/************found************/
1. 从低位开始取出长整型变量s中奇数位上的数,依次构成
一个新数放在t中。 例如,当s中的数为:7654321时,t 中
的数为:7531。
#include <stdio.h>
void main( )
{ long s, t, sl=10;
printf("\nPlease enter s:");
#include <conio.h>
#include <stdio.h>
void main()
{ int a[10]={10,4,2,7,3,12,5,34,5,9},i,s;
s = 0;
for ( i=0; i<10; i++)
/************found************/
相关文档
最新文档