资源描述
知识点
一、C语句回顾:
1. C语言语句必须以“;”作为结束符号
2. C语言的分类:
(1) 表达式语句:表达式加上分号构成。例如:a=3; --à赋值语句
(2) 函数调用语句,如:函数fun定义后,主调函数调用fun后fun();à函数调用语句
(3) 程序控制语句(9种),如:选择结构--- if()~else~、switch;循环结构---while()~、do~while()、for()~;辅助语句---continue、break、goto、return
(4) 空语句----;只是由分号组成,不进行任何操作
(5) 复合语句:用{….}括起来的一组语句
形式:{
数据说明部分;
执行语句部分;
}
注意:
(1)“}”后不加分号 (2)语法上和单一语句相同 (3)复合语句可嵌套
二、数据输入与输出
C语言没有输入/输出语句,输入/输出操作由c语言函数实现;因为输入/输出函数是库函数存在于stdio.h头文件内,因此在程序前要加# include “stdio.h”
1. 字符输入函数:
格式:getchar()
功能:从键盘读入一个字符
常用形式:它可以直接作为一个字符工作,也可以赋值给一个字符变量然后操作
例如:
#include <stdio.h>
main()
{ int c;
printf("Enter a character:");
c=getchar();
printf("%c--->hex%x\n",c,c);
}
运行结果:Enter a character:A //回车
A-àhex41
2. 字符输出函数:
格式:putchar(参数) -----参数可以是字符常量、变量或表达式
功能:把参数输出到显示器上
例如:
#include <stdio.h>
main()
{ int c;
char a;
c=65; a='B';
putchar(c); putchar('\n'); putchar(a);
}
运行结果:A ---------因为字符数据在计算机内存中是以ASCII码的形式存在,因此
B 参数c变量在输出时输出的是A。
练习:
编写一个程序输入任意大写字母,转换输出为对应的小写字母。
3. 格式输出函数:
格式:printf(“格式控制串”,输出表)
功能:按指定格式向显示器输出数据
说明:
(1) 输出表:要输出的数据(可以没有,多个时要以”,”分隔)
(2) 格式控制串:包含两种信息
格式说明:%[修饰符]格式字符,用于指定对应的输出项的输出格式
普通字符或转义字符序列:原样输出
例如:printf(“enter number:%5d\n”,a);
---àenter number:是普通字符;\n转义字符序列
---à5是修饰符
---àd是格式字符
格式字符:
d,i 十进制整数
int a=567;printf(“%d”,a);
567
x,X 十六进制无符号整数
int a=255;printf(“%x”,a);
ff
o 八进制无符号整数
int a=65;printf(“%o”,a);
101
u 不带符号十进制整数
int a=567;printf(“%u”,a);
567
c 单个字符
char a=65;printf(“%c”,a);
A
s 字符串
printf(“%s”, “ABC”);
ABC
e,E 指数形式浮点小数
float a=567.78;printf(“%e”,a);
5.678000e+002
f 小数形式浮点小数
float a=567.789;printf(“%f”,a);
567.789000
%% 百分号本身
printf(“%%”);
%
注意事项:
(1)格式字符要用小写
(2)格式字符与输出项个数应相同,按先后顺序一一对应
(3)输出转换:格式字符与输出项类型不一致,自动按指定格式输出
附加格式说明符(修饰符):
修饰符
功 能
m
输出数据域宽,数据长度<m,左补空格;否则按实际输出
.n
对实数,指定小数点后位数(四舍五入)
对字符串,指定实际输出位数
-
输出数据在域内左对齐(缺省右对齐)
+
指定在有符号数的正数前显示正号(+)
0
输出数值时指定左面不使用的空位置自动填0
#
在八进制和十六进制数前显示前导0,0x
l
在d,o,x,u前,指定输出精度为long型
在e,f,g前,指定输出精度为double型
例1:
int a=1234;
float f=123.456;
char ch=‘a’;
printf(“%8d,%2d\n”,a,a);
printf(“%f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f);
printf(“%3c\n”,ch);
运行结果: 1234,1234
123.456000, 123.5,123.46,1.23e+02
a
例2:
char a[]=“Hello,world!”
printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a);
运行结果:?
例3:
int a=1234;
float f=123.456;
static char c[]=“Hello,world!”;
printf(“%8d,%-8d\n”,a,a);
printf(“%10.2f,%-10.1f\n”,f,f);
printf(“%10.5s,%-10.3s\n”,c,c);
运行结果:?
例4:
int a=1234;
float f=123.456;
printf(“%08d\n”,a); //00001234
printf(“%010.2f\n”,f);
printf(“%+08d\n”,a); //+0001234
printf(“%+010.2f\n”,f);
运行结果:?
例5:
int a=123;
printf(“%o,%#o,%X,%#X\n”,a,a,a,a);
运行结果:?
4. 格式输入函数
格式:scanf("格式控制串",地址表)
功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束
说明:
(1)地址表:变量的地址,使用"&"符号取得,因此&称为取地址运算符。
(2)格式控制串:包括格式字符和附加说明符组成;
格式字符包括:d,i,o,x,u,c,s,f,e ;其中上述字符的含义和用法与格式输出函数中的相同。
例如:
scanf(“%d”,&a);
输入:10 ¿
printf(“a=%d”,a);
输出 a=10
说明:
(1)格式控制串内格式字符间有其它字符做分隔符时,输入时要按照格式控制串内的形式输入。
例如:
scanf(“%d,%d”,&a,&b)
输入: 3,4 //输入的形式与""内格式控制串的形式相同
(2)格式控制串内格式字符间没有其它字符做分隔符时,且都是数值型数据格式字符时,一般以空格、tab或回车作为分隔符。
例如:
scanf(“%d%o%x”,&a,&b,&c);
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
输入 123 123 123¿ <回车> //输入的数据之间时空格
(3)格式控制串内格式字符间没有其它字符做分隔符时,且都是字符型数据格式字符时(即指定格式为%c),注意,scanf函数认为空格、回车、转义字符为有效字符。
例如:
scanf(“%c%c%c”,&c1,&c2,&c3);
若输入abc¿ <回车>
则?---->c1, ?---->c2, ?---->c3
正确的输入时形式为:?
(4)格式控制串内格式字符间没有其它字符做分隔符时,且都是%s格式字符时,表示接收字符串,输入时以空格或回车表示一个字符串输入结束,因此%s不能接收带有空格的字符串。
接收带有空格的字符串可以使用字符函数(gets、puts)。
(5)另外:输入数值型数据时,遇到非数值型数据表示该数据结束:
例如:
scanf(“%d%c%f”,&a,&b,&c);
若输入1234a123o.26 ¿
则 1234---->a, 'a'---->b, 123---->c
练习:
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
数据应该如何输入?
附加格式说明符:(修饰符)
修饰符
功 能
h
用于d,x,o前,指定输入为short型整数
l
用于d,x,o前,指定输入为long型整数
用于e,f前,指定输入为double型实数
m
指定输入数据宽度,遇空格或不可转换字符则结束
*
抑制符,指定输入项读入后不赋给变量
例如:
scanf(“%4d%2d%2d”,&yy,&mm,&dd);
输入 20071030 ¿
则2007--->yy, 10--->mm, 30--->dd
例如:
scanf(“%3c%2c”,&c1,&c2);
输入 abcde ¿
则'a'---->c1, 'd' ---->c2
练习:
scanf(“%3d%*4d%f”,&k,&f);
输入:12345678765.43¿
则k和f分别为?
math.h数学函数头文件,使用其中的函数需要在程序开始处加,#include “math.h”
sqrt(表达式) ---开平方函数括号内的表达式值是double型的,函数返回值为double型
pow(x,y)---表示x的y次幂的结果,x和y都是double型,返回值为double型
fabs(x)---表示求x的绝对值,x是double型,返回值也是double型
作业:
输入三角形边长,求面积?
公式如下:s=(a+b+c)/2
Area=
展开阅读全文