C语言程序设计这门课一共有多少章节?

C语言程序设计这门课一共有多少章节?,第1张

这门课一共有10个章节。包括:第一章C语言编程基础(初级),第二章流程控制(初级),第三章综合实例(初级),第四章数组(中级),第五章指针初步(中级),第六章字符串(中级),第七章结构体和共用体(中级),第八章函数进阶(中级),第九章预处理指令、综合案例(中级),第十章指针进阶(高级),。

不知道你说的是不是这一次实验

2.2.7  实验7:二维数组和函数综合编程练习

成绩排名次

某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。考试后要求:

(1)计算每个学生的总分和平均分;

(2)按总分成绩由高到低排出成绩的名次;

(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;

(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。

【思考题】  请读者思考如下问题。

① 如果增加一个要求:要求按照学生的学号由小到大对学号、成绩等信息进行排序,那么程序如何修改呢?

② 如果要求程序运行后先打印出一个菜单,提示用户选择:成绩录入、成绩排序、成绩查找,在选择某项功能后执行相应的 *** 作,那么程序如何修改呢?

答案

#include  <stdio.h>

#define STU 30

#define COURSE 3

void Input(long num[],int score[][COURSE],int n)

void GetSumAver(int score[][COURSE],int n,int sum[],float aver[])

void Sort(long num[],int score[][COURSE],int n,int sum[],float aver[])

void Print(long num[],int score[][COURSE],int n,int sum[],float aver[])

int  Search(long num[], int n, long x)

main()

{

int n, score[STU][COURSE], sum[STU], pos

long num[STU], x

float aver[STU]

printf("Please enter the total number of the students(n<=30):")

scanf("%d", &n) /*输入参加考试的学生人数*/

printf("Enter No. and score as: MT  EN  PH\n")

Input(num, score, n) /*输入学生成绩*/

GetSumAver(score, n, sum, aver) /*计算总分和平均分*/

printf("Before sort:\n")

Print(num, score, n, sum, aver)

Sort(num, score, n, sum, aver) /*排名次*/

printf("After sort:\n")

Print(num, score, n, sum, aver)

printf("Please enter searching number:")

scanf("%ld", &x) /*以长整型格式输入待查找学生的学号*/

pos = Search(num, n, x) /*名次查询*/

if (pos != -1)

{

printf("position:\t  NO \t  MT \t  EN \t  PH \t  SUM \t AVER\n")

printf("%8d\t%4ld\t%4d\t%4d\t%4d\t%5d\t%5.0f\n",

    pos+1,num[pos], score[pos][0],score[pos][1],

    score[pos][2], sum[pos],aver[pos])

}

else

{

printf("Not found!\n")

}

}

/* 函数功能:输入某班学生期末考试三门课程成绩

 函数参数:长整型数组num,存放学生学号

           整型数组score,存放学生成绩

   整型变量n,存放学生人数

 函数返回值:无

*/

void Input(long num[], int score[][COURSE], int n)

{

int  i, j

for (i=0i<ni++)

{

scanf("%ld", &num[i])

for (j=0j<COURSEj++)

{

scanf("%d", &score[i][j])

}

}

}

/* 函数功能:计算每个学生的总分和平均分

 函数参数: 整型数组score,存放学生成绩

    整型变量n,存放学生人数

整型数组sum,计算得到的每个学生的总分

实型数组aver,计算得到的每个学生的平均分

 函数返回值:无

*/

void GetSumAver(int score[][COURSE], int n, int sum[], float aver[])

{

int i, j

for (i=0i<ni++)

{

sum[i] = 0

for (j=0j<COURSEj++)

{

sum[i] = sum[i] + score[i][j]

}

aver[i] = (float)sum[i] / COURSE

}

}

/* 函数功能:按总分成绩由高到低排出成绩的名次

 函数参数:长整型数组num,存放学生学号

           整型数组score,存放学生成绩

整型变量n,存放学生人数

整型数组sum,存放每个学生的总分

实型数组aver,存放每个学生的平均分

 函数返回值:无

*/

void Sort(long num[],int score[][COURSE], int n, int sum[], float aver[])

{

int i, j, k, m

int temp1

long temp2

float temp3

for (i=0i<n-1i++)

{

k = i

for (j=i+1j<nj++)

{

if (sum[j] >sum[k])  k = j

}

if (k != i)

{

temp1 = sum[k] sum[k] = sum[i] sum[i] = temp1

temp2 = num[k] num[k] = num[i] num[i] = temp2

temp3 = aver[k] aver[k] = aver[i] aver[i] = temp3

for (m=0m<COURSEm++)

{

temp1 = score[k][m]

score[k][m] = score[i][m]

score[i][m] = temp1

}

}

}

}

/* 函数功能: 打印名次表,表格内包括学生编号、各科分数、总分和平均分

 函数参数: 长整型数组num,存放学生学号

整型数组score,存放学生成绩

整型变量n,存放学生人数

整型数组sum,存放每个学生的总分

实型数组aver,存放每个学生的平均分

 函数返回值:无

*/

void Print(long num[], int score[][COURSE], int n,

int sum[], float aver[])

{

int  i, j

printf("  NO \t|   MT \t  EN \t PH \t SUM \t AVER\n")

printf("----------------------------------------------------\n")

for (i=0i<ni++)

{

printf("%ld\t| ", num[i])

for (j=0j<COURSEj++)

{

printf("%4d\t", score[i][j])

}

printf("%5d\t%5.0f\n", sum[i], aver[i])

}

}

/* 函数功能:在学号数组中顺序查找学生的学号

 函数参数:长整型数组num,存放学生学号

           整型变量n,存放学生人数

长整型变量x,存放待查找学生的学号

 函数返回值:找到时,返回学生学号在学号数组中的下标位置,否则返回值-1

*/

int Search(long num[], int n, long x)

{

int  i

for (i=0i<ni++)

{

if (num[i] == x)  return(i)

}

return (-1)

}

第一章 程序设计的基本概念

第一节 C语言的发展历史与特点

第二节 程序与程序设计

第三节 算法与算法的描述

第四节 C语言的上机 *** 作

思考题与习题

第二章 C语言程序设计基础

第一节 C语言的程序结构

第二节 数据类型

第三节 运算符与表达式

思考题与习题

第三章 C程序控制结构

第一节 C程序的三种基本控制结构

第二节 顺序结构

第三节 选择结构

第四节 循环结构

思考题与习题

第四章 数组

第一节 数组与数组元素的概念

第二节 一维数组

第三节 二维数组及多维数组

第四节 字符串与字符数组

思考题与习题

第五章 指针

第一节 指针与指针变量的概念

第二节 指针变量的定义和引用

第三节 指针变量与数组

思考题与习题

第六章 函数

第一节 函数的定义

第二节 函数的嵌套调用

第三节 数组作为函数参数

第四节 指针与函数

第五节 变量的使用范围与存储类别

第六节 不同文件中的函数使用

思考题与习题

第七章 编译预处理

第一节 宏定义

第二节 文件包含

第三节 条件编译

思考题与题

第八章 结构体与共用体

第一节 结构体基础

第二节 结构体数组

第三节 结构体指针

第四节 链表

第五节 位段

第六节 共用体

第七节 枚举类型与自定义类型

思考题与习题

第九章 文件

第一节 文件概述

第二节 文件的打开与关闭

第三节 文件的读/写

第四节 文件的定位

思考题与习题

第十章 程序设计方法

第一节 程序设计的基本概念

第二节 结构化程序设计方法

第三节 程序效率

第四节 程序设计风格

思考题与习题

附录

附录A C语言实验

附录B 标准ABSII码表

附录C C语言中的关键字

附录D 运算符的优先级与结合性


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

原文地址:https://54852.com/yw/11184427.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存