来自练习题【字符型常量】
任务描述:
C语言中字符型数据的实质是整型数据,它是1个字节的整数,取值范围是-128到+127。 字符型数据在内存中实质上存储的是它的ASCII码,字符型数据和整型数据可以混合运算。
输入格式:
首先是一个字符A,然后跟一个32至126之间的正整数N。
输出格式:
第一行输出字符A的ASCII码值和整数N的值,用一个空格分隔。 第二行输出字符A和ASCII码为N的字符。 第三行输出字符A后相邻的字符,再输出ASCII码为N+1的字符。
正答:
#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;
}
代码分析:
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码的字符。
ASCII码图
注意:大小写英文字母相差32,大写字母较小。
运用上图可解: 英文字母大小写的转化
char a,n;
scanf("%c %c",&a,&n);\*运行时直接输字符不要空格*\
printf("%c %c",a-32,n-32);
return 0;