答案程序设计基础C语言实验教学大纲.docx
《答案程序设计基础C语言实验教学大纲.docx》由会员分享,可在线阅读,更多相关《答案程序设计基础C语言实验教学大纲.docx(15页珍藏版)》请在冰豆网上搜索。
![答案程序设计基础C语言实验教学大纲.docx](https://file1.bdocx.com/fileroot1/2023-7/12/e674d309-30cf-4cf2-a128-d90eabbd2ce8/e674d309-30cf-4cf2-a128-d90eabbd2ce81.gif)
答案程序设计基础C语言实验教学大纲
《程序设计基础C语言》实验教学大纲
课程编号:
课程名称:
C语言程序设计/CProgrammingLanguage
实验总学时数:
16学时
适应专业:
软件工程
承担实验室:
计算机科学与技术学院实验中心
一、实验教学的目的和任务
上机实习是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
通常,实习题中的问题比平时的练习题要复杂,也更接近实际。
高级语言程序设计这门课程安排的4次上机实验都属于一种设计类型的实验,每个实验有各自的训练重点;实验的目的是旨在使学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容;培养学生编制算法的能力和编程解决实际问题的动手能力。
要求学生在上机前应认真做好各种准备工作,熟悉机器的操作系统和语言的集成环境,独立完成算法编制和程序代码的编写;上机时应随带有关的高级语言教材或参考书;要学会程序调试与纠错;每次实验后要交实验报告,实验报告的内容应包括:
(1)实验题目、班级、学号、姓名、完成日期;
(2)简要的需求分析与概要设计;(3)详细的算法描述;(4)程序清单与运行结果;(5)收获与体会。
实验成绩占高级语言程序设计结业成绩的10-20%。
二、实验项目及学时分配
序号
实验项目名称
实验
学时
实验类型
开出
要求
1
顺序、选择和循环结构程序设计
4
设计
必开
2
运用数组进行程序设计
4
设计
必开
3
运用函数进行程序设计
4
设计
必开
4
综合程序设计
4
设计
必开
三、每项实验的内容和要求:
要求:
每个实验保证每个学生一台微机
实验一(4学时):
顺序、选择和循环结构的程序设计
题1问题描述:
输入一个华氏温度,要求输出摄氏温度。
公式为
c=5*(F-32)/9
输出要有文字说明,取2位小数。
基本要求:
掌握数据的输入与输出的基本方法。
#include
voidmain()
{floatF,C;
printf("请输入华氏温度:
");
scanf("%f",&F);
C=(float)5.0/9*(F-32);
printf("C=%.2f\n",C);
}
题2问题描述:
给出一百分制成绩,要求输出成绩‘A’、‘B’、‘C’、‘D’、‘E’。
90分以上为‘A’,80-90分为‘B’,70-79分为‘C’、60-69分为‘D’,60分以下为‘E’。
基本要求:
能够灵活运用选择结构进行程序设计
#include
intmain()
{
ints;
printf("请输入一个成绩:
");
scanf("%d",&s);
if(s>100||s<0)
{
printf("输入了一个错误的成绩。
\n");
return1;
}
charch;
switch(s/10)
{
case10:
case9:
ch='A';break;
case8:
ch='B';break;
case7:
ch='C';break;
case6:
ch='D';break;
default:
ch='E';break;
}
printf("您输入的成绩等级为:
%c\n",ch);
return0;
}
题3问题描述:
打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各数字立方和等于该数本身。
例如,153是一水仙花数,因为153=13+53+33
基本要求:
能够运用多种循环语句实现程序设计
#include
voidmain()
{
inti,j,k,n;
printf("'waterflower'numberis:
");
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
printf("%-5d",n);
}
printf("\n");
}
实验二(4学时):
运用数组进行程序设计
题1问题描述:
写一函数,用“起泡法”对输入的10个字符按由小到大顺序排列。
#include
voidmain()/*从小到大*/
{inta[10],i,j,t;
printf("请输入10个元素:
");
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<=8;i++)
for(j=0;j<=8-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;
}
for(i=0;i<=9;i++)
printf("%d",a[i]);
printf("\n");
}
题2编写程序,输入任意一个含有空格的字符串(至少10个字符),删除指定位置的字符后输出该字符串。
如:
输入"BEIJING123"和删除位置4,则输出:
"BEIING123"。
#include
#include
voidmain()
{
inti,j;
chara[100];
printf("请输入字符串:
\n");
gets(a);
printf("请输入要删除的字符位置:
\n");
scanf("%d",&j);
i=j-1;
while(a[i]!
='\0')
{
a[i]=a[i+1];
i++;
}
a[i]='\0';
puts(a);
}
题3编程序实现:
打印杨辉三角形。
/*打印杨辉三角形*/
#include
#defineN11
main()
{inti,j,a[N][N];
for(i=1;i{a[i][i]=1;
a[i][1]=1;
}
for(i=3;ifor(j=2;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;i{for(j=1;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
}
实验三(4学时):
运用函数进行程序设计
题1写一函数判断一个数是否是素数的程序,若是显示“yes",若不是则显示“no”,然后在主函数中调用它。
#include
#include
voidmain()
{
intm;
intis_susu(intm);
printf("inputanumber:
");
scanf("%d",&m);
if(is_susu(m)==1)
printf("yes\n");
else
printf("no\n");
}
intis_susu(intm)
{inti,k,flag;
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>k)flag=1;
elseflag=0;
return(flag);
}
题2编写求xn和n!
的函数,然后在主函数中调用它。
#include
#include
floatmi(floatx,intn)
{inti;
floatz=1;
for(i=1;i<=n;i++)
z*=x;
returnz;
}
floatjc(intn)
{inti;
floatz=1;
for(i=1;i<=n;i++)
z*=i;
returnz;
}
voidmain()
{floata,b;
a=mi(3,4);
b=jc(5);
printf("%f,%f\n",a,b);
}
题3编写一函数,统计字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出统计结果。
#include
intletter,space,num,other;
voidmain()
{charstr[81];
voidstat(charstr[]);
printf("Pleaseenterastring:
");
gets(str);
stat(str);
printf("letter=%d,space=%d,num=%d,other=%d\n",letter,space,num,other);
}
voidstat(charstr[])
{inti;
charc;
letter=space=num=other=0;
for(i=0;str[i]!
='\0';i++)
{
c=str[i];
if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
letter++;
elseif(c>='0'&&c<='9')
num++;
elseif(c=='')space++;
elseother++;
}
}
基本要求:
学会典型的常用C程序的设计技巧和常用C函数
实验四(4学时):
综合程序设计
题1编程序实现:
输入人民币金额,显示相应的人民币大小金额,如输入586.79,则显示:
伍佰捌拾陆元柒角玖分。
#include
#include"string.h"
voidmain()
{inti,n,sw=0;
voidjiaofen(chartmp[]);
voidyuan(chartmp[]);
charmoney[20],y[10],jf[10];
printf("输入人民币金额(如586.79):
\n");
gets(money);
i=0;
n=strlen(money);
while(i<=n&&money[i]!
='.')i++;
money[i]='\0';
strcpy(y,money);
strcpy(jf,&money[i+1]);
if(n>10||strlen(jf)>2){printf("输入数据不合要求!
\n");return;}
printf("\n");
yuan(y);
jiaofen(jf);
printf("\n");
}
voidjiaofen(chartmp[])
{
charwei[][3]={"角","分"};
charsuhz[][3]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
inti,n;
n=strlen(tmp);
for(i=0;i{printf("%s",suhz[tmp[i]-'0']);
printf("%s",wei[i]);
}
}
voidyuan(chartmp[])
{charwei[][3]={"","拾","佰","仟","万","拾","佰","仟","亿"};
charsuhz[][3]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
inti,n;
n=strlen(tmp);
for(i=0;i{printf("%s",suhz[tmp[i]-'0']);
printf("%s",wei[n-1-i]);
}
printf("元");
}
题2求任意两个正整数(不超过8位)之间所有整数所包含的数字0~9出现的次数。
比如:
100到105之间有100、101、102、103、104、105六个数,则0出现的次数为7次,1出现的次数为7次,2、3、4、5出现的次数各为1次,其余的出现次数为0。
#include
#include
voidmain()
{
longk,min,max,count[10]={0};
charstr[9];
inti,su,suzi;
//输入最小、最大数
printf("inputthefirstnumber:
");
scanf("%ld",&min);
printf("inputthelastnumber:
");
scanf("%ld",&max);
if(min>max)//最小数比最大数大,退出
{
printf("\ninputerror!
");
return;
}
//统计各数字出现的次数
for(k=min;k<=max;k++)
{su=k;
do{suzi=su%10;
count[suzi]++;
su=su/10;
}while(su!
=0);
}
for(i=0;i<10;i++)//显示结果
{
printf("%d--(%ld)",i,count[i]);
if(i==4)
printf("\n");
}
printf("\n");
}
=======
#include
#include
voidmain()
{
longk,min,max,count[10]={0};
charstr[9];
inti;
//输入最小、最大数
printf("inputthefirstnumber:
");
scanf("%ld",&min);
printf("inputthelastnumber:
");
scanf("%ld",&max);
if(min>max)//最小数比最大数大,退出
{
printf("\ninputerror!
");
return;
}
//统计各数字出现的次数
for(k=min;k<=max;k++)
{
sprintf(str,"%8d",k);//将该数字转换为字符串,存入str中
for(i=7;i>=0&&str[i]!
='';i--)
count[str[i]-'0']++;
}
for(i=0;i<10;i++)//显示结果
{
printf("%d--(%ld)",i,count[i]);
if(i==4)
printf("\n");
}
printf("\n");
}
四、实验改革与特色
培养学生计算机的应用能力是计算机基础教学的重要任务之一。
为此,制定了“精讲多练,重在实验指导”的教学策略。
“精讲”是前提,“精讲”以C程序设计语言为例讲授高级语言的程序设计过程,软件开发的基本概念、基本规律、基本技能和技巧。
强调基本概念和程序设计算法的灵活运用,淡化各种计算机语言的具体规定等细节问题,对这些细节问题的学习,则通过“多练”——大量的上机调试程序的实验过程中逐步实现。
注重对学生的动手能力和应用能力的培养,加强实验课的指导,强调操作能力的训练。
学生的作业必须是学生在计算机上完成的。
五、教材及实验指导书
教材:
《C程序设计习题解答与上机指导》谭浩强著,出版社:
清华大学出版社,出版或修订时间:
2005第三版
实验指导书:
《C语言大学实用教程学习指导》,主编:
苏小红等,出版社电子工业出版社,出版或修订时间:
2007年4月
执笔:
鄢红国张蕊
审阅:
日期:
2009.7
审定:
日期:
2009.7