三网上机考试2
第一次课
结构体、链表、文件
数组、字符串
函数、指针
三种结构化程序设计
三种数据类型、六大表达式
(一)VC++6.0使用
1.如何新建程序?
文件=》新建(在新建窗口中选择文件页框中C++ Source File,在输入文件名,最后点击确定即可)=》开始书写程序
例题:
#include "stdio.h" /*命令行*/
main()/*主函数*/
{ /*函数体的开始*/
int a,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)常量:0 1 5 8956 105 0.123
定义:在程序运行的过程中,不可改变的量
分类:整型常量、实型常量、字符型常量
(小数、指数)
A:65 B:66 C:67 Z:65+25
a:97 b:98 c:99 z:97+25
(2)变量: x y z
x=2
x=3
x=99
<1>定义:在程序运行的过程中,可以改变的量
<2>实质:一个变量代表一个存储单元
<3>对一个变量进行的操作其是就是对一个存储单元进行的操作
<4>原则:先定义后使用
<5>分类:整型变量
实型变量
字符型变量
2.三种数据类型(常量、变量)
(1)整型数据
<1>整型常量(简单了解)
二进制八进制十进制十六进制
<2>整型变量(定义语句)
1>定义语句格式:
类型名变量名;
2>整型类型名(有符号、无符号)
类型名字节数
[signed] int 4B
unsigned [int] 4B
<3>变量的定义样式
1>单个变量定义:
int i;
2>多个变量定义:
int j,k,m;
3>边定义边赋值:
int a=2,b=3;
int a,b;
a=2;
b=3;
注:
1)当定义变量时,系统就会为该变量自动开辟存储空间。
2)当定义变量时,如果不给该变量赋初始值,变量所代表的空间中存放是"任意值".
(2)实型数据
<1>实型常量
小数:带小数点
指数:(简单了解)
数学C语言
5*109 5e9
8*100 8E0
-2*10-3 -2e-3
0*100 0e0
注:1)e或E均可,代表10
2)e(E)前后必须都有数字
3)e(E)后面是整型数
4)e与前后数字之间不能加空格
<2>实型变量
类型名字节数范围小数位数
float 4B -1038~1038 6
(单精度)
double 8B -10308~10308 15~16
(双精度)(6位)
定义样式:
float a=568.122;
double b=1234.4545;
注:
在给实型变量赋值整型数据时,要在整型数据后加”.0“float a=1.0;
double b=0.0;
<3>字符型数据(以后学习)
(三)六大表达式
1.算术表达式(数学表达式)
(1)运算符:
数学:{} [] () + - * / + -
C:()+ - * / % + -
正负
(2)单目、双目运算符
单目:一个操作数+5 -9
双目:两个操作数5+6 7*8
(3)/ 整除
<1>双目运算符
<2> 1/2 0
1.0/2 0.5
1/2.0 0.5
1.0/
2.0 0.5
(4)% 求余数
<1>双目运算符
<2>操作数:两个数都是整型数据
<3> 1%2 1
8%9 8
9%3 0
第二次课
(5)优先级:(先计算谁)
()+/- */% +/-
(5+8)/3+9*2
(6)结合性:(运算方向)
-5 5*2 5+9
正负:自右向左
其它:自左向右
(7)使用多层括号,一律使用小括号
运算方向:自里向外
(5-(6+8))*(9/(2-7))
(8)强制性类型转化
格式:(类型名)表达式
15.623 (int)15.623 15
2 (double)2 2.000000
注:整数部分和小数部分
double a=123.4655;
整数部分:(int)a
小数部分:a-(int)a
2.赋值表达式
(1)格式
变量名=表达式
(2)变量的实质:存储单元
(3)表达式:常量、变量、六大表达式
(4)在赋值表达式中,赋值号的左端只能为变量名
5+8=a b=a
(5)int x=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 真非0 1
假0 0
(2)运算符
> >= < <= == !=
(3)优先级
> >= < <= == !=
自左向右
(5)结果:逻辑值
5<6 7>9
4.逻辑表达式
(1)运算符
!:(不补集)
&&:(与交集)
||:(或者并集)
(2)
!:单目运算
&& ||:双目
(3)优先级
高低:!&& ||
(4)结合性
!:自右向左
&& ||:自左向右
(5)使用
!0 1 !1 0
1&&1 1 1||1 1
1&&0 0 1||0 1
0&&1 0 0||1 1
0&&0 0 0||0 0
(6)结果:逻辑值
(7)数学表示方式
|x|<=9 -9<=x<=9 x>=-9&&x<=9
|x|>=9 x>=9或x<=-9 x>=9||x<=-9
(8)断路问题
<1>在逻辑&&运算中,如果表达式1已经为逻辑假,表达式2不用执行,该表达式值为逻辑假
<2>在逻辑||运算中,如果表达式1已经为逻辑真,表达式2不用执行,该表达式值为逻辑真
5.条件表达式
6.逗号表达式
(1)格式:
表达式1,表达式2,表达式3,表达式4,……,表达式n
(2)优先级:所有运算符中优先级最低
(3)结合性:自左向右
int a=8;
a+=3,a=5,a+3; ?a
a=11
附:<1>++ 、--
1>功能
++:+1 自动赋值
--: -1 自动赋值
3>操作数可以放在运算符的右边也可以放在运算符的左边
i++ ++i i-- --i
4>操作数可以为整型、实型的变量2++ 2=2+1
i++ i=i+1 ++i i=i+1
i-- i=i-1 --i i=i-1
5>表达式值和变量值
int i;
表达式值变量值
i=5 i++ 5 6
i=5 ++i 6 6
i=5 i-- 5 4
i=5 --i 4 4
int i=5;
j=i++;
j=5 i=6
int i=5;
j=++i;
j=6 i=6
<2>所有运算符的优先级(六个表达式)
高=》低
()++/-- !算术表达式关系表达式逻辑表达式
条件表达式赋值表达式逗号表达式
<3>
1>奇数和偶数int x;
奇数: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)double a=1233.1546;
printf("%6.2f",a);
2>输入格式
<1> 键盘=》内存=》显示器
scanf printf
<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 多条(复合):以{为开始
以}为结束
int a=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 语句1 6 else 语句2 x<=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=0 y=0 1 2 3 4 20 x=1 y=0 1 2 3 4 5 20 x=2 y=0 1 2 3 4 5 20 x=3 y=0 1 2 3 4 5 20 x=20 y=0 1 2 3 4 5 20 for(x=0;x<=20;x++) for(y=0;y<=20;y++) if(x+y==20) printf("x=%d,y=%d",x,y); int i,j,s=0; for(i=0;i<3;i++) for(j=0;j<2;j++) s+=i+j; i=0<3 j=0<2 s=0 j=1<2 s=1 j=2<2 i=1<3 j=0<2 s=2 j=1<2 s=4 j=2<2 i=2<3 j=0<2 s=6 j=1<2 s=9 j=2<2 i=3<3 注:当一个变量变化一次,另一个变量变化多次,这种情况使用循环嵌套。 (五)算法 <1>交换a=10 b=20 t=a; a=b; b=t; <2>奇数、偶数、整除(x) 奇数:x%2!=0 偶数:x%2==0 整除:x%i==0 不整除:x%i!=0 注:多个数同时整除,只要被最小公倍数整除<3>小数、整数double x; 3.1456 小数:x-(int)x 整数:(int)x <4>四位数(千位、百位、十位、个位)int x qw=x/1000; bw=x%1000/100; sw=x%100/10; gw=x%10; <5>累和 1+2+3+4+5+6 s:0 1 3 6 101521 i s=s+1 s=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() { int i,n=0,s=0; double ave; for(i=1;i<7;i++) s+=i; ave=(double)s/7; printf("%f\n",ave); } <7>求个数 从1-10之间求奇数的个数。 #include "stdio.h" main() { int i,n=0,s=0; double ave; 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之间满足条件四位数的和值和个数。 条件:个位减千位减百位减十位大于零并且该四位数为偶数。