第1章 绪论

第1章 绪论 测验

1、单选题:
下列程序段的输出是()。‏short int i=65536;   cout<<i<<’n’; ‏​‏
选项:
A: 65536
B: 0
C: -1
D: 有语法错,无输出结果。
答案: 【 0

2、单选题:
‍下面的说法正确的是()。‍
选项:
A: cin对象设置的域宽只对与其相邻的下一个输入有效。
B: cin对象设置的域宽对所有输入有效。
C: 流插入符>>能够读取含空格的字符串。
D: 调用cin的getline函数不能读取含空格的字符串。
答案: 【 cin对象设置的域宽只对与其相邻的下一个输入有效。

3、填空题:
​C++语言是从                            两种语言发展来的。‍
答案: 【 SIMULA语言和C语言

4、填空题:
‌cin对象指定输入域宽的两种方法分别是                      。​
答案: 【 用操作符setw ()和直接调用width()

第2章 C++的数据类型

第2章 C++的数据类型 测验

1、单选题:
‏以下对C++中变量使用的说法,正确的是()。‎
选项:
A: 变量名可以随意命名
B: 变量必须先定义再使用
C: 变量可以不区分数据类型
D: 变量未初始化时,其值为零
答案: 【 变量必须先定义再使用

2、单选题:
‏以下常量表示中不正确的是()。​
选项:
A: 0
B: ‘55’
C: 0x2a3
D: 103
答案: 【 103

3、单选题:
‌下列选项中属于字符串常量的是()。‏
选项:
A: 'hello'
B: “ab0x123cd”
C: Hello
D: ‘a’
答案: 【 “ab0x123cd”

4、单选题:
‍说明enum money {Fen, Jiao, Yuan=100, Tenyuan};中每个枚举变量所对应的实际值为()。‎
选项:
A: 0, 1, 100, 101
B: 1, 2, 100, 101
C: “Fen”, “Jiao”, “Yuan”或100, “Tenyuan”或101
D: “Fen”或1, “Jiao”或2, “Yuan”或100, “Tenyuan”或101
答案: 【 0, 1, 100, 101

5、单选题:
‍若x, y, z的初值均为1,则执行表达式w=++x||++y&&++z后,x, y, z的值分别为()。‍
选项:
A: x=1, y=1, z=2
B: x=2, y=2, z=2
C: x=1, y=2, z=1
D: x=2, y=1, z=1
答案: 【 x=2, y=1, z=1

6、单选题:
​设a是整型变量,初值是6,执行完表达式a+=a-=a*a后,a的值为()。‍
选项:
A: 36
B: -60
C: 60
D: 0
答案: 【 -60

7、单选题:
‍在C++中,要求运算数必须是整型的运算符是()。‌
选项:
A: %
B: /
C: <
D: !
答案: 【 %

8、单选题:
‎关系式x>=y>=z的C++语言表达式是()。‍
选项:
A: (x>=y)&&(y>=z)
B: (x>=y)||(y>=z)
C: (x>=y>=z)
D: (x>=y)&(y>=z)
答案: 【 (x>=y)&&(y>=z)

9、单选题:
‎设a、b、c都是int型变量,a=3, b=4, c=5,下列表达式中,值为0的表达式是()。‏
选项:
A: ‘a’&&’b’
B: a<=b
C: a||b+c&&b-c
D: !((a<b)&&!c||1)
答案: 【 !((a<b)&&!c||1)

10、单选题:
‌下列语句中符合C++语法的语句是()。‍
选项:
A: a=7+b+c=a+7;
B: a=7+b++=a+7;
C: a=7+b, b++, a+7
D: a=7+b, c=a+7;
答案: 【 a=7+b, c=a+7;

11、单选题:
‍下面程序的运行结果是()。‍#include <iostream>‍using namespace std;‍void main()‍{    int x=040;‍      cout<<(x=x<<1)<<endl;‍‍        }‍‍‍‍‍
选项:
A: 100
B: 160
C: 120
D: 64
答案: 【 64

12、判断题:
‎常变量必须在定义时赋初值,且在程序的运行中值不可变。‍
选项:
A: 正确
B: 错误
答案: 【 正确

13、填空题:
‍设x=3, y=5, 表达式x=y==3运算后的值为                 。​
答案: 【 0

14、填空题:
‏表示10<x<100或x<0的C++表达式是                     。‍
答案: 【 (x>10)&&(x<100)||(x<0)

15、填空题:
‎下列程序的运行结果是                                    。‎#include  <iostream>‎using namespace std;‎void main( )‎{‎        int n1, n2;‎        n1=123, n2=234;‎        cout<< n1 & n2<<endl;‎cout << n1 | n2 <<endl;‎cout<< n1 ^ n2 <<endl;‎‎        }‎‎‎‎‎
答案: 【 106
251
145

16、填空题:
下列程序的运行结果是                                    。‎   #include <iostream>‎using namespace std;‎void main()‎  {          int num=39, mask;‎            num >>= 3;               ‎            mask = ~ ( ~0 << 3);      ‎            cout<<"result="<<hex<<num & mask<<endl;‎}‎‎​‎
答案: 【 result=0x4

17、填空题:
下列程序的运行结果是                                    。‎‎#include  <iostream>‎using namespace std;‎void main()‎{‎unsigned a=3,b;‎b=~a|a<<2+1;‎cout<<hex<<b<<endl;‎    }‎‎​‎
答案: 【 fffc

18、填空题:
​设a, b为整型量,且a=7, b=8,则表达式a=a|b<<2&&~b的值为            。‍
答案: 【 1

19、填空题:
​设二进制数a是00101101,若想通过异或运算a^b使a的高4位取反,低4位不变,则二进制数b应是                            。​
答案: 【 11110000

第3章 C++语句

3.1 算法的基本概念和表示方法随堂测验

1、单选题:
‏对于用C++语言实现的算法,以下叙述中正确的是 ( )。‎
选项:
A: 必须要有输入和输出操作 
B: 可以没有输出但必须要有输入
C: 可以没有输入但必须要有输出
D: 可以既没有输入也没有输出
答案: 【 可以没有输入但必须要有输出

2、填空题:
‍三种基本结构分别是      、        和        。‎
答案: 【 顺序 选择 循环

3.2 随堂测验填空题

1、填空题:
当从键盘输入10 20时,以下程序段的输出结果是                  。 (区分==和=)‍#include<iostream>‍using namespace std;‍void main()‍{    int num1, num2;‍    cout<<"Please input num1 and num2:n";‍    cin>>num1>>num2;‍    if(num1 = num2) ‍        cout<<"num1=num2"<<endl;‍    else ‍        cout<<"num1!= num2"<<endl;‍}‍‏‍
答案: 【 num1=num2

2、填空题:
‍当输入1 0 0时,以下程序段的输出结果是             。 (易错的关系表达式)‏‍#include<iostream>‏‍using namespace std;‏‍void main()‏‍{ int a, b, c;‏‍ cout<<"Please input a, b and c:n";‏‍       cin>>a>>b>>c;‏‍       if(a<=b<=c) ‏‍       { cout<<"min=a="<<a<<endl;‏‍ cout<<"max=c="<<c<<endl;‏‍   }‏‍}‏‍‏
答案: 【 min=a=1
max=c=0

3、填空题:
以下程序运行后的输出结果是               。 (条件表达式的多样性)‎#include<iostream>‎using namespace std;‎void main()  ‎{ int a = 3, b = 4, c = 5, t = 99;  ‎        if(b) if(a) cout<<a<<b<<t<<endl;‎ else cout<<a<<b<<c<<endl;  ‎}‎‍‎
答案: 【 3499

4、填空题:
以下程序运行后的输出结果是               。‍#include<iostream>‍using namespace std;‍void main()‍{‍ int a=5, b=8 , c=4 , d=3 , m=1, n=0, p;‍ if( (m = a > b) && (n = c > d))‍   p = m + n;‍ else‍ p = m – n;‍ cout<<"m="<<m<<", n="<<n<<", p="<<p<<endl;‍}‍‏‍
答案: 【 m=0,n=0,p=0

3.2 随堂测验选择题

1、单选题:
​要使以下程序的输出结果为10,则a和b应满足的条件是( )。‌​#include<iostream>‌​using namespace std;‌​void main()‌​{ int s, t, a, b;‌​       cin >> a >> b;‌​       s = t = 5;‌​       if(a > 0) s += 2;‌​       if(a > b) t = s + t;‌​else‌​  if(a == b) t = 5;‌​  else t = 2 * s;‌​cout << t << endl;‌​}‌
选项:
A: a>0并且a<b
B: a<0并且a<b
C: a>0并且a>b
D: a<0并且a>b
答案: 【 a<0并且a<b

2、单选题:
‌执行以下程序段后,a,b,c的值分别是( )。‍‌ int a, b = 20, c, x = 9, y = 8;‍‌ a = (--x == y)? --x : y++;‍‌ if(x < 9) b = x++; c=y;‍
选项:
A: 7, 8, 8
B: 7, 7, 8
C: 7, 8, 9
D: 8, 9, 9
答案: 【 7, 7, 8

3.3 随堂测验填空题

1、填空题:
当从键盘输入'c'时,以下程序段的输出结果是                。 ‏cin>>n; ‏switch(n) ‏{ default: cout<<"errorn";break; ‏ case 'a': case 'A':case 'b':case 'B':cout<<"goodn";break; ‏ case 'c': case 'C':cout<<"passn"; ‏  case 'd': case 'D':cout<<"warnn"; ‏}‏‌‏
答案: 【 pass
warn

2、填空题:
‏以下程序的输出结果是             。​‏ #include<iostream>​‏ using namespace std;​‏ void main(  )​‏ {   int i=4;       ​‏ switch(i%4)​‏ {   case 0:​‏              case 1:   cout<<'D'+i<<endl; ​‏              case 2:   cout<<'E'+i<<endl;  break;​‏              default: cout<<"n";​‏              }​‏ } ​‏​
答案: 【 72
73

3、填空题:
‍以下程序的运行结果是             。‏‍#include<iostream>‏‍using namespace std;‏‍void main()‏‍{   int x=1,y=0,a=0,b=0;‏‍    switch(x)‏‍    { case 1:‏‍             switch(y)‏‍             {   case 0:   a++;  ‏‍                  case 1:   b++;  ‏‍             }‏‍               case 2:  a++;b++; break;‏‍               case 3:  a++;b++;‏‍    }‏‍    cout<<"a="<<a<<", b="<<b<<"n”;‏‍} ‏‍‏
答案: 【 a=2, b=2

3.3 随堂测验选择题

1、单选题:
‎若a和b均是整型变量,以下正确的switch语句是( )。‏
选项:
A: switch(a/b)   {case 0:case1.5:y=a+b;break;  case 2:case 3:y=a-b; }
B: switch(a*a+b*b);   { case0:y=a+b;break;     case1:y=b-a;break;  }
C: switch a   {case 0:x=a+b;    case 1:y=a-b;break;}
D: switch(a+b)   {case 0:x=a+b;break;    case 1:y=a-b;break;    }
答案: 【 switch(a+b)   {case 0:x=a+b;break;    case 1:y=a-b;break;    }

3.4 随堂测验填空题

1、填空题:
​以下程序的输出结果是            。‎​#include<iostream>‎​using namespace std;‎​void main()‎​{ int num = 2;‎​ while(num-- ) ;‎​ cout<<num<<endl;‎​}‎​‎
答案: 【 -1

2、填空题:
以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请填空。(答案中请不要带空格,答案之间用3个空格键间隔)​‌    #include<iostream>​‌       using namespace std;​‌       void main()​‌       {    float x,max,min;​   cin>>x;​‌             max=x;​‌             min=x;​‌             while(         )​‌             {     if (        )     max=x;​‌                  if(         )    min=x;​‌                   cin>>x;​‌             }​‌             cout<<"nmax="<< max <<"nmin="<< min<<"n";​‌       }​‌ ​‌​
答案: 【 x!=-1 x>max x<min

3、填空题:
以下程序的输出结果是                  。‍‎       #include<iostream>‍‎       using namespace std;‍void main()‍‎       {     int x=5,y=9,a=0;‍‎            while (x++!=y--)       a+=1;‍‎             cout<<"x="<<x<<",y="<<y<<",a="<<a<<"n";‍‎       }‍‎‍
答案: 【 x=8,y=6,a=2

3.4 随堂测验选择题

1、单选题:
​有以下程序段:‎​int k = 0;‎​while(k = 1) k++;‎​则while循环执行的次数是()。‎
选项:
A: 无限次
B: 有语法错,不能执行
C: 一次也不执行
D: 执行1次
答案: 【 无限次

3.5 随堂测验填空题

1、填空题:
‌以下程序的输出结果是           。​‌ #include<iostream>​‌ using namespace std;​‌ void main()​‌ { int x = 4;​‌ do​‌ { x -= 3;​‌ cout<<x<<endl;​‌ }while(!( --x ));​‌ }​‌​
答案: 【 1
-3

3.5 随堂测验选择题

1、单选题:
‌有以下程序段:‏‌#include<iostream>‏‌using namespace std;‏‌void main()‏‌{ int k = 0;‏‌ do‏‌ { k--;‏‌ cout<<k<<endl;‏‌ }while(k >= 0); ‏‌}‏‌则do-while循环执行的次数是()。‏
选项:
A: 无限次
B: 有语法错,不能执行
C: 一次也不执行
D: 执行1次
答案: 【 执行1次

3.6 随堂测验填空题

1、填空题:
以下程序的输出结果是                  。‏​#include<iostream>‏​#include<iomanip>‏​using namespace std;‏​void main()‏​{    int i;‏​      for (i=1;i>=0;)   cout<<i--;‏​}‏​‏
答案: 【 10

2、填空题:
下述程序计算Fibonacci数列的前20个数,且每行输出5个数,请填空。(答案中请不要带空格,答案之间用3个空格键间隔)‎​#include<iostream>‎​#include<iomanip>‎​using namespace std;‎​void main()‎​{    int f,f1=1,f2=1;‎​      int i;‎​      cout<<setw(6)<<f1;‎​      cout<<setw(6)<<f2;‎​      for (i=3;i<=20;i++)‎​       {    f =            ;‎​             cout<<setw(6)<<f;‎​             if(           )‎​                     cout<<endl;‎​             f1=f2;‎​                         ;‎​         }‎​}‎​‎
答案: 【 f1+f2 i%5==0 f2=f

3、填空题:
下述程序计算从键盘输入的两个数的最大公约数,请填空。(答案中请不要带空格,答案之间用3个空格键间隔)​‎#include<iostream>​‎#include<iomanip>​‎using namespace std;​‎void main()​‎{    int x, y, r, gcd;​‎      cout<<"Enter two number: n ";​‎      cin>> x>>y;​‎      r=              ;​‎      while (             )​‎      {     x=y; y=r; r=              ;       }​‎      cout<<"The result is "<<y<<endl;​‎}​‎​
答案: 【 x%y r!=0 x%y

3.6 随堂测验选择题

1、单选题:
‎以下程序的执行结果是( )。‍‎#include<iostream>‍‎using namespace std;‍‎void main()‍‎{ int i, sum=0;‍‎ for(i=1;i<=5;sum++)‍‎    sum+=i;‍‎ cout<<sum<<endl;‍‎}‍‎‍
选项:
A: 6
B: 5
C: 无限循环
D: 0
答案: 【 无限循环

3.7 随堂测验填空题

1、填空题:
‌以下程序的运行结果是           。‌‌#include<iostream>‌‌using namespace std;‌‌void main()‌‌{ int  a = 0, b = 1;‌‌ for ( ; a<5 ; a++, b++)‌‌ { if (( a+b ) % 5 == 0) continue;‌‌  b += a; ‌‌ }‌‌ cout<<"a="<<a<<", b="<<b<<"n";‌‌} ‌
答案: 【 a=5, b=13

2、填空题:
当从键盘输入2453时,以下程序的运行结果是                 。‌‍#include<iostream>‌‍using namespace std;‌‍void main()‌‍{     char c;‌‍       cin.get(c);‌‍       while(c !='n')‌‍       {     switch(c - '2')‌‍              {     case 0:  case 1:  cout<<(char)(c+1); break;‌‍                     case 2: cout<<(char)(c+2);  break;‌‍                     case 3:  cout<<(char)(c+3);‌‍                     default:  cout<<(char)(c+4);  break;‌‍               }‌‍               cin.get(c);‌‍       };‌‍}‌
答案: 【 36894

3.7 随堂测验选择题

1、单选题:
‎在循环结构的循环体中执行break语句,其作用是( )。‏
选项:
A: 结束本次循环,进行下次循环
B: 继续执行break语句之后的循环体中各语句
C: 跳出该循环体,提前结束循环
D: 终止程序运行
答案: 【 跳出该循环体,提前结束循环

2、单选题:
‍以下程序的运行结果是( )。‏‍#include<iostream>‏‍using namespace std;‏‍void main()‏‍{ int i=1;‏‍  while(i)‏‍ { cout<<"*";‏‍  i++;‏‍  if(i<3) break;‏‍ }‏‍ cout<<"n";‏‍}‏
选项:
A: *
B: ***
C: **
D: ****
答案: 【 *

3、单选题:
以下程序的运行结果是( )。‍‍#include<iostream>‍‍using namespace std;‍‍void main()‍‍{    int i, sum=0;‍‍      for(i=1;i<10;i++)‍‍      {   if(i%5==0)  continue;‍‍                     sum+=i; ‍‍                     break;‍‍       }‍‍       cout<<sum<<"n";‍‍}‍
选项:
A: 1
B: 40
C: 无限循环
D: 无输出结果
答案: 【 1

第3章 C++语句 测验

1、单选题:
‎以下关于switch 语句和break 语句中,_______是正确的。‌
选项:
A: 在switch语句中,可以根据需要使用或不使用break语句
B: switch语句中必须用break 语句
C: break语句只能用于switch 语句
D: break语句是switch 语句必须的一部分
答案: 【 在switch语句中,可以根据需要使用或不使用break语句

2、单选题:
‌三元条件运算符ex1?ex2:ex3,相当于下面_______语句。‍
选项:
A: if(ex2) ex1;else  ex3;
B:  if(ex1) ex2;else  ex3;
C: if(ex1) ex3;else  ex2;
D: if(ex3) ex2;else  ex1;
答案: 【  if(ex1) ex2;else  ex3;

3、单选题:
以下程序运行后的输出结果为_______。‏#include<iostream.h>‏void main()‏{ int i=-1, j=1;‏      if((++i<0)&&!(j--<=0))‏      cout<<i<<" "<<j<<endl;‏      else‏      cout<<j<<" "<<i<<endl;‏}‏
选项:
A: -1   1
B: 1   0
C: 0   1
D: 0   0
答案: 【 1   0

4、单选题:
若有程序段如下:‏    a=b=c=0;x=35; if(!a) x; else if(b);‏    if (c) x = 3; else x = 4;‏执行后,变量x 的值是_______________。‏‌‏
选项:
A: 35
B: 4
C: 34
D: 3
答案: 【 4

5、单选题:
‍运行下列程序段后a的值是_______________。​‍int a = 10; ​‍switch(a)​‍{  case 9: a++;​case 10: a++;​case 11: a++;​default: a++;​‍}​
选项:
A: 10
B: 11
C: 12
D: 13
答案: 【 13

第3章补充 结构体与链表

(补充)3.1 结构体的定义随堂测验

1、填空题:
为了建立如图所示存储结果,data为数据区,next为指向结点的指针域,请填空:‌     data          next‌ ‌ ‌ ‌struct link‌{       char data;‌                     ;‌}node;‌‏‌
答案: 【 struct link *next

(补充)3.2 结构体的应用随堂测验

1、单选题:
‌以下程序的运行结果是()。‏‌         #include<iostream>‏using namespace std;‏void main( )‏{      struct cmplx { ‏int x; ‏int y;‏} cnum[2]={1, 3, 2, 7};‏        cout<<(cnum[0].y/ cnum[0].x* cnum[1].x)<<endl;‏}‏‌‏
选项:
A: 0
B: 1
C: 3
D: 6
答案: 【 6

(补充)3.3 用typedef定义类型随堂测验

1、单选题:
​下列说法中,不正确的是()。‌
选项:
A: typedef 只能用于为已知数据类型名定义新的类型名。
B: typedef 应用于软件移植。
C: typedef并没有增加新的数据类型。
D: typedef和define等价。
答案: 【 typedef和define等价。

(补充)3.4 链表的建立随堂测验

1、填空题:
​以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾。单向链表的头指针作为函数值返回。请填空。‍#include<iostream>‍using namespace std;‍struct list‍{       char data;‍       list *next;‍};‍list *creat( )‍{        list *h,*p,*q;‍         char ch;‍         h=         (1)             ;‍         p=q=h;‍         cin>>ch;‍         while (ch!=’?’)‍         {      p=      (2)            ;‍                  p->data=ch;‍                 q->next=p;‍                  q=p;‍                  cin>>ch;‍         }‍         p->next=NULL;‍               (3)         ;‍}‍​‍
答案: 【 (1) new list (2) new list (3) return (h)

(补充)3.6 链表的插入及有序链表的建立随堂测验

1、单选题:

若已建立以下链表结构,指针ps分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是:

​选项:
A: s->next=NULL;         p=p->next;      p->next=s;
B: p=p->next;      s->next=p->next;    p->next=s;
C: p=p->next;      s->next=p;       p->next=s;
D: p=(*p).next;    (*s).net=(*p).next; (*p).next=s;
答案: 【 p=p->next;      s->next=p;       p->next=s;

2、填空题:
有定义:​struct node  {   ​    int num;​     node *next;​} *head, *p;​假定head是一链表首指针,则欲将p指向的结点插入到该链表首部,应做的操作是                         。​‍​
答案: 【 p->next=head; head=p;

第4章 函数

3.9 编译预处理随堂测验

1、单选题:
‏编译预处理包括()。‍
选项:
A: 构造工程文件
B: 语句注释
C: 宏定义、文件包含和条件编译
D: 编译源程序
答案: 【 宏定义、文件包含和条件编译

2、单选题:
‌预处理命令不具有如下特点:‎
选项:
A: 均以“#”开头
B: 必在程序开头
C: 后面不加分号
D: 在真正编译前处理
答案: 【 必在程序开头

3、单选题:
设有以下宏定义   ‏ #define   MOD(x, y)     x%y‏则执行语句:int z, a=5, b=10; z=MOD(b+3, a); cout<<z++;后,输出为()。‏
选项:
A: 5
B: 3
C: 13
D: 14
答案: 【 13

4、单选题:
​设有以下宏定义和语句:‏​#define P(x, y) x/y‏​#define PP(a, b) a*b‏​int c=P(2+3, 2+3)+PP(2+3, 2+3);‏​则变量c的值是()。‏
选项:
A: 26
B: 17
C: 17.5
D: 31
答案: 【 17

5、单选题:
‎下面程序的运行结果是()。‎‎#include <iostream>‎‎using namespace std;‎‎#define SUB(X, Y) (X)*Y‎‎void main()‎‎{ int a=3, b=4;‎‎ cout<<SUB(a++, b++)<<endl;‎‎}‎
选项:
A: 12
B: 15
C: 16
D: 20
答案: 【 12

6、单选题:
假设有宏定义:‎#define NUM 15‎#define DNUM NUM+NUM‎则表达式DNUM/2+NUM*2的值为()。‎
选项:
A: 45
B: 67
C: 52
D: 90
答案: 【 52

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

发表评论

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