1.十进制转换十六进制(10分)
题目内容:
编写程序,输入一个长整型数,将其转换为十六进制,以字符串形式输出。(提示:可以定义char s[]="0123456789ABCDEF"以帮助输出十六进制字符)。
输入格式:
一个长整型数
输出格式:
一个十六进制数
输入样例:
10
输出样例:
A
时间限制:500ms内存限制:32000kb
#include <stdio.h>
int main() {
long num;
scanf("%ld", &num);
char s[] = "0123456789ABCDEF";
char hex[20]; // 假设最多20位16进制数
int i = 0;
do {
hex[i++] = s[num % 16];
num /= 16;
} while (num);
hex[i] = '\0';
// 将字符串反转
for (int j = 0; j < i / 2; j++) {
char temp = hex[j];
hex[j] = hex[i - j - 1];
hex[i - j - 1] = temp;
}
printf("%s\n", hex);
return 0;
}
2.字符串过滤(10分)
题目内容:
输入一个字符串,过滤掉所有的非数字字符,得到由数字字符组成的字符串,并输出。
输入格式:
一个字符串
输出格式:
去掉非数字字符的字符串
输入样例:
1ar56
输出样例:
156
时间限制:500ms内存限制:32000kb
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100]; // 假设输入的字符串最长不超过100个字符
scanf("%s", str);
int i = 0;
while (str[i] != '\0') {
if (isdigit(str[i])) {
printf("%c", str[i]);
}
i++;
}
printf("\n");
return 0;
}