2023C语言暑假作业day3

1 选择题

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
参数a是指针,要接收地址,BD错误。参数b可以接收的是char
,而&c的类型是char(*)[10],C错误

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不能变
如果 const 位于 * 的右侧,则 const 就是修饰指针本身,即指针本身是常量;e和f不能变

3

以下程序的输出结果为

#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
全局变量i,在main()中修改为5,第一次在prt()中执行循环输出三次’*',i被修改为8,回到main()中第二次调用prt()时,i<8为假,循环结束没输出,执行一次print(“\t”),再次回到主函数后i++变为9,i<=8为假,循环结束

4

下面代码段的输出是

int main()
{
int a=3;
printf("%d\n",(a+=a-=a*a));
return 0;
}

A: -6 B: 12 C: 0 D: -12
答案解析:
正确答案:D
a+=a-=aa等价于a=a+(a=a-aa),即先计算a=a-aa,所以此时a的值为3-33=-6,再计算-6+(-6)=-12赋值给a,所以a的为-12,也就是整个表达式的值,所以应选择D

5

下列不能实现死循环的是
A: while(1){} B: for(;1;){} C: do{}while(1); D: for(;0;){}
答案解析:
正确答案:D
只有条件为真时才进行循环,ABC中1为真,D中0为假

2 编程题

1

首先输入要输入的整数个数 n ,然后输入 n 个整数。输出为 n 个整数中负数的个数,和所有正整数的平均值,结果保留一位小数
注意: 0 即不是正整数,也不是负数,不计入计算; 本题有多组输入用例
输入描述:首先输入一个正整数 n ,然后输入 n 个整数
输出描述:输出负数的个数,和所有正整数的平均值
OJ链接【牛客网题号: HJ97 记负均正】【难度:简单】
示例:
输入: 5
1 2 3 4 5
10
1 2 3 4 5 6 7 8 9 0
输出: 0 3.0
0 5.0
【答案解析】:
这道题其实通过 scanf 捕捉数据即可,统计负数个数,以及正数格式,并且在统计正数个数的过程中求取正数总和,最后计算得出平均数即可。需要注意的是所有数字中0是不统计在内的

#include <stdio.h>
int main()
{
int n;
while(~scanf("%d", &n)) 
{
int count1 = 0, count2 = 0, tmp;
float sum = 0;
for (int i = 0; i < n; i++) 
{
scanf("%d", &tmp);
if (tmp < 0)
{
count1++; //统计负数个数
} 
else if (tmp > 0) 
{
sum += tmp; //正数求和
count2++; //统计大于0的正数个数,这样是因为题目说明0不算在内
}
}
printf("%d %.1lf\n", count1, sum / count2);
} 
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
OJ链接【牛客网题号: JZ11 旋转数组的最小数字】【难度:简单】
示例:
输入:[3,4,5,1,2]
返回值:1
答案解析】:
暴力破解:遍历数组找出最小值即可
更优思想:采用二分查找,这个题主要分析三种旋转情况 [1, 2, 3, 4, 5],使用中间值与右端进行比较

  1. 中间大于右边 [3, 4, 5, 1, 2],这种情况下,最小数一定在右边;则left = middle + 1
  2. 中间等于右边 [1, 0, 1, 1, 1], 这个是[0, 1, 1, 1, 1] 旋转过来的,这时候需要缩小范围 right–;,注意不能是
    left++,因为是非降序数组,所以要缩小右边范围,把较小值向右推,符合我们的判断规则
  3. 中间小于右边 [5, 1, 2, 3, 4], 这种情况下,最小数字则在左半边;则right = middle
int minNumberInRotateArray(int* rotateArray, int rotateArrayLen ) 
{
if (rotateArrayLen == 0) return 0;
int left = 0, right = rotateArrayLen - 1, mid;
if (rotateArray[right] > rotateArray[left]) return rotateArray[0];
while(left < right) 
{
mid = left + (right - left) / 2;
if (rotateArray[mid] > rotateArray[right]) left=mid+1;
else if (rotateArray[mid] == rotateArray[right]) right--;
else right = mid;
} 
return rotateArray[left];
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kettle开发-Day40-AI分流之case/switch

前言&#xff1a; 前面我们讲到了很多关于数据流的AI方面的介绍&#xff0c;包括自定义组件和算力提升这块的&#xff0c;今天我们来学习一个关于kettle数据分流处理非常重要的组件Switch / Case 。当我们的数据来源于类似日志、csv文件等半结构化数据时&#xff0c;我们需要在…

Vmware+CentOS+KGDB内核双机调试

1.准备两台CentOS系统的vmware虚拟机 其中一台作为调试机&#xff0c;另一台则作为被调试机。如下图&#xff0c;CentOS7.9x64为被调试机&#xff0c;CentOS7.9x64-Debugger为调试机 2.配置串口设备 若虚拟机有串口设备&#xff08;如打印机&#xff09;&#xff0c;需要先删…

黑马 pink h5+css3+移动端前端

网页概念 网页是网站的一页,网页有很多元素组成,包括视频图片文字视频链接等等,以.htm和.html后缀结尾,俗称html文件 HTML 超文本标记语言,描述网页语言,不是编程语言,是标记语言,有标签组成 超文本指的是不光文本,还有图片视频等等标签 常用浏览器 firefox google safari…

MFC 编辑框输入16进制字符串转换为16进制数或者10进制数据计算

1. 编辑框添加变量&#xff0c;并选择变量类型为CString。 CString m_strReg; DDX_Text(pDX, IDC_EDIT_REG, m_strReg); 2. 使用“strtoul”或“_tcstoul”函数将Cstring 类型转换为16进制/10进制数进行计算。 CString tmp; UpdateData(TRUE); UpdateData(FALSE); …

【KD】知识蒸馏与迁移学习的不同

知识蒸馏与迁移学习的不同 (1)数据域不同. 知识蒸馏中的知识通常是在同一个目标数据集上进行迁移&#xff0c;而迁移学习中的知识往往是在不同目标的数据集上进行转移. (2)网络结构不同. 知识蒸馏的两个网络可以是同构或者异构的&#xff0c;而迁移学习通常是在单个网络上利用其…

anaconda简单使用

anaconda 是一个环境管理工具&#xff0c;各个环境的安装包互不影响 下载 https://www.anaconda.com/ 配置 更换清华下载源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsin…

LabVIEW基础-lvlib库

文章目录 lvlib库llb库lvlib与llb的区别lvlib常见错误断开vi与库之间的连接 lvlib库 文件-新建-库&#xff0c;创建一个项目库文件。能在项目中创建的文件类型&#xff0c;都可以在库中创建。 在lvlib上右键-添加-文件&#xff0c;将被选中的文件放到lvlib中。被添加进lvlib的…

关于ETL的两种架构(ETL架构和ELT架构)

ETL&#xff0c;是英文 Extract-Transform-Load 的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&#xff08;transform&#xff09;、加载&#xff08;load&#xff09;至目的端的过程。ETL一词较常用在数据仓库&#xff0c;但其对象…

【Linux】Tcp服务器的三种与客户端通信方法及守护进程化

全是干货~ 文章目录 前言一、多进程版二、多线程版三、线程池版四、Tcp服务器日志的改进五、将Tcp服务器守护进程化总结 前言 在上一篇文章中&#xff0c;我们实现了Tcp服务器&#xff0c;但是为了演示多进程和多线程的效果&#xff0c;我们将服务器与客户通通信写成了一下死循…

OpenCv之视频人脸识别

一、人脸检测 案例代码如下: import cv2 import numpy as npvideo cv2.VideoCapture(1.mp4) face_detector cv2.CascadeClassifier(haarcascade_frontalface_alt.xml) while True:retval,image video.read() # retval boolean类型表名是否获得了图片if not retval:pr…

【GD32F103】自定义程序库05-开源库CJSON使用记录

json处理 函数库CJson cJSON.h /*Copyright (c) 2009-2017 Dave Gamble and cJSON contributorsPermission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to deali…

APP测试学习之Android模拟器Genymotion安装配置不上解决方法以及adb基本使用

Android模拟器Genymotion安装配置不上解决方法以及adb基本使用 Genymotion下载安装配置遇见的问题解决方法adb基本使用 Genymotion下载 1.首先进入官网 https://www.genymotion.com/ 2.在官网注册一个账号 https://www-v1.genymotion.com/account/login/ 3.下载 https://www.g…

计算机网络——应用层

这篇文章是计算机网络系列文章的第五篇 计算机网络——物理层 计算机网络——数据链路层 计算机网络——网络层 计算机网络——传输层 计算机网络——应用层 序言 计算机网络中的应用层在当今的社会起到了什么作用&#xff1f; 应用层在当今社会有着必不可缺的作用。是协议栈中…

mysql-docker镜像安装

要使用 Docker 镜像安装 MySQL 5.7&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. 确保已经安装了 Docker。如果没有安装&#xff0c;请先安装 Docker。 2. 打开终端或命令行窗口&#xff0c;运行以下命令来拉取 MySQL 5.7 的 Docker 镜像&#xff1a; docker pull my…

Function优化大量的if else(案例一)

Function(Function<T, R> )可以看作转换型函数&#xff0c;有一个输入型参数T和返回型参数R。 package com;import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.function.Function;public class Function1Test {private stati…

8.4 利用集成运放实现的信号转换电路

在控制、遥控、遥测、近代生物物理和医学等领域&#xff0c;常常需要将模拟信号进行转换&#xff0c;如将信号电压转换成电流&#xff0c;将信号电流转换成电压&#xff0c;将直流信号转换成交流信号&#xff0c;将模拟信号转换成数字信号&#xff0c;等等。 一、电压 - 电流转…

Spring 能解决所有循环依赖吗?

以下内容基于 Spring6.0.4。 看了上篇文章的小伙伴&#xff0c;对于 Spring 解决循环依赖的思路应该有一个大致了解了&#xff0c;今天我们再来看一看&#xff0c;按照上篇文章介绍的思路&#xff0c;有哪些循环依赖 Spring 处理不了。 严格来说&#xff0c;其实也不是解决不了…

在自定义数据集上微调Alpaca和LLaMA

本文将介绍使用LoRa在本地机器上微调Alpaca和LLaMA&#xff0c;我们将介绍在特定数据集上对Alpaca LoRa进行微调的整个过程&#xff0c;本文将涵盖数据处理、模型训练和使用流行的自然语言处理库(如Transformers和hugs Face)进行评估。此外还将介绍如何使用grado应用程序部署和…

Nginx配置TCP代理指南

使用Nginx作为TCP代理是一种有效的方式&#xff0c;可以实现高性能的负载均衡和反向代理。本篇指南将介绍如何配置Nginx以用作TCP代理。 步骤1&#xff1a;安装Nginx 首先&#xff0c;确保您的系统已经安装了Nginx。您可以从Nginx官方网站或适用于您的操作系统的软件包管理器…

论文笔记--ERNIE: Enhanced Language Representation with Informative Entities

论文笔记--ERNIE: Enhanced Language Representation with Informative Entities 1. 文章简介2. 文章概括3 文章重点技术3.1 模型框架3.2 K-Encoder(Knowledgeable Encoder)3.3 预训练任务3.4 微调 4. 文章亮点5. 原文传送门6. References 1. 文章简介 标题&#xff1a;ERNIE:…