C语言程序设计实验指导教程pdf/doc/txt格式电子书下载
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询
书名:C语言程序设计实验指导教程pdf/doc/txt格式电子书下载
推荐语:
作者:陈家俊,卢清平,杨洋等编
出版社:人民邮电出版社
出版时间:2017-08-01
书籍编号:30509946
ISBN:9787115456977
正文语种:中文
字数:131570
版次:1
所属分类:教材教辅-大学
版权信息
书名:C语言程序设计实验指导教程
作者:陈家俊 卢清平 杨洋
出版社:人民邮电出版社
出版日期:2017-08-01
ISBN:9787115456977
版权所有 · 侵权必究
内容提要
本书是《C语言程序设计教程》的配套实验指导教材。全书分为3部分,第1部分为课程实验总体要求,第2部分为实验指导,第3部分为《C语言程序设计教程》习题及参考答案。
课程实验指导部分安排了14个实验。为了满足不同层次学生学习的需要,每个实验列出了实验目的、实验指导、基础实验和提高实验,教师可在学生实验之前先通过实验指导帮助学生理解和把握本次实验的知识要点,然后根据学生知识层次选择基础实验或提高实验内容。通过实验,学生可较快地掌握C语言的基础知识、分支结构程序设计、循环结构程序设计、数组应用程序设计、函数调用程序设计、指针应用程序设计、结构体和文件应用程序设计的方法。
本书可作为大学本科和高等专科院校C语言程序设计的实验指导教材,也可作为计算机程序设计初学者的自学参考书。
前言
程序设计技术和程序设计语言是大学计算机基础系列课程中的重要组成部分, C语言程序设计课程是一门重要的计算机基础必修课程。程序设计课程的主要任务是培养学生使用计算机的逻辑思维能力和基本的程序设计能力。通过C语言程序设计课程的学习,学生能为今后进一步学习计算机有关课程及用计算机解决实际应用问题打下一个良好的基础。
参加本次教材编写的老师,近年来一直在任担“C语言程序设计”课程的教学工作。大家有一个共识:“C语言程序设计”课程的教学重点应是C语言基本知识及程序设计的基本原理、结构化程序设计方法,其内容主要包括程序设计基本概念、C语言基本数据类型、运算符和表达式,格式化数据输入/输出,控制结构语句、结构化程序开发方法,函数及程序模块化开发,数组、字符串、指针及其应用,结构体应用基础,数据文件的应用基础。
考虑到各类高校大学生的计算机基础知识层次不同及高校各专业对C语言课程人才培养要求的不同,本书以程序设计为主线,以人才层次化培养为导向,以层次化的知识结构组织实验。实验内容包括基础实验或提高实验。题型设计由简到难,供不同知识层次学生选做。由于C语言程序设计课程教学课时有限,同时为了强化学生的逻辑思维及自主学习的能力,在教学过程中,教师特别要把学生在学习过程中经常碰到的难点问题讲解清楚,但应避免例题讲解中对比较复杂的数学问题花费较多的教学时间。
在上述共识的基础上,作者经过多次的商讨,反复修改制订了本《C语言程序设计实验指导教程》的编写大纲,以更好地适应教学,本教程由皖西学院电子与信息工程学院陈家俊、卢清平、杨洋主编。其中,第1部分和第2部分由陈家俊、卢清平编写,第3部分由杨洋和马艳编写,皖西学院电子与信息工程学院部分老师参与了整理和校对工作。
编者
2017年6月
第1部分 C语言程序设计课程实验总体要求
C语言程序设计课程是一门实践性很强的课程,为了培养计算机应用能力,除了课堂理论教学外,读者必须加强程序设计课程实验环节的学习。
1.1 课程实验教学目的
通过C语言程序设计的课程实验教学,学生应具有使用计算机解决相关应用问题的能力,同时为今后学习其他计算机应用课程打下良好的程序设计基础。
1.分析问题和解决问题能力的训练
课程实验教学将课本上的理论知识和实际应用有机地结合起来,达到训练学生分析问题和解决实际问题的能力,提高学生应用计算机知识开发应用系统的综合能力。
2.逻辑思维能力的训练
通过课程实验教学,学生能正确地掌握C语言的基本知识,较好掌握基本的程序算法及描述方法。实验教学培养了学生在程序设计解题思路、算法的描述、编程构思等各方面的计算机逻辑思维能力。
3.程序设计技能的训练
通过C语言环境下的应用实例,学生能训练编写程序的能力,掌握编程的思路和方法,掌握结构化程序设计的基本概念和基本技能。
通过课程实验教学,学生掌握C程序设计语言的语法规则、数据结构的应用,掌握算法描述及相应代码描述,掌握结构化程序设计的基本方法,能熟练编写一般的应用程序。
1.2 课程实验教学要求
1.要求通过解题、程序设计和上机实践,加深对所学概念的理解,提倡理论与实践相结合的学习方法。
2.要求学生认真进行解题分析,掌握算法描述方法,掌握编程基本技能。通过布置具有一定数量程序设计题目,帮助学生逐步熟悉编写程序的方法,并适当布置一些有难度的程序设计题目,提高程序设计能力。
3.要求学生在课程实验中,努力培养发现程序错误、纠正程序错误的能力,独立完成每一次课程实验,提高编程的效率和成功率。
4.要求学生在完成课程实验规定的任务外,利用课余的时间多编程,多上机实践。反对抄袭或复制他人的源程序。
5.要求学生培养科学、严谨的学习作风,认真写好实验报告。学生在上机实践前,应事先编写好相应的源程序,准备好有关的调试数据,了解上机操作的步骤和过程,较好地完成每一次上机实验课。为了使学生能真正做到每一次课程实验有收获,做完一个实验后,要求学生必须写出完整的实验报告。C语言课程实验报告内容应包括以下几项。
(1)实验名称、时间、地点。
(2)实验目的要求。
(3)实验内容包括本次课程实验的题目,算法描述,源程序清单,上机调试、运行的操作步骤。
(4)程序运行结果(将源程序保存到软盘上)、课程实验分析和实验小结、心得体会。
1.3 课程实验教学安排
C语言程序设计课程实验,实验1~实验13一般可以安排32~50机时,可以在课内实验之外安排综合性的实验,一般综合性实验12~20学时,进行程序编辑、调试和运行。C语言课程实验教学安排如表1-1所示。
表1-1 课程实验安排表

第2部分 C语言程序设计实验指导
实验1 C语言程序开发环境
1.1 实验目的
1.熟悉C语言程序开发环境。
2.掌握C语言建立、保存、调试运行的基本方法和步骤。
1.2 实验指导
[范例] 下面程序实现在Visual C++ 6.0 IDE环境下输出:This is my first C program!。
/* syfl1-1.c */
# include \"stdio.h\"
void main( )
{
printf(\"This is my first C program!\");
}
实验步骤:
(1)启动Visual C++ 6.0,单击“文件(F)”菜单中的“新建(N)…”子菜单项,系统将弹出“新建”对话框,如图2-1所示。
图2-1
(2)选择新建对话框中的“工程”选项卡,再选中“Win32 Console Application”项,在“工程名(N)”文本框中输入欲建工程名,如SYFL;然后在“位置(C)”文本框中输入欲保存该工程的路径(Visual C++ 6.0 IDE自动将用户输入的工程名作为文件夹名),或是通过单击其右边的按钮,在弹出的“选择目录”对话框中选择保存源文件的路径。
(3)单击“确定”按钮,系统将弹出一个对话框让用户选择建立何种工程。选中“一个空工程(An empty project)”的单选项后并单击“完成”按钮,如图2-2所示。
图2-2
(4)向工程中添加源文件并编辑保存源文件。在下拉菜单——项目(Project)|加到项目(Add to project)中选择新(new)标签,再选择文件(File)标签,选择文件类型为C++Source File,输入源文件名如SYFL1_1.c,选择保存源文件的位置,按确定按钮后将生成一个新的空文件SYFL1_1.c,并出现源文件编辑窗口,在编辑窗口中输入与修改程序代码,完成后可保存源文件,如图2-3和图2-4所示。
图2-3
图2-4
(5)运行项目程序。选择下拉菜单—编译(Build)|开始调试(Start Debug)|运行(Go),对应的快捷方式为F5,将运行项目程序。
1.3 实验内容
【基础实验】
在VC++环境下分别建立以下两个程序文件并调试运行,记录下调试过程和运行结果,由此熟悉VC++环境的使用方法和实验基本步骤。
/* 程序e101.c */
#include\"stdio.h\"
main()
{
printf(\"Hello!\\n\");
printf(\"Hello,vc++!\");
printf(\"Hello,everyone!\\n\");
}
/* 程序e102.c */
#include \"stdio.h\"
main()
{
int a,b;
a=8;
b=2000; printf(\"%d\\n\",a+b);
}
【提高实验】
1.运行以下程序,查看运行结果。
/* 程序e103.c */
#include\"stdio.h\"
main()
{
int a,b;
printf(\"Input a,b:\");
scanf(\"%d%d\",&a,&b);
printf(\"a+b=%d\\n\",a+b);
}
2.编写程序实现:从键盘输入3个整数,求这3个整数的平均值。
1.4 实验小结
1.学生在输入编辑程序的过程中难免出现一些差错,可能影响到编译时不能通过。如果出现ERROR或者WARNING,教师可以教学生阅读相关的错误提示语句,提高学生的纠错能力。
2.教师可根据学生的层次水平,从【基础实验】和【提高实验】中有选择的要求学生写出实验报告,实验报告要求如下。
(1)记录C程序在上机调试运行时出现的各种问题及其解决方法。
(2)简明扼要地写出在调试运行一个C程序时的完整步骤。
(3)总结本次实验的经验与教训。
实验2 基本数据类型与表达式
2.1 实验目的
1.熟悉C语言基本语法结构。
2.掌握C语言基本数据类型及其数据类型变量的定义和使用。
3.掌握不同数据类型运算时,数据类型的转换。
4.掌握赋值语句。
2.2 实验指导
[范例1] 输入、编辑并运行以下程序。
main ( )
{
char c1, c2;
c1=97; c2=98;
printf(\"%c,%c \\n\",c1 ,c2);
}
(1)在程序中加入以下printf语句:
printf(\"%d,%d\\n\",c1,c2);
(2)将程序第3行改为如下语句并运行。
int c1, c2;
(3)将程序第4行改为:
c1=300; c2=400;
运行程序,分别写出3次的运行结果。
[范例2] 运行下列程序,观察其执行结果,并思考为什么?若把最后一个语句(++x,y++)外的括号去掉,程序还要做何修改?
#include <stdio.h>
main( )
{
int y=4,x=6,z=2;
printf(\"%d %d %d\\n\",++y,--x,z++);
printf(\"%d %d\\n\",(++x,y++),z+2);
}
2.3 实验内容
【基础实验】
1.在VC++集成环境下调试运行以下源文件,注意程序中实型数据和赋值语句的使用。
/* 程序e201.c */
#define PI 3.14159 /* 定义符号常量PI */
main()
{
float r=16.7; /* 定义变量r并赋初值 */
float l,s; /* 定义圆周长和圆面积的变量 */
l=2*PI*r; /* 计算圆周长 */
s=PI*r*r; /* 计算圆面积 */
printf(\"L=%f S=%f\\n\",l,s); /* 输出圆周长、面积的计算结果 */
}
输出结果为:
______
/* 程序e202.c */
main()
{
float r,s; /* 定义浮点型变量r,s */
r=2.769; /* 为r赋实数值 */
s=3.1416*r*r; /* 计算实数表达式的值,然后赋值给s */
printf(\"s=%f\\n\",s); /* 输出浮点型变量s的值 */
}
输出结果为:
______
2.在VC++集成环境下建立e203.c、e204.c源文件,调试运行并写出运行结果,注意程序中字符型数据使用以及字符型变量与整数的关系。
/* 程序e203.c */
main()
{ char ch1=\'A\';
char ch2;
ch2=\'a\';
printf(\"%c,%c\\n\",ch1,ch2); }
输出结果为:
______
/* 程序e204.c */
main()
{ char ch;
int i;
ch=\'A\';
ch=ch+32;
i=ch;
printf(\"%d is %c\\n\",ch, i );
printf(\"%c is %d\\n\",ch,ch);}
输出结果为:
______
3.运行程序,分析并写出结果,注意运算符的使用。
/* 程序e205.c */
main()
{
int a,b;
a=15,b=8;
printf(\"%d\\n\", a=a+1,b+a,b+3 );
}
输出结果为:
______
/* 程序e205.c */
main()
{ int a=100;
printf(\"%d\\n\", ++a);
printf(\"%d\\n\", a++);
printf(\"%d\\n\", a);
}
输出结果为:
______
4.分析并写出下列程序的运行结果。
/* 程序e206.c */
#include <stdio.h>
main()
{
int a,b;
a=3;b=a++;printf(\"a=%d b=%d\\n\",a,b);
a=3;b=++a;printf(\"a=%d b=%d\\n\",a,b);
a=3;b=++a*++a; printf(\"a=%d b=%d\\n\",a,b);
a=3;b=++a*a++; printf(\"a=%d b=%d\\n\",a,b);
a=3;b=a++*++a; printf(\"a=%d b=%d\\n\",a,b);
a=3;b=a++*a++; printf(\"a=%d b=%d\\n\",a,b);
a=3;printf(\"++a=%d a++=%d\\n\",++a,a++);
}
输出结果为:
______
/* 程序e207.c */
#include <stdio.h>
main()
{
int x,y,z;
x=y=z=0;++x|| ++y|| ++z;
printf(\"x=%d y=%d z=%d\\n\",x,y,z);
x=y=z=0;++x&&++y|| ++z;
printf(\"x=%d y=%d z=%d\\n\",x,y,z);
x=y=z=0;++x&&++y&&++z;
printf(\"x=%d y=%d z=%d\\n\",x,y,z);
x=y=z=0;++x|| ++y&&++z;
printf(\"x=%d y=%d z=%d\\n\",x,y,z);
}
输出结果为:
______
/* 程序e208.c */
#include <stdio.h>
main()
{
int a=5,b=3,c,d;
d=(c=a++,c++,b*=a*c,b/=a*c);
printf(\"%d\\n\",d);
printf(\"a=%d b=%d c=%d\\n\",a,b,c);
}
输出结果为:
______
【提高实验】
1.编写程序,输入一个数字字符(\'0\'~\'9\'),并将其转换为相应的整数后显示出来。写出源程序,上机编辑、调试、运行程序。
2.根据分析提示,试着完成下面的程序,并上机调试成功。
编程:编写一个程序从键盘输入圆柱体的半径r和高度h,计算其底面积和体积。
分析:已知半径r和高度h,依据圆面积的计算公式S =π×r×r和圆柱体体积计算公式V=π× r×r×h,可计算其底面积S和体积V。
不完整程序如下,应先在下画线位置填写正确的参数或表达式,再运行该程序。
/*e209.c */
#include<stdio.h>
main( )
{
float pi=3.1415926;
float r,h,S,V;
printf(\"Please input r,h:\");
scanf(\"%f,_____\",&r,______ ); /*键盘输入圆半径r和高度h*/
S=_________; /*计算圆面积S的值*/
V=_____________; /*计算圆柱体体积V的值*/
printf(\"底面积= \\t圆柱体积= \\n\",S,V );
}
2.4 实验小结
1.根据学生实验过程中遇到的问题,教师向学生总结本次实验的重点和难点,要求学生重点关注。
2.教师可根据学生的层次水平,从【基础实验】和【提高实验】中有选择地要求学生写出实验报告,实验报告要求如下。
(1)记录源程序在上机调试时出现的各种问题及其解决办法。
(2)按要求编写程序,并要保证其正确性。
(3)总结本次实验的经验与教训。
实验3 输入/输出操作
3.1 实验目的
1.掌握C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式和逗号表达式)和求值规则。
2.掌握基本的输入/输出函数scanf()、getchar()、printf()和putchar()函数。
3.掌握编写顺序结构程序的基本方法。
3.2 实验指导
[范例1] 运行下列程序,观察其执行结果,并思考为什么?
/*e301.c */
#include <stdio.h>
main( )
{
char c1=\'a\',c2=\'b\',c3=\'c\',c4=\'\\102\',c5=\'\\x61\';
printf(\"a%cb%c\\tc%c\\tabc\\n\",c1,c2,c3);
printf (\"\\t\\b%c %c\\n\",c4,c5);
printf (\"\\\\\\t\\\'\\t\\\"\");
printf (\"\\n%c\\t%d\",c1,c1);
}
输出结果为:
______
[范例2] 运行下列程序,输入数据流:12345678267.92,观察其执行结果,并思考为什么?
/* 程序e302.c */
main()
{
int i;
float r;
scanf(\"%3d%*4d%f\",&i,&r);
printf(\"i=%d,r=%f\\n\",i,r);
}
输出结果为:
______
[范例3] 编写程序,要求实现从键盘输入一个大写英文字母,在屏幕上输出它的小写形式。
思路:
(1)小写字母ASCII码值=大写字母ASCII码值+32。
(2)字符字母的输入函数getchar()。
(3)字符字母的输出函数putchar()。
参考程序:
#include\"stdio.h\"
main()
{
char ch;
printf(\"Input a char:\");
ch=getchar();
putchar(ch+32);
}
程序执行结果如下。
输入:Input a char:T
输出:t
3.3 实验内容
【基础实验】
1.运行程序,分析一下结果,注意printf的格式。
#include <stdio.h>
void main()
{ int a=1234;
float f1=12.34567,f2=678.9;
printf(\"1)%d,%6d,%-6d,%2d;\\n\",a,a,a,a);
printf(\"2)%f,%10.4f,%3.2f;\\n\",f1,f1,f1);
printf(\"3)%e,%e;\\n\",f1,f2);
printf(\"4)%8e,%14e;\\n\",f1,f1);
printf(\"5)%10.7e,%10.3e;\\n\",f1,f1); }
输出结果为:
______
2.在VC++环境下调试运行,记录下调试过程和运行结果,注意scanf()语句输入方法。
main( )
{ int a; float b ; char c ;
① printf(\"按格式%%d%%f%%c送数:\");
② scanf(\"%d%f%c\", &a, &b, &c);
③ printf(\"a=%d, b=%f, c=%c,\\n\",a, b, c);
④ printf(\"按格式%%d,%%f,%%c送数:\");
⑤ scanf(\"%d,%f,%c\", &a, &b, &c);
⑥ printf(\"a=%d, b=%f, c=%c,\\n\",a, b, c);
⑦ printf(\"按格式%%6d%%6f%%6c送数:\");
⑧ scanf(\"%6d%6f%6c\", &a, &b, &c);
⑨ printf(\"a=%d, b=%f, c=%c,\\n\",a, b, c); }
调试过程:
①输出:______
②输入:______
③输出:______
④输出:______
⑤输入:______
⑥输出:______
⑦输出:______
⑧输入:______
⑨输出:______
3.运行下面程序,注意字符输入/输出函数putchar函数和getchar函数的使用。并比较与scanf()、printf()的区别。
void main( )
{ char a ;
int b ;
a=\'b\';
b = 111;
putchar( a );
putchar( b );
putchar(\'y\');
putchar(\'\\n\'); }
分析并写出输出结果。
4.编程计算下列表达式的值,并思考各运算符的运算优先级。
(1)−2/(0.2+1.8)−15%9×2。
(2)若x=5,y=8,求表达式 x+6 !=y<x−3的值。
(3)若x=3,y=7,求逻辑表达式 !(1<x)||2<9-y 的值。
5.运行以下程序,给出程序运行结果。
#include<stdio.h>
main( )
{char c1, c2;
scanf(\"%c,%c\", &c1,&c2);
+ +c1;
− −c2;
printf(\"c1=%c,c2=%c \\n \", c1, c2);
}
运行结果:
输入:______
输出:______
6.编写程序,输入两个整数,输出它们的积。写出源程序,上机编辑、调试、运行程序。
【提高实验】
1.阅读程序,完成如下工作。
(1)上机编辑、调试程序。
(2)运行以下程序,在键盘上如何输入数据,才能使得变量a=10,b=20,cl=\"A\",c2=\"a\", x=1.5,y=-3.75,z=67.8。
程序如下:
#include <stdio.h>
main( )
{ int a, b;
float x, y, z;
char c1, c2;
scanf(\"%5d%5d%c%c \", &a, &b, &c1, &c2);
scanf(\"%f%f%*f,%f\", &x, &y, &z);
}
2.设三角形边长为a、b、c,编程计算任意三角形的面积。面积area的算法是:
3.4 实验小结
1.根据学生实验过程中遇到的问题,教师向学生总结本次实验的重点和难点,要求学生重点关注。
2.教师可根据学生的层次水平,从【基础实验】和【提高实验】中有选择地要求学生写出实验报告,实验报告要求如下。
(1)记录源程序在上机调试时出现的各种问题及其解决办法。
(2)按要求编写程序,并要保证其正确性。
(3)总结本次实验的经验与教训。
实验4 选择结构程序设计
4.1 实验目的
1.掌握C语言逻辑量的表示方法(以0代表“假”,1代表“真”)。学会正确地使用关系表达式和逻辑表达式。
2.掌握用if语句实现选择结构。
3.掌握用switch语句实现多分支选择结构。
4.掌握选择结构的嵌套。
4.2 实验指导
[范例1] 有一函数:
写一程序,当输入x值时,计算输出y值。
说明:
(1)根据输入x的不同求y的值,使用if语句。
(2)分别输入三个分段中的三个数,判断输出结果是否正确,测试程序正确与否。
参考程序如下:
/* 程序e401.c */
#include<stdio.h>
main() {
float x,y;
printf(\"input x:\");
scanf(\"%f\",&x);
if( x<1 )
y=x;
if( x>=1 && x<10 )
y=2*x-1;
if( x>=10 )
y=3*x-11;
printf(\"y=%f\\n\",y);
}
[范例2] 从键盘输入一年份,判断年份是否为闰年。
说明:
(1)判断闰年的条件:能够被4整除,但不能被100整除或者能被100整除,又能被400整除。
(2)使用一个变量来代表是否是闰年。
(3)如果是闰年则输出“* is a leap year!”,否则输出“* is not a leap year!”。*代表输入的年份。
参考程序如下:
/* 程序e302.c */
#include <stdio.h>
main( )
{
int year;
scanf(\"%d\", &year); /*键盘输入年份值*/
if (year%4==0&&year%100!=0 || year%400==0)
printf(\"This year is a leap year!\\n\"); /*如果是,则输出是闰年*/
else
printf(\"This year is not a leap year!\"); /*否则输出不是闰年*/
}
[范例3] 阅读程序,完成如下工作。
(1)上机编辑、调试程序。
(2)运行程序,当输入4时,给出程序运行结果。
main( )
{
int x;
scanf(\"
....
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询