C++模考1含试题与答案.docx

上传人:b****5 文档编号:6132177 上传时间:2023-01-04 格式:DOCX 页数:10 大小:72.48KB
下载 相关 举报
C++模考1含试题与答案.docx_第1页
第1页 / 共10页
C++模考1含试题与答案.docx_第2页
第2页 / 共10页
C++模考1含试题与答案.docx_第3页
第3页 / 共10页
C++模考1含试题与答案.docx_第4页
第4页 / 共10页
C++模考1含试题与答案.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

C++模考1含试题与答案.docx

《C++模考1含试题与答案.docx》由会员分享,可在线阅读,更多相关《C++模考1含试题与答案.docx(10页珍藏版)》请在冰豆网上搜索。

C++模考1含试题与答案.docx

C++模考1含试题与答案

2017C++模考固定试题1解答

一、单选题(总分:

,共30题)

1.设a和b为整型变量,执行语句b=(a=2+3,a*4),a+5;后a和b的值为(D)。

,10,25,25,20

2.x为int型,s为float型,x=3,s=。

表达式s+x/2的值为(B)。

3.在以下选项中,与k=n++完全等价的表达式是(A)。

=n,++n;=n+1,k=n;=++n;+=n+1;

4.有定义:

inta;doubleb;则表达式a+4/b结果的数据类型为(B)。

5.以下程序段的结果是(B)。

intm=0,n=0;if(++m&&++n)cout<

0,1,0,1

6.有循环结构程序段:

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

cout<

cout<

下列说法错误的是(C)。

A.循环体语句被执行了9次;B.循环体只包含一个语句;

C.第2个cout语句输出i值为9;,2,3,4,5,6,7,8,9,10都被输出。

7.若已有inte;则while(e){⋯};中的循环控制条件等价于:

(B)。

==0B.e!

=0C.e==1!

=1

8.下面(D)不是必须的c++源程序格式要求。

A.语句以分号结束B.编译命令不要以分号结束

C.函数体放在{}内D.{}内的语句向右缩几个字符

9.设x、y、z、t均为int变量,则执行以下语句后,t的值为(C)。

x=y=z=1;t=++x||++y&&++z;

A.不定值

10.t为int类型,进入下面的循环之前,t的值为0。

对下面的语句:

while(t=1){...}。

则以下叙述中,正确的是(B)。

A.循环控制表达式的值为0B.循环控制表达式的值为1

C.循环控制表达式不合法D.其他说法都不对

11.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则(B)。

A.称为函数的直接递归调用B.称为函数的间接递归调用

C.称为函数的循环调用++中不允许这样的递归调用

12.一个函数的返回值是通过函数中的(A)语句获得的。

13.以下对C++语言函数的描述中,正确的是(A)

++程序由一个或一个以上的函数组成

++函数既可以嵌套定义又可以递归调用

C.函数必须有返回值,否则不能使用函数

++程序中调用关系的所有函数必须放在同一个程序文件中

14.在什么情况下,可以不用对自定义函数进行声明就可以调用(A)。

A.被调用的自定义函数出现在同一文件的主调函数之前

B.主调函数在前,被调函数在后

C.该被调用函数出现在main函数之前

D.不存在这种情况

15.设有一自定义函数的函数头形如:

intf(intx,floaty)。

下列关于该函数的声明语句中,错误的是(A)。

f(intx,floaty)f(int,float);f(inta,floatb);f(intx,floatz);

16.下列程序段的输出结果是(A):

intadd(intx=20,inty=10);voidmain(){inta(30),b(50);cout<

intadd(intx,inty){returnx+y;}

17.全局变量的定义不可能在(A).

A.函数内部B.函数外面C.文件外面D.最后一行

18.在inta[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是(C)。

19.如有定义:

inta[20];则下面可以正确引用数组元素的表达式是(D)。

[20][](5)[10-10]

参考答案:

D

20.在下列对字符数组进行初始化的语句中(A)是正确的。

A.chars1[]=”abcd”;B.chars2[3]=”xyz”;

C.chars3[][]={′a′,′x′,′y′};s4[2][3]={“xyz”,”mnp”};

21.有以下程序段:

chara[10]="abcd";cout<

则执行后的输出结果是(B)。

4,10,8,10

22.设有inta[10],*p=a;则下面哪种表示与a[3]等价(D)。

A.*a+3B.&a[3]=p+2,*p++D.*(p+3)

23.有如下程序段:

int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值是(B)。

D.编译出错

24.要使指针变量p指向一维数组a的第1个元素(下标为0的元素),正确的赋值表达式是(B)。

=a或p=a[0]=a或p=&a[0]=&a或p=a[0]=&a或p=&a[0]

25.假定变量a和pa定义为doublea[10],*pa=a;要将60赋值给a中的下标为5的元素,不正确的语句是(D)。

[5]=60;B.*(pa+5)=60;[5]=60;D.*(a[0]+5)=60;

26.函数的返回值的类型由(C)决定。

A.调用该函数的主调函数类型语句中的表达式类型

C.定义函数时所指定的返回值类型D.调用函数时临时决定

27.下列说法不正确的是(C)。

while和do-while循环体中的语句可以是空语句。

B.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成。

和do-while循环都是先执行循环体语句,后判断循环条件表达式。

循环是先判断循环条件表达式,后执行循环体语句。

28.若i为整型变量,则以下循环的执行次数是(A)。

for(i=2;i==0;)cout<

D.无限次

29.执行if((x=y=2)>=x&&(x=5))y*=x;语句后,变量x、y的值分别为(C)。

、4、2、10D.执行时报错

30.若有:

inta,*p=&a;则下面哪个表达式为假(A)。

A.*p==&a==&*p==&aD.*p==a

二、填空题(总分:

,共23题)

1.C++中的数据有常量和变量之分。

用一个标识符代表一个常量,称为__符号__常量。

2.只有一个分号的语句叫____空语句___。

3.三种基本的程序控制结构是:

顺序结构,选择结构和__循环结构__。

4.break语句用于结束整个循环,__continue__语句用于结束本次循环。

5.Do⋯while语句的循环体至少无条件执行_一__次,而while循环体可能一次也不执行。

(注:

请用汉字答题)

6.在函数体内定义的局部变量,在函数返回时不会被撤销,该变量是__静态__变量。

7.定义函数时,出现在函数名后面括号中的变量名称为_形参或形式参数__。

8.数组名就是数组的____起始____地址。

9.使用函数strcat(str1,str2)连接两个字符串时,连接的结果保存在字符数组_str1_中。

10.完成以下语句,使得当x>10时,y值为5,否则y值为-5:

intx,y;

if(x>10)

y=5;

else

y=-5;

11.设有定义:

chars[]="d\ta\101bc";则调用函数strlen(s)的值为:

__6__。

12.完成以下语句,声明函数max为内置函数:

__inline__intmax(intx,inty);

13.完成以下语句,定义变量x为静态整型变量:

__static___intx;

14.有以下函数声明:

intfun(inta);已定义函数指针变量p,为了使p指向函数fun,则使用的赋值语句为:

p=____fun____;

15.有以下函数定义:

intf1(inta,intb){returna+b;}则执行以下语句:

intx=2,y=4,z=3;cout<

____9____。

16.有数组定义:

inta[5]={1,2,3,4,5};intb[5]={3,6,9,12,15};表达式b[a[3]]的值为:

____15____。

17.设有定义:

inta[3][3]={1,2,3,4,5,6,7,8,9};则值为6的元素是:

____a[1][2]____。

18.假设有以下语句:

inta,x=5,y=6,*p=&x;a=*p;p=&y;则此时a的值为____5____。

19.有下面的程序段:

char*s="abcde",*p;p=s+2;cout<

20.设有以下定义的语句:

inta[3][2]={10,20,30,40,50,60};intb[3][2]={10,20,30,40,50,60};则a[1][1]*b[2][1]=____2400____。

21.若有float型二维数组a[3][4],则与数组元素的指针表示方式*(*(a+2)+3)等价的下标表示方式表示为____a[2][3]____。

22.完善下面的程序段,找出3行×4列矩阵A中第一个最大元素以及它的行号和列号。

#defineM3

#defineN4

intmain()

{inti,j,row,colum,max;

inta[M][N];

for(i=0;i

for(j=0;j

cin>>a[i][j];

max=____[1]____;

row=0,colum=0;

for(i=0;i

for(j=0;j

if(____[2]____)

{

max=a[i][j];

row=i;

colum=j;

}

cout<<"max="<

return0;

}

23.已知费氏(Fibonacci)数列通项:

F0=F1=1(i=0,1),Fi=Fi-1+Fi-2(i>1)

完善下面的程序段,用数组求Fibonacci数列前20项。

intmain()

{inti,f[20];

f[0]=f[1]=____[1]____;

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

f[i]=f[i-1]+____[2]____;

cout<<"Fibonacci:

"<

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

cout<

cout<

return0;

}

三、判断题(总分:

,共15题)

1.全局变量一定是静态变量。

正确

2.符号常量定义为字符常量时,不应用双引号包括该字符。

正确

3.若x为整型变量,j为实型变量,当执行x=(int)j;语句后,j也变为整型变量。

错误

语句的循环体有可能一遍都不执行,而do--while语句至少执行一遍循环体.正确

5.条件运算符的结合方向为从左到右。

错误

6.任何一个表达式加上一个分号就构成一个语句。

正确

7.如果一个函数没有形式参数,调用该函数时,可以省略括号对()。

错误

8.局部变量是指定义在函数或程序块内的变量。

正确

9.凡未附加static关键字定义的局部变量都是自动变量,存储在动态数据存储区。

正确

10.关键字extern即可用于外部函数的定义,也可用于对外部函数的声明。

正确

11.一个C++程序可以包含0个或多个自定义函数。

正确

12.对于一维数组a,a与&a[0]都表示数组中首元素的存储地址,该地址称为数组的首地址。

正确

13.同一数组的不同元素的数据类型可以不同。

错误

14.不指向任何变量或函数的指针,可用NULL表示。

正确

15.在C++中,函数的指针就是函数的入口地址(或首条指令地址)。

正确

四、问答题(总分:

,共5题)

1.(本题分值:

若有下列函数及其相应的调用语句(若有......,表示该题有省略语句,但不影响对该程序结果的判断),则该程序的输出结果是(result=15)。

参考答案:

result=15

2.(本题分值:

若有下列函数及其相应的调用语句(若有......,表示该题有省略语句,但不影响对该程序结果的判断),则该程序的输出结果是(aaaaaa)。

参考答案:

aaaaaa

3.(本题分值:

请写出下面程序运行的结果。

参考答案:

1545

4.(本题分值:

如下程序运行时,输出a[4]值是多少

参考答案:

8

5.(本题分值:

请写出下面程序运行的结果。

参考答案:

53

五、编程题(总分:

,共1题)

编写一个自定义函数:

intf(charx,intN),f()的功能是:

对给定的字符c和整数N,用c代表的符号打印一个N行的图案,每行开头没有任何空格。

比如,当c为"*"且N为5时,打印的图案如本题图所示。

且函数值返回1。

#include

usingnamespacestd;

intf(charx,intN);

intmain()

{

f("*",5);//题目这里的实参"*"写错了,字符常量应该写成'*'

return0;

}

答案:

红色部分是打开题目时就已经有的(不要改动),黑色部分才是考生应写的

#include""

#include

usingnamespacestd;

intf(charx,intN);//被调函数声明(f函数写在主函数后面的话需要此句)

intmain(intargc,char*argv[])//主函数带参数与不带参数一样

{

f('*',5);//函数调用(注意第一个实参是字符常量,该用单引号)

return0;

}

intf(charx,intN)//函数定义的首行(函数功能:

打印N行字符x)

{

for(inti=1;i<=N;i++)//i表示行数,i循环N次,每次循环打印1行,则共打印N行

{for(intj=1;j<=i;j++)//内循环变量j每循环1次输出1个符号x,故第i行应循环i次

cout<

cout<

}

return1;

}

编程题写好后,编译运行看一下,能正确运行则更好;若有错误也无妨,重要的是写了内容,然后“保存”一下,再关闭C++软件窗口,然后“返回考试系统”。

编程题评分办法:

人工评卷(写了语句总会得分)

若程序运行结果正确,则满分;否则,按该题的计分点计算得分。

常见计分点有:

写了预处理语句;写了函数声明语句;写了函数定义;写了变量定义语句;写了初始化语句;写了计算语句;写了选择判断语句;写了循环语句;写了输出结果语句。

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

当前位置:首页 > PPT模板 > 其它模板

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

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