程序改错练习
c语言程序设计改错和根据程序写结果的练习

c语言程序设计改错和根据程序写结果的练习改错练习1.语法错误2.缺少头文件3.函数相关的错误4.功能是否实现问题5.指针使用问题6.循环次数和终止7.字符型数组和指针存储字符串的时候的差异程序改错练习、、1.求1,2,3,4,5,6,….n的乘积#includeint main(){ int sum;int n,i=1;scanf("%d",n);printf(“\n”);while(i<n);< p="">{ sum=sum*i;i++; }printf("sum=%c",sum); printf("sum=%d",sum);}2.求一个数组中最大值及其下标。
#includevoid main(){ int max,j,m;int a[5];for(j=1,j<=5,j++)scanf(“%d”,a);max=a[1];for(j=1;j<=5;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 z1,z2;z1=x+y;z2=x*yreturn z1,z2;}Main(){float a,b;printf(“Input a,b”);scanf(“%d%d”,a,b);printf(“a+b=%d\t a*b=%d\n”,sum(a,b));}4. 调用函数swap()实现交换主函数中(实参)变量a,b的值。
#includevoid swap(float * a, float * b){float x;x=a,a=b,b=x;}Void main(){float a=10,b=20;swap(a,b);printf(“a=%f/tb=%f\n”,a,b)}5. 用指针实现变量a的值的输入,输出#includeVoid main(){Int a;printf(“Input a:\n”);int *p;sc anf(“%d”,p);a=*p;printf(“\n a=%d\n”,&a);} ;6. 字符串组的输入输出#include#define M 100#define N 200;void main(){ char print(char *str[],int n); char s[M][N];char *ps[M];int I;p=s;for(i=1;i<=M;i++)gets(&ps[i]);print(ps[0]);]char print(char *str[],int n){int I;for(i=0;i<n;i++);< p="">puts(str++);}8.调用函数fun()实现字符串组中的所有字符串的连接#includechar *fun(char *pstr){ int I;char *new;for(i=0;i<10;i++)strcat(new,pstr[i]);return(new);}void main(){ char *str[]={“I”,”like”,”programming”,”very”,”much”,”!”};printf(“%s”,fun(str));}9.下面程序的功能是对a数组中的元素按从大到小的顺序排序#include#define N 10;main(){int a[N]={2,17,8,3,24,53,82,1,29,101};int i,j,k,t;for(i=0;i<9;i++){ k=i;for(j=i+1;j<10;j++)if(a[j]<a[k])< p="">k=j;if(k=i){t=a[j];a[j]=a[i];a[i]=t;}}}10.下面程序的功能是交换变量a和b中的值#includemain(){int a,b,*p,*q,*t;p=&aq=&bprintf("请输入变量a和b的值:");scanf("%d%d", &p,&q);*t=*p ;*p=*q ;*q=*tprintf("交换后a和b的值:a=%d b=%d\n",a,b);}11.假设某袋子中装有3个红球,5个白球,6个黑球,现从该袋子中任意取出8个球,下面程序的功能是输出这8个球中至少有一个白球的所有方案。
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.用指针作函数参数,对输入的两个整数按大小顺序输出。
程序改错——精选推荐

【程序改错】1.下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。
请改正程序中的错误,使它能得出正确的结果。
#include <stdio.h>void fun( char *s ){ int I,j;for(i=j=0; s[i]!='\0'; i++)if(s[i]!='c')/***********FOUND***********/s[j++]=s[i];/***********FOUND***********/s[j]='\0';}main(){ char s[80];printf("Enter a string: "); gets(s);printf("The original string: "); puts(s);fun(s);printf("The string after deleted : "); puts(s);printf("\n\n");}2. 下列给定程序中,函数fun的功能是:根据整型参数m,计算如下公式的值。
y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)例如,若m=2000,则应输出0.000160。
请改正程序中的错误,使它能得出正确的结果。
#include <stdlib.h>#include <conio.h>#include <stdio.h>/***********FOUND***********/double fun (int m){ double y=0, d;int i;/***********FOUND***********/for(i=100;i<=m;i+=100){d=(double)i*(double)i;y+=1.0/d;}return(y);}void main(){ int n=2000;system("CLS");printf("\nThe result is %lf\n",fun(n));}3. 下列给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回。
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语言题库改错题及详解答案

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。
c语言改错题题库及详解答案

c语言改错题题库及详解答案1. 题目:以下代码段中存在错误,请找出并改正。
```c#include <stdio.h>int main() {int a = 10;int b = 20;int c = a + b;printf("The sum is %d", c);return 0;}```答案:代码中缺少了字符串结束的空格。
应改为:```cprintf("The sum is %d ", c);```2. 题目:找出并改正以下代码段中的错误。
```c#include <stdio.h>int main() {int num = 100;if (num = 100)printf("Number is 100\n");return 0;}答案:代码中使用了赋值运算符 "=" 而不是比较运算符 "=="。
应改为:```cif (num == 100)```3. 题目:以下代码段中存在逻辑错误,请指出并改正。
```c#include <stdio.h>int main() {float a, b, c;scanf("%f %f", &a, &b);c = a / b;printf("The result is %f", c);return 0;}```答案:代码中没有检查除数 b 是否为 0,这会导致运行时错误。
应添加检查:```cif (b != 0) {c = a / b;printf("The result is %f", c);} else {printf("Error: Division by zero.\n");}```4. 题目:找出并改正以下代码段中的语法错误。
程序改错题(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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.此程序欲将js表中所有党员的年龄加
2.
clear
use 教师
copy to js
use js
loca for not 党员否&&此处应该为loca for 党员否
do while .not. eof()
replace 年龄with 年龄+2
skip &&此处应该为continue
enddo
use
2.功能是:计算100以内的偶数和。
请改错
Clear
S=1 &&此处应该为s=0
For i=1 to 100 step 2 &&此处应该为For i=2 to 100 step 2 S=s+i
Endfor
?”2+4+6……+98=”+str(s)
3.任意输入一个数计算这个数的阶层。
Clear
Input “请输入一个数:” to n
S=0 &&此处应该为s=1
For i=1 to n
S=s+I &&此处应该为s=s*i
Endfor
?”n!=”+str(s)
4.统计教师表中男女学生的人数。
Clear
Use 教师
Store 1 to man,woman &&此处应为store 0 to man,woman Do while not bof() &&此处应为do while not eof()
If 性别=”男”
Man=man+1
Else
Womam=woman+1
Endif
skip
Enddo
5.假设10个数已存放在数组s中,下面程序段用于将此10个数由大
到小排序,请改正错误.
I=1
Do while i<=9
J=j+1 &&此处应为j=i+1
Do while j<=9
If s(i)>s(j) &&此处应为s(i)<s(j)
W=s(i)
S(i)=s(j)
S(j)=w
Endif
J=j+1
Enddo
I=i+1
Enddo
6.显示业务信息表中的前10条记录的学生专业,人数,但园艺专业
的除外.
Clear
Use 业务信息表
do while not eof()
if 学生专业=”园艺”
skip
exit &&此处应为loop
endif
list field 学生专业,人数&&此处应该为disp field 学生专业,人数
skip
enddo
7.按记录号逻辑删除记录
set talk off
use 教师
accept “要删除的记录号:” to nn &&此处应为input “要删除的记录号:” to nn
skip nn &&此处应为go nn
disp
wait [是否逻辑删除此记录(Y/N)?] to p
if upper(p)=”Y”
pack &&此处应为dele
endif
use
set talk on
统计教师表中所有教师的平均年龄,并将统计结果追加在表尾。
Clear
Set talk off
Use 教师
Sum to NL
Append &&此处应为append blank Replace all 姓名with “均年龄” , 年龄with NL
*上一行应为Replace 姓名with “均年龄” ,年龄with NL replace Use。