char型变量中能不能存贮一个中文汉字?为什么?

题目

char型变量中能不能存贮一个中文汉字?为什么?

参考答案和解析

不能 。
CHAR只能存1个字符
而一个汉字是2个字符,
所以存不下。 

在C/C++语言中,char变量为一个字节,8位,signed char表示的范围:-128~127【-128在内存中的二进制表示为1000 0000,127在内存中的表示为0111 1111】;unsign char表示的范围:0000 0000~1111 1111,即0~255;

注意:整数在内存中是以补码存取的,正数的补码:等于自己,负数的补码:取反加1,例如:127在内存中表示为0111 1111, -127在内存中表示为~(0111 1111)+1=1000 0001; 假定某内存单元p的内容是1111 1111,那么它一定是255吗?实际上取决于你的代码是要把它看成有符号还是无符号数,如果是无符号则表示255,如果是有符号则表示-1【对于有符号数,最高位为符号位,1表示负,0表示正】:
signed char c=*p; //c=-1
unsigned char c=*p;//c=255

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列关于单目运算符++、--的叙述中正确的是

A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量


正确答案:D
解析:“++”和“--”运算符都是单目运算符,其运算对象可以是整型变量,也可以是实型变量,但不能是常量或表达式。当运算对象是字符型时,系统自动将其转换成该字符所对应的ASCII码值。

第2题:

下面的变量说明中__________是正确的。

A.char:a, b, c;

B.char a; b; c;

C.char a, b, c;

D.char a, b, c


正确答案:C

第3题:

已知:type def charCH;下列描述中,正确的是()。

A.使用CH定义的变量是char型变量

B.使用CH定义的是一个字符常量

C.使用CH定义的变量其类型不确定

D.使用CH定义的是一个字符串


正确答案:A

第4题:

下列关于单目运算符++、--的叙述中,正确的是( )。

A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和血型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是doule型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量


正确答案:D
解析:本题考核C++的--和++运算符。在C++中,--和++这两种运算符是单目运算符,其运算对象可以是整型、字符型、float型和double型等基本数据类型。

第5题:

若要用下面的程序片段使指针变量p指向一个存储字符型变量的动态存储单元,则应填入; char * p;p= ( ) malloc (sizeof (char));

A.char

B.char *

C.(* char)

D.(char *)


正确答案:D

第6题:

char*A[5],则标识符A的意义时()。

A.A是一个指向有5个字符型元素的指针变量

B.A是一个有5个元素的一维数组,每个元素指向字符型的指针变量

C.A是一个指向字符型的函数的指针变量

D.A是一个有5个元素的一维数组,每个元素指向整型变量的指针变量


正确答案:B

第7题:

下列关于单目运算符++、--的叙述中,正确的是A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量D.它们的运算对象可以是char型变量、int型变量和float型变量


正确答案:D
本题主要考查自加与自减运算符在C语言中,自加与自减运算符具有以下性质:
(1)自加运算符“++”和自减运算符“--”的运算本身是一种赋值运算,其结果是使运算对象的值增1或减1。
(2)++、--运算符是单目运算符,运算对象可以是整型变量或字符型变量,也可以是实型变量,但不能是常量和表达式。
(3)自加、自减运算符无论是作为前缀还是后缀运算符,对于变量而言,其效果相同,但作为表达式来说,其值不同。
(4)++和--运算符的结合方向是“自右向左”。
(5)不要在一个表达式中对同一个变量进行多次自增或自减运算。可以知道本题正确的答案是D。

第8题:

若有语句:char *line[5];,以下叙述中正确的是

A.定义line是一个数组,每个数组元素是一个基类型为char为指针变量

B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C.定义line是一个指针数组,语句中的*号称为间址运算符

D.定义line是一个指向字符型函数的指针


正确答案:A
解析:C语言中[ ]比*优先级高,因此line先与[5]结合,形成line[5]形式,这是数组形式,它有5个元素,然后再与line前面的"*"结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为char的指针变量。

第9题:

语句Char(*P)说明了( )。

A.P是指向函数的指针,该函数返回一个Char型数据

B.P是指向Char型数据的指针变量

C.P是指向数组的指针变量

D.P是一个函数名,该函数的返回值是指向Char型数据的指针


正确答案:A
P是指向函数的指针,该函数返回一个char型数据。

第10题:

变量s的定义为“char *s="Hello world!";”,要使变量p指向s所指向的同一个字符串,则应选取(47)。

A.char *p=s;

B.char *p=&s;

C.char *p;p=*s;

D.char *p; p=&s;


正确答案:A
解析:按照要求,p应该定义为一个指向字符串的指针,它的值和s一样,所以选择A。