C语言假期作业 DAY 03

news2024/12/23 20:09:32

目录

题目

一、选择题

1、已知函数的原型是: int fun(char b[10], int *a); ,设定义: char c[10];int d; ,正确的调用语句是( )

2、请问下列表达式哪些会被编译器禁止【多选】( )

3、以下程序的输出结果为( )

4、下面代码段的输出是( )

5、下列不能实现死循环的是( )

二、编程题

 1:记负均正_牛客题霸_牛客网 (nowcoder.com)HJ97 记负均正

描述

输入描述:

输出描述:

2:旋转数组的最小数字_牛客题霸_牛客网JZ11 旋转数组的最小数字

描述

示例1

示例2

题解

一、选择题

1 、【答案解析】

2 、【答案解析】

3 、【答案解析】

4 、【答案解析】

5 、【答案解析】

二、编程题

1 、【答案解析】:

2、【答案解析】


题目

一、选择题

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) ;

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

3、以下程序的输出结果为( )

 

#include <stdio.h>
int i;
void prt()
{
for (i = 5; i < 8; i++)
printf("%c", '*');
printf("\t");
} in
t main()
{
for (i = 5; i <= 8; i++)
prt();
return 0;
}

4、下面代码段的输出是( )

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

A: -6

B: 12

C: 0

D: -12

5、下列不能实现死循环的是( )

A: while(1){}
B: for( ; 1 ; ){}
C: do{}while(1) ;
D: for( ; 0 ; ){}
 

二、编程题

 1:记负均正_牛客题霸_牛客网 (nowcoder.com)HJ97 记负均正

描述

首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。

0即不是正整数,也不是负数,不计入计算。如果没有正数,则平均值为0。

数据范围:  1≤n ≤2000  ,输入的整数都满足  ∣val∣≤1000 

输入描述:

首先输入一个正整数n,
然后输入n个整数。

输出描述:

输出负数的个数,和所有正整数的平均值。

2:旋转数组的最小数字_牛客题霸_牛客网JZ11 旋转数组的最小数字

描述

有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。

数据范围:1≤n≤10000,数组中任意元素的值: 0≤val≤10000

要求:空间复杂度:O(1) ,时间复杂度:O(logn)

示例1

输入:[3,4,5,1,2]

返回值:1

示例2

输入:[3,100,200,3]

返回值:3 

题解

一、选择题

1 、【答案解析】

正确答案: A
参数 a 是指针,要接收地址, BD 错误。参数 b 可以接收的是 char* ,而 &c 的类型是 char(*)[10] , C 错误

2 、【答案解析】

正确答案: ABCD
如果 const 位于 * 的左侧,则 const 就是用来修饰指针所指向的变量,即指针指向为常量; *c 和 *d 不能变。 如果 const 位于 * 的右侧,则 const 就是修饰指针本身,即指针本身是常量; e 和 f 不能变。

3 、【答案解析】

正确答案: A
全局变量 i ,在 main() 中修改为 5 ,第一次在 prt() 中执行循环输出三次 '*' , i 被修改为 8 ,回到 main() 中第二次调用 prt() 时,i<8 为假,循环结束没输出,执行一次 print("\t") ,再次回到主函数后 i++ 变为 9 , i<=8 为假,循环结束 ;

4 、【答案解析】

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

5 、【答案解析】

正确答案: D
只有条件为真时才进行循环, ABC 中 1 为真, D 中 0 为假

二、编程题

1 、【答案解析】:

这道题其实通过 scanf 捕捉数据即可,统计负数个数,以及正数格式,并且在统计正数个数的过程中求取正数总和,最后计算得出平均数即可。需要注意的是所有数字中0 是不统计在内的。

#include<stdio.h>
#include<stdlib.h>
int main() {
    int n = 0;
    while (scanf("%d", &n) != EOF) {
        int i = 0;
        int sum = 0;
        float ava = 0.0f;
        int cnt1 = 0;//记录负数
        int cnt2 = 0;//记录除0后的数
        int cnt3 = 0;//记录0的个数
        int* arr = (int*)malloc(n * sizeof(int));
        for (i = 0; i < n; i++) {
            scanf("%d", &arr[i]);
        }
        for (i = 0; i < n; i++) {
            if (arr[i] < 0) {
                cnt1++;
            } else if (arr[i] > 0) {
                sum += arr[i];
                cnt2++;
            } else {
                cnt3++;
            }
        }
        if (cnt3 == n) {
            printf("%d 0.0", cnt1);
        } 
        else {
            ava = (double)sum / cnt2;
            printf("%d %.1f", cnt1, ava);
        }
        free(arr);
        arr = NULL;
    }
    return 0;
}

2、【答案解析】

 暴力破解:遍历数组找出最小值即可 更优思想:采用二分查找,这个题主要分析三种旋转情况 [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.coloradmin.cn/o/792551.html

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

相关文章

Upload文件导入多条数据到输入框

需求场景&#xff1a;文本框内容支持批量导入(文件类型包括’.txt, .xls, .xlsx’)。使用AntD的Upload组件处理。 下面是Upload的配置&#xff08;伪代码&#xff09;&#xff0c;重点为beforeUpload中的逻辑 // Antd 中用到的Upload组件 import { UploadOutlined } from ant…

ADSCOPE加入中国互联网协会!

近日&#xff0c;经协会批准&#xff0c;ADSCOPE&#xff08;上海倍孜网络技术有限公司&#xff09;正式加入中国互联网协会&#xff0c;成为会员单位。 中国互联网协会隶属于中华人民共和国工业和信息化部&#xff0c;是由中国互联网行业及与互联网相关的企事业单位、社会组织…

网络编程--模拟HTTP服务器

下面是一个简单的例子&#xff0c;来模拟HTTP服务器 这里只是简单的按照 HTTP 协议来构造数据 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/wait.h> #include <string.h> #include <arpa/inet.h>//处理连…

牛客30道Java专项练习-错题-01

一、Java初始化过程&#xff1a; 初始化父类种的静态成员变量和静态代码块&#xff0c;顺序执行初始化子类种的静态成员变量和静态代码块&#xff0c;顺序执行初始化父类的普通成员变量和代码块&#xff0c;再执行父类的构造函数初始化子类的成员变量和代码块&#xff0c;在执…

2024考研408-计算机网络 第一章-计算机网络体系结构学习笔记.md

文章目录 前言一、计算机网络概述1.1、概念及功能1.1.1、计算机网络的概念1.1.2、计算机网络的功能功能1、数据通信功能2、资源共享功能3、分布式处理功能4、提高可靠性&#xff08;分布式处理引申功能&#xff09;功能5、负载均衡&#xff08;也是分布式处理引申功能&#xff…

Javascript Object学习1

JavaScript原生提供一个Object对象&#xff0c;O大写&#xff0c;所有其他对象都继承自这个对象&#xff1b; Object本身也是一个构造函数&#xff0c;可以直接通过它来生成新对象&#xff1b; 对象的初始化有两种方式&#xff0c;构造函数模式和字面量模式&#xff1b; 下面对…

Meta分析的选题与文献计量分析CiteSpace应用丨R语言Meta分析【数据清洗、精美作图、回归分析、诊断分析、不确定性及贝叶斯应用】

目录 ​专题一、Meta分析的选题与文献计量分析CiteSpace应用 专题二、Meta分析与R语言数据清洗及相关应用 专题三、R语言Meta分析与精美作图 专题四、R语言Meta回归分析 专题五、R语言Meta诊断分析与进阶 专题六、R语言Meta分析的不确定性及贝叶斯应用 专题七、深度拓展…

innovus修short脚本

innovus版脚本分享&#xff1a; deselectAll foreach short [dbGet [dbGet top.markers.subType Short] -p] { set box [dbGet $short.box] set layer [dbGet $short.layer.name] select_obj [dbGet [dbQuery -area $box -layer $layer -objectType wire].net.is CTS clock 0…

SpringBoot 集成 EasyExcel 3.x 优雅实现 Excel 导入导出

介绍 EasyExcel 是一个基于 Java 的、快速、简洁、解决大文件内存溢出的 Excel 处理工具。它能让你在不用考虑性能、内存的等因素的情况下&#xff0c;快速完成 Excel 的读、写等功能。 EasyExcel文档地址&#xff1a; https://easyexcel.opensource.alibaba.com/ 快速开始 …

Generative Diffusion Prior for Unified Image Restoration and Enhancement 论文阅读笔记

这是CVPR2023的一篇用diffusion先验做图像修复和图像增强的论文 之前有一篇工作做了diffusion先验&#xff08;Bahjat Kawar, Michael Elad, Stefano Ermon, and Jiaming Song, “Denoising diffusion restoration models,” arXiv preprint arXiv:2201.11793, 2022. 2, 4, 6,…

6. Spring Boot 的创建和使用

目录 1. 什么是 Spring Boot 2. Spring Boot 的优点 3. Spring Boot 项目的创建 3.1 使用 Idea 创建 3.2 网页版创建 4. 项目介绍和运行 4.1 运行项目 4.2 通过浏览器输出 5. 注意事项 1. 什么是 Spring Boot Spring 的诞生是为了简化 Java 程序的开发的&#xff0c…

100、用简洁的语言描述一下:TCP的三次握手和四次挥手(不需要长篇大论)

TCP的三次握手和四次挥手 TCP协议是7层网络协议中的传输层协议&#xff0c;负责数据的可靠传输。 1、三次握手 在建立TCP连接时&#xff0c;需要通过三次握手来建立&#xff0c;过程是: 客户端向服务端发送一个SYN服务端接收到SYN后&#xff0c;给客户端发送一个SYN_ACK客户…

leetcode 852. Peak Index in a Mountain Array(峰值索引)

一个数组保证是峰值数组&#xff08;存在一个值大于左边和右边部分数组&#xff09;&#xff0c;找出峰值的index。 要求时间复杂度在O(logn)。 思路&#xff1a; 时间复杂度为O(logn), 可以想到用binary search. 其实用O(n)的找最大值也能通过。 public int peakIndexInMou…

PysparkNote006---pycharm加载spark环境

pycharm配置pyspark环境&#xff0c;本地执行pyspark代码 spark安装、添加环境变量不提了 File-Settings-Project-Project Structure-add content root添加如下两个路径 D:\code\spark\python\lib\py4j-0.10.7-src.zipD:\code\spark\python\lib\pyspark.zip 2023-07-26 阴 于…

Python 基础总结

title: Python 基础总结 date: 2023-07-19 10:51:55 tags: Python categories:Python cover: https://cover.png feature: false 1. print() 函数 1.1 基础使用 # 输出数字 print(23) print(11.323)# 输出字符串 print(你好) print("你好")# 输出表达式 print(3 *…

C++-stack 和 queue

stack 和 queue介绍 两者分别是C当中的 栈和队列&#xff0c;只不过在C当中&#xff0c;这两者没有用传统的方式&#xff0c;比如顺序存储和链式存储来实现了&#xff0c;两者现在使用的是一种权限的方式来实现&#xff1b; 都是用容器适配器来实现&#xff0c;开发者考虑到&a…

PyToch 深度学习 || 3. 卷积神经网络 | 3.1 深度学习中的卷积操作

深度学习中的卷积操作 文章目录 深度学习中的卷积操作1. 卷积2. 一维卷积2.1 使用nn.functional库中conv1d2.2 使用nn库中的Conv1d 3. 二维卷积3.1 nn.functional.conv2d3.2 nn.Conv2d 1. 卷积 加权求和是一种非常重要的运算&#xff0c;可以整合局部数字特征进而是提取局部信…

Linux CentOS监控系统的运行情况工具 - top/htop/glances/sar/nmon

在CentOS系统中&#xff0c;您可以使用以下工具来监控系统的运行情况&#xff1a; 1. top&#xff1a; top 是一个命令行工具&#xff0c;用于实时监控系统的进程、CPU、内存和负载情况。您可以使用以下命令来启动 top&#xff1a; top 输出 2. htop&#xff1a; htop 是一…

WSL 2 环境配置

WSL 2 环境配置 wsl2是windows内置的linux子系统&#xff0c;安装步骤如下&#xff1a; Win10 版本号为 2004&#xff08;内部版本19041或更高&#xff09;即可&#xff0c;如果低于此版本可使用 Windows 10 易升工具手动升级。下载 Windows 10 易升工具&#xff1a; https:…

DAY52:动态规划(十七)子序列问题:最长递增子序列+最长连续递增序列+最长重复子数组

文章目录 300.最长递增子序列&#xff08;注意初始化和结果取值&#xff09;思路DP数组含义递推公式初始化最开始的写法debug测试&#xff1a;解答错误debug测试2&#xff1a;result初始值 修改完整版总结 674.最长连续递增序列思路1&#xff1a;滑动窗口思路2&#xff1a;动态…