程序改错:
在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
练习1:下列程序是将“China”编成密码,规律是:如是大写字母,用原字母后面第4个字母代替原字母,例字母“A”后面第4个字母是“E”,用“E”代替“A”;小写字母用原字母后面第2个字母代替原字母,例如字母“a”后面第2个字母是“c”,用“c”代替“a”。因此,“China”密码为“Gjkpc”。
SET COLLATE TO "MACHINE"
LOCAL mSting,cString,ch
mString=SPACE(0)
cString="China"
FOR i=1 TO VAL(cString) ***FOR i=1 TO Len(cString)
ch=SUBSTR(cString, 1, i) ***ch=SUBSTR(cString, i,1)
IF BETWEEN(ch,"a","z")
mString=mString+CHR(ASC(ch)+2)
ELSE
mString=mString+CHR(ASC(ch)+4)
ENDIF
ENDFOR
WAIT WINDOW cString+"密码为"+mString
练习2:下列程序中的过程(过程名为ren)用来产生n个a~b之间的随机整数,然后将它们以从大到小的顺序存储在数组X中,并分别输出n=10、a=5、b=25和n=20、a=50、b=80时数组X的值。
=ren(10,5,25)
=ren(20,50,80)
PROC ren
PARA a,b,n ***PARA n,a,b
DIME x(n)
x = 0
FOR i = 1 TO n
x(i) = INT((b-a)*RAND() + a)
ENDFOR
FOR j = 1 TO n-1
FOR k = j+1 TO n
IF x(k) > x(j)
t = x(j)
x(k) = x(j) ***x(j) = x(k)
x(k) = t
ENDIF
ENDFOR
ENDFOR
FOR i = 1 TO n
x(i)
ENDFOR
ENDPROC
练习3:下列程序用来产生10个30~50之间的随机整数,并将它以从大到小的顺序存储在数组X中。
DIMENSION X(10)
x = 0
FOR i = 1 TO 10
x(i) = INT((50-30)*RAND()+20) **x(i) = INT((50-30)*RAND()+30) ENDFOR
FOR j = 1 TO 9
FOR k = j+1 TO 10
IF x(k) > x(j)
t = x(j)
x(j) = x(k)
x(k) = t
ENDIF
ENDFOR
ENDIF **ENDFOR
CLEAR
FOR i = 1 TO 10
x(i)
ENDFOR
练习4:数组A中存放着n个互不相同的整数,且按从小到大的顺序排列,要求在A数组中插入一个给定整数x(x不等于n个数中任何一个),插入以后A数组仍然是有序的。假定这n个整数分别为10、20、30、40、50、60、70、80、90和100,X=55。
DIMENSION a(n+1)
x = 55
FOR i = 1 TO n
a( i ) = i*n
ENDFOR
FOR j=1 TO n-1
IF a(j)>x
FOR k = n+1 TO j+1 STEP -1
a(k) = a(j+1) ***a(k) = a(k-1)
ENDFOR
a(j) = x
LOOP ***EXIT
ENDIF
a(n+1)=IIF(j=n-1,x,a(n+1))
ENDFOR
DISPLAY MEMORY LIKE A*
练习5:数组A中存放着n个互不相同的数据,且按从小到大的顺序排列,要求从A数组中删除与给定数x相同的那个数,后面数依次前移一个位置。假定这n个数为10、20、30、40、50、60、70、80、90和100,x=60。要求:
n=10
DIMENSION A(n)
FOR i = 1 TO n
A(i) = i*n
ENDFOR
m = INT((n+1)/2)
IF A(m) > x
t1 = 1
t2 = m
ENDIF ***ELSE
t1 = m
t2 = n
ENDIF
FOR j = t1 TO t2
IF A(j) = x
FOR k = j TO n-1
A(k) = A(j+1) ** A(k) = A(K+1)
ENDFOR
A(n) = .F.
EXIT
ENDIF
ENDFOR
DISPLAY MEMORY LIKE A*
练习6:找出1~2000之内所有的阿姆斯特朗数(Armstrong number)。
一个数如果等于其每一位数字立方之和,则此数称为阿姆斯特朗数。例如407就是一个阿姆斯特朗数,因为:407 = 43 + 03 + 73。要求:"1~2000之内的阿姆斯特朗数为:"
nCount=0
FOR i = 1 TO 2000
n = LEN(ALLT(STR(i)))
m = 0
FOR j = 1 TO n
m = m + VAL(RIGHT(ALLT(STR(i)), j, 1))^3
*** m = m + VAL(substr(ALLT(STR(i)), j, 1))^3
ENDFOR
IF i = n **IF i=m
nCount= nCount+1
i
ENDIF
ENDFOR
”共计”+ALLT(STR(nCount))+”个”
练习7:下列程序用来找出1000以内同时满足以下条件的数:1)个位数字与十位数字之和除以10所得的余数是百位数;2)该数是素数(仅能被1和本身整除的数称为“素数”)。例如211、239、367等。
CLEAR
FOR i = 1 TO 1000
yn = .T.
FOR j = 3 TO i-1
IF MOD(i,j) = 0
yn = .F.
EXIT
ENDIF
ENDFOR
IF yn
s = ALLT(STR(i))
s1 = RIGHT(s,1)
s2 = LEFT(RIGHT(s,2),1)
s3 = LEFT(RIGHT(s,3),1)
IF MOD(s1+ s2,10) = s3 ** IF MOD(VAL(s1)+ VAL(s2),10) = VAL(s3)
i
ENDIF
ENDIF
ENDIF ***ENDFOR
练习8:下列程序用来计算1!+(1!+3!)+(1!+3!+5!)+…+(1!+3!+5!+…+11!)。
CLEAR
m = 0
FOR i = 1 TO 6
FOR j = i TO 2*i -1 STEP 2
m = m + jc(j)
ENDFOR
ENDFOR
‘1!+(1!+3!)+(1!+3!+5!)+…+(1!+3!+5!+…+11!)的值为:’+STR(m) FUNCTION jc
PARAMETERS n
s =1
FOR k = 1 TO n
s = s*k
NEXT ****ENDFOR
RETURN ****RETURN S
练习9:下列程序的功能是找出1000之内所有的完数,并统计它们的个数(完数是指这样一个数,该数的各因子之和正好等于该数本身。例如,6的因子是1,2,3,而1+2+3=6,所以6是完数)。要求:
CLEAR
nCount=0
FOR n1 = 1 TO 1000
m=0
FOR n2 = 1 TO n1-1
IF n1/n2 = MOD(n1,n2)*** IF n1/n2 = INT(n1,n2)
m = m + n2
ENDIF
ENDIF ***ENFFOR
IF n1 = m
n1
nCount = nCount + 1
ENDIF
ENDFOR
WAIT WINDOWS '"完数的个数为"' + STR(nCount)
练习10:下列程序的功能是找出1000之内所有完数的个数(完数是指这样一个数,该数的各因子之和正好等于该数本身。例如,6的因子是1,2,3,而1+2+3=6,所以6是完数)。要求:
CLEAR
n1 = 1
nCount = 0
DO WHILE n1<=1000
m=0
FOR n2 = INT(n1/n2) TO 1 STEP -1 *** n2=int(n1/2) IF n1/n2 = INT(n1/n2)
m = m + n2
ENDIF
ENDFOR
IF n1 = m
nCount = nCount + 1
n1
ENDDO***ENDIF
n1 = n1 + 1
ENDDO
WAIT WINDOWS '"完数的个数为"' + STR(nCount)
练习11:下列程序的功能是找出两个正整数的最大公约数。可以用辗转相除法来求最大公约数。例如27和6,先用27除以6,余数为3,由于余数不为0,再将6作为被除数,3作为除数,得到余数为0,则3就是27和6的最大公约数。要求:
CLEAR
m = 27
n = 6
IF m t = m m = n n = t ENDIF r = MOD(m,n) DO WHILE r<>0 m = n n = t **n=r r = MOD(m,n) ENDDO WAIT WINDOWS '最大公约数为'+ STR(r) *** STR(n) 练习12:下列程序的功能是找出1992至2010年中的闰年。判断闰年的条件是:(1)能被4整除,但不能被100整除的年份;(2)能被100整除,又能被400整除的年份。如1989,1900年不是闰年,1992,2000是闰年。要求: n=1992 y = 1 DO WHILE n<=2010 IF INT(n/4) = n/4 IF INT(n/100) <> n/100 y = 1 ELSE IF INT(n/400) = n/400 y = 1 ELSE y = 0 ENDIF ENDIF ENDIF****ELSE y = 0 ENDIF WAIT WINDOWS STR(n) + '是' + IIF(y = ‘1’,'闰年','非闰年') ***y=1 n = n + 1 ENDDO 练习13:下列程序的功能是求函数f(x)的值,同时分别给出x= -2,x=2,x=6时函数的值。函数表达式为: CLEAR f(-2) f(2) f(6) FUNCTION f PARAMETERS x IF x < 2 y = 2*x^2 + 3*x + 4 ELSE IF x = 2 Y = 0 ENDIF ****ELSE y = -2*x^2 + 3*x - 4 ENDIF ENDIF RETURN x **** RETURN Y 练习14:下列程序用来产生20个随机数,并将它以从大小的顺序存贮在数组X中。要求: DIMENSION X(20) x = 0 FOR i = 1 TO 20 x(i) = RAND() ENDFOR FOR j = 1 TO 19 FOR k =2 TO 20 **** FOR k = j+1 TO 20 IF x(k) > x(j) t = x(j) x(j) = x(k) x(k) = t ENDIF ENDDO **** ENDFOR ENDFOR CLEAR FOR i = 1 TO 20 x(i) ENDFOR 练习15:下列程序用来判断一个大于或等于3的正整数是不是素数。所谓素数是指除1和该数本身之外,不能被其它任何整数整除。要求: FOR n = 3 TO 100 i = 2 y = .T. DO WHILE i<= n***DO WHILE i<= n – 1 IF n/i = INT(n/i) y = .F. i = i+1 EXIT ENDIF i = i + 1 ENDDO IIF( y, n,'') ENDIF****ENDFOR 练习16:找出由1,2,3,4这四个数字组成的所有可能的四位数,并统计它们的个数(允许出现四位数字相同的数,如1111,2222,…)。要求: CLEAR DIMENSION X(4) FOR i = 1 TO 4 x(i) = i **x(i)=str(i,1) ENDFOR m = 0 FOR i=1 TO 4 FOR j=1 TO 4 FOR k=1 TO 4 FOR n=1 TO 4 s = x(i) + x(j) + x(k) + x(n) &&本条语句不允许修改 m = m + 1 S ENDFOR ENDFOR ENDFOR ENDIF***ENDFOR m 11 *程序名:TEST.prg *检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的 *学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中. *以下程序有三处错误,请改正 OPEN DA TABASE SDB SELECT STUDENT.学号,姓名,性别,A VG(成绩) 平均成绩,MIN(成绩) 最低分,COUNT(*) 选课门数; FROM STUDENT,SC; WHere STUDENT.学号= SC.学号AND 成绩>= 70 ; &&**********Error********** GROUP BY STUDENT.学号HA VING count(课程号) >= 3; &&**********Error********** inTO table NEW_TEST &&**********Error********** CLOSE ALL 9 *程序名:dbtest3.prg *定义一个视图VS1, *检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号, *并按平均成绩降序排序. *以下程序有三处错误,请改正 SET TALK OFF SET SAFETY OFF open DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行 CREATE VIEW VS1 SELECT STUDENT2.学号, 姓名, A VG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号; FROM STUDENT2, sc; &&*************Error************* WHERE STUDENT2.学号= SC.学号; GROUP BY SC.学号HA VING COUNT(课程号) > 3; ORDER BY 平均成绩desc &&*************Error************* CLOSE DATABASE RETURN i=2 create table four(结果I) do while i<=1000 if i%3=0 insert into four values(i) &&错误语句请修改 endif 程序改错题 (注意:每小题只有1行有错误,答题时请指出错误位置并给出改正结果)1. 输出计算结果。 main() { int a=b=10; a+=b+5; b*=a+=10; printf("%d%d\n",a,b); } 2. 输出计算结果。 #include 输出程序运行结果。 #include 程序改错 一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1?2?3?4? ?n main() { long int sum; int n,i=1; scanf("%d",n); printf(“\n”); while(i 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 第1题(10.0分)题号:421 /*-------------------------------- 【程序改错】 -------------------------------- 功能:给一个不多于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; 3). if (a!=0) 或 if (!a) 第2题(10.0分)题号:417 /*-------------------------------- 【程序改错】 -------------------------------- 功能:下题是一段有关结构体变量传递的程序. --------------------------------*/ #include "stdio.h" struct student { int x; char c; } a; main() { a.x=3; /**********FOUND**********/ a.c='a' f(a); /**********FOUND**********/ printf("%d,%c",a.x,b.c); getch(); } f(struct student b) { b.x=20; /**********FOUND**********/ b.c=y; } 答案: 1). a.c='a'; 2). printf("%d,%c",a.x,a.c); 3). b.c='y'; 第1题(10.0分)题号:440 /*-------------------------------- 【程序改错】 -------------------------------- 第1题【程序改错】 欧阳学文 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的 字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为: “EDCBAABCDE”。 */ #include /**********FOUND**********/ t[i] = s[sli]; for (i=0; i 第2题【程序改错】 功能:求出以下分数序列的前n项之和。和值通过函数值返回main 函数。 2/1+3/2+5/3+8/5+13/8+21/13 …… 例如:若n = 5,则应输出:8.391667。 */ #include 12592 '题目 : 编程求一个十进制整数n 的各位数字之和,设n 为小于或等于 5 位的数。'------------------------------------------------ Option Explicit Private Sub Form_Click() Dim N As Integer, Sum As Integer, S1 As String, S2 As String Dim i As Integer, Ch As String Sum = 0 N = InputBox(" 输入整数n") S1 = Str(N) S1 = Trim(S1) For i = 1 To Len(S1) '**********ERROR********** Ch = Mid(N, i, 1) '**********ERROR********** Sum = Val(Ch) Next i Print " 该整数的各位数之和是: "; Sum End Sub 答案: Ch=Mid(S1 , i , 1) Sum = Sum + Val(Ch) 12610'题目:程序功能根据输入的学习成绩, 分别显示优秀 (90 分以上 ), 良好 (75 分以上 ), 及格 (60 分以上 )不及格四个等级 . '------------------------------------------------ Option Explicit Private Sub Form_Click() Cls Dim i As Integer i = InputBox(" 请输入学习成绩") Select Case i '**********ERROR********** Case 0 < i < 100 MsgBox " 成绩应该在0--100 之间 """ '**********ERROR********** Case 90 Print " 优秀 " Case 75 To 89 Print " 良好 " Case 60 To 74 Print " 及格 " '**********ERROR********** Case MsgBox " 不及格 ", vbCritical End Select End Sub 答案: Case 100 < x or x < 0 Case 90 to 100 Case Else 12616.题目:求 s=1!+3!+5!+7! ,阶乘的计算用Function 过程 fact 实现 . '------------------------------------------------ Option Explicit Private Sub Form_Click() Dim i As Integer, s As Integer '**********ERROR********** For i = 1 To 7 s = s + fact(i) Next i Print s End Sub '**********ERROR********** Public Function fact() Dim t As Integer, i As Integer t = 1 For i = 1 To n t = t * i Next i '**********ERROR********** fact = i End Function 答案: For i = 1 To 7 Step 2 Public Function fact%(n%) fact = t 12620 题目 :编程实现从左到右的滚动字幕,滚动的速度由滚动条控件来控制。 '------------------------------------------------ Option Explicit Private Sub HScroll1_Scroll() '**********ERROR********** Timer1.Interval = HScroll1.Min - HScroll1.Value End Sub Private Sub Timer1_Timer() '**********ERROR********** If Label1.Left <= Form1.Width Then '**********ERROR********** '以下程序段用于输出杨辉三角:结果样式如图1 ' Private Sub Form_Click() Const n = 10 Dim arr(n, n) As Integer For I = 1 To n arr(I, I) = 1 '**********SPACE********** 【arr(I, 1) = 1】 Next I For I = 3 To n For j = 2 To I - 1 '**********SPACE********** arr(i, j) =arr(i-1,j-1)+arr(i-1,j) Next j Next I For I = 1 To n For j = 1 To I '**********SPACE********** 【print arr(I,j)】 Next j Print Next I End Sub Option Explicit '------------------------------------------------ '【程序改错】 '------------------------------------------------ '题目:用自定义函数的方法求sum(x),求当-1≤x≤1时,' sum(x)=x/2!+x^2/3!+x^3/4!+……+x^n/(n+1)!, ' 当x〉1或x〈-1时,函数值为0。当n〈=0时,输入数' 据错误。X、N都是由用户输入。 '------------------------------------------------ '注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click() Dim s As Single Dim n As Integer, x As Single, k As Integer n = Val(InputBox("Please input a integer value:")) c语言程序设计第五版习 题答案 Prepared on 24 November 2020 习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、dowhile语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { inta1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { inta1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型 (一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。#include "stdio.h" #define N 20 void fun(int a[], int n) { int i, j, t, k; for (j = 0 ;j < n-1 ;j++) { /**********ERROR**********/ k = j for (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 第12次上机程序改错第1题 【程序改错】 -------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。 例如:输入圆的半径值:19.527 输出为:s = 598.950017。 ------------------------------------------------------*/ #include printf ( "Enter x: "); scanf ( "%f", &x ); printf (" s = %f\n ", fun ( x ) ); } 第2题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include 【程序改错-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 目录 功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。 (1) 功能:求如下表达式: (2) 功能:判断m是否为素数,若是返回1,否则返回0。 (4) 功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。 (5) 功能:求1到20的阶乘的和。 (6) 功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出 整数部分,输出项数不得多于或少于20。 (7) 功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的 元素之和sum。 (8) 功能:找出大于m的最小素数,并将其作为函数值返回。 (9) 功能:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前 面的元素即第一个数对换位置. (10) 功能:一个已排好序的一维数组,输入一个数number,要求按原来排序的规律将 它插入数组中. (11) 第1题/*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。 ------------------------------------------------------*/ #include ? 第1题(分)题号:400 难度:中第2章/*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun求20以内所有5的倍数之积。 ------------------------------------------------------*/ 《 #define N 20 #include <> int fun(int m) { /**********FOUND**********/ int s=0,i; ; for(i=1;i s*=i; ) 第2题(分)题号:584 难度:中第1章/*-------------------------------------------------------【程序改错】 --------------------------------------------------------- 下列给定程序中函数fun()的功能是计算1/n!的值。 & 例如:给n输入5,则输出。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行, 也不得更改程序的结构。 , 试题程序: -------------------------------------------------------*/ #include <> #include <> /***********FOUND***********/ ~ int fun(int n) { double result =; if(n==0) return ; while(n>1 && n <170) /***********FOUND***********/ result *=n++ ; … result=1/result; return result; } void main() {计算机程序改错题,及答案
程序改错题
程序改错基本题
程序改错1
C语言程序改错题
程序改错包括答案版本.docx
VB程序设计例题-程序改错程序填空程序设计
c语言程序设计第五版习题答案
程序改错完整版---C语言
C语言程序改错题
程序改错2
有目录-程序改错部分试题及答案(2015-2016-1)
计算机基础C++程序改错复习题