2011题库中程序改错题
程序改错题给学生登记成绩类似的题目
程序改错题给学生登记成绩类似的题目摘要:1.介绍程序改错题的背景和重要性2.分析程序改错题的类型和特点3.提供解题思路和方法4.总结注意事项和技巧正文:随着信息技术的发展,越来越多的高校和职业院校在计算机课程中引入了程序设计课程。
在这门课程中,程序改错题是一种常见的题型,它既能检验学生对编程语言的掌握程度,也能培养学生的逻辑思维能力和问题解决能力。
本文将分析程序改错题的类型和特点,并提供一些解题思路和方法。
一、程序改错题的类型和特点1.类型:程序改错题可以分为在线判题和人判两种类型。
在线判题是通过专门的评测系统进行自动评分,而人判则需要老师或同学相互检查代码并进行评分。
2.特点:程序改错题具有以下几个特点:(1)题目设置:题目通常包含一个或多个错误,要求学生在给定的时间内找出并修改错误。
(2)评分标准:题目一般会给出评分规则,如修正一个错误得一定分数,提交代码后即时显示得分。
(3)评分范围:题目难度可以涵盖基础到高级,适用于不同层次的学生。
二、解题思路和方法1.仔细阅读题目,理解题意。
在解题前,确保自己掌握了编程语言的基本语法和概念。
2.分析程序结构,从整体到局部。
首先了解程序的功能,然后分析各个模块的作用,最后关注每个变量的值和运算符的搭配。
3.调试代码:在编写代码时,充分利用调试工具,如编译器、调试器等,及时发现和修正错误。
4.善于查找资料:在解题过程中,遇到不懂的地方,可以查阅相关资料,如编程手册、在线教程等。
5.多次尝试:遇到难题时,不要怕失败。
通过多次尝试和修改,逐步完善代码。
6.沟通与协作:与同学或老师分享解题经验,相互学习,共同进步。
三、注意事项和技巧1.熟悉编程语言的基本概念和语法,加强对数据结构与算法的掌握。
2.仔细审题,弄清楚题目的要求,避免盲目编写代码。
3.学会利用调试工具,提高编程能力。
4.保持良好的编程习惯,编写简洁、易懂的代码。
5.善于总结经验,不断提高自己的编程水平。
C语言程序改错题及答案
#include <string.h>
#include <stdlib.h>
void main()
{ int n,i;
/***** 1 *****/
char str;// char*str
scanf("%d\n",&n); str=(char*)malloc(n); gets(str);
int a[N]={5,4,3,2,1,9,8,7,6,0};
printf("\nThe array is:\n"); /*输出数组元素*/
for (i=0;i<N;i++)
printf("%5d",a[i]);
for (i=0;i<N-1;i++ห้องสมุดไป่ตู้ /*排序操作*/
{
min = i;
for (j=i+1; j<N; j++)
/****** 2 *****/
putchar(\n);//‘\n’
}
}
12、在考生目录下,有Modify.c程序,该程序中“/***** N *****/”的下一行中有错误,
请改正(注意:不得加行、减//行、加句、减句,否则后果自负)。
该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。
}
11、在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下
一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)
程序改错题
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\中。
专八改错-2000年-2011年)真题及答案
2000 年—2011 年专八短文改错试题,参考答案以及答案分析By 兰银清以下答案以上外教师给出的答案为参考答案2011年专八真题改错部分From a very early age, perhaps the age of five or six,I knewthat when I grew I should be a writer。
Between the ages of about 1__________ seventeen and twenty-four I tried to abandon this idea, but I did sowith the conscience that I was outraging my true nature and that 2___________ soon or later I should have to settle down and write books。
3___________ I was the child of three,but there was a gap of five years 4__________ on either side,and I barely saw my father before I was eight. Forthis and other reasons I was somewhat lonely,and I soon developeddisagreeing mannerisms which made me unpopular throughout my 5_____________ schooldays。
I had the lonely child's habit of making up stories andholding conversations with imaginative persons,and I think from 6_________ the very start my literal ambitions were mixed up with the feeling of 7________ being isolated and undervalued. I knew that I had a facility with wordsand a power of facing in unpleasant facts, and I felt that this created 8________a sort of private world which I could get my own back for my failure 9________in everyday life. Therefore, the volume of serious — i.e。
VB期末考试题库2011-05
试卷方案:201105 Visual Basic 期末考试方案题型:5种 1.单选题(20题*1=20分)2.程序运行结果填空题(15空*2=30分)3.完善程序填空题(10空*2=20分)4.改错题(3错*4=12分)5.编程题(共2题,1题为8分,另一题10分=18分)一、单项选择 共50题第1题 题号:44以下有关对象属性的说法中,错误的是___________.A. 工具箱中的控件并不是VB 中所有的控件B. 若将Frame 的Enabled 属性设置为False,则不能使用放置在Frame 里面的控件C. 对象的Name 属性在运行时不能改变D. 对象的所有属性都可以在属性窗口中设置答案:D第2题 题号:3数学表达式 ||27sin 3y x e x +++的VB 算术表达式为_______ . A. Sin(27)+Sqr(x+Exp3)/(x+y)B. Sin(27*3.14159/180)+Sqr(x+Exp(3))/Abs(x+y)C. Sin(27*3.14159/180)+Sqr(x+e^3)/Abs(x+y)D. Sin(27*pi/180)+Sqr(x+Exp(3)/Abs(x+y)答案:B第3题 题号:17下列有关对象的叙述中,正确的是______A. 对象由属性,事件和方法构成B. 对象的所有属性既可以在属性窗口设置,又可以在程序运行时用赋值语句设置C. 对象的事件一定就是由VB 预先设置好的人工干预的动作D. 对象的方法是对象响应某个事件后执行的一段程序代码答案:A第4题 题号:46表达式CInt(4.5)+Cint(-4.51)+Int(4.9)+Int(-4.1)+Fix(-1.9)+0 Mod 2的运算结果是___.A. 1B. -1C. –2D. –3答案:D第5题 题号:32下列关于菜单的说法中,错误的是__________.A. 每一个菜单项就是一个对象,并且可设置自己的属性和事件B. 菜单项不可以响应DblClick 事件C. VB6.0允许创建超过四级的子菜单D. 程序执行时,如果要求菜单项是灰色,不能被用户选择,则应设置菜单项的Enabled 属性为FalseNo.:00000000000001172.以下关于数组的说法中,错误的是__________.A. 使用了Preserve 子句的Redim 语句,只允许改变数组最后一维的上界B. 对于动态数组, Redim 语句可以改变其维界但不可以改变其数据类型C. Erase 语句的功能只是对固定大小的数组进行初始化D. Lbound 函数返回值是指定数组某一维的下界答案:C第7题 题号:8设a=3,b=2,c=1,运行print a>b>c 的结果是____________.A. TrueB. FalseC. 1D. 出错答案:B第8题 题号:4以下说法不正确的是____________.A. 使用不带关键字Preserve 的ReDim 语句可以重新定义数组的维数B. 使用不带关键字Preserve 的ReDim 语句可以改变数组各维的上、下界C. 使用不带关键字Preserve 的ReDim 语句可以改变数组的数据类型D. 使用不带关键字Preserve 的ReDim 语句可以对数组中的所有元素进行初始化答案:C第9题 题号:37在列表框List1中有若干列表项,可以删除选定列表项的语句是__________.A. List1.text=""B. List1.List(List1.ListIndex)=""C. list1.ClearD. List1.RemoveItem List1.ListIndex答案:D第10题 题号:41数学表达式 |cos sin |)2(sin ln 2352x x x x e x -+-π对应的VB 表达式是__________.A. (e^(2*π*x-5)*Log(x)+(Sin(2x))^3)/Sqr(Sin(x)-Cos(x^2))B. (Exp(2*3.14159*x-5)*Log(x)+(Sin(2*x))^3)/Sqr(Sin(x)-Cos(x^2))C. (Exp(2*π*x-5)*Ln(x)+(Sin(2*x))^3)/Sqr(Sin(x)-Cos(x^2))D. e^(2*3.14159*x-5)*Ln(x)+(Sin(2*x))^3)/Sqr(Sing(x)-Cos(x^2))答案:B第11题 题号:14以下有关数组参数的说明中,正确的是______A. 在过程中也可用Dim 语句对形参数组进行说明B. 动态数组作为实参时,可用ReDim 语句在过程中改变对应形参数组的维界C. 调用过程时,数组名不能作为实参D. 数组可以按地址传递也可以按植传递下列有关过程的说法中,错误的是_____________.A. 在Sub 或 Function 过程内部不能再定义其它Sub 或 Function 过程B. 对于使用ByRef 说明的形参,在过程调用时形参和实参只能按传址方式结合C. 递归过程既可以是递归Function 过程,也可以是递归Sub 过程D. 可以像调用Sub 过程一样使用Call 语句调用Function 过程答案:B第13题 题号:49要将焦点设置在某个控件上,以下四个选项中正确的是______.A. 只能使用鼠标直接点击控件B. 只能使用Tab 键将焦点移到该控件C. 只能在程序中调用该控件的SetFocus 方法D. A 、B 、C 三选项中涉及的方法均可使用答案:D第14题 题号:55以下Case 语句中,能正确描述Y 的绝对值大于6的是______.A. Case Abs(Y)>6B. Case -6 To 6C. Case Not(-6 To 6)D. Case Is<-6,Is>6答案:D第15题 题号:45以下关于变量作用域的叙述中,正确的是____________.A. 窗体中凡用Private 声明的变量只能在某个指定的过程中使用B. 模块级变量只能用Dim 语句声明C. 凡是在窗体模块或标准模块的通用声明段用Public 语句声明的变量都是全局变量D. 当不同作用域的同名变量发生冲突时,优先访问局限性小的变量答案:C第16题 题号:16以下关于数值常量的说法中,错误的是______A. 八进制数的表示方法是在数字前面加&OB. 十六进制数的表示方法是在数字前面加&HC. 在浮点运算中使用D 来分隔尾数和指数时,系统将把该数值作为单精度型数处理D. 32768是合法的数值常量答案:C第17题 题号:27数学表达式 y x e x ++30sin 3对应的VB 表达式是___________.A. Abs(e^x+Sin(30)^3)∕Sqr(x+y))B. Abs(Exp(x)+Sin(30)^3)∕(Sqr(x+y))C. Abs(e^x+Sin(30*3.14159∕180)^3)∕(Sqr(x+y))答案:D第18题题号:29下面的4个表达式中,有关_________个能够对Single类型变量x(正数)的第3位小数正确地进行四舍五入计算.Format(x,″#.00″)Int(100*(x+0.005))/100CInt(100*(x+0.005)/100Fix(100*(x+0.005))/100A. 1个B. 2个C. 3个D. 4个答案:C第19题题号:26执行以下语句时,会出现错误提示的是__________.A. Print"2b3 " +12.5B. Print"12.5"+ 12C.Print"12.5" & 12.5D.Print"2e3"+12答案:A第20题题号:34以下Case语句含有错误的是___________.A. Case 0 To 10B. Case Is>10C. Case Is>10 And Is<50D. Case 3,5,Is>10答案:C第21题题号:1下列语句中,正确的是__________A. Textl.SetFocusB. Forml.ClearC. Labell.SetFocusD. Listl.Cls答案:A第22题题号:9下列选项中,所包含的所有表达式能够将两位整数x的个位数与十位数对调(如将78转换为87)的是_______________.①Val(Right(X,1)&Left(X,1)) ②Val(Right(Str(X),1)&Left(Str(X),1))③Val(Right(CStr(X),1)&Left(CStr(X),1)) ④Val(Mid(X,2,1)+Mid(X,1,1))A. ①②B. ②③C. ②④D. ①③④答案:D第23题题号:15以下关于子过程或函数的定义中,正确的是______A. Sub f1(n As String*1 )B. Sub f1(n As Integer)As IntegerC. Function f1(f1 As Integer)As IntegerD. Function f1(ByVal n As Integer)答案:D第24题题号:54下列有关控件数组的说法中,错误的是______.A. 控件数组由一组具有相同名称和相同类型的控件组成,不同类型的控件无法组成控件数组B. 控件数组中的所有控件不得具有各自不同的属性设置值C. 控件数组中的所有控件共享同一个事件过程D. 控件数组中每个元素的下标由控件的Index属性指定以下对数组参数的说明中,错误的是___________ .A. 在过程中可以用Dim语句对形参数组进行声明B. 形参数组只能按地址传递C. 实参为动态数组时,可用ReDim语句改变对应形参数组的维界D. 只需把要传递的数组名作为实参,即可调用过程答案:A第26题题号:6要向文件datal.txt添加数据,正确的文件打开命令是_____________.A. Open"datal.txt"For Output As #1B. Open"datal.txt"For Input As #1C. Open"datal.txt"For Append As #5D. Open"datal.txt" For Write As #5答案:C第27题题号:31下面有关数组处理的叙述中,正确的是__________.A. 在过程中使用ReDim语句可以改变动态数组数据的类型B. 在过程中,可以使用Dim 、Private和Static语句来定义数组C. 用ReDim语句重新定义动态数组时,可以改变数组的大小,但不能改变数组的维数D. 不可以用Public语句在窗体模块的通用处说明一个全局数组答案:D第28题题号:35下面的表达式中,运算结果为True的是__________.A. "abcrd" <="ABCRD"B. Int(134.69) <=CInt(134.69)C. 3>2>1D. Mid("Visual",1,4)=Right("lausiV",4)答案:B第29题题号:36设计界面时,要使一个文本框具有水平和垂直滚动条,应先将其________属性置为True,再将ScrollBar属性设置为3.A. MultiLineB. AutoSizeC. AlignmentD. RightToLeft答案:A第30题题号:23下面有关数组的说法中,正确的是______A. 数组的维下界不可以是负数B. 模块通用声明处有Option Base 1,则模块中数组定义语句Dim A(0 To 5)会与之冲突C. 模块通用声明处有Option Base 1,模块中有Dim A(0 To 5),则A数组第一维维下界为0D. 模块通用声明处有Option Base 1,模块中有DimA(0 To 5),则A数组第一维维下界为1下面有关数组的叙述中,不正确的是______.① 在过程中用ReDim语句定义的动态数组,其下标的上下界可以是变量② 数组作为形式参数时,传递的是每个数组元素的值③ 在窗体模块的通用声明处可以用Public 说明一个全局数组④ 数组定义语句中可以用负数或小数来指定某一维的维下界或维上界的值A. ②③B. ①③④C. ①②③④D. ③④答案:A第32题题号:11下列关于对象SetFocus与GotFocus的描述中,正确的是_____A. SetFocus是事件,GotFocus是方法B. Setfocus和Gotfocus都是事件C. Setfocus和GotFocus都是方法D. SetFocus是方法,GotFocus是事件答案:D第33题题号:2创建一个名为"文件"的菜单项,欲使其可用Alt+F方式访问,则在菜单编辑器的标题文本框中应输入_________.A. 文件($F)B. 文件(&F)C. 文件(#F)D. 文件(%F)答案:B第34题题号:50在下列属性中,属于CommandButton控件、ListBox控件共有的是______.A. Caption、TextB. Visible、FontC. Caption、VisibleD. List、Visible答案:B第35题题号:22下列能够正确表示条件"X≤Y<Z"的VB逻辑表达式是______A. X≤Y<ZB. X<=Y And Y<ZC. X≤Y OR Y<ZD. X<=Y<Z答案:B第36题题号:33以下关于Function过程的说法中,错误的是___________.A. Function过程名可以有一个或多个返回值B. 在Function过程内部不得再定义Function过程C. Function过程中可以包含多个Exit Function语句D. 可以像调用Sub过程一样调用Function过程答案:A第37题题号:52下面的关系表达式中,运算结果为True的是______.A. CInt(1.5)=Int(1.5)B. Fix(1.5)=Int(1.5)C. Fix(-1.5)=CInt(-1.5)D. Fix(-1.5)=Int(-1.5)答案:B第38题题号:21已知X<Y,A>B,则下列表达式中,结果为True的是______A. Sgn(X-Y)+Sgn(A-B)=-1B. Sgn(X-Y)+Sgn(A-B)=-2C. Sgn(Y-X)+Sgn(A-B)=2D. Sgn(Y-X)+Sgn(A-B)=0执行__________语句时,会出现出错提示信息.A. Print 5+7=14B. Print 16384*2C. Print 32768*2D. Print "14"+32答案:B第40题题号:51数学表达式yxey x+ +++π2log30sin对应的Visual Basic表达式是______.A. Sin(30*3.14159/180)+Sqr(Log(x)+y)/2*3.14159+Exp(x+y)B. (Sin(30*π/180)+Sqr(Ln(x)+y))/(2*π+Exp(x+y))C. Sin(30*180/3.14159)+Sqr(Log(x)+y)/(2*3.14159+e^(x+y))D. (Sin(30*3.14159/180)+Sqr(Log(x)+y))/(2*3.14159+Exp(x+y))答案:D第41题题号:48在一个多窗体程序中,可以仅将窗体Form2从内存中卸载的语句是________.A. Form2.UnloadB. Unload Form2C. Form2.EndD. Form2.Hide答案:B第42题题号:12Print方法可在______上输出数据.①窗体②文本框③图片框④标签⑤列表框⑥立即窗口A. ①③⑥B. ②③⑤C. ①②⑤D. ③④⑥答案:A第43题题号:47若要使逻辑表达式x>y Xor y<z 结果为True,则x、y、z的取值应为下列选项中的_______.A. x=3、y=3、z=4B. x=2、y=1、z=2C. x=1、y=3、z=2D. x=2、y=2、z=2答案:A第44题题号:5下列____________是合法的变量名.A. absB. –alC. cdc dD. Abe_10答案:D第45题题号:10下列______是正确的VB常量.A. D-6B. E-6C. 5DD. 5E-6答案:D第46题题号:56若在模块中用Private Function Fun(A as Single,B as Integer) As Integer 定义了函数Fun.调用函数Fun的过程中定义了I、J和K三个Integer型变量,则下列语句中不能正确调用函数Fun的语句是___________.A. Fun 3.14,JB. Call Fun(I,365)C. Fun(I),(J)D. K=Fun("24","35")若需要在同一窗体内安排两组相互独立的单选按钮(OptionButton),可使用______控件做容器将它们分开. ①TextBox ②PictureBox ③ Image ④ FrameA. ①或②B. ②或③C. ②或④D. ③或④答案:C第48题 题号:58以下关于文件的叙述中,错误的是__________。
c语言改错题题库及详解答案
c语言改错题题库及详解答案C语言是一种广泛使用的计算机编程语言,它以其高效性、灵活性和强大的功能而受到程序员的青睐。
然而,即使是经验丰富的程序员也难免会在编写C语言程序时犯一些错误。
下面是一个C语言改错题题库及其详解答案,帮助学习者识别并改正常见的编程错误。
题目1:错误的变量初始化```cint main() {int a;printf("%d", a); // 错误:变量a未初始化return 0;}```详解答案:在C语言中,如果一个变量在使用前没有被显式地初始化,它的值是不确定的。
为了修复这个错误,我们应该在声明变量时对其进行初始化。
```cint main() {int a = 0; // 正确的初始化printf("%d", a);return 0;}```题目2:错误的数组索引```cint main() {int arr[5] = {1, 2, 3, 4, 5};printf("%d", arr[5]); // 错误:数组索引越界return 0;}```详解答案:数组索引是从0开始的,所以对于一个有5个元素的数组,有效的索引范围是0到4。
访问数组的第6个元素会导致越界错误。
```cint main() {int arr[5] = {1, 2, 3, 4, 5};printf("%d", arr[4]); // 正确的索引return 0;}```题目3:错误的循环使用```cint main() {int i;for (i = 0; i <= 10; i++) {printf("%d ", i);} // 错误:循环条件错误return 0;}```详解答案:循环条件应该是`i < 10`,以确保循环不会无限执行。
```cint main() {int i;for (i = 0; i < 10; i++) {printf("%d ", i);}return 0;}```题目4:错误的函数调用```cint main() {int result = add(5, 3); // 错误:add函数未定义printf("%d", result);return 0;}```详解答案:在调用一个函数之前,需要确保该函数已经被定义。
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"
程序改错题(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。
程序改错题
n(n)= 10 (n=1) fun(n-1)+2 (n>1)
例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
(2)错误:y+=1/(i*i) 正确:y+=1.0/(i*i)
【解析】(1)for (i=2;i<m;i++)中是一个基础的分析错误,应该包括m。(2)y是一个double型变量,题中得出的结果是一个整数,所以改为y+=1.0/(i*i)。
6、下列给定程序中,函数fun的功能是:按如下递归公式求函数值。
/*************found**************/
return I;
}
void main()
{int m;
system("CLS");
pri
ntf("\nPlease enter 1integer number: ");
(2)错误:if (n=1) 正确:if (n==1)
【解析】(1)主函数中已经定义了变量n的类型,在子函数中也要定义。(2)if后面应该紧跟一个条件判断表达式,而n=1是付值表达式,表达式的值永远为真,也就是说这个条件永远成立,没有递归执行。
.
7、下列给定程序中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。
试题程序:
#include <stdio.h>
/********found********/
程序改错题答案
}
}
7循环输入x,n,调用递归函数计算,显示x的n次方。
当输入n小于0时,结束循环。
#include <stdio.h>
float f(float x,int n)
{ /******* 1 ******/
if(n==0)
return 1;
else
/****** 2 ******/
scanf("%d",&mm);
for(i=0;a[i]!='\0';i++) /*各字符与mm作一次按位异或*/
a[i]=a[i]^mm;
puts(a);
/*** 各字符与mm再作一次按位异或 ***/
/******** 3 *******/
for(i=0;a[i]!='\0';i++)
/****** 4 ******/
void main()
{ int i,n;
struct axy { float x,y;};
/***** 1 *****/
struct axy*a;
/***** 2 *****/
scanf("%d",&n);
a=(struct axy*) malloc(n*sizeof(struct axy));
for(i=0;i<n;i++)
/******** 3 *******/
if(a[i]==b[j]) break;
/******* 4 ********/
if(j<7)
printf("%d ",a[i]);
程序改错题汇总
程序改错题汇总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语言程序改错基本题库完整
石油化工学院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的值。
程序改错题 斐波那契数列(函数)
一、题目简介在学习编程的过程中,经常会遇到一些程序改错的题目,其中以斐波那契数列函数的编写和改错为常见的练习内容。
本文将以程序改错题为主题,重点讨论如何正确编写斐波那契数列函数,并分析常见的错误以及解决方法。
二、斐波那契数列的定义斐波那契数列是一个非常经典的数学问题,以意大利数学家斐波那契的名字命名。
数列的定义如下:F(0) = 0,F(1) = 1,F(n) = F(n-1) + F(n-2) (n ≥ 2)即斐波那契数列的前两项分别为0和1,之后的每一项都是前两项之和。
前十项斐波那契数列分别为0, 1, 1, 2, 3, 5, 8, 13, 21, 34。
三、常见的斐波那契数列函数错误在编写斐波那契数列函数时,常见的错误包括但不限于以下几种:1. 未正确处理边界条件:未考虑n为0和1时的特殊情况;2. 递归函数效率低下:使用简单的递归方式实现斐波那契数列会导致效率低下,特别是在n较大时;3. 变量类型错误:错误地选择了变量类型,导致数值溢出或计算错误;4. 逻辑错误:算法逻辑错误,导致函数计算结果不符合预期。
四、正确的斐波那契数列函数实现为了正确地实现斐波那契数列函数,我们可以采取以下措施:1. 使用递推的方式实现:弃用简单的递归方法,而是通过循环迭代的方式来计算斐波那契数列;2. 合理选择变量类型:根据计算的范围,选择合适的变量类型来存储中间结果,避免数值溢出;3. 处理边界条件:在写函数时,要考虑到n为0和1时的特殊情况,并进行正确的处理。
五、斐波那契数列函数改错实例分析接下来,我们将通过一个实际的斐波那契数列函数改错实例来详细说明常见错误以及解决方法。
假设我们需要编写一个斐波那契数列函数fibonacci,以下是一种常见的错误实现方式:```pythondef fibonacci(n):if n <= 0:return 0elif n == 1:return 1else:return fibonacci(n-1) + fibonacci(n-2)```以上代码是一个经典的错误示例,主要问题在于使用了简单的递归方式实现斐波那契数列,效率非常低下。
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 分)/*------------------------------------------------------ 功能:编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。
程序改错复习题
8.功能:实现交换两个整数的值。例如:给a和b分别输入5和9,输出为a=9 b=5
#include <stdio.h>
/**********FOUND**********/
void fun (int a, b)
{
int t;
/**********FOUND**********/
2.功能:在一个已按降序排列的数组中插入一个数,插入后,数组元素仍按降序排列。
#include <stdio.h>
#define N 11
main()
{
int i,number,a[N]={156,149, 15,12, 9, 8, 6, 4, 2, 1};
printf("please enter an integer to insert in the array:\n");
4 s+=1.0/t;或s=s+1.0/(float)t;或s=s+1.0/t;或s+=1.0/(float)t;或s+=1.0/(double)t;或s=s+1.0/(double)t;
4.功能:输入一行英文文本,将每一个单词的第一个字母变成小写。
#include <string.h>
#include <stdio.h>
#include <conio.h>
/**********FOUND**********/
fun(char p)
{
int k=0;
/**********FOUND**********/
do while(*p=='\0')
VB期末考试题库2011-05
试卷方案:201105 Visual Basic 期末考试方案题型:5种1.单选题(20题*1=20分)2.程序运行结果填空题(15空*2=30分)3.完善程序填空题(10空*2=20分)4.改错题(3错*4=12分)5.编程题(共2题,1题为8分,另一题10分=18分)一、单项选择 共50题第1题 题号:44以下有关对象属性的说法中,错误的是___________.A. 工具箱中的控件并不是VB 中所有的控件B. 若将Frame 的Enabled 属性设置为False,则不能使用放置在Frame 里面的控件C. 对象的Name 属性在运行时不能改变D. 对象的所有属性都可以在属性窗口中设置答案:D第2题 题号:3数学表达式 ||27sin 3y x e x +++的VB 算术表达式为_______ . A. Sin(27)+Sqr(x+Exp3)/(x+y)B. Sin(27*3.14159/180)+Sqr(x+Exp(3))/Abs(x+y)C. Sin(27*3.14159/180)+Sqr(x+e^3)/Abs(x+y)D. Sin(27*pi/180)+Sqr(x+Exp(3)/Abs(x+y)答案:B第3题 题号:17下列有关对象的叙述中,正确的是______A. 对象由属性,事件和方法构成B. 对象的所有属性既可以在属性窗口设置,又可以在程序运行时用赋值语句设置C. 对象的事件一定就是由VB 预先设置好的人工干预的动作D. 对象的方法是对象响应某个事件后执行的一段程序代码答案:A第4题 题号:46表达式CInt(4.5)+Cint(-4.51)+Int(4.9)+Int(-4.1)+Fix(-1.9)+0 Mod 2的运算结果是___.A. 1B. -1C. –2D. –3答案:D第5题 题号:32下列关于菜单的说法中,错误的是__________.A. 每一个菜单项就是一个对象,并且可设置自己的属性和事件B. 菜单项不可以响应DblClick 事件C. VB6.0允许创建超过四级的子菜单D. 程序执行时,如果要求菜单项是灰色,不能被用户选择,则应设置菜单项的Enabled 属性为False答案:C第6题 题号:42.以下关于数组的说法中,错误的是__________.A. 使用了Preserve 子句的Redim 语句,只允许改变数组最后一维的上界B. 对于动态数组, Redim 语句可以改变其维界但不可以改变其数据类型C. Erase 语句的功能只是对固定大小的数组进行初始化D. Lbound 函数返回值是指定数组某一维的下界答案:C第7题 题号:8设a=3,b=2,c=1,运行print a>b>c 的结果是____________.A. TrueB. FalseC. 1D. 出错答案:B第8题 题号:4以下说法不正确的是____________.A. 使用不带关键字Preserve 的ReDim 语句可以重新定义数组的维数B. 使用不带关键字Preserve 的ReDim 语句可以改变数组各维的上、下界C. 使用不带关键字Preserve 的ReDim 语句可以改变数组的数据类型D. 使用不带关键字Preserve 的ReDim 语句可以对数组中的所有元素进行初始化答案:C第9题 题号:37在列表框List1中有若干列表项,可以删除选定列表项的语句是__________.A. List1.text=""B. List1.List(List1.ListIndex)=""C. list1.ClearD. List1.RemoveItem List1.ListIndex答案:D第10题 题号:41数学表达式 |cos sin |)2(sin ln 2352x x x x e x -+-π对应的VB 表达式是__________.A. (e^(2*π*x-5)*Log(x)+(Sin(2x))^3)/Sqr(Sin(x)-Cos(x^2))B. (Exp(2*3.14159*x-5)*Log(x)+(Sin(2*x))^3)/Sqr(Sin(x)-Cos(x^2))C. (Exp(2*π*x-5)*Ln(x)+(Sin(2*x))^3)/Sqr(Sin(x)-Cos(x^2))D. e^(2*3.14159*x-5)*Ln(x)+(Sin(2*x))^3)/Sqr(Sing(x)-Cos(x^2))答案:B第11题 题号:14以下有关数组参数的说明中,正确的是______A. 在过程中也可用Dim 语句对形参数组进行说明B. 动态数组作为实参时,可用ReDim 语句在过程中改变对应形参数组的维界C. 调用过程时,数组名不能作为实参D. 数组可以按地址传递也可以按植传递答案:B第12题 题号:43下列有关过程的说法中,错误的是_____________.A. 在Sub 或 Function 过程内部不能再定义其它Sub 或 Function 过程B. 对于使用ByRef 说明的形参,在过程调用时形参和实参只能按传址方式结合C. 递归过程既可以是递归Function 过程,也可以是递归Sub 过程D. 可以像调用Sub 过程一样使用Call 语句调用Function 过程答案:B第13题 题号:49要将焦点设置在某个控件上,以下四个选项中正确的是______.A. 只能使用鼠标直接点击控件B. 只能使用Tab 键将焦点移到该控件C. 只能在程序中调用该控件的SetFocus 方法D. A 、B 、C 三选项中涉及的方法均可使用答案:D第14题 题号:55以下Case 语句中,能正确描述Y 的绝对值大于6的是______.A. Case Abs(Y)>6B. Case -6 To 6C. Case Not(-6 To 6)D. Case Is<-6,Is>6答案:D第15题 题号:45以下关于变量作用域的叙述中,正确的是____________.A. 窗体中凡用Private 声明的变量只能在某个指定的过程中使用B. 模块级变量只能用Dim 语句声明C. 凡是在窗体模块或标准模块的通用声明段用Public 语句声明的变量都是全局变量D. 当不同作用域的同名变量发生冲突时,优先访问局限性小的变量答案:C第16题 题号:16以下关于数值常量的说法中,错误的是______A. 八进制数的表示方法是在数字前面加&OB. 十六进制数的表示方法是在数字前面加&HC. 在浮点运算中使用D 来分隔尾数和指数时,系统将把该数值作为单精度型数处理D. 32768是合法的数值常量答案:C第17题 题号:27数学表达式 y x e x ++30sin 3对应的VB 表达式是___________.A. Abs(e^x+Sin(30)^3)∕Sqr(x+y))B. Abs(Exp(x)+Sin(30)^3)∕(Sqr(x+y))C. Abs(e^x+Sin(30*3.14159∕180)^3)∕(Sqr(x+y))D. Abs(Exp(x)+Sin(30*3.14159∕180)^3)∕Sqr(x+y))答案:D第18题题号:29下面的4个表达式中,有关_________个能够对Single类型变量x(正数)的第3位小数正确地进行四舍五入计算. Format(x,″#.00″)Int(100*(x+0.005))/100CInt(100*(x+0.005)/100Fix(100*(x+0.005))/100A. 1个B. 2个C. 3个D. 4个答案:C第19题题号:26执行以下语句时,会出现错误提示的是__________.A. Print"2b3 " +12.5B. Print"12.5"+ 12C.Print"12.5" & 12.5D.Print"2e3"+12答案:A第20题题号:34以下Case语句含有错误的是___________.A. Case 0 To 10B. Case Is>10C. Case Is>10 And Is<50D. Case 3,5,Is>10答案:C第21题题号:1下列语句中,正确的是__________A. Textl.SetFocusB. Forml.ClearC. Labell.SetFocusD. Listl.Cls答案:A第22题题号:9下列选项中,所包含的所有表达式能够将两位整数x的个位数与十位数对调(如将78转换为87)的是_______________.①Val(Right(X,1)&Left(X,1)) ②Val(Right(Str(X),1)&Left(Str(X),1))③Val(Right(CStr(X),1)&Left(CStr(X),1)) ④Val(Mid(X,2,1)+Mid(X,1,1))A. ①②B. ②③C. ②④D. ①③④答案:D第23题题号:15以下关于子过程或函数的定义中,正确的是______A. Sub f1(n As String*1 )B. Sub f1(n As Integer)As IntegerC. Function f1(f1 As Integer)As IntegerD. Function f1(ByVal n As Integer)答案:D第24题题号:54下列有关控件数组的说法中,错误的是______.A. 控件数组由一组具有相同名称和相同类型的控件组成,不同类型的控件无法组成控件数组B. 控件数组中的所有控件不得具有各自不同的属性设置值C. 控件数组中的所有控件共享同一个事件过程D. 控件数组中每个元素的下标由控件的Index属性指定以下对数组参数的说明中,错误的是___________ .A. 在过程中可以用Dim语句对形参数组进行声明B. 形参数组只能按地址传递C. 实参为动态数组时,可用ReDim语句改变对应形参数组的维界D. 只需把要传递的数组名作为实参,即可调用过程答案:A第26题题号:6要向文件datal.txt添加数据,正确的文件打开命令是_____________.A. Open"datal.txt"For Output As #1B. Open"datal.txt"For Input As #1C. Open"datal.txt"For Append As #5D. Open"datal.txt" For Write As #5答案:C第27题题号:31下面有关数组处理的叙述中,正确的是__________.A. 在过程中使用ReDim语句可以改变动态数组数据的类型B. 在过程中,可以使用Dim 、Private和 Static语句来定义数组C. 用ReDim语句重新定义动态数组时,可以改变数组的大小,但不能改变数组的维数D. 不可以用Public语句在窗体模块的通用处说明一个全局数组答案:D第28题题号:35下面的表达式中,运算结果为True的是__________.A. "abcrd" <="ABCRD"B. Int(134.69) <=CInt(134.69)C. 3>2>1D. Mid("Visual",1,4)=Right("lausiV",4)答案:B第29题题号:36设计界面时,要使一个文本框具有水平和垂直滚动条,应先将其________属性置为True,再将ScrollBar属性设置为3.A. MultiLineB. AutoSizeC. AlignmentD. RightToLeft答案:A第30题题号:23下面有关数组的说法中,正确的是______A. 数组的维下界不可以是负数B. 模块通用声明处有Option Base 1,则模块中数组定义语句Dim A(0 To 5)会与之冲突C. 模块通用声明处有Option Base 1,模块中有Dim A(0 To 5),则A数组第一维维下界为0D. 模块通用声明处有Option Base 1,模块中有DimA(0 To 5),则A数组第一维维下界为1下面有关数组的叙述中,不正确的是______.① 在过程中用ReDim语句定义的动态数组,其下标的上下界可以是变量② 数组作为形式参数时,传递的是每个数组元素的值③ 在窗体模块的通用声明处可以用Public 说明一个全局数组④ 数组定义语句中可以用负数或小数来指定某一维的维下界或维上界的值A. ②③B. ①③④C. ①②③④D. ③④答案:A第32题题号:11下列关于对象SetFocus与GotFocus的描述中,正确的是_____A. SetFocus是事件,GotFocus是方法B. Setfocus和Gotfocus都是事件C. Setfocus和GotFocus都是方法D. SetFocus是方法,GotFocus是事件答案:D第33题题号:2创建一个名为"文件"的菜单项,欲使其可用Alt+F方式访问,则在菜单编辑器的标题文本框中应输入_________.A. 文件($F)B. 文件(&F)C. 文件(#F)D. 文件(%F)答案:B第34题题号:50在下列属性中,属于CommandButton控件、ListBox控件共有的是______.A. Caption、TextB. Visible、FontC. Caption、VisibleD. List、Visible答案:B第35题题号:22下列能够正确表示条件"X≤Y<Z"的VB逻辑表达式是______A. X≤Y<ZB. X<=Y And Y<ZC. X≤Y OR Y<ZD. X<=Y<Z答案:B第36题题号:33以下关于Function过程的说法中,错误的是___________.A. Function过程名可以有一个或多个返回值B. 在Function过程内部不得再定义Function过程C. Function过程中可以包含多个Exit Function语句D. 可以像调用Sub过程一样调用Function过程答案:A第37题题号:52下面的关系表达式中,运算结果为True的是______.A. CInt(1.5)=Int(1.5)B. Fix(1.5)=Int(1.5)C. Fix(-1.5)=CInt(-1.5)D. Fix(-1.5)=Int(-1.5)答案:B第38题题号:21已知X<Y,A>B,则下列表达式中,结果为True的是______A. Sgn(X-Y)+Sgn(A-B)=-1B. Sgn(X-Y)+Sgn(A-B)=-2C. Sgn(Y-X)+Sgn(A-B)=2D. Sgn(Y-X)+Sgn(A-B)=0执行__________语句时,会出现出错提示信息.A. Print 5+7=14B. Print 16384*2C. Print 32768*2D. Print "14"+32 答案:B第40题题号:51数学表达式yxey x+ +++π2log30sin对应的Visual Basic表达式是______.A. Sin(30*3.14159/180)+Sqr(Log(x)+y)/2*3.14159+Exp(x+y)B. (Sin(30*π/180)+Sqr(Ln(x)+y))/(2*π+Exp(x+y))C. Sin(30*180/3.14159)+Sqr(Log(x)+y)/(2*3.14159+e^(x+y))D. (Sin(30*3.14159/180)+Sqr(Log(x)+y))/(2*3.14159+Exp(x+y))答案:D第41题题号:48在一个多窗体程序中,可以仅将窗体Form2从内存中卸载的语句是________.A. Form2.UnloadB. Unload Form2C. Form2.EndD. Form2.Hide答案:B第42题题号:12Print方法可在______上输出数据.①窗体②文本框③图片框④标签⑤列表框⑥立即窗口A. ①③⑥B. ②③⑤C. ①②⑤D. ③④⑥答案:A第43题题号:47若要使逻辑表达式x>y Xor y<z 结果为True,则x、y、z的取值应为下列选项中的_______.A. x=3、y=3、z=4B. x=2、y=1、z=2C. x=1、y=3、z=2D. x=2、y=2、z=2答案:A第44题题号:5下列____________是合法的变量名.A. absB. –alC. cdc dD. Abe_10答案:D第45题题号:10下列______是正确的VB常量.A. D-6B. E-6C. 5DD. 5E-6答案:D第46题题号:56若在模块中用Private Function Fun(A as Single,B as Integer) As Integer 定义了函数Fun.调用函数Fun 的过程中定义了I、J和K三个Integer型变量,则下列语句中不能正确调用函数Fun的语句是___________.A. Fun 3.14,JB. Call Fun(I,365)C. Fun(I),(J)D. K=Fun("24","35")若需要在同一窗体内安排两组相互独立的单选按钮(OptionButton),可使用______控件做容器将它们分开. ①TextBox ②PictureBox ③ Image ④ FrameA. ①或②B. ②或③C. ②或④D. ③或④答案:C第48题 题号:58以下关于文件的叙述中,错误的是__________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
main()
{
int n,a,b;
for(n=1000;n<10000;n++)
{
/*下行有错*/
a=n\100;
b=n%100;
if((a+b)*(a+b)==n)
{
printf("%d\n",n);
/*下行有错*/
continue;
}
}
}
程序:
#include <stdio.h>
#include <math.h>
int prime(int n)
{ int yes, i;
if(n<=1) {return 0;}
yes=1;
for(i=2; i<=sqrt(n); i++)
if(n%i==0){ yes=0; break;}
/*下行程序有错*/
程序:
#include <stdio.h>
#include <math.h>
int prime(int n)
{ int yes, i;
if(n<=1) {return 0;}
/*下行有错*/
yes=0;
for(i=2; i<=sqrt(n); i++)
if(n%i==0){ yes=0; break;}
/*下行有错*/
int fun(int n)
{ int i;
/*下行有错*/
float s=0.0, t=1.0;
for(i=2; i<=n;i++)
{ t=t+i;
s=s+1/t;
}
return s;
}
main()
{ printf("\n %f", fun(90));
}
#include<stdio.h>
#include<math.h>
/*下行有错*/
floatfun(intn)
{inti;
/*下行有错*/
floats=1.0, t=1.0;
for(i=2; i<=n;i++)
{t=t+i;
s=s+1/t;
}
returns;
}
main()
{printf("\n %f", fun(90));
}
下面的程序是求下式的和:
#include <stdio.h>
#include <math.h>
main()
{
int count,n,m,s,k;
count=0;
for (n=3;n<=10000;n++)
{
/*下行有错*/
s=1;
k=n/2+1;
for (m=1;m<k;m++)
if (n%m==0)
/*下行有错*/
s+=1;
s=1+1/(1+2)+1/(1+2+3)+ ......+1/(1+2+3+......+n)
请改正程序中的错误,并运行修改后的程序,当n=80时,给出程序运行结果(按四舍五入保留6位小数)。
程序:#include <stdio.h>
#include <math.h>
float fun(int n)
程序改错题
1、下面的程序是求下式的和:
s=1+1/(1+2)+1/(1+2+3)+ ......+1/(1+2+3+......+n)
请改正程序中的错误,并运行修改后的程序,当n=90时,给出程序运行结果(按四舍五入保留6位小数)。
程序:
#include <math.h>
程序:
#include <stdio.h>
#include <math.h>
int prime(int n)
{ int yes, i;
if(n<=1) {return 0;}
/*下行有错*/
yes=0;
for(i=2; i<=sqrt(n); i++)
if(n%i==0){ yes=1; break;}
return yes;
}
main()
{ int count=0, i;
for(i=20;i<=700; i++)
if(prime(i)) count+=1;
printf("%d\n", count);
}
下面的程序是求500以内的所有的素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。
{ int i;
float s=1.0, t=1.0;
/*下行有错*/
for(i=2; i<=n;i--)
{ t=t+i;
s+=1/t;
}
return s;
}
main()
{ printf("\n %f", fun(80));
}
2、下面的程序是求500以内的所有的素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。
程序:
#include <stdio.h>
#include <math.h>
int prime(int n)
{ int yes, i;
if(n<=1) {return 0;}
yes=1;
for(i=2; i<=sqrt(n); i++)
if(n%i==0){ yes=0; break;}
/*下行程序有错*/
return yes;
}
main()
{ int count=0, i;
for(i=20;i<=700; i++)
if(prime(i)) count+=1;
printf("%d\n", count);
}
下面程序是求[20,400]之间的能被9整除的数的平方和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
return 1;
}
main()
{ int sum=0, i;
for(i=2;i<=500; i++)
if(prime(i)) sum+=i;
printf("%d\n", sum);
}
3、下面的程序是求[20,700]之间所有的素数的个数。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
{
t=1;
for(j=1;j<=n;j++)
/*下行有错*/
t=t*n;
/*下行有错*/
s+t=s;
}
printf("%.2f\n",s);
}
main()
{
fun();
}
3025这个数具有一种独特的性质:将它平分为两段,即30和25,使之相加后求平方,即(30+25)*(30+25),恰好等于3025本身。下面程序的功能是:求出具有这种性质,即abcd=(ab+cd)*(ab+cd)的最小四位数。请改正程序中的错误,并运行修改后的程序,给出正确程序运行结果,填入相应窗口。
if (s==n)
{
count+=1;
}
}
printf("%d",count);
}
下面程序的功能是:求1到10的阶乘的和。请改正程序中的错误,并运行修改后的程序,给出正确程序运行结果,填入相应窗口。
#include<stdio.h>
fun()
{
int n,j;
float s=0.0,t=1.0;
for(n=1;n<=10;n++)
return 1;
}
main()
{ int sum=0, i;
for(i=2;i<=500; i++)
if(prime(i)) sum+=i;
printf("%d\n", sum);
}
以下程序求10000以内的所有完全数的个数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。"完全数"是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:6=1+2+3,则6就是一个完全数。
程序:
#include <stdio.h>
#include <math.h>
main()
{
long sum;
int i;
/*下行有错*/
sum=1;
for (i=20;i<=400;i++)
{
if (i%9==0)
sum+=i*i;
}
printf("%ld\n",sum);
}
下面的程序是求[20,700]之间所有的素数的个数。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。