《C语言程序设计》考试说明.docx
C语言程序设计考试说明 ·详细内容 发布于 2014-01-14, 周二 02:32 考试大纲 一、 课程名称 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. 循环的嵌套。要求学生了解选择结构、循环结构的算法表示形式,重点掌握ifElse语句、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取地址运算符为_, 取内容运算符为_10C语言源文件的扩展名为_, 可执行文件的扩展名_. 第二部分 知识鉴别(每题2分,共30分) 1 在C语言中,数字029是一个( )A:八进制数 B:十六进制数C:十进制数 D:非法数2已知:int I;float f;则正确的语句是( )A:(int f)% I B: int (f) %IC: int (f%I) D: (int)f% i3已知:char a;int b;float c;double d;执行语句c=a+b+c+d后,变量c的数据类型为( )A:int B: char C: float D:double4int n,I=1,j=2;执行语句n=I<j?I+:j+;则I和j的值为( )A:1,2 B:1,3C:2,2 D :2,35C语言对嵌套if语句的规定是:else总是和( )配对。A:与之前最近的一个if B:第一个ifC:最后一个if D:之前最近的尚未配对的if6下面的语句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:68调用strlen(“abcd0ef0g”)的返回值为( )A:4 B:5 C:8 D:99在C语言中,二维数组元素在内存中的存放顺序是( )A:按行存放 B:按列存放C:用户自定义 D:编译器决定10有数组int num5=10,20,30,40,50;则num3的值为A:10 B:20 C:30 D:4011C语言中,有数组定义:char array=“china”;则数组array所占用的内存空间为几个字节A:4 B:5C:6 D:712在C 语言中,引用数组元素时,其下标的数据类型允许是A:只允许整型常量 B:整型变量C:整型常量或者整型表达式 D:任何类型的表达式13 已知:int *p,a; 则语句“p=&a;”中的运算符“&”的含义是A:位运算符 B:逻辑运算符C: 取指针内容 D:取变量地址14已知:char s10;*p=s,则以下语句中错误的语句是( )A:p=s+5 B:s=p+sC:s2=p4 D:*p=s015char b5,*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,%dn”,k,a,b) ;则:以上程序的输出结果是_2Main( )int a=3, b=2, c=1;int x=10, y=20;if(a<b)if(b!=0)if(!x)y=1;else if(x)y=0;y=-1;printf(“%d”,y);则:上面C程序的输出结果是_ 3main( )int i, x33=1,2,3,4,5,6,7,8,9;for (i=0;i<3;i+)printf(“%d”,xi2-i);则:以上C程序的输出结果是_ 4void 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); 则:程序的运行结果是:_ 5char *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, a10, s=0 , count=0;for (i=0; i<10;i+)scanf(“%d”, _);for(i=0;i<10;i+) if (ai<0) ;s += ai; _printf(“%d,%d”,s,count); 第五部分:综合技能训练(每题10分,共20分) 1 打印出所有的“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153=13+53+33,所以153是一个水仙花数。 2函数编写部分要加强训练,如求累加和问题,阶乘问题等。