c++ 上机实验题
c++语言俺是不会啦,但是朋友考试需要,那只能勉为其难的入门下做做考试题了。
以下就是具体的题目和答案:
----------------------------------------------------------------
1、输入圆的半径r和圆柱的高h,依次输出圆周长、圆面积、圆球表面积、圆柱体积。其中,圆周长=2πr,圆面积=πr2,圆球表面积=4πr2,圆柱体积=hπr2。
源代码如下:
#include<iostream>
#include<math.h>
usingnamespace std;
int main() {
double r;
double h;
cout<<"输入圆的半径r:";
cin >> r;
cout<<"输入圆柱的高h:";
cin >> h;
//计算周长:圆周长=2πr
double circle_p = 2*M_PI*r;
cout<<"圆周长为:"<<circle_p<<endl;
//计算面积:圆面积=πr2
double circle_s = M_PI*r*r;
cout<<"圆面积为:"<<circle_s<<endl;
//计算表面积:圆球表面积=4πr2
double circle_sp = 4*M_PI*r*r;
cout<<"圆球表面积为:"<<circle_sp<<endl;
//计算表面积:圆柱体积=hπr2。
double circle_v = h*M_PI*r*r;
cout<<"圆球表面积为:"<<circle_v<<endl;
return 0;
}
运行结果第一组:
输入圆的半径r:1
输入圆柱的高h:1
圆周长为:6.28319
圆面积为:3.14159
圆球表面积为:12.5664
圆球表面积为:3.14159
运行结果第二组:
输入圆的半径r:2
输入圆柱的高h:3
圆周长为:12.5664
圆面积为:12.5664
圆球表面积为:50.2655
圆球表面积为:37.6991
2、输入大写字母,输出对应的小写字母。
源代码如下:
#include<iostream>
#include<string>
usingnamespace std;
int main() {
char a;
cout<<"请输入一个大写英文字母:";
cin >> a;
//输入一字符,若为大写字母,转小写输出;
if(a>='A' && a<='Z'){
a= a+32;
}
cout << "您输入的大写字母对应的小写字母是:" << a << endl ;
return 0;
}
运行结果第一组:
请输入一个大写英文字母:A
您输入的大写字母对应的小写字母是:a
运行结果第二组:
请输入一个大写英文字母:B
您输入的大写字母对应的小写字母是:b
3、有一分段函数如下,请编写程序,输入x值,输出y值。
<!--[endif]-->
源代码如下:
#include<iostream>
#include<math.h>
usingnamespace std;
int main() {
double x;
cout<<"输入x值:";
cin >> x;
double y = 0;
if(x<0){
//x<0
y = pow(x,2)+2/x+sin(x);
}elseif(x>=0 && x<10){
// 0<=x<10
y = 2*pow(x,5)-cos(x);
}elseif(x>=10){
//x>=10
y = 1/sqrt(3*pow(x,2)-11);
}
cout<<"y值:"<<y<<endl;
return 0;
}
运行结果第一组:
输入x值:-2
y值:2.0907
运行结果第二组:
输入x值:1
y值:1.4597
4、输入年份year,判断是否是闰年,若不是,输出NO,否则输出YES。(判断闰年的标准是:1、年份能被4整除而不能被100整除 2、年份能被400整除)
源代码如下:
#include<iostream>
usingnamespace std;
int main() {
int year;
cout<<"输入年份值:";
cin >> year;
//1、年份能被4整除而不能被100整除 2、年份能被400整除
if( (year%100==0) || (year%4==0 && year%100!=0) ){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
return 0;
}
运行结果第一组:
输入年份值:2012
YES
运行结果第二组:
输入年份值:2015
NO
5、输入两个正整数m和n,编写程序求其最大公约数和最小公倍数。
源代码如下:
#include<iostream>
usingnamespace std;
//求最大公约数
int MaxY(int a, int b) {
int min, max;
int r;
max=a>b ? a : b;
min=a<b ? a : b;
if (max%min==0)
return min;
while (max%min!=0) {
r=max%min;
max=min;
min=r;
}
return min;
}
//求最小公倍数
int MinY(int a, int b) {
int min, max;
int r;
max=a>b ? a : b;
min=a<b ? a : b;
if (max%min==0)
return max;
while (max%min!=0) {
r=max%min;
max=min;
min=r;
}
return a*b/min;
}
int main() {
int m, n;
cout<<"请输入两个数,求这两个数的最大公约数和最小公倍数(用空格分隔,按回车键(Enter)):";
cin>>m>>n;
cout<<"这两个整数的最大公约数为:"<<MaxY(m, n)<<endl;
cout<<"这两个整数的最小公倍数为:"<<MinY(m, n)<<endl;
return 0;
}
运行结果第一组:
请输入两个数,求这两个数的最大公约数和最小公倍数(用空格分隔,按回车键(Enter)):5 25
这两个整数的最大公约数为:5
这两个整数的最小公倍数为:25
运行结果第二组:
请输入两个数,求这两个数的最大公约数和最小公倍数(用空格分隔,按回车键(Enter)):4 30
这两个整数的最大公约数为:2
这两个整数的最小公倍数为:60