您好,欢迎来到尔游网。
搜索
您的当前位置:首页C++模考1(含试题与答案)(可打印修改)

C++模考1(含试题与答案)(可打印修改)

来源:尔游网
2017C++模考固定试题1解答

一、单选题(总分:30.0,共30题)

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

2. x为int型,s为float型,x=3,s=2.5。表达式s+x/2的值为( B )。A.4 B.3.5 C.2.5 D.3

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

4. 有定义: int a; double b; 则表达式a+4/b结果的数据类型为( B )。A.int B.double C.float D.unsigned5. 以下程序段的结果是( B )。

int m=0, n=0; if (++m && ++n ) cout << m << \A.0,0 B.1,1 C.1,0 D.0,1 6. 有循环结构程序段:for(i=1;i<10;i++)cout<下列说法错误的是( C )。

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

C.第2个cout语句输出i值为9; D.1,2,3,4,5,6,7,8,9,10都被输出。7. 若已有 int e; 则while(e) {⋯};中的循环控制条件等价于:( B )。A.e= =0 B. e!=0 C. e= =1 D.e!=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.不定值 B.2 C.1 D.0

10. t为int类型,进入下面的循环之前,t的值为0。对下面的语句:while ( t=1 ) { ... }。则以下叙述中,正确的是( B )。

A.循环控制表达式的值为0 B.循环控制表达式的值为1C.循环控制表达式不合法 D.其他说法都不对

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

A.称为函数的直接递归调用 B.称为函数的间接递归调用C.称为函数的循环调用 D.C++中不允许这样的递归调用12. 一个函数的返回值是通过函数中的( A )语句获得的。A.return B.exit C.break D.value

13. 以下对C++语言函数的描述中,正确的是( A )A.C++程序由一个或一个以上的函数组成B.C++函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数

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

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

A.被调用的自定义函数出现在同一文件的主调函数之前B.主调函数在前,被调函数在后C.该被调用函数出现在main函数之前D.不存在这种情况

15. 设有一自定义函数的函数头形如:int f( int x, float y)。下列关于该函数的声明语句中,错误的是( A )。

A.int f(int x, float y) B.int f(int, float); C.int f(int a, float b); D.int f(int x, float z);16. 下列程序段的输出结果是( A ):

int add(int x=20,int y=10);void main( ){ int a(30),b(50);cout<17. 全局变量的定义不可能在( A ).

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

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

19. 如有定义:int a[20]; 则下面可以正确引用数组元素的表达式是( D )。A.a[20] B.a[3.5] C.a(5) D.a[10-10] 参:D

20. 在下列对字符数组进行初始化的语句中( A )是正确的。A. char s1[]=”abcd”; B. char s2[3]=”xyz”;

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

21. 有以下程序段:char a[10]=\"abcd\"; cout<A.7,4 B.4,10 C.8,8 D.10,10

22. 设有 int a[10], *p=a ; 则下面哪种表示与a[3]等价( D )。A.*a+3 B.&a[3] C.p=p+2, *p++ D.*(p+3)

23. 有如下程序段:int *p, a=10, b=1; p=&a; a=*p+b; 执行该程序段后,a的值是( B )。A.12 B.11 C.10 D.编译出错

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

A.p=a或p=a[0] B.p=a或p=&a[0] C.p=&a或p=a[0] D.p=&a或p=&a[0]

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

A.pa[5]=60; B.*(pa+5)=60; C.a[5]=60; D.*(a[0]+5)=60;26. 函数的返回值的类型由( C )决定。A.调用该函数的主调函数类型 B.return语句中的表达式类型C.定义函数时所指定的返回值类型 D.调用函数时临时决定27. 下列说法不正确的是( C )。

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

B.使用 while 和do-while循环时,循环变量初始化的操作应在循环语句之前完成。C.for和do-while循环都是先执行循环体语句,后判断循环条件表达式。D.while循环是先判断循环条件表达式,后执行循环体语句。28. 若i为整型变量,则以下循环的执行次数是( A )。for(i=2;i==0;) cout<A.0 B.1 C.2 D.无限次

29. 执行 if((x=y=2)>=x&&(x=5)) y*=x; 语句后,变量 x、y 的值分别为( C )。A.2、4 B.5、2 C.5、10 D.执行时报错

30. 若有:int a,*p=&a; 则下面哪个表达式为假( A )。A.*p= =&a B.p= =&*p C.p= =&a D.*p= =a二、填空题(总分:25.0,共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:int x,y;if (x>10)y=5;else y=-5;

11. 设有定义:char s[]=\"d\a\\101bc\"; 则调用函数strlen(s)的值为:__6__。12. 完成以下语句,声明函数max为内置函数:__inline__ int max(int x,int y);13. 完成以下语句,定义变量x为静态整型变量:__static___ int x;

14. 有以下函数声明:int fun(int a);已定义函数指针变量p,为了使p指向函数fun,则使用的赋值语句为: p=____fun____;

15. 有以下函数定义:int f1(int a,int b){ return a+b; }则执行以下语句:int x=2,y=4,z=3;cout<16. 有数组定义:int a[5]={1,2,3,4,5};int b[5]={3,6,9,12,15}; 表达式b[a[3]]的值为:____15____。

17. 设有定义:int a[3][3]={1,2,3,4,5,6,7,8,9}; 则值为6的元素是:____a[1][2]____。18. 假设有以下语句: int a, x=5, y=6,*p=&x; a = *p;p=&y;则此时a的值为____5____。19. 有下面的程序段:char *s=\"abcde\则运行结果是____cde____。

20. 设有以下定义的语句:int a[3][2]={10,20,30,40,50,60};int b[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中第一个最大元素以及它的行号和列号。

#define M 3#define N 4int main( )

{ int i,j,row,colum,max;int a[M][N];

for(i=0;i>a[i][j];max=____[1]____ ;row=0,colum=0;for(i=0;imax=a[i][j];row=i;colum=j;}

cout<<\"max=\"<23. 已知费氏(Fibonacci)数列通项:F0=F1=1 (i=0,1),Fi=Fi-1+Fi-2 ( i>1)完善下面的程序段,用数组求Fibonacci数列前20项。int main( ){ int i, f[20];

f[0]= f[1]=____[1]____;for(i=2;i<20;i++)

f[i]=f[i-1]+____[2]____;cout<<\"Fibonacci:\"<cout<三、判断题(总分:15.0,共15题)1.全局变量一定是静态变量。正确

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

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

4.while语句的循环体有可能一遍都不执行,而do--while语句至少执行一遍循环体. 正确5.条件运算符的结合方向为从左到右。错误

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

7.如果一个函数没有形式参数,调用该函数时,可以省略括号对( )。错误 8.局部变量是指定义在函数或程序块内的变量。正确

9.凡未附加static关键字定义的局部变量都是自动变量,存储在动态数据存储区。正确10.关键字extern即可用于外部函数的定义,也可用于对外部函数的声明。正确11.一个C++程序可以包含0个或多个自定义函数。正确

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

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

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

15.在C++中,函数的指针就是函数的入口地址(或首条指令地址)。正确四、问答题(总分:20.0,共5题)

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

参:result=15

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

参:a aa aaa

3. (本题分值:4.0) 请写出下面程序运行的结果。

参:1545

4. (本题分值:4.0) 如下程序运行时,输出a[4]值是多少?

参:8

5. (本题分值:4.0) 请写出下面程序运行的结果。

参:5 3

五、编程题(总分:10.0,共1题)

编写一个自定义函数:int f( char x, int N) ,f( )的功能是:对给定的字符c和整数N,用c代表的符号打印一个N行的图案,每行开头没有任何空格。比如,当c为\"*\"且N为5时,打印的图案如本题图所示。且函数值返回1。

#include using namespace std;int f(char x, int N);int main( ){

f(\"*\题目这里的实参\"*\"写错了,字符常量应该写成'*'return 0;}

答案:红色部分是打开题目时就已经有的(不要改动),黑色部分才是考生应写的#include \"stdafx.h\" #include using namespace std;

int f(char x, int N); //被调函数声明(f函数写在主函数后面的话需要此句)int main(int argc, char* argv[ ]) //主函数带参数与不带参数一样{

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

int f(char x, int N) //函数定义的首行(函数功能:打印N行字符x){

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

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

cout<cout<编程题写好后,编译运行看一下,能正确运行则更好;若有错误也无妨,重要的是写了内容,然后“保存”一下,再关闭C++软件窗口,然后“返回考试系统”。编程题评分办法:人工评卷(写了语句总会得分)

若程序运行结果正确,则满分;否则,按该题的计分点计算得分。常见计分点有:写了预处理语句;写了函数声明语句;写了函数定义;写了变量定义语句;写了初始化语句;写了计算语句;写了选择判断语句;写了循环语句;写了输出结果语句。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务