内容发布更新时间 : 2025/11/4 22:27:41星期一 下面是文章的全部内容请认真阅读。
??? ____??__?__?__线__?__?号?位?座?__?__?__?__?__?__?_ _?号题?场答?试要?_不_?_内_?_线_?_订订__装?_ _?__?__?__?名?姓? ? ? ? ? ? ? ? ? ? ? ?号?考? ? 装 ? ? ? ? ? 级?班?? ????沅江市职业中专计算机专业《C语言》试卷
以下程序的输出结果是 。 main() 结构体与共用体过关题
{ union
{ int b[4]; long k;char c[4];} a,*s=&a; 考生注意:本试卷共5大题,总分150 分,考试时间 90 分钟。 s->b[0]=0x3738; 一、程序写结果题:本题共6题,每题5分,共30分。 s->b[1]=0x3635;
1. 下面程序的输出是_______。 printf(〞%c\\n〞,s->c[1]);}
main()
5.有以下程序输出结果是 { enum em{em1=3,em2=1,em3}x;
struct stu
char *aa[]={\{int num;char name[10];int age; }; x=em2;
void fun(struct stu *p) printf(\{ p++;
2. 下面程序的输出结果是________。 p->age=45;
struct ks
strcpy(p->name,”liming”); { int a; int *b;}; }
main()
main()
{ struct ks s[5],*p; {struct stu ss[3]={{01,\int n=1,i;
fun(ss+1);
for(i=0;i<5;i++) printf(“%d,%s,%d\\n”,ss[2].num,ss[2].name,ss[2].age);}
{ s[i].a=n; 6.设位段的空间分配由右到左,则以下程序的运行结果是 。s[i].b=&s[i].a; struct as
n=n+3; { unsigned a : 2 ; }
unsigned b : 3 ; p=&s[1];
unsigned c : 4 ; printf(\ } data ; 3.下面程序的输出是 main ( )
Struct ab{int a[2];char b;float c;}; { unsigned char x=45; typedef union { long x[2]; data.a=7 ; int y[7]; data.b=2 ; char z[8];
data.c=23; struct ab b[4]; data.i=68;
} MY; data.a=data.a&x; main()
data.c=data.b^x;
{ MY them[10];
printf(“%d\\n”,data.a+data.b+data.c) ; printf(\
}
4. 字符ˊ0ˊ的ASCII码的十进制数为48,且数组的第0个元素在低位,则
二、程序填空题:本题共3题,每题10分,共30分。
结构体与共用体过关题 共4页 第1页
1.以下函数creatlist用来建立一带头节点的单链表,链表的结构如下图所示,新的节点总是插入在链表的末尾。链表的头指针作为函数值返回。链表最后一个节点的next域放入NULL,作为链表结束的标志。data为字符型数据域,next为指针域。读入时字符以#表示输入结束(#不存入链表)。请填空。
0 h … struct node { char data;
struct node *next; }; ……
struct node * creatlist( ) { struct node *h,*s,*r; char ch;int i=1; ch=getchar(); while (ch!=’#’)
{ s=(struct node*)malloc(sizeof(struct node)); s->data= ; s->next=NULL; if(i==1) h=s;
else ; r=s; i++;
ch=getchar();} return h;}
2. 某学习小组有10个人,每个人的信息包括:学号、姓名、班级和成绩。要求从键盘上输入他们的信息,并求出总成绩以及最高成绩者的信息。 #define NUM 10
#include “conio.h” struct students
{ char no[7],name[9]; int class;
int score[5]; }; main() { struct student a[NUM],*stu; int count,max=0,sum=0,j; stu=a;
     for(count=0;count            for(j=0;j<3;j++)               {  scanf(“%d”,&stu[count].score[j]);                 sum+=stu[count].score[j];                 stu[count].score[4]=sum;                  if(                                    )                                                   ;               }           }        printf(“no:%s\\n”,stu[max].no);       printf(“name:%s\\n”,stu[max].name);       printf(“class:%s\\n”,stu[max].class);       for(j=0;j<5;j++)           printf(“%d   ”,stu[max].score[j]);  }  3.学生的记录由学号和成绩组成,N名学生的数据在主函数中输入结构体数组s中,函数fun(),的功能是,按分数的高低排列学生的记录,高分在前。 #include  typedef  struct{ char num[10];  int  s ;}STREC; int  fun (STREC  a[]) {STU t;  int i,j,k;  for(i=0;i   for(j=i+1;j      if(                            )                 k=j;  if(k!=i)  {t=a[i];a[i]=a[k];a[k]=t;} }}    结构体与共用体过关题  共4页  第2页    main ()  { STREC  s[N];    int i;     for(i=0;i    scanf(                                 );   fun(s);     for (i=0; i       {if((i)%4==0)        printf(\       printf(\      } }  三、程序改错题:本题共3题,每题10分,共30分。  1. 设有一个描述零件加工的数据结构为:零件号 pname;工序号 wnum;指针next; 下面程序建立一个包含100个零件加工数据的单项链表。 #include #define LEN sizeof(struct parts) typedef struct parts{char pname[10]; int wnum; struct parts *next; }AS; void main()  { AS  *head, *p,*q;   int i;    for(i=0;i<100;i++)  { p=(AS *)malloc(sizeof(AS));    scanf(“%s%d”,p->pname,&p->wnum);   p->next=NULL; if(i==0)   head=p; else  p->next=q;     q=p; }    p=head;  while(p)    {printf(“%s,%d\\n”,p->pname,p->wnum);   p++;} }  2. 定义一个日期结构变量(由年、月、日3 个整形数据组成),计算该日期是本年度的第几日。  typedef struct DATA   {int year,month,day;}AB; int leap(int y)    {  int flag=0;        if(y%4==0&&y0!=0||y@0==0) flag=1;       return(flag);      } main()    {int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; struct AB data; int k,sum;  scanf(“%d,%d,%d”,&data.year,&data.month,&data.day); for(k=1,sum=0;k sum+=leap(year); printf(“%d”,sum); }  3.下列给定程序中函数fun()的作用是求出已建立的单向链表结点(不包括头结点)数据域中(数据域中的值都大于0)的最大值,并且作为函数值返回。标记并改正fun()函数中的两处错误 #include  typedef struct aa{ int data;  struct aa *next;} NODE; int fun (NODE h) { int max=-1;   NODE *p;   p=h->next;   while(p!=NULL)         { if(p->data>max)              max=p->data;           p=h->next;        }    return max;}  NODE * createlink()/*建立返回头结点的链表*/ {……    结构体与共用体过关题  共4页  第3页