《C语言程序设计》实验报告册.docx
- 文档编号:2154177
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:55
- 大小:25.91KB
《C语言程序设计》实验报告册.docx
《《C语言程序设计》实验报告册.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》实验报告册.docx(55页珍藏版)》请在冰点文库上搜索。
《C语言程序设计》实验报告册
河南工程学院
计算机学院
C语言程序设计
实验报告册
学期:
2020~2021学年第1学期
专业:
软件工程
班级:
2021-2024
学号:
202052213120
姓名:
刘兴要
指导教师:
张天伍
实验一循环控制
一、实验学时:
2学时
二、实验目的
熟练掌握选择结构和循环结构
三、实验内容
1.求1!
+2!
+3!
+4!
+5!
…+20!
2.输出所有“水仙花数”,所谓水仙花数是指一个3位数,其各位数立方和等于该数本身。
例如:
153是一个水仙花数,因为153=1^3+5^3+3^3
3.有一个分数序列,2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
4.输出以下图案:
1
123
12345
1234567
12345
123
1
四、主要仪器设备及耗材
硬件:
计算机一台
软件:
DEV-CPP或其他软件
五、实验步骤
1.复习循环语句
2.输入源程序,编译、连接直到没有错误
3.根据实验步骤,撰写实验报告
六、程序清单
1.求1!
+2!
+3!
+4!
+5!
…+20!
#include
longjiecheng(intx){
longinti,k=1;
for(i=1;i<=x;i++)
k=k*i;
returnk;
}
intmain()
{
longintj,k=0;
inti;
for(i=1;i<=20;i++)
{
j=jiecheng(i);
k+=j;
}
printf("%ld\n",k);
}
2.输出所有“水仙花数”,所谓水仙花数是指一个3位数,其各位数立方和等于该数本身。
例如:
153是一个水仙花数,因为153=1^3+5^3+3^3
#include
intmain()
{
inti,a=0,b=0,c=0;
for(i=100;i<=999;i++)
{
a=i%10;
b=(i/10)%10;
c=i/100;
if(i==a*a*a+b*b*b+c*c*c)
{
printf("%d\n",i);
}
}
return0;
}
3.有一个分数序列,2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
#include
#include
intmain()
{
floata=2,b=1,sum;
inti,t;
sum=0;
for(i=0;i<20;i++)
{sum=sum+(float)(a/b);
t=b;
b=a;
a=a+t;
}
printf("%.2lf\n",sum);
return0;
}
4.输出以下图案:
1
123
12345
1234567
12345
123
1
#include
intmain(){
inti,j,k;
for(i=3;i>=-3;i--){
k=i<0?
-i:
i;
for(j=0;j printf(""); for(j=1;j<=7-k*2;j++) printf("%d",j); printf("\n"); } } 七、实验中出现的问题及解决的方法 实验一: 阶乘的结果超出了int型的表达范围造成溢出。 int型表示正整数的极限是2的31次方减一,int可以正确表达所有9位及以下的整数,所以我在这里用longint代替int 实验二: 拼写错误外无其它错误 实验三: 无 实验二数组 一、实验学时: 2学时 二、实验目的 掌握二维数组、字符数组与字符串的关系以及字符串变量的表示,熟练字符串处理函数的应用 三、实验内容 1.用选择法对10整数排序 2.有一篇文章,共有3行文字,每行有80个字符。 要求分别统计出其中的英文大写字母、小写字母、数字、空格以及其它字符的个数。 3.将两个字符串连接起来,不要用strcat函数。 4.(飞机定票系统)一家小型航空公司刚刚购买了计算机,用于新的自动化定票系统。 总裁要求您为新系统编制程序。 需要分配该航空公司的唯一一架飞机每个航班的座位(容量: 10个座位)。 提示: 程序应该轮流显示下列菜单: Pleasetype1for“firstclass” Pleasetype2for“economy” 如果输入1,则程序应该分配头等舱内的座位(座位1~5)。 如果输入2,则程序应该分配经济舱的座位(座位6~10)。 然后,程序输出登机证,说明座位号,以及它位于飞机的头等舱,还是经济舱内。 使用一个数组来代表飞机的座位安排。 将数组的所有元素初始化为0,以说明所有座位都是空的。 当分配每个座位时,将数组的对应元素设置为1,以说明不能再次使用那个座位号。 当然,程序不应该分配已经分配过的座位。 当头等舱满员时,程序应询问是否可以安排在经济舱内(等等)。 如果可以,则进行适当的座位分配。 如果不可以,则输出信息“NextFlightleavesin3hours”. 四、主要仪器设备及耗材 硬件: 计算机一台 软件: DEV-CPP或其他软件 五、实验步骤 1.复习数组相关内容,编写以上题目源程序 2.输入源程序,编译、连接直到没有错误 3.根据实验步骤,撰写实验报告 六、程序清单 1.用选择法对10整数排序 #include voidmain() { inti,j,min,temp,a[11]; for(i=1;i<=10;i++){ printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); for(i=1;i<=10;i++) printf("%5d",a[i]);输出带符号的整数,需要占用5个字符位置,不够则空格补齐.%5d是右对齐 printf("\n"); for(i=1;i<=9;i++){ min=i; for(j=i+1;j<=10;j++) if(a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } for(i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); } 2.有一篇文章,共有3行文字,每行有80个字符。 要求分别统计出其中的英文大写字母、小写字母、数字、空格以及其它字符的个数。 #include #include #include voidfun(charstr[][80]){ intspace=0; intcapital=0; intlowercase=0; intnum=0; intother=0; inti,j; for(i=0;i<3;i++){ for(j=0;j<80;j++){ if(str[i][j]==''){ space++;//空格的个数加一 } elseif(str[i][j]>64&&str[i][j]<91){ capital++;//大写字母加一 } elseif(str[i][j]>96&&str[i][j]<123){ lowercase++;//小写字母加一 } elseif(str[i][j]>47&&str[i][j]<58){ num++;//数字加一 } elseif(str[i][j]! ='\0'){ other++;//其它加一 } } } printf("大写字母个数为%d\n小写字母个数为%d\n空格个数为%d\n数字个数为%d\n其他字符个数为%d\n",capital,lowercase,space,num,other); } voidmain(){ charstr[3][80]={{"Mr.Johnsonhadneverbeenupinanaerophanebeforeandhehadreadalotabout"}, {"airaccidents,soonedaywhenafriendofferedtotakehimforarideinhis"}, {"wonsmallphane,Mr.Johnsonwasveryworriedaboutaccepting.Finally,123456"}}; printf("文章为: \n"); inti; for(i=0;i<3;i++){ printf("%s",str[i]); } printf("\n"); fun(str); system("pause"); } 3.将两个字符串连接起来,不要用strcat函数 #include intmain() { charstr1[80],str2[40]; inti=0,j=0; gets(str1);//gets()函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量str所指向的内存空间 gets(str2); while(str1[i]! ='\0')//运行到字符串结尾时结束 i++; while(str1[j]! ='\0') { str1[i]=str2[j]; i++; j++; } str1[i]='\0'; printf("\n%s\n",str1); } 4.(飞机定票系统)一家小型航空公司刚刚购买了计算机,用于新的自动化定票系统。 总裁要求您为新系统编制程序。 需要分配该航空公司的唯一一架飞机每个航班的座位(容量: 10个座位)。 提示: 程序应该轮流显示下列菜单: Pleasetype1for“firstclass” Pleasetype2for“economy” 如果输入1,则程序应该分配头等舱内的座位(座位1~5)。 如果输入2,则程序应该分配经济舱的座位(座位6~10)。 然后,程序输出登机证,说明座位号,以及它位于飞机的头等舱,还是经济舱内。 使用一个数组来代表飞机的座位安排。 将数组的所有元素初始化为0,以说明所有座位都是空的。 当分配每个座位时,将数组的对应元素设置为1,以说明不能再次使用那个座位号。 当然,程序不应该分配已经分配过的座位。 当头等舱满员时,程序应询问是否可以安排在经济舱内(等等)。 如果可以,则进行适当的座位分配。 如果不可以,则输出信息“NextFlightleavesin3hours”. #include intmain() { inta=2; intb=0; inttic1=0; inttic2=0; intfi[6]={0,0,0,0,0,6}; intec[7]={0,0,0,0,0,0,6}; while(a! =0) { /*code*/ printf("Pleasetype1for“firstclass”\n"); printf("Pleasetype2for“economy”\n"); scanf("%d",&b); switch(b) { case1: if(fi[tic1]==0) { /*code*/ fi[tic1]=1; printf("你的座位号为%d\n",tic1+1); tic1++; } Else { printf("NextFlightleavesin3hours\n"); } break; case2: /*code*/ if(ec[tic2]==0) { ec[tic2]=1; /*code*/ printf("你的座位号为%d\n",tic2+5); tic2++; } Else { printf("NextFlightleavesin3hours\n"); } break; case3: a=0; break; default: printf("error,Pleasetypethecorrectnumber\n"); break; } } printf("Programend\n"); } 七、实验中出现的问题及解决的方法 实验一: 无法确定两个数两两相比较的次数刚开始以为是比较10次,经过检测是比较9次。 实验二: 每组80个字符输入有问题有时候空格会没法计算。 实验三: 无。 实验四: 无。 实验三函数 一、实验学时: 4学时 二、实验目的 1.理解如何模块化地用函数来构建程序、全局变量和局部变量的概念及应用,进一步理解变量存储类别。 2.掌握如何创建新的函数。 3.理解在函数间传递信息的机制。 三、实验内容 1.求2~100间的素数,要求编写一个求素数的函数,在主函数中调用并输出2~100之间的素数。 2.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。 两个整数由键盘输入。 3.写一个函数,使给定的一个3×3的二维数组转置,即行列互换。 4.写一个函数,用“起泡法”对输入的10个字符按由小到大的顺序排列。 5.输入10个学生5门课程的成绩,分别用函数求: ①每个学生平均分,并输出;②每门课的平均分,并输出。 四、主要仪器设备及耗材 硬件: 计算机一台 软件: DEV-CPP或其他软件 五、实验步骤 1.创建空白新工程,向新工程中添加空文件 2.编写代码 3.编译、调试并运行 六、程序清单 1.求2~100间的素数,要求编写一个求素数的函数,在主函数中调用并输出2~100之间的素数。 #include intisprime(inta) { inti;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)