语言实到验报告.docx

上传人:b****5 文档编号:28599354 上传时间:2023-07-19 格式:DOCX 页数:28 大小:33.62KB
下载 相关 举报
语言实到验报告.docx_第1页
第1页 / 共28页
语言实到验报告.docx_第2页
第2页 / 共28页
语言实到验报告.docx_第3页
第3页 / 共28页
语言实到验报告.docx_第4页
第4页 / 共28页
语言实到验报告.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

语言实到验报告.docx

《语言实到验报告.docx》由会员分享,可在线阅读,更多相关《语言实到验报告.docx(28页珍藏版)》请在冰豆网上搜索。

语言实到验报告.docx

语言实到验报告

 

《C程序设计》实验报告

(2007-2008学年第一学期理科类)

 

系:

班级:

学号:

姓名:

 

信息工程学院

2007.9.1

实验1C程序的运行环境和运行方法

一、实验目的

(1)了解如何编辑、编译、连接和运行一个C程序。

(2)通过运行简单的C程序,初步了解C程序的特点。

二、实验内容和步骤

1.进入C的工作环境(TurboC2.0)

Windows环境下:

找到“TC”文件夹,双击TC.EXE文件。

此时屏幕上出现TurboC的工作环境。

(最大化用ALT+Enter组合键)

2.熟悉TurboC2.0集成环境

1了解和熟悉编辑(Edit)窗口和信息(Message)窗口的作用。

按功能键F5,观察它有什么作用,再按一次F5,再观察它有什么作用。

按F6,观察它有什么作用;再按一次F6,再观察它有什么作用。

F5的作用:

F6的作用:

2按功能键F10,并按回车键,观察“File”菜单,了解它们的作用和用法。

3选择File菜单中的New,在编辑窗口中随意输入几行字符,观察窗口顶部左端line和col后面数字的变化。

{所有源程序应按章号和题号命名(如文件名T1_1表示第一章第一个实验题),并提到网上,以备后查}

3.输入并运行一个简单的程序

1选择File菜单中的New命令,新建新的源程序文件(编辑窗口变成空白)。

输入下面的程序。

#include

voidmain()

{printf(“ThisisaCprogram.\n”);

}

2选择File菜单中的save保存,输入文件名T1_1(选择好路径),也可按功能键F2进行存盘。

3选择compile菜单中的compile命令编译源程序,观察屏幕上显示的编译信息。

如果出现“出错信息”,则应找出原因并改正之,再进行编译,最后生成.obj文件,(也可按功能键ALT+F9进行编译)

4选择compile菜单中的link命令连接,生成可执行程序文件(.exe文件)。

③、④步也可通过选择compile菜单中的make命令连接来一次性完成

5如果编译无错误,选择run菜单中的run命令运行程序,(也可按Ctrl+F9键使程序运行)

6按Alt+F5键,切换到用户屏,观察运行结果。

按任意键返回。

运行结果:

4.输入并编辑一个C程序

1再选择File→New,使编辑窗口变成空白。

2输入以下程序。

#include

voidmain()

{inta,b,sum;

a=123;b=456;

sum=a+b;

printf(“sumis%d\n”,sum);

}

保存源程序文件,输入文件名T1_2。

3进行编译、连接,然后运行程序,观察运行结果。

运行结果:

6.输入并运行一个需要在运行时输入数据的程序

1选择File菜单中的New,使编辑窗口变成空白,输入下面的程序。

#include

voidmain()

{inta,b,c;

printf("inputa,b:

");

scanf("%d,%d",&a,&b);

c=max(a,b);

printf("max=%d",c);

}

intmax(intx,inty)

{intz;

if(x>y)z=x;

elsez=y;

return(z);

}/*所有程序全部输入,max部分也是整个C程序的一部分*/

按功能键F2进行存盘,输入文件名T1_3。

2编译并运行,在运行时从键盘输入整数2和5,然后按回车键,按Alt+F5键,观察运行结果。

运行结果:

7.运行一个自己编写的程序

题目:

输入a、b、c三个值,输出其中最大者。

1输入自己编写的源程序,以T1_4作为文件名。

(可仿照上一题程序)

源程序:

 

2运行程序,输入数据,观察结果。

运行结果:

3用File→New将编辑窗口清空,再选File→Load将该文件读入,检查编辑窗口中的内容是否是刚才保存的程序。

4选择File→Quit关闭TurboC,也可用ALT+X关闭。

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

一、实验目的

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

(2)掌握不同的类型数据之间赋值的规律。

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

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

二、实验内容和步骤

1.输入并运行下面的程序

#include

voidmain()

{charcl,c2;

cl='a';

c2='b';

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

}

①运行此程序。

运行结果:

②在此题最后增加一个语句:

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

再运行。

运行结果:

③将第3行改为:

intc1,c2;

再使之运行。

运行结果:

④再将第3,4行改为:

c1=a;/*不用撇号*/

c2=b;

再使之运行。

分析出错原因

⑤再将第4、5行改为:

c1="a";/*用双撇号*/

c2="b";

再使之运行,分析其运行结果。

分析出错原因

⑥再将第4、5行改为:

c1=300;/*用大于255的整数,在charcl,c2;的基础上*/

c2=400;

再使之运行。

运行结果:

2.输入并运行教材第3章习题3.6给出的程序

#include

Voidmain()

{charc1='a',c2='b',c3='c',c4='\101',c5='\116';

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

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

}

上机前先用人工分析程序,写出应得结果:

上机运行结果:

3.输入并运行下面的程序

#include

voidmain()

{inta,b;

unsignedc,d;

longf;

a=100;b=-100;c=32769;f=65580;

printf(“%d,%d\n”,a,b);

c=a;d=b;

printf(“%u,%u\n”,c,d);

a=f;c=f;

printf(“%d,%u,%u\n”,a,c,f);

}

1请对照程序和运行结果分析

2将一个负整数赋给一个无符号的变量,会得到什么结果。

并分析原因。

结果:

原因:

3将一个大于32767的长整数赋给整型变量,会得到什么结果。

并分析原因。

结果:

原因:

4将一个长整数赋给无符号变量,会得到什么果.。

并分析原因。

结果:

原因:

4.输入习题3.10

#include

Voidmain()

{inti,j,m,n;

i=8;j=10;

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

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

}

1运行程序,注意i、j、m、n各变量的值。

运行结果:

②将第4、5行改为:

m=i++;

n=++j;

再运行。

运行结果:

5.编程序并上机运行

要将“China”译成码,译码规律是:

用原来字母后面的第4个字母代替原来的字母。

例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。

因此,“China”应译为“Glmre”。

请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为'C'、'h'、'i'、'n'、'a',经过运算,使c1、c2、c3、c4、c5分别变为'G'、'1'、'm'、'r'、'e',并输出。

1源程序:

(以T2_5为文件名)

 

2改变c1、c2、c3、c4、c5的初值为:

'T'、'o'、'd'、'a'、'y',修改程序并运行。

运行结果为:

实验3最简单的C程序设计

一、实验目的

(1)掌握C语言中使用最多的一种语句——赋值语句的使用方法。

(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。

二、实验内容和步骤

1.掌握各种格式转换符的正确使用方法

1输入程序

#include

Voidmain()

{inta,b;

floatd,e;

charc1,c2;

doublef,g;

longm,n;

unsignedp,q;

a=61;b=62;

c1='a';c2='b';

d=3.56;e=-6.87;

f=3157.890121;g=0.123456789;

m=50000;n=-60000;

p=32768;q=40000;

printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);

printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\n",f,g,m,n,p,q);

}

2运行此程序写出结果:

3在此基础上,修改程序的第8~13行:

a=61;b=62;

c1=a;c2=b;

f=3157.890121;g=0.123456789;

d=f;e=g;

p=a=m=50000;q=b=n=-60000;

运行程序,写出结果:

4将printf语句改为:

printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.12f\n",a,b,c1,c2,d,e);

printf("f=%f,g=%f\nm=%d,n=%d\np=%d,q=%d\n",f,g,m,n,p,q);

运行程序,写出结果:

2.编写程序

设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf输入数据(r,h),输出计算结果。

输出时要有文字说明,取小数点后两位数字。

源程序:

(以T3_2作为文件名。

 

运行结果:

 

3.编程序,输入一个华氏温度,要求输出摄氏温度。

公式为

输出时要有文字说明,取2位小数。

(注意:

在什么情况下为实型除法,这里不是指整型除法哦!

源程序:

(以T3_3作为文件名。

 

分别用90,100,32做为测试数据,写出运行结果:

 

实验4逻辑结构程序设计

一、实验目的

(1)了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。

(2)学会正确使用逻辑运算符和逻辑表达式。

(3)熟练掌握if语句和switch语句。

(4)结合程序掌握一些简单的算法。

(5)学习调试程序。

二、实验内容

本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。

1.有一函数:

要求用scanf函数输入x的值,求y值并用printf函数输出y。

源程序:

(以T4_1作为文件名。

 

运行程序,分别用-4,6,28做为测试数据,写出运行结果:

输入:

-4

输出:

输入:

6

输出:

输入:

28

输出:

2.给一个不多于5位的正整数,要求:

①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。

源程序:

(以T4_2作为文件名。

 

运行程序,分别用2,18,135,3467,45796做为测试数据,写出运行结果:

输入:

2

输出:

输入:

18

输出:

输入:

135

输出:

输入:

3467

输出:

输入:

45769

输出:

除此之外,程序还应当对不合法的输入作必要的处理。

例如:

·输入负数;

·输入的数超过5位。

程序修改部分:

 

输入:

-3

输出:

输入:

123456

输出:

3.输入一个日期(含年、月、日),编程序输出该日期是该年度中的第几天。

要求:

①输入格式为年/月/日;②程序应当对不合法的输入作必要的处理。

如:

·月份超过12,日期超过31

·年月日为负数。

源程序:

(以T4_3作为文件名。

 

运行程序,分别用以下测试数据测试,写出运行结果:

输入:

2002/3/23

输出:

输入:

2004/15/34

输出:

输入:

-1004/4/-5

输出:

4.下列程序实现从键盘接收3个数,输出最大数和最小数

源程序:

(以T4_4作为文件名)

 

实验5循环控制

一、实验目的

熟悉掌握用while语句,do-while语句和for语句实现循环的方法。

掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。

进一步学习调试程序。

二、实验内容

编程序并上机调试运行。

1.输入两个正整数m和n,求它们的最大公约数和最小公倍数。

在运行时,输入的值m>n,观察结果是否正确。

重新运行,输入时使m

源程序:

(以T5_1作为文件名。

 

运行程序,分别用8和12、22和10做为测试数据,写出运行结果:

 

2.猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

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

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩一个桃子了。

求第一天共摘了多少桃子。

源程序:

(以T5_2作为文件名。

 

运行程序,写出运行结果:

3.编程计算1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+n)的值。

(本题中的n从键盘输入,且假设在20以内)

源程序:

(以T5_3作为文件名。

 

4.试编程:

找出1至99之间的全部同构数。

同构数是这样一组数:

它出现在平方数的右边。

例52=25,5在25的右边,5是同构数;252=625,25在625的右边,25是同构数。

源程序:

(以T5_4作为文件名。

 

运行程序,写出运行结果:

4.编程求100~300之间的全部素数的和

源程序:

(以T5_5作为文件名。

 

运行程序,写出运行结果:

5.

运行程序,写出运行结果:

课后思考题(以前考试题):

1.利用下面公式求s的值(求20项之和)

s=1/(1*2*3)-1/(2*3*4)+1/(3*4*5)-1/(4*5*6)+...+1/(19*20*21)-1/(20*21*22)

2.一个素数加上1000以后是43的倍数,求满足这个条件的最小素数。

3.有2个小于40的正整数a和b,a的平方与b的和是1053,b的平方与a的和是873,请编程求满足条件的a和b的值。

(提示:

满足条件的a,b的值唯一)

4.一个自然数除以2余1,除以3余2,除以4余3,除以5余4,除以7余5,求满足这个条件的最小的自然数?

5.求所有的"水仙花数"之和。

所谓"水仙花数"是指一个三位数,其各位数字的立方和等于该数本身。

例如153是一个"水仙花数",因为:

153=1*1*1+5*5*5+3*3*3。

6.分别计算500到1300之间所有既能被7整除又能被13整除的奇数和偶数之和。

7.统计用0-9之间不同的3个数构成一个三位数有多少种方法

实验6数组

一、实验目的

(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法;

(2)掌握字符数组和字符串函数的使用;

(3)掌握与数组有关的算法(特别是排序算法)。

二、.实验内容

编程序并上机调试运行。

1.已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入到数组中,要插入的数用scanf函数输入。

源程序:

(以T6_1作为文件名。

 

运行程序,测试数据为:

有序数组3,5,6,17,23,41,45,54,68,90,102,123,156,178,195

输入:

2

结果:

输入100

结果:

2.找出一个二维数组的“鞍点”的值及位置,即该位置上的元素在该行上最大,在该列上最小。

若没有鞍点,则输出“无鞍点”。

源程序:

(以T6_2作为文件名。

 

运行程序,测试数据为:

①二维数组有鞍点

98020540

90-60961

210-310189

结果:

②二维数组没有鞍点

98020540

90-601961

210-310189

45541567

结果:

3.判断输入的字符串是否"回文"(即顺读和倒读都一样,例如:

ABCBA,字符串首部和尾部的空格不参与比较),是输出“yes”,否则输出“no”。

源程序:

(以T6_3作为文件名。

 

输入ABCDCBA,结果是:

输入ABCDEFG,结果是:

4.删除字符串s(从键盘输入)中的所有数字字符,然后输出

源程序:

(以T6_4作为文件名。

 

运行程序,测试字符串为:

“ab1,C2D34,E”

结果:

5.输入一串字符,以‘?

’结束,统计各字母出现的次数,并按字母出现的多少输出,不出现的字母不输出。

例:

输入5B3A+4-HDEH5DH?

输出A1

B1

D2

E1

H3

源程序:

(以T6_5作为文件名。

 

运行程序,测试数据为:

5BBB3AD+4366TM-HDEH5DH?

结果:

课后思考题(以前考试题):

1.用冒泡法对输入的10个整数进行排序

2.用选择法对输入的10个整数进行排序

3.从键盘输入10个整数存入数组a中,再将数组中的元素逆序存放后输出。

4.有15个有序数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。

如果该数不在数组中,则输出“无此数”。

要找的数用scanf函数输入。

5.分别将有序数组a和b中的数归并到c数组中(C数组中仍然有序)。

6.编程输出以下的杨辉三角形(输出前7行)。

实验7函数

一、实验目的

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

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

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

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

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

二、实验内容

编程序并上机调试运行。

1.求两个整数的最大公约数和最小公倍数。

用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。

①不用全局变量,分别用两个函数求最大公约数和最小公倍数。

两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。

源程序:

(以T7_1作为文件名。

#include

gcd(inta,intb)

{

 

}

gxd(inta,intb,intg)

{

}

voidmain()

{intx,y;

inti,j;

scanf("%d%d",&x,&y);

i=gcd(x,y);

j=gxd(x,y,i);

ptintf("%dand%dgcdis%d,gxdis%d\n",x,y,i,j);

}

运行程序,测试数据为:

35215

结果:

②用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。

将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值。

修改程序如下:

(以T7_1_1作为文件名。

 

2.递归法将一个整数n转换成字符串。

例如,输入483,应输出字符串“483”。

N的位数不确定,可以是任意的整数。

源程序:

(以T7_2作为文件名。

 

运行程序,测试数据分别为:

1234

结果为:

测试数据分别为:

783

结果为:

测试数据分别为:

46778

结果为:

3.写一函数,输入一个两位的十六进制数,输出相应的十进制数。

子函数:

(以T7_3作为文件名。

 

voidmain()

{charhx[2];intd;

printf("pleaseinputanum(hex):

")

scanf("%c%c",&hx[0],&hx[1]);

d=change(hx);

printf("thisnumis:

",d);

}

运行程序,测试数据分别为:

AB

结果为:

4.验证歌德巴赫猜想(任何充分大的偶数都可以由两个素数之和表示)。

用一个函数进行判定素数,再用此函数将一个偶数用两个素数之和表示,主函数中输出4—100之间的所有偶数用两个素数之和表示:

(以T7_4作为文件名。

子函数1:

 

子函数2:

 

main()

{inti;

for(i=4;i<=100;i=i+2)

{print(i);/*将i用两个素数之和表示*/

printf("\n");

}

}

运行程序结果为:

课后思考题(以前考试题):

1.用递归的方法求n!

2.自己设计一mystrcat()函数,实现将字符串b连接到字符串a的后面。

3.输出100~200之间的全部素数的和(用一函数来判断一个数是否为素数)

4.用递归的方法计算F(n)(n给定,F(n)函数定义如下:

F

(1)=1,F

(2)=1,F(n)=F(n-1)+F(n-2))。

实验8指针

一、实验目的

(1)通过实验进一步掌握指针的概念,会定义和使用指针变量;

(2)能正确使用数组的指针和指向数组的指针变量;

(3)能正确使用字符串的指针和指向字符串的指针变量;

(4)能正确使用指向函数的指针变量;

(5)了解指向指针的指针的概念及其使用方法。

二、实验内容

1.写结果并分析原因:

swap1(intx,inty)

{intt;

t=x;x=y;y=t;

}

swap2(int*x,int*y)

{intt;

t=*x;*x=*y;*y=t;

}

swap3(int*x,int*y)

{inta,int*t=&a;

t=x;x=y;y=t;

}

main()

{inta=10,b=30;

int*p1=&a,*p2=&b;

swap1(a,b);

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

}

运行结果为:

将swap1(a,b)改为swap2(a,b),运行结果为:

将swap1(a,b)改为swap2(a,b),运行结果为:

分析原因:

2.将一个3×3的矩阵转置,用一函数实现之。

要求:

在主函数中用scan

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

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

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