C语言中 char a=1,char b=2,如何表示12,然后 char a=12,char b=58,如何表示1258????

作者&投稿:齐淑 (若有异议请与网页底部的电邮联系)
C语言 main() { char a='1',b='2'; printf("%c",b++);printf("%d\n",b-a)} 结果是什么?说明一下。~

答案是:22
分析:

char a='1'b='2'; //赋值,注意a b的类型为char
printf("%c",b++); //以字符型打印打印b后b才自加,所以是现打
//印出“2”后
//b的ASCII码值是50,自加后是51
printf("%d
",b-a) //这句是b的ASCII码值减去a的ASCII码值后
//以整型输出,即51-49=2,所以输出“2”

a=1 其二进制码为 00000001
b=2 其二进制吗为 00000010
^是异或运算(二进制码的)二进制码相同为0 不同为1
<<是二进制码的左移运算 就是将二进制码的1向左移动n位

<<运算的优先级比^高
所以 c=a^b<<2
就是说 先把b的二进制码(00000010)左移两位 00001000
然后与a(00000001)进行异或运算 得 00001001
这个二进制码转换为10进制 就是9

#include <stdio.h>
#include <string.h>
#define MAX 10
int main()
{
char str1[MAX], str2[MAX], str3[2*MAX];
int i, j, len1, len2;
gets(str1);
fflush(stdin);
gets(str2);
str3[0] = '\0';
len1 = strlen(str1);
len2 = strlen(str2);
strcat(str3, str1);
strcat(str3,str2);
str3[len1+len2] = '\0';
puts(str3);
getchar();
return 0;
}

a * 10 + b呗,转成int再乘


吉安市18322359986: c语言中 定义 char a=1 和char a=“1”和char a='1'什么区别?一定采纳 -
达湛阿泰: 第一个char a = 1,则a的值为数值1. 第二个语法错误. 第三个char a = '1',则a的值为字符'1',对应的数值请参考ASCII码,是数值49.此时: printf("%d",a);//得数值49 printf("%c",a);//得字符1

吉安市18322359986: C语言:如果char a=1;怎么把a转换成int;谢谢!!!啦!! -
达湛阿泰: 在c语言里,char可以跟int相互直接转换,你就直接当int用就行了

吉安市18322359986: 请C语言大侠帮帮我啊!我定义一个字符:char a='1',然后直接按照%d格式输出,ascll值正确为49, -
达湛阿泰: '1'的ASCII码是49,以"%c"读入的1,其实就是字符'1',如果以"%d"读入1,这才是整数1,这也是"%c"和"%d"读入一个数字时产生的明显区别,要明白的是,"%c"可以读入一个任意ASCII字符,包含大小写英文字母、数字、运算符和其他特殊符号(r如*()&^%$#@!{}":>< \n \r等等),但"%d"只能读入+-0123456789.

吉安市18322359986: c语言中 char a; 请问 a与'a'有啥区别 'a'是a的ascll码?是个数字? -
达湛阿泰: 你想问是char a='a'; 这两个a的区别. 首先第一个a是变量名,没有ascll码值,只是一个申明,存放'a'的内存地址.而'a'是一个字符,对应的ascll是97.

吉安市18322359986: c语言中char ch中的ch是啥意思 -
达湛阿泰: c语言中char ch中的ch是自定义的变量名.变量名是为了区分程序中不同的字符数组、人为起定的名字.定义和使用字符数组时,通常要把变量名定义为容易使用阅读和能够描述所含数据用处的名称,而不要使用一些难懂的缩写如A或B2等. 变...

吉安市18322359986: C语言中 char a=1,char b=2,如何表示12,然后 char a=12,char b=58,如何表示1258???? -
达湛阿泰: #include #define MAX 10 int main() { char str1[MAX], str2[MAX], str3[2*MAX]; int i, j, len1, len2; gets(str1); fflush(stdin); gets(str2); str3[0] = '\0'; len1 = strlen(str1); len2 = strlen(str2); strcat(str3, str1); strcat(str3,str2); str3[len1+len2] = '\0'; puts(str3); getchar(); return 0; }

吉安市18322359986: C语言中空格符号用什么表示? -
达湛阿泰: 空格和空字符的概念 ''表示为NULL 而' '表示为空格. char a[1]={''};时a为NULL char a[1]={' '};时a为一个空格

吉安市18322359986: C语言中char *a[ ]什么意思,他和char (*)a[ ]有什么什么区别? -
达湛阿泰: 两者区别如下: 一、”读“”写“能力 char*a="abcd";此时"abcd"存放在常量区.通过指针只可以访问字符串常量,而不可以改变它. 而char a[30]="abcd";此时"abcd"存放在栈.可以通过指针去访问和修改数组内容. 二、赋值时...

吉安市18322359986: c语言中char ch什么意思 -
达湛阿泰: char ch=0; ch的值就是0 char ch='0'; ch的值是字符'0'的ascii码值,即0x30 char ch='\0'; \0是转义字符,其值为ascii码0, 也就是说 这个和第一种的ch = 0是一样的.在打印时,字符串结束符\0属于不可显示字符,所以屏幕上会什么都没有.如果你用的是%d 你就能看出区别了

吉安市18322359986: c语言中char是什么意思 -
达湛阿泰: 楼上完全是误导人,什么字符变量啊! char 是一个数据类型,作用才是定义字符型变量(单个或是字符串). 比方int 是整形数据,int a = 3;这里int 是类型, a 是整型变量,3是赋值; char s = 'A'; char是字符类型,s是字符型变量,A是赋值给变量s; char s[] = "c program"; char是字符类型,s[]是字符型数组,"c program"是赋给数组的值.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网