OD机试题练习(一)

1. 字符串最后一个单词的长度

描述:计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:输出一个整数,表示输入字符串最后一个单词的长度。

示例1:
输入:hello nowcoder
输出:8
参考代码:

import sys
for line in sys.stdin:
	a = line.split()
	print(len(a[-1]))

2. 计算某字符出现次数

描述: 写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
输入描述:第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。
输出描述:输出输入字符串中含有该字符的个数。(不区分大小写字母)
示例:
输入:ABCabc
A
输出:2
参考代码:

import sys
tmp_list = []
for line in sys.stdin:
	tmp_list.append(line)
tmp_str = tmp_list[0]
tmp_flag = tmp_list[1]
result = tmp_str.upper().count(tmp_flag.upper()[0])
print(result)

3. 明明的随机数

描述:明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。
输入描述:第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。
输出描述:输出多行,表示输入数据处理后的结果
示例:
输入:
3
2
2
1
输出:
1
2
参考代码:

import sys
input_list = []
for line in sys.stdin:
	a = line.split()[0]
	input_list.append(int(a))

count = input_list[0]
num_list = input_list[1:]
num_set = set(num_list)
num_list = list(num_set)
num_list.sort()

for _ in num_list:
	print(_)

4. 字符串分隔

描述:输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:连续输入字符串(每个字符串长度小于等于100)
输出描述:依次输出所有分割后的长度为8的新字符串
示例:
输入:abc
输出:abc00000
参考代码:

import sys
tmp_list = []
for line in sys.stdin:
	a = line.split()[0]
	tmp_list.append(a)
def fun(tmp_str):
	count = len(tmp_str) // 8
	mod = len(tmp_str) % 8

	for _ in range(count):
		print(tmp_str[ _ * 8: _ * 8 + 8])

	if mod == 0:
		return 
	zero_str = '0' * (8 - mod)
	print(tmp_str[count * 8:] + zero_str)

for _ in tmp_list:
	fun(_)

5. 进制转换

描述:写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
输入描述:输入一个十六进制的数值字符串。
输出描述:输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例:
输入:0xAA
输出:170
参考代码:

import sys
tmp_list = []
for line in sys.stdin:
	a = line.split()[0]
	tmp_list.append(a)
for _ in tmp_list:
	print(int(_,16))

6. 质数因子

描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
输入描述: 输入一个整数
输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例:
输入:180
输出:2 2 3 3 5
参考代码:

import sys
tmp = None
for line in sys.stdin:
	a = line.split()[0]
	tmp = a
def prime_factors(n):

	factors = []
	i = 2
	while i * i <= n:
		if n % i:
			i += 1
		else:
			n //= i
			factors.append(i)
	if n > 1:
		factors.append(n)
	return factors
result = prime_factors(int(tmp))
for _ in result:
	print(_,end=' ')

7.取近似值

描述:写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。
输入描述:输入一个正浮点数值
输出描述:输出该数值的近似整数值
示例:
输入:5.5
输出:6
说明:0.5>=0.5,所以5.5需要向上取整为6
参考代码:

import sys
tmp1 = None
tmp2 = None
for line in sys.stdin:
	a = line.split()[0]
	tmp1,tmp2 = a.split('.')
	tmp1 = int(tmp1)
	tmp2 = int(tmp2[0])
	if tmp2 >= 5:
		print(tmp1 + 1)
	else:
		print(tmp1)
  • 22
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为OD试题是一个测试C语言编程能力的考题。考试内容通常包括C语言的基本语法、数据类型、运算符、流程控制、函数、数组、指针等知识点。下面是一个用300字回答华为OD试题的例子: 华为OD试题是华为公司的一种面试方式,用来测试应聘者的C语言编程能力。这个试题主要考察了C语言的基本语法、数据类型、运算符、流程控制、函数、数组、指针等知识点。平常我们在大学学习C语言的时候会接触到这些知识点,只要复习一下就能应对这样的考试。 回答这个试题需要我们对C语言的各个知识点都有一定的了解。比如,我们需要知道C语言中的基本数据类型有哪些,如int、float、char等,以及它们的取值范围和计算规则;我们还需要了解C语言中的运算符,如算术运算符、关系运算符、逻辑运算符等,以及它们的优先级和结合性;我们还需要掌握C语言的流程控制结构,如if语句、for循环、while循环等,以及它们的用法和注意点。 在试题中,可能会出现一些需要编写C语言程序的题目,这就需要我们熟悉C语言的编程语法和语句。比如,题目可能会要求我们编写一个函数,完成某个功能;或者题目可能会给出一段代码,让我们分析其输出结果。这些编程题目都是为了检验我们对C语言的掌握程度和编程能力。 总而言之,华为OD试题是一种考察C语言编程能力的方式。只要我们对C语言的基本语法、数据类型、运算符、流程控制、函数、数组、指针等知识点有一定的掌握,就能够应对这样的考试。通过反复练习和复习,我们就能在华为OD试中取得好成绩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值