c语言大一基础程序试验手册答案.docx
- 文档编号:10965162
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:15
- 大小:17.20KB
c语言大一基础程序试验手册答案.docx
《c语言大一基础程序试验手册答案.docx》由会员分享,可在线阅读,更多相关《c语言大一基础程序试验手册答案.docx(15页珍藏版)》请在冰豆网上搜索。
c语言大一基础程序试验手册答案
1.当n为152时,分别求出n的个位数(digit1),十位数(digit2),百位数(digit3)的值。
#include
intmain(void)
{
intn;
intdigit1,digit2,digit3;
n=152;
digit1=n%10;
digit2=(n/10)%10;
digit3=n/100;
printf("整数152的个位数字是%d,十位数字是%d,百位数字是%d\n",digit1,digit2,digit3);
return0;
}
2.开始时间为time1,结束时间是time2,计算中间的时间,时间为0000~2359
#include
intmain(){
inttime1,time2;
inthour,minute;
printf("Entertime1:
");
scanf("%d",&time1);
printf("Entertime2:
");
scanf("%d",&time2);
hour=time2/100-time1/100;
minute=time2%100-time1%100;
if(minute<0){
hour--;
minute+=60;
}
printf("Thetrainjourneytimeis%dhours%dminutes\n",hour,minute);
return0;
}
3.147101316的规律是(n-1)*3+1
4.乘方表
for(i=0;i<=n;++i){
power=pow(3,i);
printf("pow(3,%d)=%.0f\n",i,power);
}
5.阶乘表
for(i=1;i<=n;++i){
result=f(i);
printf("%d!
=%d\n",i,result);
}
6.三角形判断和面积
if((a+b>c)&&(a+c>b)&&(b+c>a)){
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
7.求位数
#include
intmain(void)
{
intcount,number;
count=0;
printf("Enterainteger:
");
scanf("%d",&number);
if(number<0)
number=-number;
do{
number=number/10;
count++;
}while(number!
=0);
printf("count=%d\n",count);
return0;
}
8.求位数和各位数字之和
#include
intmain(void){
intcount=0,n,sum=0;
printf("Inputaninteger:
");
scanf("%d",&n);
if(n<0)
n=-n;
while(n>0){
sum+=n%10;
count++;
n/=10;
}
printf("count=%d,sum=%d\n",count,sum);
return0;
}
9.求m,n之间的所有素数,每行输出六个
#include
#include
intmain(){
intcount,i,j,k,m,n;
printf("Inputm:
");
scanf("%d",&m);
printf("Inputn:
");
scanf("%d",&n);
if(m==1)
m++;
count=0;
for(i=m;i<=n;i++){
k=sqrt(i);
for(j=2;j<=k;j++)
if(i%j==0)
break;
if(j>k){/*如果m是素数*/
printf("%4d",i);/*输出m*/
count++;/*累加已经输出的素数个数*/
if(count%6==0)/*如果count是6的倍数,换行*/
printf("\n");
}
}
printf("\n");
return0;
}
10.分钱1,2,5分
#include
intmain(void){
inti,j,k,m;
intcount=0;/*换法*/
printf("Inputmoney:
");
scanf("%d",&m);
for(i=1;i<=m;++i){/*1分*/
for(j=1;j<=m/2;++j){/*2分*/
for(k=1;k<=m/5;++k){/*5分*/
if(i+2*j+k*5==m){/*各分币加起来是否等于m分*/
printf("fan5:
%dfan2:
%dfan1:
%d\n",k,j,i);
count++;
}
}
}
}
printf("count=%d\n",count);
return0;
}
11.求m,n之间的水仙花数(各位数字的立方和等于其自身的数)
#include
intmain(){
inti,x,sum;
intm,n;
printf("Inputm:
");
scanf("%d",&m);
printf("Inputn:
");
scanf("%d",&n);
for(i=m;i<=n;i++){
x=i;
sum=0;
while(x!
=0){
sum=sum+(x%10)*(x%10)*(x%10);
x=x/10;
}
if(i==sum)
printf("%d\n",sum);
}
}
12.找出200以内的所有完数,并输出因子(一个数等于他各应子之和,6=1+2+3)
#include"stdio.h"/*
intmain(void)
{
inti,j,s=1;/*s*/
for(i=1;i<=200;i++){
/*s=1;*/
for(j=2;j<=i/2;j++)
if(i/j==0)/*i%j==0*/
s=s+j;
if(s==i){
printf("%d=1",i);
for(j=2;j<=i/2;j++)
if(i/j==0)/*i%j==0*/
printf("+%d",j);
printf("\n");
}
}
return0;
}
13.验证哥德巴赫猜想(任何一个大于6的偶数可表示为2个素数之和)
#include
#include
intprime(intm);
intmain(void){
intx,a,b,count=0;
for(x=6;x<=100;x=x+2){
for(a=2;a<=x-1;a++){
if(!
prime(a))
continue;
b=x-a;
if(!
prime(b))
continue;
printf("%d=%d+%d",x,a,b);
count++;
if(count%5==0)
printf("\n");
break;
}
}
printf("\n");
}
intprime(intm){
inti,n;
if(m==1)
return0;
n=sqrt(m);
for(i=2;i<=n;i++)
if(m%i==0)
return0;
return1;
}
14.分离各位数并输出
#include
#include
intmain(void){
longintx,y,d;
inti,j,n=0;
printf("Inputaninteger:
");
scanf("%ld",&x);
if(x<0)
x=-x;
y=x;
while(y!
=0){/*确定长整数有几位*/
n++;
y=y/10;
}
if(n==0)
n=1;
y=x;
for(i=n;i>=1;i--){
d=1;
for(j=1;j
d=d*10;
printf("%ld",y/d);
y=y%d;
}
printf("\n");
return0;
}
15.求句子单词数
#include
intmain(){
intcount,word;
charch;
count=word=0;
printf("Inputwords:
");
while((ch=getchar())!
='\n'){
if(ch=='')
word=0;
elseif(word==0){
word=1;
count++;
}
}
printf("count=%d\n",count);
return0;
}
16.排序
#include
/*对n个数排序*/
voidselectionSort(inta[],intn)
{
inti,k,index,temp;
for(k=0;k index=k; for(i=k+1;i if(a[i]>a[index])index=i; temp=a[index]; a[index]=a[k]; a[k]=temp; } } intmain(void) { inti,n,temp; inta[10]; intmin,max,minIndex,maxIndex; printf("Inputn: "); scanf("%d",&n); printf("Input%dintegers: ",n); for(i=0;i scanf("%d",&a[i]); selectionSort(a,n); printf("Aftersorted: "); for(i=0;i printf("%d",a[i]); return0; } 17.乘法表 #include intmain(void) { inti,j,n; inta[10][10]; printf("Inputn: "); scanf("%d",&n); for(i=1;i<=n;i++){ a[i][0]=i; a[0][i]=i; } for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=i*j; for(i=0;i<=n;i++){ for(j=0;j<=n;j++){ if((i==0)&&(j==0)) printf("*"); elseif((i==0)||(i>=j))/*下三角i>=j*/ printf("%d",a[i][j]); } printf("\n"); } return0; } 18.第几天 #include intday_of_year(intyear,intmonth,intday); intmain(void) { intyear,month,day; printf("Inputyear,month,day: "); scanf("%d%d%d",&year,&month,&day); printf("Daysofyear: %d\n",day_of_year(year,month,day)); return0; } /*计算某个日期对应该年的第几天*/ intday_of_year(intyear,intmonth,intday) { intk,leap; inttab[2][13]={/*数组初始化,将每月的天数赋给数组*/ {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31} }; /*判断year是否为闰年,当year是闰年时,leap=1;当year是非闰年时,leap=0*/ leap=((year%4==0)&&(year%100! =0))||(year%400==0); /*计算天数*/ for(k=1;k day=day+tab[leap][k]; returnday; } 19.鞍点 #include intmain(void) { inti,j,k,n,flag; introw,col;/*存放鞍点坐标*/ inta[6][6]; printf("Inputn: "); scanf("%d",&n); printf("Inputarray: \n"); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i col=0; for(j=0;j if(a[i][j]>a[i][col]) col=j;/*第i行最大值所在的列号*/ } flag=1; for(k=0;k
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 大一 基础 程序 试验 手册 答案