c语言精品题目
题目:
下列程序的功能是:根据整型形参n,计算如下公式的值。请改错:
A1=1,A2=1/(1+A1),A3=1/(1+A2),…….,An=1/(1+An_1)
例如:若n=10,则输出A10为0.617977。
#include "stdio.h"
int fun(int n) /*$ERROR1$*/
{float a=0; /*$ERROR2$*/
int i;
for(i=2;i<=n;i++)
a=1/(1+a);
return a;
}
main()
{int n;
printf("\nPlease Enter a value of n");
scanf("%d",&n);
printf("A%d=%f\n",n,fun); /*$ERROR3$*/
}
改错题:2
题目:
下面的程序先打印所给的前三个字符串,然后再打印前三个字符串的首字符。请改错:
main()
{
char alpha[5]={"a","bc","def","l","23"},**p; /*$ERROR1$*/
int i;
p=alpha;
for(i=0;i<3;i++,p++)
printf("%s",**p); /*$ERROR2$*/
printf("\t");
p=p-3;
for(i=0;i<3;i++,p++)
printf("%c\t",*p); /*$ERROR3$*/
printf("\n");
}
改错题:3
题目:
以下程序分别在a数组和b数组中放入an+1和bn+1个由小到大的有序数,程序把两个数组中的数按由小到大的顺序归并到c数组中。请改错:
#include
main()
{int a[10]={1,2,5,8,9,10},an=5;
int b[10]={1,3,4,8,12,18},bn=5;
int i,j,k,c[20],max=9999;
a[an]=b[bn]=max; /*$ERROR1$*/
i=j=k=0;
while((a[i]!=max)&&(b[j]!=max)) /*$ERROR2$*/
if(a[i]
else {c[k]=b[k];k++;j++;} /*$ERROR3$*/
for(i=0;i
printf("%4d",c[i]);
printf("\n");
}
改错题:4
题目:
以下程序判断输入的字符串是否“回文”(即顺读和倒读都一样,例如:LEVEL,a1221a)。请改错:
#include
#include
main()
{char s[81];
int i,j,n;
gets(s);
n=strlen(s);
i=0;
j=n; /*$ERROR1$*/
while(s[i]==' ') i++;
while(s[j]==' ') j--;
while(i
{i++;j--;}
if(i>j) printf("No\n"); /*$ERROR3$*/
else printf("Yes\n");
}
改错题:5
题目:
以下程序将输入的数字字符序列转化成一个整数。请改错:
#include
#include
main()
{char c[10];
int i=0,j;
long k=0;
gets(c);
j=strlen(c);
for(;i
if(c[i]>='0'|| c[i]<='9') /*$ERROR1$*/
k=k*10+c[i]; /*$ERROR2$*/
printf("k=%d\n",k); /*$ERROR3$*/
}
改错题:6
题目:
以下程序计算200以内的其平方具有回文性质的正整数的数目。例如
11^2=121,111^2=12321都是满足条件的正整数。请改错:
#include
sqrtest(int x)
{int s,y;
s=x*x;
y=0;
while(s)