程序设计语言实验安排数学104_第1页
程序设计语言实验安排数学104_第2页
程序设计语言实验安排数学104_第3页
程序设计语言实验安排数学104_第4页
程序设计语言实验安排数学104_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.实验注意事项:1、 进入机房必须遵守学校实验室的管理规定。2、 实验期间不能进行与实验无关的工作,特别是不能玩游戏、不能网上聊天。3、 本课程共安排设置8个实验项目,对每个实验应独立完成,不得抄袭。4、 对每个实验均需填写一份实验报告并在下一个实验前上交本次的实验报告。5、 注意保存好每次实验所建立的源程序以备教师检查。6、 本实验课程为一个独立设课的考查课程,教师根据学生的实验态度、实验报告质量和教师检查情况进行成绩评定。7、 填写实验报告应使用学校统一规定使用的广州大学实验报告纸,按照其表格中的各项内容规范填写,具体如下:开课学院及实验室:数学与信息科学学院 计算机实验楼307b年月日:

2、填写各实验具体的实验日期实验课程名称:统一填写“程序设计语言实验”实验项目名称:参看下面各实验的具体安排成绩栏和指导教师栏由教师填写。实验报告内容填写3大项:实验目的、实验原理、实验内容(包括源程序、测试数据及实验结果、问题解答等)。实 验 一实验项目名称:c开发环境的熟悉与使用实验时间:2011-9-1实验目的:1、初步了解c程序的特点和构成。2、熟悉turbo c 2.0 ide环境的操作。3、掌握c程序上机的4个步骤:编辑、编译、连接和运行调试。4、初步了解程序的调试方法。实验原理:1. 启动tc:方法1:dos状态下:进入tc子目录键入tc回车方法2:windows环境下:双击安装目录

3、下的tc.exe文件或双击其启动的快捷方式。2. c程序上机的4个步骤:编辑、编译、连接和运行调试。具体过程如下:(1)编辑源程序,完成后将源程序以扩展名.c存盘。(2)对源程序进行编译,即将源程序转换为扩展名为.obj的二进制代码。若源程序有错,必须予以修改,然后重新编译。(3)对编译通过的源程序连接,即加入库函数和其它二进制代码生成可执行程序。连接过程中,可能出现未定义的函数等错误,为此,必须修改源程序,重新编译和连接。(4)执行生成的可执行代码,若不能得到正确的结果,必须修改源程序,重新编译和连接。若能得到正确结果,则整个编辑、编译、连接、运行过程顺利结束。注:在tc2.0的ide环境下

4、,对源程序的编译、连接、运行可在一个命令下一气呵成。3. 常用命令:存盘:f2或filesave 从磁盘读入c程序:f3或fileload运行程序:ctrl+f9或runrun 查看运行结果:alt+f5或runuser screen4. 退出tc集成环境:从file菜单选择quit命令或按alt+x。 实验内容:1. 在tc2.0 ide环境中输入教材p3的例1.1程序,进行编译、连接和运行,并且查看运行结果,对程序进行存盘。执行filenew命令后再从磁盘读入该程序进行编辑和运行调试。2. 上机测试并回答下列问题:1) 程序中的错误有哪些类型?其特点是什么?一般应如何修改?2) 在tc2.

5、0中,用户的工作目录如何设置?(注:用户的工作目录是指用户保存源程序文件和读入源程序文件时的默认目录)3) 若文件myc1.c编译成功后会产生什么文件?连接成功后会产生什么文件?这两个文件的默认保存目录如何设置?4) 若tc2.0的工作环境(例如:系统库文件目录)设置不正确,将会产生什么问题?5) 在tc2.0中,程序执行完毕就马上返回编辑状态,致使观察运行结果时要按alt+f5或runuser screen,为了使程序运行完毕后暂停,应在源程序中加上什么语句?6) 程序调试的手段有哪些?(选做题,但必须了解)实验1问题回答参考答案:1)程序中的错误通常分为三类:一是编译时的错误,主要是语法错

6、误,在编译阶段可由编译系统发现;二是逻辑错误,主要是计算公式写错、程序逻辑控制错误等,造成程序运行不能得到正确结果,一般需使用单步执行、打开变量观察窗口等调试手段;三是运行时的错误,一般是用户输入的数据不合法,如:除数为0,致使程序出错运行不下去。解决的方法是完善程序,提高程序运行的可靠性。2) file菜单的change dir命令3)文件myc1.c编译成功后产生myc1.obj文件,连接成功后会产生myc1.exe文件。这两个文件的默认保存目录在options菜单>directories命令>output directory项中设置。4)在连接阶段将会产生如:头文件、库文件找

7、不到的错误,导致连接无法完成。5)在main()函数内的最后一行加上getch();语句实 验 二实验项目名称:顺序程序设计实验时间:2011-9-8实验目的:1、理解和掌握程序设计的顺序结构。2、理解和掌握c语言的数据类型和表达式。3、掌握c程序设计中的输入和输出方法。实验原理:1. 顺序结构的程序是指程序的执行自上而下、自左至右, 程序中的每一个语句都能被执行一次,而且只能被执行一次。顺序结构的程序设计是最简单的。2. c语言的基本数据类型有整型、字符型和实型。计算机语言中的数据的表数范围与数学上的表数范围具有差异。3. 常量和变量的概念及其使用。4. c语言的运算符丰富,运算符具有优先级

8、和结合性。5. c语言中表达式的书写很多时候跟数学上是不同的。6. 格式输入和输出函数scanf()、printf()的调用格式及其各参数的意义。实验内容:1. 验证实验教程p12的验证性程序(1),理解:数据的键盘输入格式应与scanf()函数的格式控制写法一致;字符型数据与整型数据的转换规定(使用其码)。2. 验证实验教程p13的验证性程序(2),理解:整型数据在c语言的表数范围与数学上的差异及整型数据溢出时系统的处理方法;理解负整数在机器内的补码表示。3. 完成实验教程p17的程序分析(2)。4. 完成课本p27练习1113(上机运行时,需补充完整程序),理解“+”、“-”运算符的运算特

9、点;理解格式输入输出函数的格式及其控制功能。5. 验证课本p27练习14,理解逻辑运算符“与”、“或”的短路运算特点。(选做题)6. 完成课本p28练习15。(选做题)7. 回答下列问题:a) 下列数学代数式子写成c语言表达式应如何书写: (提示:开根号运算可使用系统函数sqrt()b) 数学上表示范围的式子:0a100,写成语言的逻辑表达式应如何书写?实验2参考答案:第3题: &a,&b a/b a%b 第4题:(课本练习题13)main()int a=2,b=6,c=8;float x=2.3,y=3.4,z=-4.8;long u=52875,l=128765;char

10、c1='e',c2='f'printf("a=%d b=%d c=%dn",a,b,c);printf("x=%.6f,y=%.6f,z=%.6fn",x,y,z);printf("x+y=%.2f y+z=%.2f z+x=%.1fn",x+y,y+z,z+x);printf("u=%ld l=%ldn",u,l);printf("c1='%c' or %d(ascii)n",c1,c1);printf("c2='%c'

11、 or %d(ascii)n",c2,c2);第6题:(课本练习题15)main()float a,b,c,d,e,sum,ave;scanf("%f%f%f%f%f",&a,&b,&c,&d,&e);sum=a+b+c+d+e;ave=sum/5;printf("sum=%fnave=%fn",sum,ave);第7题:a) a*b/(c*d) 或 a*b/c/d (-b+sqrt(b*b-4*a*c)/(2*a)b) a>=0 && a<=100实 验 三实验项目名称:选择

12、结构程序设计实验时间:2011-09-15、2011-09-22实验目的:1、 理解c语言的语句、算法的概念、流程图的表示。2、 掌握程序流程控制选择(分支)结构。3、 熟练掌握if语句和switch语句的使用。4、 理解if语句和switch语句的嵌套。实验原理:1. if语句的一般形式:if (<表达式>) <语句1> else <语句2>2. 缺省else的条件语句形式: if (<表达式>) <语句1>3. if语句嵌套的一般形式:if( ) if( )语句1 else 语句2else if( )语句3 else 语句4 4.

13、 switch语句的一般形式是:switch (<表达式>)case <常量表达式1>:<语句序列1> case <常量表达式2>:<语句序列2> : : case <常量表达式n>:<语句序列n> default:<语句序列n+1>为了不再执行本case后面的其它case和default语句,可用break语句中断switch语句,使流程跳到switch语句后面。实验内容:1. 完成教材p71习题5,程序中要输出max变量的值。2. 阅读教材p71习题6的程序,判断其输出的结果,最后上机验证你的判

14、断。3. 完成教材p72习题9。4. 上机测试并回答下列问题:1) 下面程序的功能是什么?对复合语句t=a;a=b;b=t;,若去掉“”和“”程序会发生编译上的错误吗?能实现程序原来的功能吗?在复合语句t=a;a=b;b=t;后面添加一个“;”号,对程序有没有影响?main()float a,b,c,t;scanf("%f%f%f",&a,&b,&c);if (a>b)t=a;a=b;b=t;if (a>c)t=a;a=c;c=t;if (b>c)t=b;b=c;c=t;printf("%f,%f,%fn",a,

15、b,c);if (a>b) /*第一个if*/if (a>c) /*第二个if*/temp=a;else temp=b;2) 在嵌套的if语句中,else如何与if配对?对下面的两个程序段,else与哪个if配对?if (a>b) /*第一个if*/if (a>c) /*第二个if*/temp=a;else temp=b;3) 阅读理解下列求一元二次方程ax2+bx+c=0解的程序,该程序全面考虑了系数a,b,c的各种可能取值。(不用写入实验报告)#include <math.h>main()float a,b,c,d,x1,x2,p,q;printf(&q

16、uot;input a,b,c:");scanf("%f,%f,%f",&a,&b,&c);if (fabs(a)<1e-6) /*也可以直接写成(a=0)*/if (fabs(b)<1e-6) /*也可以直接写成(b=0)*/if (fabs(c)<1e-6) /*也可以直接写成(c=0)*/printf("is trivial.n");elseprintf("is impossible.n");elseprintf("has only one root:%8.4fn&q

17、uot;,-c/b);elsed=b*b-4*a*c;if (fabs(d)<1e-6) /*也可以直接写成(d=0)*/printf("has two equal real roots:%8.4fn",-b/(2*a);else if (d>1e-6) /*也可以直接写成(d>0)*/ x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf("has two diffent real roots:%8.4f and %8.4fn",x1,x2); elsep=-b/(2*a);q=sqrt

18、(-d)/(2*a);printf("has two complex roots:");printf("x1=%8.4f+%8.4fin",p,q);printf("x2=%8.4f-%8.4fin",p,q);实验3参考答案:第1题:(课本练习题5)main()int a,b,c,max;printf("input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);if (a>b)if(a>c) max=a;else max=c;els

19、eif (b>c) max=b;else max=c;printf("max(%d,%d,%d)=%dn",a,b,c,max);第2题:(课本练习题6)(1)输出结果:0 (2)输出结果:*#第3题:(课本练习题9)#include <stdio.h>main()char ch;printf("input a char:");ch=getchar();if (ch>='a' && ch<='z')printf("'%c' is a upper cha

20、rn",ch);else if (ch>='a' && ch<='z')printf("'%c' is a lower charn",ch);else if (ch>='0' && ch<='9')printf("'%c' is a numbern",ch);else printf("'%c' is a other charn",ch);第4题:1)程序的功能

21、是对键盘输入的三个数按由小到大排序;对复合语句t=a;a=b;b=t;,若去掉“”和“”程序不会发生编译上的错误,但不能实现程序原来的功能;在复合语句t=a;a=b;b=t;后面添加一个“;”号,对程序没有影响。 2)在嵌套的if语句中,else总是与前面最近的未配对过的if配对(但复合语句可改变配对关系)。在中,else与第二个if配对;在中,else与第一个if配对(复合语句改变了配对关系)。实 验 四实验项目名称:循环控制程序设计实验时间:2011-09-29、2011-10-08实验目的:1、 理解并掌握程序结构控制的循环结构;2、 理解while、do-while、for语句的语义和

22、break、continue、goto语句的使用;3、 理解三种循环结构的异同,能实现三种结构间的转换;4、 理解循环嵌套的执行过程;5、 熟练应用循环语句进行程序设计。实验原理:1. while循环的一般格式:while (<表达式>)<语句>其语义是:当<表达式>的值为非零时,则执行<语句>,然后再判断<表达式>的值,只要它不为零,继续执行<语句>,如此重复,直到<表达式>的值为零为止。2. do-while语句的一般格式是: do <语句> while (<表达式>);其语义是:先

23、执行<语句>,再判别<表达式>,若<表达式>的值为非零,则重复执行<语句>,直到<表达式>的值为零为止。3. for循环的格式如下: for(<表达式1><表达式2><表达式3>) <语句>for语句的执行过程如下:首先计算<表达式1>。求<表达式2>的值,若其值为非零,执行<语句>,然后转执行,若<表达式2>的值为零,则结束for语句。求解<表达式3>,转执行。实验内容:1. 阅读教材p98习题7的程序,判断其输出的结果,最后

24、上机验证你的判断。2. 编程实现教材p99习题16。3. 编程实现教材p99习题18。4. 下列两个程序实现的功能相同,说出它们实现什么功能?两个程序比较,哪个更优?main()int i,j,n;long s,sum;scanf("%d",&n);for(i=1,sum=0;i<=n;i+)for(j=1,s=0;j<=i;j+)s+=j;sum+=s;printf("sum=%ldn",sum);main()int i,n;long s,sum;scanf("%d",&n);for(i=1,s=0,su

25、m=0;i<=n;i+)s+=i;sum+=s;printf("sum=%ldn",sum);5. 阅读下面的程序,理解程序设计的方法。(不用写入实验报告)1) 下面程序是教材p98习题6的解答:用泰勒级数求e的近似值,直到最后一项小于1e-6为止。main()int n;double e,temp;temp=1;e=1;n=1;while(temp>1e-6)temp/=n;e+=temp;n+;printf("e=%lfn",e);2) 下面程序是教材p98习题8的解答:计算数列n-n/2+n/3-n/4+-n/100。main()int

26、 i;float n,sum,temp;printf("input n:");scanf("%f",&n);sum=0;for(i=1;i<=100;i+)temp=n/i;sum+=temp;n=-n;printf("n-n/2+n/3-.-n/100=%fn",sum);实验4参考答案:第1题:(课本练习题7) 输出结果:8第2题:(课本练习题16)main()float n;double sum=0;doscanf("%f",&n);sum+=n;while(n);printf(&quo

27、t;sum=%lfn",sum);第3题:(课本练习题18)#include <stdlib.h>#include <time.h>main()long n,a;randomize(); /*利用系统时间产生随机函数的种子数,这样可使程序每次运行时产生的随机数都不一样,使用此函数要包含time.h头文件*/n=random(38765); /*产生038764间的一个随机整数,实参38765可任意设置,使用此函数要包含stdlib.h头文件*/doprintf("please input a number:");scanf("%l

28、d",&a);if (a>n)printf("%ld is too largen",a);else if (a<n)printf("%ld is too smalln",a);elseprintf("%ld is correctn",a);while (a!=n); /*这里用do-while循环比较方便*/getch();第4题:两个程序的功能均是实现计算:sum=1+(1+2)+(1+2+3)+.+(1+2+3+.+n)的值。两个程序比较,程序2更优,显然程序2的循环次数大大减少,它并没有每次循环都从

29、1开始累加到n,而是在前一次计算出1+2+(n-1)的基础上计算1+2+(n-1)+n实 验 五实验项目名称:函数实验时间:2011-10-13、2011-10-20实验目的:1. 掌握c语言中函数的定义和调用方法;理解实参和形参结合时的“单向值传递”方式。2. 理解函数的嵌套调用和递归调用。3. 掌握函数原型的概念和使用。4. 理解变量的作用域和生命期。5. 理解预处理命令。实验原理:1. 函数定义的一般形式:<类型标识符><函数名> ( <参数说明部分>) <说明部分> <语句部分> 2. 函数调用形式:<函数名> (

30、<实参表列>)c语言规定:实参对形参的数据传递为“单向值传递”,只能由实参传递值给形参,形参不能传递值给实参。3. 函数说明的一般形式(函数原型):<类型标识符><函数名> ( <参数表列>);作用:在程序的编译阶段,利用它对调用函数的合法性进行全面检查。4. 递归概念一个函数直接或间接地调用自己叫递归。采用递归方法求解问题需符合的条件:(1)可以把一个问题转化为一个新的问题,而这个新问题的解决方法仍与原问题解法相同,只是新处理的对象有所不同。(2)必定要有一个明确的结束递归的条件,否则递归将无止境地进行下去。5. 从变量的作用域范围的不同,变量

31、可分为:局部变量和全局变量。局部变量:在一个函数内部定义的变量(又叫内部变量)。它可分为:auto变量、static变量和register变量。全局变量:在函数之外定义的变量(又叫外部变量或全程变量)。它可分为:static外部变量和普通外部变量(带extern说明的为引用性说明,不带extern说明的为定义性说明)。6. c语言中预处理命令有三种:(1)宏定义、(2)文件包含、(3)条件编译实验内容:1. 编程实现教材p121习题4,其中fibnacci数列fib(n)的定义为:2. 完成教材p121习题6。3. 阅读教材p122习题8,分析判断其输出结果并上机验证,理解递归调用的执行过程。

32、4. 阅读教材p123习题12,分析判断其输出结果并上机验证,理解宏定义和宏展开的特点。5. 阅读理解下列程序,分析判断其输出结果,最后上机验证,并理解引用性说明外部变量、定义性说明外部变量、自动变量、静态局部变量和实参与形参结合时的单向值传递的工作方式。#include <stdio.h>int x=1;f(int a,int b)static int x=3;int c=4,z;extern y;z=(+x)+(y+)+(a+)+b+(c+);return z;extern int y;main()int x=3,w;w=f(x,y);printf("%dn"

33、;,w);w=f(x,y);printf("%dn",w);int y=2;实验5参考答案:第1题:(课本练习题4) long fib(int n)int i;long f,f1=1,f2=1;if (n<1)printf("data error!n");return -1;if (n=1|n=2) return 1;for (i=3;i<=n;i+)f=f1+f2;f1=f2;f2=f;return f;main()int n;long f;printf("please input n for fibnacci(n):"

34、);scanf("%d",&n);f=fib(n);printf("fibnacci(%d)=%ldn",n,f);getch(); /*注:利用递归方法的程序请参看课本例题6.8 */第2题:(课本练习题6) 四条横线依次是:long p=1; p*=m; long sum=0; sum+=power(i,k);第3题:(课本练习题8) 输出结果是:zyxwvu 即:程序功能是实现逆顺序输出第4题:(课本练习题12) 输出结果是:7 5 第5题: 输出结果是:15 18 注意各变量的存储类别及参数的传递过程实 验 六实验项目名称:数组实验时间:

35、2011-10-27、2011-11-03实验目的:1. 理解数组的概念;2. 掌握一维数组和二维数组的定义和使用;3. 理解排序、查找等几个经典算法;4. 掌握字符数组和字符串函数的使用。实验原理:1. 同名带下标的变量形成一个数组,带下标的变量统称为数组元素。数组的使用通过逐个引用数组元素来实现。2. 具有一个下标的数组称为一维数组;一维数组定义的一般形式为: <类型说明符> <数组名><常量表达式>3. 具有多个下标的数组称为多维数组,二维数组是具有两个下标的数组。4. c语言没有提供字符串数据类型,而是将字符串作为字符数组来处理。在字符数组末尾添加串

36、结束符0,就成字符串,就可调用相应的字符串处理函数进行处理。实验内容:1. 阅读教材p154习题5、8,分析判断其输出结果并上机验证。2. 编程实现教材p154习题6:找出1256中所有的回文数。3. 完成教材p154习题14并上机验证。4. 下面的程序是实验教程p47倒数第5行的程序,并作了适当修改,上机验证其输出结果,并说明为什么?(注:教程给出的结果是错误的)#include <string.h>main()char str130="student'n101"char str2="student0abcd"printf(&quo

37、t;length of str1:%s is %d,size of str1 is %dn",str1,strlen(str1),sizeof(str1);printf("length of str2:%s is %d,size of str2 is %dn",str2,strlen(str2),sizeof(str2);/* 注:strlen()函数是求实参字符串的长度,sizeof是一个单目运算符,功能是求一个变量或一种数据类型所占用的存储空间的长度。*/5. 阅读实验教程p49程序分析类实验的第一个程序。(不用写入实验报告)6. 阅读理解下面的程序。(不用写

38、入实验报告)1) 下面程序是冒泡法排序算法的实现。#define n 10main()int i,j,t;int an+1;printf("input 10 numbers:");for (i=1;i<=n;i+)scanf("%d",&ai);printf("n");for (i=1;i<=n-1;i+) for (j=1;j<=10-i;j+) if(aj>aj+1) t=aj;aj=aj+1;aj+1=t;printf("the sorted numbers is:n");fo

39、r (i=1;i<=n;i+)printf("%6d",ai);printf("n");2) 下面程序是教材p155习题17的解答:从键盘输入一行字符串,统计英文字母、空格、数字字符和其它字符的个数。#include <stdio.h>main()int i;int letters=0,space=0,numbers=0,other=0;char c80;gets(c);/*gets()函数的作用是从键盘读入一行字符(以回车键为行标志),保存在实参字符数组中,一行字符中可包含空格。利用scanf(“%s”,c)读入的字符串是不可能包含空

40、格的。当然可以利用循环和scanf(“%c”,ci)读入包含空格的一行字符。*/i=0;while(ci!='0')if(ci>='a' && ci<='z' | ci>='a' && ci<='z')letters+;else if (ci=' ') space+;else if (ci>='0' && ci<='9') numbers+;else other+;i+;printf(

41、"letters=%dnspace=%dnnumbers=%dnother=%dn",letters,space,numbers,other);实验6参考答案:第1题:课本练习题5输出结果:17 9 17 5 课本练习题8输出结果:3 5 7第2题:(课本练习题6) :找出1256中所有的回文数。int huiwen1(long m) /*使用数组求解*/long x;int i,shma10,shmageshu=0;x=m*m;for (i=0;i+)shmai=x%10;shmageshu+;x=x/10;if (x=0) break;for (i=0;i<shm

42、ageshu/2;i+)if (shmai!=shmashmageshu-i-1) return 0;else continue;return 1;int huiwen2(long m) /*不使用数组求解*/long x1,x2=0,x3;x1=x3=m*m;while(1)x2=x2+x1%10;x1=x1/10;if(x1=0) break;x2*=10;if (x2!=x3) return 0;else return 1;main()long i;long ii;printf("huiwen shu(1-256):n");for (i=1;i<=256;i+)

43、if (huiwen2(i) /*可分别调用huiwen1()和huiwen2()去测试*/ii=i*i;printf("%ld %ld*%ld=%ldn",i,i,i,ii);第3题:(课本练习题14) :#include <stdio.h>#include <string.h>main()char a20="cehjknptw"char s="fdla"int i,j,k;for(k=0;sk!='0'k+) /*按要插入的字符串中的每个字符顺次循环*/j=0;while(sk>=aj

44、 && aj!='0')j+;/*找到要插入的字符在a数组中的位置*/for (i=strlen(a);i>=j;i-)ai+1=ai; /*插入位置开始至字符串结束的每个字符顺次后移*/aj=sk; /*插入位置空出来后,插入该字符*/printf("%sn",a);第4题:输出结果:length of str1: student'a is 10,size of str1 is 30length of str2:student is 7,size of str2 is 13实 验 七实验项目名称:指针实验时间:2011-11-

45、10、2011-11-17、2011-11-24实验目的:1. 理解地址和指针的概念;掌握指针作为函数参数的应用。2. 理解指针与数组的关系;理解字符串指针。3. 掌握指针的运算。4. 理解指针数组和指向指针的指针、指向函数的指针。实验原理:1. 指针变量定义的一般形式: <类型标识符> *<标识符>2. 两个有关的运算符: &:取地址运算符 *:指针运算符3. 指针变量作为函数实参时,通过改变指针变量(形参)所指向的存储单元的值,可把改变的结果带回主调函数。4. 指针和数组之间有两个重要的恒等式: data+i=&datai datai=*(data+

46、i)实验内容:1. 下面的程序中,三个swapx()函数的功能均是实现形参的交换,哪个函数能实现交换实参?上机运行试试,为什么?swap1(int *p1,int *p2) int temp;temp=*p1;*p1=*p2;*p2=temp;swap2(int x,int y)int temp;temp=x;x=y;y=temp;swap3(int *p1,int *p2)int *p;p=p1;p1=p2;p2=p;main()int a,b,*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);if(a<b) sw

47、ap2(a,b);printf("%d,%dn",a,b);pointer_1=&a;pointer_2=&b;if(a<b) swap3(pointer_1,pointer_2);printf("%d,%dn",*pointer_1,*pointer_2);if(a<b) swap1(pointer_1,pointer_2);printf("%d,%dn",*pointer_1,*pointer_2);printf("%d,%dn",a,b);2. 阅读教材p187习题3、4、9,分析

48、判断其输出结果并上机验证。3. 编程实现教材p188习题5:写一通用函数,实现从一个一维数组中寻找指定的一个数,若找到返回该数所在的下标,否则返回-1。提示:函数原型可设计为:int search(int a,int n,int find),参数中,int a为已知数组,n是数组的长度,find为要查找的数。4. 编程实现教材p188习题7。(可阅读参考实验教程p54的程序)5. 完成实验教程p60习题(3):将一个整数类型的字符串转换为整数;根据程序原来的意图,填写空格使程序完整,并上机验证。#include<stdio.h>#include<string.h>main()char s10;int n;int chtonum(char *p);printf("please input a integer string:");scanf("%s",s); /*要求输入的是纯数字字符串或开始处带一个负号的数字字符串*/if (*s='-')n=-chtonum(s+1); /*对负整数字符串的特殊处理*/elsen=chtonum(s);printf("stri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论