《C++程序设计实践》实验4

《C++程序设计实践》实验4,第1张

《C++程序设计实践》实验4
一、课内实验题(共10小题,100分)
题型得分 100
【描述】
编写程序,根据输入的字符以及棱形的边长,输出以该字符为填充字符的棱形。
【输入】
输入在一行中给出字符和边长。
【输出】
输出以该字符为填充字符,相应边长的棱形。
【输入示例】
A 5
【输出示例】
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
AAAAAAA
AAAAA
AAA
A

【来源】
《程序设计基础——以C++为例》第2章实验19。(10分)
我的答案:
#include
using namespace std;
int main(){
char x;
int a;
cin>>x>>a;
for(int i=1;i<=a;i++){
for(int j=1;j<=a-i;j++)cout<<" ";
for(int j=1;j<=2i-1;j++)cout< cout< }
for(int i=a-1;i>=1;i–){
for(int j=1;j<=a-i;j++)cout<<" ";
for(int j=1;j<=2
i-1;j++)cout< if(i!=1)
cout< }
}
题目得分 10
【描述】
输入若干个整数,如果输入0,输入即终止。判定读入的整数中有多少个正整数、多少个负整数,并计算这些整数的总和和平均值(0不计算在内)。平均值结果保留2位小数。
【输入】
输入若干个整数,如果输入0,输入即终止。
【输出】
分行输出这些整数中的正整数个数、负整数个数、总和、平均值(0不计算在内)。
若只输入0,则输出:No input。
【输入示例】

-1 -2 -3 -4 -5 6 7 8 9 0
【输出示例】
4
5
15
1.67
【来源】
《程序设计基础——以C++为例》第2章实验12。

(10分)
我的答案:
#include
using namespace std;
int main(){
int a=0,b=0,x,sum=0,n=0;
while(cin>>x){
if(x0)break;
if(x<0)a++;
else b++;
sum+=x;
n++;
}
if(n
0)cout<<“No input”;
else{
cout< }

}
题目得分 10
【描述】
计算数列1+1/3+1/5+…的前n项之和。
【输入】
输入一个正整数n。
【输出】
输出数列前n项的和。
【输入示例】

10
【输出示例】
2.13326
【来源】
《程序设计基础——以C++为例》第2章实验10。

(10分)
我的答案:
#include
using namespace std;
int main(){
int n;
double sum=0;
cin>>n;
for(int i=1;i<=n;i++){
sum+=1.0/(2*i-1);
}
cout< }
题目得分 10
【描述】
计算数列1+(1+2)+(1+2+3)+(1+2+3+4)+…的前n项之和。
【输入】
输入一个正整数n。
【输出】
输出数列前n项的和。
【输入示例】

3
【输出示例】
10
【C++代码】
《程序设计基础——以C++》第2章实验13。

(10分)
我的答案:
#include
using namespace std;
int main(){
int n,sum=0,tmp=0;
cin>>n;
for(int i=1;i<=n;i++){
sum+=tmp+i;
tmp+=i;
}
cout< }
题目得分 10
【描述】
编写程序,用迭代法求立方根

求立方根的迭代公式为:

当满足如下条件时:

迭代停止。
【输入】
输入一个数。
【输出】
输出该数的立方根。
【输入示例】

27
【输出示例】
3
【来源】
《程序设计基础——以C++为例》第2章实验18。

(10分)
我的答案:
#include
using namespace std;
int main(){
double x,tmp=0,a;
cin>>a;
x=a;
while(abs(x-tmp)>0.000001){
tmp=x;
x=(2*x+a/x/x)/3;
}
cout< }
题目得分 10
【描述】
给定一个十进制正整数,求其对应的二进制数中1的个数。
【输入】
第一个正整数表示有n(n > 0)个测试数据,其后n行是对应的测试数据,每行为一个正整数。
【输出】
分行输出n个正整数对应的二进制数中1的个数。
【输入示例】

4
2
100
1000
66
【输出示例】
1
3
6
2

(10分)
我的答案:
#include
using namespace std;
int main(){
int T,n;
cin>>T;
while(T–){
cin>>n;
int sum=0;
while(n){
sum+=n&1;
n=n>>1;
}
cout< }
}
题目得分 10
【描述】
在杭师大校园里,没有自行车,上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,骑车快还是走路快。
【输入】
第一个正整数表示有n(n > 0)个测试数据,其后n行是对应的测试数据,每行为一次办事要行走的距离,单位为米。
【输出】
对应每个办事要行走的距离,如果骑车快,输出一行“Bike”;如果走路快,输出一行“Walk”;如果一样快,输出一行“All”。
【输入示例】

4
50
90
120
180
【输出示例】
Walk
Walk
Bike
Bike

(10分)
我的答案:
#include
using namespace std;
int main(){
int T,n;
cin>>T;
while(T–){
cin>>n;
if(n>100)cout<<“Bike”;
else if(n<100)cout<<“Walk”;
else cout<<“All”;
cout< }
}
题目得分 10
【描述】
输入一个正整数,从小到大输出该数所有的质因子。
质因数(质因数)是指能整除给定正整数的质数(素数)。
【输入】
输入一个正整数。
【输出】
分行从小到大输出该数所有的质因子。
【输入示例】

120
【输出示例】
2
2
2
3
5
【来源】
《程序设计基础——以C++为例》第2章实验17。

(10分)
我的答案:
#include
using namespace std;
int main(){
int n;
cin>>n;
while(n!=1){
for(int i=2;i<=n;i++){
if(n%i==0){
n/=i;
cout< break;
}
}
}
}
题目得分 10
【描述】
某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块。用45人正好搬45块砖,问有多少种搬法?
【输入】
没有输入。
【输出】
输出搬砖的男人、女人和小孩数。
【输出示例】

A,B,C
A、B、C分别表示男人、女人、小孩数。
【来源】
《程序设计基础——以C++为例》第2章实验14。

(10分)
我的答案:
#include
using namespace std;
int main(){
int n,sum;
for(int i=0;i<=45;i++){
for(int j=0;j<=45;j++){
for(int k=0;k<=45;k+=2){
sum=i+j+k;
n=3i+2j+k/2;
if(sum45&&n45){
cout< }
}
}
}
}
题目得分 10
【描述】
计算如下式子:

的值,计算到最后一项的值小于给定的阈值时为止。
【输入】
输入在一行中给出小于1的阈值。
【输出】
在一行中输出满足阈值条件的式子值,结果保留6位小数。
【输入示例】

0.000001
【输出示例】
2.718282
【来源】
《程序设计基础——以C++为例》第2章实验11强化练习。

(10分)
我的答案:
#include
using namespace std;
int main(){
double n;
cin>>n;
double t=1,p=1;
double sum=1;
while(1/p>=n){
sum+=1/p;
t++;
p*=t;
}
printf(“%.6f”,sum);
}
题目得分 10

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1354173.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-14
下一篇2022-06-14

发表评论

登录后才能评论

评论列表(0条)

    保存