内容正文:
【技能实践】
1.&f (f-32)/1.8 c
2.(x>y)? y:x (x>y)? x:y
3.intN=10 f=-1
4.调试出错信息:
errorC2106:'=':leftoperandmustbel-value
//赋值号左边必须是变量
改错:
(1)#defineN0改成#defineN8
(2)intx;改成doublex;
(3)doublesum;改成doublesum=0;
(4)N=8;去掉
5.#include<stdio.h>
intmain()
{ intx1=35,x2=55,x3=21,temp;//temp
变量用于临时借用
temp=x1;
x1=x2;
x2=x3;
x3=temp;
printf("x1=%d,x2=%d,x3=%d",x1,
x2,x3);
}
第二节 运算符与表达式
【知识梳理】
二、运算符
1.(1)单目 双目 三目
3.(1)左 右 (2)右 左
三、算术运算符和算术表达式
2.“%”
3.变量
4.从左向右 乘除 加减
四、关系运算符与关系表达式
优先级 运算符 用法 结合方向
6
7
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
! = 不等于
自左向右
2.== ! =
3.1 0
五、逻辑运算符与逻辑表达式
1.
优先级 运算符 用法 结合方向
2 ! 逻辑非 自右向左
11 && 逻辑与 自左向右
12 || 逻辑或 自左向右
2.1 0
3.
a b ! a a&&b a||b
非0 非0
非0 0
0
1 1
0 1
0 非0
0 0
1
0 1
0 0
0 1
六、条件运算符与条件表达式
1.表达式2 表达式3
2.三目
3.自右向左
七、赋值运算符和赋值表达式
1.将赋值号右边的值或表达式的值赋值给左边的
变量
2.+= 、- =、∗=、/=、%=、<<=、>>=、
&=、̂=、|=
八、逗号运算符和逗号表达式
1.表达式1,表达式2,,表达式n
2.低
4.最右端表达式
九、求字节数运算符与表达式
sizeof
十一、不同类型数据间的混合运算
1.(1)3 舍弃小数部分
(2)自动将运算符两边的表达式转换成同一类型
2.(类型名)(表达式)
【巩固练习】
1.C 2.D 3.B 4.D 5.C
6.fabs(y∗x+log10(x∗x+1)+3∗exp(x)+log
(y))+sin(25)
7.-6
8.2
9.0 1 0
10.3,-3,3,-3
24,312
【技能实践】
1.(1)inty=0 (2)x/100 (3)x3 (4)y∗10+
x1
21
单招零距离计算机专业综合下册
2.(1)num/10 (2)num%10
3.(1)math.h
(2)a+b>c&&b+c>a&&a+c>b
(3)(a+b+c)/2.0
(4)sqrt(p∗(p-a)∗(p-b)∗(p-c))
(5)%.2f
4.(1)area=π∗r∗r;改成area=3.14∗r∗r;
(2)volume=1/3∗area∗h;
改成volume=1.0/3∗area∗h;
5.#include<stdio.h>
intmain()
{
doublex,xs;intzs;
scanf("%lf",&x);
zs=(int)x;
xs=x-zs;
printf("%.lf=%d+%.lf",x,zs,xs);
}
第三章 基本语句顺序结构程序设计
第一节 基本语句
【知识梳理】
一、表达式语句
分号
二、空语句
只有一个分号
三、复合语句
大括号"{}" 一个整体的语句
【巩固练习】
1.B 2.B 3.B 4.D
5.12 35 35 14
6.3
【拓展练习】
1.C
2.g,d
3.c,c,c 99,99,99
4.x=7,y=3,z=18
5.T
6.0,0,4
7.1,0,4
8.16
43,3,10
【技能实践】
1.x=2.80,y=8.20
x=8.20,y=2.80
2.2 2 3 2
3 3 2 1
3.getchar() c1+32
4.&x (int)(x∗100+0.5)/100.0
5.#include<stdio.h>
intmain()
{ intn;
printf("请输入一个四位正整数:");
scanf("%4d",&n);
printf("%d%d%d%d
",n%10,n%100/
10,n%1000/100,n/1000);
}
第二节 数据输入与输出
【知识梳理】
一、字符数据的输入输出函数
1.getchar();
2.putchar(c); 字符型或整型
二、格式化输入输出函数
(1)printf(格式控制[,输出表列]);
(2)scanf(格式控制,地址表列);
空格 TAB键 回车键
#include<stdio.h>或#include“stdio.h”
【巩固练习】
1.-1023.012,□-1023.012
2.1
3.18
4.14
5.579
6.0000032767 32767
7. 1
1 1
1 1
8.x=123,y=45.000000
9.不确定值
10.1
2
3
4
【拓展练习】
1.20,10,3
2.i=5,j=83.521.86A,B
31
总复习方案参考答案
单招零距离·计算机专业综合·下册
第二节运算符与表达式
知识体系
Y⑤
表达式
算术运算符:
(十、一、米、、%、十十、-一)
关系运算符:
(>、<、>=、<=、==、!=)
逻辑运算符:
(88.、|、)
运算符
赋值运算符:
(=)
条件运算符:
(?:)
运算符
表
逗号运算符:
(,)
求字节数运算符:(sizeof)
式
指针运算符:
(*和8.)
位运算符:
(<<,>>、~、|、、&)
其它
自动类型转换
不同类型间的混合运算
强制类型转换
知识梳理
CY⊙
一、表达式
表达式是用运算符和括号把操作数连接起来的式子,即由常量、变量、运算符连起来的式
子。书写时,必须符合C语言规范,写成1行的形式,无分数、无上下标形式等。
二、运算符
在C程序中,利用各种运算符对变量进行处理,从而实现一定的功能。C语言中的运算符
种类很多,使用灵活。
1.运算符的种类:
(1)根据运算对象的个数分:
(2)根据运算符的功能分:算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算
符、逗号运算符等。
2.运算符的优先级:当表达式中出现多种运算符时,先处理运算优先级高的运算符。
3.运算符的结合方向:当表达式中出现运算优先级相同的运算符时,则根据其结合方向
决定运算符的运算顺序。
(1)左结合性:即“自
向
”,运算对象先与左边的运算符结合。
(2)右结合性:即“自
向
”,运算对象先与右边的运算符结合。
三、算术运算符和算术表达式
1.十(加法运算符)、一(减法运算符)、(乘法运算符),在运算功能上等同于数学上的
十、一、×;
·22·
总复习方案·第二章数据类型及其运算
2.、%都是除法运算符。前者是整除,取整数部分,小数部分丢弃:后者取余,求余数,也
称为模运算符,
运算符要求两边均为整型。
3.十+(自增运算符)和一一(自减运算符)的作用是使变量的值增1或减1,只能用于
,不能用于常量或表达式。
4.算术运算符的结合性是”
",先
后
,有()的先做。
四、关系运算符与关系表达式
1.关系运算符:
优先级
运算符
用法
结合方向
>
大于
>=
大于等于
<
小于
<=
小于等于
等于
不等于
2.关系运算符“>、>=、<、<=”的优先级别高于“
3.关系表达式:由关系运算符组成的式子,其结果是
或
五、逻辑运算符与逻辑表达式
1.逻辑运算符:
优先级
运算符
用法
结合方向
逻辑非
8.&
逻辑与
w
逻辑或
2.逻辑表达式:由逻辑运算符组成的式子,其结果是
或
3.逻辑运算的真值表:
a
6
!a
a&.&.b
alb
非0
非0
非0
0
0
非0
0
0
说明:在C语言中,进行a&&b运算时,若a式为
,则不处理b式;进行ab
运算时,若a式为
则不处理b式。
六、条件运算符与条件表达式
1.条件运算符:
优先级
运算符
用法
首先判断表达式1的值,
13
表达式1?表达式2:表达式3
若值为非0,则整个表达式的结果为
的值:
若值为0,则整个表达式的结果为
的值。
2.条件运算符是C语言中唯一的一个
运算符。
3.几点说明:
(1)条件运算符“?”与“:”不可分。
(2)条件运算符的优先级低于关系运算符和算术运算符却高于赋值运算符。
·23·
单招零距离·计算机专业综合·下册
(3)条件运算符也可以嵌套,其结合方向是“
(4)"表达式2"和"表达式3"不仅可以是数值表达式,还可以是赋值表达式或函数表达式。
七、赋值运算符和赋值表达式
1.赋值运算符是”=”,作用是
2.复合运算符(复合的赋值运算符)
在C语言中,在赋值运算符之前加上算术运算符或位运算符构成复合的赋值运算符。共
有10种,分别是:
八、逗号运算符和逗号表达式
1.逗号表达式的一般形式:
2.逗号运算符是所有运算符中级别最
的。
3.逗号表达式可以嵌套,也就是一个逗号表达式可以与另一个逗号表达式组成一个新的
表达式。
4.逗号表达式的值是
的值。
九、求字节数运算符与表达式
C语言提供了整型、实型、字符型等多种数据类型,但因使用的编译系统不同而造成有些
数据类型的长度也不同。使用
运算符可以正确了解各类型长度。
十、常见运算符汇总
表2一2运算符的优先级与结合性
优先级
运算符及含义
分类
结合性
1
()圆括号
[门下标一>指向结构体·结构体成员
自左向右
!逻辑非
~按位取反十十自增一一自减一负号
2
单日
自右向左
(类型)强制转换指针&.取地址sizeof长度运算
3
乘法
除法
%求余
4
十加法
减法
5
<<左移
>>右移
6
<小于
<=小于或等于
>大于
>=大于或等于
==等于
!=不等于
双日
自左向右
8
&.
按位与运算符
9
按位异或运算符
10
按位或运算符
11
&.8.逻辑与运算符
12
逻辑或运算符
13
?:条件运算符
三日
自右向左
赋值运算符
14
双日
自右向左
十=一===%=>>=<<=&==|=复合运算符
15
逗号运算符(顺序求值)
自左向右
十一、不同类型数据间的混合运算
在C程序中,整型和浮点型可以混合运算,字符型与整型又通用,所以整型、实型、字符型
·24·
总复习方案·第二章数据类型及其运算
间可以混合运算,混合运算时,需进行类型转换。方法有自动类型转换和强制类型转换两种。
1.自动类型转换:不同类型的运算量进行混合运算时,系统自动将占用内存空间小的类
型转为占用空间大的类型。
(1)赋值运算中的类型转换
例如:intx;
x=3.14:
x的值是
。
当实数赋给整型变量时,
(2)混合运算中的类型转换
例如:2*'A'十1.5
不同类型的数据进行混合运算时,C编译系统
,其转换规则如图所示。
double
float
long
unsigned
低
int
char、sho1t
2.强制类型转换:利用
的形式进行强制类型转换后,原变量的值和类
型
改变。
L)
典例精析
Y⊙
【例1】以下程序输出的结果是
#include<stdio.h
int main()
{inta=2,b=-3,c=10,d,e;
d=(a+2)<b<c;
e=b>=(7-c)>=a:
printf("%d,%d
",d,e);
【分析】本题的关键在于对变量d和e的赋值运算:
d=(a十2)<b<c;先算a十2,得4,再算4<b,为假得0,然后算0<c,为真得1,最后将1
赋给d:
e=b>=(7-c)>=a:先算7-c,得-3,再算b>=一3,为真得1,然后算1>=a,为假
得0,最后将0赋给e。
【答案】1,0
【例2】以下程序输出的结果是
#include<stdio.h
int main()
int i,j,k,p;
i=j=k=-1;
p=++i&&j--&.&k++:
·25·
单招零距离·计算机专业综合·下册
printf("%d,",p):
printf("d,%d,%d
",i,j,k);
i=j=k=3:
p=i++&.&j--I川--k:
printf("%d,",p):
printf("d,%d,%d
",i,j,k);
}
【分析】&.&.(逻辑与)与(逻辑或)又称为短路运算符。对于表达式“条件1&&.条件
2”,条件1为0(即假)时,不会执行条件2:对于表达式“条件1条件2”,条件1为1(即真)
时,不会执行条件2。
i=j=k=一1:p=+十i8.&j-一&&k++:先执行++i,i=0,++i为0,则不执行j-一和
k十十,即j和k值不变,赋值号右边的整个表达式的值恒为0,即p=0。
i=j=k=3;p=i++&&j-一11一一k:先执行i十+值为3,i=4,然后执行j-一值为3,
j=2,再执行i8.&j即38.&3值为1,“1川任意表达式”的值恒为1,不会执行-一k,因此p=1,k=3
不变。
【答案】0,0,-1,-1
1,4,2,3
【例3】以下程序输出的结果是
#include<stdio.h
int main()
int a=8,b,c;
a十=a-=a*a;
printf("a=%d,",a);
c=(a=4)(b=3):
printf("a=%d,b=%d,c=%d
",a,b,c);
printf("%d,%d,%d,%dn",13%4,13%-4,-13%4,一13%-4):
【分析】本题主要考查的知识点有三:一是复合赋值运算符的优先级和结合性:二是除法
运算;三是求余运算。
(1)a十=a一=a*a;首先计算a*a,得64,再计算表达式a=a-64,得a=-56,然后再计
算表达式a十=a,即a=a十a,得a=一1l2。
(2)c=(a=4)/(b=3):执行过程是,首先a=4,然后b=3,再计算43,由于整数除以整
数,结果也为整数,得1,最后将1赋值给c。
(3)在C语言中,%(求余)运算要求参与运算的左右两个操作数均为it型,其运算的结
果即余数的符号取决于被除数,即若被除数为正数,则余数为正数:若被除数为负数,则余数为
负数。因此13%4=1,13%一4=1,一13%4=-1,一13%一4=-1。
【答案】a=-112,a=4,b=3,c=1
1,1,-1,-1
·26·
总复习方案·第二章数据类型及其运算
巩固练习
CY⑤
1.以下(
)优先级别最高。
A.=
B.,
C.()
D.*
2.要求运算对象必须是整数的是(
A.+
B.*
C./
D.%
3.已知inta:double b:char c;float d:则执行表达式a¥(b+c一d)的结果类型是(
)。
A.int
B.double
C.char
D.float
4.能正确表示逻辑关系:“0≤a≤10”的C语言表达式是()。
A.a<=10 and a=0
B.a>=0&.a<=10
C.a<=10|la>=0
D.a<=10&.&.a>=0
5.设以下变量均为int类型,表达式的值不为7的是()。
A.(x=y=6,x+y,x+1)
B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)
D.(y=6,y+1,x=y,x+1)
6.若有代数式|yx+lg(x2+1)十3e+ln(y)|十sin(25),则正确的C语言表达式是
7.已知intx=3;执行语句x十=x一=x十x:后x的值是
8.已知intx=1,y=2,z=3,k=4;则表达式x>y?x:k<z?k:y的值是
9.以下程序输出的结果是
#include<stdio.h>
int main()
{intx=12,y=-8,z=5;
printf("%d\t",x>=y&.&.z-5);
printf("%d\t",x 2-16ly);
printf("%dt",!zf2&.&.(y+2)):
10.写出下列程序的运行结果。
#include <stdio.h
int main()
char b;int a=25,c;float d=12.5;
printf("%d,%d,%d,%d
",15%4,-15%-4,15%-4,-15%4):
c=a/2*2;b=a*d;
printf("%d,%d",c,b);
技能实践
Y⊙
1.程序填空题:已知一个三位正整数,要求倒序输出,请编程实现。如235,则输出532。
#include <stdio.h
int main()
·27.
单招零距离·计算机专业综合·下册
int x,x1,x2,x3;
scanf("%3d",&.x);
x3=x%10:
x2=x/10%10:
x1=
y=y*10+
y=y*10+x2:
y=
printf("%d",y);
2.程序填空题:将一个整数的个位数与其余位的数分离,形成两个数,如整数48762,分成
的两个数为4876,2。
#include <stdio.h>
int main()
{
long int num,high;int low;
scanf("%ld",&.num);
high=
low=
printf("高位整数为:%ld,个位数为:%d",high,low):
3.程序填空题:根据输入的三条边长a,b,c,先判断能否构成三角形,若能构成,则计算出
该三角形的面积,结果保留两位小数。
提示:(1)构成三角形的条件:任意两边之和大于第三边。
(2三角形的面积公式:S=√pp一p一b(p-(其中p=+b+S,.
2
#include <stdio.h>
#include<①>
int main (
int a,b,c;
float p,s;
printf("请输入三角形的三条边:
");
scanf("%d%d%d",&a,&.b.&.c):
if(②)/判断能否构成三角形
p=③;
s=④;/计算面积
printf(“s=⑤n”,s);/结果保留两位小数
else
·28·
总复习方案·第二章数据类型及其运算
printf(“您输入的三条边不能构成三角形!
”);
4.程序改错题:从键盘输入一个圆的底半径r和高h,输出其底面积和体积。程序有错,
请改正,修改时不得增行或减行。
底面积计算公式:πr
体积计算公式:3rh
#include <stdio.h
int main()
double r,h,area,volume;
scanf("%1f%1f",&r,&.h):
关米光关米米0米*关米f0und0米0米*米米
area=π*r¥r;
米*米米米**兴*米米0f0und米米*米*米/
volume=1/3 area h;
printf("底面积为%lf,体积面积为%lf",area,volume);
5.程序设计题:从键盘输入一个实数,分别输出其整数部分与小数部分。如实数12.56,
则输出12.560000=12+0.560000。
·29·