字符串数组小测验
1. 学号:_________姓名:_________
1、在C语言中,字符串的结束标记是()
A.'0'
B."\0"
C.'\0'
D.空格字符
2、有定义 char str[10]; 该字符数组存放字符串,最多可以存储的有效字符个数为()
A.10
B.9
C.8
D.不限
3、下面能够正确定义C语言字符串的语句是()
A.char s[4]={"abcd"};
B.char s[]={"abcd"};
C.char s[4]={"abcd"};
D.char s[]={'a','b','c','d'};
4、已知 char str[]="hello";,数组str占用内存字节数为()
A.5
B.8
C.6
D.7
5、C语言标准库处理字符串函数,需要包含哪个头文件()
A.#include <string.h>
B.#include <stdio.h>
C.#include <math.h>
D.#include <stdlib.h>
6、函数strlen()的作用是()
A.求取字符数组总内存字节大小
B.拷贝字符串
C.字符串比较
D.统计字符串有效字符个数,不计入'\0'
7、下列关于strcpy拷贝函数说法正确的是()
A.strcpy会自动检查目标数组空间大小,防止越界
B.strcpy将源字符串连同'\0'一起拷贝到目标字符数组
C.可以使用strcpy直接拷贝数字数组
D.strcpy拷贝完成后会删除源字符串内容
8、设有定义 char s1[20]="java",char s2[]="c";,执行strcat(s1,s2);之后s1中字符串为()
A.java
B.cjava
C.javac
D.javac\0
9、strcmp(str1,str2)函数返回值描述正确的是()
A.字符串相等返回0;str1大于str2返回正数;str1小于str2返回负数
B.相等返回1,不相等返回0
C.返回两个字符串总长度差值
D.返回字符串第一个不同字符的字符
10、下面代码 char arr[]={'a','b','c'}; 关于arr描述正确的是()
A.arr是合法C语言字符串
B.数组末尾自动存在'\0'
C.可以直接使用puts(arr)安全输出字符串
D.仅普通字符数组,不属于字符串,无自动结束标记
11、已知 char str[12]; 下列操作语法错误的是()
A.gets(str);
B.str="program";
C.scanf("%s",str);
D.puts(str);
12、执行 char str[]={"HelloWorld"}; ,sizeof(str) 和 strlen(str)结果分别为()
A.10 ,10
B.10 ,11
C.11 ,10
D.11 ,11
13、如果定义 char name[5][20];,下面说法正确的是()
A.可以存储5个字符串,每个字符串最多19个有效字符
B.可以存储20个字符串
C.name[5]是合法字符串
D.每个字符串最多20个有效字符
14、使用scanf("%s",str)读取字符串,下面描述正确的是()
A.可以读取带空格完整句子
B.读取结束不会自动加'\0'
C.会检查数组大小防止越界
D.遇到空格、回车就停止读取
15、想要读取包含空格的一行字符串,适合使用的函数是()
A.scanf("%s",str)
B.gets(str)
C.strcpy
D.strcmp
16、下列属于C语言合法字符串初始化写法的有()
A.char str[4]={"test"};
B.char str[]={"abc123"};
C.char str[20]={"c language"};
D.char str[]="hello";
17、关于strlen与sizeof区别,说法正确的有()
A.strlen返回字符串有效字符数目,不包含'\0'
B.sizeof返回整个数组占用内存总字节数,包含'\0'
C.strlen可以用于任意int整型数组求长度
D.sizeof是运算符,strlen是库函数
18、对于char buf[30];,下面说法错误的有()
A.buf="student";
B.strcpy(buf,"student");
C.strcat(buf,"student");
D.buf{'s','t','u'};
19、关于strcpy函数,描述正确的有()
A.strcpy会自动检查目标数组空间大小避免溢出
B.拷贝时连同'\0'结束标记一起复制
C.目标字符数组空间必须大于等于源字符串总字节数
D.可以用来拷贝int类型数组数据
20、关于strcmp(s1,s2),下列说法正确的有()
A.两个字符串完全相等返回0
B.比较依据是字符对应的ASCII码值
C.返回两个字符串长度的差值
D.第一个字符不同即停止向后比较
21、已知 char str[]={"I love c"};,下面描述正确的有()
A.strlen(str)结果等于8
B.strlen(str)结果等于7
C.sizeof(str)等于7
D.sizeof(str)等于8
22、对于二维字符数组 char name[6][15];,叙述正确的有()
A.最多存放6个字符串
B.最多存放15个字符串
C.每个字符串最多14个有效字符
D.name[2]代表第3行字符串的首地址
23、下列操作,会造成字符串缓冲区越界风险的有()
A.char s[5]; strcpy(s,"abcdefgh");
B.char s[6]; scanf("%s",s);输入超过5个字符
C.char s[5]; gets(s);输入长字符串
D.char s[10]; strcpy(s,"hi");
关闭
更多问卷
复制此问卷