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