考查考生对c程序设计中基本概念和基本知识的理解。
一、C语言概述。
1. 了解C语言的基本符号。
2. 了解C语言的词汇(关键字、标识符、常量、运算符、标点符号等)。
3. 掌握C程序的基本框架。
4. 能够使用Visual C++ 6. 0 集成开发环境编辑、编译、运行与调试程序。
二、数据类型、表达式和基本运算。
1. 掌握C数据类型(基本类型,指针类型)及其定义方法。
2. 了解C的常量定义(整型常量,字符常量,逻辑常量,实型常量,地址常量,符号常量)。
3. 掌握变量的定义与使用方法(变量的定义及初始化,全局变量,局部变量)。
4. 掌握C运算符的种类、运算优先级和结合性。
5. 熟练掌握C表达式类型及求值规则(赋值运算,算术运算符和算术表达式,关系运算符和关系表达式,逻辑运算符和逻辑表达式,条件运算,指针运算,逗号表达式)。
给,已经编译运行确认了:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define N 10
int M=0
struct student
{
char num[13]
char name[20]
char sex
char address[30]
intage
}
typedef struct LB
{
struct student XINXI
struct LB *next
}LB_1,*LB_2
void CAIDANG()
{
printf(" \t \t \t (欢迎使用本班级档案管理系统)\t\t\t\t\n")
printf("★*★*★*★*★*★*★*★*★*★ 欢迎进入我们的系统 ★*★*★*★*★*★*★*★*★*★\n\n")
printf("1.录入学生资料\t\t\t\t\t4.查询学生信息\n\n")
printf("2.修改学生信息\t\t\t\t\t5.删除学生信息\n\n")
printf("3.保存学生信息\t\t\t\t\t0.退出档案系统\n\n")
printf("\n")
printf("★*★*★*★*★*★*★*★*★*★ 欢迎进入本系统 ★*★*★*★*★*★*★*★*★*★\n")
}
/*文本颜色*/
void color()
{
textbackground(8)
textcolor(9)
clrscr()
}
void Wrong()
{
printf("\n对不起您的输入错误!\n")
}
void SORRY()
{
printf("\n对不起该同学现没有任何信息!\n")
}
void printe(LB_1 *p)/* 本函数用于输出英文*/
{
printf(" %-2s %s\t %s\t%s\t %d\t \n",p->XINXI.num,p->XINXI.name,p->XINXI.sex,p->XINXI.address,p->XINXI.age)
}
/* 该函数用于定位链表中符合要求的接点,并返回该指针*/
LB_1 *Locate(LB_2 l,char findmess[],char nameornum[])
{
LB_1 *r
if(strcmp(nameornum,"num")==0) /* 按学号查询*/
{
r=l->next
while(r!=NULL)
{
if(strcmp(r->XINXI.num,findmess)==0)
return r
r=r->next
}
}
else if(strcmp(nameornum,"name")==0) /* 按姓名查询*/
{
r=l->next
while(r!=NULL)
{
if(strcmp(r->XINXI.name,findmess)==0)
return r
r=r->next
}
} return 0
}
/*以下是增加学生信息的函数*/
void TIANJIA(LB_2 l)
{
LB_1 *p,*r,*s
char num[13]
r=ls=l->next
while(r->next!=NULL) /*些处循环一直到最后*/
r=r->next
while(1)
{
printf(" 请输入添加的学生学号(输入'0'返回上一级菜单:)")
scanf("%s",num)
if(strcmp(num,"0")==0)
break
while(s)
{
if(strcmp(s->XINXI.num,num)==0)
{
printf("(必看提示):学号为'%s'的学生已有信息,若要修改请你输入'2 修改'!\n",num)
printe(s)
printf("\n")
return
}
s=s->next
} p=(LB_1 *)malloc(sizeof(LB_1))
strcpy(p->XINXI.num,num)
printf(" 请你输入学号:")
scanf("%s",p->XINXI.num)
getchar()
printf(" 请你输入姓名:")
scanf("%s",p->XINXI.name)
getchar()
printf(" 请你输入性别:")
scanf("%s",p->XINXI.sex)
getchar()
printf(" 请你输入地址:")
scanf("%s",p->XINXI.address)
getchar()
printf(" 请你输入年龄:")
scanf("%d",&p->XINXI.age)
getchar()
/* 下面是把指针变量转到链表的下一个结点中以便循环的时候使用*/
p->next=NULL
r->next=p
r=pM=1
}
}
/*以下是删除学生信息的函数*/
void SHANCHU(LB_2 l)
{
int sel
LB_1 *p,*r
char findmess[20]
if(!l->next)
{
printf("\n******(必看提示):对不起,现文件中没有信息:所以您不能查询!\n")
return
}
printf("\n <必看提示><以学号删除请输入1\n><以姓名删除请输入2\n>PLEASE:")
scanf("%d",&sel)
if(sel==1)
{
printf("请输入要删除的学生的学号PLEASE:")
scanf("%s",findmess)
p=Locate(l,findmess,"num")
if(p)
{ r=l
while(r->next!=p)
r=r->next
r->next=p->next
free(p)
printf("\n*******(必看提示):该学生的信息已完全删除成功!\n")
M=1
}
else
SORRY()
}
else if(sel==2)
{
printf("请输入要删除的学生的姓名PLEASE:")
scanf("%s",findmess)
p=Locate(l,findmess,"name")
if(p)
{ r=l
while(r->next!=p)
r=r->next
r->next=p->next
free(p)
printf("\n******(必看提示):该学生信息已成功删除!\n")
M=1
}
else
SORRY()
}
else
Wrong()
}
/*以下是查询学生信息*/
void CHAXIONG(LB_2 l)
{ int sel
char findmess[20]
LB_1 *p
if(!l->next)
{ printf("\n******(必看提示):对不起,现文件中没有信息:所以您不能查询!\n")
return
}
printf("\n以学号查询请输入1:\n以姓名查询请输入2:\n以性别查询请输入3:\n以性别查询请输入4:\nPLEASE:")
scanf("%d",&sel)
if(sel==1)/*输入学号查询*/
{
printf("请你输入要查找的学号:")
scanf("%s",findmess)
p=Locate(l,findmess,"num")
if(p)
{ printf("\t\t\t\t查找结果\n")
printf(" 学号:%s\n姓名:%s\n性别:%s\n地址:%s\n年龄:%d\n",p->XINXI.num,p->XINXI.name,p->XINXI.sex,p->XINXI.address,p->XINXI.age)
}
else
SORRY()
}
if(sel==2) /* 输入姓名查询*/
{
printf("请你输入要查找的姓名:")
scanf("%s",findmess)
p=Locate(l,findmess,"name")
if(p)
{ printf("\t\t\t\t查找结果\n")
printf(" 学号:%s\n姓名:%s\n性别:%s\n地址:%s\n年龄:%d\n",p->XINXI.num,p->XINXI.name,p->XINXI.sex,p->XINXI.address,p->XINXI.age)
}
else
SORRY()
}
else
Wrong()
}
/*以下是修改学生信息的函数*/
void XIUGEI(LB_2 l)
{
LB_1 *p
long int i,j
char findmess[20]
if(!l->next)
{ printf("\n(必看提示):对不起,现文件中没有信息:所以您不能查询!\n")
return
}
for(i=1i<=2i++)
{
printf("\n\n\n\n\n")
printf("请输入密码:")
scanf("%s",&j)
if(j==2007)break
else
{if(j!=2007)
return(CAIDANG())
}
}
printf("请你输入要修改的学生学号:")
scanf("%s",findmess)
p=Locate(l,findmess,"num")
if(p)
{ printf("请你输入新学号(原来是%s):",p->XINXI.num)
scanf("%s",p->XINXI.num)
printf("请你输入新姓名(原来是%s):",p->XINXI.name)
scanf("%s",p->XINXI.name)
printf("请你输入新性别(原来是%s):",p->XINXI.sex)
scanf("%s",p->XINXI.sex)
printf("请你输入新地址(原来是%s):",p->XINXI.address)
scanf("%s",p->XINXI.address)
printf("请你输入新年龄(原来是%d):",p->XINXI.age)
scanf("%s",p->XINXI.age)
getchar()
M=1
}
else
SORRY()
}
/*保存在文件中*/
void BAOCONG(LB_2 l)
{
FILE* fp
LB_1 *p
int flag=1,count=0
fp=fopen("c:\\lyg","wr")
if(fp==NULL)
{
printf("\n=====>提示:重新打开文件时发生错误!\n")
exit(1)
}
p=l->next
while(p)
{
if(fwrite(p,sizeof(LB_1),1,fp)==1)
{ p=p->next
count++
}
else
{ flag=0
break
}
}
if(flag)
{ printf("\n 提示;正在保存文件 共保存了%d条信息\n",count)M=0
}
fclose(fp)
}
/*以下是主函数*/
void main()
{
LB_2 l/* 连表*/
FILE *fp/* 文件指针*/
int sellong i,j,d
char ch
char jian
int count=0
LB_1 *p,*r
color()
clrscr()
l=(LB_1*)malloc(sizeof(LB_1))
l->next=NULL
r=l
fp=fopen("C:\\lyg","rb")
if(fp==NULL)
{
printf("\t\t\t\t\n\n")
printf("\n")
printf(" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"
" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"
" Welcome to come to our system!!! \n"
" You can only inquire your own messages! If you want to see about other \n"
" students' messages,you need first to send inquirment to them,asking for \n"
" agreement,then you can visit his/her messages! \n"
" Have a good time! now you can come in!!! \n"
" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"
" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"
" 注意:系统启动码为 : ILOVEMYSCHOOLVERYMUCH !!!\n"
" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"
" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n")
printf("欢迎使用,本系统中现没有任何记录,您要先创建文件请按以下 *** 做进行PLEASE:\n")
printf("\n提示:文件还不存在,是否创建?(y/n)请做选择--\n")
printf("\n")
scanf("%c",&jian)
if(jian=='y'||jian=='Y')
{fp=fopen("C:\\lyg","wb")
clrscr()
}
{for(i=1i<=2i++)
{
printf("\n\n\n\n\n")
printf("请输入密码:")
scanf("%ld",&j)
if(j==2007)break
else
{if(j!=2007)return
}
}
}
exit(0)clrscr()
}
while(!feof(fp))
{
p=(LB_1*)malloc(sizeof(LB_1))
if(fread(p,sizeof(LB_1),1,fp)) /* 将文件的内容放入链表中*/
{
p->next=NULL
r->next=p
r=p/*把该结点放入链表中*/
count++
}
}
fclose(fp)/* 关闭文件*/
while(1)
{
CAIDANG()
printf("请你选择 *** 作:")
scanf("%d",&sel)
clrscr()
printf("\n\n\n")
if(sel==0)
{
if(M==1)
{ getchar()
printf("\n(必看提示):链表中的信息已经改动,如果确认把改动保存在文件中请做选择(y/n)?\n")
scanf("%c",&ch)
if(ch=='y'||ch=='Y')
BAOCONG(l)
}
breakclrscr()
}
switch(sel)
{
case 1: TIANJIA(l)break
case 4: CHAXIONG(l)break
case 3: BAOCONG(l)break
case 2: XIUGEI(l)break
case 5: SHANCHU(l)break
default: getchar()break
}
} end:
getchar()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)