《C语言程序设计》实验指导书目录实验1 C语言编程环境和运行C程序的方法 (1)实验2 简单的顺序结构程序设计 (3)实验3 数据类型和表达式 (5)实验4 选择结构程序设计 (7)实验5 循环结构程序设计(1) (10)实验6 循环结构程序设计(2) (13)实验7 数组 (16)实验8 函数 (18)实验1 C语言编程环境和运行C程序的方法一、实验目的1、熟悉Visual C6.0集成开发环境的使用方法;2、熟悉C语言程序从编辑、编译、连接到最后运行得到结果的过程及各过程的作用;3、了解C语言程序的结构特征与书写规则,能够编写简单的C程序;4、初步理解程序调试的思想,能找出并改正C程序中的语法错误。
二、实验内容1、熟悉上机环境⑴熟悉VC++6.0集成环境,重点是其中常用菜单、工具按钮的功能;⑵在D盘建立一个自己的工作文件夹,文件夹以班名+学号后两位+姓名来命名(如:应用1105张三);分别创建、编辑并运行下列程序,初步熟悉C源程序的结构特点和运行方式。
#include<stdio.h>main(){printf(“This is my first program!\n") ;}2、编写一个程序实现分两行输出自己的姓名及联系电话。
3、程序改错调试以下给定程序的功能是在屏幕上显示“Welcome to You!”,其中存在3处错误,请指出错误所在,并调试程序使其能运行得到正确结果。
#include<stdio.h>mian() //1{printf(Welcome to You!\n") //2}4、选做题⑴自学教材P47内容以及附录B中的字符与ASCII码对照表,编程输出以下图形:♥♥⑵编程输出如下通讯录功能菜单界面三、实验要求1、将每次实验所编辑的C源程序调试通过后分别保存在D盘上自己的文件夹中(备查!)及自己的U盘中;2、对调试过程中出现的问题和解决方法进行必要的记录,并予以简要分析四、实验小结结合本次实验简述C程序从编写到最终运行的一般过程,并简要说明其中每个步骤的作用及其生成的文件类型。
实验2 简单的顺序结构程序设计一、实验目的1、熟练掌握格式化输入函数scanf()、格式化输出函数printf()的使用;2、掌握简单的顺序结构程序的编写以实现简单的数据处理;3、进一步熟悉VC++环境下C程序的编辑、编译、连接和运行的过程。
二、实验内容1、编程:由键盘输入两个整型变量a和b的值。
编程计算并输出a与b的和、差、积、商、a除以b的余数、a b 的值。
输入输出参考示例如下:提示:用到C语言的运算符+、-、*、/、%、函数pow()。
请输入a,b的值:3,2 //“3,2”为键盘输入,后面跟回车a=3,b=2a+b=5a-b=1a*b=6a/b=1a%b=1a^b=92、程序改错与调试:修改以下程序中的错误,并将调试的相关信息填入下表中。
(特别提示:当程序在编译时发现很多错误,此时应从上到下改一个错误,就重新再编译,因为有时一个错误会引起很多错误信息。
)1 #include<stdio.h>2 Main()3 {4 int x=1;y;56 y=x++;7 printf("y=%d ",y)8 int z;9 z=++x;10 print("z=%d\n ,z);11 }程序中存在的错误及其相关信息一览表3、编程:求一元二次方程ax2+bx+c=0的实根x1,x2,。
a,b,c的值由键盘输入,设b2-4ac>0。
输入输出示例如下:请输入三个系数a,b,c的值:1,3,2 //“1,3,2”为键盘输入,后面跟回车a=1,b=3,c=2x1=-1.00x2=-2.004、(选做)编写一个程序,要求从键盘输入一个3位整数,然后将它们逆序输出。
(比如:输入123,输出321。
提示:关键是想办法分别提取百位、十位和个位上的数字!!)三、实验小结简单总结C语言程序的结构和书写规则;你在上机过程中主要遇到哪些问题?如何解决的?实验3 数据类型和表达式一、实验目的1、理解C 语言中基本数据类型,掌握整型、实型和字符型变量的定义、赋值及使用方法;2、掌握C 语言常用算术运算符的功能,掌握C 表达式的书写方法、求值规则以及表达式计算中的类型转换;3、掌握C 语言中各种数据的输入/输出方法,能正确使用各种格式符;4、初步熟悉C 程序的调试方法(单步执行方式)。
二、实验内容1、分别在VC++6.0和Win-TC 中运行以下程序,观察输出结果是否相同?并简要说明原因。
说明:运算符sizeof()用于求解C 语言中不同类型数据所占内存字节数(参见附录D )#include <stdio.h>main(){ int a=1;printf("char 型占%d 个字节;\n",sizeof(char)); //1 printf("int 型占%d 个字节;\n",sizeof(int)); //2 printf("long int 型占%d 个字节;\n",sizeof(long));//3printf("float 型占%d 个字节;\n",sizeof(float)); //4 printf("double 型占%d 个字节;\n",sizeof(double)); //5 printf("-----------------------------\n"); printf("变量a 的值的类型占%d 个字节;\n ", sizeof(a)); //6printf("表达式(float)a 的值的类型占%d 个字节;\n ", sizeof((float)a));//7 printf("表达式2.0*a 的值的类型占%d 个字节;\n ", sizeof(2.0*a));//8printf("表达式a+ 'a '-2.0的值的类型占%d 个字节;\n ", sizeof(a+ 'a '-2.0));//9printf("字符串Hello! 占%d 个字节;\n ", sizeof("Hello!")); //10}2、程序改错并调试:下列程序的功能为: 输入一个华氏温度,要求输出摄氏温度。
公式为:C=)32(95F ,输出取2位小数。
程序中有5处错误,请修改并调试程序,使其实现所要求的功能。
(编译连接无误后单步执行)#include <stdio.h> main(){ float c,f; //1printf("请输入一个华氏温度:\n");//2 scanf("%f",f); //3 c==(5/9)*(f-32); //4printf("摄氏温度为:%5.2f\n"c); //5 }3、编写程序计算出下列表达式的值(输出格式符根据表达式值的可能类型自行给出)⑴54241200⨯- ⑵ 5×22205+ ⑶ln(103.5+2) ⑷sin(45°)+e 3⑸ y+z%5*(int)(x+y)/2%4 (其中x=2.7,y=4.5,z=8) ⑹ 'Z '-'A '+'a '-'A '4、编辑并运行下面程序: #include <stdio.h> main() { int a,b,c; a=getchar(); b=getchar(); c=getchar(); printf("a=%d b=%d c=%d\n",a,b,c); printf("a=%c b=%c c=%c\n",a,b,c); }5、编程⑴由键盘输入一个圆柱体的底面半径r 和高度h 的值,编程计算并输出该圆柱体的体积。
(注意:体积=底面积*高,要求将圆周率定义为符号常量PI )⑵编写一个程序,从键盘输入一个大写字母,输出该字母及其对应的ASCII 码值,同时输出其小写字母及其对应的ASCII 码的值。
⑶(选做题)编写程序,从键盘输入两个数字字符并分别存放在字符型变量a 和b 中,要求通过程序将与这两个字符对应的数字相加后输出,例如,输入字符型数字7和5,输出的则是整型数12。
(提示:通过“数字字符-‘0’得到对应数字”)。
三、实验小结简要小结一下自己C 语言学习的情况,主要存在哪些问题,什么原因?是否按老师的要求做了课前预习和课后复习?对老师的教学有什么建议?实验4 选择结构程序设计一、实验目的1、熟悉关系表达式、逻辑表达式的书写和求值;2、掌握if 语句的三种基本形、switch 语句的结构及其应用;3、能综合运用if 语句与switch 语句实现多分支选择;4、熟悉并掌握程序的“单步执行”、“断点设置及跟踪”等调试方法。
二、实验内容1、逻辑表达式验算:设已有定义int a=3,b=4,c=5;先自行计算下面各逻辑表达式的值,然后编写程序上机验证你分析的结果是否正确。
⑴a+b>c&&b==c⑵!(a>b)&&!c||1⑶!(x=a)&&(y=b)&&0⑷!(a+b)+c-1&&b+c/2⑸(a=b+c,b>c-1)&&(b+=c)||(b*2==a+c)⑹('c'-'a')/2+b>c!=b-a;2、程序填空:以下程序的功能为:从键盘输入依次输入操作数、运算符、操作数,如果运算符是+、-、*、/之一,则进行相应的四则运算,否则输出运算符有误。
在程序的空白处填入正确的语句,使得程序能正常执行并完成规定的功能。
main(){ int a,b,c; char op;printf("Please input a expression:");scanf("%d%c%d", 【1】 );switch(op){ case '+': c=a+b;printf("%d+%d=%d\n",a,b,c);break;case '-': c=a-b;printf("%d-%d=%d\n",a,b,c);break;case '*': c=a*b;printf("%d*%d=%d\n",a,b,c); break;case '/': if( 【2】 ) printf("Divisor is zero\n"); else printf("%d/%d=%f\n",a,b,( 【3】 )a/b); /*强制类型转换*/ break;default: printf("输入的运算符有误!\n"); } }3、程序改错调试(请纠正程序中存在错误,使程序实现其功能)⑴下列程序的功能为:输入1个字母后,输出该字母的前序字母、该字母、该字母的后序字母,例如:输入d ,则输出cde ;输入a ,则输出zab ;输入P ,则输出OPQ ;输入Z ,则输出YZA 。