C语言程序设计高级篇.ppt

上传人:wuy****n92 文档编号:70105318 上传时间:2023-01-16 格式:PPT 页数:19 大小:218.99KB
返回 下载 相关 举报
C语言程序设计高级篇.ppt_第1页
第1页 / 共19页
C语言程序设计高级篇.ppt_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《C语言程序设计高级篇.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计高级篇.ppt(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C语言程序设计高级篇第三讲 二维数组的回顾及应用、一维数组与指针的关系、数组与指针及函数的综合应用、结构体引入(全局变量与局部变量回顾)主要内容1.针对上机出现的一些问题进行分析讲解 引入:局部变量与全局变量,函数的返回值;2.电子成绩单部分功能:二维数组、一维数组与指针与函数的综合应用3.数字时钟系统程序设计:结构体数据定义及使用,时间函数的调用1.实验八上机出现的问题1.上交的作业:(1)只有三四个同学看清楚了题意,是要写函数;(2)16进制,与10进制的概念不清楚。2.实验八出现的问题:(1)二维数组的存放;(2)函数的返回值;(3)单步调试,只要这几个热键F9(设置断点);F10(不进

2、入函数内部的单步运行);F11(进入函数内部的单步运行)。2.电子成绩单部分功能:二维数组例:输入10个学生5门课的成绩,分别用函数实现下列功能:计算每个学生平均分。(1)问题分析 分析所需要的数据类型;(二维数组,双重循环)函数如何定义、传递什么样的参数等。(一般的参数传递,还是数组的参数传递等等)(2)算法流程图(3)源代码#include#define NUM_STUDENT 2#define NUM_COURSE 2void main()/计算每个学生的平均分函数算每个学生的平均分函数 void averageGrade(float gradeStudentNUM_STUDENTNUM

3、_COURSE);float gradeStudentNUM_STUDENTNUM_COURSE;int i,j;printf(please input the 10 students grade:);/输入入10个学生的个学生的5门课成成绩for(i=0;iNUM_STUDENT;i+)for(j=0;jNUM_COURSE;j+)scanf(%f,&gradeStudentij);averageGrade(gradeStudent);/调用函数用函数宏定义:定义符号常量宏定义:定义符号常量没有返回参数的函数没有返回参数的函数调用的一般方式。调用的一般方式。/计算每个学生的平均分函数算每个学

4、生的平均分函数void averageGrade(float gradeStudentNUM_STUDENTNUM_COURSE)float sum=0,averNUM_STUDENT=0;int i,j;for(i=0;iNUM_STUDENT;i+)for(j=0;jNUM_COURSE;j+)sum=gradeStudentij+sum;averi=sum/NUM_COURSE;printf(the%d students average grade is the%5.2f.n,i,averi);动手:计算每门课动手:计算每门课的平均分。的平均分。2.一维数组与指针例:输入信息0902班,

5、学号为110的这些学生的C语言程序设计期末成绩;在显示器上输出这10个学生的成绩;找出其中的最高分及其对应学生的学号。(1)问题分析怎么去放这些成绩?如何查找最高分?(2)绘制流程图用一维数组存放,用一维数组存放,用数组名和用数组名和下标去查找。下标去查找。(3)源代)源代码#include#define NUM_STUDENT 3void main()void maxGradeandStudent(float gradeStudentNUM_STUDENT);/找出最高的分数及找出最高的分数及对应学号学号float gradeCProgramStudentNUM_STUDENT;int i;

6、printf(please input the 10 students C program grade.n);/输入入10个学生的个学生的C语言程序言程序for(i=0;iNUM_STUDENT;i+)printf(the%d student:,i+1);scanf(%f,&gradeCProgramStudenti);printf(n);/在在显示器上打印出示器上打印出10个学生的个学生的C语言成言成绩for(i=0;iNUM_STUDENT;i+)printf(the%d students grade is%5.2f;,i+1,gradeCProgramStudenti);printf(n

7、);printf(n);maxGradeandStudent(gradeCProgramStudent);/调用函数用函数调用函数的定用函数的定义(数(数组作作为传递的参数)的参数)void maxGradeandStudent(float gradeStudentNUM_STUDENT)/找出最高的分数找出最高的分数对应的学生的学生 int i;float max=gradeStudent0;int maxGradeStudent=0;for(i=1;imax)max=gradeStudenti;maxGradeStudent=i;printf(maxgrade=%5.2f,the stud

8、ents number is%d.n,max,maxGradeStudent+1);引入另一种方法:指引入另一种方法:指针操作打印操作打印输出部分。出部分。#include#define NUM_STUDENT 3void main()float gradeCProgramStudentNUM_STUDENT;int i;float*p;p=gradeCProgramStudent;printf(please input the 10 students C program grade.n);/输入入10个学生的个学生的C语言程序言程序for(i=0;iNUM_STUDENT;i+)printf

9、(the%d student:,i+1);scanf(%f,&gradeCProgramStudenti);printf(n);/在在显示器上打印出示器上打印出10个学生的个学生的C语言成言成绩for(p=gradeCProgramStudent;p(gradeCProgramStudent+NUM_STUDENT);p+)printf(the%d students grade is%5.2f;,i+1,*p);printf(n);printf(n);有没有其他办法来实现打印输出和查找有没有其他办法来实现打印输出和查找呢?呢?参数参数传递:指:指针作作为函数参数函数参数(数(数组名与指名与指针

10、的关系)的关系)#include#define NUM_STUDENT 3void main()void maxGradeandStudent(float*);/找出最高的分数及找出最高的分数及对应学号学号float gradeCProgramStudentNUM_STUDENT;int i;float*p;p=gradeCProgramStudent;printf(please input the 10 students C program grade.n);/add code 输入入10个学生的个学生的C语言程序言程序/add code 在在显示器上打印出示器上打印出10个学生的个学生的C

11、语言成言成绩maxGradeandStudent(p);/调用函数用函数void maxGradeandStudent(float*pgradeStudent)/找出最高的分数找出最高的分数对应学号学号int maxGradeStudent=0;float max,*p_i;max=*pgradeStudent;for(p_i=pgradeStudent+1;p_imax)max=*p_i;maxGradeStudent=p_i-pgradeStudent;printf(maxgrade=%5.2f,the students number is%d.n,max,maxGradeStudent+

12、1);3.数字时钟系统(1)系统分析)系统分析时间显示:显示当前的时间年、月、日时间调节:可以根据不同的时区,来调节当前的时间。闹钟提醒:可以设置提醒时间:如一个小时提醒一下 选择不同的时区选择不同的时区北京时间北京时间东京时间东京时间巴西时间巴西时间美国时间美国时间显示时间显示时间设置闹钟设置闹钟 调整时区调整时区 输入命令输入命令判断闹钟时间是否到了判断闹钟时间是否到了提醒提醒(2)绘制基本流程图)绘制基本流程图struct date int year;int month;int day;struct 结构体名 成员列表 变量名列表;struct date int year;int mon

13、th;int day;date1;struct date date1;(3)时间结构体)时间结构体(4)结构体应用:实现电子时钟部分功能#include#include void main()date date1;date1.year=2010;date1.month=05;date1.day=28;printf(%4d-%02d-%02dn,date1.year,date1.month,date1.day);time_t todaySystem;time(&todaySystem);struct tm *p;todaySystem-=24 *60 *60;p=localtime(&today

14、System);printf(%4d-%02d-%02dn,p-tm_year +1900,p-tm_mon +1,p-tm_mday);struct dateint year;int month;int day;/显示日期显示日期实验九1.用指针方法处理:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:输入10个数;查找及对换处理输出10个数。(书278页10.3题)2.用结构体实现电子时钟部分功能:显示时间;-3.学生成绩管理系统的部分功能实现:书中202页8.14题(1),(3);4.用递归法将一个整数n转换成字符串。例如:输入483,应输出字符串“

15、483”。N的位数不确定,可以是任意位数的整数。书203页8.17题。二维数组的存放例float gradeStudent32=80,87,90,91,76,78;808790917678gradeStudent0gradeStudent1gradeStudent2gradeStudent表示该二维数组的首地址;表示该二维数组的首地址;gradeStudenti,表示为第,表示为第i行的首地址。行的首地址。gradeStudent以以变量名和数量名和数组名作名作为函数参数的比函数参数的比较实参参类型型一般一般变量名量名数数组名名要求形参的要求形参的类型型变量名量名数数组名或指名或指针变量量传递的信息的信息变量的量的值实参数参数组首元素的地址首元素的地址通通过函数函数能否能否改改变实参的参的值不能不能能能

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com