C语言实验报告答案原Word文档格式.docx

上传人:b****6 文档编号:8542495 上传时间:2023-05-11 格式:DOCX 页数:38 大小:72.08KB
下载 相关 举报
C语言实验报告答案原Word文档格式.docx_第1页
第1页 / 共38页
C语言实验报告答案原Word文档格式.docx_第2页
第2页 / 共38页
C语言实验报告答案原Word文档格式.docx_第3页
第3页 / 共38页
C语言实验报告答案原Word文档格式.docx_第4页
第4页 / 共38页
C语言实验报告答案原Word文档格式.docx_第5页
第5页 / 共38页
C语言实验报告答案原Word文档格式.docx_第6页
第6页 / 共38页
C语言实验报告答案原Word文档格式.docx_第7页
第7页 / 共38页
C语言实验报告答案原Word文档格式.docx_第8页
第8页 / 共38页
C语言实验报告答案原Word文档格式.docx_第9页
第9页 / 共38页
C语言实验报告答案原Word文档格式.docx_第10页
第10页 / 共38页
C语言实验报告答案原Word文档格式.docx_第11页
第11页 / 共38页
C语言实验报告答案原Word文档格式.docx_第12页
第12页 / 共38页
C语言实验报告答案原Word文档格式.docx_第13页
第13页 / 共38页
C语言实验报告答案原Word文档格式.docx_第14页
第14页 / 共38页
C语言实验报告答案原Word文档格式.docx_第15页
第15页 / 共38页
C语言实验报告答案原Word文档格式.docx_第16页
第16页 / 共38页
C语言实验报告答案原Word文档格式.docx_第17页
第17页 / 共38页
C语言实验报告答案原Word文档格式.docx_第18页
第18页 / 共38页
C语言实验报告答案原Word文档格式.docx_第19页
第19页 / 共38页
C语言实验报告答案原Word文档格式.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言实验报告答案原Word文档格式.docx

《C语言实验报告答案原Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言实验报告答案原Word文档格式.docx(38页珍藏版)》请在冰点文库上搜索。

C语言实验报告答案原Word文档格式.docx

用条件运算符)

inta,b,c;

a=0;

b=-10;

c=(a>

b)?

b:

a;

c=%d\n"

c);

五、调试和测试结果

1.编译、连接无错,运行后屏幕上显示以下结果:

2、

(1)编译、连接无错,运行后屏幕上显示以下结果:

a/b的商=7

a/c的商=3

a/b的余数=10

a/c的余数=15

(2)编译、连接无错,运行后屏幕上显示以下结果:

(a+b)/(b-c)*(c-d)=-1064.0000

3.编译、连接无错,运行后屏幕上显示以下结果:

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"

问题5把scanf("

和printf("

改成scanf("

%c%*c%c%*c%d"

\'

%c\'

\'

%d\n"

2

(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。

#include<

intmain()

scanf("

%d%d"

b);

c=a+b;

%d\n"

%x\n"

return0;

2

(2)编写程序:

从键盘输入两个实数a和x,按公式计算并输出y的值:

math.h>

floata,x,y;

%f%f"

x);

y=pow(a,5)+sin(a*x)+exp(a*x)+log(a+x);

y=%f\n"

2

(1)输入:

1214

输出:

26

1a

2

(2)输入:

10

输出:

2.000000

实验三选择结构程序设计

四、设计流程(算法描述)

(请写出上机内容2(3)题的算法描述)

主要是两两比较,然后得出最大的数

五、程序清单

(1)输入一个整数,若大于等于0,输出提示信息“ispositive”,否则输出“isnegative”。

inta;

%d"

a);

if(a>

=0)

printf("

thenumberispositve\n"

else

thenumberisnegetive\n"

(2)输入两个整数a和b,若a>

=b时,求其积c并显示;

若a<

b时,求其商c并显示。

main()

=b)

c=%d\n"

a*b);

a/b);

(3)输入a、b、c三个整数,输出最大数。

inta,b,c,x;

%d%d%d"

x=a;

x=b;

if(x<

c)

x=c;

themaxnumberis:

六、调试和测试结果

2

thenumberispositve

输入:

0

输入:

-2

thenumberisnegetive

32输出:

c=6

23输出:

c=0

2(3)输入:

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中的所有完数。

inti,j,sum=0;

for(i=2;

=5000;

i++)//遍历从2到5000的所有数

sum=0;

for(j=1;

j<

=i/2;

j++)//找出给定整数X的所有因子和

{

if(i%j==0)

sum+=j;

}

if(i==sum)//sum为因子和,如果和i相等,则输出

printf("

%d"

i);

}

3.编写程序:

计算sinx的近似值,精确到10-6。

其实

所以程序

floatx,sinx,i,t;

请输入一个x值(弧度值):

"

%f"

sinx=0;

t=x;

i=1;

while(fabs(t)>

=1e-6)

{sinx=sinx+t;

t=t*(-x*x/(2*i*(2*i+1)));

i++;

sin(%.2f)=%.6f\n"

x,sinx);

1:

结果:

thesumis:

5050

thesquaresumis:

338350

2:

628496

3、输入0,输出sin(0.00)=0.000000

输入1.57,输出sin(1.57)=1.000000

输入0.5,输出sin(0.50)=0.479426

实验五函数和编译预处理

求素数的方法就是:

给定一个大于3的数x,从2到X的平方根遍历,只要有数可以被x整除,就不是素数

1.编写自定义函数longpower(intm,intn),计算

的值。

利用此函数编程序实现:

从键盘输入两个整数m和n,计算出

longpower(intm,intn)//要返回的是long型

inti;

longs;

//因为是要返回的数,所以这里也定义为long型

s=1;

=n;

s*=m;

returns;

intmain(void)

intm,n;

m,&

n);

s=%ld\n"

power(m,n));

}

2.编写自定义函数prime(intx),判断x是否为素数。

利用此函数编写程序找出3~5000中的所有素数,并输出素数的个数。

intprime(intm)

inti,k;

k=sqrt(m);

=k;

if(m%i==0)break;

if(i>

k)return1;

k=0;

for(i=3;

if(prime(i)==1){k++;

%disaprimemuber\n"

共有%d个素数\n"

k);

3.编写自定义函数count(intx),计算x的因子个数。

利用此函数找出并输出1~1000中有奇数个不同因子的整数。

intcount(intx)

intsum,i;

//记住因子的个数

=x/2;

if(x%i==0)

sum+=1;

returnsum+1;

inti,y;

{y=count(i);

if(y%2==1)printf("

%d\t"

}六、调试和测试结果

1.输入:

23

s=8

2.输出:

共有668个素数

2.

3、输出结果为:

实验六数组

(请写出上机内容1的算法描述)

设置两个变量分别指示头和尾。

第一个和最后一个元素值互换,然后头和尾变量向里移动,最终到两变量相遇为止。

从键盘输入一串整数保存到数组中,调用函数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)

a[0]=2;

a[1]=3;

n;

a[i]=a[i-1]*a[i-2];

inta[100],x,k1,k2;

Mad(a,100);

//产生序列

inputx:

for(;

x>

a[i];

i++);

k1=abs(x-a[i-1]);

k2=abs(x-a[i]);

if(k1>

k2)

themostsimilarxnumberis:

a[i]);

a[i-1]);

3.编程实现:

输入10个学生5门课的成绩并完成如下功能

(1)求每个学生的平均分;

(2)求每门课程的平均分。

#definenum10

typedefstructstudent

charname[20];

floatmath;

floatenglis;

floatcomputer;

floatChinese;

floathistory;

}STUDENT;

STUDENTstu[num];

floatscore,sum,average;

chars[10];

floatscoreMath,scoreEng,scoreCom,scoreChi,scoreHis;

for(i=0;

num;

Name:

"

gets(stu[i].name);

mathscore:

scanf("

score);

stu[i].math=score;

englisscore:

stu[i].englis=score;

computerscore:

stu[i].computer=score;

Chinesescore:

stu[i].Chinese=score;

historyscore:

stu[i].history=score;

gets(s);

//功能是接受最后一个回车符,然后下一次gets(stu[i].name);

才能起到作用

//求每个学生的平均分数

sum=0;

sum+=stu[i].math;

sum+=stu[i].englis;

sum+=stu[i].computer;

sum+=stu[i].Chinese;

sum+=stu[i].history;

average=sum/5;

%s'

saveragescoreis:

%f\n"

stu[i].name,average);

//求每门课的平均成绩

scoreMath=0;

scoreEng=0;

scoreCom=0;

scoreChi=0;

scoreHis=0;

scoreMath+=stu[i].math;

scoreEng+=stu[i].englis;

scoreCom+=stu[i].computer;

scoreChi+=stu[i].Chinese;

scoreHis+=stu[i].history;

math'

scoreMath/num);

englis'

scoreEng/num);

computer'

scoreCom/num);

Chinese'

scoreChi/num);

history'

scoreHis/num);

实验七数组和函数

(请写出上机内容2中函数的源代码)

voidfun(inttt[M][N],intpp[N])

{inti,j,max;

for(j=0;

j<

N;

j++)

{max=tt[0][j];

M;

i++)if(tt[i][j]>

max)max=tt[i][j];

pp[j]=max;

(写出上机内容1中填空的内容)

(1)

(1)sum=0

(2)t[i][i](3)1

(2)

(1)1

(2)i(3)a[p+i]

实验八指针

(1)

(请写出上机内容2中的函数)

求出每个位上的数字,然后放在千位上的数字乘以1000,放在百位上的数字乘以100,放在10位上的数字乘以10,然后相加。

voidfun(inta,intb,long*c)

{

inta10,a1,b10,b1;

a10=a/10;

a1=a%10;

b10=b/10;

b1=b%10;

*c=a10*1000+b1*100+a1*10+b10;

五、调试和测试结果(请写出上机内容1的输出结果)

1

(1)输出结果为:

8,7,7,8

(2)6

(3)

(1)x=10y=20

(2)x=20y=10

(4)【1】 int*p   【2】 &

a[i]   【3】p[i]

123456输出:

123456

实验九指针

(2)

设计流程(算法描述)

(请写出上机内容2中的算法描述)

1.已知一个整型数组a[5],其各元素值为4,6,8,10,12。

使用指针编程求数组元素之积。

inta[]={4,6,8,10,12},sum;

int*p;

sum=1;

for(p=a;

p<

a+5;

p++)

sum*=*p;

2.定义函数intf(char*x,chary)判断x所指的字符串中是否包含字符y,若是则函数返回1,否则返回1。

intf(char*x,chary)

char*p;

for(p=x;

*p!

='

\0'

;

if(*p==y)

%c\n"

*p);

return1;

3.定义函数voidf(floatx,int*y,float*z)将x的整数部分存于y所指的存储单元,x的小数部分存于x所指的存储单元。

voidf(floatx,int*y,float*z)

*y=(int)x;

*z=x-*y;

实验十结构体

(请写出上机内容2中的函数的源代码)

voidfun(structSTREC*a)

{inti;

a->

ave=0;

ave+=a->

s[i];

ave/=N;

五、调试和测试结果(请写出上机内容1的填空结果)

上机内容1的填空结果

(1)->

sno

(2)->

name(3)&

t

实验十一共用体与枚举文件

(请写出上机内容2中的程序源代码)

string.h>

stdlib.h>

inti,sum;

FILE*fd;

chars[10],*p,ch;

if((fd=fopen("

D:

\\shi.txt"

"

wt"

))==NULL)

creatthefilefailed\n"

exit(0);

for(i=1;

100;

if((i%3==0)&

&

(i%5==0))

{

printf("

%d,"

itoa(i,s,10);

//转换

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2