问题 问答题 简答题

怎样检测血痕的性别?

答案

参考答案:

血痕的性别检验主要通过检测性染色体、性激素性和性别的DNA分析。

(1)性染色体检验:人类男性染色体为XY,女性为XX。Y染色体为男性体细胞所特有。Y染色体长臂远端能与盐酸阿的平结合,发强荧光,在荧光显微镜下,可见在白细胞核膜内侧出现直径约0.3μm大小的圆形或类圆形荧光小点,即为Y染色体。若Y染色体占细胞核数10%以上,可判定为男性。男性两条性染色体(XY)均具有活性,女性(XX)则只有一条有活性,另一条固缩无活性,质致密,用氯化甲基硫堇染色,在显微镜下,见白细胞核膜内的类圆形深蓝色斑点,即为X染色体。X染色体占细胞核数10%以上为女性血痕。

(2)性激素定量测定:成年男性和女性的血清中的性激素含量差异较大,男性血清中,睾酮含量高于女性,而孕酮和雌二醇的含量比女性低。测定血痕中性激素的含量,计算男性激素与女性激素的比值或性激素与样品血红蛋白的比值,可判断血痕的性别。性激素的含量较低,一般用放射免疫分析法(RIA.等灵敏的方法测定。

(3)性别的DNA分析:从物证检材中提取DNA与Y染色体DNA探针进行分子杂交,根据是否出现杂交带,判定物证检材是来自男性还是女性。性别鉴定常采用斑点杂交法和DNA凝胶原位杂交法。PCR法也是目前检测性别的常用的方法。如物证检材是男性的组织细胞,则提取的DNA存在Y染色体,选用引物Y1.1’、Y1.2’则扩增出的产物就是Y染色体上的一段特异性片段,经过一定的PCR循环周期,将反应产物直接进行琼脂糖凝胶电泳,溴化乙锭(EB.染色,在紫外线光下观察,可见一条荧光带,可确定为男性。

问答题
填空题

【说明】
网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。
以下是一个简单的客户机程序(服务器程序略),其工作过程非常简单:客户机与服务器建立连接后,接收服务器向客户机返回的一条消息。
程序中用到了两种结构hostent与sockaddr - in:
hostent类型的结构定义如下:
struct hostent char*h_name; //主机的正式名称
char * * h_aliases; //别名列表
int h_addrtype; //主机地址类型:AF_XXX
Int H_length; //主机地址长度:4B(32b)
char * * h_addr_list;//主机IP地址列表
#define h_addr h_addr_list [0]
sockaddr_in类型的结构定义:sockaddr_in是通用套接字结构sockaddr在TCP/IP协议下的结构重定义,为TCP/IP套接字地址结构。
Struct sockaddrin
short int sin_family;//地址类型AF_XXX,其中AF_INET为TCP/IP专用
unsigned short int sin_port; //端口号
struct in_addr sin_addr;//Internet地址
//端口号以及Internet地址使用的是网络字节顺序,需要通过函数htons转换

struct iN_addr
_u32s_addr; //类型为unsignel_long

程序中使用到了多个函数:
struct hostent * gethostbyname(const char*hostname);
函数gethostbyname查询与指定的域名地址对应的IP地址,返回一个hostent结构的指针,如果不成功则返回NULL。
int_socket(int domain,int_type,int protocol);
函数socket创建一个套接字描述符,如果失败返回-1。domain为地址类型,type为套接字类型,本题中为SOCK_STRBEAM;protocol指定协议,本题中为0。
int connect(int sockfd,struct sockaddr*servaddr,int addrlen);
函数connect与服务器建立一个连接,成功返回0,失败返回-1。servaddr为远程服务器的套接字地址,包括服务器的IP地址和端口号;addrlen为地址的长度。
int read(int fd,char * buf,int len);
int write(int fd,char * buf,int len);
函数read和write从套接字读和写数据,成功返回数据量大小,否则返回-1。buf指定数据缓冲区,len指定接收或发送的数据量大小。
【Socket程序】
//程序中引用的头文件略
#define PORT 3490
//定义端口号为3490
int main(int argc,char*argv[])
int sockfd,nbytes; //套接字描述符、读入缓冲区的字节数
char buf [1024]; //缓冲区
struct hostent * he; //主机信息类型
struct sockaddr_in srvaddr; //Internet套接字结构
if( (1) )
perror(“调用参数为零,请输入服务器的主机名!\n”); exit(1);
if( (2) ) //如果通过主机名没有获得对应的主机信息就提示用户
perror(“无法通过主机名获得主机信息!\n”); exit(1);
if( (3) ) //在无法创建套接字时,提示用户
perror(“无法创建套按字!\n”); exit(1);
bzero(&srvaddr,sizeof(srvaddr)); //置空srvaddr
srvaddr, sin_family=AF_INET;
srvaddr, sin_port: (4) ;srvaddr.sin_addr: (5)
//设置套接字结构的各项信息,其中的地址来自域名查询后的hp变量
if(connect(sockfd, (n) ,sizeof(struct sockaddr))==-1)
perror(“连接失败!\n”); exit(1);
//连接服务器,如果失败则提示用户
if((nbytes=read(sockfd,buf,MAXDATASIZE))==-1)
perror(“读失败!\n”);exit(1);
//从套容接字中读出数据
buf [nbytes]=’\0’;
printf(“读到的内容:%s”,buf);
close(sockfd);
//打印数据并关闭套接字