从键盘上输入一个长整型数,将最高8位与最低8 位、次高8位与次低8位交换,以十六进制形式输出交换 后的结果。
时间: 2023-05-12 08:06:51 浏览: 90
可以使用位运算来实现这个交换操作,具体代码如下:
```c
#include <stdio.h>
int main() {
long long num;
scanf("%lld", &num);
long long high = (num >> 24) & 0xff;
long long low = num & 0xff;
long long mid_high = (num >> 8) & 0xff;
long long mid_low = (num >> 16) & 0xff;
long long result = (low << 24) | (mid_low << 16) | (mid_high << 8) | high;
printf("%llx\n", result);
return 0;
}
```
这个程序首先读入一个长整型数,然后使用位运算将最高8位和最低8位、次高8位和次低8位交换,最后以十六进制形式输出结果。
相关问题
从键盘上输入一个长整型数,将最高8位与最低8位交换,次高8位与次低8位交换,并以16进制输出
可以使用位运算来实现这个操作,具体代码如下:
```c++
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
long long num;
cin >> num;
long long high = (num >> 24) & 0xff;
long long low = num & 0xff;
long long mid_high = (num >> 8) & 0xff;
long long mid_low = (num >> 16) & 0xff;
long long result = (low << 24) | (mid_low << 16) | (mid_high << 8) | high;
cout << hex << setfill('0') << setw(16) << result << endl;
return 0;
}
```
输入一个长整型数,然后使用位运算将最高8位与最低8位交换,次高8位与次低8位交换,最后以16进制输出。
用c语言分别求出以下三题9.从键盘输入5个整型数,保存到的长度为5的数组,再将其按逆序存放在这个数组中(第1个与最后一个交换,第2个与倒数第2个交换...),将逆序前和逆序后的数组输出。 交换规律如下: 1 2 3 4 5 <-左边是输入的5个数 下标 下标 4-i i 4 0 3 1 2 2 1 3 0 4 观察上面要交换的下标的规律 i 4-i a[i]<===>a[4-i]交换 10.五个评委打分(输入5个分数),去掉最高、最低分各一个,计算最终成绩(剩下的取平均分) 11.输入5个实型数据,排序后按照由小到大
第一题代码:
```c
#include <stdio.h>
int main() {
int arr[5];
printf("请输入5个整数:\n");
for (int i = 0; i < 5; i++) {
scanf("%d", &arr[i]);
}
// 逆序存放
for (int i = 0; i < 2; i++) {
int temp = arr[i];
arr[i] = arr[4 - i];
arr[4 - i] = temp;
}
// 输出逆序前的数组
printf("逆序前的数组:");
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 输出逆序后的数组
printf("逆序后的数组:");
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
第二题代码:
```c
#include <stdio.h>
int main() {
float arr[5];
printf("请输入5个分数:\n");
for (int i = 0; i < 5; i++) {
scanf("%f", &arr[i]);
}
// 冒泡排序
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 4 - i; j++) {
if (arr[j] > arr[j + 1]) {
float temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 去掉最高、最低分
float sum = 0;
for (int i = 1; i < 4; i++) {
sum += arr[i];
}
// 计算平均分
float avg = sum / 3;
printf("最终成绩为:%f\n", avg);
return 0;
}
```
第三题代码:
```c
#include <stdio.h>
int main() {
float arr[5];
printf("请输入5个实数:\n");
for (int i = 0; i < 5; i++) {
scanf("%f", &arr[i]);
}
// 冒泡排序
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 4 - i; j++) {
if (arr[j] > arr[j + 1]) {
float temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出排序后的数组
printf("排序后的数组为:");
for (int i = 0; i < 5; i++) {
printf("%f ", arr[i]);
}
printf("\n");
return 0;
}
```
阅读全文