C语言程序调试题.docx
- 文档编号:10151722
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:30
- 大小:22.55KB
C语言程序调试题.docx
《C语言程序调试题.docx》由会员分享,可在线阅读,更多相关《C语言程序调试题.docx(30页珍藏版)》请在冰豆网上搜索。
C语言程序调试题
程序调试题
1. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/*****N*****/”的下一行中有错误,请改正(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5
7、11)。
#include
voidmain()
{intn,i;scanf("%d",&n);
/******1******/
i=1;
while(n>1)
if(n%i==0){printf("%d\t",i);n/=i;}
else
/********2*******/
n--;
}
2. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
输入的一个小写字母,将字母循环后移5个位置后输出,如‘a’变成‘f’,‘w’变成‘b’。
#include
voidmain()
{charc;c=getchar();
if(______1______)c=c+5;
elseif(c>='v'&&c<='z')______2______
putchar(c);
}
3. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
调用函数f用以求1元2次方程x*x+5*x-2=0的实根。
#include
#include
intf(floata,floatb,floatc,float*x1,float*x2)
{if(b*b-4*a*c<0)return1;
*x1=(-b+sqrt(b*b-4*a*c))/2/a;
*x2=(-b-sqrt(b*b-4*a*c))/2/a;
______1______
}
voidmain()
{floatu1,u2;floata=1,b=5,c=-2;
if(________2_________)printf("实数范围内无解\n");
elseprintf("%.2f%.2f\n",u1,u2);
}
4. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x,当x=1.7时的值。
#include
floatf(float,float*,int);
voidmain()
{floatb[5]={1.1,2.2,3.3,4.4,5.5};
printf("%f\n",f(1.7,b,5));
}
floatf(_______1________)
{floaty=a[0],t=1;inti;
for(i=1;i _____2_____ } 5. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/*****N*****/”的下一行中有错误,请改正(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 运行时输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。 #include #include voidmain() { intn,s=0;scanf("%d",&n);n=fabs(n); /********1*******/ while(n>1){ s=s+n%10; /********2******/ n=n%10; } printf("%d\n",s); } 6. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/*****N*****/”的下一行中有错误,请改正(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 分别统计字符串中所有英文字母中的各元音字母个数。 #include #include voidmain() { chara[80];intn[5]={0},i;gets(a); for(i=0;a[i]! ='\0';i++) /*****1*****/ switch(toupper(a[i])) { case'a': n[0]++;break; case'e': n[1]++;break; case'i': n[2]++;break; case'o': n[3]++;break; /*****2*****/ case'U': n[4]++; } for(i=0;i<5;i++)printf("%d\n",n[i]); } 7. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。 #include #include longf(longn) { longm,y=0;m=fabs(n); while(m! =0){ y=y*10+m%10; ____1____ } if(n>=0)returny; else_____2_____ } voidmain(){printf("%ld\t",f(12345));printf("%ld\n",f(-34567));} 8. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 输入整数n(n>0),求m使得2的m次方小于或等于n、2的m+1次方大于或等于n。 #include voidmain() { intm=0,t=1,n; while(_____1________); while(! (t<=n&&t*2>=n)){ _____2_____ m++; } printf("%d\n",m); } 9. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/*****N*****/”的下一行中有错误,请改正(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 运行时若输入a、n分别为3、6,则输出下列表达式的值: 3+33+333+3333+33333+333333 #include voidmain() { inti,a,n;longt=0; /*********1*******/ s=0; scanf("%d%d",&a,&n); for(i=1;i<=n;i++){ /*******2******/ t=t*10+i; s=s+t; } s=s*a; printf("%ld\n",s); } 10. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为: 4567123 #include voidf(int*a,intn,intk) { inti,j,t; for(i=0;i ___1___; for(_______2________)a[j-1]=a[j]; a[n-1]=t; } } voidmain() { inti,x[7]={1,2,3,4,5,6,7}; f(x,7,3); for(i=0;i<7;i++)printf("%5d",x[i]); printf("\n"); } 11. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 数列的第1、2项均为1,此后各项值均为该项前二项之和。 计算数列第30项的值。 #include _______1______ voidmain(){printf("%ld\n",f(30));} longf(intn) { if(______2______)return1; elsereturnf(n-1)+f(n-2); } 12. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 输入m、n(要求输入数均大于0),输出它们的最大公约数。 #include voidmain() { intm,n,k; while(scanf("%d%d",&m,&n),_______1______); for(____2____;n%k! =0||m%k! =0;k--); printf("%d\n",k); } 13. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 输出6~1000之间的完数(1个数的因子和等于其自身的数: 6=1+2+3、28=1+2+4+7+14,则6、28都是完数)。 #include voidmain() { inti,j,s; for(i=6;i<=1000;i++){ _____1_____ for(j=2;____2_____;j++)if(i%j==0)s+=j; if(s==i)printf("%d\n",s); } } 14. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156则输出5)。 #include voidmain() { intn,k=0;scanf("%d",&n); while(_____1_____){ k++; _____2_____; } printf("%d\n",k); } 15. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/*****N*****/”的下一行中有错误,请改正(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 输入m、n(要求输入数均大于0,且m>=n),输出它们的最小公倍数。 #include voidmain() { intm,n,k; /********1*********/ while(scanf("%d%d",&m,&n),m<0&&n<0); for(k=m;k%n! =0;) /********2********/ k=k+n; printf("%d\n",k); } 16. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 调用函数f,将字符串中的所有字符逆序存放,然后输出。 例如,输入字符串为"123456",则程序的输出结果为"654321"。 #include #include voidmain(){chars[60],*f(char*);gets(s);printf("%s\n",f(s));} ___1__f(char*x) { chart;inti,n; _______2______ for(i=0;i returnx; } 17. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/*****N*****/”的下一行中有错误,请改正(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。 #include #include #include voidmain() { intn,i; /*****1*****/ charstr; scanf("%d\n",&n);str=(char*)malloc(n);gets(str); /*****2*****/ for(i=1;i if(str[i]>='a'&&str[i]<='z')str[i]=str[i]-('a'-'A'); puts(str); } 18. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 调用函数f,求a数组中最大值与b数组中最小值之差。 #include enumFLAG{positive=1,negative=-1}; floatf(float*x,intn,enumFLAGflag) { floaty;inti; ____1____ for(i=1;i returny; } voidmain() { floata[6]={3,5,9,4,2.5,1},b[5]={3,-2,6,9,1}; printf("%.2f\n",f(a,6,positive)-____2_____); } 19. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 对x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。 #include #include #definef(x)x*x-5*x+sin(x) voidmain() { intx;floatmax; ______1______ for(x=2;x<=10;x++)______2______ printf("%f\n",max); } 20. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/*****N*****/”的下一行中有错误,请改正(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。 #include #include #include voidmain() { inti,n; /*****1*****/ structaxy{floatx,y;}a; scanf("%d",&n); a=(float*)malloc(n*2*sizeof(float)); for(i=0;i /*****2*****/ scanf("%f%f",a[i].x,a[i].y); for(i=0;i if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5) printf("%f,%f\n",a[i].x,a[i].y); } 21. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/*****N*****/”的下一行中有错误,请改正(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 输入1个字符串,按字母出现次序输出其中所出现过的大写英文字母。 如运行时输入字符串"FONTNAMEandFILENAME",应输出"FONTAMEIL"。 #include voidmain() { charx[80],y[26];inti,j,ny=0;gets(x); for(i=0;x[i]! ='\0';i++) if(x[i]>='A'&&x[i]<='Z'){ for(j=0;j /*****1*****/ if(y[i]==x[j])continue; if(j==ny){y[ny]=x[i];ny++;} } /*****2*****/ for(i=0;i<26;i++)printf("%c",y[i]); printf("\n"); } 22. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。 #include #include voidmain() { intn,s=0;scanf("%d",&n); ______1______ while(n! =0){ ______2______ n=n/10; } printf("%d\n",s); } 23. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/*****N*****/”的下一行中有错误,请改正(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 运行时输入10个数,然后分别输出其中的最大值、最小值。 #include voidmain() { floatx,max,min;inti; /********1*******/ for(i=0;i<=10;i++){ scanf("%f",&x); /*******2********/ if(i=1){max=x;min=x;} if(x>max)max=x; if(x } printf("%f,%f\n",max,min); } 24. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/*****N*****/”的下一行中有错误,请改正(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 输入x和正数eps,计算多项式1-x+x*x/2! -x*x*x/3! +...的和直到末项的绝对值小于eps为止。 #include #include voidmain() { floatx,eps,s=1,t=1,i=1; scanf("%f%f",&x,&eps); do{ /*****1*****/ t=-t*x/++i; s+=t; /*****2*****/ }while(fabs(t)>=eps) printf("%f\n",s); } 25. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 调用函数f,求二维数组a中全体元素之和。 #include floatf(_______1_______) { floaty=0;inti,j; for(i=0;i for(j=0;j returny; } voidmain() { floata[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3]; inti; for(i=0;i<3;i++)b[i]=___2___; printf("%.2f\n",f(b,3,4)); } 26. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 输入三个整数,按由小到大的顺序输出这三个数。 #include voidswap(______1______) {/*交换两个数的位置*/ inttemp; temp=*pa;*pa=*pb;*pb=temp; } voidmain() { inta,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b)swap(&a,&b); if(b>c)swap(&b,&c); if(______2______)swap(&a,&b); printf("%d,%d,%d",a,b,c); } 27. 在考生目录的Paper子目录下,有Modify
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 调试