计算机实验报告.docx

发布时间:2020-11-23   来源:文档文库   
字号:



.
实验指导
实验一 Visual C++6.0 开发环境使用


大气科学专业 实验日期


4 18 姓名:学号
1.实验目的




1)熟悉 Visual C++6.0 集成开发环境。
2)掌握 C 语言程序的书写格式和C语言程序的结构。 3)掌握 C 语言上机步骤,了解
C 程序的运行方法。
4)能够熟练地掌握 C 语言程序的调试方法和步骤
2. 实验容
输入如下程序,实现两个数的乘积。 #include int main( {
x=10 y=20 p=prodct(x,t
printf("The product is : ",p int prodct(int a ,int b int c c=a*b return c
}
1)在编辑状态下照原样键入上述程序。
(stdio.h;
Word 资料





.
2)编译并运行上述程序,记下所给出的出错信息。


3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。


Word 资料



.
3 .分析与讨论
1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。 2)总结C程序的结构和书写规则。 实验心得:
通过本次实验,我了解到
C 语言的特点,初步认识程序设计方法和程序设计一般步骤,掌握
程序编译、和运行过程,为我进一步学好
C 语言打下了基础。
Word 资料
C 语言











.
实验二 数据类型、运算符和表达式大气科学专业 实验日期 4 25 姓名:园园1.实验目的
1)理解常用运行符的功能、优先级和结合性。 2)熟练掌握算术表达式的求值规则。 3)熟练使用赋值表达式。
4)理解自加、自减运算符和逗号运算符 5)掌握关系表达式和逻辑表达式的求值
2.实验容
1)整数相除 #include int main( {
int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a;
printf("d=%d , e=%d ,f=%d\n",d,e,f; return 0;
}
Word 资料
学号20151301327



















.
2)自加、自减运算 #include int main( {
int a=5,b=8;
printf("a++=%d\n",a++; printf("a=%d\n",a; printf("++b=%d\n",++b; printf("b=%d\n",b; return 0;
}
3)关系运算和逻辑运算
Word 资料





.
#include int main( {
int a=5,b=8,c=8;
printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a<=c; printf("%d,%d\n",a<=b||a>=c,a==b||b==c;
printf("%d,%d,%d,%d\n",!(a==b,!(a>=b,!(a>=c,!(a<=b; return 0;
}
1)在编辑状态下输入上述程序。
Word 资料



.



2

Word 资料






.
3.分析与讨论





1)整数相除有什么危险?应如何避免这种危险? 2)分析 a++ ++a 的区别。
3)条件表达式和逻辑表达式的意义是什么,它们取值如何? 4)如何比较两个浮点数相等?为什么? 实验心得:
1.理解了 C 语言的基本数据类型(占用存、数据围) 2.掌握了变量定义的方法
3.掌握了常用的运算符的使用(功能、运算对象数目、优先级和结合性) 4.掌握了混合运算的数据转换方法
为后面进一步学习
C 语言及其相关的运算储备了知识。
Word 资料





.
实验三 格式化输入输出函数的使用


大气科学专业 实验日期 5 2 姓名:园园


学号 20151301327
1.实验目的




1)掌握格式字符使用的方法。
2)掌握 printf( 进行格式化输出的方法。 3)掌握 scanf( 进行格式化输入的方法。
2.实验容


1)输入如下程序,观察运行结果 #include int main( {
int x=1234; float f=123.456; double m=123.456; char ch='a';
char a[]="Hello,world!"; int y=3,z=4;
printf("%d %d\n",y,z;
printf("y=%d , z=%d\n",y,z; printf("%8d,%2d\n",x,x;
printf("%f,%8f,%8.1f,%.2f,%.2e\n",f,f,f,f,f; printf("%lf\n",m; printf("%3c\n",ch;
printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a; return 0;
}
Word 资料





.
2)输入下面程序,观察调试信息 #include int main( {double x,y;
char c1,c2,c3; int a1,a2,a3;
scanf("%d%d%d",a1,a2,a3; printf("%d,%d,%d\n",a1,a2,a3; scanf("%c%c%c",&c1,&c2,&c3; printf("%c%c%c\n",c1,c2,c3;
Word 资料





.
scanf("%f,%lf",&x,&y; printf("%f,%lf\n",x,y; return 0;
}


1)在 VC++6.0 集成开发环境中输入上述程序,观察调试结果。 2)如果有错误,请修改程序中的错误。
3.分析与讨论





1)分析程序错误及运行结果错误的原因。 2)总结 printf( 中可使用的各种格式字符。 3)总结转移字符的使用和功能。
Word 资料





.
实验心得:
在这个实验中, 我掌握了输入输出函数的用法, 明白它不是语句, 而是函数以及控制字符串的类型等,为进一步学习后面的知识有了一定了解,慢慢读懂程序。


Word 资料





.
实验四 分支结构程序设计


大气科学专业 实验日期 5 9 姓名:园园


学号 20151301327
1.实验目的




1)了解条件与程序流程的关系
2)了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。 3)掌握 if 语句和 if else 语句的用法 4)掌握 switch 语句的用法
2.实验容

1.从键盘上输入三个数, 让它们代表三条线段的长度, 请写一个判断这三条线段所组成的三角形属于什么类型(不等边, 等腰,等边或不构成三角形) C 程序。 请分别设计下列数据对自己的程序进行测试:


Word 资料





.
1)找出各条语句中的错误。 2)找出各分支中的错误。 3 找出各条件中的错误。
4 找出各种条件组合中的错误。 5 找出各条路径中的错误。
2. scanf 函数输入一个百分制成绩
(整型量 ,要求输出成绩等级
A B C D E。其中 90-100
A 80-89 分为 B 70-79 分为 C 60-69 分为 D60 分以下为 E。具体要求如下 :
Word 资料





.
1 )用 if 语句实现分支或 switch 分支。 2 )在输入百分制成绩前要有提示。






3 )在输入百分制成绩后,要判断该成绩的合理性,对于不合理的成绩
应输出出错信息。
4 )在输出结果中应包括百分制成绩与成绩等级,并要有文字说明。
(即大于 100 分或小于 0



5 )分别输入百分制成绩: -90 100 9085 70 60 45 101 ,运行该程序。 3.编程找出 5 个整数中的最大数和最小数,并输出找到的最大数和最小数。
3.分析与讨论


1)总结分支程序设计的方法。 2)复合语句的使用。
3 switch 语句的注意事项。 实验心得:
在这个实验中,我掌握了分支结构的程序设计,理解了分支语句的嵌套以及 用,了解了三种基本结构之一。
break 在分支语句中的作



Word 资料





.
实验五 循环结构程序设计


大气科学专业 实验日期 5 16 姓名:园园
学号 20151301327
1.实验目的
1)掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。 2)了解条件型循环结构的基本测试方法。 3)掌握如何正确地控制计数型循环结构的次数。 4)了解对计数型循环结构进行测试的基本方法。 5)了解在嵌套循环结构中,提高程序效率的方法。
2.实验容
1)输入一个正整数,并将其颠倒过来。如
12345 对应为 54321
2)将一个长整型数 s 的每一位数位上的偶数依次取出来,构成一个新的数
t 中,高位仍在高位,低位Word 资料














.
仍在低位,例如: s=87653142 时, t 中的数为: 8642 #include #include int main( {
long int a,b,c=0; scanf("%d",&a; if(a<=0 {
printf("wrong\n"; exit(0; }
while(a!=0 {
b=a%10; if(b%2==1 {
b=0;
exit(0;
}
c=c*10+b; a=a/10;
}
printf(" 反位数为: %d\n",&c; return 0;
}(待修改)
Word 资料



.

3 101~200 Word 资料










.



4

3.分析与讨论
1 条件循 构的一般方法。
2)如何 数型循 构的控制表达式中的
3)从 中你得到了哪些提高嵌套循 程序效率的启示? 心得: 1.三种循
while do while,for 句各种运行方法
C 言打下了基
2. 句的嵌套的 行流程
因此,学好三大基本 构中的复 的循 构, 学好




Word 资料





.
实验六 函数

大气科学专业 实验日期 5 23 姓名:园园
学号 20151301327
1.实验目的
1)掌握 C 语言函数定义及调用的规则。 2)理解参数传递的过程。
3)掌握函数返回值的大小和类型确定的方法。 4)理解变量的作用围
2.实验容
1)上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。#include int main( {
int x,y;
printf("%d\n",sum(x+y; int sum(a,b {
int a,b; return(a+b;
}
return 0;
}
Word 资料













.
未声明变量类型,未声明外部函数


2)编写一个程序,输入系数


a b c,求一元二次方程 ax 2 bx c
0 的根,包括主函数和如下函
数。
判断 a 是否为零。 计算判别式 b2
4ac


计算根。 输出根。
#include #include int main ( {
double a,b,c,delta,x1,x2,p,q; scanf("%d,%d,%d",&a,&b,&c; if(a==0
printf(" 不是一元二次方程 \n";
else {
delta=b*b-4*a*c;
if(delta==0 {
printf(" 有两个相等的实数根 \n";
x1=-b/(2*a; x2=x1;
printf("%.2lf , %.2lf\n",x1,x2;
Word 资料





.
}
else if(delta>0 {
printf(" 两个不等的实数根 \n";
x1=-b/(2*a+sqrt(delta/(2*a; x2=-b/(2*a-sqrt(delta/(2*a;
printf("%.2lf , %.2lf\n",x1,x2;
} else
{printf(" 两个不等的复数根 \n";
p=-b/(2*a;
q=sqrt(-delta/(2*a;
printf("%.2lf + %.2lf\n",p,q; printf("%.2lf - %.2lf\n",p,q;
}
}return 0;
}
Word 资料





.
3)输入下面程序,分析运行结果 #include int func (int ,int int main (
{ int k=4,m=1,p1,p2;
p1=func(k,m ; p2=func(k,m ;
printf("%d,%d\n",p1,p2 ; return 0;
}
;
Word 资料





.
int func (int a,int b { static int m=0,i=2;
i+=m+1; m=i+a+b; return (m;
}
3.分析与讨论

1)针对以上实验容写出相应的参数传递过程并分析结果。


Word 资料





.

2)函数在定义时要注意什么? 3)讨论静态局部变量的继承性?实验心得:
C 语言是由函数组成的,所以学好函数对 1.掌握了函数的声明和定义规。
2.掌握了函数的形式参数和实际参数的定义和用法。 3.掌握了函数的返回值的大小和类型。 4.掌握了函数的调用方法和参数传递。 5.了解了函数的嵌套调用。
6.掌握了函数的递归调用及其程序规。 7.了解变量储存类型的基本概念。 8.掌握了局部变量与全局变量的概念。
C 语言非常重要。


Word 资料





.
实验七 数组及其应用
大气科学专业 实验日期 5 30 姓名:园园
1.实验目的
1)掌握数组定义的规则。 2)掌握 C 语言数组的基本用法。 3)掌握数组名作为函数参数传递的方法
2.实验容
1)运行下面的 C 程序,根据运行结果,可以说明什么? #include int main( {
int num[5]={1,2,3,4,5}; inti i;
for(i=0;i<=5;i++
printf("%d ",num[i];
return 0;
Word 资料
学号20151301327
















.
}
2)为一个冒泡排序程序设计测试用例,并测试之。
(题设答案)
#include main( {
int a[10],i,j,k; for(i=0;i<10;i++
scanf("%d",&a[i]; for(j=0;j<10;j++
for(i=0;i<9;i++
if(a[i]>a[i+1]
Word 资料





.
{k=a[i];a[i]=a[i+1];a[i+1]=k;}
for(i=0;i<10;i++
printf("%d",a[i];
return 0;
}
3)操作符 & 用以求一个变量的地址,这在函数 scanf 中已经使用过了。现在要你设计一个程序,返回一个 3 ×5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存储的。


3.分析与讨论





1)通过实验,分析定义与引用数组的区别。 2)数组的作用是什么? 3)数组名作为参数有什么特点?实验心得:
数组是 C 语言最常用也最为重要的数据结构。
1.掌握了数组的声明和存放,初始化和数组元素的引用方法。 2.掌握了数组下标的使用方法。 3.了解了多维数组声明和操作。 4.掌握了字符串定义及使用方法。 5.初步理解了排序和查找等基本方法。
Word 资料





.
实验八 指针及其应用
大气科学专业 实验日期 6 6 姓名:园园.实验目的
1 )掌握变量的指针及其基本用法。 2 )掌握一维数组的指针及其基本用法。
3 )掌握指针变量作为函数的参数时,参数的传递过程及其用法。
2.实验容
1 )对以下程序进行运行 ,并从中了解变量的指针和指针变量的概念。# include int main(
{
int a=5,b=5,*p; p=&a;
printf("%d ,%ud\n",a,p; *p=8;
printf("%d ,%ud\n",a,p; p=&b;
printf("%d ,%ud\n",a,p; b=10;
printf("%d ,%ud\n",a,p; return 0;
}
Word 资料
学号20151301327





1















.
2 )运行以下程序,观察 &a[0] &a[i] p 的变化,然后回答以下问题
1)序的功能是什么 ? 2)在开始进入循环体之前, 4)退出循环后, p 指向谁 ?
5)你是否初步掌握了通过指针变搔引用数组元素的方法
# include int {
int i,*p,s=0,a[5]={5,6,7,8,9}; p=a;
for(i=0;i<5;i++,p++
s+=*p;
printf("s=%d\n",s; return 0;
}
main(
?
:
p 指向谁 ?
3)循环每增加一次, p 的值 (地址 增加多少 ?它指向谁 ?
Word 资料





.


3 )先分析以下程序的运行结果, 然后上机验证, 并通过此例掌握通过指针变量引用数组元素的各种方法。
#include int main( {
int i,s1=0, s2=0, s3=0, s4=0,*p,a[5]={1,2,3,4,5}; p=a;
for(i=0;i<5;i++
s1+=p[i]; for(i=0;i<5;i++
s2+=*(p+i;
for(p=a;p
s3+=*p;
p=a;
for(i=0;i<5;i++
s4+=*p++;
printf("\n s1=%d, s2=%d, s3=%d, s4=%d",s1,s2,s3,s4; return 0;
Word 资料





.
}
4 )编写函数,将 n 个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成:
1输入 10 个数; 2调用此函数进行重排; 3输出重排后的结果。







3 .分析与讨论

1)指针的定义方法,指针和变量的关系。

int *a;

2)数组和指针的关系。


Word 资料





.
数组时连续分配一串单元,数目开始定义的时候就必须固定下来,看起来整洁,但是写的


程序是死程序,容易浪费存


指针存放一个地址值,表示指向某一个单元,可以用指针来索引单元。数组可以完成栈,


堆,树等等的操作,它在编程时候的好处是非常的灵活,在构建思路的时候有很大的灵活


性。


实验心得:


指针是重要的部分。


1.掌握了指针的声明和存放,初始化和指针变量的引用方法。 2.掌握了指针做为函数的参数。 3.了解了指向数组的指针。 4.掌握了指向字符串的指针。


5.能在程序运行时应用动态分配预留新的储存空间。 学习指针利于我们更好地利用
C 语言这门工具,更好地利用这门工具。


Word 资料


本文来源:https://www.2haoxitong.net/k/doc/ed907715c57da26925c52cc58bd63186bdeb9250.html

《计算机实验报告.docx.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式