当前位置:首页 > 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 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 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
共分享92篇相关文档