尔雅C++程序设计基础2021春SPOC章节答案(学习通2023题目答案)

尔雅C++程序设计基础2021春SPOC章节答案(学习通2023题目答案)

第一章 计算机基础

第一章单元测试

1、尔雅计算机正在运行的程础春程序存放在( ).
A、RAM
B、序设学习ROM
C、计基CPU
D、章节显示器

2、答案计算机的通题存储程序工作原理是( )提出的。
A、目答图灵
B、尔雅布尔
C、程础春冯?序设学习诺依曼
D、莫奇利

3、计基ROM与RAM的章节主要区别在于( ).
A、ROM可以永久保存信息,答案RAM在断电后信息会丢失
B、ROM掉电后信息会丢失,通题RAM则不会
C、ROM是内存储器,RAM是外存储器
D、RAM的读写速度快,ROM的读写速度慢

4、内存中每个基本单位都被赋予唯一的序号,称为( )。
A、地址
B、字节
C、编号
D、容量

5、计算机中既可以输入又可以输出的设备是( ).
A、打印机
B、显示器
C、鼠标
D、硬盘

6、下列叙述中正确的是( )
A、系统软件是买来的,而应用软件是自己编写的
B、外存储器可以和CPU直接交换数据
C、微型计算机主机就是微型计算机系统
D、硬盘必须格式化后才能使用

7、可以随意读出或写入数据的存储器是( )。
A、PROM
B、ROM
C、RAM
D、EPROM

8、某学校的职工人事管理系统软件属于( )
A、应用软件
B、系统软件
C、字处理件
D、工具软件

9、通常将运算器和( )合称为中央处理器,即CPU.
A、存储器
B、输入设备
C、输出设备
D、控制器

10、对于内存而言, 把硬盘上的数据传送到内存的过程称为( )。
A、打印
B、写操作
C、读操作
D、输出

11、在相同的计算机环境中,()处理速度最快.
A、机器语言
B、汇编语言
C、高级语言
D、面向对象的语言

12、目前世界上不同型号的计算机,就其工作原理而言,一般都认为是基于冯·诺伊曼提出的( )
A、二进制原理
B、布尔代数原理
C、摩尔定律
D、存储程序工作原理

13、在微型计算机的主要性能指标中,内存容量通常指( )。
A、ROM的容量
B、RAM的容量
C、CD-ROM的容量
D、RAM和ROM的容量之和

14、与十进制数97等值的二进制数是( )。
A、1111110
B、1100011
C、1101111
D、1100001

15、.假设字长8位,机器码-111100的补码为( )。
A、00111100
B、10111100
C、11000100
D、1000100

16、将十进制数653.5转换成八进制数是( )。
A、1215.4
B、5121.4
C、549.5
D、945.1

17、假为设字长8,读取内存中存储的二进制码为11000001,则其真值是( )
A、-65
B、-63
C、-62
D、63

18、将二进制数10111101001转换成十六进制数是( )
A、BD1
B、BD2
C、509
D、5E9

19、下面数是八进制的是( )
A、190
B、203
C、395
D、ACE

20、与十六进制数AB等值的十进制数是( )
A、175
B、176
C、177
D、171

第二章 简单程序设计

第二章单元测试

1、下列字符串中不可以用作C++标识符的是( )。
A、_abc
B、2_a
C、A_1
D、Jarry

2、按照C++语言的规定,每个程序都必须有且仅有一个主函数,主函数的名称必须为( )。
A、winmain
B、main
C、include
D、iostream

3、执行下列程序的功能是( ) #include <iostream> using namespace std; int main() { int a=10,b=20; a=a+b; b=a-b; a=a-b; return 0; }
A、求a/b的余数
B、求a/b的商
C、求a和b的最大公约数
D、交换a和b的值

4、下列标识符号中,表示行注释的开始标识符是( ).
A、//
B、/
C、/*
D、*/

5、执行下列语句的结果是( ). int i=5,j=10; cout <<i<<j;
A、105
B、10 5
C、510
D、5 10

6、表达式x&&1和下列哪个表达式是等价的( )
A、x==1
B、x
C、x==0
D、x!=1

7、对于语句 int i,j=6; 下列说法正确的是( )
A、i和j的初始值都是6
B、i没有被初始化,j初始化值为6
C、i被初始为0,而j初始化值为6
D、该语句有语法错误。

8、与x * = y + z等价的赋值表达式是( )
A、x = y + z
B、x = x + y * z
C、x = x * y + z
D、x = x * (y + z)

9、表达式17%4/8的值为( )
A、2
B、0
C、4
D、1

10、表达式(double)(10/4)*5 的结果是( )
A、12
B、10
C、10.0000
D、12.5

第二章编程题

1、计算函数的值

2、给希望工程捐钱

3、拆分整数并计算

第三章 选择结构

第三章 单元测试

1、对于整型变量x,下述if语句与赋值语句“x=x%2==0?1:0;”不等价的是( )。
A、if (x%2!=0) x=0; else x=1;
B、if (x%2) x=1; else x=0;
C、if (x%2==0) x=1; else x=0;
D、if (x%2==1) x=0; else x=1;

2、写出以下程序的运行结果()。 #include <iostream> using namespace std; int main( ) { int a=2,b=-1,c=2; if (a<b) if (b<0) c=0; else c=c+1; cout<<c<<endl; return 0; }
A、0
B、2
C、3
D、-1

3、阅读程序的结果是(): #include<iostream> using namespace std; int main() { int n='e'; switch(n--) { default: cout<<"error "; case 'a': case 'b': cout<<"good "; break; case 'c': cout<<"pass"; case 'd': cout<<"warn"; } return 0; }
A、error
B、error good
C、good
D、没有输出

4、有以下程序 #include<iostream> using namespace std; int main() { int a=5,b=4,c=3,d=2; if(a>b>c) cout<<d<<endl; else if((c-1>=d)==1) cout<<d+1<<endl; else cout<<d+2<<endl; return 0; } 执行后输出结果是( )。
A、编译时有错,无结果
B、2
C、3
D、4

5、有如下程序 #include<iostream> using namespace std; int main() { double x=2.0,y; if(x<0.0) y=0.0; else if(x>10.0) y=1.0/x; else y=1.0; cout<<y<<endl; return 0; }
A、0
B、0.25
C、0.5
D、1

6、有如下程序段 int a=14,b=15,x; char c=′A′; x=(a&&b)&&(c<′B′); cout<<x<<endl; 执行该程序段后,x的值为()。
A、true
B、false
C、1
D、0

7、阅读下面语句,则程序的执行结果是() 。 #include<iostream> using namespace std; int main() { int a=-1,b=1; if((++a<0)&&!(b--<=0)) cout<<a<<b<<endl; else cout<<b<<a<<endl; return 0; }.
A、10
B、11
C、0
D、1

8、以下if语句书写正确的是( )。
A、if ( x = 0; ) cout << x ; else cout<< -x;
B、if ( x > 0 ) { x = x + 1; cout << x ;} else cout <<-x;
C、if ( x > 0 ); { x = x + 1; cout << x ;}
D、if ( x > 0 ) { x = x + 1; cout << x} ;

9、以下程序的运行结果是( )。 int main() { int n='c'; switch(n++) { default: cout<<"error"; break; case 'a': case 'b': cout<<"good "; break; case 'c': cout<<"pass "; case 'd':cout<<"warn "; } return 0; }
A、pass
B、warn
C、pass warn
D、error

10、若有定义“int a=1,b=2,c=3;”则执行以下程序段后a,b,c的值分别为( )。 if (a<b){ c=a;a=b;b=c; }
A、a=1,b=2,c=3
B、a=2,b=3,c=1
C、a=2,b=3,c=3
D、a=2,b=1,c=1

第三章 编程题

1、计算分段函数

2、计算三角形面积

3、计算实际奖金值

第四章 循环结构

第四章 单元测试

1、若有整型变量x的当前值是3,则执行下列语句的结果是( )。 do{ cout<<(x -= 2); }while( !(-x));
A、0
B、1
C、30
D、陷入死循环

2、问题2 单选 (1.5分) 在while(!a)中,其中!a与表达式 ( )等价。
A、a == 0
B、a == 1
C、a != 1
D、a != 0

3、下面程序段执行结果是( )。 int y=9; for(;y>0;y--) if(y%3==0) cout<<--y<<\t;
A、8 2 2
B、8 5 2
C、8 4 3
D、8 3 1

4、C++语言的跳转语句中,对于break 和 continue说法正确的是( )。
A、break语句只应用于循环体中。
B、continue语句只应用于循环体中。
C、break是无条件跳转语句,continue不是
D、break和continue的跳转范围不够明确,容易产生问题

5、设有程序段 int x=10; while (x=0) x=x-1; 则下面描述中正确的( ) 。
A、while 循环执行10次
B、循环是无限循环
C、循环体语句一次也不执行。
D、循环体语句只执行一次。

6、写出下列代码运行后的结果 ( ) 。 int i, j; for(i=-3; i<=1; i++){ j = i; while( j < 0 ) { if(j == -1) break; j++; } } cout<<i<<'\t'<<j<<endl;
A、2 1
B、3 2
C、1 1
D、1 2

7、执行下述程序段后, a,b的值分别是( ) 。 int a,b; for(b=1,a=1;b<=50;b++){ if(a>=10) break; if(a%2==1) { a+=5; continue; } a-=3; }
A、8和 5
B、9和 6
C、10和 6
D、11和 8

8、执行下面的语句序列,输出字符"$"和"*"的个数分别是( ) 。 int k=0; do { k+=5; cout<<'$'; }while(k<19); while(k-->0) cout <<'*';
A、4和20
B、5和20
C、4和21
D、5和21

9、有如下程序段,其执行结果是( )。 int x=3; do { x -= 2; cout<<x; } while(!(--x));
A、1
B、30
C、1-2
D、死循环

10、有如下程序段,执行这个程序段输出字符*的个数是( )。 int i=1; while(1) { i++; if (i==10) break; if (i%3==0) cout<<"*"; }
A、1
B、2
C、3
D、4

第四章 编程题

1、计算小球的高度。

2、计算表达式的值。

3、进制转换

第五章 数组与指针

第五章单元测试

1、以下数组定义正确的是()
A、int i=5, a[ '5' - '0' ];
B、char i=5, a[5]='0';
C、int i=5, a[i];
D、int a[5]="12345";

2、有如下程序段 int i=0, j=1; int &r=i ; //① r=j; //② int *p=&i ; //③ *p=&r ; //④ 其中会产生编译错误的语句是( )。
A、④
B、③
C、②
D、①

3、若有语句“int *p=&k;”,与这个语句等效的语句序列是( )
A、int*p;p=&k ;
B、int*p;p=k;
C、int*p;*p=&k;
D、int*p;*p=k;

4、下列语句中错误的是( )
A、char str[5]="point";
B、char a[5]={ 1,2,3,4,5};
C、int a[]={ 1,2,3,4,5};
D、char a[5]={ 'p','o','i','n','t'};

5、已知数组arr的定义如下: int arr[5]={ 1,2,3,4,5}; 下列语句中输出结果不是2的是( )。
A、cout << *arr <<endl;
B、cout << *arr+1 <<endl;
C、cout << *(arr+1)<<endl;
D、cout << arr[1] <<endl;

6、设有“char *s1="ABCDE", *S2="ABCDE", *S3=S1;”,下列表达式中值不等于true的是( )
A、&s1==&s2
B、s1==s3
C、s2==s3
D、strcmp(s1,s3)==0

7、执行下列语句后,屏幕的输出结果是( ). #include<iostream> using namespace std; int main() { int a=5; int *pa=&a; int &b=a; b++; cout<<(*pa)++<<endl; return 0; }
A、6
B、5
C、7
D、8

8、若有以下定义和语句,且0<i<10,则对数组元素地址的正确表示是( ). int a[ ]={ 1,2,3,4,5,6,7,8,9,0},*p,i; p=a;
A、&p[i]
B、&(a+1)
C、a++
D、*p

9、#include<iostream> using namespace std; int main() { char *p=0; *p='a'; cout<<"The value at p:"<<*p; return 0; } 编译运行程序将出现的情况是( )。
A、运行时出错
B、编译时出现语法错误,不能生成可执行文件
C、运行时一定输出:The value at p:a
D、运行时一定输出:The value at p:*a

10、以下不能对二维数组正确初始化的是( )
A、int?a[2][3]={ { 1,2},{ 3,4},{ 5,6}};??
B、int?a[2][3]=;?
C、int?a[][3]={ { 1,2},};??
D、int?a[][3]={ 1,2,3,4,5};

第五章 编程题

1、输入十个不相等的正整数,求其平均值,并求最接近平均值的那个整数,如果有两个,则两个都输出

2、输入一个5*5数组元素的值,并输入一个整数m(m<10 m>

3、输入6个不等长字符串,将这6个字符串按照字符串长度排序,并按从长到短的顺序输出字符串。

第六章 函数

第六章 单元测试

1、以下程序的执行结果是( )。 int fun(long b[],int n,long x) { int cnt=-1; for(int i=0; i<n; i++) if(b[i] == x) cnt=i; return cnt; } int main() { long x = 7; long a[5]={ 3,5,2,7,9}; cout<<fun(a,5,x)<<endl; return 0; }
A、4
B、1
C、2
D、3

2、不能作为函数重载的判断依据的是( )。
A、const
B、返回类型
C、参数个数
D、参数类型

3、已知函数f的原型是:void f(int *a, long &b); 变量v1、v2的定义是: int x; long y;,正确的调用语句是( )。
A、f(x, y);
B、f(x, &y);
C、f(&x, y);
D、f(&x, &y);

4、下面的函数利用递归实现了求1*2*3…..*n的功能: int sum(int n){ if( n==1 || n == 0) return 1; else return n*sum(n-1); } 在执行sum(10)的过程中,递归调用sum函数执行的次数是( )。
A、10
B、9
C、8
D、7

5、为了提高系统调用函数时的执行速度,可以将程序调用平繁且简单的函数定义为( )。
A、内联函数
B、递归函数
C、函数模板
D、重载函数

6、已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则( )。
A、FB必须定义在FA定义之前
B、若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
C、若FB定义在FA之后,则FB的原型必须出现在FA的定义之前
D、FA必须定义在FB之前

7、下列函数原型声明中错误的是( )。
A、void f(int a, int b);
B、void f(int a=0, int b);
C、void f(int a, int b=0);
D、void f(int a=0, int b=0);

8、已知函数fun的原型为 int fun (double,int,int); 下列重载函数申明形式中错误的是______。
A、double fun(double,int,int);
B、float fun(int,int,int);
C、int fun(int,clar*);
D、char fun(int,int);

9、函数定义为Fun(int &i),变量定义 n=5,则下面调用函数形式正确的是( )。
A、Fun(20+n)
B、Fun(n)
C、Fun(&n)
D、Fun(20)

10、以下对c++语言有关函数的描述中,正确的是()。
A、在c++语言中,调用函数时,只能把实参的值传给形参,形参的值不能传给实参
B、c++语言函数既可以嵌套定义,又可以递归调用
C、c++语言函数必须有返回值,否则不能使用函数
D、c++程序中有调用关系的所有函数必须放在同一个源程序文件中

第六章编程题

1、图书 ISBN 号码中识别码的计算

2、最长单词

3、数据的有序插入

第七章 类与对象

第七章 单元测试

1、1.有如下类定义: class Point { int xx, yy; public: Point():xx(0)yy(0){ } Point(int x, int y =0): xx(x), yy(y){ }}; 若执行语句 Point a(2),b[3],*c[4]; 则 Point类的构造函数被调用的次数是()。
A、2次
B、3次
C、4次
D、8次

2、有如下程序: #include <iostream> using namespace std; class CD{ public: ~CD(){ cout<<'C’;} private: char name[80]; }; int main(){ CD a, *b,d[2]; return 0; } 执行这个程序的输出结果是()
A、CCCC
B、CCC
C、CC
D、C

3、Sample是一个类,且有如下语句: Sample a[2], *p = new Sample; 执行这个语句时调用 Sample类的构造函数的次数是()
A、0
B、1
C、2
D、3

4、关于构造函数的叙述正确的是( )。
A、构造函数可以有返回值
B、构造函数的名字必须与类名完全相同
C、构造函数必须带有参数
D、构造函数必须定义,不能默认

5、已知类中的一个函数成员说明为:int f (C &a)。其中,C &a 的含义是
A、指向类C的指针为a
B、a是类C的对象引用,用来作为f()的形参
C、将a的地址赋给变量
D、变量C与a按位与作为函数f()的形参

6、关于析构函数特征描述正确的是( )
A、一个类中可以有多个析构函数
B、析构函数可以重载
C、析构函数不能指定返回类型
D、析构函数可以有一个或多个参数

7、下列静态数据成员的特性中,错误的是( )。
A、说明静态数据成员时,前边要加关键字static
B、外部访问静态数据成员时,要在静态数据成员名前加类名和作用域运算符
C、静态数据成员不是所有对象所共有的
D、静态数据成员在类外进行初始化

8、若有如下类声明: class MyClass{ public: MyClass(){ cout<<1;} }; 执行下列语句 MyClass a, b[2], *[2]; 程序的输出结果是()
A、11
B、111
C、1111
D、11111

9、已知TV是一个类,并有函数func定义如下: void func() { TV li, *net[2],company[3]; } 则在调用func()后,TV类的析构函数被调用的次数是()
A、2次
B、3次
C、4次
D、6次

10、ClassA是一个类,且有如下语句序列 ClassA cl, *c2; ClassA *c3=new MyClass; ClassA &c4=c1; 则 ClassA的构造函数被调用的次数是()
A、1
B、2
C、3
D、5

第七章 编程题

1、定义一个球类,数据成员为球半径(double)

2、定义一个日期类Date

3、定义复数类Complex

4、下面有元素类Element和集合类Set的定义,请看代码及代码后面的注释将类的定义补充完整,其中,集合中不能有重复的元素。

留学生练习

单选题

1、表达式17%4/8的值为( )
A、2
B、0
C、4
D、1

2、与x * = y + z等价的赋值表达式是( )
A、x = y + z
B、x = x + y * z
C、x = x * y + z
D、x = x * (y + z)

3、表达式(double)(10/4)*5 的结果是( )
A、12
B、10
C、10.0000
D、12.5

4、对于语句 int i,j=6; 下列说法正确的是( )
A、i和j的初始值都是6
B、i没有被初始化,j初始化值为6
C、i被初始为0,而j初始化值为6
D、该语句有语法错误。

5、表达式x&&1和下列哪个表达式是等价的( )
A、x==1
B、x
C、x==0
D、x!=1

6、执行下列语句的结果是( ). int i=5,j=10; cout <<i<<j;
A、105
B、10 5
C、510
D、5 10

7、下列标识符号中,表示行注释的开始标识符是( ).
A、//
B、/
C、/*
D、*/

8、执行下列程序的功能是( ) #include <iostream> using namespace std; int main() { int a=10,b=20; a=a+b; b=a-b; a=a-b; return 0; }
A、求a/b的余数
B、求a/b的商
C、求a和b的最大公约数
D、交换a和b的值

9、按照C++语言的规定,每个程序都必须有且仅有一个主函数,主函数的名称必须为( )。
A、winmain
B、main
C、include
D、iostream

10、下列字符串中不可以用作C++标识符的是( )。
A、_abc
B、2_a
C、A_1
D、Jarry

11、与十六进制数AB等值的十进制数是( )
A、175
B、176
C、177
D、171

12、在相同的计算机环境中,()处理速度最快.
A、机器语言
B、汇编语言
C、高级语言
D、面向对象的语言

13、与十进制数97等值的二进制数是( )。
A、1111110
B、1100011
C、1101111
D、1100001

14、.假设字长8位,机器码-111100的补码为( )。
A、00111100
B、10111100
C、11000100
D、1000100

15、将十进制数653.5转换成八进制数是( )。
A、1215.4
B、5121.4
C、549.5
D、945.1

16、假为设字长8,读取内存中存储的二进制码为11000001,则其真值是( )
A、-65
B、-63
C、-62
D、63

17、将二进制数10111101001转换成十六进制数是( )
A、BD1
B、BD2
C、509
D、5E9

18、下面数是八进制的是( )
A、190
B、203
C、395
D、ACE

19、对于整型变量x,下述if语句与赋值语句“x=x%2==0?1:0;”不等价的是( )。
A、if (x%2!=0) x=0; else x=1;
B、if (x%2) x=1; else x=0;
C、if (x%2==0) x=1; else x=0;
D、if (x%2==1) x=0; else x=1;

20、计算机正在运行的程序存放在( ).
A、RAM
B、ROM
C、CPU
D、显示器

21、ROM与RAM的主要区别在于( ).
A、ROM可以永久保存信息,RAM在断电后信息会丢失
B、ROM掉电后信息会丢失,RAM则不会
C、ROM是内存储器,RAM是外存储器
D、RAM的读写速度快,ROM的读写速度慢

22、内存中每个基本单位都被赋予唯一的序号,称为( )。
A、地址
B、字节
C、编号
D、容量

23、某学校的职工人事管理系统软件属于( )
A、应用软件
B、系统软件
C、字处理件
D、工具软件

24、通常将运算器和( )合称为中央处理器,即CPU.
A、存储器
B、输入设备
C、输出设备
D、控制器

25、有如下程序 #include<iostream> using namespace std; int main() { double x=2.0,y; if(x<0.0) y=0.0; else if(x>10.0) y=1.0/x; else y=1.0; cout<<y<<endl; return 0; }
A、0
B、0.25
C、0.5
D、1

26、表达式(double)(10/4)*5 的结果是( )
A、12
B、10
C、10.0000
D、12.5

27、下列标识符号中,表示行注释的开始标识符是( ).
A、//
B、/
C、/*
D、*/

28、执行下列语句的结果是( ). int i=5,j=10; cout <<i<<j;
A、105
B、10 5
C、510
D、5 10

29、对于语句 int i,j=6; 下列说法正确的是( )
A、i和j的初始值都是6
B、i没有被初始化,j初始化值为6
C、i被初始为0,而j初始化值为6
D、该语句有语法错误。

30、表达式x&&1和下列哪个表达式是等价的( )
A、x==1
B、x
C、x==0
D、x!=1

31、与x * = y + z等价的赋值表达式是( )
A、x = y + z
B、x = x + y * z
C、x = x * y + z
D、x = x * (y + z)

32、执行下列程序的功能是( ) #include <iostream> using namespace std; int main() { int a=10,b=20; a=a+b; b=a-b; a=a-b; return 0; }
A、求a/b的余数
B、求a/b的商
C、求a和b的最大公约数
D、交换a和b的值

33、下列字符串中不可以用作C++标识符的是( )。
A、_abc
B、2_a
C、A_1
D、Jarry

34、有如下程序 #include<iostream> using namespace std; int main() { double x=2.0,y; if(x<0.0) y=0.0; else if(x>10.0) y=1.0/x; else y=1.0; cout<<y<<endl; return 0; }
A、0
B、0.25
C、0.5
D、1

35、表达式(double)(10/4)*5 的结果是( )
A、12
B、10
C、10.0000
D、12.5

36、下列标识符号中,表示行注释的开始标识符是( ).
A、//
B、/
C、/*
D、*/

37、执行下列语句的结果是( ). int i=5,j=10; cout <<i<<j;
A、105
B、10 5
C、510
D、5 10

38、对于语句 int i,j=6; 下列说法正确的是( )
A、i和j的初始值都是6
B、i没有被初始化,j初始化值为6
C、i被初始为0,而j初始化值为6
D、该语句有语法错误。

39、表达式x&&1和下列哪个表达式是等价的( )
A、x==1
B、x
C、x==0
D、x!=1

40、与x * = y + z等价的赋值表达式是( )
A、x = y + z
B、x = x + y * z
C、x = x * y + z
D、x = x * (y + z)

41、执行下列程序的功能是( ) #include <iostream> using namespace std; int main() { int a=10,b=20; a=a+b; b=a-b; a=a-b; return 0; }
A、求a/b的余数
B、求a/b的商
C、求a和b的最大公约数
D、交换a和b的值

42、下列字符串中不可以用作C++标识符的是( )。
A、_abc
B、2_a
C、A_1
D、Jarry

43、有如下程序段,执行这个程序段输出字符*的个数是( )。 int i=1; while(1) { i++; if (i==10) break; if (i%3==0) cout<<"*"; }
A、1
B、2
C、3
D、4

44、写出以下程序的运行结果()。 #include <iostream> using namespace std; int main( ) { int a=2,b=-1,c=2; if (a<b) if (b<0) c=0; else c=c+1; cout<<c<<endl; return 0; }
A、0
B、2
C、3
D、-1

45、有以下程序 #include<iostream> using namespace std; int main() { int a=5,b=4,c=3,d=2; if(a>b>c) cout<<d<<endl; else if((c-1>=d)==1) cout<<d+1<<endl; else cout<<d+2<<endl; return 0; } 执行后输出结果是( )。
A、编译时有错,无结果
B、2
C、3
D、4

46、有如下程序段 int a=14,b=15,x; char c=′A′; x=(a&&b)&&(c<′B′); cout<<x<<endl; 执行该程序段后,x的值为()。
A、true
B、false
C、1
D、0

47、以下程序的运行结果是( )。 int main() { int n='c'; switch(n++) { default: cout<<"error"; break; case 'a': case 'b': cout<<"good "; break; case 'c': cout<<"pass "; case 'd':cout<<"warn "; } return 0; }
A、pass
B、warn
C、pass warn
D、error

48、对于整型变量x,下述if语句与赋值语句“x=x%2==0?1:0;”不等价的是( )。
A、if (x%2!=0) x=0; else x=1;
B、if (x%2) x=1; else x=0;
C、if (x%2==0) x=1; else x=0;
D、if (x%2==1) x=0; else x=1;

49、阅读程序的结果是(): #include<iostream> using namespace std; int main() { int n='e'; switch(n--) { default: cout<<"error "; case 'a': case 'b': cout<<"good "; break; case 'c': cout<<"pass"; case 'd': cout<<"warn"; } return 0; }
A、error
B、error good
C、good
D、没有输出

50、阅读下面语句,则程序的执行结果是() 。 #include<iostream> using namespace std; int main() { int a=-1,b=1; if((++a<0)&&!(b--<=0)) cout<<a<<b<<endl; else cout<<b<<a<<endl; return 0; }.
A、10
B、11
C、0
D、1

51、若有定义“int a=1,b=2,c=3;”则执行以下程序段后a,b,c的值分别为( )。 if (a<b){ c=a;a=b;b=c; }
A、a=1,b=2,c=3
B、a=2,b=3,c=1
C、a=2,b=3,c=3
D、a=2,b=1,c=1

52、以下if语句书写正确的是( )。
A、if ( x = 0; ) cout << x ; else cout<< -x;
B、if ( x > 0 ) { x = x + 1; cout << x ;} else cout <<-x;
C、if ( x > 0 ); { x = x + 1; cout << x ;}
D、if ( x > 0 ) { x = x + 1; cout << x} ;

53、若有整型变量x的当前值是3,则执行下列语句的结果是 。 do{ cout<<(x -= 2); }while( !(-x));
A、0
B、1
C、30
D、陷入死循环

54、问题2 单选 (1.5分) 在while(!a)中,其中!a与表达式 等价。
A、a == 0
B、a == 1
C、a != 1
D、a != 0

55、C++语言的跳转语句中,对于break 和 continue说法正确的是( )。
A、break语句只应用于循环体中。
B、continue语句只应用于循环体中。
C、break是无条件跳转语句,continue不是
D、break和continue的跳转范围不够明确,容易产生问题

56、设有程序段 int x=10; while (x=0) x=x-1; 则下面描述中正确的( ) 。
A、while 循环执行10次
B、循环是无限循环
C、循环体语句一次也不执行。
D、循环体语句只执行一次。

57、写出下列代码运行后的结果 ( ) 。 int i, j; for(i=-3; i<=1; i++){ j = i; while( j < 0 ) { if(j == -1) break; j++; } } cout<<i<<'\t'<<j<<endl;
A、2 1
B、3 2
C、1 1
D、1 2

58、执行下述程序段后, a,b的值分别是( ) 。 int a,b; for(b=1,a=1;b<=50;b++){ if(a>=10) break; if(a%2==1) { a+=5; continue; } a-=3; }
A、8和 5
B、9和 6
C、10和 6
D、11和 8

59、执行下面的语句序列,输出字符“$”和“*”的个数分别是( ) 。 int k=0; do { k+=5; cout<<'$'; }while(k<19); while(k-->0) cout <<'*';
A、4和20
B、5和20
C、4和21
D、5和21

60、有如下程序段,其执行结果是( )。 int x=3; do { x-=2; cout<<x; } while(!(--x));
A、1
B、30
C、1-2
D、死循环

留学生考试

留学生C++考试单选题

1、与十进制数97等值的二进制数是( )。
A、1111110
B、1100011
C、1101111
D、1100001

2、.假设字长8位,机器码-111100的补码为( )。
A、00111100
B、10111100
C、11000100
D、1000100

3、ROM与RAM的主要区别在于( ).
A、ROM可以永久保存信息,RAM在断电后信息会丢失
B、ROM掉电后信息会丢失,RAM则不会
C、ROM是内存储器,RAM是外存储器
D、RAM的读写速度快,ROM的读写速度慢

4、对于整型变量x,下述if语句与赋值语句“x=x%2==0?1:0;”不等价的是( )。
A、if (x%2!=0) x=0; else x=1;
B、if (x%2) x=1; else x=0;
C、if (x%2==0) x=1; else x=0;
D、if (x%2==1) x=0; else x=1;

5、通常将运算器和( )合称为中央处理器,即CPU.
A、存储器
B、输入设备
C、输出设备
D、控制器

6、下面数是八进制的是( )
A、190
B、203
C、395
D、ACE

7、下列字符串中不可以用作C++标识符的是( )。
A、_abc
B、2_a
C、A_1
D、Jarry

8、按照C++语言的规定,每个程序都必须有且仅有一个主函数,主函数的名称必须为( )。
A、winmain
B、main
C、include
D、iostream

9、表达式x&&1和下列哪个表达式是等价的( )
A、x==1
B、x
C、x==0
D、x!=1

10、与x * = y + z等价的赋值表达式是( )
A、x = y + z
B、x = x + y * z
C、x = x * y + z
D、x = x * (y + z)

11、写出以下程序的运行结果()。 #include <iostream> using namespace std; int main( ) { int a=2,b=-1,c=2; if (a<b) if (b<0) c=0; else c=c+1; cout<<c<<endl; return 0; }
A、0
B、2
C、3
D、-1

12、阅读程序的结果是(): #include<iostream> using namespace std; int main() { int n='e'; switch(n--) { default: cout<<"error "; case 'a': case 'b': cout<<"good "; break; case 'c': cout<<"pass"; case 'd': cout<<"warn"; } return 0; }
A、error
B、error good
C、good
D、没有输出

13、设有程序段 int x=10; while (x=0) x=x-1; 则下面描述中正确的( ) 。
A、while 循环执行10次
B、循环是无限循环
C、循环体语句一次也不执行。
D、循环体语句只执行一次。

14、执行下述程序段后, a,b的值分别是( ) 。 int a,b; for(b=1,a=1;b<=50;b++){ if(a>=10) break; if(a%2==1) { a+=5; continue; } a-=3; }
A、8和 5
B、9和 6
C、10和 6
D、11和 8

15、有如下程序段int i=0, j=1; int &r=i ; //① r=j; //② int *p=&i ; //③ *p=&r ; //④ 其中会产生编译错误的语句是( )。
A、④
B、③
C、②
D、①

16、若有以下定义和语句,且0<i<10,则对数组元素地址的正确表示是( ). int a[ ]={ 1,2,3,4,5,6,7,8,9,0},*p,i; p=a;
A、&p[i]
B、&(a+1)
C、a++
D、*p

17、不能作为函数重载的判断依据的是( )。
A、const
B、返回类型
C、参数个数
D、参数类型

18、已知函数f的原型是:void f(int *a, long &b); 变量v1、v2的定义是: int x; long y;,正确的调用语句是( )。
A、f(x, y);
B、f(x, &y);
C、f(&x, y);
D、f(&x, &y);

19、有如下程序: #include <iostream> using namespace std; class CD{ public: ~CD(){ cout<<'C’;} private: char name[80]; }; int main(){ CD a, *b,d[2]; return 0; } 执行这个程序的输出结果是()
A、CCCC
B、CCC
C、CC
D、C

20、关于构造函数的叙述正确的是( )。
A、构造函数可以有返回值
B、构造函数的名字必须与类名完全相同
C、构造函数必须带有参数
D、构造函数必须定义,不能默认

21、已知类中的一个函数成员说明为:int f (C &a)。其中,C &a 的含义是
A、指向类C的指针为a
B、a是类C的对象引用,用来作为f()的形参
C、将a的地址赋给变量
D、变量C与a按位与作为函数f()的形参

22、关于析构函数特征描述正确的是( )
A、一个类中可以有多个析构函数
B、析构函数可以重载
C、析构函数不能指定返回类型
D、析构函数可以有一个或多个参数

23、以下对c++语言有关函数的描述中,正确的是()。
A、在c++语言中,调用函数时,只能把实参的值传给形参,形参的值不能传给实参
B、c++语言函数既可以嵌套定义,又可以递归调用
C、c++语言函数必须有返回值,否则不能使用函数
D、c++程序中有调用关系的所有函数必须放在同一个源程序文件中

24、已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则( )。
A、FB必须定义在FA定义之前
B、若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
C、若FB定义在FA之后,则FB的原型必须出现在FA的定义之前
D、FA必须定义在FB之前

25、以下不能对二维数组正确初始化的是( )
A、int?a[2][3]={ { 1,2},{ 3,4},{ 5,6}};??
B、int?a[2][3]=;?
C、int?a[][3]={ { 1,2},};??
D、int?a[][3]={ 1,2,3,4,5};

26、已知数组arr的定义如下: int arr[5]={ 1,2,3,4,5}; 下列语句中输出结果不是2的是( )。
A、cout << arr endl>
B、cout << arr endl>
C、cout << arrendl>
D、cout << arr endl>

27、若有整型变量x的当前值是3,则执行下列语句的结果是 。 do{ cout<<(x -= 2); }while( !(-x));
A、0
B、1
C、30
D、陷入死循环

28、C++语言的跳转语句中,对于break 和 continue说法正确的是( )。
A、break语句只应用于循环体中。
B、continue语句只应用于循环体中。
C、break是无条件跳转语句,continue不是
D、break和continue的跳转范围不够明确,容易产生问题

29、有如下程序段,执行这个程序段输出字符*的个数是( )。 int i=1; while(1) { i++; if (i==10) break; if (i%3==0) cout<<"*"; }
A、1
B、2
C、3
D、4

30、若有定义“int a=1,b=2,c=3;”则执行以下程序段后a,b,c的值分别为( )。 if (a<b){ c=a;a=b;b=c; }
A、a=1,b=2,c=3
B、a=2,b=3,c=1
C、a=2,b=3,c=3
D、a=2,b=1,c=1

编程题

1、从键盘输入n,然后输入n个正整数,统计其中奇数和偶数的个数。

2、有5个学生,学号分别为1,2,3,4,5,从键盘输入5个学生两门课的成绩,求出每个学生的平均分,并按平均分降序排序后输出学号和平均分,请将程序代码补充完整。

3、题目:对一个3×4矩阵(int型) ,要求写一个函数peakpoint, 其功能是判断一个点是否是峰点。所谓峰点是该点在它所在行和所在列是最大的。

留学生模拟考试

单选题

1、表达式17%4/8的值为( )
A、2
B、0
C、4
D、1

2、对于语句 int i,j=6; 下列说法正确的是( )
A、i和j的初始值都是6
B、i没有被初始化,j初始化值为6
C、i被初始为0,而j初始化值为6
D、该语句有语法错误。

3、将十进制数653.5转换成八进制数是( )。
A、1215.4
B、5121.4
C、549.5
D、945.1

4、目前世界上不同型号的计算机,就其工作原理而言,一般都认为是基于冯·诺伊曼提出的( )
A、二进制原理
B、布尔代数原理
C、摩尔定律
D、存储程序工作原理

5、ROM与RAM的主要区别在于( ).
A、ROM可以永久保存信息,RAM在断电后信息会丢失
B、ROM掉电后信息会丢失,RAM则不会
C、ROM是内存储器,RAM是外存储器
D、RAM的读写速度快,ROM的读写速度慢

6、内存中每个基本单位都被赋予唯一的序号,称为( )。
A、地址
B、字节
C、编号
D、容量

7、某学校的职工人事管理系统软件属于( )
A、应用软件
B、系统软件
C、字处理件
D、工具软件

8、1.有如下类定义: class Point { int xx, yy; public: Point():xx(0)yy(0){ } Point(int x, int y =0): xx(x), yy(y){ }}; 若执行语句 Point a(2),b[3],*c[4]; 则 Point类的构造函数被调用的次数是()。
A、2次
B、3次
C、4次
D、8次

9、有如下程序: #include <iostream> using namespace std; class CD{ public: ~CD(){ cout<<'C’;} private: char name[80]; }; int main(){ CD a, *b,d[2]; return 0; } 执行这个程序的输出结果是()
A、CCCC
B、CCC
C、CC
D、C

10、Sample是一个类,且有如下语句: Sample a[2], *p = new Sample; 执行这个语句时调用 Sample类的构造函数的次数是()
A、0
B、1
C、2
D、3