c程序设计初步实用_第1页
c程序设计初步实用_第2页
c程序设计初步实用_第3页
c程序设计初步实用_第4页
c程序设计初步实用_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

会计学1c程序设计初步实用本讲内容2.4.2输入输出的复杂格式控制2.4.3字符/字符串数据的输入和输出2.5C语句概述第1页/共58页2.4.2输入输出的复杂格式控制1.输出的复杂格式控制printf函数调用形式:功能1:按原样输出字符串。printf(“字符串”);功能2:按格式说明符输出对应的数据项。

printf("%格式说明符",输出项列表);

printf("a=%d,b=%f\n",a,b)第2页/共58页inta=1;floatb=2;printf("a=%d,b=%f\n",a,b)变量a对应格式符为%d变量b对应格式符为%f非格式符原样输出,\n是转义字符格式控制字符串输出数据列表1.输出的复杂格式控制

第3页/共58页常用的printf格式符第4页/共58页例

整型数据的输出#include"stdio.h"voidmain(){inta=15,b=-20;longc=45;printf("1:%d%o%x%u\n",a,a,a,a);printf("2:%d%d\n",a,b);printf("3:%d%ld\n",a,c);}程序运行结果为:1.输出的复杂格式控制

第5页/共58页例printf("%d\n%u\n%x,%X,%o\n",

10,10,10,10,10);printf("%d\n%u\n%x,%X,%o\n",-1,-1,-1,-1,-1);1010a,A,121.输出的复杂格式控制

第6页/共58页数据在计算机中的存储----补码补码的最高位为符号位正数最高位为0,负数最高位为1正数的补码就是它本身例如:1的补码(若为短整型,2个字节)0000000000000001负数的补码例如:-1的补码(若为短整型,2个字节)先求它的绝对值为10000000000000001按位取反1111111111111110最低位加1-1的补码是1111111111111111第7页/共58页例

负数的输出printf("%d\n%u\n%x,%X,%o\n",-1,-1,-1,-1,-1);-1的补码是:1111111111111111-165535ffff,FFFF,1777771.输出的复杂格式控制

第8页/共58页例整型和字符型的输出#include"stdio.h"voidmain(){inta=97,b=98;printf("1:%d%d\n",a,b);printf("2:%d,%d\n",a,b);printf("3:%c,%c\n",a,b);printf("4:a=%d,b=%d",a,b);}程序运行结果为:1.输出的复杂格式控制

第9页/共58页例

实型数据的输出#include"stdio.h"voidmain(){floata=1.2,b=-12.3456789;doublec=12.58;printf("1:%f%f%lf\n",a,b,c);printf("2:%e%e\n",a,b);}程序运行结果为:1.输出的复杂格式控制

第10页/共58页常用的printf的附加格式说明

第11页/共58页例

指定数值型输出域宽printf("%d\n",100);printf("%5d\n",100);printf("%8d\n%8d″,100,100*100);0010010010000100100100100001001001001001printf("%-5d\n",100);1.输出的复杂格式控制

第12页/共58页charc='A';printf("%4c,%c%d\n",c,c,c);56A,A

例指定字符型输出域宽1.输出的复杂格式控制

第13页/共58页printf("%f\n%10.3f\n%6.3f\n",a,a,a);100.765404100.765100.765floata=100.7654;例

指定精度

宽度不够,整数部分原样输出。1.输出的复杂格式控制

第14页/共58页【学生项目案例2-1

】某学生在“学生信息管理系统”中查询学生信息,系统需要显示学生的学号、姓名、性别和课程的成绩等信息。阅读下面程序,理解不同类型数据的输出方式。#include<stdio.h>voidmain(){

char*pnum="20080901",*pname="汪涵";/*指针可以指向字符串常量*/

charx='f';

intkc1=70,kc2=82;

printf("%s,%s,%c,%d,%d\n",pnum,pname,x,kc1,kc2);}第15页/共58页printf("%%d",90);

printf("%%%d",90);0010010010000100100100109%d%例

特殊字符%1.输出的复杂格式控制

第16页/共58页例

#include<stdio.h>main(){inta=1,b=2,c=3;printf("%d,%d\n",a,b,c);}如果输出项个数多于格式字符个数,多余数据部分不输出。1.输出的复杂格式控制

第17页/共58页例

#include"stdio.h"voidmain(){inta=3,b=4;printf("%d\n",a=b,b,a+3);printf(“%d\n",a,b,a=b);

printf("%d\n",(a=b,b,a+3));

}从右向左计算从左向右输出1.输出的复杂格式控制

第18页/共58页【例】阅读程序,体会scanf()函数的使用。#include"stdio.h"voidmain(void){charch;printf("请从键盘上输入Y(同意)或N(反对):\n");/*提示信息*/scanf("%c",&ch); /*从键盘上输入Y或N字符*/printf("您所选择的是:%c\n",ch);/*在屏幕上显示用户的选择*/}第19页/共58页scanf函数调用的简单形式有:(1)scanf("%格式说明符",&简单变量名);(2)scanf(“%格式说明符”,指针变量);功能:

按照“格式控制字符串”的格式要求,用户从标准输入设备(一般是键盘)键入一(或多)个数据,回车键结束后,将输入数据依次保存到地址列表指定的对应内存变量中。2.输入的复杂格式控制

注意:“输入项地址列表”中的数据和“格式说明符”应该在类型、个数、位置上一致。输入格式控制字符串中不能出现转义字符。如:scanf("%d,%d\n",&a,&b);第20页/共58页第21页/共58页例

整型数据的输入#include"stdio.h"voidmain(){inta,b,c;scanf("%d%o%x",&a,&b,&c);printf("%d,%d,%d",a,b,c);}程序中出现八进制数的表示方法:X=0122.输入的复杂格式控制

输入输出数值型数据间用空格、跳格(TAB键)或回车分隔第22页/共58页例

整型数据的输入

scanf("%d,%d,%d",&a,&b,&c);scanf("i=%d",&i);printf("i=%d",i);03=i3=i↙321↙3,2,1错0↙输入输出2.输入的复杂格式控制

普通字符原样输入第23页/共58页scanf("%c%c%c",&a,&b,&c);scanf("%d%d%d",&a,&b,&c);scanf("%d%d%c",&m,&n,&ch);cde↙c

c

e123↙1↙2↙3↙1,2,3↙12a错错例字符型数据的输入2.输入的复杂格式控制

字符数据间不需要用分隔符第24页/共58页例实型数据的输入voidmain(){floata;doubleb;scanf("%e%lf",&a,&b);printf("%f\n%lf\n",a,b);}2.输入的复杂格式控制

输入输出第25页/共58页scanf("%3d",&a);scanf("%4d%4d",&a,&b);scanf("%4f",&c);scanf(“%6.2f”,&c);不能控制精度错↙ 7654.1↙ 87654321↙ 76521

↙ 321↙54321a=123a=1a=125a=1234b=5678C=1.450000例指定精度2.输入的复杂格式控制

第26页/共58页数值数据输入时:遇空格、跳格(TAB键)或回车结束;遇非数值字符结束;遇宽度结束;遇非法输入结束。字符型数据输入时:可以接收空格、跳格(TAB键)或回车。如:inta,b,d;charc; scanf("%d%d%c%3d",&a,&b,&c,&d);输入序列为:10□11A12345↙(□表示空格)则,a=10,b=11,c='A',d=1232.输入的复杂格式控制

第27页/共58页例

main(){inta,b;scanf("a=%d,b=%d",&a,&b);printf("a=%d,b=%d\n",a,b);}a=7,b=8

↙a=7,b=8尽量不要将格式控制字符串指定得太复杂,用户看不到,会增加不必要得难度和错误。2.输入的复杂格式控制

第28页/共58页例

main(){inta,b;printf("inputa,b:");/*提示信息*/scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);}inputa,b:7⊔8↙a=7,b=8加入必要的提示信息,降低了用户输入的难度。2.输入的复杂格式控制

第29页/共58页在键盘上输入:5.3,123,456,1.23456↙

#include<stdio.h>voidmain(){intb;floatc;

doublea;scanf("%f,%d,%*d,%5f",&a,&b,&c);

printf("%e,%d,%f",a,b,c);

}a值不正确。a是double型,输入时须用%lf或%le;%*d对应的数据是456,附加格式符“*”允许对应的输入数据被忽略,因此456未赋给c变量;1.23456按%5f格式截取1.234赋给c,输出1.234000。修改为%lf【例】第30页/共58页2.4.3字符/字符串数据的输入和输出输入和输出一个字符:getchar和putchar函数输入和输出一个字符串:gets和puts函数第31页/共58页功能:从标准输入设备(键盘)接收一个字符,该字符作为getchar函数的返回值。输入字符后,按回车键,输入的字符才有效。如:ch=getchar();/*输入a↙*/ch=getchar()+10;说明:getchar()是无参函数,原型包含stdio.h头文件中。1.字符输入函数getchar()第32页/共58页#include<stdio.h>voidmain(){ chara,b; a=getchar(); b=getchar();printf("a=%c,b=%c\n",a,b);}【例】阅读并分析程序。体会键盘字符输入。

getchar();1.字符输入函数getchar()从键盘输入:q↙w↙从键盘输入:qw↙第33页/共58页getchar函数将输入的英文字母、标点符号和数字都作为字符输入。回车会作为一个字符读入。如果程序中有两个或两个以上getchar函数时,应该一次输入所有字符,最后再按回车键。或用getchar函数消耗掉多余的回车。1.字符输入函数getchar第34页/共58页#include<stdio.h>voidmain(){ chara,b; a=getchar(); b=getchar();printf("a=%c,b=%c\n",a,b);}【例】阅读并分析程序。体会键盘字符输入。

getchar();1.字符输入函数getchar()

getchar();第35页/共58页#include<stdio.h>voidmain(){ chara,b; scanf("%c%c",&a,&b);printf("a=%c,b=%c\n",a,b);}【例】阅读并分析程序。体会键盘字符输入。1.字符输入函数getchar()第36页/共58页功能:向输出设备(一般为显示器)输出一个字符,返回该字符的ASCII码值。调用一般形式为:

putchar(c);参数c可以是字符型常量、字符型变量、字符型表达式、整型常量、整型变量、整型表达式等。包含在stdio.h。2.字符输出函数putchar()第37页/共58页#include“stdio.h”ABBCmain(){intx=65;chary='B';putchar(x);putchar(65+1);putchar(y);putchar('B'+1);}2.字符输出函数putchar()第38页/共58页分析:对应大小写字母的ASCII码值之差为32,利用这一特点实现大小写字母的转换。【文本项目案例2-1】文字处理软件有许多基本功能,如更改字母大小写、字符统计等。编程实现将小写字母转换成大写字母。#include"stdio.h"voidmain(){charch1,ch2;printf(“请输入第一个小写字母:\n”);ch1=getchar();getchar();

printf(“请输入第二个小写字母:\n”);ch2=getchar();getchar();

ch1=ch1-32,ch2=ch2-32; /*转换*/putchar(ch1); putchar(ch2);}第39页/共58页#include<stdio.h>voidmain(){charch;

ch=getchar();

putchar(ch);

}#include<stdio.h>voidmain(){charch;

scanf(“%c”,&ch);

printf(“%c”,ch);}字符型数据的输入输出第40页/共58页功能:接收用户从键盘输入的一个字符串,输入的字符串以回车结束。一般调用形式:gets(str_adr)说明:参数str_adr表示存放输入的字符串的首地址。chara[10];/*定义字符数组a*/gets(a);3.字符串输入函数gets()第41页/共58页区别:

gets(a);gets函数接收包含空格在内的字符串,末尾的回车换行符读入后不作为字符串的内容,系统将自动用结束符“\0”代替。scanf("%s",a);scanf函数的“%s”格式输入字符串时,如果输入的字符串中包含空格,系统只接收空格之前的字符。3.字符串输入函数gets()第42页/共58页函数的调用形式为:puts(str_adr)功能:输出以str_adr地址为起始地址的字符串。直至遇到第一个“\0”时为止,并将其自动转换成一个换行符。puts(a);4.字符串输出函数puts()第43页/共58页#include"stdio.h"voidmain(void){chara[100];puts("请输入一个字符串(可以包含空格):");gets(a);printf("你所输入的字符串是:");puts(a);printf("请输入一个字符串(不包含空格):");scanf("%s",a);puts("你所输入的字符串是:");printf("%s",a);}【例】阅读程序,理解字符串输入输出函数的使用第44页/共58页总结变量获取数据的几种方法:1.赋初值intx=1;2.赋值语句K=123;3.输入函数scanf(“%d”,&x);x=getchar();gets(x);第45页/共58页2.5C语句概述一、简单语句二、复合语句三、空语句四、流程控制语句(后续章节)第46页/共58页语句种类语句的大概格式说明控制语句if()…else…条件语句for()…循环语句while()…do…while()continue结束本次循环break终止switch语句或循环switch多分支选择语句goto转向语句return从函数中返回语句函数调用语句函数名(参数列表);如printf(“Cstatement.”)表达式语句表达式;i++;空语句;复合语句{…}简单语句第47页/共58页一、简单语句1.表达式语句2.函数调用语句第48页/共58页1.表达式语句任何C语言表达式加上分号“;”构成表达式语句。一般形式为:表达式;功能:执行表达式语句即计算表达式的值。表达式语句分类:(1)赋值语句a=1;(2)运算符表达式语句a++;第49页/共58页通过使用函数名和实际参数来调用执行函数体称为函数调用。函数调用语句的一般形式为:函数名(实际参数列表);功能:把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句。例如,printf(“学号”);/*不使用函数值*/y=x+sin(a);/*使用函数值*/c=getchar();/*使用函数值*/2.函数调用(Calling)及函数调用语句第50页/共58页C语言提供了大量的标准库函数供用户使用。调用各种库函数时,在程序首部用#include预处理命令包含函数所在的库文件。在程序中调用数学函数必须包含数学头文件:

#include<math.h>常用的数学函数有:初等数学函数、三角函数、双曲线函数等。如,fabs(x),sqrt(x),pow(x,y)等。

2.函数调用(Calling)及函数调用语句第51页/共58页概念:用一对花括号“{

温馨提示

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

评论

0/150

提交评论