《C语言程序设计》实验教学大纲.docx

上传人:b****5 文档编号:11655328 上传时间:2023-03-29 格式:DOCX 页数:46 大小:264.72KB
下载 相关 举报
《C语言程序设计》实验教学大纲.docx_第1页
第1页 / 共46页
《C语言程序设计》实验教学大纲.docx_第2页
第2页 / 共46页
《C语言程序设计》实验教学大纲.docx_第3页
第3页 / 共46页
《C语言程序设计》实验教学大纲.docx_第4页
第4页 / 共46页
《C语言程序设计》实验教学大纲.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

《C语言程序设计》实验教学大纲.docx

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

《C语言程序设计》实验教学大纲.docx

《C语言程序设计》实验教学大纲

《C语言程序设计》实验教学大纲

学时课程总:

64 学分:

4

实验学时:

24 实验个数:

9实验学分:

1.5

课程性质:

必做适用专业:

计算机科学技术、网络工程、软件工程、电子商务、教育技术

教材及参考书:

《C语言程序设计与实践实验指导》,谢满得邵俊编著,机械工业出版社,2014年1月

大纲执笔人:

 大纲审定人:

一、实验课的性质与任务

C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实践性教育环节。

本课程的主要任务是让学生充分掌握C语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。

C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。

通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。

二、实验课程目的与要求

1.实验目的

通过实验课程的学习实践,加深学生对所学的基本概念、基础理论和知识的理解,熟悉使用VisualC++6.0集成环境进行C语言的编写、编译与调试。

同时,通过项目开发全过程的全方位指导,从需求分析、算法设计到程序编写和过程调试,以项目实训的形式引导和帮助学生解决实际问题,提高学生解决具体问题的能力,以及培养学生用多函数、多文件组织程序的思维习惯,为今后的后继课程学习和实际工作打下良好基础。

2.实验要求

(1)掌握C语言程序的基本格式,了解C程序的开发过程和C语言中的一些常用概念。

(2)掌握常量和五种基本数据类型变量的使用。

(3)掌握C表达式和运算符的正确使用,熟练掌握数据输入、输出函数。

(4)掌握条件转移语句if-else和选择分支语句switch;掌握三种程序跳转的方法,即break语句、continue语句、return语句。

(5)掌握循环语句(for语句;do-while语句;while语句)的正确使用,认真体会应该如何组织循环。

(6)掌握数组的定义、赋值,一维数组与二维数组的使用。

(7)掌握函数的定义、函数的调用以及函数的类型说明。

(8)掌握局部变量、全局变量的定义和使用。

(9)掌握指针的基本概念以及数组与指针、指向指针的指针的基本用法。

(10)掌握结构体变量的定义,引用结构体中成员的方法,应用结构数组解决实际问题;共用体的概念,引用共用体中成员的方法。

(11)掌握链表的类型定义及其基本操作。

(12)掌握文件的打开、读写及关闭,并能运用文件提高编程的效率。

(13)理解项目式程序开发的过程。

三、实验项目及内容提要

《C语言程序设计》实验课程(1107142019)

序号

实验项目编号

实验名称

学时

必做

选做

学分数

实验类型

内容提要

基本操作

验证

综合

设计

1

实验一

数据类型和表达式

2

1

1、了解C语言中数据类型的意义。

2、理解常用运算符的意义。

3、掌握C语言表达式的运行规则

2

实验二

分支结构程序设计

2

1

了解和掌握分支语句的使用,包括if语句的各种形式以及switch语句

3

实验三

循环结构程序设计

2

2

1、使用循环语句完成累乘、图像输出的程序编写。

2、掌握较复杂结构程序的编写。

3、掌握程序调试的方法

4

实验四

数组程序设计

4

2

掌握一维和二维数组的使用技巧

5

实验五

函数

5

2

1、学习函数的编程思想,编写一个包括3~4个函数的程序。

2、掌握函数中参数传递的两种方式和函数的相互调用

6

实验六

指针

3

2

1、用指针作为函数参数完成字符串的传递。

2、掌握函数中参数传递的两种方式

7

实验七

字符串与指针

2

1

1、掌握用指针进行函数参数传递的方法。

2、掌握指针数组和二维数组间的关系以及进行参数传递时的写法

8

实验八

结构体

2

1

1、掌握结构体的定义、数据输入方法。

2、掌握结构体成员变量的两种访问方法。

3、掌握编写程序完成单链表的建立和查询方法

9

实验九

文件操作

2

1

1、掌握文件的打开和关闭。

2、精通文件的读写操作。

3、了解文件的定位操作及文件的检测函数。

4、掌握文件的应用

四、实验内容安排:

实验一数据类型和表达式实验

(验证性实验2学时)

1、目的要求:

(1)了解C语言中数据类型的意义。

(2)理解常用运算符的意义。

(3)掌握C语言表达式的运行规则。

(4)编写实验报告。

2、实验内容(参考实验指导书):

(1)计算由键盘输入的任何两个双精度数据的平均值。

#include

voidmain()

{

printf("请任何两个数");

doublea,b,c;

scanf("%lf%lf",&a,&b);

c=(a+b)/2;

printf("%lf",c);

}

(2)写一个输入7个数据的程序,把输入的数据代入a+b*(c–d)/e*f–g表达式进行运算。

(3)#include

(4)voidmain()

(5){

(6)inta,b,c,d,e,f,g,h;

(7)scanf("%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g);

(8)h=a+b*(c-d)/e*f-g;

(9)printf("%d",h);

(10)

}

(11)

(3)编写一个C语言程序,测试下列各表达式:

i,j

i+1,j+1

i++,j++

++i,++j

i+++++j

#include"stdio.h"

voidmain()

{

inti=1,j=2;

inta,b,c,d,e,f,g;

a=i+1;

b=j+1;

c=i++;

d=j++;

e=++i;

f=++j;

g=(i++)+(++j);

printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d,g=%d",a,b,c,d,e,f,g);

}

(4)输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税前),输出时保留2位小数。

interest=money(1+rate)year–money

#include

#include

voidmain()

{

intyear;

doublemoney,rate,interest;

scanf("%lf%d%lf",&money,&year,&rate);

interest=money*pow(1+rate,year)-money;

printf("money(1+rate)^year-money=%lf",interest);

}

(5)输入华氏温度,输出对应的摄氏温度。

计算公式如下:

c=5*(f-32)/9

其中,c表示摄氏温度,f表示华氏温度。

#include

voidmain()

{

floatc,F;

printf("请输入华氏温度:

\n");

scanf("%lf",&F);

c=5*(F-32)/9;

printf("转换成摄氏温度为:

%.2f\n",c);

getchar();

getchar();

}

实验二分支结构程序设计实验

(验证性实验2学时)

1、目的要求:

(1)了解和掌握分支语句的使用,包括if语句的各种形式以及switch语句。

(2)编写实验报告。

2、实验内容(参考实验指导书):

(1)编写一个程序完成输入一个整数,输出它的符号。

#include

voidmain()

{

printf("qingshuruyigezhenshu");

inta;

scanf("%d",&a);

if(a>0)

printf("+");

else

printf("-");

}

(2)请编写居民应交水费,并提供各种测试数据。

居民应交水费y(元)与月用水量x(吨)的函数关系式如下:

0x<02.5x–10.5x>15

y=f(x)=4x/30≤x≤15

#include

voidmain()

{

intx,y;

scanf("%d",&x);

if(x<0)

{

y=0;

printf("%d",y);

}

elseif(x>15)

{

y=2.5*x-10.5;

printf("%d",y);

}

else

{

y=(4*x)/3;

printf("%d",y);

}

}

(3)请根据输入的学生成绩给出成绩等级的判断,判断规则如下:

如果输入的成绩大于等于90,则输出优秀;

如果输入的成绩小于90、大于等于80,则输出良好;

如果输入的成绩小于80、大于等于70,则输出中等;

如果输入的成绩小于70、大于等于60,则输出及格;

其他输出不及格。

#include"stdio.h"

main()

{

intscore;

printf("请输入第一个学生的成绩");

scanf("%d",&score);

if(score>=90)

{

printf("优秀");

}

elseif(score<90&&score>=80)

{

printf("良好");

}

elseif(score<80&&score>=70)

{printf("中等");

}

elseif(score<70&&score>+60)

{printf("及格");

}

elseif(score<60)

{printf("不及格");

}

}

(4)运输公司对用户计算运费。

路程(s)越远,每公里运费越低。

标准如下:

s=250km没有折扣

250km≤s<500km2%折扣

500km≤s<1000km5%折扣

1000km≤s<2000km8%折扣

2000km≤s<3000km10%折扣

3000km≤s15%折扣

设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费的计算公式为:

f=p*w*s*(1–d)

请编程实现:

从键盘输入基本运费p,货物重w,距离s,计算输出用户最终需要支付的运费。

#include

voidmain()

{

doubles,p,w,d,f;

printf("货物重为:

\n");

scanf("%lf",&w);

printf("基本运费为:

\n");

scanf("%lf",&p);

printf("路程为:

\n");

scanf("%lf",&s);

if(s<=250)

{

d=0;

f=p*w*(1-d);

printf("运费为:

%lf\n",f);

}

elseif(s>250&&s<500)

{

d=0.02;

f=p*w*(1-d);

printf("运费为:

%lf\n",f);

}

elseif(s>=500&&s<1000)

{

d=0.05;

f=p*w*(1-d);

printf("运费为:

%lf\n",f);

}

elseif(s>=1000&&s<2000)

{

d=0.08;

f=p*w*(1-d);

printf("运费为:

%lf\n",f);

}

elseif(s>=2000&&s<3000)

{

d=0.1;

f=p*w*(1-d);

printf("运费为:

%lf\n",f);

}

elseif(s>=3000)

{

d=0.15;

f=p*w*(1-d);

printf("运费为:

%lf\n",f);

}

getchar();

getchar();

}

实验三循环结构程序设计实验

(验证性综合性实验2学时)

1、目的要求:

(1)使用循环语句完成累乘、图像输出的程序编写。

(2)掌握较复杂结构程序的编写。

(3)掌握程序调试的方法。

(4)编写实验报告。

2、实验内容(参考实验指导书):

(1)已知xyz+yzz=532,其中x、y、z都是数字(0~9),编写一个程序求出x、y、z分别代表什么数字。

#include

main()

{

intx,y,z;

for(x=0;x<=9;x++)

{

for(y=0;y<=9;y++)

{

for(z=0;z<=9;z++)

{

if((x*100+y*10+z)+(y*100+z*10+z)==532)

{

printf("x=%dy=%dz=%d",x,y,z);

}

}

}

}

}

(2)编写一个程序打印如下对称图形(行数由键盘输入1~9范围的值),例如下面是输入的数字4时的情形:

4444444

33333

222

1

222

33333

4444444

#include

voidmain()

{

intn,j,i,k,a;

printf("请输入一个数字来表示:

");

scanf("%d",&n);

for(i=n;i>=1;i--)

{

for(j=1;j<=n-i;j++)

{

printf("");

}

for(k=1;k<=2*i-1;k++)

{

printf("%d",i);

}

printf("\n");

}

for(i=1;i<=n-1;i++)

{

for(j=1;j<=n-i-1;j++)

{

printf("");

}

for(k=1;k<=2*i+1;k++)

{

printf("%d",i+1);

}

printf("\n");

}

}

(3)学校有近千名学生,在操场上排队,5人一行余2人,7人一行余3人,3人一行余1人,编写一个程序求该校的学生人数。

#include

main()

{

inti;

for(i=1;i<1000;i++)

{

if((i%5==2&&i%7==3&&i%3==1)&&(i>900&&i<1000))

{

printf("%d\n",i);

}

}

}

(4)学校某班A、B、C、D四位同学中的一位做了好事不留名,表扬信来了之后,班主任问这四位是谁做了好事,四位回答如下:

A说:

不是我。

B说:

是C。

C说:

是D。

D说:

他胡说。

已知三个人说的是真话,一个人说的是假话。

请根据这些信息,找出做了好事的人。

#include

voidmain()

{

inti;

for(i='A';i<='D';i++)

{

if((i!

='A')+(i=='C')+(i=='D')+(i!

='D')==3)

{

printf("%c\n",i);

}

}

}

 

实验四数组程序设计实验

 

(验证性综合性实验4学时)

1、目的要求:

(1)掌握一维和二维数组的使用技巧。

(2)编写实验报告。

2、实验内容(参考实验指导书):

(1)从键盘输入一个长度为N(比如10)的整型数组,而后将数组中小于零的元素移动到数组的前端,大于零的元素移到数组的后端,等于零的元素留在数组中间。

比如原来数组为:

2-5-89750-89093480,经过处理后的数组为:

-5-89-890007593482。

由于不要求数组有序,所以不允许用排序方法。

提示:

1)输入N个数据,构建数组。

2)按照要求确定数据的位置,需要注意循环条件的确定、0数据元素往中间推的实现过程以及数组处理的方向。

#include

#defineN10

voidmain()

{

inta[N],b[N],i,j,x,y;

printf("请输入十个数\n");

for(i=0;i

{

printf("a[%d]=",i);

scanf("%d",&a[i]);

}

j=N-1;

for(i=0;i

{

if(a[i]>0)

{

b[j]=a[i];

j--;

}

x=j;

}

for(i=0;i

{

if(a[i]==0)

{

b[x]=a[i];

x--;

}

y=x;

}

for(i=0;i

{

if(a[i]<0)

{

b[y]=a[i];

y--;

}

}

for(j=0;j

{

printf("%d",b[j]);

}

}

(2)设数组a的定义如下:

inta[20]={2,4,6,8,10,12,14,16};已存入数组中的数据值已经按由小到大的顺序存放,现从键盘输入一个数据,把它插入到数组中,要求插入新数据以后,数组数据仍然保持有序。

请编写一个程序实现上述功能。

提示:

1)定义整型数组并初始化。

2)从键盘输入一个数据。

3)将该数据插入到数组中,由于要保证插入的数组仍然有序,所以需要查找插入的位置。

4)输出插入数据以后的数组。

#include

#defineN20

voidmain()

{

inti,x,temp,j,min;

inta[N]={2,4,6,8,10,12,14,16};

printf("请输入一个数x=");

scanf("%d",&x);

for(i=0;i

{

if(x>a[i])

{

temp=a[i+1];

a[i+1]=x;

x=temp;

}

}

for(i=0;i

{

min=i;

for(j=i;j

if(a[min]>a[j])

min=j;

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

for(i=0;i

{

printf("%d",a[i]);

}

}

(3)写一个3x5矩阵的转置程序,输出其原矩阵的值和转置以后的结果。

提示:

1)定义一个二维数组及相关变量。

2)对二维数组赋值,可以由键盘输入,也可以通过其他方式赋值。

3)输出转置前的二维数组。

4)对二维数组中的值进行转置。

5)输出转置后的二维数组中的值。

#include

#defineM3

#defineN5

voidmain()

{

inta[M][N],i,j;

printf("请输入数\n");

for(i=0;i

{

for(j=0;j

{

printf("a[%d][%d]=",i,j);

scanf("%d",&a[i][j]);

}

}

for(i=0;i

{

for(j=0;j

{

printf("%d",a[i][j]);

}

printf("\n");

}

for(j=0;j

{

for(i=0;i

{

printf("%d",a[i][j]);

}

printf("\n");

}

}

(4)编程实现随机产生10个位于区间[100200]互不相等的整数,并将其按降序排序和输出。

#include

#include

#include

#defineN10

intmain()

{

intstime,z,i,a[N],min,j,temp;

longltime;

ltime=time(NULL);

stime=(unsignedint)ltime/2;

srand((unsigned)time(NULL));

for(i=0;i

{

a[i]=rand()%100+100;

printf("a[%d]=%d\n",i,a[i]);

}

for(i=N-1;i>=0;i--)

{

min=i;

for(j=i;j>=0;j--)

if(a[min]>a[j])min=j;

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

for(i=0;i

printf("%d",a[i]);

}

实验五函数实验

(验证性综合性实验5学时)

1、目的要求:

(1)学习函数的编程思想,编写一个包括3~4个函数的程序。

(2)掌握函数中参数传递的两种方式和函数的相互调用。

(3)编写实验报告。

2、实验内容(参考实验指导书):

(1)写一个函数intdigit(intn,intk),它返回数n的从右向左的第k个十进数字值。

例如,函数调用digit(1234,2)将返回值3。

#include

intdigit(intn,intk);

voidmain()

{

inti,j,g;

printf("pleaseinputiandj:

\n");

scanf("%d%d",&i,&j);

g=digit(i,j);

printf("return%d\n",g);

}

intdigit(intn,intk)

{

intz,x,t,s;

intsum=1,m=10;

for(t=1;t<=k;t++)

{

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

当前位置:首页 > 法律文书 > 判决书

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

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