C语言暑假刷题冲刺篇——day3

news2024/11/23 22:02:46

目录

一、选择题

二、编程题


  • 🎈个人主页:库库的里昂
  •  🎐CSDN新晋作者
  •  🎉欢迎 👍点赞✍评论⭐收藏
  • ✨收录专栏:C语言每日一练
  • ✨其他专栏:代码小游戏C语言初阶
  • 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗

【前言】

在大家学完初阶C语言后,有很多知识点是比较模糊的,我们应该多刷题,这样才能巩固我们所学知识。所以我开了一个新专栏C语言每日一刷,每一篇都包含5道选择题,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);

【答案】A

【解析】

  1. 函数的原型是: int fun(char b[10], int&a);
  2. 变量c,d的定义是: char c[1];int d;

D函数第一个形参 char b[10],需要传入的是数组的首地址。数组char c[10] 的数组名 c 是数组的首元素地址,可以传入 C。
@函数第二个形参int &a为引用类型作为形参,d 是 整型变量,可以直接传入,因此传给 fun 函数的实参是 d。最终,fun 函数调用的形式是 f(c,d)。因此选A。

补充:

如果函数原型为int fun(char b[10],int*a
即此时第二个形参为指针类型,则需传入变量d的地址,此处就应该选B

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掌握的是否清楚

 1.const如果在指针变量的“ * ”的左边(即 const int * a 和 int const * a的意义是相同的,作用是等价的)

表达的意思是:对指针变量a 解引用的值是保持不变的

只有a里面存放的地址改变了,解引用出来的值才会变化

  2. const如果在指针变量的“ * ”的右边【即 int * const a】 表达的意思是: a里面存放的地址是保持不变

只有主动对 *a 赋值才能改变这个值,但a里面的地址是一直保持不

对于A和B:const在“ * ”的左面,则 const 就是用来修饰指针所指向的变量,即指针指向为常量,则此时的*c和*d不变

对于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

【解析】

注意:这里出现转义字符 \t ,而 \t 代表为水平制表符,简单来说就是在键盘上按了TAB的效果,也可以理解为缩进符

全局变量创建在静态区中,作用域为整个程序生命周期与主函数相同,只有程序结束,它才会销毁

全局变量 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-=a*a中*的优先级最高,其次是-=,+的优先级最低,因此先求a*a,所以原表达式可写成a+a-=9,再算a-=9,原表达式可写为a=a-9=-6,最后算a+a,因为此时a=-6,所以a+a=-6+(-6)=-12,故选择D选项。

拓展:操作符优先级图表

C语言运算符优先级_word文档在线阅读与下载_免费文档

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

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

【答案】D

【解析】

只有条件为真时才进行循环, ABC 中 1 为真, D 中 0 为假,故选D。

二、编程题

1.OJ链接 【牛客网题号: HJ97 记负均正】【难度:简单】

首先输入要输入的整数个数 n ,然后输入 n 个整数。输出为 n 个整数中负数的个数,和所有正整数的平均值,
结果保留一位小数。
注意: 0 即不是正整数,也不是负数,不计入计算; 本题有多组输入用例。
输入描述:首先输入一个正整数 n ,然后输入 n 个整数。
输出描述:输出负数的个数,和所有正整数的平均值。
 

#include<stdio.h>                                              
int main() {
    int n = 0;
    while (~scanf("%d ", &n))
    {
        int arr[2001] = { 0 };
        int count1 = 0;
        int count2 = 0;
        int sum = 0;
        float ave = 0;
        int i = 0;
        for (i = 0; i < n; i++)
        {
            scanf("%d ", &arr[i]);
            if (arr[i] < 0)
            {
                count1++;
            }
            else if (arr[i] > 0)
            {
                count2++;
                sum += arr[i];
            }
        }
        printf("%d ", count1);
         if (count2)
        {
            ave = sum / count2;
            printf("%.1lf\n", ave);
        }
        else
        {
            printf("0.0\n");
        }
    }
    return 0;
}

2.OJ链接 【牛客网题号:JZ11 旋转数组的最小数字】【难度:简单】

有一个长度为 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

int minNumberInRotateArray(int* nums, int numsLen) {
	int left = 0;
	int right = numsLen - 1;
	while (left < right)
	{
		int mid = (left + right) / 2;
		if (nums[mid] < nums[right])
			right = mid;
		else if (nums[mid] > nums[right])
			left = mid + 1;
		else
			right--;
	}
	return nums[right];
}

好了,今天的每日一刷就到这里结束了,感谢大家的观看!

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

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

相关文章

Spring5学习笔记—AOP编程

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Spring专栏 ✨特色专栏&#xff1a; M…

什么是服务网格,为什么 Kubernetes 需要它?

​企业现在热衷于采用微服务架构&#xff0c;因为它具有敏捷性和灵活性。容器和作为首选的容器编排工具—Kubernetes的兴起使得从单体架构向微服务架构的转变变得更加容易。然而&#xff0c;在大规模使用微服务架构时出现了一系列新的挑战&#xff1a; DevOps和架构师很难管理…

SpringBoot的日志信息及Lombok的常用注解

文章目录 一. 日志的介绍1. 什么是日志2. 日志的作用 二. 日志的使用1. 日志格式说明2. 自定义日志的输出3. 日志级别4. 日志级别的配置5. 日志持久化6. 更简单的输出日志-Lomok7. Lombok框架实现原理以及其他常见注解 一. 日志的介绍 1. 什么是日志 日志是我们程序重要组成部…

UE4/5数字人MetaHuman的控制绑定资产使用

开始操作 首先我们创建一个关卡序列&#xff1a; 打开后将我们的数字人放进去【右键&#xff0c;第一个添加进去】&#xff1a; 我们会自动进入动画模式&#xff0c;没有的话&#xff0c;就自己进入一下&#xff0c; 然后我们去寻找我们的控制绑定资产。 找到控制绑定资产 …

pdf文件如何编辑修改?学会这几种简单编辑方法

pdf文件如何编辑修改&#xff1f;在日常工作和学习中&#xff0c;我们经常需要编辑和修改PDF文件。无论是工作中的合同、报告或学习中的笔记、课件&#xff0c;PDF文件都是我们常用的文档格式。然而&#xff0c;PDF文件的特性使得它们很难被直接编辑。那么&#xff0c;如何编辑…

移远通信推出一站式Matter解决方案,构建智能家居开放新生态

近日&#xff0c;全球领先的S物联网整体解决方案供应商移远通信宣布&#xff0c;正式推出全新Matter解决方案&#xff0c;从模组、APP、平台、认证、生产五大层面为客户提供一站式服务&#xff0c;赋能智能家居行业加快融合发展。 过去十年&#xff0c;得益于物联网生态的发展&…

Hlang--用Python写个解析器

文章目录 前言语法树节点语法描述异常处理InvalidSyntaxError错误内容定位解析实现bin_op函数factory函数模拟流程总结前言 先前,我们实现了一个基本的词法分析器。那么现在的话,我们要在这个基础上面,实现一个解析器,那么实现效果的话,是这样的: 注意此时此刻,我们还…

一文教你快速 Cloudreve搭建云盘系统,实现随时访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了&#xff0c;各互联网大厂也纷纷加入战局&#…

FLatten Transformer

FLatten Transformer: Vision Transformer using Focused Linear Attention ICCV 2023 聚焦式线性注意力模块 关于Transformer 在Transformer模型应用于视觉领域的过程中&#xff0c;降低自注意力的计算复杂度是一个重要的研究方向。线性注意力通过两个独立的映射函数来近似S…

springBoot 配置文件 spring.resources.add-mappings 参数的作用

在Spring Boot应用中&#xff0c;spring.resources.add-mappings参数用于控制是否将特定路径的资源文件添加到URL路径映射中。 默认情况下&#xff0c;该参数的值为true&#xff0c;即会自动将静态资源&#xff08;例如CSS、JavaScript、图片等&#xff09;的URL路径添加到Spr…

Mybatis Plus中使用LambdaQueryWrapper进行分页以及模糊查询对比传统XML方式进行分页

传统的XML分页以及模糊查询操作 传统的XML方式只能使用limit以及offset进行分页&#xff0c;通过判断name和bindState是否为空&#xff0c;不为空则拼接条件。 List<SanitationCompanyStaff> getSanitationStaffInfo(Param("name") String name,Param("bi…

〔013〕Stable Diffusion 之 图片自动评分和不健康内容过滤器 篇

✨ 目录 &#x1f388; 下载咖啡美学评价插件&#x1f388; 咖啡美学评价使用&#x1f388; 不健康内容过滤器插件 &#x1f388; 下载咖啡美学评价插件 想让系统帮你的图片作品打分评价&#xff0c;可以下载咖啡美学自动评价插件插件地址&#xff1a;https://github.com/p1at…

记录--webpack和vite原理

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 前言 每次用vite创建项目秒建好&#xff0c;前几天用vue-cli创建了一个项目&#xff0c;足足等了我一分钟&#xff0c;那为什么用 vite 比 webpack 要快呢&#xff0c;这篇文章带你梳理清楚它们的原理…

Python“牵手”1688商品评论数据采集方法,1688API申请指南

1688平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范&#xff0c;1688API接口是指通过编程的方式&#xff0c;让开发者能够通过HTTP协议直接访问1688平台的数据&#xff0c;包括商品信息、店铺信息、物流信息等&#xff0c;从而实现1688平台…

【校招VIP】java语言类和对象之map、set集合

考点介绍&#xff1a; map、set集合相关内容是校招面试的高频考点之一。 map和set是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索效率与其具体的实例化子类有关系。 『java语言类和对象之map、set集合』相关题目及解析内容可点击文章末尾链接查看&#xff01; …

dm达梦数据库 创建 YEARWEEK 外部函数

这里写目录标题 数据库环境创建方式一、C 外部函数二、JAVA 外部函数 数据库环境 类型版本官网下载地址基础环境Windows 11–Dm8dm8_20230418_x86_win_64.zip链接: 官网 创建方式 一、C 外部函数 &#xff08;1&#xff09;C 外部函数是使用 C、C 语言编写&#xff0c;在数据…

PostgreSQL-UDF用户自定义函数-扩展插件

目录 PostgreSQL-UDF用户自定义函数-扩展插件零、前置条件一、创建 .c 和 .sql 文件创建.c文件创建.sql文件 二、创建 .control 和 Makefile 文件创建 .control 文件创建 Makefile 文件 三、编译 & 链接四、psql&#xff08;或者其他PG backend&#xff09;中创建扩展 Post…

illustrator-形状模式-路径查找器-路径偏移-扩展

文章目录 1.形状模式1.1.联集&#xff1a;形状相加1.2.减去顶层&#xff1a;形状减去共同部分1.3.交集&#xff1a;相同部分1.4.差集&#xff1a;形状不同部分 2.路径查找器2.1.分割2.2.修边2.3.合并2.4.裁剪2.5.轮廓2.6.减去后方对象 3.路径偏移4.扩展外观 打开路径查找器快捷…

吃雪糕也能涨知识了!猿辅导携手中街1946推出“冷知识冰棍”

为了给孩子们的暑假学习加点“料”&#xff0c;猿辅导近日脑洞大开&#xff0c;和中街1946携手推出了“冷知识冰棍”&#xff0c;以数学、英语、语文、科学4个科目为外包装&#xff0c;分别对应草莓山楂、青提菠萝、茉莉蓝莓和蜜桃乌龙等4种口味&#xff0c;为孩子们开启了夏日…

在 SwiftUI 中创建一个环形 Slider

文章目录 前言初始化环形轮廓将进度值和拇指位置绑定添加触摸手势为不同的坐标值设置滑块位置总结 前言 Slider 控件是一种允许用户从一系列值中选择一个值的 UI 控件。在 SwiftUI 中&#xff0c;它通常呈现为直线上的拇指选择器。有时将这种类型的选择器呈现为一个圆圈&#…