版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、校内讲义程序设计与编程实验指导书编写:李 玲吉林大学通信工程学院2006.5.20目 录实验一 turbo c环境的认识与使用1实验二 数据类型、运算符和表达式4实验三 分支结构程序设计7实验四 循环结构程序设计8实验五 数组程序设计8实验六 函数程序设计10实验七 指针结构程序设计12实验八 结构体与共用体程序设计13实验九 文件程序设计14附录:visual c+ 5.0 的基本用法1520实验一 turbo c环境的认识与使用一、实验目的 熟悉turbo c运行环境、创建c程序文件的过程。 掌握c语言中使用最多的一种语句赋值语句的使用方法。 掌握各种类型数据的输入输出方法,能正确使用各种
2、格式转换符。二、实验内容 1在c编辑环境下,输入下列程序。然后将其以p1.c为文件名保存到d盘的cc目录中。(若d盘中没有cc子目录,则需要自己建立) 启动c编辑环境开始程序ms-dos方式,在ms-dos方式下键入:cdtcbin(enter) 在如下的提示符下,键入tc。c:tcbintc(enter) 则此时c语言编辑环境已启动。 按esc键后,光标落在编辑区中,键入程序。 程序输入完成后,利用alt+f将file菜单的子菜单显示在屏幕上,选择save,此时显示一个对话框,在对话框中输入:d:ccshiyan.c(enter)则程序被保存。 利用alt+x退出c语言编辑环境。 再次启动c
3、语言编辑环境,键入tc(回车)。 打开上面保存的程序shiyan.c。同时按下alt+f将file菜单的子菜单显示在屏幕上,选择load,此时显示一个对话框,在对话框中输入:d:ccshiyan.c(回车),则此时p1.c程序被显示在程序的编辑窗口中。 将上面的程序改名为pp1.c保存到d盘的cc目录中(d:cc)。同时按下alt+f将file菜单的子菜单显示在屏幕上,选择write to,此时显示一个重命名对话框,在对话框中输入:d:ccshiyan1.c(enter),则此时shiyan1.c程序被保存到d盘cc子目录中,此时编辑窗口右上方的文件名为:shiyan1.c。 编译shiyan
4、1.c程序。同时按下alt+c,则屏幕上显示编译子菜单,当光带落到第一个子菜单项compile to obj上时按回车键,则程序编译开始,编译完成后显示编译结果。 运行shiyan1.c程序。浏览完编译结果后,若程序没有错误,按键盘中的任意一个键,则回到编辑窗口,此时同时按下alt+r,则显示编译子菜单,当光带落到第一个子菜单项run上时按回车键,则链接、运行开始。运行完成后,利用run子菜单中的user screen命令观察运行结果。输入并运行下面的程序#include void main()char c1,c2;c1=x;c2=y;printf(“%c %cn”,c1,c2);(1).运行
5、此程序。(2).在此基础上增加一个语句,运行,并分析结果。printf(“%d%dn”,c1,c2);(3).将第2行改为:int c1,c2;运行,并观察结果。(4).将第 3、4行改为:c1 = x; c2 = y;运行,分析其运行结果。(5).将第 3、4行改为:c1 = ”x”; c2 = ”y”;运行,分析其运行结果。(6).将第 3、4行改为:c1 = 300; c2 = 400;运行,分析其运行结果。3(1).输入程序#include void main()int a,b;char c1,c2;float d,e;double f,g;long m,n;unsigned p,q;
6、a=61;b=62;c1=a;c2=bd=3.56;e=-6.87;f=1234.567809;g=0.123456789;m=20000;n=-30000;p=12345;q=50000;printf(“a=%d,b=%dnc1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e);printf(“f=%15.6f,g=%15.12nm=%ldc,n=%ldnp=%u,q=%un”,f,g,m,n,p,q);(2).运行此程序并分析结果。(3).在此基础上,修改程序的第8-13行:a = 61; b = 62;c1 = a; c2 = b;f = 3157.89
7、0121; g = 0.123456789;d = f; e = g;p = a = m = 50000; q = b = n = -60000;运行程序,分析结果。(4).改用scanf 函数输入数据而不用赋值语句,scanf 函数如下:scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q);输入的数据如下:61,62,a,b,3.56,-6.87,3157,890121,0.123456789,50000,-60000,37678,40000(说明:lf和ld格式符分别用于
8、输入double型和long型数据)分析运行结果。(5).在(4) 的基础上将printf语句改为:printf(“a=%d, b=%dnc1=%c, c2=%cnd=%15.6f, e=%15.12fn”, a, b, c1, c2, d, e);printf(“f=%f, g=%fnm=%d, n=%dnp=%d, q=%dn”, f, g, m, n, p, q);运行程序。(6).将p、q改用%o格式符输出。(7).将scanf函数中的%lf和%ld改为%f和%d,运行程序并观察分析结果。三、学时安排及要求2学时,在作实验前事先预习并编写好实验源程序。凡发现抄袭,抄袭者与被抄袭者皆以零
9、分计入本课程成绩并向学院报告。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩并向学院报告。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验二 数据类型、运算符和表达式一、实验目的 掌握c语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法。掌握不同的类型数据之间赋值的规律。学会使用c的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。二、实验内容 1输入程序:#include void main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(“%d, %d,%d,%d”,
10、i,j,m,n);(1).运行程序,注意 i、j、m、n 各变量的值,分别作以下改动并运行。(2).将第4、5行改为:m = i+;n = +j;再运行。(3).将程序改为:#include void main()int i,j;i=8;j=10;printf(“%d, %d”,i+,j+);(4).在(3)的基础上,将printf 语句改为:printf(“%d,%d”, +i, +j);(5).将printf 语句改为:printf(“%d,%d,%d,%d”, i, j, i+, j+);(6).将程序改为:#include void main()int i,j,m=0,n=0;i=8;
11、j=10;m+=i+;n-=-j;printf(“i=%d, j=%d,m=%d,n=%d”,i,j,m,n);2编程序,用getchar 函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。上机运行程序,比较用printf和putchar 函数输出字符的特点。3 输入如下三组数据,求出每组数据之和,并输出结果:输入a,ba10.0aa-10.0aa+10.0ba输出a,bba-b结束ynoyno开始256 43.537-12.41817.3294-16.42534.4107.6299首先预计每组之和,然后将程序执行结果与预计值比较。选作(1)读入a、b
12、、c,执行如下操作:作a/b运算,把a、b、c打印在一行上;作a*b+c运算,把a、b、c及a*b+c打在另一行上。(2)变量a、b中各存有一个整数,交换两数后输出。三、学时安排及要求2学时,在作实验前事先预习并编写好实验源程序。凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程成绩并向学院报告。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩并向学院报告。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验三 分支结构程序设计一、实验目的 了解c语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。学会正确使用逻辑运算符和逻辑表达式。熟练掌握if语句和switch语
13、句。结合程序掌握一些简单的算法。学习调试程序。二、实验内容1本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。有一函数: 用scanf函数输入x的值(分别为x1、1x10、x10三种情况),求y值。2给出一个百分制成绩,要求输出成绩等级a、b、c、d、e。90分以上为a,8189分为b,7079分为c,6069分为d,60分以下为e。 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。 再运行一次程序,输入分数为负值(如70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输
14、入数据错”,程序结束。3输入a,b,c三个整数,要求将绝对值最大者打印输出。x的绝对值可表示成:abs(x)。4输入一个整数,判断该数的奇偶性。(输出相应的标志even-偶数 odd-奇数,请记住这两个单词)5根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。三、学时安排及要求2学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验四 循环结构程序设计一、实验目的 掌握循环结构的三种形式:当型循环结构(while)、直到型循环结构(do_while)、次数型结构(for),以及三种形式的相互转换。掌握break语句、
15、continue语句的格式、功能、作用。 二、实验内容编写下列程序,上机调试、验证。 1键盘上输入10个数,求其平均值。 2输出1100之间,其数的平方在150200之间的第一个数,如找到,退出循环,输出该数的平方。反之,继续查找。 3求出所有各位数字的立方和等于1099的三位整数。4输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其它字符的个数。三、学时安排及要求4学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验五 数组程序设计一、实验目的 掌握一维数组
16、和二维数组的定义、初始化、赋值和输入输出的方法;掌握字符数组和字符串函数的使用;掌握与数组有关的算法(特别是排序算法)。二、实验内容 1. 填补空出的语句,以使程序完整,然后上机验证。 (1) 下面程序的功能是输出数组s中最大元素的下标。 main() int k,p; int s=1,-9,7,2,-10,3; for(p=0,k=p;psk)_; printf(“%dn”,k); 【提示】主要考虑最大元素下标k和循环变量p之间的关系。 (2) 下面程序的功能为求主、次对角线元素之和。 main() static int a3=9,7,5,3,1,2,4,6,8; int i,j,s1=0,
17、s2=0; for(i=0;i3;i+) for(j=0;j3;j+) if(_)s1=s1+aij; if(_)s2=s2+aij; printf(“%dn%dn”,s1,s2); 【提示】主要考虑主对角线行、列之间有何关系?次对角线行、列之间的关系? 3 编写下列程序,上机调试、验证。 (1)求2个33矩阵对应元素之和,并存入矩阵c中,然后输出矩阵c。 设计步骤: 定义3个33矩阵a,b,c; 设计用双重循环给矩阵a、b赋值; 用双重循环求矩阵a、b对应元素之和并赋给矩阵c; 用双重循环输出矩阵c对应的元素。 (2)输入单精度型一维数组a10,计算并输出a数组中所有元素的平均值。 设计步骤
18、: 定义一个单精度型一维数组a10; 用单重循环给一维数组a10赋值; 用单重循环求一维数组a10所有元素之和; 在循环外求平均值并输出。 三、学时安排及要求2学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验六 函数程序设计一、实验目的 掌握定义、调用函数的方法;掌握函数实参与形参的对应关系以及“值传递”的方式;掌握函数的嵌套调用和递归调用的方法;掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。掌握函数程序设计的一般方法和应用。二、实验内容 1阅读下列程序,分析程序完成的功能,然后上机验证结果。 (1) main() void f
19、(); float a10 ; int i; for(i=0;i10;i+) scanf(“%d”,&ai); f(a); void f(int b) float sum=0,aver; int i; for(i=0;i10;i+) sum+=bi; aver=sum/10.0; printf(“%d”,aver); 输入数据为:23 43 12 46 90 65 44 76 78 86 输出结果为: 在主函数中的void f();作用是什么?可以改变其形式吗?(2) main() int i=5; printf(“%dn”sub(i); sub(int n) int a; if(n= =1)
20、 return 1; a=n+sub(n-1); return(a); 【思考】写出该程序的运行结果并熟悉递归函数的实现过程。(3)main() int x=5, y=0; printf(“x=%5d y=%5d n”,x,y); func(); printf(“x=%5d y=%5d n”,x,y); func(); func() static int x=4;int y=10; x=x+2; y=y+x; printf(“x0=%5d y0=%5d n”,x,y); 分析该程序的运行结果并给出简单解释。 2编写下列程序。 (1)计算10名学生1门课成绩的平均分。(程序设计要求:用自定义函数
21、来实现,注意自定义函数的形式及参数之间的传递,用主函数来调用自定义函数实现功能。) (2)计算s=5!7!9!(用递归算法编写)三、学时安排及要求2学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验七 指针结构程序设计一、实验目的 通过实验进一步掌握指针的概念,会定义和使用指针变量;掌握内存单元和地址、变量与地址、数组与地址的关系; 掌握取地址运算符与指针运算符;能正确使用数组的指针和指向数组的指针变量;能正确使用字符串的指针和指向字符串的指针变量;能正确使用指向函数的指针变量;了解指向指针的指针的概念及其使用方法。二、实验内容1写出下列程序
22、的运行结果。 main() char *str=“english”,“math”,“music”,“physics”,“chemistry”; char *q; int num; q=str; for(num=0;num5 ;num+) printf(“%sn”,*(q+); 该程序的运行结果为:2有下面的程序,读程序,写出当输入1,2时的运行结果。 main() int a23=2,4,6,8,10,12,(*p)3,i,j; p=a; scanf(“%d,%d”,&i,&j); printf(“a%d%d=%dn”,i,j,*(*(p+i)+j); 3. 编写程序,然后上机调试结果 (1)
23、 编写一个函数s(a,n),其中a是一个一维整型数组,n是数组长度,通过指针求数组中的平均数。(2)输入100个实数,利用指针求其中的最大值和平均值。三、学时安排及要求2学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验八 结构体与共用体程序设计一、实验目的 掌握结构体类型变量的定义和使用;掌握结构体类型数组的概念和使用;掌握链表的概念,初步学会对链表进行操作;掌握共用体的概念与使用。二、实验内容编程序,然后上机调试运行。1有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高
24、分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。要求用input函数输入10个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。2建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。(选作)3建立某班若干学生的成绩表,以总成绩按降序排序,以如下格式输出:(选作)姓名 性别 平时成绩 期中成绩 期末成绩 总评成绩张平 男 70 62 71 ?王英 男 71 63 87 ?李明 女 82 67 75 ? 班平均 ? ? ? ?总评成绩平时*20%+期
25、中*30%+期末*50%要求:全班人数临时输入,实验时可输入少量几个(比如5个)。三、学时安排及要求2学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验九 文件程序设计一、实验目的 掌握文件以及缓冲文件系统、文件指针的概念;学会使用文件打开、关闭、读、写等文件操作函数;学会用缓冲文件系统对文件进行简单的操作。二、实验内容编程序,然后上机调试运行。1有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。设5名学生的学号、姓名和3门课成绩如下:
26、20051001 wang 89,98,67.520051313 li 60,80,9020051532 fun 75.5,91.5,9920050911 zhang 100,50,62.520051720 yuan 58,68,7l在向文件stud写入数据后,应检查验证stud文件中的内容是否正确。2将上题stud文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件stu_sort中在向文件stu_sort写入数据后,应检查验证stu_sort文件中的内容是否正确。3对上题已排序的学生成绩文件进行插入处理,插入一个学生的3门课成绩。程序先计算新插入学生的平均成绩,然后将它
27、按成绩高低顺序插入,插入后建立一个新文件。要插入的学生数据为:20050108 xin 90,95,60在向新文件stu_new写入数据后,应检查验证stu_new文件中的内容是否正确。三、学时安排及要求2学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。附录:visual c+ 5.0 的基本用法1.进入c+工作环境建立个人子目录:第一次上机时先在e盘上建立一个sw1子目录,在sw1子目录下,再建立以自己学号后三位为目录名的子目录,如学号为9911001的同学,可以用001为子目录名。然后按以下步骤进行操作;启动visual c+ 5.0:双击
28、windows桌面上的visual c+ 5.0图标或单击windows桌面上“开始”按钮,在“程序”中选择“visual c+ 5.0”运行即可。2.编译、运行c+ 源程序创建一个新的工程文件(project file)启动visual c+5.0 编译系统后,出现“microsoft developer studio”窗口,该窗口菜单条有个菜单项(如图1所示):(1).单击“file”菜单,在其下拉菜单中选择“new”,屏幕上出现一个“new”对话框,在该对话框中选择“projects”标签,出现“project”对话框。(2).选择工程类型为“win32 console application”,这时,在右边的platforms选框中就会出现win 32。(3)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北第二师范学院《数学课程与教学论》2023-2024学年第一学期期末试卷
- 2024船舶买卖合同范本版范文
- 《礼仪作业》课件
- 2024大型工程合同模板
- 《OH无齿轮电梯》课件
- 2024旋挖灌注桩施工合同
- 湖北大学知行学院《生物技术导论》2022-2023学年第一学期期末试卷
- 湖北大学知行学院《公司金融》2023-2024学年第一学期期末试卷
- 心律失常内科护理学
- 2024建设工程施工合同(哈尔滨银行)副本
- 第十二期中央企业新任班组长班级习题(附答案)
- 精神科护理试题库(附答案)
- 凝血分析仪校准规范操作流程
- 园艺植物组织培养-形考作业1-国开-参考资料
- pph管道施工方案
- 2024年高考英语复习之读后续写20篇(2023年高考真题+2024年名校模拟)
- 员工职业形象培训
- 2024年陕西高职分类考试招生考试政策宣讲课件
- GB/T 43590.502-2024激光显示器件第5-2部分:散斑对比度光学测量方法
- 【真题】2023年镇江市中考道德与法治试卷(含答案解析)
- 智鼎在线测评题库答案2024
评论
0/150
提交评论