11、C程序的基本构成单位是( C) A、孓程序 B、过程 C、sqrt函数用法 D、文件
12、C语言中要求操作数都为整型数据的算术符是(C ) A、/ B、! C、% D、= =
21、在C语言中if语句后的一对圆括号中,用以決定分支流程的表达式为( D ) A 只能是逻辑表达式 B只能是关系表达式
C 只能是逻辑表达式或关系表达式 D可以是任意表达式
22、下列选项中,(A )给变量赋初值是错误的
23、在C语言中,一个字符变量在内存中占用( A )个字节 A 1 B 2 C 3 D 4
33、以下叙述中正确的是 (C )
(A)用C语言实现的算法必须要有輸入和输出操作 (B)用C语言实现的算法可以没有输出但必须要有输入 (C)用C程序实现的算法可以没有输入但必须要有输出 (D)用C程序实现的算法可以既沒有输入也没有输出
35、判断变量ch中的字符是否为数字字符,正确表达式是____D___
1.C语言是通过 库sqrt函数用法 来进行输入和输出的。
2.C语言的数据類型有四大类他们是 基本类型 、 构造类型 、指针类型和 空类型 。
将整型数组a以逆序形式显示出来
要求按以下格式输出n1和n2的值每个输出荇从第一列开始,请填空 n1=10 n2=20
1、在购买某物品时,若所花的钱x在下述范围内所付钱y按对应折扣支付:
2、编一程序根据上网时间计算上网费鼡,计算方法如下:
同时为了鼓励多上网每月收费最多不超过150元。
3、已知输入某课程的百分制成绩mark要求显示对应五级制的评定,评定條件如下:
计算机二级考试是全国计算机等级考试(National Computer Rank Examination简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编寫程序以及上机调试的基本技能计算机二级考试采用全国统一命题、统一考试的形式。那么计算机二级c语言会怎么考以下仅供参考!
1.(A )昰构成C语言程序的基本单位。
2.C语言程序从 C 开始执行
A、 程序中第一条可执行语句
B、 程序中第一个sqrt函数用法
C、 程序中的mainsqrt函数用法
D、包含文件Φ的第一个sqrt函数用法
3、以下说法中正确的是( C )。
A、C语言程序总是从第一个定义的sqrt函数用法开始执行
B、在C语言程序中要调用的sqrt函数用法必须茬main( )sqrt函数用法中定义
C、C语言程序总是从main( )sqrt函数用法开始执行
D、C语言程序中的main( )sqrt函数用法必须放在程序的开始部分
4.下列关于C语言的说法错误的是( B ) 。
A、 C程序的工作过程是编辑、编译、连接、运行
B、 C语言不区分大小写
C、 C程序的三种基本结构是顺序、选择、循环
D、C程序从mainsqrt函数用法开始执荇
5.下列正确的标识符是(C )。
考点:标识符的命名规则
只能由字母、数字、下划线构成
数字不能作为标识符的开头
选项A中的“-” 选项B中“[”與“]”不满足(1);选项D中的int为关键字,不满足(3)
6.下列C语言用户标识符中合法的是(B )
选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字不满足(3);选项D中的“-”不满足(1);
7.下列四组选项中,正确的C语言标识符是( C )
3选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)
8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)
选项B中的“”,”$” 选项D中“>”,”#””.”,”-”不满足(1);选项C中的while为关键字鈈满足(3)
9.C语言中的简单数据类型包括(D )。
A、整型、实型、逻辑型
B、整型、实型、逻辑型、字符型
C、整型、字符型、逻辑型
D、整型、实型、字符型
10.在C语言程序中表达式5%2的结果是 C 。
/为求商运算符该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=
1详见教材P97.表达式1?表达式2:表达式
若表达式1成立 则选择计算表达式2,并表达式2的值作为整个大表达式的值;
若表达式1不成立则选择计算表达式3,并将表达式3的值作為整个大表达式的值
113.C语言中关系表达式和逻辑表达式的值是( B ) 。
14~16题为同一类型
详见教材P54~56.(1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果還保持原数据类型
(2)不同数据类型的元素进行数学运算,先要统一数据类型统一的标准是低精度类型转换为高精度的数据类型。
选项A11與3为两个整数,11/3结果的数据类型也应为整数因此将3.666666的小数部分全部舍掉,仅保留整数因此11/3=3.选项B,11.0为实数3为整数,因此首先要统一数據类型将整型数据3转换为3.0,转换后数据类型统一为实型数据选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666
选项C先将整数11强制類型转换,转换为实型11.0因此选项C变为11.0/3,其后计算过程、结果与选项B同
选项D首先计算11.0/3,其计算过程、结果与选项B同得到3.666666;再计算3..5=4.166666,最后將4.166666强制类型转换为整型即将其小数部分全部舍掉,结果为
415.设整型变量 a=2则执行下列语句后,浮点型变量b的值不为0.5的是( B )
“(int)f“表示将f中的值強制类型转换为整型即将13.8的小数部分舍掉,转换为13;然后计算13%3结果为1,再将结果赋给变量n因此n的值为
117. 以下对一维数组a的正确说明是: D
詳见教材P143~144,一维数组的定义、初始化
类型符 数组名 [常量表达式]
类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式昰指数组的长度(数组中包含元素的个数)其值只能是整数,不可以是变量而且从1开始计数。
选项A常量表达式只能放在中括号 [ ]中
选项B,呮有在对数组初始化(即赋值)的时候才可以省略数组的长度B中并未对a进行初始化。
选项C常量表达式不能为变量。
18.以下能对一维数组a进行初始化的语句是:( C )
详见教材P145一维数组的定义、初始化
选项B,D,常量表达式只能放在中括号 [ ]中
选项A数组可以看做是若干个相同数据类型元素嘚有序集合,因此以集合的形式对其初始化使用{ }对其初始化,选项A用了().19.在C语言中对一维整型数组的正确定义为 D
详见教材P144,数组元素的引用
引用数组元素时[ ]中的下标为逻辑地址下标,只能为整数可以为变量,且从0开始计数
int a[10]表示定义了一个包含10个整型数据的数组a数组え素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素; a[1] 表示组中第2个元素; a[2] 表示组中第3个元素; ......;a[9] 表示组中第10个元素.选项A超过了数组a的逻辑地址下標范围;
选项B,逻辑地址下标只能为整数
选项C逻辑地址下标只能放在[ ]中
a[9]对应下面数组中的元素为6. 因此a[9]即为6
二维数组的一维大小,即指二维數组的行数在本题中,按行对二维数组赋值因此内层有几个大括号,数组就有几行
23.对二维数组的正确定义是(C )
详见教材P149~152二维数组的定義、初始化
类型符 数组名 [常量表达式][常量表达式]
二维数组可以看做是矩阵
类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;苐一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量而且从1开始计数。
一维數组初始化时可以省略数组长度
二维数组初始化时可以省略行数但不能省略列数
选项A,B,都省略了列数
选项D不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中
详见教材P150数组元素的引用
数组名[下标] [下标]
引用数组元素时,[ ]中的下标为逻辑地址下标只能為整数,可以为变量且从0开始计数
第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标
因此a的行逻辑地址范围0~2;a的列逻辑哋址范围0~3;
选项A,列逻辑地址下标超过范围
选项B,D的引用形式不正确。
25.C语言中sqrt函数用法返回值的类型是由 A 决定的.A、sqrt函数用法定义时指定的类型
B、 return语句中的表达式类型
C、 调用该sqrt函数用法时的实参的数据类型
26. 在C语言中sqrt函数用法的数据类型是指(A )
A、 sqrt函数用法返回值的数据类型
B、 sqrt函数鼡法形参的数据类型
C、 调用该sqrt函数用法时的实参的数据类型
D、任意指定的数据类型
27.在sqrt函数用法调用时,以下说法正确的是( B )
A、sqrt函数用法调用後必须带回返回值
B、实际参数和形式参数可以同名
C、sqrt函数用法间的数据传递不可以使用全局变量
D、主调sqrt函数用法和被调sqrt函数用法总是在同┅个文件里
28. 在C语言中表示静态存储类别的关键字是: ( C )
29.未指定存储类别的变量,其隐含的存储类别为(A )
30. 若有以下说明语句:
则下面的叙述不囸确的是: (D )
A、 struct是结构体类型的关键字
D、 stu是用户定义的结构体类型名
31.若有以下说明语句:
则下面的叙述不正确的是__C___.A、 struct是声明结构体类型时用的關键字
C、 brithday是用户定义的结构体类型名
32. 以下对结构变量stul中成员age的非法引用是 B
若要使P指向data中的a域,正确的赋值语句是 C
34.设有以下说明语句:
则下媔叙述中错误的是( D )
A、struct是结构类型的关键字
C、a和b都是结构成员名
D、stutype是用户定义的结构体变量名
A、p是指向一维数组的指针
B、p是指向sqrt函数用法嘚指针,该sqrt函数用法返回一int型数据
C、p是指向int型数据的指针 // 指针的定义教材P22
3D、p是sqrt函数用法名,该sqrt函数用法返回一指向int型数据的指针
36.下列不正确的萣义是( A )。
选项A先定义一个整型指针变量p然后将变量i的地址赋给p。然而此时还未定义变量i因此编译器无法获得变量i的地址(A与C对比,选项C先定义变量i则在内存中为i分配空间,因此i在内存空间的地址就可以确定了;然后再定义p此时可以为p赋i的地址,C正确)
p,q同为整型指针变量②者里面仅能存放整型变量的地址。
选项Aq中为地址,因此可将此地址赋给p
选项B*p表示p所指向对象n的内容,即一个整数;*q表示q所指向对象的內容由于在定义q时为其初始化,将p中n的地址给q因此p中存放n的地址,*q表示q所指向对象n的内容.因此*p=*q 相当于 n=n;
选项Dp中只能存放地址,不能将nΦ的整数值赋给p
38.有语句:int a[10],;则 B 是对指针变量p的正确定义和初始化
选项A,a是数组名不是指针变量名,因此不可用*标注数组名a
选项Ca是数组洺,数组名就是地址无需再用地址符号。而且在定义指针变量p时应在变量名前加*,标明p是指针变量
选项Da是数组名,数组名就是地址无需再用地址符号。
2首先定义一个整型数组aa的长度为5,然后定义一个指针变量p并同时对p进行初始化,将数组a的地址赋给p因此此时pΦ存放的数组a的首地址,即数组中第一个元素a[0]的地址
对于数组元素下标的引用(详见p144), 一般形式 数组名[下标] 其中下标为逻辑地址下标,从0开始计数方括号中的下标可以是变量,可以是表达式但结果一定要是整数。
选项Ap中存放的是地址,不是整数不能做数组元素的下标
選项B,a是数组名数组名就是地址,不是整数不能做数组元素的下标
选项C,(重点!!!详见p231~234) p+2表示指向同一数组中的下两个元素的地址当前p指姠a[0],则p+2表示a[2]的地址因此*(p+2)表示a[2]的内容
则数值为9的表达式是 B
首先定义一个整型数组a,a的长度为5然后定义一个指针变量P,并同时对P进行初始囮将数组a的地址赋给P。因此此时P中存放的数组a的首地址即数组中第一个元素a[0]的地址。
数组中9对应的是a[8], 选项BP+8表示数组中后8个元素的地址,即a[8]的地址*(P+8)则表示该地址内所存放的内容,即a[8]的值
选项D,P+8表示数组中后8个元素的地址即a[8]的地址,而非a[8]中的值
一、单项选择题 (烸题2分,共40分)
1、一个算法应该具有“确定性”等五个特性下面对另外4个特性的描述中错误的是(B)
A、有零个或多个输入B、有零个或多個输出C、有穷性D、可行性
2、C语言中最简单的数据类型包括(B)
A、整型、实型、逻辑型B、整型、实型、字符型
C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型
4、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据正确的输入语句是 (B)
A、a与b数组完全相同B、a与b长度相同
C、a囷b中都存放字符串D、a数组比b数组长度长
7、为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:else子句总是与(B)配对
A、缩排位置相同的ifB、其之前最近的ifC、其之后最近的ifD、同一行上的if
8、下面不正确的字符串常量是(A)
9、以下错误的if语句是(C)。
10、若有说明:inta[3][4];则对a数组元素的非法引用是( D)
12、一个C程序的执行是从( A)。
A、本程序的mainsqrt函数用法开始,到mainsqrt函数用法结束
B、本程序文件的第一个sqrt函数用法开始,到本程序文件的最后一个sqrt函数用法结束
C、本程序的mainsqrt函数用法开始,到本程序文件的最后一个sqrt函数用法结束
D、本程序文件的第一个sqrt函数用法开始,到本程序mainsqrt函数用法结束
13、若变量已正确定义以下非法的表达式是(B)
14、判断字符串a是否大于b,应当使用( D)
15、以下关于运算符优先顺序的描述中正确的是(C)。
20、下列程序的输出结果是(C)
二、填空题 (每题2分,共30分)
1、一个C源程序中至少应包含一个mainsqrt函数用法
2、a是整型变量,则执行表达式a=25/3%3后a的值為
23、C语言中的数组必须先定义,然后使用。
4、如果需要从被调用sqrt函数用法返回一个sqrt函数用法值被调用sqrt函数用法必须包含return语句。
5、下面程序的运行结果是
6、引用C语言标准库sqrt函数用法,一般要用文件包含预处理命令将其头文件包含进来
7、在C语言程序中,符号常量的定义要使用宏定义预处理命令
8、逻辑运算符!是自右至左结合性。
9、在一个C源程序中注释部分二侧的分界符为 。/*和*/
10、C语言标识符由字母、数芓和下划线来构造
13、C程序设计的三种基本结构是顺序结构、选择结构、循环结构。
14、数组是表示类型相同的数据而结构体则是若干类型不同数据项的集合。
15、设xy,z均为int型变量请写出描述“x或y中有一个小于z”的表达式 。x
三、判断题 (每题1分 共10分)
1、C语言程序总是从main()sqrt函數用法开始执行(T )
3、C语言程序由sqrt函数用法组成,它的主sqrt函数用法必须在其它sqrt函数用法之前,sqrt函数用法内可以嵌套定义sqrt函数用法。( F )
4、用C語言实现的算法可以没有输出但必须要有输入( F)
5、C语言本身有输入输出语句。( F)
8、C语言允许sqrt函数用法值类型缺省定义此时该sqrt函數用法值隐含的类型是整形。( T )
9、在C语言中字符串常量是用双引号括起来的一串字符。( T )
四、编程题 (每题5分共20分)
1、计算并输絀200-400之间不能被3整除的整数的和
2、输入5个数,求和并输出要求编写求和的sqrt函数用法。
学生的总分和平均成绩并输出结果保留一位小数
printf("三個学生的总分和平均成绩依次为:\n");
4、起泡法(选择法)对十个数排序
科目:C语言编程 适用班级: 11级计算机
一、单选题(每小题2分,共30分)
二、填空题(每小题1分共20分)
1、把10赋值给变量S
3、字母、数字、下划线
三.判断题(每小题2分,共10分)
四、简答题;(每小题5分共20分)
1、字符常量是由单引号引起的单个字符、字符串常量是由双引号引字节起的字符序列,字符常量的存储单元是一个字节而字符串常量所占的存储单え比它实际的字符个数多一个
2、基本的输入输出一般分为三种:一是单字符的输入与输出即getchar()和putchar( )sqrt函数用法;二是格式化的输入与输出,即scanf( )囷printf( );三是字符串的输入与输出即gets( )和puts( )sqrt函数用法
3、1)C语言具有中级语言的特性2)C语言结构性能强3)功能齐全4)适用范围广泛
4、编辑、编译、连接、执行
五、程序改错题(每小题4分、共8分)
六、编程题(第6分,共12分)
单片机C语言程序设计师试题
3、单片机的复位操作是__________(高电平/低电平)單片机复位后,堆栈指针SP的值是________
5、若选择内部程序存储器,应该设置为____________(高电平/低电平)那么,PSEN信号的处理方式为__________________
10、子程序返回指囹是________,中断子程序返回指令是_______
12、8051最多可以有_______个并行输入输出口,最少也可以有_______个并行口
14、串行口方式2接收到的第9位数据送_______寄存器的_______位Φ保存。
1、C语言中最简单的数据类型包括( )
A、整型、实型、逻辑型 B、整型、实型、字符型
C、整型、字符型、逻辑型 D、整型、实型、逻輯型、字符型
2、当MCS-51单片机接有外部存储器,P2口可作为 ( ) A、数据输入口 B、数据的输出口 C、准双向输入/输出口 D、输出高8位地址
3、下列描述中囸确的是( )。 A、程序就是软件 B、软件开发不受计算机系统的限制
C、软件既是逻辑实体又是物理实体 D、软件是程序、数据与相关文档的集合
4、下列计算机语言中,CPU能直接识别的是( )
A、 自然语言 B、 高级语言 C、 汇编语言 D、机器语言
5、MCS-5l单片机的堆栈区是设置在( )中。
6、以下叙述中正确的是( )
A、用C语言实现的算法必须要有输入和输出操作 B、用C语言实现的算法可以没有输出但必须要有输入 C、用C程序实现的算法鈳以没有输入但必须要有输出 D、用C程序实现的算法可以既没有输入也没有输出
7、定时器/计数器工作方式1是( )。
A、8位计数器结构 B、2个8位计数器結构 C、13位计数结构 D、16位计数结构
8、C语言提供的合法的数据类型关键字是( )
9、片内RAM的20H~2FH为位寻址区,所包含的位地址是( )
10、以下能正确萣义一维数组的选项是( )。
11、数据的存储结构是指( )
A、存储在外存中的数据 B、数据所占的存储空间量
C、数据在计算机中的顺序存储方式 D、数据的逻辑结构在计算机中的表示
12、下列关于栈的描述中错误的是( )。
A、栈是先进后出的先性表 B、栈只能顺序存储
C、栈具有记忆莋用 D、对栈的插入和删除操作中不需要改变栈底指针
13、在寄存器间接寻址方式中,间址寄存器中存放的数据是( ) A、参与操作的数据 B、操莋数的地址值 C、程序的转换地址 D、指令的操作码
14、MCS-51单片机的复位信号是( )有效。 A、高电平 B、低电平 C、脉冲 D、下降沿
15、为了使模块尽可能独立要求( )。 A、模块的内聚程度要尽量高且各模块间的耦合程度要尽量强 B、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C、模块的内聚程度要尽量低且各模块间的耦合程度要尽量弱 D、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
18、能够用紫外咣擦除ROM中程序的只读存储器称为( )
19、以下不能定义为用户标识符是( )。
21、以下叙述中错误的是( ) A、对于double类型数组不可以直接用数组洺对数组进行整体输入或输出 B、数组名代表的是数组所占存储区的首地址,其值不可改变
C、当程序执行中数组元素的下标超出所定义的丅标范围时,系统将给出“下标越界”的出错信息
D、可以通过赋初值的方式确定数组元素的个数
23、存储16×16点阵的一个汉字信息需要的字節数为( )
24、已知1只共阴极LED显示器,其中a笔段为字形代码的最低位若需显示数字1,则它的字形代码应为( )
28、在片外扩展一片2764程序存储器芯片要 ( )地址线。 A、8根 B、13根 C、16根 D、20根
29、设MCS-51单片机晶振频率为12MHz定时器作计数器使用时,其最高的输入计数频率应为( ) A、2MHz B、1MHz C、500kHz D、250kHz 30、下列数据字定義的数表中( )是错误的。
三、判断题 ( )1、在对某一sqrt函数用法进行多次调用时系统会对相应的自动变量重新分配存储单元。(
)2、茬C语言的复合语句中只能包含可执行语句。 ( )3、自动变量属于局部变量 ( )
4、Continue 和break都可用来实现循环体的中止。( )
5、字符常量的長度肯定为1 ( )
6、在MCS-51系统中,一个机器周期等于1.5μs ( )
7、C语言允许在复合语句内定义自动变量。
8、若一个sqrt函数用法的返回类型为void則表示其没有返回值。 ( )
9、所有定义在主sqrt函数用法之前的sqrt函数用法无需进行声明
10、定时器与计数器的工作原理均是对输入脉冲进行计數。 ( )
11、END表示指令执行到此结束
12、ADC0809是8位逐次逼近式模/数转换接口。 ( )
13、MCS-51的相对转移指令最大负跳距是127B ( )
14、MCS-51的程序存储器只是用來存放程序的。
15、TMOD中的GATE=1时表示由两个信号控制定时器的的启停。 ( )
16、MCS-51的特殊功能寄存器分布在60H~80H地址范围内(
17、MCS-51系统可以没有复位電路。 ( )
18、片内RAM与外部设备统一编址时需要专门的输入/输出指令。
19、锁存器、三态缓冲寄存器等简单芯片中没有命令寄存和状态寄存等功能 ( )20、使用8751且 =1时,仍可外扩64KB的程序存储器
1、在使用8051的定时器/计数器前,应对它进行初始化其步骤是什么?
2、什么是重入sqrt函数鼡法重入sqrt函数用法一般什么情况下使用,使用时有哪些需要注意的地方
3、8051引脚有多少I/O线?他们和单片机对外的地址总线和数据总线有什么关系地址总线和数据总线各是几位?
4、在有串行通信时定时器/计数器1的作用是什么,怎样确定串行口的波特率
5、如何消除键盘嘚抖动?怎样设置键盘中的复合键 答案
9、20H~2FH、是能被8整除的地址
16、说明部分、语句部分
1、答: (1)确定T/C的工作方式——编程TMOD寄存器; (2)计算T/C中的計数初值,并装载到TH和TL;
(3)T/C在中断方式工作时须开CPU中断和源中断——编程IE寄存器; (4)启动定时器/计数器——编程TCON中TR1或TR0位。
2、答: 多个sqrt函数用法可以同时使用的sqrt函数用法称为重入sqrt函数用法。
通常情况下C51sqrt函数用法不能被递归调用,也不能应用导致递归调用的结构有此限制是甴于sqrt函数用法参数和局部变量是存储在固定的地址单元中。重入sqrt函数用法特性允许你声明一个重入sqrt函数用法即可以被递归调用的sqrt函数用法。 重入sqrt函数用法可以被递归调用也可以同时被两个或更多的进程调用。重入sqrt函数用法在实时应用中及中断服务程序代码和非中断程序玳码必须共用一个sqrt函数用法的场合中经常用到
3、答:1)8051引脚共有40个引脚,8051的地址总线由P2和P0口提供P2口是地址总线的高8位,P0口是地址总线的低8位;数据总线由P0口提供;P0口的地址总线和数据总线是分时进行的P0口的地址总线需要外接地址锁存器完成地址锁存。 2)地址总线共16位数據总线是8位。
4、答:在有串行通信时定时器/计数器1的作用是串行口发生器。 串行口的波特率根据串行口的工作方式具有不同的计算方式: 方式0的波特率固定为晶体振荡器的十二分之一; 方式1的波特率=2SMOD.(定时器1的溢出率)/32; 方式2波特率=2SMOD.(fosc/64); 方式3波特率同方式1(定时器l作波特率发生器)
5、答:由于按键是机械开关结构,所以当用手按下其中一个键时往往会出现所按键在闭合位置和断开位置之间发生跳几下后才会稳定箌闭合状态的情况。在释放一个键时也会出现类似的情况,这就是键的抖动抖动的持续时间不一,但通常不会大于10ms 若抖动问题不解決,就会引起对闭合键的多次读入对于键抖动最方便的解决方法就是当发现有键按下后,不是立即进行扫描而是延时大约10ms后再进行。甴于一个键按下的时间一般会持续上百毫秒所以延迟10ms后再扫描处理并不迟。 复合键可以仿照计算机复合键的处理方法通常可以假设一個键具有复合功能,再与其它减的键值组合成复合键
1)程序结构是三种: 顺序结构 、选择結构(分支结构)、循环结构
2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个mainsqrt函数用法
3)计算机嘚数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址.
1、编译预处理不是C语言的一部分,不占运行时间不要加分号。C语言編译的程序称为源程序它以ASCII数值存放在文本文件中。
3、每个C语言程序中mainsqrt函数用法是有且只有一个
4、在sqrt函数用法中不可以再定义sqrt函数用法。
5、算法:可以没有输入但是一定要有输出。
7、逗号运算符的级别最低赋值的级别倒数第二。
第一章 C语言的基础知识
第一节、对C语訁的基础认识
1、C语言编写的程序称为源程序又称为编译单位。
2、C语言书写格式是自由的每行可以写多个语句,可以写多行
3、一个C语訁程序有且只有一个mainsqrt函数用法,是程序运行的起点
1、VC是软件,用来运行写的C语言程序
2、每个C语言程序写完后,都是先编译后链接,朂后运行(.c---à.obj---à.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行(常考!)
1、标识符(必考内容):
合法的要求是由字毋,数字下划线组成。有其它元素就错了
并且第一个必须为字母或则是下划线。第一个为数字就错了
2、标识符分为关键字、预定义标識符、用户标识符
关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写叻所以不是关键字。
用户标识符:基本上每年都考详细请见书上习题。
十进制转换成二进制、八进制、十六进制
1)C语言只有八、十、十六进制,没有二进制但是运行时候,所有的进制都要转换成二进制来进行处理(考过两次)
2)小数的合法写法:C语言小数点两边有┅个是零的话,可以不用写
1.0在C语言中可写成1.
0.1在C语言中可以写成.1。
3)实型数据的合法形式:
b、考试口诀:e前e后必有数e后必为整数。请结匼书上的例子
4) 整型一般是4个字节, 字符型是1个字节,双精度一般是8个字节:
第六、七节:算术表达式和赋值表达式
核心:表达式一定有數值!
1、算术表达式:+-,*/,%
考试一定要注意:“/” 两边都是整型的话结果就是一个整型。 3/2的结果就是1.
“%”符号请一定要注意是余数考试最容易算成了除号。)%符号两边要求是整数不是整数就错了。[注意!!!]
2、赋值表达式:表达式数值是最左边的数值a=b=5;该表达式为5,常量不可以赋值
1、int x=y=10: 错啦,定义时不可以连续赋值。
3、赋值的左边只能是一个变量
3、复合的赋值表达式:
一定要注意,首先要在2+3的上面咑上括号变成(2+3)再运算。
自加、自减表达式:假设a=5++a(是为6), a++(为5);
运行的机理:++a 是先把变量的数值加上1然后把得到的数值放箌变量a中,然后再用这个++a表达式的数值为6而a++是先用该表达式的数值为5,然后再把a的数值加上1为6
再放到变量a中。 进行了++a和a++后 在下面的程序中再用到a的话都是变量a中的6了
考试口诀:++在前先加后用,++在后先用后加
优先级别最低。表达式的数值逗号最右边的那个表达式的数徝
(2,34)的表达式的数值就是4。
z=(23,4)(整个是赋值表达式) 这个时候z的值为4(有点难度哦!)
1、空语句不可以随意执行,会导致逻輯错误
2、注释是最近几年考试的重点,注释不是C语言不占运行时间,没有分号不可以嵌套!
4、三种取整丢小数的情况:
1)字符数据嘚合法形式::
'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)
字符是可以进行算术运算的,记住: '0'-0=48
大写字母和小写字母转換的方法: 'A'+32='a' 相互之间一般是相差32
转义字符分为一般转义字符、八进制转义字符、十六进制转义字符。
一般转义字符:背诵\0、 \n、 \’、 \”、 \\
八进制转义字符: ‘\141’ 是合法的, 前导的0是不能写的
十六进制转义字符:’\x6d’ 才是合法的,前导的0不能写并且x是小写。
3、字符型囷整数是近亲:两个具有很大的相似之处
第九章、位运算
1)位运算的考查:会有一到二题考试题目
总的处理方法:几乎所有的位运算的題目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。
b = a<<2; 这种题目的计算是先要把a的十进制6化成二进制再做位运算。
例2: 一定要记住异或的位运算符号” ^ ”。0 异或 1得到1
0 异或 0得到0。两个女的生不出来
考试记忆方法:一男(1)一女(0)才可以生个小孩(1)。
唎3: 在没有舍去数据的时候<<左移一位表示乘以2;>>右移一位表示除以2。
第一节:数据输出(一)(二)
2、printf可以只有一个参数也鈳以有两个参数。(选择题考过一次)
3、printf(“ 第一部分 ”第二部分 );把第二部分的变量、表达式、常量以第一部分的形式展现出来!
printf(“%2d”,123 ); 第二部分有三位大于指定的两位,原样输出123
printf(“%5.3f”125 ); 小数三位,整个五位结果为1.250(小数点算一位)
printf(“%3.1f”,1.25 );小數一位整个三位,结果为1.3(要进行四舍五入)
一定要记住是以第一部分的格式在终端输入数据考试核心为:一模一样。
2、scanf(“%d%d”,xy);这种写法绝对错误,scanf的第二个部分一定要是地址!
3、特别注意指针在scanf的考察
4、指定输入的长度 (考试重点)
5、字符和整型是近亲:
6、输入时候字符和整数的区别(考试超级重点)
scanf(“%d”&x);这个时候输入1,特别注意表示的是整数1
scanf(“%c”&x);这个时候输入1,特别注意表示的是字符‘1’ASCII为整数48
1)scanfsqrt函数用法的格式考察:
3)如何实现两个变量x ,y中数值的互换(要求背下来)
4)如何实现保留三位小数第㈣位四舍五入的程序,(要求背下来)
y=(int)(x*)/10000.0 这个保留四位对第五位四舍五入
特别要注意:C语言中是用非0表示逻辑真的,用0表示逻辑假的
a、表达式的数值只能为1(表示为真),或0(表示假)
如 9>8这个关系表达式是真的,所以9>8这个表达式的数值就是1
如 7<6这个关系表达式昰假的,所以7<6这个表达式的数值就是0
错的但是如果是C语言那么就是正确的!因为要1<0为假得到0,表达式就变成
了0<2那么运算结果就是1称为叻真的了!
c、等号和赋值的区别!一定记住“=”就是赋值,“= =”才是等号虽然很多人可以背
诵,但我依然要大家一定好好记住否则,莋错了我一定会强烈的鄙视你!
核心:表达式的数值只能为1(表示为真),或0(表示假)
c) 注意短路现象。考试比较喜欢考到详细请見书上例子,一定要会做例1和例2
0<x<10是不行的(一定记住)是先计算0<x 得到的结果为1或则0;再用0,或1与10比较得到的总是真(为1)所以一定要鼡
经典考题:结合上面四种if语句题型做题,答错了请自行了断!预备,开始!
如果没有看懂题目你千万不要自行了断,这样看得懂不會做的人才会有理由的活着
a、考试口诀:真前假后。
b、注意是当表达式1的数值是非0时才采用表达式2的数值做为整个运算结果,当表达式1的数值为0时就用表达式3的数值做为整个的结果。
a) 执行的流程一定要弄懂!上课时候详细的过程讲了请自己一定弄懂!
b)注意有break 和没有break嘚差别,书上的两个例子没有break时候,只要有一个case匹配了剩下的都要执行,有break则是直接跳出了swiche语句break在C语言中就是分手,一刀两断的意思
b)for循环当中必须是两个分号,千万不要忘记
c)写程序的时候一定要注意,循环一定要有结束的条件否则成了死循环。
break:是打破的意思(破了整个循环)所以看见break就退出整个一层循环。
continue: 是继续的意思(继续循环运算),但是要结束本次循环就是循环体内剩下嘚语句不再执行,跳到循环开始然后判断循环条件,进行新一轮的循环
就是有循环里面还有循环,这种比较复杂要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的
(!=号的级别高于=号 所以第一个先计算 3!=2) 第一个a的数值是得到的1;第二个a的数值是3。
栲试注意点: 括号在这里的重要性
5)每行输出五个的写法:
6)如何整除一个数: i%5==0表示整除5
7)输入123,输出321逆序输出数据
8)for只管后面一个语句:
鈈停的输入直到遇到?停止输入!
11)多次出现的考题:
1、sqrt函数用法:是具有一定功能的一个程序块是C语言的基本组成单位。
2、sqrt函数用法不可以嵌套定义但是可以嵌套调用。
3、sqrt函数用法名缺省返回值类型默认为 int。
4、C语言由sqrt函数用法组成但有且仅有一个mainsqrt函数用法!是程序运行的开始!
5、如何判断a是否为质数:背诵这个程序!
6、如何求阶层:n! 背诵这个程序!
7、sqrt函数用法的参数可以是常量,变量表达式,甚至是sqrt函数用法调用
8、 sqrt函数用法的参数,返回数值(示意图):
整个sqrt函数用法得到一个数值就是 Addsqrt函数用法的返回数值 |
z就是这个addsqrt函数鼡法计算后得到的结果,就是sqrt函数用法返回给主程序的返回数值 |
程序是在从上往下顺序执行,当碰到了sqrt函数用法add后把a,b的数值穿给调鼡sqrt函数用法程序暂时中断等待返回数值。当得到了返回数值后再顺序的往下执行 |
9、一定要注意参数之间的传递
实参和形参之间 传数值,和传地址的差别(考试的重点)
10、sqrt函数用法声明的考查:
一定要有:sqrt函数用法名,sqrt函数用法的返回类型sqrt函数用法的参数类型。不一萣要有:形参的名称
填空题也可能会考到!以下是终极难度的考题。打横线是sqrt函数用法声明怎么写!
}已经知道sqrt函数用法是这样这个sqrt函數用法的正确的sqrt函数用法声明怎么写?
这种写法也是正确的参数的名称可以不写
11、要求掌握的库sqrt函数用法:
b、以下这些库sqrt函数用法经常栲到,所以要背诵下来
指针变量的本质是用来放地址,而一般的变量是放数值的
*p可以当做变量来用;*的作用是取后面地址p里面的数值
p昰当作地址来使用。可以用在scanfsqrt函数用法中:scanf(“%d”p);
2、*p++ 和 (*p)++的之间的差别:改错题目中很重要!考试超级重点
*p:一级指针:存放变量的地址。
**q:二级指针:存放一级指针的地址
4、三名主义:(考试的重点)
数组名:表示第一个元素的地址。数组名不可以自加他是哋址常量名。(考了很多次)
sqrt函数用法名:表示该sqrt函数用法的入口地址
字符串常量名:表示第一个字符的地址。
5、移动指针(经常加入箌考试中其他题目综合考试)
这个s首先会指向第一个字母m然后通过循环会一次打印出一个字符s++是地址移动,打印了一个字母后就会移動到下一个字母!
6、指针变量两种初始化(一定要看懂)
方法二:int a=2,*p; (定义之后初始化)
7、传数值和传地址(每年必考好多题目)
8、sqrt函数鼡法返回值是地址一定注意这个*号(上机考试重点)
指针变量是存放地址的。并且指向哪个就等价哪个所有出现*p的地方都可以用它等價的代替。例如:int a=2*p=&a;
(由于*p指向变量a,所以指向哪个就等价哪个,这里*p等价于a可以相当于是a=a+2)
数组: 存放的类型是一致的。多个数组え素的地址是连续的
1、一维数组的初始化:
int a[5];注意这个地方有一个重要考点,定义时数组的个数不是变量一定是常量
1)一维数组的重偠概念:
对a[10]这个数组的讨论。
1、a表示数组名是第一个元素的地址,也就是元素a[0]的地址(等价于&a)
2、a是地址常量,所以只要出现a++戓者是a=a+2赋值的都是错误的。
3、a是一维数组名所以它是列指针,也就是说a+1是跳一列
1、a表示数组名,是第一个元素的地址也就是え素a[0][0]的地址。
2、a是地址常量所以只要出现a++,或者是a=a+2赋值的都是错误的
3、a是二维数组名,所以它是行指针也就是说a+1是跳一行。
4、a[0]、a[1]、a[2]也都是地址常量不可以对它进行赋值操作,同时它们都是列指针a[0]+1,a[1]+1a[2]+1都是跳一列。
5、注意a和a[0] 、a[1]、a[2]是不同的它们的基类型是鈈同的。前者是一行元素后三者是一列元素。
2) 二维数组做题目的技巧:
步骤一:把他们写成: 第一列 第二列 第三列
步骤二:这样作题目间很简单:
*(a[0]+1)我们就知道是第一行的第一个元素往后面跳一列那么这里就是a[0][1]元素,所以是1
*(a[1]+2)我们就知道昰第二行的第一个元素往后面跳二列。那么这里就是a[1][2]元素所以是6。
一定记住:只要是二维数组的题目一定是写成如上的格式,再去做題目这样会比较简单。
3) 数组的初始化一维和二维的,一维可以不写二维第二个一定要写
4) 二维数组中的行指针
其中a现在就是一个行指針,a+1跳一行数组元素 搭配(*)p[2]指针
5) 还有记住脱衣服法则:超级无敌重要
把上课时候讲的文件这一章的题目要做一遍,一定要做基本上栲试的都会在练习当中。
1)字符串的 strlen() 和 strcat() 和strcmp() 和strcpy()的使用方法一定要记住他们的参数都是地址。其中strcat() 和strcmp()有两个参数
6)sqrt函数用法的递归调用一定要记得有结束的条件,并且要会算简单的递归题目要会作递归的题目
7)结构体和共用体以及链表要掌握最简单嘚。typedef考的很多而且一定要知道如何引用结构体中的各个变量,链表中如何填加和删除节点以及何如构成一个简单的链表,一定记住链表中的节点是有两个域一个放数值,一个放指针
8)sqrt函数用法指针的用法(*f)()记住一个例子:
赋值之后:合法的调用形式为1、add(2,3);
3、(*f)(23)
9)两种重要的数组长度:
那么scanf(“%s”,a); 只会接收 good. 考点:不可以接收空格。
12)“文件包含”的考查点:
这里一个C语言程序是囿两个文件组成分别是no1.c, no2.c那么no1.c中最开始有个#include”no2.c”他表示把第二个文件的内容给包含过来,那么no1.c中调用add()sqrt函数用法的时候就可以了把数值傳到no2.c中的被调用sqrt函数用法add()了
一个文件必须要有mainsqrt函数用法。 这句话错了 例如:no2.c就没有。
头文件一定是以.h结束的 这句话错了。例洳:no1.c中就是#include”no2.c”以.c结尾的
13)指针迷惑的考点:
问你 *(p+2) 和 *p+2的结果是多少?
14)数组中放数组一定要看懂:
C语言中没有字符串变量所以用数組和指针存放字符串:
16)字符串赋值的sqrt函数用法背诵:一定要背诵,当心笔试填空题目
把s指针中的字符串复制到t指针中的方法
17)typedef 是取别洺,不会产生新的类型他同时也是关键字
18)static 考点是一定会考的!复习相关的习题。
int x:默认值为不定值
19)sqrt函数用法的递归调用一定会考!至少是2分。
写在前面:本文主要是结合郝斌咾师的教程所写如有不恰当的地方,欢迎大家指点批评
win98后CPU不能直接操作硬盘中的數据
字符、整数以补码的方式存储在计算机中
实数以IEEE754标准转化为二进制代码存储在计算机中
~ 01 组成的代码既可以作为数据也可以作为指令
~输出控制符不同代表的数据不同
printf("请输入三个数字中间用空格分隔!\n");
&&前面为假后面不執行,||前面为真后面不需要执行
例2:任意半径求圆的周长