data);free(t);改错:fun(" />
文档库 最新最全的文档下载
当前位置:文档库 › 2010年计算机等级考试二级C上机新版题库(31套)

2010年计算机等级考试二级C上机新版题库(31套)


1 .填空: if( std[i].year==year)
k[n++]= std[i];
return n;

改错 IsPrime ( int n )//这里多一个分号
if ( !( n%i ))//这里加一对括号


编程:int max=a[0].s;
int i;
for(i=0;i{
if(a[i].s>max)
{
*s=a[i];
}
}



2 ..填空:t=t->next;
printf(" %d ",t->data);
free(t);

改错:fun (char* a)//添加一个星号
printf("%c",*a) ;//添加一个逗号


程序:char *fun ( char *s, char *t)
{
int i=0,k=0;
while(s[i]!='\0')
{
i++;
}
while(t[k]!='\0')
{
k++;
}
if(i>=k)
{
return s;
}
else
{
return t;
}
}




3 .填空:struct student* fun(struct student *a)
for (i=0; i<3; i++) a->score[i] += 1;
return a ;

改错:char* fun(char (*sq)[M])//添加返回值char*
return sp;//这里返回sp 不是 sq

程序:void fun(int a, int b, long *c)
{
int m,n,p,q;
m=a/10;
n=a%10;
p=b/10;
q=b%10;
*c=q*1000+m*100+p*10+n;
}




4 .填空题:a[i]= 0;
i =m%10;
m =m/10;



改错: b[i] = a[0][0];
for (j=1+i; jif ( b[i] > a[i][j] )

程序:double fun(double a[ ] , int n)
{
int i,max,min,sum=0;
max=a[0];
min=a[0];
for(i=1;i{
if(a[i]if(a[i]>max)max=a[i];
}
for(i=0;isum+=a[i];
sum=(sum-max-min)/(n-2);
return sum;

}


5 .填空: d=d*10+*s-'0';
s++;
return d;

改错: *a=*a+1 ;
*b=*b+1;


程序:float fun ( float h )
{
double s=0;
s=(int)((h*100)+0.5)/100.0;

return s;
}


6 .填空:a[i]=0;
t=1;
i=t+i;


改错:b[i] = 0;
b[a[i] - 'a']++;
if (b[max]< b[i])


程序:long fun( char *s )
{
int i,sum=0;
for(i=0;isum=sum*10+(s[i]-'0';)
return sum;

}

7 【填空】下列给定程序中函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串,并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,函数值为非0。
【答案】【1】N 【2】substr 【3】0
【改错】下列给定程序中函数fun的功能是:求三个数的最小公倍数。例如,若给主函数中的变量x1、x2、x3分别输入15 11 2,则输出结果应当是330。


8. 【填空】下列给定程序中函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中后面的字符删除,只保留前面的k个字符的。ss所指字符串数组中共有N个字符串,且串长小于M。
【答案】【1】[M]【2】N【3】′\0′
【改错】下列给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回

。例如,当给指定精度的变量eps输入0.0005时,应输出Pi=3.140578。π/2=1+1/3+1/3×2/5+1/3×2/5×3/7+1/3×2/5×3/7×4/9+……
【答案】【1】t=1.0;【2】return(s*2);
【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。
例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。n的值在主函数中输入。
【答案】
void fun(char *a,int n )
{
int i=0, k=0;
char *p, *t;
p=t=a; 
while(*t==′*′)
{k++; t++;}
if(k>n) 
{ while(*p)
 {a[i]=*(p+k-n);
 i++;
 p++;
 }
 a[i]=′\0′;
}
}


8. 【填空】函数fun的功能是进行字母转换。若形参ch中的是小写英文字母,则转换成对应的大写英文字母:若ch中式大写英文字母,则转换成对应的小写英文字母;若是其他字符则保持不变;并转换后的结果作为函数值返回。
【答案】【1】&&【2】’A’【3】ch
【改错】下列给定程序中,函数fun的功能是:给一维数组a输入任意4个整数,并按如下的规律输出。例如,输入1、2、3、4,程序运行后输出以下方阵:
4 1 2 3
3 4 1 2
2 3 4 1
1 2 3 4
【答案】【1】void fun(int *a)
【2】a[j]=a[j-1];
【编程】请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。
例如,若主函数从键盘给n输入的值为856,则输出为sum=763。
【答案】
int fun(int n)
{
int s=0,i;
for(i=2;i<=n-1;i++)
if(n%i==0)
s+=i;
return s;
}
9. 【填空】函数fun的功能是:计算。。。的前n项和。若x=2.5,n=15是,函数值为1.917914
【答案】【1】1.0 【2】-1 【3】t
【改错】下列给定程序中,函数fun的功能是:从3个红球、5个白球、6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。
【答案】【1】for(i=1;i<=3;i++) 【2】if((k>=0&&k<=6)
【编程】请编写函数fun,其功能是计算并输出如下多项式的值:
Sn=l+1/1!+1/2!+1/3!+1/4!+…+1/n!
例如,若主函数从键盘给n输入15,则输出为S=2.718282。
【答案】
double fun(int n)
{
double t,sn=1.0;
int i,j;
for(i=1;i<=n;i++)
{
t=1.0;
for(j=1;j<=i;j++)
t*=j;
sn+=1.0/t


}
return sn;
}

10. 【填空】给定程序中,函数fun的功能是:计算形参x所指数组中的N个数的平均值(规定所有数均为正数),作为函数值返回,并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数。46.30.32.40.6.17.45.15.48.26.其平均值为30.500000
主函数中输出:46,32,40,45,48
【答案】【1】0.0【2】x[i]/N【3】j++
【改错】下列给定程序中,函数fun的功能是:根据整型参数m,计算如下公式的值。
y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)例如,若m=2000,则应输出0.000160。
【答案】【1】double fun(int m)
【2】for(i=100;i<=m;i+=100)
【编程】已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。
【答案】
fun(STU a[], STU *s)
{
int i;
*s=a[0];
for(i=0;iif(s->s>a[i].s)
*s=a[i];
}


11. 【填空】下列给定程序中函数fun的功能是:在带头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。
【答案】【1】NULL 【2】n
【3】head,ch

【改错】下列给定程序中函数fun的功能是:删除指针p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。
输入字符串时用’#’结束输入。
【答案】
【1】for(i=0,t=0;p[i];i++)
【2】c[t]= ′\0′;

【编程】编写函数fun,其功能是:将ss所指字符串中所有奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入"abc4EFg",则应输出"aBc4EFg"。
【答案】
void fun(char *ss)
{
int i;
for(i=0;ss[i]!=′\0′;i++)
if(i%2==1&&ss[i]>=′a′&&ss[i]<=′z′)
ss[i]=ss[i]-32;
}


12. 【填空】甲乙丙丁4人同时开始放鞭炮,甲每隔t1s放一次,乙每隔t2s放一次………第一声响是在第0秒。
例如,t1=7,t2=5,t3=6,t4=4,n=10,则总共可听到28次鞭炮声。
【答案】【1】i【2】t++【3】count
【改错】下列给定程序中函数fun的功能是根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3,若是等腰三角形,则返回2,若能构成三角形则返回1,若不能,则返回0。
【答案】
【1】return 3;【2】return 1;
【编程】请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。
【答案】
double fun(int n)
{
int m,k,i;
double s=0.0;
for(m=3

;m<=n;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1)
s+=sqrt(m);
}
return s;
}

13. 【填空】给定程序中,函数fun的功能是:找出N*N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。
【答案】【1】a[i]【2】<【3】x,y
【改错】函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。
【答案】
【1】void fun(int *x, int *y) 【2】t=*x; *x=*y; *y=t;
【编程】编写函数int fun(int lim, int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。
【答案】
int fun(int lim, int aa[MAX])
{
int i,j,k=0;
for(i=2;i<=lim;i++)
{ for(j=2;jif(i%j==0) break;
if(j>=i)
aa[k++]=i;
}
return k; 
}

14. 【填空】给定程序中,函数fun的功能是建立一个N*N得矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第二层元素的值全部为2;第三层元素的值全部为3,。。。以此类推。例如,若N=5.生成的矩阵为:
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
【答案】【1】[N]【2】i【3】i+1
【改错】下列给定程序中,函数fun的功能是:将十进制正整数m转换成k(2≤k≤9)进制数,并按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
【答案】【1】void fun(int m, int k)
【2】aa[i]=m%k;
【3】printf("%d",aa[i-1]);
【编程】编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。
【答案】
char* fun(char (*a)[81], int num, char *max)
{
int i=0;
max=a[0];
for(i=0;iif(strlen(max)max=a[i];
return max;

15. 填空:void fun(char (*ss)[], int k)
while(iss[i][k]='\0'; i++; }

改错: t=1.0;
return(2*s);


程序:void fun( char *a, int n )
{
/* 以下代码仅供参考 */
int i=0,j,k=0;
while(a[k]=='*') k++; /* k为统计*字符个数 */
if(k>n)
{
//i=n;j=k;
/* 以下完成将下标为k至串尾的字符前移k-n个位置 */
for(i=0;ia[k]=a[k+1];
}
}

16. 【填空】程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。
例如,a所指变量中的学号、姓名和三门课的成绩依次是:100

01、"ZhangSan"、95、80、88,则修改后输出b中的数据应为:10002、"LiSi"、95、80、88。
【答案】【1】a 【2】https://www.wendangku.net/doc/ce2688656.html, 
【3】score[i]
【改错】下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。
【答案】【1】s[j++]=s[i];
【2】s[j]= ′\0′;
【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串中的前导*号全部移到字符串的尾部。例如,字符串中的内容为:*******A*BC*DEF*G****,移动后,字符串中的内容应当是:A*BC*DEF*G***********。在编写函数时,不得使用C语言提供的字符串函数。
【答案】
void fun(char *a)
{
int i=0,n=0;
char *p;
p=a;
while (*p==′*′)
{
n++;p++;
}
while(*p)
{
a[i]=*p;i++;p++;
}
while(n!=0)
{
a[i]=′*′;i++;n--;
}
a[i]=′\0′;
}
17. 【填空】给定程序中,函数fun的功能是:计算x所指数组中n个数的平均值(规定所有书均为整数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的书作为函数值返回,在主函数中输出。例如,有10个正数:46.30.32.40.6.17.45.15.48.26,平均值为30.500000
主函数中输出m=30.0
【答案】【1】*av【2】i【3】x[j]
【改错】下列给定程序中函数fun的功能是:根据整型形参n,计算如下公式的值。
A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=1/(1+A(n-1))
例如,若n=10,则应输出0.617977。
【答案】【1】float fun(int n)
【2】for(i=2;i<=n;i++)
【编程】下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[ ][N],int n),该函数的功能是:使数组右上半三角元素中的值乘以m。例如,若m的值为2,a数组中的值为:
1 9 7
a= 2 3 8
4 5 6
则返回主程序后a数组中的值应为:
2 18 14
2 6 16
4 5 12
【答案】
void fun(int a[][N],int m)
{
int i,j;
for(j=0;j for(i=0;i<=j;i++)
a[i][j]=a[i][j]*m;
}


18. 【填空】程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。
例如,若传给形参a的数据中学号、姓名和三门课的成绩依次是:10001、"ZhangSan"、95、80、88,修改后的数据应为:10002、"LISi"、96、81、89。
【答案】【1】 struct student
【2】a.name 【3】a.score[i]
【改错】假定整数数列中的数不重复,并存放在数组中。下列给定程序中函数fun的功能是:删除数列中值为x的元素。变量n中存放数列中元素的个数。
【答案】【1】if(p==n) return -1; 【2

】a[i]=a[i+1];
【编程】学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是:把分数最低的学生数据放入b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数。
【答案】
int fun(STREC *a,STREC *b)
{
int i,j=0,n=0,min;
min=a[0].s;
for(i=0;i if(a[i].s min=a[i].s;
for(i=0;i if(a[i].s==min)
{
*(b+j)=a[i];j++;n++;
}
return j;
}

19. 【填空】给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
【答案】【1】std[0]【2】 std[i].age【3】https://www.wendangku.net/doc/ce2688656.html,
【改错】下列给定程序中,函数fun的功能是:实现两个整数的交换。例如,给a和b分别输入60和65,输出为:a=65 b=60
【答案】【1】void fun(int *a,int *b) 【2】t=*b;*b=*a;*a=t;
【编程】请编一个函数void fun(int tt[M][N], int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依此放入pp所指的一维数组中。二维数组中的数已在主函数中给出。
【答案】
void fun(int tt[M][N],int pp[N])
{
int i,j,max;
for(j=0;j{
max=tt[0][j];
for(i=0;i if(tt[i][j]>max)
max=tt[i][j];
pp[j]=max;
}
}


20. 【填空】给定函数中,函数fun的功能是:求出形参ss所指字符串组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有m个字符串,切串长小宇N
【答案】【1】k【2】len【3】ss[i][j]
【改错】下列给定程序中,函数fun的功能是:计算整数n的阶乘。
【答案】【1】result*=n--;
【2】return result;
【编程】编写函数fun,该函数的功能是:从字符串中删除指定的字符。同字母的大、小写按不同字符处理。
例如,若程序执行时输入字符串为:turbo c and borland c++
从键盘上输入字符n,则输出为:
turbo c ad borlad c++
如果输入的字符在字符串中不存在,则字符串照原样输出。
【答案】
void fun(char s[], int c)
{
int i=0;
char *p;
p=s;
while(*p)
{
if(*p!=c)
{
s[i]=*p;
i++;
}
}
s[i]='\0';
}

21. 【填空】下列给定程序中函数fun的功能是:将自然数1~10及其平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。
【答案】【1】fp 【2】fclose(fp) 【3】fname
【改错】下列给定程序中fun函数功能是:将n个无序整数从小到大排序。
【答案】【1】for(i=j+1;i

2】p=i;
【编程】编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12时,调用该函数后c=2514。
【答案】
void fun(int a,int b,long *c)
{
*c=a/10+(b/10)*10+(a%10)*100+(b%10)*1000;
}

22. 【填空】函数fun的功能是:统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。
【答案】【1】j=2【2】i【3】j
【改错】数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun的功能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。如当n的值为20时,该数列为3,8,13,18,23,28,…,93,98。符合此条件的累加值应为42,126,366,570,1010。
【答案】【1】int i,j=0,k,sum;
【2】if(sum%4==2)
【3】return j++;
【编程】请编写函数fun,其功能是:计算并输出下列多项式值,
S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
例如,若主函数从键盘给n输入8后,则输出为S= 0.662872。
【答案】
double fun(int n)
{
int i;
double s=0.0;
for(i=1;i<=n;i++)
s=s+(1.0/(2]
return s;
}

23. 【填空】给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)
【答案】【1】N 【2】break 【3】n

【改错】下列给定程序中,函数fun的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之和。
【答案】【1】sum=0;
【2】scanf("%d",&a[i][j]);

【编程】编写程序,实现矩阵(3行、3列)的转置(即行列互换)。
例如,若输入下面的矩阵:
100 200 300
400 500 600
700 800 900
则程序输出:
100 400 700
200 500 800
300 600 900
【答案】
void fun (int array[3][3])
{
int i,j,t;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
{t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}


24. 【填空】给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。请在程序的下划线处填入正确的内容并把下画线删除,使程序得出正确的结果。
【1】std[]【2】PERSON 【3】(std)

【改错】给定程序中MODI1.C中函数fun的功能是:将m(1【答案】【1】 int k,q,i;【2】 pt[i]=str[k][i];

【编程】下

列函数定义了N×N的二位数组,并在主函数中自动赋值。请编写一个函数fun(inta[ ][N]),该函数的功能是:将数组左下半三角元素中的值全部置0。例如a数组值为:
1 9 7
2 3 8
4 5 6
则返回主程序后a数组中的值为:
0 9 7
0 0 8
0 0 0
【答案】
void fun (int a[][N])
{
int i,j;
for(i=0;ifor(j=0;j<=i;j++)
a[i][j]=0;
}


25. 【填空】函数fun的功能是:计算。。。。若x=2.5,函数值为12.182494.
【答案】【1】x 【2】n 【3】t
【改错】下列给定程序中,函数fun的功能是:计算n的5次方的值(规定n的值大于2且小于8),通过形参指针传回主函数,并计算该值的个位、十位、百位上数字之和作为函数值返回。例如,7的5次方是1 6807,其低3位数的和值是15。
【答案】【1】d=1;【2】s=0;
【3】d=d/10;
【编程】请编写函数fun,其功能是:计算并输出给定数组(长度为9)中,每相邻两个元素的平均值的平方根之和。
例如,若给定数组中的9个元素依此为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,则输出应为s=35.951014。
【答案】
double fun(double x[9])
{
double sum=0.0;
int i,j=1;
for(i=0;i<9;i++)
if(j<=8)
{
sum+=sqrt((x[i]+x[i+1])/2.0);
j++;
}
return sum;
}

26. 【填空】下列给定程序中函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。
例如,若s所指字符串为:asd123fgh543df,处理后新字符串为:123543asdfghdf。
【答案】【1】j 【2】k 【3】p
【改错】给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符中的字符和b所指字符中的字符,按排列的顺序交叉合并到c中,过长的剩余字符接在c所指的数组的尾部。例如,a所指内容为“abcdefg”,b所指内容“1234”时,c所指内容应为a4b3c2d1efg,而a所指“1234”,b所指“abcdefg”时,c为“1g2f3e4dcba。”
【答案】【1】while(i【2】if(*a)
【编程】编写函数fun,其功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指字符串中剩余字符形成的新串放在t所指数组中。例如,若s所指字符串中的内容为:"ABCDEFG12345",其中字符C的ASCII码值为奇数,在数组中下标为偶数因此应当删除;而字符1的ASCII码值为奇数,在数组中下标为奇数因此不能删除,其它依此类推。最后t所指的数组中的内容应是:"BDF12345"。
【答案】
void fun(char *s, char t[])
{
int i, j=0;
for(i = 0 ; i < strlen(s) ; i++)
if(!((i % 2) ==0 && (s[i] % 2))) t[j++] = s[i] ;
t[j] = 0 ;
}
27. 【填空】给定程序中,函数fun

的功能是:判定形参a所指的N*N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;若不是,函数返回值为0.“幻方”的判定条件是:矩阵每行每列主对角线及反对角线上元素之和都相等。
例如,一下3*3的矩阵就是一个“幻方”:
4 9 2
3 5 7
8 1 6
【答案】【1】0 【2】|| 【3】1
【改错】下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。
t=1/2-1/3-…-1/m,例如,若输入5,则应输出-0.283333。
【答案】
【1】t-=1.0/i; 【2】return t;
【编程】请编写一个函数,用来删除字符串中的所有空格。
例如,输入asd af aa z67,则输出为asdafaaz67。
【答案】
void fun(char *str)
{
int i=0;
char *p=str;
while(*p)
{
if(*p!='') 
{
str[i]=*p;
i++;
}
p++;
}
str[i]='\0';
}


28. 【填空】给定程序中,函数fun的功能是:计算形参X所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数据的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:47,30,32,40,6,17,45,15,48,16,其平均值为30.500000.
移动后的输出为:30,6,17,15,26,46,32,40,45,48.
【答案】【1】x[i]/N 【2】j++
【3】i++
【改错】下列给定程序中函数fun的功能是:统计字符串中各元音字母(即A、E、I、O、U)的个数。注意:字母不分大小写。例如,输入THIs is a boot,则应输出是1 0 2 2 0。
【答案】
【1】void fun(char *s, int num[5])
【2】num[k]=0;【3】switch(*s)
【编程】请编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。
例如,若二维数组中的值为
1 3 5 7 9
2 9 9 9 4
6 9 9 9 8
1 3 5 7 0
则函数值为61。
【答案】
int fun( int a[M][N])
{
int i,j,sum=0;
for(i=0;ifor(j+0;jif(i++0||i++M-1||j==0||j==N-1)
 sum=sum+a[i][j];
return sum;
}

29. 函数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数,并用外部(全局)变量c1\c2\c3返回主函数。例如,当n=123114350时,结果应该为:c1=3 c2=1 c3=2
【答案】【1】n%10【2】break 【3】break

【改错】下列给定程序中函数fun实现的功能是:统计一个无符号整数中各位数字值为0的个数,通过形参传回主函数,并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为0的位的个数为3,各位上数字值最大的是8。
【答案】【1】if(t==0)

2】*zero=count;

【编程】请编写函数fun,其功能是:计算并输出下列多项式的值。
S=1+1/(1*2)+1/(1*2*3)+…+1/(1*2*3*…*n)
例如,若主函数从键盘给n输入50后,则输出为S=1.718282。
【答案】
double fun(int n)
{{int i;
double s=1.0,k=1.0;
for(i=2;i<=n;i++)
{ k=k*i;
s+=(1/k);
}

30 .填空】函数fun的功能是:计算。。。的前n项和。若x=2.5,函数值为12.182340.
【答案】【1】1.0 【2】1 【3】i

【改错】下列给定程序中,函数fun的功能是:找出100到n(不大于1000)之间三个位上的数字都相等的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。
【答案】【1】k=i;【2】b=k%10;

【编程】请编写函数fun,其功能是:计算并输出给定10个数的方差。
其中:例如,给定的10个数为95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0,则输出为S=11.730729。
【答案】
double fun(double x[10])
{
double x1=0.0,s=0.0;
int i;
for(i=0;i<10;i++)
x1=x1+x[i];
x1=x1/10;
for(i=0;i<10;i++)
s=s+(x[i]-x1)*(x[i]-x1);
return sqrt(s/10);
}

31.【填空】用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置0)…………这样会得到一个序列:2,3,5,7,11,13…….
【答案】【1】a[i]【2】a[i]【3】0
【改错】下列给定函数中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
【答案】【1】y=1;【2】d=a-i;
【编程】请编写函数fun,它的功能是:计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。例如,若主函数从键盘给n输入20后,则输出为s= 0.583333。
注意:n的值要求不大于100。
【答案】
double fun(int n)
{double s=0.0;
if(n%5==0||n%9==0)
s+=1/n;
return s;
}

相关文档
相关文档 最新文档