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…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...





