C语言的题目,这些题目怎么解答啊?请高手帮我解答,谢谢了!!

c/c++程序设计题目
1、输入两个整数,计算他们的乘积的算术平方根,并输出,采用自定义函数。
2、求和s=1!+2!+3!+4!,采用自定义函数;
第四周
3、编程求任意输入的两个正整数的最大公约数和最小公倍数,采用自定义函数。
4、输入一个四位数,要求输出这四个数字字符,但每两个字符间空一个空格,如输出1990,则应该输出“1 9 9 0”,采用自定义函数。
5、a[4]是一个整型数组,且各元素均已赋值。采用调用子函数的方式,求出数组元素里面的最大值。
6、输入十个数,求出他们的最大值、最小值和平均值,三个值都要在子函数中求出,采用全局变量。
7、写一个函数,将一个十进制数转化成为8进制数,并写出主函数调用它。
8、输入两个整数,分别采用子函数调用与指针的方法,将两个数交换顺序,然后输出;
9、编写一函数,求一维数组的最大元素及其下标位置(要求使用指针)
已知:数组首地址p,元素个数n;(作函数参数)
结果:下标k;(作返回值)
11、求某班某门课的平均成绩,统计超过平均值的人数(要求用指针操作数组)
分析:
1、令p指向score(存放成绩的数组)的开始;
2、通过移动指针求和(重复N次)
3、求平均值;
4、令p重新指向score的开始;
5、不移动指针但通过指针判断各单元的内容是否大于平均值,并计数。

12、输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少。
采用指针的方法处理,要求用到函数指针,尽量用到指针函数;

13、用一个函数实现两个字符的比较,即自己写一个strcmp( )函数。
函数原形为:int strcmp(char *p1,char *p2);
设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为0;如果s1!=s2,则返回它们两者第一个不相同字符的ASCII码差值(如“BOY”,与“BAY”的第二个字母不相同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如果s1<s2,则输出负值。两个字符串s1,s2由main( )函数输入,strcmp( )函数的返回值也由main( )函数输出.

#include <iostream>
#include <cmath>
double sq2(double a,double b);
int main()
{
using namespace std;
cout<<sq2(10,1000) ;
return 0;
}
double sq2(double a,double b)
{

return sqrt(a*b) ;
}

2、求和s=1!+2!+3!+4!,采用自定义函数;

#include <iostream>
#include <cmath>
long ntimes(long a );
int main()
{
using namespace std;
cout<<ntimes(4);
}
long ntimes(const long a )
{
long eq=1,eq2=0;

for(int i=1;i<=a;i++)
{
eq*=i;
eq2+= eq;
}

return eq2;
}

3333333333333333
#include <iostream>
#include <cmath>
using namespace std;
int divisor(int a,int b);
long mutible(long a,long b);
int main()
{
using namespace std;
cout<<divisor(20,70)<<endl;
cout<<mutible(100,1000);
}
int divisor(int a,int b)
{
int i=(a<b)?a:b;
int c=0;
for(int j=1;j<=i;j++)
{
if(a%j==0 && b%j==0 )
{
if ( j!=1)
c=j;
}
}
if (c==0)
c=1;
return c;
}
long mutible(long a,long b)
{
int i=(a<b)?a:b;
int c;
c=divisor(a,b);
c=a/c *(b/c)*c;

return c;
}

//444444444444444444444

#include <iostream>
#include <string>
#include <iomanip>
void fourbit(int number) ;
using namespace std;
int main()
{
int num;
cin >>num;
fourbit(num);
}
void fourbit(int number)
{
int a,b,c,d;
a=number/1000;
b=(number-a*1000)/100;
c=((number-a*1000)-b*100)/10;
d=(number-a*1000)-b*100-c*10;
cout <<a<<" ";
cout <<b<<" ";
cout <<c <<" ";
cout<<d<<" ";

}

//55555555555
#include <iostream>
#include <string>
#include <iomanip>
void max(const int *num,int size) ;
int main()
{
using namespace std;
int a[4]={4,3000,6,100};
max(a,4) ;
}
void max(const int *num,int size)
{
int b=num[0];
for (int i=0;i<size;i++)
{
if(num[i]>b)
b=num[i] ;
}
cout<<b;
}

//6666666666666666

#include <iostream>
#include <string>
using namespace std;
void cal(const double *num,int size) ;
double arr[10];
double total=0,average=0,max=0,mini=0;
int main()
{
cout<<"请输入10个数字!!" ;
for(int i=0;i<10;i++)
{
cin>>arr[i];
}
cal(arr,10);
cout<<"平均 "<<average<<endl;
cout<<"最大 "<<max<<endl;
cout<<"最小 "<<mini<<endl;
}
void cal(const double *num,int size)
{
max=arr[0];
mini=arr[0];
for(int i= 0;i<size;i++)
{
total+=arr[i];
if(max<arr[i])
max=arr[i];
if(mini>arr[i])
mini=arr[i];

}
average=total/size;
}

//7777777777777
#include <iostream>
#include <string>
using namespace std;
void reoct(const int a);
int main()
{
int a;
cin>>a;
reoct(a);
}
void reoct(const int a)
{
cout<<oct<<a ;

}

//8、输入两个整数,分别采用子函数调用与指针的方法,将两个数交换顺序,然后输出
#include <iostream>
#include <string>
using namespace std;
void exchange(int *a,int *b);
int main()
{
int aa=30,bb=60;
exchange(&aa,&bb);
cout<<aa<<" "<<bb;
}
void exchange(int *a,int *b)
{
int temp;
temp=*a;
*a=*b ;
*b=temp;

}

/*9、编写一函数,求一维数组的最大元素及其下标位置(要求使用指针)
已知:数组首地址p,元素个数n;(作函数参数)
结果:下标k;(作返回值)
*/
#include <iostream>
int *arr(int *p,int n);
int *k;
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
cout<<"下标的地址是!!"<<arr(a,10)<<endl;
}
int* arr(int *p,int n)
{
int max=*p;
int i;
for(i=0;i<n;i++)
{
if(max < *(p+i))
max=*(p+i) ;

}
cout<<"最大数为!!"<<max<<endl;
k=p+i-1 ;
return k;
}

/*11、求某班某门课的平均成绩,统计超过平均值的人数(要求用指针操作数组)
分析:
1、令p指向score(存放成绩的数组)的开始;
2、通过移动指针求和(重复N次)
3、求平均值;
4、令p重新指向score的开始;
5、不移动指针但通过指针判断各单元的内容是否大于平均值,并计数。
*/
#include <iostream>
double score[10]={1,2,3,4,5,6,7,8,9,10};
double highscore=0,total=0;
int number=0;
int main()
{
double *p=score;
for(int i=0;i<10;i++)
{
total+=*p;
p++;
}
cout<<"总数为"<<total<<endl<<"平均值为"<<total/10<<endl;
p=score;
highscore=*p;
for(int i=0;i<10;i++)
{
if(total/10<*(p+i))
number++;
}
cout<<"超过平均值的人数为!!"<<number ;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-06-11
那么多啊 ,疯了你!分数还给那么少!
第2个回答  2008-06-11
这个嘛。。、 我想想,嗯,就不告诉你。
相似回答