




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章简单的C程序设计4.1C语言基本语句(1)表达式语句表达式语句由一个表达式加一个分号构成,其一般形式为:表达式;C语言语句可以分为五大类:例如:a=3.5;i++;t=t+1;x+y;(2)函数调用语句函数调用语句由一次函数调用加一个分号构成,其一般形式为:函数名(实参表);例如:printf(“THISISAEXAMPLE”);
clrscr();y=exp(x);必须将数学函数的头文件包含到源程序中。
#include“math.h”(3)控制语句
控制语句是用来完成一定的控制功能的。
C语言有九种控制语句,它们是:
(1)if()~~else~~(条件语句)(2)switch(多分支选择语句)
(3)for()~~(循环语句)(4)while()~~(循环语句)(5)do~~while()(循环语句)(6)continue(结束本次循环语句)(7)break(终止执行switch语句)(8)goto
(转向语句)(9)return(从函数返回语句)(4)空语句只有一个分号的语句称为空语句,其一般形式为:
;例如:if(a>=0);elsea=-a;这是求的什么?a的绝对值(5)复合语句
复合语句就是将若干条C语句用花括号“{”和“}”括起来其一般形式为:{语句1;语句2;
…
语句n;
}
例:两数交换{x=a;
a=b;
b=x;
}试比较:
Main(){int
a,b,x;a=2;b=5;if(a>b){x=a;
a=b;
b=x;}Main(){int
a,b,x;a=2;b=5;if(a>b)x=a;
a=b;
b=x;}a=2;b=5a=5;b=随机4.3数据输入输出的概念及在c语言中的实现1、C语言输入输出操作由标准函数库中的输入输出函数实现。2、C语言中的标准输入输出函数有:
putchar(输出字符)
getchar(输入字符)
printf(格式输出)
scanf(格式输入)
puts(输出字符串)
gets(输入字符串)3、标准输入输出库函数包含在头文件stdio.h中,使用时需将它包含进来:
#include“stdio.h”printf和scanf函数可省略4.4字符数据输入输出一、字符输出函数putchar()
把一个字符从标准输出设备上输出。一般形式为:putchar(c);
其中C可为字符型变量、整型变量、字符型常量、整型常量、表达式。注意1.
putchar()是标准函数,在“stdio
h”函数库中,因此,如果在程序中调用了该函数,必须在程序开始处加上如下语句:
#include“stdio
h”2.
putchar()一次只能输出一个字符输出字符:#include“stdio.h”main(){chara,b,c;
scanf(“%c%c%c”,&a,&b,&c);
putchar(a);
putchar(b);
putchar(c);}标准函数说明二、字符输入函数getchar()
getchar()函数的作用是把一个字符从标准的输入设备上输入。其一般调用形式为:getchar()
例如:#include“stdio.h”main(){charc;c=getchar();
putchar(c);putchar(‘\007’);}chara=‘1’,c;c=getchar(a);wrongchara=‘1’,c;c=getchar();getchar()还经常可用在表达式中如:我们希望输入并打印一串字符以‘?’结束:
while((c=getchar())!=‘?’)
printf(“%c“,c);一、格式输出函数printf()printf()的作用就是按照指定格式向终端设备输出数据其一般调用形式为:printf(格式控制,输出表列);格式控制是以双引号括起来的字符串,它规定了输出项输出的格式输出表列由一个或多个输出项组成,当有多个输出项时,输出项之间用“,”分隔。每一个输出项可以是变量、常量或表达式。4.5、格式输入与输出格式控制包括:格式说明和普通字符。格式说明:格式说明由%及格式字符组成,如%d、%f。普通字符:普通字符就是要原样输出的字符。printf(“num1=%d,num2=%d\n”,num1,num2);普通字符格式说明输出项表若num1=1,num2=2,则输出结果为:num1=1,num2=2_格式说明的个数、类型要与输出项表中的输出项的个数、类型相匹配。格式说明按从左至右的顺序与输出项表中的输出项配对。格式字符整型数据的输出d——以十进制形式输出u——以十进制形式输出无符号整数o——以八进制形式输出x——以十六进制形式输出
例:
inti=65;
printf(“%c,%d,%u,%x,%o\n”,i,i,i,i,i);
输出:A,65,65,41,101
例:
intk=-1;
printf(“%d,%u\n”,k,k);
000000000000000111111111111111101111111111111111输出:-1,655535
实型数据的输出f——以小数形式输出。e——以指数形式输出。g——根据数值的大小,自动选择以f或e格式输出,其原则是选择输出时占宽度较小的一种,且不输出无意义的零。例如:
floatf=123.123;
printf(“%f,%e,%g”,f,f,f);输出结果为:123.123001,1.23123e+02,123.1231.
%f使整数部分如数输出,小数占6位。
%e按标准化指数形式输出,即小数点前有且只有一位非零数字,小数点后5位小数,指数部分占4位(如e+02),其中“e”占1位,指数符号占1位,指数占2位。2.
双精度实数也用%f格式输出。单精度实数的有效位为7位;
双精度实数则为16位;main(){floata,b;doublex,y;a=111111.111;b=222222.222;x=1111111111111.111111111;y=2222222222222.222222222;
printf(“a+b=%f,x+y=%f”,a+b,x+y);}输出结果为:a+b=333333.328125,x+y=3333333333333.333010main(){floata=10.4,b=2.5;
printf(“a=%f,b=%f\n”,a,b);
printf(“a+b=%f\n”,a+b);
printf(“a-b=%f\n”,a-b);
printf(“a*b=%f\n”,a*b);
printf(“a/b=%f\n”,a/b);}输出结果为:a=10.400000,b=2.500000a+b=12.900000a-b=7.900000a*b=25.999999a/b=4.160000设有两个浮点数a=10.4,b=2.5,编写程序分别计算:(1)a+b(2)a-b(3)a*b(4)a/b字符型数据的输出c——输出单个字符s——输出一个字符串例如:charc=‘a’;
printf(“%c,%s”,c,“CHINA”);输出结果为:a,CHINA附加格式说明符用途:确定输出的宽度、精度、小数位数、对齐方式。位置:在%与格式字符间。1.控制字段宽度
m:指定输出最小宽度为m。若数据不足m位,则左端补空格;若大于m位,则按实际位数输出。
如:printf(“%3d”,21);printf(“%3d”,2134);
输出:2121340m:指定输出的最小宽度为m,
若数据不足m位,则左端补0。
如:printf(“%03d”,21);
输出:021m.n:m为输出的总宽度;
n表示输出的小数位数;对字符串表示截取的字符个数。如:printf(“%7.2d”,3.1415926);
输出:3.14
如:printf(“%5.3s”,”COMPUTER”);
输出:COM*:宽度由紧跟在控制字符串后面的常量或变量的值确定。例如:inti=15;
printf(“%*d\n”,8,i);/*表示以字段宽度8输出整型变量i*/
输出:15例如:intk=6,num=33;
printf(“%*d\n”,k,num);/*表示以字段宽度6输出整型变量i*/输出:33main(){inti=65;floatx=3.14159;printf(“%5d\n”,i);printf(“%05d\n”,i);
printf(“%*d\n”,5,i);printf(“%7.5f\n”,x);printf(“%7.4f\n”,x);}输出结果为:6500065653.141593.1416控制对齐方式–
:左对齐;否则:右对齐;例如:
inti=15;
printf(“%–8d\n”,i);输出:15printf(“%8d\n”,i);输出:15例如:intk=8567;printf(“|%-06d|\n”,k);输出:A、|008567|B、|8567|C、|856700|D、|8567|Disright!字符“l”l:输出长整型数据如:%ld——输出长整型
%lf——输出双精度型使用printf()函数时的注意事项当格式字符少于输出项时,多余的输出项不予输出;当格式字符多于输出项时,将输出不定值;如:printf(“c=%cf=%f”,c,f,g);
printf(“x=%ds=%f”,x);例如:longu=51274;printf(“%ld”,u);2.格式说明总是以%开头,以9个格式字符之一为结束,
中间可以插入附加格式字符。若某个格式字符不在%之后,则视其为普通字符。如:
printf(“c=%cf=%fd=%ds=%s”,c,f,d,s);
3.如果想输出字符“%”,则应在格式字符串中用连续两个%表示。
如:printf(“%f%%\n”,1.0/3);
输出:0.333333%4.格式字符一律用小写字母,如%d不能写成%D二、格式输入函数scanf()作用:把从终端上输入的数据传送给对应的变量。调用形式:scanf(格式控制,输入项地址表);例如:
scanf(“%d%d%d”,&a,&b,&c);&——取地址运算符&a——指变量a所在的内存地址输入数据时,以空格、tab键或回车键分隔1.格式说明输入格式字符附加格式字符可以指定输入数据所占列数,系统自动按它截取所需数据。如:scanf(“%3d%3d”,&a,&b);当输入123456时,系统会自动将123给a,456给b在scanf()中不能规定输入数据的精度则scanf(“%7.2f”,&a);
是不符合C语言语法的“*”附加符用来表示跳过相应的数据例如:scanf(“%d%*d%d”,&a,&b);当从键盘输入:1234567则a=12b=67在scanf()函数执行中,
输入数据时应注意的几个问题:1.如果在“格式控制”字符串中出现普通字符,则在执行中输入数据时应照原样输入。例如:scanf(“%d,%d”,&a,&b);输入时应输入如下形式:3,4若输入34
则是错误的又如:
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);输入形式应为如下:a=12,b=24,c=362.在用“%c”格式输入字符时,空格字符和转义字符都作为有效字符。例如:scanf(“%c%c%c”,&c1,&c2,&c3);如输入:abc则c1=‘a’c2=‘’c3=‘b’正确输入法:abcscanf(“%d”,&x);……if(x==3){printf(“请输入字符”);
scanf(“\n%c”,&a);if(a>=’a’&&a<=‘z’)a-=32;elsea+=32;}scanf(“%d”,&x);……if(x==3){printf(“请输入字符”);
scanf(“%c”,&a);if(a>=’a’&&a<=‘z’)a-=32;elsea+=32;}scanf(“%d”,&x);……if(x==3){printf(“请输入字符”);
scanf(“%c%c”,&t,&a);if(a>=’a’&&a<=‘z’)a-=32;elsea+=32;}scanf(“%d”,&x);……if(x==3){printf(“请输入字符”);
scanf(“%*c%c”,&a);if(a>=’a’&&a<=‘z’)a-=32;elsea+=32;}当我们输入3<换行>后,程序并没有等待第二次输入,为什么?此时x为多少,a为多少?x=3,a=‘\n’如何修改?三、简单程序设计的基本方法1.分析问题
(1)已知条件:(2)所求结果:(3)解决办法:(如何由已知条件得到所求结果)2.解决问题
(1)程序中所需的变量(变量名、类型)
(2)算法的描述步骤
(3)输入输出语句的形式
(4)写程序(按照C语言程序的基本结构将上述分析的问题逐一写出即可)变量定义输入语句算法的描述输出语句main(){}标准函数说明符号常量定义例1:求方程ax2+bx+c=0的根,a,b,c由键盘输入,(设b2-4ac0)1.分析问题
(1)已知条件:三个系数a,b,c(2)所求结果:方程的两个根x1,x2(3)解决办法:(如何由已知条件得到所求结果)
根据求根公式:假设其中变量a、b、c、x1、x2、p、q、disc均为实型2.解决问题
(1)程序中所需的变量(变量名、类型)三个系数a,b,c、方程的两个根x1,x2及中间变量
p、q、disc均为实型。(2)算法的描述步骤先判断disc
再决定是否求根
disc>=0if()disc<0else求根显示无实根
(3)输入输出语句的形式输入三个系数:scanf(“%f%f%f”,&a,&b,&c);
输出方程两根:printf(“x1=%.2f\nx2=%.2f\n”,x1,x2);变量定义输入算法main(){
}4、写程序:#include“math.h”if(b*b-4*a*c>=0){p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;}elseprintf(“norealroot\n”);floata,b,c,p,q,disc,x1,x2;scanf(“%f%f%f”,&a,&b,&c);输出printf(“x1=%.2f\nx2=%.2f\n”,x1,x2);例2:从键盘输入三角形的三条边长,求三角形的面积.1.分析问题
(1)已知条件:三角形的3条边长
(2)所求结果:三角形的面积
(3)解决办法:(如何由已知条件得到所求结果)
根据三角形的面积公式:其中2.解决问题
(1)程序中所需的变量(变量名、类型)三角形的三条边长分别用变量a、b、c均为实型三角形的面积用变量area为实型半周长用变量p为实型
(2)算法的描述步骤先求p
再求area
(3)输入输出语句的形式输入三条边长:scanf(“%f%f%f”,&a,&b,&c);
输出三角形面积:printf(“area=%f\n”,area);floata,b,c,p,area;scanf(“%f%f%f”,&a,&b,&c);p=(a+b+c)/2;area=sqrt(p*(p-a)*(p-b)*(p-c));printf(“area=%f\n”,area);main(){}#include“math.h”(4)写程序Printf、scanf
练习题例如:
floatf=123.456;printf(“%f,%10f,%10.2f,%.2f\n”,f,f,f,f);printf(“%e,%10e,%10.2e,%.2e\n”,f,f,f,f);printf(“%3s,%7.2s,%.4s\n”,“CHINA”,“CHINA”,“CHINA”);
结果为:输出123.456001,123.456001,123.46,123.461.23456e+02,1.23456e+02,1.2e+02,1.2e+02CHINA,CH,CHIN
请大家自己用附加格式输出:
*
*******main(){chars='*',k='';
printf("%c%c%c%c%c\n",k,k,k,k,s);
printf("%c%c%c%c%c%c\n",k,k,k,s,k,s);
printf("%c%c%c%c%c%c%c\n",k,k,s,s,s,s,s);}main(){chars='*';printf("%5c\n",s);printf("%4c%2c\n",s,s);printf("%3c%c%c%c%c\n",s,s,s,s,s);}main(){charc=‘a’;
inti=65;floatx=347.25;
printf(“%c,%d\n”,c,c);
printf(“%c,%d,%u,%x,%o\n”,i,i,i,i,i);
printf(“%f,%e,%g\n”,x,x,x);}输出结果为:a,97A,65,65,41,101347.250000,3.47250e+02,347.25看结果main(){chars='*',k='';
printf("%c%c%c%c%c\n",k,k,k,k,s);
printf("%c%c%c%c%c%c\n",k,k,k,s,k,s);
printf("%c%c%c%c%c%c%c\n",k,k,s,s,s,s,s);}输出:**_**************************************
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 24《“诺曼底号”遇难记》教学设计-2023-2024学年统编版语文四年级下册
- 新疆2025年新疆和田学院招聘135人笔试历年参考题库附带答案详解
- 2025至2030年中国自控远红外电焊条烘干炉数据监测研究报告
- 《第9课 认识COOL 3D》教学设计教学反思-2023-2024学年小学信息技术人教版三起五年级上册
- 2025至2030年PE防静电气泡袋项目投资价值分析报告
- 石材购进合同范本
- 梯形的认识(教学设计)-2024-2025学年四年级上册数学人教版
- 2025年涂装防静电产品项目建议书
- 中国炉用油项目投资可行性研究报告
- 2025至2030年中国非标自动化机械数据监测研究报告
- 一岗双责评价细则范本
- 古典文献的校勘(下)
- 新视野大学英语(第四版)读写教程4(思政智慧版)课件 Unit1 Urban development Section A
- 卫生部病历质量评价标准
- 第2章 Windows 10操作系统
- 纳税人进项税额分摊方式备案报告表(样本)
- GPS公交车报站器使用说明书V
- 乘坐地铁安全指南(课件)-小学生主题班会通用版
- 建筑智能化系统介绍08685课件
- 中建(轮扣架)模板工程施工方案
- GB/T 17421.2-2023机床检验通则第2部分:数控轴线的定位精度和重复定位精度的确定
评论
0/150
提交评论