程序改错2

合集下载

计算机二级C++练习题:程序改错题

计算机二级C++练习题:程序改错题

计算机二级C++练习题:程序改错题为了使广大考生在备战计算机等级考试时,更快的掌握相应知识点,下面是店铺搜索整理的计算机二级C++练习题:程序改错题,供参考练习,预祝考生们考出自己理想的成绩!计算机二级C++练习题:程序改错题01使用VC6打开考生文件夹下的工程kt9_1,此工程包含一个源程序文件kt9_1.cpp,但该程序运行有问题,请改正程序中的`错误,使程序的输出结果如下:4,520源程序文件清单如下:#includeclassA{protected:intn,m;public:voidset(inta,intb){m=a;n=b;}voidshow(){cout<<m<<","<<n<<endl;}/**********found**********/}classB:publicA{ints;public:voidset(){s=m*n;}voidshows(){cout<<s<<endl;}};voidmain(){Bb;/**********found**********/b.set();b.show();b.set();/**********found**********/b.show();}【参考答案】(1)在“}”后添加分号(2)将b.set();改为:b.A::set(4,5);(3)将b.show();改为:b.shows();【试题解析】(1)主要考查对类定义格式的掌握,类的结尾应该使用";";(2)主要考查对基类与派生类函数调用关系的掌握,根据所要求的输出结果,应该调用的函数为类A的set,而不是类B自身的set函数,应该避免调用的二义性;(3)主要考查对继承与派生的理解,由所要求输出结果可知正确:b.shows()。

计算机二级C++练习题:程序改错题02使用VC6打开考生文件夹下的工程kt10_1,此工程包含一个源程序文件kt10_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果为:classBaseclassD1classD2classD3finBase源程序文件kt10_1.cpp清单如下:#includeclassBase{public:Base(){cout<<"classBase"<<endl;}voidf(){cout<<"finBase"<<endl;}};classD1:virtualpublicBase{public:D1(){cout<<"classD1"<<endl;}voidf(){cout<<"finD1"<<endl;}};/**********found**********/classD2:publicBase{public:D2(){cout<<"classD2"<<endl;}};/**********found**********/classD3::publicD1,publicD2{public:D3(){cout<<"classD3"<<endl;}};voidmain(){D3d;/**********found**********/d.f();}【参考答案】(1)将classD2:publicBase改为:classD2:virtualpublicBase(2)将classD3::publicD1,publicD2改为:classD3:publicD1,publicD2(3)将d.f();改为:d.Base::f();【试题解析】(1)主要考查对虚基类的理解,虚基类可以解决二义性的问题,其定义方式是在继承列表中使用virtual关键字,使用虚基类可以避免程序运行中对基类函数调用的不惟一;(2)主要考查对类的定义方法的掌握,“::”为作用域符,此处应该使用“:”,因为后面是继承列表;(3)主要考查对虚基类函数调用过程的理解,只有使用"::"限定才能访问基类函数,否则将会调用自身的函数,如果该类没有该函数的定义,则会自动调用其父类的该函数,所以必须使用“::”符号。

青少年计算机等级考试五级题型

青少年计算机等级考试五级题型

青少年计算机等级考试五级题型单项选择题:20分(含公共基础知识部分10分);文字处理题(word):30分;电子表格题(excel):30分;演示文稿题(powerpoint):20分。

二级C语言程序设计单项选择题:40题,40分(含公共基础知识部分10分);程序填空题:3空,18分;程序改错题:2个错误,18分;程序设计题:24分。

二级C++语言程序设计单项选择题:40分(含公共基础知识部分10分);操作题:60分(包括基本操作题、简单应用题及综合应用题)。

二级visualbasic语言程序设计单项选择题:40分(含公共基础知识部分10分);操作题:60分(包括基本操作题、简单应用题及综合应用题)。

1.选择题应试技巧绝大多数选择题的设问是正确观点,称为正面试题;如果设问是错误观点,称为反面试题。

考生在作答选择题时可以使用一些答题方法,以提高答题准确率。

(1)逆选法(排谬法):逆选法是将错误答案排除的方法。

对题肢中的4个选项,一看就知道其中的1个(或2个、3个)是错误的,可以使用逆选法,即排除错误选项。

(2)比较法(蒙猜法):这种办法是没有办法的办法,在有一定知识基础上的蒙猜也是一种方法。

一般情况下在做选择题过程中是三种方法的综合使用。

例如:通过逆选法,如果还剩下2个选项无法排除,那么在剩下的选项中随机选一个,因为错选了也不倒扣分,所以不应该漏选,每题都选一个答案。

2.填空题应试技巧填空填一般难度都比较大,一般需要考生准确地填入字符,往往需要非常精确,错一个字也不得分。

在分值方面,每题也是2分。

所以建议考生对填空题不要太过于看重,与其为个别题目耽误时间,不如回过头来检查一些自己还没有十足把握的选择题,要注意以几点:(1)答案要写得简洁明了,尽量使用专业术语。

(2)认真填写答案,字迹要工整、清楚,格式要正确,在把答案往答题卡上填写后尽量不要涂改。

(3)注意,在答题卡上填写答案时,一定要注意题目的序号,不要弄错位置。

程序改错完整版---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个字符,以相反顺序打印出来。

吉林省计算机二级考试程序改错题解析.DOC

吉林省计算机二级考试程序改错题解析.DOC

*【程序改错】*题目:在XSDB.DBF中查找学生徐秋实的记录, 如果找到则将该记录* 的系别、姓名,两科科目名称和对应的成绩显示在屏幕上,否则* 显示:"查无此人!"。

答案:1). LOCATE FOR姓名="徐秋实"2). ?系别,姓名,"计算机="+★STR★(计算机),"英语="+★STR★(英语) 或 ?系别,姓名,"... 〖第2题〗『程序改错』(5分)*题目:求2!+4!+6!+…+10!的和答案:1). T=1T★*★N 或 T=★N★*★T3). S=★S★+★T 或 S=★T★+★S〖第1题〗『程序改错』(5分)*题目:有一个字符串"ABC",将其插入3个数字转换为:"A1B2C3"输出。

答案:1). A=SUBS(C1,I★,1) 或 A=SUBSTR(C1,I★,1)2). C2=★C2★+★A+★STR(I,1)*【程序改错】*题目:有学生数据库STD.DBF文件,其中学号字段的前两位是班号。

* 请编写程序MODI1.PRG:选择所有少数民族(非汉族)的学* 生参加某项活动,按民族的拼音次序升序排列,同民族的按* 照学号升序排列,并为之生成编号。

编号的前两位是班号,* 后两位是统一新编序号。

并将学号、编号、姓名、性别和* 民族添加到数据库文件BS中。

答案:1). index★on★民族★+★学号★to★std.idx2). <>3). subs(学号,1,2) +★STR(NUM,1) 或 left(学号,2) +★STR(NUM,1)〖第1题〗『程序改错』(5分)*题目:从键盘上输入5个数,将其中奇数求和,偶数求积。

答案:1). S2=12). IF MOD(M,2)<>0 或 IF MOD(M,2)#0 或 IF INT(M/2)★<>★M/2 或 IF INT(M/2)★#★...*【程序改错】*题目:求0-7这8个数字所能组成的奇数个数。

c语言程序改错讲解

c语言程序改错讲解

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

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

------------------------------------------------------*/#include <stdio.h>#include <conio.h>#include <math.h>/**********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 ( "Enter a, b : ");scanf ("%lf%lf", &a, &b );y = fun (&a, &b);printf ("y = %f \n", y );}第2题(10.0分)题号:438 难度:中第2章/*------------------------------------------------【程序改错】--------------------------------------------------功能:编写函数fun,求两个整数的最小公倍数,然后用主函数main()调用这个函数并输出结果,两个整数由键盘输入。

C语言程序改错2

C语言程序改错2
31有一数组内放10个整数要求找出最小数和它的下标然后把它和数组中最前面的元素即第一个数对换位置
1、以下程序的功能是求如 + ——— + ...... + ——————— 1+2 1+2+3 1+2+3+......+n 『答案』 :1 scanf("%d",&n); 2 float fun(int n) 3 for(i=1;i<=n;i++) 4 s+=1.0/t 或 s= s + 1.0 /t; 2、题目:函数 fun 的功能是:根据整型形参 m 的值,计算如下公式的值。 1 1 1 t = 1- —— - —— - ... - —— 2x2 3x3 mxm 例如,若 m=5,则应输出:0.536389 『答案』 :1 for(i=2;i<=m;i++)或 for(i=2;i<m+1;i++) 2 y-=1.0/(i*i); 或 y=y-1.0/(i*i); 3 return y; 或 return (y); 3、函数 fun 的功能是:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于 0.0001。 π 1 1 1 — = 1 - — + — - — + ... 4 3 5 7 『答案』 :1 #include "math.h" 或 #include <math.h> 2 float s=0,t=1,p=1; 3 while(fabs(t)>1e-4)或 while(fabs(t)>0.0001) 4 printf("pi=%f\n", s * 4 ); 4、功能:计算正整数 num 的各位上的数字之积。例如,输入 252,则输出应该是 20。 『答案』 :1 long k=1; 或 long int k=1; 2 num/=10; 或 num=num/10; 3 scanf("%ld",&n); 4 printf("\n%ld\n",fun(n)); 5、功能: (与上题略有不同)计算正整数 num 的各位数字之积。例如,若输入:252,则输 出应该是:20。若输入:202,则输出应该是:0。 『答案』 :1 {long k=1; 2 num/=10; 或 num=num/10; 3 } while(num) ; 或 }while(num!=0); 或 }while(num>0); 6、题目:判断 m 是否为素数,若是返回 1,否则返回 0。 『答案』 :1 int fun( int m) 或 fun( int m) 2 for(i=2;i<m;i++) 3 if( m%i == 0 ) k=0; 4 return(k); 或 return k; 7、功能:找出大于 m 的最小素数,并将其作为函数值返回。 『答案』 :1 for(k=2;k<i;k++) 或 for(k=2;k<=i-1;k++) 或 for(k=2;k<=sqrt(i);k++) 2 if( i%k == 0 ) break; 或 if(!(i%k)) break; 3 if(i<=k)或 if( k == i ) 或 if(k>sqrt(i)) 4 return i; 或 return (i);

程序改错题

程序改错题

程序改错题第一篇:程序改错题1、 Gaicuo1.cpp的功能是:1!+2!+3!+……+20!。

程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include void main() {float s=0,t; int n,i; for(n=1;n<=20;n++) { for(i=1,t=1;i<=n;i++) t=t*i; /****found*****/ /****found****/}2、 gaicuo2.cpp的功能是:输入两个不等的整数分别给x和y,输出其中的大数。

程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include void main( ) { int x,y; printf("Enter x & y:\n"); scanf("%d%d",&x,&y); /****found****/ if(x}3、gaicuo3.cpp的功能是交换两个数,若输入10和20,则输出20和10。

程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include void main( ) { int x,y,t; printf("Enter x & y:\n"); /****found****/ scanf("%d%d",&x,&y); /****found****/ t=x; x=y;y=t; printf("x=%d y=%d",x,y) ; } 4. gaicuo4.cpp的功能是输入一个整数,判别它是否能被3整除,若能整除,打印YES;不能打印NO。

C语言习题级答案2

C语言习题级答案2

选折题1. int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为(A)。

A、1B、不一定C、3D、22.以下选项中不合法的用户标识符是 BA、DimB、printfC、_123D、A$3. int i,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数1,2,3,4,5,6存入a数组的是(C)。

A、for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1;B、for(i=0;i<6;i++)a[i/3][i%3]=i+1;C、for(i=1;i<=6;i++)a[i][i]=i;D、for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1;4.以下所列的C语言常量中,错误的是___A___。

A、1.2e0.5B、0xFFC、2LD、'\72'5.若有说明: int a[3][4]={0};则下面正确的叙述是(A)。

A、数组a中每个元素均可得到初值0B、只有元素a[0][0]可得到初值0C、此说明语句不正确D、数组a中各元素都可得到初值,但其值不一定为06.以下正确的字符串常量是 DA、'abc'B、'A'C、OlympicGamesD、"\\\"7. C语言中,char类型数据占(C)。

A、8个字节B、4个字节C、1个字节D、2个字节8.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是____D__。

A、非法的常量B、字符aC、字符eD、字符A9.以下函数的类型是(D)fff(float x){return 5;}A、与参数x的类型相同B、void 类型C、无法确定D、int类型10.以下叙述中正确的是(A)。

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

【程序改错-1】题目:在一个一维整型数组中找出其中最大的数及其下标。

程序中共有4条错误语句,请改正错误。

『错误答案』: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 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;)『Turbo C——程序改错』【程序改错-3】题目:用起泡法对10个整数从小到大排序。

程序中共有4条错误语句,请改正错误。

『错误答案』: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])4 sort(a,n);『Turbo C——程序改错』【程序改错-4】题目:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

程序中共有4条错误语句,请改正错误。

『错误答案』:1scanf("%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;}『Turbo C——程序改错』【程序改错-5】题目:将一个字符串中第m个字符开始的全部字符复制成为另一个字符串。

程序中共有4条错误语句,请改正错误。

『错误答案』:1 { char *p1,*p2; 或{ char *p2,*p1;2 p1= ★str1★+★m★-1; 或 p1=-1+★str1★+★m★;3 while(*p1)4strcopy(str1,str2,m);【程序改错-6】题目:以下程序的功能是求如下表达式:请改正程序中的错误,使程序能得到正确的运行结果。

『错误答案』:1 scanf("%d",&n);2 float fun(int n)3 for(i=1;i<=n;i++)或 for(i=1;n>=i;i++) 或for(i=1;i<n+1;i++) 或for(i=1;n+1>i;i++)4 s+=1.0/t 或 s=★s★+★1.0★/(float)t; 或 s=★s★+★1.0★/t; 或s+=1.0/(float)t【程序改错-7】题目:下面程序的功能是利用二维数组输出如图所示的图形。

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

『错误答案』:1 #define N 72 a[i][j]=' ';3 z=z-1; 或 z--; 或z=-1+z; 或 z=(n+1)/2-1; 或z=(1+n)/2-14printf("%c",a[i][j]); 【程序改错-8】题目:输入一行英文文本,将每一个单词的第一个字母变成大『错误答案』:1 fun(char *p) 或fun(char p[])2 while(*p!='\0') 或while(*p)3 k=1;}4 p++; 或 p=1+p; 或++p; 或 p=p+1;【程序改错-9】题目:将一个字符串中的大写字母转换成小写字母。

例如:输入aSdFG输出为asdfg。

『错误答案』:1 char fun(char *c)2 return *c; 或return (*c); 或 return(*c);3 { char s[81],*p=s;4 putchar(*p); 或printf("%c",*p);【程序改错-10】题目:将若干学生的档案存放在一个文件中,并显示其内容。

错误答案』:1 { struct student *p2 FILE *fp;3 for(p=stu;p<★stu★+★3★;p++) 或 for(p=stu;★stu★+★3★>p;p++) 或for(p=stu;p<=★stu★+★2★;p++) 或 for(p=stu;★stu★+★2★>=p;p++)4printf("%4d %-10s %4d\n",(*p).num ,p->name,(*p).age);【程序改错-11】题目:下列给定程序中,函数fun的功能是:判断m是否为素数,若是返回1,否则返回0。

主函数的功能是:按每行5个输出1-100之间的全部素数。

『错误答案』:1 int fun( int m) 或fun( int m)2 for(i=2;i<m;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; 或return(k);【程序改错-12】题目:函数fun的功能是:用下面的和式求圆周率的近似值。

直到最后一项的绝对值小于等于0.0001。

错误答案』:1 #include "math.h"2 float s=0,t=1,p=1;或 float s=0,p=1,t=1; 或float p=1,s=0,t=1; 或 floatp=1,t=1,s=0; 或 floatt=1,p=1,s=0; 或 floatt=1,s=0,p=1;3 while(fabs(t)>1e-4)或 while(0.0001<fabs(t)) 或while(1e-4<fabs(t)) 或while(fabs(t)>0.0001)4 printf("pi=%f\n",★s★*★4★);【程序改错-13】题目:下列给定程序中,函数fun的功能是:求1到10的阶乘的和。

主函数和fun函数中,各有两个错误,\『错误答案』: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);3 float y=1.0; 或float y=1;4 return y; 或return(y); 或 return (y);【程序改错-14】题目:函数fun的功能是:求1到20的阶乘的和。

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

『错误答案』:1 t=1; 或 t=1.0;2 t=★t★*★j★; 或t*=j;3 s=★s★+★t★; 或s+=t;4printf("jiecheng=%f\n",s);【程序改错-15】题目:函数fun的功能是:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。

『错误答案』:1 printf("%8.0f",f1);或 printf("%f",f1);2 for(i=1;i<20;i++)或 for(i=1;20>i;i++) 或for(i=2;i<=20;i++) 或for(i=2;20>=i;i++) 或for(i=1;i<=19;i++) 或for(i=1;19>=i;i++)3 f1=f2;4 f2=f3;【程序改错-16】题目:函数fun的功能是:根据整型形参m的值,计算如下公式的值。

1 11t = 1- —— - —— - ...- ——2x2 3x3mxm『错误答案』:1 for(i=2;i<=m;i++)或 for(i=2;m>=i;i++) 或2 y-=1.0/(i*i); 或y=y-1.0/(i*i); 或 3return y; 或 return (y);【程序改错-17】题目:函数fun的功能是:实现交换两个整数的值。

例如给a和b分别输入3和6 ,输出为a=6 b=3『错误答案』:1 void fun (int *a,int*b) 或 fun (int *a,int *b)2 t=*a;3 *a=*b;4 *b=t;【程序改错-18】题目:函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。

k的值由主函数传入,若k的值为500,则函数值为4622。

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

『错误答案』:1 while (★(2<=k)★&&★(mc<10)★) 或 while (★(k>=2)★&&★(10<mc)★)2 if (★(★k%17★==★0)★||★(k%13★==★0)★) 或if !((k%17!=0)&&(k%13!=0))3 k--;4 return m; 或return(m);【程序改错-19】题目:函数fun的功能是:计算正整数num的各位上的数字之积。

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

『错误答案』:1 long k=1;2 num/=10; 或num=num/10;3 scanf("%ld",&n);4printf("\n%ld\n",fun(n));【程序改错-20】题目:已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项的和。

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

『错误答案』:1 double fun (int n)2 sum=1.0;3 s2=1.0;4 for(k=4;k<=n;k++)或 for(k=4;n>=k;k++)【程序改错-21】题目:函数fun的功能是:根据以下公式求π值,并作为函数值返回。

例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。

相关文档
最新文档