c语言程序调试.doc
文本预览下载声明
程序调试题
文件中“/***** N ***** /”的下一行中有错误,请改正…文件中____ N ____是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
1. 该程序功能:运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5、7、11)。
#include stdio.h
void main()
{
int n,i; scanf(%d,n);
/****** 1 ******/
i=1;
while(n1)
if(n%i==0) { printf(%d\t,i); n/=i; }
else
/******** 2 *******/
n--;
}
2. 该程序功能:输入的一个小写字母,将字母循环后移5个位置后输出,如‘a’变成‘f’,‘w’变成‘b’。
#include stdio.h
void main()
{
char c; c=getchar();
if(______1______) c=c+5;
else if (c=v c=z) ______2______
putchar(c);
}
3. 该程序功能:调用函数f用以求1元2次方程 x*x+5*x-2=0 的实根。
#include stdio.h
#include math.h
int f(float a,float b,float c,float *x1,float *x2)
{
if(b*b-4*a*c0) return 1;
*x1=(-b+sqrt(b*b-4*a*c))/2/a;
*x2=(-b-sqrt(b*b-4*a*c))/2/a;
______1______
}
void main()
{
float u1,u2; float a=1,b=5,c=-2;
if( ________2_________ ) printf(实数范围内无解\n);
else printf(%.2f %.2f\n,u1,u2);
}
4. 该程序功能:调用函数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 stdio.h
float f(float,float*,int);
void main()
{
float b[5]={1.1,2.2,3.3,4.4,5.5};
printf(%f\n,f(1.7,b,5));
}
float f( _______1________ )
{
float y=a[0],t=1; int i;
for(i=1;in;i++) { t=t*x; y=y+a[i]*t; }
_____2_____
}
5. 该程序功能:运行时输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。
#include stdio.h
#include math.h
void main()
{
int n,s=0; scanf(%d,n); n=fabs(n);
/******** 1 *******/
while(n1){
s=s+n%10;
/******** 2 ******/
n=n%10;
}
printf(%d\n,s);
}
7. 该程序功能:调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。
#include stdio.h
#include math.h
long f(long n)
{
long m,y=0; m=fabs(n);
while(m!=0){
y=y*10+m%10;
____1____
}
if(n=0) return y;
else _____2_____
}
void main(){ printf(%ld\t,f(12345)); printf(%ld\n,f(-34567)); }
8. 该程序功能:输入整数n(n0),求m使得 2的m次方小于或等于n、2的m+1次方大于或等于n。
#include stdio.h
void main()
{
int m=0,t=1,n;
while( _____ 1 ________);
while(!(t=nt*2=n)){
_____ 2 _____
m++;
}
printf(%d\n,m);
}
9. 该程序功能:运行
显示全部