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

刷c语言练习题7(牛客网)

1、函数fun的声明为int fun(int *p[4]),以下哪个变量可以作为fun的合法参数()

A、int a[4][4];

B、int **a;

C、int **a[4]

D、int (*a)[4];

答案:B

解析:如果是fun的合法参数,那么其类型应该与定义函数fun中的参数类型一致。这里传入的p是一个指针数组的数组名,故p是一个指针,指向的是一个指针数组的首地址,又数组中每一个元素也都是一个指针,所以指针p应该是一个二级指针,符合条件的是选项B。

2、 下列代码的运行结果()

1

2

3

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如果用int来表示应该为1 0000 0000 0000 0001,共17bit位,但是现在以short来存储,只能存下1。或者从另外一个角度来看,有符号short的范围是-32768~32767,只能存下32767+32768=65535,再加一则进位,后面位归零,再加一存储的数为一。故i=1,j=2,选择选项B。

3、下面程序段中,for循环的执行次数是()

1

2

char *s="\ta\018bc";

for(; *s != '\0'; s++)  printf("*");

A、9

B、5

C、6

D、7

答案:C

解析:根据循环结束条件,可得字符串中有效长度为几,for循环就执行几次。字符串中 '\t'为制表符,是一个转义字符。'\01'也是一个转义字符,虽然 ' \ '后加三个数字表示三位八进制,但是本题中'\'后的第三个数为8,不符合条件。综上,字符串的有效长度为6,故选择选项C。

4、下列程序的输出结果是

1

2

3

4

5

6

7

8

9

10

#include<string.h>

#include<stdio.h>

#include<iostream>

using namespace std;

int main(){

    char p1[10] = "abcd", *p2, str[10] = "xyz";  

    p2 = "ABCD";

    strcpy(str + 2, strcat(p1 + 2, p2 + 1));

    printf(" %s", str);

}

A、xyabcAB

B、abcABz

C、ABabcz

D、xycdBCD

答案:D

解析:本题主要考查字符串相关函数。首先执行strcat(p1 + 2 , p2 + 1),其中指针p1 + 2指向字符数组p1的'c',p2 + 1指向字符串"ABCD"的'B',该函数实现将第二个参数字符串连接到第一个参数字符串的末尾,并且返回第一个参数字符串的首地址,所以连接之后返回的地址存储'c',连接之后字符串为"cdBCD"。然后执行函数strcpy(),它实现的功能是字符串的拷贝,并且返回拷贝后第一个字符串参数的首地址,所以完成拷贝后的字符串为"xycdBCD",选择选项D。

5、 函数a定义如下: 

1

2

3

4

5

6

7

8

9

int a(int tab){

    int n = tab-1;

    n |= n >> 1;

    n |= n >> 2;

    n |= n >> 4;

    n |= n >> 8;

    n |= n >> 16;

    return n;

}

调用函数a(666)返回的结果是()

A、1023

B、1024

C、666

D、528

答案:A

解析:665用二进制表示为10 1001 1001,右移一位为01 0100 1100,按位与后结果为:   11 1101 1101,右移两位为00 1111 0111,按位与后结果为:11 1111 1111。按照按位与的特性,后续运算中1的位数不会变少,所以最后的结果还是:11 1111 1111,即1023,选择选项A。本题是不停的让一个数按位与上它右移之后的数,结果是将其原来最高位以下位都置为1。如果是不停的让一个数按位与上它左移之后的数,那么最终结果应该是将原来为1的最低位以上的位都置为1.

6、 下列代码输出是()

1

2

3

4

5

6

7

8

9

char *a[] = {"BEIJING""SHENZHEN""SHANGHAI""GUANGZHOU"};

char **pa[] = {a+3, a+2, a+1, a};

char ***ppa = pa;

int main(void) {

    printf("%s, ", **++ppa);

    printf("%s, ", *--*++ppa+3);

    printf("%s, ", *ppa[-2]+3);

    printf("%s", ppa[-1][-1]+1);

}

A、BEIJING, SHENZHEN, SHANGHAI,GUANGZHOU

B、SHANGHAI, JING, NGZHOU, HENZHEN

C、SHANGHAI,BEIJING, GUANGZHOU, SHENZHEN

D、SHANGHAI,EIJING,ZHOU,ZHEN

答案:B

解析:解决本题关键是要画图去理解各个指针的当前指向。a为一级指针数组,每一个指针指向对应字符串的首地址。pa为二级指针数组,每一个二级指针指向数组a中的对应元素。ppa为一个三级指针,指向数组pa的首地址。

**++ppa中,先执行++操作使指针ppa指向pa[1],然后第一次*取到指针a+2,第二次*取到a[2],以%s进行输出得到"SHANGHAI"。

*--*++ppa+3中,先执行++ppa使指针ppa指向pa[2],第一次*取到指针a+1,然后执行--操作使指针指向a[0],第二次*取到a[0],即指向字符串"BEIJING"的指针,然后+3使指针指向'J',最后以%s进行输出得到"JING"。

*ppa[-2]+3中,[ ]的优先级最高且[ ]和*等价,所以先执行*(ppa-2),得到指针a+3,然后执行*得到指针a[3],指针指向字符串"GUANGZHOU"首地址,然后执行+3,指针指向"N",最后以%s进行输出得到"NGZHOU"。

ppa[-1][-1]+1中,由于*和[ ]可以互换,原式可以化为*(*(ppa-1)-1)+1,上一个printf中执行的是ppa-2,并没有对ppa的指向进行改变,那么此时指针ppa仍然指向pa[2],执行*(ppa-1)后得到pa[1],执行*(*(pa-1)-1)后得到指针a[1],指针指向字符串"SHENZHEN",然后执行+1,指针指向'H',最后以%s进行输出得到"HENZHEN"。

综上,选择选项B。

7、 阅读以下程序,当输入数据的形式为12a345b789↙,正确的输出结果为()

1

2

3

4

5

6

7

8

9

int main() {

    char c1,c2;

    int a1,a2;

    c1 = getchar();

    scanf("%2d",&a1);

    c2 = getchar();

    scanf("%3d",&a2);

    printf ("%d,%d,%c,%c\n",a1,a2,c1,c2);

}

A、2,345,1,a

B、12,345,a,b

C、2a,45b,1,3

D、2,789,1,a

答案:A

解析:getchar()接收第一个字符并赋给c1,c1=1。scanf接收下面输入的两位赋值给a1,但2a中的a不是整型,所以是无效的,故a1=2。字符'a'被下一个getchar()接收并赋给c2,c2=a。第二个scanf接收字符'a'下面输入的三位赋值给a2,故a2=345。综上,选择选项A。

8、能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是()

A、return这二个数

B、形参用数组

C、形参用二个指针

D、用二个全局变量

答案:A

解析:return只能返回一个数值,故选择选项A。

9、 对于以下代码,说法正确的是

1

char * p= new char[100]

A、p 和 new出来的内存都在栈上

B、p 和 new出来的内存都在堆上

C、p在栈上 new出来的在堆上

D、p在堆上 new出来的在栈上

答案:C

解析:动态分配的内存在堆上,计算机自动开辟的内存在栈上,故选择选项C。

10、math.h的abs返回值()

A、不可能是负数

B、不可能是正数

C、都有可能

D、不可能是0

答案:C

解析:正常情况下,abs返回值为非负数。但是负数的范围比正数大,8位2进制为例,其范围为-128~127,所以当计算abs(-128)时,不会返回128,只会返回原值。所以选择选项C。

相关文章:

刷c语言练习题7(牛客网)

1、函数fun的声明为int fun(int *p[4]),以下哪个变量可以作为fun的合法参数&#xff08;&#xff09; A、int a[4][4]; B、int **a; C、int **a[4] D、int (*a)[4]; 答案&#xff1a;B 解析&#xff1a;如果是fun的合法参数&#xff0c;那么其类型应该与定义函数fun中的参数类型…...

Web Worker和WebSocket

Web Worker和WebSocket协议都是Web开发中用于处理多线程和实时通信的技术&#xff0c;但它们的应用场景和工作原理有所不同。 Web Worker Web Worker是HTML5引入的一项技术&#xff0c;它允许JavaScript代码在后台线程中运行&#xff0c;从而实现真正的多线程处理。Web Worke…...

【LeetCode】动态规划—712. 两个字符串的最小ASCII删除和(附完整Python/C++代码)

动态规划—712. 两个字符串的最小ASCII删除和 前言题目描述基本思路1. 问题定义2. 理解问题和递推关系3. 解决方法3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化5. 小总结 代码实现PythonPython3代码实现Python 代码解释 CC代码实现C 代码解释 总结: 前言 在字符串处…...

wordpress Contact Form 7插件提交留言时发生错误可能的原因

WordPress Contact Form 7 插件提交留言时发生错误可能有以下几种原因&#xff0c;并提供相应的解决方案&#xff1a; 1. 表单字段验证失败 原因&#xff1a; 用户输入的数据未通过表单字段的验证规则。 解决方案&#xff1a; – 检查表单字段的验证规则是否设置正确。 –…...

uibot发送邮件:自动化邮件发送教程详解!

uibot发送邮件的操作指南&#xff1f;uibot发送邮件的两种方式&#xff1f; 在现代办公环境中&#xff0c;自动化流程的引入极大地提高了工作效率。uibot发送邮件功能成为了许多企业和个人实现邮件自动化发送的首选工具。AokSend将详细介绍如何使用uibot发送邮件。 uibot发送…...

【PostgreSQL】PG数据库表“膨胀”粗浅学习

文章目录 1 为什么需要关注表膨胀&#xff1f;2 如何确定是否发生了表膨胀&#xff1f;2.1 通过查询表的死亡元组占比情况来判断膨胀率2.1.1 指定数据库和表名2.1.2 查询数据库里面所有表的膨胀情况 3 膨胀的原理3.1 什么是膨胀&#xff1f;膨胀率&#xff1f;3.2 哪些数据库元…...

力扣(leetcode)每日一题 871 最低加油次数 | 贪心

871. 最低加油次数 题干 汽车从起点出发驶向目的地&#xff0c;该目的地位于出发位置东面 target 英里处。 沿途有加油站&#xff0c;用数组 stations 表示。其中 stations[i] [positioni, fueli] 表示第 i 个加油站位于出发位置东面 positioni 英里处&#xff0c;并且有 f…...

ppt压缩文件怎么压缩?压缩PPT文件的多种压缩方法

ppt压缩文件怎么压缩&#xff1f;当文件体积过大时&#xff0c;分享和传输就会变得困难。许多电子邮件服务对附件的大小有限制&#xff0c;而在网络环境不佳时&#xff0c;上传和下载大文件可能耗时较长。此外&#xff0c;在不同设备上播放时&#xff0c;较大的PPT文件还可能导…...

2024.10月11日--- SpringMVC拦截器

拦截器 1 回顾过滤器&#xff1a; Servlet规范中的三大接口&#xff1a;Servlet接口&#xff0c;Filter接口、Listener接口。 过滤器接口&#xff0c;是Servlet2.3版本以来&#xff0c;定义的一种小型的&#xff0c;可插拔的Web组件&#xff0c;可以用来拦截和处理Servlet容…...

uniapp 锁屏显示插件 Ba-LockShow(可让vue直接具备锁屏显示能力)

简介 Ba-LockShow 是一款可以直接使uniapp的vue界面在锁屏页展示的插件。 支持使vue直接具备锁屏显示能力支持设置锁屏显示和不显示支持唤醒屏幕 截图展示&#xff08;仅参考&#xff09; 支持定制、本地包、源码等&#xff0c;有建议和需要&#xff0c;请点击文章结尾“Unia…...

CSS计数器

CSS 中的计数器类似于变量&#xff0c;可以实现简单的计数功能&#xff0c;并将结果显示在页面上&#xff0c;在早期的网站上应用比较广泛。要实现计数器需要用到以下几个属性&#xff1a; counter-reset&#xff1a;创建或者重置计数器&#xff1b;counter-increment&#xf…...

嵌入式Linux:信号集

目录 1、信号集初始化 2、向信号集中添加或删除信号 3、测试信号是否在信号集中 在 Linux 系统中&#xff0c;处理多个信号时常用到一种数据结构&#xff1a;信号集&#xff08;sigset_t&#xff09;。信号集允许我们将多个信号组织在一起&#xff0c;以便在系统调用中传递和…...

Linux 外设驱动 应用 1 IO口输出

从这里开始外设驱动介绍&#xff0c;这里使用的IMX8的芯片作为驱动介绍 开发流程&#xff1a; 修改设备树&#xff0c;配置 GPIO1_IO07 为 GPIO 输出。使用 sysfs 接口或编写驱动程序控制 GPIO 引脚。编译并测试。 这里假设设备树&#xff0c;已经配置好了。不在论述这个问题…...

基于SpringBoot+Vue+MySQL的留守儿童爱心网站

系统展示 用户前台界面 管理员后台界面 系统背景 随着现代社会的发展&#xff0c;留守儿童问题日益受到关注。传统的纸质管理方式已经无法满足现代人们对留守儿童爱心信息的需求。为了提高留守儿童爱心信息的管理效率&#xff0c;增加用户信息的安全性&#xff0c;并方便及时反…...

调用第三方接口

目录 一、分析给出的接口文档 二、请求体格式之间的区别 三、示例代码 一、分析给出的接口文档 一般的接口文档包括以下几大部分&#xff1a; 1、请求URL&#xff1a;http://{ip}:{port}/api/ec/dev/message/sendCustomMessageSingle 2、请求方式&#xff1a;POST、GET等 3、…...

JAVA 多线程入门例子:CountDownLatch

首先确定线程数量。如果数据集合的大小小于50&#xff0c;就只使用一个线程&#xff1b;否则使用5个线程。计算每个线程平均处理的数据数量sizePerThread以及余数remainder。在划分数据子集合时&#xff0c;对于每个线程的处理范围进行计算。如果有余数&#xff0c;就将余数依次…...

k8s jenkins 动态创建slave

k8s jenkins 动态创建slave 简述使用jenkins动态slave的优势&#xff1a;配置jenkins动态slave配置 Pod Template配置容器模板挂载卷 测试 简述 持续构建与发布是我们日常工作中必不可少的一个步骤&#xff0c;目前大多公司都采用 Jenkins 集群来搭建符合需求的 CI/CD 流程&am…...

MVS海康工业相机达不到标称最大帧率

文章目录 一、相机参数设置1、取消相机帧率限制2、修改相机图像格式3、调整相机曝光时间4、检查相机数据包大小&#xff08;网口相机特有参数&#xff09;5、 恢复相机默认参数6、 相机 ADC 输出位深调整 二、系统环境设置1、 网口相机设置2、 USB 相机设置 一、相机参数设置 …...

数据结构:用双栈实现一个队列

要用两个栈实现一个队列&#xff0c;可以利用“栈”的后进先出 (LIFO) 特性来模拟“队列”的先进先出 (FIFO) 操作。具体做法是使用两个栈&#xff1a;一个作为入栈栈&#xff0c;另一个作为出栈栈。 算法步骤 入队操作&#xff08;enqueue&#xff09;&#xff1a; 将元素压…...

QScroller Class

Header:#include < QScroller > qmake:QT += widgets Since:Qt 5.0 Inherits:QObject This class was introduced in Qt 5.0. Public Types enum Input {InputPress, InputMove, InputRelease } enum ScrollerGestureType {TouchGesture, LeftMouseButtonGesture,…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...