内容正文:
2.5与2.6节:字符型数据、变量赋初值
一、单项选择题
1.下列关于 C 语言字符常量的叙述,正确的一项是( )
A. 字符常量由双引号包裹,可包含多个字符
B. 字符常量由单引号包裹,仅能存储单个字符
C. 字符常量可直接赋值给字符串变量
D. 字符常量在内存中占用 2 字节空间
2.下列选项中,属于合法 C 语言字符常量的是()
A. "a" B. 'ab' C. '
' D. \t
3.下列关于转义字符的叙述,错误的是()
A. 转义字符以反斜杠\开头,具有特殊含义
B. 转义字符需用单引号包裹,如'
'
C. '\101'表示八进制数 101 对应的字符
D. 转义字符'\t'的功能是退格
4.下列转义字符与功能对应正确的是()
A. '\a' —— 换行 B. '\b' —— 响铃
C. '
' —— 回车 D. '\f' —— 换页
5.下列关于字符变量存储的叙述,正确的是()
A. 字符变量存储字符本身,不涉及 ASCII 码
B. 字符'a'存储为 ASCII 码 97 的二进制形式
C. 字符变量与整型变量不可通用
D. 字符变量占用 2 字节内存空间
6.下列代码执行后,输出结果为()
char ch = 'A';
printf("%d", ch);
A. A B. 65 C. 'A' D. 报错
7.下列关于字符串常量的叙述,叙述正确的一项是()
A. 字符串常量由单引号包裹,可包含多个字符
B. 字符串常量可直接赋值给char型变量
C. 字符串常量末尾自动添加'\0'作为结束标志
D. 字符串常量占用字节数等于字符个数
8.字符串常量"hello"在内存中实际占用的字节数是()
A. 5 B. 6 C. 7 D. 8
9.下列关于字符常量与字符串常量的区别,说法错误的是()
A. 字符常量单引号,字符串常量双引号
B. 字符常量仅单个字符,字符串常量可多个字符
C. 字符常量可赋值给char变量,字符串常量不可
D. 两者占用内存字节数相同
10.下列变量赋初值的语句,语法完全正确的是()
A. int a = 1; char ch = "a"; B. int b = 2, float c = 3.14;
C. char ch1 = 'x', ch2 = 'y'; D. float d = 3.14, int e = 5;
11.下列转义字符中,用于表示单引号字符的是( )
A. '\'' B. '\"' C. '\\' D. '\0'
12.下列关于字符与整数通用的叙述,正确的一项是()
A. 字符变量不可赋值为整型值
B. 整型变量不可赋值为字符常量
C. char ch = 97;等价于char ch = 'a';
D. 字符变量按%c输出时显示 ASCII 码值
13.下列变量初始化语句中,错误的是()
A. int a = 0; B. char ch = '\0';
C. float f = 3.14f; D. char str = "test";
14.转义字符'\x41'对应的字符是()
A. A B. B C. C D. D
15.下列关于变量赋初值的叙述,正确的是()
A. 变量赋初值必须在定义之后单独赋值
B. 变量赋初值只能在定义时完成
C. int a=1,b=2;是合法的多变量初始化
D. 未赋初值的变量自动初始化为 0
16.下列选项中,属于合法字符串常量的是()
A. 'hello' B. "hello" C. \hello D. 'h'
17.下列代码执行后,输出结果为()
char c1 = 'a', c2 = 'b';
printf("%c,%c
%d,%d", c1, c2, c1, c2);
A. a,b 97,98 B. a,b
97,98
C. a,b 98,97 D. 97,98 a,b
18.下列关于字符串结束标志'\0'的叙述,错误的是()
A. '\0'的 ASCII 码值为 0 B. 字符串常量末尾自动添加'\0'
C. '\0'占用 1 字节内存空间 D. 字符常量中必须包含'\0'
19.下列代码中,属于变量初始化的是()
A. int a; a = 1; B. int a = 1;
C. int a; printf("%d", a); D. a = 1;
20.下列关于字符型数据的叙述,正确的是()
A. 字符型数据可存储小数 B. 字符型数据与整型数据完全无关
C. 字符型数据在内存中以二进制形式存储 D. 字符型数据占用 4 字节内存
二、判断题。
1.在C语言中,转义字符'
'的功能是回车,将光标移至行首。( )
2.在C语言中,字符变量char占用 1 字节内存,存储字符对应的 ASCII 码值。( )
3.字符串常量"hello"在内存中存储为h e l l o \0,共 6 字节。( )
4.字符变量与整型变量不可通用,不能互相赋值或输出。( )
5.转义字符'\t'的功能是到下一个制表位,实现对齐输出。( )
6.字符常量'a'与字符串常量"a"占用内存字节数相同,均为 1 字节。( )
7.字符'A'的 ASCII 码值为 65,'a'的 ASCII 码值为 97,两者相差 32。( )
8.字符串结束标志'\0'的 ASCII 码值为 0,一般用户无需主动添加,系统会自动添加的。( )
9.int a = 'A';是合法赋值,a的值为 65,可按%c输出字符'A'。( )
10.字符串常量由双引号包裹,可包含任意多个字符,包括转义字符。( )
三、填空题。
1.字符常量由________包裹,仅存储________个字符,占用________字节内存。
2.转义字符以________开头,需用________包裹,'
'的功能是________。
3.字符串常量由________包裹,末尾自动添加________作为结束标志,占用字节数 =________+1。
4.转义字符'\t'功能是________,'\b'功能是________,'\r'功能是________。
5.字符串常量"test"在内存中占用________字节,存储内容为________。
6.字符'b'的 ASCII 码值为________,字符'B'的 ASCII 码值为________,两者差值为________。
7.在C语言中,合法转义字符:表示单引号________,表示双引号________,表示反斜杠________。
8.变量初始化语句int a=1,b=2;中,同时定义并初始化________个整型变量,a值为________,b值为________。
9.转义字符'\x41'是________进制表示,对应十进制________,字符为________。
10.字符变量char ch = '5';,ch + 1的结果为字符________,对应 ASCII 码________。
三、编程题。
1. 定义两个字符变量ch1和ch2,分别初始化为'A'和'a',先按字符格式输出两者,再按整型格式输出两者的 ASCII 码值。
2.定义字符变量ch,初始化为转义字符'
',再输出转义字符'\t'、'\b'、'\\',观察输出效果。
3.定义整型变量num初始化为 65,字符变量ch初始化为num,分别按字符和整型输出ch。
4.同时定义并初始化int a=10、char ch='x'、float f=3.14,输出三个变量的值。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
2.5与2.6节:字符型数据、变量赋初值
一、单项选择题
1.下列关于 C 语言字符常量的叙述,正确的一项是( )
A. 字符常量由双引号包裹,可包含多个字符
B. 字符常量由单引号包裹,仅能存储单个字符
C. 字符常量可直接赋值给字符串变量
D. 字符常量在内存中占用 2 字节空间
【答案】B
【解析】在C语言中,字符常量由单引号包裹,仅存储单个字符,占 1 字节。
2.下列选项中,属于合法 C 语言字符常量的是( )
A. "a" B. 'ab' C. '
' D. \t
【答案】C
【解析】A 是字符串常量,B 包含多个字符非法,D 未用单引号包裹;C 是合法转义字符常量。
3.下列关于转义字符的叙述,错误的是( )
A. 转义字符以反斜杠\开头,具有特殊含义
B. 转义字符需用单引号包裹,如'
'
C. '\101'表示八进制数 101 对应的字符
D. 转义字符'\t'的功能是退格
【答案】D
【解析】'\t'是制表位功能,退格是'\b';A、B、C 均符合转义字符定义。
4.下列转义字符与功能对应正确的是( )
A. '\a' —— 换行 B. '\b' —— 响铃
C. '
' —— 回车 D. '\f' —— 换页
【答案】D
【解析】A 响铃,B 退格,C 换行;D 对应换页功能正确。
5.下列关于字符变量存储的叙述,正确的是( )
A. 字符变量存储字符本身,不涉及 ASCII 码
B. 字符'a'存储为 ASCII 码 97 的二进制形式
C. 字符变量与整型变量不可通用
D. 字符变量占用 2 字节内存空间
【答案】B
【解析】字符变量以 ASCII 码形式存储,'a'对应 97;
6.下列代码执行后,输出结果为( )
char ch = 'A';
printf("%d", ch);
A. A B. 65 C. 'A' D. 报错
【答案】B
【解析】'A'的 ASCII 码为 65,%d按整型输出,结果为 65。
7.下列关于字符串常量的叙述,叙述正确的一项是( )
A. 字符串常量由单引号包裹,可包含多个字符
B. 字符串常量可直接赋值给char型变量
C. 字符串常量末尾自动添加'\0'作为结束标志
D. 字符串常量占用字节数等于字符个数
【答案】C
【解析】字符串由双引号包裹,不可赋值给char变量,占用字节数 = 字符数 + 1('\0')
8.字符串常量"hello"在内存中实际占用的字节数是( )
A. 5 B. 6 C. 7 D. 8
【答案】B
【解析】5 个字符 + 1 个'\0'结束符,共 6 字节。
9.下列关于字符常量与字符串常量的区别,说法错误的是( )
A. 字符常量单引号,字符串常量双引号
B. 字符常量仅单个字符,字符串常量可多个字符
C. 字符常量可赋值给char变量,字符串常量不可
D. 两者占用内存字节数相同
【答案】D
【解析】字符常量占 1 字节,字符串常量占字符数 + 1 字节,不相同。
10.下列变量赋初值的语句,语法完全正确的是( )
A. int a = 1; char ch = "a"; B. int b = 2, float c = 3.14;
C. char ch1 = 'x', ch2 = 'y'; D. float d = 3.14, int e = 5;
【答案】C
【解析】A 中"a"是字符串不能赋值给char;B、D 类型定义混写错误;C 正确。
11.下列转义字符中,用于表示单引号字符的是( )
A. '\'' B. '\"' C. '\\' D. '\0'
【答案】A
【解析】'\''表示单引号,'\"'表示双引号,'\\'表示反斜杠,'\0'是字符串结束符。
12.下列关于字符与整数通用的叙述,正确的一项是( )
A. 字符变量不可赋值为整型值
B. 整型变量不可赋值为字符常量
C. char ch = 97;等价于char ch = 'a';
D. 字符变量按%c输出时显示 ASCII 码值
【答案】C
【解析】97 是'a'的 ASCII 码,两者等价;A、B、D 均错误。
13.下列变量初始化语句中,错误的是( )
A. int a = 0; B. char ch = '\0';
C. float f = 3.14f; D. char str = "test";
【答案】D
【解析】"test"是字符串常量,不可赋值给char型变量,需用字符数组存储。
14.转义字符'\x41'对应的字符是( )
A. A B. B C. C D. D
【答案】A
【解析】\x41是十六进制表示,41 对应十进制 65,即字符'A'。
15.下列关于变量赋初值的叙述,正确的是( )
A. 变量赋初值必须在定义之后单独赋值
B. 变量赋初值只能在定义时完成
C. int a=1,b=2;是合法的多变量初始化
D. 未赋初值的变量自动初始化为 0
【答案】C
【解析】变量可在定义时初始化,也可定义后赋值;未初始化局部变量值随机;仅 C 正确。
16.下列选项中,属于合法字符串常量的是( )
A. 'hello' B. "hello" C. \hello D. 'h'
【答案】B
【解析】字符串常量由双引号包裹,仅 B 合法;A 是非法字符常量,C 格式错误,D 是字符常量。
17.下列代码执行后,输出结果为( )
char c1 = 'a', c2 = 'b';
printf("%c,%c
%d,%d", c1, c2, c1, c2);
A. a,b 97,98 B. a,b
97,98
C. a,b 98,97 D. 97,98 a,b
【答案】A
【解析】%c输出字符,%d输出 ASCII 码,结果为a,b 97,98。
18.下列关于字符串结束标志'\0'的叙述,错误的是( )
A. '\0'的 ASCII 码值为 0 B. 字符串常量末尾自动添加'\0'
C. '\0'占用 1 字节内存空间 D. 字符常量中必须包含'\0'
【答案】D
【解析】字符常量仅单个字符,无'\0';仅字符串常量末尾有'\0',D 错误。
19.下列代码中,属于变量初始化的是( )
A. int a; a = 1; B. int a = 1;
C. int a; printf("%d", a); D. a = 1;
【答案】B
【解析】变量初始化是定义时赋值;A 是先定义后赋值。
20.下列关于字符型数据的叙述,正确的是( )
A. 字符型数据可存储小数 B. 字符型数据与整型数据完全无关
C. 字符型数据在内存中以二进制形式存储 D. 字符型数据占用 4 字节内存
【答案】C
【解析】字符型数据以 ASCII 码二进制形式存储,占 1 字节
二、判断题。
1.在C语言中,转义字符'
'的功能是回车,将光标移至行首。( )
【答案】错误
【解析】'
'是换行,'\r'是回车,功能混淆。
2.在C语言中,字符变量char占用 1 字节内存,存储字符对应的 ASCII 码值。( )
【答案】正确
【解析】char型变量占 1 字节,以 ASCII 码形式存储。
3.字符串常量"hello"在内存中存储为h e l l o \0,共 6 字节。( )
【答案】正确
【解析】5 个字符 + 1 个'\0'结束符,共 6 字节
4.字符变量与整型变量不可通用,不能互相赋值或输出。( )
【答案】错误
【解析】字符与整数通用,可互相赋值、按不同格式输出。
5.转义字符'\t'的功能是到下一个制表位,实现对齐输出。( )
【答案】正确
【解析】'\t'是制表位转义字符,一般用于实现对齐输出。
6.字符常量'a'与字符串常量"a"占用内存字节数相同,均为 1 字节。( )
【答案】错误
【解析】字符常量占 1 字节,字符串常量占 2 字节('a'+'\0')。
7.字符'A'的 ASCII 码值为 65,'a'的 ASCII 码值为 97,两者相差 32。( )
【答案】正确
【解析】大小写字母 ASCII 码差值为 32。
8.字符串结束标志'\0'的 ASCII 码值为 0,一般用户无需主动添加,系统会自动添加的。( )
【答案】正确
【解析】'\0'是字符串结束符,ASCII 码 0,系统自动添加。
9.int a = 'A';是合法赋值,a的值为 65,可按%c输出字符'A'。( )
【答案】正确
【解析】字符与整数通用,'A'赋值给int变量后值为 65,可按%c输出。
10.字符串常量由双引号包裹,可包含任意多个字符,包括转义字符。( )
【答案】正确
【解析】字符串常量定义允许包含多个字符和转义字符。
三、填空题。
1.字符常量由________包裹,仅存储________个字符,占用________字节内存。
【答案】单引号;1;1
2.转义字符以________开头,需用________包裹,'
'的功能是________。
【答案】反斜杠\;单引号;换行
3.字符串常量由________包裹,末尾自动添加________作为结束标志,占用字节数 =________+1。
【答案】双引号;'\0';字符个数
4.转义字符'\t'功能是________,'\b'功能是________,'\r'功能是________。
【答案】到下一个制表位;退格;回车
5.字符串常量"test"在内存中占用________字节,存储内容为________。
【答案】5;t e s t \0
6.字符'b'的 ASCII 码值为________,字符'B'的 ASCII 码值为________,两者差值为________。
【答案】98;66;32
7.在C语言中,合法转义字符:表示单引号________,表示双引号________,表示反斜杠________。
【答案】'\'';'\"';'\\'
8.变量初始化语句int a=1,b=2;中,同时定义并初始化________个整型变量,a值为________,b值为________。
【答案】2;1;2
9.转义字符'\x41'是________进制表示,对应十进制________,字符为________。
【答案】十六;65;'A'
10.字符变量char ch = '5';,ch + 1的结果为字符________,对应 ASCII 码________。
【答案】'6';54
三、编程题。
1. 定义两个字符变量ch1和ch2,分别初始化为'A'和'a',先按字符格式输出两者,再按整型格式输出两者的 ASCII 码值。
【答案】
#include "stdio.h"
int main() {
char ch1 = 'A', ch2 = 'a';
printf("字符格式:%c, %c
", ch1, ch2);
printf("ASCII码格式:%d, %d
", ch1, ch2);
return 0;
}
2.定义字符变量ch,初始化为转义字符'
',再输出转义字符'\t'、'\b'、'\\',观察输出效果。
【答案】
#include "stdio.h"
int main() {
char ch = '
';
printf("%c", ch); // 换行
printf("制表位:\t 退格后:\b\b 反斜杠:\\");
return 0;
}
3.定义整型变量num初始化为 65,字符变量ch初始化为num,分别按字符和整型输出ch。
【答案】
#include "stdio.h"
int main() {
int num = 65;
char ch = num;
printf("字符格式:%c
", ch);
printf("整型格式:%d
", ch);
return 0;
}
4.同时定义并初始化int a=10、char ch='x'、float f=3.14,输出三个变量的值。
【答案】
#include "stdio.h"
int main() {
int a = 10;
char ch = 'x';
float f = 3.14;
printf("int: %d, char: %c, float: %.2f
", a, ch, f);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$