c语言实验报告模板完成版.docx

上传人:b****6 文档编号:6038272 上传时间:2023-01-03 格式:DOCX 页数:32 大小:45.74KB
下载 相关 举报
c语言实验报告模板完成版.docx_第1页
第1页 / 共32页
c语言实验报告模板完成版.docx_第2页
第2页 / 共32页
c语言实验报告模板完成版.docx_第3页
第3页 / 共32页
c语言实验报告模板完成版.docx_第4页
第4页 / 共32页
c语言实验报告模板完成版.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

c语言实验报告模板完成版.docx

《c语言实验报告模板完成版.docx》由会员分享,可在线阅读,更多相关《c语言实验报告模板完成版.docx(32页珍藏版)》请在冰豆网上搜索。

c语言实验报告模板完成版.docx

c语言实验报告模板完成版

《高级语言程序设计》

 

专业:

计算机科学与技术

学号:

姓名:

实验一C程序的运行环境和使用方法

1.实验目的

1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

2)了解在该系统上如何编辑、编译、连接和运行一个C程序。

3)通过运行简单的C程序,初步了解C程序的特点。

2.实验程序清单及运行结果

课后习题1.5

编写一个C程序,输出以下信息:

**************************

VeryGood!

**************************

Source

#include

intmain()

{

printf("**************************\n");

printf("VeryGood!

\n");

printf("**************************\n");

}

课后习题1.6

编写一个程序,输入a、b、c三个值,输出其中最大值。

Source

#include

intmain()

{

intmax(intx,inty);

inta,b,c,d;

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

d=max(a,b);

d=max(d,c);

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

return0;

}

intmax(intx,inty)

{

intz;

if(x>y)

z=x;

elsez=y;

returnz;

}

实验二顺序结构程序设计

1.实验目的

1)掌握C语言的数据类型,熟悉如何定义整型、字符型和实型的变量,以及对它们赋值的方法。

2)掌握不同类型的数据之间赋值的规律。

3)学会用C的有关算术运算符,以及包含这些运算符的表达式。

4)掌握C语言中使用最多的一种语句——赋值语句的使用方法。

5)掌握scanf()函数、printf()函数的调用方法,掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。

6)掌握字符输入输出函数getchar()、putchar()函数的调用方法。

2.运行程序及填空

(一)输入并运行下面的程序,写出运行结果。

#include

intmain()

{

charc1,c2;

c1=97;c2=98;

printf(“%c,%c\n”,c1,c2);

printf(“%d,%d\n”,c1,c2);

return0;

}

运行结果:

a,b

97,98

【思考题】若将第四行改为:

intc1,c2;再使之运行,输出结果一样吗?

为什么?

答:

一样,因为第六行的printf输出的是%c即字符,任然将c1,c2按照ASCII码字以符形式输出。

(二)程序填空:

输入一个十进制整数,输出与之相应的八进制数与十六进制数。

例如:

输入31,输出37(八进制)和1F(十六进制)。

源程序如下:

#include

intmain()

{

longn;

printf("输入一个十进制整数:

");

scanf("%d",&n);

printf("对应的八进制整数是%o\n",n);

printf("对应的十六进制整数是%X\n",n);

return0;

}

运行程序,输入1234567,显示结果如何?

答:

输入一个十进制整数:

1234567

对应的八进制整数是4553207

对应的十六进制整数是12D687

3.实验程序清单及运行结果

课后习题3.7

要将"China"译成密码。

Source

#include

intmain()

{

charc1='C',c2='h',c3='i',c4='n',c5='a';

printf("%c%c%c%c%c\n",c1+4,c2+4,c3+4,c4+4,c5+4);

}

课后习题4.8

求圆周长C1、圆面积Sa、圆球表面积Sb、圆球体积Va、圆柱体积Vb。

Source

#include

#definePI3.14

#include

intmain()

{

floatr,h,C1,Sa,Sb,Va,Vb;

scanf("%f%f",&r,&h);

C1=2*PI*r;

Sa=PI*r*r;

Sb=4*PI*r*r;

Va=4.0/3*r*r*r*PI;

Vb=PI*r*r*h;

printf("C1=%.2f\nSa=%.2f\nSb=%.2f\nVa=%.2f%\nVb=%.2f\n",C1,Sa,Sb,Va,Vb);

}

课后习题4.9

输入一个华氏温度,要求输出摄氏温度。

公式为c=5(F-32)/9。

取位2小数。

Source

#include

intmain()

{

floatF,c;

scanf("%f",&F);

printf("c=%.2f\n",c=5*(F-32)/9;);

return0;

}

实验三选择结构程序设计

1.实验目的

1)了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。

2)学会正确使用关系运算符、逻辑运算符和相关表达式。

3)熟练掌握if语句和switch语句。

4)结合程序掌握一些简单的的算法。

5)学习调试程序。

2.程序填空

请将下列源程序填写完整。

程序说明:

输入实数x,计算并输出下列分段函数f(x)的值,结果保留2位小数。

#include

#include

intmain()

{doublex,y;

printf("Inputx:

");

scanf(“%lf”,&x);

if(x<-1)y=x+1;

elseif(x<1)y=exp(x);

elsey=sqrt(x*x+1);

printf("f(%.2f)=%.2f\n",x,y);

return0;

}

运行程序,输入-2,显示结果是:

-1

输入0.5,显示结果是:

1.65

输入3,显示结果是:

3.16

3.实验程序清单及运行结果

课后习题5.5

有一个函数

  /x   (x<1)

y={ 2x-1 (1<=x<10)

\3x-11 (x>=10)

写一段程序,输入x,输出y

Source

#include

intmain()

{

intx,y;

scanf("%d",&x);

if(x<10)

{if(x<1)y=x;

elsey=2*x-1;}

elsey=3*x-11;

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

return0;

}

课后习题5.6

给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。

Source

#include

intmain()

{

intt;

scanf("%d",&t);

if(90<=t&&t<=100)printf("A\n");

elseif(80<=t&&t<=89)printf("B\n");

elseif(70<=t&&t<=79)printf("C\n");

elseif(60<=t&&t<=69)printf("D\n");

elseif(0<=t&&t<=59)printf("E\n");

}

课后习题5.7

给出一个不多于5位的非负整数,要求

1、求出它是几位数

2、分别输出每一位数字

3、按逆序输出各位数字,例如原数为321,应输出123

Source

#include

intmain()

{

intn,g,s,b,q,w;

scanf("%d",&n);

g=n%10;

s=n/10%10;

b=n/100%10;

q=n/1000%10;

w=n/10000;

if((w==0)&&(q==0)&&(b==0)&&(s==0)){printf("1\n%d\n%d",g,g);}

elseif((w==0)&&(q==0)&&(b==0)){printf("2\n%d%d\n%d%d",s,g,g,s);}

elseif((w==0)&&(q==0)){printf("3\n%d%d%d\n%d%d%d",b,s,g,g,s,b);}

elseif(w==0){printf("4\n%d%d%d%d\n%d%d%d%d",q,b,s,g,g,s,b,q);}

elseprintf("5\n%d%d%d%d%d\n%d%d%d%d%d",w,q,b,s,g,g,s,b,q,w);

}

课后习题5.8

企业发放的奖金根据利润提成。

Source

#include

intmain()

{

intI,P;

scanf("%d",&I);

if(I<=100000)

P=I*10/100;

elseif(I<=200000)

P=10000+(I-100000)*75/1000;

elseif(I<=400000)

P=17500+(I-200000)*5/100;

elseif(I<=600000)

P=27500+(I-400000)*3/100;

elseif(I<=1000000)

P=33500+(I-600000)*15/1000;

else

P=39500+(I-1000000)*1/100;

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

return0;

}

实验四循环结构程序设计

1.实验目的

1)熟悉掌握用while语句、do-while语句和for语句实现循环的方法。

2)掌握循环次数不确定的解题技巧,掌握多项式求和问题的解题技巧。

3)掌握多重循环的编程技巧。

4)掌握在程序设计中用穷举法、迭代法、递推法求解问题的编程技巧。

5)进一步学习调试程序。

2.程序填空

输出菲波那契数列的前20项,要求每行输出10项。

#include

intmain()

{inti,x1,x2,x;

x1=x2=1;

printf("%6d%6d",x1,x2);/*输出前2项*/

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

{x=x1+x2;printf("%6d",x);

if(i%10==0)printf("\n");/*每行输出10项*/

x1=x2;x2=x;

}

return0;

}

3.实验程序清单及运行结果

课后习题6.1

输入两个正整数m和n,求其最大公约数和最小公倍数。

Source

#include

intmain()

{

intx,y,m,n,t;

scanf("%d%d",&x,&y);

m=x;

n=y;

t=m%n;

while(t!

=0)

{

m=n;

n=t;

t=m%n;

}

printf("%d%d\n",n,x*y/n);

}

课后习题6.2

输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

Source

#include

intmain()

{

charc;

intw=0,x=0,y=0,z=0;

while((c=getchar())!

='\n')

{

if(c>='a'&&c<='z'||c>='A'&&c<='Z')

w++;

elseif(c=='')

x++;

elseif(c>='0'&&c<='9')

y++;

else

z++;

}

printf("%d%d%d%d\n",w,y,x,z);

}

课后习题6.3

Sn=2+22+222+2222+22222+22...2222(最后一项n个2)

Source

#include

intmain()

{

ints,t,i,n,a;

a=2;

s=0;

t=0;

scanf("%d",&n);

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

{

t=t+a;

s=s+t;

a=a*10;

}

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

}

课后习题6.10

猴子吃桃问题。

求第一天共摘多少桃子。

Source

#include

intmain()

{

ints=1,N,i;

scanf("%d",&N);

for(i=1;i

{

s=(s+1)*2;

}

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

}

 

实验五数组

1.实验目的

1)掌握一维数组和二维数组的定义、赋值和输入输出的方法。

2)掌握字符数组和字符串函数的使用。

3)掌握与数组有关的算法(特别是排序算法)。

2.程序填空

(一)程序填空:

输入一个整数n(1≤n≤10),再输入n个整数,将它们按升序排列后输出。

选择排序基本思想:

(1)由于n最大是10,需要定义一个长度为10的整型数组a;

(2)整个排序只需要确定前n-1个元素(a[0]~a[n-2]),最后一个元素a[n-1]无需另外处理;

(3)在确定a[i](i=0,1,…,n-2)时,先将a[i]本身看成最小,即令k=i,并将a[k]与后面的元素a[j](j=i+1,i+2,…,n-1)一一比较,如果a[j]

k=j。

找出对应于下标i的最小元素a[k]后,交换a[i]与a[k]。

#include

intmain()

{

inti,j,k,n,temp,a[10];

printf("Inputn(1~10):

");

while(scanf("%d",&n),n<=1||n>=10);//输入正确的n:

1≤n≤10

printf("Input%dnumbers:

\n",n);

for(i=0;i

scanf("%d",&a[i]);//输入n个整型元素

//选择法排序

for(i=0;i

{

k=i;//设a[i]为剩余部分的最小元素

for(j=i+1;j

if(a[j]

temp=a[i];a[i]=a[k];a[k]=temp;//a[i]a[k]

}

for(i=0;i

printf("%d",a[i]);//输出排序后的数组

printf("\n");

return0;

}

【思考题】运行程序,输入n:

5,输入5个整数:

23-9140-3,显示结果是什么?

如果是按从大到小的降序排列,语句行Line12应怎么修改?

答;⑴显示结果Inputn(1~10):

5⑵Line12应改为if(a[j]>a[k])k=j;

Input5numbers:

23-91403

-9031423

(修改上面的程序,从在线评测系统中提交调试好的程序,题号1032。

(二)程序填空:

输入5个整数,将这5个数按逆时针顺序转动一次后再输出,如输入12345,逆时针转动一次后,输出23451。

提示:

设存放整数的数组为a。

要实现数组逆时针转动,只要先将首元素a[0]“搬”至一个变量t中;然后从第1个元素到最后1个元素,依次向前移一位,即a[i-1]=a[i](i=1,…,4);最后将存放在t中的首元素放入最后的元素。

#include

intmain()

{

inti,t,a[5];

printf("Input5integers:

\n");

for(i=0;i<5;i++)

scanf("%d",&a[i]);

t=a[0];

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

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

a[4]=t;

printf("Afterrotation:

\n");

for(i=0;i<5;i++)

printf("%5d",a[i]);

printf("\n");

return0;

}

3.实验程序清单及运行结果

课后习题7.1

用筛法求之N内的素数。

Source

#include

#include

intmain()

{

inti,k,m,N;

scanf("%d",&N);

for(m=2;m<=N;m=m+1)

{

k=sqrt(m);

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

if(m%i==0)break;

if(i>=k+1)

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

}

}

课后习题7.2

用选择法对10个整数从小到大排序。

Source

#include

intmain()

{inta[10];

inti,j,t;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)

if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}

for(i=0;i<10;i++)

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

课后习题7.4

有一个已排好的9个元素的数组,输入一个数要求按原来排序的规律将它插入数组中。

Source

#include

intmain()

{

inta[10];

inti,m,j;

for(i=0;i<9;i++)

{

scanf("%d",&a[i]);

}

scanf("%d",&m);

for(i=0;i<9;i++)

if(a[i]>m)

{

for(j=9;j>=i;j--)

a[j+1]=a[j];

a[i]=m;

break;

}

else

a[9]=m;

for(i=0;i<10;i++)

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

}

课后习题7.5

输入10个数字,然后逆序输出。

Source

#include

intmain()

{

inta[10],i;

for(i=0;i<=9;i++)

scanf("%d",&a[i]);

for(i=9;i>=0;i--)

printf("%d",a[i]);

return0;

}

实验六函数

1.实验目的

1)掌握定义函数的方法。

2)掌握函数实参与形参的对应关系以及“值传递”的方式。

3)掌握函数的嵌套调用和递归调用的方法。

4)掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法。

5)学习对多文件程序的编译和运行。

2.程序填空

验证哥德巴赫猜想——任何一个大于6的偶数均可表示为两个素数之和。

例如:

6=3+3,8=3+5,10=5+5,…,18=7+11。

要求将6-100之间的偶数均表示为素数之和,一行输出5组。

#include

#include

Intprime(intn);

intmain()

{inta,b,k;

for(k=6;k<=100;k=k+2)//逐个处理6~100之间的偶数k

{for(a=2;a

{b=k-a;

if(prime(a)&&prime(b))break;//如果a,b同为素数,跳出内层循环

}//内层循环

printf("%d=%d+%d",k,a,b);//输出k=a+b

if(k%5==0)printf("\n");//每行输出5组,注意第一行只有3组

}//外层循环

return0;

}//自定义函数prime(n),判断整数n是否是素数,是则返回1,不是则返回0

intprime(intn)

{inti;

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

if(n%i==0)break;

if(i==n)return1;//n是素数,返回1

elsereturn0;//n不是素数,返回0

}

3.实验程序清单及运行结果

课后习题8.1

写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数

Source

#include

intmain()

{

intgcd(intx,inty);

intlcm(intx,inty);

inta,b;

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

printf("%d%d\n",gcd(a,b),lcm(a,b));

}

intgcd(intx,inty)

{

intt;

if(y>x){t=x;x=y;y=t;}

while(t)

{

t=x%y;

x=y;

y=t;

}

returnx;

}

intlcm(intx,inty)

{

returnx*y/gcd(x,y);

}

课后习题8.3

写一个判断素数的函数,在主函数输入一个正整数,输出是否是素数的消息。

Source

#include

intmain()

{

inta;

intprime(intx);

scanf("%d",&a);

if(prime(a))printf("prime");

elseprintf("notprime");

}

intprime(intx)

{

inti=2;

if(x==1)return0;

while(x%i){i++;}

if(i==x)return1;

elseretur

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

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1