编程题收集

news/2025/2/23 6:50:48/

1、编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。

参考答案:
#include<iostream> using namespace std;
int main(){int year;cin >> year;# yes 表示是闰年,no 表示是平年if year % 400 == 0:cout << "yes";else if year % 4 == 0 and year % 100 != 0:cout << "yes";else:cout << "no";return 0;
}

2、使用shell生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了,猜小了或猜大了,直至用户猜对脚本结束。

#!/bin/bash
num=$((RANDOM % 100 + 1))  # 生成 1~100 之间的随机数
while true; doread -p "Guess a number between 1 and 100: " guessif [[ $guess -eq $num ]]; thenecho "Congratulations! You guessed the number!"         breakelif [[ $guess -lt $num ]]; thenecho "Too low. Try again."     elseecho "Too high. Try again."     fi
done

3、有一个整数数组,请你根据快速排序的思路,找出数组中第 k 大的数。
给定一个整数数组 a ,同时给定它的大小n和要找的 k ,请返回第 k 大的数(包括重复的元素,不用去重),保证答案存在。

private int fast(int[] a, int low, int high) {int key = a[low];while (low != high) {while (a[high] >= key && high > low) {high--;}a[low] = a[high];while (a[low] < key && high > low) {low++;}a[high] = a[low];}a[low] = key;return low;
}

4、猴子吃桃问题:猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个; 第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共吃了多少个桃子?

#include <stdio.h> 
int main(int argc, char *argv[])
{
int day = 9;
int x1, x2; /* x1表示前一天,x2表示后一天 */
x2 = 1; /* 第10天,剩下一个 */
for(;day>=1;day--) /* 从第9天开始递推到第1天 */
{
/* x2表示后一天的 */
x1 = (x2 + 1) * 2;
x2 = x1;
}
printf("\n\n猴子第一天共计摘下:%d个桃子\n\n", x1);
return 0;
}

5、斐波那契数列怎么使用递归算法实现

def fb(n):if n==1:return 1if n==2:return 1else:return fb(n-1)+fb(n-2)

6、python实现:生成一个1-100的列表

print([i for i in range(1,101)])

7、python实现:打印99乘法表

for i in range(1,10):for j in range(1,10): if i>=j:print("{}*{}={}".format(i,j,i*j),end =" ") if i<j:print('\n')

8、要求:编写一个函数,输入一个字符串列表,返回将所有字符串元素连接起来后的结果。
示例:
输入:['hello', 'world'] 输出:'helloworld'

def func(str_list): return ''.join(str_list)

9、python实现:设计一个函数返回传入的列表中最大和第二大的元素的值。

def max2(x):m1 = max(x)#m1是最大元素x2 = x.copy()#复制一个列表,同时不破坏原来的列表x2.remove(m1)#把列表里最大的元素删除m2 = max(x2)#再次取列表里最大的元素,这时取到的就是列表里第二大的元素return m2,m1  #m1是第二大的值,m2是最大print(max2([2,33,4,5,5,6,77,8,9]))

10、使用python库函数快速实现数组排序

使用python中的sort函数,例如
a = [3,1,4,6] a.sort()
print(a)
输出结果为[1,3,4,6]

11、写一个 shell脚本以统计一个文本文件 nowcoder.txt 中每个单词出现的个数。为了简单起见,你可以假设:
nowcoder.txt只包括小写字母和空格。
每个单词只由小写字母组成。
单词间由一个或多个空格字符分隔。

cat test.sh | tr -s ' ' '\n' | sort | uniq -c | sort | awk '{print $2" "$1}'

12、请用shell脚本编写一个猜数字大小的游戏

 #!/bin/bash# 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了,
# 猜小了或猜大了,直至用户猜对脚本结束。# RANDOM 为系统自带的系统变量,值为 0‐32767的随机数
# 使用取余算法将随机数变为 1‐100 的随机数
num=$[RANDOM%100+1]
echo "$num"# 使用 read 提示用户猜数字
# 使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于),
# ‐lt(小于),‐le(小于等于)
while  :
doread -p "计算机生成了一个 1‐100 的随机数,你猜: " caiif [ $cai -eq $num ]thenecho "恭喜,猜对了"exitelif [ $cai -gt $num ]thenecho "Oops,猜大了"elseecho "Oops,猜小了"fi
done

 13、编写批量修改扩展名脚本

#!/bin/bash# 编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件 
# 执行脚本时,需要给脚本添加位置参数
# 脚本名  txt  doc(可以将 txt 的扩展名修改为 doc)
# 脚本名  doc  jpg(可以将 doc 的扩展名修改为 jpg)for i in `ls *.$1`
domv $i ${i%.*}.$2
done

14、查看有多少远程的 IP 在连接本机

#!/bin/bash# 查看有多少远程的 IP 在连接本机(不管是通过 ssh 还是 web 还是 ftp 都统计) # 使用 netstat ‐atn 可以查看本机所有连接的状态,‐a 查看所有,
# -t仅显示 tcp 连接的信息,‐n 数字格式显示
# Local Address(第四列是本机的 IP 和端口信息)
# Foreign Address(第五列是远程主机的 IP 和端口信息)
# 使用 awk 命令仅显示第 5 列数据,再显示第 1 列 IP 地址的信息
# sort 可以按数字大小排序,最后使用 uniq 将多余重复的删除,并统计重复的次数
netstat -atn  |  awk  '{print $5}'  | awk  '{print $1}' | sort -nr  |  uniq -c

15、编写shell脚本,计算nginx accesslog中请求量最多的前10个url,并按数量多少从大到小排序

cat /var/log/nginx/access.log |cut -d " " -f 1 |sort |uniq -c |sort -nr |head -n 10

附:面试题https://blog.csdn.net/weixin_51808099/article/details/125979247?ops_request_misc=&request_id=&biz_id=102&utm_term=%E7%94%A8shell%E5%A4%84%E7%90%86%E4%B8%80%E4%B8%8B%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9,%E5%B0%86%E5%9F%9F%E5%90%8D%E5%8F%96%E5%87%BA%E5%B9%B6%E8%BF%9B%E8%A1%8C%E8%AE%A1%E6%95%B0%E6%8E%92%E6%95%B0,%E5%A6%82%E5%A4%84&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-125979247.nonecase&spm=1018.2226.3001.4187

附:shell脚本

https://blog.csdn.net/yugemengjing/article/details/82469785?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167653748416800211526234%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167653748416800211526234&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-82469785-null-null.142^v73^pc_new_rank,201^v4^add_ask,239^v1^control&utm_term=shell%E8%84%9A%E6%9C%AC%E7%BC%96%E7%A8%8B100%E4%BE%8B&spm=1018.2226.3001.4187 


http://www.ppmy.cn/news/25499.html

相关文章

【C语言】程序环境和预处理|预处理详解|定义宏(下)

主页&#xff1a;114514的代码大冒 qq:2188956112&#xff08;欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ &#xff09; Gitee&#xff1a;庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 文章目录 目录 文章目录 前言 2.5带副作用的宏参数 2.6宏和函数的对比 3#undef ​编辑 4 命令行定义…

2022——寒假总结

文章目录背景报名摸索结果总结背景 大一上学期&#xff0c;刚上大学没有尽快适应&#xff0c;什么都没有学到。 因为疫情&#xff0c;所以平时的测试以及期末都是线上进行的&#xff0c;就没怎么认真学&#xff0c;网课直接划水。 我的生活与学习很不平衡&#xff0c;还热衷于参…

总结高频率Vue面试题

目录 什么是三次握手&#xff1f; 什么是四次挥手&#xff1f;&#xff08;close触发&#xff09; 什么是VUEX&#xff1f; 什么是同源----跨域&#xff1f; 什么是Promise&#xff1f; 什么是fexl布局&#xff1f; 数据类型 什么是深浅拷贝&#xff1f; 什么是懒加载&…

【云原生】centos7搭建安装k8s集群 v1.25版本详细教程实战

文章目录前言一. 实验环境二. k8s 的介绍三 . k8s的安装3.1 搭建实验环境3.1.1 硬件层面的要求3.1.2 软件层面环境配置3.2 docker的安装3.2.1 搭建docker3.2.2 部署 cri-dockerd3.3 部署k8s3.3.1 配置添加阿里云的yum源3.3.2 安装kubeadm kubelet kubectl3.3.3 k8s-master节点初…

快速实现Modbus TCP转BACnet IP协议的方案

一、需求背景 BACnet是用于智能楼宇自控系统的主流通信协议&#xff0c;可用在暖通空调系统&#xff08;HVAC&#xff0c;包括暖气、通风、空气调节&#xff09;&#xff0c;也可以用在照明控制、门禁系统、火警侦测系统及其相关的设备。楼宇中的受控设备都通过BACnet协议连接到…

四【Spring框架】

目录一 Spring概述二 .Spring 的体系结构三 Spring的开发环境3.1 配置pom.xml文件四 项目案例&#xff1a;4.1 创建实体类4.2 在pom.xml中引入依赖4.3 配置Spring-config.xml文件4.4 Test✅作者简介&#xff1a;Java-小白后端开发者 &#x1f96d;公认外号&#xff1a;球场上的…

Linux逻辑卷管理器(PV、VG、LV、PE)

目录 PV阶段 VG阶段 LV阶段 文件系统阶段 逆向操作&#xff08;删除LVM&#xff09; 逻辑卷管理器&#xff08;Logical Volume Manager&#xff09;&#xff0c;简称LVM LVM的做法是将几个物理的分区&#xff08;或磁盘&#xff09;通过软件组合成为一块看起来时独立的大…

c语言操作文件

1、文件缓冲区 文件缓冲区的目的&#xff1a;提高访问效率 提高磁盘使用寿命 刷新就是将当前缓冲区数据全部提交。 不刷新时&#xff0c;程序在崩溃时缓冲区内容无法输出&#xff08;有些情形会带来错误&#xff09; 文件缓冲区的四种刷新方式 行刷新&#xff08;遇到换行符…