程序改错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语言
(一)功能:用选择法对数组中的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个字符,以相反顺序打印出来。
程序改错
发生错误后都要回到编辑阶段,分析错误原因,修改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
测试题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的功能是:根据以下公式求π值,并作为函数值返回。
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)
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整除的自然数之和。
程序改错
五、程序改错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。
程序改错(删减版)
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是一个接口。
程序改错
/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:求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;/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:求水仙花数。
程序改错(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 本程序功能用于将学生学过得单词在列表框中显示出来。
程序改错
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?'------------------------------------------------'题目:歌德巴赫猜想:任何一个大于或等于六的偶数都可' 以分解成两个素数之和,请修正下面程序的错误。
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的余数代替该位数字。
程序改错
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。
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
--------------------------------*/
#include<stdio.h>
void main()
{
char ch,nch;
int count;
int k;
printf("Enter string.\n");
scanf("%c",&ch);
printf("please enter an integer to insert in the array:\n");
/**********FOUND**********/
scanf("%d",&number)
printf("The original array:\n");
i=2;
break;
}
case 'o':
case 'O':
{
i=3;
break;
功能:输入字符序列,字符序列以特殊字符“#”结束。程序从前向后依次读入字符,并翻译出新的字符输出。翻译的规则是:如果当前读入的字符是数字符,如果该字符的面值为n,则它的后一个字符(包括数字符)需重复输出n+1次如果当前读入的字符不是数字符,则输出该字符。输出时,以上述一次翻译为一组,不同组间输出用一个空白字符隔开。翻译直至当前读入的字符为字符‘#’,结束翻译和输出。
a[i]=a[i-1];
else
{
a[i+1]=number;
/**********FOUND**********/
exit;
}
if(number<a[0]) a[0]=number;
printf("The result array:\n");
{
int k, i=5;
for ( k = 0; k<i; k++ )
/**********FOUND**********/
num[i]=0;
for (; *s; s++)
{
i = -1;
/**********FOUND**********/
注意:字母不分大、小写。
例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。
--------------------------------*/
#include <conio.h>
#include <stdio.h>
fun ( char *s, int num[5] )
if (i < 0)
num[i]++;
}
}
main( )
{
char s1[81]; int num1[5], i;
clrscr();
printf( "\nPlease enter a string: " ); gets( s1 );
fun ( s1, num1 );
printf("\nplease input a number:\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
{
/**********FOUND**********/
while(n==i)
{
【程序改错】
--------------------------------
功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。
--------------------------------*/
#define N 11
main()
{
int i,j,t,number,a[N]={1,2,4,6,8,9,12,15,149,156};
f(a);
/**********FOUND**********/
printf("%d,%c",a.x,b.c);
getch();
}
f(struct student b)
{
b.x=20;
/**********FOUND**********/
b.c=y;
for(k=0;k<count;k++)
printf("%c",nch);
}
else
/**********FOUND**********/
printf("%f",ch);
printf(" ");
scanf("%c",&ch);
/**********FOUND**********/
if(n%i==1)
{
printf("%d*",i);
/**********FOUND**********/
n=n%i;
}
else
4). break;
第2题 (10.0分) 题号:386
/*--------------------------------
【程序改错】
--------------------------------
功能:分别统计输入的字符串中各元音字母(即:A、E、I、O、U)的个数。
--------------------------------*/
#include"stdio.h"
main( )
{
/**********FOUND**********/
long a,b,c,d,e,x,
scanf("%ld",&x);
a=x/10000;
/**********FOUND**********/
第1题 (10.0分) 题号:421
/*--------------------------------
【程序改错】
--------------------------------
功能:给一个不多于5位的正整数,要求:
一、求它是几位数,
二、逆序打印出各位数字。
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**********/
/**********FOUND**********/
while(ch='#')
{
if(ch>='0'&&ch<='9')
{
/**********FOUND**********/
count=ch-'0'-1;
scanf("%c",&nch);
--------------------------------*/
#include "stdio.h"
struct student
{
int x;
char c;
} a;
mai********FOUND**********/
a.c='a'
case 'E':
{
i=1;
break;
}
case 'i':
case 'I':
{
}
case 'u':
case 'U':
{
i=4;
break;
}
}
/**********FOUND**********/
for ( i=0; i < 5; i++ )
break;
}
}
printf("%d",n);
}
答案:
1). while(n!=i)
2). if(n%i==0) 或 if (!(n%i))
3). n=n/i;
第1题 (10.0分) 题号:4
/*--------------------------------
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];
}
答案:
1). a.c='a';
2). printf("%d,%c",a.x,a.c);
3). b.c='y';
第1题 (10.0分) 题号:440
/*--------------------------------