1、计算机等级考试上机练习系统部分程序调试题答案
1、该程序功能:输入1个字符串,输出其中所出现过的大写英文字母。如运行时输入字符串"FONTNAME and FILENAME",应输出"F O N T A M E I L"。
#include 2、 /***** 1 *****/
if(y[i]==x[j]) continue; if(y[j]==x[i]) break;
if(j==ny) { y[ny]=x[i]; ny++; }
}
/***** 2 *****/
for(i=0;i<26;i++) for(i=0;i 3、x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。
#include 4、 while(fabs(t)>=eps);
printf("%f\n",s);
}
3、该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值: 3+33+333+3333+33333+333333
#include 5、i++) {
/******* 2 ******/
t=t*10+i; t=t*10+1;
s=s+t;
}
s=s*a;
printf("%ld\n",s);
}
4、该程序功能:输出6~1000之间的完数(1个数的因子和等于其自身的数:6=1+2+3、 28=1+2+4+7+14,则6、28都是完数)。
#include 6、 _____1_____ s=1;
for(j=2;____2_____;j++) if(i%j==0) s+=j; j<=i/2
if(s==i) printf("%d\n",s);
}
}
5、 该程序功能:数列的第1、2项均为1,此后各项值均为该项前二项之和。计算数列第30项的值。
#include 7、
void main()
{
printf("%ld\n",f(30));
}
long f(int n)
{
if( ______2______ ) n==1 || n==2
return 1;
else
return f(n-1)+f(n-2);
}
6、该程序功能:输入三个整数,按由小到大的顺序输出这三个数。
#include 8、 int *pa,int *pb
{ /*交换两个数的位置*/
int temp;
temp = *pa;
*pa = *pb;
*pb = temp;
}
void main()
{
int a,b,c,temp;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
swap(&a,&b);
if(b>c)
swap(&b,&c);
if(______2______) a>b
9、 swap(&a,&b);
printf("%d,%d,%d",a,b,c);
}
7、该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。
#include 10、
printf("%d", ______2______ ); bin[j-1]
}
void main()
{
int n;
scanf("%d",&n);
Dec2Bin(n);
}
8、该程序功能:对x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。
#include 11、1______ max=f(1);
for(x=2;x<=10;x++)
______2______ if((f(x))>max) max=f(x) ;
printf("%f\n",max);
}
9、该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。
#include 12、},i; gets(a);
for(i=0; a[i]!='\0'; i++)
/***** 1 *****/
switch(toupper(a[i])) { switch(tolower(a[i]))
case 'a': n[0]++; break;
case 'e': n[1]++; break;
case 'i': n[2]++; break;
case 'o': n[3]++; break;
/***** 2 *****/
13、 case 'U': n[4]++; case 'u': n[4]++;
}
for(i=0;i<5;i++) printf("%d\n",n[i]);
}
10、该程序功能:调用函数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 14、 printf("%f\n",f(1.7,b,5));
}
float f( _______1________ ) float f( float x,float *a,int n )
{ float y=a[0],t=1; int i;
for(i=1;i 15、00010110)输出为1和6。
#include 16、
12、程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。
#include 17、/
for(i=1;i 18、
int i,n;
/***** 1 *****/
struct axy { float x,y; } a; struct axy { float x,y; } *a;
scanf("%d",&n);
a=(float*) malloc(n*2*sizeof(float));
for(i=0;i 19、a[i].y);
for(i=0;i 20、 n=fabs(n);
while(n!=0) {
______ 2 ______ s=s+n%10;
n=n/10;
}
printf("%d\n",s);
}
15、该程序功能:输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156则输出5)。
#include 21、 n
k++;
_____2_____; n=n/10
}
printf("%d\n",k);
}
16、程序功能:运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5、7、11)。
#include 22、 i=2;
while(n>1)
if(n%i==0) {
printf("%d\t",i);
n/=i;
}
else
/******** 2 *******/
n--; i++;
}
17、该程序功能:输入的一个小写字母,将字母循环后移5个位置后输出, 如’a’变成’f’, ‘w’变成’b’。
#include 23、
char c;
c=getchar();
if(______1______) if(c>='a'&&c<='u')
c=c+5;
else
if (c>='v' && c<='z')
______2______ c=c+5-26;
putchar(c);
}
18、该程序功能:调用函数f,从字符串中删除所有的数字字符。
#include






