博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言程序设计谭浩强版 六
阅读量:4204 次
发布时间:2019-05-26

本文共 4101 字,大约阅读时间需要 13 分钟。

4.1  C语言概述

C程序的结构:

C语句可分为以下五类:

1) 表达式语句

2) 函数调用语句

3) 控制语句

4) 复合语句

5) 空语句

1、表达式语句:表达式语句由表达式加上分号“;”组成。

     例如:x = y + z;赋值语句;

                y + z;加法运算语句,但计算结果不能保留,无实际意义;

                i ++;自增1语句,i 值增1。

2、函数调用语句:由函数名、实际参数加上分号“;”组成。

     例如: printf("C Program");调用库函数,输出字符串。

3、控制语句:控制语句用于控制程序的流程, 以实现程序的各种结构方式。

     它们由特定的语句定义符组成。C语言有九种控制语句。

     可分成以下三类:

     1) 条件判断语句:if语句、switch语句;

     2) 循环执行语句:do while语句、while语句、for语句;

     3) 转向语句:break语句、goto语句、continue语句、return语句。

4、复合语句:把多个语句用括号{}括起来组成的一个语句称复合语句。

      例如:

{     x=y+z;     a=b+c;     printf(“%d%d”,x,a); }

      复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。

5、空语句:只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。

      在程序中空语句可用来作空循环体。

      例如:while(getchar()!='\n')

      本语句的功能是,只要从键盘输入的字符不是回车则重新输入。

4.2  赋值语句

赋值语句是由赋值表达式再加上分号构成的表达式语句。

1、由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,

      因此,下述形式是成立的,从而形成嵌套的情形。

      变量 = (变量 = 表达式);

      例如: a=b=c=d=e=5;

2、注意在变量说明中给变量赋初值和赋值语句的区别。   

3、在变量说明中,不允许连续给多个变量赋初值。如:int a=b=c=5是错误的,

      而赋值语句允许连续赋值。如a = b = c =5;

4、注意赋值表达式和赋值语句的区别。


4.3  数据输入输出的概念及在C语言中的实现
在C语言中,所有的数据输入/输出都是由库函数完成的。 因此都是函数语句。
在使用C语言库函数时,要用预编译命令#include< stdio.h >,将有关“头文件”包括到源文件中。

4.4  字符数据的输入输出
阿斯蒂芬我们先介绍C标准I/O函数库中最简单的,也是最容易理解的字符
输入输出函数putchar()和getchar(),再介绍格式输入输出函数printf()和scanf()函数
4.4.1、putchar函数(字符输出函数)
putchar 函数是字符输出函数, 其功能是在显示器上输出单个字符。
其一般形式为: putchar(字符变量)
例如: putchar('A'); (输出大写字母A)
            putchar(x); (输出字符变量x的值) 
               
  putchar(‘\101’); (也是输出字符A)
            putchar('\n'); (换行) 注意:对控制字符则执行控制功能,不在屏幕上显示。
下面我们来举一个例子:
例4.1  输出单个字符
#include
/* 输出单个字符 */int main(void){ char a = 'B',b = 'o',c = 'k'; putchar(a);putchar(b);putchar(b);putchar(c);putchar('\t'); putchar(a);putchar(b); putchar('\n'); putchar(b);putchar(c);}
运行结果为:Book   Bo
            
                      ok
4.4.2 getchar函数(键盘输入函数)
getchar函数的功能是从键盘上输入一个字符。其一般形式为: getchar();
通常把输入的字符赋予一个字符变量,构成赋值语句,
如:char c; c=getchar();
例4.2  输入单个字符。
#include
/* 输入单个字符 */int main(void){ char c; printf("input a character\n"); c = getchar(); putchar(c); putchar('\n');}
使用getchar函数还应注意几个问题:
1)、 getchar函数只能接受单个字符,输入数字也按字符处理。
        输入多于一个字符时,只接收第一个字符。
2) 、使用本函数前必须包含文件“stdio.h”。
4.5  格式化输入与输出
4.5.1  printf函数(格式输出函数)
作用是向终端输出若干个任意类型的数据
1、printf函数调用的一般形式为:
printf(“格式控制字符串”,输出表列)

例4.3:

#include
/* printf函数,格式输出函数 */int main(void){ int a = 88,b = 89; printf("%d %d\n",a,b); printf("%c,%c\n",a,b); printf("a = %d,b = %d\n",a,b);}

2、格式字符串

格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]类型   (其中[]括号内为可选项)

1) 、类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:

2) 、标志:标志字符为-、+、#、空格四种,其意义下表所示:

3) 、输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输

        出,若实际位数少于定义的宽度则补以空格或0。

4) 、精度:精度格式符以“.”开头,后跟十进制整数。

        本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;

        若实际位数大于所定义的精度数,则截去超过的部分。

5)、长度:长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。

例4.4:

#include
/* 格式控制输出 */int main(void){ int a = 15 ; float b = 123.1234567; double c = 12345678.1234567; char d = 'p'; printf("a = %d,%5d,%o,%x\n",a,a,a,a); printf("b = %f,%lf,%5.4lf,%e\n",b,b,b,b); printf("c = %lf,%f,%8.4lf\n",c,c,c); printf("d = %c,%8c\n",d,d);}

输出结果:

第1个printf   以四种格式输出整型变量a的值,

其中“%5d ”要求输出宽度为5,而a值为15只有两位故补三个空格。

%o表示按照8进制整型格式,%x表示按照16进制整型格式,都是输出a

结果为: 15,    15,17,f

第2个printf  以四种格式输出实型量b的值。其中“%f”和“%lf ”格式的输出相同,说明“l”符对“f”类型无影响。

“%5.4lf ”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。

4.5.2 scanf函数(格式输入函数)

1、scanf函数的一般形式:
scanf(“格式控制字符串”,地址表列);

格式控制字符串:与printf的一样

地址列表:可以是变量的地址,或者字符串的首地址。

例4.9

#include
/* 用scanf函数输入数据 */int main(void){ int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%d,%d,%d\n",a,b,c);}

&是地址运算符,&a是指a在内存中的地址

2、格式说明

大多与printf函数中相同,一般我是不会用他复杂的格式输出输入的,所以这里先不介绍了,

如果后期遇到复杂的输入输出应用的时候再来补充。

3、使用scanf函数时应该注意的问题

1)、scanf函数中的“格式控制”后面应该是变量的地址,而不是变量名。

2)、如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在

         对应的位置也应该输入与这些字符相同的字符。

4.6 顺序结构程序设计举例

例4.10  输入三角形的三边长,求三角形面积

设面积为S,边长分别为a,b,c,根据海伦公式有

#include
#include
/* 输入三角形的三边长,求三角形面积 */int main(void){ float a,b,c,s,area; scanf("%f\n%f\n%f",&a,&b,&c); s = 1.0/2 * (a + b + c); area = sqrt(s * (s - a)*(s - b)*(s - c)); printf("a = %7.2f, b = %7.2f c = %7.2f s = %7.2f\n",a,b,c,s); printf("area = %7.2f\n",area);}

结果为:输入3 回车4回车5,得到面积为6

因为本题目中运用到了开平方函数sqrt,所以我们需要包含头文件math.h

例4.11    从键盘输入一个大写字母,要求改用小写字母输出

#include
/* 从键盘输入一个大写字母,要求改用小写字母输出 */int main(void){ char c1,c2; c1 = getchar(); printf("%c,%d\n",c1,c1); c2 = c1 + 32; printf("%c,%d\n",c2,c2);}

结果为:输入A回车, A,65   a,97




你可能感兴趣的文章
MPI的人怎么用仪器
查看>>
windows 下AdNDP 安装使用
查看>>
Project 2013项目管理教程(1):项目管理概述及预备
查看>>
ssh客户端后台运行
查看>>
哥去求职,才说了一句话考官就让我出去
查看>>
【React Native】把现代web科技带给移动开发者(一)
查看>>
【GoLang】Web工作方式
查看>>
Launch Sublime Text 3 from the command line
查看>>
【数据库之mysql】mysql的安装(一)
查看>>
【数据库之mysql】 mysql 入门教程(二)
查看>>
【HTML5/CSS/JS】A list of Font Awesome icons and their CSS content values(一)
查看>>
【HTML5/CSS/JS】<br>与<p>标签区别(二)
查看>>
【HTML5/CSS/JS】开发跨平台应用工具的选择(三)
查看>>
【心灵鸡汤】Give it five minutes不要让一个好主意随风而去
查看>>
【React Native】Invariant Violation: Application AwesomeProject has not been registered
查看>>
【ReactNative】真机上无法调试 could not connect to development server
查看>>
【XCode 4.6】常用快捷键 特别是格式化代码ctrl+i
查看>>
【iOS游戏开发】icon那点事 之 实际应用(二)
查看>>
【iOS游戏开发】icon那点事 之 图标设计(三)
查看>>
【IOS游戏开发】之测试发布(Distribution)
查看>>