C语言小练习(三)
🌞 “也许你感觉自己与周遭格格不入,但正是那些你一人度过的时光,让你变得越来越有意思,等有天别人终于注意到你的时候,他们就会发现一个比他们想象中更酷的人。”-《生活大爆炸》
Day03
- 📝 一.选择题
- 📝二.编程题
📝 一.选择题
🎈1.已知函数的原型是: int fun(char b[10], int *a); ,设定义: char c[10];int d; ,正确的调用语句是( )
A: fun(c,&d); B: fun(c,d); C: fun(&c,&d); D: fun(&c,d);
🏆答案:A
🔭答题思路:函数第一个形参 char b[10] ,需要传入的是数组的首地址。数组char c[10] 的数组名 c 是数组的首元素地址,可以传入 c。参数a是指针,需要接受它的地址。
🎈2.请问下列表达式哪些会被编译器禁止【多选】( )
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
🏆答案:ABCD
🔭答题思路:const
放在*
的左边,表示指针指向的值不可修改,但是指针指向可以修改。const
放在*
的右边,表示指针指向的值可修改,但是指针指向不可以修改。那么,放在中间,指针指向以及指针指向的值都不能改。本题中,*c和*d
指向的值不能变,e
的指向不能变,f
都不能变,因此全错。
🎈3.以下程序的输出结果为( )
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int i;
void prt()
{for (i = 5; i < 8; i++)printf("%c", '*');printf("\t");
}
int main()
{for (i = 5; i <= 8; i++)prt();return 0;
}
A: *** B: *** *** *** *** C: *** *** D: * * *
🏆答案:A
🔭答题思路:本题主要需要弄清楚for循环的一个执行流程:
关于for循环
的详细知识点可以见博客链接: for循环
那么,本题的解题流程如下:
🎈4.下面代码段的输出是( )
#include <stdio.h>
int main()
{int a = 3;printf("%d\n", (a += a -= a * a));return 0;
}
A: -6 B: 12 C: 0 D: -12
🏆答案:D
🔭答题思路:本题考察的主要是运算符的优先级以及结合性。关于具体的操作符的知识可跳转至链接: 操作符
🔎操作符的优先级:
操作符 | 描述 | 结合性 | 是否控制求值顺序 |
---|---|---|---|
() | 聚组 | / | 否 |
() | 函数调用 | 左结合性 | 否 |
[ ] | 下标引用 | 左结合性 | 否 |
. | 访问结构成员 | 左结合性 | 否 |
-> | 访问结构指针成员 | 左结合性 | 否 |
++ | 后缀自增 | 左结合性 | 否 |
- - | 后缀自减 | 左结合性 | 否 |
! | 逻辑反 | 右结合性 | 否 |
~ | 按位取反 | 右结合性 | 否 |
+ | 单目,表示正值 | 左结合性 | 否 |
- | 单目,表示负值 | 右结合性 | 否 |
++ | 前缀自增 | 右结合性 | 否 |
- - | 前缀自减 | 右结合性 | 否 |
* | 间接访问 | 右结合性 | 否 |
& | 取地址 | 右结合性 | 否 |
sizeof | 取其长度,以字节表示 | 右结合性 | 否 |
(类型) | 类型转换 | 右结合性 | 否 |
* | 乘法 | 左结合性 | 否 |
/ | 除法 | 左结合性 | 否 |
% | 整数取模 | 左结合性 | 否 |
+ | 加法 | 左结合性 | 否 |
- | 减法 | 左结合性 | 否 |
<< | 左移位 | 左结合性 | 否 |
>> | 右移位 | 左结合性 | 否 |
> | 大于 | 左结合性 | 否 |
>= | 大于等于 | 左结合性 | 否 |
< | 小于 | 左结合性 | 否 |
<= | 小于等于 | 左结合性 | 否 |
== | 等于 | 左结合性 | 否 |
!= | 不等于 | 左结合性 | 否 |
& | 位与 | 左结合性 | 否 |
^ | 位异或 | 左结合性 | 否 |
I | 位或 | 左结合性 | |
&& | 逻辑与 | 左结合性 | 是 |
II | 逻辑或 | 左结合性 | 是 |
?: | 条件操作符 | 右结合性 | 是 |
= | 赋值 | 左结合性 | 否 |
+= | 以…加 | 右结合性 | 否 |
-= | 以…减 | 右结合性 | 否 |
*= | 以…乘 | 右结合性 | 否 |
/= | 以…除 | 右结合性 | 否 |
%= | 以…取模 | 右结合性 | 否 |
<<= | 以…左移 | 右结合性 | 否 |
>>= | 以…右移 | 右结合性 | 否 |
&= | 以…与 | 右结合性 | 否 |
^= | 以…异或 | 右结合性 | 否 |
I= | 以…或 | 右结合性 | 否 |
, | 逗号 | 左结合性 | 是 |
📖我们可以发现在该表达式中
a += a -= a * a
,*
的优先级大于-=
和+=
,*
是左结合,和+=
和-=
是右结合。
本题的解题流程如下:
运行结果如下:
🎈5.下列不能实现死循环的是( )
A: while(1){} B: for(;1;){} C: do{}while(1); D: for(;0;){}
🏆答案:D
🔭答题思路:只有想循环条件为真时,循环才会继续。在C语言中,0表示假,1为真
,因此选D
📝二.编程题
1.🎈首先输入要输入的整数个数 n ,然后输入 n 个整数。输出为 n 个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。
注意: 0 即不是正整数,也不是负数,不计入计算; 本题有多组输入用例。
输入描述:首先输入一个正整数 n ,然后输入 n 个整数。
输出描述:输出负数的个数,和所有正整数的平均值。
数据范围: 1≤n ≤2000 ,输入的整数都满足 ∣val∣≤1000
OJ链接【牛客网题号: HJ97 记负均正】【难度:简单】
🔭答题思路:从题目中的输入
n
个整数,我们会想到要利用数组来储存数据。然后利用for循环
来找出数组中负数的个数(count)
和正数的个数(count2)
,并且把所有正整数加起来,然后算出平均值。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{int arr[1000];int n = 0;while (scanf("%d", &n) != EOF){int count = 0;//记录负数的个数int count2 = 0;//记录正数的个数float sum = 0;int i = 0;for (i = 0; i < n; i++){scanf("%d", &arr[i]);if (arr[i] < 0){count++;}if (arr[i] > 0){count2++;sum += arr[i];}}printf("%d ", count);if (count2)printf("%.1f", sum / count2);elseprintf("0.0");}return 0;
}
🔭样例输出:
2.🎈有一个长度为 n 的非降序数组,比如 [1,2,3,4,5] ,将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了 [3,4,5,1,2] ,或者 [4,5,1,2,3] 这样的。请问,给定这样一个旋转数组,求数组中的最小值。
数据范围: 1≤n≤10000 ,数组中任意元素的值: 0≤val≤10000
示例:
输入:[3,4,5,1,2]
返回值:1
OJ链接【牛客网题号: JZ11 旋转数组的最小数字】【难度:简单】
🔭答题思路:本题我采用的是遍历的方法,把每个数都比较一遍。但是这种方法只限于数据少的情况,数据大的话就会算很久,效率低。
int minNumberInRotateArray(int* rotateArray, int rotateArrayLen ) {int min = *rotateArray;//初始存放第一个数for (int i = 1; i < rotateArrayLen; ++i){if(*(rotateArray+i) < min){min = *(rotateArray+i);}}return min;
}
好啦,第三天的练习到这里就结束啦!后期会继续更新C语言的小练笔,欢迎大家持续关注、点赞和评论!❤️❤️❤️
相关文章:

C语言小练习(三)
🌞 “也许你感觉自己与周遭格格不入,但正是那些你一人度过的时光,让你变得越来越有意思,等有天别人终于注意到你的时候,他们就会发现一个比他们想象中更酷的人。”-《生活大爆炸》 Day03 📝 一.选择题&…...
2023 js逆向爬虫 有道翻译 代码
前置条件:nodejs环境、安装 crypto 和 python3环境 js.js文件: const crypto require("crypto")function decode(resp_data) {g_o ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHlg_n ydsecre…...

【物联网无线通信技术】NFC从理论到实践(FM17XX)
NFC,全称是Near Field Communication,即“近场通信”,也叫“近距离无线通信”。NFC诞生于2004年,是基于RFID非接触式射频识别技术演变而来,由当时的龙头企业NXP(原飞利浦半导体)、诺基亚以及索尼联合发起。NFC采用13.5…...

Python爬虫猿人学逆向系列——第六题
题目:采集全部5页的彩票数据,计算全部中奖的总金额(包含一、二、三等奖) 地址:https://match.yuanrenxue.cn/match/6 本题比较简单,只是容易踩坑。话不多说请看分析。 两个参数,一个m一个f&…...

idea使用tomcat
1. 建立javaweb项目 2. /WEB-INF/web.xml项目配置文件 如果javaweb项目 先建立项目,然后在项目上添加框架支持,选择javaee 3. 项目结构 4.执行测试:...

搭建Tomcat HTTP服务:在Windows上实现外网远程访问的详细配置与设置教程
文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个轻量级的服务器,不仅名字很有趣࿰…...

Java学习笔记——继承(包括this,super的使用总结)
继承: 使用情景:当类与类之间,存在相同(共性)的内容,并满足子类是父类的一种,就可以考虑使用继承,来优化代码 Java中提供一个关键字extends,用这个关键字,我…...
Android 获取应用sha1和sha256
在 Android 应用开发中,SHA-1(Secure Hash Algorithm 1)值是一种哈希算法,常用于生成应用的数字签名。这个数字签名用于验证应用的身份,并确保应用在发布到设备上时没有被篡改。 以下是生成 Android 应用的 SHA-1 值的…...
c# 方法参数修饰符(out、ref、in)的区别
在C#中,ref、out和in是三种方法参数修饰符,它们在传递参数的方式和作用上有所不同。 ref修饰符: 传递方式:使用ref修饰符的参数可以是输入输出参数,即在方法调用前后都可以对其进行修改。 作用:通过ref修…...

shell 编写一个带有进度条的程序安装脚本
需求 使用 shell 写一个 软件安装脚本,带有进度条 示例 #!/bin/bash# 模拟软件安装的步骤列表 steps("解压文件" "安装依赖" "配置设置" "复制文件" "")# 计算总步骤数 total_steps${#steps[]}# 安装进度的初…...

服务器数据恢复-AIX PV完整镜像方法以及误删LV的数据恢复方案
AIX中的PV相当于物理磁盘(针对于存储来说,PV相当于存储映射过来的卷;针对操作系统来说,PV相当于物理硬盘),若干个PV组成一个VG,AIX可以将容量不同的存储空间组合起来统一分配。AIX把同一个VG的所…...

首席执行官Adam Selipsky解读“亚马逊云科技的技术产品差异化”
迄今为止,亚马逊云科技已经参与了21世纪几乎所有的大型计算变革,亚马逊云科技是一个很传奇的故事,它始于大约20年前的一项实验,当时亚马逊试图出售其过剩的服务器。人们确实对此表示怀疑。为什么在线书店试图销售云服务࿱…...

C++ Day3
目录 一、类 【1】类 【2】应用实例 练习: 【3】封装 二、this指针 【1】this指针的格式 【2】必须使用this指针的场合 三、类中的特殊成员函数 【1】构造函数 i)功能 ii)格式 iii)构造函数的调用时机 iv)…...

OpenEuler 安装mysql
下载安装包 建议直接使用在openEuler官方编译移植过的mysql-5.7.21系列软件包 参考:操作系统迁移实战之在openEuler上部署MySQL数据库 | 数据库迁移方案 | openEuler社区官网 MySQL 5.7.21 移植指南(openEuler 20.03 LTS SP1) | 数据库移植…...

[Docker] Windows 下基于WSL2 安装
Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。 1. 开启虚拟化 进入系统BIOS(AMD 为 SVM;Intel 为 Intel-vt)改为启用(enable) 2. 开启WSL 系统设置->应用->程序和功能->…...
(未完成)【Spring专题】SringAOP底层原理解析——阶段三(AOP)
目录 前言前置知识代理范式SpringAOP的理解Spring动态代理的实现 课程内容一、动态代理的实现1.1 Cglib动态代理1.2 JDK动态代理1.3 ProxyFactory:Spring对两种代理的封装 二、AOP基础知识AOP基础概念回顾通知Advice的分类Advisor的理解 三、创建代理对象的方式3.1 …...

使用Nodejs创建简单的HTTP服务器,借助内网穿透工具实现公网访问的方法分享
文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation࿰…...
使用 OpenTelemetry 构建可观测性 03 - 导出
上一个博文中,我提到如何使用 OpenTelemery 的特定语言 API 来收集遥测数据,包含手动和自动的埋点技术,这很重要!但是,收集遥测数据只是解决方案的第一步。 你需要把遥测数据路由转发到其他地方,同时添加额…...

Pyqt5打开电脑摄像头进行拍照
目录 1、设计UI界面 2、设计逻辑代码,建立连接显示窗口 3、结果 1、设计UI界面 将ui界面转为py文件后获得的逻辑代码为:(文件名为 Camera.py) # -*- coding: utf-8 -*-# Form implementation generated from reading ui file …...
Flowable 7.0.0.M2 版本功能
CMMN 支持批量迁移重复支持案例重新激活支持停止内务处理批处理Http 任务支持 HTTP HEAD and OPTIONS for the Http Tasks移除了 Spring Boot 启动器 flowable-spring-boot-starter-basic - 切换为 flowable-spring-boot-starter-process flowable-spring-boot-starter-rest-ap…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

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

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...