考试大纲
一、 课程名称 C语言程序设计
二、 参考教材
1. 谭浩强. C语言程序设计.(第二版),清华大学出版社
2. 谭浩强. C程序设计题解与上机指导. 清华大学出版社
3. 黄维通. C语言程序设计. 清华大学出版社
4. 张基温. C语言程序设计案例教程. 清华大学出版社
需要达到的水平的具体标准参照全国计算机等级考试二级C语言程序设计考试大纲
三、 基本要求
1.掌握结构化程序设计的方法,具有良好的程序设计风格。
2.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。
3.在 Visual C++ 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。
四、 考试内容
4.1 C语言程序的基本结构
1 程序的构成,main函数和其他函数。
2 头文件,数据说明,函数的开始和结束标志以及程序中的注释。
3 源程序的书写格式;C语言的风格。
4 C语言的上机步骤及运行环境
5 算法的基本概念与表示方法
要求学生了解C语言的背景,认识C语言程序的结构,掌握C程序的上机步骤,了解算法的基本概念与特征,了解结构化程序设计的基本概念。
4.2 数据类型及其运算和输入输出
1 C的基本数据类型及其定义方法。
2 C运算符的种类、运算优先级和++,--的结合性。
3 不同类型数据间的转换与运算。
4 C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
要求学生掌握C语言提供的基本类型数据的使用规则、不同类型间数据转换的原则与方法,掌握各种运算符的运算规则。
4.3 基本语句
1 表达式语句,空语句,复合语句。
2 输入输出函数的调用,正确输入数据并正确设计输出格式。
重点要求掌握基本类型数据的格式化输入与输出方法
4.4 选择结构程序设计
1 用if语句实现选择结构。
2 用switch语句实现多分支选择结构。
3 选择结构的嵌套。
4.5 循环结构程序设计
1. for循环结构。
2. while和do-while循环结构。
3. continue语句和break语句。
4. 循环的嵌套。
要求学生了解选择结构、循环结构的算法表示形式,重点掌握if…Else语句、switch语句、循环语句(for 、while 、do-while 语句)的用法,掌握break、continue 在控制结构中的作用和特点。本章结束以后,学生能进行简单程序设计开发。
4.6 数组的定义和引用
1.一维数组和二维数组的定义、初始化和数组元素的引用。
2.字符串与字符数组。
要求学生掌握一维数组、二维数组的定义、初始化和数组元素的引用方法;掌握字符数组的定义与引用,了解常用字符串处理函数。了解数组的实际意义,能够利用数组解决具体问题,如一些简单的排序算法的设计。
4.7 函数
1.库函数的正确调用。
2.函数的定义方法。
3.函数的类型和返回值。
4.形式参数与实在参数,参数值传递。
5.函数的正确调用,嵌套调用,递归调用。
6.局部变量和全局变量。
7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。
要求学生重点掌握函数定义的格式,理解函数的形参与实参的对应关系,重点掌握函数调用的形式,掌握局部变量与全局变量、动态存储变量与静态存储变量的区别以及它们的使用方法,了解模块化程序设计的方法。
4.8 指针
1.地址与指针变量的概念,地址运算符与间址运算符。
2.一维、二维数组和字符串的地址以及指向变量、数组、字符串的指针变量的定义。通过指针引用以上各类型数据。
3.用指针作函数参数。
4.返回地址值的函数。
附 参考试题
第一部分 基本知识部分(每题1分,共10分)
1. 语言的四大数据类型为是______________________
2. 在一个源程序文件中定义的全局变量的作用域为:_______________________
3. 表达式3*7%2+7%2*5的值为______________________
4. 如果利用数组名字作为函数调用的参数,则实际上传递给形参的是____________
5.一个C语言程序总是从__________开始执行。
6. int a[ ] [3]={1,2,3,4,5,6,7},其中数组第一维的元素个数为___________
7.判断两个字符串str1和str2是否相等的库函数为_____________
8.内存动态分配的库函数为___________________
9.取地址运算符为________, 取内容运算符为______________
10.C语言源文件的扩展名为_______, 可执行文件的扩展名__________.
第二部分 知识鉴别(每题2分,共30分)
1. 在C语言中,数字029是一个( )
A:八进制数 B:十六进制数
C:十进制数 D:非法数
2.已知:int I; float f;则正确的语句是( )
A:(int f)% I B: int (f) %I
C: int (f%I) D: (int)f% i
3.已知:char a;int b;float c;double d;执行语句c=a+b+c+d后,变量c的数据类型为( )
A: int B: char
C: float D:double
4.int n,I=1,j=2;执行语句n=I
A:1,2 B:1,3
C:2,2 D :2,3
5.C语言对嵌套if语句的规定是:else总是和( )配对。
A:与之前最近的一个if B:第一个if
C:最后一个if D:之前最近的尚未配对的if
6.下面的语句for(x=0,y=0;(y!=123)&&(x<4);x++)
A:是无限循环 B:循环次数不定
C:执行4次 D:执行3次
7.定义 int I=1;执行语句while (I++<5);后,I的值是( )
A:3 B:4 C: 5 D:6
8.调用strlen(“abcd\0ef\0g”)的返回值为( )
A:4 B:5 C:8 D:9
9.在C语言中,二维数组元素在内存中的存放顺序是( )
A:按行存放 B:按列存放
C:用户自定义 D:编译器决定
10.有数组 int num[5]={10,20,30,40,50};则num[3]的值为
A:10 B:20
C:30 D:40
11.C语言中,有数组定义:char array[]=“china”;则数组array所占用的内存空间为几个字节
A:4 B:5
C:6 D:7
12.在C 语言中,引用数组元素时,其下标的数据类型允许是
A:只允许整型常量 B:整型变量
C:整型常量或者整型表达式 D:任何类型的表达式
13. 已知:int *p,a; 则语句“p=&a;”中的运算符“&”的含义是
A:位运算符 B:逻辑运算符
C: 取指针内容 D:取变量地址
14.已知:char s[10];*p=s,则以下语句中错误的语句是( )
A:p=s+5 B:s=p+s
C:s[2]=p[4] D:*p=s[0]
15.char b[5],*p=b;则正确的语句为( )
A:b=”abcd” B:*b=”abcd”
C:p=”abcd” D:*p=”abcd”
第三部分 程序分析能力(每题4分,共20分)
1. main( )
{
int a = –1, b = 4, k;
k=(+ + a <0)&& !(b––< 0) ;
printf(“%d,%d,%d\n”,k,a,b) ;
}
则:以上程序的输出结果是_________________________
2.Main( )
{
int a=3, b=2, c=1;
int x=10, y=20;
if(a
if(b!=0)
if(!x)
y=1;
else if(x)
y=0;
y=-1;
printf(“%d”,y);
}
则:上面C程序的输出结果是_____________
3. main( )
{
int i, x[3][3]={1,2,3,4,5,6,7,8,9};
for (i=0;i<3;i++)
printf(“%d”,x[i][2-i]);
}
则:以上C程序的输出结果是________________________
4.void fun( int a, int b, int c)
{ a=456;b=567;c=678; }
main( )
{
int x=10,y=20,z=30;
fun(x,y,z);
printf(“%d,%d,%d”,z,y,x);
} 则:程序的运行结果是:___________________________
5. char *p=”happy new year”;
char *q=p;
int k;
for (k=1;k<8;k++)
{ putchar(*q);
q++;
}
则:以上C程序的输出结果是__________________________
第四部分:程序分析能力(每题5分,共20分)
1.以下程序实现从1到100的类加和,请把程序填充完整。
main( )
{
int i=1,sum=0;
for( ; ;)
{ sum+=i;
_____________
if (i>100)
_____________
}
printf(“%d”,sum);
}
2.下面的函数是一个求阶乘的递归函数
facto ( int n )
{if (n= =1)_______________
else return _______________ }
3.下面的部分程序用于输出3到100之间的所有素数
for ( i=3; i<=100; i++)
{
for (j=2; j<=i-1; j++)
if ( ______________ ) break;
if ( _______________ ) printf(“%d”, i);
}
4.读入10个整数,统计非负数的个数,并计算非负数的和。
main( )
{
int i, a[10], s=0 , count=0;
for (i=0; i<10;i++)
scanf(“%d”, _______);
for(i=0;i<10;i++)
{ if (a[i]<0) ;
s += a[i];
_____________
}
printf(“%d,%d”,s,count);
}
第五部分:综合技能训练(每题10分,共20分)
1. 打印出所有的“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153=13+53+33,所以153是一个水仙花数。
2. 函数编写部分要加强训练,如求累加和问题,阶乘问题等。
课程名称:单片机原理及其接口技术
教材:胡汉才 编著 , 清华大学出版社
复习范围
第1章 微型计算机基础
1.1 计算机中的数制及数的转换
1.2 计算机中数的表示方法
1.3 计算机中数的表示形式
1.4 计算机中数和字符的编码
1.5 单片微型计算机概述
第2章 MCS-51单片机结构与时序
2.1 MCS-51单片机内部结构
2.2 MCS-51单片机引脚功能
2.3 MCS-51单片机工作方式
2.4 MCS-51单片机时序
第3章MCS-51单片机指令系统
3.1 概述
3.2 寻址方式
3.3 数据传送指令
3.4 算术与逻辑运算和移位指令
3.5 控制转移和位操作指令
第4章 汇编语言程序设计
4.1 汇编语言的结构
4.2 汇编语言源程序的设计与汇编
4.3 简单程序与分支程序设计
4.4 循环与查表程序设计
4.5 子程序与运算程序设计
第5章 半导体存储器
5.1 半导体存储器基础
5.2 只读存储器ROM
5.3 随机存取存储器RAM
5.4 MCS-51和外部存储器的连接
注:前五章重在考核编程能力
第6章MCS-51中断系统
概述;定时器和中断
第7章 并行I/O接口
概述;MCS-51内部并行I/O端口及其应用
并行I/O接口芯片8255
¥29.8
¥9.9
¥59.8