1.程序填空题
在主函数中从键盘输入若干个数放入数组a中,用0结束输入但不计入数组。下列给定程序中,函数fun的功能是:输出数组元素中小于平均值的元素。
例如,数组中元素的值依次为34、54、675、456、453、121,则程序的运行结果为34、54、121。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <conio.h>
#include <stdio.h>
void fun(___1___,int n)
{
double count=0.0;
double average=0.0;
int i=0;
for(i=0;i<n;i++)
___2___;
average=___3___;
for(i=0;i<n;i++)
if(a[i]<average)
{
  if(i%5==0)
  printf("\n");
  printf("%d,",a[i]);
}
}
main()
{
int a[1000];
int i=0;
printf("\nPlease enter datas(end with 0):");
do
{
  scanf("%d",&a[i]);
}while(a[i++]!=0);
fun(a,i-1);
}
【答案】
  (1) int a[]  (2)count+=a[i]或count=count+a[i]  (3)count/n
2.程序修改题
给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值:
y=1+1/(2*2)+1/(3*3)+1/(4*4)+…+1/(m*m)
例如:若m中的值为5,则应输出1.463611。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include  <stdio.h>
double fun(int m)
{
  double y=1.0;
  int I;
/**********found**********/
  for(i=2;i<m;i++)
/**********found**********/
  y+=1/(i*i);
  return(y);
}
main()
{
  int n=5;
  printf("\nThe result is %lf\n", fun(n));
}
【答案】
(1)将for(i=2;i<m;i++) 改为:
      for(i=2;i<=m;i++)
(2)将y+=1/(i*i); 改为:y +=1.0/(i*i);
3.程序设计题
函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG 123456”,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后,t所指的数组中的内容应是“246”。
注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include  <stdio.h>
#include  <string.h>
void fun(char *s, char t[])
{
}
main()
{
  char s[100],t[100];
  printf("\nPlease enter string S:");
  scanf("%s", s);
  fun(s,t);
  printf("\nThe result is: %s\n",t);
}
【答案】
void fun(char *s,char t[])
{
  int k,n=0;
  for(k=0;k<strlen(s);k++)
  if(k%2==0 && s[k]%2==0)
    t[n++]=s[k];
  t[n]= '\0';
}
1.程序填空题
给定程序中,函数fun的功能是:出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include  <stdio.h>
#define    N    4
void fun(int(*a)[N],int *b)
{
  int I,j;
  for(i=0; i<N; i++)
  {
/**********found**********/
    b[i]=___1___;
    for(j=1;j<N;j++)
/**********found**********/
      if(b[i]___2___a[j][i])
        b[i]= a[j][i];
  }
}
main()
{
  int x[N][N]={{12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3}},y[N],I,j;
  printf("\nThe matrix :\n");
  for(i=0;i<N;i++)
  { 
    for(j=0; j<N; j++)
      printf("%4d",x[i][j]);
    printf("\n");
  }
/**********found**********/
  fun(___3___);
  printf("\nThe result is:");
  for(i=0; i<N; i++)  printf("%3d",y[i]);
  printf("\n");
}
【答案】
(1)a[0][i]  (2) <=或<  (3)x, y
2.程序修改题
给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未到,则函数值为NULL。
例如,当字符串中的内容为“abcdabfabcdx”、t中的内容为“ab”时,输出结果应是abcdx。当字符串中的内容为“abcdabfabcdx”、t中的内容为“abd”时,则程序输出未到信息not be found!。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include  <stdio.h>
#include  <string.h>
char *fun(char *s,char *t)
{
  char *p,*r,*a;
/**********found**********/
  a=Null;
  while(*s)
  {
    p=s;r=t;
    while(*r)
/**********found**********/
    if(r==p)
      {r++;p++;}
    else  break;
    if(*r=='\0')  a=s;
    s++;
  }
  return  a ;
}
main()
c语言二维数组表示方法
{
  char s[100],t[100],*p;
  printf("\nPlease enter string S :");
  scanf("%s",s);
  printf("\nPlease enter substring t :");
  scanf("%s",t);
  p=fun(s,t);
  if(p) printf("\nThe result is :%s\n",p);
  else printf("\nNot found !\n");
}
【答案】
(1)将a=Null; 改为:a=NULL;
(2)将if(r==p) 改为:if(*r==*p)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。