欢迎您访问浙江自考网!  今天是
当前位置: > 实践考核 >

浙江自考《C程序设计基础》实践环节培训与考核基本要求

2013-04-13 22:27来源:浙江自考网
《C程序设计基础》实践环节培训与考核基本要求
一、培训与考核目的
《C程序设计基础》课程介绍C语言及其编程技术,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。学习《C程序设计基础》课程必须建立在使用计算机的基础上,重视上机实践环节。
实践环节目的为:
1.熟悉计算机系统的操作系统,学会使用高级程序设计语言的编程环境,掌握编程的编辑、编译、连接和运行四个环节。
2.加深对课程内容的理解,只有通过多次上机才能正确地、自然地、熟练地掌握程序语法规则。
3.学会上机调试程序,善于发现和排除程序中的错误,掌握程序调试的一般技巧。
4.培养良好的模块化、程序编排的锯齿形格式的程序设计风格和逐步求精法的结构化程序设计方法。
二、培训与考核的基本内容
(一)培训与考核内容
1、数据类型和表达式                                      
(1)基本数据类型(主要是int, float, double, char)的常量和变量的说明方式,定义于基本数据类型之上的各种运算,重点是以下运算和表达式:算术运算(含自增、自减操作)、关系运算、逻辑运算、位运算、条件运算、赋值运算。
(2)含混合运算的表达式中各种运算的优先级和结合方向
2、语句结构                                              
(1)赋值的方法
(2)逻辑判断的控制
双路选择语句(if语句):if语句的形式、if语句的嵌套
多路选择语句——分情语句(switch语句):分情语句的形式、语义、分情表达式的类型要求、分情语句中的break
(3)循环语句
指定次数的循环(for循环)、do 循环、do-while循环的形式和使用
循环结束条件
循环控制变量的使用
指定次数循环的提前结束方法
3、程序结构和函数                                             
C程序的总体结构
(1)函数的定义、调用形式
(2)函数参数的形式和传递方式
(3)函数的嵌套调用和递归调用
(4)全局变量和局部变量的区分和作用,变量的作用域和生命期,注意static的不同作用
4、构造类型和类型定义 
(1)定义新类型名(typedef)
(2)指针类型的定义和使用
(3)数组
一维/多维数组类型的定义、数组元素的引用和数组变量的初始化
字符串的定义和使用
(4)结构
结构类型的定义、分量的引用和结构变量的初始化
(5)构造类型和指针类型等的混合使用
指针数组、结构数组、结构指针、结构中含指针和数组
链表的增、删、改、遍历
(6)复杂指针类型的说明(daclaration)
5、数据的输入和输出                                              6学时
(1)基本类型数据的输入/输出方法,重点是scanf/printf、getchar/putchar、gets/puts、fscanf/fprintf、fgetc/fputc、fgets/fputs等输入/输出函数
(2)自定义类型(含构造类型)数据的输入/输出处理
(3)文件
文件的含义和定义方式
文件的打开和关闭方式
文件的基本读/写操作
文件中数据的定位
文件状态的检测(文件结束、读/写出错等)
文本文件与二进制文件的区别
6、其它                                             
(1)命令行参数(argc、argv)的说明、含义和使用
(2)编译预处理:了解编译预处理的含义,宏定义、文件包含等的使用方法
 
(二)实验
对培训与考核内容的设置相应的实验。
1.实验一   C程序的运行环境和运行一个C程序的方法
(1)目的要求:
①了解所用的计算机系统的基本操作方法,学会独立使用该系统。
②了解在该系统上如何编辑、编译、连接和运行一个C程序。
③通过运行简单的C程序,初步了解C源程序的特点。
(2)实验内容:
①     学习从开机开始的操作,包括如何建立子目录、使用操作命令列目录、打印文件内容、删除文件、复制文件等。
②     调试编辑教材例子程序。
例1
#include <stdio.h>
main()
{
 printf("this is a C program.\n");
}
例2
main()
{ int a,b,sum;
  a=123;b=456;
  sum=a+b;
  printf("sum is %d\n",sum);
}
例3
main()
{int a,b,c;
 scanf("%d,%d",&a,&b);
 c=max(a,b);
 printf("max=%d",c);
}
int max(x,y)
 int x,y;
 {int z;
  if(x>y) z=x;
  else z=y;
  return(z);
}
2.实验二  数据类型、运算符和表达式
(1)目的要求:
①掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
②学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
③进一步熟悉C程序的编辑、编译、连接和运行的过程。
(2)实验内容
①     输入程序
main()
{char c1,c2;
 c1=97;c2=98;
 printf("%c %c",c1,c2);
}
在这基础上
a.       加一个printf("%d %d",c1,c2);语句,并运行。
b.       再将第二行改为 int c1,c2; 再运行。
c.       再将第三行改为 c1=300;c2=400。再运行。
最后分析其运行结果。
②     输入下列程序并运行,运行结果与人工分析对照。
main()
{ char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
printf("a%cb %c\tc%c\tab\n",c1,c2,c3);
printf("\t\b %c  c%c",c4,c5);
}
③     输入程序并运行
main()
{int i,j,m,n;
 i=8;j=10;
m=++i;n=j++;
printf("%d, %d,%d,%d",i,j,m,n);
}
分别作以下改动并运行:
a.       将第4行改为:m=i++;n=++j;
b.       将第4、5程序改为:printf("%d, %d, %d, %d",i++,j++);
c.       在b的基础上将printf语句改为printf("%d, %d, %d, %d",++i,++j);
d.       在将printf语句改为printf("%d, %d, %d, %d",i,j,i++,j++);
3、实验三  最简单的C程序设计
(1)目的要求:
①掌握C语言中使用最多的一种语   句-----赋值语句的使用。
②掌握数据的输入输出的方法,能正确使用各种格式转换符。
(2)实验内容:
①已知,short int s=10;int i=25;long int k=1000000L;float f=0.5;
double d=1.5;求下列表达式的值:
(a)f + s*i - k
(b)i/f + s*d
(c)(double)i/s*f
(d)k/i + (int)d/f
②编程序,设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、和圆柱体积。用scanf输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。
③   编程序,分别用getchar和scanf函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
4、实验四  逻辑运算和断选取控制
(1)目的要求:
a)         了解C语言表示逻辑量的方法(以0代表”假”,以1代表”真”);
b)        学会正确使用逻辑运算符和逻辑表达式;
c)         熟悉掌握if语句和switch语句。
(2)实验内容:
①     编程序,输入一个数,获取该数的符号,当该数>0,输出+1,该数<0,输出-1, 该数=0,输出0。
②     给出一个百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。90分以上为’A’,81~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。
③     输入四个数,按大小顺序输出。
5.实验五  循环控制
(1)目的要求:
1、  熟悉用while 语句,do---while语句和for语句实现循环的方法。
2、  掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。
(2)实验内容
①     输入一行字符,分别统计出其中的字母、数字、空格和其它字符的个数。
②     下列程序求Sn=a+aa+aaa+……+aa…aa(n个a)的值,其中a是一个数字。例如,若a=2, n=5时,Sn=2+22+222+2222+22222,其值应为24690。
③     用一张一元票换1分、2分和5分的硬币(至少各一枚),问有哪几种换法?各几枚?
④     用牛顿迭法求方程2x3-4x2+3x-6=0在1.5附近的根。
6.实验六  数组
(1)目的要求:
①掌握一维数组和二维数组的定义、赋值和输入输出的方法;
②掌握字符数组和字符串函数的使用;
③掌握与数组有关的算法(特别是排序算法)。
(2)实验内容:
①定义一个3×3整型矩阵,输入矩阵元素,要求:
a)输出该矩阵。
b)输出该矩阵的转置阵。
c)输出该矩阵主对角线上所有元素的和。
d)输出该矩阵副对角线上所有元素的和。
e)输出该矩阵每一行上所有元素的和。
f)输出该矩阵每一列上所有元素的和。
g)输出该矩阵中绝对值最大的元素。
②有一个已排好序的整数数组,今输入一个数,要求按原来排序的规律将它插入到数组中。
③将两个字符串连接起来,不要用现函数strcat实现。
7、实验七  函数
(1)目的要求:
①掌握定义函数的方法;
②掌握函数实参与形参的对应关系,以及”值传递”的方式;
③掌握函数的嵌套调用和递归调用的方法;
④掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。
(2)实验内容:
①     写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。
②     用一个函数实现将一行字符串中最长的单词输出。此行字符串从主函数传递该函数。
③     定义一个函数void inverse(int a[],int n),将数组a中的元素按逆序存放。
8、实验八   编译预处理
(1)目的要求:
①     掌握宏定义的方法;
②掌握文件包含处理方法;
③掌握条件编译的方法。
(2)实验内容:
①     定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。
②     设计输出实数的格式:一行输出一个实数,一行内输出两个实数,一行内输出三个实数;
实数用%6.2f格式输出。用一个文件Print_fmt.h包含以上用#define命令定义的格式。在程序中读入三个实数f1,f2,f3,然后用上面定义的三种格式分别输出⑴f1,⑵f1,f2⑶f1,f2,f3(使用#include包含print_fmt.h文件)。
③用条件编译方法实现,输入一行电报文字,可以任选两种输出:原文输出或将字母变成下一个字母(如a变为b,…,z变为a.其它字符不变)。用#define命令来控制是否要译成密码。
9、实验九  指针
(1)目的要求:
①     掌握指针的概念,会定义和使用指针变量;
②学会使用数组的指针和指向数组的指针变量;
③学会使用字符串的指针和指向字符串的指针变量;
④学会使用指向函数的指针变量;
了解指向指针的指针的概念及使用方法。
(2)实验内容:
指针实验必须用指针来做。
①输入n个数(n<10)
a)输出这n个数。
b)按逆序输出这n个数。
c)求这n个数的和、平均值、最大值和最小值。
将最小值与第一个值交换,最大值与最后一个值交换,然后输出交换后的n个数。
②用指针实现函数strmcpy(s,t,m),将字符串t中从m个字符开始的全部字符复制到字符串s中去。
③使用命令行参数编写一个将任何正整数变成十六进制数输出的程序。
10、实验十  结构体物共用体
(1)目的要求:
①掌握结构体类型变量的定义和使用;
②掌握结构类型数组的概念和应用;
③掌握链表的概念,初步学会对链表进行操作;
④掌握共用体的概念与使用。
(2)实验内容:
①     定义一个关于年、月、日的结构,并编写一函数计算某日是该年中的第几天?注意闰年问题。
②输入n个学生的学号和数学、英语、计算机成绩,要求
计算每一个学生的平均成绩。
计算每门课程的平均成绩。
输出平均成绩最高的学生的记录。
按平均成绩由高到低输出学生的成绩单(学号、数学、英语、计算机成绩和平均成绩)
③有两个单向链表list1、list2,链表中每一节点包含姓名、工资基本信息,请编一函数,把两个链表拼组成一个链表,并返回拼组后的新链表。
设list是一个由如下的数据结构组成的链表:
         struct data {
                union {
                   char c;
                   int  i;
                   float f;
                   char  *str;
                } value;
                int type;      /* 标志 */
                struct data *next;
        };
请编写一函数,计算链表中所有数值类型的和。
 
 
11、实验十一  文件
(1)目的要求:
掌握文件以及缓冲文件系统、文件指针的概念;
学会使用文件打开、关闭、读、写等文件操作函数。
学会用缓冲文件系统对文件进行简单的操作。
(2)实验内容;
①     有5个学生,每个学生有3门课的成绩,从键盘输入学生号、姓名、三门成绩的数据,计算出平均成绩,将原有数据和计算获得的平均成绩存放在磁盘文件stdu中。
②     将上题stdu文件中的学生数据,按平均成绩排序,将排序的学生数据存入一个新文件stu_sort中。
③     将上题已排序的学生成绩文件进行插入处理,插入一个学生的三门课的成绩。程序先计算新插入学生的平均成绩,然后排序插入,插入后建立一个新文件保存。
(三)实验报告
上机结束后,应整理出实验报告,实验报告应包括以下内容:
1.  题目
2.  程序清单
3.  运行结果
4.  对运行情况所作的分析以及本次调试程序所取得的经验。如果程序未能通过,应分析其原因。
三、培训与考核的基本要求
1.  具备设备完善的微机
2.  多媒体投影教室
四、实施办法
1.  利用投影仪教学,教师讲解和布置实验。
2.  学生一人一机做上机实验
3.  学生上机时配有教师辅导
五、考核标准
1.  学生必须完成十项实验,并交出合格的实验报告。
2.  学生要通过上机的随机抽题考试。


本资料doc文件下载:
计算机基础与程序设计实验.doc

上一篇:浙江自考道路与桥梁工程专业(本科)《预应力混凝土结构设计原理》课程设计大纲

下一篇:浙江自考《物理(工)》实验考核大纲