程序改错题

合集下载

C语言程序改错练习题

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行有错误,答题时请指出错误位置并给出改正结果)1.输出计算结果.main(){ int a=b=10;a+=b+5;b*=a+=10;printf(”%d%d\n",a,b);}2.输出计算结果。

#include <stdio。

h〉main(){ float x,y;scanf("%f",x);y=x*56/97;printf("%f\n",y);}3.输出计算结果.main(){ int x=2,y=3;z=(x++,y++);printf("%d”,z);}4.输出运行结果。

main(){ float a,b,c,v;a=2。

0;b=3.0;c=4.0;v=a*b*c;printf("%f\n" ,v)}5.输出运行结果.#include “stdio.h”main(){float r,s;r=5。

0;s=3.14159*r*r;printf("%d\n”,s);}输出程序运行结果。

#include 〈stdio。

h〉main(){ char ch;scanf("%c”,ch);printf(”%d\n",ch);}7.输入一整数判断是否能被13整除。

main(){ int i;scanf(“%d”,i);if(i%13==0) printf(”yes”);else printf("no");}8.输出程序运行结果。

main(){ int a,b;float x,y,z;scanf(”%f%f%f”,&x,&y,&z); a=b=x+y+z;c=a+b;printf("%d%d%d",a,b,c);}9.输出程序运行结果。

#include 〈stdio。

h>main(){ float x,y;scanf("%f",&x);y=2x+10;printf("%f\n",y);}10.输出程序运行结果.main(){ int a,b='B';scanf(”%d”,a);printf("%c,”,b++);printf(”%d\n”,b-a);}下列程序的功能是计算字符串的字符个数.#include ”stdio.h"main(){ char str[80];int s,i=0;gets(str);for(;str[i]!=‘\0’;i++)s++;printf(”%4d\n”,s);}12.给定n个实数,输出平均值,并统计在平均值以下(含平均值)的实数个数. main(){float x[]={23。

程序改错

程序改错

【程序改错】
功能:求1到20的阶乘的和。
答案:
1). t=1; 或 t=1.0;
2). t=t*j; 或 t*=j; 或 t=j*t;
3). s=s+t; 或 s+=t; 或 s=t+s;
4). printf("jiecheng=%f\n",s);
一半;再落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
答案:
1). float sn=100.0,hn=sn/2;
2). for(n=2;n<=10;n++) 或 for(n=2;n<11;n++)
3). hn=hn/2;
3). if (i!=k&&i!=j&&j!=k)
【程序改错】
功能:某个公司采用公用电话传递数据,数据是四位的整数,在
传递过程中是加密的,加密规则如下:每位数字都加上5,
然后除以10的余数代替该位数字。再将新生成数据的第一
位和第四位交换,第二位和第三位交换。
x*x+x x<0且x≠-3
f(x)= x*x+5x 0≤x<10且x≠2及x≠3
x*x+x-1 其它
答案:
1). float y;
2). if (x<0 && x!=-3.0)
A[1]=1, A[2]=1/(1 + A[1]), A[3]=1/(1 + A[2]), …,
A[n]=1/(1 + A[n-1])
例如:若 n=10,则应输出:a10=0.617977。

C语言程序改错题汇总.doc

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语言的过程中,练习题库中的改错题是提高编程技能的有效方式。

以下是一些常见的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. 题目:编写一个程序,实现字符串的反转。

程序改错40.

程序改错40.

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

------------------------------------------------------*/题目1:以下程序的功能是求如下表达式:1 1 1S = 1 + —— + ——— + ...... + ———————1+2 1+2+3 1+2+3+......+n#include <stdio.h>main(){int n;float fun();printf("Please input a number:");/**********FOUND**********/print("%d",n) ;printf("%10.6f\n",fun(n));}/**********FOUND**********/fun(int n){int i,j,t;float s;s=0;/**********FOUND**********/while(i=1;i<=n;i++);{t=0;for(j=1;j<=i;j++)t=t+j;/**********FOUND**********/=s+1/t;}return s;}题目2:函数fun的功能是:计算正整数num的各位上的数字之积。

例如,输入252,则输出应该是20。

请改正程序中的错误,使它能得出正确的结果。

long fun (long num){/**********FOUND**********/long k;do{k*=num%10;/**********FOUND**********/num\=10;}while (num);return k;}main(){long n;printf("\nPlease enter a number:");/**********FOUND**********/scanf("%ld", n);/**********FOUND**********/printf("\n%ld\n",fun(long n));}题目3:用"冒泡法"对输入的十个字符排序后按从小到大的次序输出.#define N 10main( ){int i;char str[N];/***********FOUND***********/scanf("%s",&str);/***********FOUND***********/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)||(str[i]!='\0');i++)/***********FOUND***********/if(str[i]<str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}题目4:函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。

程序改错题

程序改错题

程序改错题第一篇:程序改错题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题【程序改错】功能:先将在字符串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个随机整数从小到大排序。

程序改错示例

程序改错示例

程序改错示例(总8页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--程序改错:在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

练习1:下列程序是将“China”编成密码,规律是:如是大写字母,用原字母后面第4个字母代替原字母,例字母“A”后面第4个字母是“E”,用“E”代替“A”;小写字母用原字母后面第2个字母代替原字母,例如字母“a”后面第2个字母是“c”,用“c”代替“a”。

因此,“China”密码为“Gjkpc”。

SET COLLATE TO "MACHINE"LOCAL mSting,cString,chmString=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)ELSEmString=mString+CHR(ASC(ch)+4)ENDIFENDFORWAIT 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 renPARA a,b,n ***PARA n,a,bDIME x(n)x = 0FOR i = 1 TO nx(i) = INT((b-a)*RAND() + a)ENDFORFOR j = 1 TO n-1FOR k = j+1 TO nIF x(k) > x(j)t = x(j)x(k) = x(j) ***x(j) = x(k)x(k) = tENDIFENDFORENDFORFOR i = 1 TO nx(i)ENDFORENDPROC练习3:下列程序用来产生10个30~50之间的随机整数,并将它以从大到小的顺序存储在数组X中。

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)

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

程序改错与填空全部试题

程序改错与填空全部试题

程序改错、程序填空程序填空:第1题:题目:下面是计算1+1+2+2+…n+n之和的平方根的程序。

SET TALK OFFINPUT TO N*************SPACE******* 【?】FOR I=1 TO N*************SPACE*******S=【?】ENDFOR*************SPACE*******?“结果是”,【?】RETURN答案:(1)S=0 (2)s+2*I (3)SQRT(S)第2题:题目:以下程序通过键盘输入4个数字,找出其中最小的数。

SET TALK OFF*************SPACE******* 【?】INPUT “请输入第一个数字”TO XDO WHILE I<=3M=XINPUT “请输入数字”TO M *************SPACE********* ****IF 【?】M=XENDIF*************SPACE******* 【?】ENDDO?“最小的数是”,MSET TALK ON答案:(1)I=1(2)X<M(3)I=I+1 第3题:题目:以下程序的功能:t=20+21+22+ (2)SET TALK OFF*************SPACE******* 【?】*************SPACE******* 【?】TO NFOR I=0 TO N*************SPACE*******T=T+【?】ENDFOR?“T的值是:”,TSET TALK ONRETURN答案:(1)T=0(2)INPU T(3)2**I第4题:题目:复制表XSDA.DBF,生成新表XS.DBF,在新表中查找所有男同学的记录,并将男同学的记录逻辑删除。

SET TALK OFFUSE XSDA*************SPACE******* 【?】USE XSLOCA TE FOR 性别=“男”DO WHILE FOUND()*************SPACE******* 【?】*************SPACE******* 【?】ENDDOUSESET TALK ON答案:(1)COPY TO XS(2)DELETE(3)CONTINUE第5套:题目:表RSDA.D BF结构为:姓名(C,6);性别(C,2),年龄(N,2),出生日期(D,8)。

程序改错(删减版)

程序改错(删减版)

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语言期末考试练习题程序改错(带详解答案)
辑地址下标。因此输出的时候只能从 a[1]开始输出,无法输出 a[0].因此应将 j 赋初值 0, 相应的循环条件改为 j<5 或者 j<=4 用于控制循环执行 5 次
scanf(“%d”,a); //若 scanf 语句有错误,常见考点有两个:(1)格式声明符号要 与后面欲赋值的变量的类型一致,此题%d 与 a 的类型 int 一致(详见 p69-78);(2)变量 的前面要有地址符号&
{ sum=sum*i; // 若不为 sum 赋初值,则此处无法计算 sum*i。 i++;
} printf("sum=%d",sum); //若 printf 语句有错误,常见考点有 1 个:格式声明符号 要与后面欲输出的变量的类型一致,此题%d 与 sum 的类型 long int 不一致,应改为%ld (详见 p69-78);
第三处改为: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); // 调用带有返回值的函数,应将函数的返回值保存在变量里
略 { if(n%3=0) // = 是赋值符号,用于将右边的值赋给左边的变量;== 是
关系符号,用来判断两个值是否相等 。改错中 if 后面表达式中的赋值符号是常见的 考点。

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

C语言程序改错练习

C语言程序改错练习
printf("\40: The a & b(decimal) is %d \n",&b);
/**********FOUND**********/
b|=7
printf("\40: The a & b(decimal) is %d \n",b);
}
答案:
=======(答案1)=======
int a,b;
main()
{
int a,b;
double x;
/***********FOUND***********/
scanf("%d,%d",a,b);
/***********FOUND***********/
x=2ab/(a+b)(a+b);
/***********FOUND***********/
printf("x=%d\n",x);
for(i=1;i<=5;i++)
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
/**********FOUND**********/
if (i!=k||i!=j||j!=k)
printf("%d,%d,%d\n",i,j,k);
}
}
答案:
=======(答案1)=======
------------------------------------------------------*/
#include<stdio.h>
void main()
{
/**********FOUND**********/
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序改错题(注意:每小题只有1行有错误,答题时请指出错误位置并给出改正结果)1.输出计算结果。

main(){ int a=b=10;a+=b+5;b*=a+=10;printf("%d%d\n",a,b);}2.输出计算结果。

#include <stdio.h>main(){ float x,y;scanf("%f",x);y=x*56/97;printf("%f\n",y);}3.输出计算结果。

main(){ int x=2,y=3;z=(x++,y++);printf("%d",z);}4.输出运行结果。

main(){ float a,b,c,v;a=2.0;b=3.0;c=4.0;v=a*b*c;printf("%f\n" ,v)}5.输出运行结果。

#include “stdio.h”main(){float r,s;r=5.0;s=3.14159*r*r;printf("%d\n",s);}输出程序运行结果。

#include <stdio.h>main(){ char ch;scanf("%c",ch);printf("%d\n",ch);}7.输入一整数判断是否能被13整除。

main(){ int i;scanf(“%d”,i);if(i%13==0) printf("yes"); else printf("no");}8.输出程序运行结果。

main(){ int a,b;float x,y,z;scanf("%f%f%f",&x,&y,&z); a=b=x+y+z;c=a+b;printf("%d%d%d",a,b,c);}9.输出程序运行结果。

#include <stdio.h>main(){ float x,y;scanf("%f",&x);y=2x+10;printf("%f\n",y);}10.输出程序运行结果。

main(){ int a,b='B';scanf("%d",a);printf("%c,",b++);printf("%d\n",b-a);}下列程序的功能是计算字符串的字符个数。

#include "stdio.h"main(){ char str[80];int s,i=0;gets(str);for(;str[i]!=‘\0’;i++)s++;printf("%4d\n",s);}12.给定n个实数,输出平均值,并统计在平均值以下(含平均值)的实数个数. main(){float x[]={23.5,45.67,12.1,6.4,58.9,98.4},sum=0,ave;int n=6,j,c=0;for(j=0;j<n;j++)sum+=x[j];ave=sum/n;printf("ave=%f\n",ave);for(j=0;j<n;j++)if(x[j]>=ave) c++;printf("%d\n",c);}13.下列程序的功能是计算3×3矩阵的主对角线元素之和。

main(){int i,a[3][3]={1,2,3,4,5,6,7,8,9},sum=0;for(i=0;i<=3;i++)sum=a[i][i];printf("sum=%d\n",sum);}14.下列程序的功能是复制字符串a 到b中。

main(){char a[20]="abcde",b[20];char *str1=a,*str2;str2=b;while(*str2++==*str1++);printf("%s",b);}15.找出大于m的最小素数{int i,m,k;scanf("%d",&m);for(i=m+1;;i++){for(k=2;k<i;k++)if(i%k==0)break;if(k<=i){printf("%d\n",i);break;}}}16.从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的元素之和sum。

#include "stdio.h"main(){ int a[3][3],sum=0;int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][j];printf("sum=%d\n",sum);}17.下列程序的功能是统计字符串中空格数。

#include "stdio.h"main(){ int num;char a[81],*str=a,ch;gets(a);while((ch=*str++)!=’\0’)if(ch==’ ’) num++;printf("num=%d\n",num);}18.下列程序的功能是输入一个字符串,然后再输出。

main(){ char a[20];int i=0;scanf("%s",&a);while(a[i]) printf("%c",a[i++]);}实现两个字符串的连接void scat (char s1[],char s2[]){int i=0,j=0;while(s1[i]!='\0') i++;while(s2[j]!='\0'){ s1[i]=s2[j];i++;j++;}s2[i]='\0';}20.有N×N矩阵A,进行a[i][j]+a[j][i]的操作后,存放在矩阵B中,并输出B矩阵。

#define N 3#include<stdio.h>main(){ int a[N][N]={{1,2,3},{4,5,6},{7,8,9}},b[N][N];int i,j;for(i=0;i<N;i++)for(j=0;j<N;j++)b[i][j]=a[i][j]+a[j][i];for(i=0;i<N;i++){ for(j=0;j<N;j++)printf("%4d",b[j][i]);printf("\n");}}21.函数的功能是返回两个数中的较小的值。

double min(double x,double y){ return(x>y ? x:y);}main(){ double p,q;scanf("%lf%lf",&p,&q);printf("%lf\n",min(p,q));}22.函数str_space()的功能是统计字符串中数字的个数。

#include <stdio.h>str_space(char *str,int *num){ *num=0;while(*str!='\0'){if(*str<='0'&&*str>='9')(*num)++;str++;}}23.函数str_space()的功能是统计数组中大于90小于100的数字的个数。

str_space(int *str,int *num){ *num=0;while(*str!='\0'){if(*str<=90&&*str>=100)(*num)++;str++;}}main(){int a[100]={78,98,57,75,68,41,91,90,45},*s=a;int k=0,*p=&k;str_space(s,p);printf("%d\n",*p);}24.用指针法实现两个整数的交换。

void fun (int *a, int *b){int t;t=*a;*a=*b;*b=t;}main(){int a,b;printf("enter a,b:");scanf("%d%d",&a,&b);fun(a,b);printf("a=%d b=%d\n",a,b);}25.把两个数按由大到小的顺序输出来。

swap( int *p1,int *p2){int p;p=*p1;*p1=*p2;*p2=p;}main( ){ int a,b, *p1,*p2;printf("input a,b:");scanf("%d%d",&a,&b);p1=&a,p2=&b;if(a<b)swap(a,b);printf("a=%d,b=%d\n",a,b);printf("max=%d,min=%d\n",*p1,*p2);}26.在一个一维整型数组中找出其中最大的数及其下标。

#define N 10int fun(int *a,int *b,int n){ int *c,max=*a;for(c=a+1;c<a+n;c++)if(*c<max){ max=*c;*b=c-a;}return max;}27.函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同的字符的ASCII码差值,即当s>t时返回正值,当s<t时返回负值。

my_cmp(char *s, char *t){ while(*s==*t){if(*s=’\0’)return 0;s++;t++;}return(*s-*t);}28.函数fun的功能是计算1+1/2+1/3+…+1/m。

double fun(int m){ double t=1.0;int i;for(i=2;i<=m;i++)t+=1/i;return t;}main(){ int m;scanf("%d",&m);printf("%lf",fun(m));}29.将数组逆序输出。

相关文档
最新文档