复试大纲及线

第一部分  考试说明

(一) 答卷方式:闭卷、笔试、机试
(二) 答题时间:笔试120分钟,上机120分钟
(三) 考试题型及比例(满分100分):
(四) 程序设计 (程序设计,算法设计与分析) 70%
(五) 离散结构(计算与证明题) 30%


第二部分  考查主要知识点
(一) 程序设计语言
C/C++或者Java
(二) 结构体类型
结构体数组、链表定义及初始化、结构体和函数调用、结构体动态开辟和释放、结构体链表的建立、输出、删除、插入、修改等操作。
(三) 文件
文件打开与关闭、读取文件指定内容、修改文件指定内容、删除文件指定内容、文件更名与删除、文本文件与二进制文件、流式文件读写、内存映射文件。
(四) 同步与互斥
信号量、互斥量、临界区、进程同步、线程同步、多线程读写共享内存。
(五) 经典算法
递归算法、迭代算法、搜索算法、排序算法、学科核心课程的重要算法等。
(六) 集合与关系
集合与关系、关系的性质、等价关系、偏序关系、集合的计数。
(七) 数理逻辑
逻辑与证明、命题演算的推理理论、谓词演算的推理理论。
(八) 代数结构
代数运算及其性质、同态和同构、半群、独异点和群、格及其性质。
(九) 图论
图的基本概念及基本定理、图的连通性、特殊图、图及树的应用。

上一篇:/p/题目

下一篇:C 一些问题

新加评论 评论标题:

文章评论

    结构体类型与文件

        2018-03-24    
    修改 删除

    结构体类型与文件

    #include <stdio.h>
    #include <io.h>
    #include <stdlib.h>
    #include <direct.h>
    //#include<malloc.h>
    typedef struct List
    {
    	int count;
    	struct List * next;
    }List;
    
    void initList(List *L);  //初始化链表
    void viewList(List L);  //输出链表值
    void delect(int count,List *L);  //删除链表某元素
    void saveList(List L);  //以二进制形式保存读取文件fread,fwrite函数
    void main()
    {
    	List *p;
    	List grade;
    	grade.count=0;grade.next=NULL;
    	p=&grade;
    
    	initList(&grade);
    	printf("初始化时grade指向的链表的值:");
    	viewList(grade);
    
    	printf("删除grade中 30 后的链表的值:");
    	delect(30,p);
    	viewList(grade);
    
    	saveList(grade);
    
    }
    
    void saveList(List L)
    {
    	FILE *fp;
    	int i=0;
    	List *p=&L;
    	List *read=(List *)malloc(sizeof(List));
    
    	if(access("20180324",0))mkdir("20180324");
    	if((fp=fopen("20180324/my.dat","w+"))==NULL)exit(0);
    
    	while(p!=NULL)	//二进制形式存储文件
    	{
    		fwrite(p,sizeof(List),1,fp);
    		p=p->next;
    		i++;
    	}
    	
    	rewind(fp);  //移动文件游标到文件起始位置
    
    	printf("流式文件读取:");
    	for(;i>0;i--)	//二进制形式读取文件
    	{
    		fread(read,sizeof(List),1,fp);
    		printf("%d ",read->count);
    	}
    	putchar('\n');
    	
    	fclose(fp);
    
    	printf("修改名字状态%d\n",rename("20180324/my.dat","20180324/my.txt"));
    	//rename(old,new).修改文件名字,需要在文件关闭状态。
    	printf("删除文件状态%d\n",remove("20180324/my.txt"));//remove(name)删除文件
    	
    	//文件内容的删除与修改的一个策略,从源文件中读取内容。
    	//判断后写入一个新文件,最后再对新文件重命名
    
    }
    
    void initList(List *L)
    {
    	int i;
    	List *p=L;
    	for(i=1;i<=10;i++)
    	{
    		L->count++;//带头结点,记录链表长度
    		p=(List *)malloc(sizeof(List));
    		p->count=i*3;
    
    		p->next=L->next;
    		L->next=p;
    	}
    }
    
    void viewList(List L)
    {
    	List *p=&L;
    	while(p != NULL)
    	{
    		printf("%d ",p->count);
    		p=p->next;
    	}
    	putchar('\n');
    }
    
    void delect(int count,List *L)
    {//从链表删除值为count的结点,参数应为指针
    	List *q;
    	List *p=L;
    	//while(p->count==count){L=*L.next;free(p);p=&L;}
    	q=p->next;		
    	while(q != NULL)
    	{
    		if(q->count==count)
    		{
    			p->next=q->next;
    			free(q);
    			q=p->next;
    			L->count--;
    		}
    		else 
    		{
    			q=q->next;
    			p=p->next;
    		}
    	}
    }
评论列表
结构体类型与文件