当前位置:文档之家› C 程序设计与应用基础第五章 多态性习题答案

C 程序设计与应用基础第五章 多态性习题答案

C  程序设计与应用基础第五章 多态性习题答案
C  程序设计与应用基础第五章 多态性习题答案

第五章多态性

1、填空题

1)在一个成员函数内调用一个虚函数时,对该虚函数的调用进行___动态______联编。

2)动态联编是在__虚函数___的支持下实现的,它通过___指针和引用__来调用该函数操作。3)下列程序的运行结果如下:

Base's cons.

Derived's cons.

Derived's des.

Base's des.

根据结果将程序补充完整。

#incude

class Base

{

public:

Base(){cout<<"Base's cons."<

___varitual ~Base()___{cout<<"Base's des."

};

class Derived:public Base

{

public:

Derived(){cout<<"Derived's cons."<

~Derived(){cout<<"Derived's des."<

};

void main()

{

Base *Ptr=___new Derived;__

delete ptr;

}

4)C++中__不支持___虚构造函数,但__支持___虚析构函数

5)带有__纯虚函数___的类称为抽象类,它只能作为___基类___来使用。

6)下列程序的运行结果如下:

Derive1's Print() called.

Derive2's Print() caIIed.

根据结果将程序补充完整。

#include

class Base

{

public:

Base(int I){b=I;}

_____vitual void print ()______

protected:

int b;

}

class Derive1:public Base

{

public:

_____Derivel1(int I):Base(I){}______

void Print()

{

cout<<"Derive1's Print() called."<

}

};

class Derive2:public Base

{

______Derivel2(int I):Base(I){}

void Print()

{

cout<<"Derive1's Print() called."<

}______

};

void fun(______Base* Obj______)

{

obj->Print();

};

void main()

{

______Dervel1* d1=new Dervel1(1);

Dervel2* d1=new Dervel2(2);______

fun(d1);

fun(d2);

}

2、编程题

1)设计一个小型公司的人员信息管理系统。该公司主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。要求存储这些人员的姓名、编号、级别、当月薪水总额并显示全部信息,具体要求如下所述。

___①___人员编号基数为1000,每输入一个人员信息,编号顺序加1。

___②___程序具有对所有人员提升级别的功能。经理为4级,兼职技术人员和销售经理为3级,推销员为1级。

___③___月薪计算方法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销员的月薪按该推销员当月销售额的4%提成;销售经理既拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售额的5‰。

答案:

#include

#include

class employee

{

public:

employee();

~employee(){delete[] name;}

virtual void pay()=0;

virtual void promote(int increment=0){grade+=increment;} virtual void display()=0;

protected:

char *name;

int no;

int grade;

double Pay;

static int MaxNo;

};

class technician:public employee

{

public:

technician(){hourlyRate=100;}

void promote(int){employee::promote(2);}

void pay();

void display();

private:

double hourlyRate;

int workHours;

};

class salesman:virtual public employee

{

public:

salesman(){CommRate=0.04;}

void promote(int){employee::promote(2);}

void pay();

void display();

protected:

double CommRate;

double sales;

};

class manager:virtual public employee

{

public:

manager(){monthlyPay=8000;}

void promote(int){employee::promote(3);}

void pay();

void display();

protected:

double monthlyPay;

};

class salesmanager:public manager,public salesman

{

public:

salesmanager()

{

monthlyPay=5000;

CommRate=0.005;

}

void promote(int){employee::promote(2);}

void pay();

void display();

};

int employee::MaxNo=1000;

employee::employee()

{

char namestr[50];

cout<<"请输入雇员姓名:";

cin>>namestr;

name=new char[strlen(namestr)+1];

strcpy(name,namestr);

no=MaxNo++;

grade=1;

Pay=0.0;

}

void technician::pay()

{

cout<<"请输入"<

cin>>workHours;

Pay=hourlyRate*workHours;

cout<<"兼职技术人员"<

}

void technician::display()

{

cout<<"兼职技术人员"<

}

void salesman::pay()

{

cout<<"请输入."<

cin>>sales;

Pay=sales*CommRate;

cout<<"推销员"<

}

void salesman::display()

{

cout<<"推销员"<

}

void manager::pay()

{

Pay=monthlyPay;

cout<<"经理"<

}

void manager::display()

{

cout<<"经理"<

}

void salesmanager::pay()

{

cout<<"请输入"<

cin>>sales;

Pay=monthlyPay+CommRate*sales;

cout<<"销售经理"<

}

void salesmanager::display()

{

cout<<"销售经理"<

}

void main()

{

manager m1;

technician t1;

salesmanager sm1;

salesman s1;

employee *emp[4]={&m1,&t1,&sm1,&s1};

int i;

for(i=0;i<4;i++)

{

emp[i]->promote();

emp[i]->pay();

emp[i]->display();

}

}

2)编写一个程序,建立两种类型的表:队列与堆钱,使它们可以共用一个接口访问。答案:

#include

#include

#include

class List

{

public:

List(){head=tail=next=NULL;}

virtual void Store(int i)=0;

virtual int Retrieve()=0;

List *head, *tail, *next;

int num;

};

class Quene:public List

{

public:

void Store(int i);

int Retrieve();

};

void Quene::Store(int i)

{

List *item;

item=new Quene;

if(!item)

{

cout<<"Allocation error."<

abort();

}

item->num=i;

if(tail)

tail->next=item;

tail=item;

item->next=NULL;

if(!head)

head=tail;

}

int Quene::Retrieve()

{

int i;

List *p;

if(!head)

{

cout<<"Quene empty."<

return 0;

}

i=head->num;

p=head;

head=head->next;

delete p;

return i;

}

class Stack :public List

{

public:

void Store(int i);

int Retrieve();

};

void Stack::Store(int i)

{

List *item;

item=new Stack;

if(!item)

{

cout<<"Allocation error."<

abort();

}

item->num=i;

if(head)

item->next=head;

head=item;

if(!tail)

tail=head;

}

int Stack::Retrieve()

{

int i;

List *p;

if(!head)

{

cout<<"Stack empty."<

return 0;

}

i=head->num;

p=head;

head=head->next;

delete p;

return i;

}

void main()

{

List *p;

Quene qobj;

p=&qobj;

for(int i=0;i<3;i++)

p->Store(i+1);

cout<<"Quene.";

for(i=0;i<3;i++)

cout<Retrieve();

Stack sobj;

p=&sobj;

for(i=0;i<3;i++)

p->Store(i+1);

cout<

for(i=0;i<3;i++)

cout<Retrieve();

}

3)编写一个程序,先设计一个整数链表List类,然后从此链表派生出一个整数集合类set,在集合举中增加一个元素个数的数据项。集合类的插入操作与链表相似(只是不插入重复元素),并且插入后,表示元素个数的数据成员需增值。集合类的删除操作是在链表删除操作的基础上对元素个数做减1操作:而查找和显示操作是相同的。

答案:

#include

enum boolean {False,True};

struct Node

{

int val;

Node *next;

};

class List

{

public:

List(){nodes=0;}

~List()

{

Node *temp=nodes;

for(Node *n=nodes;nodes!=0;)

{

temp=nodes;

nodes=nodes->next;

delete temp;

}

}

virtual boolean Insert(int val)

{

Node *temp=new Node;

if(temp!=0)

{

temp->val=val;

temp->next=nodes;

nodes=temp;

return True;

}

else

return False;

}

virtual boolean Delete(int val)

{

if(nodes==0)

return False;

Node *temp=nodes;

if(nodes->val==val)

{

nodes=nodes->next;

delete temp;

return True;

}

else

for(Node *n=nodes;n->next!=0;n=n->next)

if(n->next->val==val)

{

temp=n->next;

n->next=temp->next;

delete temp;

return True;

}

}

boolean IsContain(int val)

{

if(nodes==0)

return False;

if(nodes->val==val)

return True;

else

for(Node *n=nodes;n->next!=0;n=n->next)

if(n->next->val==val)

return True;

return False;

}

void Print()

{

if(nodes==0)

return;

for(Node *n=nodes;n!=0;n=n->next)

cout<val<<" ";

cout<

}

private:

Node *nodes;

};

class Set:public List

{

public:

Set(){count=0;}

boolean Insert(int val)

{

if(!IsContain(val) && List::Insert(val))

{

++count;

return True;

}

}

boolean Delete(int val)

{

if(List::Delete(val))

{

--count;

return True;

}

}

private:

int count;

};

void main()

{

List *p,list1;

Set set1;

p=&list1;

p->Insert(10);

p->Insert(20);

p->Insert(30);

p->Insert(40);

p->Print();

p->Delete(30);

p->Print();

p=&set1;

p->Insert(12);

p->Insert(22);

p->Insert(32);

p->Print();

p->Delete(22);

p->Print();

}

4)某人喜欢饲养宠物。假定他拥有的放置宠物的窝的数目是固定的。请设计一个程序,使得某人可以饲养任意种类任意数目的宠物。要求能够知道现在饲养了多少只宠物, 每只宠物所在的位置及其种类和姓名。

答案:

#include

#include

#include

#include

class Animal

{

public:

Animal(){name=NULL;}

Animal(char *n){name=strdup(n);}

virtual ~Animal(){delete[] name;}

virtual void WhoAmI(){cout<<"Generic Animal."<

protected:

char *name;

};

class Cat: public Animal

{

public:

Cat(){}

Cat(char *n):Animal(n){}

virtual void WhoAmI(){cout<<"I am a cat named"<

class Pig: public Animal

{

public:

Pig(){}

Pig(char *n):Animal(n){}

virtual void WhoAmI(){cout<<"I am a pig named"<

class Dog: public Animal

{

public:

Dog(){}

Dog(char *n):Animal(n){}

virtual void WhoAmI(){cout<<"I am a dog named"<

class Kennel

{

public:

Kennel(int max);

virtual ~Kennel(){delete[] Residents;}

int Accept(Animal *d);

Animal *Release(int pen);

void ListAnimals();

private:

int MaxAnimals,NumAnimals;

Animal **Residents;

};

Kennel::Kennel(int max)

{

MaxAnimals=max;

NumAnimals=0;

Residents=new Animal *[MaxAnimals];

for(int i=0;i

Residents[i]=NULL;

}

int Kennel::Accept(Animal *d)

{

if(NumAnimals==MaxAnimals)

return 0;

++NumAnimals;

int i=0;

while(Residents[i]!=NULL)

++i;

Residents[i]=d;

return i+1;

}

Animal *Kennel::Release(int pen)

{

if(pen>MaxAnimals)

return NULL;

--pen;

if(Residents[pen]!=NULL)

{

Animal *temp=Residents[pen];

Residents[pen]=NULL;

--NumAnimals;

return temp;

}

else

return NULL;

}

void Kennel::ListAnimals()

{

cout<<"There are."<

if(NumAnimals>0)

for(int i=0;i

if(Residents[i]!=NULL)

{

cout<<"The animal in pen "<

Residents[i]->WhoAmI();

}

}

void main()

{

Dog d[3]={Dog("Sam"),Dog("Princess"),Dog("Water")};

Cat c[4]={Cat("Nancy"),Cat("CaroLine"),Cat("Bob"),Cat("Lisa")};

Pig p[1]={Pig("Rudy")};

Kennel K(15);

for(int i=0;i<3;i++)

{

K.Accept(&d[i]);

K.Accept(&c[i]);

}

int ppen=K.Accept(&p[1]);

K.ListAnimals();

K.Release(ppen);

K.ListAnimals();

K.Accept(&c[3]);

K.ListAnimals();

}

c语言第五章习题答案

第一题: 1. 从键盘输入10个数,求和。 #include "stdio.h" void main( ) { int x,s=0; int i; for(i=0;i<10;i++) {scanf("%d",&x); s+=x;} printf("s=%d\n",s ); } 2. 从键盘输入10个数,求平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; for(i=0;i<10;i++) {scanf("%d",&x); s+=x;}

ave=s/10; printf("s=%d,ave=%d\n",s ,ave ); } 3. 从键盘输入10个数,求偶数的和。 #include "stdio.h" void main( ) { int x,s=0; int i; for(i=0;i<10;i++) {scanf("%d",&x); if(x%2==0) s+=x;} printf("s=%d\n",s ); } 4. 从键盘输入10个数,求偶数的平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; int k=0;

for(i=0;i<10;i++) {scanf("%d",&x); if(x%2==0) {s+=x;k++;} } ave=s/k; printf("s=%d,ave=%d\n",s,ave ); } 5. 从键盘输入n个数,求偶数的平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; int k=0; int n; scanf("%d",&n); for(i=0;i

JAVA复习题 有答案

复习题 一、选择题 1、下列Java标志符中合法的是:() A H3_sum B -name C student# D 9_Hello123 2.Java源文件和编译后的文件扩展名分别为() A. .class和.java B. .java和.class C. .class和.class D. .java和.java 3.对于同一消息,对象可以产生不同的行为,这称为类的什么特性?()A)继承性B)封装性C)多态性D)抽象性 4、用来引入包语句的关键词是:() A)import B)abstract C)package D)extends 5.对于小程序,当离开包含Applet的主页后又再返回时将调用()方法。A)start( ) B)init( ) C)destroy( ) D)stop( ) 6.下列对Java中的继承描述错误的说法是() A.子类只能有一个父类 B.子类可作为另一个子类的父类 C.子类可以访问父类的私有属性 D.子类继承父类的方法访问权限保持不变 7.哪种循环在条件表达式被计算之前至少执行循环体语句一次?( ) A)do-while循环B)for循环C)while循环D)以上都不是 8.定义数组String[] a={"ab","abc","abcd","abcde"},数组中a[1]指的是()。 A.ab B.abc C.abcde D.数组越界 9.如果希望组件从左往右,从上到下自动布局界面,应使用哪种布局?()A)没有B)BorderLayout C)FlowLayout D)GridLayout 10.下列说法正确的是() A. 最终类在特殊情况下可以有子类 B. 抽象类只能有一个子类 C. 多态可以通过方法重写和方法重载实现 D. 抽象类不可以声明成员变量和成员方法,只能声明抽象方法 11.下列语句中访问类的方法正确的是:() A)https://www.doczj.com/doc/7a4129005.html, B)https://www.doczj.com/doc/7a4129005.html,( ) C)book->name D)book_name 12.下列选项中哪个是类Pen的构造方法() A)public void Pen() {} B)public static Pen() {} C)public Pen() {} D)public static void Pen() {} 13.单击菜单触发的事件是?() A. ActionEvent B.ItemEvent C.MouseEvent D. KeyEvent 14.关于try/catch/finally结构的异常捕获和处理,说法错误的是()A)try部分是必须的B)catch部分也是必须的 C)可以有多个catch部分D)finally部分也是必须的

计量经济学习题及全部答案

《计量经济学》习题(一) 一、判断正误 1.在研究经济变量之间的非确定性关系时,回归分析是唯一可用的分析方法。() 2.最小二乘法进行参数估计的基本原理是使残差平方和最小。() 3.无论回归模型中包括多少个解释变量,总离差平方和的自由度总为(n-1)。() 4.当我们说估计的回归系数在统计上是显着的,意思是说它显着地异于0。() 5.总离差平方和(TSS)可分解为残差平方和(ESS)与回归平方和(RSS)之和,其中残差平方和(ESS)表示总离差平方和中可由样本回归直线解释的部分。() 6.多元线性回归模型的F检验和t检验是一致的。() 7.当存在严重的多重共线性时,普通最小二乘估计往往会低估参数估计量的方差。() 8.如果随机误差项的方差随解释变量变化而变化,则线性回归模型存在随机误差项的 自相关。() 9.在存在异方差的情况下,会对回归模型的正确建立和统计推断带来严重后果。() 10... DW检验只能检验一阶自相关。() 二、单选题

1.样本回归函数(方程)的表达式为( )。 A .i Y =01i i X u ββ++ B .(/)i E Y X =01i X ββ+ C .i Y =01??i i X e ββ++ D .?i Y =01??i X ββ+ 2.下图中“{”所指的距离是( )。 A .随机干扰项 B .残差 C .i Y 的离差 D .?i Y 的离差 3.在总体回归方程(/)E Y X =01X ββ+中,1β表示( )。 A .当X 增加一个单位时,Y 增加1β个单位 B .当X 增加一个单位时,Y 平均增加1β个单位 C .当Y 增加一个单位时,X 增加1β个单位 D .当Y 增加一个单位时,X 平均增加1β个单位 4.可决系数2R 是指( )。 A .剩余平方和占总离差平方和的比重 B .总离差平方和占回归平方和的比重 C .回归平方和占总离差平方和的比重 D .回归平方和占剩余平方和的比重 5.已知含有截距项的三元线性回归模型估计的残差平方和为2i e ∑=800,估

练习(异方差)

练习(异方差) 1 什么是异方差性?举例说明经济现象中的异方差性。检验异方差的方法思路是什么? 2 判断下列各题的对错,并简单说明理由: (1)在存在异方差的情况下,普通最小二乘法(OLS )估计量是有偏的和无效的; (2)如果存在异方差,通常使用的t 检验和F 检验是无效的; (3)在存在异方差的情况下,常用的OLS 法总是高估了估计量的标准差; 3 简述异方差对下列各项有何影响: (1)OLS 估计量及其方差; (2)置信区间; (3)显著性t 检验和F 检验的使用。 4 试比较说明模型存在异方差时,普通最小二乘法与加权最小二乘法的区别与联系。 5 已知消费模型 t t t t X X Y μααα+++=22110 其中,t Y 为消费支出,t X 1为个人可支配收入,t X 2为消费者的流动资 产,且 0)(=t E μ 212)(t t X Var σμ=(其中2σ为常数) 进行适当的变换消除异方差,并证明

答案 1解答 对于模型i ki k i i i X X X Y μββββ+++++=Λ22110 (i=1,2,…,n ),如果出现 ),,2,1()(2n i Var i i Λ==σμ,即对于不同的样本点,随即干扰项的方差不再是常数,而且互不相同,则认为出现了异方差。 在现实经济运行中,异方差性经常出现,尤其是采用截面数据作样本的计量经济学问题。例如,工业企业的研究与发展费用支出同企业的销售和利润之间关系的函数模型;服装需求量与季节、收入之间关系的函数模型;个人储蓄量与个人可支配收入之间关系的函数模型等。检验异方差性的主要思路就是检验随机干扰项的方差与解释变量观察值的某种函数形式之间是否存在相关性。 2解答 (1)错。当存在异方差情况下,OLS 法估计量是无偏的但不具有有效性。 (2)对。如果存在异方差,通常使用的t 检验和F 检验是无效的。 (3)错。实际情况可能是高估也可能是低估。 3解答 由于异方差性的存在,使得OLS 估计量仍是线性无偏但不再具有最小方差性,即不再有效;而由于相应的置信区间以及t 检验和F 检验都与估计量的方差相关,因此会造成建立的置信区间以及t 检验和F 检验都不再是可靠的。 4解答

c语言程序设计课后习题答案 第五章

/*练习5-3*/ #include int prime(int m) { int i; for(i=2;i<=m-1;i++) if(m%i==0) break; if(i==m) return 1; else return 2; } main() { int i,m,n,sum=0,a=0; printf("enter m and n:(1<=m<=n<=500)\n"); scanf("%d",&m); scanf("%d",&n); for(i=m;i<=n;i++) { if(prime(i)==1) sum=sum+i; a=a+1; } printf("之间的素数和为:%d\n",sum); printf("之间的素数个数为:%d\n",a); } /*习题5.1*/ #include int fn(int a,int n) { int i,sum=0,m=1,c; for(i=1;i<=n;i++) { sum=sum+m; m=m*10; } c=sum*a; return c; }

main() { int a,n,i,x,y=0; printf("enter a and n:\n"); scanf("%d",&a); scanf("%d",&n); for(i=1;i<=n;i++) { x=fn(a,i); y=y+x; } printf("y=%d\n",y); } /*习题5.2*/ #include int countdigit(int number,int digit) { int sum=0; while(number>0) { if(number%10==digit) sum=sum+1; number=number/10; } return sum; } main() { int number,y; printf("enter a number:\n"); scanf("%d",&number); y=countdigit(number,2); printf("y=%d\n",y); }

基因多态性分析

. 人基因多态性分析 一、实验目的 1. 了解基因多态性在阐明人体对疾病、毒物的易感性与耐受性、疾病临床表现的多样性以及对药物治疗的反应性中的重要作用。 2. 了解分析基因多态性的基本原理和研究方法。 二、实验原理 基因多态性(gene polymorphism)是指在一个生物群体中,同时存在两种及以上的变异型或基因型或等位基因,也称为遗传多态性(genetic polymorphism)。人类基因多态性对于阐明人体对疾病的易感性、毒物的耐受性、药物代谢差异及遗传性疾病的分子机制有重大意义;与致病基因连锁的多态性位点可作为遗传病的诊断标记,并为分离克隆致病基因提供依据;病因未知的疾病与候选基因多态性的相关性分析,可用于辅助筛选致病易感基因。 聚合酶链反应-限制性片段长度多态性(polymerase chain reaction—Restriction Fragment Length Polymorphism,PCR-RFLP)分析是一种常用的DNA分子标记。原理是通过PCR扩增获得目的基因。若目的基因存在等位变异(多态性),且变异正好发生在某种限制性内切酶识别位点上,使酶切位点增加或者消失,则酶切结果就会产生大小不同的片段,即片段长度多态性,再利用琼脂糖凝胶电泳分离,可呈现出多态性电泳图谱。若将患者与正常的多态性图谱比较,可确定是否变异。应用PCR-RFLP,可检测某一致病基因已知的点突变,进行直接基因诊断,也可以此为遗传标记进行连锁分析进行间接基因诊断。 三、器材与试剂 1. 器材 ⑴离心机。 ⑵DNA扩增仪。 ⑶电泳仪。 ⑷水平电泳槽。 ⑸紫外检测仪。 ⑹移液器。 2. 试剂 . . ⑴口腔拭子DNA抽提试剂盒。 ⑵琼脂糖。 ⑶1×TAE电泳缓冲液:980ml蒸馏水中加入50×TAE母液20ml。 ⑷50×TAE母液:Tris 121g,0.5M EDTA(pH8.0)50ml,冰醋酸28.55ml,定容至500ml。

计量经济学异方差性参考答案讲解

第五章 异方差性课后题参考答案 5.1 (1)因为22()i i f X X =,所以取221i i W X =,用2i W 乘给定模型两端,得 31232222 1i i i i i i i Y X u X X X X βββ=+++ 上述模型的随机误差项的方差为一固定常数,即 2 2221 ()()i i i i u Var Var u X X σ== (2)根据加权最小二乘法,可得修正异方差后的参数估计式为 ***12233???Y X X βββ=-- ()()( )()()( )( )** *2 ** * *222323 22 32 2 *2*2** 2223223?i i i i i i i i i i i i i i i i i i W y x W x W y x W x x W x W x W x x β-= -∑∑ ∑ ∑∑∑∑ ()()()()()()( )** *2 ** ** 232222223 3 2 *2 *2** 2223223?i i i i i i i i i i i i i i i i i i W y x W x W y x W x x W x W x W x x β-= -∑∑ ∑ ∑ ∑∑∑ 其中 2223 2***23222, , i i i i i i i i i W X W X W Y X X Y W W W = = = ∑∑∑∑∑∑ ***** *222333 i i i i i x X X x X X y Y Y =-=-=- 5.2 (1) 22222 11111 ln()ln()ln(1)1 u ln()1 Y X Y X Y u u X X X u ββββββββββ--==+≈=-∴=+ [ln()]0 ()[ln()1][ln()]11 E u E E u E u μ=∴=+=+=又 (2) [ln()]ln ln 0 1 ()11 i i i i P P i i i i P P i i E P E μμμμμμμ===?====∑∏∏∑∏∏不能推导出 所以E 1μ()=时,不一定有E 0μ(ln )= (3)对方程进行差分得: 1)i i βμμ--i i-12i i-1lnY -lnY =(lnX -X )+(ln ln

C语言预习及课后习题(参考答案1-5)

第一章C语言概述 课前预习题 1.函数 2.main()函数3.单行注释、块注释、A 参考分析:C语言总是从main函数开始,main函数结束。但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。 2.C 参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。因此,如果注释中存在错误,系统是不可能发现的。另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。 3.D 参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。 4. C 5.B 参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。尽管有时习惯上称main函数为主程序,显然,严格地讲还是B更为符合C语言的规则。 6.C 7.B 8.C 9.C 10.C 11.绘制NS算法流程图。 (1)输入10个数,求其中的最大值。 (2)输入3个数,将它们升序排列输出。 (3)输入2个数,求它们的最大公约数。(4)输入一元二次方程的系数a、b、c,判断其根。

第二章数据类型、运算符与表达式 课前预习题 1.变量在内存中所占的字节数、变量的表数范围、变量允许参与的运算2.1、4、8 3.float、double 4.八进制、十进制、十六进制5.1 6.26 7.12、4 8.6、4、2 9.-60 10.2 11.10、6 12.13.14.4 15.1 16.0 17.9 18.字符、数字、下划线19.'f' 20.21.int型22.m/10%10*100+m/100*10+m%10 课后习题 1.A 分析:在不同的计算机系统中,不同的C语言系统中,其各种数据类型所占据的存储空间是不同的,但是有一个总的原则,即:char<=short<=int<=long<= float<=double,只有A符合16位PC机中的具体环境。 2.C 参考分析:逗号表达式的计算结果是最后一个表达式的值。k=23是括号内最后一个表达式,因此x变量的值来自k变量的值。 3.B 参考分析:逗号表达式的计算结果是最后一个表达式的值。b++在所在表达式参与运算时的值是5,该表达式计算完成后,b进行自增运算,故a+b的值为2+6=8。 4.A 参考分析:是关键字的有:char、case、while。 5.B 参考分析:不是关键字的:include、scanf、type 6.C 参考分析:合法的有:A、P_0、la0、_A、_123、temp、INT。 7.C 参考分析:教材中只是强调首字符必须为字母,我们应当知道,在语言系统中,下划线和字母具有同等的“法律效力”。 8.A 参考分析:不合法的B2,C2,C3,D2。解释:A2:-0xffff十六进制数本身已经包含了符号位,一般不前面加符号位,但加上符号位也不错误;C3:0668在有些C系统中,八进制数中允许出现8,但是通常不允许使用8;D3:0x显然后面缺少数值,但在TC中是允许的。 9.D 参考分析:不合法的A1,B3,C1,C3,D。解释:A1:--0f1十六进制数没有0x,显然不合法,这里需要讨论的是常

特发性卵巢早衰患者AMH,AMHR—Ⅱ基因多态性分析

特发性卵巢早衰患者AMH,AMHR—Ⅱ基因多态性分析 目的探讨特发性卵巢早衰与AMH,AMHR-Ⅱ的基因多态性。方法选择2015年6月~2017年3月在我院诊断的特发性卵巢早衰患者50例为POF组。另选择健康体检者100例为对照组。PCR方法测定两组AMH,AMHR-Ⅱ基因多态性。结果POF组AMH基因突变位点基因型及等位基因频率与对照组比较差异无统计学意义(P>0.05)。POF组AMHR-Ⅱ c.49+10T>G 基因位点GG基因型比例显著高于对照组,G等位基因频率显著高于对照组,c.622-2C>T基因位点TT基因型比例显著高于对照组,T等位基因频率显著高于对照组,c.622-24C>A 基因位点AA基因型比例显著高于对照组,A等位基因频率显著高于对照组,c.1038G>T基因位点TT基因型比例显著高于对照组,T等位基因频率显著高于对照组,差异均有统计学意义(P<0.05)。结论AMHR-Ⅱ基因多态性可能是特发性卵巢早衰的重要的发病机制。 [Abstract] Objective To discuss polymorphism analysis of AMH,AMHR-Ⅱgene in patients with idiopathic premature ovarian failure. Methods 50 cases with idiopathic premature ovarian failure from Jun 2015 to Mar 2017 were selected as POF group. And 100 cases for physical examination were selected as control group. Polymorphismof AMH,AMHR- II gene of two groups was detected by PCR. Results Genotype and allele frequency of AMH gene mutation sites of POF group showed no significant difference with the control group(P>0.05). The proportion of GG genotype in AMHR- loci II,c.49+10T>G of POF group was higher than that of the control group,and G allele frequency was higher than that of the control group;The proportion ofTTgenotype inc.622-2C>Tof POF group was higher than that of the control group,and Tallele frequency was higher than that of the control group;The proportion ofAAgenotype inc.622-24C>Aof POF group was higher than that of the control group,and Aallele frequency was higher than that of the control group;The proportion ofTTgenotype inc.1038G>Tof POF group was higher than that of the control group,and Tallele frequency was higher than that of the control group;The difference showed significant difference(P<0.05). Conclusion Polymorphism of AMHR-Ⅱgene may be an important pathogenesis of idiopathic premature ovarian failure. [Key words] Idiopathic premature ovarian failure;AMH;AMHR-Ⅱ;Gene polymorphism 特發性卵巢早衰是指無精确原因的,自身免疫抗体正常的,染色体核型正常的女性在40周岁之前出现的性器官萎缩、持续性闭经,伴有卵泡雌激素、黄体生成素升高,雌激素下降的一种综合征[1-2]。我国卵巢早衰的发病率相对较高,而其中有80%为特发性卵巢早衰,患者主要表现为月经紊乱,血管 舒缩功能不稳定,容易出汗、潮热、情绪波动等。目前特发性卵巢早衰的发病机制还不十分明确,可能与遗传、自身免疫因素、感染、代谢异常、环境等有

异方差性习题及答案

异方差性 一、单项选择 1.Goldfeld-Quandt 方法用于检验( ) A.异方差性 B.自相关性 C.随机解释变量 D.多重共线性 2.在异方差性情况下,常用的估计方法是( ) A.一阶差分法 B.广义差分法 C.工具变量法 D.加权最小二乘法 3.White 检验方法主要用于检验( ) A.异方差性 B.自相关性 C.随机解释变量 D.多重共线性 4.Glejser 检验方法主要用于检验( ) A.异方差性 B.自相关性 C.随机解释变量 D.多重共线性 5.下列哪种方法不是检验异方差的方法 ( ) A.戈德菲尔特——匡特检验 B.怀特检验 C.戈里瑟检验 D.方差膨胀因子检验 6.当存在异方差现象时,估计模型参数的适当方法是 ( ) A.加权最小二乘法 B.工具变量法 C.广义差分法 D.使用非样本先验信息 7.加权最小二乘法克服异方差的主要原理是通过赋予不同观测点以不同的权数,从而提高估计精度,即 ( ) A.重视大误差的作用,轻视小误差的作用 B.重视小误差的作用,轻视大误差的作用 C.重视小误差和大误差的作用 D.轻视小误差和大误差的作用 8.如果戈里瑟检验表明,普通最小二乘估计结果的残差i e 与i x 有显著的形式 i i i v x e +=28715.0的相关关系(i v 满足线性模型的全部经典假设),则用加权最小二 乘法估计模型参数时,权数应为 ( ) A. i x B. 21i x C. i x 1 D. i x 1 9.如果戈德菲尔特——匡特检验显著,则认为什么问题是严重的 ( ) A.异方差问题 B.序列相关问题 C.多重共线性问题 D.设定误差问题 10.设回归模型为i i i u bx y +=,其中i i x u Var 2)(σ=,则b 的最有效估计量为( ) A. ∑∑=2?x xy b B. 2 2)(?∑∑∑∑∑--=x x n y x xy n b C. x y b =? D. ∑=x y n b 1? 二、多项选择 1.下列计量经济分析中那些很可能存在异方差问题( ) A.用横截面数据建立家庭消费支出对家庭收入水平的回归模型 B.用横截面数据建立产出对劳动和资本的回归模型 C.以凯恩斯的有效需求理论为基础构造宏观计量经济模型

c语言程序设计课后习题答案高等教育出版社

#include<> main() { float x=,y=,z=; printf("x=%f\n",x); printf("y=%f\n",y); printf("z=%f\n",z); } (1) #include<> main() { int a=12,b=3; float x=,y=; printf("%f\n",(float)(a*b)/2); printf("%d\n",(int)x%(int)y); } (2) #include<> main() { int x=32,y=81,p,q; p=x++; q=--y; printf("%d %d\n",p,q); printf("%d %d\n",x,y); } #include<> main() { int x,b0,b1,b2,s; printf("Inputx:"); scanf("%d",&x); b2=x/100; printf("骰子出现 2 printf("骰子出现 3 printf("骰子出现 4 printf("骰子出现 5 printf("骰子出现 6

} (1) void Swap(int *x,int *y) { int *pTemp;.\n"); else if(strcmp(userInput,password)<0) printf("Invalid password!user inputpassword...\n"); return 0; } #include<> #define N 24 unsigned int CountLetter(char str[]); int main() { char a[N]; printf("Input a letter:\n"); gets(a); printf("The length of the letter is:%d\n",CountLetter(a)); return 0; } unsigned int CountLetter(char str[]) { char *p=str; int c=0,flag=0; while(*p!='\0') { if(*p!=' ') flag=1; else if(flag==1) { c++; flag=0; } p++; } return c+1; } #include<>

基因多态性分析

人基因多态性分析 一、实验目的 1. 了解基因多态性在阐明人体对疾病、毒物的易感性与耐受性、疾病临床表现的多样性以及对药物治疗的反应性中的重要作用。 2. 了解分析基因多态性的基本原理和研究方法。 二、实验原理 基因多态性(gene polymorphism)是指在一个生物群体中,同时存在两种及以上的变异型或基因型或等位基因,也称为遗传多态性(genetic polymorphism)。人类基因多态性对于阐明人体对疾病的易感性、毒物的耐受性、药物代谢差异及遗传性疾病的分子机制有重大意义;与致病基因连锁的多态性位点可作为遗传病的诊断标记,并为分离克隆致病基因提供依据;病因未知的疾病与候选基因多态性的相关性分析,可用于辅助筛选致病易感基因。 聚合酶链反应-限制性片段长度多态性(polymerase chain reaction—Restriction Fragment Length Polymorphism,PCR-RFLP)分析是一种常用的DNA分子标记。原理是通过PCR扩增获得目的基因。若目的基因存在等位变异(多态性),且变异正好发生在某种限制性内切酶识别位点上,使酶切位点增加或者消失,则酶切结果就会产生大小不同的片段,即片段长度多态性,再利用琼脂糖凝胶电泳分离,可呈现出多态性电泳图谱。若将患者与正常的多态性图谱比较,可确定是否变异。应用PCR-RFLP,可检测某一致病基因已知的点突变,进行直接基因诊断,也可以此为遗传标记进行连锁分析进行间接基因诊断。 三、器材与试剂 1. 器材 ⑴离心机。 ⑵DNA扩增仪。 ⑶电泳仪。 ⑷水平电泳槽。 ⑸紫外检测仪。 ⑹移液器。 2. 试剂

(完整word版)计量经济学习题与答案

期中练习题 1、回归分析中使用的距离是点到直线的垂直坐标距离。最小二乘准则是指( ) A .使∑=-n t t t Y Y 1 )?(达到最小值 B.使∑=-n t t t Y Y 1 达到最小值 C. 使 ∑=-n t t t Y Y 1 2 )(达到最小值 D.使∑=-n t t t Y Y 1 2)?(达到最小值 2、根据样本资料估计得出人均消费支出 Y 对人均收入 X 的回归模型为 ?ln 2.00.75ln i i Y X =+,这表明人均收入每增加 1%,人均消费支出将增加 ( ) A. 0.75 B. 0.75% C. 2 D. 7.5% 3、设k 为回归模型中的参数个数,n 为样本容量。则对总体回归模型进行显著性检验的F 统计量与可决系数2 R 之间的关系为( ) A.)1/()1()/(R 2 2---=k R k n F B. )/(1)-(k ) R 1/(R 22k n F --= C. )/()1(22k n R R F --= D. ) 1()1/(22R k R F --= 6、二元线性回归分析中 TSS=RSS+ESS 。则 RSS 的自由度为( ) A.1 B.n-2 C.2 D.n-3 9、已知五个解释变量线形回归模型估计的残差平方和为 8002=∑t e ,样本容量为46,则随机 误差项μ的方差估计量2 ?σ 为( ) A.33.33 B.40 C.38.09 D. 20 1、经典线性回归模型运用普通最小二乘法估计参数时,下列哪些假定是正确的( ) A.0)E(u i = B. 2 i )V ar(u i σ= C. 0)u E(u j i ≠ D.随机解释变量X 与随机误差i u 不相关 E. i u ~),0(2 i N σ 2、对于二元样本回归模型i i i i e X X Y +++=2211???ββα,下列各式成立的有( ) A.0 =∑i e B. 0 1=∑i i X e C. 0 2=∑i i X e D. =∑i i Y e E. 21=∑i i X X 4、能够检验多重共线性的方法有( ) A.简单相关系数矩阵法 B. t 检验与F 检验综合判断法 C. DW 检验法 D.ARCH 检验法 E.辅助回归法

C语言课后练习题答案第五章

作业四:简单程序设计 1.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式(B);如果字符串长度小于5,则输出按方式(C)。(5分)(重要) A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 2.阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为(D)。(5分) main() { int x,y,z; scanf(“%d%d%d”,&x,&y,&z);要和这里一样 printf(“x+y+z=%d\n”,x+y+z); } A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值 3.根据下面的程序及数据的输入和输出形式,程序中输入数据的正确形式应该为(WXY)。(5分) main() { char ch1,ch2,ch3;

scanf(“%c%c%c”,&ch1,&ch2,&ch3); printf(“%c%c%c”,ch1,ch2,ch3); } 4.以下的输出结果是(x=1,y=2*sum*=3 10 Squard is : 100)。(5分) main() { int x=1,y=2; printf(“x=%d y=%d * sum * =%d\n”,x,y,x+y); printf(“10 Squared is : %d\n”,10*10); } 5.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2 =’b’,想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。要求输出的结果如下:(20分) a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.6 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1=’a’ or 97(ascll) c2=’b’ or 98(ascll) main()

应用回归分析,第4章课后习题参考答案

第4章违背基本假设的情况 思考与练习参考答案 4.1 试举例说明产生异方差的原因。 答:例4.1:截面资料下研究居民家庭的储蓄行为 Y i=β0+β1X i+εi 其中:Y i表示第i个家庭的储蓄额,X i表示第i个家庭的可支配收入。 由于高收入家庭储蓄额的差异较大,低收入家庭的储蓄额则更有规律性,差异较小,所以εi的方差呈现单调递增型变化。 例4.2:以某一行业的企业为样本建立企业生产函数模型 Y i=A iβ1K iβ2L iβ3eεi 被解释变量:产出量Y,解释变量:资本K、劳动L、技术A,那么每个企业所处的外部环境对产出量的影响被包含在随机误差项中。由于每个企业所处的外部环境对产出量的影响程度不同,造成了随机误差项的异方差性。这时,随机误差项ε的方差并不随某一个解释变量观测值的变化而呈规律性变化,呈现复杂型。 4.2 异方差带来的后果有哪些? 答:回归模型一旦出现异方差性,如果仍采用OLS估计模型参数,会产生下列不良后果: 1、参数估计量非有效 2、变量的显著性检验失去意义 3、回归方程的应用效果极不理想 总的来说,当模型出现异方差性时,参数OLS估计值的变异程度增大,从而造成对Y的预测误差变大,降低预测精度,预测功能失效。 4.3 简述用加权最小二乘法消除一元线性回归中异方差性的思想与方法。 答:普通最小二乘估计就是寻找参数的估计值使离差平方和达极小。其中每个平方项的权数相同,是普通最小二乘回归参数估计方法。在误差项等方差不相关的条件下,普通最小二乘估计是回归参数的最小方差线性无偏估计。然而在异方差

的条件下,平方和中的每一项的地位是不相同的,误差项的方差大的项,在残差平方和中的取值就偏大,作用就大,因而普通最小二乘估计的回归线就被拉向方差大的项,方差大的项的拟合程度就好,而方差小的项的拟合程度就差。由OLS 求出的仍然是的无偏估计,但不再是最小方差线性无偏估计。所以就是:对较大的残差平方赋予较小的权数,对较小的残差平方赋予较大的权数。这样对残差所提供信息的重要程度作一番校正,以提高参数估计的精度。 加权最小二乘法的方法: 4.4简述用加权最小二乘法消除多元线性回归中异方差性的思想与方法。 答:运用加权最小二乘法消除多元线性回归中异方差性的思想与一元线性回归的类似。多元线性回归加权最小二乘法是在平方和中加入一个适当的权数i w ,以调整各项在平方和中的作用,加权最小二乘的离差平方和为: ∑=----=n i ip p i i i p w x x y w Q 1211010)( ),,,(ββββββ (2) 加权最小二乘估计就是寻找参数p βββ,,,10 的估计值pw w w βββ?,,?,?10 使式(2)的离差平方和w Q 达极小。所得加权最小二乘经验回归方程记做 22011 1 ???()()N N w i i i i i i i i Q w y y w y x ββ===-=--∑∑22 __ 1 _ 2 _ _ 02 222 ()() ?()?1 11 1 ,i i N w i i i w i w i w w w w w kx i i i i m i i i m i w x x y y x x y x w kx x kx w x σβββσσ==---=-= = ===∑∑1N i =1 1表示=或

C语言第五章习题带答案更新Word版

练习5-1答案 一、选择题 1.合法的数组说明语句是( B )。 A.int a[]="string"; B.int a[]={0,1,2,3,4,5}; C.char a="string"; D.char a[5]={'0', '1', '2', '3', '4', '5'}; 2.以下对一维整型数组a的说明正确的是( D )。 A.int a(10); B.int n=10, a[n]; C.int n; D.#define SIZE 10 scanf("%d", &n); int a[SIZE]; int a[n]; 3.已知:int a[10];,则对a数组元素的正确引用是( D )。 A.a[10] B.a[3.5] C.a(5) D.a[10-10] 4.以下对一维数组a进行正确初始化的语句是( C )。 A.int a[10]=(0, 0, 0, 0, 0); B.int a[10]={}; C.int a[]={0}; D.int a[2]={10, 9, 8}; 5.对以下说明语句的正确理解是( B )。 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.因为数组长度与初值的个数不相同,所以此语句不正确 二、填空题 6.求所有不超过200的N值,N的平方是具有对称性质的回文数。所谓回文数就是将一个数从左到右与从右到左读都是一样的,例如:34543和1234321都是回文数。 例如:满足题意要求的数有:N=1,11*11=121;N=111,111*111=12321。 #include main() {int m[16], n, i, t, count=0; long a, k; printf("Result is:\n"); for (n=10; n<200; n++) { k=0; t=1; a=n*n; for (i=1; a!=0; i++) { ①; a/=10; }

异方差习题

第五章 异方差性 思考题 5.1 简述什么是异方差 ? 为什么异方差的出现总是与模型中某个解释变量的变化有关 ? 5.2 试归纳检验异方差方法的基本思想 , 并指出这些方法的异同。 5.3 什么是加权最小二乘法 , 它的基本思想是什么 ? 5.4 产生异方差的原因是什么 ? 试举例说明经济现象中的异方差性。 5.5 如果模型中存在异方差性 , 对模型有什么影响 ? 这时候模型还能进行应用分析吗 ? 5.6 对数变化的作用是什么 ? 进行对数变化应注意什么 ? 对数变换后模型的经济意义有什么变化 ? 5.7 怎样确定加权最小二乘法中的权数 ? 练习题 5.1 设消费函数为 12233i i i i Y X X u βββ=+++ 其中,i Y 为消费支出;2i X 为个人可支配收入;3i X 为个人的流动资产;i u 为随机误差项 , 并且 E(i u )=0,Var(i u )= 222i X σ( 其中2 σ为常数) 。试回答以下问题 : 1) 选用适当的变换修正异方差 , 要求写出变换过程 ; 2) 写出修正异方差后的参数估计量的表达式。 5.2 根据本章第四节的对数变换 , 我们知道对变量取对数通常能降低异方差性 , 但需对这种模型的随机误差项的性质给予足够的关注。例如 ,设模型为 21Y X u ββ=,对该模型中 的变量取对数后得 12ln ln ln ln Y X u ββ=++ 1) 如果ln u 要有零期望值 ,u 的分布应该是什么 ? 2) 如果 E(u )=1, 会不会 E(ln u )=0? 为什么 ? 3) 如果 E(ln u ) 不为零 , 怎样才能使它等于零 ? 5.3 表 5.8 给出消费 Y 与收入 X 的数据 , 试根据所给数据资料完成以下问题 : 1) 估计回归模型12Y X u ββ=++中的未知参数1β和2β, 并写出样本回归模型的书写格式; 2) 试用 GOMeld-Quandt 法和 White 法检验模型的异方差性 3 3) 选用合适的方法修正异方差。

《C语言程序设计》课后习题参考答案

高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案 ――武汉大学出版社 习题1参考答案 一、选择题 1. A 2. D 二、填空题 1. BASIC、FORTRAN、AL_GOL60和COBOL 2. 8 3. 关键字 4. 编辑、编译、链接和运行 三、简答题 1.答: (1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。 (2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关的指针类型。此外,用户还可以根据需要自定义数据类型。(3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。 (4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。 (5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。 (6)C语言与汇编语言相比,可移植性好。 (7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。 2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。 3.答: (1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。

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