版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Date:26November2022C语言程序设计案例教程(一)Date:25November2022C语言程序设计案一二请在这里输入您的主要叙述内容整体概述三请在这里输入您的主要叙述内容请在这里输入您的主要叙述内容一二请在这里输入您的主要叙述内容整体概述三请在这里输入您的主Date:26November2022第一章c语言程序设计基础Date:25November2022第一章授课要点C语言的应用及学习方法C语言教学组织形式、考核方式第一个C程序授课要点C语言的应用及学习方法C语言游戏案例演示
中国象棋贪吃蛇推箱子游戏求解最优交通路径常胜将军C语言游戏案例演示
中国象棋目标案例:学生成绩管理系统
学生成绩管理系统具有以下基本功能:(1)初始化(2)录入学生信息(3)计算每位学生(假设四门课程)的总成绩和平均成绩(4)对学生的基本信息进行添加、删除、修改(5)查看全部学生或者某个学生的成绩(6)安全退出系统目标案例:学生成绩管理系统
学生成绩管理系统具有以下基本功能教学目标熟练使用编程工具进行程序的录入、编译、调试、运行培养良好的调试与规范化编程习惯运用一定算法完成求最大值、制作菜单、字符串操作、排序等常见任务能用C语言编写出类似“计价器”、“学生成绩管理系统”等软件三种能力:编码能力、调试能力、阅读代码能力教学目标熟练使用编程工具进行程序的录入、编译、调试、运行三为什么要学习C语言1.C语言与UNIX的发展与历史
2.
C编程技能对学生个人发展的影响
(1)本专业的毕业生的就业技能包括哪些,在就业市场的定位
(2)C语言编程技能对就业技能的影响
(3)C语言学习对后续课程学习的作用
为什么要学习C语言1.C语言与UNIX的发展与历史就业品质和技能1.诚信2.勤奋3.有创新能力和创造性4.熟悉软件设计开发流程和方法;5.具有较强的专业技能,JAVA/C/C++基础扎实;6.沟通能力强,有良好的团队协作精神;7.良好的英语或日语听说读写能力8.有开发工作经验者优先就业品质和技能1.诚信C语言编程技能对就业技能的影响对于那些要求具有高效率、良好实时性或者说与操作系统内核紧密关联的程序来说,c是很好的选择。这类语言对程序员(或者企业)来说具有无可替代的价值。C语言编程技能对就业技能的影响对于那些要求具有高效率C语言学习对后续课程学习的作用C语言学习对后续课程学习的作用课程要求仔细阅读教材,做到课前预习、课后复习认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间课程要求仔细阅读教材,做到课前预习、课后复习教学组织形式:小组教学模式促使全体同学积极、努力学习。锻炼全体同学的团队协作和沟通协调能力。最根本的目的是以良好的学习效果来为家长、为自己负责。教学组织形式:小组教学模式促使全体同学积极、努力学习。组长职责组长是全体组员的直接领导。组长直接对老师负责,要与老师保持良好的沟通。组长拥有对组员进行考核甚至开除的绝对权力。组长必须以身作则为组员做好榜样。组长职责组长是全体组员的直接领导。本周内,组长自愿报名,,由组长在教学班范围内“招兵买马”确定自己的组员,各小组4~5人。没有加入任何小组的学生平时成绩不得超过15分执行一段时间后,若组长不负责任,表现不好,可以更改,但必须由所有组员向教师提出申请,由教师批准并产生其他组员组长的产生本周内,组长自愿报名,,由组长在教学班范围内“招兵买马”确定学习方法勇于发现问题独立思考(分析问题)注重实践(编写程序、解决问题)小组学习方法(教师-组长-组员)学习方法勇于发现问题案例演示:第一个C程序/*example1.1ThefirstCProgram*/#include<stdio.h>voidmain(){printf(“ThisisaCprogram.\n”);}注释编译预处理函数语句输出:ThisisaCprogram.案例演示:第一个C程序/*example1.1The[例1.1]运行结果演示单击编译、连接、运行输入源程序弹出运行结果窗口运行结果[例1.1]运行结果演示单击编译、连接、运行输入源程序弹出运学生模仿在屏幕上输出两行信息!(在作业本上完成)学生模仿在屏幕上输出两行信息!讨论并总结1.C语言的重要性2.学习C语言的方法3.C语言主要用在哪些方面4.目前流行的编程语言有哪些讨论并总结1.C语言的重要性学以致用讨论程序设计语言的用途,对比学生成绩管理系统,如果是通讯录,应该有哪些功能?学以致用讨论程序设计语言的用途,对比学生成绩管理系统,如果是作业——每人必做阅读教材1页至9页作业——每人必做阅读教材1页至9页Date:26November2022第一章c语言程序设计基础Date:25November2022第一章授课要点标准格式输出函数printf()授课要点标准格式输出函数printf()案例回顾【例1】原样输出一行语句。程序名为1_3.cpp。#include<stdio.h> /*文件包含*/voidmain() /*主函数*/{printf(“Hello,world!.\n"); /*输出信息*/}程序输出结果:Hello,world!【模仿练习】输出自己的姓名。运行显示如图所示:案例回顾【例1】原样输出一行语句。【模仿练习】输出自己的姓名C程序的基本结构2.C程序的书写格式1.C程序的结构特点C程序的基本结构2.C程序的书写格式1.C程序的结构特点C程序的结构特点1.C程序是由函数构成的。2.C程序总是从main函数开始执行。3.C程序语句和数据定义必须以分号“;”结束。4.C语言严格区分大小写。5.C语言用/*注释内容*/形式进行程序注释。
一个C源程序可由一个main函数和若干个其他函数组成,其中必须有一个且只能有一个main函数。
main函数始终是C程序执行时入口处。
C语言中,分号是程序语句的结束标志,也是C语句的必要组成部分。
如变量a和变量A系统认定为两个不同的变量。
在“/*”和“*/”之间的所有字符都为注释符,C系统不对注释符进行编译。
C语言程序的构成:程序文件函数语句单词字符C程序的结构特点1.C程序是由函数构成的。一个C源C程序的结构特点
任何函数(包括主函数main())都是由函数说明和函数体两部分组成。其一般结构如下:[函数类型]函数名(函数参数表)
/*函数说明部分*/
{说明语句部分;
/*函数体部分*/
执行语句部分;
}C程序的结构特点任何函数(包括主函数main()C程序的书写格式
1.C程序书写格式自由。2.C程序书写采用缩进格式。3.程序中适当使用注释信息。
根据语句的从属关系,程序书写时采用缩进格式,使程序语句的层次结构清晰,提高程序的可读性。同一层次语句要左对齐,不同层次的语句要缩进若干个字符,这样程序层次清楚,便于阅读和理解。
对于短语句可以多条语句书写在同一行,也可以将长语句分写在多行。但需要注意,分行时不能将一个单词分开,也不能将双引号引起来的字符串分开。我们提倡一行一条语句的风格。
C程序的书写格式1.C程序书写格式自由。标准格式输出函数printf()【例2】输出十进制整数。程序名为1_4.cpp。#include<stdio.h> /*文件包含*/voidmain() /*主函数*/{intiNum1=10,iNum2=5;/*定义整型变量*/printf(“%d\n”,iNum1);/*输出iNum1*/printf(“%d,%d\n”,iNum1,iNum2); /*输出iNum1、iNum2*/printf(“%d\t%d\n”,iNum1,iNum2);
/*输出iNum1、iNum2*/}程序输出结果:标准格式输出函数printf()【例2】输出十进制整数。标准格式输出函数printf()【模仿练习】输出三名学生的成绩(整数)。运行结果如下图所示:标准格式输出函数printf()【模仿练习】输出三名学生的成标准格式输出函数printf()【例3】输出十进制浮点数。程序名为1_5.cpp。#include<stdio.h> /*文件包含*/voidmain() /*主函数*/{floatfNum1=10.679,fNum2=5.3124;/*定义实型变量*/printf(“%f\n”,fNum1);/*输出fNum1*/printf(“%f,%f\n”,fNum1,fNum2); /*输出fNum1、fNum2*/printf(“%f\t%f\n”,fNum1,fNum2);/*输出fNum1、fNum2*/}程序输出结果:标准格式输出函数printf()【例3】输出十进制浮点数。标准格式输出函数printf()【模仿练习】输出三名学生的成绩(浮点数)。运行结果如下图所示:【说明】要控制显示位数见教材表1.6标准格式输出函数printf()【模仿练习】输出三名学生的成标准格式输出函数printf()【例4】输出一个字符。程序名为1_6.cpp。#include<stdio.h> /*文件包含*/voidmain() /*主函数*/{charch=‘a’;/*定义字符型变量*/printf(“ch=%c\n”,ch);/*输出字符*/}程序输出结果:标准格式输出函数printf()【例4】输出一个字符。标准格式输出函数printf()【例5】输出一个字符串。程序名为1_7.cpp。#include<stdio.h> /*文件包含*/voidmain() /*主函数*/{charstr[10]=“abcde”;/*定义一个字符串变量*/printf(“%s\n”,str);/*输出字符串*/}程序输出结果:标准格式输出函数printf()【例5】输出一个字符串。标准格式输出函数printf()【模仿练习】输出两名学生的姓名。运行结果如下图所示:标准格式输出函数printf()【模仿练习】输出两名学生的姓标准格式输出函数printf()
C语言本身没有输入和输出语句,而输入和输出的操作是由库函数scanf和printf等函数来完成的。程序在调用这些库函数时,必须在源文件的开始处加上头文件的“包含命令”,格式如下:
#include<库函数头文件名>或#include"库函数头文件名"
格式输出函数printf()解释
printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。
printf()函数的一般格式如下:
printf(“格式字符串”[,输出项表]);标准格式输出函数printf()C语言本身没有输入和讨论并总结输出函数printf()的格式应注意什么?转义字符的使用讨论并总结输出函数printf()的格式应注意什么?学以致用寻找身边的例子,实现信息的输出:例如:输出显示自己的名片,输出一棵圣诞树等等,格式自由发挥学以致用寻找身边的例子,实现信息的输出:作业——每人必做见习题word文档第2次
作业——每人必做见习题word文档第2次Date:26November2022第一章c语言程序设计基础Date:25November2022第一章授课要点标准格式输入函数scanf()单个字符输出函数putchar()单个字符输入函数getchar()授课要点标准格式输入函数scanf()标准格式输入函数scanf()【例6】输入一个十进制整数。程序名为1_8.cpp。#include<stdio.h> /*文件包含*/void
main() /*主函数*/{intiNum; /*定义整型变量*/scanf(“%d”,&iNum);/*输入iNum*/printf(“%d\n”,iNum); /*输出iNum*/}程序输出结果:标准格式输入函数scanf()【例6】输入一个十进制整数。标准格式输入函数scanf()【例7】输入两个十进制整数。程序名为1_9.cpp。#include<stdio.h> /*文件包含*/main() /*主函数*/{intiNum1,iNum2; /*定义整型变量*/scanf(“%d%d”,&iNum1,&iNum2);/*输入iNum1,iNum2*/printf(“%d\t%d\n”,iNum1,iNum2); /*输出iNum1,iNum2*/}程序输出结果:标准格式输入函数scanf()【例7】输入两个十进制整数。标准格式输入函数scanf()【例8】输入两个十进制整数。程序名为1_10.cpp。#include"stdio.h" /*文件包含*/voidmain() /*主函数*/{intiNum1,iNum2; /*定义整型变量*/scanf(“%d,%d”,&iNum1,&iNum2);/*输入iNum1,iNum2*/printf(“%d\t%d\n”,iNum1,iNum2); /*输出iNum1,iNum2*/}程序输出结果:注意输入时避免如下错误:标准格式输入函数scanf()【例8】输入两个十进制整数。标准格式输入函数scanf()【模仿练习】按如下要求输入两名学生的成绩(整数)并输出显示在屏幕上。运行结果如下图所示:标准格式输入函数scanf()【模仿练习】按如下要求输入两名标准格式输入函数scanf()【例9】输入十进制浮点数。程序名为1_11.cpp。#include"stdio.h" /*文件包含*/voidmain() /*主函数*/{floatfNum1,fNum2; /*定义实型变量*/ scanf(“%f%f”,&fNum1,&fNum2); /*输入fNum1,fNum2*/printf(“num1=%f\n”,fNum1); /*输出fNum1*/printf(“num1=%f\tnum2=%f\n”,fNum1,fNum2);/*输出fNum1、fNum2*/}程序输出结果:标准格式输入函数scanf()【例9】输入十进制浮点数。标准格式输入函数scanf()【模仿练习】按如下要求输入两名学生的成绩(浮点数)并输出显示在屏幕上。运行结果如下图所示:标准格式输入函数scanf()【模仿练习】按如下要求输入两名标准格式输入函数scanf()【例10】输入一个字符。程序名为1_12.cpp。#include"stdio.h" /*文件包含*/voidmain() /*主函数*/{charch; /*定义字符型变量*/ scanf(“%c”,&ch); /*输入一个字符*/printf(“你输入的字符是:%c\n”,ch);/*输出字符*/}程序输出结果:标准格式输入函数scanf()【例10】输入一个字符。标准格式输入函数scanf()【思考】以下程序应如何输入?#include<stdio.h>voidmain(){ charch1,ch2; scanf("%c%c",&ch1,&ch2); printf("ch1=%c,ch2=%c\n",ch1,ch2);}正确输入后的程序结果显示如右图:【思考】产生右图结果的原因是什么?标准格式输入函数scanf()【思考】以下程序应如何输入?【标准格式输入函数scanf()【例11】输入一个字符串。程序名为1_13.cpp。#include"stdio.h" /*文件包含*/voidmain() /*主函数*/{charstr[10]; /*定义一个字符串变量*/ scanf(“%s”,str); /*输入一个字符串*/printf(“你输入的字符串是%s\n”,str);/*输出字符串*/}程序输出结果:标准格式输入函数scanf()【例11】输入一个字符串。标准格式输入函数scanf()【模仿练习】按如下要求输入一名学生的姓名并输出显示在屏幕上。运行结果如下图所示:【注意】%s遇空格、回车表示结束。运行结果如右图所示:标准格式输入函数scanf()【模仿练习】按如下要求输入一名标准格式输入函数scanf()格式输入函数scanf()解释格式控制输入函数scanf作用是:按指定的格式从标准输出设备(键盘)输入数据。
函数scanf()的使用格式为:
scanf(“格式控制”,地址列表);标准格式输入函数scanf()格式输入函数scanf()解释单个字符输出函数putchar()
【例12】输出一个字符。程序名为1_14.cpp。#include"stdio.h" /*文件包含*/main() /*主函数*/{charch1,ch2,ch3; /*定义字符变量*/ch1=‘O’; /*为字符变量赋初值*/ ch2=‘K’; ch3=‘\n’; putchar(ch1); /*输出字符变量值*/ putchar(ch2); putchar(ch3);}程序输出结果:单个字符输出函数putchar()
【例12】输出一个字符单个字符输出函数putchar()字符输出函数putchar()解释字符输出函数putchar的一般格式为:
putchar(c)putchar作用:在标准输出设备(显示器)上输出c对应的一个字符。用putchar()函数可以输出字符变量、控制字符。
如,charc=’Y’;putchar(c);输出结果为Y。如,charc=’\n’;putchar(c);输出结果为一换行符。单个字符输出函数putchar()字符输出函数putchar单个字符输出函数putchar()
【模仿练习】用putchar()函数输出自己的英文名字:屏幕显示如下:单个字符输出函数putchar()
【模仿练习】用putc单个字符输入函数getchar()
【例13】从输入设备读入字符后输出该字符。程序名为1_15.cpp。#include"stdio.h" /*文件包含*/main() /*主函数*/{charch; /*定义字符变量*/ch=getchar(); /*输入一个字符*/ putchar(ch); /*输出字符变量值*/}程序输出结果:单个字符输入函数getchar()
【例13】从输入设备读单个字符输入函数getchar()字符输入函数getchar()解释字符输入函数getchar的一般格式为:
getchar()getchar作用:在标准输入设备(键盘)读入一个字符。如:charc;c=getchar();执行时,要求输入一个字符,如输入:3<CR>,则输入的字符’3’就赋给了变量c。【注意】在一个函数中要用到getchar()、putchar()函数时,应该在函数的前面(或在本文件开头)用#include<stdio.h>单个字符输入函数getchar()字符输入函数getchar讨论并总结输出函数scanf()的格式应注意什么?使用putchar()时应注意什么?使用getchar()应注意什么?讨论并总结输出函数scanf()的格式应注意什么?学以致用寻找身边的例子,实现信息的输出:例如:输出显示自己的名片,输出一棵圣诞树等等,格式自由发挥学以致用寻找身边的例子,实现信息的输出:作业——每人必做实现学生基本信息的输入、输出
作业——每人必做实现学生基本信息的输入、输出Date:26November2022第二章数据类型及表达式Date:25November2022第二章基本数据类型常量变量授课要点基本数据类型授课要点【例2.1】关于常量、变量及数据类型说明的程序实例。#include<stdio.h>main(){intiNum=108; /*定义整型变量iNum并赋予常量值108*/floatfGrade=95.5; /*定义单精度实型变量fGrade并赋予实型常量值95.5*/charch=‘A'; /*定义字符变量ch并赋予字符常量值‘A'*/charstr[10]=“WenHe”; /*定义字符数组str[10]*/printf("学号:%d\n",iNum); /*输出各变量的值*/printf("姓名:%s\n",str);printf("成绩:%f\n",fGrade);printf("等级:%c\n",ch); }案例回顾【例2.1】关于常量、变量及数据类型说明的程序实例。案例回顾问题分析(能否缺少数据类型定义)将【例2.1】的变量定义部分删掉,程序改为:#include<stdio.h>voidmain(){printf("学号:%d\n",iNum); /*输出各变量的值*/printf("姓名:%s\n",str);printf("成绩:%f\n",fGrade);printf("等级:%c\n",ch); }编译结果结论:变量在使用之前必须先定义!问题分析(能否缺少数据类型定义)将【例2.1】的变量定义部分程序举例【例2.2】关于常量、变量及数据类型说明的程序实例。#include<stdio.h>voidmain(){inta=3; /*定义整型变量a并赋予常量值3*/shortr=6;/*定义短整型变量r并赋予常量值6*/charc='a'; /*定义字符变量c并赋予字符常量值'a'*/floatpi=3.14; /*定义单精度实型变量pi并赋予实型常量值3.14*/doubles; /*定义双精度实型变量s*/s=pi*r*r; /*将pi*r*r值赋给s*/printf(“int:%d,short:%d,char:%d,float:%d,double:%d\n”,sizeof(a),sizeof(r),sizeof(c),sizeof(pi),sizeof(s)); /*输出各变量占内存的字节数*/printf("a=%d,r=%d,c=%c,pi=%f,s=%lf\n",a,r,c,pi,s); /*输出各变量的值*/}程序举例【例2.2】关于常量、变量及数据类型说明的程序实例。问题分析(不同类型的表示)结果分析:变量可以被定义成不同的数据类型并赋值,不同类型的数据在内存中所占的字节数不同,通过sizeof()求得数据宽度。短整型、整型、字符型、单精度实型、双精度实型在内存中分别占2字节、4字节、1字节、4字节和8字节(不同运行环境结果会有所差异,这里仅是VisualC++6.0的结果)。同时,这些数据在输出时所使用的输出格式控制符也不相同,分别为%d、%d、%c、%f和%lf形式。由此可见,数据表现为常量或变量,数据又具有不同的数据类型,不同数据类型的数据存储格式不同,数据的输出格式控制也不相同。注意:在TruboC环境下,整型数据存储时在内存中占2字节。
运行结果问题分析(不同类型的表示)结果分析:变量可以被定义成不同的数“数据类型”的意义:定义了数据占用的内存空间大小定义了数据在内存中的存储格式决定了数据的运算规则(自身的行为)为编译器提供了检查依据数据类型的意义数据类型是避免程序错误的初级(基本)手段,不是全部手段;“数据类型”的意义:数据类型的意义数据类型是避免程序错误的初C语言的数据类型单精度实型(float)双精度实型(double)整型(int)字符型(char)枚举类型数组类型结构体类型共用体类型实型基本类型构造类型空类型(void)指针类型数据类型C语言的数据类型单精度实型(float)双精度实型(1.整型数据2.实型数据3.字符型数据
数据的存储格式、范围1.整型数据2.实型数据3.字符型数据数据的存储格式、范围整型数据的取值范围实例【例2.3】观察以下程序的运行结果。#include<stdio.h>main(){ shortsNum=32768; printf(“%d\n”,sNum);}运行结果如下图所示:整型数据的取值范围实例【例2.3】观察以下程序的运行结果。整型数据分类及取值范围整型数据分为一般整型(int)、短整型(short)和长整型(long),并且每一种类型又分为带符号(signed)和无符号(unsigned)两种类型。整型数据的特性见下表:
数据类型名说明VisualC++6.0环境TurboC2.0环境字节取值范围字节取值范围short[int]短整型2-32768~327672-32768~32767signedshort[int]带符号短整型2-32768~327672-32768~32767unsignedshort[int]无符号短整型20~6553520~65535int整型4-2147483648~21474836472-32768~32767signed[int]带符号整型4-2147483648~21474836472-32768~32767unsigned[int]无符号整型40~429496729520~65535long[int]长整型4-2147483648~21474836474-2147483648~2147483647signedlong[int]带符号长整型4-2147483648~21474836474-2147483648~2147483647unsignedlong[int]无符号长整型40~429496729540~4294967295整型数据分类及取值范围整型数据分为一般整型(i实型数据分类
实型数据分为单精度实型(float)、双精度实型(double)和长双精度实型(longdouble)。具体情况见下表所示
:
数据类型名说明VisualC++6.0环境TurboC2.0环境字节取值范围有效数字字节取值范围有效数字float单精度实型4-3.4×1038~3.4×10386~74-3.4×1038~3.4×10386~7double双精度实型8-1.7×10308~1.7×1030815~168-1.7×10308~1.7×1030815~16longdouble长双精度实型815~1610-1.2×104932~1.2×10493218~191.7×10308~1.7×10308实型数据分类实型数据分为单精度实型(floa字符型数据分类
字符型数据分为一般字符型(char)、带符号字符型(signedchar)和无符号字符型(unsignedchar)三种类型。具体情况见下表所示
:
数据类型名说明字节取值范围char字符型1-128~127signedchar带符号字符型1-128~127unsignedchar无符号字符型10~255字符型数据分类字符型数据分为一般字符型(cha基本数据类型常量变量授课要点基本数据类型授课要点
标识符定义:用来标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度:最长32个字符命名原则:见名知意不宜混淆如l与I,o与0例:判断下列标识符号合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123M.D.John3days#33char$123a>b常量与变量例:判断下列标识符号合法性M.D.John3days#33c常量
常量的存在形式5 数字/整型常量5.3 数字/浮点常量“Black” 字符串常量'C' 字符常量推荐的常量表示#define Max 100ConstintMax=100;使用命名常量的好处增加程序可读性;
减少书写错误;
便于维护;常量常量的存在形式整型常量实例在C语言中,整型常量有十进制、八进制、十六进制三种进制表示方法,并且各种数制均可有正(+)负(-)之分,正数的“+”可省略。
【例2.4】定义一个八进制常量并显示在屏幕上。#include<stdio.h>voidmain(){ constintnum1=89; constintnum2=047; constintnum3=0X8A; printf(“%d\n%x\n%0x\n”,num1,num2,num3);}运行结果如下图所示:整型常量实例在C语言中,整型常量有十进制、八进字符型常量实例
【例2.5】观察以下程序的运行结果。#include<stdio.h>main(){
constintnum1=97; constcharch='a'; printf("%c\n",num1); printf("%d\n",ch);}运行结果如下图所示:字符型常量实例【例2.5】观察以下程序的运行结果。字符型常量说明
(1)一般字符常量:一般字符常量是用单引号括起来的一个普通字符,其值为该字符的ASCII代码值。如’a’、’A’、’0’、’?’等都是一般字符常量,但是’a’和’A’是不同的字符常量,’a’的值为97,而’A’的值为65。
字符型常量是由一对单引号括起来的一个字符。它分为一般字符常量和转义字符。字符常量在内存中占一个字节。(2)转义字符:C语言允许用一种特殊形式的字符常量,它是以反斜杠(\)开头的特定字符序列,表示ASCII字符集中控制字符、某些用于功能定义的字符和其他字符。如’\n’表示回车换行符,’\\’表示字符“\”。常用的转义字符见1.4.1中所叙。
字符型常量说明(1)一般字符常量:一般字符常量是用单引号ASCII表ASCII表字符串常量说明
字符串常量也称字符串,由一对双引号括起来(“”)的字符序列。
字符串常量中的字符是连续存储的,并在最后自动加上字符’\0’作为字符串结束标志。如字符串“a”在计算机内存中占两个连续单元,存储内容为字符’a’和’\0’。字符串常量说明字符串常量也称字符基本数据类型常量变量授课要点基本数据类型授课要点(1)数据类型:C语言的合法数据类型。如例中的int、short、char、float、double等。
(2)变量名表:变量名是C语言合法的标识符。变量名表可以包含多个变量名,彼此之间使用逗号分开,表示同时定义若干个具有相同数据类型的变量,如:
floata,b;变量及类型定义
1.变量定义变量定义一般格式:数据类型变量名表;如:inta;对变量定义说明如下:
变量是指在程序执行过程中其值可以被改变的量。变量定义的实质是按照变量说明的数据类型为变量分配相应空间的存储单元,在该存储单元中存放变量的值。
C语言中,变量使用时遵循“先定义,后使用”的原则。(1)数据类型:C语言的合法数据类型。如例中的int、sho变量及类型定义
MemoryValue(5)Name(a)Type
(int)inta=5;/*申请空间并初始化*/一个变量必然包含以下概念:名字(变量名)类型(变量占用空间)值(变量的内容)地址(变量在内存中所处的位置)字节Address2.变量的存储模式变量及类型定义MemoryValue(5)Name(a变量及类型定义
3.变量初始化及赋值在【例2.2】中“s=pi*r*r;”语句是通过赋值运算符“=”将“pi*r*r”的值赋给变量s,即该语句实现了给变量s的赋值。所以,变量值可以通过初始化取得,也可以在定义后,通过给变量赋值的方法取得。在【例2.1】中,“intnum=108;
floatgrade=95.5;charch=‘A';”的“=”是赋值运算符,用来给变量赋值。所以,以上四条语句都是在定义变量的同时给变量赋了值,称为变量的初始化。变量初始化是指定义变量同时,给变量一个初始值。变量及类型定义3.变量初始化及赋值在【例2模仿练习定义学生的学号、姓名、性别、年龄、两门功课的成绩并进行输入和输出。模仿练习定义学生的学号、姓名、性别、年龄、两门功课的成绩并进讨论并总结为什么要定义数据类型?不同数据类型的区别是什么?常量在使用时和变量的区别是什么?讨论并总结为什么要定义数据类型?结论1——定义数据类型的作用定义了数据占用的内存空间大小定义了数据在内存中的存储格式决定了数据的运算规则(自身的行为)为编译器提供了检查依据结论1——定义数据类型的作用结论2——不同数据类型的区别
内存空间大小不同数据表示有效位数不同数据表示范围不同对应的运算和操作不同结论2——不同数据类型的区别
内存空间大小不同结论3——常量和变量的区别
常量值在程序运行过程中不可改变,变量的值可改变常量有直接常量和符号常量,通常用大写,变量通常用标识符表示,通常小写结论3——常量和变量的区别
常量值在程序运行过程中不可改变,学以致用根据对学生基本信息的数据类型定义,扩展到对教师信息(姓名、年龄、工龄、工号、工资等信息)的各种数据进行定义,对学校信息(地址、名称、占地面积、类型、教职工人数、在校学生总数、部门个数等)的各种数据进行定义等等学以致用根据对学生基本信息的数据类型定义,扩展到对教师信息(作业——每人必做在一个程序中定义学过的简单数据类型变量各一个,给各变量赋值并输出。在一个程序中定义学过的简单数据类型变量各一个,并且将各变量输入并输出
作业——每人必做在一个程序中定义学过的简单数据类型变量各一个Date:26November2022第5次(VC的使用)Date:25November2022第5次(VC的使授课要点VisualC++6.0的使用方法C语言程序的开发过程授课要点VisualC++6.0的使用方法C程序案例2.C程序实例(2)1.C程序实例(1)C程序案例2.C程序实例(2)1.C程序实例(1)案例回顾/*example1.1ThefirstCProgram*/#include<stdio.h>main(){printf(“ThisisaCprogram.\n”);}注释编译预处理函数语句输出:ThisisaCprogram.案例回顾/*example1.1Thefirst[例1.1]运行结果演示输入源程序弹出运行结果窗口运行结果[例1.1]运行结果演示输入源程序弹出运行结果窗口运行结果案例演示【例1.2】输入两个整数,通过调用函数计算它们的和,然后输出和值。程序名为1_2.cpp。#include"stdio.h" /*文件包含*/intsum(intx,inty) /*定义sum函数*/{intz; /*声明定义变量z*/z=x+y; /*计算z等于x与y的和值*/return(z); /*将z的值返回,通过sum带回调用处*/}main() /*主函数*/{inta,b,c; /*声明定义变量a,b和c*/scanf("%d%d",&a,&b); /*输入变量a和b的值*/c=sum(a,b); /*调用sum函数,将得到的值赋给c*/printf("c=%d\n",c); /*输出变量c的值*/}运行程序输入:907<CR>程序结果:C=97案例演示【例1.2】输入两个整数,通过调用函数计算它们的和,[例1.2]运行结果演示输入源程序弹出运行结果窗口运行结果输入90和7,并以空格作间隔符,以回车作输入结束符。[例1.2]运行结果演示输入源程序弹出运行结果窗口运行结果输案例演示VisualC++6.0的安装案例演示VisualC++6.0的安装学生模仿安装VisualC++6.0学生模仿安装VisualC++6.0VisualC++6.0集成环境1.启动VisualC++6.0环境2.编辑源程序文件3.编译和连接4.执行利用VisualC++6.0集成环境开发C程序的过程如下:VisualC++6.0集成环境1.启动VisualVisualC++6.0集成环境1.启动VisualC++6.0环境
方法:单击“开始”-“程序”-“MicrosoftVisualstudio6.0”-“MicrosoftVisualC++6.0”命令,启动VisualC++,VC6主窗口如下:菜单栏项目工作区标题栏输出区工具栏状态栏文件编辑区VisualC++6.0集成环境1.启动VisualVisualC++6.0集成环境2.编辑源程序文件方法:单击“开始”-“程序”-“MicrosoftVisualstudio6.0”-“MicrosoftVisualC++6.0”命令,启动VisualC++,VC6主窗口如下:(1)建立新工程项目①单击“文件”-“新建”,弹出“新建”对话框。②单击“工程”选项卡;单击“Win32ConsoleApplication”选项;“工程”文件框中输入项目名,如“gc1”和“位置”框输入或选择新项目所在位置,单击“确定”按钮。弹出“Win32ConsoleApplicationStep1of1”对话框。③单击“Anemptyproject”按钮和“完成”按钮。系统显示“新建工程信息”对话框。单击“确定”按钮。
单击“工程”单击“Win32ConsoleApplication”输入项目名选择新项目位置单击“确定”单击该选项单击“完成”单击“确定”VisualC++6.0集成环境2.编辑源程序文件VisualC++6.0集成环境2.编辑源程序文件(2)建立新项目中的文件①单击“文件”-“新建”,弹出“新建”对话框。②
选择“文件”选项卡。单击“C++SourceFile”选项,在“文件”文件框中输入文件名,单击“确定”按钮。系统自动返回VC6主窗口。③显示文件编辑区窗口,在文件编辑区窗口输入源程序文件。单击“文件”输入文件名单击“C++Sourcefile”单击“确定”选择“添加工程”输入源程序VisualC++6.0集成环境2.编辑源程序文件(VisualC++6.0集成环境3.编译和连接
方法一:选择主窗口菜单栏中“编译”菜单项;系统弹出下拉菜单,选择“构件”菜单命令。
方法二:单击主窗口编译工具栏上的“Build”按钮进行编译和连接。单击“编译”
(1)系统对程序文件进行编译和连接,生成以项目名称命名的可执行目标代码文件.exe。(2)编译连接过程中,系统如发现程序有语法错误,则在输出区窗口中显示错误信息,给出错误的性质、出现位置和错误的原因等。如果双击某条错误,编辑区窗口右侧出现一个箭头,指示再现错误的程序行。用户据此对源程序进行相应的修改,并重新编译和连接,直到通过为止。
单击“Build”VisualC++6.0集成环境3.编译和连接VisualC++6.0集成环境4.执行方法一:单击“编译”菜单中“执行”命令。方法二:单击主窗口编译工具栏上的“BuildExecute”按钮来执行编译连接后的程序。运行成功,屏幕上输出执行结果,并提示信息:“Pressanykeytocontinue”。此时按任意键系统都将返回VC6主窗口。在执行程序过程中出现运行错误。用户要修改源程序文件并且重新编译、连接和执行。单击“编译”单击“BuildExecute”VisualC++6.0集成环境4.执行方法一:单击C程序的开发过程1.编辑2.编译3.连接4.运行C程序的开发过程1.编辑C程序的开发过程1.编辑2.编译
(1)编辑指编辑创建源程序是将编写好的C语言源程序代码录入到计算机中,形成源程序文件。(2)我们用VisualC++6.0环境提供的全屏幕编辑器。(3)在VC6.0环境中的源程序文件,其扩展名为.cpp,而在TurboC2.0环境中的源程序文件的扩展名为.c。(1)编译源程序就是由C系统提供的编译器将源程序文件的源代码转换成目标代码的过程。(2)编译过程主要进行词法分析和语法分析,在分析过程中如果发现错误,将错误信息显示在屏幕上通知用户。经过编译后的目标文件的扩展名为.obj。
C程序的开发过程1.编辑(1)编辑指编辑创建源程序是C程序的开发过程3.连接4.运行
(1)连接过程是将编译过程中生成的目标代码进行连接处理,生成可执行程序文件的过程。(2)在连接过程中,时常还要加入一些系统提供的库文件代码。经过连接后生成的可执行文件的扩展名为.exe。运行可执行文件的方法很多,可在C系统下执行“运行”命令。也可以在操作系统下直接执行可执行文件。可执行的程序文件运行后,将在屏幕上显示程序执行的结果。C程序的开发过程3.连接(1)连接过程是将编译过程学生模仿练习练习使用VisualC++6.0执行上述案例程序学生模仿练习练习使用VisualC++6.0执行上述案例讨论并总结在VisualC++6.0中新建C程序的方法(注意扩展名)查看程序编译错误提示的方法书写C程序应注意哪些问题讨论并总结在VisualC++6.0中新建C程序的方法(注学以致用设置障碍,使程序出现错误,查看编译错误提示,理解其含义。例如:某个符号漏掉(例如分号),会出现什么样的错误提示?学以致用设置障碍,使程序出现错误,查看编译错误提示,理解其含作业——每人必做将教材中第一章的例题用VisualC++6.0环境编辑并运行,看看显示结果。执行“学生成绩管理系统”,进一步体会其功能要求。作业——每人必做将教材中第一章的例题用VisualC++6Date:26November2022第6次(结构体)Date:25November2022第6次(结构体)本章主要知识点
基本的数据类型常量和变量结构体数据类型
C语言各种运算符和表达式的应用本章主要知识点
基本的数据类型数据类型——结构体数据类型——结构体复习结构体类型
结构体变量及初始化授课要点复习授课要点问题引入
学生是一个由学号、姓名、性别等属性组成的整体,如何用一种数据类型来描述学生呢?
问题引入学生是一个由学号、姓名、性别等属性组成的整体问题分析学生的学号、姓名、性别等属性,都可以用基本数据类型来描述,如:学号可以表示为characNum[15];姓名可以表示为characName[20];成绩可以表示为floatfScore;如果这些变量彼此独立,是不能描述学生这个整体的。我们如何将不同类型但彼此都属于同一个整体的信息表示出来呢?
结构体为我们提供了解决方案。问题分析学生的学号、姓名、性别等属性,都可以用基本数据类型来结构体类型的定义定义的一般形式:
struct<结构名>{成员列表};Eg:structtagStudent_t /*类型定义*/{characNum[15]; /*学号为字符串*/characName[20]; /*姓名为字符串*/floatfScore; /*成绩为浮点型*/ };结构体类型的定义定义的一般形式:模仿练习学生的学号、姓名、性别、年龄、家庭住址、成绩定义为一个学生结构体。模仿练习学生的学号、姓名、性别、年龄、家庭住结构体类型定义总结定义结构体的目的:将一些相关类型定义在一个整体里。结构体类型用一片连续的存储空间存放不同类型的成员,结构体成员和普通变量的存储方式、运算规则相同。结构体成员允许为各种类型,包括结构体类型,但不允许嵌套定义(不允许在定义结构体时,该结构体的成员变量定义结构体)结构体类型定义总结定义结构体的目的:将一些相关类型定义结构体类型
结构体变量及初始化授课要点结构体类型授课要点问题引入定义了学生类型的结构体,如何使用这种类型呢?问题引入定义了学生类型的结构体,如何使用这种类型呢?问题分析结构体类型的使用方法和其他基本类型一样,也必须定义结构体变量,才能使用。上例学生类型的变量存储空间表示如下:acNumacNameacSexfScore15B20B4B4B问题分析结构体类型的使用方法和其他基本类型一样,也必须结构体变量说明和引用常用的说明方式:(1)定义后说明。根据上面定义有:structtagStudent_tstStu1,stStu2;(2)在定义的后面说明。在定义的分号前放上stStu1,stStu2(3)在定义后说明可以省略结构体名。(4)利用重命名类型说明如:
typedefstructtagStudent_t{…}Student_t;Student_tstStu1,stStu2;结构体变量的引用:结构体变量名.成员名例:stStu1.sex='f';结构体变量说明和引用常用的说明方式:结构体变量举例定义学生类型结构体,并为一个学生的各项值赋值并输出#include<stdio.h>structtagStudent_t /*结构体类型定义*/{characNum[15];characName[20];characSex[4]; intiAge;};voidmain(){ structtagStudent_tstStu1;/*定义结构体stu,说明s1为结构体变量*/
strcpy(stStu1.acNum,“20030311”);strcpy(stStu1.acName,"xiaomin"); strcpy(stStu1.acSex,”男”);stStu1.iAge=20; printf("Number=%s\nname=%s\n",stStu1.acNum,stStu1.acName);
printf("sex=%s\nage=%d",stStu1.acSex,stStu1.iAge);}结构体变量举例定义学生类型结构体,并为一个学生的各项值赋模仿练习定义学生结构体,成员包括学号、姓名、性别、年龄、两门功课的成绩,定义结构体变量并为该结构体变量赋值,然后输出所有信息。模仿练习定义学生结构体,成员包括学号、姓名、性别、年龄、两门结构体变量总结说明一个变量类型为结构体类型,必须先有结构体的定义,才能有该类型的变量。在使用结构体类型名定义时,不能把struct漏掉。如 tagStudent_tstStu1,stStu2;为非法定义。结构体变量的引用:结构体变量名.成员名结构体每个成员变量必须单独赋值和使用,不允许对结构体变量整体赋值,除了定义时(结构体变量的初始化),不允许将一个结构体变量赋值给另一个结构体变量。结构体变量总结说明一个变量类型为结构体类型,必须先有结构体的讨论并总结结构体类型定义后还需要定义结构体变量吗?输入输出结构体变量成员怎么表示?讨论并总结结构体类型定义后还需要定义结构体变量吗?结论1——结构体类型与变量的区别结构体类型必须先定义,才有变量定义定义了结构体类型不分配存储空间,作用类似int等基本数据类型定义结构体类型后必须定义该类型的变量,才分配存储空间,该存储空间的大小和结构由结构体类型确定不能对结构体类型进行引用,结构体变量可引用例如:Student_t.acNum是非法的,而stStuu1.acNum是合法的。结论1——结构体类型与变量的区别结论2——输入输出结构体变量成员怎么表示?
结构体成员变量的引用方式为:结构体变量名.成员变量名输入输出的方式根据成员变量的类型进行格式控制,其方法与普通变量相同结论2——输入输出结构体变量成员怎么表示?
结构体成员变量的学以致用根据对学生基本信息的数据类型定义为结构体,扩展到对教师信息(姓名、年龄、工龄、工号、工资等信息)定义为结构体,对学校信息(地址、名称、占地面积、类型、教职工人数、在校学生总数、部门个数等)定义为结构体等等学以致用根据对学生基本信息的数据类型定义为结构体,扩展到对教作业——每人必做完成学生信息结构体的程序对教师信息(姓名、年龄、工龄、工号、工资等信息)定义为结构体,并输入和输出教师信息作业——每人必做完成学生信息结构体的程序Date:26November2022第7次(赋值运算符、算术运算符、自增自减运算符)Date:25November2022第7次(赋值运算本章主要知识点
基本的数据类型常量和变量结构体数据类型
C语言各种运算符和表达式的应用本章主要知识点
基本的数据类型在用C程序描述各种运算时将使用各种类型的运算符,其中包括赋值运算符、算术运算符关系运算符、逻辑运算符、条件运算符等在用C程序描述各种运算时将使用各种类型的运算符,其中包分类名称运算符算术运算符+、-、*、/、%、++、--关系运算符<、<=、>、>=、==、!=逻辑运算符&&、||、!位运算符<<、>>、~、|、^、&赋值运算符=及其扩展赋值运算符条件运算符?:逗号运算符,指针运算符*、&求字节数运算符sizeof强制类型转换运算符(类型)分量运算符.、->下标运算符[]其他函数运算符()运算符和表达式1.运算符2.表达式用运算符将操作对象连接起来、符合C语法规则的式子称为表达式。分类名称运算符算术运算符+、-、*、/、%、++、--关系运问题引入
将华氏温度转换成摄氏度,如何求解?
摄氏温度=(5/9)×(华氏温度-32)解决上述问题需用到赋值运算符和算术运算符问题引入将华氏温度转换成摄氏度,如何求解?复习赋值运算符及表达式算术运算符及表达式自增、自减运算符及表达式授课要点复习授课要点问题引入回顾前面所学,举例说明如何为变量赋值?结论:运用赋值运算符及表达式问题引入回顾前面所学,举例说明如何为变量赋值?结论:运用赋值赋值运算符及赋值表达式
简单赋值运算符及其表达式赋值运算符是“=”,其作用是将赋值运算符右侧的表达式的值赋给其左侧的变量。值得注意的是:赋值运算符运算对象中的左侧对象一定是变量。如:a=b-c=5;相当于a=((b-c)=5);,由于表达式中出现将数值5赋给b-c表达式,因此,该表达式是非法的。返回本节目录赋值运算符及赋值表达式简单赋值运算符及其表达式赋值运算符及表达式算术运算符及表达式自增、自减运算符及表达式授课要点赋值运算符及表达式授课要点问题引入如何编写一个能进行五则混合运算的简易计算器程序?功能包括求两个数的和、差、积、商,如何表示?结论:运用算术运算符及表达式问题引入如何编写一个能进行五则混合运算的简易计算器程
问题求解/*和、差、积、商以及两数相除的余数*/#include<stdio.h> voidmain(){ /*操作数和存放结果的变量定义*/ doubledOper1=10.5,dOper2=100,dAdd,dSub,dMult,dDiv,dMod; dAdd=dOper1+dOper2; /*两数和*/ dSub=dOper1-dOper2; /*两数差*/ dMult=dOper1*dOper2; /*两数积*/ dDiv=dOper1/dOper2; /*两数商*/
/*结果输出*/ printf(“\n两数和为%lf,两数差为%lf,两数积为%lf,两数商为%lf,两数模为%lf”,dAdd,dSub,dMult,dDiv,dMod); }问题求解/*和、差、积、商以及两数相除的余数*/模仿练习1.输入两个整数,要求输出它们的和、差、积、商。2.输入一名学生的三科成绩(假设都是实型),请统计该学生的总分及平均分
3.用%求两个整数相除的余数,尝试能否用%求出两个浮点数相除的余数。模仿练习1.输入两个整数,要求输出它们的和、差、积、商。基本算术运算符总结基本算术运算符:加法(+)、减法(-)、乘法(*)、除法(/)和求余(%)结合方向:从左向右优先级:-
(负)---->*/%----->+-(2)(3)(4)
说明:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 结合中西医疗技术的探索
- 化工安全生产与环境保护管理措施研究
- 石河子大学《债法》2022-2023学年第一学期期末试卷
- 石河子大学《土木工程材料》2022-2023学年第一学期期末试卷
- 石河子大学《人力资源管理》2023-2024学年第一学期期末试卷
- 石河子大学《当代国际共产主义运动》2023-2024学年第一学期期末试卷
- 沈阳理工大学《运动控制基础》2022-2023学年期末试卷
- 沈阳理工大学《汽车构造》2022-2023学年第一学期期末试卷
- 造价年终总结汇报
- 沈阳理工大学《工程力学》2023-2024学年第一学期期末试卷
- 《审计学》(第三版)课后答案 段兴民
- 气管切开术后护理查房
- 国航机务系统(Ameco)工程师岗位校园招聘考试真题2022
- 2023年小学爱国知识竞赛试题答案
- 教育学基础课件十二所高校
- 收养老人协议 老人寄养协议(3篇)
- JJF 1701.4-2019 测量用互感器型式评价大纲 第4部分:电流互感器
- 清华大学出版社机械制图习题集参考答案(课堂PPT)
- 肯布兰佳领导力发展战略课程
- 26个标点符号大全
- GB/T 9115.1-2000平面、突面对焊钢制管法兰
评论
0/150
提交评论