
#include <stdioh
>
#include <stdlibh>
#include<stringh>
#define MENU_NUM 7
#define N 3
typedef struct s1
{
char no[11]; /学号由10个字符组成/
char name[15]; /学生姓名/
float score[N]; /各门课成绩/
float sum; /总分/
float average; /平均分/
int order; /名次/
struct s1 next; /指向后继结点的指针/
}STUDENT; /定义结构体类型/
STUDENT head=NULL;
void InputData( STUDENT ptr );
void PrintMenu( );
int Menu_Select( );
void Init( );
void create( );
void print( ) ;
void Delete( );
void append();
void computer();
main()
{
int key;
while(1) {
key=Menu_Select();
switch(key)
{
case 0: Init();
//初试化链表。也就是若链表不为空则释放链表中所有数据,将head置为空(NULL)
break;
case 1: create();
//创建链表,输入数据
break;
case 2: Delete();
//删除一个指定学号的记录数据
break;
case 3: print();
//打印链表中所有数据
break;
case 4: computer();
//计算链表中所有人的总分和平均分
break;
case 5: append();
//追加一个数据到链表的尾部
break;
case 6: Init();
//释放链表
exit(0);
}
};
}
void PrintMenu( )
{
int i;
char menu[]={
"0 Init list",
"1 Enter list",
"2 Delete a record from list",
"3 Print list",
"4 Compute the score",
"5 Insert record to list",
"6 Quit"
};
printf("\n\n");
for (i=0;i<MENU_NUM;i++)
printf("%s\n",menu[i]);
printf("\nEnter your choice(0-6):");
}
int Menu_Select( )
{
int key;
PrintMenu( );
scanf("%d",&key);
return key;
}
void Init( ) //初始化单链表。也就是释放链表中的所有数据
{
STUDENT p,ptr;//定义两个临时指针变量p,ptr
p=head;ptr=head;//将两个临时变量指向头指针head ;
while(ptr!=NULL)
{
ptr=ptr->next;//ptr指向下一个结构数据
free(p);//释放p所指向的结构数据的内存
p=ptr;//将p指向ptr所指向的数据
}
head=NULL;//将head指向NULL
}
void create( ) //创建单链表
{
STUDENT pt, pth=NULL; //定义两个指针变量:pt指向即将申请新的数据内存,pth指向当前数据
while(1)
{
pt=(STUDENT )malloc(sizeof(STUDENT));//让pt指向新申请的内存空间
InputData(pt);//输入数据,存放到pt所指向的结构数据。注意让pt的next指向NULL
if (strcmp(pt->no,"@")==0)
{
free(pt);//释放pt所指向的内存空间
break;//退出循环
}
else if (head==NULL)
{
pth=pt;
head=pt;//将头指针head和pth指向pt
}
else
{
pth->next=pt; //将pth的next指向pt;
pth=pt; //将pth指向pt;
}
};
}
void print( ) //打印单链表中所有数据
{ int i=0;
STUDENT p;//第一个指针p
p=head;//将p指向head
printf("\n");
printf("STUDENT\n");
printf("|rec|no | name | sc1| sc2| sc3| sum | ave |order|\n");
printf("|---|----------|----------------|----|----|----|------|-----|-----|\n");
//打印表头
while (p!=NULL)
{
printf("|%3d|%10s|%-16s|%41f|%41f|%41f|%62f|%51f|%5d|\n",
++i,p->no,p->name,p->score[0],p->score[1],p->score[2],
p->sum,p->average,p->order); //打印p所指向的结构中的所有数据。注意打印数据间的分隔线
p=p->next;//将p指向p的下一个结构数据
}
printf("END\n");//打印表尾
}
void Delete( ) //删除一个记录
{
STUDENT p,pth;//定义两个指针p,pth
char no[11];//定义一个整数no(用来存储输入的学号)
printf("intput delete no\n");
scanf("%s",no);//用输入语句输入一个学号存储到no中
p=head;pth=head;//将p和pth都指向头指针
if (strcmp(p->no,no)==0) //也就是若头指针指向的数据需要删除
{
head=head->next;//将head指针指向head的下一个数据;
free(p);//释放p所指向的数据
}
else
{
p=p->next;//将p指向p的下一个数据
while ( p!=NULL)
{
if (strcmp(p->no,no)==0) //找到了要删除的数据
{
pth->next=p->next;//将pth的next指向p的next
free(p);//释放p
break;//退出循环
}
else
{
pth=pth->next;//将pth指向pth的next 或 将pth指向p
p=p->next;//将p指向p的next
}
}
}
}
void append()
{
STUDENT p,pth;//定义两个指针变量p,pth
pth=head;//将pth指向head
while ( pth->next!=NULL)
{
pth=pth->next;//ptr指向ptr的next
}
p=(STUDENT )malloc(sizeof(STUDENT));//将p指向新申请的内存空间
InputData(p);p->next=NULL;//数据数据存储到p所指向的内存空间,注意将p的next置为NULL
pth->next=p;//将ptr的next指向p
}
void InputData( STUDENT ptr )
{ int i;
printf("enter no:");
scanf("%s",ptr->no);
if (strcmp(ptr->no,"@")==0 ) return;
printf("enter name:");
scanf("%s",ptr->name);
for(i=0;i<3;i++)
{
printf("shuru chengji\n");
scanf("%f",&ptr->score[i]);
}
ptr->sum=0;
ptr->average=0;
ptr->order=0;
ptr->next=NULL;
}
void computer()
{
STUDENT p;
p=head;
for(;p;p=p->next)
{
p->sum=p->score[0]+p->score[1]+p->score[2];
p->average=(p->score[0]+p->score[1]+p->score[2])/3;
}
}
第一道题 A; 理由变量名关键字等不能用回车键换行拆开。
第二道题 C; 理由排除法。
第三道题 D
第四道题 C; 调用的函数只要被申明了就OK了。
第五道题 B 这是常识。
C语言是一种
计算机程序设计语言
。它既有
高级语言
的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖
计算机硬件
的应用程序。因此,它的应用范围广泛。
C语言对 *** 作系统和系统使用程序以及需要对硬件进行 *** 作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是
数值计算
的高级语言。
常用的C语言IDE(
集成开发环境
)有Microsoft
Visual
C++,Borland
C++,Watcom
C++
,Borland
C++
,Borland
C++
Builder,Borland
C++
31
for
DOS,Watcom
C++
110
for
DOS,GNU
DJGPP
C++
,Lcc
win32
C
Compiler
31,Microsoft
C,High
C,Turbo
C,
Dev-C++
,
C-Free
等等
你看下:
>
C语言程序设计题型分值分布如下:
1 单选题总共40道,每道题一分,其中基础知识共10道,总计40分;
2 程序填空题一般2到4道,看难度给分,总计18分;
3 程序改错题一般2到4道,看难度给分,总计18分;
4 程序设计题1道,根据答出步骤给分,答出越多分越高直至满分,总计24分。
拓展知识(考试内容):
1 C语言程序结构
明白如何运用main函数以及其他基础函数,会构建程序。知道源文件的书写格式,能看懂函数开始或结束的标志,能对基础程序注释且明白其作用。
2 数据类型与运算
了解C的数据类型与定义方法,熟知C表达式类型且会基本运用。知道C运算符的种类与优先级,懂得数据类型之间如何转换运算。
3 基础语句
懂得表达式语句、复合语句以及空语句,会调用输入输出函数,能根据要求正确写出输入输出格式的语句。
4 选择结构语句
熟练掌握if语句以及switch语句的用法,懂得选择结构如何进行嵌套。
5 循环结构语句
熟练掌握for语句、while或do-while语句、continue语句及break语句的使用方式,了解如何嵌套循环结构语句。
6 数组的定义与运用
会对基本的一维、二维数组定义,能初始化数组并会引用,掌握字符串与数组的运用。
7 函数
能对库中的函数进行基本调用,且熟知常用函数的作用及写法。知道函数的定义方法、类型与返回值,了解形参与实参的概念以及局部变量与全局变量的区别。
8 指针
了解地址与指针变量的概念,会基本运用指针,通过指针引用各类数据。
9 结构与联合
了解typedef的用法,会对结构体以及共同体进行定义与引用,可以通过链表对数据进行删除、插入以及输出。
以上就是关于c语言程序设计全部的内容,包括:c语言程序设计、C语言程序设计基础、C语言的程序设计概念等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)