版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 测试习题1单项选择题(1)putchar函数可以向终端输出一个( D )。A整型变量表达式值 B实型变量值C字符串 D字符或字符型变量值 (2) int k=10;while(k=0) k=k-1;则下面描述正确的是( C )。Awhile循环执行10次 B循环是无限循环C循环体语句一次也不执行 D循环体语句执行一次(3)int x=0,s=0;while(!x!=0) s+=+x;cout<<s;则( B)。A运行程序段后输出0 B运行程序段后输出1C程序段中的控制表达式是非法的 D程序段执行无限次(4) int x=0,y=0;while(x<15) y
2、+,x+=+y;cout<<y<<”,”<<x;则运行结果为( D )。A20,7 B6,12 C20,8 D8,2 (5) int a=1,b=2,c=2;while(a<b<c) t=a;a=b;b=t;c-;cout<<a<<”,”<<b<<”,”<<c;运行结果为( A )。A1,2,0 B2,1,0 C1,2,1 D2,1,1(6)int x=-1;do x=x*x;while(!x);下列说法正确的是( C )。A是死循环 B循环执行两次C循环执行一次 D有语法错误(7)以下
3、能正确计算1*2*3*10的程序段是( C )。Ado i=1;s=1; Bdo i=1;s=0;s=s*i; i+; s=s*i;i+; while(i<=10); while(i<=10);C i=1;s=1; Di=1;s=0; do s=s*i; dos=s*i;i+; i+;while(i<=10); while(i<=10);(8)以下描述正确的是( C )。A由于do-while循环中循环体语句只是一条可执行语句,所以循环体内不能使用复合语句Bdo-while循环由do开始,用while结束,在while(表达式)后面不能写分号C在do-while循环体中
4、,一定要有能使while后面表达式的值变为零(“假”)的操作Ddo-while循环中,根据情况可以省略while(9)C+语言中while和do-while循环的主要区别是(A )。Ado-while的循环体至少无条件执行一次Bwhile的循环控制条件比do-while的循环控制条件严格Cdo-while允许从外部转到循环体内Ddo-while的循环体不能是复合语句(10)下面有关for循环的正确描述是( D )。Afor循环只能用于循环次数已经确定的情况Bfor循环是先执行循环体语句,后判断表达式C在for循环中,不能用break语句跳出循环体Dfor循环的循环体语句中,可以包含多条语句,但
5、必须用大括号括起来(11)对for(表达式1; ;表达式3)可理解为( B )。Afor(表达式1;0;表达式3) Bfor(表达式1;1;表达式3)Cfor(表达式1;表达式1;表达式3) Dfor(表达式1;表达式3;表达式3)(12)for(i=2;i= =0;) printf(“%d”,I-); 循环执行的次数是( B )。A无限次 B0次 C1次 D2次(13)下面程序段的运行结果为( C )。for(y=1;y<10;) y=(x=3*y,x+1),x-1);cout<<“x=”<<x<<”y=”<<y;Ax=27,y=27 B
6、x=12,y=13Cx=15,y=14 Dx=y=27(14)以下不是无限循环的语句为(D )。Afor(y=0,x=1;x>+y;x=I+) I=x; Bfor( ; ;x+=I);Cwhile(1)x+; Dfor(I=10; ;I-) sum+=I;(15)下面程序的运行结果是( D )。#include<iostream.h>viod main( )int i,b,k=0; for(i=1;i<=5;i+) b=i%2; while(b- - >=0) k+; cout<<k<<”,”<<b; A3,-1 B8,-1 C
7、3,0 D8,-2(16)以下正确的描述是( B )。Acontinue语句的作用是结束整个循环的执行B只能在循环体内和switch语句体内使用break语句C在循坏体内使用break语句或continue语句的作用相同D从多层循环嵌套中退出,只能使用goto语句(17)下面程序段( D )。for(t=1;t<=100;t+) cin>>x; if(x<0) continue; cout<<t;A当x<0时整个循环结束 Bx>=0时什么也不输出Ccout永远也不执行 D最多允许输出100个非负整数(18)下面程序段( B )。x=3;do y=
8、x-; if(!y) cout<<”x”; continue;cout<<”#”; while(1<=x<=2);A将输出# B将输出#*C是死循环 D含有不合法的控制表达式(19)下面程序的运行结果是(B )。#include<iostream.h>void main()int a,b; for(a=1,b=1;a<=100;a+) if(b>=20) break; if(b%3= =1) b+=3;continue; b-=5;cout<<a<<endl; A7 B8 C9 D10(20)下面程序段的运行结
9、果是(B )。#include<iostream.h>void main( ) int i,j,x=0; for(i=0;i<2;i+) x+; for(j=0;j<=3;j+) if(j%2) continue; x+; x+; cout<<“x=”<<x<<endl; Ax=4 Bx=8 Cx=6 Dx=12(21)下面程序段的运行结果是(A )。#include<iostream.h>void main()int i; for(i=1;i<=5;i+) if(I%2) cout<<“*”; else
10、 continue;cout<<“#”; cout<<“$n”; A*#*#*#$ B#*#*#*$ C*#*#$ D#*#*$(22)下面程序段的运行结果是( A )。#include<iostream.h>void main( ) int i,j,a=0; for(i=0;i<2;i+) for(j=0;j<4;j+) if(j%2) break; a+; a+; cout<<a<<endl;A4 B5 C6 D72填空题:(1)下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环,请填空。int n=0
11、,c;c=cin.get();while (c!=n ) if( c>=0&&c<=9 ) n+; c=cin.get() ;(2) 1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?#include<iostream.h>main( )int day, x1, x2; day=0;x1=1020; while( x1>0 ) x2=( x1/2-2 );x1=x2;day+;cout<<x1<<endl;cout<<“day=”<<day<<endl; (
12、5)运行下面程序段后,k值为( 36 )。k=1;n=263;do k*=n%10;n/=10; while(n);(6)下面程序段中循环体的执行次数是( 3 )。a=10;b=0;dob+=2;a-=2+b; while(a>=0); (7)下面程序段的运行结果为( * )。 x=2;docout<<“*”;x-; while(!x= =0);(8)下面程序段的运行结果是( a=-5 )。i=1;a=0;s=1; do a=a+s*i;s=-s;i+; while(I<=10); cout<<“a=”<<a ; (9)下面程序段的运行结果是(
13、)。 for(a=1,i=-1;-1<=i<1;i+) a+;cout<<x<<y<<endl; 分析:本题循环条件是假值,所以什么也不输出。 (10) 鸡、兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,x代表有多少只鸡,y代表有多少只兔子,请填空。for(x=1;x<=29;x+)y=30-x; if( 2*x+4*y= =90 ) cout<x<< <<y;(11) 下面程序的功能是从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有白球,输出所有可能的方案,请填空。#include&
14、lt;iostream.h>void main()int i,j,k;cout<<“n hong bai hei n”; for(i=0;i<=3;i+) for( j=1 );j<=5;j+) k=8-i-j; if( k>0 && k<=6 ) cout<<i<< <<j<< <<k<<endl; (12)下面程序的功能是求出用数字0至9可以组成多少个没有重复的三位偶数,请填空。#include<iostream.h>void main() int
15、n=0,i,j,k; for(i=1;i<=9;i+) for(k=0;k<=8;( k+=2 ) i f(k!=i)for(j=0;j<=9;j+) if( j!=i && j!=k ) n+;cout<< “n=”<<n<<endl; 3看程序,写结果(1)#include<iostream.h>void main() int i=0,x=0,y=0; do +i;if(i%2!=0) x=x+i;i+;y=y+i+;while(i<=7); cout<<“x=”<<
16、x<<”y=”<<y; 运行结果:x=1,y=20(2) #include<iostream.h>void main()int i,t,sum=0; for(t=i=1;i<=10; ) sum+=t;+i; if(i%3= =0) t=-i; else t=i; cout<<“sum=”<<sum; 运行结果:sum=19(3) nclude<iostream.h>void main( )int i; for(i=1;i<=5;i+) switch(i%2)case 0:i+; cout<<“#”
17、;break; case 1:i+=2; cout<<“*”; default: cout<<“n”; 运行果为:*#(4) #include<iostream.h>void main()int y=2,a=1; while(y-!=-1) do a*=y;a+; while(y-); cout<<a<<y; 运行结果 :1 -2(5) #include<iostream.h> void main()int i,j; for(i=4;i>=1;i-) for(j=1;j<=i;j+) putchar(#); f
18、or(j=1;j<=4-i;j+) putchar(*); putchar(n); 运行结果:#*#*#*(6) #include<iostream.h>void main() int i,k=0; for(i=1; ;i+) k+;if(k%3= =0) break; cout<<i<<k; 运行结果:3 3(7) #include<iostream.h>void main( )int i=1; while(i<=15) if(+i%3!=2) continue; else cout<<i<<t; cout&
19、lt;<“n”; 运行结果:2 5 8 11 14(8) #include<iostream.h>void main()int a=10,y=0; do a+=2;y+=a;if(y>50) break; while(a=14);cout<<“a=”<<a<<” y=”<<y; 运行结果:a=16 y=60(9) #include<iostream.h>void main()int i, k=19;while(i=k-1) k-=3; i f(k%5= =0) i+;continue; else if(k<
20、;5) break; i+; cout<<“i=”<<i<<”k=”<<k; 运行结果:i=6 k=4(10) #include<iostream.h>void main()int i=5; do switch(i%2) case 4:i-;break; case 6:i-;continue; i-;i-; cout<<i; while(i>0); 运行结果:3 1 -1 4按下列要求编写程序(1)有一个函数如下: x (x<5) y= x+6 (5<=x<15) x-6 (x>=1
21、5) 输入x的值,计算出相应的y值。程序为:#include<iostream.h>void main()int x,y;cin>>x;if(x<5) y=5;if(x>=5&&x<15)y=x+6; if(x>=15) y=x-6;cout<<y<<endl;(2)编程要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。程序为:#include<iostream.h>int main()int a,b,n;cin>>a>>b;c
22、out<<"a="<<a<<'t'<<"b="<<b<<endl;if(a*a+b*b>100) n=(a*a+b*b)/100;else n=a+b;cout<<n<<endl;return 0;(3)根据/4 =1-1/3+1/5-1/7+求的近似值,直到最后一项的值小于0.000001为止。程序为:#include<iostream.h>#include<math.h>int main() double i,
23、p,pai;i=1;pai=0;dop=pow(-i,i-1)*1.0/(2*i-1);pai=pai+4*p;while(p>=0.000001);cout<<"pai="<<pai<<endl;return 0;(4)编程输出如下图形:(例n=6) * * * * * * 程序为:方法1:#include<iostream.h>void main()int i,j,k; for(i=1;i<=6;i+) for(k=1;k<=20-2*i;k+) cout<<' '
24、for(j=1;j<=4*i-3;j+) cout<<'*' cout<<endl; 方法2:#include <iostream.h> int main() int i,j; for(i=1;i<=6;i+) for (j=1;j<=12-2*i;j+) cout<<" " for(j=13-2*i;j<=9+2*i;j+) cout<<"*" cout<<endl;return 0; (5)求1!+2!+3!+8!。程序为:#include
25、 <iostream.h>int main()int i;double m=1.0,s=0.0;for(i=1;i<=8;i+)m=m*i;s=s+m;cout<<s<<endl;return 0;(6)打印出所有的“水仙花数“(它是一个三位数,其各位数字立方和等于该数本身)。程序为:#include <iostream>#include <iomanip>using namespace std;int main()int a,b,c,n,m;cout<<"所有的"水仙花数":"
26、;<<endl;for( a=1;a<=9;a+)for(b=0;b<=9;b+)for(c=0;c<=9;c+)n=100*a+10*b+c;m=a*a*a+b*b*b+c*c*c;if(n=m&&n<=999) cout<<n<<endl;return 0;(7)编写一个程序,输入年、月,打印出该年份该月的天数。程序为:#include<iostream.h>void main()int year,month, days; cin>>year>>month; switch(mon
27、th) case 1: case 3: case 5: case 7: case 8: case 10: case 12:days=31;break; case 4:case 6: case 9: case 11: days=30;break; case 2: if(year%400=0 | year%4=0 &&year%100!=0) days=29; else days=28; cout<<year<<"年"<<month<<"月有"<<days<<"
28、天n"(8)输入一个自然数,输出其各因子的连乘形式,如输入12,则输出12=1*2*2*3。程序为:方法1:#include<iostream.h>void main() int i,n; cin>>n; cout<<"n="<<"1" for(i=2;i<=n;) if(n%i=0) n=n/i; cout<<"*"<<i;continue; i+; cout<<endl; 方法2:#include<iostream.h>
29、void main()int n,i; cin>>n; cout<<n<<"=1" i=2; while(n>1) while(n%i=0) cout<<"*"<<i; n=n/i; i+;(9)求一个整数任意次方的最后三位数。程序为: #include <iostream>#include <cmath>using namespace std;int main()int a,b,n;cout<<"输入a,n:"<<end
30、l;cin>>a>>n;cout<<a<<"的"<<n<<"次方的最后三个数字是:"b=pow(a,n);b%=1000;if(b>=100) cout<<b<<endl;if(b<100&&b>=10) cout<<"0"<<b<<endl;else if(b<10) cout<<"00"<<b<<endl;
31、return 0;法2:#include<iostream.h>void main()int x,n,p=1,i; cin>>x>>n; for(i=1;i<=n;i+) p=p*x%1000; cout<<p<<endl;(10)猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,发现只剩一个桃子了,求猴子第一天究竟摘了多少个桃子?程序为:#include<iostream.h>
32、;void main() int p=1,i; for(i=1;i<=9;i+) p=(p+1)*2; cout<<p<<endl;5选择题(1)以下程序的输出结果是( C )。 #include<iostream.h> void main() int a=100,x=10,y=20,ok1=5,ok2=0; if(x<y) if(y!=10) if(!ok1) a=1; else if(ok2) a=10; a=-1; cou<<a<<endl; A1 B0 C-1 D值不确定(2)以下不正确的if语句形式是( C )
33、。Aif(x>y && x!=y); Bif(x= =y) x+=y;Cif(x!=y)cin>>x else cin>>y; Dif(x<y)x+;y+;(3)设有以下程序段,则( B )。int a=0, b=0;while(!a!=0) b+=+a;cout<<b;A程序运行后输出0 B程序运行后输出1C程序执行无数次 D循环控制条件表达式是非法的(4)当a=1,b=3:c=5,d=4时,执行下面一段程序后x的值是( B )。 if(a<b)) if(c<d) x=1; else if(a<c) if(b&
34、lt;d) x=2; else x=3; else x=6; else x=7;A1 B2 C3 D6(5)以下for循环的循环次数是( C )。for(x=0, y=0; (y=123)&&(x<4); x+);A是无限循环B循环次数不定C执行4次D执行3次(6)下面程序的运行结果是( A )。#include<iostream.h>void main() int x=6,y=8; if(x+<6) cout<<+y<<endl; if(x>6) cout<ßy<<endl; else cout
35、<<y+<<endl; A8 B9 C 7 D编译不成功(7)关于for循环语句下面不正确的是( A )。 A在循环体中,不能改变循环控制变量B在执行中循环控制变量初值、终值可变C循环控制变量可增可减D循环控制变量不必在说明部分说明(8)下列写法中等价的是( B D )。A若x=1,则while(x!=x)与while(x)B若x=0,则while(x!=x)与while(x)C若x=1,则while(x!=0)与while(!x)D若x=0,则while(x=0)与while(!x)(9)执行语句for(i0; i+<3;)后,变量i的值为( C )。A2 B3
36、 C4 D5(10)下面程序的运行结果是( D )。#include<iostream.h>void main() int x=10,y=10,i;for(i=7; x>i; y-=9, +i, x-) cout<<x<<” “<<y<<” “; A10 1 9 2 B9 8 7 6 C10 9 9 0 D10 10 9 1(11)若int x3;且有下面的程序片段,则输出结果为( C )。do x-=2;cout<<x; while(!(- -x);A1 B3 0 C1 -2 D死循环(12)下面程序的运行结果是(
37、 C )。#include<iostream.h>void main() int num=0; while(num<=2) num+; cout<<num<<endl; A1B1C1D1 2 2 23
38、; 34(14)下列程序段不是死循环的是( A )。Aint i=100; while(1) i=i%100+1; if(i>100) break; Bfor( ; ;)Cint k=0; do+k; while(k>=0);Dint s=36; while(s); -s;(15)下面程序的运行结果是( A )。#incl
39、ude<iostream.h>void main() int a, y; a=10; y=0; do a+=2; y+=a; if(y>50) break; while(a=14);cout<<”a=”<<a<<”y=”<<y; Aa=16 y=60 Ba=15 y=50 Ca=14 y=50 Da=14 y=606填空题(1)下面程序的运行结果是_-1_。#include<iostream.h>void main() int a=2,b=3,c;c=a;if(a>b) c=1;else if(a= =b) c
40、=0; else c=-1;cout<<c;(2)若所用变量都已正确定义,以下程序段的输出结果_y=7 x=21 _xy0;while(x<20)y+;x+=3; cout<<”y=”<<y<<”x=”<<x;(3)下面程序的运行结果是_*#_。#include<iostream.h>void main() int i, j=4;for(i=j; i<=2*j; i+)switch(i/j) case 0: case 1: cout<<”*”; break; default: cout<<
41、;”#”; (4)输入一个字母,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。填入正确内容。#include<iostream.h>void main() char ch; cin>>ch; if(_ ch>=65&&ch<=90_) ch=ch+32; else if(ch>=a &&ch<=z)_ch=ch-32_; cout<<ch<<endl;(5)读下面的程序,要使输出结果t=4,输入变量a和b应满足条件_a>0&&
42、amp;a<b_。#include<iostream.h>void main() int s,t,a,b; cin>>a>>b; s=1;t=1; if(a>0)s=s+1; if(a>b)t=s+t; else if(a= =b)t=5; else t=2*s; cout<<”s=”<<s<<”x=”<<x<<endl;(6)从键盘输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,完成下面的程序填空。#include<iostream.h>vo
43、id main() float mark, max, min; _mark=cin.get()_; max=mark;min=mark;while(_ mark >=0_) if(mark>max) max=mark; if(mark<min) min=mark; _ mark=cin.get()_cout<<”max is:”<<max<<andl;cout<<”min is:”<<min;(7)下面程序的功能是计算100至1000之间有多少个数其各位数字之和是5。#include<iostream.h>
44、;void main() int i, s, k, cout=0; for(i=100;i<1000;i+) s=0; k=i; while(_k!=0_) s=s+k%10; k=_k/10_; if(s!=5) _continue_; else count+; cout<<cout;(8)下面程序的功能是输出1至200之间每位数的乘积大于每位数的和的数。#include<iostream.h>void main() int n, k=1, s=0, m; for(n=1; n<=100; n+) k=1; s=0; _m=n_; while(_m!=0_
45、) k*=m%10; s+=m%10; _m=m/10_; if(k>s) cout<<n; 7 看程序写结果(1)#include<iostream.h> void main() int x,y,z;x=1;y=2;z=3;x=y-<=x|x+y!=z;cout<<x<<'t'<<y<<endl; 输出:1 1(2)#include<iostream.h> void main() int x,y,z; if(y!=0) x=5; cout<<x&l
46、t;<endl; if(y=0) x=4; else x=5; cout<<x<<endl; x=1; if(y<0)if(y>0)x=4;else x=5; cout<<x<<endl; 输出:5 5 5(3)#include<iostream.h> void main() int a=2,b=7,c=5;switch(a>0)case 1: switch(b<0) case 1:cout<<"" break; case 2:cout<<"!&quo
47、t; break;case 0: switch(c=5) case 0:cout<<"*"break; case 1:cout<<"#" break; default:cout<<"#" break;default: cout<<"&"<<endl; 输出:#&(4)#include<iostream.h> void main() int i=1,s=3; do s+=i+; if(s%7= =0) continue; else
48、 +i; while(s<15);cout<<i<<endl; 输出:8(5)#include<iostream.h> void main() int i;for(i=4; i<=10; i+) if(i%3= =0) continue; cout<<i<<” “;输出:4 5 7 8 10(6)#include<iostream.h> void main() int i, x; for(i=1; i<100; i+) x=i; if(+x%2= =0)if(+x%3= =0) if(+x%7= =0)
49、cout<<x<< ;输出:28 70(7)#include<iostream.h> void main() int k,j,m; for(k=5;k>=1;k-) m=0; for(j=k;j<=5;j+) m=m+k*j; cout<<m<<endl;输出:15(8)设输入为4时,程序的输出结果#include<iostream.h> void main() int i,j,n; long sum,term;cin>>n; for(sum=0,i=1;i<=n;+i) term=1; j=
50、1; do term *=i; while (+j<=i); sum+=term; cout<<"sum"<<sum; 输出:sum288(9)#include<iostream.h>void main() int a, s, n, count; a=2; s=0; n=1; count=1;while(count<=7) n=n*a; s=s+n;+count;cout<<"s="<<s;输出:s=254(10)#include<iostream.h> void mai
51、n() int x, y; x=0; y=0; do y+; x*=x;while(x>0)&&(y>5);cout<<"y="<<y<<"x="<<x; 输出:y=1 x=0 8编写程序(1)将用户输入的24小时制时间转化为12小时制#include<iostream.h>int main()int a,b,c;cout<<”请输入24小时制下的时间:_:_:_:”<<endl;cin>>a>>b>>c;if(a>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 姚安县市级名校2026届中考冲刺预测卷(六)英语试题含解析
- 供应链协同管理流程模板整合版
- 人力资源流程管理工具集及操作指南
- 2026年多层集装箱房钢结构连接方案
- 2026年学前教育专业应届生职业目标与实现路径
- 2026年化学课堂教学思政元素融入案例
- 自愿跟岗协议书
- 餐饮服务双语·第二版课件 项目八 结账和送客服务
- 学校车辆管理制度模板
- 活动策划方案申请模板(3篇)
- 加工中心回转工作台设计
- 《小学奥数》小学六年级奥数讲义之精讲精练六年级奥数全部答案
- YS/T 1080-2015硫酸铯
- GB/T 28035-2011软件系统验收规范
- GB/T 19409-2003水源热泵机组
- GA 979-2012D类干粉灭火剂
- 小学科学《昼夜交替现象》优质课件-
- 人教八年级下册地理:北方地区复习课件
- 眼科学绪论-(第八版)课件
- 人教版六年级数学下册《三 第6课时 求不规则物体的体积》课堂教学课件PPT小学公开课
- 铁道概论全套课件
评论
0/150
提交评论