输入一个字符,找出他的前驱字符和后继字符(C)

养成好习惯,点个赞 再走;有问题,欢迎私信、评论,我看到都会回复的

c语言中

前驱字符为该字符ASCII码中的前一个字符

后继字符为该字符ASCII码中的后一个字符

思路:

  1. 将字符转换成int型
  2. 然后做-1,+1操作
  3. 之后转换成char型
  4. 输出
#include<stdio.h>
int main()
{
	char a;
	
	//输入一个字符
	scanf("%c", &a);
	
	printf("前驱字符:");
	printf("%c\t%d\n", a - 1, a - 1);
	printf("后继字符:");
	printf("%c\t%d\n", a + 1, a + 1);
	
	return 0;
}

输入:a
输出:

前驱字符:`	96
后继字符:b	98

C语言入门题目文章导航:

  1. 素数(C)
  2. 水仙花数(C)
  3. 斐波那契数列(C)
  4. 完数(C)
  5. 阶乘(C)
  6. 直角杨辉三角形(C)
  7. 大写字母、小写字母、ASCII码(C)
  8. 本篇文章
  9. 最大数、最小数(C)
  10. 百钱买百鸡(C语言,枚举法)
  11. 辗转相除法求最大公约数,利用最大公约数求最小公倍数(C)
  12. 输入一个年份和一个月份,输出该年此月天数;知道日期,计算该日是本年的第几天(C)
  13. 输入一个不多于4位的正整数,求它的位数,并按逆序输出各位数字(C)
  14. 利用二维数组求方阵的主次对角线之和(C)
  15. 在一个二维数组中找出最小数及其所在的行和列(C)
  16. 找出一个二维数组中的鞍点(C)
  17. 删除指定字符串的指定字符(C)
  18. 字符串(C)
  19. 条件判断语句1(C)
  20. 条件判断语句2(C)
  21. 圆、三角形、正方形、长方体、计算1到100的和、和差积商、平均值
  22. 输入三个整数,要求程序把数据按从小到大的顺序放入x y z中,然后输出(C)
  23. 18个数围成一圈,求相邻三数之和最大数(C)
  24. 梯形法求定积分(C)
  25. 学生与课程的综合问题(C)
  • 31
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
1. 一棵二叉树的顺序存储情况如下: 树中,度为2的结点数为( )。 A.1 B.2 C.3 D.4 2. 一棵“完全二叉树”结点数为25,高度为( )。 A.4 B.5 C.6 D.不确定 3.下列说法中,( )是正确的。 A. 二叉树就是度为2的树 B. 二叉树中不存在度大于2的结点 C. 二叉树是有序树 D. 二叉树中每个结点的度均为2 4.一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是( )。 A. CABDEFG B. BCDAEFG C. DACEFBG D. ADBCFEG 5.线索二叉树中的线索指的是( )。 A.左孩子 B.遍历 C.指针 D.标志 6. 建立线索二叉树的目的是( )。 A. 方便查找某结点的前驱后继 B. 方便二叉树的插入与删除 C. 方便查找某结点的双亲 D. 使二叉树的遍历结果唯一 7. 有abc三个结点的右单枝二叉树的顺序存储结构应该用( )示意。 A. a b c B. a b ^ c C. a b ^ ^ c D. a ^ b ^ ^ ^ c 8. 一颗有2046个结点的完全二叉树的第10层上共有( )个结点。 A. 511 B. 512 C. 1023 D. 1024 9. 一棵完全二叉树一定是一棵( )。 A. 平衡二叉树 B. 二叉排序树 C. 堆 D. 哈夫曼树 10.某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是( )的二叉树。 A.空或只有一个结点 B.高度等于其结点数 C.任一结点无左孩子 D.任一结点无右孩子 11.一棵二叉树的顺序存储情况如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A B C D E 0 F 0 0 G H 0 0 0 X 结点D的左孩子结点为( )。 A.E B.C C.F D.没有 12.一棵“完全二叉树”结点数为25,高度为( )。 A.4 B.5 C.6 D.不确定 二、填空题(每空3分,共18分)。 1. 树的路径长度:是从树根到每个结点的路径长度之和。对结点数相同的树来说,路径长度最短的是 完全 二叉树。 2. 在有n个叶子结点的哈夫曼树中,总结点数是 2n-1 。 3. 在有n个结点的二叉链表中,值为非空的链域的个数为 n-1 。 4. 某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是 任一结点无左孩子 的二叉树。 5. 深度为 k 的二叉树最多有 个结点,最少有 k 个结点。 三、综合题(共58分)。 1. 假定字符集{a,b,c,d,e,f }中的字符在电码中出现的次数如下: 字符 a b c d e f 频度 9 12 20 23 15 5 构造一棵哈夫曼树(6分),给出每个字符的哈夫曼编码(4分),并计算哈夫曼树的加权路径长度WPL(2分)。 (符合WPL最小的均为哈夫曼树,答案不唯一) 哈夫曼编码: 2. 假设用于通信的电文由字符集{a,b,c,d,e,f,g}中的字符构成,它们在电文中出现的频率分别为{0.31,0.16,0.10,0.08,0.11,0.20,0.04}。要求: (1)为这7个字符设计哈夫曼树(6分)。 (2)据此哈夫曼树设计哈夫曼编码(4分)。 (3)假设电文的长度为100字符,使用哈夫曼编码比使用3位二进制数等长编码使电文总长压缩多少?(4分) (1) 为这7个字符设计哈夫曼树为(符合WPL最小的均为哈夫曼树,答案不唯一): (2) 哈夫曼编码为: a:01;b:001;c:100;d:0001;e:101;f:11;g:0000 (3) 假设电文的长度为100字符,使用哈夫曼编码比使用3位二进制数等长编码使电文总长压缩多少? 采用等长码,100个字符需要300位二进制数,采用哈夫曼编码发送这100个字符需要261二进制位,压缩了300-261=39个字符。压缩比为39/300=13%。 3. 二叉数T的(双亲到孩子的)边集为: { <A,B>, <A,C>, <D,A>, <D,E>, <E,F>, <F,G> } 请回答下列问题: (1)T的根结点(2分): (2)T的叶结点(2分): (3)T的深度(2分): (4)如果上述列出边集中,某个结点只有一个孩子时,均为其左孩子;某个结点有两个孩子时,则先列出了连接左孩子的边后列出了连接右孩子的边。画出该二叉树其及前序线索(6分)。 (1)T的根结点 (2)T的叶结点 : (3)T的深度 : (4)该二叉树其及前序线索为: 4.现有以下按前序和中序遍历二叉树的结果: 前序:ABCEDFGHI 中序:CEBGFHDAI 画出该二叉树的逻辑结构图(5分),并在图中加入中序线索(5分)。 5.有电文:ABCDBCDCBDDBACBCCFCDBBBEBB。 用Huffman树构造电文中每一字符的最优通讯编码。画出构造的哈夫曼树,并给出每个字符的哈夫曼编码方案。(符合WPL最小的均为哈夫曼树,答案不唯一) (1)构造哈夫曼树(6分): (2)哈夫曼编码方案(4分):
### 回答1: 很抱歉,作为AI语言模型,我无法直接从键盘输入字符。但是,我可以告诉你如何求出一个字符前驱后继字符。 一个字符前驱后继字符,可以通过将该字符转换为其对应的ASCII码,然后分别减1和加1来得到。例如,字符'A'的ASCII码为65,那么它的前驱字符为'B',后继字符为'C'。 以下是一个示例代码,可以实现输入一个字符,输出其前驱后继字符: ```python c = input("请输入一个字符:") pre = chr(ord(c) - 1) suc = chr(ord(c) + 1) print("该字符前驱字符为:", pre) print("该字符后继字符为:", suc) ``` 当你输入一个字符后,程序会自动计算出该字符前驱后继字符,并输出结果。 ### 回答2: 要求求解一个字符前驱后继字符,必须先要了解字符类型和对应的编码。计算机中的字符都是按照ASCII码或Unicode码进行编码的,每个字符都有唯一的编码。键盘上的大小写字母、数字、特殊符号和空格等字符都有对应的编码。其中,ASCII码是最基本的字符集,包含了128个字符,Unicode码则更为强大,涵盖了世界各种语言的编码。 从键盘输入一个字符,可以通过输入函数来获取该字符的ASCII码或Unicode码。在C语言中,使用getchar()函数可以获取一个字符,其返回值为该字符的ASCII码。因此,可以使用该函数来获取用户输入的字符,并通过加减运算得到前驱后继字符的编码。 ASCII码中,字符的顺序是按照字母表顺序排列的,因此可以通过加1或减1来获取相邻的字符。下面是求解前驱后继字符C语言代码示例: ```c #include <stdio.h> int main() { char c; printf("请输入一个字符:"); c = getchar(); printf("输入字符的ASCII码为:%d\n", c); printf("前驱字符为:%c,其ASCII码为:%d\n", c - 1, c - 1); printf("后继字符为:%c,其ASCII码为:%d\n", c + 1, c + 1); return 0; } ``` 如果想要在Unicode编码中求解前驱后继字符,需要了解Unicode码中字符的编码方式。Unicode码中的字符没有固定的顺序,因此不能像ASCII码那样直接加减1。一种常用的方法是使用以下公式: 前驱字符编码 = 当前字符编码 - 1 后继字符编码 = 当前字符编码 + 1 下面是求解前驱后继字符C语言代码示例: ```c #include <stdio.h> int main() { char c; printf("请输入一个字符:"); c = getchar(); printf("输入字符的Unicode编码为:%d\n", c); printf("前驱字符为:%c,其Unicode编码为:%d\n", c - 1, c - 1); printf("后继字符为:%c,其Unicode编码为:%d\n", c + 1, c + 1); return 0; } ``` 综上所述,求解一个字符前驱后继字符需要了解字符类型和对应的编码方式。在不同的编码方式下,求解的方法也不同。通过以上示例代码,可以实现从键盘输入一个字符,获取其前驱后继字符的编码,并输出对应的字符。 ### 回答3: 题目中所说的前驱后继字符是指一个字符在ASCII编码表中的前一个和后一个字符。 首先,我们需要了解ASCII编码表。ASCII编码表是一种将字符转换为数字的标准方式。在ASCII编码表中,每个字符都有一个对应的数字。例如,字符'A'的ASCII码为65,字符'a'的ASCII码为97。 那么如何求出一个字符前驱后继字符呢?我们可以使用字符的ASCII码来进行操作。假设输入的字符为c,我们可以将其转换为ASCII码表示的数字,然后分别将其减一和加一,再将新的数字转换为字符表示即可。具体步骤如下: 1. 将字符c转换为ASCII码表示的数字,可以使用ord()函数实现。 2. 将得到的数字分别减一和加一,得到新的数字。 3. 将新的数字转换为字符表示,可以使用chr()函数实现。 下面是Python代码实现: ``` # 从键盘输入一个字符 c = input("请输入一个字符:") # 将字符转换为ASCII码表示的数字 ascii_code = ord(c) # 计算前驱后继字符的ASCII码 pre_ascii_code = ascii_code - 1 suc_ascii_code = ascii_code + 1 # 将新的ASCII码转换为字符表示 pre_char = chr(pre_ascii_code) suc_char = chr(suc_ascii_code) print("输入字符前驱字符为:", pre_char) print("输入字符后继字符为:", suc_char) ``` 需要注意的是,对于一些特殊字符,如空格、回车等,其前驱后继字符的ASCII码值可能不是连续的,需要进行特殊处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值