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);elseprintf("%.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.1415926class 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);
}