编程练习(1)

目录

一.选择题

第一题:

第二题:

 第三题:

 第四题:

第五题:

​编辑

二.编程题

 第一题:

 第二题:

1.暴力方法: 

2.数组法:


一.选择题

第一题:

 解析:

首先在main函数中定义了一个新的局部变量xy,分别赋值为3和8。然后调用了swap()函数,该函数通过交换两个全局变量xy的值来实现交换。但是,在swap()函数中,交换的是全局变量xy的值,而不是main函数中的局部变量xy。因此,在swap()函数执行完毕后,全局变量xy的值仍然保持原来的值,即5和7。最后,在main()函数中输出全局变量xy的值,所以结果是3和8。答案选择C

第二题:

答案选择B

 第三题:

在C语言中,typedef是用于给复杂声明定义别名的关键字。它可以用来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。该题给int*类型定义了一个别名叫做 int_ptr 因此本题答案为:C,D

 第四题:

C语言中三目运算(M)?:(a++):(b--)中与(M!=0)?:(a++):(b--)等价,因此答案为C

第五题:

输入函数中int类型变量b要用&符号,而数组名本身是数组首地址不需要用&符号,因此本题答案为B

二.编程题

 第一题:

算法题:

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param n int整型 最大位数
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 */
#include <stdio.h>
    static int arr[100000];

int* printNumbers(int n, int* returnSize) 
{
	
	int j = 0;
	int i = 1;

	if (n > 0 && n <= 5)
	{
		if (n == 1)
		{
			for (i = 1; i <= 9; i++)
			{
				arr[j++] = i;
			}
		}

		if (n == 2)
		{
			for (i = 1; i <= 99; i++)
			{
				arr[j++] = i;
			}
		}

		if (n == 3)
		{
			for (i = 1; i <= 999; i++)
			{
				arr[j++] = i;
			}
		}

		if (n == 4)
		{
			for (i = 1; i <= 9999; i++)
			{
				arr[j++] = i;
			}
		}

		if (n == 5)
		{
			for (i = 1; i <= 99999; i++)
			{
				arr[j++] = i;
			}
		}

	}
	*returnSize = i - 1;//得到数组最终元素个数
	return arr;//返回数组首元素地址
}

 第二题:

一道华为机试题:

1.暴力方法: 

//暴力求解法
#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int year;
	int month;
	int day;
	scanf("%d %d %d", &year, &month, &day);
	int sum = 0;
	//1 3 5 7 8 10 12 ——31天
	//4 6 9 11        ——30天
	//闰年2月         ——29天
	//平年2月         ——28天
	//如果year是闰年 2000 11 15
	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
	{
		switch (month)
		{
		case 1:
			sum = day;
			break;
		case 2:
			sum = 31 + day;
			break;
		case 3:
			sum = 31 + 29 + day;
			break;
		case 4:
			sum = 31 + 29 + 31 + day;
			break;
		case 5:
			sum = 31 + 29 + 31 + 30 + day;
			break;
		case 6:
			sum = 31 + 29 + 31 + 30 + 31 + day;
			break;
		case 7:
			sum = 31 + 29 + 31 + 30 + 31 + 30 + day;
			break;
		case 8:
			sum = 31 + 29 + 31 + 30 + 31 + 30 + 31 + day;
			break;
		case 9:
			sum = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + day;
			break;
		case 10:
			sum = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
			break;
		case 11:
			sum = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
			break;
		case 12:
			sum = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
			break;
		}
	}
	else
	{
		switch (month)
		{
		case 1:
			sum = day;
			break;
		case 2:
			sum = 31 + day;
			break;
		case 3:
			sum = 31 + 28 + day;
			break;
		case 4:
			sum = 31 + 28 + 31 + day;
			break;
		case 5:
			sum = 31 + 28 + 31 + 30 + day;
			break;
		case 6:
			sum = 31 + 28 + 31 + 30 + 31 + day;
			break;
		case 7:
			sum = 31 + 28 + 31 + 30 + 31 + 30 + day;
			break;
		case 8:
			sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day;
			break;
		case 9:
			sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day;
			break;
		case 10:
			sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
			break;
		case 11:
			sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
			break;
		case 12:
			sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
			break;
		}
	}
	printf("%d", sum);
	return 0;
}

2.数组法:

int main()
{
	int year;
	int month;
	int day;
	scanf("%d %d %d", &year, &month, &day);
	int sum = day;

//闰年数组:
	int leap_year[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
	                 //   1  2  3  4  5  6  7  8  9  10  11 12

//平年数组:
	int common_year[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
	                //       1  2  3  4  5  6  7  8  9 10 11 12
//闰年情况:
	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
	{
		if (month == 1)
		{
			sum = day;
		}
		else
		{
			int j = 0;

			for (int i = 1; i < month; i++)
			{
				sum = sum + leap_year[j++];
			}
		}

	}
//平年情况:
	else
	{
		if (month == 1)
		{
			sum = day;
		}
		else
		{
			int j = 0;

			for (int i = 1; i < month; i++)
			{
				sum = sum + common_year[j++];
			}
		}

	}
	printf("%d", sum);
	return 0;
}

感谢您的支持。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

搭建Excel服务器

1、下载Excel服务器 下载地址 2、解压文件 3、打开服务器 4、服务器运行信息 5、连接测试 打开客户端 6、登录到服务器 默认账号 密码 admin 3 修改文件保存路径(服务器端点击配置) 7、客户端整体界面 8、配置权限 9、设计模板 10、其他用户登录就可以填写信息 11、用户&#…

SpingBoot-Vue前后端——实现CRUD

目录​​​​​​​ 一、实例需求 ⚽ 二、代码实现 &#x1f3cc; 数据库 &#x1f440; 后端实现 &#x1f4eb; 前端实现 &#x1f331; 三、源码下载 &#x1f44b; 一、实例需求 ⚽ 实现一个简单的CRUD&#xff0c;包含前后端交互。 二、代码实现 &#x1f3cc; 数…

java:JDBC

文章目录 什么是JDBCJDBC使用步骤详解各个对象DriverManagerConnectionStatementResultSetPreparedStatement JDBC控制事务操作步骤示例 什么是JDBC 我们知道&#xff0c;数据库有很多种&#xff0c;比如 mysql&#xff0c;Oracle&#xff0c;DB2等等&#xff0c;如果每一种数…

SpringCloud初识

微服务架构4个核心问题&#xff1a; 这四个问题围绕这我们去学的一些东西&#xff0c;是重点!!! 1.服务很多&#xff0c;客户端该如何访问&#xff1f; 2.这么多服务&#xff0c;服务之间该如何通信&#xff1f; 3.这么多服务&#xff0c;该如何治理&#xff1f; 4.服务挂了…

光致发光荧光量子产率测试系统

荧光量子产率&#xff0c;是单位时间&#xff08;s&#xff09;内&#xff0c;发射荧光的光子数与吸收激发光的光子数之间的比值&#xff0c;符号φf。它表示物质将吸收的光能转变成荧光的能力&#xff0c;是荧光物质一个最基本而重要的参数。φf值的大小与物质的化学结构紧密相…

flex布局 vs grid布局

问题&#xff1a;一行最多显示3个item&#xff0c;实现最后一行居左 <div class"chart-wrap"><div class"chart-item">图</div><div class"chart-item">图</div><div class"chart-item">图</…

手机商城网站的分析与设计(论文+源码)_kaic

目录 摘 要 1 1 绪论 2 1.1选题背景意义 2 1.2国内外研究现状 2 1.2.1国内研究现状 2 1.2.2国外研究现状 3 1.3研究内容 3 2 网上手机商城网站相关技术 4 2.1.NET框架 4 2.2Access数据库 4 2.3 JavaScript技术 4 3网上手机商城网站分析与设…

C++之std::list<string>::iterator迭代器应用实例(一百七十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Azure创建第一个虚拟机

首先&#xff0c;登录到 Azure 门户 (https://portal.azure.com/)。在 Azure 门户右上角&#xff0c;点击“虚拟机”按钮&#xff0c;并点击创建&#xff0c;创建Azure虚拟机。 在虚拟机创建页面中&#xff0c;选择所需的基本配置&#xff0c;包括虚拟机名称、操作系统类型和版…

git切换分支代码到某一次commit提交

git切换分支代码到某一次commit提交 当前分支切换到某一次提交&#xff1a; git chekcout <commit_id> 切换到某一次commit提交&#xff0c;并以那次commit提交新建一个分支&#xff1a; git branch <new-branch-name> <commit_id> 放弃所有代码文件修改&…

QT的界面切换

QT的界面切换 步骤一: 创建一个新的 ui 界面

基于Java+SpringMVC+Mybaties+layui+Vue+elememt基于协同过滤的电影推荐系统的设计与实现

一.项目介绍 基于协调过滤的电影推荐系统的设计与实现 本系统分为普通用户以及管理员两类 普通用户&#xff1a; 登录系统查看最新推荐电影、收藏、评论、查看电影信息、 对电影进行评分、浏览电影资讯信息、查看个人信息以及浏览收藏…

《游戏编程模式》学习笔记(四) 观察者模式 Observer Pattern

定义 观察者模式定义了对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 这是定义&#xff0c;看不懂就看不懂吧&#xff0c;我接下来举个例子慢慢说 为什么我们需要观察者模式 我们看一个很简…

Spyglass 脚本

Spyglass小白可以使用Gui界面进行debug Spyglass检查(一)作为IC设计人员&#xff0c;熟练掌握数字前端语法检查工具Spyglass的重要性不言而喻&#xff0c;本文讲解景芯SoChttps://mp.weixin.qq.com/s/fp07o-AvaQvLT79Di0Tb7A 熟悉电路和软件之后可以使用脚本完成整个流程 sp…

IDEA全局设置MyBatis中写SQL语句提示

第一步&#xff1a;把这两个设置改成MySQL即可&#xff1a; 第二步&#xff1a;找到设置>编辑器>语言注入>店家加号&#xff0c;选择MySQL

Flink CDC系列之:TiDB CDC 导入 Elasticsearch

Flink CDC系列之&#xff1a;TiDB CDC 导入 Elasticsearch 一、通过docker 来启动 TiDB 集群二、下载 Flink 和所需要的依赖包三、在TiDB数据库中创建表和准备数据四、启动Flink 集群&#xff0c;再启动 SQL CLI五、在 Flink SQL CLI 中使用 Flink DDL 创建表六、Kibana查看Ela…

Matplotlib绘图知识小结--Python数据分析学习

一、Pyplot子库绘制2D图表 1、Matplotlib Pyplot Pyplot 是 Matplotlib 的子库&#xff0c;提供了和 MATLAB 类似的绘图 API。 Pyplot 是常用的绘图模块&#xff0c;能很方便让用户绘制 2D 图表。 Pyplot 包含一系列绘图函数的相关函数&#xff0c;每个函数会对当前的图像进行…

经典人体模型SMPL介绍(一)

SMPL是马普所提出的经典人体模型&#xff0c;目前已成为姿态估计、人体重建等领域必不可少的基础先验。SMPL基于蒙皮和BlendShape实现&#xff0c;从数千个三维人体扫描结果得来&#xff0c;后通过PCA统计学习得来。 论文&#xff1a;SMPL: A Skinned Multi-Person Linear Mode…

OpenStack监控工具

OpenStack是一个开源的云计算管理平台项目&#xff0c;是一系列软件开源项目的组合。由NASA和Rackspace合作研发并发起&#xff0c;以Apache许可证&#xff08;Apache软件基金会发布的一个自由软件许可证&#xff09;授权。 OpenStack为私有云和公有云提供可扩展的弹性的云计算…

二.net core 自动化发布到docker (Jenkins安装之后向导)

目录 ​​​​​​​​​​​​​​ 参考资料&#xff1a;https://www.jenkins.io/doc/book/installing/docker/#setup-wizard Post-installation setup wizard.(安装后安装向导) 基于上一篇文章安装&#xff0c;在安装并运行Jenkins&#xff08;不包括使用Jenkins Opera…
最新文章