当前位置:文档之家› C语言实验指导手册

C语言实验指导手册

C语言实验指导手册
C语言实验指导手册

四川师范大学数学与软件科学学院信息与计算科学专业《程序设计基础教程----C语言版》课程实验

指导手册

本实验指导手册旨在指导数学与软件科学学院信息与计算科学专业《程序设计基础教程----C语言版》(专业必修课)的实验教学活动过程。其主要使用对象为本课程主讲教师和实验指导教师。它可以作为教学过程中的教学辅助参考资料,也可以作为学生在本门课程的学习中,结合实际教学内容,完成相关实验并填写实验报告的主要依据。具体实施过程中,除开各实验中要求的必做题目外,教师可结合实际教学情况,根据学生接受程度作适当扩展。学生在进行实践设计活动时,也可以结合自身掌握和学习的实际情况进行有选择地实践。

本指导手册仅针对本学院信息与计算科学专业而设置。

本实验手册编写的参考书籍:

1.《程序设计基础教程----C语言版》,冯山,马廷淮主编,北京:科学出版社,2008年5月

2.《C语言程序设计教程(第二版)》,谭浩强,张基温,唐永炎编著,北京:高等教育出版社,2002年3月

3.《C语言习题集与上机指导(第二版)》,谭浩强,张基温主编,北京:高等教育出版社,2002年1月

引言

程序设计是实践性很强的课程。实践也是学好程序设计课程中必不可少的重要环节。程序设计的实践分两个步骤:一是设计和编写解决问题的程序算法流程,并在此基础上编写源程序代码;二是在计算机上对程序进行调试,并使程序完成问题

的求解过程,进行相应的逻辑测试。

实验过程中,应当注意如下问题:

(1) 上机实习的主要目的是训练C语言程序的上机调试能力和分析、解决调试过程中遇到的问题的能力。并在此过程中逐步提高程序编写与问题分析能力。而不是简单地对教材上的实例做验证式的操作;

(2) 上机内容可以结合教材内容和习题,或由老师布置专门的上机习题进行;

(3) 为提高上机效果。必须在上机之前准备好上机的基本内容并编写好上机程

序,尽量在上机之前先作好预先的阅读分析工作;

(4) 上机调试的基本方法:语法检查(编译)==>逻辑检查(设计者检查)==>测试。

上机实验的主要步骤:

(1) 了解实验目的和要求,并椐此复习或阅读相关教材内容;

(2) 根据题目要求,事先编写好程序,并经过设计者静态检查程序的语法正确性和逻辑正确性,分析可能出现的问题;

(3) 设计好上机时准备测试程序的用例;

(4) 上机调试通过程序,并记录上机调试中出现的问题和测试结论等,写出实验报告。

调试过程中,尤其要注意各种语法错误、逻辑错误调试经验的积累。

实验报告的主要内容:

(1) 实验题目;

(2) 目的要求;

(3) 程序说明(如程序结构、各模块的算法和数据结构等);

(4) 经调试后的程序清单;

(5) 测试情况说明;

(6) 分析(包含没有通过的程序的原因分析)。

实验报告的具体内容填写格式,参见《四川师范大学实验报告手册》格式的规定。其中,程序清单请附着在相应的实验单元后面,程序结果、说明与分析等写在实验结果处,如不够,可另行附页。

实验一C语言程序的运行环境和运行一个C语言程序的方法

(2学时)

实验目的:

(1)熟悉所用计算机系统的基本操作方法以及在该系统下安装、编辑、编译、连接和运行一个C语言源程序的基本操作步骤(以Turboc C为基本背景);

(2) 学习基本的C语言程序设计与调试环境设置方法;

(3) 通过运行简单的C语言程序,了解C语言程序的特点。

实验内容:(要求至少调试3个以上的简单程序)

1.如果系统没有安装TC环境,则安装,否则,跳过此步;

2.配置好TC环境,熟悉TC编辑器的基本操作命令及其它基本功能;

3.完成并熟悉程序输入、编译、连接、运行过程,直到程序输出结果正确;

4.学习基本的调试程序方法(包含编译、连接错误信息的正确理解);

5.可参考的程序实例如下(也可以参考教材范例):

1) 最简单的C语言程序:

int main(void)

{

printf("This is my first program.\n");

return 0;

}

2) 引用C语言函数库进行计算的程序:

/*Please try exercises in chapter one of textbook in page 15*/

#include "math.h"

int main(void)

{

float fX;

fX=sin(2.2922);

printf("sin(%f) is %f\n",2.2922,fX);

return 0;

}

3) 引用自定义函数的C语言程序:

/*This is the function of average for data fA,fB,fC*/

float average(float fA,float fB,float fC)

{

float fAvg;

fAvg=(fA+fB+fC)/3.0;

return fAvg;

}

int main(void)

{

float x1,x2,x3;

printf("Please input fX1,fX2,fX3:");

scanf("%f,%f,%f",&fX1,&fX2,&fX3);

printf("\nAvg of %f,%f and %f is %f\n",\

fX1,fX2,fX3,average(fX1,fX2,fX3));

return 0;

}

4)求1+2+3+ (100)

5)给定5个数,求其最小者;

6)求a+|b|。

实验准备:

(1) 计算机设备;(2) 程序调试环境的准备,如TC环境;(3) 实验源程序准备。实验步骤:

(1) 安装TC,如果已安装好,可以跳过此步;

(2) 进入TC的编辑窗口,进行基本的环境设置;

(3) 熟悉基本的TC编辑操作方法和文件创建、保存方法;

(4) 输入一个C语言源程序,进行编辑、编译、连接、运行。完成一个简单的程序设计,运行输出正确结果;

(5) 输入其它源程序并进行调试(注意错误提示信息);

(6) 编写实验报告。

实验结果:

(1) 对TC的安装、调试、基本操作、环境设置方法等方面进行描述;

(2) 对TC程序的执行过程和结果进行分析;

(3) 给出实验过程中出现的主要问题和现象以及解决的方法;

(4) 程序代码及运行结果描述。

实验二数据类型、运算符和表达式(2学时)

实验目的:

(1) 掌握C语言的数据类型的声明、定义、赋值及引用;

(2) 掌握变量和常量之间的关系,以及各种常见的常量表示方法;

(3) 掌握C语言的有关运算。算术运算中的自反、自增(++)、自减(--)运算符的使用;关系表达式和逻辑表达式的逻辑值表示方法和基本运算规律;学会在C语言环境下表示条件表达式;

(4) 掌握不同类型数据之间的转换和赋值方法。

实验内容:

主要参考实例或内容(也可以参考教材或习题实例):

1. 请变成实现教材P54页题2-4(目的:观察各种数据类型的分配空间大小);

2. 教材相关内容为基础,考察变量的声明、定义、使用的先后关系;考察不同数据类型变量之间相互赋值的结果;考察各种形式的常量表示;

3. 基本的C语言运算规律,尤其是算术运算中的自反、自增、自减等运算和关系表达式、逻辑表达式的特殊运算规律的掌握。(可参考教材习题中的2-13,2-14和2-18,例2-20);

4. 关于不同数据类型之间的转换问题,参见教材例2-5~例2-12。

注:由于本章内容是基本的程序设计基础内容,所有这些内容必须要求熟练掌握和运用。因此,其中一些实验实例由教师在课堂实践教学中进行现场示范性讲解,由学生课外自由验证课堂范例、教材范例以及教材习题和相关课外参考书籍和资料,

进行综合性的验证实践,并写出心得报告。具体实验范例不需要确定下来。

实验准备:

分析测试目的并根据它准备好实验内容的各种测试用例。

实验步骤:

(1) 选择测试目标;

(2) 准备测试用例和具体的测试数据;

(3) 上机调试进行测试并做测试记录;

(4) 进行测试分析;

(5) 编写实验报告。

实验结果:

(1) 根据测试目标写出测试报告;

(2)测试结果分析说明;

(3)测试程序代码清单。

实验三最简单的C语言程序设计(2学时)

实验目的:

(1) 掌握顺序结构的程序设计概念、方法及各种赋值语句的使用方法;

(2) 掌握基本的C语言程序设计中的输入、输出语句的使用方法。

实验内容:

1.熟悉表3-1~表3-5中给出的格式化输入、输出格式控制符及其使用方法,并上机测试教材表例3-1~例3-10,并观察C语言中的数据格式化输入、输出规律和方法;

2.输入并编辑以下程序代码:

int main(void)

{

int nA,nB;

float fC,fD;

long lE,lF;

unsigned int u,v;

char ch1,ch2;

scanf("%d,%d",nA,nB);

scanf("%f,%f",fC,fD);

scanf("%ld,%ld",lE,lF);

scanf("%o,%o",u,v);

scanf("%c,%c",ch1,ch2);

printf("\n");

printf("a=%7d,b=%7d\n",&nA,&nB

printf("c=%10.2f,d=%10.2\n",&lF,&fD);

printf("e=%17ld,f=%17ld\n",&lE,&lF);

printf("u=%o,v=%o\n",&u,&v);

printf("c1=%c,c2=%c\n",&ch1,&ch2);

return 0;

}

请分析和观察代码有无错误,如果有,有哪些?指出错误原因,并修正之,使其可以按照预想的目的输入相应数据并输出结果;

3.输入华氏温度的值F,要求输出摄氏温度的取值C,其中,C=5/9*(F-32)。要

求输出有文字说明,取两位小数位;

4. 用getchar()函数读入两个字符ch1,ch2,然后分别用putchar()和printf()函数输出这两个字符。试分析思考如下问题:(a)ch1和ch2的数据类型用什么?(b) 要求输出ch1和ch2的ASCII码,应如何处理?是用printf()还是用putchar()?(c) 整型变量是否在任何情况下都可以相互代替?

5.*请编写和实现教材习题3-15,3-16,3-17和3-18,至少要求实现其中一个问题。实验准备:

(1) 复习相关内容,阅读并分析1、2、3中的相关程序代码;

(2) 对4、5题进行程序代码编写。

实验步骤:

(1) 对照阅读分析结果,上机验证1、2、3的结果,并做出相应分析;

(3) 对4、5题进行上机调试,并进行测试、做测试记录;

(4)进行实验分析;

(5) 编写实验报告。

实验结果:

(1) 根据测试目标写出测试报告;

(2) 测试结果分析说明;

(3) 测试程序代码清单。

实验四分支结构的程序设计(4学时)

实验目的:

(1) 掌握C语言程序设计中逻辑量的表示和运用方法;

(2) 掌握C语言程序设计中条件表达式的值的计算方法及其跟程序执行流程之

间的逻辑顺序关系;

(3) 掌握C语言中的4中选择结构语句的执行逻辑及其运用方法。

实验内容:

1. if 语句的实验。请分析如下语句段的逻辑关系:

int main(void)

{

...

if (nA>1 && nB==0) nX=nX/nA;

if (nA==2 || nX>1) nX=nX+1;

...

return 0;

}

(a) 以算法流程图的形式表述;

(b) 增加输入、输出功能以补充完整该程序段,使之能够运行;

(c) 测试该程序段的各种条件组合下的运行结果。测试数据组如下:

nA nB nX

1 1 1

1 1 2

3 0 1

2 0 4

2 1 1

1 0 2

2 1 2

3 0 2

(d) 分析讨论:

1) 用哪组数据就可以使程序段中每个处理语句都执行一次?为了找出

程序中的逻辑错误,应使用什么样的数据进行测试?请上机验证自己的分

析结果。

2) 用哪两组数据可以使程序段中的每个分支都至少运行一次?为找出

各个分支中的逻辑错误,应选用什么样的数据进行逻辑测试?请上机验证

自己的分析结果。

3) 用哪四组数据可以将从起点到终点的各条路径都覆盖一次?为了测

试程序在各个不同路径上的错误,应选用什么样的测试数据?请上机验证

自己的分析结果。

2. if else语句实验。用if else句型,编写求4个数中最大者的程序,并设计测试用例、记录测试结果;

3. 试用if else if else if ...else实现求4个数中最大者的程序,并做相应测试;

4. 试用switch语句句型实现以上程序,并做相应测试;

5. 请理清习题5-23的逻辑关系,并上机进行验证。

实验准备:

(1) 阅读并分析第1题中的逻辑关系及其分支测试方法;

(2) 分析并编写2、3、4题(需要绘制流程图)的程序代码。

实验步骤:

(1) 对照阅读分析结果,上机验证1题的测试结果,并做出相应分析;

(2) 上机运行和测试所写的2、3、4、5题程序代码;

(3) 进行实验分析;

(4) 编写实验报告。

实验结果:

(1) 根据测试目标写出测试报告;

(2) 测试结果分析说明;

(3) 测试程序代码清单。

实验五循环控制程序的设计(4学时)

实验目的:

(1) 复习和掌握算法的基本组成要素和描述特点;

(2) 在实验四的基础上,学习几种常见的循环程序的流程关系和运用方法;

(3) 不同循环类型之间的转换方法;

(4) 循环的应用。

实验内容:(1和2必做,3和4选做)

1.循环实验(教材习题5-20)。具体要求:

(1) 绘制流程图,编制程序代码。

(2) 分析不进入循环、只循环一次、只循环两次、进入死循环的条件,以及

此时各变量的值。

(3) 分析循环退出时的条件表达式值。

(4) 如何测试循环的次数?

(5) 能否将程序改写成另外的形式,如while改写成do while或for语句?

(6) 总结条件循环的设计、实现步骤和测试方法。

2.计数型循环实验(教材习题5-30):九九表及其变体形状的打印。具体要求如下:

(1) 分析并绘制九九表的程序实现代码(右上三角形状);

(2) 分析程序的执行过程;

(3)* 请在此基础上修改部分程序代码以打印如下一些变形九九表:右下三

角、左上三角、左下三角、倒序排列等形状,并观察、分析和总结其规律。

(4) 分析并总结计数型循环在do while, while和for循环句型中的实现方法

和步骤。

3.其它实验题目:

(1) 习题5-1(小孩吃梨问题);

(2) 习题5-4(水果拼盘问题);

(3) 求两个非负整数u和v的最大公因子;

(4) 求两个非负整数的最小公约数;

(5) 用牛顿迭代法求解正实数a的平方根;

(6) 用梯形法求函数的数值积分;

(7) 把由键盘输入的数列(1,3,5,7,9...)按相反的顺序(如...9,7,5,3,1)输出。

4.习题5-27和习题5-28。

实验准备:

(1) 编写所选实验题目的程序代码和流程图;

(2) 检查源程序并给出其可能的运行结果说明。

实验步骤:

(1) 上机验证所选题目,并做相应测试和分析;

(2) 进行实验分析;

(3) 总结循环程序设计、实现本方法及其经验;

(4) 编写实验报告。

实验结果:

(1) 根据测试目标写出测试报告;

(2) 测试结果分析说明;

(3) 测试程序代码清单。

实验六基于函数的模块化程序设计(4学时)

实验目的:

(1)了解和掌握C语言环境下模块化程序设计的基础----基于函数模块的程序设计技术;

(2) 复习C语言程序的基本结构特点,了解基于函数模块的程序模块及其调用关系、过程;

(3) 函数的声明、定义、使用方法;

(4) 对各种变量属性的使用方法;

(5) 对C语言中常用的预编译语句的基本掌握。

实验内容:(第1题任选其两个小题,第2题和第3题必做)

1.函数的声明、定义和使用方法。具体实例如下:

(1) 编写一个在屏幕上画一条正弦曲线的函数;

(2) 编写一个函数,它可以求出给定数的所有因子,如下形式显示其结果:

72=2*2*2*3*3;

(3) 分别写出一个求N个数的最大公约数和最小公倍数的递归函数;

(4) 试编制n碟片hanoi塔的问题求解函数,并利用它求解4个盘片的结果;

(5) 试编写求n!的函数,并求n=7的结果。

具体要求如下:

(1) 编写程序通过调试获得正确结果;

(2) 分析函数的声明、定义和使用方法;

(3) 分别分析函数调用时的参数传值调用方法。

2.有关变量的属性实验(静态、动态、全局、局部等方面)。具体实例如下:

(1) 仔细分析以下程序的执行结果,然后上机运行如下程序段,并对各个变

量的属性及其使用结果进行比较分析:

int main(void)

{ /******(a)******/

int nX=1;

{/******(b)******/

void prt(void);

int nX=3;

prt();

printf("The second nX is %d\n",nX);

}/******(c)******/

printf("The first nX is %d\n",nX);

return 0;

}

void prt(void)

{ /******(d)******/

int nX=5;

printf("The third nX is %d\n",nX);

}/******(e)******/

(2) 仔细分析下列程序,是否有错误之处?然后分析其执行结果,上机验证

并对各个变量的存储属性及其结果进行比较分析:

#define LOW 11

#define HIGH 23

#define CHANGE 12

int i=LOW;

int main(void)

{

int workover(int i);

int reset(int i);

int i=HIGH;

reset(i/2.5);

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

reset(i=i/3);

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

reset(i/2);

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

workover(i);

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

return 0;

}

workover(int i);

{

i=(i%i++)*((i*i)/(2*i)+4);

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

return (i);

}

reset(int i);

{

i=i<=CHANGE?LOW:HIGH++;

return (i);

}

(3) 分析、编辑并执行以下程序,如果有错,请指出其错误原因,同时需要指出各个变量的存储属性。

/*****file1.c*****/

int last(void);

int new(int);

int reset(void);

exter int i;/*外部变量*/

int main(void)

{

int i,j;/*局部变量*/

i=reset();

for (j=1;j<=3;j++)

{

printf(“i=%d\tj=%d\n”,i, j);

printf(“next(i)=%d\t”,ne xt(i));

printf(“last(i)=%d\n”,las t());

printf(“new(i+j)=%d\n”, new(i+j));

}

return 0;

}

int next(void)

{

return (i++);

}

/*****file2.c*****/

static int i=10;

last(void)/*last*/

{

r e turn (i-=1_);

}

new(int i)

{

static int j=-5;/*第二次调用的时候,j=7;/第三次调用的时候,j=20*/

return (i=j+=++i);

}

/*****file3.c*****/

extern int i;

reset()

{

return (i);

}

运行结果:

i=10 j=1

next(i)=10 last(i)=10

new(i+j)=7

i=10 j=2

next(i)=10 last(i)=10

new(i+j)=20

i=10 j=3

next(i)=10 last(i)=10

new(i+j)=34

3.预编译命令实验。具体实例如下:

(1)一般宏替换实验(教材例7-5);

(2) 带参数的宏替换(教材例7-7~例7-12,习题7-8和习题7-9);

(3) 习题7-11和习题7-12;

(4) 文件包含(#include ""和#include <>)。

实验准备:

(1) 编写所选实验题目的程序代码和流程图;

(2) 检查源程序并给出其可能的运行结果说明。

实验步骤:

(1) 上机验证所选题目,并做相应测试和分析;

(2) 进行实验分析;

(3) 总结基于函数、宏等技术的模块化程序设计和实现方法及其经验;

(4) 编写实验报告。

实验结果:

(1) 根据测试目标写出测试报告;

(2) 测试结果分析说明;

(3) 测试程序代码清单。

实验七数组(6学时)

实验目的:

(1) 掌握C语言环境下数组的声明、定义和使用方法,包含其初始化、赋值、输入、输出和处理方法;

(2) 掌握字符数组和字符串数组的使用方法;

(3) 了解数组作为函数参数或返回值的传递和使用方法。

实验内容:(第1题必做,第2、3、4任选一个)

1.数组的基本使用方法实验。包含数组的声明方法、初始化方法、输入、输出方法、元素的引用方法以及数组作为函数参数的使用方法。

(1)一维数组的声明、初始化及引用方法;

(2)二维数组的声明、初始化及引用方法;

(3) 字符数组和字符串数组的初始化及引用方法的差异分析;

(具体实例参见教材实例)

测试函数声明和定义方法时,可以从以下几个方面进行测试:

1) 用已声明和定义的变量作为数组大小的声明;

2) 用已声明的const变量作为数组变量大小的声明;

3) 用宏名表示声明数组变量的大小;

4) 用表达式计算结果作为数组变量的大小;

5) 用宏的运算结果表示声明数组变量的大小。

(4) 分别按行序和列序顺序返回一个二维数组中各个元素的内存空间地址

值,以观察数组元素在计算机内存中的排列规律。

2.一维数组的应用。具体实例如下:

(1) 有一个数组大小为10,内放10个数,请找出其中对大和最小元素来,并

分别将其与数组第1个元素和最后1个元素交换。

(2)有17个人围成一圈,其编号分别为1到17,如果从1号开始报数,凡报到7

的倍数的人必须离开该圈子,然后再接着往下数,直到最后只剩一个人

为止。请问最后一个人原来的位置序号是多少?(扩展问题:请将每个

人按出列顺序重新排列后,其排列的顺序是什么?)

3.二维数组应用。具体实例如下:

(1) 输入一个n*n的矩阵。1) 试求除开对角线上元素之外的元素之和;2) 求

每行中与相应对角线元素不同的元素之和;

(2) 有n个学生,m门功课。要求:1)找出成绩最好的学生及其对应的课程

号码;2) 求全部同学每门课程的平均成绩;

4.字符数组应用。具体实例:

(1) 有三行文字,请找出其中空格的个数,并统计单词的个数。(注:单词

以一个或多个空格为间隔。如果一个单词刚好在行末结束,则下一行开

头应该有空格,包含句号和逗号后面也应该有空格!)

(2) 输入n个国家的名字,要求按照字母的先后顺序排序,并输出排序前后

的结果。

实验准备:

(1) 编写所选实验题目的程序代码和流程图;

(2) 检查源程序并给出其可能的运行结果说明。

实验步骤:

(1) 上机验证所选题目,并做相应测试和分析;

(2) 进行实验分析;

(3) 总结基于数组的程序设计和实现方法及其经验;

(4) 编写实验报告。

实验结果:

(1) 根据测试目标写出测试报告;

(2) 测试结果分析说明;

(3) 测试程序代码清单。

实验八指针(4学时)

实验目的:

(1) 掌握C语言环境下指针的声明、定义和使用方法;

(2) 掌握指针和变量以及指针和数组的关系;

(3) 掌握指针、数组之间的关系;

(4) 掌握指针、函数之间的关系。

实验内容:

1.熟悉指针的基本使用方法。

(1) 请仔细分析以下程序段,并上机测试运行结果,对测试结果进行分析说明。

1) 程序段一:

int main()

{

int i=3,j=6,k=9;

printf(“i=%d j=%d k=%d\n”,*(&i),j,k);

return 0;

}

分析:

*(&i)与i 等价

2) 程序段二:

int main(void)

{

int nA,*p;

float fB,*q;

p=&nA;/*p指向nA*/

q=&fB;/*q指向fB*/

scanf(“%d,%f”, p, q);

*p=nA*(*q);/*将p所指向的元素修改为nA*(*q)*/

printf(“nA is %d, p is %d and *p is %d\n”, nA, p,*p);

printf(“fB is %f, q is %d and *q is %f\n”, fB, q,*q);

printf(“p+1=%u q+1=%u\n”,p+1,q+1);

return 0;

}

测试:输入10,2.0

10,2.0

nA is 20, p is 65470 and *p is 20

fB is 2.000000, q is 65472 and *q is 2.000000

p+1=65472 q+1=65476

3) 程序段三:

int main(void)

{

int nA,*p,**q,***r;

p=&nA;q=&p;r=&q;

printf(“Please input nA::\n”);

scanf(“%d”,**r);

printf(The results are :”);/* printf(“The results are :”);*/

printf(“nA? value is %d,%d,%d,%d\n”,nA,*p,**q,***r);

printf(“nA,p,q,r?s value is %d,%d,%d,%d\n”,nA,p,q,r);

return 0;

}

(2) 设计一个C语言程序,以测试以下表达式的运算顺序。

2. 想使指针变量pt1指向变量nA和nB中的大者,pt2指向其小者,以下程序能否实现此目的?为什么?如果不行,请给出实现的方法。

void swap(int *pt1,int *pt2)/* void swap(int *p1,int *p2)

*/

{

int *p;

p=p1;p1=p2;p2=p;

}

int main(void)

{

int nA,nB;

int *pt1,*pt2;

scanf(“%d,%d”,&nA,&nB);

pt1=&nA;pt2=&nB;

if (nA

printf(“%d,%d\n”,*pt1,*pt2);

return 0;

}

分析:不能实现,因为此函数swap运行结束之后是swap函数自己的两个指针的指向调换,但是这个动作不会传递到主函数中实际指针参数pt1,pt2,要想实现指针的改变应该如下修改:

void swap(int *p1,int *p2)

{

int p;

p=*p1;*p1=*p2;*p2=p;

}

int main(void)

{

int nA,nB,flag=1;

int *pt1,*pt2;

printf("input two number::");

scanf("%d,%d",&nA,&nB);

pt1=&nA;pt2=&nB;

if (nA

swap(pt1,pt2);

else

flag=-1;

printf("*pt1max=%d,*pt2min=%d,flag=%d\n",*pt1,*pt2,flag);

return 0;

}

3.请仔细分析教材例9-2、9-3、9-6~9-11,上机调试之。记录并分析程序运行结果。

4.请仔细分析并执行以下程序段,并给出输入数据下的运行结果:

int main(void)

{

int fun1();

int fun2();

int fun3();

int fun4();

int (*function[4])();

int nA=10,nB=5,i;

function[0]=fun1;

function[1]=fun2;

function[2]=fun3;

function[3]=fun4;

for (i=0;i<4;i++)

printf(“fun No.%d->%d\n”,i+1,execute(nA,nB,function[i]));

return 0;

}

int execute(int nX,int nY,int *func()) {return ((*func)(nX,nY));}

int fun1(int nX,int nY) {return (nX+nY);}

int fun2(int nX,int nY) {return (nX-nY);}

int fun3(int nX,int nY) {return (nX*nY);}

int fun4(int nX,int nY) {return (nX/nY);}

对如下main()函数,假设源程序名为list.c,则对编译连接后的list.exe程序,在DOS界面运行时输入命令行时,其执行结果是什么?为什么?

/*Second main() program*/

int main(int argc,char *argv[])

{

while (argc 1) printf(“%s\n”,*++argv);

return 0;

}

实验准备:

(1) 编写所选实验题目的程序代码和流程图;

(2) 检查源程序并给出其可能的运行结果说明。

实验步骤:

(1) 上机验证所选题目,并做相应测试和分析;

(2) 进行实验分析;

(3) 总结指针及其程序设计、实现方法和经验;

(4) 编写实验报告。

实验结果:

(1) 根据测试目标写出测试报告;

(2) 测试结果分析说明;

(3) 测试程序代码清单。

实验九结构体和共用体(4学时)

实验目的:

(1) 掌握C语言环境下结构体和共用体类型变量的定义和使用方法;

(2) 掌握结构体类型数组的概念和使用;

(3) 掌握指向结构体变量的指针变量、尤其是链表概念;

实验内容:

1.首先熟悉结构体类型变量的基本声明方法、结构体类型变量的内存分配原则、初始化和引用结构体变量及其成员变量的基本方法;然后掌握结构体变量的输入、输出方法。(参见教材例10-1~10-5)

2.基于结构体数组的应用实验。

(1) 有n个学生,每个学生的数据包括学好(num)、姓名(name[20])、性别(sex)、年龄(age),以及三门课程的成绩(score[3])。要求:在main()函数中输入这些学生的这些数据,然后设计一个函数count()来计算每个学生的总分和平均分,最后,打印出所有数据信息(包含原来输入的学生原始数据信息和求解出来的新信息)。

(2)对第(1)题实验,求出其中成绩最好的人和成绩最差的人,并显示出来。(假定成绩最好和最差的人都只有一个)

(3)*如果假定成绩最好和最差的人的个数不一定唯一,程序应该如何修改才能完成求出所有最好和最差者,以及输出它们来。

3.*链表实验。

(1) 建立一个链表,每个结点包含:职工号、工资。用malloc()函数开辟新结点,用free()函数回收不用的结点空间。要求从键盘输入5个员工的数据信息(用

create_list()),然后,用函数output_list()将它们一一打印出来,用free_list()将链表中的结点空间回收。假设职工编号为1001,1005,1008,1010,1101。

注:malloc()和free()为系统函数。create_list(),output_list(),free_list()为用户自定义函数。

(2)在(1)的基础上,新增一个函数inset_node()插入员工1006和1032的数据信息。要求新插入的员工后,员工仍然按职工号顺序排列。

(3) 在(2)的基础上,新增一个函数delete_node(),可以用来将指定员工的数据从链表中删除。

(4) 在(3)的基础上,增加回收所删除结点所占内存空间的功能。

(5)*如何查看和测试链表中结点的内存空间地址?能否由此分析(1)、(2)、(3)中链表结点的逻辑结构?

实验准备:

(1) 复习有关结构体方面的所有知识,尤其是10-3-4节所学的动态存储分配技术;

(2) 编写所选实验题目的程序代码和流程图;

(3) 检查源程序并给出其可能的运行结果说明。

实验步骤:

(1) 上机验证所选题目的程序设计结果,并做相应测试和分析;

(2) 进行实验分析;

(3) 总结结构体程序设计和实现的基本方法及其经验,尤其是链表技术;

(4) 编写实验报告。

实验结果:

(1) 根据测试目标写出测试报告;

(2) 测试结果分析说明;

(3) 测试程序代码清单。

实验十位运算和文件操作(2学时)

实验目的:

(1) 掌握位运算的基本概念和方法,以及有关位运算的常见算法和基本应用;

(2) 掌握文件和文件指针概念,以及文件的一般定义、操作方法。在此基础上了解有关文件的基本应用并熟悉相关函数。

注:重点掌握缓冲文件系统的操作和运用,在此基础上了解和熟悉文件的顺序

读写和随机读写方法。

实验内容:

1.熟悉位运算的基本操作方法。(以教材例11-1为基础)

2. 了解和熟悉位运算的基本应用。(以教材例11-2~11-6为基础)

3.熟悉文件操作的基本步骤。(以例12-1~12-7为基础)

4.了解文件的读、写函数的使用方法。(以例12-8~12-10为基础)

实验准备:

(1) 复习有关位运算和文件操作的基本知识;

(2) 仔细分析教材所提供的各程序实例及其可能执行结果;

实验步骤:

(1) 上机执行各实例程序,并做相应测试和分析;

(2) 总结基于位运算的程序设计特点及其可能的应用领域;总结文件的基本结构及其操作步骤,以及应用文件的主要问题领域。

(3) 编写实验报告。

实验结果:

(1) 根据测试目标写出测试报告;

(2) 测试结果分析说明;

(3) 测试程序代码清单。

补充:

1. Ken Thompson(计算机科学家、UNIX的鼻祖、C语言创始人之一)在1983年度ACM的TM奖颁奖大会上所陈述的其曾经编写过的最精练的C语言程序段。请分析

该程序段的功能,并上机验证之。

char s[]={

…\t?,

…0?,

…\n?,

…}?,

…;?,

…\n?,

…\n?,

…/?,

…*?,

…\n?,

}; /*其中,最后的0以前有213行被删除*/

int main()

{

c语言实验答案

c语言实验答案

//1.1编写一程序,在屏幕上输出如下内容:// X | X | X //---+---+--- // | | //---+---+--- // 0 | 0 | 0 #include void main() { printf(" X | X | X\n"); //注意转义字符\n的用法 printf("---+---+---\n "); printf(" | |\n"); printf("---+---+---\n "); printf(" 0 | 0 | 0\n"); } //1.2输出"Hello world!"语句 #include void main() { printf("Hello world!\n"); } //2.1编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。 //注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。 //多使用几组整数尝试一下,你发现了什么?//The program gets two integers,and

computes their sum,difference,produc t and quotient. //The first number:<第一个整数在此输入> //The second number:<第二个整数在此输入> //Results as follows: //<第一个整数>+<第二个整数>=<和> //<第一个整数>-<第二个整数>=<差> //<第一个整数>*<第二个整数>=<积> //<第一个整数>/<第二个整数>=<商> #include void main() { int a,b; printf("The program gets two integers,and computes their sum,difference,produc t and quotient.\n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=% d\n",a,b,a+b); printf("%d-%d=% d\n",a,b,a-b); printf("%d*%d=% d\n",a,b,a*b); printf("%d+%d=% f\n",a,b,1.0*a/b); //做除法时要注意,除得的

C语言程序设计实验手册

实验手册使用及要求 实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。现将实验报告撰写的有关内容说明如下: 1、实验前按实验要求手写程序或程序填空,并走查代码,有疑问处标记, 上机时在C语言集成开发环境下输入并调试手写程序,分析运行结果。 实验结束后填写通过后的源程序和对实验的总结。 通过后的源程序可以手写也可以打印粘贴。 实验项目一览表

实验一熟悉C语言编程环境 实验目的: 1.熟悉C语言编程环境(VC++、Cfree、等) 2.了解C程序的基本框架 3.理解程序调试的思想,能找出并改正C程序中的错误 实验内容: 建立自己的文件夹:在磁盘上建立一个文件夹,用于存放自己的C程序 编程示例 在屏幕上显示一个短句“Programming in C is fun!”(教师示例,学生模仿并创新,如输出汉字、特除字符等。学会使用编程环境VC++,启动、编辑、编译、运行、保存、关闭、打开) 编程 在屏幕上显示如下网格。 +---+---+ | | | | | | +---+---+ 调试示例 改正下列程序中的错误,在屏幕上显示“Welcome to You !”。(掌握找错、改错的方法) 源程序: # include <> int mian(void) { printf(Welcome to You! \n") getchar(); return 0; } 注:需要修改的语句直接在程序上标注并修改 实验总结:

实验二用C语言编写简单程序 实验目的: 1.掌握算术表达式和赋值表达式的使用 2.掌握基本输出函数的使用 3.能够自己编程实现简单的数据处理 4. 熟练掌握简单if语句使用 5. 熟练掌握for语句的使用 6. 掌握简单C程序的查错方法、单步调试 实验内容: 调试以下程序,求华氏温度对应的摄氏温度。计算公式为:C=5*(f-32)/9 #include <> int main(void) { int celsius; fahr; scanf("%d ",fahr); celsius = 5 * (fahr - 32) / 9; printf("fahr = d, celsius = %d\n", fahr, celsius); return 0; } 注:需要修改的语句直接在程序上标注并修改 编写程序计算定期存款本利之和: 设银行定期存款的年利率rate为%,并已知存款期为n年,存款本金为capital 元,试编程计算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由键盘输入,输出时保留两位小数。计算公式为:deposit=capital(1+rate)n

C语言实验指导书

《C语言》实验指导书 2016年10月

实验一C程序得运行环境与运行方法 一、实验目得 1。掌握所用得C语言环境得基本操作方法、 2.掌握编辑、编译、连接与运行C程序。 二、实验内容与要求 1、学习使用Visual C++6.0环境开发C程序。 (1)在磁盘上建立自己得文件夹,用于存放C程序,如“e:\cexam”。 (2)启动Visual C++6。0、执行“开始”-—“所有程序”——“Microsoft Visual Studio 6。0"——“Microsoft Visual Studio 6.0”命令,进入VC++编程环境,如图1 所示。 图1 MicrosoftVisual Studio6、0窗口 (3)新建C 程序文件。 执行“文件”——“新建”命令,单击如图2所示得“文件”选项卡,选中“C++So urceFile”;

图 2 新建文件 在“文件”文本框中输入文件名test1, 则C源程序被命名为test1。cpp,若想指定扩展名为.c,则需在“文件”文本框中输入文件名test1.c;在“目录”下拉列表框选择已经建立得文件夹,如,单击“确定”按钮,就新建了C源程序文件,并显示编辑窗口与信息窗口,如图3所示,然后在编辑窗口中输入程序。 (4)保存程序。 在如图3得界面输入程序代码。由于完全就是Windows 界面,输入及修改可借助鼠标与菜单进行,十分方便。当输入结束后,执行“文件”——“保存”命令,保存源文件。 图3编辑源程序(5)编译程序。信息窗口编辑窗口

执行“组建”--“编译[test1、cpp]”命令,弹出消息框,如图4所示,单击“就是"按钮,开始编译,并在信息窗口中显示编译信息。如果信息窗口中显示“test1.obj-0error(s),0 warning(s)",表示编译正确,没有发现错误与警告,并生成了目标文件test1、obj、 图4产生工作区消息框 如果显示错误信息,说明程序中存在严重得错误,必须改正,双击某行出错信息,程序窗口中会指示对应出错位置,根据信息窗口得提示分别予以纠正;如果显示警告信息,说明这些错误并未影响目标文件得生成,但通常也应该改正。 (6)连接程序。 执行“组建”——“组建[test1.exe]”命令,开始连接,并在信息窗口中显示连接信息、如果信息窗口中出现“test1.exe—0 error(s),0 warning(s)”,表示连接成功, 并生成了可执行文件test1、exe。 (7)运行程序。 执行“组建"——“执行[test1、exe]”命令,自动弹出运行窗口,如图5所示,显示运行结果。其中“Pressany key to continue”提示用户按任意键退出运行窗口,返回到VC++编辑窗口。 图 5 显示运行结果 (8)关闭程序工作区。 当一个程序编译连接后,VC++系统自动产生相应得工作区,以完成程序得运行与调试。若想执行第二个程序时,必须关闭前一个程序得工作区,然后通过新得编译连接,产生第二个程序得工作区。否则得话运行得将一直就是前一个程序。 执行“文件"--“关闭工作区命令",弹出得对话框如图 6所示,单击“就是”按钮,关闭工作区。 图 6 关闭所有文档窗口 (9)打开文件、 如果要再次打开C源文件,可以执行“文件”——“打开”命令,在查找范围中找到

《C语言》实验指导书

内江职业技术学院 上机实验指导书 科目:C语言程序设计 系别:电商学院 班级:15软件1班 教师:王刚 2015—2016学年第一学期

《计算机基础》课程实验指导书 目录 实验一C语言概述 (1) 实验二基本数据类型 (3) 实验三输入输出和算法 (6) 实验四选择和循环结构 (10) 实验五循环结构和函数 (13) 实验六模块化设计 (14) 实验七一维数组和字符串 (18) 实验八多维数组和指针 (20) 实验九指针 (22) 实验十指针和结构体 (23) 实验十一链表和共同体 (26) 实验十二文件 (27) 教材和参考书 1、教材: 《谭浩强、张基温,《C/C++程序设计教程》,高等教育出版社。 2、参考书: (1)《(美)H.M.Deitel,P.J.Deitel著,薛万鹏译,《C程序设计教程》,机械工业出版社。 (2)杨路明,《C语言程序设计教程》,北京邮电大学出版社。

实验一C语言概述 一、实验目的 1、了解所用的计算机系统。 2、了解在该系统上如何进行编辑、编译、连接和运行一个C程序。 3、通过运行简单的C程序了解C程序的特点。 二、实验内容 1、熟悉C语言集成环境。 2、利用C语言集成环境进行编辑、编译、连接和运行一个C程序。 3、运行一个自己编写的程序,程序的功能是输出两行文字。 三、实验设备及环境 微机若干台,并安装有C语言软件。 四、实验步骤 1、熟悉所用的系统。了解Windows资源管理器的使用方法:文件的查看、复制、运行等方法,C所在目录,文本文件的建立方法。 2、进入C,并新建一个C源程序文件。 3、熟悉C的集成环境,了解各菜单项有哪些子菜单。 4、输入下面的程序,注意区分大小写。 #include void main() { printf("This is a C program.\n"); } 编译并运行程序。 5、关闭工作区,新建一个程序,然后输入并运行一个需要在运行时输入数据的

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

C语言实验指导56(32+24)

前言 《程序设计语言(C)》课程是面向理工科的非计算机专业计算机基础教学的公共基础课程之一,本课程的任务是向学生介绍计算机程序设计的基本知识,使学生能够比较熟练地掌握C语言的语法规则及程序设计的基本方法与编程技巧,了解进行科学计算的一般思路。与课程配套的上机实验,是为培养学生应用计算机解决和处理实际问题的思维方法与基本能力,并初步积累编程经验,自己解决一些比较简单的程序课题,为结合本专业课程进一步学习和应用计算机打下基础。 要使实验达到应有的效果,在上机实验之前,必须知道本次实验的任务,根据实验任务,做好充分准备工作,只有这样才能做到目的明确,使实验达到应有的效果。上机前的准备工作包括以下几个方面: 1.复习和掌握与本次实验有关的教学内容; 2.根据实验的内容,对问题进行认真的分析,搞清楚要解决什么问题; 3.选用或设计适用的算法,编写程序代码。 上机实验结束后要撰写实验报告,实验报告的主要内容应包括如下几个方面: 1.实验目的 明确实验目的,以保证达到课程所指定的基本要求。在写实验报告时,要进一步确认是否达到了预期的目的。 2.实验内容 实验的目的是要通过解决一些具体问题来达到的。在实验报告中,实验内容是指本次实验中实际完成的内容。在每一个实验题目中,一般都提出一些具体要求,其中有些具体要求是为了达到实验目的而提出的,不仅有具体的实验题目,还应包括具体要求。 3.程序设计说明 包括程序功能说明、程序算法描述、程序代码设计(含完整代码)、程序运行、测试、运行结果分析。 上机实验编写程序代码时要养成良好的程序设计风格, 在上机输入源程序时要按照附录中“C语言编码规范”的要求来编写源代码文件。 按大纲要求,本实验指导共有12个实验,每个实验需要两个学时,共需24个学时。 2013-1-12 . i .

C语言实验报告参考答案原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include<> main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include<> main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

C语言实验指导书

《C语言程序设计》实验指导书 每次实验(10分)一共100分,最后折合成50分计入最终成绩。 第一次实验(一星期完成) ●内容一:熟悉编译环境和工具 在VS中键入以下的这段程序 1)关键字变色,自动缩近,智能提醒 2)代码风格和注释 3)编译出错,连接出错。修改错误 4)调试,断点,监控变量,进入函数,跳出函数。监控内存,监控堆栈 在linux中键入以下这段程序 1)熟悉VIM程序,gcc编译程序(开两个终端窗口) 2)熟悉GDB调试程序的基本技巧。(list,backstrac; break, watch,delete; next, continue, run; print,set,help) 其中,help命令是一个非常的参考,如果忘记了某条具体的命令,可以随时去参考help命令来得到相关的细节。 3)介绍《鸟歌的私房菜》这本书 ●内容二:登陆https://www.doczj.com/doc/da4163855.html,网站,在线提交。 1)熟悉基本的提交方法和规则 2)现场演示反作弊程序的效果 ●程序: 输入:两个整数,用空格分隔, 输出:两个整数的和,计算两个整数的和的功能,要求用函数实现,同时如果输入有错误,例如(12 abc)程序能够给出“error input”的提示。 参考输入: 12 33 参考输出: 45 参考输入: 12 abc 参考输出:

error input ●思考和扩展(无标准答案) 如果用户输入12 12abc 如何判断并终止程序,输出“error input”的提示 第二次实验(一星期完成) ●内容一:登陆ACM,演示OJ系统 1)介绍这个网站,有兴趣的同学可以去尝试一下() ●内容二:计算工资/小时程序 1)强制类型转换 2)一共有多少位的算法 3)整形数的溢出,以及针对特定问题,如何解决溢出问题 注意:linux编译下应该加上–lm 开关。 ●程序: 输入:工资数,小时数(整数,空格分隔)。 输出:工资/小时数(精确到小数点后2位),并根据四舍五入取整,然后将取整的数平方后计算一共有几位,后三位分别是什么? 参考输入: 2345 2 ←input (separate by space) 参考输出: 1172.50 ←average salary 1173 ← round off to integer 7 ← number of digit 0 2 5 ← the last three digit (separate by space) 第三次实验(两星期完成) ●内容一:介绍linux 下的grep,并给出相应的实例。重点介绍下面要用到的四个符号。 ●内容二:正则表达式 ^ 代表字符串开始 . 代表任意字符 $ 代表字符串末尾

C语言实验指导(2017) (2)

《C 语言程序设计》实验指导 书 计算机科学与技术系 项响琴编

第一部分:《C语言程序设计》实验教学大纲 课程编号:041310107 课程名称:程序设计语言Ⅰ 总学分:2.5 总学负荷:70 自主学习:57 课内实验学时:35 一、本实验课的性质、任务与目的 本实验课目的是使学生掌握C语言编程的常用方法,熟悉该语言中的语法、词法规则,为以后进行软件开发和学习后继专业课程打下基础。通过学习能够运用 C 语言中的各个知识点编写能完成一定功能的程序。训练学生进行复杂程序设计的技能和培养良好程序设计的习惯,其重要程度决不亚于知识的传授。把高级语言的学习与程序设计、上机实践紧密地结合起来,以提高学生能灵活运用新的知识分析问题和解决问题的能力。 二、本实验课所依据的课程基本理论 本实验课基于 C 语言的语法和词法规则、数据的表示及算法的处理,而语法及算法正是高级语言程序设计的主要研究对象。《C 语言程序设计》的主要任务是:C 语言是一种应用广泛结构化程序设计语言,本课程介绍 C 语言的基本概念、基本语法和编程方法,重点描述 C 语言的结构化的特征,并通过本课程的学习,使学生掌握一定的结构化程序设计的知识,以及用C语言编写程序的能力。 三、实验类型与要求 在做每个实验之前,让学生对本次实验相关的内容进行复习、算法设计、流程图的设计,做好实验的准备工作。每一次实验内容和具体要求见实验任务书。

四、每组人数与实验学时数 实验每组1人。 五、考核方式与评分办法 课内实验成绩=出勤率*5%+实验报告*15%+平时表现*30%+现场答辩 *50% 自主实验成绩=实验代码*30%+现场答辩*50%+实验报告*20% 六、实验报告要求 1、实验报告编写要求: 实验报告格式规范,要求在w ord 中编写,文中不要有空行,统一使用A4 页面。 页边距:上下 2.5cm、下 2cm、左 2.5cm、右 2cm。标题:宋体、四号字、加粗、 1.5 倍行距。 正文:宋体、小四号字、1.2 倍行距。 流程图或框架图:绘图要规范,整洁。 2、实验报告内容 (1)实验目的与要求 (2)实验内容(实验题目、程序思路分析与流程图、程序源代码、实验测试数据、实验运行结果截图) (3)实验分析与小结(本小组实验过程中的出现的问题、产生的原因、解决方法以及未能解决的问题;实验结果分析;代码有待优化的思路) (4)其它(对本课程教学的建议或意见、与专业课学习及其它)

c语言实验习题及答案详解

1.数据类型 a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;, #include<> main() {double b,d; printf("请输入一个小数:"); scanf("%lf",&b); printf("输出原来的数:%f\n",b); b*=1000; b+=; b=(int)b; d=b/1000; printf("输出现在的数:%.3lf\n0",d); } b.输入一个4位整数,求其得各位数字的平方和;(1234 1+4+9+16=30) #include<> main() {int n,sum=0,i,t; printf("请输入一个四位整数:\n"); scanf("%d",&n); for(i=0;i<4;i++) {t=n%10; n/=10; sum+=t*t; } printf("%d\n",sum);

} c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码; #include<> main() {char ch; ch='A'; ch=65; ch=0x41; ch=0101; ch='\101'; ch='\x41'; } d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz) #include<> main() {int i; for(i=65;i<91;i++) {printf("%c",i); printf("%c",i+32); } printf("\n"); } e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次 #include<> main() { double f1,f2; f1=10e-30;

:C语言实验报告册-2016.3资料

学生实验报告册 (理工类) 课程名称:C语言程序设计实验专业班级: 16数字媒体技术学生学号: 1613031008 学生姓名:李翔 所属院部:计算机工程学院指导教师:吕艳林 20 16 ——20 17 学年第一学期 金陵科技学院教务处制

实验报告书写要求 实验报告上交电子稿,标题采用四号黑体,正文采用小四号宋体,单倍行距。 实验报告书写说明 实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。

实验项目名称:初级程序设计实验学时: 6 实验地点: A107 实验日期: 2016年10月13,20,27 实验成绩: 批改教师:批改时间:

实验1 初级程序设计 一、实验目的和要求 (1)熟悉Visual C++集成环境,进行编辑、保存、编译、连接及运行,并能进行简单程序调试; (2)掌握C语言中各种运算符的使用; (3)掌握C语言中各种数据类型的区别与应用; (4)熟练掌握C语言中变量的定义、赋值和使用,表达式语句、输入/输出语句的使用; (5)掌握C语言中输入/输出函数的使用; (6)掌握C语言中控制语句的使用,含if-else、for、while、do-while语句的使用。 二、实验仪器和设备 奔腾以上计算机,装有windows XP以上版本操作系统和Visual C++ 6.0软件。 三、实验内容与过程 1、程序调试 (1)#include main() { int s,t,p,sum; scanf(“%d%d%d”,&s,&t,&p); sum=s+t+p; printf(“sum=%d\n”,sum); } (2)#include main() { int k=3; if(k=3) printf(“***”); else printf(“###”); } (3)#include main() {int k=0; do { printf(“k=%d\n”,k); }while(k++>0); } 2、程序改错

C语言实验指导书

C语言程序设计实验指导书 沈岚岚吕元长编写 桂林电子科技大学信息科技学院 2012.03

前言上机实验的目的和要求 一上机实验的目的 上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所编程序正确与否。学习程序语言,上机实验的目的如下: 1 加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,通过多次上机,就能自然、熟练地掌握语法规定。 2 了解和熟悉C语言程序开发环境。熟悉一两种环境(计算机系统的软件和硬件条件),再遇到其他的系统时便会触类旁通,很快学会。 3 学会上机调试程序,也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能够正确地运行。要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,而且要求自己动手实践能力强。 4 在做实验时千万不要在程序通过后就认为万事大吉,完成任务了,应当在通过的程序上做一些调试和修改,看看会得到什么结果。多动脑筋思考,将会对你有很大帮助。 二上机实验前的准备工作 1 了解所用的计算机系统的性能和使用方法; 2 复习和掌握与本实验有关的教学内容; 3 准备好上机所用的程序,切忌自己不思考、不编制程序或抄袭别人的程序; 4 准备好调试和运行时所需的数据。 三上机实验的步骤 1 调出C语言编译系统,进入C语言工作环境; 2 输入自己编制好的程序; 3 检查输入是否有错,及时更正; 4 进行编译和连接; 5 运行程序,分析结果。 四、实验结束,整理实验报告 实验报告应包括以下内容: 1 上机题目; 2 程序清单; 3 运行结果; 4 对结果的分析和本次获得的经验和体会。

C语言程序设计实验实验指导书及答案

实验一熟悉C程序运行环境 班级学号成绩 一、实验目的 1. 熟悉C语言Visual C++6.0调试环境。 2. 掌握C程序的编辑、调试及运行。 二、实验内容 项目1. 调试并运行下面程序,并写出运行结果: #include int main() { printf(“Good morning!\n”); printf(“Hello,world!\n”); return 0; } 运行结果(注意,按照屏幕输出格式写): 项目2. 调试并运行下面程序,并写出运行结果: #include int main() { int a , b , sum; /*定义变量*/ a=23; b=56; /*为变量赋值*/ sum=a+b; /*计算两个变量的和*/ printf(“sum is %d\n”,sum); /*输出计算结果*/ return 0; } 运行结果:

项目3. 调试并运行下面程序,并写出运行结果: #include int max(int,int); int main() { int a , b , c; /*定义变量*/ a=23; b=56; /*为变量赋值*/ c=max(a,b); /*调用max函数,将得到的值赋给c*/ printf(“max is %d\n”,c); /*输出c的值*/ return 0; } int max(int x,int y) /*定义max函数,函数值为整型*/ { int z; /*定义变量*/ if(x>y) z=x; else z=y; return(z); /*将z的值返回*/ } 运行结果: 三、提高部分 1.试想,如果求10个数中的最大者,则程序该如何编写。 程序代码 运行结果:

C语言实验指导书

实验1 C语言初步与编程环境介绍(2学时) 1.目的要求 1)熟悉C语言基本结构, 2)熟悉VC控制台应用程序设计的使用方法。 2.实验内容 (1)创建项目,分别将教材P13和P14程序输入并编译。 (2)下列程序能正确运行吗?如果能,写出运行结果;如果不能,指出错误原因并改正。 Main() { printf("hello\n"); } 附:VC 6.0 环境的使用方法介绍 Microsoft Visual C++ (简称VC)是微软公司生产的基于其Windows系统的软件开发工具。它具有使用灵活,并与32位Windows内核(使用于Windows 95/98/NT/2000)高度兼容的特点,从而被Windows程序员们广泛使用。同时,VC同样可以加工处理C语言程序,与标准的ANSI C语言兼容。VC提供了一种控制台操作方式,本实验课程主要在控制台方式下进行设计运行。 一、什么是控制台程序? Win32控制台程序(Win32 Console Application)是一类Windows程序,它不使用复杂的图形用户界面,程序与用户交互时通过一个标准的文本窗口,通过标准的输入输出流(I/O Streams)进行。 一个最简单的控制台程序如下: #include // 包含使用标准输入输出库的头文件声明 main() { printf(”Hello World!”); //输出一个字符串 } 二、如何使用MSVC编写控制台程序?

控制台程序按照下面几个步骤进行。 1、打开VC集成开发环境。 双击桌面图标“Microsoft Visual C++ 6.0”,或者从系统菜单“开始”/“程序”/“Microsoft Visual Studio 6.0”/“Microsoft Visual C++ 6.0”(如图1),打开VC 开发环境(如图2)。 图 1 从开始菜单中打开VC开发环境 图 2 VC开发环境界面

C语言实验答案

一1 #include void main() { int iNum; float fNum=134.23; printf("a=%d\tf=%.2f\n",iNum,fNum); } 一2 #include void main() { int a,b,c,sum=0; scanf("a=%d,%d%d",&a,&b,&c); sum=a+b+c; printf("a=%d,b=%d,c=%d\n",a,b,c); printf("sum=%d\n",sum); } 一3

#include void main() { char a,b; scanf("%3c%4c",&a,&b); printf("c1=%c,c2=%c\n",a+1,b-1); } 一4 #include #include void main() { float a; printf("Enter a:"); scanf("%f",&a); printf("The original data is:%f\n\n",a); printf("h=%.2f\n",a); }

一5 #include void main() { int a,b,c,s,e; printf("Please input two numbers:\n"); scanf("%d%d",&a,&b); c=a+b; s=c*c; e=s+s; printf("%d,%d,%d\n",c,s,e); } 一6 #include void main() { float a,b; printf("input a:"); scanf("%f",&a); b=5*(a-32)/9; printf("%.0f(℉)=%.2f(℃)\n",a,b);

C语言程序设计实验-答案

-前言- /*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。 本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。为回报度娘及众网友的帮助,本文档免费下载。 */ /*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*/ /*努力吧,骚年以及学妹们!*/ /*整理ed by 口玉刀一of GUET.*/ ===================== 实验一C语言程序初步 ===================== 1.---------------------------- 已知a=5,b=4,c=6,求出s并换行 #include"stdio.h" main() { int a,b,c,s; a=5;b=4;c=6; s=(a+b+c)/3; printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s); } 2.------------------------------- 输入一个数字求他的平方 #include main() { int r,s; scanf("%d",&r); s=r*r; printf("s=%d\n",s); } 3.-------------------------------- (1) #include main() { printf(" *\n"); printf("***\n"); printf(" *\n"); } (2) #include

{ int v; int a,b,c; //a,b,c aer sides,v is volume of cube a=3;b=3;c=5; v=a*b*c; printf("v=%d\n",v); } ================================= 实验二数据类型、运算符和表达式 ================================= 1. (1)-------------------------------------------------- //总觉得打印结果怪怪的,DO YOU THINK SO? main() { char s1='3',s2='4',s3='5'; int c1=101,c2=102; printf("3%c\t4%c\t5%c\n",s1,s2,s3); //3%c为输出3和%c printf("s1=%d\ts2=%d\ts3=%d\n",s1,s2,s3);//注意哦,s1,s2,s3是char!而%d:输入输出为整形%ld 长整型%hd 短整型%hu无符号整形%u %lu%s:输入输出为字符串%c字符%f:输入输出为浮点型%lf双精度浮点型printf("c1=%d\t~%c\n",c1,c1); //换码符'\t',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置 printf("c2=%d\t~%c\n",c2,c2); //注意c1,c2的类型 } (2) //运行结果为8.300000 %是求余数先运算x-y,把结果转换为int型的有利于四则运算 main() { float x=8.3,y=4.2,s; int a=7; s=x+a%5*(int)(x-y)%2/3; printf("s=%f",s); }

《C语言程序设计》上机实验指导手册

C语言程序设计 上机实验指导手册 电子与信息工程学院 计算机科学系

第一部分上机实验的指导思想和要求 一、上机实验的目的 学习《C语言程序设计》课程不能满足于“懂得了”,满足于了解了语法和能看懂书上的程序,而应当掌握程序设计的全过程,即能独立编写出源程序,独立上机调试程序,独立运行程序和分析结果。 “程序设计”是一门实践性很强的课程,必须十分重视实践环节。许多实际的知识不是靠听课和看书学到手的,而是通过长时间的实践积累的。要提倡通过实践去掌握知识的方法。必须保证有足够的上机实验时间,学习本课程应该至少有30 小时的上机时间,最好能做到与授课时间之比为1:1 。除了学校规定的上机实验以外,应当提倡学生自己课余抽时间多上机实践。 上机实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编的程序正确与否。学习程序设计,上机实验的目的是: (1)加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,但它们是很重要的,初学者的程序出错往往错在语法上。通过多次上机,就能自然地、熟练地掌握。通过上机来掌握语法规则是行之有效的方法。 (2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉C语言程序开发的环境。一个程序必须在一定的外部环境下才能运行,所谓“环境”,就是指所用的计算机系统的硬件和软件条件,或者说是工作平台。使用者应该了解为了运行一个C程序需要哪些必要的外部条件(例如硬件配置、软件配置),可以利用哪些系统的功能来帮助自己开发程序。每一种计算机系统的功能和操作方法不完全相同,但只要熟练掌握一两种计算机系统的使用,再遇到其他系统时便会触类旁通,很快就能学会。 (3)学会上机调试程序。也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。经验丰富的人,在编译连接过程中出现“出错信息”时,一般能很快地判断出错误所在,并改正之。而缺乏经验的人即使在明确的“出错提示”下也往往找不出错误而求助于别人。要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,还要求自己动手实现。对程序设计来说,则要求会编程序并上机调试通过。因此调试程序不仅是得到正确程序的一种手段,而且它本身就是程序设计课程的一个重要的内容和基本要求,应给予充分的重视。调试程序固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来累积经验,而且有些经验是只能“会意”难以“言传”。别人的经验不能代替自己的经验。调试程序的能力是每个程序设计人员应当掌握的一项基本功。 因此,在做实验时千万不要在程序通过后就认为万事大吉、完成任务了,而应当在己通过的程序基础上作一些改动(例如修改一些参数、增加程序的一些功能、改变某些语句、改变输入数据的方法等),再进行编译、连接和运行。甚至于“自设障碍”,即把正确的程序改为有错的(例如语句漏写分号;用scanf函数输入变量时,漏写“&”符号;比较符“= =”错写为赋值号“=”;使数组下标出界;使整数溢出等),观察和分析所出现的情况。这样的学习才会有真正的收获,是灵活主动的学习而不是呆板被动的学习。 二、上机实验前的准备工作 在上机实验前应事先做好准备工作,以提高上机实验的效率,准备工作至少应包括: (1)了解所用的计算机系统(包括C编译系统和工作平台)的性能和使用方法; (2)复习和掌握与本实验有关的教学内容; (3)准备好上机所需的程序。由于计算机实验室给每个学生安排的时间是有限的,要珍惜时间,充分利用。应当在上机前按指定的题目编写好程序。手编程序应书写整齐,并经人工检查无误后才能上机,以提高上机效率。初学者切忌不编程序或抄别人程序去上机,应从一开始就养成严谨的科学作风; (4)对运行中可能出现的问题事先作出估计,对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意; (5)准备好调试和运行时所需的数据。 三、上机实验的步骤 上机实验时一人一组,独立上机,复杂分组进行,相互讨论完成任务。上机过程中出现的问题,除了是系统的问题以外,一般应自己独立处理,不要轻易举手问教师。尤其对“出错信息”,应善于自己分析判断。这是学习调试程序的良好机会。 上机实验一般应包括以下几个步骤: (1)进入C工作环境(Dev-C++ 5.8.3)。 (2)输入自己所编好的程序。 (3)检查一遍已输入的程序是否有错(包括输入时打错的和编程中的错误),如发现有错,及时改正。 (4)进行编译和连接。如果在编译和连接过程中发现错误,屏幕上会出现“出错信息”,根据提示找到出错位置和原因,加以改正。再进行编译……,如此反复直到顺利通过编译和连接为止。 (5)运行程序并分析运行结果是否合理和正确。在运行时要注意当输入不同数据时所得到的结果是否正确。 (6)输出程序清单和运行结果。 四、实验验收 (1)现场验收,学生讲解、提问、答辩的方式,通过三方面的表现给出实验成绩; (2)提交程序清单(电子版)。

相关主题
文本预览
相关文档 最新文档