当前位置: 首页 > news >正文

西南科技大学C++程序设计实验一(C++基础知识)

目录

一、实验目的

二、实验任务

三、预习内容(复习书中前3章内容,说明C++相对于C的扩展有哪些?)

四、问题思考与讨论


一、实验目的

1.熟悉编程环境

2.掌握程序调试方法。

3.熟悉枚举类型、结构体类型等自定义数据类型的使用

4.熟悉函数的定义、说明与使用

5.熟悉引用作为函数参数的使用

6.理解内联函数、默认形参函数概念与使用

二、实验任务

1.编写程序,理解逻辑表达式的特点。已知" a=1, b=2, c=3, d=4, m=1, n=1 ",编程完善程序,输出以下表达式的结果,回答程序注释部分的思考题!

(1)(m=a>b)&&(n=c>d)

(2)(m=a>b)||(n=c>d)

(3)!(a>b)||( c<d)

(4)3&5

#include<iostream>

using namespace std;

int main()

{

       int a=1,b=2,c=3,d=4,m=1,n=1;

       cout<<((m=a>b)&&(n=c>d));

       cout<<" m="<<m<<" n="<<n<<endl; //思考1为什么输出结果中m=0,n=1? 理解逻辑与的“短路特性”?

       cout<<((m=a>b)||(n=c>d));

       cout<<" m="<<m<<" n="<<n<<endl; //思考2为什么输出结果m=0,n=0? 理解逻辑或的“短路特性”?

       cout<<(!(a>b)||( c<d)); //思考3:输出的结果? 理解逻辑反的运算特点?

    cout<<(3&5); //思考4:输出的结果?理解位运算特点?

       return 0;

}

实验思考题回答与分析:

(1)因为a=1,b=2,所以a>b为假,m输出为0。对于逻辑与,当第一个条件为假时,不再执行第二个条件,n值不变,仍输出为1。

(2)因为a=1,b=2,所以a>b为假,m输出为0。对于逻辑或,当第一个条件为假时,第二个条件会继续执行,c=3,d=4,所以c>d为假,n输出为0。

(3)输出为1。在逻辑运算中非比或优先,先进行非运算,a>b为假,取反为1,||当第一个为true,不再对第二个操作求值。

(4)输出为1。按位与操作的作用是将两个操作数对应的每一位分别进行逻辑与操作,3的二进制是00000011

,5的二进制为00000101,位与操作后输出为00000001,为1。

2.分析程序,理解位运算表达式的特点。已知" a=1, b=2, c=3 ",编程完善程序,输出以下表达式的结果,回答程序注释部分的思考题!

(1)a|b&c

(2)!a&b

(3)c>>2

(4)~b^c

#include<iostream>

using namespace std;

int main()

{

         int a=1,b=2,c=3,d=4,m=1,n=1;

         cout<<(a|b&c)<<endl; //思考1输出的结果是什么? “|”、“&”分别完成什么操作?

      cout<<(!a&b)<<endl; //思考2输出的结果是什么? “|”、“&”分别完成什么操作?

      cout<<( c>>2)<<" "<<( c<<2)<<endl; //思考3输出的结果是什么? “>>”、“<<”分别完成什么操作?

      cout<<(~b^c)<<endl; //思考4输出的结果是什么? “~”、“^”分别完成什么操作?

         return 0;

}

实验思考题回答与分析:

(1)输出为3. “&”是2和3按位与得2,“|”是1和2按位或得3,

(2)输出为0,!的优先级大于&,a取反后为0,与b按位相与为0.

(3)0,12.“<<”向左移两位,“>>”向右移两位

http://www.lryc.cn/news/247712.html

相关文章:

  • Rust内存布局
  • android 12 添加菜单
  • Map 的 5 种遍历方式
  • Linux的基本指令 ( 一 )
  • 【深度学习】学习率及多种选择策略
  • 具有“真实触感”的动捕数据手套mhand pro,提供更精确的动作捕捉
  • Mongodb使用killCursors停止运行的cursor
  • 电脑风扇转一下停一下,无法正常开机问题解决
  • 无需部署服务器,如何结合内网穿透实现公网访问导航页工具Dashy
  • Go GORM简介
  • 前端量子纠缠 效果炸裂 multipleWindow3dScene
  • 第十七章 处理空字符串和 Null 值 - XMLIGNORENULL、XMLNIL 和 XMLUSEMPTYELEMENT 的详细信息
  • Asp.net core WebApi 配置自定义swaggerUI和中文注释
  • Xilinx SDK获取代码运行时间
  • 【力扣】189. 轮转数组
  • Spring 拾枝杂谈—Spring原生容器结构剖析(通俗易懂)
  • Java核心知识点整理大全22-笔记
  • qt 5.15.2读取csv文件功能
  • 【Vue】绝了!还有不懂生命周期的?
  • 关于IP与端口以及localhost
  • 如何进行MySQL的主从复制(MySQL5.7)
  • 5:kotlin 类(Classes )
  • 达梦:【1】达梦常用操作
  • 数字人透明屏幕的技术原理是什么?
  • 提升APP软件的用户体验方法
  • JVM运行时数据区域、对象内存分配、内存溢出异常总结
  • 【C++设计模式】单例模式singleton
  • CVPR 2023 精选论文学习笔记:Post-Training Quantization on Diffusion Models
  • Python基础语法之学习字符串快速格式化
  • Ubuntu22.04 server版本关闭DHCP,手动设置ip