您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 扬州大学C语言上机作业1-9整理
扬州大学C语言上机作业1-9整理答案仅供参考实验一4.设计main函数实现从键盘上输入两个整型变量a、b的值,交换它们的值并输出。#includevoidmain(){inta,b,c;printf(enterfirstinteger:);scanf(%d,&a);printf(entersecondinteger:);scanf(%d,&b);c=a;a=b;b=c;printf(%d,%d\n,a,b);getch();}5.设计main函数实现从键盘上输入两个整型变量a、b的值,并将b的值加入到a中,输出a的值。#includevoidmain(){inta,b,c;printf(enterfirstinteger:);scanf(%d,&a);printf(entersecondinteger:);scanf(%d,&b);c=a+b;a=c;printf(a=%d,b=%d\n,a,b);getch();}6.从键盘输入整数x的值,根据公式y=x3+3x2+x-10求y的值,输出x和y的值。#includevoidmain(){intx,y;printf(enterfirstinteger:);scanf(%d,&x);y=x*x*x+3*x*x+x-10;printf(x=%d,y=%d\n,x,y);getch();}实验二1.编写程序,从键盘上输入一个整数(例如560)表示分钟,将其换算成用小时和分钟表示,然后输出至屏幕。#includevoidmain(){inta,b,hour,min;printf(enterfirstinteger:);scanf(%d,&a);b=60;hour=a/b;min=a%b;printf(hour=%d,min=%d\n,hour,min);getch();}2.编写程序,输入两个整数(例如1500和350),求出它们的商和余数并进行输出。#includevoidmain(){inta,b,c,d;a=1500,b=350;c=a/b;d=a%b;printf(%d,%d,c,d);getch();}3.编写程序,读入3个整数给分别变量a,b,c,然后将a,b,c的值输出到屏幕,再交换它们中的数值,把a中原来的值给b,把b中原来的值赋给c,把c中原来的值赋给a,然后再次输出a,b,c的值到屏幕。#includevoidmain(){inta,b,c,d;printf(enterfirstinteger:);scanf(%d,&a);printf(entersecondinteger:);scanf(%d,&b);printf(enterthirdinteger:);scanf(%d,&c);printf(a=%d,b=%d,c=%d\n,a,b,c);d=c;c=b;b=a;a=d;printf(a=%d,b=%d,c=%d,a,b,c);getch();}4.编写程序,读入3个双精度数,求它们的平均值输出到屏幕。#includevoidmain(){doublesum=0;doublea,b,c,d;printf(enterfirstinteger:);scanf(%lf,&a);printf(entersecondinteger:);scanf(%lf,&b);printf(enterthirdinteger:);scanf(%lf,&c);sum=a+b+c;d=sum/3.0;printf(d=%lf,d);getch();}5.下列程序中,要求main函数实现如下功能:从键盘上输入3个正整数,求出它们中的最大值。请完善程序,并在程序最后用注释的方式给出你的测试数据及在这组测试数据下的运行结果。#includevoidmain(){inta,b,c,d,max;printf(“Enterthreeintegers:”);scanf(“%d%d%d”,&a,&b,&c);if(ab)max=a;elsemax=b;if(cmax)max=c;printf(“maxofthethreenumbersis%d”,max);grtch();}6.请编程序:对从键盘上输入的x值,根据以下函数关系计算出相应的y值(设x,y均为整型量)。x值的范围计算y的公式x01020#includevoidmain(){intx,y;printf(x=);scanf(%d,&x);if(xy=0;elseif(xy=x;elseif(x=10&&xy=10;elseif(x=20&&xy=(-5)*x+20;printf(%d,y);getch();}实验三1.下列程序想求出满足如下条件的三位数n:(1)n除以11(整数相除)所得到的商等于n的各位数字的平方和;(2)n中至少有二位数字相同。如:131除以11的商为11,131各位数字的平方和为11,131中有二位数字相同,故131是所要求出的三位数中的一个;又如550,也是满足条件的三位数。源程序中有些错误,请你改正并最终使程序得到如下的运行结果:131550900#includevoidmain(){intn,a,b,c;for(n=1;n{a=n/100;b=n/10%10;c=n%10;if(n/11==a*a+b*b+c*c&&(a==b||a==c||b==c))printf(%d\n,n);}getch();}2.请编程序,实现从键盘上输入任意一个整数n,求出n的各位数字之和。例如,当n为263时,各位数字之和为11。下面是一个可以实现逐位数字累加功能的程序段,试理解后应用到自己的程序中。k=0;n=263;do{k+=n%10;n/=10;}while(n);#includevoidmain(){intn,k;scanf(%d,&n);k=0;do{k+=n%10;n/=10;}while(n);printf(%d,k);getch();}3.试找出符合下列条件的正整数:(1)该数是一个三位数;(2)该数是37的倍数;(3)该数循环左移后得到的另两个数也是37的倍数。例如148是37的倍数,481和814也是37的倍数。#includevoidmain(){intn,a,b;for(n=100;nif(n%37==0){a=n/10+n%10*100;b=n/100+n%100*10;if(a%37==0&&b%37==0)printf(%d\n,n);}getch();}4.请编程序利用下列公式求π的近似值。公式为:要求:先求出前2n项的π值,再求出2n+2项的π值,直至二者之差小于10-5为止。#includewhile(b-a=1e-5){a=b;n++;b=b*4*n*n/(2*n-1)/(2*n+1);}printf(%f,%f,2*a,2*b);getch();}5.请编程序求出满足如下条件的四位数n:(1)n的范围为[5000,8000];(2)n千位上的数减百位上的数减十位上的数减个位上的数大于零。编程要求:以每行5个输出满足条件的数及该类数的个数。#include{intn,a,b,c,d,k=0;for(n=5000;nif(k%5==0)printf(\n);}}printf(k=%d,k);getch();}6.请编程序求出满足如下条件的一个四位整数,它的9倍恰好是其反序数(例如,1234与4321互为反序数)。#include122122(7656543432122)+?-???????=nnnnπfor(n=1000;n{a=n/1000;b=n/100%10;c=n/10%10;d=n%10;e=d*1000+c*100+b*10+a;if(9*n==e)printf(%d,n);}getch();}7.请编程序求出从键盘上输入的两个正整数a和b的最大公约数和最小公倍数。#includevoidmain(){intm,n,r,x;scanf(%d,%d,&m,&n);x=m*n;while(n!=0){r=m%n;m=n;n=r;}printf(%d%d,m,x/m);getch();}8.请编程序计算1!+2!+3!+…+n!的前10项之和。#includevoidmain(){longsum,k;inti,j;sum=0;for(i=1;i{for(j=1,k=1;j{k*=j;}sum+=k;}printf(%ld\n,sum);getch();}实验四1.反序数。例如,123的反序数是321。请设计程序,从键盘上输入一个整数,求其反序数并输出。#includestdio.hmain(){intn,k;printf(n=);scanf(%d,&n);k=0;while(n!=0){k=k*10+n%10;n/=10;}printf(k=%d,k);getch();}2.完备数。完备数是一些特殊的自然数,它所有的真因子(即除了自身以外的约数)之和恰好等于该数本身。例如,6=1+2+3,故6是一个完备数。请设计程序,找出500以内的所有完备数。#includestdio.hvoidmain(){intn,i,k;for(n=1;n{k=0;for(i=1;i{if(n%i==0)k+=i;}if(n==k)printf(%d\n,n);}getch();}3.回文数。一个数如果正读和倒读(即反序数)相同,称该数是回文数。例如,121、1331均为回文数。请设计程序,找出200~300之间的所有回文数,并以每行8个数输出至屏#includestdio.hvoidmain(){intn,k,i,m=0;for(n=200;n{k=0;i=n;while(i!=0){k=k*10+i%10;i/=10;}if(n==k){m++;printf(%8d,n);}if(m%8==0)printf(\n);}getch();}4.回文质数。一个数如果是回文数,同时又是质数,则该数被称为回文质数。请设计程序,找出100~500之间的所有回文质数,并以每行5个输出至屏幕。#includestdio.h#includemath.hvoidmain(){intn,k,i,m;for(n=100;n{k=0;i=n;while(i!=0){k=k*10+i%10;i/=10;}if(n==k){for(m=2;m{if(n%m==0)break;}if(msqrt(n)){printf(%4d,n);account++;if(account%5==0)printf(“\n”);}}getch();}5.绝对质数。如果一个数和其反序数均为质数,则该数被称为绝对质数。如,13是质数,其反序数31也为质数,则13和31是一对绝对质数。请设计程序,找出200以内的绝对质数。#includestdio.h#includemath.hvoidmain(){intn,k,i,m,a;for(n=1;n{for(a=2;a{if(n%a==0)break;}if(asqrt(n)){i=n,k=0;while(i!=0){k=k*10+i%10;i/=10;}for(m=2;m{if(k%m==0)break;}if(msqrt(k))printf(%5d,n);}}getch();}6.平方镜反数。如果一个数的平方数,是其反序数的平方数的反序数,则称该数和其反序数是一对平方镜反数。例如,12的平方数是144,其反序数为21,21的平方数是441,其反序数是12的平方数144,故12和21是一对平方镜反数。请设计程序找出200以内的所有平方镜反数对。#includestdio.h#includemath.hvoidmain(){intn,k,i,a,b;for(n=1;n{k=0;i=n;while(i!=0){k=k*10+i%10;i/=10;}a=k*k;b=0;while(a!=0){b=b*10+a%10;a/=10;}if(b==(n*n))printf(%d\n,n);}getch()
本文标题:扬州大学C语言上机作业1-9整理
链接地址:https://www.777doc.com/doc-7855527 .html