2022年高级语言程序设计实验 .pdf
实用标准文档大全陕西理工大学高级语言程序设计( C) 实验报告院系:班级:学号:姓名:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 25 页 - - - - - - - - - 实用标准文档大全目录实验一: C开发环境与顺序结构程序设计. 21实验目的:. 22实验环境:. 23实验步骤:. 24实验内容:. 35实验总结. 9实验二:分支结构与循环结构程序设计. 10 1. 实验目的:. 10 2. 实验环境:. 10 3. 实验内容:. 10 4. 实验总结. 18 实验三数组及数组的应用. 19 1. 实验目的:. 19 2. 实验环境:. 19 3. 实验内容:. 19 4. 实验总结:. 20 实验四:函数与指针. 21 1. 实验目的:. 21 2. 实验内容:. 21 3. 实验总结. 24 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 25 页 - - - - - - - - - 实用标准文档大全不正确正确无有开始结束编辑编译连接(组建)执行有错?结果正确?源程序f.cpp 目标程序f.obj 库函数和其它目标程序可执行目标程序 f.exe 实验一: C开发环境与顺序结构程序设计专业班级学号姓名实验学时4 实验类型设计实验地点实验时间指导老师周涛成绩教师批语年月日1实验目的:(1) 了解集成开发环境VC+6.0的使用方法,理解相关命令的含义,掌握编辑、编译、连接以及运行调试的方法,掌握程序的基本结构,掌握输入输出的方式。(2) 掌握程序设计的基本要素中的数据类型、变量、运算符以及表达式的运用。(3) 学会正确使用逻辑运算符和逻辑表达式以及关系运算符与关系表达式,掌握在程序设计中灵活使用顺序结构。2实验环境:(1) 硬件环境CPU : Inter Pentium(R)4 CPU 3.00GHz 以上内存: 2GByte 硬盘: 500GByte (2) 软件环境操作系统: Microsoft Windows 7 编译系统: Microsoft Visual C+ 6.0 3实验步骤:按如图所示流程进行实验内容的调试。(1) 在 XP 操 作 系 统 中 , 启 动VC+6.0编译环境;(2) 在 VC+6.0编译界面输入 C源程序;(3) 选择编译、组建、执行命令进行编译、链接和运行,并记录实验数据;(4) 按以上方法依次输入其他源程序并调试、运行和记录实验数据。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 25 页 - - - - - - - - - 实用标准文档大全4实验内容:4.1 输入并运行下列程序,查看程序运行的结果。#include void main() printf(“* * * * * * * * * *n”); printf(“Programing in c A Labrtry Maualn”); printf(“* * * *n”); printf(“*n ”); 4.2 查看程序运行的结果#include void main() int i,j,m,n; i=8; j=10; m=+i; n=j-; printf(“%d,%d,%d,%dn ”,i,j,m,n); 4.3 找出下列程序中的错误,改正后写出程序运行结果. #include void main() Int x,y=z=5,aver; x=7; AVER=(x+y+z)/3 printf(“AVER=%dn ”,aver); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 25 页 - - - - - - - - - 实用标准文档大全4.4 输入参考程序。在下划线处分别填入不同的变量定义、表达式、输出格式控制符号。#include void main() int a,b,x; /数据类型定义a=5; b=10; x=a+10; /表达式printf(“%d ”,x); /格式控制符 该程序的执行结果为: 15 当数据类型说明符为 int 时, 对应的格式控制符为 %d ;当数据类型说明符为 long 时, 对应的格式控制符为 %l ; ;当数据类型说明符为float 时,对应的格式控制符为 %f ;当数据类型说明符为double 时,对应的格式控制符为 %lf ;当数据类型说明符为char 时,对应的格式控制符为 %c ;仅当表达式更改为 1/2*a*b 时,程序执行结果为 0 ;仅当表达式更改为 0.5*a*b 时,程序执行结果为 25 (2)求从键盘上输入的两个整数之和,完成程序并将结果输出。源程序:#include void main( ) int x,y,z; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 25 页 - - - - - - - - - 实用标准文档大全scanf(%d%d,&x,&y); z=x+y; printf(%dn,z); 输入: 1 2 输出: 3 4.5 将整型变量 a、b 的值进行交换。方法一:借助中间变量t #include void main() int a=1,b=2,t; t=a; a=b; b=t; printf(%dn%dn,a,b); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 25 页 - - - - - - - - - 实用标准文档大全方法二:不借助中间变量#include void main() int a=1,b=2; a=b-a; b=b-a; a=b+a; printf(%dn%dn,a,b); 4.6 编写程序输入华氏温度f ,求摄氏温度 c。华氏转摄氏的公式为:c=5/9(f-32) 输入输出都要有文字提示和说明,输出保留2 位小数。#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 25 页 - - - - - - - - - 实用标准文档大全void main() float f,c; printf(输入华氏温度 =); scanf(%f,&f); c=(f-32)*5/9; printf(摄氏温度 =%.2fn,c); 4.7 编程求)ln()sin(xaaxy。要求 a 和 x 从键盘输入。当 a=6.4,x=3.4 时,求 y 的值。#include #include void main() float a,x,y; scanf(%f%f,&a,&x); y=sin(sqrt(a*x)+log(a+x); printf(%fn,y); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 25 页 - - - - - - - - - 实用标准文档大全4.8 从键盘上任意输入一个三位整数,按逆序输出。例如输入456,输出 654。提示: 456%10=6 456/10%10=5 456/10/10=4 6*102+5*101+4*100=654 #include main() int n; int a,b, c; int num; printf(请输入一个三位整数nn); scanf(%d, &n); c=n/100; b=(n-c*100)/10; a=n%10; num= a*100 + b*10 + c; printf(num=%dn, num); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 25 页 - - - - - - - - - 实用标准文档大全5实验总结名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 25 页 - - - - - - - - - 实用标准文档大全实验二:分支结构与循环结构程序设计专业班级学号姓名实验学时6 实验类型设计型实验地点实验时间指导老师周涛成绩教师批语年月日1. 实验目的:了解 C 语言表示逻辑量的方法; (0 为“假” ,非 0 为“真” )学会正确使用关系表达式和逻辑表达式。熟练掌握 if语句、switch 语句、while 语句、do-while语句和 for 语句的使用方法。结合程序掌握一些简单的算法。掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。学习调试程序2. 实验环境:操作系统: Windows 7 编程软件: Visual C+ 6.0 3. 实验内容:(1) 使用 if语句或者 switch 语句编程求解以下分段函数:y= 。#include #include main() float x,y; scanf(%f,&x); if(x=1&x10) y=sqrt(x+10); else y=2*x+1; printf(%fn,y); 2x-1 (x1) 10 x(1x10) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 25 页 - - - - - - - - - 实用标准文档大全 (2) 使用 if语句或者 switch 语句编程实现以下功能:从键盘任意输入 0-100之间的整数作为学生的成绩,要求根据以下的条件判断并输出相应成绩的等级。大于等于 90,小于等于 100:优秀大于等于 70,小于等于 89:良好大于等于 60,小于等于 69:及格小于 60:不及格#include main() int x; scanf(%d,&x); switch(x/10) case 10:printf(优秀n);break; case 9:printf(优秀n);break; case 8:printf(良好n);break; case 7:printf(良好n);break; case 6:printf(及格n);break; default: printf(不及格 n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 25 页 - - - - - - - - - 实用标准文档大全(3)n 的值从键盘输入,要求分别用三种循环语句实现以下功能:1+2+3+4+ +n 1、用 while 语句实现。#include main() int i=1,s=0,n; scanf(%d,&n); while(i=n) s=s+i; i=i+; printf(%dn,s); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 25 页 - - - - - - - - - 实用标准文档大全2、用 do-while语句实现#include main() int i=1,s=0,n; scanf(%d,&n); do s=s+i; i=i+; while(i=n); printf(%dn,s); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 25 页 - - - - - - - - - 实用标准文档大全3、用 for 语句实现。#include main() int i=1,s=0,n; scanf(%d,&n); for (;i=n;i+) s=s+i; printf(%dn,s); (4)n 的值从键盘输入,要求用循环语句实现以下功能:1!+2!+ +n! #include void main() int n,i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 25 页 - - - - - - - - - 实用标准文档大全 float s=0,t=1; scanf(%d,&n); for(i=1;i=n;i+) t*=i; s+=t; printf(1+2!+3!.+n!=%fn,s); (5) 程序填空,求 100 以内的整数中最大可被13 整除的数是哪一个?#include int main( ) int i; for( i=100 ; i=0 ;i-) if( i%13=0 ) break; printf(%dn,i); return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 25 页 - - - - - - - - - 实用标准文档大全(6) 输入两个正整数 m和 n, 求其最大公约数和最小公倍数。#include int main() int p,r,n,m,temp; printf(Enter n,m :); scanf(%d,%d,&n,&m); if(mn ,然后再求 m对 n 的余数 r,通过 while 语句循环,直到余数r 为零。(7) 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。#include int main() char c; int letters=0,space=0,digit=0,other=0; printf(Enter line character :n); while( c=getchar()!=n) if( c=a&c= A&c=0&c= 9 ) digit+; else other+; printf(letters:%dnspace:%dndigit:%dnother:%dn,letters,space,digit,other); return 0; (8) 编写程序输出如下图形,请填空。#includestdio.h 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 25 页 - - - - - - - - - 实用标准文档大全* * * * * * * * * * * * * * * * * * * * * * * * * #define s int main() int n,i,j; printf(Enter n:); scanf( “%d ”,&n ); for(i=1;i=n;i+) for(j=1;j=10;j+) putchar(s); for(j=1; j=n-i ;j+) putchar(s); for(j=1; j=2*i-1 ;j+) putchar( *) ; printf(n); for(i=1;i=n-1;i+) for(j=1;j=10;j+) putchar(s); for(j=1;j=i ;j+) putchar(s); for(j=1; j=2*(n-i)-1;j+) putchar(*); printf(n); 记录运行结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 25 页 - - - - - - - - - 实用标准文档大全4. 实验总结名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 25 页 - - - - - - - - - 实用标准文档大全实验三数组及数组的应用专业班级学号姓名实验学时2 实验类型综合设计型实验地点实验时间指导老师周涛成绩教师批语年月日1. 实验目的:1、掌握一维数组和二维数组的定义、数组元素的引用和数组的输入输出方法。2、重点掌握一维数组的应用(如排序等) 。3、了解与数组有关的数值计算方法(如矩阵运算)。2. 实验环境:操作系统: Windows 7 编程软件: Visual C+ 6.0 3. 实验内容:(1)以下程序以每行输出8 个数据的形式输出a 数组。#include void main( ) int a50,i; for(i=0; i50;i+) scanf( “%d ”, ); for(i=0; i50;i+) if( ) ; printf(“%3d ”,ai); printf(“n ”); 输出结果:(2)利用数组实现以下功能:从键盘任意输入若干个整数(不超过100个) ,统计并输出这些整数的平均值,以及高于此平均值的整数个数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 25 页 - - - - - - - - - 实用标准文档大全程序:(3)对于二维数组987654321,求 1)所有元素中最大、最小值。2)各行元素之和。 3)主对角线元素之和。程序:4. 实验总结:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 25 页 - - - - - - - - - 实用标准文档大全实验四:函数与指针专业班级学号姓名实验学时4 实验类型设计型实验地点实验时间指导老师周涛成绩教师批语年月日1. 实验目的:掌握函数的定义及函数调用的方法掌握函数的声明方法,能利用函数来实现具有独立功能的程序模块熟悉函数的嵌套调用和递归调用正确理解指针的概念及其使用方法学会使用通过指针去访问数组元素2. 实验内容:(1) 已知部分程序如下,请补全程序并回答。本题要求掌握函数的定义、声明、和调用的方法#include stdio.h void main( ) void a1( ); /对被调函数 a1 的声明 /对被调函数 a2 的声明 a1( ); / main函数调用 a2函数 / main函数调用 a1函数 a1( ) /定义 a1 函数的类型 printf(“# ”); void a2( ) printf(“ How do you do”); 运行程序并记录输出结果:回答:a1 函数是有参函数还是无参函数?a1函数有没有返回值,返回值为什么类型?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 25 页 - - - - - - - - - 实用标准文档大全 (2)分析并运行下面的程序, 给出运行结果。本题要求理解函数实参和形参的对应关系以及参数传递的方式#include int f(int i) return i*i- 1? void main( ) int i? for(i=0? i5 ? i+) printf(%d,%d,i,f(i)? 运行程序,察看并分析程序执行结果:回答: f 函数是有参函数还是无参函数?f 函数有没有返回值,返回值为什么类型?(3) 编写一个 s 函数, 其功能如下。本题要求能理解利用函数来实现具有独立功能的程序模块ns.3211.32112111名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 25 页 - - - - - - - - - 实用标准文档大全(4) 运行以下程序并回答相应问题。本题要求熟悉函数递归调用的方法#include void main( ) long y, n,; long f1(long n); scanf(“%ld”,&n); /默认 n 的值大于 0 y=f1(n); printf(“%ldn”,y); long f1(long n) long x=1,i; for(i=1;i=n;i+) x*=i; return x; 问以上程序的功能是什么?重新编写 f1 函数,把 f1 函数的功能改为用递归的方法实现,请给出f1 函数的代码如果实现的功能为: 1!+2!+ +n!,请问以上参考程序如何修改?(原f1 函数可以不用修改,主要修改main 函数)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 25 页 - - - - - - - - - 实用标准文档大全(5)swap 函数用来交换变量a,b 的值,请补全程序。本题要求正确理解指针的概念及其使用方法#include void main( ) void swap(int *p1,int *p2); int a, b; scanf( “%d,%d ”,&a,&b); swap( &a, ); printf(a=%d,b=%dn,a,b); void swap(int *p1, int *p2) int temp; ; ; ; 运行程序,察看并分析程序执行结果:(6) 分析以下程序的运行结果。本题要求学会通过指针去访问数组元素#include stdio.h void main( ) int i,*p,a7=1,2,3,4,5,6,7; p=a+2; for(i=0;i3;i+,p+) printf(%3d,*p); 察看并分析程序执行结果:3. 实验总结名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 25 页 - - - - - - - - -