c++期末复习题文档格式.docx
《c++期末复习题文档格式.docx》由会员分享,可在线阅读,更多相关《c++期末复习题文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
charc=’A’;
x=(a&
b)&
(c<
’B’);
执行该程序段后,x的值为( 4 )。
①ture②false③0④1
11、下面程序的输出结果是( 2 )。
#include<
iostream>
usingnamespacestd;
intmain()
{inta=6,b=6;
if(a>
5)
a-=1;
b+=1;
else
a+=1;
b-=1;
cout<
<
”a=”<
endl;
”b”<
b<
return0;
}
①57②a=5b=7③a=5b=6④编译时出错
12、下面程序的输出结果是( 2 )
{a-=1;
}
{a+=1;
①57②a=5b=7③a=5b=6④a=6b=5
13、下面程序的输出结果是( 2 )
{intx=6,y=8;
if(x++<
6)
++y<
if(x>
--y<
y++<
return0;
①8②7③9④编译时出错
14、下面程序的输出结果是( 1 )
if(++x<
①88②97③78④编译时出错
15、下面程序的输出结果是( 1 )
#include<
usingnamespacestd;
f(inta)
{intb=0;
staticintc=3;
b++;
c++;
return(a+b+c);
intmain()
{inta=2,i;
for(i=0;
i<
3;
i++)
cout<
f(a)<
①789②777③71013④7911
16、下面程序的输出结果是( 3 )
voidfun(intx,inty,intz)
{z=x×
x+y×
y;
{intz=68;
fun(5,2,z);
z;
①0②29③68④无定值
17、下面程序的输出结果是( 1 )
intfun(inta,intb)
{return(++a×
b++);
intmain()
{intx=3,y=4,z=5,r;
r=fun(fun(x,y),z);
r<
x<
y<
①8534②6034③12645④8545
18、下面的程序中,当输入4、2时,其输出结果是( 3 )
longfib(intn)
{if(n>
2)return(fib(n-1)+fib(n-2));
elsereturn(n);
{inti;
”请输入一个整数:
”;
cin>
>
fib(i)<
①51②42③52④62
19、下面程序的输出结果为( 1 )
unsignedfunc(unsignednum)
{unsignedd=1,k;
do{
k=num%10;
num/=10;
}while(num);
return(k);
{unsignedn=26;
func(n);
①2②4③6④5
20、下面程序的输出结果为( 3 )
func(inta,intb)
{intc;
c=a×
return(c);
{intx=6,y=7,z=8,r;
r=func((x--,y,x×
y),z--);
r;
①294②245③280④416
21、下面程序的输出结果为( 1 )
{inta[3][3]={{1,2},{3,4},{5}};
ints=0;
for(inti=1;
for(intj=0;
j<
=i;
j++)
s+=a[i][j];
s<
①12②14③15④13
22、下面程序的输出结果是( 1 )
voidfun(int*x,int*y)
{
*x<
”“<
*y<
”“;
*x=3;
*y=4;
{intx=1,y=2;
fun(&
y,&
x);
①2143②1212③2112④1234
23、下面程序的输出结果是( 3 )
{inta[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
*--p;
① 编译出错 ② a[4]的地址 ③5④3
24、关于类和对象不正确的说法是( 3 )
①类是一种类型,它封装了数据和操作 ②对象是类的实例
③一个类的对象只有一个 ④一个对象必属于某个类
二、判断题
1、任何字符常量与一个任意大小的整型数进行加减都是有意义的。
(0 )
2、在命名标识符中,大小写字母是不加区分的。
( 0 )
3、引用是某个变量的别名。
对引用的操作,实质上就是对被引用的变量的操作。
(1 )
4、typedef类型定义是原来定义一些C++中所没有的新类型。
(0)
5、枚举变量的取值收到该枚举变量所对应的枚举表中枚举常量的局限。
( 1)
6、已知:
inta(5);
表达式(a=7)+a具有二义性。
7、预处理命令是在进行编译时首先执行的,然后再进行正常编译。
( 1 )
8、条件编译命令只在编译时才有用。
9、开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。
10、switch语句中必须有break语句,否则无法退出switch语句。
(0 )
11、while循环语句的循环体最少执行一次。
( 0 )
12、只有for循环的循环体可以是空语句,其它种类循环的循环体不能用空语句。
13、当循环体为空语句时,说明该循环体不做任何工作,只起延时作用。
14、在多重循环中,内重循环的循环变量引用的次数比外重的多。
( 1)
15、在C++中,说明函数时要用函数原型,即定义函数时的函数头部分。
16、如果一个函数没有返回值,定义时需用void说明。
17、使用内置函数是以增大空间开销为代价的。
18、返回值类型、参数个数和类型都相同的函数也可以重载。
( 1 )
19、在设置了参数默认值后,调用函数的对应实参就必须省略。
20、函数形参的作用域是该函数的函数体。
21、定义外部变量时,不用存储类说明符extern,而声明外部变量时用它。
22、内部静态类变量与自动类变量作用域相同,但是生存期不同。
23、静态类标识符在它的作用域之外是不存在的。
24、使用关键字class定义的类中默认的访问权限是私有的(private)。
(1)
25、指向对象的指针和指向类的成员的指针在表达形式上是不相同的。
26、一维对象指针数组的每个元素应该是某个类的对象的地址值。
(0)
27、一个类的构造函数中可以不包含对其子对象的初始化。
三、填空题
1、下面程序是计算1~10之间偶数之和,请填空:
{inta,b,i;
a=0;
b=0;
_i<
=5_____;
{a=2*i;
b=b+a;
”偶数之和为:
”<
2、下面程序是输出100内能被3整除且个位数是6的所有整数,请填空:
{inti,j;
____;
{j=i×
10+6;
if(②)
continue;
③;
}④
①i<
=9②j%3!
=0③else
7、下面程序的功能是:
求a的b次方,并输出,请填空。
doublefun(doublea,intb)
doublez;
for(i=1,z=1;
=b;
①;
②;
{doublea;
intb;
”请输入a的值:
”;
③;
”请输入b的值:
④;
⑤;
①z*=a②returnz③cin>
a④cin>
b⑤fun(a,b)
8、下面函数是检验输入的字符是大写还是小写或者不是26个字母,请填空。
①;
fun(charch)
if((ch>
=’a’)&
(ch<
=’z’))
i=1;
else{if(②))
i=2;
elsei=3;
③;
”请输入一个字符:
ch;
i=fun(ch);
if(i==1)
”是小写字母:
ch<
elseif(④)
”是大写字母:
elsecout<
”是其它字符:
}
①#include<
string>
②(ch>
=’A’)&
=’Z’)③returnI④i==2
9、下面是字符串拷贝程序,请填空。
voidccopy()
貌似还需要j++
{charch1[]=”goodmorning!
”,ch2[20];
inti=0,j=0;
while(①)
{ch2[j]=②;
③;
}
strlen(ch1)②ch1[j]③i++④cout<
ch2
10、下面函数是寻找二维数组中每一行的最大值,请填空。
#defineN5
#defineM5
voidmax(inta[N][M])
{inti,j,p;
for(i=0;
N;
{①;
for(j=1;
M;
if(a[i][p]<
a[i][j])
②;
”:
p<
①p=0②p=j
11、下面程序是将字符逆序化,请填空。
①;
{charch[]=”hello,boy!
charc;
inti=0,j=strlen(ch);
for(;
②;
i++,j--)
{c=ch[i];
ch[j-1]=c;
}
②i<
strlen(ch)③ch[i]=ch[j-1]
12、下面程序的功能是将矩阵转置,请填空。
#include<
#defineI3
#defineJ4
voidinvert(inta[I][J])
intb[J][I];
”arraya:
I;
{for(j=0;
J;
{cout<
a[i][j]<
”arrayb:
i+=)
b[i][j]<
intmain()
{inta[I][J]={{1,2,3,4},{5,6,7,8},{1,3,5,7}};
invert(inta[I][J]);
①b[j][i]=a[i][j]
四、程序分析题
1、下面程序的输出结果是( 816 )
intfunc(inta,intb)
{staticintm=0;
inti=2;
i+=m+1;
m=i+a+b;
return(m);
{intk=4,m=1,p;
p=func(k,m);
p;
2、下面程序的输出结果是( 61515 )
intd=1;
fun(intp)
{staticintd=5;
d+=p;
d;
return(d);
{inta=3;
fun(a+fun(d))<
3、下面程序的执行结果是( hlo )
charch[]=”hello,boy!
voidfun2(inti);
voidfun1(inti)
{cout<
ch[i];
if(i<
3)
{i+=2;
fun2(i);
voidfun2(inti)
if(i<
fun1(i);
{inti=0;
4、下面程序的执行结果是( )
{inta[10]={0,1,2};
intj;
for(j=2;
6;
a[j+1]=a[j]+2×
a[j-1]×
a[j-2];
”Thearrayis:
for(j=0;
”a[“<
”]is”<
a[j];
5、当输入123时,下列程序的输出结果是( 123 )
{intstr[3],i,*p=str;
{cin>
*p++;
*(p-1);
6、下面程序的输出结果是( 6 )
voidfunc(int*a,intb[])
{b[0]=*a+6;
{inta,b[5];
b[0]=3;
func(&
a,b);
cout<
b[0];
7、下列程序的输出结果是( 6 )
intb=2;
intfunc(int*a)
{b+=*a;
return(b);
{inta=2,res=2;
res+=func(&
a);
res;
8、下面程序的输出结果是( 3600 )
intw=3;
intfun(int);
{intw=10;
fun(5)×
w<
intfun(intk)
{if(k==0)returnw;
return(fun(k-1)×
k);
9、下面程序的输出结果是(789 )
intf(int);
{inta=2,j;
;
intf(inta)
五、应用题
a)从键盘上输入10个int型数,去掉重复的,将剩余的由大到小排序输出。
b)输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
c)有n个人围成一圈,顺序排号。
从第1个人开始报数,凡报到3(1~3报数)的人退出圈子,问最后留下的人原来排在第几号。
d)将一个数组中的值按逆序重新存放。
e)猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天将剩下的桃子吃掉一半,且又多吃了一个。
以后每天都吃了前一天剩下的一半另加一个。
到第10天想再吃时,就只剩一个桃子了。
求第一天共摘了多少桃子。
f)输入圆柱体的底圆半径和圆柱体的高,求出底面面积、表面积及其体积。
要求用虚函数实现。