电大本科C语言程序设计A期末考试试题及答案.doc

上传人:风**** 文档编号:1122711 上传时间:2024-08-24 格式:DOC 页数:21 大小:127.50KB
下载 相关 举报
电大本科C语言程序设计A期末考试试题及答案.doc_第1页
第1页 / 共21页
电大本科C语言程序设计A期末考试试题及答案.doc_第2页
第2页 / 共21页
电大本科C语言程序设计A期末考试试题及答案.doc_第3页
第3页 / 共21页
电大本科C语言程序设计A期末考试试题及答案.doc_第4页
第4页 / 共21页
电大本科C语言程序设计A期末考试试题及答案.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、 中央广播电视大学计算机科学与技术专业C语言程序设计A课程考核说明一、考核说明C语言程序设计课程是全国电大系统计算机科学与技术专业(本科)的一门基础必修课程。本课程是学习数据结构、操作系统、计算机网络、数据库、软件工程等课程的先修课,在整个专业教学体系中占有非常重要的作用。本课程主要介绍C语言的基本语法规则和程序设计方法,包括C语言程序结构和上机运行程序的基本过程,各种数据类型的常量和变量的定义与表示,各种运算符和表达式的表示与应用,各种流程控制语句的定义与作用,各种常用函数的定义格式与调用方法,用户函数的定义与调用,数组、指针、结构、文件等数据类型的定义与使用,结构化和模块化的程序设计方法等

2、内容。学习C语言程序设计需要理论与实践相结合,只注重书本知识是空洞的,只注重上机实践是迷茫的,必须两者结合循序渐进,通过书本知识指导实践,通过实践加深理解和吸收知识,以及运用知识解决问题的能力。现将该课程考核的有关问题说明如下:1. 考核对象 全国电大系统开放教育计算机科学与技术专业(本科)的学生。2教学媒体 文字主教材C语言程序设计 任爱华主编 中央广播电视大学出版社出版。 录象教材 20讲 任爱华等主讲 中央广播电视大学音像出版社出版,时间待定。 IP网络课件 16讲 徐孝凯主讲 电大在线的该课程网站点播,2008年9月。 复习资料 C语言程序设计期末复习指导中央电大教育杂志社出版发行。

3、平时考核 C语言程序设计形成性考核册 中央电大教育杂志社出版发行。 网上辅导 在电大在线C语言程序设计课程教学网页上发表。3. 命题依据本考核说明以中央电大计算机科学与技术专业C语言程序设计课程的教学大纲为依据编制。本考核说明是考试命题的依据。4. 考核要求本课程是以掌握C语言知识并解决实际程序设计问题为目的。主要考核学生对C语言知识的掌握程度和对解决一般问题的程序设计能力。对C语言知识要在理解和应用的基础上加强记忆和掌握,不能死记硬背。 本课程教学内容包括了解、理解和应用三个层次,并且逐步递进,具体含义如下: (1) 了解层次:记忆C语言中的基本概念和语法规则; (2) 理解层次:掌握C语言

4、中的每个语法成分和语句的定义格式、含义及作用; (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、strcmp、

12、strcat等字符串函数的声明格式及功能。 13利用typedef语句定义数据类型的方法。 考核要求: 了解和理解一维数组、二维数组和字符串的概念的使用方法,会利用它们存储和处理数据。 第五章 指针 考核内容(知识点): 1指针的概念,指针变量的定义和初始化。 2指针赋值(=)、取对象(变量)地址(&)、访问指针所指对象(*)、指针比较(=、!=、0 | y=5的相反表达式为( B )。A. x=0 | y!=5 B. x0 | y!=5 D. x0 & y=5 5. 枚举类型中的每个枚举常量的值都是一个( A )。 A. 整数 B. 浮点数 C. 字符 D. 逻辑值6. 循环体至少被执行一次

13、的语句为( C )循环语句。 Afor B.while C.do-while D.任一种 7. 循环语句“for(int i=0; in; i+) S;”中循环体S被执行的次数为( C )。 A. 1 B. n-1 C. n D. n+1 8. 在下面的while循环语句中,其循环体被执行的次数为( C )。 int i=0,s=0; while(s3 & x10的相反表达式为 x=10 。 17若x=5,y=10,则x!=y的逻辑值为 1 。 18. 假定x=5,则执行“int a=(! X? 10:20);”语句后a的值为 20 。19. 在if语句中,每个else关键字与它前面同层次并且

14、最接近的 if 关键字相配套。 20. 若while循环的“头”为“while(i+name等价的表达式是 (*p).name 。三、写出下列每个程序运行后的输出结果 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); / s=2+4+6+8+10+12+14=56 i=15 2. #include 结果* void main() char ch=*; int i, n=5; while(1) for(i=0;in;i+) printf(%

15、c,ch); printf(n); if(-n=0) break; 3. #includeconst int N=5;void main()结果 1 1 1 2 2 2 3 6 9 4 24 33 int i,p=1,s=0; for(i=1;iN;i+) p=p*i; s=s+p; printf(%5d%5d,i,p); printf(%5dn,s); 4. #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); print

16、f(%dn,p*x*y); /* i=2 p=2 x=12 y=44 P=4 x=6 y=22 P=8 x=3 y=11 i=3 i=4 循环条件不成立 因此循环体不执行 p*x*y=8*3*11=264 */5. #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=a1,b2=a0);/ b1=25,b2=36 for(i=2; i9; i+) /i取2到8 if(aib1) b2=b1; b1=ai; /注意循环体 else if(aib2) b2=

17、ai; printf(%d %dn,b1,b2); 分析 i=2 a2=48 b1=25 b2=36 i=3 a3=24 b2=25 b1=24 i=4 a4=55 b2=25 b1=24 i=5 a5=44 b1=25 b1=24 i=6 a6=18 b2=24 b1=18 i=7 a7=66 b2=24 b1=18i=8 a8=20 b2=20 b1=18结果18 20 6. #include void main() int a12=76,63,54,62,40,75,80,92,77,84,44,73; int b4=60,70,90,101; int c4=0; int i,j; fo

18、r(i=0;i=bj) j+; cj+;结果3 2 6 1 for(i=0;i4;i+) printf(%d,ci); printf(n); 7. #include void main() int a=10, b=20; printf(%d %dn,a,b); int b=a+25; /注意局部变量b的作用域 a*=4; printf(%d %dn,a,b); printf(%d %dn,a,b); 结果10 20 40 35 40 20 8. #include void SelectSort(int a, int n) int i,j,k,x; for(i=1;in;i+) /进行n-1次选

19、择和交换 k=i-1; 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); 结果:15 20 28 32 36 47 9#include void main() int a8=4,8,12,16,20,24,28,32; int *p=a; do printf(%d,*p); p+=2; while(pa+8); printf(n);

20、 结果:4 12 20 28 10. #include void LE(int* a, int* b) int x=*a; *a=*b; *b=x;结果: 15 26 26 15 void main() int x=15, y=26; printf(%d %dn,x,y); LE(&x,&y); printf(%d %dn,x,y); 11. #include #include struct Worker char name15; /姓名 int age; /年龄 float pay; /工资 ; int Equal(struct Worker* r1, struct Worker* r2)

21、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; i=4) printf(没有查找所需要的记录!n); else printf(%s %d %6.2fn,ai.name,ai.age,ai.pay); 结果:defa 58 638.00四、写出下列每个函数的功能 1. int SE(int n) /n为大

22、于等于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; 函数功能:求出键盘上输入的n个整数之和并返回。2. float FH() float x,y=0,n=0;scanf(%f,%x);while(x! =-1.0) n+; y+=x;scanf(%f,%x);if(n-0) return y; else return y/n; 函数功能:求出从键盘上输出的一批常数的平均值,以-1.0作为结束输入的标志。 3. #i

23、nclude void WA(int a, int n) int i,k,j,x; for(i=0;in-1;i+) k=i; for(j=i+1;jak) k=j; x=ai; ai=ak; ak=x; 函数功能:采用选择排序的方法对数组a中的n个整数按照从大到小的次序重新排列。 4. #include int* LJ(int a, int n) int i,k=0; for(i=1;iak) k=i; return &ak; 函数功能:求出数组a中n个元素的最大值元素,返回该元素的地址。 5. void QC(struct StrNode* f) while(f) printf(%sn,f-name);f=f-next; 假定结构类型StrNode的定义如下: stuct StrNode char name15; /字符串域 struct StrNode *next; /指针域 ; 函数功能:遍历f单链表,即从头结点开始依次输出f单链表中每个结点的值。 6. int Output(struct IntNode *f)

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 教学课件 > 幼儿教育

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922