第4章 数组练习题答案
- 格式:doc
- 大小:101.00 KB
- 文档页数:14
第 4 章广义线性表——多维数组和广义表2005-07-14第 4 章广义线性表——多维数组和广义表课后习题讲解1. 填空⑴数组通常只有两种运算:()和(),这决定了数组通常采用()结构来实现存储。
【解答】存取,修改,顺序存储【分析】数组是一个具有固定格式和数量的数据集合,在数组上一般不能做插入、删除元素的操作。
除了初始化和销毁之外,在数组中通常只有存取和修改两种操作。
⑵二维数组A中行下标从10到20,列下标从5到10,按行优先存储,每个元素占4个存储单元,A[10][5]的存储地址是1000,则元素A[15][10]的存储地址是()。
【解答】1140【分析】数组A中每行共有6个元素,元素A[15][10]的前面共存储了(15-10)×6+5个元素,每个元素占4个存储单元,所以,其存储地址是1000+140=1140。
⑶设有一个10阶的对称矩阵A采用压缩存储,A[0][0]为第一个元素,其存储地址为d,每个元素占1个存储单元,则元素A[8][5]的存储地址为()。
【解答】d+41【分析】元素A[8][5]的前面共存储了(1+2+…+8)+5=41个元素。
⑷稀疏矩阵一般压缩存储方法有两种,分别是()和()。
【解答】三元组顺序表,十字链表⑸广义表((a), (((b),c)),(d))的长度是(),深度是(),表头是(),表尾是()。
【解答】3,4,(a),((((b),c)),(d))⑹已知广义表LS=(a,(b,c,d),e),用Head和Tail函数取出LS中原子b的运算是()。
【解答】Head(Head(Tail(LS)))2. 选择题⑴二维数组A的每个元素是由6个字符组成的串,行下标的范围从0~8,列下标的范围是从0~9,则存放A至少需要()个字节,A的第8列和第5行共占()个字节,若A按行优先方式存储,元素A[8][5]的起始地址与当A按列优先方式存储时的()元素的起始地址一致。
第四、五章串、数组和广义表练习题答案一.填空题1. 不包含任何字符(长度为0)的串称为空串;由一个或多个空格(仅由空格符)组成的串称为空白串。
2. 设S=“A;/document/Mary.doc”,则strlen(s)= 20 , “/”的字符定位的位置为3。
3. 子串的定位运算称为串的模式匹配;被匹配的主串称为目标串,子串称为模式。
4. 设目标T=”abccdcdccbaa”,模式P=“cdcc”,则第 6 次匹配成功。
5. 若n为主串长,m为子串长,则串的古典(朴素)匹配算法最坏的情况下需要比较字符的总次数为(n-m+1)*m。
6. 假设有二维数组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列开始!)7. 〖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=89508. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的行下标、列下标和元素值。
9.求下列广义表操作的结果:(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);10.C语言规定,字符串常量按_字符数组_____处理,它的值在程序的执行过程中是不能改变的。
一、单项选择题题目1假定有一个元素类型为int的数组a[10],它所占用的存储空间的字节数为()。
a. 40b. 80c. 10d. 20题目2假定一维数组的定义为“char* a[8];”,则该数组所占用的存储空间的字节数为()。
a. 16b. 8c. 64d. 32题目3假定有一个定义语句为“int a[10]={3,4,2,8,6};”,则元素a[5]的值为()。
a. 0b. 6c. 2d. 8题目4在下面的一维数组定义语句中,有语法错误的是()。
a. int a[];b. int a[5];c. int a[10]={0};d. int a[]={1,2,3};题目5假定二维数组的定义语句为“int a[3][5];”,则该数组所含元素的个数为()。
a. 10b. 12c. 15d. 8题目6假定有一个定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为()。
a. 6b. 8c. 4d. 2题目7对于一个长度为n的字符串,保存它至少需要占用的存储字节数为()。
a. n-1b. n+1c. nd. n+2题目8对于一个二维字符数组a[M][N],存储每个字符串的长度至多为()。
a. N-1b. Nc. Md. M-1题目9若需要比较两个字符串的大小,则选用的函数是()。
a. strlenb. strcmpc. strcpyd. strcat二、判断题题目10一维数组元素带有两个下标。
对错题目11对于二维数组元素,数组名后使用两对中括号。
对错题目12在一维数组的定义语句中,给数组赋初值的部分是用一对花括号括起来的数据表。
对错题目13在一维数组的定义语句中,数组名前为元素类型关键字。
对错题目14在二维数组的定义语句中,数组名后带有两对圆括号。
对错题目15假定二维数组的定义语句为“double a[M][N];”,则每个数组元素的列下标取值范围在1~N 之间。
第四章练习题一、选择题1、设有两个关系R(A,B)与S(B,C),与下列SELECT语句SELECT A,B FROM RWHERE B NOT IN(SELECT B FROM S WHERE C='C56');等价的关系代数表达式就是 [ C]A.πA,B(σC≠'C56'(R⋈S))B.πA,B(R ⋈ S)C≠'C56'C.R-πA,B(σC= 'C56'(R⋈S))D.R-πA,B(σC≠'C56'(R⋈S))2、嵌入式SQL的预处理方式,就是指[ B]A.识别出SQL语句,加上前缀标识与结束标志B.把嵌入的SQL语句处理成函数调用形式C.对源程序进行格式化处理D.把嵌入的SQL语句编译成目标程序3、SQL中,“DELETE FROM 表名”表示 [ A]A.从基本表中删除所有元组B.从基本表中删除所有属性C.从数据库中撤消这个基本表D.从基本表中删除重复元组4、SQL中,聚合函数COUNT(列名)用于[ C]A.计算元组个数B.计算属性的个数C.对一列中的非空值计算个数D.对一列中的非空值与空值计算个数5、在传统SQL技术中,使用“ORDER BY”子句的SELECT语句查询的结果,实际上为 [B]A.数组B.列表C.包D.集合6、在数据库中,能提高查询速度的就是(C )A、数据依赖B、视图C、索引D、数据压缩7、语句 delete from sc 表明( A )A、删除sc中的全部记录B、删除基本表scC、删除基本表sc中的列数据D、删除基本表sc中的部分行8、在DB应用中,一般一条SQL 语句可产生或处理一组记录,而DB主语言语句一般一次只能处理一条记录,其协调可通过( B )实现。
A、指针B、游标C、数组D、栈9、在下列基本表的定义中,数值5表示( C )CREATE TABLE student (Sno char(5) not null unique,Sname char(2));A、表中有5条记录B、表中有5列C、表中字符串Sno 的长度D、表格的大小10、在视图上不能完成的操作就是( C )A、更新视图B、查询C、在视图上定义新的基本表D、在视图上定义新视图11、下列聚合函数中不忽略空值 (null) 的就是 (C)A、SUM (列名)B、MAX (列名)C、COUNT ( * )D、AVG (列名)12、SQL的查询语句的where子句中,对空值的操作,不正确的就是 ( C )A、where AGE IS NULLB、where AGE IS NOT NULLC、where AGE = NULLD、where NOT (AGE IS NULL)13、Transact-SQL对标准SQL的扩展主要表现为( A )。
第3-4章练习题一、选择题1. 以下错误的字符串赋值或赋初值方式是:(A)char str1[]=”string”, str2[]=”12345678”;st r cpy(str2,str1);(B)char str[7]={’s’,’t’,’r’,’i’,’n’,’g’};(C)char str[10] ;str =”string”;(D)char *str; str=”string”;2. 数组定义中不正确的是:(A)int a[2][3]; (B)int b[][3]={0,1,2,3};(C)int c[100][100]={0}; (D)int d[3][]={{1,2},{1,2,3},{1,2,3,4}};3. 以下对一维数组a正确初始化的是:(A)int a[10]=(0,0,0,0,); (B)int a[10]={};(C)int a[10]={0}; (D)int a[10]=(10*2);4.以下选项中,不能正确赋值的是:(A)char s1[10];s1="Ctest"; (B)char s2[]={'C', 't', 'e', 's', 't'};(C)char s3[20]="Ctest"; (D)char *s4="Ctest\n"5.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是:(A)i=*p; (B)*p=*&j; (C)i=&j; (D)i=**p;6. 下面各语句行中,不能正确进行字符串操作的语句行是:(A) char st[10]={"abcde"}; (B) char s[5]={'a','b','c','d','e'};(C) char *s; s="abcde"; (D) char *s; scanf("%s",s);7.设有如下的程序段,执行上面的程序段后,*(ptr+5)的值为:char str[ ]="Hello"; char *ptr; ptr=str;(A) 'o' (B) '\0' (C)不确定的值(D) 'o'的地址8. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));(A)5 (B)14 (C)8 (D)输出项不合法,无正常输出9.以下程序段给数组所有的元素输入数据,请选择正确答案填入。
第四章练习题一、选择题1、设有两个关系R(A,B)和S(B,C),与下列SELECT语句SELECT A,B FROM RWHERE B NOT IN(SELECT B FROM S WHERE C='C56');等价的关系代数表达式是[ C]A.πA,B(σC≠'C56'(R⋈S))B.πA,B(R ⋈S)C≠'C56' C.R-πA,B(σC= 'C56'(R⋈S))D.R-πA,B(σC≠'C56'(R⋈S))2、嵌入式SQL的预处理方式,是指[ B]?A.识别出SQL语句,加上前缀标识和结束标志B.把嵌入的SQL语句处理成函数调用形式C.对源程序进行格式化处理D.把嵌入的SQL语句编译成目标程序3、SQL中,“DELETE FROM 表名”表示[ A]A.从基本表中删除所有元组B.从基本表中删除所有属性C.从数据库中撤消这个基本表D.从基本表中删除重复元组4、SQL中,聚合函数COUNT(列名)用于[ C]A.计算元组个数B.计算属性的个数C.对一列中的非空值计算个数D.对一列中的非空值和空值计算个数'5、在传统SQL技术中,使用“ORDER BY”子句的SELECT语句查询的结果,实际上为[B]A.数组B.列表C.包D.集合6、在数据库中,能提高查询速度的是(C )A. 数据依赖B. 视图C. 索引D. 数据压缩7、语句delete from sc 表明( A )A. 删除sc中的全部记录B. 删除基本表scC. 删除基本表sc中的列数据D. 删除基本表sc中的部分行8、在DB应用中,一般一条SQL 语句可产生或处理一组记录,而DB主语言语句一般一次只能处理一条记录,其协调可通过( B )实现。
A. 指针B. 游标C. 数组D. 栈9、在下列基本表的定义中,数值5表示( C ))CREATE TABLE student (Sno char(5) not null unique,Sname char(2));A. 表中有5条记录B. 表中有5列C. 表中字符串Sno的长度D. 表格的大小10、在视图上不能完成的操作是( C )A. 更新视图B. 查询C. 在视图上定义新的基本表D. 在视图上定义新视图11、下列聚合函数中不忽略空值(null) 的是(C)A、SUM (列名)B、MAX (列名)C、COUNT ( * )D、AVG (列名)12、SQL的查询语句的where子句中,对空值的操作,不正确的是(C)A、where AGE IS NULLB、where AGE IS NOT NULL#C、where AGE = NULLD、where NOT (AGE IS NULL)13、Transact-SQL对标准SQL的扩展主要表现为( A )。
数据结构(含课程设计),随堂第一章绪论1.(单选题) 计算机所处理的数据一般具备某种内在联系,这是指()。
A、数据和数据之间存在某种关系 B.元素和元素之间存在某种关系C元素内部具有某种结构 D.数据项和数据项之间存在某种关系答题: A. B. C. D. (已提交)参考答案:B问题解析:2.(单选题) 在数据结构中,与所使用计算机无关的是数据的()结构.A.逻辑B.存储C.逻辑和存储D. 物理答题: A. B. C. D. (已提交)参考答案:A问题解析:3.(单选题) 数据结构在计算机中的表示称为数据的()A.存储结构B.抽象数据类型C.顺序结构D.逻辑结构答题: A. B. C. D. (已提交)参考答案:A问题解析:4.(单选题) 在计算机中存储数据时,通常不仅要存储各数据元素的值,还要存储().A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法答题: A. B. C. D. (已提交)参考答案:C问题解析:5.(单选题) 在计算机的存储器中表示数据时,逻辑上相邻的两个元素对应的物理地址也是相邻的,这种存储结构称为()A.逻辑结构B.顺序存储结构C.链式存储结构D.以上都正确答题: A. B. C. D. (已提交)参考答案:B问题解析:6.(单选题) 当数据采用链式存储结构时,要求().A.每个结点占用一片连续的存储区域B.所有结点占用一片连续的存储区域C结点的最后一个数据域是指针类型D.每个结点有多少个后继就设多少个指针域答题: A. B. C. D. (已提交)参考答案:A问题解析:7.(单选题) 以下关于算法的说法正确的是().A.算法最终必须由计算机程序实现B.算法等同于程序C算法的可行性是指指令不能有二义性D.以上都是错误的答题: A. B. C. D. (已提交)参考答案:D问题解析:8.(单选题) 算法的时间复杂度与()有关.A问题规模 B.计算机硬件性能C编译程序质量 D.程序设计语言答题: A. B. C. D. (已提交)参考答案:A问题解析:9.(单选题) 算法的主要任务之一是分析()A算法是否具有较好的可读姓,B算法中是否存在语法错误,C算法的功能是否符合设计要求D.算法的执行时间和问题规模之间的关系答题: A. B. C. D. (已提交)参考答案:D问题解析:10.(单选题) 某算法的时间复杂度为O(),表明该算法的()A问题规模是 B执行时间等于C.执行时间与成正比D.问题规模与成正比答题: A. B. C. D. (已提交)参考答案:C问题解析:第二章线性表1.(单选题) 线性表是具有n个()的有限序列.A.关系 B字符C数据元素 D.数据项答题: A. B. C. D. (已提交)参考答案:C问题解析:2.(单选题) 以下关于线性表的叙述中正确的是()A.每个元素都有一个前趋元素和一个后继元素B线性表中至少有一个元素C.线性表中元素的排列次序必须是由小到大或由大到小D.除第一个和最后一个元素外,每个元素都有一个且仅有一个前趋元素和后继元素答题: A. B. C. D. (已提交)参考答案:D问题解析:3.(单选题) 以下关于线性表和有序表的叙述中正确的是()。
汇编语言程序设计 第四版【课后习题答案】--囮裑為檤第4章 基本汇编语言程序设计〔习题4.1〕例题4.2如果要求算术右移8位,如何修改程序。
〔解答〕思路: 首先由最高位字节向次低位字节传送……次低位字节向最低位字节传送(共7次);再判最高位字节符号位,如为0,送00h 到最高位字节;如为1,送ffh 到最高位字节。
传送可参考例题4.2,不过应从第一号字节送第零号字节,……最高位字节向次低位字节传送;也可以用循环来完成: .model small .stack 256 .dataqvar dq 1234567887654321h .code .startup mov cx,7 mov si,1again: mov al, byte ptr qvar[si] mov byte ptr qvar[si-1],al inc siloop again test al,80h jz ezzmov bl,0ffh jmp done ezz: mov bl,0done: mov byte ptr qvar[7],bl .exit 0 end〔习题4.2〕例题4.2如果要求算术左移7位,如何用移位指令实现。
〔解答〕思路:可设计外循环体为8个字节左移一次,方法是:最低位字节算术左移一次, 次低位字节至最高位字节依次带 CF 位循环左移一次(内循环共8次),外循环体控制执行7次即可。
.model small .stack 256 .dataqvar dq 1234567887654321h4 11 201628.code.startupmov dx, 7 ;外循环次数mov ax, byte ptr qvar[0] ;最低位字节送axlpp: shl ax, 1 ;最低位字节左移一次,其d7移入CF 位 mov si, 1mov cx, 7 ;内循环次数again: rcl byte ptr qvar[si], 1 ;高位字节依次左移 P50 inc siloop again dec dx jnz lpp .exit 0 .end〔习题4.3〕将AX 寄存器中的16位数连续4位分成一组,共4组,然后把这4组数分别放在AL 、BL 、CL 和DL 寄存器中。
4.6 习题练习1 一元线性回归模型函数的几何意义是什么?一元线性回归求解就是拟合直线系数W和b的最佳估计值,使得预测值Y的误差最小。
只要这两个系数确定了,直线方程也就确定了,就可以把要预测的值X代入方程求得对应的Y值。
练习2 解释和分析梯度下降算法的原理。
梯度下降法的基本思想可以类比为一个下山的过程,可以类比为一个下山的过程,假设这样一个场景∶一个人被困在山上,需要从山上下来(找到山的最低点,也就是山谷)。
但此时山上的浓雾很大,导致可视度很低。
因此,下山的路径就无法确定,他必须利用自己周围的信息去找到下山的路径。
这个时候,他就可以利用梯度下降算法来帮助自己下山。
具体来说就是,以他当前所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着山的高度下降最多的地方走,(同理,如果我们的目标是上山,也就是爬到山顶,那么此时应该是朝着最陡峭的方向往上走)。
然后每走一段距离,都反复采用同一个方法,最后就能成功的抵达山谷。
梯度下降示意图原理:在微积分里面,对多元函数的参数求偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。
比如函数f(x,y), 分别对x,y 求偏导数,求得的梯度向量就是(∂f ∂x ,∂f ∂y)T ,梯度向量的几何意义就是函数变化增加最快的地方。
具体来说,对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f ∂x 0,∂f ∂y 0)T 的方向是f(x,y)增加最快的地方。
或者说,沿着梯度向量的方向,更加容易找到函数的最大值。
反过来说,沿着梯度向量相反的方向,也就是−(∂f ∂x 0,∂f ∂y 0)T 的方向,梯度减少最快,也就是更加容易找到函数的最小值。
练习3 说明逻辑回归的Sigmod 函数原理是什么? Sigmod 函数:x ex -+=11)(SSigmod 函数图像:Sigmod 函数可以将任意实数映射到(0, 1)之间,比较适合做二分类。
逻辑回归的输入是线性回归的输出,将Sigmoid 函数作用于线性回归的输出得到输出结果。
《数据结构(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。
目录第1-3章C语言基础知识习题 (2)1 选择题 (2)2 填空题 (7)3 答案及部分解析 (9)第4章选择结构习题 (11)1 选择题 (11)2 填空题 (17)3 答案及部分解析 (23)第5章循环结构习题 (26)1 选择题 (26)2 填空题: (32)3 答案及部分解题分析 (39)第6章数组习题 (41)1. 单项选择题 (41)2. 填空题 (44)3. 判断题 (45)4. 程序填空题 (45)5. 阅读程序,分析程序的功能。
(49)第7章函数习题 (55)1. 单项选择题 (55)2. 填空题 (56)3. 判断题 (57)4. 程序填空题 (58)5. 写出下列程序运行结果 (59)第8章指针习题 (67)1 选择题 (67)2 填空题 (69)第1-3章C语言基础知识习题1 选择题1. 以下不是C语言的特点的是()。
A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。
A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。
A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。
A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。
A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。
A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。
A.scanf B.Void C._3com_ D.int9.一个C程序是由()。
1.若要求在if后表示条件“a不等于0成立”,则能正确表示这一关系的表达式为()A.a<>0B.!aC. a=0D. a2.以下错误的if语句是()A. if(x>y) ;B.if(x= =y) x+=y;C. if(x!=y) scanf(“%d”,&x);else scanf(“%d”,&y);D.if(x<y) {x++;y++;}3.C语言对嵌套if的规定是:else总是与()配对。
A.其之前最近的ifB.第一个ifC.缩进位置相同的ifD.其前面最近的且尚未配对的if4.若有说明int x,y;不能实现以下函数关系的程序段是()-1 x<0y= 0 x=01 x>0A.if(x<0) y=-1;else if (x= =0) y=0;else y=1;B.y=-1;if (x!=0)if (x>0) y=1;else y=0;C.y=0;if(x>=0){if (x>0) y=1;}else y= -1;D.if(x>=0)if(x>0) y=1;else y=0;else y= -1;5.已知int x,a,b;则下列选项中错误的if语句是()A.if(a=b) x++;B.if(a=<b) x++;C.if(a-b) x++;D.if(x) x++;6.若int i=10;则执行下列程序后,变量i的正确结果是()switch(i){case 9: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1;} A. 10 B.11 C.12 D. 137.设有说明语句int a=1,b=0;则执行下列语句后,输出为()switch(a){case 1:switch(b){case 0: printf(“**0**”);break;case 1: printf(“**1**”);break;}case 2: printf(“**2**”);break;}A.**0**B.**0****2**C. **0****1****2**D.语法错误8.下列程序的运行结果是()#include<stdio.h>main()if(a<b)if(b<c) c=0;else c+=1;printf(“%d\n”,c);} A.0 B.1 C.2 D.39.阅读程序,选择运行结果()#include<stdio.h>main(){int a,b,c;a=1;b=2;c=3;if(a>b)if(a>c)printf(“%d”,a);else printf(“%d”,b);printf(“%d”,c);} A. 1 2 B. 2 3 C. 3 D. 以上都不对10.选择运行结果()#include<stdio.h>main(){int a= - 1,b=1,k;if((++a<0)&&!(b--<=0))printf(“%d %d\n”,a,b);else printf(“%d %d\n”,b,a);} A.-1 1 B.0 1 C. 1 0 D.0 011.执行下列程序,运行结果为()#include<stdio.h>main(){ int a=10,b=0;if(a=12){a=a+1;b=b+1;}else{a=a+4;b=b+4;}printf(“%d ; %d\n”,a,b);} A. 13;1 B.14;4 C. 11;1 D.10;012.选择运行结果。
JavaScript基础练习题第四章习题一一、判断题1.在JavaScript中可以用十六进制形式表示浮点数常量。
2.空字符串("")也是字符串常量。
3.使用单引号对(' ')表示字符常量,而使用双引号对(" ")表示字符串常量。
4.在定义JavaScript变量时,一定要指出变量名和值。
5.用var定义一个变量后,如果没有赋予任何值,那么它的值是空值,即null.6.JavaScript规定在使用任何变量之前必须先使用var声明它。
7.在使用var x=1声明变量x之后,赋值语句x="今天天气真好"将出错。
8.表达式的类型只取决于运算符,与操作数无关。
9.两个整数进行除(/)运算,其结果也为整数。
10.如果有定义var a=true,b;那么a ll b的结果为true。
二、单选题1.以下哪个常量值最大?A.80B. 0X65C.095D.01152.下面四个变量声明语句中,哪一个变量的命名是正确的?A. var defaultB. var my_bouseC. var my dogD. var 2cats3.下面哪一个语句定义了一个名为pageNumber的变量并将它的值赋为240?A. var PageNumber=240B. pagenumber=240—C. var pageNumber=240D. var int named pageNumber=2404.下面哪一个字符串变量定义语句是不正确的?A. var mytext = "Here is some text!"B. var mytext = 'Here is some text!'C. var mytext = 'Here is some text!"D. var mytext = "Here is\nsome text!" 5.下面四个JavaScript语句中,哪一个是合法的?A. document.write("John said ,''Hi!"")B. document.write("John said ,''Hi!"')C. document.write("John said ,''Hi!")D. document.write("John said ,\''Hi!\"")6.下面哪一个不是JavaScript运算符?A. =B. ==C. &&D. $#7.表达式123%7的计算结果是A. 2B. 3C. 4D. 58.表达式"123abe"-"123"的计算结果是_。
第1章绪论一、判断题1.数据的逻辑结构与数据元素本身的内容和形式无关。
(√)2.一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。
(√)3.数据元素是数据的最小单位。
(×)4.数据的逻辑结构和数据的存储结构是相同的。
(×)5.程序和算法原则上没有区别,所以在讨论数据结构时可以通用。
(×)6.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。
(√)7.数据的存储结构是数据的逻辑结构的存储映象。
(√)8.数据的物理结构是指数据在计算机内实际的存储形式。
(√)9.数据的逻辑结构是依赖于计算机的。
(×)10.算法是对解题方法和步骤的描述。
(√)二、填空题1.数据有逻辑结构和存储结构两种结构。
2.数据逻辑结构除了集合以外,还包括线性结构、树形结构和图形结构。
3.数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。
4.树形结构和图形结构合称为非线性结构。
5.在树形结构中,除了树根结点以外,其余每个结点只有1个前驱结点。
6.在图形结构中,每个结点的前驱结点数和后继结点数可以任意多个。
7.数据的存储结构又叫物理结构。
8.数据的存储结构形式包括顺序存储、链式存储、索引存储和散列存储。
9.线性结构中的元素之间存在一对一的关系。
10.树形结构中的元素之间存在一对多的关系。
11.图形结构的元素之间存在多对多的关系。
12.数据结构主要研究数据的逻辑结构、存储结构和算法(或运算) 3个方面的内容。
13.数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系有限集合。
14.算法是一个有穷指令的集合。
15.算法效率的度量可以分为事先估算法和事后统计法。
16.一个算法的时间复杂度是算法输入规模的函数。
17.算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模的n的函数。
18.若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为O( nlog2n)。
第4章串、数组和广义表一、填空题1、零个或多个字符组成的有限序列称为串。
二、判断题1、稀疏矩阵压缩存储后,必会失去随机存取功能。
(√)2、数组是线性结构的一种推广,因此与线性表一样,可以对它进行插入,删除等操作。
(╳)3、若采用三元组存储稀疏矩阵,把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算。
(╳)4、若一个广义表的表头为空表,则此广义表亦为空表。
(╳)5、所谓取广义表的表尾就是返回广义表中最后一个元素。
(╳)三、单项选择题1、串是一种特殊的线性表,其特殊性体现在(B)。
A.可以顺序存储B.数据元素是一个字符C.可以链式存储D.数据元素可以是多个字符若2、串下面关于串的的叙述中,(B)是不正确的?A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储解释:空格常常是串的字符集合中的一个元素,有一个或多个空格组成的串成为空格串,零个字符的串成为空串,其长度为零。
3、串“ababaaababaa”的next数组为(C)。
A.012345678999 B.012121111212 C.011234223456 D.01230123223454、串“ababaabab”的nextval为(A)。
A.010104101B.010102101 C.010100011 D.0101010115、串的长度是指(B)。
A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数解释:串中字符的数目称为串的长度。
6、假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=(B)。
A.808 B.818 C.1010 D.1020解释:以行序为主,则LOC[5,5]=[(5-1)*100+(5-1)]*2+10=818。
程序设计第二版习题答案程序设计第二版习题答案在学习编程的过程中,我们经常会遇到一些难题和疑惑。
而《程序设计第二版》这本书,作为一本经典的编程教材,为我们提供了丰富的习题。
在这篇文章中,我将为大家提供一些《程序设计第二版》习题的答案,希望能够帮助大家更好地理解和掌握编程知识。
第一章:引论1. 编程是什么?答案:编程是将问题转化为计算机可以理解和执行的指令的过程。
通过编程,我们可以利用计算机解决各种实际问题。
2. 什么是计算机程序?答案:计算机程序是一系列指令的集合,用于告诉计算机如何执行任务。
程序可以包含条件判断、循环、函数等结构,以实现特定的功能。
第二章:C++基础知识1. 什么是变量?答案:变量是用于存储数据的一块内存空间。
在C++中,我们可以通过声明变量来指定变量的类型和名称,然后可以对其进行赋值和操作。
2. 如何定义一个整型变量并赋初值为10?答案:可以使用以下代码来定义一个整型变量并赋初值为10:int num = 10;第三章:控制结构1. 什么是条件语句?答案:条件语句用于根据条件的真假来执行不同的代码块。
在C++中,常用的条件语句有if语句和switch语句。
2. 如何使用if语句判断一个数是否为正数?答案:可以使用以下代码来判断一个数是否为正数:if (num > 0) {cout << "该数为正数" << endl;} else {cout << "该数不为正数" << endl;}第四章:函数1. 什么是函数?答案:函数是一段封装了特定功能的代码块,可以通过函数名和参数来调用执行。
函数可以提高代码的可读性和重用性。
2. 如何定义一个函数来计算两个数的和?答案:可以使用以下代码来定义一个函数来计算两个数的和:int sum(int a, int b) {return a + b;}第五章:数组和指针1. 什么是数组?答案:数组是一种用于存储多个相同类型元素的数据结构。
第四章选择题卷一及答案[11-1]下列N-S中的图形符号表示的是。
当PA[答] C,A) 选择结构B) 顺序结构C) 当型循环结构D) 直到型循环结构解:这个N-S中的图形符号表示的是当型循环结构。
当条件P成立是反复执行操作A,直到P 不成立时为止。
[11-2]下面关于算法的描述中,错误的概念是。
[答] C,A) 一个算法应当有0个或多个输入B) 一个算法应当有一个或多个输出C) 一个算法所包含的计算步骤可以是无限的D) 算法中的每一个步骤必须要有确切的含义解:从算法的形式化定义中得出一个结论:一个算法是对于任何的输入元素X,都在有穷步骤内中止的一个计算方法。
因此“算法所包含的计算步骤可以是无限的”这种说法是不正确的。
[11-3]按照程序设计语言的发展及分类方法,C语言属于。
[答] C,A) 机器语言B) 汇编语言C) 面向过程语言D) 面向对象语言解:C语言是一种算法语言,它侧重于问题处理过程,其与具体的机器无关,与机器的具体实现无关;接近于数学语言表示,增强了可读性和易排错性;提供了更强大的语句功能和函数库,进一步扩充了语言提供的设施,大大地降低了程序设计的难度。
因此,C语言属于面向过程语言。
[12-1]以下概念中正确的描述是。
[答] C,A) 计算机可以直接执行高级语言源程序B) 解释方式获得的目标代码效率优于编译方式C) 无论是解释方式或编译方式最终获得的都是机器可执行的目标代码D) 源程序经编译后得到的是可执行程序解:用任何一种高级程序设计语言编写的问题求解程序都需要翻译成机器语言程序,完成这种翻译工作的程序称之为翻译器。
把高级语言程序翻译成机器语言程序的方法有两种。
一种是编译方式,一种是解释方式,因此无论是解释方式或编译方式最终获得的都是机器可执行的目标代码。
[12-2]数组是一种应用广泛的数据类型,它属于。
[答] B,A) 简单类型B) 结构类型C) 指针类型D) 文件类型解:数组是每一种高级程序设计语言都提供了的数据结构,是最重要也是最基本的结构数据类型,程序设计人员可以利用数组模拟实现他所需要的一些结构。
第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]可得到初值0B)此说明语句是错误的C)数组a中的每个元素都可得到初值,但其值不一定为0D)数组a中的每个元素均可得到初值011.以下各组选项中,均能正确说明二维实型数组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+114.要使字符数组str存放一个字符串"ABCDEFGH",正确的定义语句是()。
A) char str[8]={'A','B','C','D','E','F','G','H'};B) char str[8]="ABCDEFGH";C) char str[ ]={'A','B','C','D','E','F','G','H'};D) char str[ ]="ABCDEFGH";15.下面是对数组s的初始化,其中错误的是()。
A) char s[5]={"abc"} B) char s[5]={'a','b','c'};C) char s[5]=""; D) char s[5]="abcde";16.对两个数组a和b进行如下初始化char a[]="ABCDEF";char b[]={'A','B','C','D','E','F'};则以下叙述正确的是()。
A) a与b数组完全相同 B) a与b长度相同C) a和b中都存放字符串 D) a数组比b数组长度长17.下面程序的运行结果是()。
char c[5]={'a','b','\0','c','\0'};printf("%s",c);A) 'a''b' B) ab C) ab c D) 以上三个答案均有错误18.下面程序段运行的结果是()。
char s[]="a book!";printf("%.4s",s);A) a book! B) a boC) a boo D) 格式描述不正确,没有确定的输出19.合法的数组定义是()。
A) int a[]="string"; B) int a[5]={0,1,2,3,4,5};C) char a="string"; D) char a[]={'0','1','2','3','4','5'};20.要使字符串数组STR含有"ABCD","EFG"和"xy"三个字符串,不正确的定义语句有()。
A)char STR[ ][4]={"ABCD","EFG","XY"};B)char STR[ ][5]= {"ABCD","EFG","XY"};C)char STR[ ][6]= {"ABCD","EFG","XY"};D)char STR[ ][7]={{'A','B','C','D','\0'},"EFG","XY"};21.有两个字符数组a、b,则以下正确的输入格式是()。
A) gets (a,b); B) scanf ("%s%s",a,b);C) scanf ("%s%s",&a,&b); D) gets ("a"), gets ("b");22.判断字符串a和b是否相等,应当使用()。
A) if (a==b) B) if (a=b)C) if (strcpy(a,b)) D) if (strcmp(a,b))23.下述对C语言字符数组的描述中错误的是()。
A)字符数组可以存放字符串B)字符数组的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较24.运行下面程序段的输出结果是()。
char s[12]="string";printf("%d",strlen(s));A) 12 B) 7 C) 6 D) 525.函数调用strcat ( strcpy ( str1,str2 ), str3 )的功能是()。
A)将字符串str1复制到字符串str2中,再连接到字符串str3之后B)将字符串str1连接到字符串str2之后,再复制到字符串str3之后C)将字符串str2复制到字符串str1中,再将字符串str3连接到字符串str1之后D)将字符串str2连接到字符串str1之后,再将字符串str1复制到字符串str3之中26.有下面的程序段char a[3],b[]="china";printf("%s",a);则()。
A)运行后将输出ch B)运行后将输出ChC)运行后将输出chi D)编译出错27.下面描述正确的是()。
A)两个字符串所包含的字符个数相同时,才能比较字符串B)字符个数多的字符串比字符个数少的字符串大C)字符串"STOP"与"STOP "相等D)字符串"hat"小于字符串"het"28.下面程序段的运行结果是()。
char c[]="\t\b\\\0will\n";printf ( "%d", strlen (c));A) 14 B) 3 C) 9 D) 字符串中有非法字符,输出值不确定29.下面程序段的运行结果是()。
(其中~表示空格)char a[7]="abcdef",b[4]="ABC";strcpy (a,b);printf ("%c",a[5]);A) ~ B) \0 C) e D) f30.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
#define N 10void arrin(int x[N]){ int i=0;while(i<N)scanf("%d", );}在下划线处应填入的是( )。
A) x+i B)&x[i+1] C)x+(i++) D)&x[++i]二、填空题1.构成数组的各个元素必须具有相同的数据类型。
C语言中数组的下标必须是整正数、0或整型表达式。
如果一维数组的长度为n ,则数组下标的最小值为 0 ,最大值为n-1 。
2.在C语言中,一维数组的定义方式为:类型说说明符数组名 [常量表达式] 。