C++程序设计习题大荟萃

发布时间 : 星期三 文章C++程序设计习题大荟萃更新完毕开始阅读

cout<

<

}

5. #include

const int w=30; void main() {

int x,y;

x=w<<2;y=w>>2; cout<

y=ceil(x);z=floor(x); cout<

)/10;

cout<

10;

cout<

}

x=w&10;y=w|10; cout<

6. #include

void main() {

int x=10,y=-1;

cout<<((x>y)&&(y<0))<<’ ’; cout<<((x>y)||(y<0))<<’ ’; cout<<((x<=y)&&(y>=0))<<’ ’; cout<<((x<=y)||(y>=0))<<’ ’; cout<<((x==y)&&y)<<’ ’; cout<<((x==y)||y)<<’ ’; }

7. #include

void main() {

int x=5,y=10,k;

(k=x)+=y;cout<

<

k=x+=y;cout<

<

k=x*=y;cout<

<

k=(x++,y++);cout<

<

k=x++,y++; cout<

8. #include

#include void main() {

double x=15.72;

七、编写下列程序

1. 已知一个三角形中三条边的长度分别为a,b和

c,利用计算公式(s(s-a)(s-b)(s-c))1/2

求出三角形的面积,其中s=(a+b+c)/2,假定a,b和c的值由键盘输入,并确保任何两边的长度大于第三条边。

2. 假定一所大学2001年招生人数为3000人,若

以后每年平均比上一年计划扩招10%,则2006年将计划招生多少人? 3. 已知有4个整数为a,b,c,d,试计算出它们的算

术平均值和几何平均值。 4. 已知x=2a/2(a+b)sina,y=2b/3(a+b)cosb,试根

据从键盘上输入的a和b的值分别计算出x和y的值。

第三章 流程控制语句 一、填空题

1. 流程控制类语句包括______、______和______

三类语句。

2. 跳转类语句包括______、______、______和

______四种。

3. 选择类和循环类中的每一种语句都属于

______语句。

4. 在switch语句中,每个语句标号所含关键字

case后面的表达式必须是______。

5. 在嵌套的if语句中,每个else关键字与它

前面最接近的______关键字相配套。 6. 作为语句标号使用的C++保留字case和

default只能用于______语句中。

7. 执行switch语句时,在进行作为条件的表达

式求值后,将从某个标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)______执行。

8. 任何______语句都可以改写位具有同样功能

的if 语句来实现。

9. 在for 语句中,假定循环体被执行次数为n,

则<表达式1>共被计算______次,<表达式2>

5

共被计算______次,<表达式3>共被计算______次。

10.执行for 和while循环时,每次是先进行

______的判断,然后再执行______,执行do循环时则相反。

11.continue语句只能使用在______类语句中,

break语句中既可以使用在______类语句中,也可以使用在______语句中。

12.for语句中<表达式2>是在每次执行______之

前被计算,而<表达式3>是在每次执行______之后被计算。

13.在所有结构性语句中,只有____________语句

的最后必定是以分号结束的,而其余语句的最后一个字符可能是分号,也可能是______。 14._____语句的循环体至少被执行一次,______

和______语句的循环体可能不会被执行。 15. 若for循环的”头”为 “for(int

i=0;i<10;i++)”,并且在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。

16. 若while循环的”头”为”

while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。

17. 当do循环的”尾”为”while(i++<=10)”,

并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。

18. 当在程序中执行到______语句时,将结

束本层循环类语句或switch语句的执行。

19. 当在程序中执行到______语句时,将结

束所在循环语句中循环体的一次执行。

20. 在程序中执行到______语句时,将结束

所在函数的执行过程,返回到调用该函数的位置。

二、写出下列每个程序运行后的输出结果并上机验证

1. #include

void main() {

int a=2,b=5,c=4;

if(a+b>10)c=a*b;else c=3*a+b; if(c<=20) cout<

cout<<4+c-5;

cout<

a=a+b;b=a+b;c=a+b+c;

6

cout<<”a,b,c=”<

2. #include

void main() {

int x=5;

switch(2*x-3) {

case 4: cout<

case 7: cout<<2*x+1<<’ ’; case 10:

cout<<3*x-1<<’ ’;break;

default: cout<<”default”

<

}

cout<<”switch end.”<

3. #include

#include void main() {

int I,x,y;

for(i=0;i<6;i++) {

cin>>x; if(x<0)y=1;

else if(x<10) y=x*x+3; else if(x<60) y=4*x-5; else y=int(sqrt(x));

cout<

y<

} }

假定从键盘上输入的6个常数为:36,-5,73,192,6,44。

4. #include

void main() {

int s0,s1,s2,x;

s0=s1=s2=0;

for(int i=0;i<12;i++) {

cin>>x;

switch(x%3){

case 0: s0+=x;break;

case 1: s1+=x;break; case 2: s2+=x;break; }

}

cout<

cout<

}

8. #include

void main() ‘<

假定从键盘上输入的12个整数

为:36,25,20,43,12,70,66,34,28,15,32,55 5. #include

const int N=5; void main() {

int I,p=1,s=0;

for(i=1;i

p=p*I; s=s+p;

cout<

p;

cout<

6. #include

const int M=20; void main() {

int c2,c3,c5; c2=c3=c5=0;

for(int i=1;i<=M;i++)

{

if(i%2==0) c2++; if(i%3==0) c3++; if(i%5==0) c5++; }

cout<

7. #include

void main() {

int I,j;

for(i=0;i<5;i++) {

for(j=I;j<5;j++) cout<<’*’;

{

for(int i=1,s=0;i<30;i++)

{

if(i%2==0||i%3==0)continue

;

cout<

cout<

9. #include

const int T=6; void main() {

int I,j,k=0;

for(i=1;i<=%;i+=2)

for(j=2;j<=T;j++)

if(i+j==T) cout<<’+’; else if(i*j==T)

cout<<’*’;

else k++;

cout<

10. #include

void main() {

int a,b,c=0;

for(a=1;a<6;a++) for(b=6;b>1;b--) {

if((a+b)%3==2){c+=a+b;cout

<

if(c>20) break; }

cout<<”c=”<

11. #include

const int B=2; void main() {

int p=1,s=1;

7

while(s<50) {

p*=B; s+=p; }

cout<<”s=”<

}

12. #include

void main() {

int x,y;

int i=2,p=1;

cout<<”请输入两个整数x和y:”; cin>>x>>y; do{

while(x%i==0&&y%i==0) { p*=I; x/=I; y/=I; } i++;

}while(x>=i&&y>=i);

cout<<”x和y的最小公倍数:”<

假定从键盘上输入的两个整数为24和88。

三、指出下列每个程序的功能并上机验证

1. #include

double f1(int n) {

double sign=1,s=1; for(int i=2;i<=n;i++) {

s+=sign/(i*i); sign*=-1; }

return s; }

void main() {

int a; cin>>a;

cout<

2. #include

void main()

{

double a,x,y; cin>>a; do{

cin>>x;

if(x==-1)break;

if(x<0)y=a*x+5; else if(x<=20)

y=3*x*x-2*a+1;

else y=a*a+x*x;

cout<

3. #include

#include

double f1(double a,double b,char op) {

switch(op){

case ‘+’: return a+b; case ‘-’: return a-b; case ‘*’: return a*b; case ‘/’: if(b==0)

{ cout<<”

divided by 0!”<

exit(1); }

else return

a/b;

default : cout<<”operator

error!”<

exit(1); } }

void main()

{

double x,y; char op;

cout<<”请输入两个实数和一个运

算符:”;

cin>>x>>y>>op;

cout<

4. #include

#include

8

联系合同范文客服:xxxxx#qq.com(#替换为@)