第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.4C++运算符随堂测验

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.6cin和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

C++程序设计基础单元测试

1、单选题:
‌C++的合法注释是_________。​
选项:
A: /*Welcom to  C program class/* 
B: //Welcom to  C program class
C: "Welcom to  C program class"
D: //Welcom to  C program class//
答案: 【 //Welcom to  C program class

2、单选题:
‍下面标识符中正确的是_________。​
选项:
A: _abc     
B: 7ab     
C: int     
D: -cd
答案: 【 _abc     

3、单选题:
‏表达式18/4*sqrt(4.0)/8值的数据类型为_______________。‎
选项:
A: int         
B:   float      
C:  double       
D:  不确定
答案: 【  double       

4、单选题:
‌下列运算符中优先级最高的是_________ 。  ‌‌‌‌‌
选项:
A:   ?:        
B:  &&           
C: +          
D:   !=  
答案: 【 +          

5、单选题:
‏设a是整型变量,则表达式(a=4*5,a*2),a+6的值是 _________ 。  ‏‏  ‏‏‏
选项:
A: 20           
B: 26         
C:    40          
D:  46 
答案: 【 26         

6、单选题:
‎设int k=7,x=12;则下述表达式值为3的是_____。 ‍‎ ‍‎‍
选项:
A: x%=(k%=5)           
B: x%=(k-k%5) 
C: x%=k-k%5                
D:   (x%=k)-(k%=5)
答案: 【   (x%=k)-(k%=5)

7、单选题:
​以下对枚举类型名的定义中,正确的是__________。    ‎
选项:
A: enum a ={one,two,three};   
B:  enum a{a1, a2,a3};    
C:  enum a ={’1’,’2’,’3’};    
D: enum a {"one","two","three" };
答案: 【  enum a{a1, a2,a3};    

8、单选题:
‎用C++的语言表达式表示 |x4+log10x| 正确的是_________。       ‎‎ fabs(x*4+log(x))                  ‎‎‎
选项:
A:  fabs(x*4+log(x))                 
B:    abs(pow(x,4)+log(x))      
C: fabs(pow(x,4.0)+log(x))        
D:  abs(pow(x,4.0)+log(x))
答案: 【 fabs(pow(x,4.0)+log(x))        

9、单选题:
‌C++语言中语句的结束符是_________。 ‏‌‏‌‏
选项:
A:  ,     
B:  ;   
C:  。    
D:   、
答案: 【  ;   

10、单选题:
‍下列十六进制的整型常数表示中,_________是错误的。 ‏‏
选项:
A: 0xaf    
B:  0X1b     
C: 2fx     
D: 0XAE  
答案: 【 2fx     

11、单选题:
以下非法的赋值表达式是_________。  ‎‎‎‎
选项:
A: n=(i=2,++i);
B: j++; 
C:  ++(i+1); 
D:  x=j>0;
答案: 【  ++(i+1); 

12、单选题:
下列说法正确的是   ______________     。 ‍‍
选项:
A:  用C++语言书写程序时,不区分大小写字母。
B:  用C++语言书写程序时,每行必须有行号。
C: 用C++语言书写程序时,一行只能写一个语句。
D: 用C++语言书写程序时,一个语句可分几行写。
答案: 【 用C++语言书写程序时,一个语句可分几行写。

13、单选题:
C++源文件的扩展名为____________。       ​‏ ​
选项:
A: cpp
B: c
C: txt     
D: exe  
答案: 【 cpp

14、单选题:
C++语言属于_________。 ‍‌‍‌‍
选项:
A: 机器语言  
B: 低级语言   
C: 中级语言  
D:  高级语言 
答案: 【  高级语言 

15、单选题:
‌X>Y&&X<=Y的值为_________。 ‏‌‏‌‏
选项:
A: true                   
B: false  
C: 与X>Y的值相同           
D: 与X<=Y的值相同 
答案: 【 false  

16、单选题:
‌若w是一个bool型变量,则w || 5的值是_________。       ​‌​‌​
选项:
A:  A. true                    
B:   B. false  
C: C. 与w的值相同            
D: D. 与!w的值相同
答案: 【  A. true                    

17、单选题:
‎如果说明语句:char c=‘72’;则变量c _________。  ‍‍‎‍
选项:
A: 包含1个字符          
B: 包含2 个字符 
C: 包含3个字符           
D: 说明不合法,c 的值不确定 
答案: 【 包含1个字符          

18、单选题:
‏以下叙述中不正确的是_________。       ‍‏‍‏‍
选项:
A:  A.在C++程序中,name和NAME是两个不同的变量   
B: B.在C++ 程序中,逗号运算符的优先级最低 
C: C.若变量m,n为int型,则m=n后,n中的值不变   
D: D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。     
答案: 【 D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。     

19、单选题:
‎设a是整型变量,则表达式(a=4*5,a*2),a+6的值是 _________ 。  ‍‎  ‍
选项:
A: A.20         
B:   B.26          
C:   C.40           
D: D.46  
答案: 【   B.26          

20、单选题:
‏设有语句:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是____________。       ‎‏‎‏‎
选项:
A: 2.500000           
B:  2.750000      
C:    3.500000           
D:  0.000000     
答案: 【 2.500000           

第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、单选题:
​以下描述中正确的是_______。‍
选项:
A: 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B: do-while循环中do开始,用while结束,在while(表达式)后面不能写分号
C: 在do-while循环体中,一定要有能使while后面表达式的值变为零的操作
D: do-while循环中,根据情况可以省略do
答案: 【 在do-while循环体中,一定要有能使while后面表达式的值变为零的操作

3、单选题:
‎三元条件运算符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;

4、单选题:
以下程序运行后的输出结果为_______。‏#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

5、单选题:
‍已知int k=1; for(k=2; 1; k++) if(k) break;  for 语句的循环次数是_______ 。‍
选项:
A: 0
B: 1
C: 2
D: 无限次
答案: 【 1

6、单选题:
‎在C++程序中,当while语句构成的循环中的条件为________时,结束循环。‏
选项:
A: 1
B: 0
C: true
D: 非0
答案: 【 0

7、单选题:
若有程序段如下:‌    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

8、单选题:
‏在下列描述中,正确的是_________。‏
选项:
A: if(表达式) 语句中,表达式的类型不限于逻辑表达式
B: 语句”goto 12;”是合法的
C: for(; ;)语句相当于while(0)语句
D: break语句可用于程序的任何地方,以终止程序的执行
答案: 【 if(表达式) 语句中,表达式的类型不限于逻辑表达式

9、单选题:
‏运行下列程序段后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

10、填空题:
以下程序运行后的输出结果是________。‎#include <iostream>‎using namespace std;‎void main()‎{‎  int x = 3;‎  if(x++>4)  cout<<x;‎  else cout<<x--;‎‎                } ‎
答案: 【 4

11、填空题:
以下程序运行后的输出结果是________。‌#include <iostream>‌using namespace std;‌void main()‌{‌   int x =1, y = 0, i = 2, j = 3;‌   switch(x)‌   { ‌     case 1: switch(y)‌     {   case 0: i++; ‌         case 1: j++; break;‌                   }‌         case 2: i++; j++; break;‌   }‌    cout <<i<<','<<j;                        ‌ }‌‏‌
答案: 【 4,5

12、填空题:
#include <iostream>‏using namespace std;‏void main()‏{‏   int i, x;‏   for(i=1, x= 1; i<=40; i++)‏     {  if(x>=12) break;‏       if(i%2==1)‏        {x+=5; continue;‏         }‏    x-=3;‏   }‏  cout<<x<<','<<i;‏‍                }      ‏‍‏
答案: 【 12,8

13、填空题:
#include <iostream>‍using namespace std;‍void main()‍{‍  float x, y;‍  x = 8;‍  if(x<0.0) y = 0.0;‍  else if((x<5.0)&&(x!=2.0)) y = 1.0/(x+2.0);‍  else if(x<10.0)  y = 1/x;‍  else y = 10.0;‍  cout<<y<<endl;‍‏              }   ‍‏‍
答案: 【 0.125

14、填空题:
#include <iostream>‍using namespace std;‍void main()‍{‍  int x = 3; ‍  while (x--);‍  cout<<x;‍}‍​‍
答案: 【 -1

15、填空题:
#include <iostream>‏using namespace std;‏void main()‏{‏  int i = -3;‏  while(i++)‏ {‏ switch(i+3)‏ { case 1:‏    switch(-i-2)‏     { ‏       case 1: cout<<i<<endl;‏       case 2: cout<<i<<endl;‏      }‏   case 2: cout<<i<<endl; break;‏   case 3: cout<<i<<endl;‏‌                    } ‏‌             }‏‌        }  ‏‌‏
答案: 【 -2 -1 0

16、填空题:
以下程序计算x、y、z三个数中的最小值。填空补充程序中的语句。‎#include  <iostream>‎using namespace std;‎int main()‎{ int x=4, y=5, z=8;‎ int u, v;‎ u=x<y?_____;‎ v=u<z?_____;‎ cout<<v;‎}‎‎‎
答案: 【 x:y u:z

17、填空题:

利用如下公式计算:

‌   

#include <iostream>

using namespace std;

void main()

{

  double _____, x = 1;

  int sign = 1;

  long k = 1;

  while (fabs(x)>1e-8)

   {

     s+=2;

      k+=2;

     _____;

     x = sign/(double)k;

   }

     _____;

cout<<s;

}

‏答案: 【 s=0 sign*=-1 s*=4

第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<<", y="<<y;​        cout<<", z="<<z<<'n';​}​
答案: 【 x=50, y=500, z=0

6、填空题:
​以下程序的输出为                        。​#include<iostream>​using namespace std;​void s(int a, int &b) {int t=a; a=b; b=t;}​void main( )​{      int x=500, y=1000;​        cout<<x<<'t'<<y<<'n'; ​        s(x, y);​        cout<<x<<'t'<<y<<'n';​}​
答案: 【 500 1000
500 500

3.3局部变量和全局变量随堂测验

1、单选题:
‏以下程序的输出结果是( )。​‏#include<iostream>​‏using namespace std;​‏int x=10;​‏void main( )​‏{ int x=20;​‏ x+=::x;​‏ { int x=50;​‏ ::x+=x;​‏ }​‏ cout<<x<<'t'<<::x<<'n';​‏}​
选项:
A: 6 4
B: 30 60
C: 3 4
D: ::x是非法引用
答案: 【 30 60

2、单选题:
‍以下程序的输出结果是( )。‎‍#include<iostream>‎‍using namespace std;‎‍int d=1;‎‍void fun(int p)‎‍{ int d=5;‎‍ d+=p++;‎‍ cout<<d;‎‍}‎‍void main()‎‍{ int a=3;‎‍ fun(a);‎‍ d+=a++;‎‍ cout<<d<<endl;‎‍}‎
选项:
A: 84
B: 96
C: 94
D: 85
答案: 【 84

3、单选题:
‎以下程序的输出结果是( )。‍‎#include<iostream>‍‎using namespace std;‍‎int m=13;‍‎int fun2(int x, int y)‍‎{ int m=3;‍‎ return (x*y-m);‍‎}‍‎void main()‍‎{ int a=7, b=5;‍‎ cout<<fun2(a, b)/m<<endl;‍‎}‍
选项:
A: 1
B: 2
C: 7
D: 10
答案: 【 2

3.4变量的存储类别随堂测验

1、单选题:
​以下程序的输出结果是( )。‏​#include<iostream>‏​using namespace std;‏​int t( )‏​{ static int i=100;‏​ i+=5;‏​ return i;‏​}‏​void main( )‏​{ cout<<"i="<<t( )<<'t';‏​ cout<<"i="<<t( )<<'n';‏​}‏
选项:
A: 105 110
B: 105 105
C: 100 100
D: 110 105
答案: 【 105 110

2、单选题:
‏以下程序的运行结果是()。‎‏#include<iostream>‎‏using namespace std;‎‏int func(int a, int b)‎‏{ static int m, i=2;‎‏ i+=m+1;‎‏ m=i+a+b;‎‏ return m;‎‏}‎‏void main()‎‏{ int k=4, m=1, p;‎‏ p=func(k, m);‎‏ cout<<p<< “, ”;‎‏ p=func(k, m);‎‏ cout<<p<< endl;‎‏}‎
选项:
A: 8, 17
B: 8, 16
C: 8, 20
D: 8, 8
答案: 【 8, 17

3、单选题:
‏以下程序的运行结果是()。‏‏#include<iostream>‏‏using namespace std;‏‏int fun (int x)‏‏{ static int a=3;‏‏ a+=x;‏‏ return a;‏‏}‏‏void main()‏‏{ int k=2, m=1, n;‏‏ n=fun(k);‏‏ n=fun(m);‏‏ cout<<n<< endl;‏‏}‏
选项:
A: 3
B: 4
C: 6
D: 9
答案: 【 6

4、单选题:
‎以下四个程序片段中各定义了一个变量a,其中在a变量作用域开始时才为其分配内存存储区,并在其作用域结束时就收回其存储区的是()。‎
选项:
A: int fun( ){      static int a; int b; ...... }
B: float fun( ){      int a; int b; ...... }
C: int a;int fun( ){      int b; ...... }
D: static int a;int fun( ){      int b; ...... }
答案: 【 float fun( ){      int a; int b; ...... }

5、填空题:
‌以下程序的输出结果是                  。‏‌#include<iostream>‏‌using namespace std;‏‌int fun(int k)‏‌{ static int m=1;‏‌ int n=2;‏‌ m=k+m+n++;‏‌ return m;‏‌}‏‌void main( )‏‌{ for(int i=0; i<3; i++)‏‌ cout<<fun(i++)<<'t';‏‌ cout<<'n';‏‌}‏
答案: 【 3, 7

3.5默认参数及内联函数随堂测验

1、单选题:
‎C++中关于带默认参数函数的叙述,正确的是( )。​
选项:
A: 不允许设置函数的默认值。
B: 函数的默认值只能有一个。
C: 函数的默认值应该先设置右边然后再设置左边。
D: 函数的默认值应该先设置左边然后再设置右边。
答案: 【 函数的默认值应该先设置右边然后再设置左边。

3.6函数重载随堂测验

1、单选题:
‌以下有关函数重载的正确说法是()‏
选项:
A: 重载函数的函数名可以不同,但其实现的功能必须相同。
B: 完成不同功能的函数可以具有相同的函数名,而且其参数的个数和类型也必须相同。
C: 完成不同功能的函数可以具有相同的函数名,但必须具有不同的返回值类型。
D: 完成不同功能的函数可以具有相同的函数名,但必须具有不同的参数个数或不同的参数类型。
答案: 【 完成不同功能的函数可以具有相同的函数名,但必须具有不同的参数个数或不同的参数类型。

3.7函数模板随堂测验

1、填空题:
‏下列程序运行结果是                                。‌‏‌‏template<class  T>‌‏T  f(T *a, T *b, int n)‌‏{‌T  s=(T)0;‌ ‌for(int i=0;i<n;i++)‌        s+=a[i]*b[i];‌return s;‌‏}‌ ‌‏void main( )‌‏{‌double c [5]={1.1,2.2,3.3,4.4,5.5},d[5]={10.0,100.0,1000.0};‌ ‌cout<<f(c, d, 5)<<endl;‌‏}‌‏‌
答案: 【 3531

2、填空题:
‌下列程序运行结果是                                。‌‌‌‌template<class T>‌‌T fun ( T* a , T* b , int n) {‌‌        T s= ( T)0;‌‌ ‌‌        for ( int i=0;i<n;i++)              s+=a[i]*b[i];‌‌        return s;‌‌}‌‌void main (  ) {‌‌      double c[5]={1.0 , 2.0 , 3.0 , 4.0 , 5.0 };‌‌     double d[5]={10 , 100 , 1000 };‌‌     cout<<fun ( c , d , 5)<<endl;‌‌}‌‌‌
答案: 【 3210

3.8函数的递归调用随堂测验

1、填空题:
‏以下函数的输出结果是                       。​‏​#include<iostream>​using namespace std;​int f(int i)​{      if(i==1)           return 1;​        return  i*f(i-1);​}​void main( )​{      int sum=0, t;​        for( int j=1; j<=4; j++)​        {      t=f(j);​                sum+=t;​                cout<<t<<'t'<<sum<<'n';​        }​}​‏​
答案: 【 1 1
2 3
6 9
24 33

2、填空题:
‌以下程序的输出是             。‍‌‍#include<iostream>‍using namespace std;          ‍‌        void pr(int n)‍‌        {      if(n)‍‌                {      cout<<n%8;‍‌                         pr(n/8/8);‍‌                }‍‌        }‍‌        void main( )‍‌        {      pr(166);  }‍‌‍
答案: 【 62

3、填空题:
‍以下程序的输出是  &nbs

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

发表评论

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