文档库 最新最全的文档下载
当前位置:文档库 › 第4章 串与数组 习题参考答案

第4章 串与数组 习题参考答案

第4章 串与数组 习题参考答案
第4章 串与数组 习题参考答案

习题四参考答案

一、选择题

1.下面关于串的叙述中,哪一个是不正确的?(B )

A.串是字符的有限序列

B.空串是由空格构成的串

C.模式匹配是串的一种重要运算

D.串既可以采用顺序存储,也可以采用链式存储

2.串的长度是指( A )

A. 串中包含的字符个数

B. 串中包含的不同字符个数

C. 串中除空格以外的字符个数

D. 串中包含的不同字母个数

3.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( C )A.求子串B.联接C.模式匹配D.求串长

4.设主串的长度为n,模式串的长度为m,则串匹配的KMP算法时间复杂度是( C )。

A. O(m)

B. O(n)

C. O(n + m)

D. O(n×m)

5. 串也是一种线性表,只不过( A )。

A. 数据元素均为字符

B. 数据元素是子串

C. 数据元素数据类型不受限制

D. 表长受到限制

6.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主进行存储,a11为第一元素,

其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。

A. 13

B. 33

C. 18

D. 40

7. 有一个二维数组A[1..6, 0..7] ,每个数组元素用相邻的6个字节存储,存储器按字节编址,

那么这个数组占用的存储空间大小是(D )个字节。

A. 48

B. 96

C. 252

D. 288

8.设有数组A[1..8,1..10],数组的每个元素占3字节,数组从内存首地址BA开始以列序

为主序顺序存放,则数组元素 A[5,8]的存储首地址为( B )。

A. BA+141

B. BA+180

C. BA+222

D. BA+225

9. 稀疏矩阵的三元组存储表示方法( B )

A. 实现转置操作很简单,只需将每个三元组中行下标和列下标交换即可

B. 矩阵的非零元素个数和位置在操作过程中变化不大时较有效

C. 是一种链式存储方法

D. 比十字链表更高效

10. 用十字链表表示一个稀疏矩阵,每个非零元素一般用一个含有( A )域的结点表示。

A.5

B.4

C. 3

D. 2

二、填空题

1. 一个串的任意连续字符组成的子序列称为串的子串,该串称为主串。2.串长度为0的串称为空串,只包含空格的串称为空格串。

3. 若两个串的长度相等且对应位置上的字符也相等,则称两个串相等。

4. 寻找子串在主串中的位置,称为模式匹配。其中,子串又称为模式串。

5. 模式串t="ababaab"的next[]数组值为-1001231,nextval[]数组值为-10-10-130。

6. 设数组A[1..5,1..6]的基地址为1000,每个元素占5个存储单元,若以行序为主序顺序

存储,则元素A[5,5]的存储地址为1140。

7.在稀疏矩阵的三元组顺序表存储结构中,除表示非零元的三元组表以外,还需要表示矩阵的行数、列数和非零元个数。

8.一个n×n的对称矩阵,如果以相同的元素只存储一次的原则进行压缩存储,则其元素压缩后所需的存储容量为 n(n+1)/2 。

9.对矩阵压缩的目的是为了节省存储空间。

10.稀疏矩阵一般采用的压缩存储方法有两种,即三元组和十字链表。

第四章-串-习题及答案.doc

第四章串习题及答案 一、基础知识题 4.1 简述下列每对术语的区别: 空串和空白串;串常量和串变量;主串和子串;静态分配的顺序串和动态分配的顺序串;目标串和模式串;有效位移和无效位移。 4.2 假设有如下的串说明: char s1[30]="Stocktom,CA", s2[30]="March 5 1999", s3[30], *p; (1)在执行如下的每个语句后p的值是什么? p=stchr(s1,'t'); p=strchr(s2,'9'); p=strchr(s2,'6'); (2)在执行下列语句后,s3的值是什么? strcpy(s3,s1); strcat(s3,","); strcat(s3,s2); (3)调用函数strcmp(s1,s2)的返回值是什么? (4)调用函数strcmp(&s1[5],"ton")的返回值是什么? (5)调用函数stlen(strcat(s1,s2))的返回值是什么? 4.3 设T[0..n-1]="adaabaabcaabaa",P[0..m-1]="aab".当用模式串匹配目标串T时,请给出所有的有效位移。算法NaiveStrMatch(T,P)返回的位移是哪一个位移。 二、算法设计题: 4.4 利用C的库函数strlen,strcpy和strcat写一算法void StrInsert(char *S, char *T, int i),将串T插入到串S的第i个位置上。若i大于S的长度,则插入不执行。 4.5 利用C的库函数strlen 和strcpy(或strncpy)写一算法void StrDelete(char *S,int i, int m)删去串S中从位置i开始的连续m个字符。若i≥strlen(S),则没有字符被删除;若i+m≥strlen(S),则将S中从位置i开始直至末尾的字符均删去。 4.6 以HString为存储表示,写一个求子串的算法。 4.7 一个文本串可用事先给定的字母映射表进行加密。例如,设字母映射表为: a b c d e f g h i j k l m n o p q r s t u v w x y z n g z q t c o b m u h e l k p d a w x f y i v r s j 则字符串"encrypt"被加密为"tkzwsdf".试写一算法将输入的文本串进行加密后输出;另写一算法,将输入的已加密的文本串进行解密后输出。 4.8 写一算法void StrReplace(char *T, char *P, char *S),将T中首次出现的子串P替换为串S。注意:S和P的长度不一定相等。可以使用已有的串操作。 4.9 将NaveStrMatch改写为输出目标串中所有也模式串匹配的有效位移。 *4.10 利用4.9的结果写一算法void StrReplaceAll(char *T, char *P, char *S),将T中出现的所有与P相等的不重叠子串替换为S,这里S和P的长度不一定相等。 4.11 若S和T是用结点大小为1的单链表存储的两个串,试设计一个算法找出S中第一个不在T中出现的字符。 答案: 4.1 简述下列每对术语的区别: 空串和空白串;串常量和串变量;主串和子串;静态分配的顺序串和动态分配的顺序串;目标串和模式串;有效位移和无效位移。 答:空串是指不包含任何字符的串,它的长度为零。 空白串是指包含一个或多个空格的串,空格也是字符。 串常量是指在程序中只可引用但不可改变其值的串。 串变量是可以在运行中改变其值的。 主串和子串是相对的,一个串中任意个连续字符组成的串就是这个串的子串,而包含子串的串就称为主串。 静态分配的顺序串是指串的存储空间是确定的,即串值空间的大小是静态的,在编译时刻就被确定。 动态分配的顺序串是在编译时不分配串值空间,在运行过程中用malloc和free等函数根据需要动态地分配和释放字符数组的空间(这个空间长度由分配时确定,也是顺序存储空间)。 目标串和模式串:在串匹配运算过程中,将主串称为目标串,而将需要匹配的子串称为模式串,两者是相对的。 有效位移和无效位移:在串定位运算中,模式串从目标的首位开始向右位移,每一次合法位移后如果模式串与目标中相应的字符相同,则这次位移就是有效位移(也就是从此位置开始的匹配成功),反之,若有不相同的字符存在,则此次位移就是无效位移(也就是从此位置开始的匹配失败)。 4、2 解:(1) stchr(*s,c)函数的效用是查找字符c在串s中的位置,若找到,则返回该位置,否则返回NULL。 因此: 执行p=stchr(s1,'t');后p的值是指向字符t的位置, 也就是p==&s1[5]。 执行p=strchr(s2,'9');后p的值是指向s2串中第一个9所在的位置,也就是p==&s2[9]。 执行p=strchr(s2,'6');之后,p的返回值是NULL。 (2)strcpy函数效用是串拷贝,strcat函数的效用是串联接。所以: 在执行strcpy(s3,s1); 后,s3的值是"Stocktom,CA" 在执行strcat(s3,","); 后,s3的值变成"Stocktom,Ca," 在执行完strcat(s3,s2);后,s3的值就成了"Stocktom,Ca,March 5,1999"

第4章 串与数组 习题参考答案

习题四参考答案 一、选择题 1.下面关于串的叙述中,哪一个是不正确的?(B ) A.串是字符的有限序列 B.空串是由空格构成的串 C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储 2.串的长度是指( A ) A. 串中包含的字符个数 B. 串中包含的不同字符个数 C. 串中除空格以外的字符个数 D. 串中包含的不同字母个数 3.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( C )A.求子串B.联接C.模式匹配D.求串长 4.设主串的长度为n,模式串的长度为m,则串匹配的KMP算法时间复杂度是( C )。 A. O(m) B. O(n) C. O(n + m) D. O(n×m) 5. 串也是一种线性表,只不过( A )。 A. 数据元素均为字符 B. 数据元素是子串 C. 数据元素数据类型不受限制 D. 表长受到限制 6.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主进行存储,a11为第一元素, 其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。 A. 13 B. 33 C. 18 D. 40 7. 有一个二维数组A[1..6, 0..7] ,每个数组元素用相邻的6个字节存储,存储器按字节编址, 那么这个数组占用的存储空间大小是(D )个字节。 A. 48 B. 96 C. 252 D. 288 8.设有数组A[1..8,1..10],数组的每个元素占3字节,数组从内存首地址BA开始以列序 为主序顺序存放,则数组元素 A[5,8]的存储首地址为( B )。 A. BA+141 B. BA+180 C. BA+222 D. BA+225 9. 稀疏矩阵的三元组存储表示方法( B ) A. 实现转置操作很简单,只需将每个三元组中行下标和列下标交换即可 B. 矩阵的非零元素个数和位置在操作过程中变化不大时较有效 C. 是一种链式存储方法 D. 比十字链表更高效 10. 用十字链表表示一个稀疏矩阵,每个非零元素一般用一个含有( A )域的结点表示。 A.5 B.4 C. 3 D. 2 二、填空题 1. 一个串的任意连续字符组成的子序列称为串的子串,该串称为主串。2.串长度为0的串称为空串,只包含空格的串称为空格串。 3. 若两个串的长度相等且对应位置上的字符也相等,则称两个串相等。 4. 寻找子串在主串中的位置,称为模式匹配。其中,子串又称为模式串。 5. 模式串t="ababaab"的next[]数组值为-1001231,nextval[]数组值为-10-10-130。 6. 设数组A[1..5,1..6]的基地址为1000,每个元素占5个存储单元,若以行序为主序顺序 存储,则元素A[5,5]的存储地址为1140。

(实验四)符数组与字符串

实验四字符数组与字符串 一、实验目的 ●了解并掌握一维数组与二维数组的定义方法 ●了解并掌握一维数组与二维数组的初始化方法及元素的引用方法 ●了解并掌握字符串、字符串数组以及字符串函数的使用方法 二、实验环境 ●个人计算机一台,PIII500(或同等性能)以上CPU,128MB以上内存,500MB以 上硬盘剩余空间。 ●Windows2000、Windows XP或Win 7操作系统 ●Code::Blocks(版本12.11或近似版本,英文版) 三、实验内容 1. 冒泡排序 编写程序,实现如下功能:从键盘上输入整数n(n<=100),再输入n个整数,以冒泡排序算法将n个整数按从小到大的顺序进行排序。 /*example-14.c*/ #include "stdio.h" int main() { int num[100], n, i, j, t; /*输入整数的数量n*/ printf("Input n(<=100):"); scanf("%d", &n); /*输入n个整数*/ printf("Input %d numbers:\n", n); for(i=0; i

/*输出排序后的数据*/ printf("After sorting:\n"); for(i=0; i

第四章习题及答案

课后习题参考答案 第四章竖曲线设计 4.3 某条道路变坡点桩号为K25+460.00,高程为780.72.m,i1=0.8%,i2=5%,竖曲线半径为5000m。(1)判断凸、凹性;(2)计算竖曲线要素;(3)计算竖曲线起点、K25+400.00、K25+460.00、K25+500.00、终点的设计高程。 解:ω=i1-i2=5%-0.8%=4.2%凹曲线 L=R?ω=5000×4.2%=210.00 m T=L/2=105.00 m E=T2/2R=1.10 m 竖曲线起点桩号:K25+460-T=K25+355.00 设计高程:780.72-105×0.8%=779.88 m K25+400: 横距:x=(K25+400)-(K25+355.00)=45m 竖距:h=x2/2R=0.20 m 切线高程:779.88+45×0.8%=780.2 m 设计高程:780.24+0.20=780.44 m K25+460:变坡点处 设计高程=变坡点高程+E=780.72+1.10=781.82 m 竖曲线终点桩号:K25+460+T=K25+565 设计高程:780.72+105×5%=785.97 m K25+500:两种方法 1、从竖曲线起点开始计算 横距:x=(K25+500)-(K25+355.00)=145m 竖距:h=x2/2R=2.10 m 切线高程(从竖曲线起点越过变坡点向前延伸):779.88+145×0.8%=781.04m 设计高程:781.04+2.10=783.14 m 2、从竖曲线终点开始计算 横距:x=(K25+565)-(K25+500)=65m 竖距:h=x2/2R=0.42 m 切线高程 (从竖曲线终点反向计算):785.97-65×5%=782.72m 或从变坡点计算:780.72+(105-65)×5%=782.72m 设计高程:782.72+0.42=783.14 m 两种方法结果相同 下图为Excel计算结果

数据结构第四章考试题库(含答案)

第四章串 一、选择题 1.下面关于串的的叙述中,哪一个是不正确的()【北方交通大学 2001 一、5(2分)】 A.串是字符的有限序列 B.空串是由空格构成的串 C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储 2 若串S1=‘ABCDEFG’, S2=‘9898’ ,S3=‘###’,S4=‘012345’,执行 concat(replace(S1,substr(S1,length(S2),length(S3)),S3),substr(S4,index (S2,‘8’),length(S2))) 其结果为()【北方交通大学 1999 一、5 (25/7分)】A.ABC###G0123 B.ABCD###2345 C.ABC###G2345 D.ABC###2345 E.ABC###G1234 F.ABCD###1234 G.ABC###01234 3.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为() A.求子串 B.联接 C.匹配 D.求串长 【北京邮电大学 2000 二、4(20/8分)】【西安电子科技大学 1996 一、1 (2分)】 4.已知串S=‘aaab’,其Next数组值为()。【西安电子科技大学 1996 一、

7 (2分)】 A.0123 B.1123 C.1231 D.1211 5.串‘ababaaababaa’的next数组为()。【中山大学 1999 一、7】A.0 B.012121111212 C.0 D.0 6.字符串‘ababaabab’的nextval 为() A.(0,1,0,1,04,1,0,1) B.(0,1,0,1,0,2,1,0,1) C.(0,1,0,1,0,0,0,1,1) D.(0,1,0,1,0,1,0,1,1 ) 【北京邮电大学 1999 一、1(2分)】 7.模式串t=‘abcaabbcabcaabdab’,该模式串的next数组的值为(),nextval 数组的值为()。 A.0 1 1 1 2 2 1 1 1 2 3 4 5 6 7 1 2 B.0 1 1 1 2 1 2 1 1 2 3 4 5 6 1 1 2 C.0 1 1 1 0 0 1 3 1 0 1 1 0 0 7 0 1 D.0 1 1 1 2 2 3 1 1 2 3 4 5 6 7 1 2 E.0 1 1 0 0 1 1 1 0 1 1 0 0 1 7 0 1 F.0 1 1 0 2 1 3 1 0 1 1 0 2 1 7 0 1 【北京邮电大学 1998 二、3 (2分)】 8.若串S=’software’,其子串的数目是()。【西安电子科技大学 2001应用一、2(2分)】

第4章 数组练习题答案

第4章数组练习题 一、选择题 1.在c语言中,引用数组元素时,其数组下标的数据类型允许是()。 A)整型常量 B)整型表达式C)整型常量或整型表达式 D)任何类型的表达式 2.要说明一个有10个int元素的数组,应当选择语句()。 A) int a[10]; B) int a(10); C) int a[9] D) int a[11] 3.对以下说明语句的正确理解是()。 int a[10]={6,7,8,9,10}; A)将5个初值依次赋给a[1]至a[5] B)将5个初值依次赋给a[0]至a[4] C)将5个初值依次赋给a[6]至a[10] D)因为数组长度与初值的个数不相同,所以此语句不正确 4.已知:int a[10];则对a数组元素的正确引用是()。 A) a[10] B) a[3.5] C) a(5) D) a[10-10] 5.以下对一维整型数组a的正确说明是()。 A) int a(10); B)int n=10,a[n]; C) int n; D)#define SIZE 10; scanf("%",&n); int a[SIZE]; int a[n]; 6.要定义一个int型一维数组art,并使其各元素具有初值89,-23,0,0,0,不正确的定义 语句是()。 A) int art[5]={89,-23}; B) int art[ ]={89,-23}; C) int art[5]={89,-23,0,0,0}; D) int art[ ]={89,-23,0,0,0}; 7.在C语言中,二维数组元素在内存中的存放顺序是()。 A)按行存放 B)按列存放 C)由用户自己定义 D)由编译器决定 8.以下对二维数组a的正确说明是()。 A)int a[3][] B) float a(3,4) C) double a[1][4] D) float a(3)(4) 9.已知:int a[3][4];则对数组元素引用正确的是()。 A)a[2][4] B)a[1,3] C) a[2][0] D) a(2)(1) 10.已知:int a[3][4]={0};则下面正确的叙述是()。 A)只有元素a[0][0]可得到初值0 B)此说明语句是错误的 C)数组a中的每个元素都可得到初值,但其值不一定为0 D)数组a中的每个元素均可得到初值0 11.以下各组选项中,均能正确说明二维实型数组a的是()。 A) float a[3][4]; B) float a(3,4); float a[][4]; float a[3][4]; float a[3][]={{1},{0}}; float a[][]={{0},{0}}; C) f loat a[3][4]; D) float a[3][4]; float a[][4]={{0},{0}}; float a[3][]; float a[][4]={{0},{0},{0}}; float a[][4]; 12.已知:int a[][3]={1,2,3,4,5,6,7};则数组a的第一维的大小是()。 A)2 B)3 C)4 D)无确定值 13.若二维数组a有m列,则在a[i][j]之前的元素个数为()。 A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1 14.要使字符数组str存放一个字符串"ABCDEFGH",正确的定义语句是()。 A) char str[8]={'A','B','C','D','E','F','G','H'};

第四章三相异步电动机试题及答案

第四章 三相异步电动机 一、 填空(每空1分) 1. 如果感应电机运行时转差率为s ,则电磁功率,机械功率和转子铜耗之间的比例是 2:P :e Cu P p Ω= 。 答 s :s)(1:1- 2. ★当三相感应电动机定子绕组接于Hz 50的电源上作电动机运行时,定子电流的频率为 ,定子绕组感应电势的频率为 ,如转差率为s ,此时转子绕组感应电势的频率 ,转子电流的频率为 。 答 50Hz ,50Hz ,50sHz ,50sHz 3. 三相感应电动机,如使起动转矩到达最大,此时m s = ,转子总电阻值约为 。 答 1, σσ21X X '+ 4. ★感应电动机起动时,转差率=s ,此时转子电流2I 的值 ,2cos ? ,主磁通比,正常运行时要 ,因此起动转矩 。 答 1,很大,很小,小一些,不大 5. ★一台三相八极感应电动机的电网频率Hz 50,空载运行时转速为735转/分,此时转差率为 ,转子电势的频率为 。当转差率为0.04时,转子的转速为 ,转子的电势频率为 。 答 0.02,1Hz , 720r/min ,2Hz 6. 三相感应电动机空载时运行时,电机内损耗包括 , , ,和 ,电动机空载输入功率0P 与这些损耗相平衡。 答 定子铜耗,定子铁耗,机械损耗,附加损耗 7. 三相感应电机转速为n ,定子旋转磁场的转速为1n ,当1n n <时为 运行状态;当1n n >时为 运行状态;当n 与1n 反向时为 运行状态。 答 电动机, 发电机,电磁制动 8. 增加绕线式异步电动机起动转矩方法有 , 。 答 转子串适当的电阻, 转子串频敏变阻器 9. ★从异步电机和同步电机的理论分析可知,同步电机的空隙应比异步电机的空气隙要 ,其原因是 。 答 大,同步电机为双边励磁 10. ★一台频率为 160Hz f =的三相感应电动机,用在频率为Hz 50的电源上(电压不变),电动机的最大转矩为原来的 ,起动转矩变为原来的 。

第4章 数据结构与算法 习题与答案

第四章习题(P111-113) 一、复习题 1、试述数据和数据结构的概念及其区别。 数据是对客观事物的符号表示,是信息的载体;数据结构则是指互相之间存在着一种或多种关系的数据元素的集合。(P93) 2、列出算法的五个重要特征并对其进行说明。 算法具有以下五个重要的特征:有穷性:一个算法必须保证执行有限步之后结束。确切性:算法的每一步骤必须有确切的定义。输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件。输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法没有实际意义。可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。(P95) 3、算法的优劣用什么来衡量?试述如何设计出优秀的算法。 时间复杂度空间复杂度(P97-98) 4、线性和非线性结构各包含哪些种类的数据结构?线性结构和非线性结构各有什么特点? 线性结构用于描述一对一的相互关系,即结构中元素之间只有最基本的联系,线性结构的特点是逻辑结构简单。所谓非线性结构是指,在该结构中至少存在一个数据元素,有两个或两个以上的直接前驱(或直接后继)元素。树型和图型结构就是其中十分重要的非线性结构,可以用来描述客观世界中广泛存在的层次结构和网状结构的关系。(P99-105) 5、简述树与二叉树的区别;简述树与图的区别。 树用来描述层次结构,是一对多或多对一的关系;二叉树(Binary Tree)是个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。二叉树是有序的,即若将其左、右子树颠倒,就成为另一棵不同的二叉树。图也称做网,是一种比树形结构更复杂的非线性结构。在图中,任意两个节点之间都可能相关,即节点之间的邻接关系可以是任意的,图表示的多对多的关系。(P102-P104) 6、请举出遍历算法在实际中使用的例子。 提示:根据实际生活中需要逐个访问处理的情况举例。 7、编写一个算法,统计在一个输入字符串中各个不同字符出现的频度。用适当的测试数据来验证这个算法。 提示:根据查找算法和串中求子串的算法,查找输入串中以单个字符形式的子串。 8、若对有n个元素的有序顺序表和无序顺序表进行顺序搜索,试就下列三种情况分别讨论两者在等搜索概率时的平均搜索长度是否相同? (1) 搜索失败; (2) 搜索成功,且表中只有一个关键码等于给定值k的对象; (3) 搜索成功,且表中有若干个关键码等于给定值k的对象,要求一次搜索找出所有对象。

严蔚敏数据结构c语言版习题集答案第四章串

读书破万卷下笔如有神 《一定能摸到红球吗?》说课稿 林银花 教材说明:一、1、课题:《一定能摸到红球吗?》 2、本节内容的地位和作用 在现代社会中,人们面临着更多的机会和选择,常常需要在不确定情境中作出合理的决策,概率正是通过对不确定现象和事件发生的可能性的刻画,来为人们更好的制定决策提供依据和建议.本节内容又是 义务教育阶段,唯一培养学生从不确定的角度来观察世界的数学内容,让学生了解可能性是普遍的,有助于他们理解社会,适应生活. 3、教学目标设计: (1)认知目标: (A)经历猜测.实验.收集与分析试验结果等过程 (B)体会事件的发生的不确定性知道事情发生的可能性有多大。 (2)、能力目标: (A)经历游戏等的活动过程,初步认识确定事件和不确定事件 (B)在与其它人交流的过程中,能合理清晰地表达自己的思维过程; (3)、情感目标: (A)通过创设游戏情境,让学生主动参与,做“数学实验”,激发学生学习的热情和兴趣,激活学生思维。 (B)在与他人的合作过程中,增强互相帮助、团结协作的精神。 (C)体会到在生活中我们可以从确定和不确定两方面分析一件事情. 4、本课重点、难点分析: 学习的重点是初步体验事情发生的确定性和不确定性. 学习的难点是确定事件发生的可能性大小. 学习本节知识应注意猜测,试验,收集与分析实验结果,从中体会事件发生的可能性及大小. 二、教学对象分析: 1、初一学生性格开朗活泼,对新鲜事物特别敏感,且较易接受,因此,教学过程中创设的问题情境应较生动活泼,直观形象,且贴近学生的生活,从而引起学生的有意注意。 2、初一学生的概括能力较弱,推理能力还有待不断发展,所以在教学时,可让学生充分试验, 收集,分析,帮助他们直观形象地感知。

数组练习题及答案

第五章数组练习题及答案 一、选择题 1、判断字符串a和b是否相等,应当使用() A、if(a==b) B、if(a=b) C、if(strcpy(a,b)) D、if(strcmp(a,b)) 2、以下正确的定义语句是() A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0}; 3、以下各组选项中,均能正确定义二维实型数组a的选项是() A、float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}}; B、float a(3,4); float a[3][4]; float a[ ][ ]={{0},{0}}; C、float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}}; D、float a[3][4]; float a[3][ ]; float a[ ][4]; 4、下面程序的运行结果是() 1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB 21—25 BBAAA 26—30 DBDDB #include "stdio.h" main() { char str[]="SSSWLIA",c; int k; for(k=2;((c=str[k])!='\0');k++) { switch(c) {case 'I':++k;break; case 'L':continue; default:putchar(c);continue; } putchar('*'); } } A、SSW* B、SW* C、SW*A D、SW 5、下面程序段是输出两个字符串中对应相等的字符。横线处应填入() char x[]="programming"; char y[]="Fortran"; int i=0; while(x[i]!='\0'&&y[i]!='\0')

严蔚敏《数据结构(c语言版)习题集》答案第四章 串

《一定能摸到红球吗?》说课稿 林银花 一、教材说明: 1、课题:《一定能摸到红球吗?》 2、本节内容的地位和作用 在现代社会中,人们面临着更多的机会和选择,常常需要在不确定情境中作出合理的决策,概率正是通过对不确定现象和事件发生的可能性的刻画,来为人们更好的制定决策提供依据和建议.本节内容又是义务教育阶段,唯一培养学生从不确定的角度来观察世界的数学内容,让学生了解可能性是普遍的,有助于他们理解社会,适应生活. 3、教学目标设计: (1)认知目标: (A)经历猜测.实验.收集与分析试验结果等过程 (B)体会事件的发生的不确定性知道事情发生的可能性有多大。 (2)、能力目标: (A)经历游戏等的活动过程,初步认识确定事件和不确定事件 (B)在与其它人交流的过程中,能合理清晰地表达自己的思维过程; (3)、情感目标: (A)通过创设游戏情境,让学生主动参与,做“数学实验”,激发学生学习的热情和兴趣,激活学生思维。 (B)在与他人的合作过程中,增强互相帮助、团结协作的精神。 (C)体会到在生活中我们可以从确定和不确定两方面分析一件事情. 4、本课重点、难点分析: 学习的重点是初步体验事情发生的确定性和不确定性. 学习的难点是确定事件发生的可能性大小. 学习本节知识应注意猜测,试验,收集与分析实验结果,从中体会事件发生的可能性及大小. 二、教学对象分析: 1、初一学生性格开朗活泼,对新鲜事物特别敏感,且较易接受,因此,教学过程中创设的问题情境应较生动活泼,直观形象,且贴近学生的生活,从而引起学生的有意注意。 2、初一学生的概括能力较弱,推理能力还有待不断发展,所以在教学时,可让学生充分试验,收集,分析,帮助他们直观形象地感知。 3、初一学生已经具备了一定的学习能力,所以本节课中,应多为学生创造自主学习、

第4章串 作业(参考答案)

第四章串作业 参考答案: 1、简述空串和空格串(或称空格符串)的区别? 1)空串是指不包括任何字符的串,空格串指包含若干个空格字符的字符串; 2)空串长度为零,空格串长度为所包括的空格字符的个数。2、设s=‘I AM A STUDENT ’,t=‘GOOD’,q=‘WORKER’.求: 1)StrLength(s) 2)StrLength(t) 3)SubString(s,8,7) 4)SubSting(t,2,1) 5)Index(s,’A’) 6)index(s,t) 7)Replace(s,’STUDENT’,q) 8)Concat(SubString(s,6,2),Concat(t,SubString (s,7,8))) 答: 1)StrLength(s)=14 2)StrLength(t)=4 3)SubString(s,8,7) = ‘STUDENT’ 4)SubSting(t,2,1) = ‘O’ 5)Index(s,’A’)= 3

6)index(s,t) = 0 7)Replace(s,’STUDENT’,q) = ‘I AM A WORKER ’ 8)Concat(SubString(s,6,2),Concat(t,SubString(s, 7,8))) = ‘A GOOD STUDENT’ 3、若串S1=‘ABCDEFG’, S2=‘9898’ ,S3=‘###’,S4=‘012345’,执行 concat(replace(S1,substr(S1,length(S2),length(S3)),S3),subs tr(S4,index(S2,‘8’),length(S2)))其结果是多少? 答:ABC###G1234 4、下列算法实现求采用顺序结构存储的串s和串t的一个最长公共子串。请将空格处填上正确的语句。 void maxcomstr(orderstring *s,*t; int index, length) { int i,j,k,length1,con; index=0;length=0;i=1; while (i<=s.len) { j=1; while(j<=t.len) { if (s[i]= =t[j]) { k=1; length1=1; con=1; while(con) if (1) _ { length1=length1+1;k=k+1; } else (2) __; if (length1>length) { index=i; length=length1; } (3)____; } else (4) ___;

Java数组练习题(带答案)

一填空题 1)数组的元素通过下标来访问,数组Array的长度为Array.length 。 2)数组复制时,"="将一个数组的引用传递给另一个数组。 3)JVM将数组存储在栈(堆或栈)中。 4)数组的二分查找法运用的前提条件是数组已经排序。 5)Java中数组的下标的数据类型是整型。 6)数组最小的下标是0 。 7)arraycopy()的最后一个参数指明复制元素的个数。 8)向方法传递数组参数时,传递的是数组的引用。 9)数组初始化包括数组的申明,创建和初始化。 10)数组下标访问超出索引范围时抛出数组越界异常 11)浮点型数组的默认值是0.0f 。 12)数组创建后其大小不能改变。 二选择题 1.下面错误的初始化语句是_ABD__ A. char str[]="hello"; B. char str[100]="hello"; C. char str[]={'h','e','l','l','o'}; D. char str[]={'hello'}; 2.定义了一维int型数组a[10]后,下面错误的引用是_B__ A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0]; 3.下面的二维数组初始化语句中,正确的是____ A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={{1,2},{3,4}}; C. int a[2][]= {{1,2},{3,4}}; D. float a[2][2]={0}; 4.引用数组元素时,数组下标可以是_D___ A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可 5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____ A. 24 B. 25 C. 18 D. 17 6.下列初始化字符数组的语句中,正确的是__B__ A. char str[5]="hello"; B. char str[]={'h','e','l','l','o','\0'}; C. char str[5]={"hi"}; D. char str[100]=""; 7.数组在Java中储存在 C 中 A. 栈 B. 队列 C. 堆 D. 链表 8.下面程序的运行结果是____ main() { int a[][]={{1,2,3},{4,5,6}}; System.out.printf("%d", a[1][1]); } A. 3 B. 4 C. 5 D. 6 9.下面程序的运行结果是_C___ main() {

许晓峰《电机拖动》第四章习题答案

第四章三相异步电动机 思考题与习题答案 4.3答:能转,转向为逆时针方向。 当转子绕组通入三相交流电流时,将产生旋转磁场,同步转速为n1,假定旋转磁场为顺时针方向,那么定子绕组便产生感应电动势和感应电流,此电流在磁场的作用下又会产生电磁转矩(顺时针方向),但因定子不能转动,故反作用于转子,使得转子向逆时针方向旋转。4.5 答:异步电动机气隙小的目的是为了减小其励磁电流(空载电流),从而提高电动机功率因数。因异步电动机的励磁电流是由电网供给的,故气隙越小,电网供给的励磁电流就小。而励磁电流又属于感性无功性质,故减小励磁电流,相应就能提高电机的功率因数。4.6 答:U、V两相定子绕组通入直流电流I f方向如图4.2a所示,它产生恒定方向的磁场(如图4.2b所示,方向向左)。由于惯性转子仍以原转向(假定为顺时针方向)旋转,则转子导体便切割定子恒定磁场感应电动势和电流(方向由“右手发电机”定则判定),此电流有的功分量与定子恒定磁场相互作用,转子导体受到图示方向力的作用,并形成逆时针方向的电磁转。

图4.2 题4.6图 4.9 答:基波短距系数k y1的物理意义:电机绕组采用短矩绕组后,其基波电动势比采用整距绕组时的感应电动势有所减少,短距系数k y1就表示所减少的程度。 基波分布系数k q1的物理意义:分布绕组的线圈组电动势等于集中绕组线圈组电动势打了一个折扣k q1,以此来计及分布绕组对基波电动势大小的影响。 4.11 解:要求绕组系数,首先应求出τ、q 和α。 五次谐波绕组系数k w5: 9598 .02 20sin 322sin 21=?== a q k q 9019 .09598.09397.01 1 1 =?=?=k k k q y w 1736 .021405sin 25sin 5-=?== γk y 2176.02 20 5sin 32 2035sin 25sin 25sin 1=????== a q qa k q

第四章习题答案

第4章数组 选择题 1.以下对一维数组 a 的定义正确的是( C )。 (A)int n = 5, a[n]; (B)int a(5); (C)const int N = 5; int a[N]; (D)int n; cin>>n; int a[n]; 2.下列数组定义语句中,不合法的是( A )。 (A)int a[3] = { 0, 1, 2, 3 }; (B)int a[] = { 0, 1, 2 }; (C)int a[3] = { 0, 1, 2 }; (D)int a[3] = { 0 }; 3.已知 int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, p = a;,不能 ..表示数组 a 中元素的式子是( C )。 (A) a (B)p (C)a (D)a[ p a ] 4.已知 int a[] = { 0,2,4,6,8,10 }, p = a+1; 其值等于0的表达式是( D )。 (A) (p++) (B)(++p) (C)(p) (D)(p) 5.以下不能对二维数组a进行正确初始化的语句是( C )。 (A)int a[2][3] = { 0 }; (B)int a[][3] = { { 0,1 }, { 0 } }; (C)int a[2][3] = { { 0, 1 }, { 2, 3 }, { 4, 5 } }; (D)int a[][3] = { 0, 1, 2, 3, 4, 5 }; 6.已知int a[][3] = { { 0, 1 }, { 2, 3, 4 }, { 5, 6 }, { 7 } }; 则 a[2][1]的值是( C )。 (A)0 (B)2 (C)6 (D)7 7.已知int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 不能表示数组元素a[2][1]的地址是( B )。 (A)&a[2][1] (B)(a[2]+1) (C)a[2]+1 (D)(a+2)+1 8.已知char a[]={ "fortran", " basic", "pascal", "java", "c++" };,则 cout<

第四章习题答案

第4章 参考答案 1、烃类裂解的目的:主要是生产低级烯烃,如乙烯、丙烯、丁烯、异丁烯和丁二烯等产品。而生产这些产品的原料选择是一个重大的技术问题,原料选择的正确与否,对企业生产和国民经济的发展将产生重要影响。 烃类型解原料大致可分两大类:第一类为气态烃,如天然气、油田伴生气和炼厂气;第二类为液态烃,如轻油、柴油、原油、重油等。按密度可分为轻质烃和重质烃。一般认为乙烷、丙烷、丁烷、液态石油气属于轻质烃,石油脑、煤油、柴油、重油等属于重质烃。 2、烃类热裂解非常复杂,具体体现在以下三方面: ①原料复杂; ②反应复杂; ③产物复杂。 3、生成目的产物乙烯、丙烯的反应属于一次反应,这是希望发生的反应,在确定工艺条件,设计和生产操作中要干方百计设法促使一次反应的充分进行。乙烯、丙烯消失,生成分子量较大的液体产物以至结焦生炭的反应是二次反应,是不希望发生的反应。 二次反应对烃裂解有何危害和影响是:这类反应的发生,不仅多消耗了原料,降低了主产物的产率,而且结焦生炭会恶化传热,堵塞设备,对裂解操作和稳定生产都带来极不利的影响,所以要干方百计设法抑制其进行。 4、总起来说,生碳结焦反应有下面一些规律。 ①不同温度条件下,烯烃的消失和生碳结焦反应是经历着不同的途径。在900~1100o C 以上主要是通过生成乙炔的中间阶段,而在500~900o C 主要是通过生成芳烃的中间阶段。 ②生碳结焦反应是典型的连串反应,不论是哪个具体反应,都有一个共问特点:随着温度的提高和反应时间的延长,不断释放出氢,残物(焦油)的氢含量逐渐下降,碳氢比、相对分子质量和密度逐渐增大。 ③随着反应时间的延长,单环或环数不多的芳烃,转变为多环芳烃,进而转变为稠环芳烃,由液体焦油转变为固体沥青质(它主要是结晶性缩合和稠环芳烃,其化学结构尚不清楚,但能在苯中溶胀)进而转变为碳青质(它是分子量更大、氢含量更低的缩合、稠环芬烃,在苯中不溶胀),再进一步可转变为高分子焦碳。 5、第一反应途径: 2 322222322223H CH CH CH CH CH H C CH CH CH CH CH CH H +-----→-----+? ? 322222322222CH CH CH H C CH CH CH CH CH CH CH H C ---+=→-----? ?32223222CH H C CH CH CH CH CH H C -+=→---? ? ? ? +=→-H CH CH CH H C 2232 2421463H H C H C +→ 661''111=?=?=n w m 2421466186H H C H C +→ 第二反应途径:

第四章 串

第四章串 一、内容提要 1、是数据元素为字符的线性表,串的定义及操作。 2、串的基本操作,编制算法求串的其它操作。 3、串的存储结构,因串是数据元素为字符的线性表,所以存在“结点大小“的问题。静态和动态(块链结构,堆结构)存储的优缺点。 4、朴素模式匹配算法及改进(KMP)算法。 二、学习重点 1、串的基本操作,编写串的其他操作(如index,replace等)。 2、在串的模式匹配中,求匹配串的nextval 函数值。 3、尽管朴素的模式匹配的时间复杂度是O(m*n), KMP算法是O(m+n),但在一般情况下,前者实际执行时间近似O(m+n),因此至今仍被采用。KMP算法仅在主串与模式串存在许多“部分匹配”时才显得比前者块的多,其主要优点是主串不回嗍。 5、串操作在存储结构下的实现。 三、例题解析 1、利用串的如下基本运算 create(s),assign(s,t),length(s),substr(s,start,len),concat(s1,s2),编写操作replace的算法 replace(string &s,string t, string v) //本算法实现串的置换操作,用串v置换串s中所有非重叠的t串。

{i=INDEX(s,t);{判s中有无t} IF (i!=0) {CREATE (temp, ‘’);{t为临时串变量,存放部分结果} m=LENGTH(t);n=LENGTH(s); WHILE (i!=0) { ASSIGN (temp,CONCAT(temp,SUBSTR(s,1,i-1),v)); //用v替换t形成部分结果 ASSIGN (s,SUBSTR(s, i+m,n-i-m+1)); //t串以后形成新s串 n= n-(i-1)-m; i=INDEX(s,t); } ASSIGN (s,CONCAT(temp,s)); //将剩余s连接临时串t再赋给s } } int index(string s,string t) //本算法求串t在串s中的第一次出现。结果是:若t在s中,则给出串t的第一个字符在串s中的位置,若不存在,则返回0 {j=1;m=length(s); n=length(t); eq=true; WHILE((j<=m-n+1)&& eq ) IF equal(substr(s,j,n),t) eq=false; ELSEj=j+1; IF( j<=m+n-1)return(j); Return(0);

相关文档
相关文档 最新文档