c语言实验报告 (2)

  • 格式:doc
  • 大小:56.50 KB
  • 文档页数:18

程序设计

页脚内容1 C语言实验报告

说明

1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。

2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。

实验2 数据类型、运算符和表达式

一、实验目的:

(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。

(2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。

(3)掌握C语言的输入和输出函数的使用

(4)进一步熟悉C程序的编辑、编译、连接和运行的过程。

三、程序调试与问题解决: 程序设计

页脚内容2 (1)输人并运行下面的程序

#include

void main()

{

char c1,c2;

c1='a';

c2='b';

printf("%c %c\n",c1,c2);

}

○1运行此程序。

○2在上面printf语句的下面再增加一个printf语句。

printf("%d %d\n",c1,c2);

再运行,并分析结果。

输出结果如图,编译成功,无错误。

程序设计

页脚内容3 ○3将第3行改为

int c1,c2;

再运行,并分析结果。

○4再将第4、5行改为

c1=a;

c2=b;

再运行,并分析结果。

a,b没有定义,编译报错。

○5再将第4、5行改为

c1=‘’a‘’;

c2=‘’b‘’;

再运行,并分析结果。

○6再将第4、5行改为

c1=300; 程序设计

页脚内容4 c2=400;

再运行,并分析结果。

以字符型输出时,输出的将是300,400对应的字符。

(2)输人并运行教材第3章习题3. 6给出的程序

#include

main ()

{

char c1='a',c2='b',c3='c',c4='\101',c5='\116';

printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);

printf("\t\b%c %c\n",c4,c5);

}

#include

void main()

{ 程序设计

页脚内容5 int a,b;

unsigned c,d;

long e,f;

a=100;

b=-100;

e=50000;

f=32767;

c=a;

d=b;

printf("%d,%d\n",a,b);

printf("%u,%u\n",a,b);

printf("%u,%u\n",c,d);

c=a=e; d=b=f;

printf("%d,%d\n",a,b);

printf("%u,%u\n",c,d);

}

请对照程序和运行结果分析: 程序设计

页脚内容6 ①将一个负整数斌给一个无符号的变t,会得到什么结果。画出它们在内存中的表 示形式。

②将一个大于32767的长整数斌给整型变t,会得到什么结果。画出它们在内存中 的表示形式。

③将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535以及小于65535的情况)。画出它们在内存中的表示形式。

○1得到的是原来正数取存的数

○2将一个大于32767的长整数斌给整型变t,造成溢出,数据丢失。

○3可能会溢出,也可能正常。

(4)输人习题3. 10

#include

void main()

{

int i,j,m,n; 程序设计

页脚内容7 i=8;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d\n",i,j,m,n); }

①运行程序,注意i,j,m,n各变量的值。分别作以下改动并运行:

②将第6,7行改为:

m=i++; n=++j;

再运行。

③将程序改为:

#include

void main()

{

int i,j;

i=8;

j=10;

printf("%d,%d\n",i++,j++); 程序设计

页脚内容8 }

④在③的基础上,将printf语句改为:

printf("%d,%d,%d,%d\n",i,j,++i,++j);

⑤再将printf语句改为:

printf("%d,%d,%d,%d\n",i,j,i++,j++);

⑥将程序改为:

#include

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=%d\n",i,j,m,n); }

②将第6,7行改为:

m=i++; n=++j; 程序设计

页脚内容9 再运行。

以上程序结果的不同均是由于自增自减运算符引起的,考虑到一个判断技巧,看自增自减运算符时,先将它们从原程序中拿出来,如果++或—在后,就先把值放回去,然后自增自减,如果在前,先自增自减,再把结果放进去。

printf("%d,%d,%d,%d\n",i,j,++i,++j);

#include

void main()

{

int i,j,m=0,n=0;

i=8; j=10;

m+=i++;

n-=--j; 程序设计

页脚内容10 printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n); }

实验5 循环控制

一、实验目的:

(1)熟练掌握for 语句、while 语句、do-while 语句实现循环的方法;

(2)理解循环嵌套及其使用方法;

(3)掌握break 语句与continue 语句的使用;

(4)掌握用循环实现一些常用算法(如穷举、迭代、递推等)。

二、实验内容:

1.输入两个正整数,求其中最大公约数和最小公倍数。

2. 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。

3.用牛顿迭代法求方程 2X3- 4X2+ 3X- 6=0在 1.5附近的根。

4. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过痛,又多吃了一

个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一

天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了

多少桃子。

三、程序调试与问题解决: 程序设计

页脚内容11 1.输入两个正整数,求其中最大公约数和最小公倍数。

编译无错误,运行如上图所示,使用了最简单的算法,清晰易理解,同时注意了编程的格式,在以往编程序时,往往不注意上下对齐等问题,容易出现缺标点等现象,将大括号一级一级对齐后,可以有效地避免出错。

发现一个技巧,打括号时一次打出一对括号,可以减少括号不配对的错误。

2. 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。

编译无误,测试正确,写该程序时特意加了注释,以便阅读。

3.用牛顿迭代法求方程 2X3- 4X2+ 3X- 6=0在 1.5附近的根。

该程序缺少#include;是截图原因,原程序中是存在的。

最开始不知道fabs函数的用法,通过百度查询。

4. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过痛,又多吃了一 程序设计

页脚内容12 个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一

天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了

多少桃子。

实验7 函数

一、实验目的:

(1) 掌握定义函数的方法。

(2) 掌握函数实参与形参的对应关系及值传递的方式。

(3) 掌握函数的嵌套调用和递归调用的方法。

(4) 掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。

(5) 学习对多文件程序的编译和运行。

二、实验内容:

1.写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。本程序应当准备以下测试数据:17、34、2、1、0。分别运行并检查结果是否正确。

2.用一个函数来实现将一行字符串中最长的单词输出。此行字符从主函数传递给该函数。(1)把两个函数放在同一个程序文件中。

(2)将两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。

3.用递归法将一个整数n转换成字符串。例如输入483.应输出字符串“483”。n的位数不确定,