1.
编写程序利用数组实现将一个数插入到一个有序的数列中,要求插入后仍有序。
C语言代码
#include <stdio.h> int main(){ int n = 0; printf("请输入有序数组元素的个数:\n"); scanf("%d",&n); //定义并输入数组 int num[n]; printf("请输入有序数组的元素:\n"); for (int i = 0; i < n; i++) { scanf("%d",&num[i]); } //定义要插入的数 int sum = 0; printf("请输入要插入的数\n"); scanf("%d",&sum); // 找到要插入的位置并插入数字 int j = n - 1; while (j >= 0 && num[j] > sum) { num[j + 1] = num[j]; j--; } num[j + 1] = sum; //打印插入后的元素 printf("插入后的数组元素为:\n"); for (int i = 0; i < n+1; ++i) { printf("%d ",num[i]); } return 0; }
2.
编写程序,输入一个 4 行 4 列的矩阵,分别求出主对角元素之和以及上三角元素之和。
C语言代码
#include <stdio.h> int main(){ //定义一个4×4的数组 int nums[4][4]; //输入数组元素 printf("请输入数组元素:\n"); for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { scanf("%d",&nums[i][j]); } } //求主对角元素之和 int sum1 = 0; for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { if(i == j){ sum1 += nums[i][j]; } } } //求上三角元素之和 int sum2 = 0; for (int i = 0; i < 4; ++i) { for (int j = i; j < 4; ++j) { sum2 += nums[i][j]; } } printf("主对角元素之和为:%d\n",sum1); printf("上三角元素之和为: %d\n",sum2); return 0; }
3.
编写程序,输入一行字符串,将该字符串中所有的大写字母改为小写字母后输出。
C语言代码
#include <stdio.h> int main() { char str[100]; printf("请输入一行字符串: "); fgets(str, sizeof(str), stdin); for (int i = 0; str[i] != '\0'; i++) { if (str[i] >= 'A' && str[i] <= 'Z') { str[i] = str[i] + 32; } } printf("转换后的字符串为: %s\n", str); return 0;
4.
编写程序实现将十六进制字符串转换为十进制整数。输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个以回车结束的字符串(少于80个字符),滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出。
输入输出示例:括号内为说明
输入:
2 (repeat=2)
10
+A
输出:
Dec = 16
Dec = 10
C语言代码
#include <stdio.h> #include <string.h> #include <ctype.h> // 函数声明 int hex_to_decimal(const char *hex_str); int main() { int repeat; printf("请输入repeat的值(0<repeat<10):"); scanf("%d", &repeat); getchar(); // 吸收换行符 // 循环repeat次 for (int i = 0; i < repeat; i++) { char hex_str[81]; // 假设输入的字符串少于80个字符 printf("请输入十六进制字符串:"); fgets(hex_str, 81, stdin); // 使用fgets读取一行输入,包括空格 // 去除fgets读取的换行符 size_t len = strlen(hex_str); if(len > 0 && hex_str[len - 1] == '\n') { hex_str[len - 1] = '\0'; } // 调用函数转换并输出结果 int dec = hex_to_decimal(hex_str); printf("Dec = %d\n", dec); } return 0; } // 将十六进制字符串转换为十进制整数的函数 int hex_to_decimal(const char *hex_str) { int decimal = 0; while (*hex_str) { // 检查字符是否为十六进制字符 if (isdigit(*hex_str)) { decimal = decimal * 16 + (*hex_str - '0'); } else if (isxdigit(*hex_str)) { decimal = decimal * 16 + tolower(*hex_str) - 'a' + 10; } else { // 如果遇到非十六进制字符,跳过该字符 hex_str++; continue; } hex_str++; } return decimal; }