第04章 最简单的C程序设计_第1页
第04章 最简单的C程序设计_第2页
第04章 最简单的C程序设计_第3页
第04章 最简单的C程序设计_第4页
第04章 最简单的C程序设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

.,第四章最简单的C程序设计顺序程序设计,.,4.1C语句概述和其他高级语言一样,c语言的语句用来向计算机系统发出操作指令。一个程序应当包含若干语句。一个语句经编译后产生若干条机器指令。用来完成一定的操作。声明部分的内容不应称为语句。如:inta;不是一个c语句,它不产生机器操作,而只是对变量的定义。从第1章已知,一个函数包含声明部分和执行部分,执行部分即由语句组成。,.,一个C语言程序的组成可以描述如下:,C程序,源程序文件1,源程序文件2,源程序文件n,预处理命令,全局变量声明,函数1,函数n,函数首部,函数体,局部变量声明,执行语句,可以有若干个源程序文件,只允许有一个包含main函数的源程序文件,一个源文件可以有若干个函数和预处理命令以及全局变量声明部分组成,一个函数有函数首部和函数体组成,函数体由数据声明和执行语句组成,.,C语句可以分为以下5类:控制语句:可以控制程序的流程。if()else条件选择语句for()循环语句while()循环语句dowhile()循环语句continue结束本次循环语句break终止执行switch或循环语句switch多分支选择语句goto转向语句return从函数返回语句,.,函数调用语句由一次函数调用加一个分号构成。例如:printf(ThisisaCstatement.);表达式语句一个表达式加一个分号就构成了表达式语句,例如:a=3;i=i+1;空语句即只有一个分号“;”的语句复合语句用把一些语句(包括复合语句本身)包括起来成为复合语句,又称为“分程序”。例如:z=x+y;t=z/100;printf(%f,t);,.,4.2赋值语句,赋值语句是由赋值表达式加上一个分号构成例:a=100赋值表达式a=100;赋值语句C语言中的赋值号“=”是一个运算符赋值表达式可以包括在其他表达式之中条件表达式中不能含有赋值符号,但是赋值表达式可以包含于条件表达式中例:if(a=b)t=a;错误if(a=b)0)t=a;正确,.,4.3数据输入输出的概念及在C语言中的实现C语言本身不提供输入输出语句,输入和输出操作是通过“标准输入输出函数”实现,putchar(输出字符)、getchar(输入字符)、printf(格式输出)、scanf(格式输入)、puts(输出字符串)、gets(输入字符串)等。通过预编译命令来使用标准输入输出函数#include/在C函数库头文件目录中找或#include“stdio.h”/先在用户当前目录中找,然后按标准方式找,输入/输出操作过程,.,4.4字符数据的输入输出4.4.1putchar函数(字符输出函数)格式:intputchar(intc);功能:向终端输出设备输出一个字符。其中参数c可以是常量也可以是变量,可以是字符型数据(包括转义字符)也可以是整型数据。例如:4-1.c#includemain()chara,b,c;a=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);,.,4.4.2getchar函数(字符输入函数)格式:intgetchar(void);功能:从键盘输入一个字符,函数的返回值可以赋给相应的字符变量或整型变量,例如:#includemain()charc;c=getchar();putchar(c);,.,4.5格式输入输出4.5.1printf函数(格式输出函数)格式:intprintf(constchar*format,argument.);功能:按指定格式向终端输出若干个任意类型的数据。,printf(a=%db=%d,a,b);,函数名,格式说明,输出表列,format是用于输出数据格式说明,包括:格式说明,由“%”和格式字符组成,是将数据转换为指定的格式输出。如%d,%f等。普通字符,即需要原样输出的字符。例如“,”、空格、换行符等字符。输出表列是需要输出的数据,可以是表达式。,.,printf的格式字符,.,printf的附加格式说明字符,.,2.格式字符d格式符,输出10进制整型数据。%d,按数据的实际长度输出整型数据。%md,按m指定的长度输出整型数据。如果数据的位数小于m,则左端补空格,若大于m,则按实际位数输出。例如:printf(%4d,a);若a=123,则:123,12345%ld,输出长整型数据。%mld,按m指定的长度输出长整型数据。,.,o格式符,输出8进制无符号整数。格式字符:%o,%mo,%lo,%mlo例如:inta=-1;printf(%d,%8o,a,a);-1变量a在内存中为输出结果为:-1,177777,x格式符,输出16进制无符号整数。格式字符:%x,%mx,%lx,%mlx例如:inta=-1;printf(%12x,%8o,%d,a,a,a);输出结果为:ffff,177777,-1,.,u格式符,输出无符号十进制整数,格式字符:%u,%mu,%lu,%mlu例如:main()unsignedinta=65535;intb=-2;printf(a=%d,%o,%x,%un,a,a,a,a);printf(b=%d,%o,%x,%un,b,b,b,b);运行结果为:a=-1,177777,ffff,65535b=-2,177776,fffe,65534,.,c格式符,输出一个字符。%c,%mc一个整数,只要它的值在0255范围内,也可以以字符形式输出,在输出前,系统将整数作为ASCII码转换成相应的字符;一个字符数据也可以按整型数据形式输出。例如:main()charc=a;inti=97;printf(%c,%d,c,c);printf(%c,%d,i,i);运行结果为:a,97a,97,.,s格式符,用来输出一个字符串。几种不同用法如下:%s,例如:printf(%s,CHINA);%ms,输出的字符串占m列,若所输出的字符串的长度大于m,按字符串的实际长度输出;若串长小于m,右对齐,左补空格。%-ms,如果串长小于m,则在m列范围内,字符串左对齐,右补空格。%m.ns,输出占m列,但只取字符串的左端n个字符输出,若nm,则自动调整m=n。,.,%-m.ns,输出占m列,但只取字符串的左端n个字符输出,若nm,则自动调整m=n。printf(%3s,%7.2s,%.4s,%-5.3sn,CHINA,CHINA,CHINA,CHINA);输出结果为:CHINA,CH,CHIN,CHI其中%.4s,没有m,则自动使m=n=4。,.,f格式符,以小数形式输出实数。%f,不指定字段宽度,整数部分如数输出,并输出6位小数,但单精度有效位数为7位。floatx,y;x=111111.111;y=222222.222;printf(%f,%f,%f,x,y,x+y);运行结果为:111111.109375,222222.218750,333333.328125只有前7位数字是有效数字。%m.nf,指定输出m列,其中有n位小数。若数值长度小于m,则左端补空格。%-m.nf,指定输出m列,其中有n位小数。若数值长度小于m,则右端补空格。floatf=123.456;printf(%f%10f%10.2f%.2f%-10.2fn,f,f,f,f,f);输出结果如下:123.456001123.456001123.46123.46123.46,.,e格式符,以指数形式输出实数。可用形式如下:%e,不指定输出数据所占的宽度和数字部分小数位数,数值按规范化指数形式输出只有一位整数,由系统自动指定6位小数,指数部分占5位(如e+002),其中“e”占1位,指数符号占1位,指数占3位。例如:printf(%e,123.456);输出:1.234560e+002,.,%m.ne和%-m.ne,n指定小数部分的位数。若f=123.456,则:printf(%10e%10.2e%.2e%-10.2en,f,f,f,f,f);输出如下:1.234560e+0021.23e+0021.23e+0021.23e+00213列10列9列10列%10e没指定n小数位数,系统指定n=6,数据长度超过10列按实际长度输出%.2e没指定m,系统自动使m等于数据应占长度。,.,4.5.2scanf函数(格式输入函数)1.scanf函数的原型和一般调用格式intscanf(constchar*format,argument.);,scanf(a=%db=%d,函数名,格式说明,地址表列,scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。例如,如果a、b为整型变量,则scanf(%d,%d,scanf(%f,%f,%f,4.运行结果:3,4,6a=3.00,b=4.00,c=6.00s=6.50area=5.33,.,例4.11从键盘输入一个大写字母,要求改用小写字母输出1.问题分析:分析ASCII编码中大小字母之间的关系为:小写字母=大写字母+32。2.N-S流程图描述算法:,输入大写字母赋给c1,输出c1中的大写字母和ASCII编码值,将输入的大写字母改为小写赋给c2,输出c2中的小写字母和ASCII编码值,.,3.源程序代码:#includevoidmain()charc1,c2;c1=getchar();printf(%c,%dn,c1,c1);c2=c1+32;printf(%c,%dn,c2,c2);4.运行结果:AA,65a,97,.,例4.12求ax2+bx+c=0方程的根。a,b,c由键盘输入,设b2-4bc01.问题分析:一元二次方程式的根为:x1=(-b+b2-4ac)/2a,x2=(-b-b2-4ac)/2a可以将上面的分式分为两项:p=-b/2a,则:x1=

温馨提示

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

评论

0/150

提交评论