C++循环控制结构练习题.docx

上传人:b****8 文档编号:12395646 上传时间:2023-06-05 格式:DOCX 页数:37 大小:34.94KB
下载 相关 举报
C++循环控制结构练习题.docx_第1页
第1页 / 共37页
C++循环控制结构练习题.docx_第2页
第2页 / 共37页
C++循环控制结构练习题.docx_第3页
第3页 / 共37页
C++循环控制结构练习题.docx_第4页
第4页 / 共37页
C++循环控制结构练习题.docx_第5页
第5页 / 共37页
C++循环控制结构练习题.docx_第6页
第6页 / 共37页
C++循环控制结构练习题.docx_第7页
第7页 / 共37页
C++循环控制结构练习题.docx_第8页
第8页 / 共37页
C++循环控制结构练习题.docx_第9页
第9页 / 共37页
C++循环控制结构练习题.docx_第10页
第10页 / 共37页
C++循环控制结构练习题.docx_第11页
第11页 / 共37页
C++循环控制结构练习题.docx_第12页
第12页 / 共37页
C++循环控制结构练习题.docx_第13页
第13页 / 共37页
C++循环控制结构练习题.docx_第14页
第14页 / 共37页
C++循环控制结构练习题.docx_第15页
第15页 / 共37页
C++循环控制结构练习题.docx_第16页
第16页 / 共37页
C++循环控制结构练习题.docx_第17页
第17页 / 共37页
C++循环控制结构练习题.docx_第18页
第18页 / 共37页
C++循环控制结构练习题.docx_第19页
第19页 / 共37页
C++循环控制结构练习题.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++循环控制结构练习题.docx

《C++循环控制结构练习题.docx》由会员分享,可在线阅读,更多相关《C++循环控制结构练习题.docx(37页珍藏版)》请在冰点文库上搜索。

C++循环控制结构练习题.docx

C++循环控制结构练习题

循环控制结构练习题

1.从键盘上输入一个正整数n,计算其阶乘n!

#include

#include

usingnamespacestd;

intf(intn)

{

intt=1;

for(inti=n;i>0;i--)

t=t*i;

returnt;(0的阶层为1)

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

cout<

if(n<0)n=abs(n);

cout<<"n!

="<

system("pause");

return0;

}

2.从键盘上输入一个正整数n,判断是否是素数

法1:

#include

#include

usingnamespacestd;

voidf(intn){

intk=sqrt(n),i;

for(i=2;i<=k;i++)

if(n%i==0)break;

if(i>=k+1)cout<

elsecout<

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

f(n);

system("pause");

return0;

}

法2;#include

#include

usingnamespacestd;

boolf(intn){

intk=sqrt(n),i;

for(i=2;i<=k;i++)

if(n%i==0)break;

if(i>=k+1)return1;

elsereturn0;

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

f(n);

if(f(n))cout<

elsecout<

system("pause");

return0;

}

boolf2(intn)

{intk=sqrt(n),i;

for(i=2;i<=k;i++)

if(n%i==0)return0;

if(i>=k+1)return1;1

}intmain()

{intn;

while

(1)

{cin>>n;

if(n==0)break;

if(f2(n))cout<<"是素数!

"<

system("pause");

return0

3.编写程序,输入一个整数,求该整数的各位数字和。

#include

#include

usingnamespacestd;

intf(intn)

{

intt=0;

for(inti=n;i>0;i=i/10)

t=i%10+t;

returnt;

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

if(n<0)n=abs(n);

cout<<"n的各位数字和为:

"<

system("pause");

return0;

}

法二:

intf(intn)

{

if(n<10)returnn;

elsereturn(n%10+f(n/10));

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

if(n<0)n=abs(n);

cout<<"n的各位数字和为:

"<

system("pause");

return0;

}

intf3(intn)

{n=abs(n);

if(n<10)returnn;

elsereturn((n%10)+f3(n/10));}

intmain()

{intn;

while

(1)

{cin>>n;

if(n==0)break;

cout<

system("pause");

return0;}

3.编写程序,输入一个整数,求该整数的各位数字的乘积。

法一:

#include

usingnamespacestd;

intf(intn)

{

if(n<10)returnn;

elsereturn((n%10)*f(n/10));

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

n=abs(n);

cout<

system("pause");

return0;

}

法二:

#include

usingnamespacestd;

intf(intn)

{

intt=1;

for(inti=n;i>0;i=i/10)

t=t*(i%10);

returnt;

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

n=abs(n);

cout<

system("pause");

return0;

}

intf4(intn)

{n=abs(n);

if(n<10)returnn;

elsereturn((n%10)*f3(n/10));}

intmain()

{intn;

while

(1)

{cin>>n;

if(n==0)break;

cout<

system("pause");

return0;}

4.编写程序,输入一个整数,求该整数的各位数字的平方和。

法一:

#include

usingnamespacestd;

intf(intn)

{

intt=0;

for(inti=n;i>0;i=i/10)

t=t+(i%10)*(i%10);

returnt;

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

n=abs(n);

cout<

system("pause");

return0;

}法二:

#include

usingnamespacestd;

intf(intn)

{

if(n<10)returnn*n;

elsereturn(n%10)*(n%10)+f(n/10);

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

n=abs(n);

cout<

system("pause");

return0;

}

intf4(intn)

{n=abs(n);

if(n<10)returnn*n;

if(n>10)return(n%10)*(n%10)+f4(n/10);}

intmain()

{intn;

while

(1)

{cin>>n;

if(n==0)break;

cout<

system("pause");

return0;}

5.编写程序,输入一个整数,求该整数的各位上的数字是否包含数字5,若有则输出是第几位有含数字5.

#include

usingnamespacestd;

voidf(intn)

{

intj=0;

for(inti=n;i>0;i=i/10)

{

j++;if(i%10==5)cout<

}

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

n=abs(n);

cout<<"包含5的位置i为:

";

f(n);

cout<

system("pause");

return0;

}

voidf5(intn,intm)

{for(inti=n,j=0;i>0;i=i/10,j++)

if(i%10==m){cout<<"第"<

}

intmain()

{intn,m;

while

(1)

{cin>>n>>m;

if(n==0)break;

f5(n,m);}

system("pause");

return0;}

6.编写程序输出一个平行四边行。

注:

边长为10个*号

voidu()

{

inti=0;

for(inti=1;i<=10;i++)

{

cout<

for(intj=1;j<=10;j++)

cout<<'*';

cout<

}

}

voidf6()

{for(intj=0;j<10;j++)

{cout<

for(inti=0;i<10;i++)

cout<<'*';

cout<

intmain()

{intn,m;

f6();

system("pause");

return0;}

8.编程计算:

的前20项的和。

法一:

#include

usingnamespacestd;

doublef(doublen)

{

if(n>0){

if(n==1)return1;

elsereturnn/(2*n-1)+f(n-1);

}

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

n=abs(n);

cout<

cout<

system("pause");

return0;

}

doublef7(doublen)

{inti;if(n>0){

if(n==1)return1;

elsereturn(n/(2*n-1))+f7(n-1);

}}

intmain()

{doublen,m;

cin>>n;

cout<

system("pause");

return0;}

9.编写一程序,输入一个正整数,统计该数中含数字5的个数。

usingnamespacestd;

voidf(intn)

{

intj=0;

for(inti=n;i>0;i=i/10)

{

if(i%10==5)j++;

}cout<

}

intmain()

{

intn;

cout<<"n=";

cin>>n;

n=abs(n);

cout<<"包含5的个数为:

";

f(n);

cout<

system("pause");

return0;

10.编写程序,输出所有含数字5且为77倍数的四位数。

voidJ(){

for(inti=1000;i<=9999;i++)

if(i%77==0){

intm=i;

for(m;m>0;m=m/10)

if(m%10==5){cout<

}

}intmain()

{J();

System(“pause”);

return0;

}

11.编写一程序,输入一个正整数n,求大于等于n的最小素数。

#include

usingnamespacestd;

intmain()

{

intx,b,i,m,k;

cout<<"请输入一个整数:

";

cin>>x;

b=sqrt(x);

for(i=2;i<=b;i++)

if(x%i==0)break;

if(i>=b+1)cout<

else

for(m=x;;m++){

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0)break;

if(i>=k+1)

{cout<

}system("pause");

return0;

}

法二:

#include

usingnamespacestd;

intmain()

{

intn,k,m,i,j;

cout<<"n=";

cin>>n;

for(i=n;;i++){

for(j=2;j*j

if(i%j==0)break;

if(j*j>=i){

cout<

break;

}

}

system("pause");

return0;

}

12.从键盘输入一个小于15的正整数,计算其阶乘。

13.编程计算1!

+2!

+3!

+.....+n!

n从键盘输入。

intsum2(intn)

{intsum=0,t=1;

for(intj=1;j<=n;j++)

{t=1;

for(inti=1;i<=j;i++)

t=t*i;

sum=sum+t;}

returnsum;

}

intmain()

{intn;

while

(1){

cin>>n;

if(n==0)break;

cout<<"sum="<

}

system("pause");

return0;}

14.从键盘上输入一个正整数m,找出1000至10000之间所有各位数字之和等于m的数。

如输入32,则有9869满足要求。

因为9869各位上数字之和等于32。

#include

usingnamespacestd;

voidf(intm)

{

inti;

for(i=1000;i<10000;i++)

{

intsum=0;

for(intj=i;j>0;j=j/10){sum=sum+j%10;}

if(sum==m){cout<

}

cout<

}

intmain()

{

intn,m;

cout<<"n=";

cin>>n;

f(n);

system("pause");

return0;

}

15.已知xxz+yzz=532,求所有可能的x,y,z的值

#include

usingnamespacestd;

intmain()

{

for(intx=0;x<=9;x++){

for(inty=0;y<=9;y++){

for(intz=0;z<=9;z++){

intk=x*10+x*100+z+y*100+z*10+z;

if(k==532)cout<

}

}

}system("pause");

return0;

}

16.编程从键盘中随机输入若干整数,统计其中正整数、0、负整数数的个数。

当输入整数100000时结束输入。

#include

usingnamespacestd;

voidmain()

{

intn=0,m=0,k=0,c=0;

while(n!

=100000){

cout<<"n=";

cin>>n;

if(n>0)k++;

elseif(n==0)m++;

elseif(n<0)c++;

}cout<<"正整数的个数是:

"<

cout<<"负整数的个数是:

"<

cout<<"0的个数是:

"<

system("pause");

}

17.编写一程序,输入一个正整数n,求小于等于n的最大素数。

18.求100~999中的。

所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。

例如,因为153=13+53+33,所以153为水仙花数。

#include

usingnamespacestd;

voidmain()

{

inti;

for(i=100;i<=999;i++)

{

intj,sum=0;

j=i;

while(j)

{

intk=j%10;

sum=sum+k*k*k;

j=j/10;

}if(sum==i)cout<

}

system("pause");

}

19.求1000之内的所有完数。

所谓完数是指一个数恰好等于它的所有因子之和。

例如,6=1+2+3,所以6为完数。

20.编一程序显示如下图案:

*

***

*****

*******

*********

21.编一程序显示如下图案:

A

ABC

ABCDE

#include

#include

usingnamespacestd;

voidf(intn){

for(inti=1;i<=n;i++){

cout<

for(intj=0;j<2*i-1;j++)

{

chart='A'+j;

cout<

}

cout<

}

}

intmain()

{

f(3);

system("pause");

return0;

}

21.根据π/4=1-1/3+1/5-1/7+…求π的近似值,直到最后一项的值小于为止。

22.猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,发现只剩一个桃子了,求猴子第一天究竟摘了多少个桃子?

23.编程序模拟剪刀,石头和纸游戏。

游戏规则为:

剪刀剪纸,石头砸剪刀,纸包石头.玩游戏者从键盘上输入s(表示剪刀)或R(表示石头)或P(表示纸),要求两个游戏者交替输入,计算机给出输赢的信息。

24.编写程序输出菲波那切数列的前20项。

即前两项为1,以后每一项为前两项之和。

25.打印九九乘法表。

26.若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年时有多少头母牛?

27.编写程序,输入一个整数,求该整数是几位数?

并输出最高位数字。

#include

usingnamespacestd;

intf(intn)

{

intx=0,j=0;

for(inti=n;i>0;i=i/10){

j++;

if(x

}cout<

returnx;

}intmain()

{

intn;

cout<<"n=";

cin>>n;

n=abs(n);

cout<

cout<

system("pause");

return0;

}

28.从键盘上输入一个正整数n,求出5位数中各位数字之和等于n的所有素数,每行按6个素数输出。

法一:

#include(错误)

usingnamespacestd;

voidf(intm,intn,intk)

{

intl=0;

for(inti=m;i<=n;i++){

ints=0;

for(intj=i;j>0;j=j/10)

s=s+j%10;

if(s==k){

intt,z=sqrt(i);

for(t=2;t<=k;t++)

if(i%t==0)break;

if(t>=k+1){

cout<

l++;

if(l%6==0)cout<

}

}

}

}

intmain()

{

f(10000,99999,43);

system("pause");

return0;

}

法二:

(正确)

#include

usingnamespacestd;

voidfoundPrime(intn)

{

intk=0;

for(inti=10000;i<100000;i++)

{

ints=0;

intm=i;

while(m>0)

{

s=s+m%10;

m=m/10;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2