C语言--每日练习题--Day38

第一题

1. 下列代码的运行结果()

short i = 65537;
int j = i + 1;
printf("i=%d,j=%d\n", i, j);

A:i = 65537,j = 65538

B:i = 1,j = 2

C:i = -1,j = 0

D:i = 1,j = 65538

答案及解析 B

本题考查的是隐式类型转换,涉及到整型提升和截断;

65537的二进制位:0001 0000 0000 0000 0001

所以当65537给一个short类型的,一定会发生整型截断,因为65537是int类型的,4字节,32个比特位;而short是2字节,16个比特位;

所以真正是i得到的二进制数位:0000 0000 0000 0001

也就是i = 1

那么j = i + 1;就是普通加法,因为都是int类型,没有隐式类型转换啦;

所以i = 1,j = 2

第二题

2. 下列程序段运行后x的值是()

int main()
{
    int a = b = c = 0;
    int x = 35;
    if (!a)
        x--;
    else if (b)
        ;
    if (c)
        x = 3;
    else
        x = 4;
    reutrn 0;
}

A:3

B:4

C:35

D:34

答案及解析 B

本题考查的是if-else语句的认识,我们要知道谁跟谁是一个组的;

首先 if 和 else if 为一组,if(c)和else一组

然后 if 的条件判断0为假,非0为真;

是逻辑反,真变假,假变真

第三题

3. 下面的结构体的sizeof是多少()

struct T
{
    int iVersion;
    char cTag;
    char cAdv;
    int iUser;
    char cEnd;
};

A:11

B:12

C:13

D:16

答案及解析 D

又是内存对齐哦,大家要是前面的都做了的话,这样的题就不应该错了哈

相关博客:C/C++内存对齐规则(结构体、联合体、类)-CSDN博客

第四题

4. 下面代码的输出结果是()

    int x = 127;
    int z = 0;
    short y = -9;
    z = x + y;

A:x=0000007FH,y=FFF9H,z=00000076H

B:x=0000007FH,y=FFF9H,z=FFFF0076H

C:x=0000007FH,y=FFF7H,z=FFFF0076H

D:x=0000007FH,y=FFF7H,z=00000076H

答案及解析 D

首先答案是用16进制表示的,十进制数末尾用D表示,二进制末尾用B表示,十六进制数末尾用H表示,八进制末尾用O表示。 例如:101B 表示二进制数

之后我们就开始讲解本题:在转换为16进制之前,先算出他们的十进制

首先x肯定就是127,转换为16进制就是7F

y = -9;y是short类型,-9是int类型,会发生隐式类型的转换,一定要用补码!因为只要有关二进制的计算,都是用补码来的;

int--4字节--32比特位,shotr--2字节--16比特位,1比特位 = 1二进制位 

-9的二进制                      原码:1000....1001

按位取反,符号位不变:反码:1111....0110

加一                                 补码:1111....0111

32位截断为16位

补码:1111 1111 1111 0111

反码:1000 0000 0000 1000

补码:1000 0000 0000 1001

依旧是-9,所以我们会发现只要int类型数字的二进制,在16位之内是1就没事,截断也不影响大小;

y = -9 ,记住,计算机存的是补码,所以转换为16进制的应该是补码,

也就是:1111 1111 1111 0111  --> FFF7

第五题

5. 下面代码运行结果()

int main() 
{
    int a = 7, b = 8, *p, *q, *r;
    p = &a;
    q = &b;
    r = p;
    p = q;
    q = r;
    printf("%d,%d,%d,%d\n", *p, *q, a, b);
}

A:8,7,8,7

B:7,8,7,8

C:8,7,7,8

D:7,8,8,7

答案及解析 

这个题就是要知道,值可以被保存的

p最开始存a的地址,q最开始存b的地址

r = p,也就是 r 也存a的地址

p = q ,p又指向 q ,存的就是b 的地址;

q = r,q 指向 r ,q 存的就是 a 的地址;

所以现在就是 p存b地址,q存a地址,完成了交换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/223533.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

免费好用的5个AI写作工具,如何更好的使用AI写作工具

人工智能(AI)作为当今科技领域的热门话题,正在以惊人的速度改变我们生活的方方面面。从智能助手到自动驾驶汽车,AI的应用已经渗透到我们日常的方方面面。 1. 什么是AI人工智能? 什么是AI人工智能?简而言之…

【源码解析】聊聊阻塞队列之BlockingArrayQueue

阻塞队列 阻塞队列:顾名思义 首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下入所示。 当阻塞队列是空时,从队列中获取元素的操作将会被阻塞。当阻塞队列时满的时,往队列里添加元素的操作将会被阻塞。 试图从空的…

湖南麒麟下默认使用串口输出系统日志

有时候为了调试方便,需要将系统日志通过CPU的串口进行输出,以下是针对至强E5V4处理器上安装湖南麒麟操作系统后将日志通过串口输出的配置。 首先在bios中打开串口重定向功能,这里的BIOS是AMI的BIOS 内部配置如下,波特率115200配置…

Python实现FA萤火虫优化算法优化XGBoost分类模型(XGBClassifier算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , …

校园教务管理系统

学年论文(课程设计) 题目: 信息管理系统 校园教务管理系统 摘要:数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心,随着计算机技术的发展,数据库技…

Android的前台服务

概述 前台服务是用户主动意识到的一种服务,因此在内存不足时,系统也不会考虑将其终止。前台服务必须为状态栏提供通知,将其放在运行中的标题下方。这意味着除非将服务停止或从前台移除,否则不能清除该通知。 在 Android 8.0&…

【使用高德开放平台API和js的Ajax代码实现定位并获得城市的天气情况】

使用高德开放平台API和js的Ajax代码实现定位并获得城市的天气情况 1、注册高德开放平台账号,免费获得Web服务API应用key 高德开放平台Web服务API 按照API点击申请KEY 登录后进入应用管理 新建应用(随意起名) 然后添加key提交即可 然后就可…

MySQL生僻字修改编码utf8mb4

1、查看你编码 SHOW VARIABLES WHERE Variable_name LIKE character_set_% OR Variable_name LIKE collation%;(如果不是下图则继续) 2、修改默认参数 /etc/my.cnf [mysqld] datadir/usr/local/mysql/data basedir/usr/local/mysql socket/usr/local/my…

zookeeper集群 +kafka集群

1.zookeeper kafka3.0之前依赖于zookeeper zookeeper是一个开源,分布式的架构,提供协调服务(Apache项目) 基于观察者模式涉及的分布式服务管理架构 存储和管理数据,分布式节点上的服务接受观察者的注册&#xff0c…

【Linux】冯诺依曼体系结构(硬件)、操作系统(软件)、系统调用和库函数 --- 概念篇

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和Linux还有算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 …

Vcenter 6.7 VCSA证书过期问题处理

1. 故障现象 2022年10月25日,登陆VC报错。 按照报错信息,结合官方文档,判断为STS证书过期导致。 vCenter Server Appliance (VCSA) 6.5.x, 6.7.x or vCenter Server 7.0.x 在/var/log/vmware/vpxd-svcs/vpxd-svcs.log看到类似报错: ERRO…

深度探索 Python Pyramid 框架

更多资料获取 📚 个人网站:ipengtao.com Pyramid是一个灵活且强大的Python web框架,广泛用于构建各种规模的Web应用程序。本文将深度探索Pyramid框架,介绍其核心概念、应用场景以及一些高级特性。 安装与基础用法 首先&#xf…

Python if else条件语句详解

if 分支使用布尔表达式或布尔值作为分支条件来进行分支控制。Python 的 if 分支既可作为语句使用,也可作为表达式使用。下面先介绍 if 分支作为语句使用的情形。 if 语句可使用任意表达式作为分支条件来进行分支控制。Python 的 if 语句有如下三种形式:…

通过仿真理解信道化接收机分析过程

概要 信道化从子信道带宽划分上可分为临界抽取和非临界抽取两种,从各子信道中心频率布局上可分为偶型排列和奇型排列,从处理流程上可分为信道化分析与信道化综合过程。本文主要通过仿真来理解偶型排列/临界抽取/信道化分析过程。 基本原理 常规的数字…

maven生命周期回顾

目录 文章目录 **目录**两种最常用打包方法:生命周期: 两种最常用打包方法: 1.先 clean,然后 package2.先 clean,然后install 生命周期: 根据maven生命周期,当你执行mvn install时&#xff0c…

Python中字符串拼接及其应用场景

更多资料获取 📚 个人网站:ipengtao.com 字符串拼接是Python中常见而重要的操作,它涉及到将多个字符串连接成一个字符串。本文将深入探讨Python中字符串拼接的不同方式、性能比较、以及在实际应用中的场景和最佳实践。 常见的字符串拼接方法…

【Pytorch使用自制数据集,Dataloader】

数据集结构 话不多说,直接上核心代码 myDataset.py from collections import Counter from torch.utils.data import Dataset import os from PIL import Imageclass MyDataset(Dataset):"""读取自制的数据集args:- image_dir: 图片的地址- labe…

腾讯云轻量应用服务器怎么安装BT宝塔面板?

腾讯云轻量应用服务器宝塔面板怎么用?轻量应用服务器如何安装宝塔面板?在镜像中选择宝塔Linux面板腾讯云专享版,在轻量服务器防火墙中开启8888端口号,然后远程连接到轻量服务器执行宝塔面板账号密码查询命令,最后登录和…

数据结构 | 查漏补缺之哈希表、最短路径、二叉树与森林的转换

哈希表是什么? 或者说 设图采用邻接表的存储结构,写对图的删除顶点和删除边的算法步骤 删除边 删除点 最短路径问题 判断一个有向图是否有环(回路)可以用下列哪些办法() 存在拓扑序列,就有回路…

JVM之基本概念(一)

(1) 基本概念: JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。 (2) 运行过程: 我们都…