C语言程序设计实验36题.docx

上传人:b****7 文档编号:9540217 上传时间:2023-02-05 格式:DOCX 页数:29 大小:22.72KB
下载 相关 举报
C语言程序设计实验36题.docx_第1页
第1页 / 共29页
C语言程序设计实验36题.docx_第2页
第2页 / 共29页
C语言程序设计实验36题.docx_第3页
第3页 / 共29页
C语言程序设计实验36题.docx_第4页
第4页 / 共29页
C语言程序设计实验36题.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言程序设计实验36题.docx

《C语言程序设计实验36题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验36题.docx(29页珍藏版)》请在冰豆网上搜索。

C语言程序设计实验36题.docx

C语言程序设计实验36题

C语言程序设计实验36题

邓作杰编

简单程序设计与基本数据处理

1显示短句

在屏幕上显示一个短句“ProgramminginCisfun!

#include

intmain()

{

printf(“ProgramminginCisfun\n”);

return0;

}

2求两个数的和与差

输入整数a和b,计算并输出a、b的和与差。

#include

intmain()

{

inta,b,s,t;

printf(“pleaseinputaandb:

”);

scanf(“%d%d”,&a,&b);

s=a+b;

t=a-b;

printf(“a+b=%d\na-b=%d\n”,s,t);

return0;

}

3求平方根

输入1个实数x,计算并输出其平方根(保留1位小数)

#include

#include

intmain()

{

intx;

floaty;

printf("pleaseinputx:

");

scanf("%d",&x);

y=sqrt(x);

printf("theresultis%.1f",y);

return0;

}4华氏温度转换为摄氏温度

输入华氏温度f,计算并输出相应的摄氏温度c(保留2位小数)。

c=5/9(f-32).

#include

intmain()

{

floatf,c;

printf(“pleaseinputf:

”);

scanf(“%f”,&f);

c=5/9*(f-32);

printf(“Cis%.2f\n”,c);

return0;

}

5大写字母转换成小写字母

输入一个大写英文字母,输出相应的小写字母。

#include

intmain()

{

charx;

printf(“pleaseinputachar:

”);

scanf(“%c”,&x);

if(x>=65&&x<=90)

x=x+32;

printf(“%c\n”,x);

else

printf(“errormessage!

\n”);

return0;

}

6编写摄氏温度、华氏温度转换程序。

从键盘输入一个摄氏温度,屏幕就显示对应的华氏温度,输出取两位小数。

转换公式:

F=(C+32)×9/5。

#include

intmain()

{

floatf,c;

printf(“pleaseinputf:

”);

scanf(“%f”,&f);

c=5/9*(f-32);

printf(“Cis%.2f\n”,c);

return0;

}

分支结构

7判断数的符号

输入整数x,若x大于0,y=1;若x等于0,y=0;否则,y=-1,最后输出y。

#include

intmain()

{

intx,y;

printf(“pleaseinputx:

”);

scanf(“%d”,&x);

if(x>0)

y=1;

elseif(x=0)

y=0;

else

y=-1;

printf(“theresultis%d\n”,y);

return0;

}

8计算个人所得税

输入一个职工的月薪salary,输出应交的个人所得税tax(保留2位小数)。

tax=rate*(salary-850)

当salary<=850时,rate=0;

当850

当1350

当2850

当5850

#include

intmain()

{

floatsalary,rate,tax;

printf(“pleaseinputthesalary:

”);

scanf(“%f”,&salary);

if(salary<=850)

rate=0;

elseif(salary<=1350)

rate=5;

elseif(salary<=2850)

rate=10;

elseif(salary<=5850)

rate=15;

else

rate=20;

tax=rate*(salary-850);

printf(“thetaxis%.2f\n”,tax);

return0;

}

9、试编程判断输入的正整数是否既是5又是7的正倍数。

若是,则输出yes;否则输出no。

#include

intmain()

{

intx,i;

printf("pleaseinputthenumber:

");

scanf("%d",&x);

for(i=2;x%i==0;i++);

if(i==x)

printf("YES\n");

else

printf("NO\n");

return0;

}

循环结构

10.是求1-100之间的所有除5余2的数之和。

#include

intmain()

{

intx,sum=0;

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

if(x%5==2)

sum=sum+x;

printf(“thesumis%d”,sum);

return0;

}

11.所谓回文数是从左往右和从右往左读起来都一样的数字,如121是一个回文数,计算从1881开始到4000年为止,共有多少个年号是回文年号?

#include

intmain()

{

inta,b,c,d,x,i=1;

for(x=1881;x<=4000;x++)

{

a=x/1000;

b=x/100-a*10;

d=x%10;

c=(x%100-d)/10;

if(a==d&&b==c)

i++;

}

printf("thenumberis%d",i);

return0;

}

12.是求1-5000之间的能被7整除的前若干个偶数之和,当和大于600时程序退出,请将运行结果。

#include

intmain()

{

intsum=0,i;

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

{

if(i%2==0&&i%7==0)

sum=sum+i;

if(sum>600)

break;

}

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

return0;

}

13.编程序求出1~100所有整数的平方和并输出结果。

#include

intmain()

{

intsum=0,t,i;

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

{

t=i*i;

sum=sum+t;

}

printf(“theresultis%d”,sum);

return0;

}

14.一个数如果刚好与小于它的所有因子之和相等,则称该数为一个“完数”,如:

6=1+2+3,则6就是一个完数。

求出800以内的所有完数之和。

#include

#include

intmain()

{

intx,i,sum;

for(x=1;x<=800;x++)

{

sum=0;

for(i=1;i

if(x%i==0)

sum=sum+i;

if(sum==x)

printf("%8d",x);

}

return0;

}

15.所谓回文数是从左至右与从右至左读起来都是一样的数字,如:

121是一个回文数。

编写程序,求出300—800的范围内所有回文数的和。

#include

intmain()

{

inta,b,i,sum=0;

for(i=300;i<=800;i++)

{

a=i/100;

b=i%10;

if(a==b)

sum=sum+i;

}

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

return0;

}

16.有36个学生一起买小吃,共花钱120元,其中每个大学生花4元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生为0的解)?

#include

intmain()

{

inta,b,c,d,i=0;

for(a=1;a<=34;a++)

for(b=1;b<=34-a;b++)

for(c=1;c<=34-b-c;c++)

if(a+b+c+d==36)

if(4*a+2*b+c==20)

i++;

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

return0;

}

17.求1至100之间的奇数和

#include

intmain()

{

intx,sum=0;

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

if(x%2!

=0)

sum=sum+x;

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

return0;

}

18.输出2至1000之间在的质数。

#include

intmain()

{

intx,i;

for(x=2;x<=1000;x++)

for(i=2;x%i==0;i++)

if(i!

=x)

printf("%8d",x);

return0;

}

19.输入一个3位的正整数,输出其各位上的数字。

#include

intmain()

{

intx,a,b,c;

printf("pleaseinputx:

");

scanf("%d",&x);

a=x/100;

b=x/10-10*a;

c=x%10;

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

return0;

}

20.对15个数进行排序,按从小到大的顺序输出。

#include

intmain()

{

inta[15],i,j,t;

printf("pleaseinput15numbers:

");

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

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

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

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

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

{

t=a[i];

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

a[i+1]=t;

}

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

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

return0;

}

21.一个数除了能被1和它本身整除之外,不能被其它整数整除,该数称为素数。

求出1000-5000之间素数的和。

#include

intmain()

{

intx,i,sum=0;

for(x=1000;x<=5000;x++)

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

if(x%i==0)

{

sum=sum+x;

break;

}

printf("Thesumis%d",sum);

return0;

}

22.求[600,900]之间素数的个数。

#include

intmain()

{

intx,i,n=0;

for(x=600;x<=900;x++)

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

if(x%i==0)

{

n++;

break;

}

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

return0;

}

函数

23.求a+aa+aaa+…+aa…a

输入2个正整数a和n,求a+aa+aaa+…+aa…a(n个a)之和。

要求定义并调用函数fn(a,n),它的功能是返回aa⋯a(n个a)。

例如,fn(3,2)的返回值是33。

#include

intfn(inta,intb)

{

inty=0,i;

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

y=y*10+a;

returny;

}

intmain()

{

intj,sum=0,t,n,m;

printf("pleaseinputmandn:

");

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

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

{

t=fn(m,j);

sum=sum+t;

}

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

return0;

}

24.统计素数并求和

输入2个正整数m和n(1<=m,n<=500),统计并输出m和n之间的素数的个数以及这些素数的和。

要求定义并调用函数prime(m)判断m是否为素数。

#include

intprime(intx)

{

intj,flag=1;

for(j=2;j<=x/2;j++)

if(x%j==0)

{

flag=0;

break;

}

returnflag;

}

intmain()

{

intm,n,t,sum=0,i,a=0;

printf("pleaseinputmandn:

");

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

if(m>n)

{

t=m;

m=n;

n=t;

}

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

{

t=prime(i);

if(t)

{

sum=sum+i;

a++;

}

}

printf("thenumberis%dandthesumis%d\n",a,sum);

return0;

}

25.输出Fibonacci序列

输入2个正整数m和n(1<=m,n<=10000),输出m和n之间所有的Fibonacci数。

Fibonacci序列(第1项起):

1123581321......

要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。

例如,fib(7)的返回值是13。

#include

intfib(intn)

{

inti,f,t1,t;

if(n==1||n==2)

f=1;

else

{

f=1;

t=1;

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

{

t1=f;

f=f+t;

t=t1;

}

}

returnf;

}

intmain()

{

intm,n,t,sum=0,i,a=0;

printf("pleaseinputmandn:

");

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

if(m>n)

{

t=m;

m=n;

n=t;

}

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

{

if(fib(i)>m)

printf("%6d",fib(i));

}

return0;

}`

26.用下列迭代公式求a的平方根。

X从键盘输入。

精读为10-6

#include

#include

intmain()

{

doublex,a;

intt;

printf("pleaseinputa:

");

scanf("%lf",&a);

printf("pleaseinoutx:

");

scanf("%lf",&x);

t=x*pow(10,6);

t=t%10;

for(;;)

{

x=1/2*(x+a/x);

if(t>0)

break;

}

printf("theresultis%.6lf\n",x);

return0;

}

数组和字符串

27.求最大值及其下标

输入一个正整数n(1

#include

intmain()

{

intn,*p,max,i,j;

printf("pleaseinputn:

");

scanf("%d",&n);

p=(int*)malloc(n*sizeof(int));

for(i=0;i

scanf("%d",p+i);

max=*p;

for(i=0;i

if(*(p+i)>max)

{

max=*(p+i);

j=i;

}

printf("themaxis%dtheNO.is%d",max,j);

return0;

}28.逆序输出

输入一个正整数n(1

#include

intmain()

{

intn,*p,max,i;

printf("pleaseinputn:

");

scanf("%d",&n);

p=(int*)malloc(n*sizeof(int));

for(i=0;i

scanf("%d",p+i);

max=*p;

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

printf("%4d",*(p+i));

return0;

}

29.交换最小值和最大值

输入一个正整数n(1

#include

intmain()

{

intn,*p,max,min,i,j,k,t;

printf("pleaseinputn:

");

scanf("%d",&n);

p=(int*)malloc(n*sizeof(int));

printf("pleaseinput%dnumbers:

",n);

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

scanf("%d",p+i);

max=*p;

min=*p;

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

{

if(*(p+i)>max)

j=i;

if(*(p+i)>min)

k=i;

}

t=*p;

*p=*(p+j);

*(p+j)=t;

t=*(p+n);

*(p+n)=*(p+k);

*(p+k)=t;

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

printf("%4d",p+i);

return0;

}

30.求矩阵每行元素之和

输入2个正整数m和n(1≤m,n≤6),然后输入该m行n列矩阵a中的元素,分别求出各行元素之和,并存入一维数组row中,再输出row.

#include

intmain()

{

inta[20][20],m,n,row[20],sum=0,i,j;

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

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

{

printf("pleaseinputa[%d][%d]:

",i,j);

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

}

printf("pleaseinputmandn:

");

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

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

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

{

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

sum=sum+a[i][j];

row[i]=sum;

}

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

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

return0;

}

31.求字符串长度

连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则全部输入结束。

统计并输出每个字符串的有效长度。

#include

#defineMAX_COUNT100

voidmain()

{

intcount[MAX_COUNT];

intstate=0,index=0;

charch;

inti;

count[0]=0;

while(state!

=2)

{

scanf("%c",&ch);

if(state==0)

{

if(ch!

='#')count[index]++;

elsestate=1;

}

elseif(state==1)

{

if(ch=='#')state=2;

else

{

index++;

count[index]=1;

state=0;

if(index>=MAX_COUNT)break;

}

}

}

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

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

}

指针

32.查找整数

定义一个函数search(intlist[],intn,intx),在数组list中查找元素x,若找到则返回相应下标,否则返回-1。

在main函数中调用search,main函数如下:

voidmain()

{

inti,x,a[10],res;

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

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

scanf("%d",&x);

res=search(a,10,x);

printf("%d",res);

}

#include

voidmain()

{

inti,x,a[10],res;

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

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

scanf("%d",&x);

res=search(a,10,x);

printf("%d",res);

}

intsearch(intlist[],intn,intx)

{

inty=-1,j;

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

{

if(list[j]==x)

{

y=j;

break;

}

}

returny;

}

33.排序

定义函数voidsor

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

当前位置:首页 > 高等教育 > 文学

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

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