C++作业14章李利明.docx
《C++作业14章李利明.docx》由会员分享,可在线阅读,更多相关《C++作业14章李利明.docx(13页珍藏版)》请在冰豆网上搜索。
C++作业14章李利明
单选题
#include
#include
voidmain()
{ints[]={123,234};
cout<for(inti=0;i<2;i++)
{
cout<
}
}
运行时的输出结果是()。
A
123
234
B
***123
234
C
***123
***234
D
***123
234***
参考答案
B
2.已知数组arr的定义如下:
intarr[5]={1,2,3,4,5};下列语句中输出结果不是2的是
A cout<<*arr+1<B cout<<*(arr+1)<C cout<D cout<<*art<参考答案
D
3.计算斐波那契数列第n项的函数定义如下:
intfib(intn)
{ if(n==0) return1;
else if(n==1) return2;
else return fib(n-1)+fib(n-2);
}
若执行函数调用表达式fib
(2),函数fib被调用的次数是( )。
A 1
B 2
C 3
D 4
参考答案
B
4.有如下程序段:
inti=1;
while
(1)
{ i++;
if(i==10)break;
if(i%2==0) cout<<'*';
}
执行这个程序段输出字符*的个数是( )。
A 10
B 3
C 4
D 5
参考答案
C
5.#include
charfun(charx,chary)
{
if(x returny;
}
voidmain()
{
inta='9',b='8',c='7';
cout<}
程序的执行结果是________。
A 函数调用出错
B 8
C 9
D 7
参考答案
D
6.下述关于C++函数的叙述中,正确的是( )。
A 每个函数至少要具有一个参数
B 每个函数都必须返回一个值
C 函数在被调用之前必须先声明
D 函数不能自己调用自己
参考答案
C
7.
下列程序的输出结果是( )。
#include
voidfun(inta,intb)
{
inttemp;
temp=a;
a=b;
b=temp;
}
voidmain( )
{
intm=1,n=2;
fun(m,n);
cout<}
A 12
B 21
C 22
D 程序有错误
参考答案
A
8.程序中有如下语句:
for(inti=0;i<5;i++)
cout<<*(p+i)<<",";
能够依次输出int型一维数组a的前5个元素。
由此可知,变量p的定义及初始化语句是( )
A int*p=a;
B intp=a;
C *p=a;
D p=a;
参考答案
A
9.下列程序的输出结果是( )。
#include
usingnamespacestd;
intmain( )
{
chara[ ]="Hello,Test";
char*p=a;
while (*p)
{
if(*p>='a' && *p<='z')
cout< else cout<<*p;
p++;
}
return0;
}
A hello,test
B Hello,Test
C HELLO,TEST
D hELLO,tEST
参考答案
C
10.要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30、50、-88、0和0,则下列定义语句中错误的是( )。
A intvect[]={30,50,-88};
B intvect[]={30,50,-88,0,0};
C intvect[5]={30,50,-88};
D intvect[5]={30,50,-88,0,0};
参考答案
A
11.有下列程序:
#include
voidmain( )
{
intx;
int&y=x;
y=99;
cout<<"x="<}
则程序的运行结果是( )。
A x=99
B x=9
C x=0
D 异常
参考答案
A
12.已知语句:
while(!
x)
其中表达式!
x等价于__________。
A x=1
B x!
=0
C x==0
D x!
=1
参考答案
C
13.下列哪个是C++语言的合法的字符常量__________。
A ”\0”
B ’054’
C ’\x89’
D ’\092’
参考答案
C
14.表达式(1,2,3,4)的结果是__________。
A 1
B 2
C 3
D 4
参考答案
D
15.设有数组定义:
chararray[]="China";,则数组array所占的空间为__________。
A 4个字节
B 5个字节
C 6个字节
D 7个字节
参考答案
C
填空题
1若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为__1__。
参考答案
1:
double类型 或 double型 或 双精度 或 双精度类型 或 双精度型 或 double
2.利用表达式a[i]可以访问int型数组a中下标为i的元素。
在执行了语句int*p=a;后,利用指针p也可访问该元素,相应的表达式是__1__。
参考答案
1:
*(p+i)
3.有如下循环语句:
for(inti=50;i>20;i-=2)cout<
运行时循环体的执行次数是__1__次。
参考答案
1:
15
4.#include
voidmain()
{
chark='c',h='d';
inti=1,j=2;
k+=i++;
h-=--j;
cout<}
程序的运行结果:
__1__。
参考答案
1:
dc21
5.下程序计算表达式
的值。
#include
voidmain()
{
intn,k=1,sum=0,mean;
cout<<"输入n的值:
";
cin>>n;
while(k<=n)
{
sum=sum+k*k;
__1__;
}
if(n>0)mean=sum/n;
elsemean=0;
cout<<"表达式的值="<}
填空以完成该程序。
参考答案
1:
k++ 或 k=k+1
6.完成以下程序,实现将十进制数1234转换为八进制数:
#include
voidmain( )
{
__1__;
f(1234);
}
voidf(intn)
{
if(n>=8)
f( __2__ );
cout<}
参考答案
1:
voidf(int) 或 voidf(intn) 或 voidf(intn); 或 voidf(int);
2:
n/8 或 (n-n%8)/8 或 (int)(n/8)
7.若以下列程序运行时输出结果为:
1,A,10.1
2,B,3.5
请将程序补充完整。
#include
usingnamespacestd;
intmain( )
{
voidtest(int,char,double__1__ );
test(1,'A',10.1);
test(2,'B');
return0;
}
voidtest(inta,charb,doublec)
{
cout<}
参考答案
1:
=3.5
8.阅读以下程序:
#include
voidabc(charstr[ ])
{
inta,b;
for(a=b=0;str[a]!
='\0';a++)
if(str[a]!
='c')
str[b++]=str[a];
str[b]='\0';
}
intmain( )
{
charstr[ ]="abcdef";
abc(str);
cout<<"str[ ]="< return0;
}
程序运行时的输出结果是__1__。
参考答案
1:
str[]=abdef
9.Break语句用于结束整个循环,__1__语句用于结束本次循环。
参考答案
1:
continue
10.
C++语言的参数传递机制包括传值和__1__两种。
参考答案
1:
传地址 或 传址
11.阅读以下程序:
#include
inta=3,b=5;
max(inta,intb)
{ intc; c=a>b?
a:
b; return(c);}
voidmain( ){
inta=8;
cout<<"max="<写出其运行结果:
__1__,
参考答案
1:
5
问答题(阅读程序写结果)
1.
#include
usingnamespacestd;
intmain()
{
introw(9);
inti,j,n;
n=row/2+1;
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
cout<<'';
for(j=1;j<=2*i-1;j++)
cout<<'*';
cout< }
for(i=1;i<=n-1;i++)
{
for(j=1;j<=i;j++)
cout<<'';
for(j=1;j<=row-2*i;j++)
cout<<'*';
cout< }
return0;
}
参考答案
*
***
*****
*******
*********
*******
*****
***
*
2.
阅读以下程序:
写出其运行结果:
参考答案
20
3.阅读以下程序:
写出当j=1时,程序运行时的输出结果:
参考答案
s=18
编程题
1.
计算分段函数:
使用库函数sqrt来计算平方根。
2.
求[1000,2000]之间最小的素数和最大的素数。
要求判断一个数是否为素数的函数原型为:
intisprime(intx);
若x是素数,则返回1,否则返回0。