奥帕文库

【图文】0993C语言程序设计201404试点作业参考答案

0993+C 语言程序设计 201404 试点作业参考答案注:所有网上作业除电算化会计外其余都可提前完成,但不能延后完成, 请在 5 月 30 日前一次完成所有作业,以便老师及时评阅统计; 本门课程实行网上作业及期末考试双及格和, 没完成作业期末考试成绩无 效。

第 1 页 共 6 页

0993C语言程序设计201404试点作业参考答案

01 任务 14 春季学期 C 语言程序设计 A 学习周期 一、作品题(共 1 道试题,共 100 分。

) 1. 一、 目的: 了解和熟悉 VC++6.0 集成开发环境,能够调试和运行具有多文件结构的 C 语言程序。

二、 内容和步骤: 1、在一个逻辑盘(如 D 盘)或给定的目录下,使用 VC++6.0 环境中的“文件→“新建”命令,利用打开的“工作区” 选项卡界面,建立名为“C 语言形成性考核”的工作区(文件夹) ; 2、在上述工作区内建立一个内容为空的、属于控制台应用( Win32 Console Application)的工程项目(目录) ,假定项 目名用“xkzy1”表示; 3、在上述项目内建立一个具有如下内容的、名称为“main.c”的程序主文件; #include #include "head.h" void main() { int a,b,c,d; printf("请输入任意四个整数:"); scanf("%d %d %d %d",&a,&b,&c,&d); printf("求和: %d\n",Sum(a,b,c,d)); printf("乘积: %d\n",Product(a,b,c,d)); } 4、同时在上述项目内建立一个具有如下内容的、名称为“next.c”的程序次文件; int Sum(int a,int b, int c, int d) { return a+b+c+d; } int Product(int a,int b, int c, int d) { return a*b*c*d; } 5、同时在上述项目内建立一个具有如下内容的、名称为“head.h”的用户头文件; int Sum(int, int, int, int); int Product(int, int, int, int); 6、分别编译上述程序主文件和次文件,均无误后再进行连接,自动生成与工程项目名相同的可执行文件; 7、选择编译菜单中的“执行”命令运行程序,按要求输入四个整数后,得到运行结果。

三、提交内容 程序执行时,在输出屏幕上呈现的所有内容,包括输入和输出的内容。

(请将内容保存到文本文件,并压缩成一个压缩 包上传。

) 参考答案: 评分标准 本次任务占形成性考核成绩的 25%。

由于在程序运行时,输入的四个整数是随意的,所以运行结果因输入数 据的不同而异。

只要是第 2 和 3 行的数据分别是第 1 行 4 个整数的和与积,就是正确结果。

例如:若从键盘上输入的 四个整数为 1、2、3、4,则屏幕输出为:请输入任意四个整数:1 2 3 4 求和: 10 乘积: 24第 2 页 共 6 页

0993C语言程序设计201404试点作业参考答案

02 任务 14 春季学期 C 语言程序设计 A 学习周期 一、作品题(共 1 道试题,共 100 分。

) 1. 一、 目的: 会使用流程控制语句和数组,编写出进行数据处理的程序,并能够上机调试和运行。

二、 内容和步骤: 1、利用第一次作业所建立的工作区,或另建一个新工作区; 2、在工作区下建立一个内容为空的、进行控制台应用的工程项目,假定项目名用“xkzy2”表示; 3、编写一个 C 语言程序,要求实现的功能为:从键盘上输入一行带有英文字母的任意字符串,假定该字符串的长度不 超过 50,试统计出该串中所包含的每一种字母 a、b、c、d 的个数(字母大小写等效) ,并分行依次输出,每行的输出 格式为“字母:个数” ,如假定字母 a 的个数为 3,则输出格式为“a: 3” 。

提示:请在 for 循环内使用 switch 语句分别 进行字母个数的统计。

4、在上述项目内建立一个能够实现上述功能的、名称为“main.c”的程序文件,并输入、编译、连接和运行此 C 语言 程序文件。

三、 提交内容 你所编写出的程序,以及在程序执行时,其输出屏幕上呈现的所有内容。

(请将内容保存到文本文件,并压缩成一个压 缩包上传。

) 参考答案: 评分标准 本次任务占形成性考核成绩的 25%。

由于在程序运行时,输入的一个字符串是随意的,所以运行结果因字符 串不同而异。

只要程序的逻辑正确,即能够统计和输出字符串中每一种字母 a、b、c、d 出现的次数,就是正确的运行 结果。

参考程序(谨供老师参考) :#include<stdio.h>void main(){ char s[51]; int i,c[4]={0}; printf("输入一个包含英文字母 的字符串 :"); scanf("%s",s); for(i=0; s[i]; i++) switch(s[i]) { case 'a': case 'A': c[0]++; break; case 'b': case 'B': c[1]++; break; case 'c': case 'C': c[2]++; break; case 'd': case 'D': c[3]++; break; } for(i=0; i<4; i++) printf("%c: %d\n",'a'+i,c[i]);} 通过编译、 连接和运行此程序, 得到的一种运行结果为: 输入一个包含英文字母的字符串:qweasdascdcbfgghccabdcxa: 3b: 2c: 5d: 3第 3 页 共 6 页

0993C语言程序设计201404试点作业参考答案

03 任务 14 春季学期 C 语言程序设计 A 学习周期 一、 目的: 会使用函数定义编写出具有一定功能的模块,学会进行结构化和模块化的程序设计。

二、 内容和步骤: 1、打开第一次作业所建立的工作区,或另建一个新工作区; 2、在工作区下建立一个内容为空的控制台应用工程项目,假定项目名用“xkzy3”表示; 3、在上述项目内建立一个名称为“main.c”的程序文件,程序内容如下; #include //函数功能说明:依次输出数组 a[n]中大于平均值 k 的所有元素值 void greatMean(int a[],int n, int k); void main() { int a[8]; int i,k,s=0; printf("请输入用空格分开的 8 个整数:"); for(i=0; i<8; i++) scanf("%d",a+i); for(i=0; i<8; i++) s+=a[i]; k=s/8; //k 为数组 a 中的平均值 greatMean(a,8,k); printf("\n"); } 4、根据程序中的 greatMean 函数声明和功能说明,在其程序下面编写出该函数的定义。

5、编译、连接和运行上述程序,得到的运行结果。

三、 提交内容 你所编写的 greatMean 函数的定义模块。

(请将内容保存到文本文件,并压缩成一个压缩包上传。

)参考答案: 评分标准 本次任务占形成性考试成绩的 25%。

只要程序逻辑正确就可以给满分。

参考程序(只供老师参考) void greatMean(int a[], int n, int k) { int i; for(i=0; i<n; i++) if(a[i]>k) printf("%d ",a[i]); } 例如,若程序运行时,从键盘上输入的 8 个整数为 20 1 3 5 9 6 13 4, 则得到的运行结果为:请输入用空格分开的 8 个整数:20 1 3 5 9 6 13 420 9 13第 4 页 共 6 页

0993C语言程序设计201404试点作业参考答案

04 任务 14 春季学期 C 语言程序设计 A 学习周期 一、 目的: 会利用数据文件存储数据,并学会使用数据文件的程序分析和设计。

二、 内容和步骤: 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); } printf("从键盘向数据文件输入一批整数,直到输入 0 时结束!\n"); scanf("%d",&x); //从键盘读入一个整数 while(x!=0) { //对每个有效地整数进行处理 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、修改上述程序,使得从键盘输入到数据文件中的数据内容,每隔 3 个整数后增加一个换行; 提示:在 int x 语句后,增加一条定义变量的语句,用该变量记录从键盘上输入的整数个数;在 fputc(' ', f1)语句后, 增加一条条件语句,用来记数和控制输出换行符。

5、编译、连接和运行上述经修改后的程序,要求从键盘上输入至少 10 个整数。

三、 提交内容 经修改后的完整程序,以及程序运行时所建立的数据文件的内容。

(请将内容保存到文本文件,并压缩成一个压缩包上 传。

) 参考答案: 评分标准 本次任务占形成性考试成绩的 25%。

程序应添加的两条语句为: int j=0; //用来记录输入数据的个数 if(++j%3==0) fputc('\n', f1); //每 3 个整数后写入一个换第 5 页 共 6 页

0993C语言程序设计201404试点作业参考答案

行符在数据文件的内容中,整数之间有一个空格,每 3 个整数后有一个换行。

请根据答题情况酌情给分。

参考程序(只供老师参考) #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("从键盘向 数据文件输入一批整数, 直到输入 0 时结束!\n"); scanf("%d",&x); //从键盘读入一个整数 while(x!=0) { //对每个有效地整 数进行处理 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%3==0) fputc('\n', f1); //每 3 个整数后写入一个换行符 scanf("%d",&x); //再从键盘读入一个整数 } fclose(f1); //关闭 f1 所对应的 data.txt 文件 }第 6 页 共 6 页

0993C语言程序设计201404试点作业参考答案