亚洲伊人网站-亚洲伊人精品-亚洲伊人电影-亚洲一在线-久久国产一区二区-久久国产一区

高分網 > 答案大全 > 作業答案 > 課后作業答案 >

c語言程序設計課后習題答案

時間: 春燕2 課后作業答案

  課后作業是為鞏固學習效果而安排的作業,是課堂教學過程中的非常重要的組成部分,是鞏固新授知識,形成技能技巧,培養良好的思維品質,發展學生智力的重要途徑,是課堂教學過程中不可跨越的一環。今天學習啦小編分享了c語言程序設計課后習題答案,一起來學習。

  c語言程序設計課后習題答案

  例1、求100到999之間的所有水仙花數。

  #include

  void main(void)

  {

  int n,b,s,g;

  for(n=100;n<=999;n++){

  b = n/100;

  s = (n-b*100)/10;

  g = (n%100)%10;

  if( b*b*b+s*s*s+g*g*g == n)printf("%d\n",n);

  }

  }

  例2、求兩個整數的最大公約數和最小公倍數

  gcd(x,y) = gcd(x, x% y )

  lcm(x,y) =(x×y)/gcd(x,y)

  #include

  void main(void)

  {

  int x,y,r,n,gcd,lcm;

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

  n = x*y;

  r=x%y;

  gcd=y;

  while(r!=0)

  {

  x=y;

  y=r;

  r=x%y;

  gcd=y;

  }

  lcm = n/gcd;

  printf("gcd=%d lcm=%d\n",gcd,lcm);

  }

  例3、將一張面值是100元的錢等值轉換為5元、1元和0.5元的零鈔,要求每種零鈔至少一張,求所有的兌換方式。

  #include

  void main(void)

  {

  int i,j,k;

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

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

  for(k=1;k<=200;k++){

  if( i*5+j+0.5*k == 100 )

  printf("%d %d %d\n",i,j,k);

  }

  }

  }

  }

  例4、求愛因斯坦數學問題:有一條長臺階,若每步跨2階,則最后剩余1階,若每步跨3階,則最后剩2階,若每步跨5階,則最后剩4階,若每步跨6階,則最后剩5階,若每步跨7階,則最后正好一階不剩。求臺階長度。

  #include

  void main(void)

  {

  int n;

  n=7;

  while(1){

  if( (n%2==1) && (n%3==2) &&

  (n%5==4) && (n%6==5) )break;

  n=n+7;

  }

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

  }

  例5、驗證歌德巴赫猜想(任意一個大于6的偶數都可以分解為兩個素數之和),驗證范圍是6~2000的偶數。

  #include

  #include

  void main(void){

  int n,i,k1,k2;

  int isPrimeFlag1,isPrimeFlag2;

  for(n=6;n<=100;n+=2){

  for(k1=3;k1

  isPrimeFlag1=1; //假設是素數

  for(i=3;i<=sqrt(k1);i+=2){

  if(k1%i==0){isPrimeFlag1=0;break;}

  }

  if( isPrimeFlag1==0 )continue;

  k2=n-k1;

  isPrimeFlag2=1; //假設k2是素數

  for(i=3;i<=sqrt(k2);i+=2){

  if(k2%i==0){isPrimeFlag2=0;break;}

  }

  if(isPrimeFlag1 && isPrimeFlag2 ){

  printf("%d=%d+%d\n",n,k1,k2);

  break;

  }

  }

  }

  }

  例6、已知一正整數遞增等差數列,前5項的和是25,前5項的積是945,根據上述條件,輸出該數列的前10項。

  #include

  void main(void)

  {

  int a,d,i,s,r,x;

  for(a=1;a<5;a++){

  for(d=1;d<5;d++){

  s=0; r=1;

  for(i=0;i<5;i++){

  x=a+d*i; s=s+x; r=r*x;

  }

  if(s==25 && r==945 )goto loop_exit;

  }

  }

  loop_exit:

  for(i=0;i<19;i++){

  x=a+d*i; printf("%d\n",x);

  }

  }

  例7、A、B、C、D和E合伙捕魚,到第二天凌晨時都疲憊不堪,于是各自找地方休息。日上三竿,A第一個醒來,他將魚分為五份,把多余的一條扔掉,拿走自己的一份。B第二個醒來,也將魚分為五份,把多余的一條扔掉,拿走自己的一份。C、D、E依次醒來,也按同樣的方法分魚。求他們合伙至少捕了多少魚。

  #include

  void main(void)

  {

  int zs,n,i,flag;

  zs=6;

  while(1){

  flag=1;n=zs;

  for(i=0;i<5;i++){

  if( n%5 !=1 ){flag=0;break;}

  n=n-(n-1)/5;

  }

  if(flag==1)break;

  n = ++zs;

  }

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

  }

  例8、一輛卡車違反交通規則,撞人逃跑。現場有三個目擊證人,但沒有記住車號,只記下一些車號的特征。甲說:牌照的前兩位數字相同;乙說:牌照的后兩位數字是相同的;丙說:四位的車號剛好是一個整數的平方。根據上述線索求車號。

  #include

  #include

  void main(void)

  {

  int n,x,k1,k2,k3,k4;

  for(n=1000;n<=9999;n++){

  x=(int)sqrt(n);

  if(x*x != n)continue;

  k1 = n/1000;

  k2 = (n-k1*1000)/100;

  k3 = (n-k1*1000-k2*100)/10;

  k4 = (n-k1*1000-k2*100-k3*10);

  if(k1==k2 && k3==k4 )printf("%d\n",n);

  }

  }

  例9、某數組有20個元素,編程序將該數組中的所有元素逆序存儲并輸出。即用第一元素和最后一個元素對調,第二和最后一個對調。

  #include

  #include

  void main(void)

  {

  int a[20],i,j,t;

  for(i=0;i<20;i++)a[i]=i+1;

  for(i=0,j=19;i

  t=a[i];a[i]=a[j];a[j]=t;

  }

  for(i=0;i<20;i++)printf("%d\n",a[i]);

  }

  例10、編程序,輸入一個十進制數,將其轉換為二進制后存儲到一個字符數組中。

  #include

  #include

  void main(void){

  int x,r,i=0,j;

  char a[100]={0},t;

  scanf("%d",&x);

  while(1){

  r=x%2; a[i++]=48+r; x=x/2;

  if(x==0)break;

  }

  for(i=0,j=strlen(a)-1;i

  t=a[i];a[i]=a[j];a[j]=t;

  }

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

  }

  例11、編程序求二維數組中最小元素所在的行和列。

  #include

  #include

  #include

  void main(void)

  {

  int a[4][5],i,j,max,row,col;

  srand( (unsigned)time( NULL ) );

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

  for(j=0;j<5;j++)a[i][j]=rand();

  max=a[0][0];row=0;col=0;

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

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

  if(max>a[i][j]){max=a[i][j];row=i;col=j;}

  }

  }

  printf("i=%d j=%d\,",i,j);

  }

  例12、編程產生3×4的矩陣A,并輸出他經過行列互換后的矩陣B。

  #include

  #include

  #include

  void main(void)

  {

  int a[3][4],b[4][3],i,j;

  srand( (unsigned)time( NULL ) );

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

  for(j=0;j<4;j++)a[i][j]=rand();

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

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

  b[j][i]=a[i][j];

  }

  }

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

  printf("\n");

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

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

  }

  }

  printf("\n");

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

  printf("\n");

  for(j=0;j<3;j++)printf("%6d",b[i][j]);

  }

  }

  例13、不使用字符串比較函數strcmp,實現兩個字符串的比較。

  #include

  #include

  void main(){

  char s1[300], s2[300];

  int result, i=0;

  scanf("%s%s",s1, s2 );

  while( s1[i] && s2[i] && s1[i] == s2[i] ) i++;

  result = s1[i]-s2[i];

  if ( result == 0 ) printf(" s1等于s2 ");

  else if( result > 0 ) printf(" s1大于s2 ");

  else printf(" s1小于s2 ");

  }

  例14、判斷字符串s1中是否包含字符串s2。

  #include

  #include

  void main(void){

  char s1[100],s2[100];

  int i,j,len,flag;

  gets(s1);gets(s2);

  len = strlen(s2);

  for(i=0;i<=strlen(s1)-len;i++){

  flag=1;

  for(j=0;j

  if( s1[i+j]!=s2[j] ){flag=0;break;}

  }

  }

  if(flag==1)printf("包含!\n");

  else printf("不包含!\n");

  }

  以上是學習啦小編整理了c語言程序設計課后習題答案,有幫助到你嗎?

23310 主站蜘蛛池模板: 欧美性高清aviu88| 中国宇航员遇难| 喋血黑谷| 施华| 电影双面情人| 心理健康《微笑的力量》ppt| 欧洲18一19gay同志| 同乐赛鸽公棚| 秀人网小逗逗集免费观看| 珠江电视台直播 珠江频道| 护校队申请书| 徐少强全部电影| 鲫鱼汤怎么做好喝视频教程| 杨剑锋个人资料简介| 回响在耳边的____声450字| 女生操| 女孩们在线观看完整电影| 崔恩| 羽毛球队名诙谐有趣的名字| 日韩在线日韩| 石锐| 寄宿生韩剧全集观看| 美女洗澡网站| 名星| 尘埃落定演员表| 左航个人资料| 张晋个人资料和简历| 台湾电视台| 越战电影《天与地》| 《世说新语》二则原文及注释 | 河南省gdp城市排名| 杰奎琳·卡瓦霍| 安娜卡列琳娜| 最后的武士| 欲望之城 电影| 服务群众方面整改成效| 红灯区| 庆余年2豆瓣| 芝加哥警署第九季| 血糖最怕三种水果| 吴青芸|