1、知识点 一、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) 复合语句:用{….}括起来的一组语句 形式
2、{
数据说明部分;
执行语句部分;
}
注意:
(1)“}”后不加分号 (2)语法上和单一语句相同 (3)复合语句可嵌套
二、数据输入与输出
C语言没有输入/输出语句,输入/输出操作由c语言函数实现;因为输入/输出函数是库函数存在于stdio.h头文件内,因此在程序前要加# include “stdio.h”
1. 字符输入函数:
格式:getchar()
功能:从键盘读入一个字符
常用形式:它可以直接作为一个字符工作,也可以赋值给一个字符变量然后操作
例如:
#include
3、
printf("Enter a character:");
c=getchar();
printf("%c--->hex%x\n",c,c);
}
运行结果:Enter a character:A //回车
A-àhex41
2. 字符输出函数:
格式:putchar(参数) -----参数可以是字符常量、变量或表达式
功能:把参数输出到显示器上
例如:
#include
4、 putchar('\n'); putchar(a); } 运行结果:A ---------因为字符数据在计算机内存中是以ASCII码的形式存在,因此 B 参数c变量在输出时输出的是A。 练习: 编写一个程序输入任意大写字母,转换输出为对应的小写字母。 3. 格式输出函数: 格式:printf(“格式控制串”,输出表) 功能:按指定格式向显示器输出数据 说明: (1) 输出表:要输出的数据(可以没有,多个时要以”,”分隔) (2) 格式控制串:包含两种信息 格式说明:%[修饰符]格式字符,用于指定对应的输出项的输出格式
5、 普通字符或转义字符序列:原样输出 例如: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;print
6、f(“%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)格式字符与输出项个数应相同,按先后顺序一
7、一对应
(3)输出转换:格式字符与输出项类型不一致,自动按指定格式输出
附加格式说明符(修饰符):
修饰符
功 能
m
输出数据域宽,数据长度 8、 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 9、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 10、\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("格式控制串",地址表)
功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束
11、说明:
(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)
输入 12、 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函数认为空格、回车、转义字符为有效字符。
例如:
13、 scanf(“%c%c%c”,&c1,&c2,&c3);
若输入abc¿ <回车>
则?---->c1, ?---->c2, ?---->c3
正确的输入时形式为:?
(4)格式控制串内格式字符间没有其它字符做分隔符时,且都是%s格式字符时,表示接收字符串,输入时以空格或回车表示一个字符串输入结束,因此%s不能接收带有空格的字符串。
接收带有空格的字符串可以使用字符函数(gets、puts)。
(5)另外:输入数值型数据时,遇到非数值型数据表示该数据结束:
例如:
scanf(“%d%c%f”,&a,&b,&c);
14、 若输入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 15、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=






