【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.不确定是否会进行内联展开文章来源地址https://www.toymoban.com/news/detail-624041.html

到了这里,关于【C++】基础练习(一)||从C到C++&函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Go语言之函数补充defer语句,递归函数,章节练习

    defer语句是go语言提供的一种用于注册延迟调用的机制,是go语言中一种很有用的特性。 defer语句注册了一个函数调用,这个调用会延迟到defer语句所在的函数执行完毕后执行,所谓执行完毕是指该函数执行了return语句、函数体已执行完最后一条语句或函数所在协程发生了恐慌

    2024年02月17日
    浏览(50)
  • 头歌C++语言之选择排序练习题

    目录 第1关:第二统计数字 任务描述 相关知识 数组声明: 初始化数组: 访问数组元素 选择排序 编程要求 第2关:运动会排名 任务描述 相关知识 多维数组 访问二维数组 编程要求 第3关:单词排序 任务描述 相关知识 strcmp()函数 编程要求

    2024年02月19日
    浏览(51)
  • R语言—数据基础及练习

    一.将1、2、...20构成两个5*4阶的矩阵,其中矩阵A是按列输入,矩阵B按行输入 1. 将A和B按照行合并; 2. 将A和B转化为数据框DA和DB,并将他们的列命名为(\\\"ID\\\",\\\"A1\\\",\\\"A2\\\",\\\"A3\\\"); 3. 以”ID”为条件将DA和DB进行匹配; 4. 在DA中选取“A2”列大于12且小于15的子集。                    

    2024年01月20日
    浏览(37)
  • C语言基础题练习10道

    5 文钱可以买一只公鸡,3 文钱可以买一只母鸡,1 文钱可以买 3 只雏鸡。现在用 100 文钱买 100 只鸡,那么各有公鸡、母鸡、雏鸡多少只? 思路:典型数学题,可以先用数学方法得到式子,再求解。 如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。 例如:

    2024年02月14日
    浏览(29)
  • 【蓝桥杯备赛Java组】语言基础|竞赛常用库函数|输入输出|String的使用|常见的数学方法|大小写转换

    🎥 个人主页:深鱼~ 🔥收录专栏:蓝桥杯 🌄欢迎 👍点赞✍评论⭐收藏 目录 一、编程基础 1.1 Java类的创建  1.2 Java方法  1.3 输入输出  1.4 String的使用 二、竞赛常用库函数 1.常见的数学方法 2.大小写转换 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,

    2024年01月21日
    浏览(75)
  • c语言练习41:深入理解字符串函数strlen strcpy strcat

    模拟实现:”strlen   strcpy   strcat strlen   strcat:

    2024年02月09日
    浏览(51)
  • 《C++ Primer》练习6.36-6.38:书写返回数组引用的函数声明

    最近看C++ Primer,看到6.3.3练习,要求书写返回数组引用的函数声明,觉得有必要实践记录一下。 这里先总结返回数组的引用的的函数声明写法(下面的 Type是 数组元素的类型,可以是int、float等,如果要返回指向数组的指针亦同,将下面的 改成 * 即可) 写法1 函数声明 为:

    2024年02月07日
    浏览(37)
  • 单链表功能函数练习——按规定插入指定节点及删除最小值节点(C语言)

    * 函数名称: LList_DestInsert * 函数功能: 在指定值位置处,插入指定的数据data * 函数参数: ​ LList_t *Head: 需要操作的链表头节点 ​ DataType_t dest: 插入位置的值 ​ DataType_t data: 需要插入的指定的数据 * 返回结果: true or false * 注意事项: None * 函数作者: ni456xinmie@163.com * 创建日期:

    2024年04月23日
    浏览(66)
  • 【蓝桥杯备赛Java组】第一章·语言基础|竞赛常用库函数|输入输出|String的使用|常见的数学方法|大小写转换

    🎥 个人主页:深鱼~ 🔥收录专栏:蓝桥杯 🌄欢迎 👍点赞✍评论⭐收藏 目录 一、编程基础 1.1 Java类的创建  1.2 Java方法  1.3 输入输出  1.4 String的使用 二、竞赛常用库函数 1.常见的数学方法 2.大小写转换 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,

    2024年01月19日
    浏览(79)
  • C++编程最基础练习题(1-10) 小白入门必刷

    C++编程练习题 (1-10) 1. 输入3个数,求最大值 2. 编程序,求方程ax2+bx+c=0的根 3. 输入一个成绩,打印相应的等级 4. 输入3个double类型的值,判断这3个值是否可以表示一个三角形的三条边 5. 输入20个数,求其最大、最小和平均值 6. 输入若干个数,设输入的第一个数为后面要输

    2023年04月19日
    浏览(99)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包