三网上机考试2.docx
《三网上机考试2.docx》由会员分享,可在线阅读,更多相关《三网上机考试2.docx(19页珍藏版)》请在冰点文库上搜索。
三网上机考试2
第一次课
结构体、链表、文件
数组、字符串
函数、指针
三种结构化程序设计
三种数据类型、六大表达式
(一)VC++6.0使用
1.如何新建程序?
文件=》新建(在新建窗口中选择文件页框中C++SourceFile,在输入文件名,最后点击确定即可)=》开始书写程序
例题:
#include"stdio.h"/*命令行*/
main()/*主函数*/
{/*函数体的开始*/
inta,b,c;/*定义语句*/
a=2;/*执行语句*/
b=3;
c=a+b;
printf("a=%d,b=%d,c=%d",a,b,c);/*输出语句*/
}/*函数体的结束*/
2.编写完程序后=》编译(编译-》编译)=》构件(编译-》构件)=》执行(编译-》执行)
3.printf:
输出语句
格式:
printf(“格式控制”,输出项);
格式控制:
提供原样输出.
格式控制符是由输出项定义的数据类型来决定的.
输出项:
多个输出项用逗号作为间隔.
(二)三大数据类型(主旨:
定义语句)
1.标识符
作用:
起名字(变量名文件名函数名数组名)
组成:
字母、数字、下划线
第一个字符:
字母、下划线
2.常量和变量
(1)常量:
01589561050.123
定义:
在程序运行的过程中,不可改变的量
分类:
整型常量、实型常量、字符型常量
(小数、指数)
A:
65B:
66C:
67Z:
65+25
a:
97b:
98c:
99z:
97+25
(2)变量:
xyz
x=2
x=3
x=99
<1>定义:
在程序运行的过程中,可以改变的量
<2>实质:
一个变量代表一个存储单元
<3>对一个变量进行的操作其是就是对一个存储单元进行的操作
<4>原则:
先定义后使用
<5>分类:
整型变量
实型变量
字符型变量
2.三种数据类型(常量、变量)
(1)整型数据
<1>整型常量(简单了解)
二进制八进制十进制十六进制
<2>整型变量(定义语句)
1>定义语句格式:
类型名变量名;
2>整型类型名(有符号、无符号)
类型名字节数
[signed]int4B
unsigned[int]4B
<3>变量的定义样式
1>单个变量定义:
inti;
2>多个变量定义:
intj,k,m;
3>边定义边赋值:
inta=2,b=3;
inta,b;
a=2;
b=3;
注:
1)当定义变量时,系统就会为该变量自动开辟存储空间。
2)当定义变量时,如果不给该变量赋初始值,变量所代表的空间中存放是"任意值".
(2)实型数据
<1>实型常量
小数:
带小数点
指数:
(简单了解)
数学C语言
5*1095e9
8*1008E0
-2*10-3-2e-3
0*1000e0
注:
1)e或E均可,代表10
2)e(E)前后必须都有数字
3)e(E)后面是整型数
4)e与前后数字之间不能加空格
<2>实型变量
类型名字节数范围小数位数
float4B-1038~10386
(单精度)
double8B-10308~1030815~16
(双精度)(6位)
定义样式:
floata=568.122;
doubleb=1234.4545;
注:
在给实型变量赋值整型数据时,要在整型数据后加”.0“
floata=1.0;
doubleb=0.0;
<3>字符型数据(以后学习)
(三)六大表达式
1.算术表达式(数学表达式)
(1)运算符:
数学:
{}[]()+-*/+-
C:
()+-*/%+-
正负
(2)单目、双目运算符
单目:
一个操作数+5-9
双目:
两个操作数5+67*8
(3)/整除
<1>双目运算符
<2>1/20
1.0/20.5
1/2.00.5
1.0/2.00.5
(4)%求余数
<1>双目运算符
<2>操作数:
两个数都是整型数据
<3>1%21
8%98
9%30
第二次课
(5)优先级:
(先计算谁)
高-》低
()+/-*/%+/-
(5+8)/3+9*2
(6)结合性:
(运算方向)
-55*25+9
正负:
自右向左
其它:
自左向右
(7)使用多层括号,一律使用小括号
运算方向:
自里向外
(5-(6+8))*(9/(2-7))
(8)强制性类型转化
格式:
(类型名)表达式
15.623(int)15.62315
2(double)22.000000
注:
整数部分和小数部分
doublea=123.4655;
整数部分:
(int)a
小数部分:
a-(int)a
2.赋值表达式
(1)格式
变量名=表达式
(2)变量的实质:
存储单元
(3)表达式:
常量、变量、六大表达式
(4)在赋值表达式中,赋值号的左端只能为变量名
5+8=ab=a
(5)intx=2,y=3;
x=y:
将变量y所代表的单元中的值取出来赋值给变量x所代表的单元中
x=x+1:
将变量x所代表的单元中的值取出来+1赋值给变量x代表的单元中
x=x:
左x:
代表x所标识的单元
右x:
将变量x所代表的单元中的值取出来
单元=值
(6)变量中的值在不断进行更新
x=2
x=3
x=99
3.关系表达式
(1)逻辑值
平时C真非01
假00
(2)运算符
>>=<<===!
=
(3)优先级
>>=<<===!
=
(4)结合性
自左向右
(5)结果:
逻辑值
5<67>9
4.逻辑表达式
(1)运算符
!
:
(不补集)
&&:
(与交集)
||:
(或者并集)
(2)
!
:
单目运算
&&||:
双目
(3)优先级
高低:
!
&&||
(4)结合性
!
:
自右向左
&&||:
自左向右
(5)使用
!
01!
10
1&&111||11
1&&001||01
0&&100||11
0&&000||00
(6)结果:
逻辑值
(7)数学表示方式
|x|<=9-9<=x<=9x>=-9&&x<=9
|x|>=9x>=9或x<=-9x>=9||x<=-9
(8)断路问题
<1>在逻辑&&运算中,如果表达式1已经为逻辑假,表达式2不用执行,该表达式值为逻辑假
<2>在逻辑||运算中,如果表达式1已经为逻辑真,表达式2不用执行,该表达式值为逻辑真
5.条件表达式
6.逗号表达式
(1)格式:
表达式1,表达式2,表达式3,表达式4,……,表达式n
(2)优先级:
所有运算符中优先级最低
(3)结合性:
自左向右
inta=8;
a+=3,a=5,a+3;?
a
a=11
附:
<1>++、--
1>功能
++:
+1自动赋值
--:
-1自动赋值
2>单目运算
3>操作数可以放在运算符的右边也可以放在运算符的左边
i++++ii----i
4>操作数可以为整型、实型的变量2++2=2+1
i++i=i+1++ii=i+1
i--i=i-1--ii=i-1
5>表达式值和变量值
inti;
表达式值变量值
i=5i++56
i=5++i66
i=5i--54
i=5--i44
inti=5;
j=i++;
j=5i=6
inti=5;
j=++i;
j=6i=6
<2>所有运算符的优先级(六个表达式)
高=》低
()++/--!
算术表达式关系表达式逻辑表达式
条件表达式赋值表达式逗号表达式
<3>
1>奇数和偶数intx;
奇数:
x%2!
=0
偶数:
x%2==0
2>x能整除y:
x%y==0
x不能整除y:
x%y!
=0
3>能被多个数同时整除,只要能被这些数的最小公倍数整除即可。
4>当&&和||在一起时,如果要先进行||运算,必须给||运算添加括号。
(四)三种结构化程序设计
1.顺序结构
(1)输入和输出语句(#include"stdio.h")
1>printf:
输出
1)格式:
printf(“格式控制符”,输出项);
2)格式控制符:
由输出项的类型决定.
int:
%d有符号十进制整型数
float%f(%lf)小数
double
3)格式控制符中提供原样输出,格式控制符是由输出项定义的数据类型来决定的。
4)doublea=1233.1546;
printf("%6.2f",a);
2>输入格式
<1>键盘=》内存=》显示器
scanfprintf
<2>scanf:
1>格式:
scanf("格式控制符",输入项)
2>格式控制符:
由输入项的类型决定.
int:
%d有符号十进制整型数
float%f小数
double%lf小数
3>输入项:
&变量名
&(求地址符)
scanf("%d%d%d",&a,&b,&c);
5>在黑屏幕中输入,输入数据时,各个数据中间以空格\tab\回车键作为间隔符,但是输入字符,各个字符之间不能加空格.最后一个字符以回车作为结束
(3)复合语句>1
格式:
{语句1;
语句2;
语句3;
…………
语句n;
}
2.选择结构
<1>if语句
格式:
if(表达式)
语句
1>if是关键字
2>表达式:
常量、变量、六个表达式
3>语句:
一条:
以;作为结束
>1多条(复合):
以{为开始
以}为结束
inta=2,b=5;
if(a>=b)
{a=a*2;
a=a+b;
}
4>执行过程:
表达式真执行语句
表达式假不执行语句
<2>if-else语句
1>格式:
if(表达式)
语句1
else
语句2
1>if、else是关键字
2>表达式:
常量、变量、六个表达式
3>语句1、语句2:
一条:
以;作为结束
>1多条(复合):
以{为开始
以}为结束
4>执行过程:
表达式真=》执行语句1
表达式假=》执行语句2
5>if与else成对出现
6>if与else的条件互为补集
作业:
(1)给出一个实型数据,求该实型数据的整部部分和小数部分分别是多少?
(2)给出一个整数,判断该整数是否为偶数,如果是输出“yes”,否则输出"no".
(3)给出一个整数,判断该数整除能否被3和7同时整除,如果是输出“yes”,否则输出“no”.
(4)给出一个整数,判断该数整除能否被7或11整除,但是不能同时被7和11整除,如果满足上述条件输出“yes”,否则输出"no".
第三次课
<3>if语句嵌套
if(表达式1)x<10
if(表达式2)x>6语句16else语句2x<=6
<4>else语句嵌套
if(表达式1)语句1
else
if(表达式2)语句2
else
if(表达式3)语句3
3.循环结构
<1>while语句
while(表达式)
循环体
1>while是关键字
2>表达式:
常量、变量、六个表达式
3>循环体:
一条:
以;作为结束
>1多条(复合):
以{为开始}为结束
4>执行过程:
只要表达式为真,执行循环体,直到表达式为假为止.
5>结束循环:
表达式补集
<2>for语句
格式:
for(表达式1;表达式2;表达式3)
循环体
1>for关键字
2>表达式1、表达式2、表达式3:
常量、变量、六个表达式、空
3>循环体:
一条:
以;作为结束
>1多条(复合):
以{为开始,}为结束
4>for语句的通常书写格式:
for(变量赋初始值;条件;变量增加或减少)
循环体
5>执行过程:
6>结束循环:
表达式2的补集
<4>循环嵌套
x+y=20(x和y都是正整数)
x=0y=0123420
x=1y=01234520
x=2y=01234520
x=3y=01234520
x=20y=01234520
for(x=0;x<=20;x++)
for(y=0;y<=20;y++)
if(x+y==20)
printf("x=%d,y=%d",x,y);
inti,j,s=0;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
s+=i+j;
i=0<3j=0<2s=0
j=1<2s=1
j=2<2
i=1<3j=0<2s=2
j=1<2s=4
j=2<2
i=2<3j=0<2s=6
j=1<2s=9
j=2<2
i=3<3
注:
当一个变量变化一次,另一个变量变化多次,这种情况使用循环嵌套。
(五)算法
<1>交换a=10b=20
t=a;
a=b;
b=t;
<2>奇数、偶数、整除(x)
奇数:
x%2!
=0
偶数:
x%2==0
整除:
x%i==0不整除:
x%i!
=0
注:
多个数同时整除,只要被最小公倍数整除
<3>小数、整数doublex;3.1456
小数:
x-(int)x
整数:
(int)x
<4>四位数(千位、百位、十位、个位)intx
qw=x/1000;
bw=x%1000/100;
sw=x%100/10;
gw=x%10;
<5>累和
1+2+3+4+5+6s:
0
136101521
i
s=s+1s=s+i
s=s+2
s=s+3
s=s+4
s=s+5
s=s+6
for(i=1;i<7;i++)
s+=i;
<6>平均值
1+3+5+7+9+11+13+15
1>和值
2>平均值=和值/个数
#include"stdio.h"
main()
{
inti,n=0,s=0;
doubleave;
for(i=1;i<7;i++)
s+=i;
ave=(double)s/7;
printf("%f\n",ave);
}
<7>求个数
从1-10之间求奇数的个数。
#include"stdio.h"
main()
{
inti,n=0,s=0;
doubleave;
for(i=1;i<10;i++)
if(i%2!
=0)
n++;
printf("%d",n);
}
作业:
(1)从1-100之间求所有奇数的和值和偶数的平均值.
(2)从1-100之间求能同时被3和7整除的所有数的平均值.
(3)从3000-5000之间满足条件四位数的平均值以及不满足条件四位数的平均值。
条件:
千位加百位等于十位加个位
(4)从5000-8000之间满足条件四位数的和值和个数。
条件:
个位减千位减百位减十位大于零并且该四位数为偶数。