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

C语言精华题目锦集1

第一题

test.c文件中包括如下语句,文件中定义的四个变量中,是指针类型的是()【多选】

#define INT_PTR int*
typedef int* intptr; 
INT_PRT a,b; 
int_ptr c,d;

A:aB:b  C:c  D:d


#define是宏定义,此时在程序中INT_PTR都会被替换为int*,变量a,b的定义如下:

int * a,b;

可以发现a确实为整型指针类型,而b则为整型类型。
而typedef是给该类型定义一个别名,使用该别名创建出的变量都是这个类型的。

第二题

对于以下说法,正确的是()
 A:对于struct X {short s;int i; charc},sizeof(X)sizeof(s)+sizeof(i)+sizeof(c )
 B:对于某个double变量a,可以使用a==0.0来判断其是否为0。
 C:初始化方式char a[14]=“helloworld”;和char a[14];a=“hello world”;的效果相同。
D:以上说法都不对


解析:
A:结构体大小的计算要考虑内存对齐问题。
B:这道题如果在VS上实验一下的话,会觉得B选项就是正确的,然而不然,因为该数据是double类型的数据,浮点数存在误差,不能直接判断两个数是否相等,通常是采用比较两数之差是否小于一个很小的数字,(具体可以自己设定一个这样的数,作为误差)来确定是否相等
例如:
在这里插入图片描述
运行结果是不是超脱预料之外?
调试观察sub1和sub2的数值。
在这里插入图片描述
可以发现误差是存在的,所以不能直接用一个浮点数是否等于0.0来判断该数是否为0。
C:a为数组首元素地址,是一个常量不可以改变。

第三题

请问下列表达式,哪些会被编译器禁止()【多选】

int a=248,b=4;
int const*c=21;
const int*d=&a;
int *const e=&b;
int const* const f=&a;

 A:*c = 32;
 B:*d = 43;
 C:e = &a;
 D:f = 0x321f;


解析:
这道题是有关const修饰指针变量的题目,要记住只有两种情况,const在*前边的位置和const在*后边。如果const在*前边,就修饰的是指针变量指向的结果。
例如

int a=1;
const int *pa=&a;
int const *pa=&a;

只要const在pa的左边,那么const修饰的就是*pa,就不可以利用解引用得到a来修改a的值,此时a的值被固定了。
还有一种情况是const在*的右边

int a=0;
int b=0;
int * const pa=&a;

这种情况下const修饰的是a这个变量的地址,即pa的指向不能发生变化。此时如果要更改pa的指向如pa=&b,这样的操作是不被允许的。
如果觉得不好记忆的话,可以参考趣味讲解const修饰指针变量。

第四题

对于下边代码段,描述正确的是()

t=0;
while(printf("*"))
{t++;if(t<3)break;
}

 A:其中循环控制表达式与0等价。
B:其中循环控制表达式与‘0’等价。
 C:其中循环控制表达式是不合法的。
 D:以上说法都不对。


解析:
这道题目选B,因为printf函数返回打印的字符·个数,所以判断条件恒为1,字符零不是零。
在这里插入图片描述
所以在这里B选项就是正确的。其他选项都是错误的。

编程题

1,至少是其他数字两倍的最大数
题目要求如下
在这里插入图片描述
第一种思路
遍历两边,第一遍找出最大值,第二遍判断是否找出的最大值是数组每个元素的二倍,如果满足条件就返回最大数字的下标,如果不满足,那就返回-1。
代码如下:

int dominantIndex(int* nums, int numsSize){int i=0;int max=0;for(i=0;i<numsSize;i++){if (nums[i] > max){max = nums[i];}}int num=0;int flag=0;for(i=0;i<numsSize;i++){if(nums[i]==max){num=i;}else{if(nums[i]*2>max){flag=1;}}}if(flag==0){return num;}else{return -1;}return 0;
}

代码表达很清晰。
还有一种方法,在找到最大值时,也要保存倒数第二大的值。
代码如下:

int dominantIndex(int* nums, int numsSize){int i=0;int max=nums[0];int max1=0;int flag=0;for(i=0;i<numsSize;i++){if(nums[i]>max){flag=i;max1=max;max=nums[i];            }if (max1 < nums[i]&&max!=nums[i]){max1 = nums[i];}}if(max>=2*max1){return flag;}else{return -1;}return 0;
}

找到最大值的同时,保存第二大值,因为后边可能会出现比已经保存的第二大的值还要大的值,所以要继续向后遍历找到真正第二大的值,。最后进行判断即可。

第二题

自除数
在这里插入图片描述
只需要创建一个数组,得到right和left之间的所有满足条件的数即可,每一个数求出他的个位数,十位数,等等。

在这里插入图片描述
数据范围最大也只有10000。
像这种需要用的数字的每一位的数据进行判断的题目,最好还是创建一个大小为6的数组,装输入的数据的每个位的数字,方便最后进行判断。在解题的过程中要注意返回的数组必须是malloc申请的,不然就会有很多的报错。
代码如下(注释十分清晰)

int* selfDividingNumbers(int left,int right,int *returnsize) 
{int*ccc=(int*)malloc(sizeof(int)*(right-left+1));int kkk[6];int l = 0;for (int i = left; i <= right; i++){       int j = 0;int a = 1;int num = i;while (i > 0)//获取每位数字{kkk[j++] = i % 10;i = i / 10;}i = num;for (int k = 0; k < j; k++){if (kkk[k] != 0)//如果数字中包含零,就不满足{if (i % kkk[k] != 0){a = 0;}else{a = 1;}}else{a=0;}}if (a != 0)//如果该数字通过前边的测试{ccc[l++] = i;//将该数字存放在预留数组中。}}*returnsize = l;return ccc;
}

第三题

喝汽水问题
小明喝汽水,一瓶汽水1元,2个空瓶可以换一瓶汽水,小明现在有n元,求小明可以喝到多少瓶汽水?

思路一
将上述问题以代码形式解决,如果有n元,那么刚开始就有n个空瓶,假设全部喝完,然后拿着所有空瓶过去换汽水,就能换到n/2瓶汽水,喝完后于是又获得了n/2的瓶子,然后再去换,直到瓶子数目为0或者为1不足以再换汽水为止。
代码实现如下

int main()
{int money = 0;//钱数int total = 0;//总共喝的汽水的数量int empty = 0;//空瓶的数量scanf("%d", &money);total = money;empty = money;while(empty>1)//只要空瓶数大于2,就能继续换{total += empty/2;empty = empty/2+empty%2;}printf("total = %d\n", total);//最终结果totalreturn 0;
}

思路二
利用数学思维求解,我们可以利用上述代码多运行几次观察规律,会发现随着money的增长,能喝到的汽水的数量是一个等差数列。
1元—>1瓶汽水
2元—>3瓶汽水
3元—>5瓶汽水
。。。。
所以只要Money的数量不为0,只需要返回money*2-1即可。
代码如下

int main()
{int money = 0;int total = 0;int empty = 0;scanf("%d", &money);	//方法2if(money <= 0){total = 0;}else{total = money*2-1;}printf("total = %d\n", total);return 0;
}

相关文章:

C语言精华题目锦集1

第一题 test.c文件中包括如下语句&#xff0c;文件中定义的四个变量中&#xff0c;是指针类型的是&#xff08;&#xff09;【多选】 #define INT_PTR int* typedef int* intptr; INT_PRT a,b; int_ptr c,d;A:a  B:b  C:c  D:d #define是宏定义&#xff0c;此时在程序中IN…...

头歌答案Python——JSON基础

目录 ​编辑 Python——JSON基础 第1关&#xff1a;JSON篇&#xff1a;JSON基础知识 任务描述 第2关&#xff1a;JSON篇&#xff1a;使用json库 任务描述 Python——XPath基础 第1关&#xff1a;XPath 路径表达式 任务描述 第2关&#xff1a;XPath 轴定位 任务描述…...

TDengine 与煤科院五大系统实现兼容性互认,助力煤矿智能化安全体系搭建

近日&#xff0c;涛思数据与煤炭科学技术研究院&#xff08;以下简称煤科院&#xff09;已完成数个产品兼容互认证工作&#xff0c;经双方共同严格测试&#xff0c;涛思数据旗下物联网、工业大数据平台 TDengine V3.X 与煤炭科学技术研究院旗下煤矿复合灾害监测监控预警系统、煤…...

231030期就业班开班咯!我在前方护航,让你稳稳入职

就业哪家强&#xff1f;还得看优橙! 11月9日&#xff0c;231030期就业班的小伙伴结束了为期8天的基础班学习&#xff0c;正式进入了就业班。优橙教育也为新一批就业班的同学举办了开班典礼。 典礼环节中不仅有多彩的抽奖活动&#xff0c;也有丰富的超值礼品&#xff0c;旨在鼓…...

小白学安全-漏洞编号的理解 CVE/CAN/BUGTRAQ/CNCVE/CNVD/CNNVD

1、以CVE开头&#xff0c;如CVE-1999-1046这样的 CVE的英文全称是“Common Vulnerabilities&Exposures”公共漏洞和暴露。CVE就好像是一个字典表&#xff0c;为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。使用一个共同的名字&#xff0c;能够帮助用…...

助力燃气安全运行:智慧燃气管网背景延展

关键词&#xff1a;城市燃气管网、智慧燃气管网、智慧管网、智慧燃气管网解决方案、智慧燃气 01背景 当前&#xff0c;随着我国城市化进程不断加快&#xff0c;城市燃气管网也不断延伸&#xff0c;运行规模庞大&#xff0c;地下管线复杂&#xff0c;不少城市建设“重地上轻地…...

低代码、零代码开源与不开源:区别解析

在如今日益发展的数字时代&#xff0c;程序开发变得越来越重要。为了实现日益提高的业务需求&#xff0c;开发人员必须能够以更高效、更灵活的方式构建和交货软件解决方案。低代码和零代码开源是近几年流行的两种开发方法。本文将探讨它们与传统非开源程序开发的差别&#xff0…...

LabVIEW中如何在网络上使用远程VI服务器

LabVIEW中如何在网络上使用远程VI服务器 如何在网络上使用远程VI服务器&#xff1f; 解答: 首先&#xff0c;需要在远程的计算机上打开一个在VI服务器上的LabVIEW应用程序的引用。这可以通过“Open ApplicationReference“函数实现。然后用“Open VI Reference”函数打开一个…...

Centos 7rc.local脚本命令开机不执行及指定用户启动的方法

1.开机不启动 在实际生产场景中&#xff0c;我们喜欢在安装了一些软件服务后&#xff0c;将软件设置为开机自启动 配置在/etc/rc.local文件中。直接将软件服务的启动命令写在rc.local文件 注意&#xff1a;编辑完rc.local文件后&#xff0c;一定要给rc.local文件执行权限&#…...

mysql 的存储过程

一组为了完成特定功能的sql 语句的集合&#xff0c;写好了存储过程之后&#xff0c;我们可以向函数一样随时调用sql 的集合 CREATE TABLE info ( id int(3) PRIMARY KEY, name VARCHAR(15), score DECIMAL(5,2), pass varchar(12) ); 创建存储过程 创建过程 delimiter $$ #将语…...

http客户端简单demo

socket.h头文件 #pragma once #include <iostream> #include <cstring> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <string> using std::string;namespace MySocket …...

解决UniAD在高版本CUDA、pytorch下运行遇到的问题

UniADhttps://github.com/OpenDriveLab/UniAD是面向行车规划集感知(目标检测与跟踪)、建图(不是像SLAM那样对环境重建的建图&#xff0c;而是实时全景分割图像里的道路、隔离带等行车需关注的相关物体)、和轨迹规划和占用预测等多任务模块于一体的统一大模型。官网上的安装说明…...

ADC、DMA以及串口之间的联系和区别?

ADC、DMA和串口都是嵌入式系统中常用的模块&#xff0c;它们之间有以下联系和区别&#xff1a; 联系&#xff1a; ADC和DMA都是用于数据采集和传输的模块&#xff0c;ADC可以将模拟信号转换为数字信号&#xff0c;DMA可以在不经过CPU的情况下实现数据的高速传输。而串口则是一…...

jupyter lab配置列表清单

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…...

爱发电 OAuth 登录 SDK for Remix

目录 概要安装使用配置 Remix Auth配置登录跳转配置 callback 回调配置 Demo 测试页配置注销登录 概要 爱发电 OAuth 文档&#xff1a; https://afdian.net/p/010ff078177211eca44f52540025c377 注意一下这里有两个细节&#xff1a; 这里的 OAuth 非标准化 OAuth&#xff0c…...

Wpf 使用 Prism 实战开发Day05

首页设计 1.效果图 一.代码现实 根据页面布局&#xff0c;可以将页面设计成3行&#xff0c;每行中分多少列&#xff0c;看需求而定根据页面内容&#xff0c;设计Model 实体类&#xff0c;以及View Model 1.Index.xaml 页面布局设计 RowDefinition 分行&#xff08;Row&#xf…...

性能压测工具:Locust详解

一、Locust介绍 开源性能测试工具https://www.locust.io/&#xff0c;基于Python的性能压测工具&#xff0c;使用Python代码来定义用户行为&#xff0c;模拟百万计的并发用户访问。每个测试用户的行为由您定义&#xff0c;并且通过Web UI实时监控聚集过程。 压力发生器作为性…...

vmware 修改主机名称 hadoop 服务器环境配置(一)

如何在虚拟机配置主机名称&#xff1a; 1. 如图所示在/etc 文件夹下有个hosts文件。追加映射关系&#xff1a; #关系 ip地址 名称 192.168.164.20 hadoop20 2. 保存后&#xff0c;重启reboot即可...

淘宝店铺订单插旗接口(taobao.trade.memo.update淘宝店铺订单交易备注修改接口)

淘宝店铺订单插旗接口是指可以在淘宝店铺的订单系统中进行订单备注的接口。通过该接口&#xff0c;您可以根据用户的身份&#xff08;买家或卖家&#xff09;&#xff0c;添加相应的交易备注&#xff0c;用于区分不同订单类型等。 具体使用方法可以参考淘宝开放平台的API接口文…...

py文件如何打包成exe?如何压缩文件大小?

打包 要将 Python 文件打包成可执行文件&#xff0c;您可以使用 PyInstaller 这个工具。以下是具体步骤&#xff1a; 首先&#xff0c;确保您已经安装了 PyInstaller。如果没有安装&#xff0c;可以使用以下命令安装&#xff1a; pip install pyinstaller进入您的 Python 程序…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...