江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
江苏计算机C语言结构体与共同体考核

江苏省计算机等级考试辅导C

第三次授课资料

考点1:结构体

例题:已知有结构体定义和变量声明如下:(2008)

struct student

{char name[20];

 int score;

 struct student *h;

}stu, *p;   int *q;

以下选项中错误的是_________

A.p=&stu;        B.q=&stu.score;   C.scanf(“%s%d”,&stu);   D.stu.h=p;

例题:以下程序运行时输出结果的第一行是________,第二行是__________

#include <stdio.h>

struct s

{int x,*y;

}*p;

int d[5]={10,20,30,40,50};

struct s a[5]={100,&d[0],200,&d[1],300,&d[2],400,&d[3],500,&d[4]};

void main()

{p=a;

 printf(“%5d”,p->x++);

 printf(“%5d\n”,p->x);

 printf(“%5d”,*p->y);

 printf(“%5d\n”,*++p->y);

}

考点2:处理链表

例题:以下程序的功能是:函数struct node *insert(struct node *head, struct node *p)p指向的结点作为首结点插入head指向的链表中,main函数接收从键盘输入的一行字符,每接收一个字符后,申请一个新节点保存该字符,并调用insert函数将新结点插入链表中,最后从表头开始一次输出该链表个结点成员c的值,试完善程序以达到要求的功能

#include <stdio.h>

#include <stdlib.h>

struct node

{char c;

 struct node *next;

};

void main()

{struct node *insert(struct node *head, struct node *p);

 char ch; struct node *head,*p;

 head=NULL;

 while((ch=getchar())!=’\n’)

{p=(struct node *)malloc(sizeof(struct node));

 _______________=ch;

 p->next=NULL

 __________________;

}

p=head;

while(p!=NULL)

{printf(“%c”,p->c);

________________;

}

}

struct node *insert(struct node *head, struct node *p)

{if(head= =NULL)

head=p;

 else

 {______________________--;

  head=p;

}

 return head;

}

考点 3:共用体:

考点4:枚举类型

例题:已知”enum ab{a,b=5,c,d}”,枚举常量d的值是___________

考点5:用typedef定义类型

例题:以下结构变量stu1的声明形式中,错误的是__________

A.typedef struct stu{char name[10];float score;} STU; STU stu1;

B.#define STU struct stu

STU {char name[10];float score;}stu1;

C.struct stu{char name[10]; float score;} stu1;

D.struct stu{char name[10];float score;} STU; STU stu1;

第十二章:文件

文件指针是很重要的一个概念,定义文件指针的格式:

考点1:文件打开

FILE  *文件指针名;

例如:

FILE *fp;

fp=fopen(“文件名”,”打开文件方式”);

文件的打开:

"r"(只读)      "r+"(为读/写方式打开已存在的文本文件)

"w"(只写)      "w+"(以读/写方式新建文本文件)

"a"(追加)      "a+"(以读/写方式将数据追加到文件尾)

rb+”(读写) 为读写打开一个二进制文件  “wb+”为读写建立一个二进制文件

考点2:文件关闭

fclose(文件指针)

考点3:文件的读写函数

fputc函数:将一个字符写到磁盘文件上

fgetc函数:从指定的文件读入一个字符

fread函数:用来读一个数据块,fwrite函数:用来写一个数据块

fprintf函数:格式化写函数,fscanf函数:格式化读函数,针对的不是终端而是磁盘文件

rewind函数:使位置指针重新返回文件的开头

fseek函数:改变文件的位置指针