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

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)

前言&#xff1a;每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;暑假时三天之内必有一更&#xff0c;到了开学之后&#xff0c;将看学业情…...

pycharm配置conda虚拟环境

&#x1f4d5;作者简介&#xff1a;热编程的贝贝&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步健身&#xff0c;喜爱音乐的一位博主。 &#x1f4d7;本文收录于贝贝的日常汇报系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏深度学习、…...

ubuntu 如何命令行打开系统设置(Wifi,网络,应用程序...)

关于GNOME GNOME 是一个自由、开放源代码的桌面环境&#xff0c;它运行在 Linux 和其他类 UNIX 操作系统上。它是 GNU 项目的一部分&#xff0c;旨在为 Linux 操作系统提供一个现代化、易于使用的用户界面。 GNOME 桌面环境包括许多应用程序&#xff0c;例如文件管理器、文本编…...

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 神经网络过拟合…...

怎么系统的学习机器学习、深度学习?当然是看书了

目录 前言 内容简介 学完本书&#xff0c;你将能够 作者简介 本书目录 京东自购链接 前言 近年来&#xff0c;机器学习方法凭借其理解海量数据和自主决策的能力&#xff0c;已在医疗保健、 机器人、生物学、物理学、大众消费和互联网服务等行业得到了广泛的应用。自从Ale…...

无涯教程-Perl - binmode函数

描述 此函数设置在区分两者的操作系统上以二进制形式读取和写入FILEHANDLE的格式。非二进制文件的CR LF序列在输入时转换为LF,在LF时在输出时转换为CR LF。这对于使用两个字符分隔文本文件中的行的操作系统(MS-DOS)至关重要,但对使用单个字符的操作系统(Unix,Mac OS,QNX)没有影…...

Spring Boot Maven package时显式的跳过test内容

在pom.xml的编译插件部分显式的增加一段内容&#xff1a; <plugin> <!-- maven打包时&#xff0c;显式的跳过test部分 --><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>3.…...

排序算法————基数排序(RadixSort)

基数排序的概念&#xff1a; 什么是基数排序&#xff1f;&#xff1f;&#xff1f;基数排序是一种和快排、归并、希尔等等不一样的排序...它不需要比较和移动就可以完成整型的排序。它是时间复杂度是O&#xff08;K*N&#xff09;&#xff0c;空间复杂度是O&#xff08;KM&…...

leetcode做题笔记75颜色分类

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解决…...

聊一下互联网开源变现

(点击即可收听) 互联网开源变现其实是指通过开源软件或者开放源代码的方式&#xff0c;实现收益或盈利。这种方式越来越被广泛应用于互联网行业 在互联网开源变现的模式中&#xff0c;最常见的方式是通过捐款、广告、付费支持或者授权等方式获利。 例如&#xff0c;有些开源软件…...

PHP日期差计算器,计算两个时间相差 年/月/日

1. 计算两个日期相隔多少年&#xff0c;多少月&#xff0c;多少天示例&#xff1a;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】的格式为准&#xff01; 1、 缘起&#xff1a;网上找到的各种各样的字幕转换软件/小工具都不是让自己完全满意&#xff01; 【都…...

matlab使用教程(13)—稀疏矩阵创建和使用

使用稀疏矩阵存储包含众多零值元素的数据&#xff0c;可以节省大量内存并加快该数据的处理速度。sparse 是一种属性&#xff0c;可以将该属性分配给由 double 或 logical 元素组成的任何二维 MATLAB 矩阵。通过 sparse 属性&#xff0c;MATLAB 可以&#xff1a; • 仅存储矩…...

UI美工设计的主要职责(合集)

UI美工设计的主要职责1 职责&#xff1a; 1、执行公司的规章制度及专业管理办法; 2、 负责重点项目的原型设计和产品流程设计、视觉设计&#xff0c;优化网站和移动端的设计流程和规范&#xff0c;制定产品 UI/UE规范及文档编写; 3、负责使用PS、AI、illustrator、MarkMan、…...

【前端二次开发框架关于关闭eslint】

前端二次开发框架关于关闭eslint 方法一方法二方法三方法四&#xff1a;以下是若想要关闭项目中的部分代码时&#xff1a; 方法一 在vue.config.js里面进行配置&#xff1a; module.exports {lintOnSave:false,//是否开启eslint保存检测 ,它的有效值为 true || false || err…...

Scractch3.0_Arduino_ESP32_学习随记_蓝牙键盘(三)

C02蓝牙键盘 目的器材程序联系我们 目的 通过C02实现蓝牙键盘 器材 硬件: 齐护机器人C02 购买地址 软件: scratch3.0 下载地址:官网下载 程序 在P5口连接按钮模块。 蓝牙键盘组合按键动作的实现。 当对应按键按下时模拟键盘动作&#xff0c;先按下ctrl然后按下对应组合键…...

Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI

详细错误信息如下&#xff1a; 复制代码 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」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…...

【学习日记】【FreeRTOS】链表结构体及函数详解

写在前面 本文主要是对于 FreeRTOS 中链表相关内容的详细解释&#xff0c;代码大部分参考了野火FreeRTOS教程配套源码&#xff0c;作了一小部分修改。 一、结构体定义 主要包含三种结构体&#xff1a; 普通节点结构体结尾节点&#xff08;mini节点&#xff09;结构体链表结…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...