C语言基础及答案10~12

来源:互联网 发布:2017年网购数据调查 编辑:程序博客网 时间:2024/04/29 06:29

第十章 结构体与共用体

一、 选择题

1、 定义结构类型时,下列叙述正确的是____

A、 系统会按成员大小分配每个空间

B、 系统会按最大成员大小分配空间

C、 系统不会分配空间

D、 以上说法均不正确

2、 已知结构类型变量x的初始化值为{20,30,40,35.5},请问合适的结构定义是___

A、 Struct s{int no;int x,y,z};

B、 Struct s{char no[2];int x,y,z};

C、 Struct s{int no;float x,y,z};

DStruct s{char no[2];float x,y,z};

3、若程序中有定义struct abc{int x;char y;};abc s1,s2;则会发生的情况是____

A、 编译时会有错误

B、 链接时会有错误

C、 运行时会有错误

D、 程序没有错误

  

二 、编程

1、 已有a,b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。

 

参考答案

选择题

1   2    3A

二、编程题

1#include

   #define null 0

   #define LEN sizeof(struct student)

   Struct student

   {long num;

Int score;

Struct student *next;

};

Struct student listA,listB;

Int n,sum=0;

Main()

{struct student *creat(void)

 Struct student *insert(struct student *,struct student *);

 Void print(struct student *);

 Struct student *ahead,*bhead,*abh;

 Printf(\ninput list a:\n);

 ahead=creat();

 sum=sum+n;

 printf(input list b:\n);

 bhead=creat();

 sum=sum+n;

 abh=insert(ahead,bhead);

 print(abh);

 }

Struct student *creat(void)

 {struct student *p1,*p1,*head;

  n=0;

  p1=p2=(struct student *)malloc(LEN);

  printf(input number scores of student:\n);

  printf(if number is 0,stop inputing,\n);

scanf(%ld,%d,&p1->num,&p1->score);

head=null;

while(p1->num!=0)

 {n=n+1;

  If(n==1)head=p1;

  Else p2->next=p1;

  p2=p1;

  p1=(struct student*)malloc(LEN);

  scanf(%ld,%d,&p1->num,&p1->score);

  }

 p2->next=null;

 return(head);

 }

Struct student *insert(struct student*ah,struct *bh)

 {struct student *pa1,*pa2,*pb1,*pb2;

  pa2=pa1=ah;

  pb2=pb1=bh;

 do

 {while((pb1->num>pa1->num)&&(pa1->next!=null))

  {pa2=pa1;

   p1=pa1->next;

   }

  If(pb1->num<=pa1->num)

   {if(ah==pa1)

    ah=pb1;

   else pa2->next=pb1;

   pb1=pb1->next;

   pb2->next=pa1;

   pa2=pb2;

   pb2=pb1;

   }

  }

  While((pa1->next!=null)||(pa1==null&&pb1!null));

   If((pb1->num>pa1->num)&&(pa1->next==null))

    pa1->next=pb1;

   return(ah);

    }

  Void print(struct student *head)

   {struct student *p;

    Printf(\n there are %d records:\n,sum);

    p=head;

    if(p!=null)

     do

      {printf(%ld %d\n,p->num,p->score);

  p=p->next;

  }

 While(p!=null);

}

 

第十一章  位运算

编程题

1、 设计一个函数,使给出一个数的原码,能得到该数的补码

参考答案

Main()

{unsigned int a;

 Unsigned int getbits(unsigned);

 Printf(\ninput an octal number:);

 Scanf(%o,&a);

 Printf(result :%o\n,getbits(a));

 }

 Unsigned int getbits(unsigned value)

 {unsigned int z;

  z=value&0100000;

  if(z==0100000)

  z=~value+1;

  else

   z=value;

   return(z);

  }

 

第十二章 文件

一、 选择题

1、在C语言,文件由_____

A、 记录组成

B、 由数据行组成

C、 由数据块组成

D、 由字符(字节)序列组成

2C语言中的文件类型只有____

A、索引文件和文本文件两种

BASCII文件和二进制文件两种

C、文本文件一种

D、二进制文件一种

3C语言中文件的存取方式___

A、只能顺序存取

B、只能随机存取(或称直接存取)

C、可以顺序存取,也可随机存取

D、只能从文件的开头进行存取

   

参考答案 

选择题

1   2    3

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 广州中医药大学第一附属医院 河南中医药大学第一附属医院 河南中医药大学附属医院 成都中医药大学附属医院 云南中医药大学教务管理系统 湖北中医药大学教务 中医药大学附属医院 湖北中医药大学教务在线 天津中医药大学第一附属医院 天津中医药大学研究生院 云南中医药大学教务系统 北京中医药大学东方学院 山东中医药大学附属医院 辽宁中医药大学附属医院 上海中医药大学研究生院 广西中医药大学第一附属医院 山东中医药大学研究生处 江西中医药大学科技学院 广州中医药大学研究生院 陕西中医药大学数字校园 湖南中医药大学附属医院 安徽中医药大学第一附属医院 山东中医药大学第二附属医院 中医药大学东方学院 陕西中医药大学附属医院 安徽中医药大学附属医院 湖南中医药大学第一附属医院 浙江中医药大学教务处 甘肃中医药大学教务网 河南中医药大学中文网 世界中医药学会联合会 安微中医药高等专科学校 中华医学会中医药学会 中医药现代化国际科技大会 东中医药高等专科学校 世界科学技术中医药现代化 中医丰胸贴 中医特色贴敷疗法与处方 老中医小玲慧静煜通 输卵管通而不畅中医疗法 中医通下载