C语言程序设计四次形考任务 第一次形考任务样例: 一、目的: 了解和熟悉VC++6.0集成开发环境,能够调试和运行具有多文件结构的C语言程序。 二、内容和步骤: 1、在一个逻辑盘(如D盘)或给定的目录下,使用VC++6.0环境中的“文件→“新建” 命令,利用打开的“工作区”选项卡界面,建立名为“C语言形成性考核”的工作区(文件 夹): 2、在上述工作区下建立一个内容为空的项目(目录),假定项目名用“xkzy1”表示: 3、在上述项目内建立一个具有如下内容的、名称为“main.c”的程序主文件: #include<stdio.h> #include "head.h" void main( int a,b,c; printf(请输入任意三个整数:"); scanf(“%d%d%d”,&a,&b,&c): printf(求和:%dn”,Sum(a,b,c): printf("乘积:%d八n",Product(a,b,c): 4、同时在上述项目内建立一个具有如下内容的、名称为“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、选择编译菜单中的“执行”命令运行程序,按要求输入三个整数后,得到运行结果。 三、提交内容 程序执行时,在输出屏幕上呈现的所有内容。 四、评分标准 本次任务占形成性考核成绩的25%
... ... C 语言程序设计四次形考任务 第一次形考任务样例: 一、 目的: 了解和熟悉 VC++6.0 集成开发环境,能够调试和运行具有多文件结构的 C 语言程序。 二、 内容和步骤: 1、在一个逻辑盘(如 D 盘)或给定的目录下,使用 VC++6.0 环境中的“文件→“新建” 命令,利用打开的“工作区”选项卡界面,建立名为“C 语言形成性考核”的工作区(文件 夹); 2、在上述工作区下建立一个内容为空的项目(目录),假定项目名用“xkzy1”表示; 3、在上述项目内建立一个具有如下内容的、名称为“main.c”的程序主文件; #include<stdio.h> #include "head.h" void main() { int a,b,c; printf("请输入任意三个整数:"); scanf(“%d %d %d”,&a,&b,&c); printf("求和: %d\n",Sum(a,b,c)); printf("乘积: %d\n",Product(a,b,c)); } 4、同时在上述项目内建立一个具有如下内容的、名称为“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、选择编译菜单中的“执行”命令运行程序,按要求输入三个整数后,得到运行结果。 三、提交内容 程序执行时,在输出屏幕上呈现的所有内容。 四、评分标准 本次任务占形成性考核成绩的 25%
由于在程序运行时,输入的三个整数是随意的,所以运行结果因输入数据的不同而异。 只要是第2和3行的数据分别是第1行3个整数的和与积,就是正确结果。 第二次形考任务样例: 一、目的: 会使用流程控制语句和数组,编写出进行数据处理的程序,并能够上机调试和运行。 二、内容和步骤: 1、利用第一次作业所建立的工作区,或另建一个新工作区: 2、在工作区下建立一个内容为空的项目,假定项目名用“xkzy2”表示: 3、编写一个C语言程序,要求实现的功能为:从键盘上输入一行包含数字的字符串, 假定该字符串的长度不超过50,试统计出该串中每一种十进制数字字符的个数并输出。 4、在上述项目内建立一个能够实现上述功能的、名称为“main.c”的程序文件,并输 入、编译、连接和运行此C语言程序文件。 三、提交内容 你所编写出的程序,以及在程序执行时,其输出屏幕上呈现的所有内容。 四、评分标准 本次任务占形成性考核成绩的25%。 由于在程序运行时,输入的一个字符串是随意的,所以运行结果因字符串不同而异。只 要程序的逻辑正确,即能够统计和输出字符串中每个数字字符出现的次数,就是正确的运行 结果。 参考程序(谨供老师参考): #include<stdio.h> void main( char s[51]; int i,c[10]=(0); printf("输入一个包含数字的字符串:"): scanf("%s",s) for(i=0;s[i];i++) if(s[i]>='0'&s[i]<='9')c[s[i]-48]+: for(i=0;i<10;i++)printf("%d:%d\n",i,c[i]) 第三次形考任务样例: 一、目的: 会使用函数定义编写出具有一定功能的模块,学会进行结构化和模块化的程序设计。 二、内容和步骤: 1、打开第一次作业所建立的工作区,或另建一个新工作区: 2、在工作区下建立一个内容为空的项目,假定项目名用“xkzy3”表示: 3、在上述项目内建立一个名称为“main.c”的程序文件,程序内容如下: #include<stdio.h>
... ... 由于在程序运行时,输入的三个整数是随意的,所以运行结果因输入数据的不同而异。 只要是第 2 和 3 行的数据分别是第 1 行 3 个整数的和与积,就是正确结果。 第二次形考任务样例: 一、 目的: 会使用流程控制语句和数组,编写出进行数据处理的程序,并能够上机调试和运行。 二、 内容和步骤: 1、利用第一次作业所建立的工作区,或另建一个新工作区; 2、在工作区下建立一个内容为空的项目,假定项目名用“xkzy2”表示; 3、编写一个 C 语言程序,要求实现的功能为:从键盘上输入一行包含数字的字符串, 假定该字符串的长度不超过 50,试统计出该串中每一种十进制数字字符的个数并输出。 4、在上述项目内建立一个能够实现上述功能的、名称为“main.c”的程序文件,并输 入、编译、连接和运行此 C 语言程序文件。 三、 提交内容 你所编写出的程序,以及在程序执行时,其输出屏幕上呈现的所有内容。 四、 评分标准 本次任务占形成性考核成绩的 25%。 由于在程序运行时,输入的一个字符串是随意的,所以运行结果因字符串不同而异。只 要程序的逻辑正确,即能够统计和输出字符串中每个数字字符出现的次数,就是正确的运行 结果。 参考程序(谨供老师参考): #include<stdio.h> void main() { char s[51]; int i,c[10]={0}; printf("输入一个包含数字的字符串:"); scanf("%s",s); for(i=0; s[i]; i++) if(s[i]>='0' && s[i]<='9') c[s[i]-48]++; for(i=0; i<10; i++) printf("%d: %d\n",i,c[i]); } 第三次形考任务样例: 一、 目的: 会使用函数定义编写出具有一定功能的模块,学会进行结构化和模块化的程序设计。 二、 内容和步骤: 1、打开第一次作业所建立的工作区,或另建一个新工作区; 2、在工作区下建立一个内容为空的项目,假定项目名用“xkzy3”表示; 3、在上述项目内建立一个名称为“main.c”的程序文件,程序内容如下; #include<stdio.h>
#include<stdlib.h> int*contrary(int a[],int n); void main() { inta[8]={2,5,8,1,4,9,6,7}: int i,*b; for(i=0;i<8;i++)printf("%d "a[i]) printf("\n") b=contrary (a,8); for(i=0;i<8;i++)printf("%d "b[i]); printf("\n"); for(i=0;i<8;i++)printf("%d "a[i]); printf("\n") 4、根据程序中的函数声明,在其程序下面编写出该函数的定义,此函数的功能是:首 先利用calloc函数动态分配一块数组空间,数组长度为n,元素类型为int,接着把参数a 数组中的元素值按相反次序复制到新得到的动态数组空间中,最后返回这个动态数组空间的 首地址。 5、编译、连接和运行上述程序,得到的运行结果应当为: 25814967 76941852 25814967 三、提交内容 你所编写的contrary函数的定义模块。 四、评分标准 本次任务占形成性考试成绩的25%。 只要程序运行结果正确就可以给满分。 参考程序(只供老师参考) int*contrary(int a[],int n) int *b=calloc(n,sizeof(int)); int i; for(i=0;i<n;i++)b[i]=a[n-1-i]; return b; 第四次形考任务样例: 一、目的: 会利用数据文件存储数据,并学会分析带有文件处理功能的程序。 二、内容和步骤: 1、打开第一次作业所建立的工作区,或另建一个新工作区:
... ... #include<stdlib.h> int* contrary(int a[], int n); void main() { int a[8]={2,5,8,1,4,9,6,7}; int i, *b; for(i=0; i<8; i++) printf("%d ",a[i]); printf("\n"); b=contrary(a,8); for(i=0; i<8; i++) printf("%d ",b[i]); printf("\n"); for(i=0; i<8; i++) printf("%d ",a[i]); printf("\n"); } 4、根据程序中的函数声明,在其程序下面编写出该函数的定义,此函数的功能是:首 先利用 calloc 函数动态分配一块数组空间,数组长度为 n,元素类型为 int,接着把参数 a 数组中的元素值按相反次序复制到新得到的动态数组空间中,最后返回这个动态数组空间的 首地址。 5、编译、连接和运行上述程序,得到的运行结果应当为: 2 5 8 1 4 9 6 7 7 6 9 4 1 8 5 2 2 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; i<n; i++) b[i]=a[n-1-i]; return b; } 第四次形考任务样例: 一、 目的: 会利用数据文件存储数据,并学会分析带有文件处理功能的程序。 二、 内容和步骤: 1、打开第一次作业所建立的工作区,或另建一个新工作区;
2、在工作区下建立一个内容为空的项目,假定项目名用“xkzy4”表示: 3、在上述项目内建立一个名称为“main.c”的程序文件,程序内容如下: #include<stdio.h> #include<stdlib.h> void main(void) int x; 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,d[6]; if(x<0){ /若为负数则向文件写入一个负号 fputc(C-’,f1);x=-x; whi1e(x/10!=0){/用d数组保存整数中的每个数字位 d[i+]=x%10:x=x/10: } fpute(48+x,f1):/把整数的最高位数字写入文件中 while(--i>=0) /依次把整数的后续每位数字写入文件中 fputc(48+d[i],fl); fputc(C’,f1):/每个整数后写入一个空格 scanf("%d”,&x)://再从键盘读入一个整数 } fclose(f1); /关闭f1所对应的data.txt文件 } 4、修改上述程序,使得从键盘输入到数据文件中的数据内容,每隔4个整数后增加一 个换行: 提示:在itx语句后,增加一条定义变量的语句,用该变量记录从键盘上输入的整数 个数:在fputc(C',f1)语句后,增加一条条件语句,用来记数和控制输出换行符。 5、编译、连接和运行上述经修改后的程序,要求从键盘上输入10个以上整数。 三、提交内容 经修改需要添加的两条语句,以及程序运行时所建立的数据文件的内容。 四、评分标准 本次任务占形成性考试成绩的25%。 程序应添加的两条语句为:
... ... 2、在工作区下建立一个内容为空的项目,假定项目名用“xkzy4”表示; 3、在上述项目内建立一个名称为“main.c”的程序文件,程序内容如下; #include<stdio.h> #include<stdlib.h> void main(void) { int x; 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, d[6]; if(x<0) { //若为负数则向文件写入一个负号 fputc('-', f1); x=-x; } while(x/10!=0) { //用 d 数组保存整数中的每个数字位 d[i++]=x%10; x=x/10; } fputc(48+x, f1); //把整数的最高位数字写入文件中 while(--i>=0) //依次把整数的后续每位数字写入文件中 fputc(48+d[i], f1); fputc(' ', f1); //每个整数后写入一个空格 scanf("%d",&x); //再从键盘读入一个整数 } fclose(f1); //关闭 f1 所对应的 data.txt 文件 } 4、修改上述程序,使得从键盘输入到数据文件中的数据内容,每隔 4 个整数后增加一 个换行; 提示:在 int x 语句后,增加一条定义变量的语句,用该变量记录从键盘上输入的整数 个数;在 fputc(' ', f1)语句后,增加一条条件语句,用来记数和控制输出换行符。 5、编译、连接和运行上述经修改后的程序,要求从键盘上输入 10 个以上整数。 三、 提交内容 经修改需要添加的两条语句,以及程序运行时所建立的数据文件的内容。 四、 评分标准 本次任务占形成性考试成绩的 25%。 程序应添加的两条语句为:
int j=0; /用来记录输入数据的个数 if(+j%4=0)fputc('\n',f1);/每输出4整数后输出一个换行符 在数据文件的内容中,整数之间有一个空格,每4个整数后有一个换行。这样就是正确 的结果。 请根据答题情况酌情给分。 参考程序(只供老师参考) #include<stdio.h> #include<stdlib.h> void main(void) int x; int j=0; /用来记录输入数据的个数 FILE*fl; /定义一个文件指针 fl=fopen("data.txt","w"); //在程序所在目录内建立一个空文件 f(f1=NULL){/当f1对应的文件没有建立和打开时则退出运行 printf("不能够打开文件!\n"): exit(1); } printf("从键盘向数据文件输入一批整数,直到输入-1时结束!八n"): scanf("%d”,&x): /从键盘读入一个整数 while(x!=-1){ //对每个有效地整数进行处理 int i=0,d[6]; if(x<0){ /若为负数则向文件写入一个负号 fputc('-’,f1);x=-x; } while(x/10!=0){/用d数组保存整数中的每个数字位 d[i+]=x%10:x=x/10: } fputc(48+x,f1);/把整数的最高位数字写入文件中 while(--i>=0) /依次把整数的后续每位数字写入文件中 fputc(48+d[i],fl); fputc('’,f1);/每个整数后写入一个空格 if(+j%4=0)fputc(\n',f1);/每4整数后写入一个换行符 scanf("%d”,&x);/再从键盘读入一个整数 } fclose(f1); /关闭f1所对应的data.txt文件 六、终结性考核说明 考核目的:考察学生掌握C语言语法规则的程度和进行程序分析的能力
... ... int j=0; //用来记录输入数据的个数 if(++j%4==0) fputc('\n', f1); //每输出 4 整数后输出一个换行符 在数据文件的内容中,整数之间有一个空格,每 4 个整数后有一个换行。这样就是正确 的结果。 请根据答题情况酌情给分。 参考程序(只供老师参考) #include<stdio.h> #include<stdlib.h> 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, d[6]; if(x<0) { //若为负数则向文件写入一个负号 fputc('-', f1); x=-x; } while(x/10!=0) { //用 d 数组保存整数中的每个数字位 d[i++]=x%10; x=x/10; } fputc(48+x, f1); //把整数的最高位数字写入文件中 while(--i>=0) //依次把整数的后续每位数字写入文件中 fputc(48+d[i], f1); fputc(' ', f1); //每个整数后写入一个空格 if(++j%4==0) fputc('\n', f1); //每 4 整数后写入一个换行符 scanf("%d",&x); //再从键盘读入一个整数 } fclose(f1); //关闭 f1 所对应的 data.txt 文件 } 六、终结性考核说明 考核目的:考察学生掌握 C 语言语法规则的程度和进行程序分析的能力