C语言/C++常见习题问答集锦(四)
程序之美
1、c语言分别用 while 语句、do-while 语句编写程序,计算 e≈1+1/1! +1/2! +…+1/n!精度为10-5,输出e和总项数
#include <stdio.h>
int main()
{
int i,t;
double sum;
for(i=0,t=1,sum=0;1.0/t>1e-6;t*=++i)
sum+=1.0/t;
printf("%lf\n",sum);
return 0;
}
2、用顺序表的知识实现复数的四则运算,使用线程表相关知识。
#include <stdio.h>
typedef struct
{
float re;
float im;
} Complex;
Complex createComplex(float a,float b) //编写一个函数生成复数//
{
Complex z;
z.re=a;
z.im=b;
return z;
}
void printComplex(Complex z) //输出复数并控制其格式//
{
if(z.re==0&&z.im==0)
printf("0\n");
else if(z.re!=0&&z.im==0)
printf("%.2f\n",z.re);
else if(z.re==0&&z.im!=0)
{
if(z.im>0)
printf("i%.2f\n",z.im);
else if(z.im<0)
printf("-i%.2f\n",fabs(z.im));
}
else
{
if(z.im>0)
printf("%.2f+i%.2f\n",z.re,z.im);
else
printf("%.2f-i%.2f\n",z.re,fabs(z.im));
}
}
Complex add(Complex z1,Complex z2)
{
Complex z;
z.re=z1.re+z2.re;
z.im=z1.im+z2.im;
return z;
}
Complex jian(Complex z1,Complex z2)
{
Complex z;
z.re=z1.re-z2.re;
z.im=z1.im-z2.im;
return z;
}
Complex cheng(Complex z1,Complex z2)
{
Complex z;
z.re=z1.re*z2.re-z1.im*z2.im;
z.im=z1.re*z2.im+z1.im*z2.re;
return z;
}
int main()
{
float a,b,c,d;
Complex z1,z2,c1,c2,c3;
printf("请输入元素");
scanf("%f%f%f%f",&a,&b,&c,&d); //输入元素并调用函数生成复数z1,z2;并输出//
z1=createComplex(a,b);
z2=createComplex(c,d);
printf("产生的两个复数为:");
printComplex(z1);
printComplex(z2);
c1=add(z1,z2);
c2=jian(z1,z2);
c3=cheng(z1,z2);
printf("这两个复数的和差积:");
printComplex(c1);
printComplex(c2);
printComplex(c3);
return 0;
}
3、编写一个函数,完成将一个字符串中的字符逆序输出,即最后一个先输出,第1个最后输出,并编写主函数进行测试。
(1)、编写逆序函数,返回逆序的字符串。
(2)、编写主函数,进行字符串的输入,调用逆序函数,完成字符串的输出。
#include <stdio.h>
#include <string.h>
#define STRING_MAX_LONG 100
/* Function prototypes */
void swaping(char*,char*),InverseString(char*,int);
void main()
{
char str[STRING_MAX_LONG];
int strLen=0;
printf("Please input string:");
scanf("%s",str);
InverseString(str,strlen(str));
printf("\nInverse string after:%s\n",str);
}
void swaping(char *a,char *b)
{
char temp=*a;
*a=*b;
*b=temp;
}
void InverseString(char s[],int len)
{
int i,k=-1,j;
i=j=0;
for (i=k+1;i<len;i++){
j=len-i+k;
if(i>=j) break;
swaping(&s[i],&s[j]);
}
}
4、c++的一个题 定义一个circle 类 有一个数据成员 r 半径
求圆的面积。
#include <iostream>
using namespace std;
#define PI 3.1415926
class Circle
{
public :
Circle()
{};
Circle(double r)
{
Radius=r;
}
double GetArea()
{
return PI*Radius*Radius;
}
private:
double Radius;
};
int main()
{
Circle c(2);
cout<<"这个圆的面积是:"<<c.GetArea()<<endl;
return 0;
}
5、输入十个整数存放到数组中 求其平均数。
include <stdio.h>
#include<math.h>
void main()
{
int i=0;
float a[10] = {0.00};
float sum=0.00,ave;
printf("input ten numbers");
for(i=1;i <10;i++)
scanf("%f", &a[i]);
printf("\n");
for(i=1;i <10;i++)
{
sum = sum + a[i] ;
}
ave=sum/10;
printf("average score is %5.2f\n",ave);
}