答案程序设计基础C语言实验教学大纲.docx

上传人:b****5 文档编号:28730560 上传时间:2023-07-19 格式:DOCX 页数:15 大小:19.69KB
下载 相关 举报
答案程序设计基础C语言实验教学大纲.docx_第1页
第1页 / 共15页
答案程序设计基础C语言实验教学大纲.docx_第2页
第2页 / 共15页
答案程序设计基础C语言实验教学大纲.docx_第3页
第3页 / 共15页
答案程序设计基础C语言实验教学大纲.docx_第4页
第4页 / 共15页
答案程序设计基础C语言实验教学大纲.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

答案程序设计基础C语言实验教学大纲.docx

《答案程序设计基础C语言实验教学大纲.docx》由会员分享,可在线阅读,更多相关《答案程序设计基础C语言实验教学大纲.docx(15页珍藏版)》请在冰豆网上搜索。

答案程序设计基础C语言实验教学大纲.docx

答案程序设计基础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;i

for(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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1