C++基础习题.docx

上传人:b****4 文档编号:6582895 上传时间:2023-05-10 格式:DOCX 页数:17 大小:26.58KB
下载 相关 举报
C++基础习题.docx_第1页
第1页 / 共17页
C++基础习题.docx_第2页
第2页 / 共17页
C++基础习题.docx_第3页
第3页 / 共17页
C++基础习题.docx_第4页
第4页 / 共17页
C++基础习题.docx_第5页
第5页 / 共17页
C++基础习题.docx_第6页
第6页 / 共17页
C++基础习题.docx_第7页
第7页 / 共17页
C++基础习题.docx_第8页
第8页 / 共17页
C++基础习题.docx_第9页
第9页 / 共17页
C++基础习题.docx_第10页
第10页 / 共17页
C++基础习题.docx_第11页
第11页 / 共17页
C++基础习题.docx_第12页
第12页 / 共17页
C++基础习题.docx_第13页
第13页 / 共17页
C++基础习题.docx_第14页
第14页 / 共17页
C++基础习题.docx_第15页
第15页 / 共17页
C++基础习题.docx_第16页
第16页 / 共17页
C++基础习题.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C++基础习题.docx

《C++基础习题.docx》由会员分享,可在线阅读,更多相关《C++基础习题.docx(17页珍藏版)》请在冰点文库上搜索。

C++基础习题.docx

C++基础习题

东南大学考试卷(A卷)

课程名称

程序设计与算法语言Ⅰ

考试学期

12-13-2

得分

适用专业

自动化

考试形式

闭卷

考试时间长度

120分钟

自觉遵守考场纪律如考试作弊此答卷无效

一、选择:

共30分,每题2分

1、下列标识符哪个是不合法的?

___________

A.sinB.5arryC._nameD.Example2_1

2、以下数据类型中,表达单字节整数的是:

A.charB.longlongC.shortD.float

3、下列有关枚举类型的说明哪个是错误的?

_________________

A.枚举常量(或称枚举成员)是以标识符形式表示的整型量;

B.默认状态下,这个整数就是所列举元素的序号,序号从0开始;

C.类型定义时可以为部分或全部枚举常量指定整数值,其余的枚举常量仍按默认方式取值。

D.各枚举常量的值可以重复,但各枚举常量标识符必须不同。

4、C++中表示字符A,作为字面常量,的正确表示方法是___________。

A.'\65'B."A"C.65D.'A'

5、下面有关函数调用的说法哪一个是错误的_________________

A.实参与形参的数目要求必须是相同的;

B.实参与形参的对应关系取决于位置而不是名字;

C.实参与对应的形参应类型匹配,即实参的类型可以转化为形参类型;

D.C++参数传递两种方式:

传值与引用。

6、判断下列哪些正确的常量_______________(多选),

7、判断下列哪些是变量申明_______________(多选)

A."China"

B.constintn=10;

C.intm=5;

D.'a'

E.charch='a'

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'<=m&&m<='9'

C."0"<=m&&m<="9"D.'0'<=m<='Z'

10、从语法上,下列语句正确的是______。

A.intA='A';int&B=A;

B.intA=65;int*p=A;

C.intA=088;int*p=A;

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);

floatAdd(floata,floatb);

13、以下对字符串的初始化中,无法得到一个符合C++规范的字符串的是:

_____________

A.charstr[1024]={'A','B','C'};

B.charstr[3]={'A','B','C'};

C.charstr[1024]="ABC";

D.charstr[10]="ABC";

14、从语法上,下列语句正确的是______。

A.intA[1024];int&B=A;

B.intA[1024];int*p=A;

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

voidmain()

{ints,t,a,b;

cin>>a>>b;

s=1,t=1;

if(a>0)s++;

if(a>b)t++;

elseif(a==b)t+=s;

elset=2*s;

cout<

}

A.a>bB.aa>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>y?

x:

y;

returnz;

}

B.intmax(intx,inty)D.intmax(intx,inty)

{intz;{return(x>y?

x:

y);}

z=x>y?

x:

y;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.下列程序在编译时有错,该错误所在行是。

#include

#defineN3//A

voidmain(void)

{intdata[N][N];//B

for(inti=0;i

for(intj=0;j

cin>>data[i][j];//C

for(inti=0;i

for(j=0;j

cout<

cout<

}

A.A和BB.AC.CD.D

15.对于下列程序片段,叙述正确的是。

#include

#defineM(a,b)a*b;

voidmain()

{intx=M(3+4,5+6),y;

y=M(3,4);

cout<

}

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;

cout<

则输出结果为:

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分)

#include

voidmain()

{inta=97;

charc=0x61;//十六进制数61H

cout<

cout<

cout<

cout<

}

2.以下程序运行后的输出结果是(4分)

#include

voidmain()

{intx=1,y=2,z=3,t=0;

if(y

if(x

cout<

}

3.以下程序运行后的输出结果是(4分)

#include

intf(intn){returnn%2;}

voidmain()

{intdata[8]={1,3,5,2,4,6},s=0;

for(inti=0;f(data[i]);i++)

s+=data[i];

cout<

}

4.以下程序运行后的输出结果是(6分)

#include

voidf(intx,int&y)

{intt;

t=x;x=y;y=t;

cout<

}

voidmain()

{inta=10,b=20;

cout<

f(a,b);

cout<

}

5.仔细阅读下列程序,回答后面的问题(第一问4分,第二问2分)

#include

doublef()

{staticdoublef1=1;

staticdoublef2=0;

doublef3=f1+f2;

f1=f2;f2=f3;

returnf3;

}

voidmain()

{intn;

cin>>n;

for(inti=1;i<=n;i++)

cout<

cout<

}

(1).当从键盘输入4时,程序的输出结果是。

(2).该程序的功能是。

6.程序运行后的输出结果是(4分)

#include

voidf(intx[],inti,intj)

{intt;

if(i

t=x[i];x[i]=x[j];x[j]=t;

i++;j--;

f(x,i,j);

}

}

voidmain()

{intdata[]={2,0,3,8};

f(data,0,3);

for(inti=0;i<4;i++)cout<

cout<

}

7.程序运行后的输出结果是(7分)

#include

voidmain()

{intdata[]={6,5,4,3,2,1,0};

for(inti=0;i<3;i++)

for(intj=0;j<6-i;j++)

if(data[j]>data[j+1]){

intt=data[j];

data[j]=data[j+1];

data[j+1]=t;

}

for(i=0;i<7;i++)

cout<

cout<

}

8.当程序运行过程中从键盘输入3时,输出结果是(6分)

#include

voidmain()

{

constintN=10;

intdata[N][N]={0};

intn;intk=1;

cout<<“请输入一个不大于10的正整数:

\n“;

cin>>n;

for(intm=0;m<=n-1;m++)

for(intj=0;j<=m;j++)

data[m-j][j]=k++;

for(m=n;m<=2*(n-1);m++)

for(intj=m-n+1;j

data[m-j][j]=k++;

for(inti=0;i

for(intj=0;j

cout<

cout<

}

}

五、程序完善题(每空2分,共24分)

1.有一堆桃子不知数目,猴子第一天吃掉一半,觉得不过瘾,又多吃了一只,第二天照此办理,吃掉剩下桃子的一半另加一个,天天如此,到第十天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个?

以下是求解上述问题的程序,请仔细阅读,并完善程序。

(6分)

#include

voidmain(void)

{int;

for(;i>0;i--)

;

cout<<”这堆桃子原来共有”<

”<

}

2.完善下列程序,使其运行后能输出如右图1所示的图形(6分)

#include

voidmain(void)

{

charc=‘A’;

for(inti=1;i<=4;i++){

for(intj=1;j<=4-i;j++)

A

BBB

CCCCC

DDDDDDD

CCCCC

BBB

A

图1第2题的输出结果

cout<<"";

for(j=1;j<=;j++)

cout<

c++;

cout<

}

;

for(i=1;i<=3;i++){

for(intj=1;j<=i;j++)

cout<<"";

for(j=1;j<=;j++)

cout<

c--;

cout<

}

}

3.下列程序的功能是在有序(降序)的数组中,用二分法查找指定的元素,请完善该程序(6分)

#include

intB_Search(intdata[],intx,intn)

{intright=n-1;

intleft=0;

intindex;

while(left<=right){

index=(left+right)/2;

if(data[index]

elseif(data[index]>x);

elsereturnindex;

}

;

}

voidmain(void)

{intdata[]={9,8,6,5,4,3,2,1};

intz;

cout<<"请输入待查的数:

"<

cin>>z;

intindex=B_Search(data,z,sizeof(data)/sizeof(int));

if(index==-1)

cout<<"数组中无此元素!

"<

else

cout<

"<

}

4.下列程序的功能是判别从键盘输入的一个不超过5位的整数是不是回文数,请完善程序。

(6分)

#include

intIs_Palindrome(intdata[],intn)

{intright=n-1;

intleft=0;

while(left<=right){

if()return0;

else{

left++;

right--;

}

}

return1;

}

voidmain(void)

{constintN=5;

intdata[N];

intnum=0;intx;

cout<<"请输入待判别的数(不超过5位整数):

"<

cin>>x;

intz=x;

while(z!

=0){

data[num]=z%10;

;

num++;

}

intflag=Is_Palindrome();

cout<<"输入的数据是:

"<

if(flag)

cout<<"该数是回文数!

"<

else

cout<<"该数不是回文数!

"<

}

 

(此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容,供参考,感谢您的配合和支持)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2