数据结构期末复习 第四章字符串一、选择题1以下陈述中正确的是A。A串是一种特殊的线性表 B串的长度必须大于零C串中元素只能是字母 D空串就是空白串2设有两个串p和q其中q是p的子串q在p中首次出现的位置的算法称为C。A求子串 B连接C匹配 D求串长3串是D。A不少于一个字母的序列 B任意个字母的序列C不少于一个字符的序列 D有限个字符的序列4串的长度是指B。A串中所含不同字母的个数 B串中所含字符的个数C串中所含不同字符的个数 D串中所含非空格字符的个数5. 若串S“English”其子串的个数是D。A9 B16 C 36 D28解析一个长度为n的字符串子串个数为长度为n的子串1个长度为n−1的子串2个长度为n−2的子串3个...长度为1的子串n个6下面关于串的叙述中不正确的是B。A串是字符的有限序列B空串是由空格构成的串C模式匹配是串的一种重要运算D串即可以采用顺序存储也可以采用链式存储7串与普通的线性表相比较它的特殊性体现在C。A顺序的存储结构 B链接的存储结构C数据元素是一个字符 D数据元素可以任意8空串与空格串B。A相同 B不相同 C可能相同 D无法确定9两个字符串相等的条件是D。A两串的长度相等B两串包含的字符相同C两串的长度相等并且两串包含的字符相同D两串的长度相等并且对应位置上的字符相同10串函数Strcata,b的功能是进行串D。A比较 B复制 C赋值 D连接11串函数StrCmp“ABCd”“ABCD”的值为C。A0 B-1 C1 D312设主串为“FABcCDABcdEFaBc”以下模式串能与主串成功匹配的是A。A. EFaBc B. ABCdEC. DABCC D .FAbcC13以下四个串中最小的是A。A”ABADF” B”ABAFD”C”ABADFA” D”ABAF”14在实际应用中要输入多个字符串且长度无法预定。则应该采用A存储比较合适。A链式 B顺序 C堆结构 D无法确定二、判断题1. 用字符数组存储长度为n的字符串数组长度至少为n1。√2串是一种特殊的线性表其特殊性表现在组成串的数据元素都是字符。√3串的两种最基本的存储方式是顺序和链接。√4空串的长度是1。×5. 一个空格的串的长度是0。×6两个串相等的充分必要条件是每一个对应位置的字符相同。×解析两个串相等必须同时满足两个条件长度相等对应位置上的字符相同7. 字符串a1〝heijing〞, a2 〝hen〞 , a3 〝heifang〞, a4“heni〞最小的是a2。×8串函数StrCmp“ABCd”“ABCD”的值为-1。×三、程序选择题1. 一下程序段的结果是c的值为Achar *a[5]{“12378”,”1237”,”1236789”,”1237”,”123708”}int i,c0for(i0;i5;i)if (strcmp(a[i],”1237”)0) c;A.2 B.5 C.0 D.12372. 以下程序段的结果是c的值为char a[5]”1236789”int*pa,c0;While (*p) c;A.9 B.7 C.8 D.5解析上面代码有两处错误第一处是数组长度不足第二处是p指针类型不匹配。上面的代码测试结果如下并且有两个错误警告[Warning] initializer-string for array of chars is too long[Warning] initialization from incompatible pointer type如果把p指针改为char类型测试如下并且有1个错误警告[Warning] initializer-string for array of chars is too long实质上上面两段代码不在同机子上测试会有不同的结果while什么时候停止就看什么时候碰巧遇到’\0’。所以严格来讲本题没有答案如果根据出题者的意图来看应该选B