C++基础习题Word文档下载推荐.docx
- 文档编号:8098457
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:17
- 大小:26.58KB
C++基础习题Word文档下载推荐.docx
《C++基础习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++基础习题Word文档下载推荐.docx(17页珍藏版)》请在冰点文库上搜索。
E.charch='
F.intarray[5]={1,2,3,4,5};
G.chars[]="
Hello"
;
8、无论循环条件是否成了,循环至少执行一次的是。
A.for语句B.while语句C.do...while语句D.以上都不是
9、要判断char型变量m是否是数字字符,可以使用下列表达式。
A.0<
=m&
&
m<
=9B.'
0'
<
='
9'
C."
0"
="
9"
D.'
=m<
Z'
10、从语法上,下列语句正确的是______。
A.intA='
int&
B=A;
B.intA=65;
int*p=A;
C.intA=088;
D.intA=0x65;
int*p=*A;
11、floatm=3/2+0.5;
运行后m的值为:
____________
A.3B.2C.1.5D.1
12、以下两个函数原型,不可同时存在的是:
_____________
A.floatAdd(floata,floatb);
floatAdd(floata,intb);
B.doubleAdd(floata,floatb);
floatAdd(floata,floatb);
C.floatAdd(floata,floatb=0);
floatAdd(floata,intb,intc);
D.doubleAdd(doublea,doubleb);
13、以下对字符串的初始化中,无法得到一个符合C++规范的字符串的是:
A.charstr[1024]={'
'
B'
C'
};
B.charstr[3]={'
C.charstr[1024]="
ABC"
D.charstr[10]="
14、从语法上,下列语句正确的是______。
A.intA[1024];
B.intA[1024];
C.intA[1024];
int**p=A;
D.intA[1024];
intp[1024]=A;
二、填空题(每空1分,共5分)
1.程序构造的基本方法是和。
2.计算机的存储器有内存和外存之分。
程序员编写的程序以文件形式保存在磁盘上,目的是。
执行程序时,程序代码必须放在内存中,原因是。
3.CPU中的Cache主要解决计算机CPU和主存之间问题。
第二部分C++程序设计
三、单选题(每题1分,共20分)
1.C++中的实数可以写成不同表示形式,下列表示形式中不正确的是。
A.54.32B.5.432E1C.1e5.432D..5432e2
2.下面选项中能用作用户自定义的标识符是。
A.what?
B.-varC.3XyzD.Float
4.设有如下定义:
inta=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:
(m=a>
b)&
(n=c>
d)后,m,n的值为。
A.0,0B.0,2C.1,0D.2,2
5.设有说明:
intx=10,f;
floaty=2.5;
执行表达式f=x/(int)y后,则f、y的值分别为。
A.4,2B.5,2C.4,2.5D.5,2.5
6.设有变量说明inti=3,j=5,m;
执行语句m=(i++)-(--j);
后,m的值是。
A.-1B.0C.-2D.不确定,与编译器有关
7.为了使输出结果为4,执行以下程序时给a和b输入的值应满足的条件是。
#include<
iostream.h>
voidmain()
{ints,t,a,b;
cin>
>
a>
b;
s=1,t=1;
if(a>
0)s++;
b)t++;
elseif(a==b)t+=s;
elset=2*s;
cout<
<
t;
}
A.a>
bB.a<
b<
0C.0<
a<
bD.0>
b
8.若a,b均为int型变量,且a=100,则以下关于for循环语句的正确判断是。
for(b=99;
a!
=b;
++a,b--)cout<
“----\n”;
A.循环体只执行一次B.死循环
C.循环体不执行D.输出----
9.在下面的函数原型说明中,存在着语法错误的是。
A.
void
BC(int
a,int);
B.intBD(int,int);
C.
doubleBE(int,int=5);
D.int
BF(int
x;
int
y);
10.下列函数定义中,会出现编译错误的是。
A.voidmax(intx,inty,int&
z)B.intmax(intx,y)
{z=x>
y?
x:
y;
}{intz;
z=x>
returnz;
}
B.intmax(intx,inty)D.intmax(intx,inty)
{intz;
{return(x>
}
z=x>
returnz;
11.设有函数定义:
voidf(intn,doublex);
若以下选项中的变量都已正确定义并赋值,则调用f函数的正确形式为。
A.f(inti,doublez);
B.j=f(1,100);
C.f(x,n);
D.voidf(n,x);
12.有以下程序
intfun1(doublea){return2*a;
intfun2(doublex,doubley)
{doublea=fun1(x);
doubleb=fun1(y);
returna+b;
voidmain()
{intw=fun2(1.4,2.2);
return1;
程序执行后变量w中的值是。
A.7B.6C.6.0D.1
13.设有函数定义intadd(intx,inty){returnx+y;
},则其不正确的重载函数的定义是。
A.voidadd(intx,inty){return;
B.add(intx,inty,intz){returnx+y+z;
C.intadd(doblex,doubley){returnx+y;
D.doubleadd(intx,doubley){returnx+y;
14.下列程序在编译时有错,该错误所在行是。
#defineN3//A
voidmain(void)
{intdata[N][N];
//B
for(inti=0;
i<
N;
i++)
for(intj=0;
j<
j++)
cin>
data[i][j];
//C
for(inti=0;
for(j=0;
j++)//D
cout<
data[i][j]<
‘\t’;
cout<
endl;
A.A和BB.AC.CD.D
15.对于下列程序片段,叙述正确的是。
#include<
#defineM(a,b)a*b;
{intx=M(3+4,5+6),y;
y=M(3,4);
x<
‘\t’<
y<
A.输出2912B.输出7712
C.输出4112D.编译有错
16.设有说明staticintn1=10;
constintn2=10;
intn4=10;
#definen310
则关于下列语句叙述正确的是。
①intdata1[n1];
②intdata2[n2];
③intdata3[n3];
④intdata4[n4];
A.全部正确B.①②③均正确C.②③均正确D.均不正确
17.假如有:
inta=68;
charc1=a;
c1<
则输出结果为:
A.aB.68C.DD.语法错
18.设有定义:
intx[10]={0};
inty[]={1,2,3};
则下列叙述正确的是。
A.数组x的首元素为零,其他元素为随机数。
组y的大小不确定;
B.数组x的所有元素均为零。
数组y的大小为3;
C.数组x的所有元素均为零,数组y的大小不确定;
D.数组x的首元素为零,其他元素为随机数。
数组y的大小为3。
19.设有定义inta[]={1,2,3,4,5,6,7,8,9,10};
则下列表达式中,数值为4的表达式的个数为。
①a[4]②a[10]-6③a[3]+1④a[a[9]-a[6]]
A.1B.2C.3D.4
20.以下能正确定义二维数组的是。
A.inta[][4];
B.inta[][4]={2*4};
C.inta[][4]={};
D.inta[2][4]={{1},{2},{3,4},{5}};
四、阅读程序题(共41分)(注:
答案请写在该题右边空白处。
)
1.以下程序片段的输出结果为(4分)
{inta=97;
charc=0x61;
//十六进制数61H
hex<
c<
a+c<
2.以下程序运行后的输出结果是(4分)
{intx=1,y=2,z=3,t=0;
if(y<
x&
z)t=x;
x=z;
z=t;
if(x<
z&
z)t=y;
y=z;
x=t;
z<
t<
3.以下程序运行后的输出结果是(4分)
intf(intn){returnn%2;
{intdata[8]={1,3,5,2,4,6},s=0;
for(inti=0;
f(data[i]);
i++)
s+=data[i];
s<
4.以下程序运行后的输出结果是(6分)
voidf(intx,int&
y)
{intt;
t=x;
x=y;
y=t;
{inta=10,b=20;
f(a,b);
5.仔细阅读下列程序,回答后面的问题(第一问4分,第二问2分)
doublef()
{staticdoublef1=1;
staticdoublef2=0;
doublef3=f1+f2;
f1=f2;
f2=f3;
returnf3;
{intn;
n;
for(inti=1;
=n;
f()<
(1).当从键盘输入4时,程序的输出结果是。
(2).该程序的功能是。
6.程序运行后的输出结果是(4分)
voidf(intx[],inti,intj)
if(i<
j){
t=x[i];
x[i]=x[j];
x[j]=t;
i++;
j--;
f(x,i,j);
{intdata[]={2,0,3,8};
f(data,0,3);
4;
i++)cout<
data[i]<
7.程序运行后的输出结果是(7分)
{intdata[]={6,5,4,3,2,1,0};
3;
for(intj=0;
6-i;
if(data[j]>
data[j+1]){
intt=data[j];
data[j]=data[j+1];
data[j+1]=t;
}
for(i=0;
7;
8.当程序运行过程中从键盘输入3时,输出结果是(6分)
{
constintN=10;
intdata[N][N]={0};
intn;
intk=1;
“请输入一个不大于10的正整数:
\n“;
for(intm=0;
m<
=n-1;
m++)
=m;
data[m-j][j]=k++;
for(m=n;
=2*(n-1);
for(intj=m-n+1;
i++){
cout<
五、程序完善题(每空2分,共24分)
1.有一堆桃子不知数目,猴子第一天吃掉一半,觉得不过瘾,又多吃了一只,第二天照此办理,吃掉剩下桃子的一半另加一个,天天如此,到第十天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个?
以下是求解上述问题的程序,请仔细阅读,并完善程序。
(6分)
voidmain(void)
{int;
for(;
i>
0;
i--)
;
”这堆桃子原来共有”<
num<
”只!
”<
2.完善下列程序,使其运行后能输出如右图1所示的图形(6分)
{
charc=‘A’;
i<
=4;
i++){
for(intj=1;
j<
=4-i;
j++)
A
BBB
CCCCC
DDDDDDD
图1第2题的输出结果
"
"
for(j=1;
=;
c;
c++;
;
for(i=1;
=3;
=i;
c--;
3.下列程序的功能是在有序(降序)的数组中,用二分法查找指定的元素,请完善该程序(6分)
intB_Search(intdata[],intx,intn)
{intright=n-1;
intleft=0;
intindex;
while(left<
=right){
index=(left+right)/2;
if(data[index]<
x);
elseif(data[index]>
elsereturnindex;
{intdata[]={9,8,6,5,4,3,2,1};
intz;
请输入待查的数:
z;
intindex=B_Search(data,z,sizeof(data)/sizeof(int));
if(index==-1)
数组中无此元素!
else
在数组中的位置为:
index<
4.下列程序的功能是判别从键盘输入的一个不超过5位的整数是不是回文数,请完善程序。
intIs_Palindrome(intdata[],intn)
if()return0;
else{
left++;
right--;
}
{constintN=5;
intdata[N];
intnum=0;
intx;
请输入待判别的数(不超过5位整数):
x;
intz=x;
while(z!
=0){
data[num]=z%10;
num++;
intflag=Is_Palindrome();
输入的数据是:
if(flag)
该数是回文数!
该数不是回文数!
(此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容,供参考,感谢您的配合和支持)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 基础 习题