c语言每日一练(5)
前言:
每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,暑假时三天之内必有一更,到了开学之后,将看学业情况更新。
五道选择题:
1、下面代码的结果是:( )
#include <stdio.h>
int main()
{int a, b, c;a = 5;//1c = ++a;//2b = ++c, c++, ++a, a++;//3b += a++ + c;//4printf("a = %d b = %d c = %d\n", a, b, c);return 0;
}
A. a = 8 b = 23 c = 8 B. a = 9 b= 23 c = 8
C. a = 9 b = 25 c = 8 D. a = 9 b = 24 c = 8
解析:观察代码,发现目标是打印出a,b,c对应的值,我们计算出打印的时侯a,b,c的值问题就解决了,可以看出,在打印之前,使用了很多++运算符。因此关键这题的解题关键就在于你对++运算符的理解
++运算符分为两种,一种是前置++,一种是后置++,举个例子,++a就是前置++,a++就是后置++,这两种++的区别就在于,前置++是先++后使用,后置++是先使用后++。比方说

可以看出,x一开始被初始化为3,y=x++,y是先等于3,x再++。z=++x,是先令x++再让z=x
#include <stdio.h>
int main()
{int a, b, c;a = 5;//1c = ++a;//2b = ++c, c++, ++a, a++;//3b += a++ + c;//4printf("a = %d b = %d c = %d\n", a, b, c);return 0;
}
我们继续做题,代码1令a=5,代码2令a先++使a=6,再让c=a,使c=6。
代码3是逗号表达式,根据之前所学我们知道,逗号表达式从左往右计算,计算结果为最后一个表达式,从左往右走,先是++c使c+1等于7,再是c++使c+1令c等于8,接着是++a,使a+1等于7,再是a++使b先等于a,a此时=7,故b=7。再令a++,使a为8。
来到代码4,代码4令b+=a++ +c,换种写法就是令b=b+a++ + c,是后置++,先不管,b=b+a+c=8+7+8=23,最后再让a加1为9,因此,a,b,c最后的值分别是,9,23,8,故选B
2、如下程序的运行结果是( )
char c[5]={'a', 'b', '\0', 'c', '\0'};
printf("%s", c);
A、'a' 'b' B、ab\0c\0 C、ab c D、ab
解析:这题考察的是对于字符串的理解,打印字符串,打印到'\0'就停止,没遇到'\0'就会一直打印到遇到'\0'为止 代码将a,b,'\0',c,'\0'一个一个字符放进了c这个字符数组中,并用打印字符串的形式打印,但刚打印完a,b就遇到了'\0'字符串结束标志,所以就会停止打印。故选D

3、在下面的字符数组定义中,哪一个有语法错误( )
A、char a[20]="abcdefg"; B、char a[]="x+y=5.";
C、char a[15]; D、char a[10]='5';
解析:A,B选项都使用了字符串初始化数组,可能你不明白为什么可以用字符串初始化数组,但做这道题的时候你就应该直接排除掉A,B。之所以可以用字符串来初始化数组,是因为,字符串的特殊性,字符串本身代表首元素的地址。而C选项它没有初始化数组,当然不能算错。但是D选项就出问题了,它这个操作无异于char a[10]=0;因为字符的存储是用ASCII码值实现的,可以将字符看作一种整型。所以D错

4、下列程序的输出是( )
#include<stdio.h>
int main()
{int a[12] = { 1,2,3,4,5,6,7,8,9,10,11,12 }, * p[4], i;for (i = 0; i < 4; i++)p[i] = &a[i * 3];printf("%d\n",p[3][2]);return 0;
}
A、上述程序有错误 B、6 C、8 D、12
解析:观察代码可以看出它创建了一个整型数组a,和一个整型指针数组p,然后通过for循环将数组a首元素的地址,第4个元素的地址,第7个元素的地址,以及第10个元素的地址放了进去,最后要打印p[3][2],[3]可以找到第10个元素,那么[3][0]为第10个,[3][1]为第11个,故[3][2]为第12个,所以最后打印出12,故选D

5、以下逗号表达式的值为( )
(x = 4 * 5, x * 5,x+5);
A、25 B、20 C、100 D、45
解析:易错题,逗号表达式从左往右计算,先算x=4*5,故此时x=20,又令x*5,但没有写做x=x*5,故x依然是20,最后让x+5即25,所以该逗号表达式最后的值为25,选A

编程题1:
记负均正_牛客题霸_牛客网

思路:这题很简单,遇到负数计数器+1,遇到正数,就给你创建的统计总和的变量加上,最后打印出负数的个数,和使用保留一位小数的方式打印出正整数的平均值即可。
#include <stdio.h>
int main() {int n = 0;scanf("%d", &n);int i = 0; float sum = 0;//正整数总和int a_count = 0; int b_count = 0;//计数器for (i = 0; i < n; i++){int a = 0;scanf("%d", &a);if (a < 0){a_count++;//负数计数器}else if (a > 0){sum += a;b_count++;//正数计数器}}if (b_count != 0)//除数不能是0{sum /= b_count;}printf("%d %.1f", a_count, sum);
}
编程题2:
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

思路:由于数组1~n的数都有,且只有一个重复,一个缺失,那么我使用1^2^3.....^n所得到的数,对着数组的内容依次^一遍,(两个相同的数^等于0,且^满足交换律)那么最后得到的值就是重复的和缺失互相^的值,如此我们只要求出缺失的或者重复的中的一个便可以。
对qsort函数不了解的小伙伴可以看下我之前的文章
手把手教你使用qsort函数_大海里的番茄的博客-CSDN博客
#include<stdio.h>
#include<stdlib.h>
int cmp_int(const void* p1, const void* p2)
{return(*(int*)p1 - *(int*)p2);//升序排序
}
int* findErrorNums(int* nums, int numsSize, int* returnSize)
{int i = 0; int x = 0;for (i = 1; i <= numsSize; i++){x ^= i;//先从头^一遍,因为^满足交换律,顺序不重要}for (i = 0; i < numsSize; i++){x ^= nums[i];//再和数组内的内容^一遍得到//丢失的数和重复的数^的结果}qsort(nums, numsSize, sizeof(int), cmp_int);for (i = 0; i < numsSize; i++){if (nums[i] == nums[i + 1])//找到重复的数break;}x ^= nums[i];//x为被修改的数*nums = nums[i];*(nums + 1) = x;*returnSize = 2;return nums;
}
好了,今天的练习到这里就结束了,感谢各位友友的来访,祝各位友友前程似锦O(∩_∩)O
相关文章:
c语言每日一练(5)
前言:每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,暑假时三天之内必有一更,到了开学之后,将看学业情…...
pycharm配置conda虚拟环境
📕作者简介:热编程的贝贝,致力于C/C、Java、Python等多编程语言,热爱跑步健身,喜爱音乐的一位博主。 📗本文收录于贝贝的日常汇报系列,大家有兴趣的可以看一看 📘相关专栏深度学习、…...
ubuntu 如何命令行打开系统设置(Wifi,网络,应用程序...)
关于GNOME GNOME 是一个自由、开放源代码的桌面环境,它运行在 Linux 和其他类 UNIX 操作系统上。它是 GNU 项目的一部分,旨在为 Linux 操作系统提供一个现代化、易于使用的用户界面。 GNOME 桌面环境包括许多应用程序,例如文件管理器、文本编…...
MySQL DQL 数据查询
文章目录 1.SELECT 语句2.SELECT 子句3.FROM 子句4.WHERE 子句5.GROUP BY 子句6.HAVING 子句7.ORDER BY 子句8.LIMIT 子句9.DISTINCT 子句10.JOIN 子句11.UNION 子句12.查看数据表记录数13.检查查询语句的执行效率14.查看 SQL 执行时的警告参考文献 1.SELECT 语句 MySQL 的 SE…...
深度学习基础知识笔记
深度学习要解决的问题 1 深度学习要解决的问题2 应用领域3 计算机视觉任务4 视觉任务中遇到的问题5 得分函数6 损失函数7 前向传播整体流程8 返向传播计算方法1 梯度下降 9 神经网络整体架构11 神经元个数对结果的影响12 正则化和激活函数1 正则化2 激活函数 13 神经网络过拟合…...
怎么系统的学习机器学习、深度学习?当然是看书了
目录 前言 内容简介 学完本书,你将能够 作者简介 本书目录 京东自购链接 前言 近年来,机器学习方法凭借其理解海量数据和自主决策的能力,已在医疗保健、 机器人、生物学、物理学、大众消费和互联网服务等行业得到了广泛的应用。自从Ale…...
无涯教程-Perl - binmode函数
描述 此函数设置在区分两者的操作系统上以二进制形式读取和写入FILEHANDLE的格式。非二进制文件的CR LF序列在输入时转换为LF,在LF时在输出时转换为CR LF。这对于使用两个字符分隔文本文件中的行的操作系统(MS-DOS)至关重要,但对使用单个字符的操作系统(Unix,Mac OS,QNX)没有影…...
Spring Boot Maven package时显式的跳过test内容
在pom.xml的编译插件部分显式的增加一段内容: <plugin> <!-- maven打包时,显式的跳过test部分 --><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>3.…...
排序算法————基数排序(RadixSort)
基数排序的概念: 什么是基数排序???基数排序是一种和快排、归并、希尔等等不一样的排序...它不需要比较和移动就可以完成整型的排序。它是时间复杂度是O(K*N),空间复杂度是O(KM&…...
leetcode做题笔记75颜色分类
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解决…...
聊一下互联网开源变现
(点击即可收听) 互联网开源变现其实是指通过开源软件或者开放源代码的方式,实现收益或盈利。这种方式越来越被广泛应用于互联网行业 在互联网开源变现的模式中,最常见的方式是通过捐款、广告、付费支持或者授权等方式获利。 例如,有些开源软件…...
PHP日期差计算器,计算两个时间相差 年/月/日
1. 计算两个日期相隔多少年,多少月,多少天示例:laravel框架实现 /*** 天数计算* return \Illuminate\Http\JsonResponse*/public function loveDateCal(){$start_date $this->request(start_date);$end_date $this->request(end_date…...
20230812在WIN10下使用python3将SRT格式的字幕转换为SSA格式
20230812在WIN10下使用python3将SRT格式的字幕转换为SSA格式 2023/8/12 20:58 本文的SSA格式以【Batch Subtitles Converter(批量字幕转换) v1.23】的格式为准! 1、 缘起:网上找到的各种各样的字幕转换软件/小工具都不是让自己完全满意! 【都…...
matlab使用教程(13)—稀疏矩阵创建和使用
使用稀疏矩阵存储包含众多零值元素的数据,可以节省大量内存并加快该数据的处理速度。sparse 是一种属性,可以将该属性分配给由 double 或 logical 元素组成的任何二维 MATLAB 矩阵。通过 sparse 属性,MATLAB 可以: • 仅存储矩…...
UI美工设计的主要职责(合集)
UI美工设计的主要职责1 职责: 1、执行公司的规章制度及专业管理办法; 2、 负责重点项目的原型设计和产品流程设计、视觉设计,优化网站和移动端的设计流程和规范,制定产品 UI/UE规范及文档编写; 3、负责使用PS、AI、illustrator、MarkMan、…...
【前端二次开发框架关于关闭eslint】
前端二次开发框架关于关闭eslint 方法一方法二方法三方法四:以下是若想要关闭项目中的部分代码时: 方法一 在vue.config.js里面进行配置: module.exports {lintOnSave:false,//是否开启eslint保存检测 ,它的有效值为 true || false || err…...
Scractch3.0_Arduino_ESP32_学习随记_蓝牙键盘(三)
C02蓝牙键盘 目的器材程序联系我们 目的 通过C02实现蓝牙键盘 器材 硬件: 齐护机器人C02 购买地址 软件: scratch3.0 下载地址:官网下载 程序 在P5口连接按钮模块。 蓝牙键盘组合按键动作的实现。 当对应按键按下时模拟键盘动作,先按下ctrl然后按下对应组合键…...
Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI
详细错误信息如下: 复制代码 19/03/19 11:04:18 INFO util.log: Logging initialized 5402ms 19/03/19 11:04:18 INFO server.Server: jetty-9.3.z-SNAPSHOT 19/03/19 11:04:18 INFO server.Server: Started 5604ms 19/03/19 11:04:18 WARN util.Utils: Service ‘S…...
LeetCode 2811. Check if it is Possible to Split Array【脑筋急转弯;前缀和+动态规划或记忆化DFS】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
【学习日记】【FreeRTOS】链表结构体及函数详解
写在前面 本文主要是对于 FreeRTOS 中链表相关内容的详细解释,代码大部分参考了野火FreeRTOS教程配套源码,作了一小部分修改。 一、结构体定义 主要包含三种结构体: 普通节点结构体结尾节点(mini节点)结构体链表结…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
