第二章 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; // 定义a,b,sum三个整型变量
a=43; // 把整数常量赋给变量a
b=37;
sum=a+b; // a与b相加的和赋给变量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小时内删除。
发表评论