北京工业大学考研--复试--机试刷题
发布时间 :
阅读 :
1 背景
快要开始复试了,虽然今年疫情不那么严重,但我估计北工大的复试还是线上进行,不过练习点编程题目也不是什么坏事,废话不多说,开始淦吧……
2 字符数组
2.1 题目
题目描述
删除字符串中所有空格,并输出删除空格后的字符串和被删除的空格数
思路
利用gets()函数接收输入的字符串,然后调用函数delSpace(s[])删除所以空格并返回已经删除的空格数量。
输入
Ikun is a handsome boy.
输出
The number of space is:4
Now the string is:
Ikunisahandsomeboy.
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| // 删除字符串中所有空格,并输出删除空格后的字符串和被删除的空格数
#include <stdio.h>
int main() { // 函数调用 int delSpace(char s[]); // 字符串str char str[100]; // num 表示字符串中的空格数 int num = 0; // 输入字符串 printf("%s\n", "Enter a string:"); gets(str); // 删除空格并返回字符串中的空格数 num = delSpace(str); // 函数调用后的结果 printf("The space of number is: %d\n", num); printf("%s\n", "Now the string is: "); puts(str); return 0; } int delSpace(char s[]) { int i = 0, j = 0; // 未完全遍历所给字符串 while(s[i] != '\0') { // 当前位置不是空格 if(s[i] != ' ') { s[j] = s[i]; j++; } i++; } s[j] = '\0'; // 返回所删除字符的个数 return i - j; }
|
展示
分析
2.2 题目
题目描述
输入字符串和m。输出后m个字符;若不足m个字符就全部输出
思路
首先,利用gets()函数接收输入的字符串,然后,利用scanf()函数接收输入的m,接着,调用函数strlen(s)计算字符串的长度len,最后,通过判断m和len的相对大小利用循环输出字符串。
输入
Ikun is a handsome boy.
4
输出
boy.
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| // 输入字符串和m。输出后m个字符;若不足m个字符就全部输出
#include <stdio.h> #include <string.h>
int main() { // m 表示待输出的字符串长度 // i 表示计数变量 // len 表示输入的字符串长度 int m = 0, i = 0, j = 0, len = 0; // 字符串s char s[1000]; // 输入字符串 printf("%s\n", "Please input the string:"); gets(s); // 输入m printf("%s\n", "Please input the value of m:"); scanf("%d", &m); // 计算字符串长度 len = strlen(s); // 字符串长度不足m个 if(len < m) puts(s); // 字符串长度大于m个 else { // 合理控制计数变量的值进行删除 for(i = len - m; s[i] != '\0'; i++) { printf("%c", s[i]); } printf("\n"); } return 0; }
|
展示
分析
- strlen()函数的使用方法
- scanf()函数的使用方法
2.3 题目
题目描述
删除字符串s中从第k个字符开始的n个字符,若不足n个,删除到末尾即可
思路
首先,利用gets()函数接收输入的字符串,然后,调用函数strlen(s)计算字符串的长度len,最后,合理控制计数变量的值进行删除。
输入
Ikun is a handsome boy.
9
11
输出
The deleted string is:
Ikun is boy.
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| // 删除字符串s中从第k个字符开始的n个字符,若不足n个,删除到末尾即可
#include <stdio.h> #include <string.h>
int main() { // n 表示待输出的字符串长度 // k 表示待输出的字符串首位置 // i, j 都是计数变量 // len 表示 输入的字符串长度 int n = 0, k = 0, i = 0, j = 0, len = 0; // 字符串s char s[1000]; // 输入字符串 printf("%s\n", "Please input the string:"); gets(s); // 输入k printf("%s\n", "Please input the value of k:"); scanf("%d", &k); // 输入n printf("%s\n", "Please input the value of n:"); scanf("%d", &n); // 计算字符串长度 len = strlen(s); // 字符串长度不足m个 if(k + n - 1 > len) s[k - 1] = '\0'; // 字符串长度大于m个 else { // 合理控制计数变量的值进行删除 for(i = k - 1, j = k + n - 1; s[j] != '\0';) { s[i] = s[j]; i++; j++; } s[i] = '\0'; } printf("%s\n", "The deleted string is:"); puts(s); return 0; }
|
展示
分析
2.4 题目
题目描述
从指定的字符串读取前n个字符显示
思路
首先,利用gets()函数接收字符串,然后,判断字符串长度len和n的大小以便输出对应的结果。
输入
Ikun is a handsome boy.
6
输出
Ikun i
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| // 从指定的字符串读取前n个字符显示
#include <stdio.h> #include <string.h>
int main() { // n 表示待输出的字符串长度 // i 表示计数变量 // len 表示输入的字符串长度 int n = 0, i = 0, j = 0, len = 0; // 字符串s char s[1000]; // 输入字符串 printf("%s\n", "Please input the string:"); gets(s); // 输入n printf("%s\n", "Please input the value of n:"); scanf("%d", &n); // 计算字符串长度 len = strlen(s); // 字符串长度不足n个 if(n > len) puts(s); // 字符串长度大于n个 else { // 合理控制计数变量的值进行输出 for(i = 0; i < n; i++) printf("%c", s[i]); } return 0; }
|
展示
分析
3 总结
今天关于字符数组的练习收获良多,总结下来就是下面的几点。
- gets()函数的使用方法
- puts()函数的使用方法
- scanf()函数的使用方法
- strlen()函数的使用方法
- 合理的数组下标表示
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 xingshuaikun@163.com。