成都教育学院
用C语言解题的步骤:
用C编写源程序文件(得到源文件*.C)——编译(得到二进制代码文件*.obj)——连接(得到可执行文件*.exe)——运行(得到结果)。
P 2~3 1.~8.
9.要区别大小写字母。
例1.1
例1.2
例1.3
[函数类型] 函数名([参数表]) { [变量定义]
[执行部分] } int sum(int x,int y) { int z; z=x+y; return(z); }
函数1()
……
函数i()
……
函数n()
main()
P.6
启动:TC
进入编辑窗口:Alt-E
编译、连接、运行:Ctrl-F9
查看运行结果:Alt-F5
存盘:F2
编辑新程序:Alt-F——New
退出:Alt-X
P38图
常用基本数据类型 字符型
实型(浮点型)
1.标识符:即文件、变量、常量、数组等对象的名字。只能由字母、数字、下划线三种符号组成且不能以数字开头。
例:合法的标识符:
a, abc, a123, a_1, _1_2
不合法的标识符:
M.D.John, ¥123, #33, 3D64, a>b
2.常量
整型常量:例12,-3;
实型常量:例1.23,-3.567e-4(-3.567×10-4);
字符常量:以单引号作定界符。例:’A’, ‘*’,’\n’。
符号常量:
定义方法:在函数前面定义,格式:
#define 标识符 常量值
3.变量
变量就是一个存储单元,其中存储的内容即为变量的值。
例:a=3;——将存入内存单元a中。
1.整型常量:
十进制整数。例:-3,432;
八进制整数,以0开头。例:010,0123;
十六进制整数,以0x开头。例:0xA,0x3;
2.整型变量:
①基本整型,以int表示,范围-32768~32767。
②长整型,以long int(或long)表示,超过int范围时可用long;
③无符号整型,以unsigned int(或unsigned)表示,范围0~65535;
④无符号长整型,以unsigned long表示,超过unsigned范围时可用unsigned long。
例3.2
1.实型常量
小数形式:例:1.23;
指数形式:例:3.67e5, 1e7。
2.实型变量
单精度浮点型,以float表示,一般有7位有效数字。
双精度浮点型,以double表示。
例3.4
1. 字符常量,以单引号为定界符。例:’A’ , ‘#’ , ‘0’
2. 转义字符
表3.3
3. 字符变量,以char表示,用于存储一个字符的代码。
例:char c1,c2;
c1=’A’; c2=65;
在0~255范围内,字符数据与整型数据可以“通用”。
例:习题3.7, P65
char c1=’C’;
c1=c1+4;
4. 字符串常量
以双引号为定界符一串字符,它以’\0’为结束标志字符。
例: “ABCDE”,“a”
在定义变量时同时赋给变量一个值。
例:
int a,b;
a=3; b=4;
可以:
int a=3,b=4;
1.基本算术运算
+、-、*、/、%(求模运算或求余数)
例:7%2→1
2.强制类型转换
格式:(类型名)(表达式)
功能:将“表达式”强制转换为“类型名”所规定的类型。
例:float x=4.56;
(double)x
3.自增/自减运算
格式:++<整型变量>,<整型变量>++,
--<整型变量>,<整型变量>--。
功能:将整型变量的值增加(减少)1。
例:int i=3;
i++; (相当于 i=i+1)
说明:加(减)号在前时,先作自增(减)运算,再作其它运算;加(减)号在后时,先作其它运算,再作自增(减)运算。
例:j=i++; 相当于: j=i; i++;
而 j=++i; 则相当于:i++; j=i;
1.基本的赋值运算
格式: <变量>=<表达式>
功能:将右边<表达式>的值存储到左边<变量>所代表的内存单元中。
注意:“=”与数学中等号的含义不同。
例: i=i+1
2.复合的赋值运算符
x=x+a 可写成 x+=a
+=、-=、*=、/=、%=
例:a=7;b=4;
a%=b; (a=a%b)
3.赋值表达式
赋值表达式的值就是赋值运算后,变量所存的值。
例:
a=3+(b=4)→a=3+4
例:
a=b=c=3; →a=b=3→a=3
例:习题3.12(4), 3.12(6):
a=12;
a/=a+a; →a/=24;
a=12;
a+=a-=a*=a; →a+=a-=144;(a的值144) →a+=0(a的值0) →a的值0。
格式:<表达式1>,<表达式2>
功能:先计算<表达式1>,再计算<表达式2>。最后一个表达式的值即为整个逗号表达式的值。
例:a=(3+4,7-5);
例:a=3,b=4,c=5;
上机要求:
作业文件名:xx x xx x_x .c
年级 班 学号 题号
例:00级2班1号的1.5题的对应文件名为:
002011_5.c
1.控制语句
P 68
2.函数调用语句
例: printf();
3.表达式语句
例: x=3; 3+4;
4.空语句
;
5.复合语句
用{ }括起来的多个语句。当语法限制某处只能写一个语句,但该处需要执行多个语句时,可采用复合语句。
1.字符输出函数
格式:putchar(<字符表达式>)
功能:输出一个字符。
说明:必须在使用该函数的程序前加上如下说明:
#include <stdio.h>
例4.1
2.字符输入函数
格式:getchar()
功能:从标准输入设备输入一个字符。
说明:必须在使用该函数的程序前加上如下说明:
#include <stdio.h>
返回值:即输入的字符。
例:
char c;
c=getchar();
3.格式化输出函数
格式:printf(<格式控制字符串>,<表达式列表>)
<格式控制字符串>中的普通字符按原样输出,以%开头的格式字符对应<表达式列表>的中表达式的值。
例:
printf(“a=%d, b=%d\n”,3+7,12);
输出:a=10, b=12
格式字符见P77表4.1和表4.2。
例:习题3.3(1)
int i=10;
printf(“%d, %o, %x\n”,i,i,i);
4.格式化输入函数
格式:scanf(<格式控制字符串>,<变量地址列表>)
<格式控制字符串>中的普通字符按原样输入,以%开头的格式字符对应<变量地址列表>的变量地址。
格式字符见P80表4.3和表4.4。
地址用符号&表示。
例:
int a;
float x;
scanf(“%d%f”,&a,&x);
例4.10 P83
算法:
输入三角形的三边长a,b,c;
area=
其中 s=(a+b+c)/2
输出面积area;
例4.11 P83
算法:
输入一个大写字母c1;
将其转换为小写字母;
c1+=‘a’-
‘A’;
输出结果;
例4.12 P84
算法:
输入三个系数a,b,c;
求出两实根;
p=-b/(2a), q=
x1=p+q, x2=p-q
输出结果;
1.关系运算符
>、>=、<、<=、==、!=
2.关系表达式
关系表达式的值只有两种:真(用1表示)、假(用0表示)。
例:表达式a=3>5的值为0。
1.逻辑运算符
与:&&(可以理解为“并且”)
或:| |(可以理解为“或者”)
非:!(可以理解为“取反”)
与——两个运算数同时为真时,结果为真;
或——两个运算数中只要有一个为真时,结果即为真;
非——与运算数的值相反。
例:设a=3,b=4,则
a>2 && b>3 的值为真;
a>2 && b>5 的值为假。
a>2 | | b>5 的值为真。
!a的值为假。
在判断一个表达式的真假时,非0为真,0为假。
例:用一个表达式的真假来表示y年是否闰年。
y%400==0 || y%4==0 && y%100!=0
格式:
if(<表达式>)
<语句1>
else
<语句2>
执行:如果<表达式>为真(非0)则执行<语句1>,否则执行<语句2>。
例:苹果1.5元/kg,5kg以上9折优惠,输入重量,输出应付金额。
算法1:
输入重量w;
if(w>=5)
金额=1.5*w*0.9;
else
金额=1.5*w;
输出金额。
算法2:
输入重量w;
金额=1.5*w;
if(w>=5)
金额*=0.9;
输出金额。
例5.3 P.95
算法1(嵌套的if语句):
输入x;
if(x<0)
y=-1;
else /* x不小于0 */
if(x==0)
y=0;
else
y=1;
算法2(独立if语句):
输入x;
if(x<0)
y=-1;
if(x==0)
y=0;
if(x>0)
y=1;
例5.1 P.93
算法0:
输入a,b;
if(a>b)
输出 b,a;
else
输出 a,b;
算法1:
输入a,b;
if(a>b)
交换a,b的值;
{ t=a; a=b; b=t;}
输出a,b;
main()
{
float a,b,t;
printf("Enter a,b: ");
scanf("%f,%f",&a,&b);
if(a>b)
{
t=a; a=b; b=t;
}
printf("%.2f,%.2f\n",a,b);
}
例5.2 P.93
算法:
输入a,b,c;
将最小值存入a;
if(a>b)
交换a,b的值;
if(a>c)
交换a,c的值;
剩下两个数用例5.1的算法;
if(b>c)
交换b,c的值;
输出a,b,c;
格式:
while(<表达式>)
<语句>
执行:当<表达式>的值为真(非0)时,就重复执行<语句>。
例:a=1;
while(a<=4)
{
printf(“%4d”,a);
a++;
}
1 2 3 4
格式:
do
<语句>
while(<表达式>);
执行:重复执行<语句>直到<表达式>的值为假(非0)。
例:a=1;
do
{
printf(“%4d”,a);
a++;
}
while(a<=4);
1 2 3 4
例:对比while 和do-while
a=4;
while(a>5)
printf(“***”)