实验指导书.docx
- 文档编号:10283493
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:26
- 大小:35.38KB
实验指导书.docx
《实验指导书.docx》由会员分享,可在线阅读,更多相关《实验指导书.docx(26页珍藏版)》请在冰豆网上搜索。
实验指导书
实验指导书
实验1TurboC环境认识与使用
一、实验目的
熟悉TurboC运行环境、创建c程序文件的过程。
二.实验内容
1.启在C编辑环境下,输入下列程序。
然后将其以p1.c为文件名保存到d盘的cc目录中。
(若d盘中没有cc子目录,则需要自己建立)
⑴启动C编辑环境
开始→程序→MS-DOS方式,在MS-DOS方式下键入:
cd\tc\bin(Enter)
⑵在如下的提示符下,键入tc。
C:
\tc\bin>tc(Enter)
则此时C语言编辑环境已启动。
⑶按Esc键后,光标落在编辑区中,键入下面程序。
⑷程序输入完成后,利用Alt+F将File菜单的子菜单显示在屏幕上,选择Save,此时显示一个对话框,在对话框中输入:
d:
\cc\p1.c(Enter)则程序被保存。
⑸利用Alt+X退出C语言编辑环境。
⑹再次启动C语言编辑环境,键入tc(回车)。
⑺打开上面保存的程序p1.c。
同时按下Alt+F将File菜单的子菜单显示在屏幕上,选择Load,此时显示一个对话框,在对话框中输入:
d:
\cc\p1.c(回车),则此时p1.c程序被显示在程序的编辑窗口中。
⑻将上面的程序改名为pp1.c保存到d盘的cc目录中(d:
\cc)。
同时按下Alt+F将File菜单的子菜单显示在屏幕上,选择Writeto,此时显示一个重命名对话框,在对话框中输入:
d:
\cc\pp1.c(Enter),则此时pp1.c程序被保存到d盘cc子目录中,此时编辑窗口右上方的文件名为:
pp1.c。
⑼编译pp1.c程序
同时按下Alt+C,则屏幕上显示编译子菜单,当光带落到第一个子菜单项CompiletoOBJ上时按回车键,则程序编译开始,编译完成后显示编译结果,如图4所示。
(10)运行pp1.c程序
浏览完编译结果后,若程序没有错误,按键盘中的任意一个键,则回到编辑窗口,此时同时按下Alt+R,则显示编译子菜单,当光带落到第一个子菜单项Run上时按回车键,则链接、运行开始。
运行完成后,利用Run子菜单中的Userscreen命令观察运行结果。
2.按上面“输入、调试、编译、链接、执行”程序的步骤,完成下面程序的输入、编译、执行。
分析上面程序的运行结果,写出运行结果___________;并给出运行结果的说明。
实验2顺序结构程序设计
一.实验目的
熟悉运算符、表达式,掌握标准输入输出函数的适用方法和顺序结构程序设计的一般方法。
二.实验内容
1.变量a、b中各存有一个整数,交换两数后输出。
【分析提示】
设a=10,b=20,若要交换这两数,则需要借一中间变量,首先将a中的数值存入变量t中进行保存,然后将b中的数值存入a中,再将t中的数值存入b中。
写出程序代码
2.鸡兔同笼,已知鸡兔总头数为h,总脚数为f,求鸡兔各有多少只?
设a=10,b=20,若要交换这两数,则需要借一中间变量,首先将a中的数值存入变量t中进行保存,然后将b中的数值存入a中,再将t中的数值存入b中。
写出程序代码
2.鸡兔同笼,已知鸡兔总头数为h,总脚数为f,求鸡兔各有多少只?
【分析提示】
设有x只鸡,有y只兔,则有:
求出x和y的公式:
设h=16,f=40,写出程序代码
3.从键盘输入一个字符,输出这字符的ASCII码的值。
【分析提示】
一个整数,只要它的值在0—255之间,也可以用字符形式输出,在输出前,系统会将该整数转换为相应的ASCII码的字符;一个字符也可以用一个整数输出,输出的整数即为这字符的ASCII码值。
根据上面的分析,自已写出程序代码。
运行时:
从键盘上输入字符:
a
输出结果为_______,此结果代表着什么含义?
4.已知直角三角形的两直角边长为a,b,求斜边长
的值,保留一位小数。
【分析提示】
在这个题中计算
,要用到一个数学函数sqrt(x),这个函数在math.h头文件中。
写出程序代码。
实验3分支结构程序设计
一.实验目的
掌握if语句的格式与应用,if语句的嵌套格式与应用,条件运算符的作用,Switch语句的格式与应用,Break、continue语句的格式与应用。
二.实给内容
1.完成下面的程序,在空白处填入a,b,c,取a,b,c中最大者赋给max。
A.if(a>b&&a>c) B. if(a>b)
max=________ if(a>c)
else max=______p; max=______
实验4循环结构程序设计一
一.实验目的
掌握循环结构的三种形式:
当型循环结构(while)、直到型循环结构(do_while)、次数型结构(for),以及三种形式的相互转换,掌握break语句、continue语句的格式、功能、作用。
二.实验内容与步骤
读程序,求结果
1. 下面程序段输出结果是( )
Intx=3;
Do{printf(“%d\n”,x-=2);}
While(!
(--x));
2. x和y均为int型变量,执行循环语句后,y值为( )
For(y=1;x=1;y<=50;y++)
{if(x>=10)break;
if(x%2==1) {x+=5;continue;}
x-=3;}
编写下列程序,上机调试、验证。
1. 键盘上输入10个数,求其平均值。
2. 输出1—100之间,其数的平方在150—200之间的第一个数,如找到,退出循环,输出该数的平方。
反之,继续查找。
3. 输入一正整数,按从低到高的顺序依次输出其各位数字的值,例如:
输入8546输出8 5 4 6
【程序分析提示】关键是确定整数的各位数字是什么
4.从键盘上输入若干正整数,求其中最大数和最小数。
输入的数以0为中止标志。
【程序分析提示】
(1) 设第一个读取德数是当前最大数和最小数;
(2) 若当前读取的整数不为0,则继续循环;
(3) 若当前读取的数比最大数大,则记录;比最小数小,则记录;
(4) 读取下一个整数。
if(b>c) else
max=________ max=______max=______
else else
max=________ if(b>c)
max=________
else
max=_________
2.输入a,b,c三个整数,要求将绝对值最大者打印输出。
【分析提示】
此题的关键是绝对值如何表示,x的绝对值也以表示成:
abs(x)。
可以用伪代码写出程序的算法。
If abs(a)>abs(b) 则x=a否则x=b(这时说明x中存放着a、b中绝对值较大的一个数);如果if abs(x)>abs(c) 则绝对值较大的一个是x,否则绝对值较大的一个是c。
3.输入一个整数,判断该数的奇偶性。
(输出相应的标志even-偶数odd-奇数,请记住这两个单词)
【分析提示】
一个数除2若余数为0,则这个数一定是偶数,否则是奇数。
C语言中的求余运算符为“%”,若输入的数为偶数则输出“even”,若输入的数为奇数则输出“odd”。
自已写出程序代码。
4.给定一个正整数,判断它是否能同时被3、5、7整除。
实验5循环结构程序设计二
一.实验目的
掌握三种循环结构相互嵌套,多重循环结构的应用。
二.实验内容与步骤
编写下列程序,上机调试、验证。
1. 输出100-999之间的全部素数。
2. 编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数。
3.打印下面的图案
******
* *
* *
******
【程序分析提示】
这是一个用双层循环实现打印图案的问题。
打印几行用外循环实现,每行打印多少个字符,用内循环实现。
具体每行哪个位置打印字符,由内循环体的if语句实现。
4.求出所有各位数字的立方和等于1099的三位整数。
【程序分析提示】
可用三层循环实现。
设最外层循环变量为i(表示百位);此外层循环变量设为j(表示十位);最内层循环变量为k(表示个位)。
输出ijk的条件:
所有个位数组的立方和等于1099,即:
i*i*i+j*j*j+k*k*k==1099;
实验6数组程序设计一
一.实验目的
掌握一维数组和二位数组的定义、初始化、输入、输出方法
二.实验内容与步骤
1.填补空出的语句,以使程序完整,然后上机验证。
(1)下面程序的功能是输出数组s中最大元素的下标。
main()
{intk,p;
ints[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])_____________;
printf(“%d\n”,k);
}
【程序分析提示】主要考虑最大元素下标k和循环变量p之间的关系。
(2)下面程序的功能为求主、次对角线元素之和。
main()
{staticinta[][3]={9,7,5,3,1,2,4,6,8};
inti,j,s1=0,s2=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{if(________)s1=s1+a[i][j];
if(________)s2=s2+a[i][j];
}
printf(“%d\n%d\n”,s1,s2);
}
【程序分析提示】主要考虑主对角线行、列之间有何关系?
次对角线行、列之间的关系?
3.编写下列程序,上机调试、验证。
(1)求2个3×3矩阵对应元素之和,并存入矩阵C中,然后输出矩阵C。
设计步骤:
①定义3个3×3矩阵a,b,c;
②设计用双重循环给矩阵a、b赋值;
③用双重循环求矩阵a、b对应元素之和并赋给矩阵c;
④用双重循环输出矩阵c对应的元素。
(2)输入单精度型一维数组a[10],计算并输出a数组中所有元素的平均值。
设计步骤:
① 定义一个单精度型一维数组a[10];
② 用单重循环给一维数组a[10]赋值;
③ 用单重循环求一维数组a[10]所有元素之和;
④ 在循环外求平均值并输出。
四.思考与练习
1. 设a[3][4][5]是一个三维数组,在内存中紧位于a[1][3][4]之后的数组元素是谁?
紧位于a[0][1][0]之前的数组元素是谁?
2. 设a是一个M*N*L的三维数组,给出a[i][j][k]的地址计算公式。
3. 设有数组定义inta[5][10]。
问一维数组a的每个元素占多少字节?
数组a[2]的每个元素占多少字节?
假设int型数句占2个字节。
4. 设有数组定义inta[3][4][5]。
a,a[0],a[0][0]都是数组的名字。
问它们的第一个元素的地址各是什么?
它们的第一个元素各占多少字节?
实验7数组程序设计二
一.实验目的
掌握字符数组的定义、初始化,存放字符串的字符数组的定义、初始化、输入、输出方法,掌握常用字符串处理函数的格式、功能和使用方法;
二.实验内容与步骤
1.填补空出的语句,以使程序完整,然后上机验证。
下面程序的功能是将一个字符串str的内容颠倒过来。
#include“string.h”
main()
{inti,j,k;
charstr[]={“1234567”};
for(i=0,j=strlen(str)_______;i {k=str(i);str[i]=str[j];str[j]=k;} } 【程序分析提示】i和j对应字符数组的下标,通过循环实现i由前往后移动,j由后向前移动。 分析字符数组最后元素的下标值和字符串长度之间的关系。 2.编写下列程序,上机调试、验证。 (1) 输入一个字符串,将其中所有大写字母改为小写字母,而所有小写字母全部改为大写字母,然后输出。 设计步骤 ①用gets输入字符串; ②用循环判断字符串中的每个字符是大写还是小写,若是大写要转换成小写,是小写要转换成大写: 大写与小写字母的转换关系是“小写字母=大写字母+32” ③用puts输出该字符串。 参考程序部分清单: (2) 设某班50名学生的三科成绩表如下 课程一 课程二 课程三 … … … 编一个程序,输入这50个学生的三科成绩,计算并输出每科成绩的平均分。 设计步骤: ① 可先按3个学生3门课成绩设计,通过后再改成50个学生; ② 先将3个学生3门课的成绩通过scanf函数送入字符数组score; ③ 求出3个学生每门课程的总成绩,放入s一维数组中; ④ 求出每门课程的平均成绩并输出。 四.思考与练习 1. 读如下程序,找出其中的所有错误。 1) main() 2) {inta,x[10]; 3) chars[100]; 4) doubleA,B,a,b; 5) for(i=0;i<10;i++)scanf(“%c”,x[i]); 6) scanf(“%d%d”,&A,&B); 7) for(i=0;i<50;i++)scanf(“%c”,s[i]); 8) ifA>Bthena=b=1elsea=b=2; 9) printf(“%d,%d\n”,x[0]=A+x[10],B+x[10]); 10) printf(“s=%s\n”,s); 2. 函数调用“strcat(strcpy(str1,str2),str3)”的功能是什么? 语句“printf(“%d\n”strlen(“ats\no12\1\\”));”的输出结果是什么? 实验8函数程序设计一 一.实验目的 掌握自定义函数的概念、定义格式、调用方法;掌握函数的形式参数、实际参数和函数的返回值;掌握函数程序设计的一般方法和应用。 二.实验内容与步骤 1.阅读下列程序,分析程序完成的功能,然后上机验证结果。 (1)main() { voidf(); floatx,y; scanf(“%f,%f”,&x,&y); f(x,y); } voidf(float a,float b) { floatc; if(a>b) c=a+b; else c=a-b; printf(“%f”,c); } 【程序分析提示】该程序通过函数f,对形式参数为a,b进行相应运算。 通过该题目验证自定义函数的定义、调用、参数传递、返回值之间的关系。 【思考】如果将该函数定义为代返回值的类型,该程序应该如何改变? 2.编写下列程序(或程序段)。 (1)编写自定义函数,实现求两个实数最小值的功能。 (2)计算10名学生1门课成绩的平均分。 (程序设计要求: 用自定义函数来实现,注意自定义函数的形式及参数之间的传递,用主函数来调用自定义函数实现功能。 ) (3)定义二个整数(x、y)最小公倍数的函数。 (4)利用自定义函数编写程序,实现将一个十进制数转换成二进制数。 (5)利用自定义函数编写程序,求下面的式子: Y=1+1/2+1/3……+1/n (n的数值自定) Y=1×2×3+2×3×4+……+98×99×100 实验9函数程序设计二 一.实验目的 掌握函数与数组之间的关系和操作,熟悉数组作为参数传递应该注意的问题;函数的嵌套、递归调用方法和应用;局部变量、全局变量的定义和使用;常用系统函数的使用; 二.实验内容与步骤 (1)main() { voidf(); floata[10]; int i; for(i=0;i<10;i++) scanf(“%d”,&a[i]); f(a); } voidf(intb[]) { floatsum=0,aver; int i; for(i=0;i<10;i++) sum+=b[i]; aver=sum/10.0; printf(“%d”,aver); } 输入数据为: 23 43 12 46 90 65 44 76 78 86 输出结果为: 【思考】在主函数中的voidf();作用是什么? 可以改变其形式吗? (2)main() { intx=5,y=0; printf(“x=%5d y=%5d \n”,x,y); func(); printf(“x=%5d y=%5d \n”,x,y); func(); } func() { staticintx=4;inty=10; x=x+2; y=y+x; printf(“x0=%5d y0=%5d \n”,x,y); } 【思考】分析该程序的运行结果并给出简单解释。 (3)main() { inti=5; printf(“%d\n”sub(i)); } sub(intn) { inta; if(n==1) return1; a=n+sub(n-1); return(a); } 【思考】写出该程序的运行结果并熟悉递归函数的实现过程。 完成下面的题目,然后上机验证。 (1)输入一个数组,利用自定义函数求数组的平均数(用数组做参数)。 (2)用自定义函数实现将两个字符串连接的程序。 (4)给出一个二维数组,求其主对角线元素之和。 (5)自定义函数countc的功能是统计array数组中大写字母的个数,并返回大写字母的数目。 (6)下列程序的功能是计算函数f(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。 (7)用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。 (8)以下函数p的功能是用递归方法计算xX的n阶勒让德多项式的值。 已有调用语句p(n,x);请编写p函数。 递归公式如下: 实验10指针结构程序设计一 一.实验目的 掌握指针和指针变量,内存单元和地址、变量与地址、数组与地址的关系;掌握指针变量的定义和初始化,指针变量的引用方式;掌握取地址运算符与指针运算符;掌握指向变量的指针变量的使用;掌握指向数组的指针变量的使用; 二.实验内容与步骤 1.main() { inta,b,*pa=&a,*pb=&b,*p; scanf(“%d,%d”,pa,pb); if(*pa>*pb) { p=pa;pa=pb;pb=p;} printf(“%d<=%d\n”,*pa,*pb); } 【程序分析提示】该程序用if语句比较pa和pb指向的数,使pa指向小数,pb指向大数,在实现该程序中,使用了指针方式。 2.输入15个整数存入一维数组,再按逆序重新调整该数组中元素的顺序然后再输出。 下面给出部分程序的内容,请同学将程序补充完整,然后上机调试。 部分程序清单如下: main() { inta[15],*p1,*p2,x; for(p1=a;p1 scanf(“%d”,p1);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 指导书