第1章 C++程序设计基础

1.1 简单的C++程序举例随堂测验

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

1.2 变量与常量随堂测验

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

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

1.3 文字常量随堂测验

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

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

1.4 C++运算符随堂测验

1、单选题:
‎若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

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

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

4、单选题:
‍关系式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)

5、单选题:
‎设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)

6、单选题:
​下列语句中符合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;

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

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

1.5 位运算随堂测验

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

2、填空题:
‎下列程序的运行结果是                                    。‌#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

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

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

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

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

1.6 cin和cout基本操作随堂测验

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、填空题:
‍cin对象指定输入域宽的两种方法分别是                      。‏
答案: 【 用操作符setw ()和直接调用width()

1.7 枚举类型的基本应用随堂测验

1、单选题:
‏说明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

第2章 C++流程控制

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

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

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

2.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

2.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

2.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

2.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;    }

2.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

2.4 随堂测验选择题

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

2.5 随堂测验填空题

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

2.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次

2.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

2.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
答案: 【 无限循环

2.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

2.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

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

第3章 函数

3.1 函数的定义和调用随堂测验

1、单选题:
‍在C++语言的函数体中,下面说法正确的是()。‎
选项:
A: 可以定义和调用其他函数
B: 可以调用但不能定义其他函数
C: 不可调用但可以定义其他函数
D: 不可调用及定义其他函数
答案: 【 可以调用但不能定义其他函数

2、单选题:
‏以下说法中,正确的是()‏
选项:
A: C++语言程序总是从第一个定义的函数开始执行
B: 在C++语言程序中,要调用的函数必须在main()函数中定义
C: C++语言程序总是从main()函数开始执行
D: C++语言程序中的main()函数必须放在程序的开始部分
答案: 【 C++语言程序总是从main()函数开始执行

3.2 函数的参数传递和返回值随堂测验

1、单选题:
‎以下关于函数参数的说法,不正确的是()。‏
选项:
A: 函数调用时,先将实参的值按照位置传递给对应的形参。
B: 实参与形参的个数及顺序不必一一对应。
C: 实参与形参的名字可以相同。
D: C++支持两种参数传递:传值和传引用。
答案: 【 实参与形参的个数及顺序不必一一对应。

2、单选题:
​以下关于引用的说法,正确的是()。‎
选项:
A: 引用其实是定义了一个新的变量。
B: 通过引用做参数,可以修改调用函数中变量的值。
C: 如果函数具有多个引用参数,则只需在第一个引用变量前加符号&。
D: 如果函数f的形参是引用,主调函数在调用f时,实参可以是一个值。
答案: 【 通过引用做参数,可以修改调用函数中变量的值。

3、单选题:
‌以下关于函数的返回值,不正确的说法是()。‏
选项:
A: 一个函数可以有多个参数,多个返回值。
B: 一个函数通过return语句最多只能返回一个值。
C: 如果一个函数的返回值类型不是void,那么该函数必须包含return语句。
D: 如果一个函数有返回值,则必须在函数头中指定返回值类型。
答案: 【 一个函数可以有多个参数,多个返回值。

4、单选题:
‍以下程序的运行结果是()。‎‍#include<iostream>‎‍using namespace std;‎‍int swap(int x, int y, int z)‎‍{ int t;‎‍ t=x; x=y; y=t;‎‍ z=x*y; x=x*x; y=y*y;‎‍ return z;‎‍}‎‍void main( )‎‍{ int x=50, y=20, z=0;‎‍ x=swap(x, y, z);‎‍ cout<<"x="<<x<<", y="<<y;‎‍ cout<<", z="<<z<<'n';‎‍}‎‍‎
选项:
A:  x=2500, y=400, z=1000
B: x=50, y=20, z=0
C: x=1000, y=400, z=1000
D: x=1000, y=20, z=0
答案: 【 x=1000, y=20, z=0

5、填空题:
‎以下程序的运行结果是                             。‎#include<iostream>‎using namespace std;‎void xyz(int x, int y, int z)‎{      int t;‎        t=x; x=y; y=t;‎        x=x*x; y=y*y; z=x-y;‎}‎void main( )‎{      int x=50, y=500, z=0;‎        xyz(x, y, z);‎        cout<<"x="<<x<

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

发表评论

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