《C语言》实验书_第1页
《C语言》实验书_第2页
《C语言》实验书_第3页
已阅读5页,还剩20页未读, 继续免费阅读

下载本文档

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

文档简介

1、实验一 TC集成环境的使用else一?实验目的1. 熟悉C语言的集成调试环境 TC2.0的使用,学习编辑?运行C语言程序的基本方法?2. 进一步认识程序的两种类型的错误对程序运行的影响,加深对程序调试及测试重要性的认识3.认识C语言程序的结构特点,学习程序的基本编写方法二?实验内容1. TC 2.0集成环境的使用?编辑运行实现乘法运算的程序,源程序如下:#i nclude "stdio.h"mai n()int a,b;a=251;/* 使 a 具有值 251 */b=8;/*使b具有值8 */prin tf("%dn",a*b); /*计算并输出表达式

2、a*b */运行结果为20082. 程序错误:修改上面的程序,观察运行结果?(1) 将程序中第1个语句的分号删除,编译或运行程序,看有何结果?运行错误(2) 将程序中的表达式“ a*b”的“a”改为“ A”,然后运行程序?运行错误(3) 将程序中的表达式“ a*b”修改为“a - b” ,然后运行程序?运行结果为2433. 编辑并运行能够对任意两个整数进行乘法运算的程序?#in elude "stdio.h"mai n()int a,b;prin tf("I nput a,b:"); /* scan f("%d,%d",&a,

3、&b); /* prin tf("a*b=%dn",a*b); /*在屏幕显示提示信息In put a,b: */该语句的作用是实现数据的键盘输入*/输出乘法运算的结果*/4.编辑并运行如下程序,分别输入三组数据,记录输出结果,并分析该程序的功能?mai n()int x,y,large;scanf( “%d,%d',&x,&y);large=max(x,y);printf(“ The Max nu mber is %dint max(i nt x,int y)int z;n”,large);if(x>y)z=x;z=y;return

4、乙5.单步或跟踪运行上题中的程序,体会两种运行方式的特点?三?实验指导1. Turbo C 2.0集成环境的使用?启动TC 2.0 ?使用“ File tNew命令或使用“ Edit ”命令,进入编辑状态,录入编辑源程序并保存 ? 使用“ Complex Compile to OBJ ”对源程序进行编译,如果源程序存在语法错误,这时编译系统会把程序中的错误指示出来 ?发现错误后,需要立即修改源程序,然后重新编译? 编译无误后,使用“ Complex Link EXE file ”连接目标代码,生成可执行文件,这个文件可由运行命令“ Rur”运行?上面的?两个步骤,也可以使用“ Complex

5、Build all”或“ F9”功能键一步完成 ?连接完成后,使用“ Run”命令,或者使用“ Ctrl+F9 ”组合键运行程序 ?程序运行过程瞬间结束,要察看程序运行结果,需要切换到运行屏幕,用组合健“ Alt+F5 ”实现?按 Alt+F5后,将看到屏幕显示如下结果:2008按任意键,屏幕返回程序状态?说明:对一个未经编译和连接的源程序 ,TC2.0也可以直接运行它,方法是编辑好一个源程序后,直接 使用Run命令或“ Ctrl+F9 ”组合键运行它 ?此时系统自动启动编译命令和连接命令 ,只有当编译?连接正 常进行后,程序才会被运行?因此,上面的过程可以简化为两个操作步骤 : 启动TC2.

6、0,录入编辑源程序,并保存?按“ Ctrl+F9 ”组合键运行程序?特别提示:保存源程序:在编辑源程序的过程中或源程序编辑完成后,及时保存源程序是十分必要的 ,但初学者往往忽视这一环节?操作步骤如下: 按“F2”功能键,出现输入文件名的提示框 ?白色背景窗口显示了系统为当前程序设定的默认存 储位置(C:TC,该存储位置因系统而异,可以改变)和默认文件名 NONAMEQ 输入新的文件名?为了操作方便,可以使用默认存储位置,指定文件名为mult.c ?操作时只需将NONAME.改写为mult.c后回车确认即可?使用Windows的记事本程序提高源程序编辑效率? 启动 Windows的记事本程序,录

7、入编辑乘法源程序 ? 保存程序,选择合适的存储位置,如上面使用的TC2.0的默认程序目录 C:TC;输入指定的文件名如mult.c;选择保存类型为“所有文件”? 启动或激活TC2.0,按“F3”功能键,出现提示框?在“ Load File Name框中键入步骤使用的文件名mult.c,回车确认后将源程序调入TC系统,然后按组合键“ Ctrl+F9 ”运行程序 ?2. 程序错误?第一项内容用于说明语句结束的分号的重要性及语法错误?第二项内容用于验证 C语言中标识符的特性,当用“A”取代“a”后,程序将不能运行,说明作为标识 符“A”和“a”是不等价的?(6) 程序编译并连接(7) 程序编译?连接

8、并运行(8) 查看程序运行结果(9) 单步运行程序(10) 添加监示变量3.程序中的语法错误和逻辑错误对程序运行及结果有何影响请读者自己进行类似的替换,然后察看程序的运行结果?如,将程序中的“ printf ”改为“ PRINTF ,然后运行程序看结果?第三项实验内容说明了程序的逻辑错误情况?若把“ a*b”误写为“a -b” ,程序会顺利编译运行,但显然不是乘法运算的结果?3. 编辑并运行能够对任意两个整数进行乘法运算的程序?编辑该程序前,首先使用“ File - NeW命令使 TC2.0进入新程序编辑状态,然后编辑运行该程序?程 序运行后,屏幕将显示下面的提示信息:In put a,b:此

9、时,应从键盘输入两个整数数据,然后回车确认?下面是一个输入实例:20,35下面是程序的输出结果:a*b=700特别提示:程序的输入数据往往有格式规定,只有按照正确的格式输入数据,才会得到正确的结果?运行上面的程序时,输入的两个数据必须以“,”分隔,否则将得不到正确的结果 ? 请读者再次运行程序,对输入的两个数据以空格分隔,察看执行结果?例如:In put a,b:20 35再次运行程序,然后输入两个很大的整数,察看运行结果?例如:In put a,b:20000,35000显然,上面两次运行的结果都是不正确的 ?这说明,既没有语法错误,也没有逻辑错误的程序,运行后 也会得不到正确的结果?第一种

10、情况出错,是因为输入数据时数据之间的分隔形式不符合程序的要求?第二种情况,输入数据的格式没有问题,但输入的数据超出了程序能够允许的整数范围?这项实验内容提醒读者,在上机实现一个C语言程序时,各种错误的情况都可能出现?即便是一个看上去很好的程序,仍然会有许多需要改进之处?从算法的角度理解,就是任何算法,都可能存在进一步完善的空间?4. 编辑并运行如下程序,分析该程序的功能?(1) 程序开始运行后,将首先进入用户屏幕状态(即黑屏),并有光标闪烁,此时用户需输入数据?(2) 输入数据的格式:两个整数,中间用逗号分开,最后按回车键结束?四?实验要求1. 实验前充分预习,熟悉操作方法?2. 实验过程中,

11、记录程序运行结果?现象及出错信息,并分析原因?3. 实验中随时注意保存源程序,要指定适当的文件名,以备检查?4. 实验总结,对实验内容中的有关问题进行说明 ?五?思考题1. 编辑并运行将自然数 1-100累加的程序?2. 进一步熟悉TC2.0集成环境的功能,写出下列操作所使用的菜单命令及快捷键?(1) 新建程序文件(2) 保存程序文件(3) 打开程序文件(4) 程序文件换名保存(5) 程序编译实验二数据类型?运算符及表达式一?实验目的1. 了解C语言数据类型的概念,熟悉各种类型常量的表示及用法2. 掌握整型?字符型和实型三种基本类型变量的定义?赋值和使用方法?3. 掌握算法?关系?逻辑表达式的

12、特点及用法?4. 熟悉自增?自减运算的特点,掌握自增?自减运算符的用法?5. 进一步认识C语言程序的结构特点,学习简单程序的编写方法?二?实验内容1. 整型变量及算术运算:要求:编辑运行下列程序,分析运行结果?#include“stdio.h ”mai n()int m,a,b,c,d,e;printf( “ m=);scanf( “%d ,&m);a=m+1;b=m-2;c=m*3;d=m/4;e=m%5;printf( “a=%d,b=%d,c=%d,d=%d,e=%d n” ,a,b,c,d,e);2. 实型变量及运算:#include“stdio.h ”mai n()float

13、 m, n,s;printf( “ m=);scanf( “f' ,&m);printf(“n=”);scanf( “ f',&n);s=m* n;printf( “s=%f n” ,s); 运行结果为 2563. 字符型变量及运算:(1) 输出字符程序:#include“stdio.h ”void mai n()char c1,c2;c1=' a'c2=' b'printf( “%c %c n”,c1,c2); 运行结果为a,b(2) 字符程序分析:#in clude <stdio.h>mai n()char c1=

14、 ' A ,c2= ' B' ,c3= ' C ,c4= '101' ,c5= 'x4D';printf( “%dn”,c1,c2,c3);printf( “%cn”,c4,c5); 4. 关系运算和逻辑运算:(1) 用程序计算关系表达式的值:表达式:x+6>=y>x*3(x=5,y=8)(2) 用程序计算逻辑表达式的值:从键盘任意输入整数x?y的值,计算下面逻辑表达式的值?表达式:x>=y|Y>x*3&&!(x>=25)5. 自增和自减运算:(1) #i nclude <std

15、io.h>mai n()int i,j,m, n;i=8;j=10;m=+i;n =j+;printf( “d,%d,%d,%d n” ,i,j,m,n);(2) 分别将上述程序作如下改动并运行? 将第4?5行改为:m=i+;n=+j; 程序改为:main () int i,j;i=8;j=10;printf( “%d, %d n” ,i+,j+); 在的基础上,将printf语句改为:printf( “%d, %d n”,+i,+j); 再将printf 语句改为:printf( “%d, %d,%d,%d n” ,i,j,i+,j+); 程序改为:main () int i,j,m=

16、0,n=0;i=8;j=10;m=i_;n=-i;printf( “i=%d, j=%d,m=%d,n=%d n”,i,j,m,n);printf( “ i=%d, j=%d,m=%d, n=%d n ”,_i,j_,m ,n);(3) mai n()int x=6,y,z;x*=9+1;printf( “ n”,x -);x+=y=z=10;printf( “ %d n” ,x);x=y=z;printf( “%d n”,-x+);三?实验要求:1?充分预习实验内容,写出实验所需程序,分析给出源程序的运行结果?2?实验中,记录各程序运行结果?出错信息及现象,并分析说明出错原因?3?实验中随时

17、注意保存源程序,要指定适当的文件名,以备检查?4?对比各程序的分析结果与实际运行结果的差异,并分析原因?四?思考题1?x=+i;与x=i+;两语句在执行时有何区别?2?字符常量与字符串常量有什么区别?3?字符型常量或变量能否参与算术?关系及逻辑运算?若能,应如何运行运算?4?常用的调试方法有哪两种??实验目的1. 掌握printf()?scanf() ?putchar() ?getchar()等基本输出?输入函数的格式及其主要用法2. 熟练掌握顺序结构的程序设计?二?实验内容1. 基本输出函数的用法?编辑运行下面的程序,并根据执行结果分析程序中各个语句的作用#include“stdio.h ”

18、main ()int a, b;float d, e;char c1, c2;double f, g;long m, n;un sig ned int p, q;a=61;b=62;c1='a' c2='b:d=5.67; e=-6.78;f=1234.56789; g=0.123456789;m=50000; n=-60000;p=32768; q=40000;prin tf("a=%d,b=%dnc 1= %c,c2=%c n",a,b,c1,c2);prin tf("d=%6.2f,e=%6.2fn",d,e);prin t

19、f("f=%15.6f,g=%15.10fn",f,g);printf("m=%ld,n=%ldinp=%u,q=%un",m,n,p,q); 2. 基本输入输出函数的用法?编辑运行下面的程序,并分析各个语句的作用?#include“stdio.h ”mai n()int a,b;float c,d;long e,f;un sig ned int u,v;char c1,c2;scanf(“ d,%cf,a,b);scanf(“ %f,%f f,c,d);scanf(“ %ld,%ld,e,f);scanf(“ 0,%0”,u,v);scanf(“ c,

20、%c”,c1,c2);printf(v a 、 n );printf(“ a=%7d,b=%i7d,&a,&b);printf(“c=%10.2f,d=%10n2f,&c,&d);printf(“e=17ld,f=%17lf,&e,&f)printf(“u=%o,d=%'o,&u,&v);printf(“c1=%c,d=%c ,&c1,&c2);这个程序有语法错误吗?为什么?3顺序结构程序设计?(1) 输入一个小写字母,输出其大写字母及对应的ASCII码值?(2) 输入一个整数,输出其最低位数字及最高位数字

21、? 已知圆柱体横截面圆半径r,圆柱高h?编写程序,计算圆周长I?圆面积s和圆柱体体积v,并输出计算结果?(4) 输入两个复数,输出其和与差?三?实验指导1. 基本输出函数的用法? 运行所给出的源程序,对照结果分析各语句的作用? 将程序中的第二?第三个printf 语句修改为如下形式,然后运行程序,察看结果?prin tf("d=%-6.2f,e=%-6.2fn",d,e);prin tf("f=%-15.6f,g=%-15.10fn",f,g);将上述两个printf 语句进一步修改为如下形式,然后运行程序,察看结果?prin tf("d=%-

22、6.2fte=%-6.2fn",d,e);prin tf("f=%-15.6ftg=%-15.10fn",f,g); 将程序的第10-15行修改为如下语句:a=61;b=62;c1='a'c2='b'f=1234.56789;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;运行程序,并分析结果?修改中的程序,不使用赋值语句,而用下面的scanf语句为a?b?c1?c2?d?e输入数据:scan f("%d%d%c%c%f%f",&a,&b,&c

23、1,&c2, &d, &e); 请按照程序中原来的数据,选用正确的数据输入格式,为上述变量提供数据? 使用如下数据输入格式,为什么得不到正确的结果 ?输入数据:61 62 a b 5.67 -6.78 进一步修改中使用的程序 ,使f和g的值用scanf()函数输入?进一步修改上面的程序,使其他所有变量的值都改用scanf()函数输入? 参考程序 数据输入格式In put(a,b,c1,c2,d):61 62ab5.67 -6.78In put(f,g):1234.567890 0.1234567890Input(m,n,p,q):50000 -60000 32678 4

24、0000修改中的程序,使c1?c2的数据用getchar()函数输入,用putchar()函数输出?可按照如下方法修改程序:将程序中的“ scanf("%d%d%c%c%f%f",&a,&b,&c1,&c2,&d,&e); ”语句用以下四个语句替换 :scan f("%d%d% ",&a,&b);c1=getchar();c2=getchar();scan f("%f%f", &d, &e); 使用与相同的数据输入格式输入数据? 请分析:使用如下格式为a?

25、b?c1?c2输入数据时会出现什么结果?运行程序验证所分析的结论?输入数据格式:61 62ab2. 基本输入输出函数的使用:(1) 调试上述程序无语法错误后,用下面的测试数据,对程序进行测试:a=123,b=456,c=17.6,d=71837.65,e=70000,f=2174506,u=62000,v=58765,c仁'a' ,c2= ' b'分析运行结果?特别注意输入c1,c2的值是什么?为什么?(2) 将输入e和f的语句改为:scanf(“ d,%c”,&e,&f);再用上述测试数据测试并分析结果?(3) 将输入u?v的语句改为:scan

26、f(“ d,%c” ,&u,&v);再用上述测试数据测试并分析结果?将输出e?f的语句改为:printf( “ e=%17d,f=%W” ,e,f);再用上述测试数据测试并分析结果?(5) 将输出u?v的语句改为:printf(“ u=%u,v=%u ,u,v);或printf( “ u=%d,v=%”,u,v);再用上述测试数据测试并分析结果?(6) scanf(“%c,%c,&c1,&c2);语句之前加一个语句:getchar();(7) 请读者自己修改程序和改变数据输入的形式,分析各种情况下的输入与输出?四?实验要求:1?充分预习实验内容,写出实验所需程序

27、,分析给出源程序的运行结果?2?实验中,记录各程序运行结果?出错信息及现象,并分析说明出错原因?3?实验中随时注意保存源程序,要指定适当的文件名,以备检查?4?对比各程序的分析结果与实际运行结果的差异,并分析原因?五?思考题:1. 在“基本输出函数的用法”内容中,e和g都是用“ t ”进行格式控制,但为什么没有显示在同一列的位置上?2. 说明输入?输出字符型?整数?长整型?浮点型及双精度浮点型数据时分别应使用的格式字符?3. 简述格式化输出函数printf的格式化字符串中可使用的转义字符及其功能else printf( “ undefined value!);三?实验要求:1 ?课前充分预习实

28、验内容,准备好实验所需的程序?2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?3?记录主要的调试过程?错误信息及运行结果?四?实验总结:1?if语句能否完全代替switch语句进行程序设计?2?在 if语句的嵌套结构中,如何确定else与if的匹配关系?一?实验目的:1学会使用逻辑表达式描述问题中的条件?2掌握if语句三种形式及其用法 ?3掌握switch语句的格式及使用?4. 学会设计有实用价值的选择结构程序?二?实验内容:1?判断任意一年是否为闰年,输入年份,执行程序后输出是否为闰年?2?输入四个实数,输出其最大值与最小值?3?输入三个实数,按从小到大的顺序输出?4?输入x值(

29、实数),输出对应的函数值?2-x +x-1(x<-10)y= 10(-10 < x<0)'x+1(OW x w 5).x 1(5<x)5?由键盘输入一个字符,判断它是字母?数字还是空白(空格?换行?Tab键),并输出相应的提示信息? 6?输入某学生的成绩,输出相应的信息:成绩在90100之间输出“ Very good!” ;在7089之间输出“Good!” ;在 6069 之间输出“ Pass!” ;6分 以下输出“ No pass!”?要求:(1)用if语句编写程序;(2)用switch语句编写程序?7?编写一个能够进行加减法运算的程序,要求:从键盘任意输入两

30、个实数,然后输入一个运算符,当运算符为“+时对两个数进行加法运算,为时对两个数进行减法运算,其他符号时,只显示输入的符号不进行 运算?8?已知某公司员工的保底薪水为500元,某月所接工程的利润profit(整数)与利润提成的关系如下(单位:元):程序功能:求分段函数的值并输出profit w 1000没有提成1000<profit w 2000提成10%2000<profit w 5000提成15%5000<profit w 10000提成20%10000<profit提成25%从if语句?switch语句中任选种编程:根据输入的9?编辑如下程序,并调试正确?profi

31、t值计算并输出员工的薪水(=保底薪水+提成)in elude “ stdio.h ”mai n() float x;scanf(“ d',&x);if(x < 10);2if(x w 1) y= x 1 elsey=sqrt(x-1)一?实验目的:1. 熟练掌握while ?do-while和for三种循环控制语句的特点及其编程应用?2. 掌握break?continue语句的功能及应用 ?3. 掌握二重循环结构程序的设计方法?4. 掌握循环结构程序的调试方法?二?实验内容:1?输入10个实数,输出其和?平均值及最大值?(分别用while ?for语句编程实现)2?数据统

32、计问题:从键盘输入一批任意数量的正整数,统计其中不大于100的数值个数?3?编写并调试程序,使用for循环控制语句实现上面的数据统计问题?4?输入一个正整数,判断并输出其是否为素数 ?5?输入一行字符,剔除如下字符后,再按原来的输入顺序输出?要剔除的字符为:K?a?h?5?#?6?从键盘输入一串字符(按回车结束),统计其中字母?数字及其它字符的个数并输出?7?输入一个正整数,输出其各位数字之和?8?输出如下图案:#9?输入一个正整数 n,求1!+2!+n并输出?10?输入以下程序,并调试正确:程序功能:输入一串字符,将其中的大写字母转换成对应的小写字母并输出?如输入:ABCD987EF#$,则

33、输出:abcdef#i nclude “ stdio.h ”mai n()char ch;getchar();while(ch 工"n” ); if(“Y'chw” Z”)ch1= ch-32;printf(“ %ch1);scanf(“ c” ,&ch);三?实验要求:1?课前充分预习实验内容,准备好实验所需的程序 ?3?记录主要的调试过程?错误信息及运行结果? 四?实验总结:1?C程序可以用几种方法实现循环结构?2?while (1)代表什么意思?3?用for语句可以代替 do while语句吗?2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?一?实验

34、目的1. 了解数组的特点,掌握一维数组的定义?初始化及其使用方法?2. 掌握二维数组的定义?初始化及其使用方法?3. 掌握用数组解决实际问题的思路及方法?4. 掌握程序的调试方法?二?实验内容1. 最大值问题?为一维数组输入10个整数,输出其最大值及其在数组中的位置?2. 数据分类问题?向一维数组输入10个整数,并把所有的负数存储在数组的前部,其他数据存储在负数的后面,然后输出?3. 为一维数组输入一组整数,将其逆序存放并输出?4?输入10个整数,将其按降序排列并输出(选择法?冒泡法择其一)?5?以下程序是将十进制数转换为二进制数,二进制数的最低位上的数字放在下标为0的元素中,其他依次类推?请

35、填空,并输出当x=17时的结果?mai n()int x,k=O,r;printf( input x(10ji nzhi):”;scanf(%c” &x);dor=x% ;bk+=r;x/=;while(x);printf( output b(2ji nzhi):”for(i=k-1;i>=0;i-) printf( %d,);6?数组中数据查找?有15个数存放在一个数组中,输入一个数,要求找出该数是数组中第几个元素的 值?如果该数不在数组中,则输出“无此数”?这15个数用赋初值的方法在程序中给出?要找的数用scanf函数输入?7?为一个4行5列的二维数组输入数据,求各行的最小值

36、并输出?8?为一个4行4列的二维数组输入整数,分别输出值为奇数?偶数的元素之和?*9 ?利用二维数组求矩阵的和与积?三?实验要求:1?课前充分预习实验内容,准备好实验所需的程序?2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?3?记录主要的调试过程?错误信息及运行结果?四?实验总结:1?数组中各元素的数据类型是否可以不同?3?处理数组中的数据,适合使用哪种结构编程 ?4?通过本次实验,你对一维?二维数组的使用有哪些新的认识和收获?还有哪些疑问?2?数组元素引用时,其下标从多少开始使用?实验七数组(二)一?实验目的1. 掌握一维?二维数组的特点及编程应用?2. 掌握字符数组的定义?赋

37、值和输入输出的方法及常用的字符串操作函数?3. 掌握字符数组和字符串函数的使用?4. 掌握程序的动态调试方法?二?实验内容1. 奇偶数问题?设有一维整型数组共有20个元素,且偶数与奇数各占一半,将该数组变换为2X 10的二维数组且偶数和奇数各成一行?2. 编辑运行以下程序,记录输出结果?并说明该程序实现的功能是什么?main ()int i,j,row,col,m;int arr33=100,200,300,28,72,-30,-850,2,6;m=arrOO;for(i=0;i<3;i+)for(j=0;j<3;j+)if(arrij<m) m=arrij; row=i;

38、col=j; printf(%d,%d,%dn",m,row,col);3. 使用二维数组设计一个打印“杨辉三角形”的程序 ?11 11 2 11 3 3 11 4 6 4 115 10 10 5 14. 字符分类统计问题?输入一个长度小于80的字符串(包含空格),存放到一维数组中,并分别统计其 中字母字符?数字字符?其它字符的个数?5. 以下程序的功能是:使一个字符串按逆序存放,请填空,并运行且记录其结果?main ()char m,str30;int i,j;gets(str); /* 或 scanf(%S',str);*/for(i=0,j=strle n(str)-1

39、;i<i+,j-)m=stri;stri= ;strj=m;puts(str); /* 或 printf(%s',str);*/6. 从键盘上输入两个字符串,不用库函数strcat()连接两个字符串,连接后的字符串放到另一个字符数组中,然后输出连接后的字符串?7. 输入一个字符串存放到一维字符数组中,再将其中各字符逆序存放并输出?8. 删除字符串中指定的字符后输出?如输入字符串:abcdefad,删除a字母后输出为:bcdefd ?三?实验要求:1?课前充分预习实验内容,准备好实验所需的程序?2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?3?记录主要的调试过程?错误

40、信息及运行结果?四?实验总结:1?二维数组与一维数组有什么关系?2?二维数组定义时什么情况下可以缺省第1维的长度(即行数可省)?3?C语言一般用什么符号作为字符串的结束标记?4?在C语言中字符串通过什么进行处理?5?通过本次实验,你对字符数组及字符串的使用有哪些新的认识和收获?还有哪些疑问?一?实验目的1掌握自定义函数的一般结构及函数定义?函数声明?函数调用的一般方法?2掌握形参?实参?函数原型等重要概念,理解参数传递的过程?3掌握数组作为函数参数 ?函数的嵌套和递归在编程中的应用?4掌握程序的动态调试方法 ?二?实验内容1求三角形面积函数 ?编写一个求任意三角形面积的函数,并在主函数中调用它

41、,计算任意三角形的面积?2?函数的定义应注意什么?什么是嵌套定义?嵌套调用?是否可以嵌套定义?是否可以嵌套调用?3?函数是否可以没有返回值?4?何为嵌套定义?何为嵌套调用?5?通过本次实验,你对函数的定义?声明和调用有哪些新的认识和收获?还有哪些疑问?2输入整数n值,求1!+2!+3!+n?(1) 阶乘求值用函数实现?(2) 阶乘求值用递归函数实现?3编写一个在一行中连续输出指定个数字符的函数,并在主函数中调用它输出如下*图案:*4分别编写求两个整数的最大公约数和最小公倍数的函数,并在主函数中调用它们*(要求结果在主函数中输出)?*5.求素数函数?*(1)编写一个判断素数的函数,当一个数为素数

42、时,函数返回值为1,否则为0?*在主函数中从键盘任意输入 10个整数,求所有的素数之和?对素数的判断要求*调用上面的素数函数实现 ?6?写一个判定素数的函数,在主函数输入一个整数,输出是否素数的信息?本程序应当准备以下测试数据:17?34?2?1 ?0?分别输入数据,运行程序并检查结果是否正确7?从键盘接受m和n的值,然后计算Cnm.?Cnm=m!/(n!*(m-n)!) ?要求设计一函数能求阶乘X!,在主函数中多次调用该函数以达到求Cn m?8?上机调试下面的程序,记录系统给出的出错信息,指出出错原因,并调试正确?main ()in t,y;printf( “d ,sum(x+y);int

43、sum(a,b)int a,b;return(a+b);三?实验要求:1?课前充分预习实验内容,准备好实验所需的程序?2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?3?记录主要的调试过程?错误信息及运行结果?四?实验总结:1?为什么要在编程时使用函数?有什么好处?实验九函数(二)?实验目的1. 掌握自定义函数的一般结构及定义?声明和调用函数方法?2. 理解掌握数组作函数参数的使用方法?3. 理解掌握变量的作用域和存储类型??实验内容1. 计算|a 3| ?要求编写函数计算 a3,再编写函数调用上述函数计算绝对值,在主函数中输入a值,并输出结果?2. 编写函数funl求n!,另一个

44、fun2函数调用funl并求1!+2!+m! ?在主函数中输入一个整数,调用fun2求阶乘之和,并输出结果?3. 分别编写对一维数组中所有元素求平均值?最大值的函数,在主函数中调用它们(用数组名作参数)并输出结果?4. 设计一个通用的排序函数(能接受不同的排序数据?个数),要求在主函数中输入要排序的数据,输入数据以-999表示结束,然后调用排序函数执行排序功能,再在主函数中显示排序结果5. 编写一个函数,将字符串中的大写字母转换成对应的小字字母?在主函数中输入一个字符串,并调用上述函数进行处理,结果在主函数中输出?6. 编写函数求指定字符串的长度,主函数中输入一个字符串,并调用前述函数,输出结

45、果?7. 编写函数将主函数中的字符串逆序存放,结果在主函数中输出?8. 输入10个学生5门课的成绩,用二维数组作参数,分别用函数求:1) 每个学生的平均分2) 每门课程的平均分9. 输入以下程序,并进行调试,分析程序中各变量的作用域和存储类别:#include “stdio.h ”int A=2;int B=2;main ()int fact();int n=2;int i;printf(“ a(1)=%t ” ,A);printf(“b(1)=%t ” ,B);printf(“n(1)=%d n ” ,n);n+;printf(“ a(3)=%t ” ,A);printf(“ b(3)=%t

46、 ” ,B);printf(“n( 3)=%dn” ,n);printf(“ a(4)=%t ” ,A)printf(“ b(4)=%t ” ,B)printf(“n( 4)=%dn” ,n);sprintf(“a(5)=%t ” ,A);printf(“b(5)=%t ” ,B);printf(“n( 5)=%d n”',n);printf(“ k(%d)=%t ” ,i,fact()printf(n );printf(“a(6)=%t ” ,A);printf(“b(6)=%t ” ,B);for(i=1;i<4;i+)int fact()static k=3;k=k+1;A

47、=A+1;B=B+1;return b;请分析程序后,写出运行结果?三?实验要求:1?课前充分预习实验内容,准备好实验所需的程序 ?2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?3?记录主要的调试过程?错误信息及运行结果?四?实验总结:1 ?数组名作为参数与变量作为参数的区别是什么?2?通过本次实验,你对数组元素和数组名作函数参数有哪些新的认识和收获?还有哪些疑问?int n=100;int A=100;B=100;printf(“ a(2)=%t ” ,A);printf(“ b(2)=%t ” ,B);printf(“n( 2)=%dn” ,n);Which sytle yo

48、u want to :Capital ( c ) or un capital ( a ) : u/computer请调试下面的程序,使其有如上执行结果?#i nclude <stdio.h>main ()char s*;char c;printf( “which style you want to :ln ”); printf( “capital ( c ) or uncapital(a):” );c=getchar();?实验目的1. 掌握指针和指针变量的概念?2. 掌握简单指针变量的定义?赋值及使用方法?3. 学会使用数组的指针和指向数组的指针变量??实验内容1. 输入整型变量

49、a?b的值,利用指针交换它们的值,并输出交换后a?b的值?2. 从键盘输入三个整数,要求设三个指针变量 p1,p2,p3,使pl指向三个数的最大者,p2指向次大者,p3指向最小者,然后按由小到大的顺序输出这三个数?3. 用指针法在一维有序数组中插入数据?输入一个含有8个整数的升序数列,存储在一维数组中,要求在其中插入任意一个整数后数列仍然有序?4. 运用指针操作编程实现:为含10个浮点数的一维数组输入数据,并求其最小值及下标?元素和及平 均值并输出?5. 输入10个整数存放到一维数组中,利用指针将各元素逆序重新存放并输出?6. 用指针操作实现冒泡法排序?输入8个整数,将其升序排序并输出?7.

50、指出下面程序错误的原因,并调试正确?mai n()int x=10,y=5,*px,*py;px=py;px=&x;py=&y;printf(“ *px=%d,*py=%d,*px,*py);8?下面的程序试图有如下运行结果:which style you want to :Capital ( c ) or un capital ( a ):c/COMPUTERif(c= ' c' )strcpy(s, ” COMPUTER;else strcpy(s, ” computer” );put(s);分析出错原因?三?实验要求:1?课前充分预习实验内容,准备好实验所

51、需的程序 ?2?实验中随时注意保存源程序,要指定适当的文件名,以备检查?3?记录主要的调试过程?错误信息及运行结果?四?实验总结:1?指针变量用来存放什么 ?2?*p在定义与使用时的区别是什么?3?若p为指针变量,则执行P+后p的值如何变化?4?如何定义指向一维数组的指针变量?如何通过指向一维数组的指针变量访问数组中各元素经?5?通过本次实验,你对简单指针变量及一维数组指针变量的使用有哪些新的认识和收获?还有哪些疑问?实验一 指针(二)?实验目的1. 掌握指向字符串的指针变量的定义?赋值及编程应用?2. 掌握指针作函数参数时的特点?数据访问方法及编程应用?3. 学会使用指向函数的指针变量??实

52、验内容1. 利用指向字符串的指针变量将从键盘输入的两个字符串连接到一起?(不用strcat() 函数)2. 利用指向字符串的指针变量查找输入的字符串中指定字符的出现次数?3. 将一个3X3的矩阵转置,用一函数实现之?在主函数中用scanf函数输入矩阵元素?(内容自定)将二维数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函中输出已转置的矩阵4. 编写函数,将一维整型数组中的负数变为其绝对值,结果在主函数输出?5. 编写函数把任意十进制正整数转换成二进制数,结果在主函数中输出?6. 编写函数,将指定字符串中的小写字母变成对应大写形式,并在主函数中调用它,结果在主函数中输出?

53、7. 编写函数实现字符串复制(不用strcpy函数),在主函数中调用它并输出结果?8. 用一个函数实现两个字符串的比较,即自己写一个比较函数(strcmp),函数原型为:int strcmp(char *p1,char *p2);设p1指向字符串s1,p2指向字符串s2,要求当s仁s2时,函数返回值为0;若s1<>s2,则返回它们二 者第一个不相同字符的ASCII码差值;若s1>s2,则输出正值;若s1<s2则输出负值两个字符串s1?s2由main函数输入,strcmp函数的返回值也由 main函数输出9. 输入并运行以下程序,请写出程序的功能:mai n()int m

54、ax(i nt,i nt);in t (*p)();int a,b,c;p=max;scanf(%d,%d”,&a,&b);c=(*p)(a,b);printf(“a=%d,b=%d,c=%d n”,a,b,c);int max(i nt x,i nt y)int乙if (x>y) z=x;elsez=y;return 乙11.想使指针变量pt1指向a和b中的大者,pt2指向小者,以下程序能否实现此目的?swap( int *p1,i nt *p2)int *p;p=p1;p 仁p2;p2=p;main ()int a,b;scanf( “%d,%d,&a,&b);pt1= &a;pt2=&b;if(a<b)s

温馨提示

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

最新文档

评论

0/150

提交评论