C程序设计实验报告.docx
- 文档编号:18004890
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:20
- 大小:28.57KB
C程序设计实验报告.docx
《C程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《C程序设计实验报告.docx(20页珍藏版)》请在冰豆网上搜索。
C程序设计实验报告
实验二C语言的运行环境、运行过程和表达式的使用
一、目的与要求
1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2、了解在该系统上如何编辑、编译、连接和运行一个C程序。
3、通过运行简单的C程序,初步了解C源程序的特点。
4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
5、学会使用C的有关算术运算符,以及包含这些运算符的表达式
二、实验例题
【例1】编程实现在屏幕上显示如下三行文字
Hello,world!
WelcometotheClanguageworld!
Everyonehasbeenwaitingfor.
在TurboC的集成环境下,键入如下源文件。
敲Alt+F组合键打开File菜单,File菜单中Writeto或saveas选项可将默认noname.c文件名改为任意文件名。
程序example.c如下:
main()
{
printf("Hello,World!
\n");
printf("WolcometotheClanguageworld!
\n");
printf("Everyonehasbeenwaitingfor.\n");
}
然后用Ctrl+F9执行example.c,用Alt+F5查看结果,即在屏幕上显示题目要求的三行文字。
按回车键重新返回TurboC的编辑环境。
注意,在运行程序之前最好先存盘。
【例2】输入并运行程序,写出运行结果。
main()
{
inta,b,sum;
a=123;b=456;
sum=a+b;
printf(“sumis%d\n”,sum);
}
运行方法同上,最后结果为:
sumis579。
【例3】
输入并运行程序,写出运行结果。
main()
{
inta,b,c;
intmax(int,int);
scanf(“%d,%d”,&a,&b);
c=max(a,b);
printf(“max=%d”,c);
}
intmax(intx,inty)
{
intz;
if(x>y)z=x;
elsez=y;
return(z);
}
这个程序的功能是对于任意输入的两个整数,输出较大的那个数。
所以程序运行之后,光标将停留在用户屏幕上,等待用户输入两个整数,比如输入“3,5”,回车,在用户屏幕上就会输出“max=5”。
【例4】输入并运行下程序,写出运行结果。
mian()
{
charc1,c2;
c1=97;
c2=98;
printf(“%c%c”,c1,c2);
}
在此基础上
1)加一个printf语句,并运行之。
printf(“%d,%d”,c1,c2);
2)再将第二行改为:
intc1,c2;
再使之运行。
3)再将第三行改为:
c1=300;c2=400;
再使之运行,分析其运行结果。
在该程序中,说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。
【例5】分析下面程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。
main()
{
charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);
printf(“\t%c%c”,c4,c5);
}
在该程序中,主要考查对转义字符的掌握情况。
【例6】
分析下面程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。
main()
{
inti,j,m,n;
i=8;j=10;
m=++i;n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
分别作以下改动之后,先分析再运行:
1)将第四行改为:
m=i++;n=++j;
2)程序改为:
main()
{
inti,j;
i=8;j=10;
printf(“%d,%d”,i++,j++);
}
3)在2)的基础上,将printf语句改为:
printf(“%d,%d”,++i,++j);
4)再将printf语句改为:
printf(“%d,%d,%d,%d”,i,j,i++,j++);
5)程序改为:
main()
{
inti,j,m=0,n=0;
i=8;j=10;
m+=i++;n-=--j;
printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);
}
此程序主要考查自加、自减运算符以及复合运算符的用法。
三、上机内容
1.用turboc输入并运行前面6道例题中程序,记下运行结果,熟悉调试C程序的的方法与步骤。
例1:
Hello,world!
WelcometotheClanguageworld!
Everyonehasbeenwaitingfor.
例2:
sumis579
例3:
max=5
例4:
ab
9798
ab
9798
例5:
aabbccabc
AN
例6:
911910
998-9
2.参照例题,编写一个C程序,输出以下信息:
****************************
Hello,World!
****************************
main()
{
Printf(“**********************\n”);
Printf(“Hello,World!
”);
Printf(“**********************\n”);
}
作业:
四、实验结果分析
对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。
实验二顺序结构与选择结构程序设计
一、实验目的及要求
1.理解C语言程序的顺序结构;
2.掌握常用的C语言语句,熟练应用赋值、输入、输出语句;
3.了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);
4.学会正确使用逻辑运算符和逻辑表达式;
5.熟练掌握if语句和switch语句。
二、实验内容
1、已知圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
2、输入一个华氏温度,要求输出摄氏温度。
公式为c=5/9*(f-32)。
3、有3个整数a、b、c,由键盘输入,编程序按从小到大的顺序将它们排序并输出。
4、编程序计算下面的函数:
e
-10 y=|x|+23≤x≤4 sin(x2)当x取其他值时 5、输入一个整数m,判断它能否被7、11、17整除,如果能被以上三个数之一整除,则输出它能被整除的信息,否则输出m不能被7、11、17整除的信息。 6、电文加密的算法是: 将字母A变成字母G,a变成g,B变成H,b变成h,依此类推,并且U变成A,V变成B,等等。 从键盘输入一个电文字符,输出其相应的密码。 7、企业发放的奖金根据利润提成。 若利润I≤10万元,奖金可提10%;若10万100万时,超过100万元部分按1%提成。 从键盘输入当月利润I,求应发奖金总数。 1. Main() { Floatr=1.5,h=3.0,c,s,S,V1,V2; c=2*3.14*r; s=3.14*r*r; S=4*3.14*r*r; V1=4/3*3.14*r*r*r; V2=3.14*r*r*h; Printf(“%f%f%f%f%f”,c,s,S,V1,V2”); } 2. Main() { Floatc,f; Scanf(“%f”,f); c=5/9*(f-32); printf(“%f”,c); } 3. Voidmain() { Floata,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(“%.2f,%.2f,%.2f”,a,b,c); } 4. Voidmain() { floatx,y; scanf(“%f”,x); if(x>0&&x<1) { y=e -1; } elseif(x>=3&&x<=4) { y=x+2; } else { y=sin(x*x); } Printf(“%.2f”,y); } 5. Voidmain() { intm; scanf(“%d”,m); if(m%7=0); printf(“m能被整除\n”); elseif(m%11=0); printf(“m能被整除\n”); elseif(m%17=0); printf(“m能被整除\n”); else printf(“m不能被整除\n”); } 6. 7. main() {longi; floatbonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf("请输入利润i: "); scanf("%ld",&i); if(i<=100000) bonus=i*0.1; elseif(i<=200000) bonus=bon1+(i-100000)*0.075; elseif(i<=400000) bonus=bon2+(i-200000)*0.05; elseif(i<=600000) bonus=bon4+(i-400000)*0.03; elseif(i<=1000000) bonus=bon6+(i-600000)*0.015; else bonus=bon10+(i-1000000)*0.01; printf(”奖金是%10.2f\n",bonus); } 5.6 voidmain() { charc1=`A`,c2=`B`,c3=`C`,c4=`D`,c5=`e`; floatx; scanf(“%.2f”,x); if(x>1OO.00) { printf(“error\n”); } elseif(x>90.00) { printf(“%c”,c1); } elseif(x>80&&x<90) { printf(“%c”,c2); } elseif(x>70&&x<79) { printf(“%c”,c3); } elseif(x>60&&x<69) { printf(“%c”,c4); } elseprintf(“%c”,c5); } 5.7 main() {longintnum; intindiv,ten,hundred,thousand,ten_thousand,place; printf("请输入一个整数(0~99999): "); scanf("%ld",&num); if(num>9999)place=5; elseif(num>999)place=4; elseif(num>99)place=3; elseif(num>9)place=2; elseplace=1; printf("place=%d\n",place); ten_thousand=num/10000; thousand=num/1000%10; hundred=num/100%10; ten=num%100/10; indiv=num%10; switch(place) {case5: printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv); printf("\n反序数字为;"); printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand); break; case4: printf("%d,%d,%d,%d",thousand,hundred,ten,indiv); printf("\n反序数字为: "); printf("%d%d%d%d\n",indiv,ten,hundred,thousand); break; case3: printf("%d,%d,%d",hundred,ten,indiv); printf("\n反序数字为: "); printf("%d%d%d\n",indiv,ten,hundred); break; case2: printf("%d,%d",ten,indiv); printf("\n反序数字为: "); printf("%d%d\n",indiv,ten); break; case1: printf("%d",indiv); printf("\n反序数字为: "); printf("%d\n",indiv); break; } } 6.8 main() {inti=1,n;doublet,x=1,y=2,s,sum=0; scanf("%ld",&n); while(i<=n){s=y/x;sum=sum+s;t=y;y=y+x;x=t;i++;} printf("%f\n",sum); } 6.14 main() {inti,j,k; for(i=0;i<=3;i++) {for(j=0;j<=2-i;j++) printf(""); for(k=0;k<=2*i;k++) printf("*"); printf("\n"); } for(i=0;i<=2;i++) {for(j=0;j<=i;j++) printf(""); for(k=0;k<=4-2*i;k++) printf("*"); printf("\n"); } } 三、实验结果分析 对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。 实验三循环结构程序设计 一、实验目的及要求 1.熟练掌握while、do—while和for三种循环语句的应用。 2.掌握基本的编程算法。 二、实验内容 1、利用公式 sinx=x-x3/3! +x5/5! -x7/7! +x9/9! -…+(-1)(n-1)·x(2n-1)/(2n-1)! 编程计算sinx的值。 设x=0.5,n=9。 2、编写程序求: 3、输入20个有符号整数,统计正整数、零、负整数的个数。 4、输入m个数,求其最大数、最小数和平均值。 5、在100和1000之间,有多少个其数字之和等于9而且该数可被5整除的整数? 6、一位同学问老师和老师夫人的年龄是多少,老师说: “我年龄的平方加上我夫人的年龄恰好等于1053,而我夫人年龄的平方加上我的年龄等于873。 ”试计算老师和其夫人的年龄。 7、打印下列图案 * *** ***** *** * 三、实验结果分析 对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。 实验四、数组程序设计 一、实验目的及要求 1.掌握一维、二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组的使用; 3.掌握与数组有关的算法(例如排序算法)。 二、实验内容 1、给整型二维数组b[3][4]输入12个数据,计算并输出数组中所有正数之和、所有负数之和。 2、青年歌手参加歌曲大奖赛,有10个评委进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。 分析: 这道题的核心是排序。 将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外的数的平均分。 3、设二维数组b[5][4]中有鞍点,即b[i][j]元素值在第i行中最小,且在第j列中最大,试编写一程序找出所有的鞍点,并输出其下标值。 也可能没有。 4、从键盘输入一数,然后在一个整型一维数组a[20]中,用折半查找法找出该数是数组中第几个元素的值。 如果该数不在数组中,则打印”Nofound”。 5、编程打印如下图形: * ** ** ** * 6、有一电文,已按下列规律译成译码: A→Za→z B→Yb→y C→Xc→x 即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。 非字母字符不变。 编写一个程序将密码译成原文,并输出密码和原文。 三、实验结果分析 对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。 实验五函数程序设计 一、目的与要求 1、掌握C语言函数的定义方法、函数的声明及函数的调用方法。 2、了解主调函数和被调函数之间的参数传递方式。 二、实验内容 1、分别编写求圆面积和圆周长的函数,另编写一主函数调用之,要求主函数能输入多个圆半径,且显示相应的圆面积和周长。 2、编写一程序,把M×N矩阵a的元素逐列按降序排列。 假设M、N不超过10。 分别编写求一维数组元素值最大和元素值最小的函数,主函数中初始化一个二维数组a[10][10],调用定义的两函数输出每行、每列的最大值和最小值。 3、编写一判别素数的函数,在主函数中输入一个整数,输出该数是否为素数的信息。 4、编写一个将两个字符串连接起来函数(即实现strcat函数的功能),两个字符串由主函数输入,连接后的字符串也由主函数输出。 5、编写计算最小公倍数的函数,试由主函数输入两个正整数a和b调用之。 计算最小公倍数的公式为: lcm(u,v)=u*v/gcd(u,v)(u,v≥0) 其中,gcd(u,v)是u、v的最大公约数。 lcm(u,v)是u、v的最小公倍数。 三、实验结果分析 对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。 实验六指针程序设计 一、目的与要求 1、通过实验进一步掌握指针的概念,会定义和使用指针变量; 2、能正确使用数组的指针和指向数组的指针变量; 3、能正确使用字符串的指针和指向字符串的指针变量; 4、能正确使用指向函数的指针变量; 5、了解指向指针的指针的概念及其使用方法。 二、实验内容 1、编写子函数,对传送过来的三个数按由小到大的顺序排列,并通过形参传回调用函数。 2、编写函数intfind(int*p,intn,intx),在指针p所指的数组中查找整型数x,如果x在数组中,则该函数返回1,否则返回0。 n为数组的大小。 3、(选做)有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前m个数(如下图所示)。 写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个整数。 4、(选做)在主函数中输入10个不等长的字符串。 用另一个函数对它们按升序排序,然后在主函数中输出这10个已排序的字符串。 5、(选做)用指针型指针对五个字符串进行排序,并将排序后的结果按顺序输出。 6、(选做)编写一程序,统计从键盘输入的命令行中第二个参数所包含的英文字符个数。 三、实验结果分析 对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。 实验七结构体练习 一、目的与要求 1、掌握结构体类型变量的定义和使用; 2、掌握结构体类型数组的概念和使用; 4、了解共用体的概念与使用。 二、实验内容 编程序,然后上机调试运行。 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。 要求用input函数输入10个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。 三、实验结果分析 对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。 实验八共用体练习 一、目的与要求 了解共用体的概念与使用。 二、实验内容 编程序,然后上机调试运行。 设有两个人员的数据,一个学生,一个教师。 学生的数据中包括: 学号、姓名、班级,、教师的数据中包括: 工号、姓名、职称。 现将两人的数据放在同一表格中,要求输入两人的数据,再将输入的内容输出。 提示: 参考教材例11.12(P311) 三、实验结果分析 对实验结果进行检验,如结果出现错误,分析产生错误的原因并修改程序、改正错误。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 实验 报告