c++大一模拟试题带答案.docx

上传人:b****4 文档编号:24798279 上传时间:2023-06-01 格式:DOCX 页数:16 大小:19.79KB
下载 相关 举报
c++大一模拟试题带答案.docx_第1页
第1页 / 共16页
c++大一模拟试题带答案.docx_第2页
第2页 / 共16页
c++大一模拟试题带答案.docx_第3页
第3页 / 共16页
c++大一模拟试题带答案.docx_第4页
第4页 / 共16页
c++大一模拟试题带答案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c++大一模拟试题带答案.docx

《c++大一模拟试题带答案.docx》由会员分享,可在线阅读,更多相关《c++大一模拟试题带答案.docx(16页珍藏版)》请在冰豆网上搜索。

c++大一模拟试题带答案.docx

c++大一模拟试题带答案

模拟试卷(A卷)

一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在括号内。

每小题2分,共15小题,30分)

1.下列字符串中不能作为C++标识符使用的是()。

A、WHILEB、userC、_lvarD、9stars

2.C++语言规定:

在一个源程序中,main函数的位置()。

A、必须在程序的最开始B、必须在系统调用的库函数的后面

C、可以任意D、必须在程序的最后

3.假定int类型变量占用两个字节,其有定义int?

x[10]={0,2,4};,则数组x在内存中所占字节数是()。

?

A、3?

?

?

B、6?

C、10?

?

?

D、20?

4.判断字符型变量ch是否为大写英文字母,应使用表达式()。

A、ch>='A'&ch<='Z'B、ch<='A'||ch>='Z'

C、'A'<=ch<='Z'D、ch>='A'&&ch<='Z'

5.已知下列语句中的x和y都是int型变量,其中错误的语句()。

A、x=y++;B、x=++y;C、(x+y)++;D、++x=y;

6.有如下程序段:

  inti=1;

  while

(1){

  ?

?

?

i++;

  ?

?

?

if(i==10)break;

 ?

?

?

 if(i%2==0)cout<<'*';

  }

执行这个程序段输出字符*的个数是()。

 A、10B、3  C、4D、5

7.有如下程序?

#include?

usingnamespacestd;

int?

func(int?

a,int?

b)?

{?

return(a+b);

}?

int?

main()?

{?

int?

x=2,y=5,z=8,r;?

r=func(func(x,y),z);?

cout<

return0;

}?

该程序的输出的结果是?

()

A、12?

?

B、13?

C、14?

?

?

D、15

8.执行语句序列

intn;

cin>>n;

switch(n)

{case1:

case2:

cout<<'1';

case3:

case4:

cout<<'2';break;

default:

cout<<'3';

}

时,若键盘输入1,则屏幕显示()。

A、1B、2C、3D、12

9.若二维数组a有m列,则在a[i][j]之前的元素个数为()。

A、j*m+iB、i*m+jC、i*m+j-1D、i*m+j+1

10.语句的int*p=&k定义于指针P,于这个语句等效的语句序列是()。

A、int*p;p=&k;B、int*p;p=k;C、int*p;*p=&k;D、int*p;*p=k;

11.已知:

intm=10;在下列定义引用的语句中,正确的是()。

A、int&x=m;B、inty=&m;C、int&z;D、int&t=&m;

12、有如下程序段

inti=0,j=1;

int&r=i;//①

r=j;//②

int*p=&i;//③

*p=&r;//④

其中会产生编译错误的语句是()。

A、④B、③C、②D、①

13.在函数中,可以用auto,extem,register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是()。

A、autoB、extemC、registerD、static

14.已知数组arr的定义如下:

()。

intarr[5]={1,2,3,4,5};

下列语句中输出结果不是2的是

A、cout<<*arr+1<

C、cout<

15.在类声明中,紧跟在“public:

”后声明的成员的访问权限是()。

A、私有B、公有C、保护D、默认

二、改错题(每题有几处错误,在错误处画线,并写出正确语句。

每找对1个错误,加1分,每修改正确1个错误,再加1分。

共3小题,共16分)

1.#include

usingnamespacestd;

constfloatpi=3.1416;

constfloatr=3.2;

intmain(){

floats1;

r=2.8;

c1=pi*r*r;

s1=2*pi*r;

cout<

return0;

}

2.下列程序功能是求x的y次方(缺省是x的2次方)?

?

#include?

usingnamespacestd;?

double?

fun(double?

x,double?

y)?

?

?

?

{int?

i;?

double?

s=1;?

for(i=0//i=1;i

s=s*x;?

return?

?

s;?

}?

int?

main()?

{?

double?

x=2.5,y=3;?

?

cout<<"pow(2.5,2):

"<

cout<<"pow(2.5,3):

"<

return0;

?

}?

3.将一维数组按升序排列。

?

#include?

usingnamespacestd;?

void?

sort?

(?

int?

*p,int?

n)?

?

?

?

?

?

?

{?

?

int?

i,j,temp;?

?

?

?

for?

(i=0;i

?

?

?

?

?

for?

(j=i+1;j

?

?

?

?

?

?

?

if?

?

(p[i]

?

?

?

?

?

?

?

?

{?

temp=p[i];

p[i]=p[j];

p[j]=temp;?

}

?

}?

int?

main(?

void)?

{?

?

int?

a1[6]={1,3,2,5,4,6},*pi,i;?

?

?

?

pi=a1//pi=a1[0];?

sort?

(pi,6);?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

for?

(i=0;i<6;i++)?

cout<

?

?

?

cout<

return0;

}

三、程序理解分析题(分析下列程序代码,并写出程序的输出结果,共4小题,每题4分,共16分)

1.#include?

usingnamespacestd;

intmain()

{

intsum;

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

{

sum=i;

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

sum+=j;

}

cout<

return0;

}

2.#include

usingnamespacestd;

intmain()

{

inti=5;

int&r=i;r=7;

cout<

return0;

}

3.#include

usingnamespacestd;

intmain()

{

chara[]="abcdabcabfgacd";

inti1=0,i2=0,i=0;

while(a[i]!

='\0')

{if(a[i]=='a')

i1++;

if(a[i]=='b')

i2++;

i++;

}

cout<<"i1="<

return0;

}

4.#include

usingnamespacestd;

inta=200;

voids()

{staticinta=20;

a++;

cout<

}

intmain()

{inti;

for(i=1;i<=2;i++)

{a++;

cout<

s();

}

return0;

}

四、程序填空题(在横线处填上一个语句,使程序实现其相应的功能。

每空3分,共6个空,总共18分)

1、求三个数中的最大值和最小值。

#include

usingnamespacestd;

voidmaxmin(inta,intb,intc,int&m,int&n)

{intt;

if(a

if(a

if(b

_______m_____=a;/*第一空*/

_____n______=c;/*第二空*/

}

intmain()

{inta,b,c,max,min;

cout<<"Pleaseinputabc:

";

cin>>a>>b>>c;

maxmin(a,b,c,max,_______min______);/*第三空*/

cout<<"a="<

cout<<"max="<

return0;

}

2.以下程序的功能是输出二维数组中最大值所在行内最小元素的值。

#include

usingnamespacestd;

intfun(inta[4][5])

{inti,j,m=0,n=0,min;

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

for(j=0;j<5;j++)

if(a[m][n]

{________m=i_________/*第一空*/

n=j;

}

_____min=a[m][0]____________/*第二空*/

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

if(min>a[m][j])

_____min=a[m][j]____________/*第三空*/

returnmin;

}

intmain()

{inti,j,min;

inta[4][5]={{2,3,6,4,1},{25,54,23,28,26},

{7,9,15,20,35},{67,18,30,88,38}};

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

{for(j=0;j<5;j++)

cout<

cout<

}

min=fun(a);

cout<

return0;

}

五、程序设计题(根据功能要求,编写程序,实现其功能,2题,每题10分,共20分)

1.请编写一个函数longsum(intn),用递归函数完成运算:

sum(n)=1*1+2*2+…+n*n,递归表达式为sum(n)=sum(n-1)+n2。

?

请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。

#include?

usingnamespacestd;

longsum(intn)?

?

?

{

?

?

intsum=0;

while(n>0)

{sum+=n*n;

n--;}

returnsum;

}?

intmain()?

?

?

{?

intn;?

cout<<"输入n:

";?

?

?

?

?

cin>>n;?

?

cout<<"结果为:

"<

return0;

}?

?

?

2.请编写函数fun(),该函数的功能是判断字符串是否为回文,若是则函数返回1,主函数中输出YES;否则返回0,主函数中输出NO。

回文是指顺读和倒读都一样的字符串。

?

?

?

例如:

字符串LEVEL是回文,而字符串123312就不是回文。

请勿修改主函数main和其他函数中的任何内容,仅在函数fun的花括号中填写若干语句。

?

?

?

#include

usingnamespacestd;?

?

#defineN80?

?

?

intfun(char*str)?

?

?

{?

?

?

}?

?

?

intmain()?

?

?

{?

chars[N];?

?

?

?

?

cout<<"Enterastring:

"<

?

?

?

?

gets(s);?

?

?

?

?

cout<<"\n\n";?

?

?

?

?

puts(s);?

?

?

?

?

if(fun(s))?

?

?

?

?

cout<<"YES\n";?

?

?

?

?

else?

?

?

?

?

cout<<"NO\n";?

return0;

}?

?

?

模拟试卷(A卷)

参考答案及评分标准

一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在括号内。

每小题2分,共15小题,30分)

1.D2.C3.D4.D5.C6.C7、D8.D9.B10.A

11.A12、A13.A14.D15.B

二、改错题(每题有几处错误,在错误处画线,并写出正确语句。

每找对1个错误,加1分,每修改正确1个错误,再加1分。

共3小题,共16分)

1.答案:

#include

usingnamespacestd;

constfloatpi=3.1416;

constfloatr=3.2;

intmain(){

floats1,c1;

//r=2.8;

c1=pi*r*r;

s1=2*pi*r;

cout<

return0;

}

2.答案:

#include

usingnamespacestd;

doublefun(doublex,doubley)

{inti;

doubles=1;

for(i=1;i<=y;i++)

s=s*x;

returns;

}

intmain()

{doublex=2.5,y=3;

cout<<"pow(2.5,2):

"<

cout<<"pow(2.5,3):

"<

return0;

}

3.答案:

#include

usingnamespacestd;

voidsort(intp[],intn)

{inti,j,temp;

for(i=0;i

for(j=i;j

if(p[i]>p[j])

{temp=p[i];

p[i]=p[j];

p[j]=temp;}

}

intmain(void)

{inta1[6]={1,3,2,5,4,6},*pi,i;

pi=a1;

sort(pi,6);

for(i=0;i<6;i++)cout<

cout<

return0;

}

三、程序理解分析题(分析下列程序代码,并在程序右侧写出程序的输出结果,共4小题,每题4分,共16分)

1.运行时的输出结果是15

2.运行时的输出结果是7

3.运行时的输出结果是i1=4,i2=3

4.运行时的输出结果是201,21,202,22

四、程序填空题(在横线处填上一个语句,使程序实现其相应的功能。

每空3分,共6个空,总共18分)

1、m/*第一空*/

n/*第二空*/

min/*第三空*/

2.m=i;/*第一空*/

min=a[m][0];/*第二空*/

min=a[m][j];/*第三空*/

五、程序设计题(根据功能要求,编写程序,实现其功能,2题,每题10分,共20分)

1.【参考答案】?

?

longsum(int?

n)

?

{?

if(n==1)?

?

?

?

?

return?

1;?

?

?

?

?

else?

?

?

?

?

?

?

return?

n*n+sum(n-1);?

}

2.【参考答案】

?

?

?

int?

fun(char?

*str)?

?

?

{?

?

?

?

int?

i,n=0,fg=1;?

?

?

?

char?

*p=str;?

?

?

?

while(*p)?

?

?

?

{?

n++;?

p++;?

}?

?

?

?

for(i=0;i

?

?

?

if(str[i]==str[n-1-i])?

;?

?

?

?

else?

?

?

?

{?

fg=0;?

break;?

}?

?

?

?

return?

fg;?

?

?

?

}?

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1