收藏 分享(赏)

2011高级语言程序设计实验任务书new.doc

上传人:dreamzhangning 文档编号:2694755 上传时间:2018-09-25 格式:DOC 页数:30 大小:331.50KB
下载 相关 举报
2011高级语言程序设计实验任务书new.doc_第1页
第1页 / 共30页
2011高级语言程序设计实验任务书new.doc_第2页
第2页 / 共30页
2011高级语言程序设计实验任务书new.doc_第3页
第3页 / 共30页
2011高级语言程序设计实验任务书new.doc_第4页
第4页 / 共30页
2011高级语言程序设计实验任务书new.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、高级语言程序设计实验任务书第 1 页实验一 最简单的 C 程序设计一、实验目的1. 掌握 C 语言中使用最多的一种语句赋值语句的使用方法。2. 掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。二、实验的内容和步骤1.以下程序多处有错。要按下面指定的形式输入数据和输出数据时,请对该程序做相应的修改。#include void main ( ) double a,b,c,s,v;printf(input a,b,c:n);scanf(“%d%d%d“,a,b,c);s=a*b;v=a*b*c;printf(“%d %d %d“,a,b,c);printf(“s=%fn“,s,“v=%d

2、n“,v);当程序执行时,屏幕的显示和要求输入形式如下:input a,b,c:1.0 2.0 3.0 此处的 1.0 2.0 3.0 是用户输入的数据a=1.000000 b=2.000000,c=3.000000 此处是要求的输出格式s=2.000000,v=6.000000相关知识: 检查程序错误时应注意几点:a)有时程序中一个错误会引发一系列错误信息,工作中不应被这种情况所迷惑,改正了一些错误后应及时对源程序重新进行编译;b)如果修改错误时增删了行,或是一个行里有多个错误,更正前面错误时增删了字符,就可能导致系统对错误定位不准,此时应该重新编译;c)系统给出的警告信息一般都说明程序中有

3、问题,因为系统发现了可疑情况。对于警告信息同样要逐个仔细分析。除非明确认定不是问题,否则绝不能简单地认为不是错误而不予理睬。实际上,很多警告都是因为程序中确实有严重的隐含错误。d) 在连接中发现新错误也需要仔细检查和修改程序。连接时发现的错误一般是由于函数名或外部变量名字写错,或者一些函数、外部变量没有定义引起的。系统不能对连接错误给以自动定位,只能提供有关的名字信息等。对于这类问题,可以借助编辑器的字符串查找命令进行定位。 正确调用 scanf 函数和 printf 函数构成输入和输出语句。2.有以下程序#include void main() char c1,c2;高级语言程序设计实验任务

4、书第 2 页int n1,n2;c1=getchar();c2=getchar();n1=c1-0;n2= n1*10+(c2-0);printf(“%dn“,n2);程序运行时输入:12 ,执行后输出结果是什么?相关知识:getchar()函数用来输入两个字符分别赋给变量 c1 和 c2;n1=c1-0相当于 n1=1 -0,字符 1 的 ASCII 码值比 0 大一,所以 n1 中的值为 1,c2-0相当于2 -0;把字符串转换为多位数的算法。3.若有以下程序#include void main() int i,j;int x,y;scanf(“i=%d,j=%d“,scanf(“%d%d

5、“,printf(“i=%d,j=%dn“,i,j);printf(“%4d%4dn“,x,y);要求给 i 赋值为 10,j 赋值为 20,则应该怎样从键盘输入数字?相关知识:在调用 scanf()函数时在格式串中若包含有格式描述符之外的字符时,则要求在输入数据时在对应的位置上输入完全匹配的字符;scanf()函数只包含格式描述符时可用跳格键 Tab、空格和回车分隔数据;在调用 printf ()函数时在格式串中若包含有格式描述符之外的字符时,则在输出数据时在对应的位置上输出完全匹配的字符,%d 之类的格式符位置输出对应输出项的值;故输出时要注意插入适当的非格式符以便区分各个输出结果。4.

6、计算定期存款本利之和设银行定期存款的年利率 rate 为 2.25%,并已知存款期为 n 年,存款本金为 capital 元,试编程计算 n 年后的本利之和 deposit。要求定期存款的年利率 rate、存款期 n 和存款本金 capital 均由键盘输入。高级语言程序设计实验任务书第 3 页实验二 选择结构程序设计一、实验目的1. 了解 C 语言表示逻辑量的方法。2. 学会正确使用逻辑运算符和逻辑表达式3. 熟练掌握 if 语句和 switch 语句。4. 结合程序掌握一些简单的算法。5. 学习调试程序。二、实验内容和步骤1. 若输入 10,20,30 则程序的执行结果是 20,30,10

7、 请填充程序。# include “stdio.h”void main( ) int a, b, c ; _;_;_; a=b ; b=c ; _;printf ( “%d,%d,%d“ ,a, b, c );2. 源程序中包含有一些错误,调试下列程序,使之具有如下功能:输入 a、b、c三个整数,求最小值。# include “stdio.h”void main( ) int a,b,c;scanf(“%d%d%d“,a,b,c);if(ab)高级语言程序设计实验任务书第 4 页scanf(“%d%d%d“,int value;printf(“Convert:n“); /* 显示菜单 */pr

8、intf(“ 1:decimal to hexadecimaln “);printf(“ 2:hexadecimal to decimaln “);printf(“ 3:decimal to octaln “); printf(“ 4:octal to decimaln“);printf(“enter your choice: “);scanf(“%d“,switch (choice) case 1: /* 选中 1 时处理 */printf(“enter decimal value:“);scanf(“%d“,printf(“%d in hexadecimal is:%xn“,value,v

9、alue);break;case 2: /* 选中 2 时处理 */printf(“enter hexadecimal value:“);scanf(“%x“,printf(“%x in decimal is:%dn“,value,value);break;case 3: /* 选中 3 时处理 */printf(“enter decimal value:“);scanf(“%d“,printf(“%d in octal is:%on“,value,value);break;高级语言程序设计实验任务书第 6 页case 4: /* 选中 4 时处理 */printf(“enter octal

10、value:“);scanf(“%o“,printf(“%o in decimal is:%dn“,value,value);break;相关知识:用 switch 语句实现菜单的方法;数制转换的方法。8.编写一程序,要求对输入的数字 17 转换成文字星期几,对其它数字不转换。例如,输入 5时,程序应该输出 Friday。 编辑、调试和运行该程序,然后输入 4。其输出结果是什么?为什么是这样的结果? 该程序有哪些错误?如何修改?相关知识:switch 语句的正确使用;break 在 switch 语句中的作用。高级语言程序设计实验任务书第 7 页实验三 循环控制一、实验目的1. 熟练掌握用 w

11、hile 语句、do while 语句和 for 语句实现循环的方法。2. 掌握在程序设计中用循的方法实现一些常用算法。并进一步学习调试程序的方法。3. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。4. 掌握字符数组和字符串函数的使用。5. 掌握与数组有关的算法。二、实验内容和步骤1. 程序求和:1+ +100,填空,实现该功能。#include void main()int s,i;s=0; /* 第 5 行 */for( )s=s+i;printf(“1+.+100=%dn“,s);思考:(1)第 5 行能不能去掉?其作用是什么?(2)不用 for 语句,用 while 语句改写该

12、程序,实现同样的功能。2. 比较下列两个程序。(验证)/* 第一个程序 */#include void main() int i,n,sum=0;scanf(“%d“,n=i;while(ivoid main() int i,n,sum=0;高级语言程序设计实验任务书第 8 页scanf(“%d“,n=i;do sum+=i;i+; while(ivoid main( ) long data; scanf(“%ld“, while(data) printf(“%ld,“,data%10); data=data/10;4. 实现求 Fibonacci 数列的前 n 个数。(验证、调试)32121

13、Fnn或运行程序,写出运行结果;采用单步跟踪技术运行该程序,观察一下变量的变化。#include void main( ) long int f1, f2; int i,n; printf(“Input n:“); /* 第 5 行 */ scanf(“%d“, /* 第 6 行 */f1=f2=1;for(i=1;ivoid main( ) int i,j,x;for(i=0,x=0;ivoid main( ) int mark;int n=0 ; sum=0 ;int max=100 ; min=0 ;for ( ; ; ) ; scanf(“%d“, if ( mark 100 ) pr

14、intf(“ Mark 100 , Please reinput n “);break; if ( mark=-1)break;n + ;sum=sum + mark ;if( mark max )max = mark ;if( mark void main( ) int count1=0,count2=0,count3=0;int i,x;printf(“Please input 20 numbers:”);for(i=0;ivoid main( ) int i, x;printf(“Enter one natural integer: “);scanf(“%d “,for(i=2;i#de

15、fine N 10void main( ) int i,aN,av;for(i=0; ivoid main( )int i, a5, sum = 0;scanf(“%d,%d,%d,%d,%d“, a );for (i = 0; i void main( ) int i, j, row, colum, max;static int a34 = 1,2,3,4, 9,8,7,6, -10,10,-5,2;printf(“ Max = %d, Row = %d, Colum = %d n“, max, row, colum);编程点拨: 初始化 row、colum 及 max。 使用 for 循环

16、的双重循环逐行把元素值与 max 值进行比较,比较结果如果元素值比 max 值大,则改变 max 值,同时改变 row 和 colum 的值。最后输出 max,row 和 colum 的值。相关知识:二维数组的定义和初始化;使用二重循环对二维数组元素的访问;求最值时相关变量初值的设定。4.数组中已存互不相同的 10 个整数,从键盘输入一个整数,输出与该值相同的数组元素下标。 编程点拨: 输入要查找的变量 x 的值; 使用循环将输入的数和数组元素逐个进行比较,若找到,则提前退出循环; 根据循环是正常结束还是提前结束来判断是否找到 x。部分源代码:#include void main( ) int

17、 i, x, a10=1,2,3,4,5,6,7,8,9,10;/*输入 x 变量的值 */for ( i=0; i=k i- ) ai+1=ai;20 18 16 14 12 10 8 6 4 2a0 1 2 3 4 5 6 7 8 9下标= 10k 15 插入。部分源代码:#include #define N 11void main() int i,j,aN;高级语言程序设计实验任务书第 15 页k=0; for ( i=1; ivoid main( ) float x1000, sum=0.0, ave, a;int n=0, i;printf (“Enter mark : n“) ;s

18、canf(“%f“, while (a=0.0 int x,y,z;x=y=z=6;fun(x,y,z);printf(“%x=%d;y=%d;z=%dn“,x,y,z);void fun(int i, int j, int k) int t;t=(i+j+k)*2;printf(“t=%dn“,t);2. 阅读程序注意函数调用过程中形参、实参的关系。#include void main() int x=10,y=20;void swap (int ,int);printf(“(1)in main :x=%d,y=%dn“,x,y);swap(x,y);printf(“(4)in main :

19、x=%d,y=%dn“,x,y);void swap (int m,int n) int temp;printf(“(2)in main :m=%d,n=%dn“,m,n);temp=m;m=n;n=temp;printf(“(3)in main :m=%d,n=%dn“,m,n);把用户自定义函数 swap()中的形式参数 m 和 n 对应改成 x 和 y,使其与实参变量同名,再用 F7跟踪程序的运行,看看有什么变化。相关知识: 形参具有 “用之则建,用完则撤 ”的特点。 在函数定义时,函数名后面圆括号内的参数称为形参;在函数调用时,函数名后面圆括号内的参数称为实参。对于实参,在调用函数中对

20、其进行定义时,不仅指明它的类型,而且系统还为其分配存储单元。而对于形参,定义时仅仅只是高级语言程序设计实验任务书第 18 页指明它的类型,并不在内存中为它们分配存储单元,只是在调用时才为其分配临时存储单元,函数执行结束,返回调用函数时,该存储单元立即撤销。3. 程序是实现求素数的,请填空完成该程序,并上机运行测试。#include #include void main() int m; /* 申明求素数函数 */printf(“Please input a data m=:“);scanf(“%d“,; /* 调用求素数函数 */void prime(int n) int i,k;k=sqrt

21、(n);for(i=2;i=k+1)printf(“This is a prime number“);else printf(“This isnt a prime number“);4. 程序的功能是从键盘上输入的若干个数并求出最大值。请填空完成该程序。#include void main( ) int i;int s10, max;/* Findmax()函数的申明 */;printf(“Input 10 number : n“);/* 输入 10 个数据到 s 数组中 */;/* 调用 Findmax 函数 */;for (i=0;ivoid main( ) int i , k;float

22、 s100, j ;printf(“ Input number : n“);for (i=0; scanf(“%f“, i+)si=j;sort(s, i);for (k=0; kvoid main( ) int m, k;void dtoo( int n ,int r );printf(“Pleae input the decimal number:“);scanf(“%d“,printf( “nPlease input a number in (2,8,16):“);scanf(“%d“,dtoo(m,k);void dtoo( int n ,int r ) if(n=r) dtoo(n/

23、r,r);printf(“%d“,n%r); 7.预习下面程序,写出预习结果,上机验证并写出分析。变量的作用范围# define LOW 10# define HIGH 5# define CHANGE 2int i = LOW ;#include void main( ) int workover ( int i ) , reset ( int i );int i = HIGH ;reset ( i / 2) ;printf(“ i = %d n “, i );reset ( i = i / 2) ;printf(“ i = %d n “, i );reset ( i / 2) ;print

24、f(“ i = %d n “, i );workover ( i );printf(“ i = %d n “, i ); int workover ( int i ) i = ( i % i ) * ( i * i ) / ( 2 * i ) + 4) ;printf(“ i = %d n “, i );高级语言程序设计实验任务书第 21 页return ( i );int reset ( int i ) i = i void main( ) int i ; int f(int);for ( i = 1; i (y)?(x):(y)#define PR printf#include void

25、main() int a,b,c,d,x;a=5;b=10;x=200;c=POWER(a+b);x=x/POWER(a+b);d=MAX(a+6,b);PR( “ c=%d,d=%d,x=%d n“, c,d,x);高级语言程序设计实验任务书第 23 页实验六 指针一、实验目的1. 通过实验进一步掌握指针的概念,会定义和使用指针变量;2. 能正确使用数组的指针和指向数组的指针变量;3. 能正确使用字符串的指针和指向字符串的指针变量;4. 能正确使用指向函数的指针变量;5. 了解指向指针的指针的概念及其使用方法。二、实验内容和步骤编程序并上机调试运行程序(都要求用指针处理)。1.上机验证以下程

26、序的运行结果#include void main() int i,j,*pi,*pj;pi=pj=i=5;j=7;printf(“n%dt%dt%dt%d“,i,j,pi,pj);printf(“n%dt%dt%dt%d“,运行结果 :5 7 -34 -32-34 5 -32 7相关知识:指针的值与指针指向的变量值的区别。在 VC 环境下,以上运行结果中的负数是另一个值。2.上机验证以下程序的运行结果#include void main() int i,a=1,2,3,*p;p=a;/*将数组 a 首地址赋给指针 p*/for (i=0;ivoid main() int j,a12,*p=a;

27、for(j=0;j void main( ) int a,b,c,*p=void sum(int ,int ,int *);void swap(int * ,int * );scanf(“%d,%d“,sum(a,b,p);swap(printf(“sum=%dn“,c);printf(“a=%d,b=%dn“,a,b);void sum(int a,int b,int *c) *c=a+b; void swap(int *a,int *b) int *t;t=a;a=b;高级语言程序设计实验任务书第 25 页b=t;相关知识:调试程序时注意参数传递的是数值还是地址。指针作为参数;利用指针得到

28、多个返回值。5.下面的程序是用来从键盘输入是个整数,然后求出其中的最小值。填写空缺部分。#include int table10;void lookup(int *t,int *a,int n) int k;*a=t0;for(k=1;kvoid main() int a55=0,*p5,i,j;for(i=0;i max ) max=sum; maxi=i; average/=N;printf(“nNo. Name Sco1 Sco2 Sco3 averagen“); /*print*/for(i=0; iN; i+) printf(“%-8s%-10s“,stu i .num, stu i

29、 .name);for( j=0; j3; j+ )printf (“%-8d“, stu i .score j );printf (“ %6.2f n “, stu i .avr);printf (“average is %5.2fn“,average);printf (“The best student is %s, total score is %d.“,stumaxi.name,max); 高级语言程序设计实验任务书第 30 页周次 日期 实验课题 学时实验报告次 数实验一 最简单的 C 程序设计 2 1实验二 选择结构程序设计 4 1实验三 循环控制 4 1实验四 数组 2 1实验五 函数与编译预处理 4 1实验六 指针 2 1实验七 结构体 2 1

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

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报