程序改错题

合集下载

C语言程序改错

C语言程序改错

C语言程序改错〖第1题〗『程序改错』(5分)(题号:422)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:给一个不多于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)〖第2题〗『程序改错』(5分)(题号:411)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后除以10的余数代替该位数字。

程序改错69题

程序改错69题

程序改错注意:不可以增加或删除程序行,也不可以更改程序的结构。

1-44题每小题有2处错误。

1.计算1!+2!+3!+ (10)SET TALK OFFS=0N=1DO WHILE N>=10STOR 1 TO I,PDO WHILE I<=NP=P*NI=I+1ENDDOS=S+PN=N+1ENDDO?SSET TALK ONRETURN2.计算并在屏幕上显示出"九九乘法表",显示格式如下:1×1=11×2=2 2×2=41×3=3 2×3=6 3×3=9… …1×9=9 …8×9=72 9×9=81 SET TALK OFFCLEARX=1DO WHILE X<=9Y=1DO WHILE Y<=9??STR(X)+"×"+STR(Y)+"="+STR(X*Y) Y=Y*1ENDDO?X=X+1ENDDOSET TALK ONRETURN3.根据输入的数据,计算不大于该数的奇数累加和。

SET TALK OFFCLEARYN="Y"DO WHILE UPPER(YN)="Y"INPUT "请输入2位以内的整数" TO N STORE 0 TO X,YZ=" "DO WHILE X<NX=X+1IF INT(X/2)=X/2EXITELSEZ=Z+"+"+STR(X,2)Y=Y+ZENDIFENDDO?Z+"="+STR(Y,4)WAIT "继续计算?(Y/N)" TO YN ENDDO?"再见:"SET TALK ONRETURN4.通过临时数据LSH.DBF向学生数据库RS.DBF中追加数据记录。

程序改错

程序改错
(3)逻辑错误 发生在运行之后,不显示错误信息,仅表现为运行结果不正确。排除逻辑错误,一般也要用跟踪法查明错误点和错误原因。
发生错误后都要回到编辑阶段,分析错误原因,修改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语言期末考试练习题程序改错(带详解答案)

大学C语言期末考试练习题程序改错(带详解答案)

y=3.5+x;
printf(“y=%d”);
}
正确的:
int x; float y;
printf(“y=%f”,y);
6 编程计算下面分段函数, 输入 x, 输出 y
x 1 x 0 y 2x 1 0 x 10
3x 11 x 10
main() { int x,y;
第三处改为:if(n%3==0)
第四处改为:sum=sum+n;
8. 求表达式 c ab 的值
#include <stdio.h>
#include <math.h>
int fun(int x, int y);
main()
{ int a,b; float f; scanf(“%d,%d”,a,b); //与改错第 1 题中的 scanf 错误相同 if(ab>0){ // C 语言中乘号不能省略,且用*表示乘法运算 fun(a,b); // 调用带有返回值的函数,应将函数的返回值保存在变量里
} 第四行改为:for(j=0;j<5;j++) 第五行改为:scanf(“%d”,&a[j]); 第七行改为:for(j=1;j<5;j++) 第八行改为:if(max<a[j]) 第十三行改为:printf(“下标:%d\n 最大值:%d”, m,max)
3.用一个函数求两个数之和。 sum(x,y) //函数定义的一般形式 p173-174 { float z; z=x+y; return; //return 语句后面可以返回 0、常量、变量和表达式的值。 } main() { float a,b; int c; / /若定义变量的语句有错误,常见考点有两个:(1)变量的类型,(2)在定

程序改错题

程序改错题

程序改错题第一篇:程序改错题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。

程序改错题

程序改错题

程序改错题〖第1题〗『程序改错』(1.0分)(题号:451)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:以下程序是单击命令按钮,将用户在组合框中输入' 的某一值,与组合框其他项进行比较,如有相同,' 则将相同表项删除,其他项不动。

'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Private Sub Command1_click()Dim a As String, i As Integer'**********FOUND**********a = Trim(Combo1.Index)If Len(a) <> 0 Then'**********FOUND**********For i = 0 To Combo1.ListCount'**********FOUND**********If Combo1.List(i) = a Then Combo1.AddItem i Next iEnd IfCombo1.SetFocusEnd SubPrivate Sub Form_Load()Dim i As IntegerFor i = 0 To 9bo1.AddItem iNextEnd Sub答案:1). a = Trim(Combo1.Text)2). For i = 0 To Combo1.ListCount - 13). If Combo1.List(i) = a Then Combo1.RemoveItem i 〖第2题〗『程序改错』(1.0分)(题号:127)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:下面程序可输出如下图形:' *' ***' *****' *******' *********'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Private Sub Form_Click()dim m as integer,n as integer,s as string,i as integer,j as integer n = 4m = 1s = "*"For i = 5 To 1 Step -1'**********FOUND**********Print Spc(n)For j = 1 To 2 * m - 1Print s;Next jPrint'**********FOUND**********n = n + 1'**********FOUND**********m = m - 1Next iEnd Sub答案:1). Print Spc(n);2). n = n - 1 或n = - 1+n3). m = ★m ★+★1〖第3题〗『程序改错』(1.0分)(题号:137)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:求s=72+102+132+……822的值。

C语言改错题-含答案

C语言改错题-含答案

第1题【程序改错】功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。

例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。

------------------------------------------------------*/#include <conio.h>#include <stdio.h>#include <string.h>void fun (char *s, char *t){/**********FOUND**********/int i;sl = strlen(s);for (i=0; i<sl; i++)/**********FOUND**********/t[i] = s[sl-i];for (i=0; i<sl; i++)t[sl+i] = s[i];/**********FOUND**********/t[2*sl] = "0";}main(){char s[100], t[100];printf("\nPlease enter string s:"); scanf("%s", s);fun(s, t);printf("The result is: %s\n", t);}答案:1). int i,sl;2). t[i] = s[sl-i-1];3). t[2*sl] = '\0'; 或 t[2*sl] = 0;第2题【程序改错】功能:求出以下分数序列的前n项之和。

和值通过函数值返回main 函数。

2/1+3/2+5/3+8/5+13/8+21/13 ……例如:若n = 5,则应输出:8.391667。

------------------------------------------------------*/#include <conio.h>#include <stdio.h>/**********FOUND**********/fun ( int n ){int a, b, c, k; double s;s = 0.0; a = 2; b = 1;for ( k = 1; k <= n; k++ ){/**********FOUND**********/s = (double)a / b;c = a;a = a + b;b = c;}/**********FOUND**********/return c;}main( ){int n = 5;printf( "\nThe value of function is: %lf\n", fun ( n ) );}答案:1). double fun(int n)2). s = s + (double)a / b; 或 s += (double)a / b; 或 s += a /(double)b; 或s=s+a/(double)b;3). return s;第3题【程序改错】功能:读入一个整数m( 5≤m≤20 ),函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。

java程序改错12道及答案

java程序改错12道及答案
while(i<100)
{
/***********FOUND***********/
if(i%2==0)
s=s+i;
i=i+2;
}
/***********FOUND***********/
product=i;
}
System.out.println("偶数之和是 : "+sum);
System.out.println("奇数之积是 : "+product);
3)while(i<=10)或while(i<11)
4)}
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------
题目2:计算 1/1+1/2+1/3+...+1/100 的值
-------------------------------------------------------*/
public class Prog1
{
public static void main( String args[ ])
{
/***********FOUND***********/
public static void main (args[])
{
/***********FOUND***********/
int n=100,sum=1;
while(n>0)

程序改错复习题答案

程序改错复习题答案

程序改错复习题答案1. 题目:在下面的代码中找出并修正错误,使其能够正确计算并输出两个数的和。

```pythondef sum_numbers(a, b):result = a + bprint("The sum is:", result)sum_numbers(5, "3")```答案:错误在于第二个参数传递了一个字符串类型的值,而函数期望的是一个数字类型。

应将字符串 "3" 改为整数 3。

```pythondef sum_numbers(a, b):result = a + bprint("The sum is:", result)sum_numbers(5, 3)```2. 题目:修正以下代码中的错误,使其能够正确地将列表中的所有元素乘以2。

```pythonmy_list = [1, 2, 3, 4]for i in range(len(my_list)):my_list[i] = my_list[i] * 2print(my_list)```答案:代码本身没有错误,可以直接运行。

但是,更高效的方式是使用列表推导式。

```pythonmy_list = [1, 2, 3, 4]my_list = [x * 2 for x in my_list]print(my_list)```3. 题目:找出并修正以下代码中的错误,使其能够正确地计算并输出一个数的平方。

```pythondef square_number(n):return n * nprint(square_number("5"))```答案:错误在于函数调用时传递了一个字符串类型的值,而函数期望的是一个数字类型。

应将字符串 "5" 改为整数 5。

```pythondef square_number(n):return n * nprint(square_number(5))```4. 题目:修正以下代码中的错误,使其能够正确地遍历字典中的所有键值对。

程序改错题(17道)

程序改错题(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。

程序改错题

程序改错题
fu
n(n)= 10 (n=1) fun(n-1)+2 (n&gt;1)
例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
(2)错误:y+=1/(i*i) 正确:y+=1.0/(i*i)
【解析】(1)for (i=2;i&lt;m;i++)中是一个基础的分析错误,应该包括m。(2)y是一个double型变量,题中得出的结果是一个整数,所以改为y+=1.0/(i*i)。
6、下列给定程序中,函数fun的功能是:按如下递归公式求函数值。
/*************found**************/
return I;
}
void main()
{int m;
system(&quot;CLS&quot;);
pri
ntf(&quot;\nPlease enter 1integer number: &quot;);
(2)错误:if (n=1) 正确:if (n==1)
【解析】(1)主函数中已经定义了变量n的类型,在子函数中也要定义。(2)if后面应该紧跟一个条件判断表达式,而n=1是付值表达式,表达式的值永远为真,也就是说这个条件永远成立,没有递归执行。
.
7、下列给定程序中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。
试题程序:
#include &lt;stdio.h&gt;
/********found********/

c语言程序改错题

c语言程序改错题

【程序改错】功能: 根据整型形参m的值, 计算如下公式的值。

1 1 1.....1.—..—......——2x2 3x3 mxm例如: 若m=5, 则应输出: 0.536389------------------------------------------------------*/#include <stdio.h>double fun(int m){double y=1.0;int i;/**********FOUND**********/for(i=2;i<m;i--) for(i=2;i<=m;i++) /**********FOUND**********/y-=1/(i*i); y-=1.0/(i*i)/**********FOUND**********/return m; return y}main(){int n=5;printf("\nthe result is %lf\n",fun(n));}【程序设计】---------------------------------------------------------题目: 编程求所有4位数, 这些数具有以下特点: 这数本身是平方数, 且其低2位和高2位所组成的2个2位数也是平方数。

要求: 使用程序中定义的变量-------------------------------------------------------*/#include <stdio.h>#include <math.h>main(){int qw,bw,sw,gw; // qw千位数bw百位数sw十位数gw个位数int a,b; //a 高两位低两数int i; //循环变量/**********Program**********/for(i=1000;i<10000;i++){qw=i/1000;bw=i/100%10;sw=i/10%10;gw=i%10;1a=qw*10+bw;b=sw*10+gw;if(sqrt(i)==(int)sqrt(i)&&sqrt(a)==(int)sqrt(a)&&sqrt(b)==(int)sqrt(b)) printf(“%d\n”,i);}/********** End **********/}【程序设计】功能: 从键盘为一维整型数组输入10个整数, 调用fun 函数找出其中最小的数, 并在main函数中输出。

程序改错题整理

程序改错题整理

一、程序改错1、求[10,1000]内所有能被被7和9中至少一个数整除的整数之个数。

"set talk offclears=0for x=10 to 1000if mod(x,7)=0 and mod(x,9)=0n=n+xendifendfor? xset talk onreturn答案:2362、求100以内最大的自然数n,使得从1开始的连续n个自然数的倒数之和小于3.5。

set talk offclears=0for n=1 to 100s=(s+1)/nif s>=3.5loopendifendfor? n-1set talk onreturn答案:183、求100以内最小的自然数n,使得从1开始的连续n个自然数的倒数之和大于3.6。

set talk offclears=0for n=1 to 100s=s+1/nif s<=3.6loopendifendfor? nset talk onreturn答案:214、求100以内最大的自然数n,使得从1开始的连续n个自然数的平方和小于5000。

set talk offclears=0for n=1 to 100s=s+n*2if s>=5000exitendifendfor? nset talk onreturn答案:245、求50以内最大的自然数n,使得从102开始的连续n个偶数之和小于3000。

set talk offclears=0for n=1 to 50a=100+2*ns=s*aif s>=3000loopendifendfor? n-1set talk onreturn答案:236、求50以内最小的自然数n,使得从102开始的连续n个偶数之和大于2000。

set talk offclears=0for n=1 to 50a=102+2*ns=s+aif s>2000loopendifendfor? nset talk onreturn答案:177、某国今年的人口总数为1亿,若以每年4%的速度递增,试求出至少要再过几年该国人口总数才会翻一翻。

程序改错(删减版)

程序改错(删减版)

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的最小的素数,并作为函数值返回。

C语言程序改错题

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 分)/*------------------------------------------------------ 功能:编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。

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

类型不匹配

char *p, *r; if(r==p) ----> if(*r==*p) int *a; int t=20; a=t; ----> a=&t; void fun(int *a, int *b) {



指针类赋值出错


交换时出错

int t; t=a; b=a; a=t;
参考答案: 1. t==0 2. *zero=count;
23





main() { unsigned n; int zero,max; printf("\nInput n(unsigned): "); scanf("%d",&n); max=fun(n,&zero); printf("\nThe result: max=%d\n zero=%d\n",max,zero); }
符号遗漏:; ) } 符号出错: / % == 变量定义或初始化出错 赋值出错 字符或字符串出错 ‘ 函数定义出错 for循环的格式出错 输入输出格式出错 return语句出错
3
1.符号遗漏

遗漏分号、括号,经常出现在以下地方:
Hale Waihona Puke 语句后面遗漏分号,如:k++ break 表达式遗漏括号,如:while k>1, if !(n%i) 函数后面遗漏大括号{}
#include <stdio.h> void fun (long s, long *t) // 87653142 { int d; long sl=1; *t = 0; while ( s > 0) { d = s%10; /************found************/ if (d%2=0) { *t=d* sl+ *t; sl *= 10; } /************found************/ s \= 10; } }



#include <stdio.h> double fun ( int m ) { double y = 1.0 ; int i; /**************found**************/ for(i = 2 ; i < m ; i++) /**************found**************/ y += 1 / (i * i) ; return( y ) ; 参考答案: } 1. <= main( ) 2. 1.0 { int n = 5 ; printf( "\nThe result is %lf\n", fun ( n ) ) ; }


#include <stdio.h> int fun(unsigned n,int *zero) { int count=0,max=0,t; do { t=n%10; /*************found**************/ if(t=0) count++; if(max<t) max=t; n=n/10; }while(n); /*************found**************/ zero=count;; return max; }

int fun( int m)

int i=20; char ch;

相关练习

93.2,47.2
4
93.2


下列给定程序中函数fun的功能是:计算并输 出high以内最大的10个素数的和。high的值 由主函数传给fun函数。 例如,若high的值为100,则函数的值为732。
5



程序改错题
1
改错题分类



错误的性质分两类:语法错误和逻辑错误 在做题之前先运行一下程序,如果有书写错误, 系统会提示,简化答题过程 错误提示行来提示下一行(下面第二行)有错, 提示行不得删除,即使是空行也不行。 题目修改完后,保存,运行,退出
2
题型
1. 2. 3. 4.
5.
6. 7. 8. 9.
12
3. 变量定义或初始化出错


没有定义变量就使用 定义的变量没有初始化即使用

int j; j++;



变量定义出错,如:int sum=0.0; 初始化的值不对,如:求和s=0, 求积p=1是正 确的 变量定义的类型和使用的类型不匹配。 33.2 35.2
13
第33.2套


下列给定程序中函数fun的功能是:先将s所指 字符串中的字符按逆序存放到t所指字符串中, 然后把s所指串中的字符按正序连接到t所指串 之后。 例如:当s所指的字符串为"ABCDE"时,t所 指的字符串应为"EDCBAABCDE"。
25
第49.2套


下列给定程序中函数fun的功能是:将s所指字 符串的正序和反序进行连接,形成的新串放在 t所指的数组中。 例如

当s所指字符串为:"ABCD"时,t所指字符串中的 内容应为:"ABCDDCBA"。
26







#include <stdio.h> #include <string.h> /************found************/ void fun (char s, char t) { int i, d; d = strlen(s); for (i = 0; i<d; i++) t[i] = s[i]; for (i = 0; i<d; i++) t[d+i] = s[d-1-i]; /************found************/ t[2*d-1] = '\0'; } main() { char s[100], t[100]; printf("\nPlease enter string S:"); scanf("%s", s); fun(s, t); printf("\nThe result is: %s\n", t); }
---- > t=*a; *b=*a;*a=t;

}

例:59.2
38.2
18
第59.2套


下列给定程序中,函数fun的功能是:实现两 个整数的交换。 例如,给a和b分别输入60和65,输出为:a= 65 b=60。
19



#include <stdio.h> /*************found**************/ void fun(int a, b) { int t; /*************found**************/ t=b;b=a;a=t; }
24
5. 字符或字符串出错

字符符号出错,如:

char ch=“a”; -------> ch=„a‟
str[i]=“\0” -------> str[i]=„\0‟ char ch=0; ch=„\0‟; ch=„0‟; //0字符 //结束符

字符串结束符出错


字符赋值出错


字符o和数字0的区别 例:49.2
参考答案: 1. ==,== 2. }
9
第23.2套


下列给定程序中函数fun的功能是:将长整型 数中各位上为偶数的数依次取出,构成一个新 数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为87653142时,t中的数: 8642。
10

参考答案: 1. int *a, int *b 2. t=*b; *b=*a; *a=t
20



void main() { int a,b; printf("Enter a, b: "); scanf("%d%d",&a,&b); fun(&a, &b); printf("a=%d b=%d\n ", a,b); }
参考答案: 1. d%2==0 2. s/=10
11



main() { long s, t; printf("\nPlease enter s:"); scanf("%ld", &s); fun(s, &t); printf("The result is: %ld\n", t); }
参考答案: 1. int i, sl 2. s[sl-i-1]
15
第35.2套


下列给定程序中函数fun的功能是:根据整型 形参m,计算如下公式的值。 例如,若m的值为5,则应输出1.463611。
1 1 1 1 y 1 …… 2 2 3 3 4 4 m m
16
21
第38.2套


下列给定程序中,函数fun实现的功能是:统 计一个无符号整数中各位数字值为0的个数, 通过形参传回主函数,并把该整数中各位上最 大的数字值作为函数值返回。 例如,若输入无符号整数30800,则数字值为 0的位的个数为3,各位上数字值最大的是8。
相关文档
最新文档