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

合集下载

计算机二级上机程序改错题1-50

计算机二级上机程序改错题1-50

1、给定程序MODI1.C 中函数 fun 的功能是:计算n!。

例如,给n 输入5,则输出120.000000。

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

注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include <stdio.h> double fun ( int n ) { double result = 1.0 ; /************found************/ if n = = 0 return 1.0 ; while( n >1 && n < 170 ) /************found************/ result *= n-- return result ; } main ( ) { int n ; printf("Input N:") ; scanf("%d", &n) ; printf("\n\n%d! =%lf\n\n", n, fun(n)) ; } 解题思路: 第一处:条件语句书写格式错误,应改为:if (n==0)。

第二处:语句后缺少分号。

2、给定程序MODI1.C 中函数fun 的功能是: 依次取出字符串中所有数字字符, 形 成新的字符串, 并取代原字符串。

请改正函数fun 中指定部位的错误, 使它能得出正确的结果。

注意: 不要改动main 函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include <stdio.h> void fun(char *s) { int i,j; for(i=0,j=0; s[i]!='\0'; i++) if(s[i]>='0' && s[i]<='9') /**********found**********/ s[j]=s[i]; /**********found**********/ 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 ); } 解题思路: 第一处: 要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j 来控制新字符串的位置,所以应改为:s[j++]=s[i];。

全国计算机二级C语言程序改错题(-100%全中必过)

全国计算机二级C语言程序改错题(-100%全中必过)

目录题目一前N项和问题 (3)题目二SS字符串问题 (4)题目三变量互换问题1 (4)题目三变量互换问题2 (5)题目三变量互换问题3 (5)题目四最大公约数问题 (6)题目五长数变短数1 (7)题目五长数变短数2 (7)题目五长数变短数3 (8)题目五长数变短数4 (9)题目五长数变短数5 (9)题目五长数变短数6 (10)题目五长数变短数7 (11)题目五长数变短数8 (11)题目五长数变短数9 (12)题目六斐波拉契数列 (13)题目七链表1 (14)题目七链表2 (15)题目七链表3 (16)题目七链表4 (17)题目八非素数问题 (19)题目九排序问题1 (19)题目九排序问题2 (20)题目九排序问题3 (21)题目九排序问题4 (22)题目九排序问题5 (23)题目九排序问题6 (24)题目九排序问题6 (25)题目九排序问题7 (26)题目十平均值问题1 (26)题目十平均值问题2 (27)题目十平均值问题3 (28)题目十平均值问题4 (29)题目十平均值问题5 (30)题目十一字符串连接1 (30)题目十一字符串连接2 (31)题目十一字符串连接3 (32)题目十一字符串连接4 (32)题目十二求和问题1 (33)题目十二求和问题2 (34)题目十二求和问题3 (35)题目十二求和问题4 (36)题目十二求和问题6 (37)题目十二求和问题7 (38)题目十二求和问题8 (39)题目十二求和问题9 (39)题目十二求和问题10 (40)题目十二求和问题11 (41)题目十二求和问题12 (42)题目十二求和问题13 (42)题目十二求和问题14 (43)题目十二求和问题15 (44)题目十二求和问题16 (44)题目十二求和问题17 (45)题目十二求和问题18 (45)题目十二求和问题19 (46)题目十三整数问题 (47)题目十四字符串逆置 (48)题目十五进制转换1 (48)题目十五进制转换2 (49)题目十六素数问题1 (50)题目十六素数问题2 (50)题目十六素数问题3 (51)题目十六素数问题4 (52)题目十六素数问题5 (53)题目十七删除字符串中指定项1 (53)题目十七删除字符串中指定项2 (54)题目十八最小公倍数问题 (55)题目十九字符串替换问题1 (55)题目十九字符串替换问题2 (56)题目二十找最长字符串 (57)题目二十一数组问题1 (58)题目二十一数组问题2 (59)题目二十一数组问题3 (60)题目二十二求平方根问题 (61)题目二十三短字符串变长字符串1 (61)题目二十三短字符串变长字符串2 (62)题目二十三短字符串变长字符串3 (63)题目二十三短字符串变长字符串4 (64)题目二十四字符串s问题1 (64)题目二十四字符串s问题2 (65)题目二十四字符串s问题3 (66)题目二十五求方程的根 (67)题目二十六求阶乘1 (68)题目二十六求阶乘2 (69)题目二十七方阵问题 (70)题目二十八查找字符串中某元素的数目 (71)题目二十九最大值问题1 (72)题目二十九最大值问题2 (72)题目二十九最大值问题3 (73)题目三十大小写转换1 (74)题目三十大小写转换2 (75)题目三十大小写转换3 (76)题目三十一:计算数字位数的问题1 (77)题目三十一:计算数字位数的问题2 (78)题目三十一:计算数字位数的问题3 (79)题目三十一:计算数字位数的问题4 (80)题目三十二统计字母数字个数问题1 (81)题目三十二统计字母数字个数问题2 (82)题目三十二统计字母数字个数问题3 (83)题目三十二统计字母数字个数问题4 (83)题目三十三对角线问题 (84)题目三十四比较字符串大小 (85)题目一前N项和问题.下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。

浙江省计算机二级上机操作题(20141117)

浙江省计算机二级上机操作题(20141117)
}
/****考生在\n",sum);
fp=fopen("CD1.dat","wb");
fwrite(&sum,8,1,fp);
fclose(fp);
}
试题八(新)
计算 的和直到末项的绝对值小于10-10时为止。
#include <stdio.h>
fclose(fp);
}
试题二
(老)该程序功能:用冒泡法对10个整数按升序排序。
#include <stdio.h>
#define N 10
void main()
{
int i,j,min,temp;
inta[N]={5,4,3,2,1,9,8,7,6,0};
printf("\nThe array is:\n"); /*输出数组元素*/
printf("%f\n",f(1.7,b,5));
}
float f(float x, float *a, int n)
{ float y=a[0],t=1; int i;
for(i=1;i<n;i++) { t=t*x ; y=y+a[i]*t; }
return y;
}
3、程序设计题
试题一(新)
编制函数f计算下列表达式的值,函数main提供了一个测试用例。
#include <stdio.h>
#include <math.h>
void main()
{ FILE *fp; doublesum,x; int i;
/****考生在以下空白处写入执行语句******/

国家计算机等级考试上二级C-改错题

国家计算机等级考试上二级C-改错题

1 下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。

例如,当s中的数为4576235时,t中的数为4725。

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

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:#include#include/**********************found***********************/int fun(long s,long *t){long s1=10;*t=s ;while(s>0){/**********************found***********************/s=s 0;*t=s *s1+*t;s1=s1*10;}}main(){long s, t;clrscr();printf("\nPlease enter s: ");scanf("%ld",&s);fun(s,&t);printf("The result is: %ld\n ",t);}答案及评析:(1)错误:int fun(long s,long *t)正确:void fun(long s,long *t)(2)错误:s=s 0;正确:s=s/100;【解析】错误1:函数由指针来完成参数的传递,所以没有返回值,应定义函数的类型为void。

错误2:此处要注意特殊运算符号"%"--取余和"/"--整除的区别。

将一个数整除100则可得到由其百位数以上的数组成的新数字,将一个数整除100取余则可得到由十位数和个位数组成的新数。

2下列给定的程序中,函数fun()的功能是:计算并输出k以内最大的6个能被7或11整除的自然数之和。

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

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

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

11、第一大类(交换类)共7道/**found**/t=*x; *x=y;/**found**/return(t);2. 程序修改(第60套)void fun(int *a,int *b)/**found**/t=*b;*b=*a;*a=t;2.程序修改(第88套)/**found**/void fun(int *x, int *y)/**found**/t=*x,*x=*y,*y=t;2、第二大类(计算类)共22道2.程序修改(第1套)求岀以下分数序列的前n 项之和。

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

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

/**foun d**/double fun (i nt n)/**foun d**/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套)long s=0,t=0;t=t/10;2.程序修改(第21套)double f(double x)/**found**/ return s;2.程序修改(第27套)/**found**/double fun(double a,doublex0)/**found**/if(fabs(x1-x0)> 2程序修改(第29套)/**found**/#define FU(m,n) (m)/(n)return (value);2.程序修改(第33套)/**found**/for (i =2 ; i<= m; i++)/**found**/y+=1.0/ ( i* i);2.程序修改(第37套)/**found**/while((fabs(t))>=num)/**found**/t=s/n2.程序修改(第45套)/**found**//**found**/t+=i;2/**found**/result *=n__;2.程序修改(第48套)/**found**/for (i =2 ; i<= m; i++)/**found**/y+=1.0/ ( i* i);s=s +(double)(n+1)/n;/**found**/return t;2.程序修改(第52套)/**found**/int fun(int n)/**found**/if(n==1) 2.程序修改(第58套)给定程序中函数fun的功能是:求K! <k<13>,所求阶乘的值作为函数值返回。

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

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

11、第一大类(交换类)共7道/**found**/t=*x; *x=y;/**found**/return(t);2. 程序修改(第60套)void fun(int *a,int *b)/**found**/t=*b;*b=*a;*a=t;2.程序修改(第88套)/**found**/void fun(int *x, int *y)/**found**/t=*x,*x=*y,*y=t;2、第二大类(计算类)共22道2.程序修改(第1套)求岀以下分数序列的前n 项之和。

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

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

/**foun d**/double fun (i nt n)/**foun d**/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套)long s=0,t=0;t=t/10;2.程序修改(第21套)double f(double x)/**found**/ return s;2.程序修改(第27套)/**found**/double fun(double a,doublex0)/**found**/if(fabs(x1-x0)> 2程序修改(第29套)/**found**/#define FU(m,n) (m)/(n)return (value);2.程序修改(第33套)/**found**/for (i =2 ; i<= m; i++)/**found**/y+=1.0/ ( i* i);2.程序修改(第37套)/**found**/while((fabs(t))>=num)/**found**/t=s/n2.程序修改(第45套)/**found**//**found**/t+=i;2/**found**/result *=n__;2.程序修改(第48套)/**found**/for (i =2 ; i<= m; i++)/**found**/y+=1.0/ ( i* i);s=s +(double)(n+1)/n;/**found**/return t;2.程序修改(第52套)/**found**/int fun(int n)/**found**/if(n==1) 2.程序修改(第58套)给定程序中函数fun的功能是:求K! <k<13>,所求阶乘的值作为函数值返回。

二级c语言上机考试改错题总结 (1)

二级c语言上机考试改错题总结 (1)

二级C语言上机考试改错题总结——张官祥根据本人多年研究全国计算机等级考试二级C语言,发现很多考生对上机考试存在很大的问题。

现将本人在教学当中对二级C语言上机考试题库总结的经验和大家分享,希望能对我们考生的考试有所帮助,顺利通过考试!以下是对上机考试改错题的做题方法和总结,改错题的错误主要分为以下几类:1、if或while语句若错误行是if或者while语句,则要注意以下点:1)首先判断是否正确书写if或while关键字;2)然后看有没有用小括号把整个表达式括起来,若没有则加上小括号;3)若条件表达式中有指针变量而且没有指针运算符时,则加上指针运算符;4)若if条件表达式中只有一个等于号即数学等号(=),则要改写成两个等于号即逻辑等号(= =);5)若if条件表达式为其他的比较运算符,则一般是进行逆转或加一个等于号;2、for语句若错误行是for语句,则要注意以下几点:1)首先判断for有没有书写正确;2)然后看for中的表达式是不是用分号(;)隔开,若不是则改为分号。

记住是分号(;),不是逗号(,)!3)再者,分析for中的三个表达式,是否符合题意;第一个表达式表示起始条件,第二个表达式表示终止条件,第三个表达式表示循环变量的变化。

3、return语句若错误行为return语句,则要注意以下几点:1)首先看是不是正确书写return关键字;2)然后看是不是缺少分号,若是则加上分号即可;3)再者判断return后的变量或表达式是否正确;这种错误需要根据题意来分析,分析返回变量或表达式的值和类型。

4、赋值语句若错误行是赋值语句,则要看赋值是否正确,然后看赋值运算符是否写正确。

5、定义语句若错误行是定义语句,则要注意:1)首先分析变量类型名是否写对;2)然后分析给变量赋初值是否正确;3)若以上均不是,则看是不是少定义了某个变量或少了花括号;6、表达式错误问题:若错误行中有整数1除以某个表达式或变量时,必须把整数1改为1.0;若变量或表达式是整型时,则只能进行强制类型转换。

计算机二级考试C++语言程序设计上机考试试题

计算机二级考试C++语言程序设计上机考试试题

计算机二级考试C++语言程序设计上机考试试题计算机二级考试C++语言程序设计上机考试试题计算机二级考试接近,不知道各位同学都预备得怎么样呢?接下来应届毕业生我为大家细心预备了计算机二级考试C++语言程序设计上机考试试题,期望能够给大家带来帮忙!一、程序改错题使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor留意:错误的语句在//******error******的下面,修改该语句即可。

试题程序:#include(iostream.h)classTC{inti;第1页/共5页public:TC();voiddisplay();~TC();};//******error******TC:TC(){coutConstructor,;i=0;)//******error******TC:display(){touti= }//******error******第2页/共5页TC:TC(){COUIDestructor }voidmain(){TCa;a.display();}二、简洁应用题使用VC++6.0打开考生文件夹下的源程序文件2.cpp。

阅读下列函数说明和代码,实现函数sort(intA[],intn),用选择排序法将数组从大到小排序。

提示:选择排序法的思想是(1)反复从还未排好序的那部分线性表中选出关键字最小的结点。

(2)根据从线性表中选出的.挨次排列结点,重新组成线性表。

(3)直到未排序的那部分为空,使得重新形成的线性表是一个有序的线性表。

第3页/共5页补充函数sort(intA[],intn),实现选择排序。

留意:请勿改动主函数。

试题程序:#include#defineN10voidsort(intA[N],intn){}intmain()intA[N]={-72,54,-6,7,18,102,0,4,-11,1}; sort(A,10);for(inti=0;i(sizeof(A)/sizeof(int);i++){cout }cout return0;第4页/共5页}文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有需要的人。

计算机二级C上机考试程序改错题及答案

计算机二级C上机考试程序改错题及答案

计算机二级C上机考试程序改错题及答案计算机二级C上机考试程序改错题及答案为了使广大考生在备战计算机等级考试时,更快的掌握相应知识点,下面是店铺搜索整理的计算机二级C上机考试程序改错题及答案,供参考练习,预祝考生们考出自己理想的.成绩!程序改错题使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正程序中的错误,使程序输出的结果为1063022注意:错误的语句在//******error******的下面,修改该语句即可。

试题程序:#includeclassTC{private:intnumber;intAdd(inti){returnnumber+=i:}intSub(inti){returnnumber-=i:}intMul(inti){returnnumber*=i:}intDiv(inti){if(i!=O){returnnumber/=i;}else returnnumber;}//******error****** typedefint(FUNC)(int);//******error****** FUNCfunc[];public:TC(){fune[0]=TC::Add;,fund[1]=TC::Sub;func[2]=TC::Mul;func[3]=TC::Div;number=0;}intCallFunetion(inti,intj) {//******error****** return(func[i])(j);}};voidmain(){TCmyobj;cout<<myobj.callfunction(0,10)<<endl;cout<<myobj.callfunction(1,4)<<endl;cout<<myobj.callfunction(2,5)<<endl;cout<<myobj.callfunction(3,15)<<endl;cout<<myobj.callfunction(3,o)<<endl;}解析:(1)应改为:“typedefint(TC::*FUNC)(int);”。

吉林省计算机二级考试程序改错题解析.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个数字所能组成的奇数个数。

计算机二级等级考试上机考试操作步骤(带详细操作截图)【精选】

计算机二级等级考试上机考试操作步骤(带详细操作截图)【精选】

计算机等级考试上机考试操作步骤(二级为例)一、进入考试系统单击桌面上的“考试系统”图标,进入考试启动界面。

“考试启动界面”如图1所示。

图1二、输入考生信息进入考试界面后,单击“开始登录”按钮即可进入考试环境进行“考生信息”所示。

的输入。

“信息输入”如图2图2考生输入准考证号如“2427180018001800”后,单击“考号验证”按钮进行信息核实,系统会弹出如图3所示的对话框。

图3在确定考生信息完全正确时,单击“是”按钮,进入答题界面,上方含有“程序填空题”、“程序修改题”、“程序设计题”三个按钮,如下图4所示,图4 答题界面三、开始答题本次考试共有50套题,每一套题的填空、改错和编程题的答案均附在后面。

学生进入上述考试界面后,首先点击程序设计题,根据程序设计题从而明白是哪一套题的组合,然后开始正式答题。

过程如下:1.程序填空题单击考试界面中的“程序填空题”按钮后,题目显示区将显示出题目对应的文字叙述信息。

通过文字叙述可以了解到该题目的考试内容。

然后单击左上角“答题”菜单中的“启动Microsoft Visual C++”菜单项进入“Visual C++ 6.0”系统环所示。

境界面,如下图5图5进入系统环境后,执行左上角的“文件|打开”命令,系统弱出“打开”对话框,选择“blank1.c”程序文件,点击左下角的“打开”按钮,如图6所示。

图6打开“blank1.c”程序文件后,开始填空。

填空方法如下:(1)在程序中找到“******** found *******”标识位置。

(2)把“found”标识位置下面的需要填空的“占位符”删除(需要连横线一所示。

起删除),将程序的答案写在对应位置。

例如下图7图7原“blank1.c ”程序图填完结果后的“blank1.c ”程序如图8所示:图8 填完结果后的“blank1.c ”程序(3)程序结果填写完成后,必须使用“文件”菜单中的“保存”命令,保存“blank1.c ”程序文件。

计算机等级考试二级C语言程序改错题(一)

计算机等级考试二级C语言程序改错题(一)

一、下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。

例如,当s中的数为123456789时,t中的数为2468。

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

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:#include <stdio.h>// ****found****void proc(long s,long *t){long sl=10;s/=10;*t=s%10;// ****found****while (s>0){s=s/100;*t=s%10*sl+*t;sl=sl*10;}}int main(){long s,t;printf("Please enter s:");scanf("%ld",&s);proc(s,&t);printf("The result is:%ld\n",t);return 0;}参考答案:(1)错误:void proc(long s,long t)正确:void proc(long s,long *t)(2)错误:while (s<0)正确:while (s>0)【解析】从主函数中实参可知,形参的第二个变量是长整型的指针变量。

因此“void proc(long s,long t)”应改为“void proc(long s,long *t)”;要从低位开始取出长整型变量s 中偶数位上的数,每次变量S要除以100,然后判断其是否大于0来决定是否要继续,因此“while(s>0)”。

给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。

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

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:#include <stdio.h>// ****found****void proc(double m[]){int i;for (i=0; i<10;i++){// ****found****m[i]=m[i]/5;}}int main(){int i;double m[10];printf("before calling\n");for (i=0;i<10;i++){m[i]=i+20;printf("%lf ",m[i]);}proc(m);printf("\nafter calling\n");for(i=0; i<10; i++)printf("%lf ",m[i]);printf("\n");return 0;}参考答案:(1)错误:int proc(int m[])正确:void proc(int m[])(2)错误:m[i]=m[i]%5;正确:m[i]=m[i]/5;【解析】由主函数中的函数调用可知,函数proc()没有返回值。

江苏省计算机二级vfp上级考试 程序改错类 共45题附上答案 希望大家好好复习都能过二级

江苏省计算机二级vfp上级考试 程序改错类  共45题附上答案   希望大家好好复习都能过二级

第一套:下列程序是将从键盘上输入的字符(只含数字或字母)按下列规则编成密码后输出:对输入的数字字符用其ASCII码减10;小写字母用该字母的ASCII码前面加星号(*);大写字母用其ASCII码加左右括号,输入其他字符则表示输入结束。

例如,从键盘输入字符串"A12bMc",输出的密码为"(65)3940*108(77)*109"。

要求:(1)将下列程序输入到项目中的程序文件progm中,并对其中的两条错误语句进行修改。

(2)在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

CLEARcpassword="ckey1="DO WHILE.T.WAIT WIND"请输入字符串……(按[Enter]键结束)"TO ckeyIF BETWEEN(ckey, 0 , 9 )ckey1=ALLT(STR(ASC(ckey)-10))ELSEIF BETWEEN(ASC(ckey),ASC("A"),ASC("Z"))ekey1= ( +ALLT(STR(ASC(ckey)))+ )ELSEIF BETWEEN(ASC(ckey),ASC( a ),ASC( z ))ckey1= * +ALLT(STR(ASC(ckey)+10))ENDIFEXITENDIFENDIFENDIFcpassword=ckey1+cpasswordENDDO?cpassword【答案】(1)第14行改为:ELSE(2)第19行改为:cpassword = cpassword+ckey1【分析】(1)IF语句未结束。

(2)ckey1应接在cpassword后面构成新的cpassword。

第二套:下列程序是将从键盘上输入的字符串(只含数字或字母)按下列规则编成密码后输出:对输入的数字字符用其ASCII码减10;小写字母用该字母的ASCII码前面加星号(*);大写字母用其ASCII码加左右括号,输入其他字符则结束输入。

计算机二级考试部分试题及答案讲解

计算机二级考试部分试题及答案讲解

第一套一、改错题1 .题目要求下列给定程序中函数fun的功能是:计算函数F(x, y, z)= (x + y)/(x —y) + (z+ y)/(z —y)的值。

其中x和y 的值不相等,z和y的值不相等。

例如,当x的值为9, y的值为11, z的值为15时,函数值为一3.50。

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

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。

#i nclude <stdio.h>#in clude <math.h>#in clude <stdlib.h>**********fo un d**********#defi ne FU(m, n) ((m/n)) float fun (float a,float b,float c) { float value;value=FU(a+b,a-b)+FU(c+b,c-b);**********fo un d**********Return(Value);}mai n(){ float x,y,z,sum;prin tf("I nput x y z:");scan f("%f%f%f", &x, &y,& z);prin tf("x=%f,y=%f,z=%f\n",x,y,z);if (x==y||y==z){pri ntf("Data error!\n");exit(0);} sum=fu n(x,y,z);printf("The result is : %5.2f\n",sum);}2 .算法分析①#define FU(m,n) ((m/n)) 错误这样定义FU (m,n)造成语句value=FU(a+b,a-b)+FU(c+b,c-b) 执行为value=(a+b/a-b)+(c+b/c-b) ,所以应该将语句#define FU(m,n) ((m/n))改为#define FU(m,n) (m)/(n)②语句Return(Value);错误 C 语言中大小写字母有不同的含义,此处希望执行返回value的值的操作,所以应该改为return(value);二、填空题1 .题目要求下列给定程序中,函数fun的功能是:有NXN矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。

二级C上机考试复习资料 填空题和改错题参考答题

二级C上机考试复习资料 填空题和改错题参考答题

二级C上机考试复习资料填空题和改错题参考答题第01套填空题:【1.1.1】x【1.1.2】n【1.1.3】fabs(t)改错题:【1.2.1】for(i=1;i<=y;i++)【1.2.2】t=t%1000;第02套填空题:【2.1.1】n%10【2.1.2】break【2.1.3】break改错题:【2.2.1】if(t==0)【2.2.2】*zero=count;第03套填空题:【3.1.1】0【3.1.2】10*x【3.1.3】n/10改错题:【3.2.1】*t=0;【3.2.2】if(d%2!=0)第04套填空题:【4.1.1】j【4.1.2】0【4.1.3】i++改错题:【4.2.1】for(i=2;i<=m;i++)【4.2.2】y-=1.0/(i*i);第05套填空题:【5.1.1】[M]【5.1.2】N【5.1.3】'\0'改错题:【5.2.1】t=1;【5.2.2】return(2*s);第06套填空题:【6.1.1】[N]【6.1.2】t[i][j]【6.1.3】t[j][i]改错题:【6.2.1】#define FU(m,n)((m)/(n))【6.2.2】return(value);第07套填空题:【7.1.1】k【7.1.2】N【7.1.3】a[k][i]改错题:【7.2.1】for(i=strlen(t)-1;i;i--)【7.2.2】if(t[j]>t[j+1])第08套填空题:【8.1.1】999【8.1.2】t/10【8.1.3】x改错题:【8.2.1】void fun(long s,long*t)【8.2.2】while(s>0)第09套填空题:【9.1.1】sum=0【9.1.2】t[i][i]【9.1.3】1改错题:【9.2.1】double r;【9.2.2】while(fabs(m-n)>0.001)第10套填空题:【10.1.1】char【10.1.2】ch<='9'【10.1.3】'0'改错题:【10.2.1】b[k]=*p;【10.2.2】b[k]='';k++;第11套填空题:【11.1.1】0【11.1.2】i++【11.1.3】2.0*i改错题:【11.2.1】void fun(char*s,char*t)【11.2.2】t[2*d]='\0';第12套填空题:【12.1.1】fp【12.1.2】==【12.1.3】fp改错题:【12.2.1】n=strlen(aa);【12.2.2】ch=aa[i];第13套填空题:【13.1.1】N【13.1.2】substr【13.1.3】0改错题:【13.2.1】int fun(int x,int y,int z)【13.2.2】return j;第14套填空题:【14.1.1】k【14.1.2】N-1【14.1.3】temp改错题:【14.2.1】void fun(int a[][M],int m)【14.2.2】a[j][k]=(k+1)*(j+1);第15套填空题:【15.1.1】a【15.1.2】a【15.1.3】b改错题:【15.2.1】c=c+32;【15.2.2】c=c+5;第16套填空题:【16.1.1】&&【16.1.2】'A'【16.1.3】ch改错题:【16.2.1】void fun(int*a)【16.2.2】a[j]=a[j-1];第17套填空题:【17.1.1】48【17.1.2】s++【17.1.3】sum改错题:【17.2.1】if((k%13==0)||(k%17==0))【17.2.2】}第18套填空题:【18.1.1】1【18.1.2】-1【18.1.3】t改错题:【18.2.1】for(i=1;i<=3;i++)【18.2.2】if(k>=0&&k<=6)第19套填空题:【19.1.1】t,s【19.1.2】s[i]【19.1.3】'\0'改错题:【19.2.1】if(i%k==0)【19.2.2】if(k>=i)第20套填空题:【20.1.1】struct student*【20.1.2】a->score[i]【20.1.3】a改错题:【20.2.1】char*fun(char(*sq)[M])【20.2.2】return sp;第21套填空题:【21.1.1】a[i]【21.1.2】a[j]【21.1.3】a[j]改错题:【21.2.1】switch(g)【21.2.2】case1:return1;case2:return1;第22套填空题:【22.1.1】t[][N]【22.1.2】i=0;i<n【22.1.3】s改错题:【22.2.1】fun(int a[],int m)【22.2.2】else if(m>a[mid])第23套填空题:【23.1.1】*a【23.1.2】2【23.1.3】i+1改错题:【23.2.1】sum=0;【23.2.2】if((i+1)%5==0)第24套填空题:【24.1.1】x【24.1.2】n【24.1.3】t改错题:【24.2.1】d=1;s=0;【24.2.2】d=d/10;第25套填空题:【25.1.1】1.0【25.1.2】1【25.1.3】i改错题:【25.2.1】k=i;【25.2.2】c=k;第26套填空题:【26.1.1】->sno【26.1.2】->name【26.1.3】&t改错题:【26.2.1】double fun(double a,double x0)【26.2.2】if(fabs(x1-x0)>0.00001)第27套填空题:【27.1.1】1【27.1.2】2*i【27.1.3】(-1)改错题:【27.2.1】k++;【27.2.2】if(m==k)第28套填空题:【28.1.1】0【28.1.2】n【28.1.3】(t*t)改错题:【28.2.1】for(i=0;str[i];i++)【28.2.2】if(substr[k+1]==0)第29套填空题:【29.1.1】*s【29.1.2】1【29.1.3】k[n]改错题:【29.2.1】float fun(int k)【29.2.2】return s;第30套填空题:【30.1.1】struct student【30.1.2】n-1【30.1.3】a[i].name,a[j].name 改错题:【30.2.1】q=p+i;【30.2.2】while(q>p)第31套填空题:【31.1.1】a[i]%2【31.1.2】a[j]【31.1.3】j改错题:【31.2.1】fun(int n)【31.2.2】if(n==1)第32套填空题:【32.1.1】10【32.1.2】0【32.1.3】x改错题:【32.2.1】if(n==0)【32.2.2】result*=n--;第33套填空题:【33.1.1】N【33.1.2】k【33.1.3】ss[i]改错题:【33.2.1】int k=0;【33.2.2】while(*p||*q)第34套填空题:【34.1.1】n++【34.1.2】0【34.1.3】s++改错题:【34.2.1】t+=s[k];【34.2.2】*aver=ave;第35套填空题:【35.1.1】s[i]【35.1.2】k【35.1.3】0改错题:【35.2.1】while(*w)【35.2.2】if(*r==*p)第36套填空题:【36.1.1】N【36.1.2】i【36.1.3】-1改错题:【36.2.1】a2=k/10;【36.2.2】return i;第37套填空题:【37.1.1】s【37.1.2】--【37.1.3】return0改错题:【37.2.1】double fun(int n)【37.2.2】c=a;a+=b;b=c;第38套填空题:【38.1.1】3.0【38.1.2】>【38.1.3】(2*i+1)改错题:【38.2.1】double fun(int n)【38.2.2】s=s+(double)a/b;第39套填空题:【39.1.1】n/2【39.1.2】i【39.1.3】a[n-i-1]改错题:【39.2.1】n=*p-'0';【39.2.2】n=n*8+*p-'0';第40套填空题:【40.1.1】a【40.1.2】【40.1.3】score[i]改错题:【40.2.1】s[j++]=s[i];【40.2.2】s[j]=’\0’;第41套填空题:【41.1.1】j=2【41.1.2】i【41.1.3】j改错题:【41.2.1】sum=0;j=0;【41.2.2】if(sum%4==2)第42套填空题:【42.1.1】1【42.1.2】s【42.1.3】i*10改错题:【42.2.1】int fun(int n,int xx[][M])【42.2.2】printf("%d",xx[i][j]);第43套填空题:【43.1.1】struct student【43.1.2】【43.1.3】a.score[i]改错题:【43.2.1】if(p==n)return-1;【43.2.2】a[i]=a[i+1];第44套填空题:【44.1.1】1【44.1.2】i【44.1.3】a[p+i]改错题:【44.2.1】float k;【44.2.2】if(*c>*a)第45套填空题:【45.1.1】1【45.1.2】j++【45.1.3】j改错题:【45.2.1】t=a;a=b;b=t;【45.2.2】return(b);第46套填空题:【46.1.1】0【46.1.2】x【46.1.3】t++改错题:【46.2.1】int i,sl;【46.2.2】t[i]=s[sl-i-1];第47套填空题:【47.1.1】*s【47.1.2】s++【47.1.3】n改错题:【47.2.1】int j,c=0;double xa=0.0;【47.2.2】if(x[j]>=xa)第48套填空题:【48.1.1】i【48.1.2】t++【48.1.3】count改错题:【48.2.1】int fun(int a,int b,int c)【48.2.2】else return1;第49套填空题:【49.1.1】i【49.1.2】ps[j]【49.1.3】tp改错题:【49.2.1】double fun(int n)【49.2.2】return sum;第50套填空题:【50.1.1】a[i]【50.1.2】a[i]【50.1.3】0改错题:【50.2.1】y=1;【50.2.2】d=a-i;。

全国计算机二级C语言上机(2改错题)

全国计算机二级C语言上机(2改错题)

全国计算机二级C语言上机(2改错题)1、请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

例如,字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是:DEFGHIJKABC。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include#include#defineN80voidfun1(char某w)/某本函数的功能是将字符串中字符循环左移一个位置某/{inti;chart;t=w[0];for(i=0;ivoidfun(char某w,intm)/某可调用fun1函数左移字符某/{}main(){chara[N]=\intm;printf(\printf(\fun(a,m);printf(\printf(\NONO();}NONO(){/某请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。

FILE某rf,某wf;chara[N];intm,i;rf=fopen(\wf=fopen(\for(i=0;i<10;i++){ fcanf(rf,\fun(a,m);fprintf(wf,\}fcloe(rf);fcloe(wf);某/}2、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组中,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

例如,输入的分数是6069,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。

主函数中将把60放在low中,把69放在heigh中。

注意:部分源程序在文件PROG1.C文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

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

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

例如,a=3,n=6,则以下表达式为:S=333333-33333-3333-333-33-3其值是296298。

/**found**/long s=0,t=0;/**found**/t=t/10;2. 程序修改(第21套)给定程序中函数fun的功能是:计算s=f(-n)+f(-n+1)+……+f(0)+f(1)+f(2)+……f(n)的值。

例如,当n为5时,函数值应该是:10.407143。

f(x)=(x+1)(x-2) x>0且x!=2f(x)=0f(x)= (x-1)(x-2) x<0/**found**/double f(double x)/**found**/return s;2. 程序修改(第27套)给定程序中函数fun的功能是:用递归算法求形参a的平方根。

求平方根的迭代公式如下:x1=1/2(x0+a/x0)例如:a为2时,平方根值为1.414214/**found**/double fun(double a,double x0)/**found**/if(fabs(x1-x0)>0.00001)2 程序修改(第29套)给定程序中函数fun的功能是:计算函数值,F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值得。

其中x和y的值不等,z和y的值不等。

例如,当x的值为9、y的值为11、z的值为15时,函数值为-3.50。

/**found**/#define FU(m,n) (m)/(n)/**found**/return (value);2. 程序修改(第33套)给定程序中函数fun的功能是:根据整形形参m=1,计算如下公式的值。

m=1+1/2*2+1/3*3+1/4*4+..+1/m*m例如,若m中的值为5,则应输出1.463611/**found**/for (i =2 ; i<= m; i++)/**found**/y+=1. 0/ ( i* i) ;2. 程序修改(第37套)给定程序中函数fun的功能是:用下面的公式求π的近似值,知道最后一项的近似值小于指定数(参数num)为止:例如程序0.0001,则程序输出3.1414。

/**found**/while((fabs(t))>=num)/**found**/t=s/n2. 程序修改(第45套)给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回。

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

/**found**/t=1.0;/**found**/return(s*2);2. 程序修改(第47套)给定程序中函数fun函数功能是:计算n!。

例如,给n输入5,则输出120.000000。

/**found**/if (n==0)/**found**/result *=n--;2. 程序修改(第48套)给定程序中函数fun的功能是:根据整形形参m=1,计算如下公式的值。

m=1+1/2*2+1/3*3+1/4*4+..+1/m*m例如,若m中的值为5,则应输出1.463611/**found**/for (i =2 ; i<= m; i++)/**found**/y+=1. 0/ ( i* i) ;给定程序中函数fun的功能是:计算并输出下列级数的前n项的和Sn,直到Sn+1大于q为止,q的值通过形参传入。

Sn=2/1+3/2+4/3+…+(N+1)/N/**found**/s=s +(double)(n+1)/n;/**found**/return t;2. 程序修改(第52套)下列给定程序中函数fun的功能是:按以下递推公式求函数的值。

Fun=10 (n=1),fun(n-1)+2 (n>1)例如,当给n输出5时,函数值为18;当给n输入3时,函数值为14./**found**/int fun(int n)/**found**/if(n==1)2. 程序修改(第58套)给定程序中函数fun的功能是:求K!<k<13>,所求阶乘的值作为函数值返回。

例如,若K=10,则应输出3628800。

/**found**/if(k>1)/**found**/else if(k= =0)2. 程序修改(第63套)给定程序中函数fun的功能是:计算整数n的阶乘。

/**found**/result *=n--;/**found**/return result;2. 程序修改(第65套)给定程序中,函数fun的功能是:根据形参m,计算下列公式的值:t=1+1/2+1/3+1/4+…+1/m例如,若输入5,则应输出2.28333/**found**/t+=1.0/i;/**found**/return t;2. 程序修改(第77套)给定程序中函数fun的功能是:根据整形形参m,计算如下公式的值。

Y=1/(100*100)+1/(200*200)+1/(300*300)+L+1/(m*m)/**found**/double fun(int m)/**found**/for(i=100;i<=m;i+=100)2. 程序修改(第78套)给定程序中函数fun的功能是:根据整型形参n计算如下公式的值。

A1=1,A2=1/(1+A1),A3=1/(1+A2),An=1/(1+A(n-1))例如:若n=10,则应输出:0.617977./**found**/float fun(int n)/**found**/for(i=2;i<=n;i++)2. 程序修改(第85套)下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。

t=1/2-1/3-…-1/m例如,若输入5,则应输出-0.283333./**found**/2t-=1.0/i;/**found**/return t;2. 程序修改(第91套)下列给定程序中,函数fun 的功能是:求s的值。

设S=(2*2/(1*3))*(4*2/(1*3))*(6* 2/(5*7))*L*(2k)(2k)/((2k-1)*(2k+1))例如,当k为10时,函数的值应为1.533852。

/**found**/double fun(int k)/**found**/return s ;2. 程序修改(第95套)给定程序中函数fun的功能是:求出以下分数列的前n 项之和2/1,3/2,5/2,8/5, 13/8, 21/13…和值通过函数值返回到main函数。

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

/**found**/double fun(int n)/**found**/s=s+(double)a/b;2. 程序修改(第96套)给定程序中函数fun的功能是:给定n个实数,输出平均值以上(含平均值)的实数个数。

例如,n=8时,输入193,199,195,673,195,757,196,051, 196,092,196,596,196,579,196, 763,使得平均值为195.838745,在平均值以上的实数个数应为5。

/**found**/{2. 程序修改(第99套)已知一个数列从第0项开始的前3项:分别是0,0,1以后的各项都是它相邻的前3项之和。

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

n的值通过形参传入。

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

/**found**/double fun(int n)/**found**/return sum3、第二大类(ASCII类)共4道2. 程序修改(第12套)给定程序中函数fun的功能是:逐个比较p、q所指两个字符,并把ASCII值或相等的字符依次存放在c所指数组中,形成一个新的字符串。

例如,若主函数中a字符串为aBCDeFgH,b字符串为Abcd,则c中的字符串应为aBcdeFgH。

/**found**/int k=0;/**found**/while (*p||*q)2. 程序修改(第34套)给定程序中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中。

例如,字符串中的数据为”AABBCCDDEEFF”,则输出应当是”ABBCDDEFF”。

/**found**/if ( i % 2 || s [ i ]%2==0 )/**found**/t [ j ]= ' \0 ' ;2. 程序修改(第55套)给定程序中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。

相关文档
最新文档