选择题
1.下列语句中不属于控制语句的是()
A. for语句
B. if语句
C. goto语句
D. 函数调用语句
2.以下关于结构化程序设计方法的叙述中,错误的是()
A. 结构化程序设计方法禁止使用goto语句
B. 可以使用goto语句与if语句组合构成循环结构
C. 虽然使用goto语句容易导致程序流程无规律,可读性差,但是用goto语句有时也可以简化程序。
D. 使用goto语句控制程序的执行流程不符合结构化程序设计方法的基本原则
3.以下程序运行后的输出结果是()
#include
using namespace std;
int main()
{
char a,b;
a=’B’;
b=’A’;
cout< putchar(a); cout< putchar(b); system(“pause”); return 0; } A. aBbA B. aabb C. BBAA D. BaAb 4.以下程序运行后的输出结果是() #include using namespace std; int main() { unsigned int a=65535; cout<<”a=”< return 0; } A. a=-1,177777,ffff B. a=65535,65535,65535 C. a=-1,65535,ffff D. a=65535,177777,ffff 5.下列程序运行后的输出结果是() #include #include using namespace std; int main() { int x=’f’; printf(“%c \n”,’A’+(x-‘a’+1)); return 0; } A. G B. H C. i D. J 6.以下程序运行后的输出结果是() using namespace std; int main() { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d\n”,d*y); system(“pause”); return 0; } A. 3 B. 3.2 C.0 D.3.07 7.下面程序运行后的输出结果是(小数点后只保留一位)() #include #include using namespace std; int main() { double d; float f; long l; int i; i=f=l=d=20/3; printf(“%d %ld %f \n”, i,l,f,d); return 0; } A. 6 6 6.0 6.0 B. 6 6 6.7 6.7 C. 6 6 6.0 6.7 D. 6 6 6.7 6.0 8.以下程序的功能是输入半径r的值,然后计算其圆面积s。 #include #include using namespace std; int main() /* Beginning */ { int r; float s; scanf(“%d”,&r); s=π*r*r; printf(“s=%f\n”,s); return 0; } 程序在编译时出错,出错的原因是() A. 注释语句书写位置错误 B. 存放圆半径的变量r不应定义为整形 C. 输出语句中格式描述符非法 D. 在计算圆面积的赋值语句中使用了非法变量 9.有以下程序: #include #include using namespace std; int main() { char c1=’1’, c2=’2’; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); 当运行时输入a<回车>后,以下叙述正确的是() A. 变量c1被赋予字符a,c2被赋予回车符 B. 程序将等待用户输入第2个字符 C. 变量c1被赋予字符a,c2中仍是原有字符2 D. 变量c1被赋予字符a,c2中将无确定值 10.以下程序运行后的输出结果为() #include using namespace std; int main() { int a=5; cout< a=(3*5,a+4); cout<<”,a=”< return 0; } A. a=14, a=18 B. 5,a=15 C. 14,a=18 D. 14,a=19 11.当a=1、b=3、c=5、d=4时,执行下面一段程序后,x的值为() if(a if(c else if(a if(b else x=3; else x=6; else x=7; A. 1 B. 2 C. 3 D. 6 12.若a、b、c1、c2、x、y均是整型变量,则正确的switch语句是() A. switch(a+b) B. switch(a*a+b*b) { case 1: y=a+b; break; { case 3: case 1: y=a+b; break; case 0: y=a-b; break;} case 3: y=b-a; break; } C. switch(a) D. switch(a-b) { case c1: y=a-b; break; { default: y=a*b; break; case c2: x=a*d; break; case 3: case 4: x=a+b; break; default: x=a+b; } case 10: case 11: y=a-b; break; } 13.以下程序运行后的输出结果为() #include using namespace std; int main() { int a=-1, b=1, k; if((++a<0)&&!(b--<=0)) cout< else cout< return 0; } A. -1 1 B. 0 1 C. 1 0 D. 0 0 { int a=2,b=-1,c=2; if(a if(b<0) c=0; else c++; cout< return 0; } A. 0 B. 1 C. 2 D. 3 15.设x、y、z、t均为int型变量,则执行以下语句后,t的值为() x=y=z=1; t=++x||++y&&++z; A. 不定值 B. 2 C. 1 D. 0 16.若输入B,以下程序运行后的输出结果为() #include using namespace std; int main() { char grade; cin>>grade; switch(grade) { case ‘A’: cout<<”>=85.”; case ‘B’: case ‘C’: cout<<”>=60.”; case ‘D’: cout<<”<60.”; default: cout<<”error.”; } return 0; } A. >=85. B. >=60 C. >=60.<60.error. D. error. 17.以下程序运行后的输出结果是() #include using namespace std; int main() { int a,b,c=246; a=c/100%9; b=(-1)%%(-1); cout< return 0; } A. 2,1 B. 3,2 C. 4,3 D. 2,-1 18.设有如下定义,则执行表达式(m=a>b)&&(n=c>d)后,n的值为() int a=1,b=2,c=3,d=4,m=2,n=2; A. 1 B. 2 C. 3 D. 0 19.若变量c为char类型,能正确判断出c为小写字母的表达式是() A. ‘a’<=c<=’z’ B. (c>=’a’)||(c<=’z’) C. (‘a’<=c)and(‘z’>=c) D. (c>=’a’)&&(c<=’z’) { int n; cin>>n; if(n++<10) cout< else cout< return 0; } A. 11 B. 10 C. 9 D. 8 21.有以下函数: 0 (x=0) y= 1 (x>0) -1 (x<0) 在下面的程序中,不能正确输出y值的是() A.#include B.#include using namespace std; using namespace std; int main() int main() { int x, y; { int x, y; cin>>x; cin>>x; if(x<0) y=-1; if(x>=0) else if(x==0) y=0; if(x>0) y=1;else y=0; else y=1; else y=-1; cout<<”x=”< return 0; } return 0;} C. #include D. #include using namespace std; using namespace std; int main() int main() { int x,y; { int x,y; cin>>x; cin>>x; y=1; y=0; if(x<=0) if(x>=0) if(x<0) y=-1; if(x>0) y=1; else y=0; else y=-1; cout<<”x=”< return 0; } return 0; } 22.逻辑运算符两侧的运算对象的数据类型是() A. 只能是0或1 B. 只能是0或非0正数 C. 只能是整型或字符型数据 D. 可以使任何类型的数据 23.对于以下程序说明正确的是() #include using namespace std; int main() { int x, y; cin>>x>>y; if(x>y) x=y;y=x; cout< return 0; } A. 语法错误,不能通过编译 B. 若输入数据3和4,则输出4和5 C. 若输入数据4和3,则输出3和4 D. 若输入数据4和3,则输出4和4 24.以下程序运行后的输出结果是() #include using namespace std; int main() { float x=2.0, y; if(x<0.0) y=0.0; else if(x<10.0) y=1.0/x; else y=1.0; cout< return 0; } A. 0.000000 B. 0.250000 C. 0.500000 D. 1.000000 25.为避免在嵌套的条件语句if…else中产生二义性,C++规定else子句总是与()配对 A. 缩排位置相同的if B. 其之前最近且尚未配对的if C. 其之后最近的if D. 同一行上的if 26.若运行时给变量输入12,则以下程序运行后的结果是() #include using namespace std; int main() { int x,y; cin>>x; y=x>12?x+10:x-12; cout< return 0;} A. 0 B. 22 C. 12 D. 10 27.以下程序运行后的输出结果是() #include using namespace std; int main() { int k=4, a=3, b=2,c=1; cout<<(k return 0; } A. 4 B. 3 C. 2 D.1 28.执行以下程序段后,变量a、b、c的值分别是() int x=10, y=9; int a, b, c; a=(--x==y++)?—x:++y; b=x++; c=y; A. a=9, b=9, c=9 B. a=8, b=8, c=10 C. a=9, b=10, c=9 D. a=1, b=11, c=10 29.以下程序运行后的输出结果是() int main() { int x=1, a=0, b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++; b++; } cout<<”a=”< return 0; } A. a=2,b=1 B. a=1,b=1 C. a=1,b=0 D. a=2,b=2 30.设x、y和z是int型变量,且x=3、y=4、z=5,则下列表达式中,其值为0的是() A. x&&y; B. x C. x||y+z&&y-z D. !((x 31.设a为int型,则与表达式a等价的C语言关系表达式是() A. a>0 B. a!=0 C. a==0 D.a<0 32.执行以下语句后,变量x、y的值分别为() if((x=y=2)>=x&&(x=5)) y*=x; A. 2、4 B. 5、2 C. 5、10 D. 执行时报错 33.下面程序运行后的输出结果是() #include using namespace std; int main() { int m=5; if(m++>5) cout< else cout< return 0; } A. 4 B. 5 C. 6 D. 7 34.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是() A. if((a>b)&&(b>c)) k=1; B. if((a>b)||(b>c)) k=1; else k=0; C. if(a<=b) k=0; D. if(a>b) k=1; else if(b<=c) k=1; else if(b>c) k=1; else k=0; 35.下面程序运行后的输出结果是() #include using namespace std; int main() { int x=1,y=2; if(!x) { x++; cout<<”x=”< } else if(y) { y++; cout<<”y=”< } A. x=1 B. y=2 C. x=2 D. y=3 36.执行下列程序,当输入的字符为’n’时,下面程序的输出结果是() #include #include”stdafx.h” int main() { char ch=0; cout<<”Enter a charcter(Y/N): “; cin>>ch; switch(ch) { case ‘y’: case ‘Y’:{cout<<”Yes! \n”; break;} case ‘n’: case ‘N’:{cout<<”No! \n”; break;} default: {cout< } return 0; } A. Yes! B. No! C. 无输出 D.ch 37.执行下列程序,当输入-3.5,时,下面程序的输出结果是() #include using namespace std; int main() { int result; float x; cin>>x; switch(x==0) { case 1: {result=0; break;} case 0: switch(x>0) { case 1: {result=1; break;} default:{result=-1; break;} } } cout< return 0; } A. 0 B. 1 C. -1 D. 编译出错 38.以下程序中的循环体的执行次数是() #include using namespace std; int main() { int s=0; i=5; while(s+=i,i-=2) cout< getchar(); A. 5 B. 9 C. 15 D. 死循环 39.与循环结构while(!x) {…}中的循环条件等价的是() A. x>0 B. x==0 C. x<0 D. !x!=0 40.关于循环结构for(表达式1;表达式2;表达式3)的叙述中,正确的是() A. for循环结构的执行过程与do…while循环结构相同 B. 如果省略表达式1,则形成死循环 C. 如果省略表达式2,则形成死循环 D. 如果省略表达式3,则形成死循环 41.以下关于循环结构的叙述中,错误的是() A. do-while循环结构中的循环体至少被执行一次 B. while循环结构中的循环体有可能一次也不执行 C. for循环结构中的循环体有可能一次也不执行 D. 三种循环结构中的循环体都有可能一次也不执行 42.关于循环结构while(a>b>c){…}的正确叙述是() A. 当a>b且b>c时,循环条件成立,执行循环体 B. 当a>b且c>0时,循环条件成立,执行循环体 C. 当a D. 循环结构中的条件表达式有语法错误 43.以下程序运行后的输出结果是() #include using namespace std; int main() { int s=0, i=1; do { s=s+i++; } while(++i<10); cout< return 0; } A. 0 B. 15 C. 25 D. 55 44.以下程序运行后的输出结果是() #include using namespace std; int main() { int s, i; for(s=0,i=0;i<=100;s=s+i++); cout< return 0; } A. 4950 B. 5050 C. 5151 D. 5049 45.以下程序运行后的输出结果是() #include using namespace std; int main() { int x=0, s=0; switch(x%2) { case 0: s=s*x; continue; break; case 1: s=s+x; } } cout< return 0; } A. 125 B. 129 C. 157 D. 程序中有语法错误,continue与break语句不能连用46.以下程序运行后的输出结果() #include using namespace std; int main() { int x, s; for(x=0,s=0;x<=10;x++) { if(x%3==0) continue; else { if(x%4==0) continue; else s+=x; if(s%5==0) break; } } cout< return 0; } A. 5 B. 15 C. 25 D. 35 47.与下列程序等价的程序是() #include using namespace std; int main() { int i, s; for(i=1,s=0;i<=100;i++) s+=i; cout< return 0; } A. #include B. #include using namespace std; using namespace std; int main() int main() { int i, s { int i,s; for(i=0,s=0;i++<=100;) s+=i; for(i=1,s=0;i++<100;s+=i); cout< return 0; return 0; } } C. #include D. #include using namespace std; using namespace std; int main() int main() { int I, s; { int I, s; return 0; return 0; } } 48.以下程序运行后的输出结果是() #include using namespacestd; int main() { int a=1, b=2, c=3; while(a cout< return 0; } A. 0 B. 1 C. 2 D. 3 49.以下程序运行后的输出结果是() #include using namespace std; int main() { int a=3, b=2,c=1, t=0; while(a>b>c) t=b;b=c;c=t; cout< return 0; } A. 3 2 1 B. 3 0 1 C. 3 1 0 D. 3 0 2 50.以下程序的运行结果是() #include using namespace std; int main() { int I,s=0, p=1; for(i=1; i<=5; i++) { p*=I; s+=p; } cout< return 0; } A. 15 B. 120 C. 153 D. 179 51.以下程序的功能为:判断一个正整数是否为一个素数,程序中的划线处应为() #include using namespace std; int main() { int x, I; cin>>x; for( i=2;i<=x-1;i++) if(x%i==0)________; if(i==x) cout< else cout< return 0; 52.以下程序的运行结果是() #include using namespace std; int main() { int x, s=0; for(x=1;x<=5;x++) { switch(x%3) { case 0: default: s+=3; case 1: s+=1; break; case 2: s+=2; } } cout< return 0; } A. 6 B. 7 C. 10 D. 13 53.设变量已正确定义,则以下能正确计算f=n!的程序段是() A. f=0; B. f=1; for(i=1;i<=n;i++) f*=I; for(i=1;i<=n;i++) f*=I; C. f=1; D. f=1; for(i=n;i>1;i++) f*=i; for(i=n; i>=2;i--) f*=I; 54.以下程序的运行结果是() #include using namespace std; int main() { int I, j; for(j=10; j<11; j++) { for(i=9;i if(!(j%i)) break; if(i>=j-1) cout< } return 0; } A. 11 B. 10 C. 9 D. 10 11 55.有以下程序段: int n=0, p; do { cin>>p; n++; } while(p!=12345&&n<3); 此处do…while循环的结束条件是() A. p的值不等于12345并且n的值小于3 B. p的值等于12345并且n的值大于等于3 填空题 1.以下程序运行后的输出结果是________ #include using namespace std; int main() { int a=1, b=2; a=a+b; b=a-b; a=a-b; cout< return 0; } 2.以下程序的运行结果是_________ #include using namespace std; int main() { int x, y, z; x=24; y=024; z=0x24; cout< return 0; } 3.以下程序的输出结果是_________ #include using namespace std; int main() { int y=3, x=3, z=1; cout<<(++x,y++)<<”“< return 0; } 4.以下程序运行后的输出结果是________ #include using namespace std; int main() { char c; int n=100; float f=10; double x; x=f*=n/=(c=50); cout< return 0; } 5.下面程序运行后的输出结果是_________ #include using namespace std; int main() { int a=-1, b=1, k; if((++a<0)&&!(b--<=0)) cout< return 0; } 6.下面程序运行后的输出结果是__________ #include using namespace std; int main() { int n=’c’; switch(n++) { default: cout<<”error”; break; case ‘a’: case ‘A’: case ‘b’: case ‘B’: cout<<”good”; break; case ‘c’: case ‘C’: cout<<”pass”; case ‘d’: case ‘D’: cout<<”warn”; } cout< return 0; } 7.下面程序运行后的输出结果是_______ #include using namespace std; int 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=”< return 0; } 8.下面程序运行后的输出结果是_________ #include using namespace std; int main() { int n=9; while(n>6) { n--; cout< } 9.以下程序运行后的输出结果是_________ #include using namespace std; int main() { int x=20; while(x>10&&x<50) { x++; if(x/3) { x++; break; } else continue; } cout< return 0; } 10.C++提供的3种逻辑运算符按优先级由高到低依次是_________ 11.以下程序运行后的输出结果是__________ #include using namespace std; int main() { int m=5; if(m++>5) cout< else cout< return 0; } 12.以下程序运行后的输出结果是_________ #include using namespace std; int main() { int a=5,b=5, y, z; y=b-->++a?++b:a; z=++a>b?a:y;