C语言实验报告参考答案原.docx

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

C语言实验报告参考答案原.docx

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

C语言实验报告参考答案原.docx

C语言实验报告参考答案原

C语言实验报告参考答案

实验一熟悉c语言程序开发环境及数据描述

四、程序清单

1编写程序实现在屏幕上显示以下结果:

Thedressislong

Theshoesarebig

Thetrousersareblack

答案:

#include

main()

{

printf("Thedressislong\n”);

printf("Theshoesarebig\n");

printf("Thetrousersareblack\n");

}

2.编写程序:

(1)a=150,b=20,c=45,编写求a/b、a/c(商)和a%ba%c(余数)的程序。

⑵a=160,b=46,c=18,d=170,编写求(a+b)/(b-c)*(c-d)的程序。

答案:

(1)

#include

main()

{

inta,b,c,x,y;

a=150;

b=20;

c=45;

x=a/b;

y=a/c;

printf("a/b的商=%d\in",x);

printf("a/c的商=%d\in",y);

x=a%b;

y=a%c;

printf("a/b的余数=%d\n",x);

printf("a/c的余数=%d\in",y);

(2)

#include

main()

{

inta,b,c,d;

floatx;

a=160;

b=46;

c=18;

d=170;

x=(a+b)/(b_c)*(c-d);

printf("(a+b)/(b-c)*(c-d)=%f\n",x);

}

3.设变量a的值为0,b的值为-10,编写程序:

当a>b时,将b赋给c;当a<=b时,将0赋给co(提示:

用条件运算符)

答案:

#include

main()

{

inta,b,c;

a=0;

b=-10;

c=(a>b)?

b:

a;

printf("c=%d\n",c);

}

五、调试和测试结果

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

Thedressislong

Theshoesarebig

Thetrousersareblack

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",a,b,c);

问题3改scanf("%c%c%d",&a,&b,&c);这条语句

改为:

scanf("%c,%c,%d",&a,&b,&c);

问题4改printf("%c,%c,%d\n",a,b,c);这条语句

改成:

'%c'''%d\n",a,b,c);

问题5把scanf("%c%c%d",&a,&b,&c);和printf("%c,%c,%d\n",a,b,c);

改成scanf("%c%*c%c%*c%d",&a,&b,&c);

printf("\'%c\',\'%c\',%d\n",a,b,c);

2

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

#include

intmain()

{

inta,b,c;

scanf("%d%d",&a,&b);

c=a+b;

printf("%d\n",c);

printf("%x\n",c);

return0;

}

2

(2)编写程序:

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

ya5sin(ax)ln(ax)eax

#include

#include

intmain()

{

floata,x,y;

y=pow(a,5)+sin(a*x)+exp(a*x)+log(a+x);printf("y=%f\n",y);

return0;

五、调试和测试结果

2

(1)输入:

1214

输出:

26

1a

2

(2)输入:

10

输出:

2.000000

实验三选择结构程序设计

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

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

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

五、程序清单

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

#include

#includemain()

{

inta;

scanf("%d",&a);

if(a>=0)

printf("thenumberispositve\n");

else

printf("thenumberisnegetive\n");

return0;

}

(2)输入两个整数a和b,若a>=b时,求其积c并显示;若a

#include

main()

{

isnegative。

c并显示。

inta,b,c;

scanf("%d%d",&a,&b);if(a>=b)

printf("c=%d\n",a*b);

else

printf("c=%d\n",a/b);

return0;

}

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

#include

main()

{

inta,b,c,x;

scanf("%d%d%d",&a,&b,&c);

if(a>=b)

x=a;

else

x=b;

if(x

x=c;

printf("themaxnumberis:

%d\n",x);

return0;

}

六、调试和测试结果

2

(1)输入:

2

输出:

thenumberispositve

输入:

0

输出:

thenumberispositve

输入:

-2

输出:

thenumberisnegetive

2

(2)

输入:

3

2

输出:

c=6

输入:

2

3

输出:

c=0

2(3)

输入:

3

2

1

输出:

themaxnumberis:

3

输入:

2

3

1

输出:

themaxnumberis:

3

输入:

1

2

3

输出:

themaxnumberis:

3

实验四循环结构程序设计

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

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

首先求出每一个给定数的所有因子和,然后从2到5000循环,那一个数

x与因子之和相等,就是完数。

五、程序清单

..2232

1•编写程序:

求1+2+3+…+100和1+2+3+…+100。

#include

#include

intmain()

{

inti,j,sum;

sum=0;

for(i=1;i<=100;i++)

sum+=i;

printf("thesumis:

%d\n",sum);

sum=0;

for(i=1;i<=100;i++)

{

j=pow(i,2);

sum+=j;

}

printf("thesquaresumis:

%d\n",sum);

return0;

2〜5000

}

2•一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出

中的所有完数。

#include

#include

main()

{

inti,j,sum=0;

sum+=j;

return0;

}

3.编写程序:

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

x(2n1)

其实sinx

(n1)x

1)所以程序

(2n1)!

#include

#include

main()

{

floatx,sinx,i,t;

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

");

scanf("%f",&x);

sinx=0;t=x;i=1;

while(fabs(t)>=1e-6)

{sinx=sinx+t;

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

i++;

}

printf("sin(%.2f)=%.6f\n",x,sinx);

}

六、调试和测试结果

1:

结果:

thesumis:

5050

thesquaresumis338350

2:

结果:

628496

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

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

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

实验五函数和编译预处理

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

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

求素数的方法就是:

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

五、程序清单

1编写自定义函数longpower(intm,intn),计算mn的值。

禾U用此函数编程序实现:

键盘输入两个整数m和n,计算出mn的值。

#include

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

{

inti;

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

s=1;

for(i=1;i<=n;i++){

s*=m;

}

returns;

}intmain(void)

{

intm,n;

scanf("%d%d",&m,&n);

printf("s=%ld\n",power(m,n));

return0;

}

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

利用此函数编写程序找出3〜5000

中的所有素数,并输出素数的个数。

#include

#include

intprime(intm)

{

inti,k;

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0)break;

if(i>k)return1;

return0;

main()

{

inti,k;

k=0;

for(i=3;i<=5000;i++)

if(prime(i)==1){k++;printf("%disaprimemuber\n",i);}printf("共有%d个素数\n",k);

}

3.编写自定义函数count(intx)

中有奇数个不同因子的整数。

#include#includeintcount(intx)

{

intsum,i;

sum=0;//记住因子的个数

for(i=1;i<=x/2;i++)

if(x%i==0)

sum+=1;

returnsum+1;

}intmain(void)

{

inti,y;

for(i=1;i<=100;i++)

{y=count(i);

if(y%2==1)printf("%d\t",i);}

return0;

}六、调试和测试结果

1.输入:

23

输出:

s=8

2.输出:

共有668个素数

2.

3、输出结果为:

 

实验六数组

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

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

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

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

五、程序清单

1.编写程序:

从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序输出。

自定义函数voidantitone(inta[],intn)实现将数组中的n个数据按逆序存放。

voidantitone(inta[],intn)

{

inti,j;

intk;

i=0;

j=n-1;

while(i

{

k=a[i];a[i]=a[j];

a[j]=k;

i+=1;

j-=1;

}

}

2•已知某数列的前两项为2和3,其后每一项为其前两项之积。

编程实现:

键盘输入一个整数x,判断并输出x最接近数列的第几项?

#include

#include

voidMad(inta[],intn)

{

inti;

a[0]=2;

a[1]=3;

for(i=2;i

{

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

}

}

intmain(void)

{

inta[100],x,k1,k2;

inti;

Mad(a,100);〃产生序列

printf("inputx:

");

scanf("%d",&x);

i=0;

for(;x>a[i];i++);

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

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

if(k1>k2)

printf("themostsimilarxnumberis:

%d\n",a[i]);

else

printf("themostsimilarxnumberis:

%d\n",a[i-1]);

return0;

}

3.编程实现:

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

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

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

#include

#include

#definenum10

typedefstructstudent

{

charname[20];

floatmath;

floatenglis;

floatcomputer;

floatChinese;

floathistory;

}STUDENT;

intmain(void)

{

STUDENTstu[num];

inti;

floatscore,sum,average;

chars[10];

floatscoreMath,scoreEng,scoreCom,scoreChi,scoreHis;

for(i=0;i

{

printf("Name:

");

gets(stu[i].name);

printf("mathscore:

");

scanf("%f",&score);

stu[i].math=score;

printf("englisscore:

");

scanf("%f",&score);

stu[i].englis=score;

printf("computerscore:

");

scanf("%f",&score);

stu[i].computer=score;

printf("Chinesescore:

");

scanf("%f",&score);

stu[i].Chinese=score;

printf("historyscore:

”);scanf("%f",&score);stu[i].history=score;

才能起

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

到作用

}

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

for(i=0;i

{

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;

printf("%s'saveragescoreis:

%f\n",stu[i].name,average);

}

//求每门课的平均成绩scoreMath=0;

scoreEng=0;

scoreCom=0;

scoreChi=0;

scoreHis=0;

for(i=0;i

{

scoreMath+=stu[i].math;scoreEng+=stu[i].englis;scoreCom+=stu[i].computer;scoreChi+=stu[i].Chinese;scoreHis+=stu[i].history;

}

printf("math'saveragescoreis:

%f\n",scoreMath/num);

printf("englis'saveragescoreis:

%f\n",scoreEng/num);

printf("computer'saveragescoreis:

%f\n",scoreCom/num);

printf("Chinese'saveragescoreis:

%f\n",scoreChi/num);printf("history'saveragescoreis:

%f\n",scoreHis/num);

return0;

}

实验七数组和函数

四、程序清单

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

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

{inti,j,max;

for(j=0;j

{max=tt[0][j];

for(i=1;imax)max=tt[i][j];pp[j]=max;

}

}

五、调试和测试结果

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

实验八指针

(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

⑵6

(1)x=10y=20

⑵x=20y=10

⑷【1】int*p【2】&a[i]【3】p[i]

实验九指针

(2)

设计流程(算法描述)

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

i=0

当*(x+i)!

='\0'

return1

i=i+1

return0

五、程序清单

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

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

#ineludeintmain(void)

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

int*p;

sum=1;

for(p=a;p

sum*=*p;

}

printf("%d\n",sum);return0;

}

2

判断x所指的字符串中是否包含字符y,若是则函

.定义函数intf(char*x,chary)数返回1,否则返回1。

intf(char*x,chary)

{

char*p;

for(p=x;*p!

='\0';p++)

if(*p==y)

{

printf("%c\n",*p);

return1;

}

return0;

}

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

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

{

*y=(int)x;

*z=x-*y;

}

实验十结构体

四、程序清单

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

voidfun(structSTREC*a)

{inti;

a_>ave=0;

for(i=0;i

a->ave+=a->s[i];

a->ave/=N;

}

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

(1)->sno

(2)->name(3)&t

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

四、程序清单

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

#inelude

#inelude

#ineludeintmain(void)

{

inti,sum;

FILE*fd;

chars[10],*p,ch;

if((fd=fopen("D:

\\shi.txt","wt"))==NULL)

{

printf("creatthe\n");

exit(0);

}

else

{

for(i=1;i<100;i++)

{

if((i%3==0)&&(i%5==0))

{

printf("%d,",i);

itoa(i,s,10);//转换成字符串

fputs(s,fd);

fputc('',fd);

}

}

printf("\n”);

fclose(fd);

}

//提取字符转换成数字输入

if((fd=fopen("D:

\\shi.txt","rt"))==NULL)

{

printf("openthe\n”);

exit(0);

}

else

{

p=s;

sum=0;

do

{

ch=fgetc(fd);

if(ch=='')

{

i=atoi(s);

sum+=i;

printf("%d",i);

strset(s,'\0');

p=s;

}

else

{

*p=ch;

P++;

}

}while(ch!

=EOF);

pri

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

当前位置:首页 > 经管营销 > 经济市场

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

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