| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

计算机培训 c语言知识点概要

小***库

贡献于2021-03-03

字数:18734

C语言章节复
第章:C语言概述
1C语言特点
1)C程序main()函数
2)C程序文件main()函数
C程序总main()函数开始执行
3)C程序基单位 函数
4)C函数基单位 语句
5) C程序语句必须 结束
6)C程序 * * 作注释开始结尾
7)C程序语句写行
8)C程序行写语句
:a10 printf(d\na)
9)C语言区分写 _
10)C语言没输入输出语句函数代
11)#编译预处理include包含语句
12)C识半角语言字符全角果想输出汉字必须函数括起
第二三章:数类型运算符表达式标准输入输出
1 C程序标识符 字母 数字 划线 组成第1字符必须 字母 划线____
2 常量
整型:三种表示形式:a)十进制整数例:12b)八进制整数例:012c)十六进制整数0258387503570x35b6945L
实型:两种表示形式:a)十进制数形式例:123456b)指数形式例:1e323e31367950584510005e5124e10125E2
注意:1)E指数部分必须整数
2)字母Ee前必须数
3)字母Ee前数字间空格
字符型: ’括号括起单字符
1)普通字符:’a’’B’’’’’’#’’’
2) 转义字符:’\n’ ’\t’ ’\r’ ’\b’ ’\\’ ’\’’ ’\’
3) \加1~3位八进制表示字符(范围0~377)’\54’’\127’ ’\07’
\x加1~2位16进制表示字符’\x54’’\xa7’ ’\xaf’
字符串型: 括号括起字符c语言动面加’\0’
This is a mapbdWQ\\hm\bab\’89\4A\tOU
符号常量:#define PI 314
#define EOF (1)
3 变量包含五素类型名称容址存储类型
4填写表
  类型
表示
占字节数
(视系统定) 
表数范围/效位数
输出格式
整型
Int
2
32768+32767
d o x
符号整型
unsigned
2
0~65535
u o x
长整型
Long
4
2147483648 +2147483647
ld lo lx
单精度浮点型
Float
4

f e g
双精度浮点型
Double
8

lf f e
字符型
Char
1
0~255
c
字符串型
char
N
n
s
5 类型数进行混合运算时数转换方式两种:动转换强制类型转换中前种转换方式规:低类型转换成高类型赋值号右边类型转换成左边类型
6 printf(格式控制输出列表)
1) 格式控制包括:原样输出字符格式符转义字符
格式符包括(doxXufeEgGcsp)
2) 输出列表常量变量表达式输出值项间分隔
3) 格式控制输出列表类型项数相
4) 指定宽度mmn
A) m表示输出总宽度实际宽度m时实际位数输出printf(6d3d\n3587 3587)
B) n表示四舍五入输出数位数表示取字符串左端n字符
printf(73f54s5905327abcderf)
5) 加Ll:输出long型double型
6) 加减号:左齐
7) 加0:左边补0
7 scanf((格式控制输入址列表)
1) 格式控制包括:格式符原样输入字符
2) 址列表定址:普通变量址字符串数组名(首址)
3) 输入项间空格Tab键回车分隔
4) 格式符前加l表示输入长整型数(ldlolxlu)double数(lfle)
5) 格式符前加数字m指定输入数宽度指定精度mn
:scanf(3d4d&a&b)
6)加*m表示跳(丢掉)m列
:scanf(4d*3d4d&a&b) (分输入12 345 67123456789)
7)scanf()输入字符串时遇空格输入结束
8 算术运算 (+*++)
1)两整数相结果整数两实数相结果double实数
:508 值:__6_____ 508 值:___6125____
printf(df\n508508) 结果_______
2) 取余运算适整数余数符号数符号相
:508 值:_______ 508 值:_______
508 值:_______ 508 值:_______
3)增减运算
A)++ii:变量值先加1减1然新值进行运算
B)i++i:变量先原值参运算然值加1减1新值表达式语句生效:
main()
{int i3jk
ji++kii++
printf(ddd\nijk)
}
执行i3j(i++)+(i++)+(i++)i值___6____j值___9____
执行i3j( ++ i)+(++i)+(++i)i值___6____j值___18____
C)++运算变量常量表达式
D)注意区普通变量增数组指针变量结构数组指针变量增减意义
:int a3b[5]*pb
a++p++意义
4)算术运算优先级++ * +
9 赋值运算(+*…)
a) 赋值号左边必须变量右边常量变量表达式
b) 赋值变量值变新赋值原值掉法恢复
c) 赋值运算结合性右左
:执行a10 a+aa*aa值:________
a5执行a+a*a3a值__________
4)区a10aa10~aa<<2
10 关系运算(><>< )
a) 关系运算结果:01
b) 关系运算非零数成1
c) ><><优先级高
11 逻辑运算(&&||非)
a) &&:两数1’结果1
b) ||:两数0’结果0
c) 非:0非1 1非0
d) 优先级:高&&居中||低
e) 注意短路现象
12条件运算(式1式2:式3)
1) 条件运算优先级仅高赋值运算逗号运算
2) :x4y6zx>yx+yxyz值________
x4y6zx+5>yx+yxyz值________
x4y6z5z+x+5>y+3x+yxyz值________
13逗号运算(式1式2…式n)
1) 次计算表达式值表达式值作整逗号表达式值
2) 逗号运算优先级低
:表达式(x(a2a+7)b5))值________
a5执行语句xa+7b5 x
3) 逗号表达式表达式构成新逗号表达式
:表达式(x2*5x*5)x+5值
4) 出现方作逗号运算符(intprintfscanf)
:printf(dd\n(xyz)z)
14sizeof()运算符
1)计算类数占存储空间字节数
2)括号常量变量类型说明符等
int ab[20]char *pabcdefghi
sizeof(5)sizeof(52)sizeof(a’)sizeof(abcde)
sizeof(a)sizeof(b)sizeof(p)
sizeof(char)sizeof(double)sizeof(strucu student)
15运算优先级
1级()[ ]>
2级单目运算~*&++ 右左
34级算术运算:*+
5级移位运算:<< >>
左移位等该数*2右移位等该数2取整
67级关系运算:><><
8910级位运算:&位^(异)|位
先化二进制进行位运算中异算法两位相0两位相异1
1112级逻辑运算:&&||
13级条件运算:式1?式2:式3右左
14级赋值运算:+*结合性右左
15级逗号运算:式1式2… 式n

第四章:选择结构
特注意:C语言中非0表示逻辑真0表示逻辑假
C语言构造类型没逻辑类型
关系运算符号:注意<写法区(考试重点)
if面语句请括号
If(a) if(a)表示什意思

1单分支:if (表达式)
语句
功:先计算表达式值1执行语句然执行续语句
0直接执行续语句
2双分支:if (表达式)
语句1
else
语句2
功:先计算表达式值1执行语句1然执行续语句
0执行语句2然执行续语句
说明:1)应if语句成条语句分两部分写两行缩
2)语句包含条时{}括起组成复合语句
3)分支双分支构成
4)else总if结合
5)分支形式种构成if…else嵌套
6)分支单分支完成
7)条件表达式中运算&&&&前面式子值0运算&&面式子:
main()
{int abk
a
b
结果
1
5
5 0
4
5
4 3
4
0
3 1

if(++a<0&& b printf(dd\nab)
else
printf(dd\nba)
printf(dd\nab)
}
3分支:if (表达式1)
语句1
else if (表达式2)
语句2
else if (表达式3)
语句3
else
语句4
4分支:switch (表达式)
{case 常量表达式1:语句1
break
case 常量表达式2:语句2
break
……
case 常量表达式n:语句n
break
default 语句n+1
}
1)功:先计算表达式值case常量表达式相时进入相default中进入进入序执行遇break退出switch语句
2)default语句位置先
3)表达式结果整型值字符值case面定整型常量字符常量
表达式0453+250A’b等i+3abcd等
例:main()
{int a
scanf(d&a)
switch(a3)
{case 1 a+1
case 2 a+2
case 3 a+3
case 4 a+4
case 5 a+5
default a+10
}
printf(ada)
}

4)写出列程序结果
main()
{int xy
scanf(d&x)
输入x值
Y值
5
1
0
0
4
1

y1
if (x<0)
if (x0)
y0
else
y1
printf(d\ny)
}


第五章:循环结构
1while循环
while (表达式)
循环体
2do…while循环
do {
循环体
}
while (表达式)
3for循环
for (表达式1表达式2表达3)
循环体
4说明
1)理解三种循环执行程
条件1执行循环体条件0退出循环执行续语句
2)整循环语句作语句写成两行注意缩
3)注意if语句区:条件表达式if语句判断执行次循次判断执行
4)注意简易方法分析循环
5)注意if语句连时分析
6)理解双循环执行程
7)进入循环前注意某变量赋初值:求s0求积n1排序求公约数等
8)条件表达式中运算&&&&前面式子值0运算&&面式子:
main()
a
b
结果
7
7

8
6

8
4






















{int a5b8
while(++a>7&&b<7)
printf(dd\nab)
printf(dd\nab)
}

5break:①结束整循环
②跳出循环跳出外层循环
③循环switch语句
6continue结束次循环开始次循环
7程序举例:
1)判断数否素数输出 100~200间素数数(例5758)
2)计算∏值(见例54p100)
3)计算级数值(见题58P113)
4)求阶n


第六章:数组
数组
维数组
1定义意义
格式:数类型 数组名[整型数]
:int a[10]
意义:定义10变量(元素)变量存放整数
a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]
说明:标0开始定义时标整型数整型数表达式符号常量变量
:#define N 10
int a[10] score[N]b[4+6]
2赋值:
1)直接赋值 a[0]6 a[1]5 a[2]a[0]+a[1]
2)定义时赋值
int a[10]{75389121064}
float b [20]{658946}
注意:A)定义时赋初值元素值确定赋值部分余元素值0\0’
B)省略标 int a[ ]{75389121064}
C)赋值数标数否系统会报错
D)int a[10]{ }int a[10]{75 912 }
3)键盘赋值:scanf(d&a[0])(循环元素赋值)
3输出:数值数组必须单独输出printf(da[0])
4数组存储:元素先序存储数组名表示首址常量定义赋值
5注意区:定义时赋值非定义时赋值
:int a[10]{75389121064}
a[10]{75389121064}(错误)
6例题:
1)找出列数值输出(三种方法编程)
3 2 5 9 6 4 7 10 8 1
2)输入10整数找出值输出值位置
3)键盘输入10整数输出计算均值
4)键盘输入10整数存入数组中然数倒置输出
5)列数排序输出(分选择排序泡排序直接交换排序编程)
3 8596210714

二字符数组
1字符数组作:存放字符串(string)字符串双引号括起串字符面动加’\0’ABCDEStudent This is a map
2字符数组定义意义
格式:数类型 数组名[整型数]
:char s[10]
意义:定义10变量(元素)变量存放字符
s[0]s[1]s[2]s[3]s[4]s[5]s[6]s[7]s[8]s[9]
3赋值:
1)直接赋值 s[0]’A’ s[1]’m’ s[2]’7’
2)定义时赋值
char s[10]{A’’B’’C’’D’’E’’F’’G’’H’’I’’’’\0’} *需手工加’\0’*
char s[10]{ABCDEFGHI}
char s[10]ABCDEFGHI
注意:定义时赋初值元素值确定赋值部分余元素值0\0’
3)键盘赋值:
scanf(c&s[0]) *循环元素赋值接收意字符*
scanf(ss) *面写数组名输入时空格回车Tab键作结束字符串动加’\0’*
gets(s) *输入时回车键作结束字符串动加’\0’*
strcpy(sABCDE)
4输出:
printf(cs[i]) *循环输出*
printf(ss) *整体输出面写数组名遇’\0’结束*
puts(s) *整体输出面写数组名遇’\0’结束输出完换行*
5数组存储:元素先序存储数组名表示首址常量定义赋值
6字符串处理:前遍
7例题
1)输入字符串然输出(三种方法输入输出ABCDEFGIHJ)
2)输入句英文统计出英文字符数
3)输入段文字中写字母转换写然输出
4) 输入行字符统计中字母数字字符数
5) 输入行字符串复制字符数组中
6 ) 输入两字符存入St数组中t连接s面
三字符串处理函数
1输入字符
格式:cgetcher() scanf(c&c)相
功:键盘接收字符存变量C中接收意字符
2输出字符
格式:putchar(c)
功:C中字符显示屏幕
:putchar (A’) char c’A’ putchar(c)
3输入字符串
格式:gets(s)
功:接收字符串存入数组s中输入时回车键作结束字符串动加’\0’
4输出字符串
格式:puts(s)
功:数组s中字符串输出屏幕遇’\0’结束输出完换行
5求字符串长度
格式:strlen(s)
功:返回字符串含字符数(长度)’\0’记
:char s[50]ABCDEF
strlen(s) 结果:6
strlen(This is a map) 结果:14
6字符串复制
格式:strcpy(st)
功:数组t(源)中字符串复制s(目标)中
:char s[20]t[20]ABCDE
strcpy(st)
strcpy(sstudent)
说明:源定字符串变量目标字符串变量字符串常量
7字符串连接
格式:strcat(st)
功:字符串t连接字符串s
:char s[50]abcdet[20]m123
strcat(st) 结果:abcdem123
strcat(sxyz) 结果:abcdexyz
说明:源定字符串变量目标字符串变量字符串常量
8字符串较
格式:strcmp(st)
功:st中字符较s返回正整数n s返回负整数n相等返回0
:strcmp(abcfabcdefg) 结果 2
strcmp(abcdabcdefg) 结果101
strcmp(ABCDEABCDE) 结果 0
说明:两字符串字符串变量字符串常量
9说明:
getcher()putchar(c)gets(s)puts(s)包含stdioh中
strlen(s)strcpy(st)strcat(st)strcmp(st) 包含stringh中
10例:
意输入两字符串存入a中存入b中然输出
四二维数组
1定义意义
格式:数类型 数组名[m][n]
:int a[3][4]
意义:定义3行4列3*4变量(元素)变量存放整数
a[0][0]a[0] [1]a[0] [2]a[0] [3]
a[1][0]a[1] [1]a[1] [2]a[1] [3]
a[2][0]a[2] [1]a[2] [2]a[2] [3]
2赋值:
1)直接赋值 a[0][0]6 a[0][1]5
2)定义时赋值
int a[3][4]{123456789101112}
int a[3][4]{{1234}{5678}{9101112}}
int a[][4]{{123}{56}{9}}
注意:A)定义时赋初值元素值确定赋值部分余元素值0\0’
B)省略第标 int a[ ][4] {12345678910 }
3)键盘赋值:scanf(d&a[0][0])(输入双循环元素赋值)
3输出:数值数组必须单独输出双循环输出元素
printf(da[0][0])
4数组存储:行序存储数组名表示首址常量定义赋值
:main()
{int a[3][4]{123456789101112}ij
for(i0i<3i++)
for(j0j<4j++)
printf(d a[i][j])
printf(\nu a)
}
5例
1)编程:求5行5列矩阵角线元素
2)编程:4行4列矩阵转置
3)某班30四门课程语文数学英语专业课编程输入成绩求总分均分科科分
五二维字符数组
1定义意义
格式:数类型 数组名[m][n]
:char s[3][10]
意义:定义3行10列3*10变量(元素)变量存放字符
行存放字符串存s[0]s[1]s[2]中
s[0] s[0][0]s[0] [1]s[0] [2]s[0] [3]……s[0] [9]
s[1] s[1][0]s[1] [1]s[1] [2]s[1] [3] ……s[1] [9]
s[2] s[2][0]s[2] [1]s[2] [2]s[2] [3] ……s[2] [9]
2赋值:
1)直接赋值 s[0][0]’A’ s[0][1]’B’
2)定义时赋值
int s[3][10]{A’’B’’C’’\0’}
int s[3][10]{ABCXYZMNOPQ}
int s[][10]{chismchangechankchar check }
3)键盘赋值:
次输入字符:scanf(c&s[0][0])
s[0][0]getchar()
次输入字符串:scanf(ss[0])
gets(s[0])
3输出:
次输出字符:printf(c s[0][0])
putchar(s[0][0])
次输出字符串:printf(ss[0])
puts(s[0])
4例
1)输入列五字符串排序输出
chismchangechankchar check

第七章 函数
1函数定义
1) 函数定义格式
类型 函数名(形参列表) *函数首部*
{语句组 *函数体*
return 式子
}
2)类型:指函数返回值类型intfloatcharlongvoid…
中int型省略
3) 形参列表:子函数调函数接收数变量(等赋值左边)形参说明类型分隔没形参
4) 函数体:完成相应功
2函数调:
1)格式:函数名(实际参数)
2)说明:实际参数函数传递子函数数等赋值右边数变量式子
3)调形式:
①函数作单独行语句进行调mj(ab)
printf(…)
②函数作表达式部分 xmj(ab)
nsqrt(x)
③函数作函数参数进行调:printf(f\n mj(ab))
printf(f\n sqrt(x))
3函数返回:函数返回return返回执行函数尾动返回调函数函数返回值时须函数定义void型
4函数说明:
A)般子函数应写前面函数写面果函数定义调应先进行说明正确调
B)说明方法:定义时函数首部相似加分号省略形参int型函数说明float mj(float afloat *b)
float mj(floatfloat *)
C)说明位置:函数部外部
5函数运行程:
运行函数前部→调子函数→运行子函数→返回函数→运行函数部
6函数参数传递(特注意函数子函数中变量名意情况)
1)赋值调:赋值调时函数实参值复制份传递形参进行单传递实参常量变量表达式
2)传址调:传址调函数调函数变量址传子函数中调语句采swap(&a&b)传递存址子函数参数般指针型swap(int *aint *b)
7数组调
1)维数组 int a[10]{ 12345678910}
①调时般传递数组名数组子函数fun(a10)
②子函数首部形式:fun(int a[]int n)fun(int *aint n)
种形式子函数指针指函数首址
2)二维数组 int a[3][4]{123456789101112}
①调时般传递数组名行数子函数fun(a3)
②子函数首部形式:fun(int a[][4]int n)fun(int (*a)[4]int n)
3)字符串数组般传递数组名
8函数嵌套
1)意义:函数中调函数函数嵌套
main()调a()函数a()函数调b()函数 b()函数调c()函数…
2)函数递调:
函数身调身main()调a()函数a()函数调a()函数…
9局部变量全局变量
1) 局部变量:函数定义函数块定义函数块效退出函数块时动释放定义初值定
2) 全局变量:定义函数外变量定义开始程序文件结束变量直效初值0
3) 分析列程序运行结果
练1 练2
int m13 main()
int fun2(int xint y) {int a3b2c1
{int m3 c++b
return(x*ym) b*a+c
} {int b5c12
cb*2
main() ac
{int a7b5 printf(dddabc)
printf(d\nfun2(ab)m) a+c
} }
printf(ddd\nabc)
}
10变量存储类型
动态存储 动变量:auto
1)变量存储类型 寄存器变量register
静态存储 静态变量static
外部变量extern

2)特点
名称
表示
初值
函数结束存储空间
特点
动变量
auto

动释放
默认auto变量
寄存器变量
register

动释放寄存器
存放cpu寄存器中cpu寄存器够时转auto
静态变量
static
0’\0’
释放
次进入进行次定义初始化
外部变量
extern
0’\0’
释放
1)外部变量进行说明
2)面定义变量提前
3)程序文件间变量引
11 程序举例
P184185:题13911


第八章:指针
指针基知识
引例:int abx[10]{12345678910}*p*q
通列程序变量名称容址
#include
#define N 10
main()
{int x100y200a[N]{12345678910}*p&a*qxi
printf(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n x y ) *显示xy名称*
for (i0i printf(a[d] i)
printf(\n6d6dxy) *显示xy容*
for (i0i printf(6da[i])
printf(\n6u6u&x&y) *显示xy址*
for (i0i printf(6u&a[i])
}
1指针变量:定义时带*号变量存放变量址种变量称指针变量
指针变量存放变量址说指变量
2指针定义方式意义
类型 *变量名
:int a5b10*p&a*q&b
float mn*x
char s[10]ABCD*ch

int *p[5] 意义:
int (*p) [5] 意义:
int **p1 意义:
指针变量六属性:
指针变量名称类型容址存储类型指针变量指容
3指针赋值(赋值画指图)
1) 变量址赋指针变量:int a*p p&a
2) 数组名赋指针变量:float a[10]*x xa
3) 指针变量赋指针变量 :int a10*p&a*q qp
4)赋空值:(0’\0’NULL):char *c cNULL
5)赋值形式:定义时赋值 int a*p&a
定义赋值 p&a
6)注意:指针变量值存中址数值表达式指针变量赋值指针变量存放类型变量址
:int *p
p1000 p400+1500 (错)
char c p&c (错)
4指针引:取值运算符*存取指变量值
:*p5 *x4565
b*p+*x printf(d d\n*p*x)
5说明:
1)注意区定义时*p引时*p
int *a
*a8
2)类型指针变量占存储空间2字节(存址0~65535)
6例键盘输入两整数交换值输出
二指针数组(数组首址某元素址指针指针数组建立联系)
1维数组: int a[10]{2468101214161820}*pa
容:a[0]~a[9]p[0]~p[9]
*a*(a+0)~ *(a+9) *p*(p+0)~ *(p+9)
址:&a[0]~&a[9]&p[0]~&p[9]
a (a+0)~ (a+9) p (p+0)~ (p+9)
2指针运算(指针运算前必须先指针指数组)
指针加(减)整数结果指该数组元素
指针增(减)结果指该数组()元素
两指针相减结果相距元素数
3二维数组指针:
1)二维数组转化维指针
int a[3][4]{24681012141618202224}*pa
容:a[0][0]~a[2][3]p[0]~p[11]
**a*(*(a+0)+0)~ *(*(a+2)+3) *p*(p+0)~ *(p+11)*(a[i]+j)*(a+i)[j]
:a[1][2]表示:*(p+7)p[7]*(*(a+1)+2)*(a[1]+2)*(a+1)[2]
址:& a[0][0]~&a[2][3]&p[0]~&p[11]
a (a+0)~ (a+2) *a *(a+0)+0~* (a+2)+3p (p+0)~ (p+11)
2)二维数组a[n][m]转化二维指针:建立行指针(*p)[m]
3)二维数组a[n][m]转化二维指针:建立指针数组*p[n]
已知int a[4][5]{1 2 3 4 56 7 8 9 1011121314151617181920}
数组a[n][m]
维指针p
行指针(*q)[m]
数组指针*r[n]
int a[n][m] *p (*q)[m] *r[n]
赋值
pa
qa
ra(赋值错误)
r[0]a[0]
r[1]a[1]…
a[1][2]
p[6]
q[1][2]
r[1][2]
*(a[1]+2)
*(p+6)
*(q[1]+2)
*(r[1]+2)
(*(a+1))[2]

(*(q+1))[2]
(*(r+1))[2]
*(*(a+1)+2)

*(*(q+1)+2)
*(*(r+1)+2)











4例题:
例1:种方法显示维数组容(址)(4种方法)
2468101214161820
例2:种方法显示列二维数组容(址)
int a[4][5]{1 2 3 4 56 7 8 9 1011121314151617181920}
main()
{
int *p(*q)[5]*r[4]ij
pa
qa
for (i0i<4i++) *ra赋值*
r[i]a[i] 行址
for (i0i<4i++)
{for(j0j<5j++)
printf(4d(*(a+i))[j]) * 注意(*(a+i))外括号少 *
printf(\n)
}
}

例3:int ija[3][4]{24681012141618202224}*pa*qa+1
显示容14显示14址
三字符数组指针
1维字符数组指针
1)字符串两种存储方式意义:
char a[10]*pa 采字符数组方式
char *pStudent 采字符指针方式
pxyz
2)字符串数组字符串指针区
(1)字符数组已事先预备空间字符串定存入空间里数组名常量
(2)字符指针事先预备空间字符串放里指里指针名变量
注意:果指针没指赋值
:char *p p[0]’a’p[1]’b’错误
(3)赋值方法:
定义时赋值 char a[10]abcd*babcde
键盘输入赋值 gets(a) gets(b)
直接赋值 a[0]’a’a[1]’b’ bxyz
aStudent(错误) bStudent (正确)
2二维字符数组指针
1)定义意义
char s[5][20]
char *p[5]
二维字符数组第维表示少字符串第二维表示字符串少字符
字符指针数组表示少指针指针指字符串
2)赋值方法:
定义时赋值:char s[5][20]{abcmnopqxyxze1235m1235}
char *p[5] {abcmnopqxyxze1235m1235}
键盘输入赋值:scanf(ss[i])
scanf(sp[i])
直接赋值:s[0][0]'a'
p[0]abcdef
3注意区数值数组字符数组
1)数值数组名表示首址字符数组名表示首址时表示整字符串
int a[]{123…} char b[]This
printf(d\nsab) (a错误)
2)定义赋初值时
int a[10]{123…} char b[10]{Student}c[]map
3)输入输出时方式
数值数组输入输出字符数组输入输出整体输入输出
4)维字符数组表示字符串二维字符数组表示字符串50姓名
4例:1)键盘输入五整数找出整数输出
main()
{int a[5]imax
for(i0i<5i++)
scanf(d&a[i])
maxa[0]
for(i1i<5i++)
if(max maxa[i]
printf(maxd\nmax)
}
2)键盘输入五字符串找出字符串输出
#include
#include
main()
{char a[5][20]max[20]
int i
for(i0i<5i++)
scanf(sa[i])
strcpy(maxa[0])
for(i1i<5i++)
if(strcmp(maxa[i])<0)
strcpy(maxa[i])
printf(maxs\nmax)
}

四二重指针:存放指针变量址变量称二重指针
: main()
{int ab*p&a**q&p
a10
*p20
**q100
printf(d\na)
}
五区练
1区
int *p p *p *p++ *(p++) (*p)++ *p+1 *(p+1)
2练:
1)定义int a[]{1223314759}*pa *q&a[4]
*p值_________ *q值_________
*p++值_________ *q++值_________
(*p)++值_________ *(q)值_________
*p+1值_________ *(q1)值_________
2)定义int a[2][3]{123456}*pa
a[1][0] 值________ *(*(a+0)+1) 值________
p[4] 值________ *(p+2) 值________


第九章 结构体体枚举
结构体
1结构体定义意义
struct 结构体名
{类型 成员变量表1
类型 成员变量表2
类型 成员变量表3
……
}
1)学生信息包括学号姓名年龄性址语文数学英语总分均分
struct student
{int num
char name[10]
int age
char sex[3]
char addr[20]
int ywsxyysum
float avg
}
2)说明:见课p249
3)结构体定义时嵌套递
2结构体变量定义四种方法意义存储
1)定义结构体定义结构体变量
struct student s1*p
2)定义结构体时定义结构体变量
struct student
{int num
char name[10]
int age
char sex[3]
char addr[20]
int ywsxyysum
float avg
} s1*p
3)定义结构体时定义结构体变量省略结构体名
struct
{int num
char name[10]
int age
char sex[3]
char addr[20]
int ywsxyysum
float avg
} s1{1zs18ncz859077}*p&sla
asl
4)先结构体取名名定义结构体变量
typedef struct student
{int num
char name[10]
int age
char sex[3]
char addr[20]
int ywsxyysum
float avg
}ST
ST s1*p
3结构体变量引
结构体变量成员名 s1name s1sum
结构体指针变量>成员名 p>name p>sum
4结构体变量赋值|
1) 定义变量时赋值(初始化)
2) 直接单独赋值
s1age18
s1yw85
p>sx96
strcpy(s1nameWangJun) *错误:p>name WangJun*
3)键盘赋值
 scanf(sdds1name&s1yy&s1sx)
gets(s1addr)
5结构体变量名
1) 变量名赋变量名整体赋值ba
2) 变量址赋变量指针变量p&a
:struct student
{int num
char name[10]
int age
char sex[3]
char addr[20]
int ywsxyysum
float avg
}

main()
{struct student s1{1001王艳18女郴州869779}s2*p
s2s1
printf(s\ns2addr)
p&s1
p>sex男 *语句错误 *
printf(s\np>sex)
printf(s\np>addr)
printf(uuuu\n&s1&s2&pp)
printf(uuuuuuuu&s1nums1name&s1age
s1sexs1addr&s1yw&s1avg&s2)
}
6链表:
链表头指针指第结点链表结点少数项指结点指针

:1) struct link 2) struct link
{int x {int num
float y char name[10]
struct link *next struct link * next
}abc }s
ax5ay65anext&a
bx10by125b next &c
cx12cy155c next NULL
链表操作例题
#include
#include
typedef struct student
{int data
struct student *next
}ST
ST *insert(ST *head)
void liulan(ST *head)
ST *delete(ST *headint n)
main()
{ST abcd*head*p*q*s
int n15
adata5
bdata10
cdata15
ddata20
head&a
anext&b
bnext&c
cnext&d
dnextNULL
liulan(head)
headinsert(head)
printf(\n)
liulan(head)
headdelete(headn)
printf(\n)
liulan(head)
}

void liulan(ST *head)
{ST *p
phead
while(pNULL)
{printf(d p>data)
pp>next
}
}

ST *insert(ST *head)*链表插入*
{ST *p*q*s
s(ST *)malloc(sizeof(ST))
s>data12
phead
qhead
while(pNULL&&p>datadata)
{qp
pp>next
}
s>nextp
q>nexts
return head
}

ST *delete(ST *headint n)
{ST *p*q
phead
qhead
while(pNULL&&p>datan)
{qp
pp>next
}
q>nextp>next
free(p)
return head
}

例题:某班50学生生包含学号姓名语文数学总分均分编程输入学生基信息计算总分均分输出学生信息
struct student
{int num
char name[10]
int ywsxsum
float avg
}
main()
{struct student st[50]
int i
for (i0i<3i++)
{scanf(dsdd&st[i]numst[i]name &st[i]yw&st[i]sx)
st[i]sumst[i]yw+st[i]sx
st[i]avgst[i]sum30
}
for (i0i<3i++)
printf(d s d d d1f\nst[i]numst[i]namest[i]ywst[i]sx st[i]sumst[i]avg)
}
例1:union aa 例2union aa 例3 union aa
{char c[2] {char c0c1c2c3 {char c[4]
int d int d int d
} } }
main() main() main()
{union aa ab {union aa ab {union aa ab
ac[0]'a' ac07>>2 ac[0]7>>2
ac[1]'b' ac18^10 ac[1]8^10
printf(dad) printf(dad) printf(dad)
} } }


文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 9 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

C语言知识点总结

C语言最重要的知识点总体上必须清楚的: 1)程序结构是三种: 顺序结构 、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址. 4)bit是位 是指为0 或者1。 byte 是指字节, 一个字节 =

文***享 3年前 上传620   0

计算机专业c语言实训报告

计算机专业c语言实训报告  通过c语言实训,让我加深了对c语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。  这次实训有很大的收获,让我对c语言有了更深的认识,平时在

向***刚 12年前 上传587   0

C语言代码大全

 乘法口诀表 #include <stdio.h> #include <conio.h> void main(void) { int i,j,x,y; clrscr(); printf(“\n\n * * * 乘法口诀表 * * * \n\n“); x=9; y=5; for(i=1;i<=9;i++) { gotoxy(x,y); printf(“%2d “,i);

山***1 5年前 上传1771   0

专升本C语言题及答案

C语言精编100题一、单选题1. 由C语言编写的代码程序( )A. 可直接执行 B. 是一个源程序C. 经过编译即可执行 D. 经过编译解释才能执行2. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )A. 大写字母 B. 中划线 C. 数字字符 D. 下划线3. 下列选项中,不能用作标识符的是( ) A. _

文***享 3年前 上传1178   0

(1小时学会C语言51单片机)C语言入门教程

△Victor Hugo 维克多?雨果相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能

豆***2 4年前 上传745   0

语言领域知识点整理

1、语言是交流和思维的工具。2、幼儿期是语言发展,特别是口语发展的重要时期。3、幼儿在运用语言进行交流的同时,也在发展着人际交往能力、理解他人和判断交往情境的能力、组织自己思想的能力。4、通过语言获取信息,幼儿的学习逐步超越个体的直接感知。☆5、幼儿的语言能力实在交流和运用的过程中发展起来的。 (1)应为幼儿创设自由、宽松的语言交往环境,鼓励和支持幼儿与成人、同伴交流,让幼儿想说、

李***会 3个月前 上传112   0

技能高考专题:C语言练习

第1题 (20.0分) 题号:332 难度:难 第3章/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:求如下表达式:

小***库 3年前 上传626   0

电脑编程 所有C语言题库

试卷编号:2203所属语言:C语言试卷方案:所有C语言题库试卷总分:1220分共有题型:1种一、程序填空 共122题 (共计1220分)第1题 (10.0分) 题号:558 难度:中 第2章/*-------------------------------------------------------【程序填空】-------

小***库 4年前 上传979   0

c语言实验报告

c语言实验报告  学号:__________    姓名:__________    班级:__________    日期:__________   指导教师:__________    成绩:__________  实验一  上机操作初步和简单的C程序设计  一、 实验目的  1、熟悉C语言运行环境Turbo C++3.0  2、会简单的程序调试  3、熟悉C语言

极***速 11年前 上传806   0

C语言上机题库WORD版

C语言习题集3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。输入格式:B输出格式:26#include<stdio.h>int main(void){ char ch; int sum; ch=getchar(); sum=ch-'A'+10+15; printf(“%d\n“,sum);

文***享 3年前 上传905   0

C语言作业:学通讯录

学生通讯录一、 语言和环境1. 实现语言:C语言。2. 环境要求:devC++。二、 实现功能开发一套学生通讯录C语言系统,具体实现如下功能:1. 打开系统显示欢迎界面,以及功能菜单,用户输入需要操作的功能序号,根据用户选择的需要进行相应界面 如图1所示。图1 功能菜单2. 当用户输入序号1时进入到录入学生信息界面,用户输入学生的姓名,性别,年龄和电话,输入完毕保存学生信息,并

小***库 3年前 上传738   0

C语言试题库

C 语言试题库 阅读说明*1 ————为题号A ————为答案-个C程序的执行是从 A)本程序的main函数开始,到main函数结束 B)本程序文件的第-个函数开始,到本程序文件的最后-个函数结束 C)本程序的main函数开始,到本程序文件的最后-个函数结束 D)本程序文件的第-个函数开始,到本程序main函数结束 试题库题目*

z***u 1年前 上传677   0

c语言高级面试题

整个测试遵循以下的约定:u       假定在所有的程序中必须的头文件都已经被正确包含。考虑如下的数据类型:u       char 为1个字节u       int 为4个字节u       long int 为4个字节u       float 为4个字节u       double 为个8字节u       long double 为 8个字节u       指针为4个字

望***3 3个月前 上传110   0

C语言实验报告《指针》

C语言实验报告《指针》  学号:__________    姓名:__________    班级:__________    日期:__________   指导教师:__________    成绩:__________  实验五  指针  一、 实验目的  1、掌握指针的概念、会定义和使用指针变量  2、掌握指向数组的指针变量  3、掌握字符串指针的使用  

D***1 11年前 上传969   0

C语言实验报告《数组》

C语言实验报告《数组》  学号:__________    姓名:__________    班级:__________    日期:__________  指导教师:__________    成绩:__________  实验三  数组  一、 实验目的  1、掌握一维和二维数组的定义、赋值和输入输出  2、掌握字符数组和字符串数组的使用  3、掌握与数组有关的排

我***海 11年前 上传891   0

语言学概论复习知识点

语言学概论复习知识点一.填空题(20个空,20分)1、中国传统语文学的三个部门为:音韵学、文字学、训诂学2、西方传统语言学以 古希腊-罗马 为主。3、历史比较语言学的诞生标志着语言学成为一门独立的学科。4、语言的社会功能表现为语言的信息传递功能、语言的人际互动功能。5、语言习得的临界期表明语言具有先天生理和后天社会属性。6、语言符号具有任意性和线条性。7、语义角色可以

文***享 3年前 上传1007   0

C语言综合实验2报告

实验报告实验名称 小型学生信息管理系统 实验项目 编写一学生信息管理系统,用来管理学生基本信息及成绩信息专业班级 姓名 学号 指导教师 成绩 日期 一、

文***品 3年前 上传453   0

C语言实验报告《函数》

C语言实验报告《函数》  学号:__________    姓名:__________    班级:__________    日期:__________  指导教师:__________    成绩:__________  实验四  函数  一、 实验目的  1、掌握函数定义、调用和声明的方法  2、掌握实参和形参之间的传递方式  3、函数的嵌套调用  二、 实

t***g 12年前 上传1376   0

C语言论文致谢

C语言论文致谢  在硕士学位论文即将完成之际,我想向曾经给我帮助和支持的人们表示衷心的感谢。首先要感谢我的导师曹计昌教授,他在学习和科研方面给了我大量的指导,并为我们提供了良好的科研环境,让我学到了知识,掌握了科研的方法,也获得了实践锻炼的机会。他严谨的治学态度、对我的严格要求以及为人处世的坦荡将使我终身受益。除此之外,他对我生活的关心和照顾也使得我得以顺利完成研究生的学业。在此祝愿他身体健

自***熟 12年前 上传625   0

C语言程序设计习题试题集

《C语言程序设计》精品课件试题目录(按住CTRL键点击超链)单项选择题………………………第002页阅读程序题………………………第018页程序填空题………………………第039页编写程序题………………………第070页《高级语言程序设计》课程设计制作小组2007年一、单项选择题导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意

文***享 1年前 上传5563   0

国开电大《C语言程序设计》答案

形考1在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(  )。选择一项:A. main 正确恭喜你,答对啦!!B. MAIN C. name D. function .题目2正确获得2.00分中的2.00分 标记题目题干C语言源程序文件的缺省扩展名为(  )。选择一项:A. cpp B. exe C.

3265912 1年前 上传416   1

C语言程序设计说课教案

《C语言程序设计》说课教案从以下方面说明:一、 课程性质、地位二、 教学对象分析及要求三、 课程体系四、 课程的重点、难点及突破五、 教学方法与教学手段六、 学生考核七、 教学计划一、 课程性质、地位 1.课程的性质  《C语言程序设计》课程是高职高专通信类和电子信息类各专业职业素质必修课,旨在培养高职学生运用计算机进行逻辑思维的能力,掌握运用C语言编程来解决岗位

文***享 1年前 上传347   0

c语言课程设计总结5篇

c语言课程设计总结5篇c语言课程设计总结(一):  c语言课程设计总结心得  经过一个学期的学习,我对C语言有了必须的了解。C语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语言更是毋庸置疑。在上课之前,就经常听同学说,C语言很难学,确实,刚开始听课时觉得老师不知所云。但是,发现对后续资料的预习后,前面的疑团都迎刃而解,这让我对C语言的学习更有信心。  计算机最重要的就是上机操

四***廷 3年前 上传1309   0

C++语言课程设计一迷你高尔夫

C++语言课程设计一迷你高尔夫一、实验内容 玩家通过按下键盘上的上下左右方向键控制球的移动,使其最终到达出口则游戏通关。 要求如下:1、 游戏分成3关,第一关、第二关、第三关界面图如下:第一关第二关第三关2、 启动游戏进入第一关,胜利后进入第二关,如果第三关通关,则游戏重新回到第一关。3、 游戏玩法是通关控制键盘上的上下左右方向键控制球的运动,单击方向键,则球获得一个向该

文***品 3年前 上传618   0

C语言课程设计学生考勤系统

设计任务:C语言课程设计任务书题目:学生考勤系统设计功能:学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、出勤情况等。本系统可模拟考勤过程,记录考勤结果,并能够在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。分步实施:1、 初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;2、 建立一个文件,将每条记录信息写入文件中并能显示于

文***品 2年前 上传536   0