C语言实验指导书课案.docx

上传人:b****7 文档编号:23797602 上传时间:2023-05-20 格式:DOCX 页数:21 大小:345.77KB
下载 相关 举报
C语言实验指导书课案.docx_第1页
第1页 / 共21页
C语言实验指导书课案.docx_第2页
第2页 / 共21页
C语言实验指导书课案.docx_第3页
第3页 / 共21页
C语言实验指导书课案.docx_第4页
第4页 / 共21页
C语言实验指导书课案.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言实验指导书课案.docx

《C语言实验指导书课案.docx》由会员分享,可在线阅读,更多相关《C语言实验指导书课案.docx(21页珍藏版)》请在冰豆网上搜索。

C语言实验指导书课案.docx

C语言实验指导书课案

实验1C语言初步与编程环境介绍(2学时)

1.目的要求

1)熟悉C语言基本结构,

2)熟悉VC控制台应用程序设计的使用方法。

2.实验内容

(1)创建项目,分别将教材P13和P14程序输入并编译。

(2)下列程序能正确运行吗?

如果能,写出运行结果;如果不能,指出错误原因并改正。

Main()

{

printf("hello\n");

}

附:

VC6.0环境的使用方法介绍

MicrosoftVisualC++(简称VC)是微软公司生产的基于其Windows系统的软件开发工具。

它具有使用灵活,并与32位Windows内核(使用于Windows95/98/NT/2000)高度兼容的特点,从而被Windows程序员们广泛使用。

同时,VC同样可以加工处理C语言程序,与标准的ANSIC语言兼容。

VC提供了一种控制台操作方式,本实验课程主要在控制台方式下进行设计运行。

一、什么是控制台程序?

Win32控制台程序(Win32ConsoleApplication)是一类Windows程序,它不使用复杂的图形用户界面,程序与用户交互时通过一个标准的文本窗口,通过标准的输入输出流(I/OStreams)进行。

一个最简单的控制台程序如下:

#include//包含使用标准输入输出库的头文件声明

main()

{

printf(”HelloWorld!

”);//输出一个字符串

}

二、如何使用MSVC编写控制台程序?

控制台程序按照下面几个步骤进行。

1、打开VC集成开发环境。

双击桌面图标“MicrosoftVisualC++6.0”,或者从系统菜单“开始”/“程序”/“MicrosoftVisualStudio6.0”/“MicrosoftVisualC++6.0”(如图1),打开VC开发环境(如图2)。

图1从开始菜单中打开VC开发环境

 

图2VC开发环境界面 

2、建立新的工程

从VC的主界面菜单项中选择”文件”/”新建”,如图3所示。

图3文件菜单

这时会弹出一个对话框,其中有4个可选的标签页,默认是”工程”页.工程页中列出了多种工程类型,这里我们选择”Win32ConsoleApplication”类型。

在工程编辑框里填写工程名称,然后单击“确定”按钮。

出现图5所示界面。

图4选择ConsoleApplication工程类型

图5建立空的工程

对于图5所示的界面单击“完成”按钮。

3、新建源文件

目前为止,我们已经建立了一个新的工程,但是这个工程不包含任何文件,也就不包含任何代码。

现在,我们来添加文件。

图6添加源文件

选择菜单项“文件”/“新建”/”文件”,弹出图6所示的界面。

选择类型为”C++SourceFile”的文件类型,添加文件名称,单击”确定”即可。

出现如图7所示的界面。

(注意:

使用C语言编写代码时,应在文件名后添加.c后缀,例如“test.c”)

图7编辑环境

界面的左边部分是一个“工作区”窗口,包含两个标签页,一个是“ClassView”,用来展示当前工作区中的类,函数以及变量信息。

另一个是“FileView”,用来展示当前工作区内的所有文件。

图8工作区

4、编辑,编译与运行

在工作区窗口中双击对应的文件图标,就可以开始进行编辑了。

输入程序代码后,单击”文件”/”保存”,或者直接点击工具栏上的”

”按钮,进行保存。

对文件进行编译,可以通过菜单项”编译”/”重建全部”(也可以按功能键F7),也可以直接点击工具栏上的

,进行编译。

如果输入内容没有语法错误,那么,在屏幕下方的输出窗口将会显示:

*.exe-0error(s),0warning(s)

编译结束后,可以通过输出窗口察看编译情况。

编译的错误会在DeveloperStudio的下方的输出窗口显示出来,逐个查看这些错误的内容,用鼠标双击,光标可以自动移动到发生错误的源程序的相应地点,仔细检查的源程序并改正。

改正后,再重复编译链接,直到编译通过为止。

图9编译信息

如果编译通过,那么可以直接运行程序了。

通过菜单项“编译”/“!

Execute*.exe”执行*.exe“,也可以直接点击工具栏上的

运行,察看运行结果。

运行结果如图10所示。

按任意键关闭窗口,返回编辑环境。

图10控制台应用程序的运行结果

实验2常量、变量与数据类型(2学时)

1.目的要求

1)了解C语言常量和变量的概念

2)熟悉C语言基本数据类型。

2.实验内容

(1)下列代码将同一整数以不同进制下的常量表示,以十进制形式(%d)打印输出。

如果将x的初值37改为95,如何修改下列代码中的数据,使得打印结果输出相同的3个整数。

#include

main()

{

intx=37;

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

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

printf("%d\n",0x25);

}

(2)下列程序能正确运行吗?

如果能,写出运行结果;如果不能,指出错误原因并改正。

#include

main()

{

printf("请输入一个整数");

inta;

scanf("%d",a);//从键盘输入a的值

printf("a=%f\n",A);/*打印a的值*/

intb;

1=b;//将b赋值为1

printf("b=%d");

}

#include

main()

{

floata;

scanf("%d",a);

printf("a=%f\n",a);

}

#include

main()

{

doublea;

scanf("%f",&a);

printf("a=%lf\n",a);

(3)编写代码验证常量3.14以及3.14f的数据类型(提示:

通过sizeof计算出占用常量内存空间大小)。

实验3算术运算符和表达式(2学时)

1.目的要求

1)了解C语言算术运算符的作用和使用规则

2)了解优先级、结合性的概念,熟悉表达式计算规则。

2.实验内容

(1)利用scanf函数从键盘读入一个整数(1~12之间的某个整数)作为当前月份,计算并输出下一个月份。

(2)编写代码,从键盘读入一个三位整数,并将数据倒序输出。

例如输入123,输出321。

(提示:

先分解出整数的个位数输出,再相继分解出十位和百位数字并输出)

#include

main()

{

inta,b;

printf("请输入两个整数(空格间隔)并回车\n");

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

printf("平均值=%d\n",(a+b)/2);

}

(3)下列代码能否计算整型变量a和b的平均值?

应该如何修改?

 

(4)验证下列两段代码的输出结果是否相同。

并说明原因

#include

main()

{

inti=0;

i++;

printf("%d",i);

++i;

printf("%d",i);

}

#include

main()

{

inti=0;

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

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

}

 

(5)将460分钟换算成小时和分钟表示,然后输出。

(6)从键盘任意输入三个整数,求它们的和及平均值。

(7)已知a,b均是整型变量,编写程序将a,b两个变量中的值互换。

(2学时)

1.目的要求

1)学习使用scanf()和printf()函数进行输入、输出。

2)了解顺序控制结构的特点。

2.实验内容

1)分析下面程序,指出错误原因并改正。

#include

main()

{

longa,b;

floatx,y;

scanf(“%d,%d\n”,a,b);

scanf(“%5.2f,%5.2f\n”,x,y);

printf(“a=%d,b=%d\n”,a,b);

printf(“x=%d,y=%d\n”,x,y);

}

2)编程从键盘输入一个小写英文字母,将其转换为大写英文字母后,将转换后的大写字母及其十进制ASCII码值显示在屏幕上。

 

实验5选择控制结构(2学时)

1.目的要求

1)掌握关系运算和逻辑运算。

2)掌握if语句和switch语句的应用。

2.实验内容

1)从键盘任意输入一个整数,判断该数是否是正数,并输出结论。

2)从键盘任意输入两个整数,输出其中的较小数。

3)从键盘任意输入一个实数,不使用计算绝对值函数,编程计算该数绝对值,并输出。

4)从键盘任意输入三角形三边长a,b,c,编程判断a,b,c的值能否构成一个三角形,若能,计算三角形面积并输出,否则输出不能构成三角形。

已知构成三角形的条件是:

任意两边之和大于第三边。

5)从键盘任意输入一个字符,编程判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。

6)编程从键盘输入某年某月(包括闰月),用switch语句编程,输出该年的该月拥有的天数。

考虑闰年,以及输入月份不合理的情况。

7)输入任意一个小于10000的正整数,要求求出它是几位数,并分别输出每一位数字。

(例如输入6789,输出“4位数,各位数字分别为6、7、8、9”)

8)根据如下学生成绩分段等级,当从键盘输入一个成绩(整数)后,输出相应的等级字母。

(如果输入不合法的成绩值,需要输出“错误”提示)

90分以上A

80~89分B

70~79分C

60~69分D

59分以下E

8)(选作)根据输入的实数x的值,计算y=f(x)并输出。

f(x)的表达式如下:

x+3(x≥5)

y=0(0≤x<5)

2x+30(x<0)

 

实验6循环控制结构(2学时)

1.目的要求

1)掌握for/while/do-while语句、break语句和continue语句,实现循环控制结构

2)掌握嵌套循环

2.实验内容

1)输入正整数n,计算1+2+3+…+n并输出

2)判断正整数n(n>2)是否是素数(素数:

除了1和它自身,没有其他因子)

3)打印斐波那契数列的前20项。

(斐波那契数列特点:

第一项和第二项为1,其余各项为前两项之和。

1,1,2,3,5,8,11…)

4)计算a+aa+aaa+…aa…a(n个a)的值,n和a的值由键盘输入

5)水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。

(例如:

13+53+33=153)。

计算并输出所有三位水仙花数。

6)假设有原材料100米,若生产A零件需要7米材料,生产B零件需11米材料,那么AB零件各生产多少,使得最后剩余的材料最少?

7)输入正整数m和n,用穷举法计算m和n的最大公约数和最小公倍数。

8)(选作)在公共汽车站有三条汽车线,一路车每隔5分钟开出一辆,六路车每隔10分钟开出一辆,八路车每隔8分钟开出一辆。

这三路汽车在同一时刻发车后,至少再过多少分钟,又在同一时刻发车?

9)(选作)游戏者投两枚骰子,每个骰子有六面,包含1,2,3,4,5,6个点。

投两枚骰子之后,计算点数之和,如果第一次的点数之和为7或11,则游戏者胜。

如果第一次的点数之和为2,3或12,则游戏者输,庄家赢。

如果第一次的点数之和为4,5,6,8,9或10,则游戏者继续投骰子,直到赢到点数,如果7次之后还没有赢到点数,则游戏者输。

实验7函数编写与调用(2学时)

1.目的要求

1)掌握函数的定义和使用

2)掌握参数的传递方式

2.实验内容

1)设有数学函数f(x)=x2+2x+3,在C语言程序中编写代码实现函数f。

在main函数中根据用户输入的x,调用该函数计算f(x),将结果打印输出。

2)编写函数iseven,判断整数n是否是偶数。

在main函数中调用该函数并打印结论。

3)编写函数max,计算两个整数中的较大值。

并在main函数中调用该函数,计算输入数的较大者输出(该要求适用于下面各题)。

4)编写函数,计算两个整数的最大公约数

5)编写函数,计算两个整数的最小公倍数

6)编写函数,判断整数m是否是素数,并在main函数中输入数据,调用函数判断,结果输出。

7)编写递归函数,计算正整数n的位数(即n是几位数),并在main函数中输入数据,调用函数判断,结果输出。

8)编写递归函数voidprint(intn),打印正整数n的各位数字,并在main函数中输入数据,调用函数判断,结果输出。

9)编写函数doublepow(doublex,intn),计算xn,并在main函数中输入数据,调用函数判断,结果输出。

实验8数组应用(2学时)

1.目的要求

1)掌握数组的定义和使用

2)掌握数组的应用

2.实验内容

1)从键盘输入8个整数,并存放在数组inta[8]中,统计8个整数中偶数的个数。

2)已知某班10名学生的考试成绩存储在数组中

intscore[10]={85,97,71,89,88,75,82,80,77,73};

从键盘输入一个考分,查找该分数是否在数组中,如果是的话,打印它是第几名学生的成绩。

如果该分数不存在,输出提示信息。

3)定义数组intsc[6];,请编写代码从键盘录入6名学生的成绩用该数组存储,并统计最高分、平均分以及高于平均分的学生人数。

4)已知有序数组inta[7]={3,5,8,11,20,23},要求从键盘任意输入一个正整数,并把该数插入到数组的适当位置并挪动其他元素,使得数组仍然是升序排列的。

5)合并两个有序数组inta[4]={2,4,6,8}和intb[5]={1,3,5,7,9}并存储到数组intc[9]中,使数组c的内容按升序存放。

6)编写函数voidReverse(inta[],intn)将数组逆序,并在main函数中使用下列代码验证该函数的功能。

main()

{

inti,score[10]={85,97,71,89,88,75,82,80,77,73};

Reverse(score,10);

for(i=0;i<10;i++)printf(“s[%d]=%d,”,i,score[i]);

}

7)找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。

也可能没有鞍点。

应当至少准备两组测试数据:

①二维数组有鞍点

98020540

90-60961

210-310189

②二维数组没有鞍点

98020540

90-601961

210-310189

45541567

8)(选作)从键盘输入一个十进制数并将其转化为16进制数显示。

例如输入123,输出7B。

9)(选作)思考如何用数组表示一个大整数如123456789123(该数已经超过int和long类型表示范围)?

计算大整数(12位)乘2、除2的结果,并打印。

 

实验9指针应用(2学时)

1.目的要求

掌握指针的定义和使用

2.实验内容

1)改正下列程序的错误使得程序可以正常执行。

int*p;

char*ps;

scanf(“%d”,p);

printf(“%d”,*p);

gets(ps);

puts(ps);

2)编写函数交换两个整型变量,利用该函数实现数组inta[10]={85,97,71,89,88,75,82,80,77,73};降序排序。

 

实验10字符串处理(2学时)

1.目的要求

掌握字符串的存储和访问

2.实验内容

1)从键盘输入一行字符串,统计字符串中单词的个数。

例如”Thisisabook”包含4个单词。

2)从键盘输入一行字符串,统计字符串中最长的单词并输出。

3)从键盘输入一行字符串,对字符串加密后输出。

加密方法是将其中的字母替换成ASCII码中相邻的下一字符,’a’替换成’b’,’b’替换成’c’。

’z’替换成’a’。

例如输入”Hello”,输出”Ifmmp”。

4)实现针对上题的解密方法。

5)仿照库函数strlen编写函数intslen(char*p),返回以p为首地址的串中的字符个数(即串的长度)。

6)仿照库函数strcpy编写函数char*scopy(char*pd,char*ps),将以p为首地址的串拷贝到以pd为首地址的连续空间中,并返回pd。

7)仿照库函数strcmp编写函数intscmp(char*p1,char*p2)。

8)仿照库函数strcat编写函数char*scat(char*pd,char*ps)。

将以p2为首地址的串连接到p1串后面,并返回p1。

 

实验11指针和数组综合(4学时)

1.目的要求

掌握指针和一维数组的关系以及动态数组的定义和使用

2.实验内容

1)从键盘输入5个整数,然后将其输出到屏幕上。

通过调用函数分别给数组赋值,将数组输出。

函数参数为指针。

2)输入m(不超过30人)个学生的n(不超过5门)门课程的成绩,然后计算并打印每个学生各门课程的总分和平均分。

其中,m和n的值由用户从键盘输入。

要求同上。

3)根据用户输入的正整数n动态申请空间,存放用户输入的n个整数,并求解最大值。

 

实验12结构体应用(2学时)

1.目的要求

掌握结构体的定义和使用

2.实验内容

定义学生结构体类型,包含基本的姓名、性别、年龄、成绩信息,并定义相应的结构体变量存储从键盘输入5个学生的基本信息(例如“张宁”,’M’,19,92.5),按年龄升序将其输出

 

实验13文件操作(2学时)

1.目的要求

掌握文件的基本操作

按字符读写文件

2.实验内容

复制文件。

将键盘上已经存在的一个文件,复制到新文件中。

源文件名、新文件名都从键盘输入,文件为纯文本文件。

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

当前位置:首页 > 人文社科 > 法律资料

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

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