ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:27.11KB ,
资源ID:9666337      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9666337.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计实验指导书.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计实验指导书.docx

1、C语言程序设计实验指导书C语言程序设计指导书目录实验一 C语言的运行环境和运行过程实验二数据类型及顺序结构实验三选择结构程序设计实验四循环控制实验五数组实验六函数实验七指针实验八编译预处理实验九结构体和共用体实验十位运算实验十一文件实验一C语言的运行环境和运行过程一、实验目的1、了解Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。2、了解在该系统上如何编辑、编译、连接和运行一个C程序。3、通过运行简单的C程序,初步了解C源程序的特点。二、实验要求上机实验应一人一组,独立实验。上机过程中出现的问题,除了是系统的问题以外,不要轻易举手问老师。尤其对“出

2、错信息”,应善于分析判断,找出出错的行,然后检查该行或其上一行。三、实验内容1、Visual C+的启动以及工作环境介绍。2、在Visual C+环境中运行C语言源程序。四、实验的步骤1双击桌面Visual C+快捷方式进入Visual C+,或通过执行“开始=程序=Microsoft Visual Studio 6.0= Microsoft Visual C+6.0”。2单击“文件”菜单的“新建”命令。3在打开的“新建”对话框中选择“文件”标签。4选择C+ Source File,选择文件保存位置,然后在文件输入栏中输入文件名。如图所示:5输入源程序。输入下面的程序,注意区分大小写。#inc

3、lude void main()printf(This is a C program.n);6编译程序:按“Ctrl+F7”或通过“编译”菜单中的“编译”命令,或使用工具栏中的相应工具进行编译编译连接运行若程序有错则找到出错行修改程序。7连接:若程序没有语法错误,则可按功能键F7或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),进行连接生成可执行文件。8运行程序:按组合键“Ctrl+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!”工具运行程序。9. 关闭工作区,新建一个程序,然后输入并运行一个需要在运行时输入数据的程序#include void ma

4、in()int a,b,c;int max(int x,int y);printf(input a and b:);scanf(%d,%d,&a,&b);c=max(a,b);printf(n max=%d,c);int max(int x,int y)int z;if(xy) z=x;elsez=y;return(z);(1)运行程序,若程序有错,则修改错误后继续运行程序,当没有错误信息时输入:2,5并按Enter键,查看运行结果。(2)将程序的第三行改为:int a;b;c;然后按F9看结果如何,将其修改为int a,b,c;将子程序max的第3,4行合并为一行,运行程序,看结果是否相同。

5、实验二数据类型及顺序结构一、实验目的掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。2掌握不同数据类型之间赋值的规律。3学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加()和自减()运算符的使用。4编写顺序结构程序并运行。二、实验内容和步骤输入并运行下面的程序#includevoid main()charc1,c2;c1=a;c2=b;printf(%c %c,c1,c2);()运行此程序()加入下面的一个语句作为“”前的最后一个语句:printf(%d,%dn,c1,c2);()将第3行改为:intc1,c2;然后再运行程序,并观察结果是

6、否相同。()将第3行改为intc1,c2;将第4,5行依次改为:c1=a;c2=b;c1=a;c2=bc1=300;c2=400;每改为一次后运行程序,观察结果。2输入并运行下面的程序#includevoid main()int a,b;unsigned c,d;long e,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf(%d,%dn,a,b);printf(%u,%un,a,b);printf(%u,%un,c,d);c=a=e;d=b=f;printf(%d,%dn,a,b);printf(%u,%un,c,d);请对照程序和运行结果分析:()

7、将一个负整数赋给一个无符号的变量,会得到什么结果。画出它们在内存中的表示形式。()将一个大于32767的长整数赋给一个整型变量,会得到什么结果。画出它们在内存中的表示形式。()将一个长整数赋给无符号的变量,会得到什么结果。画出它们在内存中的表示形式。3输入三角形三边长,求三角形面积。#include “math.h”main()float a,b,c,s,area;scanf(“%f ,%f,%f”,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“area=%f”,area);4. 已知圆半径,圆柱高,求圆周长,圆

8、柱体积。main()float r,h,l,v,pi;pi=3.1415926;scanf(“%f,%f”,&r,&h);l=2*pi*r;v=pi*r*r*h;printf(“圆周长为:% 6.2f n”,l);printf(“%圆柱体积为: 6.2f ”,v);5. 输入一个摄氏温度,要求输出华氏温度。公式为f=5/9*c+32.main()floatc,f;scanf(“%f”,&c);f=5.0/9*c+32;printf(“% 5.2f n”,c);实验三选择结构程序设计一、实验目的1了解C语言表示逻辑值的方法。2学会正确使用逻辑运算符和逻辑表达式的方法。3熟悉if语句和switch

9、语句。4结合程序掌握一些简单的算法。5学习调试程序的方法。二、实验内容本实验要求编程解决以下问题,然后上机调试运行程序。1用scanf函数输入x的值,求y的值。程序提示:main函数结构如下:定义实型变量x与y使用scanf函数输入x的值if x1y=xelseifx=90grade=Aelseifscore=80grade=Belseifscore=70grade=Celseifscore=60grade=Delsegrade=E输出百分制成绩和等级。(2)使用switch语句的main函数结构如下:定义float型变量score,char型变量grade输入百分制成绩赋给scoreswit

10、ch(int(score/10)case10:case9:grade=A;break;case8:grade=B;break;case7:grade=C;break;case6:grade=D;break;default:grade=E;break;输出百分制成绩和等级3编程实现:输入一个不多于5位的正整数,要求:(1)输出它是几位数,(2)分别输出每一位数字,(3)按逆序输出各位数字,如原数为321,则应输出123。应准备以下测试数据要处理的数为1位正整数;要处理的数为2位正整数;要处理的数为3位正整数;要处理的数为4位正整数;要处理的数为5位正整数;除此之外,程序还应当对不合法的输出作必要

11、的处理。例如:输入负数;输入的数超过5位;程序提示:main函数结构如下:定义long型变量num,int型变量c1,c2,c3,c4,c5输入一个不超过5位的正整数赋给numifnum99999输出:输入的数超过5位else ifnum0)printf(n%ld是一个5位数n,num);printf(其各位分别为:,n,c1,c2,c3,c4,c5);printf(逆序输出为:n,c5,c4,c3,c2,c1);else if(c20) 是4位数,输出其各位,格式与5位数类似else if(c30) 是3位数,输出其各位,格式与5位数类似else if(c40) 是2位数,输出其各位,格式与

12、5位数类似else if(c50) 是1位数,输出其各位,格式与5位数类似4编程实现:输入4个整数,要求按由小到大的顺序输出。得到正确结果后,修改程序使之按由大到小的顺序输出。main函数结构如下:int a,b,c,d,t;输入4个整数:赋给a,b,c,d;if(ab) 交换a,bif(ac) 交换a,cif(ad) 交换a,dif(bc) 交换b,cif(bd) 交换b,dif(cd) 交换c,d输出a,b,c,d实验四循环控制一、实验目的熟悉使用while语句,do-while语句和for语句实现循环的方法。掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。二、实验内

13、容输入两个正整数m和n,求出它们的最大公约数和最小公倍数。输入时,使mn,观察结果是否正确;再输入时使mn,观察结果是否正确;修改程序使对任何的整数都能得到正确的结果。程序提示:main结构如下:int m,n,r,tm,tn;输入两个正整数赋给m,ntm=m;tn=n;if(m=1e-7)e=e+t;i+;p=p*i;t=1.0/p;输出e的值3编程求1到n中能被3或7整除的数之和。分别用for循环语句和while循环语句完成本题。程序提示:for循环语句的主要算法如下:for(i=1;i=n;i+)if i能被3或7整除sum=sum+iwhile循环语句的主要算法如下:while(i=1

14、;i-)x=2*x+1实验五数组一、实验目的1掌握一维数组与二维数组的定义、赋值及输入输出方法。2掌握字符数组和字符串函数的使用。3掌握与数组有关的算法(特别是排序算法)二、实验内容用选择法对10个整数排序。10个整数用scanf函数输入。程序提示:输入10个整数存放到数组a的a1到a10中输出10个数for(i=1;i10;i+)min=i;for(j=i+1;jaj) min=j;交换ai与amin输出排序后的10个数2有15个数存放在一个数组中,输入一个数要求用折半查找法找出该数是数组中的第几个元素的值,如果该数不在数组中,则输出无此数,要找的数用scanf函数输入。程序提示:用循环语句

15、输入15个数调用排序算法对其进行排序while(flag)输入要查找的数loca=0;top=0;bott=N-1;if(numberaN-1) loca=-1;while(sign=1&top=0)mid=(bott+top)/2;if(number=amid)loca=mid;printf(找到了,数%d在数组的第%d位、n,number,loca+1);sign=0;else if(numberamid) bott=mid-1;else top=mid+1;if(sign=1|loca=-1) printf(n查无此数n);printf(n是否继续查找?(Y/N);scanf(%c,&c

16、);getchar();printf(n);if(c=N|c=n) flag=0;3将两个串连接起来,不要用strcat函数。程序提示:分别输入二个串字符i指向第一个数组的最后一个空数组元素while(s2j!=0)s1i+=s2j+;s1i=0;输出连接后的字符串4找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。至少准备两组测试数据:(1)二维数组有鞍点9802054090-60961210-310189(2)二维数组没有鞍点9802054090-60961210-31018945541567用scanf函数从键盘输入数组的各元素的值,检查结果是否正确

17、,题目未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。程序提示:输入矩阵flag2=0;/矩阵中无鞍点for(i=0;in;i+)/找第i行的鞍点max=ai0;maxj=0;用for循环语句找第i行的最大值存放在max中,其下标j保存到maxj中for(k=0,flag1=1;kakmaxj) flag1=0;/max不是该列的最小元素if(flag1)printf(n第%d行第%d列的%d是鞍点n,i+,maxj+,max);flag2=1;/endforiif(!flag2) printf(n矩阵中无鞍点n);实验六函数一、实验目的1掌握定义函数的方法。2掌握函数实参及形参

18、的对应关系以及“值传递”方式。3掌握函数的嵌套调用和递归调用的方法。4掌握全局变量和局部变量,动态变量、静态变量的概念和使用方法。5学会对多文件程序的编译和运行。二、实验内容写出一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。本程序应准备以下测试数据:17,34,2,1,0,分别输入数据,运行程序并检查结果是否正确。程序提示:求素数函数如下:int prime(int n)if n2return 0for(i=2;in/2;i+)ifn能被i整除return 0;return 1;main函数中输入一个整数赋给变量n,通过prime(n)判断其是否素数,若函数值为1则是素数否则不

19、是素数。2用一个函数来实现将一行字符串中最长的单词输出。此行字符从主函数传递给该函数。(1)把两个函数放在同一个程序文件中。(2)将两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。程序提示:寻找最长单词的起始位置函数:int longest(char string)/n为字符串的长度,len为每个单词的长度/length为最长单词的长度,point为最长单词的起始位置/函数返回最长单词的起始位置int len=0,i,n,length=0,flag=,place=0,point;n=strlen(string);for(i=0;i=length)length=len;plac

20、e=point;len=0;return place;在main函数中输入一行字符,然后调用上面函数取得最长字符的开始位置,从该位置开始输入数组元素,直到输出的数组元素不是英文字母时止。3用递归法将一个整数n转换成字符串。例如输入483应输出字符串“483”。n的位数不确定,可以是任意的整数。程序提示:void convert(int n)int i;if(i=n/10)!=0)convert(i);putchar(n+0);在main函数中输入一个整数,然后先输出该数的符号,然后调用函数convert(n)。4求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数用另一个函数根据求出的最

21、大公约数求最小公倍数。分别用下面的两种方法编程。(1)不用全局变量,在主函数中输入两个数和输出结果。(2)用全部变量的方法,数据的传递通过全部变量的方法。程序提示:使用下面函数求最大公因子,其中v为最大公因子,若将v设为外部变量,则可不使用return语句。int hcf(int u,int v)/求最大公因子int t,r;if(vu)t=u;u=v;v=t;while(r=u%v)!=0)/余数r不为0时继续作辗转相除法u=v;v=r;return(v);5写一个函数,输入一个十六进制数,输出相应的十进制数。程序提示:输入时将十六进制数作为一个字符串输入,然后将其每一个字符转换成十进制数并累加,转换方法如下:if(si0&si=9)

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

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