版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
会计学1第顺序结构程序设计2/42C语言的语句概述:C程序对数据的处理是通过“语句”的执行来实现的。一条语句完成一项操作(或功能)。一个为实现特定目的的程序应包含若干条语句。C语句以“;”作分隔符,编译后产生机器指令.第1页/共45页3/42C语句分类:4、空语句:;执行该语句不做任何操作1、程序控制语句(9种):if()~else~switchfor()~while()~do~while()continuebreakgotoreturn分支循环辅助控制如total=total+limit;a=3;func();printf(“Hello,world!\n”);3、表达式语句:表达式加分号构成。2、函数调用语句:由一次函数调用加一个分号构成5、复合语句:用{…}括起来的一组语句一般形式:
{[数据说明部分;]
执行语句部分;
}说明:“}”后不加分号语法上和单一语句相同复合语句可嵌套9种控制语句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn功能:计算表达式的值或改变变量的值。分类:运算符表达式语句赋值语句例:5;i++;语句的功能是,变量i的值增1。a=3,b=a+2,c=a+1;/*由三个赋值语句组成的逗号表达式语句。*/
a+b; /*算术表达式语句,计算a与b之和。*/赋值语句由赋值表达式加上一个分号构成如:a=15;b=a+5;c=d=e=a;
说明:赋值号左面必须为变量 赋值号右面可以是任何合法的表达式赋值号=为运算符注意:不加分号为赋值表达式Y=sin(1.12);Y1=sin(x);Y2=3*sin(x+1.12)+sqrt(x);Y3=sin(sqrt(x+1.12));#include<stdio.h>#include<math.h>main(){inta=2,b=4;floatx,y;x=a/2+sqrt(b);/*x=3.0*/a++;/*a=3*/y=x*a;/*y=9.0*/printf(“x=%6.2f,y=%6.2f”,x,y);}注意表达式类型转换注意赋值类型输出结果:
x=3.00,y=9.00格式:函数名(参数列表);分类:标准库函数用户定义函数标准库函数调用原则:(1)要在程序中包含相应的头文件(2)调用的一般形式:函数名(参数列表);第2页/共45页4/42例3-1:#include〈stdio.h〉main(){intx=1,y=2;{intx=2;{intx=3;printf(″x=%d,y=%d\n″,x,y);}printf(″x=%d,y=%d\n″,x,y);}printf(″x=%d,y=%d\n″,x,y);}程序运行结果为:x=3,y=2x=2,y=2x=1,y=2第3页/共45页5/423.2数据的输入与输出C语言本身不提供输入/输出语句。C语言的输入/输出功能由C语言的标准I/O库函数提供。
#include<stdio.h>C语言的输入/输出库函数名称不是保留字(或称关键字)。如printf,scanf。第4页/共45页6/42#include<stdio.h>main(){intc;chara;c=65;a='B';putchar(c);putchar('\n');putchar(a);}运行结果:AB例3.2.1字符的输入与输出字符输出函数格式:putchar(c)参数:c为字符常量、字符型变量、整型变量、常量或表达式功能:把字符c输出到显示器上返值:正常,返回输出字符的ASCII码值第5页/共45页7/42例3-2:#include<stdio.h>程序运行结果为:ABBCmain(){inta=65;charb=‘B’;putchar(a);putchar(65+1);putchar(b);putchar(‘B’+1);}第6页/共45页8/42格式:getchar()功能:从键盘读一字符返值:正常,返回读取字符的ASCII码值字符输入函数
例#include<stdio.h>main(){intch;ch=getchar();putchar(ch);}运行时,输入如下:A运行结果:A第7页/共45页9/42注意:调用函数getchar时,程序执行被中断,等待用户从键盘输入数据。当用户键入字符并敲回车键以后,程序继续运行。若用户输入字符后未按回车键,则键入的内容一直保留在键盘缓冲区中,只有用户键入回车键后,字符输入函数getchar才进行处理。函数getchar将回车键作为一个字符读入。如果程序中有两个以上函数getchar时,应该一次性输入所需字符,最后再按回车键。无论输入的是英文字母或标点符号还是数字,都是作为字符输入。第8页/共45页10/423.2.2格式输出函数格式:printf(“格式控制字符串”,输出项列表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数输出表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息格式说明:%[修饰符]格式字符,用于指定输出格式普通字符或转义字符:原样输出第9页/共45页11/42例3-3#include"stdio.h"voidmain(){inta=97,b=98;printf("1:%d%d\n",a,b);/*普通字符,原样输出*/printf("2:%d,%d\n",a,b);/*a,b以十进制整数形式输出*/printf("3:%c,%c\n",a,b);/*a,b以字符形式输出*/printf("4:a=%d,b=%d",a,b);}程序运行结果为:1:97982:97,983:a,b4:a=97,b=98inti=97;
charch=‘a’;
printf(“i=%d,%c\n”,i,i);
两个输出项都是变量i,但以不同的格式输出,一个是输出的整型数,一个输出的是字符a.其格式是由,%d与%c控制的.
i=97,a输出结果第10页/共45页12/42格式说明字符:%[修饰符]格式字符.n对实数,指定小数点后位数(四舍五入)对字符串,指定实际输出位数修饰符功能m输出数据域宽,数据长度<m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐)-输出符号(正号或负号)+输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导0,0x#表示按短整型量输出按长整型量输出,可在d,o,x,u前hl第11页/共45页13/42d,ix,Xoucse,Efg%格式字符:十六进制无符号整数不带符号十进制整数十进制整数标准指数形式实数单一字符字符串八进制无符号整数小数形式实数e和f中较短一种百分号本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.67789e+02567.789000567.789%说明 格式字符要用小写格式字符与输出项个数应相同,按先后顺序一一对应输出转换:格式字符与输出项类型不一致,自动按指定格式输出例
main(){unsignedintu=65535;printf(”u=%d\n",u);}
输出结果:u=-1例inta=3,b=4;printf(“%d%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);
例inta=3,b=4;printf(“%d%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);输出结果:34a=3,b=4111111111111111165535第12页/共45页14/42例如:printf("%d\n",100);100printf("%5d\n",100);100100printf("%8d\n%8d″,100,100*100);1001001001000010010010010000第13页/共45页15/42例如:printf("%o\n",-1);177777printf("%x,%X\n",-1,-1);177777ffff,FFFFprintf("%u,%d",-1,-1);177777ffff,FFFF65535,-1第14页/共45页16/42printf("%4c,%c\n",'A','A');printf("%-8s,%8.2s","Name","Name");
A,A例如:
A,AName----,------Na第15页/共45页17/42printf("%f\n%10.3f\n",100.7654321,100.7654321);printf("%e\n%10.9e",100.7654321,100.7654321);m.n例如:100.765432
100.765100.765432100.7651.00765e+021.00765432e+02第16页/共45页18/42例:实型数据#include<stdio.h>main(){floatx,y,z;doublea,b;x=111111.111;y=222222.222;z=123.456;a=1111111111111.111111111;b=2222222222222.222222222;printf(“%f\n%f\n”,x+y,a+b);printf(“%10f,%10.2f\n”,z,z);printf(“%e\n”,z);printf(“%g\n”,z);}输出为:333333.3281253333333333333.333010123.456001,□□□□123.461.23456e+02123.456□□□第17页/共45页19/42例inta=1234;floatf=123.456;printf(“%08d\n”,a);printf(“%010.2f\n”,f);printf(“%0+8d\n”,a);printf(“0+10.2f\n”,f);例0、+例inta=123;printf(“%o,%#o,%X,%#X\n”,a,a,a,a);
例#例longa=65536;printf(“%8ld\n”,a);
例l//00001234//0000123.46//000+1234//000+123.56//173,0173,7B,0X7B//65536第18页/共45页20/42#include"stdio.h"voidmain(){inta=3,b=4;printf("%d\n",(a=b,b,a+3));/*输出序列是一个逗号表达式*/printf("%d\n",a=b,b,a+3);/*输出第一个参数变量a的值*/}例:输出结果为:74第19页/共45页21/423.2.3格式输入函数格式:scanf(“格式控制串”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束返值:正常,返回输入数据个数地址表:变量的地址,常用取地址运算符&格式字符:d,i,o,x,u,c,s,f,e例scanf(“%d”,&a);
输入:10
则a=10例scanf(“%x”,&a);
输入:11
则a=17第20页/共45页22/42格式控制字符:(1)组成:普通字符、格式说明。普通字符:格式说明:键盘输入时,要按原样输入,一般起分隔或提示作用。但分隔或提示作用若由用户输入,就失去了本来的意义,一般采用printf来实现。%[*][m][h|l]type第21页/共45页23/42附加格式说明符(修饰符)l修饰符功能hm*用于d,o,x前,指定输入为short型整数用于d,o,x前,指定输入为long型整数用于e,f前,指定输入为double型实数指定输入数据所占宽度(列数),为正整数表示本输入项读入后不赋给相应的变量例scanf(“%4d%2d%2d”,&yy,&mm,&dd);
输入19991015
则1999yy,10mm,15dd例scanf(“%3d%*4d%f”,&k,&f);
输入12345678765.43
则123k,8765.43f例scanf(“%2d%*3d%2d”,&a,&b);
输入1234567
则12a,67b例scanf(“%3c%2c”,&c1,&c2);
输入abcde
则‘a’c1,‘d’c2第22页/共45页24/42scanf(“i=%d",&i);printf(“i=%d",i);scanf("%d%d%d",&a,&b,&c);i=30↙输入i=30输出i=30↙输入i=30输出123↙或1↙2↙3↙1,2,3↙错第23页/共45页25/42scanf(“%d,%d,%d”,&a,&b,&c);1,2,3↙123↙错scanf(“%d,%*d,%d”,&a,&b);1,2,3↙123↙错1,2,3↙a=1b=31,2,3↙123↙错1,2,3↙a=1b=31.01.01.0↙1.01.01.0错a=1.0b=1.0scanf(“%f%f%*f”,&a,&b);第24页/共45页26/42输入分隔符的指定默认数据分隔符:空格、TAB或回车键普通字符:格式串中两个格式符间字符,必须原样输入例scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);
输入123123123输出a=123,b=83,c=291例scanf(“%d:%d:%d”,&h,&m,&s);
输入12:30:45
则12h,30m,45s例scanf(“%d,%d”,&a,&b)
输入3,4
则3a,4b例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
输入a=12,b=24,c=36第25页/共45页27/42说明:用“%c”格式符时,空格和转义字符作为有效字符输入如scanf(“%c%c%c”,&c1,&c2,&c3);
若输入abc
则ac1,
c2,bc3输入数据时,遇以下情况认为该数据结束:遇空格、TAB、或回车遇宽度结束遇非法输入如scanf(“%d%c%f”,&a,&b,&c);
若输入1234a123o.26
则1234a,‘a’b,123c第26页/共45页28/42例3-6:#include"stdio.h"voidmain(){inta,b;printf("inputa,b:");scanf("%d%d",&a,&b);printf("a=%d,b=%d",a,b);}
inputa,b:7⊔8↙a=7,b=8第27页/共45页29/42(4)注意事项:scanf()的格式控制字符串中没有转义字符。如scanf(“%d\n”,&a);是错误的。scanf()的格式控制字符串中的普通字符不是用来显示的,而是输入时要求照普通字符输入的。scanf()中参数的第二部分一定是地址列表,不能是表达式。第28页/共45页30/423.3顺序程序设计举例例3.1输入圆的半径,输出圆的周长和面积。分析:(1)定义实型变量r,l,s用于存放半径、周长、面积;(2)调用输入函数,输入r;(3)分别利用周长公式和面积公式求出l,s;(4)调用输出函数输出l,s。程序:#include<stdio.h>voidmain(){floatr,l,s;
scanf(“%f”,&r);
l=2*3.14159*r;s=3.14159*r*r;
printf(“l=%8.4f\n”,l);
printf(“s=%8.4f\n”,s);}#include<stdio.h>voidmain(){floatr;
scanf(“%f”,&r);
printf(“l=%8.4f\n”,2*3.14159*r);
printf(“s=%8.4f\n”,3.14159*r*r);}第29页/共45页31/42例3.2输入三个字符,将它们反向输出。分析:(1)定义三个字符变量ch1,ch2,ch3;(2)调用字符输入函数,输入三个字符依次存于ch1,ch2,ch3;(3)按ch3,ch2,ch1顺序输出三个字符。程序:#include<stdio.h>voidmain(){charch1,ch2,ch3;
ch1=getchar();
ch2=getchar();ch3=getchar();
putchar(ch3);putchar(ch2);putchar(ch1);
}第30页/共45页32/42例3.3用格式输入函数输入三个字符,并用输出函数反向输出三个字符和它们的ASCII码。程序:#include<stdio.h>voidmain(){charch1,ch2,ch3;
scanf(“%c%c%c”,&ch1,&ch2,&ch3);
printf(“%c,%d\n”,ch3,ch3);
printf(“%c,%d\n”,ch2,ch2);printf(“%c,%d\n”,ch1,ch1);}第31页/共45页33/42例3.4输入任意三个整数,求它们的平均值。程序:#include<stdio.h>voidmain(){intnum1,num2,num3;
floataverage;printf(“Pleaseinputthreenumbers:”);
scanf(“%d,%d,%d”,&num1,&num2,&num3);average=(num1+num2+num3)/3.0;printf(“average=%7.2f\n”,average);}思考:能否将average=(num1+num2+num3)/3.0改为average=(num1+num2+num3)/3?注意数学表达式到C语言表达式的转换第32页/共45页34/42例3-5:输入两个整数a、b,将它们交换,例如a为3,b为5,交换后a为5,b为3。#include"stdio.h"voidmain(){inta,b,t;/*t就相当于空杯子*/scanf(“%d,%d”,&a,&b);printf(“a=%d,b=%d\n”,a,b);/*观察原来的值*/t=a;a=b;b=t;printf("a=%d,b=%d\n",a,b);/*观察交换后的值*/}用于交换变量a、b的方法通常称为两两交换法。第33页/共45页35/42例3.6求方程ax2+bx+c=0的实数根。程序:#include<stdio.h>#include<math.h>voidmain(){floata,b,c,disc,x1,x2;printf(“inputa,b,c:”);scanf(“%f,%f,%f”,&a,&b,&c);disc=b*b-4*a*c;x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf(“x1=%6.2f\nx2=%6.2f\n”,x1,x2);}第34页/共45页36/42例3.7从键盘输入一个小写字母,用大写形式输出该字母。程序:#include<stdio.h>voidmain(){chara;printf(“inputalowercaseletter:”);a=getchar();a=a-32;
printf(“%c\n”,a);}第35页/共45页37/42计算机中数的表示及进制转换数码、基与权数码:表示数的符号基:数码的个数权:每一位所具有的值数制预备知识第36页/共45页38/42数制基权表示数码特点10º,10¹,10²,…十进制数0~910逢十进一二进制数0~122º,2¹,2²,…逢二进一八进制数0~788º,8¹,8²,…逢八进一十六进制数0~9,A~F,a~f1616º,16¹,16²,…逢十六进一十进制:4956=410³+910²+510¹+610º二进制:1011=12³+02²+12¹+12º十六进制:81AE=816³+116²+1016¹+1416º八进制:4275=48³+28²+78¹+58º第37页/共45页39/42各种进制之间的转换二进制、八进制、十六进制转换成十进制
方法:按权相加第38页/共45页40/42
二进制、八进制、十六进制转换成十进制十进制转换成二进制、八进制、十六进制方法:连续除以基,从低到高记录余数,直至商为0例把十进制数459转换成十六进制数4591628161160(459)10=(1CB)161CB
余11余12余1各种进制之间的转换(整数)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度变更离婚协议书后子女探望权安排合同
- 2024年度技术开发合同:新能源动力装置的研发与技术共享协议
- 04版技术研发与转让合同:某科研机构与科技公司之间的合同
- 2024年度教育培训服务与课程定制合同
- 2024年度新能源发电设备采购与安装合同
- 脚踏车支架市场发展现状调查及供需格局分析预测报告
- 2024年度医疗设备购买与维护服务合同
- 掷环游戏用铁圈市场发展现状调查及供需格局分析预测报告
- 2024年度物业服务合同服务质量保证
- 贵金属及其合金制塑像市场需求与消费特点分析
- 代办消防验收合同范本共22024年
- 福建省漳州市十校联盟2024-2025学年高一上学期11月期中考试 数学 含解析
- 电缆隧道施工合同
- 2023年中考英语模拟卷(河南专用)(原卷版)
- 云盘web客户端用户使用手册
- 2023年曲靖市中医医院招聘考试真题
- 吉林省松原市前郭县南部学区2024~2025学年度七年级上期中测试.名校调研 生物(含答案)
- 2024年盘锦北方沥青股份限公司招聘18人高频难、易错点500题模拟试题附带答案详解
- 2024年经济师考试-中级经济师考试近5年真题附答案
- 《算法设计与分析基础》(Python语言描述) 课件 第3章基本算法设计方法1
- 分级护理制度2024护理分级制度
评论
0/150
提交评论