版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
YOURNAMEC语言程序设计项目七
汽车数据间接显示(指针)
01统计某车企一年的汽车销售量(指针和变量)02输出1~12月的汽车销售量(指针和数组)03某车企多项数据显示(将指针作为函数参数)任务目标:某车企上半年的汽车销售量为56辆,下半年的汽车销售量为78辆,使用指针统计一年的汽车销售量(变量名:上半年汽车销售量,下半年汽车销售量)。任务7.1统计某车企一年的汽车销售量(指针和变量)知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉1.直接访问和间接访问(1)一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。在C语言中,用函数来实现各功能模块。
(2)一个C程序可由一个main主函数和若干个其它函数构成。由主函数调用其它函数。
(3)一个源程序文件由一个或多个函数组成,它们是一个整体。一个源程序是一个编译单位。
(4)C程序的执行总是从main主函数开始,调用其它函数后流程回到main主函数,在main主函数中结束整个程序的运行。main主函数是系统定义的。
(5)所有函数都是独立的,完成一个特定的功能。
(6)从用户使用的角度看,函数有两种:
①标准函数,即库函数。
②用户自己定义的函数。在C语言中,给变量赋值也有以下两种方法。第一种,直接访问赋值:直接按照变量名进行访问,如直接用变量名赋值,系统会准确地将值存入该变量的内存单元中,而用户不必清楚该变量具体的内存地址。第二种,间接访问赋值:将该变量地址存放在另一个特殊变量(指针变量)中,通过这个指针变量,将值存入指定的内存单元。前者属于直接存取,后者属于间接存取。知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉2.指针和地址(1)一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。在C语言中,用函数来实现各功能模块。
(2)一个C程序可由一个main主函数和若干个其它函数构成。由主函数调用其它函数。
(3)一个源程序文件由一个或多个函数组成,它们是一个整体。一个源程序是一个编译单位。
(4)C程序的执行总是从main主函数开始,调用其它函数后流程回到main主函数,在main主函数中结束整个程序的运行。main主函数是系统定义的。
(5)所有函数都是独立的,完成一个特定的功能。
(6)从用户使用的角度看,函数有两种:
①标准函数,即库函数。
②用户自己定义的函数。指针:用户可以将指针看作内存中的一个地址。在一般情况下,指针需要指向另一个变量的地址。示例1:下面程序主要介绍通过指针变量访问普通变量的方法。#include"stdio.h"voidmain(){intx=0;int*p; //定义指针变量p=&x; //将变量x的地址赋给指针变量*p*p=100; //等价于x=100*/*p=*p+50; //等价于x=x+50*/printf("x=%d",x);}归纳分析如下。(1)指针变量也必须先定义后使用,指针变量的一般定义形式为:类型名*指针变量名:(2)变量的地址按如下形式表示:&变量名;指针与&变量名;等价于*指针变量名与变量;典型案例1:典型案例1:某新能源汽车的电池的使用年限是8年,从键盘上输入电池已使用的年限,输出电池的剩余年限(变量名:电池的使用年限Battery_life,电池已使用年限Durable_years,电池的剩余年限Remain_years)。典型案例C语言程序设计#include"stdio.h"voidmain(){intDurable_years,Battery_life=8,Remain_years,*D,*B,*R;printf("已知某新能源汽车的电池的使用年限是%d年\n",Battery_life);printf("从键盘上输入电池已使用的年限:\n");scanf("%d",&Durable_years);D=&Durable_years;B=&Battery_life;R=&Remain_years;*R=*B-*D;printf("已知某新能源汽车的电池的使用年限是%d年,电池已使用的年限为%d年,电池的剩余年限为%d年",*B,*D,*R);}}典型案例1:典型案例1:某新能源汽车的电池的使用年限是8年,从键盘上输入电池已使用的年限,输出电池的剩余年限(变量名:电池的使用年限Battery_life,电池已使用年限Durable_years,电池的剩余年限Remain_years)。典型案例C语言程序设计#include"stdio.h"voidmain(){intHeadcount,Somepeople,Remainpeople,*H,*S,*R;H=&Headcount;S=&Somepeople;printf("从键盘上输入某新能源客车的载客人数\n");scanf("%d",H);printf("输入目前已有的人数\n");scanf("%d",S);R=&Remainpeople;*R=*H-*S;printf("还有%d人可以乘坐该客车",*R);}典型案例2:从键盘上输入某新能源客车的载客人数,输入目前已经有的人数,输出还有多少人可以乘坐该客车(变量名:总载客人数Headcount,目前已有的人数Somepeople,剩余人数Remainpeople)。典型案例C语言程序设计任务目标:某车企上半年的汽车销售量为56辆,下半年的汽车销售量为78辆,使用指针统计一年的汽车销售量(变量名:上半年汽车销售量,下半年汽车销售量)。
任务分析与实践#include"stdio.h"voidmain(){intun=78,on=56,sale,*p,*q,*t;printf("已知某车企上半年的汽车销售量为%d辆,下半年的汽车销售量为%d辆\n",on,un);p=&un;q=&on;t=&sale;*t=*p+*q;printf("总销售量为%d辆",*t);}C语言程序设计1.指针变量是把内存中另一个数据的________作为其值的变量。2.能够直接赋值给指针变量的整数是________。3.程序中已有定义intk;,定义一个指向变量k的指针变量p的语句是________;通过指针变量,将数值6赋值给k的语句是________;定义一个可以指向指针变量p的变量pp的语句是________;通过赋值语句将pp指向指针变量p的语句是________。.巩固练习C语言程序设计THANKS!YOURNAMEC语言程序设计项目七
汽车数据间接显示(指针)
01统计某车企一年的汽车销售量(指针和变量)02输出1~12月的汽车销售量(指针和数组)03某车企多项数据显示(将指针作为函数参数)任务目标:已知某品牌4S店1~12月的汽车销售量分别为10、12、15、14、16、8、7、14、16、17、11、12,输出1~12月的汽车销售量(变量名:销售量数组、销售量指针、单位为辆)。任务7.2输出1~12月的汽车销售量(指针和数组)知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉1.数组与指针(1)一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。在C语言中,用函数来实现各功能模块。
(2)一个C程序可由一个main主函数和若干个其它函数构成。由主函数调用其它函数。
(3)一个源程序文件由一个或多个函数组成,它们是一个整体。一个源程序是一个编译单位。
(4)C程序的执行总是从main主函数开始,调用其它函数后流程回到main主函数,在main主函数中结束整个程序的运行。main主函数是系统定义的。
(5)所有函数都是独立的,完成一个特定的功能。
(6)从用户使用的角度看,函数有两种:
①标准函数,即库函数。
②用户自己定义的函数。一维数组中指针的初始化有以下两种方法。方法一:inta[10],*p=NULL
;p=a;方法二:inta[10],*p=NULL
;p=&a[0]
;当进行如上条件时,可以有如下的等价替换。数组地址p+i、&a[i]、a+i三者相互等价。例如:scanf("%d",&a[i]);scanf("%d",p+i);scanf("%d",a+i);三种输入效果一样的,运用指针能够提高计算机的执行效率。数组元素*(p+i)、a[i]、*(a+i)三者相互等价。例如:printf("%d",a[i]);printf("%d",*(p+i));printf("%d",*(a+i));三种输出结果相同,运用指针能够提高计算机程序的执行效率。知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉2.指针运算(1)一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。在C语言中,用函数来实现各功能模块。
(2)一个C程序可由一个main主函数和若干个其它函数构成。由主函数调用其它函数。
(3)一个源程序文件由一个或多个函数组成,它们是一个整体。一个源程序是一个编译单位。
(4)C程序的执行总是从main主函数开始,调用其它函数后流程回到main主函数,在main主函数中结束整个程序的运行。main主函数是系统定义的。
(5)所有函数都是独立的,完成一个特定的功能。
(6)从用户使用的角度看,函数有两种:
①标准函数,即库函数。
②用户自己定义的函数。前文已经说明了指针就是地址,对地址进行赋值会是什么意思呢?通过前文介绍也可以看出来p+1就是a[1]的地址,同时p+1可以写成p++,因此指针有以下两个特点。
p+1:指向同一个数组中的下一个元素。
p-1:指向同一个数组中的上一个元素。3.引入数组元素运用指针引入数组元素,要考虑以下3个技巧。(1)先执行p++,再计算*p。通过分析,p++执行的是下一个元素的地址,因此*p就是下一个元素的值。(2)*p++。由于++和*同优先级,结合方向自右而左,因此*p++等价于*(p++)。(3)*(p++)与*(++p)是否相同。上述两者不相同。*(p++)为先选*p的值,其值再加1。*(p++)为p先指向下一个元素的地址,再求下一个元素的值。典型案例1:运用指针方式从键盘上输入某客车集团5个员工的工资,并将其输出。典型案例C语言程序设计#include"stdio.h"voidmain(){inti,employee[5],*p;printf("请输入五个员工的工资\n");for(i=0;i<5;i++)scanf("%d",&employee[i]);for(p=employee;p<employee+5;p++)printf("员工的工资为%d\n",*p);}#include"stdio.h"voidmain(){inti,month[12],*p,salary=0;for(i=0;i<12;i++){printf("请输入%d月的工资",i+1);scanf("%d",&month[i]);}for(p=month;p<month+12;p++){salary=*p+salary;}printf("员工的总工资为%d\n",salary);}典型案例2:从键盘上输入一个员工1~12月的工资,求和并输出。典型案例C语言程序设计任务目标:已知某品牌4S店1~12月的汽车销售量分别为10、12、15、14、16、8、7、14、16、17、11、12,输出1~12月的汽车销售量(变量名:销售量数组、销售量指针、单位为辆)。任务分析与实践#include"stdio.h"voidmain(){intSale[12]={10,12,15,14,16,8,7,14,16,17,11,12},*p;printf("请输出1~12月的汽车销售量:");for(p=Sale;p<(Sale+12);p++){printf("%d",*p);}}C语言程序设计THANKS!YOURNAMEC语言程序设计项目七
汽车数据间接显示(指针)
01统计某车企一年的汽车销售量(指针和变量)02输出1~12月的汽车销售量(指针和数组)03某车企多项数据显示(将指针作为函数参数)任务目标:已知某品牌4S店1~12月的汽车销售量分别为10,12,15,14,16,8,7,14,16,17,11,12,输出1~12月的汽车销售量。任务7.3某车企多项数据显示(将指针作为函数参数)知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉1.数组名可以用作函数的实参和形参(1)一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。在C语言中,用函数来实现各功能模块。
(2)一个C程序可由一个main主函数和若干个其它函数构成。由主函数调用其它函数。
(3)一个源程序文件由一个或多个函数组成,它们是一个整体。一个源程序是一个编译单位。
(4)C程序的执行总是从main主函数开始,调用其它函数后流程回到main主函数,在main主函数中结束整个程序的运行。main主函数是系统定义的。
(5)所有函数都是独立的,完成一个特定的功能。
(6)从用户使用的角度看,函数有两种:
①标准函数,即库函数。
②用户自己定义的函数。#include<stdio.h>sort(intarray[]){…}voidmain(){intscore[10];…sort(score);…}当使用数组名作参数时,如果形参数组中各元素的值发生变化,则实参数组元素的值也随之变化。因为实参数组与形参数组共占同一段内存单元。知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉2.动态存储方式与静态存储方式(1)一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。在C语言中,用函数来实现各功能模块。
(2)一个C程序可由一个main主函数和若干个其它函数构成。由主函数调用其它函数。
(3)一个源程序文件由一个或多个函数组成,它们是一个整体。一个源程序是一个编译单位。
(4)C程序的执行总是从main主函数开始,调用其它函数后流程回到main主函数,在main主函数中结束整个程序的运行。main主函数是系统定义的。
(5)所有函数都是独立的,完成一个特定的功能。
(6)从用户使用的角度看,函数有两种:
①标准函数,即库函数。
②用户自己定义的函数。静态存储方式:程序运行期间分配固定的存储空间。动态存储方式:程序运行期间根据需要进行动态分配存储空间的方式。知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉3.局部变量与全局变量(1)一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。在C语言中,用函数来实现各功能模块。
(2)一个C程序可由一个main主函数和若干个其它函数构成。由主函数调用其它函数。
(3)一个源程序文件由一个或多个函数组成,它们是一个整体。一个源程序是一个编译单位。
(4)C程序的执行总是从main主函数开始,调用其它函数后流程回到main主函数,在main主函数中结束整个程序的运行。main主函数是系统定义的。
(5)所有函数都是独立的,完成一个特定的功能。
(6)从用户使用的角度看,函数有两种:
①标准函数,即库函数。
②用户自己定义的函数。程序中变量的使用范围不同:作用域(scope)就是变量的有效范围。变量的作用域取决于变量的访问性。(1)局部变量。函数内部的变量称为“局部变量”(localvariable),其作用域仅限于函数内部,离开该函数后就是无效的,再使用系统就会报错。
主函数中定义的变量也只能在主函数中使用,不能在其他函数中使用。
允许在不同的函数中使用相同的变量名,它们代表不同变量,分配不同的存储单元,互不相干,不会发生混淆。
形参变量:在函数体内定义的变量都是局部变量。实参给形参传值的过程也就是给局部变量赋值的过程。知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉3.局部变量与全局变量(1)一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。在C语言中,用函数来实现各功能模块。
(2)一个C程序可由一个main主函数和若干个其它函数构成。由主函数调用其它函数。
(3)一个源程序文件由一个或多个函数组成,它们是一个整体。一个源程序是一个编译单位。
(4)C程序的执行总是从main主函数开始,调用其它函数后流程回到main主函数,在main主函数中结束整个程序的运行。main主函数是系统定义的。
(5)所有函数都是独立的,完成一个特定的功能。
(6)从用户使用的角度看,函数有两种:
①标准函数,即库函数。
②用户自己定义的函数。(2)全局变量在所有函数外部定义的变量称为“全局变量”(globalvariable),它的作用域默认是整个程序,也就是所有的源文件,包括.c文件和.h文件。它的作用域是从声明时刻开始到程序结束。
全局变量定义必须在所有函数之外。
全局变量可加强函数模块之间的数据联系,但是函数又依赖这些变量,降低函数的独立性。
在同一个源文件中,允许全局变量和局部变量同名,在局部变量作用域内,同名的全局变量不起作用。知识储备C语言程序设计
(2)行进中的分叉路口(1)树生长程中的分叉3.局部变量与全局变量(1)一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。在C语言中,用函数来实现各功能模块。
(2)一个C程序可由一个main主函数和若干个其它函数构成。由主函数调用其它函数。
(3)一个源程序文件由一个或多个函数组成,它们是一个整体。一个源程序是一个编译单位。
(4)C程序的执行总是从main主函数开始,调用其它函数后流程回到main主函数,在main主函数中结束整个程序的运行。main主函数是系统定义的。
(5)所有函数都是独立的,完成一个特定的功能。
(6)从用户使用的角度看,函数有两种:
①标准函数,即库函数。
②用户自己定义的函数。示例1:全局变量与局部变量的应用。#include"stdio.h"intsum1=0; //全局变量voidaddNumbers(intnum1,intnum2){intsum=0; //局部变量sum=sum+num1+num2;sum1=sum1+num1+num2;printf("\n两数之和子函数sum=的值是%d\n",sum);printf("\n两数之和子函数sum1=的值是%d\n",sum1);}voidmain(){intsum=0; //局部变量intnum1,num2; //局部变量printf("\n请输入两个数;");scanf("%d%d",&num1,&num2);addNumbers(num1,num2);addNumbers(num1,num2);printf("\n两数之和主函数sum=的值是%d\n",sum);}典型案例1:从键盘上输入某客车集团5个员工的工资,并将其输出。典型案例C语言程序设计#include"stdio.h"voidscanfEmployees(intEmployees[],intn){int*p,i;for(p=Employees,i=1;p<(Employees+n);p++,i++){printf("请输入第%d个人的工资:",i);scanf("%d",p);}}典型案例1:从键盘上输入某客车集团5个员工的工资,并将其输出。典型案例C语言程序设计#include"stdio.h"voidprint(intEmployees[],intn){int*p;printf("\n%d个员工的工资分别为:",n);for(p=Employees;p<(Employees+n);p++){printf("%d",*p);}}voidmain(){intEmployees[5],i=1;scanfEmployees(Employees,5);print(Employees,5);}典型案例2:从键盘上输入一个员工1~12月的工资,求和并输出。典型案例C语言程序设计典型案例2:从键盘上输入一个员工1~12月的工资,求和并输出。典型案例C语言程序设计#include"stdio.h"voidscan(intSale[],intn)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年百色市右江区政务服务中心(窗口人员)招聘笔试备考试题及答案详解
- 2025年岳阳市云溪区医疗系统事业编人员招聘考试试题及答案详解
- 2026玉溪市消防救援局招聘政府专职消防队员(50人)考试参考题库及答案详解
- 2025年江门市蓬江区医疗系统事业编人员招聘考试试题及答案详解
- 2026年昆明市官渡区政务服务中心(窗口人员)招聘考试参考题库及答案详解
- 2025年日喀则地区日喀则市政务服务中心(窗口人员)招聘考试试题及答案详解
- 2026年南充市顺庆区工会人员招聘笔试模拟试题及答案详解
- 2025年辽宁省沈阳市政务服务中心(窗口人员)招聘笔试试题及答案详解
- 2025年莆田市荔城区医疗系统事业编人员招聘笔试试题及答案详解
- 2026年上海市浦东新区政务服务中心(窗口人员)招聘笔试参考试题及答案详解
- 2023年美国肝病学会实践指导:静脉曲张出血介入治疗摘要
- 中国融通资源开发集团有限公司面向退役军人专项招聘100人笔试参考题库及答案详解
- 2026年港口危险货物安全管理人员考试试题题库含答案
- 中国老视矫正多专科管理专家共识(2026年)
- 2025临川二中高一入学语文分班考试真题含答案
- 历年保安证试题及答案
- 从“五方面人员”中选拔乡镇领导班子成员面试试题附答案及解析 (广西壮族自治区桂林市2026年)
- 2026年4399游戏策划管培生笔试题及答案
- YY 0469-2023医用外科口罩
- 山西兰花科技创业股份有限公司大阳煤矿分公司煤炭资源开发利用、地质环境保护与土地复垦方案
- 中国越剧唱腔知到章节答案智慧树2023年浙江艺术职业学院
评论
0/150
提交评论