1、电大计算机本科 C语言程序设计A课程基于网络考核改革试点方案C语言程序设计课程基于网络考核改革试点方案(该方案仅限于2013年春学期使用)一、考核改革的目的1通过本课程考核的改革,积极探索在基于网络的开放教育中,针对成人业余学习的特点,利用网络进行课程考核的基本模式; 2通过本课程考核的改革,积极探索基于网络的C语言程序设计课程的具体考核内容、形式和措施;3通过本课程考核的改革,进一步强化教学过程的落实,指导学生在学习过程中理解和掌握课程内容,引导学生实现各个学习环节和步骤,有效地达到学习目标。4探索远程成人考核的信度和效度,保证学习质量。二、考核对象本课程适合计算机科学与技术(本科)专业使用
2、。此次基于网络考核改革首先采用试点,待总结经验后再逐步推开。从2012年春季开始选择具备条件的部分省级电大参加试点。三、考核目标通过考核重点检测学生对C语言程序设计课程基本语法规则的掌握程度和在上机操作环境下进行分析、设计和调试程序的实际能力。四、考核方式采用基于网络的考核方式,包括形成性考核和终结性考核,均安排在中央电大网上考试平台上进行。本课程的相关考核材料将按时提交到该课程的网络考核平台上。形成性考核和期末终结性考核分别占课程总成绩的60%和40%,并且要求各自达到及格,才能够被认定为课程考核及格,可取得该课程的4学分。形成性考核主要考核学生在相应阶段的学习效果和上机操作能力,期末终结性
3、考核主要考核学生对基本语法知识掌握的程度和进行程序分析和设计的综合能力。形成性考核为相继四次作业,期末终结性考核为期末一次试卷(闭卷)。参加本课程网考试点的学生,要在整个学期的学习过程中,注意登陆在中央电大考试平台网站上建立的该课程的网络考试平台,并按时完成和提交相应的作业(试卷)。通过该课程的形成性考核网络平台,一方面可以加强对地方电大教师教学过程的引导、指导和管理,督促按进度完成教学任务,实现教学目标;另一方面可以加强对学生平时自主学习过程的指导和监督,提醒学生按照每个阶段的教学要求和学习任务安排学习计划和提交作业(试卷)。从而调动学生的学习积极性和主动性,以及上机操作的能力,达到顺利通过
4、该课程学习任务的目的,以及提高进行程序分析和设计的能力。五、形考说明形成性考核将相继安排为四次作业,每次作业内容将由中央电大按时发布到中央电大形成性网络考试平台上。按照学习进度,形成性考核将考核学生每个阶段的学习效果和相应的上机操作能力,每次形考的内容和时间安排如下表所示。序号内容形式发布时间最迟提交时间权重 1对应教材第1、2章内容,包括C语言常量、变量、函数、表达式的表示与求值,系统头文件stdlib.h和数学头文件math.h的使用,系统函数printf和scanf的作用,上机操作环境的使用。在计算机上输入、编辑、编译、连接和运行一个给定的C语言程序(包含多个文件),把运行结果依次拷贝到
5、一个文本文件(记事本)中,将其压缩(rar或zip)后提交到形成性考核平台的该课程网站上。5周8周25 2对应教材第3、4章内容,包括各种流程控制语句的定义和使用,一维数组和二维数组的定义和使用,字符串的定义和使用等。根据已知要求进行程序设计,编写出相应的C语言程序,上机运行程序,最后把程序文本和运行结果依次拷贝到一个文本文件中,将其压缩(rar或zip)后提交到形成性考核平台的该课程网站上。9周12周253对应教材第5、6章内容,包括指针定义和使用,指针和一维数组的关系,用户函数的定义和使用,变量的作用域等。根据指定要求进行模块化程序设计,上机运行程序和输入数据,最后把整个程序和运行结果(包
6、括输入的数据行)拷贝到一个文本文件中,将其压缩(rar或zip)后提交到形成性考核平台的该课程网站上。13周15周25 4对应教材第7、8章内容,包括结构类型的定义和使用,文本文件的定义和使用等。在计算机上输入和运行带有文件处理功能的程序,并能够根据要求修改程序,把添加的语句和运行结果(即运行时写入到文本文件的内容),将其压缩(rar或zip)后提交到形成性考核平台的该课程网站上。15周16周25附四次形成性考核任务样例第一次形考任务样例:一、 目的:了解和熟悉VC+6.0集成开发环境,能够调试和运行具有多文件结构的C语言程序。二、 内容和步骤:1、在一个逻辑盘(如D盘)或给定的目录下,使用V
7、C+6.0环境中的“文件“新建”命令,利用打开的“工作区”选项卡界面,建立名为“C语言形成性考核”的工作区(文件夹);2、在上述工作区下建立一个内容为空的项目(目录),假定项目名用“xkzy1”表示;3、在上述项目内建立一个具有如下内容的、名称为“main.c”的程序主文件; #include #include head.h void main() int a,b,c; printf(请输入任意三个整数:); scanf(“%d %d %d”,&a,&b,&c); printf(求和: %dn,Sum(a,b,c); printf(乘积: %dn,Product(a,b,c); 4、同时在上述
8、项目内建立一个具有如下内容的、名称为“next.c”的程序次文件; int Sum(int a,int b, int c) return a+b+c; int Product(int a,int b, int c) return a*b*c; 5、同时在上述项目内建立一个具有如下内容的、名称为“head.h”的用户头文件; int Sum(int, int, int); int Product(int, int, int);6、分别编译上述程序主文件和次文件,均无误后再进行连接,自动生成与项目名相同的可执行文件; 7、选择编译菜单中的“执行”命令运行程序,按要求输入三个整数后,得到运行结果。三
9、、提交内容程序执行时,在输出屏幕上呈现的所有内容。四、评分标准本次任务占形成性考核成绩的25。由于在程序运行时,输入的三个整数是随意的,所以运行结果因输入数据的不同而异。只要是第2和3行的数据分别是第1行3个整数的和与积,就是正确结果。第二次形考任务样例:一、 目的:会使用流程控制语句和数组,编写出进行数据处理的程序,并能够上机调试和运行。二、 内容和步骤:1、利用第一次作业所建立的工作区,或另建一个新工作区;2、在工作区下建立一个内容为空的项目,假定项目名用“xkzy2”表示;3、编写一个C语言程序,要求实现的功能为:从键盘上输入一行包含数字的字符串,假定该字符串的长度不超过50,试统计出该
10、串中每一种十进制数字字符的个数并输出。4、在上述项目内建立一个能够实现上述功能的、名称为“main.c”的程序文件,并输入、编译、连接和运行此C语言程序文件。三、 提交内容你所编写出的程序,以及在程序执行时,其输出屏幕上呈现的所有内容。四、 评分标准本次任务占形成性考核成绩的25。由于在程序运行时,输入的一个字符串是随意的,所以运行结果因字符串不同而异。只要程序的逻辑正确,即能够统计和输出字符串中每个数字字符出现的次数,就是正确的运行结果。参考程序(谨供老师参考):#includevoid main() char s51; int i,c10=0; printf(输入一个包含数字的字符串:);
11、 scanf(%s,s); for(i=0; si; i+) if(si=0 & si=9) csi-48+; for(i=0; i10; i+) printf(%d: %dn,i,ci);第三次形考任务样例:一、 目的:会使用函数定义编写出具有一定功能的模块,学会进行结构化和模块化的程序设计。二、 内容和步骤:1、打开第一次作业所建立的工作区,或另建一个新工作区;2、在工作区下建立一个内容为空的项目,假定项目名用“xkzy3”表示;3、在上述项目内建立一个名称为“main.c”的程序文件,程序内容如下; #include #include int* contrary(int a, int n
12、); void main() int a8=2,5,8,1,4,9,6,7; int i, *b; for(i=0; i8; i+) printf(%d ,ai); printf(n); b=contrary(a,8); for(i=0; i8; i+) printf(%d ,bi); printf(n); for(i=0; i8; i+) printf(%d ,ai); printf(n); 4、根据程序中的函数声明,在其程序下面编写出该函数的定义,此函数的功能是:首先利用calloc函数动态分配一块数组空间,数组长度为n,元素类型为int,接着把参数a数组中的元素值按相反次序复制到新得到的
13、动态数组空间中,最后返回这个动态数组空间的首地址。5、编译、连接和运行上述程序,得到的运行结果应当为:2 5 8 1 4 9 6 77 6 9 4 1 8 5 22 5 8 1 4 9 6 7三、 提交内容你所编写的contrary函数的定义模块。四、 评分标准本次任务占形成性考试成绩的25。只要程序运行结果正确就可以给满分。 参考程序(只供老师参考) int* contrary(int a, int n) int *b=calloc(n,sizeof(int); int i; for(i=0; in; i+) bi=an-1-i; return b; 第四次形考任务样例:一、 目的:会利用数
14、据文件存储数据,并学会分析带有文件处理功能的程序。二、 内容和步骤:1、打开第一次作业所建立的工作区,或另建一个新工作区;2、在工作区下建立一个内容为空的项目,假定项目名用“xkzy4”表示;3、在上述项目内建立一个名称为“main.c”的程序文件,程序内容如下; #include #include void main(void) int x; FILE* f1; /定义一个文件指针 f1=fopen(data.txt,w); /在程序所在目录内建立一个空文件 if (f1=NULL) /当f1对应的文件没有建立和打开时则退出运行 printf(不能够打开文件!n); exit(1); pri
15、ntf(从键盘向数据文件输入一批整数,直到输入-1时结束!n); scanf(%d,&x); /从键盘读入一个整数 while(x!=-1) /对每个有效地整数进行处理 int i=0, d6; if(x=0) /依次把整数的后续每位数字写入文件中 fputc(48+di, f1); fputc( , f1); /每个整数后写入一个空格 scanf(%d,&x); /再从键盘读入一个整数 fclose(f1); /关闭f1所对应的data.txt文件 4、修改上述程序,使得从键盘输入到数据文件中的数据内容,每隔4个整数后增加一个换行;提示:在int x语句后,增加一条定义变量的语句,用该变量记
16、录从键盘上输入的整数个数;在fputc( , f1)语句后,增加一条条件语句,用来记数和控制输出换行符。5、编译、连接和运行上述经修改后的程序,要求从键盘上输入10个以上整数。三、 提交内容经修改需要添加的两条语句,以及程序运行时所建立的数据文件的内容。四、 评分标准本次任务占形成性考试成绩的25。程序应添加的两条语句为: int j=0; /用来记录输入数据的个数 if(+j%4=0) fputc(n, f1); /每输出4整数后输出一个换行符在数据文件的内容中,整数之间有一个空格,每4个整数后有一个换行。这样就是正确的结果。请根据答题情况酌情给分。 参考程序(只供老师参考) #includ
17、e #include void main(void) int x; int j=0; /用来记录输入数据的个数 FILE* f1; /定义一个文件指针 f1=fopen(data.txt,w); /在程序所在目录内建立一个空文件 if (f1=NULL) /当f1对应的文件没有建立和打开时则退出运行 printf(不能够打开文件!n); exit(1); printf(从键盘向数据文件输入一批整数,直到输入-1时结束!n); scanf(%d,&x); /从键盘读入一个整数 while(x!=-1) /对每个有效地整数进行处理 int i=0, d6; if(x=0) /依次把整数的后续每位数
18、字写入文件中 fputc(48+di, f1); fputc( , f1); /每个整数后写入一个空格 if(+j%4=0) fputc(n, f1); /每4整数后写入一个换行符 scanf(%d,&x); /再从键盘读入一个整数 fclose(f1); /关闭f1所对应的data.txt文件 六、终结性考核说明考核目的:考察学生掌握C语言语法规则的程度和进行程序分析的能力。考核方式:终结性考核仍安排在网络考核平台上进行,由中央电大统一编制试题,地方电大组织考试。成绩比重:占课程总成绩的40%。考试时限:60分钟(闭卷),考试日期由中央电大考试中心统一安排(另行通知)。考核题型:单项选择题、
19、填空题和分析程序题。考核题型样例: 单项选择题(每小题3分,共30分) 1. C语言程序中的基本功能模块为( )。 A. 表达式 B. 标识符 C. 语句 D. 函数 2. 逻辑表达式(x0 | y=5)的相反表达式为( )。A. x=0 | y!=5 B. x0 | y!=5 D. x0 & y=5 3. 循环体至少被执行一次的循环语句为( )。 A. for B. while C. do-while D. 任一种循环 4. 假定n的值为5,则表达式n+的值为( )。 A. 6 B. 5 C. 4 D. 7 5. 假定一个二维数组的定义为“int a34=3,4,2,8,6;”,则元素a20
20、的值为( )。 A. 0 B. 2 C. 4 D. 6 6. 假定一个函数原型为“char* func(int n)”,则该函数的返回类型为( )。 A. int B. int* C. char D. char* 7. 假定a为一个字符数组名,则元素ai的指针访问方式为( )。 A. a+i B. *(a+i) C. &a+i D. *a+i 8. 假定有语句为“int *p=calloc(10+20,sizeof(int);”,则p所指向的动态数组中所包含的元素个数为( )。 A. 10 B. 20 C. 30 D. 40 9十进制数50表示成符合C语言规定的八进制数为_。 A. 20 B.
21、 32 C. 62 D. 062 10. 若要以读和写两种操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为( )。 A. r+ B. ab+ C. rb+ D. wb+ 填空题(每小题3分,共30分) 1. 在一个C语言程序文件中,若要包含另外一个头文件或程序文件,则应使用的预处理命令为_。 2. 用于从键盘上为变量输入值的标准输入函数的函数名为_。 3. 假定一个枚举类型的定义为“enum RAab,ac,ad,ae;”,则ac的值为_。 4double类型的长度为_。 5. 执行“int x=45,y=13;printf(%d,x/y);”语句序列后得到
22、的输出结果为_。 6. 把表达式x=x+y转换成复合赋值表达式为_。 7. 假定x的值为5,则执行“a=(!x? 10: 20);”语句后a的值为_。 8. 假定一维字符指针数组的定义为“char* a8;”,则该数组占用的存储空间的字节数为_。 9. 假定二维数组的定义为“double aMN;”,则数组元素的行下标取值范围在_之间。 10. 空字符串的长度为_。 写出程序运行结果(每小题10分,共40分) 1. #include void main() int i,j,k=0; for(i=0; i5; i+) for(j=i; j5; j+) k+; printf(%dn,k); 2.
23、#include void main() int x=20; int i=2; while(ix) if(x%i=0) printf(%d ,i); x/=i; i+; 3. #include void main() int a8=76,63,54,95,40,75,90,66; int i, s=0; for(i=0; i=70 & ai=90) s+=ai; printf(s=%dn,s); 4. #include int WF(int x, int y) x=x+y; y+=x; return x+y; void main() int x=3, y=8; printf(%dn,WF(x,y); 参考答案:单选题(每小题3分,共30分) 1. D 2. B 3. C 4. B 5. A 6. D 7. B 8. C 9. D 10. C填空题(每小题3分,共30分)1. #include 2. scanf 3. 1 4. 8 5. 3 6. x+=y 7. 20 8. 32 9. 0M-1 10. 0 三、写出下列每个程序运行后的输出结果(每小题10分,共40分)评分标准:根据答案正确程度酌情给分。 1. 15 2. 2 5 3. s=241 4. 30
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1