c语言程序设计

c语言程序设计,第1张

#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语言的程序设计概念等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9289129.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存