C语言实验报告参考答案Word文档格式.docx
- 文档编号:22003023
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:26
- 大小:29.68KB
C语言实验报告参考答案Word文档格式.docx
《C语言实验报告参考答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言实验报告参考答案Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
c=(a>
b)?
b:
a;
c=%d\n"
c);
五、调试和测试结果
1.编译、连接无错,运行后屏幕上显示以下结果:
3、编译、连接无错,运行后屏幕上显示以下结果:
a/b的商=7
a/c的商=3
a/b的余数=10
a/c的余数=15
4.编译、连接无错,运行后屏幕上显示以下结果:
c=-10
实验二顺序结构程序设计
1.键盘输入与屏幕输出练习
问题1D。
问题2改printf("
%c,%c,%d\n"
a,b,c);
这条语句
改成:
printf("
%c%c%d\n"
问题3改scanf("
%c%c%d"
&
a,&
b,&
c);
改为:
scanf("
%c,%c,%d"
问题4改printf("
\’%c\’\’%c\’%d\n"
2
(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。
intmain()
Enteraandb:
"
scanf("
%o%o"
b);
c=a+b;
d:
%d\n"
x:
%x\n"
return0;
2
(2)编写程序:
从键盘输入两个实数a和x,按公式计算并输出y的值:
floata,x,y;
%f%f"
x);
y=pow(a,5)+sin(a*x)+exp(a*x)+log(a+x);
y=%f\n"
3.改错题
inta,b,c,s;
%d%d%d"
s=a+b+c;
%d=%d+%d+%d\n"
s,a,b,c);
/*输出s=a+b+c*/
%d+%d+%d=%d\n"
a,b,c,s);
/*输出a+b+c=s*/
2
(1)输入:
1214
输出:
26
1a
2
(2)输入:
10
输出:
实验三选择结构程序设计
四、设计流程(算法描述)
(请写出上机内容2
(2)题的算法描述)
主要是两两比较,然后得出最大的数
五、程序清单
2
(1)输入整数x和a,计算并输出下列分段函数f(x)的值(保留2位小数),请调用log函数求自然对数,调用fabs函数求绝对值。
程序为:
intx,a;
doubley;
Enteraandx:
%d%d"
if(fabs(x)!
=a)
y=log(fabs((a+x)/(a-x)))/(2*a);
else
y=0;
a=%d,f(%d)=%.2f\n"
a,x,y);
(2)输入a、b、c三个整数,输出最大数。
inta,b,c,x;
if(a>
=b)
x=a;
x=b;
if(x<
c)
x=c;
themaxnumberis:
正确程序为:
doublen;
Entern:
%lf"
n);
if(n<
0)
printf("
nislessthan0\n"
elseif(n==0)
printf("
nisequalto0\n"
nisgreater0\n"
六、调试和测试结果
2
(1)Enteraandx:
56
a=5,f(6)=
Enteraandx:
55
a=5,f(5)=
321输出:
3
输入:
231输出:
输入:
123输出:
实验四循环结构程序设计
(请写出上机内容2的算法描述)
首先求出每一个给定数的所有因子和,然后从2到5000循环,那一个数x与因子之和相等,就是完数。
1.编写程序:
求1+2+3+…+100和12+22+33+…+1002。
inti,j,sum;
sum=0;
for(i=1;
i<
=100;
i++)
sum+=i;
thesumis:
sum);
sum=0;
for(i=1;
{
j=pow(i,2);
sum+=j;
}
thesquaresumis:
2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出2~5000中的所有完数。
main()
inti,j,sum=0;
for(i=2;
=5000;
i++)改错题
intn=1;
intfind=0;
while(!
find)
if(n%5==1&
&
n%6==5&
n%7==4&
n%11==10)
{
n=%d\n"
n);
find=1;
}
n++;
1:
结果:
thesumis:
5050
thesquaresumis:
338350
2:
628496
实验五函数和预处理命令
(请写出上机内容1的算法描述)
利用循环将m乘n次
1.编写自定义函数longpower(intm,intn),计算
的值。
利用此函数编程序实现:
从键盘输入两个整数m和n,计算出
longpower(intm,intn)
3、输出结果为:
实验六数组
设置两个变量分别指示头和尾。
第一个和最后一个元素值互换,然后头和尾变量向里移动,最终到两变量相遇为止。
从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序输出。
自定义函数voidantitone(inta[],intn)实现将数组中的n个数据按逆序存放。
voidantitone(inta[],intn)
inti,j;
intk;
i=0;
j=n-1;
while(i<
j)
k=a[i];
a[i]=a[j];
a[j]=k;
i+=1;
j-=1;
2.已知某数列的前两项为2和3,其后每一项为其前两项之积。
编程实现:
从键盘输入一个整数x,判断并输出x最接近数列的第几项?
voidMad(inta[],intn)
inti;
a[0]=2;
a[1]=3;
n;
a[i]=a[i-1]*a[i-2];
intmain(void)
inta[100],x,k1,k2;
Mad(a,100);
义函数voidf(floatx,int*y,float*z)将x的整数部分存于y所指的存储单元,x的小数部分存于x所指的存储单元。
voidf(floatx,int*y,float*z)
*y=(int)x;
*z=x-*y;
测试结果正确
实验十结构体
(请写出上机内容1的源程序和上机内容2中的函数)
1、上机内容1的源程序
#defineFORMAT"
%0d\t%s\t%d\t%c\n"
structstudent
intnum;
charname[20];
intage;
charsex;
};
{voidinput(structstudentstu[]);
voidstat(structstudentstu[]);
structstudentstu[4];
input(stu);
for(i=0;
4;
{printf(FORMAT,stu[i].num,stu[i].name,stu[i].age,stu[i].sex);
stat(stu);
voidinput(structstudentstu[])
{inti;
for(i=0;
{scanf("
%d"
stu[i].num);
getchar();
%s"
stu[i].name);
stu[i].age);
%c"
stu[i].sex);
voidstat(structstudentstu[])
{inti,c=0,boy=0,girl=0;
{
if(stu[i].age<
18)c+=1;
if(stu[i].sex=='
m'
)boy++;
elsegirl++;
boy\tgirl\tage<
18\n"
%d\t%d\t%d\n"
boy,girl,c);
2、
voidfun(structSTREC*a)
{inti;
a->
ave=0;
N;
ave+=a->
s[i];
ave/=N;
3、改错题
将printf("
%5d%-20s%2c%4d\n"
,*,*,,;
改为:
,p->
.num,p->
name,p->
sex,p->
age);
实验十一共用体、位运算和文件
(请写出上机内容2中的程序源代码)
(1)求100以内能同时被3和5整除的自然数,分别将它们输出到显示器屏幕和文件中。
(2)用程序读出上述文件中的数据,将它们输出到屏幕,并求它们的和。
{
inti,sum;
FILE*fd;
chars[10],*p,ch;
if((fd=fopen("
D:
\\"
"
wt"
))==NULL)
creatthefilefailed\n"
exit(0);
for(i=1;
100;
if((i%3==0)&
(i%5==0))
{
printf("
%d,"
i);
itoa(i,s,10);
Initlist"
2.Enterlist"
3.Deletearecordfromlist"
4.printlist"
5.Searchrecordbyname"
6.SearchrecordbyNumber"
7.Savethefile"
8.Loadthefile"
9.insertrecordtolist"
10.sortbytotalscores"
11.sortbymathsscores"
12.sortbyprogramscores"
13.indexonnumber"
0.Quit"
chars[3];
intc,i;
gotoxy(1,25);
pressanykeycontinue......\n"
getch();
clrscr();
gotoxy(1,1);
textcolor(YELLOW);
textbackground(BLACK);
gotoxy(10,2);
putch(0xc9);
for(i=1;
44;
putch(0xcd);
putch(0xbb);
for(i=3;
20;
gotoxy(10,i);
putch(0xba);
gotoxy(54,i);
gotoxy(10,20);
putch(0xc8);
putch(0xbc);
window(11,3,53,19);
16;
gotoxy(10,i+1);
cprintf("
menu[i]);
window(1,1,80,25);
gotoxy(10,21);
do{
\nEnteryouchoice(0~13):
s);
c=atoi(s);
}while(c<
0||c>
14);
returnc;
STUDENT*init()
returnNULL;
STUDENT*create()
inti;
ints;
STUDENT*h=NULL,*info;
for(;
;
)
info=(STUDENT*)malloc(sizeof(STUDENT));
if(!
info)
\noutofmemory"
inputs("
enterno:
(10digitals.enter0toexit)"
info->
no,11);
if(info->
no[0]=='
0'
)break;
/*whenthefirstnumberis0,break*/
entername:
(<
15letters)"
name,15);
pleaseinputscores\n"
s=0;
/*sissum,beginswith0*/
I++)
if(i==0)
PleaseinputMathsscores:
if(i==1)
PleaseinputProgramscores:
info->
score[i]);
/*socre[0]storesmathsscores,socore[1]storesprogramscores*/
score[i]>
100||info->
score[i]<
baddata,repeatinput\n"
}while(info->
0);
s=s+info->
score[i];
sum=s;
order=0;
next=h;
h=info;
return(h);
inputs(char*prompt,char*s,intcount)
charp[255];
printf(prompt);
p);
if(strlen(p)>
count)printf("
\ntoolong!
\n"
}while(strlen(p)>
count);
strcpy(s,p);
/*Printinfor*/
voidprint(STUDENT*h)
inti=0;
STUDENT*p;
p=h;
\n\n\n*******************************STUDENT**********************\n"
|rec|NO.|name|maths|program|sum|order|\n"
|---|----------|---------------|-------|---------|------|-----|\n"
while(p!
=NULL)
i++;
|%3d|%-10s|%-15s|%7d|%9d|%4.2f|%3d|\n"
i,p->
no,p->
name,p->
score[0],p->
score[1],p->
sum,p->
order);
p=p->
next;
**********************************end***************************\n"
STUDENT*delete(STUDENT*h)
STUDENT*p,*q;
chars[11];
pleaseenterthenumberyouwanttodelete\n"
q=p=h;
while(strcmp(p->
no,s)&
p!
q=p;
if(p==NULL)
\nlistno%sstudent\n"
else
\n\n\n******************************STUDENT**********************\n"
|NO.|name|maths|program|sum|order|\n"
|----------|---------------|-------|---------|------|-----|\n"
|%-10s|%-15s|%7d|%9d|%4.2f|%3d|\n"
p->
********************************end*****************************\n"
if(p==h)
h=p->
q->
next=p->
free(p);
\nhavedeletedNo%sstudent\n"
STUDENT*searchno(STUDENT*h)
pleaseenterthenumberyouwanttosearch\n"
\n%sNoFound!
\n"
\n%sFo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)