内容正文:
举一反三考点练
《C语言程序设计》数组与结构类型-课后自测
知识点一 字符数组的定义、引用、输入与输出
1. (单项选择题)以下哪个函数不能用于字符数组的输入?( )
A. scanf函数 B. gets函数 C. printf函数 D. putchar函数
【答案】C
【解析】printf函数用于输出,不能用于输入字符数组。
2. (判断题)字符数组的下标是从1开始的。( )
【答案】×
【解析】字符数组的下标是从0开始的。
3. (填空题)定义一个长度为20的字符数组,应使用以下语句:char 数组名[______];。
【答案】20
【解析】根据字符数组的定义格式,长度为20的字符数组应定义为char 数组名[20];
4. (单项选择题)以下哪个操作是错误的?( )
A. char str[10]; str[0] = 'A';
B. char str[10]; scanf("%s", str);
C. char str[10]; printf("%s", str);
D. char str[10]; str[10] = 'B';
【答案】D
【解析】字符数组的下标最大值为数组长度减1,所以str[10]是越界的。
5. (判断题)使用gets函数输入字符数组时,可以输入超过数组长度限制的字符串。( )
【答案】√
【解析】gets函数不会检查数组长度,容易导致缓冲区溢出。
6. (填空题)要输出字符数组中的单个字符,可以使用以下函数:%s格式控制符的输出函数是______。
【答案】printf
【解析】输出字符数组中的单个字符,可以使用printf函数,格式控制符为"%c"。
7. (单项选择题)以下哪个函数用于输出字符数组中的所有字符?( )
A. scanf函数 B. gets函数 C. printf函数 D. putchar函数
【答案】C
【解析】printf函数使用"%s"格式控制符可以输出字符数组中的所有字符。
知识点二 常用字符串处理函数:strlen()、strcat()、strcpy()、strcmp()
1. (单项选择题)strlen()函数用于计算字符串的长度,以下关于strlen()函数的说法错误的是?( )
A. 计算的是不包括末尾空字符的字符个数
B. 返回值是字符串的实际长度
C. 参数必须是字符数组
D. 参数指向的字符串必须以空字符结尾
【答案】C
【解析】strlen()函数的参数是指向字符串的指针,不一定是字符数组。
2. (判断题)strcat()函数在连接字符串时,会自动为目标字符串分配足够的空间。( )
【答案】×
【解析】strcat()函数不会为目标字符串分配空间,使用前需要确保目标字符串有足够的空间。
3. (填空题)strcpy()函数用于将______字符串复制到______字符串中。
【答案】源、目标
【解析】strcpy()函数的第一个参数是目标字符串,第二个参数是源字符串。
4. (单项选择题)以下关于strcmp()函数的说法正确的是?( )
A. 比较的是字符串的长度
B. 如果两个字符串相等,返回1
C. 如果第一个字符串大于第二个字符串,返回正数
D. 如果第一个字符串小于第二个字符串,返回0
【答案】C
【解析】strcmp()函数比较的是字符串中相应位置字符的ASCII值,如果第一个字符串大于第二个字符串,返回正数。
5. (判断题)strlen()函数计算字符串长度时,会计算末尾的空字符。( )
【答案】×
【解析】strlen()函数计算字符串长度时不包括末尾的空字符。
6. (填空题)使用strcat()函数时,需要确保______字符串有足够的空间来存储连接后的字符串。
【答案】目标
【解析】strcat()函数将源字符串连接到目标字符串的末尾,因此需要确保目标字符串有足够的空间。
7. (单项选择题)以下哪个函数用于复制字符串?( )
A. strcat() B. strcpy() C. strlen() D. strcmp()
【答案】B
【解析】strcpy()函数用于复制字符串。
知识点三 简单一维数值型数组循环程序设计
1. (单项选择题)以下哪个选项不是一维数组元素初始化的正确方式?( )
A. int arr[5] = {1, 2, 3, 4, 5};
B. int arr[5] = {1, 2};
C. int arr[5] = {[1] = 3, [4] = 5};
D. int arr[5] = {1, 2, 3, 4, 5, 6};
【答案】D
【解析】选项D中初始化的元素个数超出了数组的长度,所以是不正确的。
2. (判断题)一维数组在内存中是按照顺序连续存储的。( )
【答案】√
【解析】一维数组中的元素是按照定义时的顺序在内存中连续存储的。
3. (填空题)使用______循环结构可以实现对一维数组的遍历。
【答案】for
【解析】for循环是遍历一维数组常用的循环结构。
4. (单项选择题)以下哪个循环控制语句可以用来跳过当前循环的剩余部分,直接进入下一次循环?( )
A. break B. continue C. return D. goto
【答案】B
【解析】continue语句用于跳过当前循环体的剩余部分,直接进行下一次循环的条件判断。
5. (判断题)在C语言中,数组的下标是从1开始的。( )
【答案】×
【解析】在C语言中,数组的下标是从0开始的。
6. (填空题)定义一个包含10个整数的数组,应使用______来定义。
【答案】int arr[10];
【解析】按照一维数组的定义格式,这是正确的定义方式。
7. (单项选择题)以下关于数组初始化的描述错误的是?( )
A. 如果初始化时提供的元素少于数组长度,剩余的元素将被自动初始化为0
B. 可以通过指定下标的方式初始化数组中的特定元素
C. 在初始化时,花括号{ }内的元素个数不能超过数组的长度
D. 数组可以在声明时不初始化,但在使用前必须全部初始化
【答案】D
【解析】数组可以在声明时不初始化,也可以在使用前只初始化部分元素,其余元素将自动初始化为0。
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
举一反三考点练
《C语言程序设计》数组与结构类型-课后自测
知识点一 字符数组的定义、引用、输入与输出
1. (单项选择题)以下哪个函数不能用于字符数组的输入?( )
A. scanf函数 B. gets函数 C. printf函数 D. putchar函数
2. (判断题)字符数组的下标是从1开始的。( )
3. (填空题)定义一个长度为20的字符数组,应使用以下语句:char 数组名[______];。
4. (单项选择题)以下哪个操作是错误的?( )
A. char str[10]; str[0] = 'A';
B. char str[10]; scanf("%s", str);
C. char str[10]; printf("%s", str);
D. char str[10]; str[10] = 'B';
5. (判断题)使用gets函数输入字符数组时,可以输入超过数组长度限制的字符串。( )
6. (填空题)要输出字符数组中的单个字符,可以使用以下函数:%s格式控制符的输出函数是______。
7. (单项选择题)以下哪个函数用于输出字符数组中的所有字符?( )
A. scanf函数 B. gets函数 C. printf函数 D. putchar函数
知识点二 常用字符串处理函数:strlen()、strcat()、strcpy()、strcmp()
1. (单项选择题)strlen()函数用于计算字符串的长度,以下关于strlen()函数的说法错误的是?( )
A. 计算的是不包括末尾空字符的字符个数
B. 返回值是字符串的实际长度
C. 参数必须是字符数组
D. 参数指向的字符串必须以空字符结尾
2. (判断题)strcat()函数在连接字符串时,会自动为目标字符串分配足够的空间。( )
3. (填空题)strcpy()函数用于将______字符串复制到______字符串中。
4. (单项选择题)以下关于strcmp()函数的说法正确的是?( )
A. 比较的是字符串的长度
B. 如果两个字符串相等,返回1
C. 如果第一个字符串大于第二个字符串,返回正数
D. 如果第一个字符串小于第二个字符串,返回0
5. (判断题)strlen()函数计算字符串长度时,会计算末尾的空字符。( )
6. (填空题)使用strcat()函数时,需要确保______字符串有足够的空间来存储连接后的字符串。
7. (单项选择题)以下哪个函数用于复制字符串?( )
A. strcat() B. strcpy() C. strlen() D. strcmp()
知识点三 简单一维数值型数组循环程序设计
1. (单项选择题)以下哪个选项不是一维数组元素初始化的正确方式?( )
A. int arr[5] = {1, 2, 3, 4, 5};
B. int arr[5] = {1, 2};
C. int arr[5] = {[1] = 3, [4] = 5};
D. int arr[5] = {1, 2, 3, 4, 5, 6};
2. (判断题)一维数组在内存中是按照顺序连续存储的。( )
3. (填空题)使用______循环结构可以实现对一维数组的遍历。
4. (单项选择题)以下哪个循环控制语句可以用来跳过当前循环的剩余部分,直接进入下一次循环?( )
A. break B. continue C. return D. goto
5. (判断题)在C语言中,数组的下标是从1开始的。( )
6. (填空题)定义一个包含10个整数的数组,应使用______来定义。
7. (单项选择题)以下关于数组初始化的描述错误的是?( )
A. 如果初始化时提供的元素少于数组长度,剩余的元素将被自动初始化为0
B. 可以通过指定下标的方式初始化数组中的特定元素
C. 在初始化时,花括号{ }内的元素个数不能超过数组的长度
D. 数组可以在声明时不初始化,但在使用前必须全部初始化
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$