【C++】基础练习(一)||从C到C++&函数

简介: 【C++】基础练习(一)||从C到C++&函数

从C 到C++

⭐️C++是在C语言基础山改进发展而来的,是C语言的一个超集。

1.关于C语言和C++的关系,以下说法正确的是:A

A.C++兼容C语言

B.C语言部分兼容C++

C.C++部分兼容C语言

D.C语言兼容C++

分析:兼容:指包含,包括了。

2.关于C语言和C++编译器,以下说法正确的是:D

A.C语言编译器能编译C语言和C++源代码

B.C++编译器只能编译C++源代码

C.C++编译器只能编译C语言源代码

D.C++编译器能编译C语言和C++源代码

⭐️标准输入输出是利用库中的cin和cout这两个流对象

⭐️输入输出流可理解为河流,"<<“放入一艘船,”>>"捞出一艘船。

1.在C++中使用流进行输入输出,其中用于屏幕输出的对象是:D

A.cin

B.cerr

C.cfile

D.cout

💫分析:cerr是标准错误输出对象流,cin是标准输入对象流,没有cfile。

2.C++中的标准输入输出是通过输入输出库中的输入输出流对象实现的,写出一条向屏幕打印整型变量n的输出语句:std::cout<<n

3.若要在C++源文件中使用标准输入输出流,则必须要通过 #include <iostream> 包含所需的头文件。

⭐️string类是C++的字符串类,提供(封装)了许多工具(成员函数)供使用。

1.若将string s=“ABCDE”,则以下说法错误的是:C

A.s[2]=‘c’,则将s内容变为“ABcDE”

B.s.clear();将s内容清空,变为空字符串

C.cout<<s.length();将输出6

D.s.append(“123”);将s的内容变为“ABCDE123”

💫分析:string已经对char[]进行了封装,字符串结束符’\0’不属于字符串的有效内容,因此string类字符串的长度就是字符串内容的长度,将输出5。

⭐️前自增(减)运算符先自增(减)再计算表达式,后自增(减)反之。

1.循环

while(int i=0) i--;

执行次数是:A

A.0

B.1

C.2

D.无穷

2.已知i=5,j=0,下列各式中,使j的值为6的表达式是:A

A.

j=i+(++j); //j先自增,j=1 j=6

B.

j=j+i++;//j=j+i=5 i=i+1=6

C.

j=++i-j--//i=i+1=6 j=i-j=6-0=6 j=j-1=5

D.

j=i+++j;// j=(i++)+j j=i+j=5 i=i+1=6

⭐️bool变量的值为判断结果true(真)或false(假),其实质是1或0

1.在该程序中,while循环执行的次数和程序输出的结果是:C

A.0,1

B.5,0

C.5,1

D.8,0

int a[]={5,1,2,7,-1,13,-2,9};
bool b=false;
int i=0;
while(!b)
{
    if (a[i]<0)
        {b=true;}
     i++;
}
cout<<b;

2.下列循环利用两个布尔变量来判断int数组a中是否存在连续的两个0。则(1)处代码应为:D

A.

B.

C.flag1=false

D.flag2=true

bool flag1=false,flag2=false;
for (int i=0;i<sizeof(a)/sizeof(int);i++)
{
    if (a[i]==0)
    {
        if(flag1)
        {
            _____(1)_____;
            break;
        }
        flag1=true;
    }
    else  flag1=false;            
}
cout<<(flag2?"yes":"np");

💫分析:

flag1用来标记是否已经发现一个0

flag2用来标记是否已经发现连续的两个0

a[i]为0时若flag1已经为true,则遭到连续的两个0,因此减flag2置true,并离开循环。

函数

⭐️为了避免歧义,默认参数应当放在形参列表的最后面。

⭐️默认参数应当在函数声明里设置。

1.在C++中,下列关于参数默认值的描述中正确的是:C

A.设置参数默认值时,应当全部设置

B.设置参数默认值后,调用函数不能再对参数赋值

C.设置参数默认值时,应当从右向左设置

D.只能在函数定义时设置参数默认值

注意:默认参数应当写在函数声明里。

2.以下代码中,编写带默认参数的函数正确的是:B

A.

int func(int a ,int b=2);  //声明
int func(int a,int b=1){...} //定义

B.

int func(int a,int b=2) {...}//声明同时定义

C.

int func(int a,int b=2,int c);//声明
int func(int a,int b,int c){...}//定义

D.

int func(int a,int b);//声明
int func(int a,int b=2){...}//定义

💫分析:函数声明是对外表明了函数的名字、返回值和参数列表,它就是函数的身份证。

只能在函数声明中设置参数默认值,不可以再函数定义中设置。

⭐️引用的本质是已定义变量的别名,因此不可以存在空应用。

⭐️除函数形参外,其他引用定义时必须赋初始值。

1.以下程序段中a和b两处空行应分别填入:D

void swap(______a______)
{
    temp=a;
    a=b;
    b=temp;
}
//...省略
int m=10,n=20;
swap(________b________)

A.int a,int b 和m,n

B.int &a,int &b和&m,&n

C.int *a,int *b和&m,&n

D.int &a,int &b和m,n

💫分析:类型& 变量名 是定义一个该类型的引用

C选项的错误之处,在于,如果填入C的话,那么a和b为指针变量,存放的是地址,那么swap函数体内的a应该为 a,b改为b.

⭐️函数重载三要素:

  1. 名称相同
  2. 参数列表不同
  3. 调用不产生匹配歧义

⭐️仅有返回值不用不能构成重载!

1.函数重载的目的是:B

A.减少函数提供的代码冗余

B.方便调用方便编写代码,提高可读性

C.减少程序运行时的内存

D.提高程序运行效率

2.以下哪些项不能与int func(int int)构成重载函数:C

A.int func(int&,int&)

B.int func(int,int,int);

C.string func(int,int)

D.string func(int string);

⭐️若一函数功能简单,则函数调用的额外开销占比较高。

⭐️inline 关键字只是建议编译器将函数内联,是否内联由编译器自行决定

⭐️函数内联发生在编译时,提高的是运行时效率

1.下列哪个类型函数不适合声明为内联函数:A

A.函数体语句较多

B.函数体语句较少

C.函数执行时间较长

D.函数执行时间较短

2.在内联函数中允许使用的是:D

A.if-else语句

B.switcj语句

C.赋值语句

D.以上都允许

3.关于下列函数,说法正确的是:D

inline int func(int a,int b)
{
    return a+b;
}

A.将在预编译阶段进行内联展开

B.将在编译时进行内联展开

C.将在运行时进行内联展开

D.不确定是否会进行内联展开

相关文章
|
4天前
|
C++ 容器
C++之评委打分案例(vector与deque容器练习)
C++之评委打分案例(vector与deque容器练习)
8 1
|
11天前
|
C++ 容器
【C++】拷贝构造函数、拷贝赋值函数与析构函数
【C++】拷贝构造函数、拷贝赋值函数与析构函数
62 6
|
7天前
|
编译器 程序员 语音技术
C++的超20种函数类型分享
C++超20种函数类型:编程语言规定规则,编译器实现预定规则
|
7天前
|
C++
C++函数的返回数据写法的思路
C++函数使用尾置返回类型、decltype、类型别名返回一个数组引用
|
8天前
|
关系型数据库 MySQL 测试技术
技术分享:深入C++时间操作函数的应用与实践
技术分享:深入C++时间操作函数的应用与实践
11 1
|
11天前
|
安全 C++ 开发者
C++一分钟之-函数参数传递:值传递与引用传递
【6月更文挑战第19天】C++中函数参数传递涉及值传递和引用传递。值传递传递实参副本,安全但可能效率低,适合不变对象;引用传递传递实参引用,允许修改,用于高效修改或返回多值。值传递示例显示交换不生效,而引用传递示例实现交换。常量引用则防止意外修改。选择传递方式需考虑效率与安全性。
25 2
|
16天前
|
C++
C++小练习:猜数游戏
C++小练习:猜数游戏
|
19天前
|
C++
C++中函数模版与类模版
C++中函数模版与类模版
24 4
|
17天前
|
编译器 C++
c++primer plus 6 读书笔记 第八章 函数探幽0
c++primer plus 6 读书笔记 第八章 函数探幽0
|
17天前
|
编译器 vr&ar C++
c++primer plus 6 读书笔记 第七章 函数--C++的编程模块
c++primer plus 6 读书笔记 第七章 函数--C++的编程模块