当前位置:文档之家› C++程序设计习题答案第七章

C++程序设计习题答案第七章

C++程序设计习题答案第七章
C++程序设计习题答案第七章

第七章动态内存分配习题

一、基本概念与基础知识自测题

填空题

C/C++定义了4个内存区间:(1)、(2)、(3)和(4)。

答案:(1)代码区,存放程序代码;

(2)全局变量与静态变量区,存放全局变量或对象(包括静态);

(3)局部变量区即栈(stack)区,存放局部变量;

(4)自由存储区(free store),即动态存储区或堆(heap)区。

静态定义的变量和对象用标识符命名,称为(1);而动态建立的称为(2),动态建立对象的初始化是通过(3)实现(4)。

答案:(1)命名对象

(2)无名对象

(3)初始化式(initializer)

(4)显式初始化

在用new运算符建立一个三维数组15*30*10时,使用了(1)个下标运算符,对应的用delete运算符注销这个三维数组时使用了(2)个下标运算符。new返回的指针是指向(3)的指针。

答案:(1)3个

(2)1个

(3)30行10列的2位数组

当动态分配失败,系统采用(1)来表示发生了异常。如果new返回的指针丢失,则所分配的自由存储区空间无法收回,称为(2)。这部分空间必须在(3)才能找回,这是因为无名对象的生命期(4)。

答案:(1)返回一个空指针(NULL)

(2)内存泄漏

(3)重新启动计算机后

(4)并不依赖于建立它的作用域

按语义的默认复制构造函数和默认复制赋值操作符实现的复制称为(1),假设类对象obj中有一个数据成员为指针,并为这个指针动态分配一个堆对象,如用obj1按成员语义拷贝了一个对象obj2,则obj2对应指针指向(2)。

答案:(1)浅拷贝

(2)同一个堆对象

单链表的结点包含两个域:(1)和(2)。使用链表的最大的优点是(3),即使是动态数组也做不到这一点。

答案:(1)数据域

(2)指针域

(3)用多少空间,开多少空间

进入单链表必须通过单链表的(1),如果它丢失则(2),内存也(3),在单链表中进行的查找只能是(4)。

答案:(1)头指针

(2)链表整个丢失

(3)会发生泄漏

(4)顺序查找

对链栈,链的生成必须是向(1)生成,最新压栈的元素(结点),放在(2)位置,弹出时从(3)删除结点。对链队,采用向(4)生成,新入队的结点放在链的(5),出队操作在(6)位置。

答案:(1)向前

(2)链表头的位置

(3)链表头

(4)向后

(5)尾部

(6)链表头

在计算机中进行表达式的计算,为解决优先级和运算的结合性,必须使用(1)和(2)。

在中缀表达式中,每个双目运算符放在(3)。

答案:(1)数栈

(2)运算符栈

(3)它的两个运算符之间

为了能重复利用一个队空间,要求把队说明成一个逻辑上的(1)。

答案:(1)循环队列

二叉树的特点是:(1)和(2)。

答案:(1)每个结点最多有两个孩子

(2)子树有左右之分

二叉树的遍历是按(1)分类,所谓中序遍历是(2)。

答案:(1)访问子树根节点次序

(2)先遍历该子树根结点的左子树回来后,接着再访问根结点,最后遍历右子树

二叉排序树又称(1)或(2)。其左子树上的所有结点均小于根结点的数据值,而右子树上的所有结点均大于根结点的数据值时,采用(3)就可以得到一个(4)。答案:(1)二叉搜索树

(2)树表

(3)中序遍历

(4)升序序列

7.2简答题

7.2.1new运算符为一个变量或对象分配存储空间和为一个数组分配存储空间,使用方法

上有什么不同?对应的delete运算符使用有什么不同?

答:为一个变量或对象分配存储空间其使用的格式如下:

指针变量名=new 类型名(初始化式);

对于数组进行动态分配和撤销的格式为:

指针变量名=new 类型名[下标表达式];

后者多一个[下标表达式],同时不能进行初始化。

对应的delete运算符使用分别为:

delete 指针名;

delete [ ] 指向该数组的指针变量名;

后者多一个方括号,如果delete语句中少了方括号,因编译器认为该指针是指向数组第一个元素的指针,会产生回收不彻底的问题(只回收了第一个元素所占空间),加了方括号后就转化为指向数组的指针,回收整个数组。delete [ ]的方括号中不需要填数组元素数,系统自知。即使写了,编译器也忽略。

7.2.2用delete删除p所指向的无名对象时,p指针也同时被删除了,对不对?为什么?答:不对。注意这时释放了p所指向的无名对象占用的内存空间,也就是撤销了该无名对象,称动态内存释放(dynamic memory deallocation),但指针p本身并没有撤销,它仍然存在,该指针所占内存空间并未释放。

7.2.3为什么动态建立类对象数组时,类的定义一定要有缺省的构造函数?

答:new后面类(class)类型也可以有参数。这些参数即构造函数的参数。但对创建数组,没有参数,只能调用缺省的构造函数。

7.2.4要实现深拷贝,自定义的拷贝构造函数应该怎样设计?

答:如果类中有一个数据成员为指针,该类的一个对象中的这个指针p,指向了动态分配的一个堆对象。深拷贝时要给新建立的对象独立分配一个堆对象。这时拷贝的构造函数应该设计为:先拷贝对象主体,再为新建对象的指针分配一个堆对象,最后用原对象的堆对象拷贝新对象的堆对象。即分三步完成。

7.2.5在单链表模板中为什么要把List类说明成Node的友元类?

答:为了直接访问结点的私有成员数据,以简化程序。

7.2.6双向链表与单向链表相比,操作上有什么优点?

答:双向链表可以很方便地找到表结点的前驱和后继。单链表只能找后继。如要找前驱,必须从表头开始搜索,并一般要用两个工作指针。

7.2.7对比顺序栈与链栈各自的长处和短处。

答:顺序栈可以随机访问其中的元素,而链栈只能顺序访问。顺序栈必须先开一定大小内存空间,执行起来简单,速度快,但可能溢出。链栈内存空间随用随开,不会溢出,但执行复杂(不断地动态分配),速度慢。

7.2.8写出二叉树的定义。

答:二叉树是结点的一个有限集合,该集合或为空,或是由一个根结点及两棵分别称为左子树和右子树的(注意有左右之分)互不相交的二叉树组成,其中左右子树分别可以为空子树或均为空树。

7.2.9什么是二叉树的遍历?

答:所谓二叉树的遍历(binary tree traversal),就是遵从某种次序,查巡二叉树的所有结点,每个结点都被访问一次,而且仅访问一次。所谓“访问”指对结点施行某些操作,但不破坏它原来的数据结构。

二、编程与综合练习题

7.3给单链表类模板增加两个成员函数:删除链表中所有数据域为指定值的结点和取出链

表中第K个元素(从1开始计数)。

解:这两个成员函数添在单链表类模板中()

本例数据域用了标准类string,也可以使用整数型。

..

}..

return

#include

using

template<

template<

T info;

public:

lchild=left;

rchild=right;

}

friend class BinaryTree;

};

templateclass BinaryTree{

Node *root; //二叉树的根指针

void Insert(const T &data,Node * &b); //插入结点,参数为引用!

void Destory(Node * Current); //删除树

int Countdepth(Node *btree); //树深度计数

public:

BinaryTree(){root=NULL;} //空树构造函数

~BinaryTree(){Destory(root);} //析构函数

void Creat(T* data,int n); //建立(排序)二叉树

int Countdepth(){return Countdepth(root);} //树深度计数

};

template void BinaryTree::Destory(Node *Current){ if(Current!=NULL){

Destory(Current->lchild);

Destory(Current->rchild);

delete Current; //后序释放根结点}

}

templatevoid BinaryTree::Insert(const T &data,Node * &b){ if(b==NULL){ //已到空树,插入

b=new Node(data);

if(b==NULL){

cout<<"空间不足"<

exit(1);

}

}

else if(datainfo) Insert(data,b->lchild); //小于,向左子树去查else Insert(data,b->rchild); //大于等于,向右子树去查

}

templatevoid BinaryTree::Creat(T* data,int n){//建立一棵二叉排序树

for(int i=0;i

}

templateint BinaryTree::Countdepth(Node *btree){//树深度int num1,num2;

if(btree==NULL)return 0;

else if(btree->lchild==NULL&&btree->rchild==NULL)return 1;

else{

num1=Countdepth(btree->lchild)+1;

num2=Countdepth(btree->rchild)+1;

if(num1>num2) return num1;

else return num2;

}

}

int main(){

const int n=15;

int i,a[n]={10,5,15,8,3,18,13,12,14,16,20,1,4,6,9};

BinaryTree btree;//按排序二叉树生成,共4个层次

(a,n);

cout<<"输入数据:"<

for(i=0;i

cout<

cout<<()<

return 0;

}

C语言程序设计第四版第七章答案 谭浩强

第七章函数 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf("enter two number is: "); scanf("%d,%d",&a,&b); max=maxyueshu(a,b); min=minbeishu(a,b); printf("max=%d,min=%d\n",max,min); } 7.2求方程的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include"math.h" float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2); } float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf("denggen is x=%.3f\n",x); }

第七章作业答案

第7章聚合物的粘弹性 1.举例说明聚合物的动态粘弹性和静态粘弹性的四个典型现象,为什么聚合物具有这些现象?这些现象在材料应用时有哪些利弊? 在一定温度和压力的外界条件下,聚合物的静态粘弹性表现为蠕变和应力松弛,动态粘弹性表现为滞后和力学损耗。 蠕变:在一定温度和恒定应力作用下,聚合物应变随时间增加而逐渐增大的现象。如软质PVC丝钩着一定质量的砝码,就会慢慢地伸长;解下砝码后,丝会慢慢地回缩。这就是软质PVC丝的蠕变和回复现象。坐久了的沙发;晾晒着的毛衣都是蠕变的实例。 应力松弛:在一定温度和恒定应变条件下,试样内部的应力随时间增加而逐渐衰减的现象。如拉伸一块未交联的橡胶至一定长度,并保持长度不变,随时间增加,橡胶的回弹力逐渐减小到零。例如松紧带;密封件在受外力时,密封效果逐渐变差(密封的重要问题) 滞后:在一定温度和交变应力作用下,聚合物应变会落后于应力的现象 内耗:交变应力作用下,由于滞后,则每一循环变化中就会产生能量损耗,以热能形式散发,以热耗散的能量与最大储能模量之比ψ=2πtg δ来表征。 如高速行驶的汽车轮胎会发热。原因:聚合物是具有一定柔性的长链分子的聚集体,在外力作用下,聚合物的链段会发生运动而改变构象,但由于链段运动的摩擦力很大,而使形变具有时间依赖性。 蠕变现象会影响受力材料的长期尺寸稳定性,应力松弛会使弹性材料的受力能力随时间变差。而内耗现象则会使高速行驶的汽车轮胎发热而爆胎,但也可利用内耗来制成吸音防震材料。 2.:画图 1)现有A聚苯乙烯与顺丁橡胶的共混物(20:80重量比);B乳液聚合的丁苯橡胶(无规共聚物,20:80重量比), C SBS(苯乙烯与丁二烯三嵌段共聚物,其中B:S为80:20),和D 高抗冲聚苯乙烯(HIPS)(顺丁橡胶粒子增韧聚苯乙烯,S:B为80:20)在同一张图中画出三个样品的储能模量、力学损耗因子与温度的动态力学曲线。 1) E’ tgδ T℃-110 -55 100

第七章 作业管理与接口习题及答案

第七章作业管理与接口习题及答案 一、填空题 1.作业是由① 、② 和③ 组成的。 【答案】①程序、②数据、③作业说明书 【解析】从用户的角度看,作业是在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所作的有关该次业务处理的全部工作。从系统的角度看,作业是一个比程序更广泛的概念,它由程序、数据和作业说明书组成。系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。 2.批处理系统中,是以① 为单位把程序和数据调入② 以便执行。 【答案】①作业,②内存 【解析】从系统的角度看,作业是批处理系统抢占内存的单位,而分时系统不存在作业的概念。 3.处理机调度算法中:“相应比高者优先”其相应比是采用公式: 相应比=确定的。 【答案】响应比=(等待时间+计算时间)/计算时间 【解析】本算法的思想是对“计算时间”短的小作业优先处理;对“等待时间”长的作业,即使该作业“计算时间”不是很短,也可得到较高的响应比,获得运行的机会。 二、单项选择题 1.在一个以批处理为主的系统中,为了保证系统的吞吐率,总是要力争缩短用户作业的。 (A)周转时间(B)运行时间 (C)提交时间(D)完成时间 【答案】(A) 【解析】周转时间是衡量批处理系统的重要指标。 2.作业在系统中存在与否的唯一标志是。 (A)源程序(B)作业说明书 (C)作业控制块(D)目的程序 【答案】(C) 【解析】系统是根据作业控制块 JCB来感知作业的存在的。 3.作业调度从处于① 状态的队列中选取适当的作业投入运行。从作业提交给系统到作业完成的时间间隔叫做② 。③ 是指作业从进入后备队列到被调度程序选中时的时间间隔。 (A)运行(B)提交 (C)后备(D)完成 (E)停止(F)周转时间 (G)响应时间(H)运行时间 (I)等待时间(J)触发时间 【答案】①(C),②(F),③(I) 4.在批处理系统中,周转时间是。 (A)作业运行时间(B)作业等待时间和运行时间之和

C程序设计第七章课后练习答案

C程序设计(第三版)谭浩强著课后习题答案第7章 2009-05-16 10:56 7.7 打印“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之 和均相等。例如,三阶魔方阵为 8 1 6 3 5 7 4 9 2 要求打印出由1 到n2 的自然数构成的魔方阵。 /******************************************************************** **算法思路:魔方阵中各数的排列规律如下: **(1)将1放在第一行中间一列 **(2)从2开始直到n×n止各数依次按下列规则存放:每一个数存放的行比前一个数的** 行数减1,列数加1 **(3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行) **(4)当上一个数的列数为n时,下一个数的列数应为1,行数减1 **(5)如果按上面的规则确定的位置数已有数,或者上一个数是第1行第n列时,则把 ** 下一个数放在上一个数的下面 ********************************************************************/ #include void main(){ int a[16][16],i,j,k,p,m,n; /*初始化*/ p=1; while(p==1){ printf("input n.(0n)){

第七章作业标准答案

作者: 日期: 2

《C语言程序设计》第7章作业 布置日期:2012-3-29 截止日期:2012-4-12 确认修改 单选题(每小题5分,共100分) 1、在C语言中,引用数组元素时,其数组下标的数据类型允许是 A、整型常量 「B、整型表达式 ? C整形常量或整形表达式 厂D任何类型的表达式 2、若有定义:int a[10] ,则对数组a元素的正确引用是 A、a[10 C B、a[3.5] C C、a⑸ D a[10-10] 3、以下能对一维数组a进行正确初始化的语句是_____________ A、int a[10]={0;0;0;0;0}; 厂B、int a[10]={0} ? C、int a[ ] = {0} 厂 D int a[10]={10*1}

4、若有定义:int a[3][4], 则对数组a元素的正确引用是 2

A a[2][4] B、a[1,3] C、a(2) ? D a[10-10][3] 5、____________________________________________________ 以下能对二维数组a进行正确初始化的语句是___________________________ A、int a[2][]={{1,0,1},{5,2,3}}; ?B、int a[][3]={{1,2,3},{4,5,6}}; C、int a[2][4]={{1,2,3},{4,5},{6}}; D int a[][3]={{1,0,1},{},{1,1}}; 6、以下不正确的定义语句是_________ 。 A、double x[5]={2.0,4.0,6.0,8.0,10.0} ; ?B、int y[5]={0,1,3,5,7,9}; C、char c1[ ]={ ‘ 1','2',3,'4','5'}; D char c2[ ]={ ‘ \x10','\xa','\x8'}; 7、对s的初始化,其中不正确的是___________ 。 A、char s[5] ={ “abc” }; B、char s[5]={ ‘ a','b','c'}; C、char s[5]= ”” ; 」D char s[5]= ” abcdef ” ; &下列有关字符数组的描述中错误的是 ____________ 。

计算机操作系统第七章作业及答案

计算机操作系统第七章 作业及答案 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】

5、为什么在大多数OS中都引入了“打开”这一文件系统调用?打开的含义是什么? 当用户要求对一个文件实施多次读/写或其它操作时,每次都要从检索目录开始,浪费时间,低效。为了避免多次重复地检索目录,在大多数OS中都引入了“打开”这一文件系统调用。 当用户第一次请求对某文件进行操作时,先利用“打开”系统调用将该文件打开,磁盘索引结点被拷贝到内存中,后面的目录检索都在内存中进行。 7、按文件的组织方式可将文件分为哪几种类型? 从逻辑结构可以将文件分为两大类:有结构的记录式文件和无结构的流式文件。按文件的组织方式,可以将有结构的文件分为三类: (1) 顺序文件,指由一系列记录按某种顺序排列所形成的文件,其中的记录可以是定长记录或变长记录; (2) 索引文件,指为变长记录建立一张索引表,为每个记录设置一个表项,以加快对记录检索的速度。 (3) 索引顺序文件,这是顺序文件和索引文件相结合的产物。它为文件建立一张索引表,为每一组记录中的第一个记录设置一个表项,以缩短索引表的长度,而记录检索的速度也不很慢。 16、目前广泛采用的目录结构是哪种?它有什么优点? 广泛采用的目录结构是树型目录结构,它的主要优点是:层次结构清晰,便于文件管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能进行存取权限的控制。 23、基于符号链的文件共享方式有何优点?

只是文件主才拥有指向其索引结点的指针;而共享该文件的其他用户,则只有该文件的路径名,并不拥有指向其索引结点的指针。当文件的拥有者把一个共享文件删除后,其他用户试图通过符号链去访问一个已被删除的共享文件时,会因系统找不到该文件而使访问失败,于是用户再将符号链删除,因此不存在文件删除问题/指针悬空问题。 补充题、 文件系统中,保护域简称为“域”。保护域是进程对一组对象访问权的集合,进程只能在指定域内执行操作。 进程和域之间可以是一对多的关系,即一个进程可以动态地联系多个域。可以将进程的运行分为若干个阶段,一个阶段联系一个域。这样可以根据运行的实际需要来规定进程运行的每个阶段中所能访问的对象。

C语言程序设计第二版第四章第七章课后答案

1、输入函数scanf的参数错误,应该为:scanf("%f",&k); 2、|1234 1234 | 3、ff10 4、1,3,1 5、原字符串左边加空格再加字符串本省,字符个数总和为5个 6、scanf("%d,%d,%c,%c",&a1,&a2,&c1,&c2); 7、 printf("a+b=%d\n",a+b); printf("a-b=%d\n",a-b); printf("a*b=%d\n",a*b); printf("a/b=%d\n",a/b); printf("(float)a/b=%f\n",(float)a/b); printf("a%b=%d\n",a%b); 8、 void main() { float r; float s,c; printf("please input the number:"); scanf("%f",&r); if(r>=0) { s = 3.14*r*r; c = 2*3.14*r; printf("s = %f, c = %f\n",s,c); } else printf("you input number is error!"); } 9 void main() {int n; printf("please input the number:"); scanf("%d",&n); if(n>=100 && n <= 999) printf("%d%d%d",n%10,(n/10)%10,n/100); else printf("you input number is error!"); } 10、 void main() { int i,j,k; scanf("%d,%d,%d",&i,&j,&k); ((i%2 != 0?1:0) + (j%2 != 0?1:0)+(k%2 != 0?1:0)) == 2?printf("YES\n"):printf("NO\n"); } 11、 void main()

第7章习题解答

第7章思考题及习题7参考答案 一、填空 1. AT89S52单片机任何一个端口要想获得较大的驱动能力,要采用电平输出。 答:低 2.检测开关处于闭合状态还是打开状态,只需把开关一端接到I/O端口的引脚上,另一端接地,然后通过检测来实现。 答: I/O端口引脚的电平 3. “8”字型的LED数码管如果不包括小数点段共计段,每一段对应一个发光二极管,有和两种。 答:7,共阳极,共阴极 4. 对于共阴极带有小数点段的数码管,显示字符“6”(a段对应段码的最低位)的段码为 ,对于共阳极带有小数点段的数码管,显示字符“3”的段码为。 答:7DH,B0H 5. 已知8段共阳极LED数码显示器要显示某字符的段码为A1H(a段为最低位),此时显示器显示的字符为。 答:d 6. LED数码管静态显示方式的优点是:显示闪烁,亮度,比较容易,但是占用的线较多。 答:无,较高,软件控制,I/O口 7. 当显示的LED数码管位数较多时,一般采用显示方式,这样可以降低,减少的数目。 答:动态,成本,I/O端口 8. LCD 1602是型液晶显示模块,在其显示字符时,只需将待显示字符的由单片机写入LCD 1602的显示数据RAM(DDRAM),内部控制电路就可将字符在LCD上显示出来。答:字符,ASCII码 9. LCD 1602显示模块内除有字节的 RAM外,还有字节的自定义,用户可自行定义个5×7点阵字符。 答:80,显示数据,64,字符RAM,8

10.当按键数目少于8个时,应采用式键盘。当按键数目为64个时,应采用式键盘。 答:独立,矩阵 11.使用并行接口方式连接键盘,对独立式键盘而言,8根I/O口线可以接个按键,而对矩阵式键盘而言,8根I/O口线最多可以接个按键。 答:8,64 12.LCD 1602显示一个字符的操作过程为:首先,然后,随后,最后。 答:读忙标志位BF,写命令,写显示字符,自动显示字符 13.由于微型打印机TPμP-40A/16A是一种外设,因此单片机与微型打印机的的命令与数据传送,必须采用方式。应答信号可与信号作为一对应答联络信号,也可使用和作为一对应答联络信号。 答:慢速,ACK,STB,STB,BUSY 二、判断对错 1.P0口作为总线端口使用时,它是一个双向口。对 2.P0口作为通用I/O端口使用时,外部引脚必须接上拉电阻,因此它是一个准双向口。对3.P1~P3口作为输入端口用时,必须先向端口寄存器写入1。对 4.P0~P3口的驱动能力是相同的。错 5.当显示的LED数码管位数较多时,动态显示所占用的I/O口多,为节省I/O口与驱动电路的数目,常采用静态扫描显示方式。错 6.LED数码管动态扫描显示电路只要控制好每位数码管点亮显示的时间,就可造成“多位同时亮”的假象,达到多位LED数码管同时显示的效果。错 7.使用专用的键盘/显示器芯片, 可由芯片内部硬件扫描电路自动完成显示数据的扫描刷新,和键盘扫描。对 8.控制LED点阵显示器的显示,实质上就是控制加到行线和列线上的电平编码来控制点亮某些发光二极管(点),从而显示出由不同发光的点组成的各种字符。对 9.16×16点阵显示屏是由4个4×4的LED点阵显示器组成。错 10.LCD 1602液晶显示模块,可显示2行,每行16个字符。对

第七章作业答案

第七章作业答案

《C语言程序设计》第7章作业 布置日期:2012-3-29 截止日期:2012-4-12 一、单选题(每小题5分,共100分) 1、在 C 语言中,引用数组元素时,其数组下标的数据类型允许是_________ 。 A、整型常量 B、整型表达式 C、整形常量或整形表达式 D、任何类型的表达式 2、若有定义: int a[10] ,则对数组 a 元素的正确引用是________ 。 A、a[10 B、a[3.5] C、a(5) D、a[10-10] 3、以下能对一维数组 a 进行正确初始化的语句是_________ 。 A、int a[10]={0;0;0;0;0}; B、int a[10]={0} C、int a[ ] = {0} D、int a[10]={10*1} 4、若有定义: int a[3][4], 则对数组 a 元素的正确引用是_______ 。

A、a[2][4] B、a[1,3] C、a(2) D、a[10-10][3] 5、以下能对二维数组 a 进行正确初始化的语句是________ 。 A、int a[2][]={{1,0,1},{5,2,3}} ; B、int a[][3]={{1,2,3},{4,5,6}} ; C、int a[2][4]={{1,2,3},{4,5},{6}} ; D、int a[][3]={{1,0,1},{},{1,1}} ; 6、以下不正确的定义语句是________ 。 A、double x[5]={2.0,4.0,6.0,8.0,10.0} ; B、int y[5]={0,1,3,5,7,9} ; C、char c1[ ]={‘1','2','3','4','5'} ; D、char c2[ ]={‘\x10','\xa','\x8'} ; 7、对 s 的初始化,其中不正确的是_________ 。 A、char s[5]={“abc”}; B、char s[5]={‘a','b','c'}; C、char s[5]=” ”; D、char s[5]=”abcdef”; 8、下列有关字符数组的描述中错误的是_________ 。

第七章习题解答

习 题 七 1. 判断下面所定义的变换,哪些是线性的,哪些不是: (1) 在向量空间V 中,σ (ξ)=ξ+α,α是V 中一固定的向量; (2) 在向量空间R 3中,σ (x 1, x 2, x 3)=),,(2 3 3221x x x x +; (3) 在向量空间R 3中,σ (x 1, x 2, x 3)=),,2(13221x x x x x +-; (4) 把复数域看作复数域上的向量空间,σ (ξ)=ξ. 解 (1)当0=α时,σ是线性变换; 当0≠α时,σ不是线性变换; (2)σ不是线性变换; (3)σ是线性变换; (4)σ不是线性变换; 2. 设V 是数域F 上一维向量空间. 证明,σ是V 的一个线性变换的充要条件是:存在F 中的一个数a ,使得对任意ξ∈V ,都有 σ (ξ)=a ξ . 证明:充分性显然. 必要性:令σ是ν的一个线性变换,设1ξ是ν的一个基.则νξσ∈)(1.那么 )(1ξσ可由1ξ线性表示,不妨设11)(ξξσa =.对任意的νξ∈,有1ξξk =,则 ξξξξσξσξσa k a a k k k =====)()()()()(1111. 3. 设σ是向量空间V 的线性变换,如果σ k - 1ξ≠0, 但σ k ξ=0,求证ξ, σξ, …, σ k -1 ξ (k >0)线性无关. 证明: 令 ++σξξ10l l ┄ +011=--ξσk k l ┈┈┈┈(1) (1)式两端用1 -k σ 作用得: Λ++-ξσξσk k l l 110+0221=--ξσk k l 由已知得:Λ==+ξσ ξσ1 k k =,022=-ξσk 01≠-ξσk ,所以有 00=l .则(1)式变为: Λ+σξ1l +011=--ξσk k l ┈┈┈┈(2)

C程序设计书面作业

C 程序设计 第七章习题 1、分析并写出下面程序的运行结果。 #include “stdio.h” int Square(int i){ return i*i; } int main(){ int i=0; i=Square(i); for( ; i<3;i++){ static int i=1; i+=Square(i); printf(“%d,”,i); } printf(“%d\n”,i); return 0; } 2、用全局变量模拟编程显示一个数字式时钟,然后上机验证。#include int hour,minute,second; /*定义全局变量*/ void update(){ seconde++; if(second==60){ ① minute++; } if( ②){ minute=0; hour++; } if(hour==24) ③; } void display(){ printf(“④“,hour,minute,second); } void delay(){ int t; for(t=0;t<10000000; t++); /*用循环体为空语句的循环实现延时*/

} int main(){ int i; ⑤ ; for(i=0;i<10000000;i++){ /*利用循环结构控制时钟运行的时间*/ update(); /*更新时、分、秒显示值*/ display(); /*显示时、分、秒*/ delay(); /*模拟延迟时间为1秒*/ } return 0; } 3、用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘输入的两整数的最大值。 4、请分别用以下三种方法编写计算最大公约数的函数Gcd(),在主函数中调用该函数计算并输出从键盘任意输入的两整数的取大公约数。 (1)穷举法。由于a和b的最大公约数不可能比a和b中的较小都还大,否则一定不能整除它,因此,先找出a和b中的较小者,然后从该数开始逐次减1尝试每种可能,即检验该数到1的所有整数,第一个满足公约数条件的值就是a和b的最大公约数。 (2)欧几里得算法,也称辗转相除法。对正整数a和b,连续进行求余运算,直到余数为0为止,此时非0的除数就是最大公约数。(3)递归方法。对正整数a和b,当a>b时,若a中含有与b相同的公约数,则a中去掉b后剩余的部分a-b中也应含有与b相同的公约数,对a-b和b计算公约数就相当于对a和b计算公约数。反复使用最大公约数的如下3条性质,直到a和b相等为止,这时a或b就是它们的取大公约数。 性质1 如果a>b,则a和b与a-b和b的最大公约数相同,即Gcd(a,b)=Gcd(a-b,b). 性质2 如果b>a,则a和b与a和b-a的最大公约数相同,即Gcd(a,b)=Gcd(a,b-a). 性质3 如果a=b,则a和b的最大公约数与a值和b值相同,即Gcd(a,b)=a=b. 5、编写一个递归函数,用以实现从1到n这n个数的累加和。 6、编写一个递归函数,用以实现n的阶乘。 7、中国古代民间有一个游戏:两个人从1开始轮流报数,每人每次可以报一个数或两个连续的数,谁先报到30,谁为胜方。若要改成游戏者与计算机做这个游戏,则首先需要决定谁先报数,可以通过生成一个随机整数来决定计算机和游戏者谁先报数。计算机报数的原则为:若剩下数据的个数除以3,余数为1,则报1个数,若剩下数除以3,余数为2,则报2个数,否则随机报1个或2个数。游戏者通过键盘输入自己报的数,所报的数必须符合游戏的规则。如果计算机和游戏者都未报到30,则可以接着报数。先到到30的一方为胜。请

概率作业纸第七章答案

第七章 假设检验 第一节 假设检验的基本概念 一、选择 1. 在假设检验中,作出拒绝假设0H 的决策时,则可能( A )错误. (A ) 犯第一类 (B ) 犯第二类 (C )犯第一类,也可能犯第二类 (D ) 不犯 2. 对正态总体μ的数学期望进行假设检验,如果在显著性水平05.0下接受00:μμ=H ,那么在显著性水平01.0下,下列结论中正确的是( A ). (A )必接受0H (B )可能接受,也可能拒绝0H (C )必拒绝0H (D )不接受,也不拒绝0H 3. 在假设检验中,0H 表示原假设,1H 表示备择假设,则犯第一类错误的情况为( B ) . (A )1H 真,接受1H (B )1H 不真,接受1H (C )1H 真,拒绝1H (D )1H 不真,拒绝1H 二、填空 1. 假设检验的原理是 小概率事件的实际不可能行原理 . 2. 设总体),(~2σμN X ,n X X X ,,,21Λ是来自总体的样本,则检验假设00:μμ=H , 当2σ为已知时的统计量是n X u σμ0 -=;当2 σ未知时的统计量是n S X t 0μ-=. 三、简答题 化肥厂用自动打包机包装化肥.某日测得9包化肥的质量(kg )如下: 49.7 49.8 50.3 50.5 49.7 50.1 49.9 50.5 50.4.已知每包化肥的质量服 从正态分布,是否可以认为每包化肥的平均质量为50 kg?(05.0=α) 解:设0H :50=μ; 1H :50≠μ.由于2 σ未知,选统计量 )1(~0 --=n t n S X t μ 对显著性水平05.0=α,查表得31.2)8()1(025.02 ==-t n t α。由样本值计算得1.50=x ,, 3354.0≈s )1(31.2894.03 3354.0501.502-=<≈-=n t t α

C++ Primer Plus 第六版 第七章编程题答案

//7.13.10 #include double add(double x,double y); double subtraction(double x,double y); double calculate(double x,double y ,double (*ps)(double a ,double b)); int main() { using namespace std; cout << "Please enter two number: \n"; double x,y; cin >> x >>y ; if(cin) { double result_add,result_subtraction; result_add = calculate(x,y,add); result_subtraction = calculate(x,y,subtraction); cout << "The sum of "<< x << " and "<< y << "is " << result_add<> x; cout << "Enter another number: "; cin >> y; } return 0; } double add(double x,double y) { return x+y; } double subtraction(double x,double y) { return x-y; } double calculate(double x,double y,double (*ps)(double,double)) { double a; a = (*ps)(x,y); return a;

第7章作业解答

第7章 均匀波导中的导行电磁波 7.8 已知空气填充的矩形金属波导(6cm 3cm a b ?=?)中的纵向场分量为 2j π5 3ππ10sin sin e (v/m) 33 z z z x y E H -== 式中,,x y 的单位为厘米。指出这是什么模式?写出其余的场分量,并求其g c p g , , , λλv v 和波阻抗。 解:由于0z E ≠,0z H =,即为横磁波TM 模式。对比TM 模的纵向场分量表达式: j ππsin sin e z z mn m x n y E E a b β-= 可知:510mn E =,2m =,1n =,2π/3β=,所以这是21TM 模。 截止波数222c (π/)(π/)2(π/3)2π/3k m a n b =+== 波数22c 2π/3k k β=+=,则波长2π/ 3 (cm)k λ==,角频率82π10(rad/s)kc ω==? 其余分量表示为 5j 2π/3 j 2ππ10cos()sin()e 233 z x x y E -=-? 5j 2π/3 j 2ππ10sin()cos()e 233 z y x y E -=-? 5j 2π/3 j ππ10sin()cos()e 240π33 z x x y H -= ? 5j 2π/3 j ππ10cos()sin()e 120π33 z y x y H - =- ? 截止波长:c c 2π/3 2 (cm)k λ== 波导波长:g 2 c 2π 3 2 (cm)1(/) λ λβ λλ== =- 相速度:8p 22 c c 3210 (m/s)1(/)1(/)ωβλλλλ= ===?--v c v 群速度:228g c c 32 1(/)1(/)10 (m/s)2 c λλλλ=-=-=?v v 波型阻抗:2TM w c 1(/)602π (Ω)Z Z β λλωε = =-= (顶端▲) 7.8、7.9、7.10

第7章部分作业答案

第七章 部分作业答案 7.4.8 已知Y100L1-4型异步电动机的某些额定技术数据如下: kW 380V Y 接法 1420r/min 82.0cos =φ %81=η 试计算: (1)相电流和线电流的额定值及额定负载时的转矩; (2)额定转差率及额定负载时的转子电流频率。设电源频率为50Hz 。 解:(1)A U P I I l N l P 5% 8182.038032200cos 3=???= = =φη m N n P T N N N ?=?=? =8.141420 2 .295509550 (2)%33.5%1001500 14201500%100=?-=?-= O N O N n n n S Hz f S f N 67.250%33.512=?== 7.4.9 有台三相异步电动机,其额定转速为1470r/min ,电源频率为50Hz 。在(a )起动瞬间(b )转子转速为同步转速 3 2 时(c )转差率为时三种情况下,试求:(1)定子旋转磁场对定子的转速;(2)定子旋转磁场对转子的转速;(3)转子旋转磁场对转子的转速;(4)转子旋转磁场对定子的转速;(5)转子旋转磁场对定子旋转磁场的转速。 解:(1)定子旋转磁场对定子的转速:在(a )(b )(c )三种情况下均为1500 r/min 。 (2)定子旋转磁场对转子的转速: (a )起动瞬间:1500 r/min ; (b )转子转速为同步转速 3 2 时:500 r/min ; (c )转差率为时:30 r/min 。 (3)转子旋转磁场对转子的转速: (a )起动瞬间:1500 r/min ; (b )转子转速为同步转速 3 2 时:500 r/min ; (c )转差率为时:30 r/min 。 (4)转子旋转磁场对定子的转速:在(a )(b )(c )三种情况下均为1500 r/min 。 (5)转子旋转磁场对定子旋转磁场的转速:在(a )(b )(c )三种情况下均为0。 说明: 定子旋转磁场和转子旋转磁场共同构成旋转磁场,转速均为同步转速。 电源频率为50Hz 。试求额定状态下的转差率N S 、电流N I 和转矩N T ,以及起动电流st I 、起

第一章至第七章作业及参考答案

1、什么是冷冲压? 答:冷冲压是在常温下利用冲模在压力机上对材料施加压力,使其产生分离或变形,从而获得一定形状、尺寸和性能的零件的加工方法。 2、冷冲压工序概括起来可分为哪两大类? 答:冷冲压工序根据材料是否从毛坯或者原材料上分离,概括起来可分为分离工序和变形工序。 3、冷冲压可分为哪五个基本工序? 答:冷冲压五个基本工序分别为:冲裁、弯曲、拉深、成形和立体压制(体积冲压)。 4、冲压工艺的优缺点? 答:优点: 1)用冷冲压加工方法可以得到形状复杂、用其它加工方法难以加工的工件。尺寸稳定,互换性好。 2)材料利用率高、工件重量轻、刚性好、强度高、冲压过程耗能少。因此,工件的成本较低。 3)操作简单、劳动强度低、易于实现机械化和自动化、生产率高。 缺点:冲压加工中所用的模具结构一般比较复杂,生产周期较长、成本较高。因此,在单件、小批量生产中采用冲压工艺受到一定限制。冲压工艺多用于成批、大量生产。 5、常用的冲压设备有哪两大类? 答:常用的冲压设备分为机械压力机和液压压力机两大类。 6、曲柄压力机可以根据哪些形式如何区分? 答:曲柄压力机根据不同分类形式可以分为: (1)按床身结构分可分为开式压力机和闭式压力机两种。 (2)按连杆的数目分可分为单点、双点和四点压力机。 (3)按滑块行程是否可调分可分为偏心压力机和曲轴压力机两大类。 (4)按滑块数目分可分为单动压力机、双动压力机和三动压力机等三种。 (5)按传动方式分压力机的传动系统置于工作台之上叫上传动式压力机,传动系统置于工作台之下的叫下传动式压力机。 (6)按工作台结构分开式压力机按其工作台结构,可分为可倾式、固定式和升降台式三种。 7、压力机的主要技术参数有哪些? 答:压力机的主要技术参数有:标称压力、滑块行程、滑块每分钟行程次数、压力机工作台面尺寸、漏料孔尺寸、模柄孔尺寸,压力机电动机功率等。 8、什么是压力机的闭合高度?什么是压力机的装模高度?什么是模具的闭合高度? 答:压力机的闭合高度:指滑块在下止点时,滑块底面到工作台上平面(即垫板下平面)之间的距离。 压力机的装模高度:指压力机的闭合高度减去垫板厚度的差值。 模具的闭合高度:指冲模在最低工作位置时,上模座上平面至下模座下平面之间的距离。

C语言程序设计现代方法第七章答案

Chapter 7 Answers to Selected Exercises 3. [was #4] (b) is not legal. 4. [was #6] (d) is illegal, since printf requires a string, not a character, as its first argument. 10. [was #14] unsigned int, because the (int) cast applies only to j, not j*k. 12. [was #16] The value of i is converted to float and added to f, then the result is converted to double and stored in d. 14. [was #18] No. Converting f to int will fail if the value stored in f exceeds the largest value of type int. Answers to Selected Programming Projects 1. [was #2] short int values are usually stored in 16 bits, causing failure at 18 2. int and long int values are usually stored in 32 bits, with failure occurring at 46341. 2. [was #8] #include int main(void) { int i, n; char ch; printf("This program prints a table of squares.\n"); printf("Enter number of entries in table: "); scanf("%d", &n);

第7章习题答案

《现代控制理论》第7章习题解答 7.1 对由状态空间模型 010011x x u ????=+????-???? 描述的线性系统和性能指标 20 ()T J x x u dt ∞ =+? 试设计最优状态反馈控制器。 答:由题中的模型和性能指标,可得: 01010,,,101101A B Q R ?????? ====?????? -?????? 设11 121222P P P P P ??=? ??? ,在黎卡提方程 10T T PA A P PBR B P Q -+-+= 中代入相关系数矩阵,可得 []111211121222122211121112122212 22010001110101010101P P P P P P P P P P P P P P P P ????????+???? ????--???????? ????????-??+=???????????????? 通过矩阵计算,以上方程可简化为: 2 1112121222 212221112 1222122222000100001P P P P P P P P P P P P P P -???? ????+-+=????????---?? ?????? 进一步得到以下三个代数方程: 21211121222 21222221 221 P P P P P P P P =-=-=- 将这3个方程联立,解出11P 、12P 、22P ,根据P 的正定性要求,可得 2111P ?? =???? 故最优状态反馈控制器为: [][]121011111T u R B Px x x -?? =-=-=-????

C语言程序设计_第二阶段练习参考答案

江南大学现代远程教育第二阶段练习题 考试科目:《C语言程序设计》第七章至第九章(总分100分) 学习中心(教学点)批次: 层次: 专业: 学号:身份证号:姓名:得分: 一、单项选择题(本题共20小题,每小题2分,共40分.) 1、有以下程序 main() {?int?p[7]={11,13,14,15,16,17,18},i=0,k=0; ?while(i<7&&p[i]%2){k=k+p[i];i++;} ?printf("%d\n",k); } 执行后输出结果就是( )。 A、58 B、56 C、45 D、24 2、以下叙述中正确得就是( )。 A、全局变量得作用域一定比局部变量得作用域范围大 B、静态(static)类别变量得生存期贯穿于整个程序得运行期间 C、函数得形参都属于全局变量 D、未在定义语句中赋初值得auto变量与static变量得初值都就是随机值 3、程序如下: #define N 5 #defineM1 N*3 #define M2 N*2 main() { int i; i=M1+M2; printf(“%d\n”,i); } 程序编译后运行得输出结果就是( )。 A、10 ?B、20??C、25??D、30 4、有如下程序 void? f(int?x,int?y) {?int?t; if(x〈y){?t=x;?x=y;?y=t; }

} main() {int?a=4,b=3,c=5; ?f(a,b); f(a,c); f(b,c); printf("%d,%d,%d\n”,a,b,c); } 执行后输出结果就是( ). A、 3,4,5 ??B、 5,3,4 C、 5,4,3 D、4,3,5 5、有以下程序 main() {?char?s[]="\n123\\"; ?printf("%d,%d\n”,strlen(s),sizeof(s)); } 执行后输出结果就是()。 A、赋初值得字符串有错 B、 6,7 C、5,6? D、 6,6 6、若已定义得函数有返回值,则以关于该函数调用得叙述中错误得就是( )。 A、调用可以作为独立得语句存在? B、调用可以作为一个函数得实参 C、调用可以出现在表达式中?? D、调用可以作为一个函数得形参 7、以下不能正确定义二维数组得选项就是()。 A、 int a[2][2]={{1},{2}};?? B、int a[][2]={1,2,3,4}; C、 int a[2][2]={{1},2,3};? D、 int a[2][]={{1,2},{3,4}}; 8、有以下函数定义: void fun( int n,double x) {…… } 若以下选项中得变量都已正确定义并赋值,则对函数fun得正确调用语句就是( )。 A、fun(int y,doublem); B、k=fun(10,12、5); C、fun(x,n); D、voidfun(n,x); 9、有以下程序 #define f(x) x*x main() { int i; i=f(4+4)/f(2+2); printf(“%d\n”,i); } 执行后输出结果就是( )。 A、28 B、22 C、16 D、4

第七章 习题答案

第七章 习题解答 7-1已知下列时间函数()c t ,设采样周期为T 秒,求它们的z 变换。 (a )2()1()c t t t = (b )()()1()c t t T t =- (c )()()1()c t t T t T =-- (d )()1()at c t t te -= (e )()1()sin at c t t e t ω-= (f )()1()cos at c t t te t ω-= 解: (a )根据z 域微分定理有 [][]22222 2431()1 11()1(1)(1)(1)2(1)(1) 1()(1)(1)(1)z Z t z d z z z Tz Z t t Tz Tz dz z z z d Tz T z Tz z T z z Z t t Tz Tz dz z z z = ---??=-=-= ??---?? ??---+??=-=-=????---?? (b )因为 ()1()1()1()t T t t t T t -=- 所以 [][][]22 (2) ()1()1()1()(1)1(1)Tz Tz Tz z Z t T t Z t t Z T t z z z --=-= -=--- (c )根据时域位移定理有 [][]11 22 ()1()()1()(1)(1)Tz T Z t T t T z Z t t z z z ----===-- (d )根据复域位移定理有 221()(1)()aT aT at aT aT Tze Tze Z t te ze z e ---??==??-- (e )根据复域位移定理有 22sin 1()sin 2cos aT at aT aT ze T Z t e t z z Te e ωωω----??=??-+ (f )根据复域位移定理有 22(cos )1()cos 2cos aT at aT aT z z e T Z t e t z z Te e ωωω-----??=??-+ 7-2已知()c t 的拉氏变换为下列函数,设采样周期为T 秒,求它们的z 变换。 (a )21()C s s = (b )()()a C s s s a =+ (c )2()() a C s s s a =+

相关主题
文本预览
相关文档 最新文档