c语言对称字母菱形AABAABCBA,[工学]c语言实验报告.doc

44cb7578e1df5412b94317daaa3307ba.gif[工学]c语言实验报告.doc

下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。

2.下载的文档,不会出现我们的网址水印。

3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。

文档包含非法信息?点此举报后获取现金奖励!

下载文档到电脑,查找使用更方便

15

积分

还剩页未读,继续阅读

关 键 词:c语言实验报告

实验报告.doc

资源描述:

江西师范大学计算机信息工程学院学生实验报告(一)

专业_计算机科学与技术(师范类) 姓名_梁骏_学号_0908061088_日期_2010-5-14_

课程名称

高级语言程序设计

实验室名称

X4313

实验名称

顺序与分支程序设计

指导教师

揭安全

成绩

1.实验目的

(1):通过设计程序实验来加深对顺序与分支结构的了解

(2):达到顺序与分支结构的熟练运用

2.实验原理和内容

原理:if、if-else、以及if、else的嵌套结构;开关语句switch的结构

内容:【题1】输出一个年,月,输出该月有几天。

【题2】输出三个正整数,将这三个数由小到大输出。

3.实验步骤

步骤:编辑、编译、链接、运行

4.程序及运行结果(或实验数据记录及分析)

原程序一结果:

程序结果二:

源程序代码一:

#include main()

{

int year, month ;

printf("please input two number year and month:");

scanf("%d%d",&year,&month);

switch (month)

{

case 1:

case 3 :

case 5:

case 7:

case 8:

case 10:

case 12:

printf("您所要查找的月份天数为31天\n:");

break;

case 4:

case 6:

case 9:

case 11:

printf("您所要查找的月份天数为30天\n:");

break;

case 2:

if((year%400==0)||((year%4==0)&&(year%100!=0)))

printf ("您所要查找的月份天数为28天\n:");

else

printf("您所要查找的月份天数为29天\n:");

}

}

源程序二代码:

//请输入三个正整数,由小到大排出//

#include main()

{

int a,b,c,t;

printf("please input three numbers a b c:");

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

if(a>b)

{t=a;a=b;b=t;}//如果a大于b,那么交换,使得a小于b//

if(a>c)

{t=a;a=c;c=b;}//如果a大于c,那么交换,使得a小于c,这样之后a为三个数中最大的//

if(b>c)

{t=b;b=c;c=t;}//如果b大于c,那么交换,使得b小于c//

printf("%4d%4d%4d",a,b,c);

}

江西师范大学计算机信息工程学院学生实验报告(二)

专业_计算机科学与技术 姓名_梁骏_ 学号_0908061088 日期 2010-5-14

课程名称

高级语言程序设计

实验室名称

X4313

实验名称

循环程序设计(迭代法与穷举法)

指导教师

揭安全

成绩

1.实验目的

(1):掌握循环结构的运行机理

(2):通过掌握循环结构来为以后大规模程序奠定基础

2.实验原理和内容

原理:while、do while、for语句结构的逻辑顺序

内容:【题1】打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

【题2】将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

【题3】利用泰勒级数e= 计算e的近似值。当最后一项的绝对值小于10-5时认为达到了精度要求,要求统计总共累加了多少项。

【题4】利用泰勒级数sinx=x-计算sinx的值。要求最后一项的绝对值小于10-5,并统计此时累加了多少项。

3.实验步骤

步骤:编辑、编译、链接、运行

4.程序及运行结果(或实验数据记录及分析)

题一的结果:

题二的结果:

题三结果

题四的结果

源程序一:#include main()

{

int x=100,b0,b1,b2,sum;

while(x>=100&&x<=1000)

{

b2=x/100;

b1=x%100/10;

b0=x%10;

sum=b0*b0*b0+b1*b1*b1+b2*b2*b2;

if(sum==x)

printf("%d",x);

x++;

}

}

源程序二

#include main()

{

int n,i,k;

printf("请输入一个数n:");

scanf("%d",&n);

printf("%d=",n);

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

{

while(n!=i)

{

if(n%i==0).//如果n除以i的余数为零,则n为该数的一个质素

{

printf("%d*",i);

n=n/i;//将商赋给n,进入while下一次循环

}

else

break;//如果余数不为零,退出while循环,进入下一次for循环,i+1

}

}

printf("%d",n);

}

源程序三:

#include #include main()

{

float temp=1,sum=1,b=1.0;

int count=0,i=1;

while(fabs(temp)>=1e-5)

{

b=b*i;

temp=1.0/b; //定义每一项的内容

sum=sum+temp;

i++;

count++;

}

printf("e=%f,count=%d",sum,count);

}

源程序四:

#include #include main()

{

int n=1,count=0;

float x,sum,term;

printf("please input a number x:");

scanf("%f",&x);

sum=x;

term=x;

while(fabs(term)>=1e-5)

{

term=-term*x*x/((n+1)*(n+2));//定义后一项与前一项的关系

sum=sum+term;

n=n+2;

count++;

}

printf("sin(x)=%f,count=%d",sum,count);

}

江西师范大学计算机信息工程学院学生实验报告(三)

专业_计算机科学与技术师范 姓名_梁骏___学号_0908061088日期_2010-5-18_

课程名称

高级语言程序设计

实验室名称

X4313

实验名称

双重循环程序设计

指导教师

揭安全

成绩

1.实验目的

1) 了解双重循环的结构以及运行机理

2) 通过双重循环来为我们以后使用多重循环奠定基础

2.实验原理和内容

内容:【题2】采用循环程序中屏幕中央输出如下图形。

A

ABA

ABCBA

ABCDCBA

ABCDEDCBA

ABCDEFEDCBA

ABCDEDCBA

ABCDCBA

ABCBA

ABA

A

【题3】编程产生(显示)如下图所示的n阶菱形图案。N在0-9之间,若输入的n大于9,则取n的个位数作为阶数。将图案显示在屏幕中央。

0阶输出:

0

1阶输出:

0

000

11111

000

0

2阶输出:

0

000

11111

1111111

222222222

1111111

11111

000

0

【题4】输出1到999之的所有素数,并统计一共输出了多少素数,要求每行输出10个素数。

3.实验步骤

编辑、编译、链接、运行

4.程序及运行结果(或实验数据记录及分析)

结果一:

请输入一个数n:8

A

ABA

ABCBA

ABCDCBA

ABCDEDCBA

ABCDEFEDCBA

ABCDEFGFEDCBA

ABCDEFGHGFEDCBA

ABCDEFGFEDCBA

ABCDEFEDCBA

ABCDEDCBA

ABCDCBA

ABCBA

ABA

A

Press any key to continue...

结果二:

please input a number n:44

0

000

11111

1111111

222222222

22222222222

3333333333333

333333333333333

44444444444444444

333333333333333

3333333333333

22222222222

222222222

1111111

11111

000

0

Press any key to continue...

源程序一:

#include main()

{

int i,j,k,n;

char c;

printf("请输入一个数n:");//根据用户需求输入欲打印的图形上半部分行数

scanf("%d",&n);

for(i=0;i<=n;i++)//先打印上半部分的图形,上半部分的行数为n

{

for(j=0;j<=40-i;j++)//打印空格

printf(" ");

c='A';

for(k=0;k0;i--)//打印下半部分图形

{

for(j=0;j<40-i+1;j++)

printf(" ");

c='A';

for(k=0;k0;k--)

printf("%c",c--);

printf("\n");

}

}

源程序二:

//打印n阶金字塔数字

#include main()

{

int i,j,k,n;

printf("please input a number n:");

scanf("%d",&n);

n=n%10;//分离出数n的个位数

for(i=0;i<2*n+1;i++)//先打印图形的上半部分有2n+1行

{

for(j=0;j<40-i;j++)//打印空格

{

printf(" ");

}

for(k=0;k<2*i+1;k++)

{

printf("%d",i/2);//打印数字

}

printf("\n");//控制换行

}

for(i=2*n;i>0;i--)//打印下半部分图形

{

for(j=0;j<40-i+1;j++)//打印空格

{

printf(" ");

}

for(k=0;k<2*i-1;k++)//打印数字

{

printf("%d",(i-1)/2);//控制换行

}

printf("\n");

}

}

江西师范大学计算机信息工程学院学生实验报告( 4)

专业_计算机科学与技术 姓名_梁骏___ _ 学号_0908061088__ _ 日期_2010-5-26_

课程名称

高级语言程序设计

实验室名称

X4313

实验名称

函数

指导教师

揭安全

成绩

1. 实验目的

1) 通过对调用函数的使用理解程序各司其职的作用

2) 理解调用函数对于大规模程序的重要性

2. 实验原理和内容

【题1】编写函数isprime(int n)判断n是否为素数,如果是,则返回1,否则返回0。

【题2】编写函数gcd(int m,int n)返回m与n的最大公约数

【题3】写一个C程序创建一个日历,程序从键盘读入年份,接着计算这一年的第一天是星期几(SUN,MON,TUE,WEN,THU,FRI,SAT),并且打印这一年的年历。打印完之后,它应该询问用户是否继续,如果答案为是,那么打印后面一年的年历,直到用户选择结束。

程序提示用户输入,如下面例子所示:

Enter the year for your calendar:2000

输出是整个一年的日历(12个月)。一个月的输出如下所示。

JANUARY 2000

SUNMONTUEWENTHUFRISAT

1

2345678

9101112131415

16171819202122

23242526272829

3031

为了打印所求年份正确的日历,必须首先找到那一年的第一天是周几。首先计算上一年中12月31号是周几。计算公式如下:

Day=((year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+1)%7

公式根据以下数值决定周几:

Day0:Sunday

Day 1:Monday

Day2:Tuesday

Day3:Wednesday

Day4:Thursday

Day5:Friday

Day6:Saturday

(注意必须计算闰年)

运行程序一次,使用下面的数据进行测试:

SET1:2005

SET2:0

SET3:2000

SET4:123

三:实验步骤

:编辑,编译,链接,运行

4.程序及运行结果(或实验数据记录及分析)

题一得结果:

please input a number:56

56 isn't a prime!

Press any key to continue...

please input a number:33

33 isn't a prime!

Press any key to continue...

题二的结果:

please input two numbers a and b:23 45

1035 1

Press any key to continue...

please input two numbers a and b:23 67

1541 1

Press any key to continue...

题三的结果:(由于交报告之前匆忙检查,发现源程序闰年和平年的二月的天数写反了(//源程序经过重新将此处修改,结果是正确的//),所以造成了结果闰年的二月天数有29而平年的天数有28天,造成恶性循环,使得整个日历打印错误,由于马上就要交报告,所以在这报告上就没有改结果,因为又要把这报告上的图片剪贴,正确的复制,很花时间,并且等下就要实验考试,深感抱歉,请老师原谅。)

题一得源程序

#include#includeint isprime(int n);

main()

{

int flag,n;

printf("please input a number:");

scanf("%d",&n);

flag=isprime(n);

if(flag==1)

printf("%d is a prime\n",n);

else

printf("%d isn't a prime!\n",n);

}

int isprime(int n)

{

int i;

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

if(n%i==0) break;

if(i>sqrt(n))

return 1;

else

return 0;

}

题二的源程序

# include void gbgy(int *m,int *n,int a,int b);

main()

{

int m,n,a,b;

printf("please input two numbers a and b:");

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

gbgy( &m, &n, a, b);

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

}

void gbgy(int *m,int *n,int a,int b)

{

int k,i,t;

k=a*b;

if(avoid ptitle(int year,int month)//定义函数打印日历年月

{

switch(month)

{

case 1:

printf("JANUARY %d\n",year); break;

case 2:

printf("\nFEBRUARY %d\n",year);break;

case 3:

printf("\nMARCH %d\n",year);break;

case 4:

printf("\nAPRIL %d\n",year);break;

case 5:

printf("\nMAY %d\n",year);break;

case 6:

printf("\nJUNE %d\n",year);break;

case 7:

printf("\nJULY %d\n",year);break;

case 8:

printf("\nAUGUST %d\n",year);break;

case 9:

printf("\nSEPTEMBER %d\n",year);break;

case 10:

printf("\nOCTOBER %d\n",year);break;

case 11:

printf("\nNOVEMBER %d\n",year);break;

case 12:

printf("\nDECEMBER %d\n",year);break;

}

}

void pcalendar(int year)

{

int lastday,i,j,k,D;

lastday=((year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+1)%7;

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

{

ptitle(year, i);

printf("SUN\tMON\tTUE\tWEN\tTHU\tFRI\tSAT\n");

switch(i)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

D=31;break;

case 2:

if(year%4==0&&year%100!=0 || year%400==0)

{D=29;break;}

else

{D=28;break;}

case 4:

case 6:

case 9:

case 11:

D=30;break;

}

for(j=0;j

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值