第二章 C++基础知识练习题
1.请先阅读下面的2个程序,写出程序运行的结果,然后再上机运行程序,验证自己分析的结果是否正确。
    程序1:
#include <iostream>    //包含头文件命令
using namespace std;    //使用名字空间std
int main()
{   
    cout<<"This "<<"is ";
    cout<<"a "<<"C++ ";
    cout<< "program."<<endl;
    return 0;
}
程序2:
#include <iostream>    //包含头文件命令
using namespace std;    //使用名字空间std
int main()
{    int a,b,c;                              //定义三个变量a、b、c
    cout<<"Please input to a and b:"<<endl;    //输出提示信息到屏幕
    cin>>a>>b;    //等待用户从键盘输入数据
      c=a+b;
    cout<< "a+b=;
cout<<c;
cout<<endl;
    return 0;
}
2.输入以下程序,进行编译,观察编译结果,如果有错误,请修改程序,再进行编译,直到没有错误,然后进行连接和运行,并分析运行结果。
#include <iostream>    //包含头文件命令
using namespace std;    //使用名字空间std
int main()
{    int a,b;                              //定义两个变量a和b
    cout<<"Please input to a and b: "<<endl;    //输出提示信息到屏幕
    cin>>a>>b;    //等待用户从键盘输入数据
    cout<< "Max="<< max(a,b)<<endl;    //输出结果信息至屏幕
    return 0;    //主函数返回0至操作系统
}
int max(int x, int y) {  return (x> y) ?x:y;  }    //求两个数中的大者的函数
3.编写一个函数,用来求2个或3个正整数中的最大数,并在主函数中调用此函数。
(1) 用不带默认参数的函数实现。
(2) 用带默认参数的函数实现。
对比两种方法,分析使用带默认参数的函数的优点和应用场合。总结如何选择默认参数的值。请分析本题中默认参数的值应该在什么范围选取。
4.编写一个函数,用来实现对3个数按由小到大的顺序排序,并在主函数中调用此函数。要
求函数的形参用以下两种形式实现:
(1)使用指针形参
(2)使用引用形参
5.编写程序,用同一个函数名实现n个数据的升序排序,数据类型可以是整型、单精度型、字符串型。用重载函数实现。
6.编写程序,将两个字符串连接起来,结果取代第一个字符串。
第2章 C++基础知识补充习题
一、选择题
1、下列关于C++语言的发展说法错误的是( )。
A  C++语言起源于C语言          B  C++语言最初被称为“带类的C”
C  在1980年C++被命名            D  在1983年C++被命名
2、C++语言是以    语言为基础逐渐发展而演变而成的一种程序设计语言。( )
A  Pascal          B  C          C  Basic        D  Simula67
3、下列关于C++与C语言关系的描述中错误的是( )。
A  C++是C语言的超集           
B  C++是C语言进行了扩充
C  C++和C语言都是面向对象的程序设计语言 
D  C++包含C语言的全部语法特征
4、下列C++标点符号中表示行注释开始的是( )。
A  #              B  ;            C  //          D  }
5、每个C++程序都必须有且仅有一个( )。
A  预处理命令      B  主函数      C  函数        D  语句
6、C++对C语言做了很多改进,下列描述中哪一项使得C语言发生了质变,即从面向过程变成面向对象( )。
A  增加了一些新的运算符            B  允许函数重载,并允许设置默认参数 
C  规定函数说明必须用原型          D  引进类和对象的概念
7、对定义重载函数的下列要求中,错误的是( )。
A  要求参数的个数不同              B  要求参数中至少有一个类型不同
C  要求参数个数相同时,参数类型不同 D  要求函数的返回值不同
8、在函数的返回值类型与返回值表达式的类型的描述中,错误的是( )。
A  函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的
B  函数返回值的类型就是返回值表达式的类型
C  函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成返回值类型
D  函数返回值类型确定了返回值表达式的类型
9、下列不正确的选项是( )。
A  C++语言是一种既支持面向过程程序设计,又支持面向对象程序设计的混合型语言
B  标点符号是在程序中起分割内容和界定范围作用的一类单词
C  iostream是一个标准的头文件,定义了一些输入输出流对象
D  类与类之间不可以进行通信和联络
10、下列表示引用的方法中,正确的是( )。
已知:int k=1000;
A  int &x=k;    B  char &y;     C  int &z=1000;       D  float &t=&k;
二、填空题
1、C++既可以用来进行面向            程序设计,又可以进行面向          程序设计。
2、常量分成两种,一种是            常量,另一种是              常量。
3、      就是某一变量的别名,对其操作与对变量直接操作完全一样。
4、按函数在语句中的地位分类,可以有以下3种函数调用方式:                 
                                       
5、函数与引用联合使用主要有两种方式:一是              ;二是               
6、头文件由三部分内容组成:                                           
三、程序阅读题
1、分析下面的执行结果
#include<iostream >
using namespace std;
int main()
{
int a,b,sum;  // 定义absum三个整型变量
a=43;       // 把整数常量赋给变量a
b=37;
sum=a+b;   // ab相加的和赋给变量sum
cout<<"The sum is"<<sum;
cout<<endl; // endl 是回车换行的作用
return 0;
}
2、分析以下程序的执行结果
#include<iostream >
using namespace std;
int main()
{
int a;
int &b=a; //变量引用
b=10;
cout<<"a="<<a<<endl;
return 0;
}
3、下列程序的执行结果为
#include<iostream>
using namespace std;
void mian()
{
  int n=10;
  int* pn=&n;
int* &rn=pn;
(*pn)++;
  cout<<"n="<<n<<endl;
  (*rn)++;
  cout<<”n=”<<n<<endl;
}
4、下面程序的运行结果是
#include<iostream >
using多态性与虚函数 namespace std;
void fun(int &a,int &b)
{    int p;
    p=a; a=b; b=p;
}
void exchange(int &a,int &b,int &c)
{
    if(a<b)fun(a,b);
    if(a<c)fun(a,c);
    if(b<c)fun(b,c);
}
int main()
{
    int a,b,c;
a=12;
    b=639;
c=78;
exchange(a,b,c);
    cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;
return 0;
}
   
5、下面的程序输出结果为
#include<iostream>
using namespace std;
int main()
{
int *ir;
int i;
ir=&i;
i=17;
cout<<"int i="<<i<<endl;
cout<<"int ir="<<*ir<<endl;
 
}
6、下面程序的输出结果为 
#include<iostream>
using namespace std;
int fun(char *s);
int main()
{
cout<<fun("hello");
return 0;
}
int fun(char *s)
{  char *t=s;
while(*t!='\0')
t++;
return(t-s);
}
第2章 C++基础知识补充习题答案
一、选择题
1、下列关于C++语言的发展说法错误的是(  C )。
A  C++语言起源于C语言          B  C++语言最初被称为“带类的C”
C  在1980年C++被命名            D  在1983年C++被命名
2、C++语言是以    语言为基础逐渐发展而演变而成的一种程序设计语言。(  B )
A  Pascal          B  C          C  Basic        D  Simula67
3、下列关于C++与C语言关系的描述中错误的是( C )。
A  C++是C语言的超集           
B  C++是C语言进行了扩充
C  C++和C语言都是面向对象的程序设计语言 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。