C语言实验报告Word文件下载.docx
- 文档编号:15219761
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:16
- 大小:461.62KB
C语言实验报告Word文件下载.docx
《C语言实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言实验报告Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
指针与结构体
姓名:
成绩:
实验内容(题目及源代码)
一、选择结构程序设计
1)输入年月日,用SWICH语句判断其是该年的第几天。
#include<
stdio.h>
intmain()
{intyear,month,day,sum,i=0;
printf("
请输入年月日,以逗号分隔:
"
);
scanf("
%d,%d,%d"
&
year,&
month,&
day);
switch(month)
{case12:
i=i+30;
case11:
i=i+31;
case10:
case9:
case8:
case7:
case6:
case5:
case4:
case3:
i=i+28;
case2:
case1:
i=i;
break;
default:
printf("
error\n"
}
sum=i+day;
if(((year%4==0&
&
year%100!
=0)||(year%400==0))&
(month>
2))
{sum=sum+1;
thedayisthe%dday"
sum);
elseprintf("
return0;
}
2)输入整数,判断其是否为质数。
#include<
{intn,i,flag=1;
输入一个整数:
%d"
n);
for(i=2;
i<
n;
i++)
if(n%i==0){flag=0;
if(flag==0)printf("
不是质数"
是质数"
实验结果分析及思考总结:
在用SWICH语句求第几天和判断质数的两个程序中,实验结果都是正确的,能够完美的完成题目的任务(结果截图已附在源程序后面)。
通过此次关于选择结构的实验,我了解并掌握了运算符的运算法则以及逻辑表达式的使用。
在此基础上,我还熟练的掌握了IF语句及其嵌套形式的使用以及SWICH语句的使用,收获颇丰。
二、循环结构程序设计
1)求1+1/2+1/3+·
·
1/n的值,其中(1/n)>
=0.0001。
{floatn,i,sum=0;
请输入整数:
%f"
if(1/n<
=0.0001)printf("
error"
else
{for(i=1;
=n;
sum=sum+1/i;
2)输出9*9口诀表。
#include<
{inti,j,k=1;
for(j=1;
j<
=9;
j++)
for(i=1;
=j;
{printf("
%d*%d=%d"
i,j,i*j);
if(j==i)printf("
\n"
此次实验学习了C语言的循环结构,在两个题目的要求中实现了用循环语句编写程序,使得程序的结构更加简洁明了,实验结果也很好的完成了题目的要求,分别求了前1/n项的和以及输出九九乘法口诀表,而在输出口诀表中用了双重循环(结果截图已附在源程序后面)。
通过此次实验,我熟练的掌握了WHILE、DO-WHILE和FOR语句及其嵌套形式的使用;
同时,在实验中我逐渐熟悉了循环结构程序段中语句的执行过程。
三、数组
1)在一个程序中完成以下功能:
A、从文件中输入十个成绩,放在数组中,输出。
B、找出最高成绩,并输出最高值及其所在的位置。
C、将成绩从大到小排序、输出。
D、输入一个成绩,查找是否在其中,若在,删除之;
若不在,请插入后有序输
出。
{FILE*fp;
inti,j,k,ad,temp,max,flag=0,a[20];
if((fp=fopen("
d:
\data.txt"
"
r"
))==NULL)
fileerror"
for(i=0;
10;
fscanf(fp,"
a[i]);
fclose(fp);
学生成绩为:
%d"
a[i]);
max=a[0];
if(a[i]>
max){max=a[i];
ad=i;
最高成绩为a[%d]=%d\n"
ad,max);
9;
for(j=9;
j>
i;
j--)
if(a[j]>
a[j-1])
{temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
成绩从大到小为:
请输入一个成绩:
i);
=0;
if(i==a[j]){flag=1;
break;
if(flag==1)
{for(k=j;
k<
k++)
a[k]=a[k+1];
该成绩在其中,现已删除:
for(k=0;
a[k]);
{ad=10;
for(j=0;
if(a[j]<
i){ad=j;
for(j=10;
ad;
a[ad]=i;
该成绩不在其中,现已添加:
=10;
2)输入一个字符串,判断是否为回文。
string.h>
{charc[100];
inti,j,flag=1;
gets(c);
for(i=0,j=strlen(c)-1;
j;
i++,j--)
if(c[i]!
=c[j]){flag=0;
if(flag==1)printf("
该字符串是回文"
该字符串不是回文"
Return0;
3)输入一个二维数组,找鞍点。
intmain()
{inta[3][3]={23,32,12,45,4,2,7,9,4};
inti,j,m,n=0,minj,flag;
3;
{minj=0;
flag=1;
if(a[i][minj]>
a[i][j])minj=j;
for(m=0;
m<
m++)
if(a[m][minj]>
a[i][minj]){flag=0;
n++;
}
该数组的鞍点为a[%d][%d]=%d\n"
i,minj,a[i][minj]);
if(n==3)
该数组没有鞍点"
此次实验我在程序中加入了数组,刚开始的时候一直编写有错,在经过不断的练习之后才使得编写的程序成功地完成题目的要求(结果截图已附在源程序后面)。
通过此次实验,我了解并且掌握了一维数组与二维数组的定义方法和其初始化以及元素引用的方法。
在实验的三个题目中分别使用了数组、字符型数组和字符串,并且掌握了字符串、字符串数组的使用方法,进一步提升了自己的C语言编程能力。
四、函数
1)用函数求2数之和。
intpr(intx,inty)
{ints;
s=x+y;
return(s);
{inta,b,sum;
请输入2个数,以逗号分隔:
%d,%d"
a,&
b);
sum=pr(a,b);
2)用函数对数组进行排序并输出。
intpr(inta[])
{inti,j,temp;
{temp=a[j];
该数组从小到大排序为:
{intb[10]={98,87,76,65,54,43,32,21,11,10};
pr(b);
此实验中编写的程序都很好的完成了题目的要求,利用函数对要求进行操作,极大的简化了主函数的结构,使得其看起来更加简洁明了(结果截图已附在源程序后面)。
通过此次实验,我了解并掌握了函数的定义方法及其调用方法,并且实现了函数的递归调用,又掌握了一种实现循环的方法。
对函数的学习使得我能够把复杂的程序拆分为若干个小函数,这为我以后编写更加复杂的程序打下了很好的基础。
五、指针与结构体
1)用指针操作数组,输入,排序,输出
{FILE*fp;
inttemp,a[10];
int*p=a,*q;
输入十个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告