C语言第2.4关 字符型常量

第1关:任务02-04-01 字符型实质上是整型

任务描述:

C语言中字符型数据的实质是整型数据,它是1个字节的整数,取值范围是-128到+127。 字符型数据在内存中实质上存储的是它的ASCII码,字符型数据和整型数据可以混合运算。

输入格式:

首先是一个字符A,然后跟一个32至126之间的正整数N。

输出格式:

第一行输出字符A的ASCII码值和整数N的值,用一个空格分隔。 第二行输出字符A和ASCII码为N的字符。 第三行输出字符A后相邻的字符,再输出ASCII码为N+1的字符。

输入样例:
 
  1. A 97
输出样例:
 
  1. 65,97
  2. A,a
  3. B,b
输入样例:
 
  1. # 42
输出样例:
 
  1. 35,42
  2. #,*
  3. $,+
任务代码
 
  1. #include<stdio.h>
  2. int main(){
  3. char a;
  4. int n;
  5. scanf("%c%d",&a,&n);
  6. printf("%d,%d\n",a,n);
  7. printf("%c,%c\n",a,n);
  8. printf("%c,%c",a+1,n+1);
  9. return 0;
  10. }

相关知识 ASCII码

ASCII码(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。 ASCII码使用8位二进制数组合(正好一个字节)来表示0到255共256种可能的字符。 前128个字符是标准ASCII码,表示所有的大小写字母、数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。 后128个字符是扩展ASCII码,一般用来表示特殊符号、外来语字母和图形符号。

,

相关知识 字符型常量

字符型常量是由一对单引号括起来的一个字符。字符常量的表示方法有两种:普通字符和转义字符。 普通字符就是单引号将一个单字符括起来。例如:'A'、'6'、'$'、';'、 '>'、'G'、'?'等等。单引号只是一对定界符,在普通字符表示当中只能包括一个字符。 转义字符是指用形如'???'的形式来表示一个字符。常用的转义字符及其含义如表2-3所示。

,

由于字符'A'的ASCII码为十进制数65,用八进制表示是0101,用十六进制表示是0x41,所以字符'\101'和'\X41'都表示字符'A'。用这种方法可以表示任何字符。例如'\141'表示字符'a'。再例如'\0'、'\000'和'\x00'都代表的是ASCII码为0的控制字符,即空字符。空字符被用来作为字符串结束的标记。

相关知识 字符型数据在内存中的表示

字符型数据在内存中是以整型数据形式存储的。举例来说字符'A'在内存中占一个字节,存储的是整型数据65(字符'A'的ASCII码),也就是说字符型数据是一个字节的整数。 小白弟弟,你注意到了吗?所有的大写英文字母的ASCII码比它们的小写形式小32,也就是说:'A'+32的值是97,也就是'a';'B'-32的值是66,也就是'b'。 字符型数据和整型数据是可以通用、可以混合运算。字符型数据可以当做整型数据来使用,整型数据也可以当做字符型数据来使用。

任务代码分析

1.语句char a;的功能是定义字符型变量a;语句int n;的功能是定义整型变量n。 2.语句scanf("%c%d",&a,&n);的功能是输入一个字符和整数,赋值给变量a和n。其中%c是字符型格式说明符,在这里指输入一个字符。 3.语句printf("%d,%d\n",a,n);的功能是输出两个以逗号分隔的整数和回车。第一个%d输出的是表达式a的值,就是字符a的ASCII码,字符a可以直接当整型数据使用。第二个%d输出的是整数n的值。 4.语句printf("%c,%c\n",a,n);的功能是输出两个以逗号分隔的字符和回车。第一个%c输出的是字符a。第二个%c输出的是以n为ASCII码的字符,这里的整数n将以字符的身份输出。 5.语句printf("%c,%c",a+1,n+1);的功能也是输出两个以逗号分隔的字符。第一个%c输出的是以a+1为ASCII码的字符,这里的字符a和整数1可以直接相加。第二个%c输出的是以n+1为ASCII码的字符。 通过以上的学习和分析,小白弟弟应该明白字符型数据的原理了吧!

相关知识 字符串常量

字符串常量是以双引号括起来的一串字符序列。例如, "This is a c program."、"ABC"、"I LOVE C"或""(空串)等。其中双引号为字符串的定界符,不属于字符串的内容。 字符串常量在内存中的某个起始存储单元开始依次存储各个字符(实际存储的是ASCII码),并在最末字符的下一个字节位置额外存储一个空字符'\O',表示字符串结束。 所以,字符串数据在内存中存储在一块连续的地址空间中,所占内存空间长度为其实际字符个数加1。例如,字符串"CHINA"在内存中所占用的存储空间是6个字节。

示例代码分析
 
  1. #include<stdio.h>
  2. int main(){
  3. printf("%d", sizeof("CHINA") );
  4. return 0;
  5. }

执行程序输出: 6


开始你的任务吧,祝你成功!

参考代码:

//请在此输入你的代码
#include<stdio.h>
int main(){
    char a; 
    int n;
    scanf("%c%d",&a,&n);
    printf("%d,%d\n",a,n);
    printf("%c,%c\n",a,n);
    printf("%c,%c",a+1,n+1);
    return 0;
}

第2关:任务02-04-02 英文字母变换

任务描述:

输入数据为在一行中有一个大写字母a和小写字母b(没有空格),编程分别输出它们对应的另一字母(小写或大写)。

输入样例:

Am

输出样例:

aM

输入样例:

Xy

输出样例:

xY


开始你的任务吧,祝你成功!

参考代码:

//请在此输入你的代码
#include<stdio.h>
int main(){
    char a,s;
    scanf("%c%c",&a,&s);
    printf("%c%c",a+32,s-32);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值