C语言程序设计

出版社:华中科技大学出版社
出版日期:2013-2
ISBN:9787560984971
页数:239页

章节摘录

版权页:   插图:   第3章数据的输入/输出 一个计算机程序通常分为输入、处理、输出三个部分。计算机通过输入操作接收数据,然后对数据进行处理,最后将处理完成的数据以完整有效的方式提供给用户。C语言没有提供专门的输入/输出语句,输入/输出功能由C语言的标准输入/输出库函数提供。C语言有非常丰富的输入/输出库函数,有用于键盘输入的函数,有用于显示器输出的函数,有用于磁盘文件读写的函数,有用于硬件端口操作的输入/输出函数等。编写程序时通过对这些库函数的调用就可以达到输入/输出的目的。本章主要介绍用于键盘输入和用于显示器输出的字符输入/输出库函数和格式化输入/输出库函数。3.1字符的输入与输出函数3.1.1字符的输出函数 putchar函数putchar函数的相关知识介绍如下。1) 函数原型intputchar ( int );2) 函数功能向标准输出设备(一般指显示器)输出一个字符,并返回该输出字符的ASCII码值。3) 使用说明函数的参数可以是字符型常量或变量,也可以是整型常量或变量,均输出其相应的字符。例如,若定义char ch='a',则putchar(ch)输出字符'a';若定义int i=65,则putchar(i)输出字符'A'。(例31)字符数据的输出。 #include void main() { char a,b; a='b'; b='o'; putchar(a);/*参数可以是字符型变量,输出该变量所对应的字符*/ putchar(b); putchar('y');/*参数可以是字符型常量,输出该字符常量*/ putchar('\n');/*参数还可以是起控制作用的控制字符,输出回车换行*/ }程序运行结果如下。 boy3.1.2字符的输入函数1.getchar函数 getchar函数的相关知识介绍如下。1) 函数原型intgetchar(void);2) 函数功能从输入设备(一般指键盘)上接收输入的一个字符,函数的返回值是所输入字符的ASCII码值。3) 使用说明该函数每调用一次,就从标准输入设备(键盘)上取一个字符,函数值可以赋给一个字符型变量,也可以赋给一个整型变量。例如,分析如下的程序。 #include void main() { int ch; ch=getchar(); putchar(ch); }程序运行后,输入字符“a”,并按回车键。a ↙则变量ch的值为97,程序运行结果如下。a 注意:① 执行getchar( )函数从键盘输入字符时,应注意输入的字符并不是立即赋值给字符型变量或整型变量,而只有在按回车键后,字符才会被赋值给字符变量或整型变量。也就是说,键入字符后需要按回车键,程序才会继续执行后续语句。② getchar( )函数从键盘读入字符时,该函数会将回车键也作为一个字符读入。因此,在使用getchar()函数连续读入多个字符时需特别注意。例如,下面程序的功能是“从键盘输入三个字符并反向输出这三个字符”,但运行的结果却事与愿违。 #include  main() { int ch1,ch2,ch3; ch1=getchar(); ch2=getchar(); ch3=getchar();/*依次输入三个字符*/ putchar(ch3);/*反向输出三个字符*/ putchar(ch2); putchar(ch1); }2.getch函数getch函数的相关知识介绍如下。1) 函数原型intgetch(void);2) 函数功能从键盘读取一个字符,但不显示在屏幕上。3) 使用说明该函数声明在conio.h头文件中,使用的时候要包含conio.h头文件。具体声明的格式如下。 #includegetch()与getchar()的基本功能相同,区别是getch()直接从键盘获取键值,不需要用户按回车键,而只要用户按一个键,getch()就立刻返回键值,getch()的返回值是用户所输入键的ASCII码值,出错时返回—1。输入的字符不会显示在屏幕上。例如,下面的程序使用getchar()函数接收从键盘输入一个字符。 #include  #include  main() { int ch; ch=getchar(); putchar(ch);  }程序运行后,若用户输入字符a并按回车键后,程序运行结果如下。 a a第一行显示的a是程序执行getchar()函数后,用户所输入的a显示在屏幕上。而第二行显示的a是程序执行putchar(ch)函数后,将刚才键盘输入的数据显示到屏幕上。但是同样的程序,改为使用getch( )函数接收从键盘输入一个字符,则其结果就不相同了。 #include  #include  main() { int ch; ch=getch(); putchar(ch); }程序运行后(用户输入字符a后不用按回车键便可显示结果)结果如下。 a为什么该程序运行后只显示1个字符a?因为getch()函数接收从键盘输入的字符,但返回后并不显示至屏幕,因此屏幕上只有putchar()函数将刚才键盘输入的字符显示到屏幕上。 总结利用getch()函数从控制台读取一个字符,不等待用户按回车键,只要用户按一个键,getch就立刻返回键值,并且读取的字符不显示在屏幕上的特点,getch()函数经常用于在程序中完成“按下任意键,再继续执行下面的程序”的功能,即起到“分屏显示”的作用。例如,分析如下程序。 #include  #include  main() { clrscr();/*清屏函数 */ printf("This is example 1\\n"); printf("Press any key to continue…….\\n"); getch();①=1\*GB3 clrscr(); printf("This is example 2\\n"); printf("Press any key to continue…….\\n"); getch();②=2\*GB3 clrscr(); printf("End !\\nThankyou ! \\n"); }程序执行后首先显示如下内容。 This is example 1 Press any key tocontinue…….执行至 ①=1\*GB3 句时,程序暂停,等待用户按下任意键,当用户按下任意键后,程序继续,屏幕上显示如下内容。 This is example 2 Press any key tocontinue…….再执行至②=2\*GB3 句时,程序暂停,等待用户按下任意键,当用户按下任意键后,程序继续,屏幕上显示如下内容。 End ! Thankyou !至此程序结束。在此程序中,getch()函数起到了“分屏显示”的功能。getch函数常用于程序调试中。调试时,若在程序中间要查看某些变量的结果,可以插入getch()函数使程序暂停运行,从而查看变量的值,当按下任意键后程序继续运行。例如,分析如下的程序。 #include  #include  main() { int a=10; clrscr(); printf("0: a=%d\\n",a); /*为了查看此时a变量的值,下一句使用getch()*/ getch(); a+=10; clrscr(); printf("1: a=%d\\n",a); /*为了查看此时a变量的值,下一句使用getch()*/ getch(); a+=20; clrscr(); printf("2:a=%d\\n",a); }程序运行后,屏幕上显示如下内容。 0:a=10程序暂停,当按下任意键后程序继续执行,屏幕上显示如下内容。 1:a=20程序再一次暂停,当按下任意键后程序继续执行,屏幕上显示如下内容。 2:a=403.getche函数getche函数的相关知识介绍如下。1) 函数原型intgetche(void);2) 函数功能从键盘读取一个字符,并显示在屏幕上。3) 使用说明该函数声明在conio.h头文件中,使用的时候要包含conio.h头文件。getche()和getch()相似,都是读入单个字符,都是从键盘获取键值,不需要用户按回车键,只要用户按一个键,函数就立刻返回,返回值是用户所输入键的ASCII码值。不同的是getch()不会将读入的数据显示在屏幕上,而getche()会把读入的字符显示在屏幕上。例如,分析如下的程序。 #include  #include  main() { int ch; ch=getche(); putchar(ch); }程序执行后等待用户从键盘输入值,若用户按下a键后(不等用户按回车键),程序运行结果如下。 aa其中,第一个字符a是getche()函数接收用户所输入的字符并显示在屏幕上的,第二个字符a是putchar()函数将接收的字符显示在屏幕上的。3.2格式化输入与输出函数3.2.1格式化的输出函数printf格式化输出函数printf的相关知识介绍如下。1) 一般形式printf ( "格式控制字符串",输出项列表 );2) 函数功能按指定的格式向输出设备(一般指显示器)输出数据,并返回实际所输出的字符个数,如果出错则输出负数。3) 使用说明(1) 例如,在printf("%d*%d=%d\\n",i,j,i*j) 语句中,“i,j,i*j”部分称为“输出项列表”,列表中可以是若干个常量、变量或表达式,每个输出项之间用逗号分隔,输出的数据可以是整型数、浮点型数、字符或字符串。例如,分析如下的程序。 #include  main() { int i,j; i=2; j=3; printf("%d*%d=%d\\n",i,j,i*j);/*三个输出项*/ printf("%d÷%d=%g\\n",j,i,(float)j/i);  }程序运行结果如下。 2*3=6 3÷2=1.5(2) 例如,在printf("The output x=%d\n",x) 语句中,用双引号括起来的"The output x=%d\n" 部分称为“格式控制字符串”,使用时必须用双引号括起来,它的作用是控制输出项的格式和输出一些提示信息。“格式控制字符串”中可以包含以下三方面的内容。① “格式控制字符串”中可以包含若干个一般字符,如上述的 "The output x= ",它主要用于显示程序中的提示信息。② “格式控制字符串”中可以包含若干个以“\\”开头的转义字符(转义字符指一些特定的操作,如“\\n”表示换行,“\\t”表示水平制表等,参见第2章的相关内容)。例如,分析如下程序。 int i=2; int j=3; printf("%d\\t%d\\t%d\\t%g\\n",i,j,i*j,(float)j/i );程序运行结果如下。 2361.5常用的以“\\”开头的转义字符所表示的特定操作参见表24。“控制字符串”中可以包含若干个以“%”开头的格式说明(如上述的“%d”),它们的作用是定义每一个输出项的显示格式。每一个输出项需要有一个对应的格式说明,并且每个输出项将按照其对应的格式说明进行输出。常见的printf格式说明如表31所示。 表31常见的printf格式说明 格式说明功能%d以带符号的十进制形式输出整数(正数不输出“+”号)%o(字母o)以符号的八进制形式输出整数(但前导数字0不输出)%x或%X以符号的十六进制形式输出整数(前导符号0x不输出)%u以符号十进制形式输出整数%c输出一个字符%s输出一个字符串%f以小数形式输出单精度、双精度浮点数%e或%E以指数形式输出单精度、双精度浮点数%g根据给定的值和精度,自动选择f与e中较紧凑的一种格式,不输出意义的0%p用于输出变量在内存中的地址(变量的地址由编译程序分配)%ld, %lo, %lx, %lu %lf, %le, %lg用于长整型数据输出(%ld, %lo, %lx, %lu), 以及双精度型数据输出(%lf, %le, %lg)(例32)分别用十进制、八进制及十六进制的方式显示整数16。 #include  main() { int x=16; printf("%d\\n",x);/*按十进制方式显示*/ printf("%o\\n",x);/*按八进制方式显示*/ printf("%x\\n",x);/*按十六进制方式显示*/ printf("十八 十六\\n"); printf("%d\\t%o\\t%x\\n",x,x,x);  printf("%p\\n",x); /*输出变量x在内存中的地址*/ }程序运行结果如下。 16 20 10 十八 十六 162010 0010(例33)下面的程序用于输出字符及字符串。 #include  main() { char ch; char*st;/*定义一个字符串*/ ch='I'; st="This is an example————"; printf("%s",st); /*输出字符串*/ printf("%c————\\n",ch); /*输出字符、常规字符、转义字符*/ }程序运行结果如下。 This is an example————I————字符串将在后面的章节中详细介绍。(3) 关于格式控制说明符的补充说明。由前面的内容已经知道“%d”格式用来输出十进制整数,它将按照数据的实际长度进行输出。实际上还可以对输出数据所占的字节位数加以限制,方法是在“%”和“d”之间加一个整数,整数可正可负。正整数表示输出数据在所给空间中右对齐,左边留出空格;负整数表示左对齐,右边留出空格。当输出数据位数大于所给空间时,则可突破位数的限制,按其实际大小全部输出。例如,分析如下程序。 #include  main() { printf("123456789\\n"); printf("a=%5d\\n",13);/*正整数表示输出数据右对齐,左边空格填充*/ printf("a=%—5d",13);/*负整数表示左对齐,右边空格填充*/ printf("a=%3d\\n",12345);/*当数据位数大于所给位数时,则按实际位数输出*/ }程序运行结果如下。 123456789 a=13 a=13a=12345“%s”格式用来输出字符串。一般情况下它按实际大小输出字符串,但若字符串中含有'\0'字符,则输出到'\0'截止,即此时并不是把双引号中的内容全部输出。例如,分析如下程序。 #include  main() { printf("%s\\n","Beijing"); printf("%s\\n","Bei\\0Jing"); }程序运行结果如下。 Beijing Bei另外,使用“%s”来输出字符串时,也可以指定输出字符串的长度,规则同前。例如分析以下表达式。 printf("s=%6s","book");  printf("s=%—6s","book"); printf("s=%2s","book"); 以上三个表达式的运行结果如下。 s=book(右对齐) s=book(左对齐) s=book (突破限制,按实际位数输出) 使用“%s”输出字符串时也可以指定输出字符串前端的部分字符,格式为:%.s。这种格式表示在m列宽度中输出字符串的前n个字符。当mb)?a:b; printf("The max is: %d\\n",max); }程序运行结果如下。 Please enter two numbers:25 ↙ The max is:5(例36)输入三个字符,将它们及其对应的ASCII码值反向输出到屏幕上。具体程序如下。 #include  #include  main() { char ch1,ch2,ch3; ch1=getche(); ch2=getche(); ch3=getche(); putchar('\\n'); printf("%c——————%d\\n",ch3,ch3); printf("%c——————%d\\n",ch2,ch2); printf("%c——————%d\\n",ch1,ch1); }程序运行结果如下。 abc↙ c——————99 b——————98 a——————97(例37)输入平面坐标系中两点的坐标,计算并输出两点间的距离。具体程序如下。 #include  #include  main() { int x1,y1,x2,y2; float s; printf("Please enter P1:"); scanf("%d%d",&x1,&y1); printf("Please enter P2:"); scanf("%d%d",&x2,&y2); s=sqrt(pow(x2—x1,2)+pow(y2—y1,2));  printf("(%d,%d)——————(%d,%d)\\n",x1,y1,x2,y2); printf("%g\\n",s); }说明:sqrt(x)是求x的平方根的函数,pow(x,y)是求xy的函数,并且它们都在“math.h”头文件中定义,因此在使用之前程序需将“math.h”头文件包含进来。程序运行结果如下。 Please enter P1:30 ↙ Please enter P2:04 ↙ (3,0)——————(0,4) 5(例38)用户从键盘输入一个字符,程序判断其若为小写字母,则输出其对应的大写字母,若为其他字符则按原样输出。具体程序如下。 #include  main() { int ch; ch=getchar(); ch=(97

前言

本书是应用型本科信息大类专业“十二五”规划系列教材之一,是在充分研究国内应用型本科院校的教学现状及学生学习规律的基础上完成的。我们根据应用型本科院校学生的特点,设置全书的结构和安排内容,使其更加符合应用型本科院校学生的认知规律,希望能让学生在学习的过程中更加轻松地掌握所学的知识。C语言是信息大类专业的专业基础课程,虽然它看起来简单,但在有限的学时之内让学生掌握相关的知识,并具备一定的实践能力并不是轻易就能办到的。其原因之一就是C语言本身是进行程序开发的工具,但是程序设计本身却包含有很多专业的思想。学生在学习C语言程序设计的过程中,需要同时面对生疏的工具和晦涩的理论,这给他们的学习带来了很大的困难。应用型本科院校学生的特点是实践能力较强,愿意亲自动手尝试,但他们对理论知识却没有太多耐心。根据上述情况,编者在传统C语言程序设计教学的基础上,进行了多方面的调整。为了达到更好的教学效果,本书最大的特点是合理选择各章内容,采用适合学生的描述方式,做到更深层次的理论与实践紧密结合。在编写本书的过程中,编者本着理论够用,以切实提高学生的实践能力为目标的基本原则进行编写。首先,本书去掉了大量使用频率不高且难于掌握的理论知识,选择对提高学生的实践能力相对重要的理论知识进行详细讲解。学生掌握了一定的理论知识,并具备了一定的实践能力之后,也就具备了自学的能力,可以根据实际的需要选择学习相关的理论知识。其次,本书的实例都是通过精心选择和准备的。通常会通过实例引入相关知识点,然后讲解相关的理论知识要点,让学生在初步实践的基础之上学习理论知识,这样做到有的放矢,可以事半功倍。在此基础上,使用大量难度相对较大的实例来增强学生的实践能力,真正做到让学生在实践中学习。全书共11章,主要包括C语言程序设计基础,数据类型、运算会和表达式,数据的输入/输出,选择结构,循环结构,函数,数组,指针,编译预处理,结构体及文件等内容。全书从C语言的基本数据元素、基本语句和结构控制语句、构造数据类型的定义和使用、函数的定义和调用,到指针和文件的灵活运用等方面都进行了由浅入深的讲解。方红琴设计了本书的结构,并做了全书的统稿工作。本书第1章由北京工业大学耿丹学院方红琴编写,第2~3章由宁夏大学边吉荣编写,第4章由武汉工程大学邮电信息学院杨玉蓓编写,第5章由武汉工程大学邮电信息学院方洁编写,第6章由重庆大学尹云飞编写,第7章和第9章由石家庄铁道大学四方学院王福宁编写,第8章由西北师范大学知行学院赵亚娟编写,第10~11章由石家庄铁道大学四方学院康亚男编写。本书同时也是北京工业大学耿丹学院教育教学研究项目“C语言程序设计实践教学改革”(GDKY13)的项目成果。为了方便教学,本书还配有电子课件等教学资源包,任课教师和学生可以登录我们爱读书网免费注册下载,也可以发邮件索取。由于时间仓促与编者水平有限,不足与欠妥之处在所难免,恳请广大读者不吝指正。

内容概要

方红琴老师,任教于北京工业大学耿丹学院,有丰富的教学经验,本书也是该校教学改革项目的相关成果之一。杨玉蓓老师,任教于武汉工程大学邮电与信息工程学院,为该校机电学部计算机教研室主任,有多年的教学经验。

书籍目录

第1章C语言程序设计基础 1.1C语言的发展与应用 1.2C语言的特点 1.3用C语言开发程序 1.4运行C语言程序 习题1 第2章数据类型、运算符和表达式 2.1C语言的基本数据类型 2.2常量与变量 2.3运算符与表达式 2.4数据类型转换 2.5编写简单的C程序 2.6程序举例 习题2 第3章数据的输入/输出 3.1字符的输入与输出函数 3.2格式化输入与输出函数 3.3程序举例 习题3 第4章选择结构 4.1关系运算符与关系表达式 4.2逻辑运算符与逻辑表达式 4.3if语句 4.4switch语句 4.5多重if语句和switch语句的比较 4.6条件运算符 4.7应用举例 习题4 第5章循环结构 5.1循环结构简介 5.2while语句 5.3do…while语句 5.4for语句 5.5三种循环语句的比较 5.6break语句 5.7continue语句 5.8嵌套循环 5.9应用举例 习题5 第6章函数 6.1函数的作用 6.2函数的构成 6.3函数的调用 6.4变量的作用域和存储类型 习题6 第7章数组 7.1一维数组 7.2二维数组 7.3字符数组与字符串 7.4数组作为函数参数 习题7 第8章指针 8.1指针与指针变量 8.2简单指针变量 8.3指针和数组 8.4指针数组与多重指针 8.5指针与函数 习题8 第9章编译预处理 9.1宏定义 9.2文件包含 9.3条件编译 习题9 第10章结构体 10.1结构体 10.2结构体指针与链表 习题10 第11章文件 11.1概述 11.2文件的打开和关闭 11.3文件的读写 11.4文件的定位操作 习题11 附录A 附录B 附录C 附录D 参考文献 

编辑推荐

《应用型本科信息大类专业"十二五"规划教材:C语言程序设计》是各位参与编写的老师多年对C语言课程的教学经验的总结,对C语言的各项知识都做了详细和全面的介绍,并配以大量的例题和练习题。《应用型本科信息大类专业"十二五"规划教材:C语言程序设计》在认真吸收经典教材的优秀经验的基础上,对知识结构进行了调整,略去了一些过深过专的知识点,方便学生能够学以致用,使其更贴近于实际应用,可以说《应用型本科信息大类专业"十二五"规划教材:C语言程序设计》是一本不可多得的好书。

作者简介

《应用型本科信息大类专业"十二五"规划教材:C语言程序设计》对传统的C语言程序设计教材在结构和内容方面进行了调整,充分考虑了应用型本科院校的教学现状及其学生的学习规律,使其更适于应用型本科院校的教学。《应用型本科信息大类专业"十二五"规划教材:C语言程序设计》最重要的特点是理论与实践相结合,让学生在实践中理解和掌握理论,这也更加符合应用型本科院校学生的认知规律。《应用型本科信息大类专业"十二五"规划教材:C语言程序设计》共11章,主要包括C语言程序设计基础,数据类型、运算符和表达式,数据的输入/输出,选择结构,循环结构,函数,数组,指针,编译预处理,结构体及文件等内容。为了方便教学,《应用型本科信息大类专业"十二五"规划教材:C语言程序设计》既适用于应用型本科院校信息大类相关专业的师生,也适用于以提高实践能力为主的培训班的师生及C语言自学者等。


 C语言程序设计下载



发布书评

 
 


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024