1、中央广播电视大学计算机科学与技术专业C语言程序设计A课程考核说明(2023)一、考核说明C语言程序设计课程是全国电大系记录算机科学与技术专业(本科)的一门基础必修课程。本课程是学习数据结构、操作系统、计算机网络、数据库、软件工程等课程的先修课,在整个专业教学体系中占有非常重要的作用。本课程重要介绍C语言的基本语法规则和程序设计方法,涉及C语言程序结构和上机运营程序的基本过程,各种数据类型的常量和变量的定义与表达,各种运算符和表达式的表达与应用,各种流程控制语句的定义与作用,各种常用函数的定义格式与调用方法,用户函数的定义与调用,数组、指针、结构、文献等数据类型的定义与使用,结构化和模块化的程序
2、设计方法等内容。学习C语言程序设计需要理论与实践相结合,只注重书本知识是空洞的,只注重上机实践是迷茫的,必须两者结合循序渐进,通过书本知识指导实践,通过实践加深理解和吸取知识,以及运用知识解决问题的能力。现将该课程考核的有关问题说明如下:1. 考核对象 全国电大系统开放教育计算机科学与技术专业(本科)的学生。2教学媒体 文字主教材C语言程序设计 任爱华主编 中央广播电视大学出版社出版。 录象教材 20讲 任爱华等主讲 中央广播电视大学音像出版社出版,时间待定。 IP网络课件 16讲 徐孝凯主讲 电大在线的该课程网站点播,2023年9月。 复习资料 C语言程序设计期末复习指导中央电大教育杂志社出
3、版发行。 平时考核 C语言程序设计形成性考核册 中央电大教育杂志社出版发行。 网上辅导 在电大在线C语言程序设计课程教学网页上发表。3. 命题依据本考核说明以中央电大计算机科学与技术专业C语言程序设计课程的教学大纲为依据编制。本考核说明是考试命题的依据。4. 考核规定本课程是以掌握C语言知识并解决实际程序设计问题为目的。重要考核学生对C语言知识的掌握限度和对解决一般问题的程序设计能力。对C语言知识要在理解和应用的基础上加强记忆和掌握,不能死记硬背。 本课程教学内容涉及了解、理解和应用三个层次,并且逐步递进,具体含义如下: (1) 了解层次:记忆C语言中的基本概念和语法规则; (2) 理解层次:
4、掌握C语言中的每个语法成分和语句的定义格式、含义及作用; (3) 应用层次:运用C语言,结合实际解决问题的需要,可以分析和编写程序。5. 命题原则(1) 在教学大纲和考核说明所规定的知识范围内命题。在教学知识范围之内,需要灵活运用才可以解决问题的试题不属于超纲。(2) 试题的取材规定覆盖面广、区分度高。(3) 试题兼顾各个能力层次,了解和理解约占40%,应用约占60%。(4) 试题的难易限度和题量适当,按难易限度分为四个层次:容易占20%,较易占40%,较难占30%,难占10%。题量安排以平时可以独立完毕作业者,能在规定的考试时间内做完并有一定期间检查为原则。6. 试题题型 选择:根据题意,从
5、四种可选择的答案中选择合适的一种答案。 填空:根据题意,在画有横线或空白括号内填写合适内容。 写出程序运营结果:根据所给的C语言程序,写出运营后的输出结果。 指出程序或函数功能:根据所给的C语言程序或函数,指出运营程序或进行函数调用时所能实现的功能。 编写程序或函数:根据所给出的题目规定,编写出相应的程序或函数模块。7. 考核形式: 本课程考核采用终结性考试与形成性考核相结合的方式。形成性考核分为两种,一种视形成性考核册作业完毕情况和所规定的上机实验完毕情况而定,占总成绩的20%;另一种为省级电大统一命题和组织的期末上机考核,占总成绩的10%,规定完毕一个带有多个程序文献的程序项目的编写(或修
6、改)并上机运营通过,上机考核时限为60分钟。形成性考核成绩由省级电大考核和确认。终结性考试采用书面和闭卷方式,考试成绩占总成绩的70%,由中央电大统一命题和考试时间,答卷时限为90分钟。总成绩满分为100分,合成成绩达成60及以上分数者可获得该课程规定的4学分,否则不获得该课程学分。第二部分 考核内容及规定 第一章 C语言概述 考核内容(知识点): 1程序、程序文献和函数的概念及其互相之间的关系。 2函数的定义格式和作用,主函数的特殊地位和作用。 3C语言简朴语句和复合语句的语法格式。 4#include预解决命令的格式与作用。 5头文献的文献名格式、在程序中的使用方法和作用。 6程序中两种注
7、释标记的写法和作用。 7标准输出函数printf()和标准输入函数scanf()的定义格式和具体应用。 8C语言程序文献名、编译后生成的目的文献名和连接后生成的可执行文献名的命名规则,以及上机输入、编辑、编译、连接和运营程序的过程。 考核规定: 规定了解和理解以上内容。 第二章 数据类型和表达式 重点考核的内容(知识点): 1C语言中的数据类型的分类。 2各种整数类型的关键字表达,存储空间的大小和值域范围。 3整型变量的定义和初始化,十进制整型常量的表达。 4字符类型的关键字表达,存储空间的大小和值域范围;字符型常量的表达,回车、换行、单引号、双引号、反斜线、空字符等特殊字符的表达。 5字符型
8、变量的定义和初始化,字符型与整型的关系。 6枚举的概念,枚举类型的定义,枚举变量的定义和初始化,枚举常量与整型常量的相应关系。 7各种实数类型的关键字表达,存储空间的大小和有效位数。 8单精度和双精度实数的定点表达和浮点(科学)表达,实型变量的定义和初始化。 9加、减、乘、除、取余、赋值、增1、减1、取数据存储长度等算术运算符的表达、含义、运算对象个数和运算优先级。 10关系运算符的定义和关系表达式的计算,逻辑运算符的定义与逻辑表达式的计算,根据任意表达式的值判断其逻辑值的方法。 一般考核的内容(知识点): 1整型常量的八进制和十六进制表达。 2符号常量的两种定义方法,它们之间的区别。 3位操
9、作符、复合赋值操作符的含义与使用。 4求关系或逻辑表达式的相反表达式的方法。 考核规定: 理解和掌握以上重点考核的内容,了解和理解以上一般考核内容。 第三章 流程控制语句 考核内容(知识点): 1C语言程序中的顺序、分支和循环这三种基本结构,每种结构的执行过程。 2简朴if语句、带else子句的if语句、多分支结构的if语句的定义格式、执行过程和在解决问题中的具体应用。 3switch语句的定义格式、执行过程和在解决问题中的具体应用。 4if语句与switch语句之间的功能比较,if语句与switch语句之间的转换。 5for循环、while循环和do-while循环的定义格式、执行过程和在解
10、决问题中的具体应用。 6三种循环结构不同特点。 7Break语句在switch语句和各种循环语句中的作用,continue语句在各种循环语句中的作用。 8goto语句和return语句的定义格式和功能。 考核规定: 理解和掌握本章的所有内容,并可以灵活应用。 第四章 数组和字符串 考核内容(知识点): 1一维数组的含义、定义格式及初始化格式。 2数组长度、数组元素、元素下标的含义,访问数组元素的语法格式,下标运算符的操作对象和操作结果。 3数组元素的下标变化范围,数组元素所占存储空间大小和整个数组所占存储空间大小的计算,各元素相应存储空间的排列情况,每个元素的存储地址的计算。 4运用一维数组存
11、储数据,按元素值的升序或降序排列数据,按给定条件或功能对数组元素依次进行访问和解决。 5二维数组的含义、定义格式及初始化格式。 6二维数组的行数和列数的概念,数组长度(即所含元素个数)的计算。 7访问二维数组元素的语法格式,每个下标运算符的操作对象和操作结果。 8二维数组中的所有元素在存储空间中的排列情况,每个元素的存储地址的计算。 9运用二维数组存储矩阵数据,按给定条件或功能对数组元素依次进行访问和解决。 10字符串常量的定义格式,字符串的存储格式,字符串长度的概念。 11一维字符数组、二维字符数组与字符串之间的关系,一维字符数组与二维字符数组的初始化。 12strlen、strcpy、st
12、rcmp、strcat等字符串函数的声明格式及功能。 13运用typedef语句定义数据类型的方法。 考核规定: 了解和理解一维数组、二维数组和字符串的概念的使用方法,会运用它们存储和解决数据。 第五章 指针 考核内容(知识点): 1指针的概念,指针变量的定义和初始化。 2指针赋值(=)、取对象(变量)地址(&)、访问指针所指对象(*)、指针比较(=、!=、0 | y=5的相反表达式为( )。A. x=0 | y!=5 B. x0 | y!=5 D. x0 & y=5 4. 枚举类型中的每个枚举常量的值都是一个( )。 A. 整数 B. 浮点数 C. 字符 D. 逻辑值 5. 循环语句“for
13、(int i=0; in; i+) S;”中循环体S被执行的次数为( )。 A. 1 B. n-1 C. n D. n+1 6. 在下面的while循环语句中,其循环体被执行的次数为( )。 int i=0,s=0; while(sname等价的表达式是_。三、写出下列每个程序运营后的输出结果 1. #include void main() int i, s=0; for(i=1;i+) if(s50) break; if(i%2=0) s+=i; printf(i,s=%d, %dn,i,s); 2. #include void main() char ch=*; int i, n=5; w
14、hile(1) for(i=0;in;i+) printf(%c,ch); printf(n); if(-n=0) break; 3. #include void main() int x=24,y=88; int i=2,p=1; do while(x%i=0 & y%i=0) p*=i; x/=i; y/=i; i+; while(x=i & y=i); printf(%dn,p*x*y); 4. #include void main() int a9=36,25,48,24,55,40,18,66,20; int i, b1, b2; a0=a1? (b1=a0, b2=a1):(b1=
15、a1,b2=a0); for(i=2; i9; i+) if(aib1) b2=b1; b1=ai; else if(aib2) b2=ai; printf(%d %dn,b1,b2); 5. #include void main() int a=10, b=20; printf(%d %dn,a,b); int b=a+25; a*=4; printf(%d %dn,a,b); printf(%d %dn,a,b); 6. #include void SelectSort(int a, int n) int i,j,k,x; for(i=1;in;i+) /进行n-1次选择和互换 k=i-1
16、; for(j=i;jn;j+) if(ajak) k=j; x=ai-1; ai-1=ak; ak=x; void main() int i; int a6=20,15,32,47,36,28; SelectSort(a,6); for(i=0; i6; i+) printf(%d ,ai); printf(n); 7. #include void LE(int* a, int* b) int x=*a; *a=*b; *b=x; void main() int x=15, y=26; printf(%d %dn,x,y); LE(&x,&y); printf(%d %dn,x,y); 8.
17、 #include #include struct Worker char name15; /姓名 int age; /年龄 float pay; /工资 ; int Equal(struct Worker* r1, struct Worker* r2) if(strcmp(r1-name, r2-name)=0) return 1; else return 0; void main() struct Worker a4=abc,25,420,defa,58,638, ghin,49,560,jklt,36,375; struct Worker x=defa; int i; for(i=0;
18、i=4) printf(没有查找所需要的记录!n); else printf(%s %d %6.2fn,ai.name,ai.age,ai.pay); 四、写出下列每个函数的功能 1. int SE(int n) /n为大于等于1的整数 int x,s=0; printf(输入%d个整数: ,n); scanf(%d,&x); if(n=1) return x; s=x; while(-n) scanf(%d,&x); s+=x; return s; 2. #include void WA(int a, int n) int i,k,j,x; for(i=0;in-1;i+) k=i; for
19、(j=i+1;jak) k=j; x=ai; ai=ak; ak=x; 3. #include int* LJ(int a, int n) int i,k=0; for(i=1;iak) k=i; return &ak; 4. int Output(struct IntNode *f) int sum=0; if(!f) return -9999; /用返回特定值-9999表达空表 while(f) sum+=f-data; f=f-next; return sum; 假定struct IntNode的类型定义为: struct IntNode int data; /结点值域 struct I
20、ntNode* next; /结点指针域 ; 5. int wr4(FILE* fptr) char ch; int c=0; fseek(fptr,0,SEEK_SET); while(1) ch=fgetc(fptr); if(ch!=EOF) c+; else break; return c; 五、根据下列每个题目规定编写程序 1. 编写一个函数fun(),一方面从键盘上输入一个4行4列的一个实数矩阵到一个二维数组a44中,接着求出主对角线上元素之和,最后返回求和结果。 2. 编写一个主函数,计算1+3+32+.+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标
21、记符。 3. 编写一个主函数,已知6a40,15b30,求出满足不定方程2a+5b=120的所有整数组解。如(13,20)就是其中的一组解。参考解答:一、选择题1. C 2. D 3. B 4. A 5. C 6. C 7. B 8. A 9. C 10. A 11. D 12. A 13. C 二、填空题1. /* 2. 程序 3. weirong18 4. C 5. 2 6. float7. 33 8. (!x)9. 1 10. if11. continue 12. M*N13. 2 14. 长度15. 实参 16. 程序文献17. *(a+i) 18. *p 19. struct Wor
22、ker* r 20. (*p).name三、写出下列每个程序运营后的输出结果 1. i,s=15, 56 2. * * * * * 3. 264 4. 18 20 5. 10 20 40 35 40 20 6. 15 20 28 32 36 47 7. 15 26 26 15 8. defa 58 638.00四、写出下列每个函数的功能1. 求出从键盘上输入的n个整数之和并返回。2. 采用选择排序的方法对数组a中的n个整数按照从大到小的顺序重新排列。3. 求出数组a中n个元素的最大值元素,返回该元素的地址4. 对于以表头指针为f的链表,求出并返回所有结点中data域的值之和。5. 求出一个以f
23、ptr为文献流的所相应文献的长度,即所存字符的个数。五、根据下列每个题目规定编写程序1. double fun() double a44; double s=0; int i,j; printf(输入一个4*4的数值矩阵:n); for(i=0;i4;i+) for(j=0;j4;j+) scanf(%lf,&aij); for(i=0;i4;i+) s+=aii; return s; 2. #include void main() int i; /用i作为循环变量 int p=1; /用p作为累乘变量 int s=1; /用s作为累加循环变量 for(i=1;i=10;i+) p*=3; s+=p; printf(%dn,s); 3. #include void main() int a,b; for(a=6;a=40; a+) for(b=15;b=30;b+) if(2*a+5*b=120) printf(%d, %d)n,a,b); 注意:以上只是在题型和内容上提供参考,题量要比试卷多。