c语言实验报告2_第1页
c语言实验报告2_第2页
c语言实验报告2_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C 语言实验报告说明1,所有程序均用 VC6.0 编译运行,文件名命名为姓名 + 日期,因为实验存在补做,所以并不是 按照日期先后排列的。2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字” 。实验 2 数据类型、运算符和表达式一、实验目的:(1)掌握 C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方 法。(2)学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+ )和自减()运算符的使用。( 3 )掌握 C 语言的输入和输出函数的使用(4)进一步熟悉 C 程序的编辑、编译、连接和运行的过程。三、程序调试与问题解决:(1) 输人并

2、运行下面的程序#include<stdio.h>void main()char c1,c2;c1='a'c2='b'printf(%c %cn,c1,c2);运行此程序。01在上面printf语句的下面再增加一个 printf语句。O2printf(%d %dn,c1,c2);再运行,并分析结果。输出结果如图,编译成功,无错误 将第 3 行改为 O3int c1,c2;再运行,并分析结果。再将第4、5行改为 O 4c1=a;c2=b;再运行,并分析结果。a,b没有定义,编译报错。再将第4、5行改为 O 5C仁 'a :c2= ' &#

3、39;b ':再运行,并分析结果。再将第4、5行改为O 6C仁300;c2=400;再运行,并分析结果。以字符型输岀时,输岀的将是300,400对应的字符(2) 输人并运行教材第3章习题3. 6给岀的程序#i nclude<stdio.h>main ()char c1='a',c2='b',c3='c',c4='101',c5='116:pri ntf(a%c b%ctc%ctabc n,c1,c2,c3);b%c %cn,c4,c5);#i nclude<stdio.h>void mai

4、n()int a,b;un sig ned c,d;long e,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;pri ntf(%d,%dn,a,b);pri ntf(%u,%un,a,b);pri ntf(%u,%un,c,d);c=a=e; d=b=f;pri ntf(%d,%dn,a,b);printf(%u,%un,c,d);请对照程序和运行结果分析示形式。,会得到什么结果。画岀它们在内存中的表t将一个负整数斌给一个无符号的变的表示形,会得到什么结果。画岀它们在内存中将一个大于32767的长整数斌给整型变 t式。65535(分别考虑该长整数的值大于或等于

5、会得到什么结果将一个长整 数赋给无符号变量,)。画岀它们在内存中的表示形式。以及小于65535 的情况得到的是原来正数取存的数01将一个大于32767的长整数斌给整型变t,造成溢岀,数据丢失。O 2可能会溢岀,也可能正常。3(4)输人习题 3. 10#include<stdio.h>void main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(%d,%d,%d,%dn,i,j,m,n); 运行程序,注意i,j,m,n各变量的值。分别作以下改动并运行: 将第 6,7 行改为 :m=i+; n=+j;再运行。 将程序改为 :#include<s

6、tdio.h>void main()int i,j;i=8;j=10;printf(%d,%dn,i+,j+); 在的基础上,将printf语句改为:printf(%d,%d,%d,%dn,i,j,+i,+j); 再将 printf 语句改为 : printf(%d,%d,%d,%dn,i,j,i+,j+); 将程序改为 :#include<stdio.h>void main()int i,j,m=0,n=0; i=8; j=10; m+=i+; n-=-j; printf(i=%d,j=%d,m=%d,n=%dn,i,j,m,n); 将第 6,7 行改为 : m=i+; n

7、=+j; 再运行。以上程序结果的不同均是由于自增自减运算符引起的, 考虑到一个判断技巧, 看自增自减运算符 时,先将它们从原程序中拿出来,如果 +或 在后,就先把值放回去,然后自增自减,如果在 前,先自增自减,再把结果放进去。printf(%d,%d,%d,%dn,i,j,+i,+j);#include<stdio.h> void main()int i,j,m=0,n=0;i=8; j=10;m+=i+;n-=-j;printf(i=%d,j=%d,m=%d,n=%dn,i,j,m,n); 实验 5 循环控制一、实验目的:语句实现循环的方法; do-while 语句、 while

8、 语句、 for )熟练掌握 1()理解循环嵌套及其使用方法; ( 2 )掌握( 3break 语句与 continue 语句的使用; (4)掌 握用循环实现一些常用算法(如穷举、迭代、递推等) 。 二、实验内容: 输入两个正整 数,求其中最大公约数和最小公倍数。 1 2. 输入一行字符, 分别统计出其中的英文字母、 空格、 数字和其它字符的个数。3X 6=0 在 附近的根。 1.53.用牛顿迭代法求方程 2X3 4X24. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过痛,又多吃了一 个。 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一 天剩下的一半 零

9、一个。到第 10 天早上想再吃时,见只剩一个桃子了。求第一天共摘了 多少桃子。 三、程 序调试与问题解决: 1输入两个正整数,求其中最大公约数和最小公倍数。 使用了最简单的算法,清晰易理解,同时注意了编程的编译无错误,运行如上图所示,往往不级一级对注意上下对齐等问题,容易出现缺标点等现象,将大括号一格式,在以往编程序时, 齐后,可以有效地避免出错。发现一个技巧,打括号时一次打出一对括号,可以减少括号不配对的错误。2. 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。编译无误,测试正确,写该程序时特意加了注释,以便阅读2X3 4X2 3X 6=0 在 1.5附近的根。 用牛顿

10、迭代法求方程 3.该程序缺少 #include<stdio.h> ;是截图原因,原程序中是存在的 最开始不知道 fabs 函数的用法,通过百度查询。4. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过痛,又多吃了一 个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一 天剩下的一半零一个。到第 10 天早上想再吃时,见只剩一个桃子了。求第一天共摘了 多少桃子。实验 7 函数一、实验目的 :(1 ) 掌握定义函数的方法。(2 ) 掌握函数实参与形参的对应关系及值传递的方式。 掌握函数的嵌套调用和递归调用的方法。) 3(4 ) 掌握全局变量和局部变量

11、,动态变量和静态变量的概念和使用方法。(5 ) 学习对多文件程序的编译和运行。二、实验内容:1.写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。本程序应当准备以下 测试数据: 17 、34 、2、1 、0。分别运行并检查结果是否正确。1)n 的位数不2 用一个函数来实现将一行字符串中最长的单词输出。此行字符从主函数传递给该函数把两个函数放在同一个程序文件中。(2)将两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。3 用递归法将一个整数 n转换成字符串。例如输入 483 应输岀字符串“ 4 8 3”。确定,可以是任意的整数。4 求两个整数的最大公约数和最小公倍数

12、。用一个函数求最大公约数用另一个函数根据求岀的 最大公约数求最小公倍数。分别用下面的两种方法编程。(1)不用全局变量,在主函数中输入两个数和输岀结果。(2)用全部变量的方法,数据的传递通过全部变量的方法。5 写一个函数,输入一个十六进制数,输岀相应的十进制数。三、程序调试与问题解决:1.写一个判别素数的函数,在主函数输入一个整数,输岀是否素数的信息。本程序应当准备以下 测试数据: 17、 34、 2、 1、 0。分别运行并检查结果是否正确。该例编译时出现错误,原因是误将sushu ( a )=1 写为 sushu (a)=1。改正后编译无误。2用一个函数来实现将一行字符串中最长的单词输出。此行

13、字符从主函数传递给该函数。子函数中第二个 while 考虑到了多种标点符号的情况,但是该程序可能存在的问题是, 如果有两 个单词的长度是相同的?3 用递归法将一个整数 n转换成字符串。例如输入 483 应输岀字符串“ 4 8 3” 。n的位数不 确定,可以是任意的整数。4 求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数用另一个函数根据求岀的最大公约数求最小公倍数。分别用下面的两种方法编程。(1)不用全局变量,在主函数中输入两个数和输岀结果。(2)用全部变量的方法,数据的传递通过全部变量的方法。使用了两个子函数,我认为应该还有更简单的算法?!写一个函数,输入一个十六进制数,输岀相应的

14、十进制数。5.程序运行时岀现错误,后检查发现在 scanf 格式字符串的双引号是中文符号,改成英文双引号 后成功。实验 9 指针一、实验目的 :通过实验进一步掌握指针的概念,会定义和使用指针变量;01能正确使用数组的指针和指向数组的指针变量;O 2能正确使用字符串的指针和指向字符串的指针变量;O 3能正确使用指向函数的指针变量;O 4 了解指向指针的指针的概念及其使用方法。O 5二、 实验内容:(1). 输入三个整数,按由小到大的顺序输岀,然后将程序改为:输入三个字符串,按由小到大 顺序输岀。(2). 将一个 3X3 的矩阵转置,用一函数实现之。l 357 91113 1519将数组名作为函数

15、实参, 在执行函数的过程中实现矩阵转置, 函数调用结束后在主函数中输岀已 转置的矩阵。(3).有 n 个人围成一圈,顺序排号。从第 1 个人开始报数(从 1 到 3 报数),凡报到 3 的人退岀圈 子,问最后留下的是原来第几号的那位。strcmp函数,函数原型为:(4) .用一个函数实现两个字符串的比较,即自己写一个int strcmp (char * p1, char * p2);设pl指向字符串si, p2指向字符串s2,要求当s1= s2时,函数返回值为 0, 如果sl工s2, 则返回它们二者第一个不相同字符的ASCII码差值(如“ BOY ”与“ BAD ”的第二个字母不相同,“0”与

16、“ A ”之差为79 65=14);如果sl>s2,则输岀正值;如果 sl<s2则输岀负值。两个字符串s1、s2由main函数输入,strcmp函数的返回值也由main函数输岀。(5) .用指向指针的指针的方法对n个整数排序并输岀。要求将排序单独写成一个函数。n和各整数在主函数中输入,最后在主函数中输出。三、程序调试与问题解决:(1).输入三个整数,按由小到大的顺序输岀,然后将程序改为:输入三个字符串,按由小到大顺序输出。的矩阵转置,用一函数实现之。3X3将一个(2).l 35791113 1519(3).有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退岀圈子,问最后留下的是原来第几号的那位。(5).用指向指针的指针的方法对n个整数排序并输岀。要求将排序单独写成一个函数。n和各整数在主函数中输入,最后在主函数中输出实验12文件一、目的要求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论