chap02-用C语言编写程序_第1页
chap02-用C语言编写程序_第2页
chap02-用C语言编写程序_第3页
chap02-用C语言编写程序_第4页
chap02-用C语言编写程序_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

Chap2用C语言编写程序简单程序的一般形式

指令

intmain(void)//函数

{

语句

}2指令在编译C程序之前,预处理器先行对其编辑预处理器执行的命令称为指令Example: #include<stdio.h><stdio.h>//C’sstandardI/Olibrary.指令以#为开头,默认只有一行,结尾无;3函数数学:函数是根据一个或多个给定参数进行数值计算的规则C:函数是一系列组合在一起并且整体命名的语句集合程序员自行编写的函数编译器提供的库函数通常需要返回值 returnx+1;4main

函数main

函数是必须的.main函数是特别的,在程序执行时自动被调用main函数要求返回一个状态码,用0表示正常退出5语句语句是程序运行时执行的命令.C语言规定每条语句都要以分号结尾,复合语句除外6注释单行用//C99//Thisisacomment多行用/*

*/

/*Thisisacomment*/ /*Name:pun.c Purpose:Printsabadpun. Author:K.N.King*/ 7变量与赋值变量:在程序执行过程中临时存储数据的单元类型:用来说明变量存储的数据种类声明:变量使用之前为编译器所做的描述

intheight;intheight,length,width,volume;赋值:变量通过赋值方式获得值初始化:在声明时赋值,未初始化的变量不可控8变量的声明与使用变量必须先声明,后使用。#include<stdio.h>intmain(void){intcelsius,fahr;

fahr=100;

celsius=5*(fahr-32)/9;printf("fahr=%d,celsius=%d\n",fahr,celsius);

return0;}一个变量名只能声明一次变量一般都定义在程序的头上不能定义在程序的中间或后面应该先赋值,后引用常量常量:在程序运行过程中,其值不能被改变

字面值:89‘A’const类型常量名=值;

宏定义:#defineINCHES_PER_POUND166//名称默认全大写(规范不强制)10标识符标识符:变量、常量、函数、宏定义、结构名等实体的命名.标识符可以含有字母、数字、下划线,但必须以字母或下划线开头C语言区分大小写一般要求变量用小写,多个单词时:current_pagecurrentPage理论上标识符长度没有限制

11关键字如下不能用于标识符: autoenumrestrict*unsigned breakexternreturnvoid casefloatshortvolatile charforsignedwhile constgotosizeof_Bool* continueifstatic_Complex* defaultinline*struct_Imaginary* dointswitch doublelongtypedef elseregisterunion

*C99only标准库函数名称也要回避12代码书写规范单个语句可以分开放在多行里.关键字、标识符、运算符、逗号等后面最好加一下空格通过缩进来帮助识别程序嵌套结构通过空行来划分程序逻辑单元乱加空格和分行会导致错误字符串太长怎么办?printf(“ToC,ornottoC: thatisthequestion.\n");13\printf

函数printf

函数用来显示格式串 printf(格式串,表达式1,表达式2,…);格式串包含普通字符和转换说明(以

%

字符开头).普通字符直接显示,转换说明被变量替代14Example:

inti,j; floatx,y;

i=10; j=20; x=43.2892f; y=5527.0f;

printf("i=%d,j=%d,x=%f,y=%f\n",i,j,x,y);Output: i=10,j=20,x=43.289200,y=5527.000000printf

函数编译器不检查转换说明和字符串是否匹配.太多转换说明: printf("%d%d\n",i);/***WRONG***/太少转换说明: printf("%d\n",i,j);/***WRONG***/顺序不一致:printf("%f%d\n",i,x);/***WRONG***/15转换说明格式转换说明标准格式 %m.pX

m(数字,可选,最小字段宽度,当数值所需字符少于m时,m为正右对齐,m为负左对齐)

p

(数字,可选,精度,取决于具体说明符)

X

(说明符,必须).%10.2f,mis10,pis2,andXisf.数值常用说明符d十进制e科学计数法,p指明小数点后的数字个数f浮点数,p指明小数点后的数字个数g可以自动转换,可以显示为十进制、浮点数或科学计数法,不能用于整数

tprintf.c

/*Printsintandfloatvaluesinvariousformats*/

#include<stdio.h>

intmain(void) { inti; floatx;

i=40; x=839.21f;

printf("|%d|%5d|%-5d|%5.3d|\n",i,i,i,i); printf("|%10.3f|%10.3e|%-10g|\n",x,x,x);

return0; }Output:

|40|40|40|040| |839.210|8.392e+02|839.21|17转义序列非打印的(控制)字符响铃符

\a回退符

\b换行符

\n水平制表符

\t显示\ \\Exampleprintf("Item\tUnit\tPurchase\n\tPrice\tDate\n"); ItemUnitPurchase PriceDate18scanf

函数scanf

根据特定格式读取输入.scanf(格式串,&变量名1,&变量名2,…);格式串包含普通字符(通常没有)和转换说明(以

%

字符开头).转换说明被变量替代转换说明、转义序列与printf用法相同编译器不检查转换说明和字符串是否匹配19scanf

的匹配过程scanf

函数调用:

scanf("%d%d%f%f",&i,&j,&x,&y);用户录入:

1 -20.3 -4.0e3scanf

把用户输入当作一个连续字符流(¤

表示换行符•表示空格): ••1¤-20•••.3¤•••-4.0e3¤ ssrsrrrsssrrssssrrrrrr(s=skipped;r=read)最后一个换行符被忽略.20格式串中的普通字符空白字符(空格、制表符、换行符等)可以与输入中任意数量的空白字符匹配,包括0个其他字符匹配时,scanf

放弃输入字符继续处理不匹配时,异常退出21addfrac.c/*Addstwofractions*/

#include<stdio.h>

intmain(void){intnum1,denom1,num2,denom2,result_num,result_denom;printf("Enterfirstfraction:");scanf("%d/%d",&num1,&denom1);

printf("Entersecondfraction:");scanf("%d/%d",&num2,&denom2);

result_num=num1*denom2+num2*denom1;result_denom=denom1*denom2;printf("Thesumis%d/%d\n",result_num,result_denom)return0;}22程序解析分段计算水费要解决的问题:输入计算分段函数输出,并保留2位小数

求ex程序解析-求分段函数#include<stdio.h>intmain(void){doublex,y;printf("Enterx(x>=0):\n");/*输入提示*/

scanf("%lf",&x);/*调用scanf函数输入数据*/

if(x<=15) /*if–else语句*/

y=4*x/3;

else

y=2.5*x-10.5;printf("f(%f)=%.2f\n",x,y);

return0;}Enterx(x>=0):9.5f(9.500000)=12.67Enterx(x>=0):15f(15.000000)=20.00Enterx(x>=0):21.3f(21.300000)=42.75软件测试的基本思想软件测试精心设计一批测试用例[输入数据,预期输出结果],然后分别用这些测试用例运行程序,看程序的实际运行结果与预期输出结果是否一致。inputx:2.5f(2.50)=0.4inputx:0f(0.00)=0.0if(x!=0)

y=1/x;elsey=0;if(x<=15)y=4*x/3;elsey=2.5*x-10.5;Enterx(x>=0):9.5f(9.500000)=12.67Enterx(x>=0):15f(15.000000)=20.00Enterx(x>=0):21.3f(21.300000)=42.75常用数学库函数库函数C语言处理系统提供事先编好的函数,供用户在编程时调用。scanf(),printf(),exp()在相应的系统文件(头文件)中定义一些必需的信息。#include命令用户调用库函数时,将相应的头文件包含到源程序中。例如调用scanf,printf,需要#include<stdio.h>调用sqrt,需要#include<math.h>常用数学库函数平方根函数sqrt(x)

绝对值函数fabs(x)fabs(-3.56)的值为3.56幂函数pow(x,n):xnpow(1.1,2)的值为1.21(即1.12)指数函数exp(x):exexp(2.3)的值为e2.3以e为底的对数函数log(x):lnxlog(123.45)的值为4.815836以10为底的对数函数log10(x):log10xlog10(123.45)的值为2.091491。计算存款的本息输入存款金额money、存期year和年利率rate,根据公式计算存款到期时的本息合计sum(税前),输出时保留2位小数。sum=money(1+rate)yearsum=money*pow((1+rate),year)#include<stdio.h>#include<math.h>

intmain(void){intmoney,year;doublerate,sum;

printf(“Entermoney:");

scanf("%d",&money);

printf(“Enteryear:");scanf("%d",&year);

printf(“Enterrate:");scanf("%lf",&rate);sum=money*pow((1+

rate),year);printf("sum=%.2f",sum);return0;}Entermoney:1000Enteryear:

3Enterrate:

0.025sum=1076.89scanf("%d%d%lf",&money,&year,&rate);结构化程序设计思想结构化程序设计(StructuredProgramming)程序设计技术C语言是结构化程序设计语言强调程序

温馨提示

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

评论

0/150

提交评论