全国计算机等级考试二级C语言复习资料
沈阳化工大学
第一章 C语言基础知识  ——————————————  1
第二章 顺序结构  —————————————————  7
第三章 选择结构  —————————————————  12
第四章 循环结构  —————————————————  19
第五章 字符型数据  位运算  ————————————  26
第六章 函数  ———————————————————  28
第七章 指针  ———————————————————  35
第八章 数组  ———————————————————  37
第九章 数组与指针  ————————————————  42
第十章 字符串  ——————————————————  47

全国计算机二级C语言考试复习讲义
    第一章 C语言基础知识
一、教学讲点
1.C语言的基本构成和格式
#include “stdio.h”
main()
{
  int a,b,sum;/* 定义变量*/
  a=10;    /*把整数10赋值给变量a*/
  b=20;    /*把整数20赋值给变量b*/
  sum=a+b; /*把两数之和赋值给变量 sum*/
  printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*输出计算结果*/
}
(1).C程序由函数组成,一个程序必须且只能有一个主函数(main()),C程序总是从主函数开始执行,在主函数中结束。
(2).定义函数时函数名后必须有一对小括号,函数体必须放在一对花括号内,在函数体中,函数体有两个部分:定义部分和执行部分。定义语句必须出现在执行语句之前,我们先定义了a,b,sum,然后才给它们赋值。
(3).C语言中每条语句都以分号结束,分号时C语句的一部分。即使是程序的最后一个语句也不例外。分号是语句结束的标志。
(4). 一行可以写多条语句,一条语句也可以分在多行上写,但是,不能将一个整体分开。
  例如:i nt 是错误的,而int正确。
(5). C语言的注释必须放在“/*”“*/”之间,“/”“*”之间不允许有空格。“/*”“*/”之间不允许再插入“/*”“*/”。注释可以出现在程序中的任意位置。注释部分不被执行。
(6).C语言程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。但是过于自由的程序书写格式往往使人们很难读懂程序,初学者应该从一开始就养成好的习惯,是程序便于阅读。
2.标识符
(1)标识符只能由字母、数字和下划线组成。
(2)标识符的第一个字符必须是字母或下划线。
3 标识符的大小写字母是有区别的,如abcABC是两个完全不同的标识符。 
(3)标识符的分类:
关键字:关键字是具有特定的含义的、专门用来说明C语言特定成分的一类标识符。详细的查阅附录二。
预定义标识符:在C语言中它也有特定的含义。预定义标识符可以用位用户表标识符使用,只是这将使这些标识符失去了原来的意义。
用户标识符:由用户根据需要定义的标识符被成为用户标识符。用户标示符用来给变量、函数、数组或者指针等命名。
3.C语言的数据类型
3.1数据可以分为常量和变量。常量是指在程序执行中不变的量,常量分为:整型常数、实型常数、字符常量、字符串常量。
整型数据:
进制间的转换
3.11.二、八、十六进制转为十进制
规则:按权相加
3.12.十进制转为二、八、十六进制
规则:
整数部分:基数除取余,逆序排列
小数部分:基数乘取整,顺序排列
3.13.二进制转为八、十六进制
规则:三(四)合一,按序相拼(整数部分,从右向左取,小数部分从左向右取,位数不足补零)。
3.14.八、十六进制转为二进制
规则:一分三(四),按序相拼
3.2整型数据在内存中的存放形式
1字节=8位,1Byte8bit
字长:指CPU能同时处理的二进制位数。由CPU的型号而定。如:16位微机的字长就是16位或2字节。
1GB=1024MB1MB=1024KB1KB=1024B
B:表示字节,字节是表示存储容量的最小单位。位(bit):是计算机中信息表示的最小单位。
3.21.正整数在内存中用原码形式存放。(直接转换为二进制即可)。
如:5
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
二字节能存放的最大数是:32767
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
对带符号数,最高位是符号位,用0表示正,用1表示负。
3.22.负整数在内存中用补码形式存放。
取补码的步骤:
(1)忽略负号,求出原码。
(2)将原码按位取反(0 1 互换)。
(3)在第二步的基础上加1
如:取-5计算机二级考c语言吗的补码。
(1)
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
(2)
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
(3)
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
将补码转换成相应的整数的步骤:
(1)将补码按位取反加1
(2)将步骤1得到的二进制数转换成十进制数,然后加上负号即可。
例如:
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
按位取反加1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
                                            1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
转换成十进制:1×21532768
加负号:-32768
几个特殊的带符号整数:
1000000000000000  -32768
0111111111111111    32767
1111111111111111    -1
3.23.无符号整数:只有正整数,没有负整数,最高位不表示符号位,每一位均参与转换。
二进制
带符号整数
无符号整数
111111*********1
-1
65535
1000000000000000
-32768
32768
2-12:若有:int a=-1; unsigned b=65535;
printf(“%d,%u,%d,%u”,a,a,b,b);  输出结果是:-165535-165535
数据益出问题:
2-13:若有int a=32767;a=a+1的结果是:
-32768
2-14:若有unsigned b=65536;b的值是:0
分析:3276701111111111111111
                          +1
100000000000000
100000000000000按照带符号数转为十进制为-32768
65535111111*********1
+1
11111111
11111111
+1
1
00000000
00000000
65536
unsigned b=655536;b属于无符号整型,在内存中只占两字节,所以只能包括16位。
 标准C没有具体要求规定各类型数据所占内存的字节数, 现以这次考试标准viusal c++6.0为例,说明各类型变量所占的位数。
类型
所占位数
所占字节数
类型
所占位数
所占字节数
short
16
2
unsigned int 
 32
4
int 
32
4
unsigned long
 32
4
long
32
4
float
 32
4
unsigned short
16
2
double
 64
 8

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。