数据结构(C语言版)习题及答案第四章

数据结构(C语言版)习题及答案第四章习题

4.1选择题

1、空串与空格串是(B)。

A、相同

B、不相同C、不能确定

2、串是一种特殊的线性表,其特殊性体现在(B)。

A、可以顺序存储

B、数据元素是一个字符

C、可以链式存储

D、数据元素可以是多个字符

3、设有两个串p和q,求q在p中首次出现的位置的操作是(B)。

A、连接

B、模式匹配

C、求子串

D、求串长

4、设串1=“ABCDEFG”,2=“PQRST”函数trconcat(,t)返回和t串的连接串,trub(,i,j)返回串中从第i个字符开始的、由连续j 个字符组成的子串。trlength()返回串的长度。则trconcat(trub(1,2,trlength(2)),trub(1,trlength(2),

2))的结果串是(D)。

A、BCDEF

B、BCDEFG

C、BCPQRST

D、BCDEFEF

5、若串=“oftware”,其子串个数是(B)。

A、8

B、37

C、36

D、9

4.2简答题

1、简述空串与空格串、主串与子串、串名与串值每对术语的区别?

答:空串是指长度为0的串,即没有任何字符的串。

空格串是指由一个或多个空格组成的串,长度不为0。

子串是指由串中任意个连续字符组成的子序列,包含子串的串称为主串。串名是串的一个名称,不指组成串的字符序列。

串值是指组成串的若干个字符序列,即双引号中的内容。

2、两个字符串相等的充要条件是什么?

答:条件一是两个串的长度必须相等

条件二是串中各个对应位置上的字符都相等。

3、串有哪几种存储结构?

答:有三种存储结构,分别为:顺序存储、链式存储和索引存储。

4、已知两个串:1=”fgcdbcabcadr”,2=”abc”,试求两个串的长度,判断串2是否是串1的子串,并指出串2在串1中的位置。

答:(1)串1的长度为14,串2的长度为3。

(2)串2是串1的子串,在串2中的位置为9。

5、已知:1=〃I’matudent〃,2=〃tudent〃,3=〃teacher〃,试

求下列各操作的结果:

trlength(1);答:13

trconcat(2,3);答:”tudentteachar”

trdelub(1,4,10);答:I’m

6、设1=”AB”,2=”ABCD”,3=”EFGHIJK,试画出它们在各种存储结构下的结构图。答:

顺序存储方式下:

S3

链式存储方式:

S1S2S34.3算法题

1、试写出将字符串2中的全部字符拷贝到字符串1中的算法,不允许用库函数trcpy()。(可作为上机实践题目)

#include

#definema某len100

tructtring

{

charch[ma某len];//ma某len为数组中存储空间的最大数量

intlen;

};

voidtrcopy(tring&,tringt)

{

inti;

for(i=0;i

.len=t.len;

.ch[.len]='\0';//'\0'表示串的结束,不包含作为串的字符

}

voidprinttring(tring)

for(inti=0;.ch[i]!='\0';i++)

printf("%c",.ch[i]);

printf("\n");

}

voidmain()

{

tring,t;

.len=0;

inti=0;

char某;

printf("输入需要拷贝的串(以输入‘#’为结束标志):\n"); canf("%c",&某);

while(某!='#')

{

canf("%c",&某);

}

t.len=i;

t.ch[t.len]='\0';

trcopy(,t);

printf("原串为:\n");

printtring(t);

printf("拷贝后的串为:\n");

printtring();

}

2、设1和2是用结点大小为1的单链表表示的串,试写出找2中第一个不在1中出现的字符的算法。

#include

#include

typedefcharElemtype;

tructLnode

{

Elemtypedata;

tructLnode某ne某t;

}某L;

//单链表的后插入创建算法voidRcreate(Lnode某L,ElemtypeA[]) {

inti;

Lnode某p,某;

p=L;

for(i=0;A[i]!='\0';i++)

{

=(Lnode某)malloc(izeof(Lnode)); ->data=A[i];

->ne某t=NULL;

p->ne某t=;

p=;

}

}

//单链表的输出算法

voidprintLit(Lnode某L)

{Lnode某p;

if(L->ne某t==NULL)

printf("单链表为空!\n");

ele

{

p=L->ne某t;

while(p->ne某t!=NULL)

{

printf("%c",p->data);

p=p->ne某t;

}

printf("%c\n",p->data);

}

}

charLocateElem(Lnode某1,Lnode某2) {

Lnode某p,某q;

if(2->ne某t==NULL)

printf("串2为空串!\n");

{

if(1->ne某t==NULL)

{

printf("串1为空串!\n");

return2->ne某t->data;

}

ele

{

p=2->ne某t;

while(p!=NULL)

{

q=1->ne某t;

while((q->data!=p->data)&&(q->ne某t!=NULL)) q=q->ne某t;

if(q->data!=p->data)

returnp->data;

p=p->ne某t;

}

}

return'\0';

}

//主函数

voidmain()

{Lnode某1,某2;

charA[40],B[40];

char某;

inti=0,j=0;

printf("输入1串(以输入‘#’为结束标志):\n"); canf("%c",&某);

while(某!='#')

{

A[i++]=某;

canf("%c",&某);

}

A[i]='\0';

1=(Lnode某)malloc(izeof(Lnode));

1->ne某t=NULL;

Rcreate(1,A);

printf("输入2串(以输入‘#’为结束标志):\n"); canf("%c",&某);

while(某!='#')

{

B[j++]=某;

canf("%c",&某);

}

B[j]='\0';

2=(Lnode某)malloc(izeof(Lnode));

2->ne某t=NULL;

Rcreate(2,B);

printf("1串为:");

printLit(1);

printf("2串为:");

printLit(2);

printf("2中第一个不在1中出现的字符为:");

printf("%c",LocateElem(1,2));

}

3、设字符串采用块链存储结构,块链中每个结点存放m(m=4)个字符,试写出实现字符串删除的算法。

#include

#include

#defineN30

#definem4

typedeftructLnode

{

chardata[4];

tructLnode某ne某t;

}Linktring;

intr=0;

voidcreate(Linktring某,charch[][m])

{

Lnode某p,某q;q=;for(intk=0;k

p=(Lnode某)malloc(izeof(Lnode));

for(inti=0;i

p->data[i]=ch[k][i];

p->ne某t=NULL;

q->ne某t=p;q=p;

}

p=(Lnode某)malloc(izeof(Lnode));

p->data[0]='\0';

p->ne某t=NULL;

q->ne某t=p;

}

voiddeltring(Linktring某,inti,intj) {

intk;

Linktring某p=->ne某t,某q,某t;

if(i<=0||i>r||j<0||i+j-1>r)

printf("给定的范围不合法!\n");

{

for(k=0;k

p=p->ne某t;

t=p->ne某t;

q=t->ne某t;

for(k=0;k

free(t);

t=q;

q=t->ne某t;

}

p->ne某t=t;

}

}

voidprinttring(Linktring某,intr)

{

Lnode某p=->ne某t;

if(->ne某t==NULL)

printf("是空串!\n");

ele

{

for(inti=0;i

{

for(intj=0;j

printf("%c",p->data[j]);

printf("\n");

p=p->ne某t;

}

}

}

voidmain()

{

Linktring某;

inti=0,j=0,某,y;chara[N][m],ch;=(Lnode

某)malloc(izeof(Lnode));->ne某t=NULL;printf("请输入相应的字符串(以'#'作为结束标

志!):\n");canf("%c",&ch);while(ch!='#'){a[i][j]=ch;j++;if(j==m){ }i++;j=0;r++;

canf("%c",&ch);}if(j

}

create(,a);

printtring(,r);

printf("开始进行删除操作:\n");

printf("请输入删除结点位置:");

canf("%d",&某);

printf("请输入删除的结点个数:");

canf("%d",&y);

deltring(,某,y);

printf("删除后的字符串为:\n");

printtring(,r-y);

}

4、对于采用顺序存储结构的串,编写一个函数删除其值等于ch的所有字符。(可作为上机实践题目)

#include

#definema某len100

tructtring

{

charch[ma某len];

intlen;

};

//顺序串的创建算法

voidCreate_Sq(tring&,charA[],intn)

{

inti;

for(i=0;i

.ch[i]=A[i];

.len=n;

}

//顺序串输出算法

voidPrintLit(tring)

{

printf("当前顺序串为:");

for(inti=0;i<.len;i++)

printf("%c",.ch[i]);

printf("\n");

}

//删除顺序串中值与某相等的元素voiddel(tring&,char某)

{inti=0;

while(i<.len)

{

if(.ch[i]==某)

{for(intk=i+1;k<.len;k++)

.ch[k-1]=.ch[k];

.len--;

}

ele

i++;

}

}

//主函数

voidmain()

{

tring;

charA[ma某len],ch;

intj=0;

printf("输入删除字符:");

canf("%c",&ch);

printf("请输入顺序串的元素(以'#'作为结束标志!):\n"); canf("%c",&A[j]);

while(A[j]!='#')

{

j++;

canf("%c",&A[j]);

}

Create_Sq(,A,j);

PrintLit();

//printf("输入删除字符:");

//canf("%c",&ch);

del(,ch);

PrintLit();

}

5、对于两个单链表存储的串某和y,编写一个算法找出某中第一个不在y中出现的字符。(可作为上机实践题目)与第二题类似处理

数据结构C语言版(第2版)严蔚敏人民邮电出版社课后习题答案

数据结构(C语言版)(第2版) 课后习题答案 李冬梅 2015.3

目录 第1章绪论 (1) 第2章线性表 (5) 第3章栈和队列 (13) 第4章串、数组和广义表 (26) 第5章树和二叉树 (33) 第6章图 (43) 第7章查找 (54) 第8章排序 (65)

第1章绪论 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。 答案: 数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。 数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。在有些情况下,数据元素也称为元素、结点、记录等。数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。 数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。例如,学生基本信息表中的学号、姓名、性别等都是数据项。 数据对象:是性质相同的数据元素的集合,是数据的一个子集。例如:整数数据对象是集合N={0,±1,±2,…},字母字符数据对象是集合C={‘A’,‘B’,…,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。 逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。 存储结构:数据对象在计算机中的存储表示,也称为物理结构。 抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。 2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 答案: 例如有一张学生基本信息表,包括学生的学号、姓名、性别、籍贯、专业等。每个学生基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。对于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),其他的结点则各有一个也只有一个直接前趋和直接后继。学生记录之间的这种关系就确定了学生表的逻辑结构,即线性结构。 这些学生记录在计算机中的存储表示就是存储结构。如果用连续的存储单元(如用数组表示)来存放这些记录,则称为顺序存储结构;如果存储单元不连续,而是随机存放各个记录,然后用指针进行链接,则称为链式存储结构。 即相同的逻辑结构,可以对应不同的存储结构。 3.简述逻辑结构的四种基本关系并画出它们的关系图。

数据结构课后习题及解析第四章

第四章习题 1. 设s=’I AM A STUDENT’,t=’GOOD’,q=’WORKER’。给出下列操作的结果: StrLength(s); SubString(sub1,s,1,7); SubString(sub2,s,7,1); StrIndex(s,’A’,4);StrReplace(s,’STUDENT’,q); StrCat(StrCat(sub1,t), StrCat(sub2,q)); 2. 编写算法,实现串的基本操作StrReplace(S,T,V)。 3. 假设以块链结构表示串,块的大小为1,且附设头结点。 试编写算法,实现串的下列基本操作: StrAsign(S,chars); StrCopy(S,T); StrCompare(S,T); StrLength(S); StrCat(S,T); SubString(Sub,S,pos,len)。 4.叙述以下每对术语的区别:空串和空格串;串变量和串常量;主串和子串;串变量的名字和串变量的值。 5.已知:S=”(xyz)*”,T=”(x+z)*y”。试利用联接、求子串和置换等操作,将S转换为T. 6.S和T是用结点大小为1的单链表存储的两个串,设计一个算法将串S中首次与T匹配的子串逆置。 7.S是用结点大小为4的单链表存储的串,分别编写算法在第k个字符后插入串T,及从第k个字符删除len个字符。 以下算法用定长顺序串: 8.编写下列算法: (1)将顺序串r中所有值为ch1的字符换成ch2的字符。

(2)将顺序串r中所有字符按照相反的次序仍存放在r中。 (3)从顺序串r中删除其值等于ch的所有字符。 (4)从顺序串r1中第index 个字符起求出首次与串r2相同的子串的起始位置。 (5)从顺序串r中删除所有与串r1相同的子串。 9.写一个函数将顺序串s1中的第i个字符到第j个字符之间的字符用s2串替换。 10.写算法,实现顺序串的基本操作StrCompare(s,t)。 11.写算法,实现顺序串的基本操作StrReplace(&s,t,v)。 实习题 1.已知串S和T,试以以下两种方式编写算法,求得所有包含在S中而不包含在T中的字符构成的新串R,以及新串R中每个字符在串S中第一次出现的位置。 (1)利用CONCAT、LEN、SUB和EQUAL四种基本运算来实现。 (2)以顺序串作为存储结构来实现。 2.编写一个行编辑程序EDLINE,完成以下功能: (1)显示若干行:list [[n1]-[n2]]:显示第n1行到第n2行,n1缺省时,从第一行开始,n2缺省时,到最后一行, (2)删除若干行。del [[n1]-[n2]]: n1、n2说明同(1)。 (3)编辑第n行。edit n:显示第n行的内容,另输入一行替换该行。 (4)插入一行。ins n:在第n行之前插入一行。

数据结构 习题 第四章 串 答案

第四章串 任意串是其自身的子串。若字符串长度为n(n>0),长为n的子串有1个,长为n-1的子串有2个,长为n-2的子串有3个,……,长为1的子串有n个。由于空串是任何串的子串,所以本题的答案为:8*(8+1)/2+1=37。故选B。但某些教科书上认为“空串是任意串的子串”无意义,所以认为选C。为避免考试中的二意性,编者认为第9题出得好。 二、判断题 三.填空题 1.(1) 由空格字符(ASCII值32)所组成的字符串 (2)空格个数 2.字符 3.任意个连续的字符组成的子序列 4.5 5.O(m+n) 6. 7. 8.(1)模式匹配 (2)模式串 9.(1)其数据元素都是字符(2)顺序存储(3)和链式存储(4)串的长度相等且两串中对应位置的字符也相等 10.两串的长度相等且两串中对应位置的字符也相等。 11.’xyxyxywwy’ 12.*s++=*t++ 或(*s++=*t++)!=‘\0’ 13.(1)char s[ ] (2) j++ (3) i >= j 14.[题目分析]本题算法采用顺序存储结构求串s和串t的最大公共子串。串s用i指针(1<=i<=s.len)。t串用j指针(1<=j<=t.len)。算法思想是对每个i(1<=i<=s.len,即程序中第一个WHILE循环),来求从i开始的连续字符串与从j(1<=j<=t.len,即程序中第二个WHILE循环)开始的连续字符串的最大匹配。程序中第三个(即最内层)的WHILE循环,是当s中某字符(s[i])与t中某字符(t[j])相等时,求出局部公共子串。若该子串长度大于已求出的最长公共子串(初始为0),则最长公共子串的长度要修改。 程序(a):(1)(i+k<=s.len)AND(j+k<=t.len) AND(s[i+k]=t[j+k]) //如果在s和t的长度内,对应字符相等,则指针k 后移(加1)。 (2)con:=false //s和t对应字符不等时置标记退出 (3)j:=j+k //在t串中,从第j+k字符再与s[i]比较 (4)j:=j+1 //t串取下一字符 (5)i:=i+1 //s串指针i后移(加1)。 程序(b):(1) i+k<=s.len && j+k<=t.len && s[i+k]==t[j+k] //所有注释同上(a) (2) con=0 (3) j+=k (4) j++ (5) i++ 15.(1)0 (2)next[k] 16.(1)i:=i+1 (2)j:=j+1 (3)i:=i-j+2 (4)j:=1; (5)i-mt(或i:=i-j+1) (6)0 17.程序中递归调用 (1)ch1<>midch //当读入不是分隔符&和输入结束符$时,继续读入字符 (2)ch1=ch2 //读入分隔符&后,判ch1是否等于ch2,得出真假结论。 (3)answer:=true (4)answer:=false (5)read(ch) (6)ch=endch

数据结构(C语言版)第三四章习题答案解析

第3章栈和队列 习题 1.选择题 (1)若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在()种情况。 A.5,4,3,2,1 B.2,1,5,4,3 C.4,3,1,2,5 D.2,3,5,4,1 (2)若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为()。 A.i B.n-i C.n-i+1 D.不确定(3)数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。 A.r-f B.(n+f-r)%n C.n+r-f D.(n+r-f)%n (4)链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。 A.x=top->data;top=top->link; B.top=top->link;x=top->link; C.x=top;top=top->link; D.x=top->link; (5)设有一个递归算法如下 int fact(int n) { //n大于等于0 if(n<=0) return 1; else return n*fact(n-1); } 则计算fact(n)需要调用该函数的次数为()。 A. n+1 B. n-1 C. n D. n+2 (6)栈在()中有所应用。 A.递归调用 B.函数调用 C.表达式求值 D.前三个选项都有(7)为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是()。 A.队列 B.栈 C.线性表 D.有序表(8)设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是()。 A.2 B.3 C.4 D. 6 (9)在一个具有n个单元的顺序栈中,假设以地址高端作为栈底,以top作为栈顶指针,则当作进栈处理时,top的变化为()。 A.top不变 B.top=0 C.top-- D.top++ (10)设计一个判别表达式中左,右括号是否配对出现的算法,采用()数据结构最佳。 A.线性表的顺序存储结构 B.队列 C. 线性表的链式存储结构 D. 栈

数据结构(c语言版)第三版习题解答

数据结构 (C语言版)(第3版) 习题解析 揭安全李云清杨庆红编著 江西师范大学计算机信息工程学院 联系方式:jieanquan@https://www.360docs.net/doc/c919089544.html, 2012年12月

第1章绪论 1.1什么是数据结构? 【答】:数据结构是指按一定的逻辑结构组成的一批数据,使用某种存储结构将这批数据存储于计算机中,并在这些数据上定义了一个运算集合。 1.2 数据结构涉及哪几个方面? 【答】:数据结构涉及三个方面的内容,即数据的逻辑结构、数据的存储结构和数据的运算集合。 1.3 两个数据结构的逻辑结构和存储结构都相同,但是它们的运算集合中有一个运算的定义不 一样,它们是否可以认作是同一个数据结构?为什么? 【答】:不能,运算集合是数据结构的重要组成部分,不同的运算集合所确定的数据结构是不一样的,例如,栈与队列它们的逻辑结构与存储结构可以相同,但由于它们的运算集合不一样,所以它们是两种不同的数据结构。 1.4 线性结构的特点是什么?非线性结构的特点是什么? 【答】:线性结构元素之间的关系是一对一的,在线性结构中只有一个开始结点和一个终端结点,其他的每一个结点有且仅有一个前驱和一个后继结点。而非线性结构则没有这个特点,元素之间的关系可以是一对多的或多对多的。 1.5 数据结构的存储方式有哪几种? 【答】:数据结构的存储方式有顺序存储、链式存储、散列存储和索引存储等四种方式。 1.6 算法有哪些特点?它和程序的主要区别是什么? 【答】:算法具有(1)有穷性(2)确定性(3)0个或多个输入(4)1个或多个输出(5)可 行性等特征。程序是算法的一种描述方式,通过程序可以在计算机上实现算法。 1.7 抽象数据类型的是什么?它有什么特点? 【答】:抽象数据类型是数据类型的进一步抽象,是大家熟知的基本数据类型的延伸和发展。抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。对一个抽象数据类型进行定义时,必须给出它的名字及各运算的运算符名,即函数名,并且规定这些函数的参数性质。一旦定义了一个抽象数据类型及具体实现,程序设计中就可以像使用基本数据类型那样,十分方便地使用抽象数据类型。抽象数据类型的设计者根据这些描述给出操作的具体实现,抽象数据类型的使用者依据这些描述使用抽象数据类型。 1.8 算法的时间复杂度指的是什么?如何表示? 【答】:算法执行时间的度量不是采用算法执行的绝对时间来计算的,因为一个算法在不同的机器上执行所花的时间不一样,在不同时刻也会由于计算机资源占用情况的不同,使得算法在同一台计算机上执行的时间也不一样,另外,算法执行的时间还与输入数据的状态有关,所以对于算法的时间复杂性,采用算法执行过程中其基本操作的执行次数,称为计算量来度量。算法中基本操作的执行次数一般是与问题规模有关的,对于结点个数为n的数据处理问题,用 T(n)表示算法基本操作的执行次数。为了评价算法的执行效率,通常采用大写O符号表示算法 的时间复杂度,大写O符号给出了函数f的一个上限。其它义如下: 定义:f (n)=O (g (n)) 当且仅当存在正的常数c和n0,使得对于所有的n≥n0,有f (n) ≤c g(n)。

《数据结构(C语言版 第2版)》(严蔚敏 著)第四章练习题答案

《数据结构(C语言版第2版)》(严蔚敏著) 第四章练习题答案 第4章串、数组和广义表 1.选择题 (1)串是一种特殊的线性表,其特殊性体现在()。 A.可以顺序存储B.数据元素是一个字符 C.可以链式存储D.数据元素可以是多个字符若 答案:B (2)串下面关于串的的叙述中,()是不正确的? A.串是字符的有限序列B.空串是由空格构成的串 C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储 答案:B 解释:空格常常是串的字符集合中的一个元素,有一个或多个空格组成的串成为空格串, 零个字符的串成为空串,其长度为零。 (3)串“ababaaababaa”的next数组为()。 A.012345678999 B.012121111212 C.011234223456 D.0123012322345 答案:C (4)串“ababaabab”的nextval为()。 A.010104101B.010102101 C.010100011 D.010101011 答案:A (5)串的长度是指()。 A.串中所含不同字母的个数B.串中所含字符的个数 C.串中所含不同字符的个数D.串中所含非空格字符的个数 答案:B 解释:串中字符的数目称为串的长度。 (6)假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单 元,基地址为10,则LOC[5,5]=()。 A.808 B.818 C.1010 D.1020 答案:B 解释:以行序为主,则LOC[5,5]=[(5-1)*100+(5-1)]*2+10=818。 (7)设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数 组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为()。 A.BA+141 B.BA+180 C.BA+222 D.BA+225 答案:B 解释:以列序为主,则LOC[5,8]=[(8-1)*8+(5-1)]*3+BA=BA+180。 (8)设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素, 其存储地址为1,每个元素占一个地址空间,则a85的地址为()。 A.13 B.32 C.33 D.40

数据结构C语言版章节练习题(1-6章)

数据结构章节练习题 第一章绪论 一、单选题 1.一个数组元素a[i]与________的表示等价。 A、 *(a+i) B、 a+i C、 *a+i D、 &a+i 2.下面程序段的时间复杂度为____________。 for(int i=0; i

数据结构(C语言版)习题及答案第四章

数据结构(C语言版)习题及答案第四章习题 4.1选择题 1、空串与空格串是(B)。 A、相同 B、不相同C、不能确定 2、串是一种特殊的线性表,其特殊性体现在(B)。 A、可以顺序存储 B、数据元素是一个字符 C、可以链式存储 D、数据元素可以是多个字符 3、设有两个串p和q,求q在p中首次出现的位置的操作是(B)。 A、连接 B、模式匹配 C、求子串 D、求串长 4、设串1=“ABCDEFG”,2=“PQRST”函数trconcat(,t)返回和t串的连接串,trub(,i,j)返回串中从第i个字符开始的、由连续j 个字符组成的子串。trlength()返回串的长度。则trconcat(trub(1,2,trlength(2)),trub(1,trlength(2), 2))的结果串是(D)。 A、BCDEF B、BCDEFG C、BCPQRST D、BCDEFEF 5、若串=“oftware”,其子串个数是(B)。 A、8 B、37 C、36 D、9 4.2简答题 1、简述空串与空格串、主串与子串、串名与串值每对术语的区别?

答:空串是指长度为0的串,即没有任何字符的串。 空格串是指由一个或多个空格组成的串,长度不为0。 子串是指由串中任意个连续字符组成的子序列,包含子串的串称为主串。串名是串的一个名称,不指组成串的字符序列。 串值是指组成串的若干个字符序列,即双引号中的内容。 2、两个字符串相等的充要条件是什么? 答:条件一是两个串的长度必须相等 条件二是串中各个对应位置上的字符都相等。 3、串有哪几种存储结构? 答:有三种存储结构,分别为:顺序存储、链式存储和索引存储。 4、已知两个串:1=”fgcdbcabcadr”,2=”abc”,试求两个串的长度,判断串2是否是串1的子串,并指出串2在串1中的位置。 答:(1)串1的长度为14,串2的长度为3。 (2)串2是串1的子串,在串2中的位置为9。 5、已知:1=〃I’matudent〃,2=〃tudent〃,3=〃teacher〃,试 求下列各操作的结果: trlength(1);答:13 trconcat(2,3);答:”tudentteachar” trdelub(1,4,10);答:I’m

《数据结构》第四章 串 习题

《数据结构》第四章串习题 基本概念题: 4-1 设S1 =“Data Structure Course”,S2 =“Structure”,S3 =“Base”,求:(1)Length(S1);(2)Compare(S2, S3); (3)Insert(S1, 5, S3);(4)Delete(S1, 5, 9); (5)SubString(S1, 5, 9, T);(6)Search(S1, 0, S2); (7)Replace(S1, 0, S2, S3) 4-2 什么叫串?串和字符在存储方法上有什么不同?空串和空格串是否相同,为什么? 4-3 串是由字符组成的,长度为1的串和字符是否相同。为什么? 4-4 串是不定长的,表示串的长度有几种方法?C语言中的串采用哪种方法? 4-5 可以说串是数据类型固定为字符类型的线性表,但是串操作和线性表操作的主要不同之处在哪里? 4-6 可以用几种存储方法存储串? 4-7 分别写出串的静态数组存储结构和串的动态数组存储结构的结构体定义。 4-8 为什么动态数组结构下串的实现要增加撤消函数? 复杂概念题: 4-9 令t1=“aaab”, t2=“abcabaa”, t3=“abcaabbabcabaacba”,试分别求出他们的next[j]值。 4-10 简述模式匹配的Brute-Force算法思想。简述模式匹配的KMP算法思想。 4-11 简述求子串的next[j]值的算法思想。 算法设计题: 4-12 设串采用静态数组存储结构,编写函数实现两个串的比较Compare(S, T)。要求比较结果有等于和不等于两种情况。 4-13 设串采用静态数组存储结构,编写函数实现两个串的比较Compare(S, T)。要求比较结果有大于、等于和小于三种情况。 4-14 设串采用动态数组存储结构,编写函数实现两个串的比较Compare(S, T)。要求比较结果有大于、等于和小于三种情况。对比本题和习题4-13的算法,说明串的静态数组存储结构和串的动态数组存储结构是否对编写串的比较算法有影响。 4-15 设串采用静态数组存储结构,编写函数实现串的替换Replace(S, start, T, V),即要求在主串S中,从位置start开始查找是否存在子串T,若主串S中存在子串T,则用子串V 替换子串T,且函数返回1;若主串S中不存在子串T,则函数返回0。 4-16 设字符串采用静态数组的顺序存储结构, (1)编写算法删除字符串s中值等于ch的一个字符,并分析该算法的时间复杂度; (2)编写算法删除字符串s中值等于ch的所有字符。 4-17 设字符串采用单字符的链式存储结构,编写删除串s从位置i开始长度为k的子串的算法。 *4-18 设字符串采用块链存储结构,编写删除串s从位置i开始长度为k的子串的算法。 上机实习题: 4-19 在4.4.3节例4-6的基础上,编写比较 Brute-Force算法和KMP算法比较次数的程序。 4-20 设串采用静态数组存储结构,编写函数实现串的替换Replace(S, start, T, V),

数据结构 第4章答案(已核 )

4.7习题 一、选择 (1)串是()。 A 不少于一个字母和序列 B 任意个字母的序列 C 不少于一个字符的序列 D 有限个字符的序列 (2)串的长度是()。 A 串中不同字母的个数 B 串中不同字符的个数 C 串中所含字符的个数,且大于0 D 串中所含字符的个数 (3)设串s1=‘abcdefg’,s2=‘pqrst’,函数CON(X,Y)返回X和串的连接串,SUB (S,I,J)返回串S的从序号I的字符开始的J个字符组成的子串,LEN(S)返回串S的长度,则CON(SUB(s1,2,LEN(s2)),SUB(s1,LEN(s2),2))的结果串是()。 A bcdef B bcdefg C bcpqrst D bcdefef 注释:CON(SUB(s1,2,LEN(s2)), SUB(s1,LEN(s2),2)) = CON(SUB(s1,2,5), SUB(s1,5,2)) = CON(bcdef, ef) =bcdefef (4)数组A[1:5][1:6]的每个元素占5个单元,将其按行优先次序存储在起始起址 为1000的连续的内存单元中,则元素A[5,5]的地址为(A)。 A 1140 B 1145 C 1120 D 1125 注释:该数组为5行6列, 按照公式:Loc[i, j]=Loc[1,1] + (n×(i-1)+j-1)×size, 其中m=5,n=6, size=5 , 那么Loc[5, 5]=Loc[1,1] + (6×(5-1)+5-1)×5=1140 (5)对矩阵压缩存储是为了()。 A 方便运算 B 节省空间 C 方便存储 D 提高运算速度 (6)数组通常具有的两种基本操作是()。 A 插入与删除 B 索引和修改 C 查找和修改 D 查找与删除

数据结构(C语言版)第4-5章习题答案

第4~5章串和数组自测卷答案 一、填空题(每空1分,共20分) 1. 不包含任何字符(长度为0)的串称为空串;由一个或多个空格(仅由空格符)组成的串称为空白串。 (对应严题集4.1①,简答题:简述空串和空格串的区别) 2. 设S=“A;/document/Mary.doc”,则strlen(s)= 20 , “/”的字符定位的位置为3。 4. 子串的定位运算称为串的模式匹配;被匹配的主串称为目标串,子串称为模式。 5. 设目标T=”abccdcdccbaa”,模式P=“cdcc”,则第 6 次匹配成功。 6. 若n为主串长,m为子串长,则串的古典(朴素)匹配算法最坏的情况下需要比较字符的总次数为(n-m+1)*m。 7. 假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为1000,则数组A的体积(存储量)为288 B ;末尾元素A57的第一个字节地址为1282 ;若按行存储时,元素A14的第一个字节地址为(8+4)×6+1000=1072 ;若按列存储时,元素A47的第一个字节地址为(6×7+4)×6+1000)=1276 。 (注:数组是从0行0列还是从1行1列计算起呢?由末单元为A57可知,是从0行0列开始!) 8. 〖00年计算机系考研题〗设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为8950 。 答:不考虑0行0列,利用列优先公式:LOC(a ij)=LOC(a c1,c2)+[(j-c2)*(d1-c1+1)+i-c1)]*L 得:LOC(a32,58)=2048+[(58-1)*(60-1+1)+32-1]]*2=8950 9. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素 的行下标、列下标和元素值。 10.求下列广义表操作的结果: (1)GetHead【((a,b),(c,d))】=== (a, b) ; //头元素不必加括号 (2)GetHead【GetTail【((a,b),(c,d))】】=== (c,d) ; (3)GetHead【GetTail【GetHead【((a,b),(c,d))】】】=== b ; (4)GetTail【GetHead【GetTail【((a,b),(c,d))】】】=== (d); 二、单选题(每小题1分,共15分) ( B )1. 〖李〗串是一种特殊的线性表,其特殊性体现在: A.可以顺序存储B.数据元素是一个字符 C.可以链式存储D.数据元素可以是多个字符 ( B )2. 〖李〗设有两个串p和q,求q在p中首次出现的位置的运算称作: A.连接B.模式匹配C.求子串D.求串长 ( D )3. 〖李〗设串s1=’ABCDEFG’,s2=’PQRST’,函数con(x,y)返回x和y串的连接串,subs(s, i, j)

数据结构课后习题第四章

第四章串 习题4 一、选择题 1.串是一种特殊的线性表,其特殊性体现在()。 A.可以顺序存储 B.数据元素是一个字符 C.可以连接存储 D.数据元素可以是多个字符 2.有两个串P和Q,求P在Q中首次出现的位置的运算称为()。 A.模式匹配 B.联接 C.求子串 D.求串长 3.设S为一个长度为n的字符串,其中的字符各不相同,则S中的互异的非平凡子串(非空且不同于S本身)的个数为()。 A.n2 B.(n2/2)+(n/2) C.(n2/2)+(n/2)-1 D.(n2/2)-(n/2)-1 4.设串s1=“ABCDEFG”,s2=“PQRST”,函数concat(x,y)返回x和y串的连接串,subString(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,Strlength(s)返回串s的长度,则concat(subString(s1,2,Strlength (s2)),subString(s1,Strlength(s2),2)))的结果串是()。 A.BCDEF B.BCDEFG C.BCPQRST D.BCDEFEF 5.顺序串中,根据空间分配方式的不同,可分为()。 A.直接分配和间接分配 B.静态分配和动态分配 C.顺序分配和链式分配 D.随机分配和固定分配 6.设串S=“abcdefgh”,则S的所有非平凡子串(除空串和S自身的串)的个数是()。

A.8 B.37 C.36 D.35 7.设主串的长度为n,模式串的长度为m,则串匹配的KMP算法时间复杂度是()。 A.O(m) B.O(n) C.O(m+n) D.O(n*m) 8.已知串S=“aaab”,其next数组值为()。 A.0123 B.1123 C.1231 D.1211 二丶填空题 1.在空串和空格串中,长度不为0的是()。 2.空格串是指(),其长度等于()。 3.按存储结构的不同,串可分为()、()和()。 4.C语言中,以字符()表示串值的终结。 5.在块链串中,为了提高存储密度,应该增大()。 6.假设每个字符占1个字节,若结点大小为4个字节的链串的存储密度为50%,则其每个指针占()个字节。 7.串操作虽然较多,但都可以通过五中基本操作()、()、()、()和()构成的最小子集中的操作来实现。 8.设串S=“Ilikecomputer.”,T=“com”,则Length(S)=(),Index(S,T,1)=()。 9.在KMP算法中,next[j]只与()串有关,而与()串无关。 10.字符串“ababaaab”的nextval函数值为()。 11.两个字符串相等的充分必要条件是()。 12.实现字符串复制的函数strcpy为:

数据结构c语言版第三版习题解答

数据结构c语言版第三版习题解答数据结构是计算机科学中非常重要的一门学科,它研究如何在计算 机中存储和组织数据,以便有效地进行检索和操作。数据结构的知识 对于编写高效的程序和解决复杂的问题至关重要。在学习和理解数据 结构的过程中,解决习题是一种非常有效的方法。本文将为读者提供《数据结构C语言版(第三版)》习题的解答。 1. 第一章:绪论 第一章主要介绍了数据结构的基本概念和内容,包括算法和数据结 构的概念、抽象数据类型(ADT)以及算法的评价等。习题解答中, 我们可以通过分析和讨论的方式对这些概念进行加深理解。 2. 第二章:算法分析 第二章主要介绍了算法的基本概念和分析方法,包括时间复杂度和 空间复杂度的计算方法。习题解答中,我们可以通过具体的算法实例 来计算其时间和空间复杂度,加深对算法分析的理解。 3. 第三章:线性表 第三章主要介绍了线性表的概念和实现,包括顺序表和链表两种实 现方式。习题解答中,我们可以通过编写代码实现线性表的基本操作,并分析其时间和空间复杂度。 4. 第四章:栈和队列

第四章主要介绍了栈和队列的概念和实现,包括顺序栈、链栈、顺 序队列和链队列四种实现方式。习题解答中,我们可以通过编写代码 实现栈和队列的基本操作,并分析其时间和空间复杂度。 5. 第五章:串 第五章主要介绍了串的概念和实现,包括顺序串和链串两种实现方式。习题解答中,我们可以通过编写代码实现串的基本操作,并分析 其时间和空间复杂度。 6. 第六章:树 第六章主要介绍了树的概念和实现,包括二叉树、哈夫曼树和赫夫 曼编码等内容。习题解答中,我们可以通过编写代码实现树的基本操作,并分析其时间和空间复杂度。 7. 第七章:图 第七章主要介绍了图的基本概念和实现,包括图的表示方法和图的 遍历算法等。习题解答中,我们可以通过编写代码实现图的基本操作,并分析其时间和空间复杂度。 8. 第八章:查找 第八章主要介绍了查找算法的基本概念和实现,包括顺序查找、二 分查找、哈希查找等内容。习题解答中,我们可以通过编写代码实现 不同查找算法,并分析其时间和空间复杂度。 9. 第九章:排序

数据结构(C语言版)第三版__清华大学出版社_习题参考答案

数据结构(C语言版)第三版__清华大学出版 社_习题参考答案 数据结构(C语言版)第三版__清华大学出版社_习题参考答案 引言: 数据结构是计算机科学的基础,对于学习和理解数据结构的相关概念和算法非常重要。本文将对清华大学出版社出版的《数据结构(C语言版)第三版》中的习题进行参考答案的提供。通过正确的理解和掌握这些习题的解答,读者可以加深对数据结构的认识,并提高自己的编程能力。 第一章:绪论 1.1 数据结构的定义与作用 数据结构是指数据对象以及数据对象之间的关系、运算和存储结构的总称。数据结构的作用是在计算机中高效地组织和存储数据,同时支持常见的数据操作和算法。 1.2 算法的定义与特性 算法是解决特定问题的一系列步骤和规则。算法具有确定性、有穷性、可行性和输入输出性等特点。 第二章:线性表 2.1 线性表的定义和基本操作

线性表是同类型数据元素的一个有限序列。线性表的基本操作包括初始化、查找、插入、删除和遍历等。 2.2 顺序存储结构 顺序存储结构是将线性表中的元素按顺序存放在一块连续的存储空间中。顺序存储结构的特点是随机存取、插入和删除操作需要移动大量元素。 2.3 链式存储结构 链式存储结构通过结点之间的指针链表来表示线性表。链式存储结构的特点是插入和删除操作方便,但查找操作需要遍历整个链表。 第三章:栈和队列 3.1 栈的定义和基本操作 栈是只能在一端进行插入和删除操作的线性表。栈的基本操作包括初始化、入栈、出栈和获取栈顶元素等。 3.2 队列的定义和基本操作 队列是只能在一端插入操作,在另一端进行删除操作的线性表。队列的基本操作包括初始化、入队、出队和获取队头元素等。 第四章:串 4.1 串的定义和基本操作

数据结构1-4章习题答案

第1章概论习题参考解答 一、填空题 1、数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:()、()、()、()。 【答】集合、线性结构、树型结构和图状结构。 2、数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:()、()、()、()。 【答】顺序存储方法、链接存储方法、索引存储方法和散列存储方法。 二、选择题 1、一个算法必须在执行有穷步之后结束,这是算法的()。 (A)正确性(B)有穷性 (C)确定性(D)可行性 【答】B。 2、算法的每一步,必须有确切的定义。也就是说,对于每步需要执行的动作必须严格、清楚地给出规定。这是算法的()。 (A)正确性(B)有穷性 (C)确定性(D)可行性 【答】C。 3、算法原则上都是能够由机器或人完成的。整个算法好像是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作。这是算法的()。 (A)正确性(B)有穷性 (C)确定性(D)可行性 【答】D。 三、简答题 1、算法与程序有何异同? 【答】尽管算法的含义与程序非常相似,但两者还是有区别的。首先,一个程序不一定满足有穷性,因此它不一定是算法。例如,系统程序中的操作系统,只要整个系统不遭受破坏,它就永远不会停止,即使没有作业要处理,它仍处于等待循环中,以待一个新作业的进入。因此操作系统就不是一个算法。其次,程序中的指令必须是计算机可以执行的,而算法中的指令却无此限止。如果一个算法采用机器可执行的语言来书写,那么它就是一个程序。 2、什么是数据结构?试举一个简单的例子说明。 【答】数据结构是指数据对象以及该数据对象集合中的数据元素之间的相互关系(即数据元素的组织形式)。例如,队列的逻辑结构是线性表(先进先出);队列在计算机中既可以采用顺序存储也可以采用链式存储;对队列可进行删除、插入数据元素以及判断是否为空队列、将队列置空等操作。 3、什么是数据的逻辑结构?什么是数据的存储结构? 【答】数据元素之间的逻辑关系,也称为数据的逻辑结构。数据元素以及它们之间的相互关系在计算机存储器内的表示(又称映象),称为数据的存储结构,也称数据的物理结构。

(完整版)数据结构复习题目及答案

《数据结构-C语言版》 第一章绪论 单项选择题 1.在数据结构中,数据的基本单位是_____ ____。 A. 数据项 B. 数据类型 C. 数据元素 D. 数据变量 2.数据结构中数据元素之间的逻辑关系被称为__ ____。 A. 数据的存储结构 B. 数据的基本操作 C. 程序的算法 D. 数据的逻辑结构3.在数据结构中,与所使用计算机无关的是数据的____ ___。 A. 存储结构 B. 逻辑和物理结构 C. 逻辑结构 D. 物理结构4.在链式存储结构中,数据之间的关系是通过____ ____体现的。 A. 数据在内存的相对位置 B. 指示数据元素的指针 C. 数据的存储地址 D. 指针 5.计算算法的时间复杂度是属于一种____ ___。 A. 事前统计的方法 B. 事前分析估算的方法 C. 事后统计的方法 D. 事后分析估算的方法 6.在对算法的时间复杂度进行估计的时候,下列最佳的时间复杂度是____ __。 A. n2 B. nlogn C. n D. logn 7.设使用某算法对n个元素进行处理,所需的时间是T(n)=100nlog2n+200n+2000,则该算法的渐近时间复杂度为____ ___。 A. O(1) B. O(n) C. O(200n) D. O(nlog2n)

CDCBBDD 第二章线性表 单项选择题 1.链表不具有的特点是____ ____。 A. 可随机访问任一元素 B. 插入和删除时不需要移动元素 C. 不必事先估计存储空间 D. 所需空间与线性表的长度正比 2.设顺序表的每个元素占8个存储单元。第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址为。 A. 139 B. 140 C. 147 D. 148 3.在线性链表存储结构下,插入操作算法。 A. 需要判断是否表满 B. 需要判断是否表空 C. 不需要判断表满 D. 需要判断是否表空和表满 4.在一个单链表中,若删除p所指结点的后继结点,则执行。 A. p->next = p->next->next; B. p->next = p->next; C. p = p->next->next; D. p = p->next; p->next = p->next->next; 5.将长度为n的单链表接在长度为m的单链表之后的算法时间复杂度为。A. O(n) B. O(1) C. O(m) D. O(m+n) 6.需要预分较大空间,插入和删除不需要移动元素的线性表,其存储结构是。 A. 单链表 B. 静态链表 C. 线性链表 D. 顺序存储方式ACCABB 填空题 1.在带表头结点的单链表中,当删除某一指定结点时,必须找到该结点的_____结点。2.在单链表中,指针p所指结点为最后一个结点的条件是。 3.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是。4.在一个长度为n的顺序表中第i个元素(1≤i≤n)之前插入一个元素时,需向后移动元素的个数是。 5.在长度为n的顺序表中插入一个元素的时间复杂度为。 1前驱 2 p->next==NULL

C语言第四章习题及答案(课余练习-不用提交)

第四章习题答案 一、选择题 1)以下是if语句的基本形式: if(表达式) 语句 其中"表达式" A)必须是逻辑表达式 B)必须是关系表达式 C)必须是逻辑表达式或关系表达式 D)可以是任意合法的表达式 2)以下选项中,值为1的表达式是()。 A)1-'0' B)1-'\0' C)'1'-0 D)'\0'-'0' 3)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是: A)1 B)0 C)2 D)不知道a的值,不能确定 4)若变量已正确定义,在if (W)printf(“%d\n”,k);中,以下不可替代W的是A)a<>b+c B)ch=getchar()C)a==b+c D)a++ 5)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是 A)if(x++); B)if(x>y&&y!=0); C)if(x>y) x- - D)if(y<0) {;} else y++; else x++; 6) 以下选项中,当x为大于1的奇数时,值为0的表达式 A)x%2==1 B)x%2 C)x%2!=0 D)x%2==0 7) 设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是 A)(EXP= =0) B)(EXP!=0)C)(EXP= =1)D)(EXP!=1) 8) 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是 A)(!E=0) B) (E>0||E<0) C) (E==0) D) (E!=0) 9)若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是()。 A)(x-y>0) B)(x-y<0) C)(x-y<0||x-y>0) D)(x-y==0) 10) 若有表达式(w)?(--x):(++y),则其中与w等价的表达式是 ( ) A)w==1 B) w==0 C) w! =1 D) w! =0 11) 设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是 A)if(a>b) c=a,a=b,b=c; B)if(a>b){c=a,a=b,b=c;} C)if(a>b) c=a;a=b;b=c; D)if(a>b){c=a;a=b;b=c;} 12) 已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的 值为大写字母的表达式是 A)kk>='A'&&kk<='Z' B)!(kk>='A'‖kk<='Z') C)(kk+32)>='a'&&(kk+32)<='z' D)isalpha(kk)&&(kk<91) isalpha(c) 判断参数c是否为英文字母头文件:ctype.h isupper(c) 判断参数c是否为大写英文字母是返回非零值,否则返回零islower(c ) 检查参数c是否为小写英文字母 13)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是 A)isupper(c) B)’A’<=c<=’Z’ C)’A’<=c&&c<=’Z’D)c<=(‘z’-32)&&(‘a’-32)<=c

相关主题
相关文档
最新文档