C语言—每日选择题—Day65

news2024/11/26 19:56:37

前言

        我们的刷题专栏又又又开始了,本专栏总结了作者做题过程中的好题和易错题。每道题都会有相应解析和配图,一方面可以使作者加深理解,一方面可以给大家提供思路,希望大家多多支持哦~

第一题

1、如下代码输出的是什么( )

char a = 101;
int sum = 200;
a += 27;sum += a;
printf("%d\n",sum);

A: 327

B: 99

C: 328

D: 72

答案与解析 D

本题考察的是:类型不同时的运算,会发生整型提升或截断,且二进制计算都是用补码

负数补码 = 源码取反 + 1

在a += 27 时:a为char类型,char类型为1字节 = 8bit

而 a += 27; a = a + 27;

在右侧,一个char类型与int类型相加,会发生char整型提升( 1字节-> 4字节 )

a = 128;而在赋值表达式中,左侧为char类型,右侧为int类型,会发生整型截断

128 =  00000000 00000000 00000000 10000000

所以截断之后为 10000000

而a为char类型,有符号的类型,那最高位就代表符号位 ,最高位为1,是负数

在sum += a中:sum = sum + a;

a = 1000 0000 ,因为是负数,需要转换为补码:1000 0000

在右侧,sum + a,为int和char的相加,char会发生整型提升,负数高位补1

sum :       0000 0000 0000 0000 0000 0000 1100 1000

a :            1111  1111  1111  1111  1111 1111  1000 0000

sum + a :  1 0000 0000 0000 0000 0000 0000 0100 1000

由于超出的32位会舍去最高位:0000 0000 0000 0000 0000 0000 0100 1000 = 72

 第二题

2、对于下面代码执行后输出的是什么( )

int value = 1024;
char condition = *((char*)(&value));
if(condition) 
    value += 1; 
condition = *((char*)(&value)
if(condition) 
    value += 1; 
condition = *((char*)(&value)
printf("%d %d", value, condition);

A: 1026 1

B: 1025 0

C: 1025 1

D: 1024 0

答案与解析

这里考察的就是大家对指针类型的解引用具体可以访问多少字节的理解,还涉及了大小端

相关博客:详谈【指针解引用】与【指针加整数】_指针解引用之后-CSDN博客

无论是大端字节序还是小端,取出来的都是0,结果都一样

第三题(易错)

3. 假设在32位机器上,读代码选结果( )

void func(char para[100])
{
    void *p = malloc(100);
    printf("%d, %d\n", sizeof(para), sizeof(p));
}

A: 4,4

B: 100,4

C: 4,100

D: 100,100

答案与解析 A

记住sizeof就是对括号里面变量的类型求大小

而数组在函数传参的时候会降低为指针类型,char* para,所以sizeof(para) = 4;

因为p的类型为void*,所以sizeof(p) = 4,

第四题

4、以下程序执行后的输出结果为( )

#include <stdio.h>
void func(char *p) 
{ 
    p = p + 1; 
}
    int main()
{
    char s[] = {'1', '2', '3', '4'};
    func(s);
    printf("%c", *s);
    return 0;
}

A: 2

B: 编译错误

C: 1

D: 无法确定

答案与解析 C

形参的改变不会影响实参,所以s依旧是代表的首元素地址,*s = 1

最重要的一点:

数组名的类型是char* const ,数组名代表首元素地址,不可被改变,是const pointer

第五题

5、已知数组D的定义是 int D[4][8]; 现在需要把这个数组作为实参传递给一个函数进行处理。下列可以作为对应的形参变量说明的是【多选】( )

A: int D[4][ ]

B: int *s[8]

C: int(*s)[8] 

D: int D[ ][8]

答案与解析 CD

A、D:他们是想通过二维数组来传参,但是作为二维数组传参,必须把列的数字标出来,否则错误,所以A错误,D正确

在数组D的传参,传的是数组名D,而数组名为首元素地址,二维数组的数组名是整个第一行的地址,所以类型为int (*)[8],B与C,只有C的类型匹配,所以C正确

相关博客:C语言:指针详解【图解 + 练习】-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大数据存储】实验五:Mapreduce

实验Mapreduce实例——排序&#xff08;补充程序&#xff09; 实验环境 Linux Ubuntu 16.04 jdk-8u191-linux-x64 hadoop-3.0.0 hadoop-eclipse-plugin-2.7.3.jar eclipse-java-juno-SR2-linux-gtk-x86_64 实验内容 在电商网站上&#xff0c;当我们进入某电商页面里浏览…

小户型装修攻略:8个省空间的布局技巧分享!福州中宅装饰,福州装修

以下是8种小户型空间布局方案分享&#xff1a; 1. 功能分区 将房间划分为不同的功能区域&#xff0c;如休息区、工作区、存储区等。可以使用家具、地毯或窗帘等来划分区域&#xff0c;这样可以让空间看起来更加有组织和有序。 2. 卧室和客厅一体化 对于小户型来说&#xff0…

ubuntu系统安装k8s1.28精简步骤

目录 一、规划二、环境准备2.1 配置apt仓库配置系统基本软件仓库配置k8s软件仓库安装常用软件包 2.2 修改静态ip、ntp时间同步、主机名、hosts文件、主机免密2.3 内核配置2.4 关闭防火墙、selinux、swap2.5 安装软件安装docker安装containerd安装k8s软件包 三、安装配置k8s3.1 …

浏览器工作原理与实践--虚拟DOM:虚拟DOM和实际的DOM有何不同

虚拟DOM是最近非常火的技术&#xff0c;两大著名前端框架React和Vue都使用了虚拟DOM&#xff0c;所以我觉得非常有必要结合浏览器的工作机制对虚拟DOM进行一次分析。当然了&#xff0c;React和Vue框架本身所蕴含的知识点非常多&#xff0c;而且也不是我们专栏的重点&#xff0c…

QT:信号与槽

作业&#xff1a; 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和…

SpringCloud的使用以及五大核心组件

一、SpringCloud介绍 微服务架构的提出者&#xff1a;马丁福勒 https://martinfowler.com/articles/microservices.html // 微服务架构的提出者&#xff1a;马丁福勒&#xff08;中午网&#xff09; http://blog.cuicc.com/blog/2015/07/22/microservices/ 马丁.福勒对微服务…

手写简易操作系统(二十八)--实现简单shell

前情提要 Shell是计算机操作系统中的一个重要概念&#xff0c;它是用户与操作系统内核之间的接口。Shell接受用户的命令&#xff0c;并将其转换为操作系统能够理解的指令&#xff0c;然后执行这些指令&#xff0c;并将执行结果返回给用户。 Shell可以理解为一个命令解释器&am…

全面的网络流量监控

流量监控指的是对数据流进行的监控&#xff0c;通常包括出数据、入数据的速度、总流量。通过网络流量监控&#xff0c;组织可以确保只有业务关键型流量通过网络传输&#xff0c;并限制不需要的网络流量&#xff0c;从而提高网络效率&#xff0c;又可以防止停机、减少 MTTR、帮助…

OSPF防环文档

OPSF在区域内会产生俩类LSA&#xff1a;Router LSA &#xff0c;Network LSA 路由器以自己为树根构建最短路径树 &#xff0c;这里的最短路径树按两步形 成&#xff0c;第一步&#xff0c;仅考虑路由器和传输网络之间的连接。通过 Dijkstra 算法&#xff0c;根据链路状态数据…

FebHost:瑞士.CH域名注册介绍

瑞士&#xff0c;一个位于欧洲心脏地带的多元文化国家&#xff0c;不仅以其精准的钟表和迷人的巧克力闻名于世&#xff0c;还因其独特的国家代码顶级域名“.ch”在互联网上占有一席之地。与全球广泛使用的通用顶级域名&#xff08;gTLDs&#xff09;如“.com”、“.org”或“.n…

sqli-labs(宽字节less-33,二次less-24,update less-17,堆叠less-38)pikachu(insert,delete)

目录 宽字节 less-33 具体使用 sqlmap爆破宽字节 二次注入 less-24 靶场运用&#xff1a; update注入 less-17 具体使用&#xff1a; insert注入 pikachu演示 具体使用 delete注入 pikachu演示 堆叠注入 less-38 宽字节 less-33 宽字节注入是利用 mysql 的一个特性&…

访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg

一、背景&#xff1a; 在运维paas云平台时有研发反馈客户端访问elasticsearch服务偶发性的出现报错&#xff0c;提示报错如下&#xff1a; ERROR 1 --- [io-8407-exec-35] c.j.b.c.c.e.s.ElasticOperateServiceImpl : 新增es数据失败 二、问题分析&#xff1a; 报错日志内容核…

【Machine Learning系列】带你快速学习十大机器学习算法

前言 机器学习算法是一类用于从数据中学习模式和规律的算法。这些算法可以通过训练样本的输入和输出来推断出模型的参数&#xff0c;然后用于预测新的未知数据。 文章目录 前言机器学习算法1. 线性回归算法 Linear Regression2. 支持向量机算法(Support Vector Machine,SVM)3. …

实战-edusrc漏洞挖掘-接口未授权访问

0x01系统初探 通过fofa对大学进行搜索 fofa:host"edu.cn" &amp;&amp; status_code"200"在随意的翻阅查看时&#xff0c;发现访问xxx.edu.cn登录页面会优先访问登录后的页面&#xff0c;再跳转至登录页面。盲猜应该是前端校验&#xff0c;可以通过…

Netty 入门应用之Http服务WebSocket

Netty实现Http服务 主要的变化是在初始化器中引入了新的编解码器 一些创建的类作用和Netty HelloWorld的小demo一样我这里就不再次重复了 1、Http服务端代码 public class HttpServer {public static void main(String[] args) {// 创建Reactor// 用来管理channel 监听事件 …

氮气柜温湿度含氧量控制及联网监测功能介绍

氮气柜主要用于存储对氧气敏感的物料&#xff0c;如精密电子元器件、金属材料、化学品、药品、IC芯片等。通过持续充入氮气&#xff0c;降低柜内氧气含量至安全水平&#xff0c;从而抑制氧化反应的发生&#xff0c;保护物料免受氧化损害。 氮气柜可以通过氧浓度传感器来实现对柜…

【TI毫米波雷达】MMWave SDK:UART串口数据发送时的数据丢失、出错及避坑配置,Polling方法和Write方法的使用避坑

【TI毫米波雷达】MMWave SDK&#xff1a;UART串口数据发送时的数据丢失、出错及避坑配置&#xff0c;Polling方法和Write方法的使用避坑 文章目录 BUG复现Polling方法和Write方法的使用避坑串口配置避坑附录&#xff1a;结构框架雷达基本原理叙述雷达天线排列位置芯片框架Demo工…

手术麻醉信息管理系统源码 网格编辑、麻醉质控指标

目录 什么是手术麻醉信息管理系统 满足医院等级评级需求 满足电子病历评级需求 满足科室需求 术前 1、患者术前评估/诊断 2、术前讨论制定手术方案 3、手术准备 4、术前准备 术中 1、送手术室 2、麻醉前 3、手术 术后 1、手术结束 2、术后监护 3、术后随访 什…

龙蜥社区「人人都可以参与开源」——体验开源成为“开源人“

龙蜥社区「人人都可以参与开源」体验开源——让更多的人了解开源&#xff01; 龙蜥社区开源概述&#xff1a;龙蜥社区开源的探索过程:龙蜥社区收获总结:AtomGit评测:服务设计上:功能结构上:安全设计上: AtomGit测评总结: 龙蜥社区开源概述&#xff1a; 在追求技术的路上少不了…

Netty学习——高级篇2 Netty解码技术 备份

接上篇&#xff1a;Netty学习——高级篇1 拆包 、粘包与编解码技术&#xff0c;本章继续介绍Netty的其他解码器 1 DelimiterBasedFrameDecoder分隔符解码器 DelimiterBasedFrameDecoder 分隔符解码器是按照指定分隔符进行解码的解码器&#xff0c;通过分隔符可以将二进制流拆分…