程序改错1

合集下载

计算机二级上机考试(程序改错题)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之间)。

程序改错完整版---C语言

程序改错完整版---C语言

(一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。

#include "stdio.h"#define N 20void fun(int a[], int n){int i, j, t, k;for (j = 0 ;j < n-1 ;j++){/**********ERROR**********/k = jfor (i = j+1;i < n; i++)/**********ERROR**********/if(a[i] >a[k])/**********ERROR**********/k=j;t = a[k] ;a[k] = 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");}【参考答案】k = j;【参考答案】if(a[i] < a[k])if(a[k] > a[i])【参考答案】k = i;(二)功能:求广义菲玻那契级数的第n项。

广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,……项值通过函数值返回 main ( )函数。

例如:若 n = 15,则应输出:The value is: 2209。

#include "conio.h"#include "stdio.h"long fun ( int n ){long a=1, b=1, c=1, d=1, k;/**********ERROR**********/for (k=4; k<n; k++){d = a+b+c;/**********ERROR**********/a=bb=c;c=d;}/**********ERROR**********/return k;}main( ){int n = 15;printf( "The value is: %ld\n", fun ( n ) );}【参考答案】for (k=4; k<=n; k++)【参考答案】a=b;【参考答案】return d;(三)功能:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

程序改错

程序改错
(3)逻辑错误 发生在运行之后,不显示错误信息,仅表现为运行结果不正确。排除逻辑错误,一般也要用跟踪法查明错误点和错误原因。
发生错误后都要回到编辑阶段,分析错误原因,修改C源程序,再重复上述操作,直到程序能得到正确的运行结果,程序才算调试成功。程序发生错误,其原因很复杂。学会调试程序,也是学习C程序设计的重点和难点之一,必须多练、多分析,积累经验。
scanf(“%d”,&n);
while(i<n)
i+=2;
sum+=i;
if(n%2==0) n--;
printf(“输出1+3+5+……+%d=%ld\n”,n,sum);省略号是在中文状态下输入的。
}
第四题:程序功能:定义计算三角形面积的函数。计算公式:
s=(a+b+c)/2
a、b、c为三角形的边长。
{
char str[80]="a*b$c(d!EEE !!a.";
fun(str[80]);
printf("\n");
puts(str);
}
4、下列程序,其功能是:从s所指向的串中,找出包含有t所指字符串的个数。例如:s所指向的串为abcdabfab,t所指字符串为ab,则所求个数为3。请改正程序中的错误,使程序能输出正确的结果。
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
int a[]={1,2,3,4,5,6,7,8,9,10},i=10,n;
if((fp=fopen(“file6.txt”,”w”))==NULL)

C语言习题级答案3

C语言习题级答案3

测试题31、C语言中不合法的字符常量就是 CA、’\65’B、’\xff’C、’\028’D、’&’2、具有相同类型的指针变量p与数组a,不能进行的操作就是(C)。

A、p=&a[0];B、p=a;C、p=&a;D、*p=a[0];3、若有x=22,y=26,z=0;,则执行下面语句后,z的输出结果就是(B ) z=x>y?x:yA、72B、26C、48D、224、对于建立函数的目的,正确的说法就是 DA、提高程序的执行效率B、减少程序的篇幅C、减少程序文件所占的内存D、提高程序的可读性5、有定义:char*p1,*p2;则下列表达式中正确合理的就是 CA、p1/=5B、p1+=5C、p1=&p2D、p1*=p26、以下程序的运行结果就是(B)。

main(){int i=1,sum=0;while(i<10) sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}A、i=10,sum=9B、运行出现错误C、i=2,sum=17、若变量已正确定义且 k 的值就是 4,计算表达式 ( j =4, k--) 后,j与k的值为(C)A、j=4, k=4B、j=3, k=3C、j=4, k=3D、j=3, k=48、给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为(A)A、数组x的长度大于数组y的长度B、数组x与数组y等价C、数组x与数组y的长度相同D、数组x的长度小于数组y的长度9、在下述程序中,判断i > j共执行了多少次 C#include <stdio、h>main(){int i = 0, j = 10, k = 2, s = 0;for( ; ; ){i += k;if(i > j){printf(“%d\n”, s);break;}s += i;}}A、4B、8C、6D、710、下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的就是(D)。

程序改错——精选推荐

程序改错——精选推荐

【程序改错】1.下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。

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

#include <stdio.h>void fun( char *s ){ int I,j;for(i=j=0; s[i]!='\0'; i++)if(s[i]!='c')/***********FOUND***********/s[j++]=s[i];/***********FOUND***********/s[j]='\0';}main(){ char s[80];printf("Enter a string: "); gets(s);printf("The original string: "); puts(s);fun(s);printf("The string after deleted : "); puts(s);printf("\n\n");}2. 下列给定程序中,函数fun的功能是:根据整型参数m,计算如下公式的值。

y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)例如,若m=2000,则应输出0.000160。

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

#include <stdlib.h>#include <conio.h>#include <stdio.h>/***********FOUND***********/double fun (int m){ double y=0, d;int i;/***********FOUND***********/for(i=100;i<=m;i+=100){d=(double)i*(double)i;y+=1.0/d;}return(y);}void main(){ int n=2000;system("CLS");printf("\nThe result is %lf\n",fun(n));}3. 下列给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回。

程序改错

程序改错

/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:求100~200之间所有的素数。

------------------------------------------------------*///#include <iostream.h>void main(){int n;int i;/**********ERROR**********/for(n=100;n<200;n++){/**********ERROR**********/for(i=2;i<=n;i++)/**********ERROR**********/if(n%i==0) continue;if(n==i)cout<<n<<endl;}}//答案【改错1】错误【学生答案】for(n=100;n<200;n++)【参考答案】for(n=100;n<=200;n++)============================================================【改错2】错误【学生答案】for(i=2;i<=n;i++)【参考答案】for(i=2;i<=n-1;i++)for(i=2;i<n;i++)============================================================【改错3】错误【学生答案】if(n%i==0) continue;【参考答案】if(n%i==0) break;/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:求水仙花数。

c语言程序改错

c语言程序改错

c语⾔程序改错【程序改错】1.功能:利⽤递归函数调⽤⽅式,将所输⼊的5个字符,以相反顺序打印出来。

char next;next=getchar();palin(n-1);2.功能:求⼴义菲玻那契级数的第n项。

⼴义菲玻那契级数的前n项为: 1,1,1,3,5,9,17,31,……项值通过函数值返回 main ( )函数。

例如:若 n = 15,则应输出:The value is: 2209。

for (k=4; k<=n; k++)a=b;return d;3.功能:根据整型形参m,计算如下公式的值:y=1/2+1/8+1/18+...+1/2m*mdouble y=0.0;4.功能:编制统计营业员⼀天的营业额的程序,设程序采⽤⼀个循环实现,每次循环输⼊⼀笔交易⾦额并累计营业额。

由于营业员⼀天完成的交易次数是不确定的,为此以最后附加输⼊⼀笔0或负数交易额作为交易⾦额已全部输⼊结束的标志。

float sale,sigma;scanf("%f",&sale);sigma=sigma+sale;5.功能:读取7个数(1-50)的整数值,每读取⼀个值,程序打印出该值个数的*。

while(n<8) while(a<1||a>50);for(i=0;i6.功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。

printf("%8f",f1);for(i=1;i<20;i++)f1=f2;f2=f3;7.功能:⼀个偶数总能表⽰为两个素数之和。

scanf("%d",&a);d=a-b;if(d%c==0)8.功能:利⽤⼆维数组输出如图所⽰的图形。

*******************************#define N 7a[i][j]=' ';z=z-1;printf("%c",a[i][j]);9.题⽬:求两个整数的最⼩公倍数。

C语言实验答案(2-6)

C语言实验答案(2-6)
实验二 1.验证性实验 (1) 程序运行结果
x=10,y=10,z=10 x=8,y=10,z=16 c1=M,c2=4d,c3=115,c4=77 c1=M,c2=M,c3=M,c4=M c1=77,c2=77,c3=77,c4=77 c=m,c=109
(2)程序运行结果
输入:
1,2 3,4 5,6 7,6 a,b
运行一: 1 0,1,0,0
运行二: 2 0,0,1,1
运行三: 3 0,0,0,1
运行四: 4 1,0,0,0
运行五: 5 1,0,0,0
输入不同数据以后,a,b,c,d 的结果不一样,分析其原因主要在于:输入值不同, switch 语句进入的 case 分支不同;当分支语句中未出现 break 时 switch 语句会继 续继续进入下一 case 分支分支执行,直到遇到 break 或最后。
实验三
一、验证性试验 15M5.55
b=25,y=2.6,c2=N a= 15,b=25 x=5.550000,y=2.600000 c1=M,c2=N 在 scanf("%d%c%f",&a,&c1,&x);的输入中,由于输入字符型数据时空格会作为 有效输入字符处理,所以空格不能作为数据输入的分隔符,在输入 a 的值后,接 下来输入的应是一个字符型,若之间用空格则此空格将被视为一个字符,但若是 先输字符再输一个数,其间就可以用空格。 二、程序填空: ①a/b ②a%b ③quot,resi 三、程序改错: scanf("%f %f ",&x,&y) 改为 scanf("%d%d",&x,&y); printf("%d+%d=%d",x+y) 改为 printf("%d+%d=%d",x,y,x+y) ; (2) getchar(x) 改为 x=getchar() y=x-32 改为 y=x+32 四、设计性试:

程序改错

程序改错

下面给定程序中,函数fun的功能是:判断用户输入的任意一个字符串是否为"回文串"。

所谓"回文串"是指从开头读和从末尾读均为相同字符,例如:"HELLEH"。

请改正程序中的错误。

注意:不得增行和删行,不得更改程序的结构。

【改错1】错误【参考答案】}while(a[num]!='\0');【改错2】错误【参考答案】if(a[i]!=a[num-1-i])if(a[i]!=a[num-i-1])【改错3】错误【参考答案】}while(i<num/2);【改错4】错误【参考答案】scanf("%s",a);gets(a);功能:用指针作函数参数,编程序求一维数组中的最大和最小的元素值.--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。

【改错1】错误【参考答案】void maxmin(int arr[ ],int *pt1,int *pt2,int n)maxmin(int arr[ ],int *pt1,int *pt2,int n)void maxmin(int *arr,int *pt1,int *pt2,int n)【改错2】错误【参考答案】*pt1=*pt2=arr[0];*pt1=*pt2=*(arr+0);*pt2=*pt1=arr[0];【改错3】错误【参考答案】if(arr[i]>*pt1) *pt1=arr[i];if(*(arr+i)>*pt1)) *pt1=arr[i];if(*pt1<*(arr+i))) *pt1=arr[i];if(*pt1<arr[i]) *pt1=arr[i];【改错4】错误【参考答案】p1=&a;p2=&b;功能:计算并输出k以内最大的10个能被13或17整除的自然数之和。

c语言程序改错讲解

c语言程序改错讲解

c语言程序改错讲解一、程序改错共44题第1题(10.0分)题号:380 难度:中第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:输入两个双精度数,函数返回它们的平方和的平方根值。

例如:输入:22.936 和 14.121,输出为:y = 26.934415。

------------------------------------------------------*/#include #include #include/**********FOUND**********/double fun (double *a, *b) // double fun (double *a, double *b) { double c;/**********FOUND**********/c = sqr(a*a + b*b); // c = sqrt(a*a + b*b);/**********FOUND**********/return *c; // return c; }main ( ) {double a, b, y;printf ( \ scanf (\ y = fun (&a, &b);printf (\}第2题(10.0分)题号:438 难度:中第2章/*------------------------------------------------ 【程序改错】--------------------------------------------------功能:编写函数fun,求两个整数的最小公倍数,然后用主函数main()调用这个函数并输出结果,两个整数由键盘输入。

------------------------------------------------*/#includeint fun(int m,int n) { int i;/**********FOUND**********/ if (m=n) //if (mlong sum(int n) {/**********FOUND**********/int i,j // int i,j;long t,s=0;/**********FOUND**********/for(i=2;i #includelong fun (long num) {/**********FOUND**********/long k=1 // long k=1; do {k*=num ;/**********FOUND**********/num\\=10; // num/=10;或num=num/10;/**********FOUND**********/}while(!num) ; // } while(num) ;或 }while(num!=0); return (k) ; }main( ) {long n ;printf(\ printf(\}第5题(10.0分)题号:413 难度:易第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。

程序改错

程序改错

五、程序改错1./*--------------------------------------------------------【程序改错】--------------------------------------------------------功能:依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。

例如:输入ab12c3d,则输出123。

注意:不得增行或删行,也不得更改程序的结构!------------------------------------------------------*/#include "stdio.h"/**********ERROR**********/void fun(char s){int i,j;for(i=0,j=0; s[i]!='\0'; i++)if(s[i]>='0'&&s[i]<='9')/**********ERROR**********/s[j]=s[i];/**********ERROR**********/s[j]="\0";}main(){char item[80];printf("\nEnter a string: ");gets(item);printf("\n\nThe string is: \"%s\"\n",item);fun(item);printf("\n\nThe string of changing is: \"%s\"\n",item);}【改错1】【学生答案】void fun(char s)【参考答案】void fun(char *s)void fun(char s[])void fun(char s[80])============================================================【改错2】【学生答案】s[j]=s[i];【参考答案】s[j++]=s[i];{ s[j]=s[i]; j++; }============================================================【改错3】【学生答案】s[j]="\0";【参考答案】s[j]='\0';============================================================/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:读入一个整数m( 5≤m≤20 ),函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。

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

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

第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)

程序改错有情提示I的大写自己在VB中改下本人建议尽量别粘贴复制1 求s=1!+3!+5!+7!,阶乘的计算用Function过程fact实现Private Sub Form_Click()Dim i as Integer, s as Integer********FOUND*******For i =1 To 7 For i=1 To 7 Step2s=s+fact(i)********FOUND*******Public Function fact() Public Function fact(ByVal n As Integer ) Dim t as Integer,i as Integer********FOUND*******Fact=I fact=t2 求s=2!+4!+6!+8!,阶乘的计算用Function过程fact实现Private Sub Form_Click()Dim i as integer, s as Long********FOUND*******For i=2 To 8 For i=2 TO 8 Step 2s=s+fact(i)********FOUND*******Public Function fact() Public Function fact(ByVal n As Integer ) Dim as Long********FOUND*******fact=I Fact=tEnd Function3 程序功能为打印下列图形:**********Private Sub Form_Click()ClsDim i As IntegerDim j As Integer********FOUND*******For i = 1 To 7 For i =1 To 5********FOUND*******For j =1 To 5 For j = 1 To iPrint”*”********FOUND*******Next I Next jPrintNext iEnd Sub4 在窗体上有两个命令按钮和一个文本框,名称分别为村民dstart(“开始”),cmdend(“结束”)和Text1.文本框Text1中的字符个数不超过200个.程序刚开始运行时,”结束”按钮成灰色,单击”开始”按钮后,将文本框Text1.Text中的字符按其ASCII码值由大到小自左而右重新组合,并在窗体上输出重组后的字符串,同时使”结束”按钮能响应而”开始”按钮不能响应. Private Sub Form_load()********FOUND*******Cmdend.Enabled=True Cmdend.Enabled= FalseEnd Sub********FOUND*******For I =0 To n-1 For I =1 To n-1p=IFor j=I+1 To n********FOUND*******If a(p)<a(j) Then j=p If a(p)<a(j) Then p=jNext jIf p<> Then t=a(I): a(I)=a(p): a(p)=t5 本程序将一个大于100的偶数n分解为两个素数之和,其中nflag逻辑函数用于判断自然数x是否为素数Private Sub Form_Click()Dim n As Integer, x As Integer ,y As Integern=Val(InputBox(“请输入一个大于100的偶数”,”输入数据”,100))For x=3 To n\2 Step 2********FOUND*******If x=0 Then If nflag(x) Theny=n-x********FOUND*******If nflag(x) Then If nflag(y) ThenForm1.Print n;”=”;x;”+”;yExit ForEnd If********FOUND*******If x Mod k=0 Then flag = True If x Mod k=0 Then flag= FalseK= k+1Loop6 本程序功能用于将学生学过得单词在列表框中显示出来。

C语言程序改错

C语言程序改错

/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

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

------------------------------------------------------*/#include"stdio.h"main( ){/**********FOUND**********/long a,b,c,d,e,x,scanf("%ld",&x);a=x/10000;/**********FOUND**********/b=x/10000/1000;c=x%1000/100;d=x%100/10;e=x%10;/**********FOUND**********/if (a==0)printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);else if (d!=0) printf("there are 2, %ld %ld\n",e,d);else if (e!=0) printf(" there are 1,%ld\n",e);getch();}答案:1). long a,b,c,d,e,x;2). b=x%10000/1000; 或b=x/1000%10;3). if (a!=0) 或if (!a)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后除以10的余数代替该位数字。

程序改错(删减版)

程序改错(删减版)

C语言程序设计练习题--程序改错〖第1题〗(练习题所在文件夹:20)/*------------------------------------------------------ 【程序改错】-------------------------------------------------------- 题目:已知一个数列从第1项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项的和。

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

输出由主函数完成。

例如,当n=10时,程序的输出结果应为23.197745。

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

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

------------------------------------------------------*/ #include "math.h"/**********FOUND**********/fun (int n){double sum,s0,s1,s2,s;int k;/**********FOUND**********/sum=0.0;if(n<=2) sum=0.0;s0=0.0;s1=0.0;/**********FOUND**********/s2=0.0;/**********FOUND**********/for(k=4;k>n;k++){s=s0+s1+s2;sum+=sqrt(s);s0=s1;s1=s2;s2=s;}return sum;}main(){int n;scanf("%d",&n);printf("%lf\n",fun(n));}答案:1). double fun (int n)2). sum=1.0; 或 sum=1;3). s2=1.0; 或 s2=1;4). for(k=4;k<=n;k++) 或for(k=3;k<=n-1;k++)〖第9题〗(练习题所在文件夹:356)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:下列程序中,函数fun的功能是:找出一个大于给定整数m的最小的素数,并作为函数值返回。

程序改错——精选推荐

程序改错——精选推荐

程序改错1、改正下面程序段中的错误public Class Test {public static void main(String args) { //此处有错int i1,i2,i3;float f;char c;System.out.println("int:" + i1); //此处有错c = “A”; //此处有错f = 3.0; //此处有错}}主方法的args参数的数据类型应该为String数组,即String[] args变量i1要初始化c = …A‟f = 3.0f,当给声明float数据类型的变量赋值时,应该在数值后面加个f或者是F2、改正下面程序段中的错误public class Test {public void main(String[] args) {//此处有错boolean isV alid = 0; //此处有错int scores[5] = {65,70,69,98,86}; //此处有错if( isV alid ) then{System.out.println(scores[5]); //此处有错}else{System.out.println(“No information”);}}}是public static void main(String[] args)在java中boolean数据类型只有两个值,要么false,要么true,不能赋值为0;声明数组时不能具体写出数组的大小,改成int score[]score[5]数组下标不能为5,数组下标越界3、改正下面程序段中的错误public class Student{String id;Strng name;int salary;public void Test(String id, String name, int salary){this.id = id; = name;this.salary = salary;}public void changeInfo(String id, int salary){ //此处有错boolean result;if(id == this.id){this.salary = salary;result = TRUE;}else{result = false;}return result;}public boolean changeInfo(String ids, int salarys){……}}changeInfo(String id, int salary)这个方法的返回类型要为boolean型(可能还有一个错误,就是没有主方法)4、改正下面程序段中的错误import java.awt.*;import java.awt.event.*;public class MyFrame extends Frame{public MyFrame(){Button btn = new Button(“Exit”);setLayout(BorderLayout);add(btn);btn.addActionListener(this); //此处有错setSize(300,300);setVisible(TRUE);}public static void main(String[] args){MyFrame fr = MyFrame();}class MyHandler extends ActionListener{ //此处有错public void actionPerformed(ActionEvent e){System.exit(0);}}}btn.addActionListener(new MyHandler);因为MyFrame这个类并没有实现ActionListener这个接口不是继承,是实现,即implements,因为ActionListener是一个接口。

程序改错

程序改错

1.在考生文件夹下有一个工程文件Modi.vbp,相应的窗体文件为Modi.frm。

其功能是:产生30个[0,90]的随机整数,放入一个数组中,然后输出其中的最大值。

程序运行后,单击命令按钮,可求出数组中的最大值,并在窗体上显示。

运行界面请参阅附图。

在窗体的代码窗口中,已给出了部分程序,程序中有两处错误,请修改程序并运行,直到得出正确结果。

注意:程序中的修改位置就在注释行:’**********found*************’’请不要删除该行’的下面一行中,请不要改动程序中的其他部分。

最后把修改后的文件按原来文件名存盘,提交程序改错题文档。

VERSION 5.00Begin VB.Form Form1Caption = "Form1"ClientHeight = 2100ClientLeft = 1905ClientTop = 1875ClientWidth = 3660LinkTopic = "Form1"ScaleHeight = 2100ScaleWidth = 3660Begin mandButton Command1Caption = "输出最大值"Height = 375Left = 960TabIndex = 0Top = 1320Width = 1575EndEndAttribute VB_Name = "Form1"Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute VB_Exposed = FalseOption Base 1Private Sub Command1_Click()Dim arrN(30) As IntegerDim Max As IntegerRandomizeForm1.ClsFor i = 1 To 30’**********found*************’’请不要删除该行’arrN(i) = Int(Rnd * 51)Print Format(arrN(i),"@@@@@@");If i Mod 6 =0 Then PrintNext i’**********found*************’’请不要删除该行’Max = arrN(0)For i = 2 To 30If Max<arrN(i) ThenMax = arrN(i)End IfNext iPrint "Max=";Max2. 在考生文件夹下有一个工程文件Modi.vbp,相应的窗体文件为Modi.frm。

程序改错

程序改错

1『Visual Basic——程序改错』'【程序改错】462?'------------------------------------------------'题目:请修改程序中错误,保证程序最后输出效果如图1所示。

'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Option ExplicitPrivate Sub Form_Click()Dim i As IntegerFor i = 1 To 7'**********FOUND**********Print Spc(7);'**********FOUND**********If i >= 1 ThenPrint "*"Else'**********FOUND**********Print "*"; Spc(2 * (i - 1)); "*"End IfNext iEnd Sub1.Space2.3.space2『Visual Basic——程序改错』'【程序改错】463'------------------------------------------------'题目:以下程序功能是输入三个数,由大到小排序。

'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Option ExplicitDim A As IntegerDim B As IntegerDim C As IntegerPrivate Sub Form_Click()Dim nTemp As IntegerA = Val(InputBox("Please input first integer", "输入正整数"))B = Val(InputBox("Please input second integer", "输入正整数"))C = Val(InputBox("Please input third integer", "输入正整数"))'**********FOUND**********If A <= C ThennTemp = AB = nTempEnd If'**********FOUND**********If B <= C ThennTemp = AA = CC = nTempEnd If'**********FOUND**********If A <= B ThennTemp = BB = CC = nTempEnd IfPrint "The integers in order is"; A; B; CEnd Sub--------------------------------------------------『图片数目』:0张『文件数目』:2张『答案』:1 If A <= B Then 或If B >= A Then2 If A <= C Then 或If C >= A Then3 If B <= C Then 或If C >= B Then3『Visual Basic——程序改错』'【程序改错】464?'------------------------------------------------'题目:歌德巴赫猜想:任何一个大于或等于六的偶数都可' 以分解成两个素数之和,请修正下面程序的错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序改错
1.计算下列分段函数的值,输入x输出y
的值
f(x)= x*2 x<0且x≠-3
sin(x) 0<=x<10 且x≠2且x≠3
x*x+x-1 其他
1)scanf(“%f,&x); 2)y=sin(3*x);
3)printf(“%f\n”,y);
2.输入两个整数n1,n2(n1<n2),统计两整
数范围内被3整除的数的个数。

1)scanf(“%d%d”,&n1,&n2);
2)n2=j; 3)if(j%3==0) n++;
3.输入一个长整数,求各位数字的平方和。

如果输入的是负数,求其相反数的个位数字的平方和。

例如输入-123输出1
4.
1)scanf(“%ld”,&in);2)While(in>0);
3)in=in/10;
4.从键盘上输入20个元素的值存入以为数组m中,然后将下标为奇数的元素赋值给数组n,最后输出数组n的内容。

1)for(a=0;a<20;a++) 2)if(a%2==1)
3)b++; 4)for(a=0;a<10;a++)
5.从键盘输入10个学生的成绩,统计最高分max,最低分min和平均分avg。

1)float a[8],min,max,avg;
2)scanf(“%f”,&a[i]);
3)max=min=avg=a[0]; 4)if(a[i]<min)
6.一数列从第0项开始的前3项分别0,0,1,以后各项是相邻前三项和。

求该数列的前n 项平方根之和sum,n的值通过形参传入。

例如,当n=10时程序的输出结果应为23.197745.
1)double fun (int n) 2)sum=1.0;
3)s2=1.0; 4)for(k=4;k<=n;k++)
7.求1/2的圆面积,函数通过形参得到的圆半径。

例:半径19.527,输出s=598.950017.
1)float fun(float r)
2)s=1.0/2*3.14159*r*r;
3)return s;
8.求1到10的阶乘和。

1)for(i=1;i<=10;i++) 2)s=s+fac(i);
3)float y=1; 4)return y;
9.求1!+2!+3!+ (10)
1)float x=1; 2)for(i=2;i<=m;i++)
3)x=x*i; 4)return x;
10.求1到20阶乘的和。

1)t=1; 2)t=t*j; 3)s=s+t;
4)printf(“jiecheng=%f\n”,s);
11. 求∏值,∏/2=1+1/3+1/3×2/5+1/3×2/5×3/7给定精度的变量eps输入0.0005时,输出3.140578
1)while(t>eps) 2)t=t*n/(2*n+1);
3)return 2*s;
12.计算t=1-1/2*2-1/3*3-……1/m*m
1)for(i=2;i<=m;i++)
2)y=j-1.0/(i*i); 3)return y;
13.计算y=1+1/3+1/5+……1/(2m-3)
1)double y=1; 2)for(i=1;i<=m;i++)
3)y+=1.0/(2*i-3);
14.求s=1+1/1+2+1/1+2+3+1/1+2+3+……n 1)scanf(“%d”,&n); 2)float fun(int n) 3)for(i=1;i<=n;i++) 4)s=s+1.0/t;
15.求圆周率近似值,直到最后一项小于等于0.0001.
∏/4=1-1/3+1/5-1/7+……
1)#include”math.h”
2)float s=0,t=1,p=1;
3)while(fabs(t)>1e-4)
4)printf(“pi=%f\n”,s*4);
16.输出fabonacci数列前20项,定义成浮点型,输出整数部分。

1)printf(“%8.0f”,f1);
2)for(i=1;i<20;i++) 3)f1=f2;4)f2=f3;
18.统计400~499中4出现的个数。

1)while(x!=0) 2)if(y==4) k++;
3)return k; 4)k=k+num(i);
19.判断一个数字是否在一个正整数中,在返回1,不在返回0.
1)if(n==k) z=1; 2)m=m/10;
3)}while(m!=0); 4)return z;
21.一个5位数,判断它是不是回文数。

1)scanf(“%ld”,&x);
2)qian=x%10000/1000;
3)if(ge==wan&&shi==qian)
22.计算并输出k以内的最大10个能被13或17整除的自然数之和,若k=500,输出4622.
1)while((k>=2)&&(mc<=10))
2)if(k%13==0||k%17==0)
3)k--; 4)return m;
23.求出两个非零正整数的最大公约数。

1)a=b; 2)b=t; 3)r=a%b;} 4)return b; 24. 计算正整数num的各位上数字之积。

1){long k=1; 2)num/=10; 3)}while(num);
25.计算正整数num的各位上数字之积。

1)long k=1; 2)num/=10;
3)scanf(“%ld”,&n);
4)printf(“\n%ld\n”,fun(n));
26.找出一个大于给定整数m且紧随m的素数,并作为函数值返回。

1){int i,k; 2)if(i%k==0) break;
3)if(k==i)
27.找出大于m的最小素数。

1)for(k=2;k<i;k++) 2)if(i%k==0) break;
3)if(i<=k) 4)return i;
28.判断m是否为素数,若是返回1,否则返回0.主函数功能,按每行5个输出1-100之间的全部素数。

1)int fun(int m) 2)for(i=2;i<m;i++) 3)if(m%i==0) k=0 ; 4)return k;
29.给定n个实数,输出平均值,并统计在平均值以下(含平均值)的实数个数。

1)float xa=0; 2)for(j=0;j<n;j++)
3) for(j=0;j<n;j++) 4)return c;
30.输入10个数,输出10个数的平均值。

1)for(i=1;i<10;i++)
2)float score[10],aver;
3)scanf(“%f”,&score[i]);
4)aver=average(score);
31.将数组元素逆序存放。

1)for(i=0;i<=m;i++) 2)x[i]=x[j]
3)inv(a,10); 4)printf(“%3d”,a[i]);
32.计算数组元素中值为正数的平均值。

例:39,-47,21,2,-8,15,0,结果19.250000.
1)double sum=0.0; 2)while(s[i]!=’\0’)
3)sum=sum/c; 4)return sum;
34.用起泡法对10个整数从小到大排序。

1)void sort(int x[],int n)
2)for(j=0;j<n-1-i;j++) 3)if(x[j]>x[j+1])
4)sort(a,n)
36.求一个3行4列矩阵的外框元素之和,四角元素不能重复加。

例:1,……12,和为65.
1) int i,j,s,s1=0,s2=0,s3=0,s4=0;
2)s2=s2+a[m-1][j]; 3) for(i=1;i<m-1;i++) 4)s=s1+s2+s3+s4;
46.实现字符串的连接。

1)while(s1[i]!=’\0’) i++; 2)while(s2[j]!=’\0’) 3)s1[i]=s2[j]; 4)s1[i]=’\0’;。

相关文档
最新文档