C语言上机 经典题目1.docx

上传人:b****5 文档编号:5150581 上传时间:2022-12-13 格式:DOCX 页数:16 大小:244.31KB
下载 相关 举报
C语言上机 经典题目1.docx_第1页
第1页 / 共16页
C语言上机 经典题目1.docx_第2页
第2页 / 共16页
C语言上机 经典题目1.docx_第3页
第3页 / 共16页
C语言上机 经典题目1.docx_第4页
第4页 / 共16页
C语言上机 经典题目1.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言上机 经典题目1.docx

《C语言上机 经典题目1.docx》由会员分享,可在线阅读,更多相关《C语言上机 经典题目1.docx(16页珍藏版)》请在冰豆网上搜索。

C语言上机 经典题目1.docx

C语言上机经典题目1

《C程序设计2》实验内容

实验一:

循环控制

(一)

1、编程计算S=1*2+2*3+……+39*40

#include"stdio.h"

main()

{inta,b,S=0;

for(a=1;a<39;a++){b=a+a+1;S=S+b;}

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

getch();

}

2、编程计算S=

=1!

+2!

+……+7!

#include"stdio.h"

main()

{

floatn,s=0,t=1;

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

{

t*=n;

s+=t;

}

printf("1+2!

+3!

...+20!

=%.0f\n",s);

getch();

}

3、编写程序,计算如果每年按照年利率I(例如2%),投资S(例如5000),在第Y(例如10)年得到的总钱数M。

公式:

M=S*(1+I)Y

#include"stdio.h"

main()

{

floati,s,y,j,m,c=1;

printf("pleaseinputI,S,Y:

\n");

scanf("%f,%f,%f",&i,&s,&y);

m=s;

for(j=1;j<=y;i++)

{c=1+i;

m=m*c;}

printf("m=%f\n",m);

getch();

}

4、编程输出九九乘法表。

#include"stdio.h"

main()

{inti,j;

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

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

printf("%d*%d=%-5d",i,j,(i*j));

printf("\n");};

getch();

}

实验二:

循环控制

(二)

1、编写程序,输入一组字符(以#号结尾),对该组字符做一个统计,统计字母、数字和其它字符的个数,输出统计结果。

#include"stdio.h"

main()

{

inti=0,j=0,k=0;

charch;

for(;ch!

='#';)

{

scanf("%c",&ch);

if('0'<=ch&&ch<='9')

i=i+1;

elseif('a'<=ch&&'z'>=ch||'A'<=ch&&'Z'>=ch)

j=j+1;

elsek=k+1;

}

printf("shuzi=%d\tzimu=%d\tqita=%d\n",i,j,k);

getch();

}

2、编写程序,用循环语句输出下列图形:

*

***

*****

*******

*********

*******

*****

***

*

#include"stdio.h"

main()

{

inti,j,k;

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

{

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

printf("");

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

printf("*");

printf("\n");

}

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

{

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

printf("");

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

printf("*");

printf("\n");

}

getch();

}

3、请为“百鸡问题”编写程序。

百鸡问题:

“鸡翁一,值钱五;鸡母一,值钱三;鸡雏一,值钱一。

百元买百鸡,问鸡翁、母、雏各几只”

#include"stdio.h"

main()

{

inti,j,k;

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

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

for(k=0;k<100;k++)

{

while((k+i+j==100)&&(5*i+3*j+k/3==100)&&(k%3==0))

{printf("chocks:

%d\thens:

%d\tchicks:

%d\tzongshu:

%d\n",i,j,k,i+j+k);

break;}

}

getch();

}

实验三:

数组

(一)

1、由键盘对10个数组元素初始化,求它们的平均值并输出。

#include"stdio.h"

main()

{

floata[10]={0};

inti;

floatt,m;

t=0;

printf("pleaseinputtennumbers:

\n");

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

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

t=t+a[i];}

m=t/10;

printf("pinjunshu=%f",m);

getch();

}

2、输入一个十进制整数,输出与其相等的二进制形式。

将二进制保存在一个数组中,然后按相反的顺序输出。

#include

main()

{

intshi,n=99;

inti,a[100];

printf("pleaseinputanumber:

\n");

scanf("%d",&shi);

while(shi>0)

{

a[n--]=shi%2;

shi=shi/2;

}

printf("answeris:

");

for(i=99;i>n;i--)

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

getch();

}

3.编程对10个数组元素的排序。

#include"stdio.h"

main()

{

inta[10]={0};

inti,j,t;

printf("pleaseinputtennumbers:

\n");

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

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

for(j=1;j<10;j++)

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

{if(a[i]>a[i+1])

{t=a[i];

a[i]=a[i+1];

a[i+1]=t;};

};

printf("theansweris:

");

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

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

getch();

}

实验四:

数组

(二)

1、由键盘对4×4的二维数组初始化,计算其两条对角线元素之和并输出。

#include"stdio.h"

main()

{

intm,n,j,k,b[4][4];

printf("pleaseinput16numbers:

\n");

for(m=0;m<4;m++)

for(n=0;n<4;n++)

scanf("%d",&b[m][n]);

j=b[0][0]+b[1][1]+b[2][2]+b[3][3];

k=b[3][0]+b[2][1]+b[1][2]+b[0][3];

printf("theanswersare:

%d%d",j,k);

getch();

}

2通过二维数组实现杨辉三角的前10行并输出。

杨辉三角形式请参考教材P153。

#include"stdio.h"

main()

{

staticintm,n,b[10][10];

b[0][1]=1;

for(m=1;m<11;m++)

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

{b[m][n]=b[m-1][n-1]+b[m-1][n];

printf("%-8d",b[m][n]);}

printf("\n");}

getch();

}

3\将M×N的矩阵转置成N×M的矩阵并输出.

#include"stdio.h"

main()

{intm,n,i,j;

intb[4][3],a[3][4];

printf("pleaseinput12numbers:

\n");

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

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

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

printf("shuzub[4][3]:

\n");

for(m=0;m<=3;m++)

{for(n=0;n<=2;n++)

{printf("%5d",b[m][n]);

a[n][m]=b[m][n];}

printf("\n");}

printf("\n");

printf("shuzua[3][4]:

\n");

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

{for(j=0;j<4;j++)

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

printf("\n");}

getch();

}

实验五:

函数

(一)

1、定义函数返回两个数中的最大数,在主函数中通过调用该函数求三个数中较大的数并输出。

intmax(inta,intb)

{

intt;

t=a>b?

a:

b;

return(t);

}

voidmain()

{

intmax(intx,inty);

intm,x,y,z;

printf("pleaseinputthreenumbers:

\n");

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

m=max(x,max(y,z));

printf("zuidazhiis:

%d",m);

getch();

}

2、编写一个判断一个整数是否为素数的函数,并求出在2000以内的所有素数。

#include"stdio.h"

#include"math.h"

intSU(intx)

{

inti,k;

k=sqrt(x);

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

if(x%i==0)break;

if(i>k+1)return(x);

}

main()

{intm;

for(m=2;m<2000;m++)

printf("%d\t",SU(m));

getch();

}

3、求方程ax2+bx+c=0的根,用三个函数分别求b2-4ac大于0、等于0和小于0的根,并输出结果。

从主函数输入a、b、c的值。

#include"stdio.h"

floatyishigen(m,n,k)

floatm,n,k;

{

floatx1,x2;

x1=(-n+sqrt(k))/(2*m);

x2=(-n-sqrt(k))/(2*m);

printf("twoshigenisx1=%.3fandx2=%.3f\n",x1,x2);

}

floatdenggen(m,n)

floatm,n;

{

floatx;

x=-n/(2*m);

printf("denggenisx=%.3f\n",x);

}

floatxugen(m,n,k)

floatm,n,k;

{floatx,y;

x=-n/(2*m);

y=sqrt(-k)/(2*m);

printf("twoxugenisx1=%.3f+%.3fiandx2=%.3f-%.3fi\n",x,y,x,y);

}

main()

{floata,b.c.q;

printf("inputabcis");

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

printf("\n");

q=b*b-4*a*c;

if(q>0)yishigen(a,b.q);

elseif(q==0)denggen(a,b);

elsexugen(a,b,q);

getch()

}

实验六:

函数

(二)

1、编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述统计结果。

voidtongji(str0,b)

charstr0[10];

intb[4];

{inti;

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

{if(str0[i]<='z'&&str0[i]>='a'||str0[i]<='Z'&&str0[i]>='A')b[0]++;

elseif(str0[i]<='9'&&str0[i]>='0')b[1]++;

elseif(str0[i]=='')b[2]++;

elseb[3]++;

}

}

#include"string.h"

voidmain()

{

charstr1[10];

inta[4]={0},i;

printf("pleaseinputastring:

\n");

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

scanf("%c",&str1[i]);

tongji(str1,a);

printf("zimunumbersis%-3d\n",a[0]);

printf("shuzinumbersis%-3d\n",a[1]);

printf("konggenumbersis%-3d\n",a[2]);

printf("qitanumbersis%-3d\n",a[3]);

getch();

}

2、定义一个函数replace(),其中包含三个形参:

两个是字符型,一个是字符串型。

该函数返回一个整数。

函数的功能是在字符串中查找第一个字符,如果找到,用第二个字符替换该字符,并将替换的次数作为返回值。

编写主函数调用该函数。

#include"stdio.h"

#include"string.h"

intreplace(chara,charb,charc[50])

{inti=0,t=0;

while(c[i]!

='\0')

{if(c[i]==a)

{c[i]=b;t++;}i++;}return(t);}

main()

{inta;

charstr[50];

chars1,s2;

printf("pleaseinputstr:

\n");

gets(str);

printf("\npleaseinputs1:

\n");

scanf("%c",&s1);getchar();

printf("\npleaseinputs2:

\n");

scanf("%c",&s2);getchar();

a=replace(s1,s2,str);

printf("thereplacedstris:

\n");

puts(str);

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

getch();

}

实验七:

编译预处理

1、输入输入两整数,求它们相除的余数,用带参数的宏来实现。

#defineMOD(x,y)x%y

main()

{

inta,b,c;

printf("pleaseinputtwonumbers:

\n");

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

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

getch();

}

2、三角的面积为area=

,其中s=

a、b、c为三角形的三边。

定义两个带参数的宏,一个用来求s,另一个用来求area。

写程序,在主程序中用带实参的宏名来求面积area。

#include"math.h"

#defineSSS(m,n,k)(m+n+k)/2

#defineAQRT(m,n,k)sqrt(((m+n+k)/2)*((m+n+k)/2-m)*((m+n+k)/2-n)*((m+n+k)/2-k))

main()

{floata,b,c;

printf("pleaseinputthreenumbers:

\n");

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

printf("s=%f;area=%f\n",SSS(a,b,c),AQRT(a,b,c));

getch();

}

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

当前位置:首页 > 高等教育 > 艺术

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

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