程序改错练习题
程序改错题

注意:改错题目不要增、删或修改其他代码。
一定要在语句上面修改,否则电脑会识别不了,会没有分的,我这里只是便于大家观察修改之前的程序和修改之后的程序的区别。
请大家一定要在语句上面修改,其中红字部分就是要修改的部分。
第一题:简单应用:用户输入正整数,计算奇数,偶数,被3整除的数字:*******************found********************x,s1,s2,s3=0 ----→>>>>> store 0 to x,s1,s2,s3*******************found********************x=thisform.text1 ----→>>>>> x=thisform.text1.valuedo while x>0if int(x/2)=x/2s1=s1+1elses2=s2+1endif*******************found********************if div(x,3)=0 ----→>>>>> if mod(x,3)=0s3=s3+1endifx=x-1enddothisform.text2.value=s1thisform.text3.value=s2thisform.text4.value=s3thisform.text5.value=s1+s2+s3综合应用:thisform.list2.add(thisform.list1.value)改成thisform.list2.add item(thisform.list1.value)thisform.list2.delete(thisform.list2.listindex)改成thisform.list2.removeitem(thisform.list2.listindex)差的语句SELECT Student.姓名, Course.课程名称, Score.考试成绩;FROM student INNER JOIN score;INNER JOIN course ;ON Score.课程编号 = Course.课程编号 ;ON Student.学号 = Score.学号;----------------------------精品word文档值得下载值得拥有----------------------------------------------where &cn;ORDER BY Course.课程名称, Score.考试成绩 DESC;INTO TABLE zonghe第二题:&&根据"教师表"计算每个系的教师人数并将数据填入"学院表"CLOSE DATAUSE 学院表GO TOPDO .NOT. EOF() &&错误 ----→>>>>> DO while .NOT. EOF()xihao=系号SELECT COUNT(*) FROM 教师表 WHERE 教师表.系号=xihao INTO A &&错误----→>>>>> INTO array AREPLACE 教师人数 WITH A[1]NEXT &&错误 ----→>>>>>skipENDDO第三题:** 请改正以下语句代码中的错误,然后运行程序。
C语言程序改错练习题

C语言程序改错练习题程序改错练习题下面每个程序的划线处有语法或逻辑错误,请找出并改正,使程序符合题意。
1.求1?2?3?4? ?nmain(){ int sum; 正确:int sum=1;int n,i=1;scanf("%d",n); scanf(“%d”,&n);printf(“\n”);while(i<="n)</p">{ sum=sum*i;i++; }printf("sum=%c",sum); printf("sum=%d",sum);}2.求一个数组中最大值及其下标。
main( ){ int max,j,m;int a[5];for(j=1;j<=5;j++) 正确:for(j=0;j<5;j++)scanf(“%d”,a); scanf(“%d”,&a[j]);max=a[0];for(j=1;j<=5;j++) for(j=0;j<5;j++)if(max>a[j]) if(max<a[j])< p="">{ max=a[j];m=j;}printf(“下标:%d\n最大值:%d”, j, max) printf(“下标:%d\n 最大值:%d”, m,max);}3.用一个函数求两个数之和。
sum(x,y) 正确:float sum(float x, float y ){ float z;z=x+y;return ; return z;}main(){ float a,b;int c; float c;scanf("%f,%f",&a,&b);c=sum(a,b);printf("\nSum is %f",sum); printf("\nSum is %f",c);}4. x , y两个数中,让x中存较大的数,y存较小的数#includemain( ){int x , y=200 , z=0;x=180;if ( x<y)< p="">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);}5.用指针作函数参数,对输入的两个整数按大小顺序输出。
计算机模拟联系题程序改错

C语言程序设计练习三——程序改错【程序改错】:共16个题【程序改错】题号:1-6-z--------------------------------------------------------功能:利用二维数组输出如图所示的图形。
*******************************------------------------------------------------------*/#include <stdio.h>#include <conio.h>/**********FOUND**********/#define N= 7main(){char a[N][N];int i,j,z;for(i=0;i<N;i++)for(j=0;j<N;j++)/**********FOUND**********/a[i][j]=;z=0;for(i=0;i<(N+1)/2;i++){for(j=z;j<N-z;j++)a[i][j]='*';z=z+1;}/**********FOUND**********/z=0;for(i=(N+1)/2;i<N;i++){z=z-1;for(j=z;j<N-z;j++)a[i][j]='*';}for(i=0;i<N;i++){for(j=0;j<N;j++)/**********FOUND**********/printf("%d",a[i][j]);printf("\n");}}『答案』1 #define N 72 a[i][j]=' ';3 z=z-1; 或 z--; 或 z=-1+z;4 printf("%c",a[i][j]);*------------------------------------------------------【程序改错】 1-12--------------------------------------------------------功能:求1到10的阶乘的和。
C语言程序改错题汇总.doc

C语言程序改错题汇总程序改错题汇总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*xx x0.0 { 累计营业额;输入下一笔交易额;} 输出营业额;} 记一笔交易额为变量sale,营业额为sigma。
124、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少125、编写一个程序模拟袖珍计算器的加、减、乘、除四则运算。
例如输入35=或5-2=或3*4=或4/2=,求表达式结果。
126、输入字符序列,字符序列以特殊字符“”结束。
程序从前向后依次读入字符,并翻译出新的字符输出。
翻译的规则是如果当前读入的字符是数字符,如果该字符的面值为n,则它的后一个字符包括数字符需重复输出n1次如果当前读入的字符不是数字符,则输出该字符。
输出时,以上述一次翻译为一组,不同组间输出用一个空白字符隔开。
翻译直至当前读入的字符为字符‘’,结束翻译和输出。
127、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下每位数字都加上5,然后除以10的余数代替该位数字。
大学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)在定
c语言题库改错题及详解答案

c语言题库改错题及详解答案C语言是一种广泛使用的计算机编程语言,它以其强大的功能和灵活性而闻名。
在学习和掌握C语言的过程中,练习题库中的改错题是提高编程技能的有效方式。
以下是一些常见的C语言改错题及其详解答案。
1. 题目:编写一个程序,计算并输出1到10的累加和。
错误代码:```cint main() {int sum = 0;for(int i = 1; i <= 10; i++) {sum = sum + i;}print("Sum is %d", sum);return 0;}```错误点: `print` 函数应为 `printf`。
正确代码:```c#include <stdio.h>int main() {int sum = 0;for(int i = 1; i <= 10; i++) {sum += i; // 可以简化为 sum += i;}printf("Sum is %d\n", sum);return 0;}```2. 题目:编写一个程序,判断输入的年份是否为闰年。
错误代码:```cint main() {int year;printf("Enter a year: ");scanf("%d", &year);if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {printf("%d is a leap year.\n", year);} else {printf("%d is not a leap year.\n", year);}return 0;}```错误点:逻辑判断的括号使用不正确。
正确代码:```c#include <stdio.h>int main() {int year;printf("Enter a year: ");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {printf("%d is a leap year.\n", year);} else {printf("%d is not a leap year.\n", year);}return 0;}```3. 题目:编写一个程序,实现字符串的反转。
程序改错题

程序改错题第一篇:程序改错题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. 题目:在下面的代码中找出并修正错误,使其能够正确计算并输出两个数的和。
```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. 题目:修正以下代码中的错误,使其能够正确地遍历字典中的所有键值对。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序改错练习题
下面每个程序的划线处有语法或逻辑错误,请找出并改正,使程序符合题意。
1.求1⨯2⨯3⨯4⨯ ⨯n
main()
{ int sum; 正确:int sum=1;
int n,i=1;
scanf("%d",n); scanf(“%d”,&n);
printf(“\n”);
while(i<n) while(i<=n)
{ sum=sum*i;
i++; }
printf("sum=%c",sum); printf("sum=%d",sum);
}
2.求一个数组中最大值及其下标。
main( )
{ int max,j,m;
int a[5];
for(j=1;j<=5;j++) 正确:for(j=0;j<5;j++)
scanf(“%d”,a); scanf(“%d”,&a[j]);
max=a[0];
for(j=1;j<=5;j++) for(j=0;j<5;j++)
if(max>a[j]) if(max<a[j])
{ max=a[j];
m=j;
}
printf(“下标:%d\n最大值:%d”, j, max) printf(“下标:%d\n最大值:%d”, m,max);
}
3.用一个函数求两个数之和。
sum(x,y) 正确:float sum(float x, float y )
{ float z;
z=x+y;
return ; return z;
}
main()
{ float a,b;
int c; float c;
scanf("%f,%f",&a,&b);
c=sum(a,b);
printf("\nSum is %f",sum); printf("\nSum is %f",c);
}
4. 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);
}
5.用指针作函数参数,对输入的两个整数按大小顺序输出。
swap(int *p1,*p2)
{ int *p; 正确:int t;
*p=*p1;*p1=*p2;*p2=*p; t=*p1;*p1=*p2;*p2=t;
}
main()
{ int a,b;
int *q1,*q2;
scanf("%d,%d",&a,&b);
&q1=a,&q2=b; q1=&a,q2=&b;
if(a<b) swap(*q1,*q2); if(a<b) swap(q1,q2);
printf("\n%d,%d\n",q1,q2); printf("\n%d,%d\n",*q1,*q2); }
6. 求100~300间能被3整除的数的和。
main()
{ int n;
sum;
for(n=100;n<=300;n++) { if(n%3=0)
sum=sum*n;
}
printf(“%l d ”,sum);
}
7. 实现华氏温度转换为摄氏温度,公式为:c=
9
5*(f-32),要求输出结果取2位小数。
main() { int c,f ;
printf("Please enter f:");
scanf("%f", &f);
c=5/9*(f-32);
printf("f=%f,c=%f",c ,f);
}
8.下面程序的功能是计算n!。
main()
{ int i ,n ;
int s ;
printf("Please enter n:");
scanf("%d", n);
for(i=1;i<=n ;i++) ; s=*i ;
printf("%d! = %d",i ,s);}
9、求一个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);
}
10. 编程计算下面分段函数, 输入x, 输出y
⎪⎩⎪⎨⎧>-≤≤-<-=10
1131001201x x x x x x y
main() { int x,y;
p rintf(“\n Input x:\n”);
scanf(“%d”, x);
if(x<0)
y=x-1; else if(x>=0||x<=10)
y=2x-1;
else y=3x-1;
printf(“y=%d”,&y);
}
11. 求表达式ab c =的值
#include <stdio.h>
#include <math.h>
int fun(int x, int y);
main()
{ int a,b; float f;
scanf(“%d,%d ”,a,b); if(ab>0)
{ f = fun(a,b); printf("The result is:%d\n", &f)
} else printf(“error!”);} fun(x, y)
{ float result;
result = sqrt(a+b);
return;
}
12、通过函数调用,求两个数之差
sub(x,y)
{ float z;
z=x-y;
return;
}
main()
{ float a,b;
int c;
scanf(“%f,%f”,&a,&b);
c=sub(a,b);
printf(“\nSub is %f”,sub);
}
13、输入三角形的三边长,求三角形的面积。
#include <math.h>
main( )
{float a,b,c,s,area;
scan("%d,%d,%d",a,b,c);
s=1.0/2*(a+b+c);
area=sqrt(s(s-a)(s-b)(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",&a,&b,&c,&s);
printf("area=%7.2f\n",&area)
}
14、求和1!+2!+3!+4!+……+20!。
main( )
{
float s=0,t=0;
int n;
for(n=0;n<20;n++)
{
t=t+n;
s=s*t;
}
printf("1!+2!+3!+4!+……+20!=%d\n",s);
}
15. 求一个3×3矩阵的主对角线元素之和
main( )
{ int a[3][3];
int sum;
int i,j;
printf(“Enter data:\n”);
for(i=0;i<3;i++)
for(j=0,j<3,j++)
scanf(“%f”,&a[i][j]);
for(i=0;i<3;i++)
for(j=0,j<=3;j++)
if (i=j)
sum +=a[i][j];
printf(“sum=%5d\n”,sum);
}。