第2章基本概念_第1页
第2章基本概念_第2页
第2章基本概念_第3页
第2章基本概念_第4页
第2章基本概念_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章C语言的基本概念

本章要点C程序的基本结构在计算机上运行C程序的方法§2-1简单的C语言程序例1:pun.c#include<stdio.h>int

main(){

printf("ToC,ornottoC:thatisthequestion.\n");return0;}以#开头的是指令。#include,包含标准输入输出库stdio.h每个C程序必须有一个主函数main,int是函数返回类型每个C语句以分号结束return0:表示程序结束时向操作系统返回值0C程序文件以.c为文件名后缀编译和链接程序要执行,需要三个步骤:预处理,

预先处理程序前面以#开头的命令编译,编译器把程序翻译成机器指令(目标代码)链接,把编译后的目标代码和所需的其他附加代码(如库函数printf)整合在一起,产生可执行程序。预处理器与编译器通常集成在一起4程序编写及运行过程逐句讲故事复述讲故事集成开发环境集编辑、编译、链接、执行甚至调试为一体的软件包如,visualC6.0、2010,freeC2.2简单程序的一般形式指令

intmain(void)

{

语句

}

{}是函数开始和结束的标志,不可省C程序至少包含三部分:指令、函数和语句指令C程序编译前先由预处理器对指令进行预处理。例如:#include<stdio.h>stdio.h包含或定义C标准输入/输出库信息的头文件#include<stdio.h>将标准输入/输出库信息包含到我们的程序中通常占一行,没有结尾符函数一系列组合在一起并赋予名字的语句用于构造代码块,类似过程,便于模块化对数学函数概念的借用,可返回结果(return),也可不返回结果两类:自编函数,库函数C程序总是从main函数开始执行的,与main函数的位置无关。在程序终止时向操作系统返回状态码函数数学概念借用f(x)=ax+c代码模块化intmain(){tmt=2;egg=2;salt=5g;soy=5ml;con=10g;oil=50ml;//变量声明cleantmt;//洗净番茄flaytmt;//去皮cuttmt;//切块;cutcon;//葱花切片egg=egg+salt;//鸡蛋加少许盐mixegg;//打散hotoil;//烧热油;fryegg;…………return();//盛出;}intmain(){tmt=2;egg=2;salt=5g;soy=5ml;con=10g;oil=50ml;//变量声明deal_tmt(tmt);//处理番茄deal_egg(egg);//处理鸡蛋fry_egg(egg);fry_tmt(tmt);mix_fry(egg,tmt);return();//盛出;}deal_tmt(tmt){

clean(tmt);flay(tmt);cut(tmt);returntmt;}……温故而知新——低级、高级语言低级语言面向机器(小孩)高级语言面向用户(大人)机器语言汇编语言C语言C++、JAVA温故而知新——C语言特点高效贴近低级语言,地址访存可移植性强标准C,编译器小功能强大丰富的数据类型和运算符灵活语法灵活,约束少。标准库常用功能以库函数方式提供(成语)温故而知新——简单程序的一般形式C程序至少包含三部分:指令、函数和语句

指令://预处理指令,#include;#define,准备工作,如指明库函数出处

intmain(/*参数*/)//程序主体,int(integer)//构建程序的构件块,C程序就是函数的集合

{

语句//程序实际要计算机执行的操作,以;结尾

}//{,}表示main函数的开始于结束语句语句是程序的基本组成单位以分号结尾eg:printf(“hello!\n”);//函数调用语句,输出字符串“hello!”,“\n”换行y=3*x+5;//算术运用语句return0;//返回语句;可返回也可不返回练习(5分钟)输出自己姓名、年龄开发工具C-FreeC-Free(轻量C程序集成开发环境)工程方便管理和设置控制台程序在32位windows环境中模拟16位DOS程序,没有自己的界面,在DOS窗口中执行。GCC(GNUCompilerCollection)Linux环境下最流行的编译器。MinGW(MinimalistGNUonWindows)在Windows平台上模拟了Linux下GCC的开发环境收集了一系列免费的Windows使用的头文件和库文件;整合了GNU的工具集,如经典gcc,g++,make等。练习(5分钟)攻略:1、打开C-Free(轻量C程序集成开发环境)2、新建project3、new*.cpp源程序文件4、编写代码5、编译源代码6、构建程序7、运行&调试2.3注释对程序或代码进行注解,便于程序阅读和维护,对编译和运行不起作用。“//”开头或“/*”和“*/”包含可以用汉字或英文字符表示。放油少许酱油;继续翻炒;/*翻炒时动作要轻柔,频率不能太高,否则西红柿太烂了反而不好吃*//*Name:pun.cPurpose:Printsabadpun.Author:K.N.King*/#include<stdio.h>intmain() {printf(“HelloTom!”);//greeting}语句注解程序注解语句注解2.4变量和赋值变量(容器)存放程序执行过程中会产生变化的数据,egf(x)每个变量都有一个类型,(碗、盘)n;//人数floatt;//温度,浮点数,eg,t=36.8=3.68x10=0.368x102不同类型有不同的取值范围,由类型的长度决定int两字节——16bit,最大32767声明声明(介绍)变量说明变量的类型和名字先声明,后使用单独声明:intheight;floatprofit;合并声明:intheight,length,width,volume;floatprofit,loss;赋值变量通过赋值获得值height=8;length=12;width=10;volume=height*length*width;profit=2150.48(f);显示变量值printf()格式化输出函数printf("Height:%d\n",height);printf("Profit:$%.2f\n",profit);printf("%d\n",height*length*width);占位符%d、%f指示变量height的显示位置,d表示输出的变量是整数,f表示输出浮点数计算箱子空间重量dweight.c/*Computesthedimensionalweightofa12"x10"x8"box*/#include<stdio.h>

intmain(void){intheight,length,width,volume,weight;

height=8;length=12;width=10;volume=height*length*width;weight=(volume+165)/166;

printf("Dimensions:%dx%dx%d\n",length,width,height);printf("Volume(cubicinches):%d\n",volume);printf("Dimensionalweight(pounds):%d\n",weight);

return0;}printf(“volume:%d\n",length*width*height);显示表达式的值初始化声明变量的同时赋值初始值,eg,初生体重,身长intyears=8;height=140;weight=30;未初始化化变量,值不可预期intweight;printf(“myweightis%d\n”,weight);2.5读入输入scanf()格式化输入函数,与printf对应,f表示format。用格式串指定输入或输出数据的格式。scanf("%d",&i); /*readsaninteger;storesintoi*/&表示变量i的地址,scanf函数读入数据必须在变量前加&。scanf("%f",&x);计算箱子空间重量(改进版)dweight2.c/*Computesthedimensionalweightofaboxfrominputprovidedbytheuser*/#include<stdio.h>intmain(void){intheight,length,width,volume,weight;

printf("Enterheightofbox:");scanf("%d",&height);printf("Enterlengthofbox:");scanf("%d",&length);printf("Enterwidthofbox:");scanf("%d",&width);volume=height*length*width;weight=(volume+165)/166;

printf("Volume(cubicinches):%d\n",volume);printf("Dimensionalweight(pounds):%d\n",weight);return0;}2.6定义常量常量:程序执行过程中不变的量,比如圆周率,货币汇率常量定义通常通过宏定义来完成#definePI3.1415926//宏名(常量名)通常大写宏定义是预处理功能的一种,预处理时宏将替换为其表示的值(常量)

area=r*r*PI;perimeter=2*r*PI;预处理area=r*r*3.1415926;perimeter=2*r*3.1415926;思考宏定义的意义?2.7标识符变量、函数、宏和其他实体的名字统称标识符由字母、数字和下划线构成,必须以字母或下划线开头,大小写敏感eg:inth1,h2,H1,H2,_w;intmax(intnum1,num2);PI92h,tom-kate;//???关键字对C编译器有特殊意义的字符串,如int,float,enum一般为小写不能用作标识符C关键字Thefollowingkeywords

can’tbeusedasidentifiers: autoenumrestrict*unsigned breakexternreturnvoid casefloatshortvolatile charforsignedwhile constgotosizeof_Bool* continueifstatic_Complex* defaultinline*struct_Imaginary* dointswitch doublelongtypedef elseregisterunion

*C99only2.8C程序书写规范C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上,C程序没有行号。添加空格和空行使程序便于阅读和理解缩进助于识别程序的嵌套层次C程序布局C程序由一连串记号构成:Identifiers:标识符Keywords:关键字Operators:运算符Punctuation:标点Constants:常量Stringliterals:字符串字面量32C程序布局语句

printf("Height:%d\n",height);

包含七个记号: printf Identifier ( Punctuation "Height:%d\n" Stringliteral , Punctuation height Identifier ) Punctuation ; Punctuation33不讲布局的程序/*ConvertsaFahrenheittemperaturetoCelsius*/#include<stdio.h>#defineFREEZING_PT32.0f#defineSCALE_FACTOR(5.0f/9.0f)intmain(void){floatfahrenheit,celsius;printf("EnterFahrenheittemperature:");scanf("%f",&fahrenheit);celsius=(fahrenheit-FREEZING_PT)*SCALE_FACTOR;printf("Celsiusequivalent:%.1f\n",celsius);return0;}34如何布局C允许在记号间插入任意数量的空白空格、制表符、空行布局结果:语句可分开放在任意多行内;记号间空格使其容易区分;缩进助于识别嵌套;空行把程序划分成逻辑单元。35布局好的程序/*ConvertsaFahrenheittemperaturetoCelsius*/#include<stdio.h>#defineFREEZING_PT32.0f#defineSCALE_FACTOR(5.0f/9.0f)intmain(void){floatfahrenheit,celsius;printf("EnterFahrenheittemperature:");scanf("%f",&fahrenheit);celsius=(fahrenheit-FREEZING_PT)*SCALE_FACTOR;printf("Celsiusequivalent:%.1f\n",celsius);return0;}362.9运行C程序的

步骤和方法一、运行C程序的步骤上机输入与编辑源程序预处理:预处理器执行以#开头的指令对源程序进行编译与库函数链接运行目标程序目标代码f.obj/*hello.c*/#include<stdio.h>void

main(){

printf("Hello,ThisisaCprogram.\n");}预处理器Hello.c源程序编译器Hello.exe可执行目标程序Hello.o可重定位目标程序链接器printf.o程序练习1——两数求和/*两数求和程序,计算123与456的和*/#include<stdio.h>/*包含stdio库信息*/intmain()/*程序主体*/{intnum1,num2,sum;/*变量声明(整型),定义程序中将要使用的变量*/num1=123;num2=456;sum=num1+num2;printf(″sumis%d\n″,sum);

/*输出结果*/}两数求和VS汽车生产/*两数求和程序*/#include<stdio.h>

/*包含stdio库信息*/

intmain()/*程序主体*/

{

intnum1,num2,sum;

/*变量声明(整型),定义程序中将要使用的变量*/

num1=123;num2=456;

sum=num1+num2;

printf(″sumis%d\n″,sum);

/*输出结果*/

}/*汽车生产工艺*/#include<配件库存清单>

intmain()/*生产工艺主体*/

{

配件声明;

车架();

车身();//钣金、烤漆

装配();/*发动机、车载电子、刹车、轮子、安全*/

下线();}温故而知新——dweight2.c/*Computesthedimensionalweightofaboxfrominputprovidedbytheuser*/

#include<stdio.h>

intmain(void){intheight,length,width,volume,weight;

printf("Enterheightofbox:");scanf("%d",&height);printf("Enterlengthofbox:");scanf("%d",&length);printf("Enterwidthofbox:");scanf("%d",&width);volume=height*length*width;weight=(volume+165)/166;

printf("Volume(cubicinches):%d\n",volume);printf("Dimensionalweight(pounds):%d\n",weight);

return0;}注释//预处理指令主函数变量声明格式化输入;语句;表达式语句%x占位符,d表整数先声明,后使用温故而知新/*calculatetheareaandperimeterofacircle*/#include<stdio.h>#definePI3.14;intmain(void){ intradius; floatarea; printf("inputtheradius:"); scanf("%d",radius); area=PI*radius*radius; perimeter=2*PI*radius; printf("theareais%f\ntheperimeteris%f",area,perimeter); return0;}注释//预处理指令宏定义变量声明格式化输入;问题?函数调用语句;表达式语句%x占位符,d表整数先声明,后使用,初始化主函数返回语句;程序练习2——试卷统分程序练习2——试卷统分/*提示用户输入四道大题分数,并求和*/#include<stdio.h>intmain(void){ intscore1,score2,score3,score4,sum;/*变量声明*/ printf(“Enterfourscores.\n”); scanf(“%d”,&score1);//输入第一个数 scanf(“%d”,&score2);//输入第二个数 scanf(“%d”,&score3);//输入第三个数 scanf(“%d”,&score4);//输入第四个数 sum=score1+score2+score3+score4; printf(″sumis%d\n.″,sum);

/*输出结果*/}程序问题?scanf(“%d%d%d%d",&score1,&score2,&score3,&score4);程序练习2——试卷统分(程序错误分析)/*提示用户输入两数,并求和*/#include<stdio.h>intmain(){ intscore1,score2,score3,sum;/*变量声明*/ printf(“Enterfourscores.\n”); scanf(“%d”,&score1);//输入第一个数 scanf(“%d”,&score2);//输入第二个数 scanf(“%d”,&score2);//输入第三个数 scanf(“%d”,&score4);//输入第四个数 sum=num1+num2+num3+num4; printf(″sumis%d\n.″,sum);

/*输出结果*/}程序练习3——标准体重计算根据身高计算标准体重标准体重(男)=(身高cm-100)x0.9(kg)标准体重(女)=(身高cm-100)x0.9(kg)-2.5(kg)

程序练习3——标准体重计算/*计算标准体重*/#包含stdio.hintmain(){

声明变量;

提示输入性别;

读入性别;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论