第一章计算机基础

第一章单元测试

1、单选题:
计算机正在运行的程序存放在( ).
选项:
A: RAM
B: ROM
C: CPU
D: 显示器
答案: 【 RAM

2、单选题:
计算机的存储程序工作原理是( )提出的。
选项:
A: 图灵
B: 布尔
C: 冯•诺依曼
D: 莫奇利
答案: 【 冯•诺依曼

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

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
答案: 【 RAM

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的容量之和
答案: 【 RAM的容量

14、单选题:
与十进制数97等值的二进制数是(     )。
选项:
A: 1111110
B: 1100011
C: 1101111
D: 1100001
答案: 【 1100001

15、单选题:
.假设字长8位,机器码-111100的补码为(    )。
选项:
A: 00111100
B: 10111100
C: 11000100
D: 1000100
答案: 【 11000100

16、单选题:
将十进制数653.5转换成八进制数是(    )。
选项:
A: 1215.4
B: 5121.4
C: 549.5
D: 945.1
答案: 【 1215.4

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

18、单选题:
将二进制数10111101001转换成十六进制数是( )
选项:
A: BD1
B: BD2
C: 509
D: 5E9
答案: 【 5E9

19、单选题:
下面数是八进制的是( )
选项:
A: 190
B: 203
C: 395
D: ACE
答案: 【 203

20、单选题:
与十六进制数AB等值的十进制数是(    )
选项:
A: 175
B: 176
C: 177
D: 171
答案: 【 171

第二章简单程序设计

第二章单元测试

1、单选题:
下列字符串中不可以用作C++标识符的是( )。
选项:
A: _abc
B: 2_a
C: A_1
D: Jarry
答案: 【 2_a

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

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的值
答案: 【 交换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
答案: 【 510

6、单选题:
表达式x&&1和下列哪个表达式是等价的( )
选项:
A: x==1
B: x
C: x==0
D: x!=1
答案: 【 x

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

8、单选题:
与x * = y + z等价的赋值表达式是( )
选项:
A: x = y + z
B: x = x + y * z
C: x = x * y + z
D: x = x * (y + z)
答案: 【 x = x * (y + z)

9、单选题:
表达式17%4/8的值为( )
选项:
A: 2
B: 0
C: 4
D: 1
答案: 【 0

10、单选题:
表达式(double)(10/4)*5 的结果是( )
选项:
A: 12
B: 10
C: 10.0000
D: 12.5
答案: 【 10.0000

第三章选择结构

第三章单元测试

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; 
答案: 【 if (x%2) x=1; else x=0; 

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
答案: 【 2

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: 没有输出
答案: 【 error good

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
答案: 【 3

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
答案: 【 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
答案: 【 1

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
答案: 【 10

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} ;
答案: 【 if ( x > 0 )  
   { x = x + 1;
     cout << x ;}  else 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
答案: 【 pass warn

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
答案: 【 a=2,b=1,c=1

第四章循环结构

第四章单元测试

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

2、单选题:
‏问题2 单选 (1.5分) 在while(!a)中,其中!a与表达式 (      )等价。‎
选项:
A: a == 0
B: a == 1
C: a != 1
D: a != 0
答案: 【 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
答案: 【 8       5       2

4、单选题:
‏C++语言的跳转语句中,对于break 和 continue说法正确的是(             )。‍
选项:
A: break语句只应用于循环体中。
B: continue语句只应用于循环体中。
C: break是无条件跳转语句,continue不是
D: break和continue的跳转范围不够明确,容易产生问题
答案: 【 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 
答案: 【 2    1

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
答案: 【 10和 6

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
答案: 【 4和20

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

10、单选题:
​有如下程序段,执行这个程序段输出字符*的个数是(          )。 ​​int i=1; ​​while(1)
{
   ​​    i++;
   ​​    if (i==10) break;
   ​​    if (i%3==0)  ​​        cout<<"*"; ​​}​
选项:
A: 1
B: 2
C: 3
D: 4
答案: 【 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";
答案: 【 int i=5, a[ '5' - '0' ];

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;
答案: 【 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'};
答案: 【 char str[5]="point";

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;
答案: 【 cout << *arr <<endl;

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

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
答案: 【 6

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
答案: 【 &p[i]

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]={0}; 
C: int a[][3]={{1,2},{0}};  
D: int a[][3]={1,2,3,4,5};
答案: 【 int a[2][3]={{1,2},{3,4},{5,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
答案: 【 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);
答案: 【 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
答案: 【 9

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

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

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); 
答案: 【 void f(int a=0, int b);

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);
答案: 【 double fun(double,int,int);

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

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

第七章类与对象

第七章单元测试

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次
答案: 【 4次

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
答案: 【 CCC

3、单选题:
Sample是一个类,且有如下语句:

Sample a[2], *p = new Sample;

执行这个语句时调用 Sample类的构造函数的次数是()
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 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()的形参
答案: 【 a是类C的对象引用,用来作为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
答案: 【 111

9、单选题:
已知TV是一个类,并有函数func定义如下:

void func()

{

TV li, *net[2],company[3];

}

则在调用func()后,TV类的析构函数被调用的次数是()
选项:
A: 2次
B: 3次
C: 4次
D: 6次
答案: 【 4次

10、单选题:
ClassA是一个类,且有如下语句序列

ClassA cl, *c2;

ClassA *c3=new MyClass;

ClassA &c4=c1;

则 ClassA的构造函数被调用的次数是()
选项:
A: 1
B: 2
C: 3
D: 5
答案: 【 2

第1章——初识C++语言从认识变量和常量开始数据的表示

第一章单元测试

1、单选题:
‏以下关于C++语言描述错误的是()‏
选项:
A: 一个C++程序总是从main函数开始执行
B: 每个语句和数据声明的最后必须有一个分号
C: C++语言的注释符是以“/*”开始并以“*/”结束的       
D: 一个C++程序可以包含多个main函数
答案: 【 一个C++程序可以包含多个main函数

2、单选题:
‌C++ 语言源程序文件名后缀为(    )。‎
选项:
A: .EXE   
B:  .OBJ        
C: .cpp             
D:  .ASM
答案: 【 .cpp             

3、单选题:
‎C++语言是(    )‎
选项:
A: 机器语言
B: 汇编语言
C: 仅具有面向对象特征的语言
D:  既表现面向对象的特征,又表现面向过程的特征
答案: 【  既表现面向对象的特征,又表现面向过程的特征

4、单选题:
​C++语言中普通整型变量int在内存中占(   )字节。‏
选项:
A: 1
B: 2
C: 3
D: 4
答案: 【 4

5、单选题:
‏下列不是C++语言基本数据类型的是 (    )。​
选项:
A: 字符型
B: 整型
C: 浮点型
D: 结构体
答案: 【 结构体

6、单选题:
‍各种基本数据类型的存储空间正确的长度排列为(        )。‎
选项:
A: int < char <double 
B: double <int<char
C: char<int <double    
D: int <=char<double
答案: 【 char<int <double    

7、单选题:
‌下面的变量说明中(       )是正确的。​
选项:
A:  char:a, b, c; 
B: char a; b; c;   
C: char a, b, c;  
D:  char a, b, c,
答案: 【 char a, b, c;  

8、单选题:
‍转义字符“反斜杠线”的表示方法正确的是(        ) 。​
选项:
A:          
B: \        
C: ‘’     
D: “”
答案: 【 \        

9、单选题:
​在C++语言中,自定义的标识符(      )。‎
选项:
A: 能使用关键字并且不区分大小写 
B: 不能使用关键字并且不区分大小写
C: 能使用关键字并且区分大小写  
D: 不能使用关键字并且区分大小写
答案: 【 不能使用关键字并且区分大小写

10、单选题:
存储字符串“a+b=12nt”所占存储空间的字节数为(    )  ​​
选项:
A: 8
B: 9
C: 10
D: 11
答案: 【 9

第2章——计算从数据运算开始数据简单运算

第二章单元测试

1、单选题:
执行下面程序段的输出结果是(     )。‏int x=23, y=5,z;‏z=2+(y++,x+8,x++); ‏​    cout<<x<<"   "<<z<<endl;‏
选项:
A: 24    25
B: 24  26
C: 25  26
D: 25  25 
答案: 【 24    25

2、单选题:
‍若int型变量x=29,double型变量y=6.0,则表达式x/y的值为(     ) 。‌
选项:
A: 4.83333
B: 4
C: 5
D: 5.0
答案: 【 4.83333

3、单选题:
​ 判断字符型变量ch是否为大写英文字母,应使用表达式(   )。‌
选项:
A:  ch>='A' & ch<='Z'
B: ch<='A' ||ch>='Z'
C: 'A'<=ch<='Z'
D: ch>='A' && ch<='Z'
答案: 【 ch>='A' && ch<='Z'

4、单选题:
int x=5, y=6;下列表达式结果为真的是(    ) 。‏
选项:
A: x==y-- 
B: x==++y 
C: x++==y   
D: x==--y
答案: 【  x==--y

5、单选题:
设有a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,‌则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为(   )‌
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 2

6、单选题:
执行下列语句后,输出的结果是(   ).‏int a=3,b=5;‏double c=b/a;‏cout<<c<<endl;‏
选项:
A: 1.66666
B: 1
C: 1.0
D: 1.7
答案: 【 1

7、单选题:
已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是(     )。‌
选项:
A: 5
B: 6
C: 0
D: 1
答案: 【 5

8、单选题:
逗号表达式a=3,a++,a+=6的值是(     )。‎
选项:
A: 10
B: 9
C: 11
D: 12
答案: 【 10

9、单选题:
 已知下列语句中的x和y都是int型变量,其中错误的语句(    )。‌
选项:
A: x=y++;
B: x=++y;
C: (x+y)++;
D: ++x==y;
答案: 【 (x+y)++;

10、单选题:
执行以下代码后,变量x、y、z的值分别为()‎int x=1,z=1,y=1,k;‎k=x++||++y&&++z‎
选项:
A: 2 1 1
B: 2 2 2
C: 1 2 2
D: 1 1 2
答案: 【 2 1 1

第3章——分支结构无处不在的抉择

第三章单元测试

1、单选题:
执行语句序列‎int n;‎cin >> n;‎switch(n++)‎{     case 1:‎      case 2: cout << '1';‎      case 3:‎      case 4: cout << '2'; break;‎     default: cout << '3';‎}‎‍时,若键盘输入1,则屏幕显示(    )。‎
选项:
A: 1
B: 2
C: 23
D: 12
答案: 【 12

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+=1;​cout <<c<<endl;​return 0;​}​
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 2

3、单选题:
为了避免嵌套的if-else语句的二义性,C++语言规定else总是与(   )组成配对关系。‍
选项:
A: 缩排位置相同的if
B: 在其之前未配对的if
C: 其之前未配对的最近的if 
D: 同一行上的if
答案: 【 其之前未配对的最近的if 

4、单选题:
 与表达式if(!k)等价的是(     )。‏
选项:
A: if(k==0)
B: if(k!=1)   
C: if(-k)
D: if(k!=0)
答案: 【  if(k==0)

5、单选题:
以下代码执行后,a、b、c的值分别为(    )。​int a=8,b=10,c=3;​if (a>b) ​    c=a;​    a=b;​    b=c;​
选项:
A: 10 3 3 
B: 8 10 3
C: 10 8 8
D: 10 10 8
答案: 【 10 3 3 

6、单选题:
下列描述正确的是(   ) 。‎
选项:
A: 表示m>n1或m<n2 的表达式为m>n1&&m<n2
B: switch语句结构中必须有default语句
C: if语句结构中必须有else语句
D: 如果至少有一个操作数为true,则包含"||"运算符的表达式为true
答案: 【 如果至少有一个操作数为true,则包含"||"运算符的表达式为true

7、单选题:
下面程序的运行结果是(   ).‌#include<iostream>‌using namespace std;‌int main(  )‌{  int i=10; ‌switch (i)‌{   case  9:i++;‌    case  10:++i;‌    case  11:i++;‌    default:i=i+1;‌}‌cout<<i<<endl;‌return 0;‌}‌
选项:
A: 9
B: 10
C: 11
D: 13
答案: 【 13

8、单选题:
若int a=6,则执行完下列语句后,a的值为(   ).‏if (a>10)‏  a-=5;‏  a+=5;‏
选项:
A: 1
B: 6
C: 10
D: 11
答案: 【 11

9、单选题:
#include<iostream>‍using namespace std;‍int main()‍{‍int a=3;‍if(a=5)‍cout<<a+1<<endl;‍else‍cout<<a<<endl;‍return 0;‍}‍程序的输出是(   )。‍
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 6

10、单选题:
‌若x和y是程序中的两个整型变量,则下列if语句中正确的是(   )。‌
选项:
A: if(x==0) y=1; else y=2;
B: if(x==0) then y=1 else y=2;
C: if(x==0) y=1 else y=2;
D: if x==0 y=1; else y=2;
答案: 【 if(x==0) y=1; else y=2;

第4章——循环结构周而复始求同存异

第四章单元测试

1、单选题:
下面关于break语句的描述中,不正确的是(   ).​‎​
选项:
A: break可以用于循环体内 
B: break语句可以在for循环语句中出现多次
C: break语句可以在switch语句中出现多次
D: 一个break语句就可以跳出多重循环
答案: 【 一个break语句就可以跳出多重循环

2、单选题:
以下语句不正确的是(     )。‎
选项:
A: 语句for(i=0;;)表示无限循环
B: for(;;)表示无限循环
C: for(   )也表示无限循环
D: while(1)表示无限循环
答案: 【 for(   )也表示无限循环

3、单选题:
有如下程序:  ‎#include<iostream>  ‎using namespace std; ‎int main(   )‎{ int  i ,f,f1=0,f2=1;  ‎for( i=3;i<=6;i++)‎{  f=f1+f2; ‎ f1=f2;‎f2=f;  } ‎cout<<f<<endl; ‎return 0; }  运行时的输出结果是(   )‎
选项:
A: 2
B: 3
C: 5
D: 8
答案: 【 5

4、单选题:
有如下程序段:​int i=5;​while (int i=0){ cout<<'*'; i--; }​运行时输出"*"的个数是(   )。​
选项:
A: 0
B: 1
C: 5
D: 无穷
答案: 【 0

5、单选题:
执行完以下语句​int i=0; do i++; while(i*i<10);​时,do后面的循环体语句i++被执行的次数为 (    )​
选项:
A: 2
B: 3
C: 4
D: 5
答案: 【 4

6、单选题:
有如下循环语句:for(int i=50; i>20; i-=2)  cout<<i<<',';‍‏运行时循环体的执行次数是(    )‍
选项:
A: 14
B: 15
C: 30
D: 27
答案: 【 15

7、单选题:
​有如下程序段:  int i=1;  while (1) {      i++;      if(i == 10) break;      if(i%2 == 0) cout << '*';  }  执行这个程序段输出字符*的个数是(   )‍​‍
选项:
A: 10
B: 3
C: 4
D: 5
答案: 【 4

8、单选题:
有如下程序:‎#include<iostream> ‎using namespace std;‎int main(  ){‎int sum;‎for(int i=0; i<6; i+=3){‎sum=i; ‎for(int j = i; j<6; j++)   sum+=j;‎} ‎cout<<sum<<end1; ‎return 0;‎}‎运行时的输出结果是(   )。‎
选项:
A: 3
B: 10
C: 12
D: 15
答案: 【 15

9、单选题:
下面程序的运行结果是(  )。‌#include<iostream>‌using namespace std;‌void main()‌{  int i,j,a=0;‌   for(i=0;i<2;i++)‌   { ‌      for (j=0; j<4; j++)‌       {  if (j%2)  break;‌          a++;‌        }‌       a++;‌    }‌    cout<<a<<endl;‌}‌
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 4

10、单选题:
有如下程序段:‏for (int i=1;i<=50;i++){‏   if (i%3!=0)‏   continue;‏else‏   if(i%5!=0)‏   continue;‏   cout<<i<<",";‏}‏‎执行这个程序段的输出是(     )‏
选项:
A: 15,30,45,
B: 15,45,
C: 15,30,
D: 30,45,
答案: 【 15,30,45,

第5章——数组实现算法的利器

第五章单元测试

1、单选题:
要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是(  )​‍​
选项:
A: int x[3]={0,0,0};  
B: int x[ ]={0};
C: int x[3]={0};
D: int x[ ]={0,0,0};
答案: 【 int x[ ]={0};

2、单选题:
在C++语言中,二维数组元素在内存中的存放顺序是(   )。‏‏‏
选项:
A: 按行优先存放    
B: 按列优先存放 
C: 由用户自己定义
D: 由编译器决定
答案: 【 按行优先存放    

3、单选题:
在下述对C++语言字符数组的描述中,有错误的是(   )。‎‏‎
选项:
A: 字符数组可以存放字符串。
B: 字符数组中的字符串可以进行整体输入输出。
C: 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值。
D: 字符数组的下标从0开始。
答案: 【 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值。

4、单选题:
以下数组的初始化,正确的是(    )。​‍​
选项:
A: int a[]={1,2,3,4,5};
B: int a[4]={1,2,3,4,5};
C: int a[2]={1,2,3} ;
D: int a[][]={1,2,3,4};
答案: 【 int a[]={1,2,3,4,5};

5、单选题:
下面关于数组的描述错误的是(   )。‏​‏
选项:
A: 在C++语言中数组的名字就是该数组第一个元素的首地址。 
B: 长度为n的数组,下标的范围是0~n-1 。
C: 数组的大小必须在编译时确定。
D: 数组元素的个数在定义时可以缺省。
答案: 【 数组元素的个数在定义时可以缺省。

6、单选题:
下面程序的运行结果是(   )。‏char c[5] = {'a','b','  ','c', '  '};‏cout<<c;‏‏‏
选项:
A: 1012ACF0(数组c的首地址值)
B: ab
C: ab c
D: 以上都不是
答案: 【 以上都不是

7、单选题:
有如下程序段:​char c[20]="examination";​c[4]=0;​cout<<c<<endl;​执行这个程序段的输出是(     )。​‎​
选项:
A: examination 
B: exam
C: exa
D: exami
答案: 【 exam

8、单选题:
以下程序运行后的输出结果是(    )。‎int main( )‎  { char a[]="abbcabbcabbc";‎   int i =0,j=0,k=0;‎   while(a[i])‎   { if(a[i] =='a')‎    j++;‎    if(a[i]=='b')‎    k++;‎    i++;‎  }    ‎ cout<<j<<" "<<k<<endl;‎return 0;‎}‎‎‎
选项:
A: 2   6
B: 3    5
C: 4    7
D: 3    6
答案: 【 3    6

9、单选题:
已知:‌int i,x[3][3] = {1,2,3,4,5,6,7,8,9};‌则下面语句的输出结果是(   ).‌for(i = 0;i < 3;i ++)‌   cout<<x[i][2-i]<<" ";‌‏‌
选项:
A: 1  5  9
B: 1   4   7
C: 3    5    7
D: 3    6    9
答案: 【 3    5    7

10、单选题:
下面程序的运行结果是(   ).​#include <iostream>​#include <cstring>​using namespace std;​int main( )​{​ char s1[10]="abc";​ char s2[20]="inter";​ int k=0,j=0;​ while (s2[k]) k++;​ while(s1[j])​    s2[k--]=s1[j++];​ cout<<s2<<endl;​return 0;​}​
选项:
A: inter
B: abc
C: interabc
D: intcba
答案: 【 intcba

第6章——指针所向披靡的金箍棒”魂

第6章单元测试

1、单选题:
下面程序的运行结果是(   ).‌#include<iostream>‌using namespace std;‌int  main (  )‌{  float  a=1,b=2,c;‌   float  *p1=&a,*p2;‌   p2=&b;‌   c= * p1 + *p2;‌   cout<<*p1<<'n';‌}‌​‌
选项:
A: 1
B: 2
C: a
D: b
答案: 【 1

2、单选题:
设有定义一维数组如下:int a[5],*p=a;,则下列描述中错误的是(   ).​
选项:
A: 表达式 p=p+1是合法的
B: 表达式a=a+1是合法的
C: 表达式p-a是合法的
D: 表达式a+2是合法的
答案: 【 表达式a=a+1是合法的

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

4、单选题:
 下列语句中,正确的是(   )。‍
选项:
A: char*myString="Hello-World!";
B: char myString="Hello-World!";
C: char myString[11]="Hello-World!";
D: char myString[12]="Hello-World!";
答案: 【 char*myString="Hello-World!";

5、单选题:
已知:int m=10;在下列语句中错误的是(    )​
选项:
A: int *p=new int(m);  
B: int *p=new int[m]={0};
C: float *p=new float(m);         
D: float *p=new float[m];
答案: 【 int *p=new int[m]={0};

6、单选题:
下面程序的运行结果是(   ).‌#include<iostream>‌using namespace std;‌void main(void)‌{‌  int a[5]={10,20,30,40,50};‌  int *p=&a[0];‌  p++;‌  cout<<++*p<<endl;‌}‌‌‌
选项:
A: 10
B: 21
C: 31
D: 41
答案: 【 21

7、单选题:
‏下列程序的输出结果是‎#include <iostream>‎using namespace std;‎int main()‎{‎     char a[] = "Hello, World";‎     char *ptr = a;‎     while (*ptr)‎     {‎           if (*ptr >= 'a' && *ptr <= 'z')‎                 cout << char(*ptr + 'A' -'a');‎           else cout << *ptr;‎           ptr++;‎     }‎     return 0;‎}‎
选项:
A:  HELLO, WORLD      
B: Hello, World
C: hELLO, wORLD   
D: hello, world
答案: 【  HELLO, WORLD      

8、单选题:
已知有数组定义 char a[3][4]; ‎下列表达式中错误的是(     )。 ‎
选项:
A: a[2]="WIN" ;
B: strcpy(a[2],"WIN") ;
C: a[2][3]='W' ;
D: a[0][1]=a[0][1] ;
答案: 【 a[2]="WIN&quo

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注