一、逻辑语句
1.if~else配对问题
else 总是与离他最近的if配对
2.循环
(1)for(表达式1;表达式2;表达式3)
执行顺序:
(A)表达式1
(B)表达式2,若表达式2成立,则执行(C);不成立,执行(E)
(C)执行循环体即{}里的内容;
(D)表达式3,执行(B)
(E)结束循环
3.循环的练习
二、数组
1.一维数组定义
DataType ArrayName[size];
DataType:数据类型,int,float,double,char 等等
ArrayName:数组名
size:数组的大小或数组下标,必须是常量表达式
[]: 下标运算符
下标是从0开始到size-1 !!!!
example:
//定义一个数组大小为5,其中每个元素都是int类型
int arr[5];
arr:数组名
5 :数组大小即数组元素的个数
int:数组元素的类型
(2)数组的初始化
int arr[3] = {1,2,3};
int arr1[3] = {1,3};
int arr2[3] = {1};
int arr3[3] = {[2]=3}; //不建议
int arr4[] = {1,2,3,4};//不建议
int arr5[] = {}; //error(错误)
int num = 0; //OK
int num1;
num1 = 2; //OK
int arr[5];
arr[5] = {1,2,3,4,5}; //error
注:
数组若要初始化,必须在定义的同时初始化,
不能先定义,后初始化。
//以下方法不可以!!!编译器报错
int n = 6;
int arr[n] = {1,2,3};
int m;
scanf("%d",&m);
int buf[m] = {1,2,3};
宏定义:
#define M 5
(3)数组元素的访问
使用下标形式;
int arr[5];
arr[1]:访问第二个元素
arr[4]:访问第五个元素
遍历数组元素:逐个访问
(4)数组的存储
数组也是一种数据结构,数组中的元素顺序存储;
数组中每个元素的类型都相同;
(5)数组地址问题
int arr[5];
arr:0x000000
&arr[0]:0x000000
&arr:0x000000
arr+1:0x000004
&arr[0]+1:0x000004
&arr+1:0x000014
说明:
arr:数组名,也代表数组元素的首地址,即第一个元素的地址
&arr[0]:数组元素的首地址,即第一个元素的地址
&arr:数组的首地址
arr+1和&arr[0]+1:表达的意思一样,
地址偏移一个元素大小
&arr+1:地址偏移整个数组大小
(6)数组元素的赋值
(7) char arr[16]={'h','e','l','l','o'};
char buf[16] = {"hello"};
(8)数组名不能和变量名重复!!!!!
2.二维数组(基于矩阵)
1,2,3,4,5,6,7,8,9
1 2 3
4 5 6
7 8 9
DataType ArrayName[行下标][列下标];
DataType ArrayName[][列下标];
行下标可以省略!!!!!!!!!
(1)初始化:
int arr[3][3] = {1,2,3};
int arr1[3][3]= {{1,2,3},{4,5,6},{9,8,7}};
int arr2[][3] = {1,2,3,4,5};
C C++ 语文
张三
李四
3.注释
(1)//.......:
单行注释,可以独占一行,也可以跟在执行语句之后
但"//"之后的内容。不被编译执行
规定:
注释内容放在被注释的上一行,或者同行行末;
(2)/*.........*/:
注释大段代码即注释代码块
(3)主要用于代码测试
#if 0
......
#else
......
#endif
三、作业
1、将2~100之间的素数,并遍历输出,每5个一行
实现:
#include<stdio.h> int main() { int i; int j; int a=0; for(i=2;i<=100;i++) { for(j=2;j<=i;j++) { if(i%j==0) break; } if(i==j) { printf("%d ",i); a++; if(a%5==0) printf("\n"); } } }