⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 microsoft word 文档.doc

📁 精心分类的南开C语言上机100题
💻 DOC
📖 第 1 页 / 共 3 页
字号:
4:请编写一个函数 fun,统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。 
答案:

void fun(char *tt,int pp[] )
{int i;
for (i=0;i<26;i++)
pp[i]=0;
for(;*tt!='\0';tt++)
{if(*tt>='a'&&<='z')
 pp[*tt-'a']++;
}

7:请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。 
答案:

{  int i,m=s[0];
   *k=0;
   for(i=0;i<t;i++)
   if(m<s[i]) { m=s[i];  *k=i; }
   }
公式与计算
8:编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n) 
答案:

double fun(int n)
{  int i,t=0;
   double p,s=0.0;
   for(i=1;i<=n;i++)
   {  t+=i;
      p=1.0/t;
      s=s+p;
   }
   return s;
}

9:编写一个函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正整数,且要求m>n。 p=m!/n!(m-n)! 
float fun(int m, int n)
{
 float p,t=1.0;
int i;
for (i=1;i<=m;i++)
t=t*i;
p=t;
for(t=1.0,i=1;i<=n;i++)
t=t*i;
p=p/t;
for(t=1.0,i=1;i<=m-n;i++)
t=t*i;
p=p/t;
return p;
}

10:编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。
迭代步骤如下:(1)取x1初值为0.0; (2)x0=x1,把x1的值赋各x0;
(3)x1=cos(x0),求出一个新的x1;
(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
程序将输出root=0.739085。 
答案:

float fun()
{
 float x1=0.0,x0;
do
{
   x0=x1;
   x1=cos(x0);
}
while(fabs(x0-x1)>1e-6);
return x1;
}

26: 第26题 请编写一个函数fun,它的功能是:根据以下公式求x的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):
x/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+…+1×2×3×…×n/3×5×7×(2n+1)
程序运行后,如果输入精度0.0005,则程序输出为3.14…。 
答案:

double fun(double eps)
{
 double s;
float n,t,pi;
t=1;pi=0;n=1.0;s=1.0;
while((fabs(s))>=eps)
{
 pi+=s;
t=n/(2*n+1);
s*=t;
n++;
}
pi=pi*2;
return pi;
}

68: 第68题 请编写函数fun,其功能时:计算并输出下列多项式的值:
sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n! 
答案:

sn=1+1/1!+1/2!+1/3!+1/4!+...+1/n!
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;}

69: 第69题 请编写一个函数fun,它的功能时:求fibonacci数列中大于t的最小的一个数,结果由函数返回。其中fibonacci数列f(n)的定义为:
f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2) 
答案:

int fun(int t)
{ long i=0,j=1,f=0;
  while(f<=t)
  {
     f=i+j;
     i=j;
     j=f;
  }
  return f;
}

 
70: 第70题 编写函数fun,它的功能时:计算并输出下列级数和:
s=1/1*2+1/2*3+…+1/n(n+1) 
答案:

double fun (int n)
{double s=0.0;
int i;
for(i=1;i<=n;i++)
s=s+1.0/(i*(i+1));
return s;}

76: 第76题 请编写函数fun,其功能时:计算并输出当x<0.97时下列多项式的值,直到|sn-s(n-1)|<0.000001为止。
Sn=1+0.5x+0.5(0.5-1)/2!x(2)+…+0.5(0.5-1)(0.5-2)…..(0.5-n+1)/n!x(n) 
答案:

.double fun(double x)
{double s1=1.0,p=1.0,sum=0.0,s0,t=1.0;
int n=1;
do
{s0=s1;
sum+=s0;
t*=n;
p*=(0.5-n+1)*x;
s1=p/t;
n++;}while(fabs(s1-s0)>1e-6);
return sum;}

78: 第78题 请编写函数fun,其功能是:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 
答案:

void fun(char *s,char t[])
{int i,j=0,n=strlen(s);
for(i=0;i<n;i++)
if (s%2!=0)
{t[j]=s;
j++;}
t[j]=‘\0’;}

86: 第86题 请编写函数fun,计算并输出给定10个数的方差。 
答案:

double fun(double x[10])
{int i,j;
double s=0.0,s1=0.0;
for(i=0;i<10;i++)
s1+=x;
s1/=10;
for(j=0;j<10;j++)
s+=(x[j]-s1)*(x[j]-s1);
s/=10;
s=pow(s,0.5);
return s;}

90: 第90题 请编写函数fun,其功能是:计算并输出下列多项式值:sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n). 
答案:

sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n).
double fun(int n)
{int i;
double sn=0.0;
for(i=1;i<=n;i++)
sn+=(1.0/(2*i-1)-1.0/(2*i));
return sn;}


92: 第92题 请编写函数fun,它的功能是计算:s=(ln(1)+ln(2)+ln(3)+…+ln(m))(0.5),s作为函数值返回。 
答案:

double fun(int m)
{  double s=0.0;
   int i;
   for(i=1;i<=m;i++)
   s+=log(i);
   s=pow(s,0.5);
   return s;
}


 
93: 第93题 请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。
S=1+x+x(2)/2!+x(3)/3!+…x(n)/n! 
答案:

double fun(double x,int n)
{ double s=1.0,t=1.0;
  int i,j;
  if(n==1)    s=1.0;
  else  for(i=1;i<=n;i++)
      { t*=i;
	s+=(x*i)/t;
      }
  return s;
}

97: 第97题 请编写函数fun,其功能是:计算并输出下列多项式值:
s=1+1/(1+2)+1/(1+2+3)+..1/(1+2+3…+50) 
答案:

double fun(int n)
{ int i;
  double s=1.0, k=1.0;
  for(i=2;i<=n;i++)
  {  k+=i;
     s+=1.0/k;
  }
  return s;
}

100: 第100题 请编写函数fun,其功能是:计算并输出 s=1+(1+2(0.5))+(1+2(0.5)+3(0.5))+…+(1+2(0.5)+3(0.5)+…+n(0.5)) 
答案:

double fun(int n)
{ int i;
  double s=1.0,k=1.0;
  for(i=2;i<=n;i++)
  { k+=pow(i,0.5);
    s+=k;
    }
  return s;
  }

96: 第96题 请编写函数fun,其功能使:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。 
答案:

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;
}


 



 
98: 第98题 请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 
答案:

double fun(int n)
{
 int i;
double sum=0.0;
for(i=1;i<=n;i++)
if(i%5==0 || i%9==0)
sum+=1.0/I;
return sum;
}

82: 第82题 请编写一个函数fun,它的功能使:计算n门课程的平均分,计算结果作为函数值返回。 
答案:

float fun(float *a,int n)
{float ave=0.0;
int i;
for(i=0;i<n;i++)
ave+=a;
ave/=n;
return ave;}

63:请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。 
答案:

int fun(int n)
{int s=0,i;
for(i=2;i<=n-1;i++)
if(n%i==0)
s+=i;
return s;}

27: 第27题 请编写一个函数fun,它的功能是:求除1到m之内(含m)能北7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 
答案:

void fun(int m, int *a, int *n)
{
 int i,j=0; *n=0;
for(i=1;i<=m;i++)
if (i%7==0 || i%11 ==0)
{
 a[j]=i;
j++;
}
*n=j;
}

2:请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有整数,并将他们放在a所指的数组中,通过n返回这些数的个数。 
答案:
{  int i,j=0;
   for(i=1;i<100;i++)
     if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))
     a[j++]=i;
     return j;
}

58:编写函数藏服那,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。 
答案:

double fun(int n)
{double s=0.0;
int i;
for(i=1;i<n;i++)
if(i%3==0&i%7==0)
s=s+i;
s=sqrt(s);
return s;}
链接和矩阵
22: 第22题 n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。 
答案:

double fun(STREC *h)
{
 double max;
STREC *q=h;
max=h->s;
do
{
 if(q->s>max)
max=q->s;
q=q->next;
}
while(q!=0);
return max;
}

85: 第85题 n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 
答案:

double fun(strec *h)
{double aver=0.0;
while(h!=null)
{aver+=h->s;
hy=h->next;}
aver/=n;
return aver;}

37: 第37题 某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。 
答案:

void fun(S *t)
{  int i;
   double s=0.0;
   for(i=0;i<8;i++)
   s+=t->b[i];
   s/=8;
   t->ave=s;
}
字符串
6: 请编写一个函数fun,其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。 
{  int i,j=0;
   for(i=0;i<strlen(a);i++)
   if(i!=n)  b[j++]=a[i];
   b[j]='\0';
}

17: 第17题 请编写一个函数fun(char *s),该函数的功能使把字符串中的内容逆置。 
答案:

void fun(char *s)
{
 char ch;
int I,m,n;
i=0;
m=n=strlen(s)-1;
while(i<(n+1)/2)
{
 ch=s[i];
s[i]=s[m];
s[m]=ch;
i++;
m--;
}
}

23: 第23题 请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。 
答案:

int fun(char  *a)
{ int i,j,m=strlen(a);
  for(i=0;i<m/2;i++)
  if(a[i]==a[m-i-1])  ;
  else {j=0;  break;  }
  return  j;
}


 
24: 第24题 请编写一个函数fun,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。 
答案:

long fun (char *p)
{
 long s=0,t;
int i=0,j,n=strlen(p),k,s1;
if(p[0]==‘-’)
i++;
for(j=i;j<=n-1;j++)
{
 t=p[j]-‘0’;
s1=10;
for(k=j;k<n-1;k++)
t*=s1;
s+=t;
}
if(p[0]==‘-’)
return –s;
else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -