メニュー



個別運営サイト



連絡先

C言語 練習問題

問題番号 内容 ソース 解説 ダウンロード
練習問題1 整数aを入力し、その2乗、3乗、4乗を出力せよ。 無し
練習問題2 円の半径を入力し、その円の円周と面積を計算し出力せよ。 無し
練習問題3 5人の体重を入力し、その平均を計算して出力せよ。 無し
練習問題4 r[m]離れた位置から木を見ると傾角がq[°]であった。
目線の高さをh1[m]として、木の高さh[m]を求めよ。
無し
練習問題5 三角形の三辺の長さを入力し、へロンの公式によりその面積を求めよ。 無し
練習問題6 整数aを入力し、奇数か偶数かを判定して表示せよ。 無し
練習問題7 西暦年数nを入力し、閏年かどうかを判定せよ。
ただし論理演算子を用いないこと。
無し
練習問題8 練習問題5を条件を満足しない場合は「三角形を構成できない」と
出力するように変更せよ。
無し
練習問題9 計算する実数aと計算の種別nを入力し、それに応じた計算結果を出力せよ。
ただし、n=2のときaの2乗、n=3のときaの3乗、n=4のときaの平方根、それ以外はそのまま出力せよ。
なおswith分岐ではなくif分岐を使うこと。
無し
練習問題10 2項からなる算術式を入力し、その式を計算して出力せよ。
ただし算術演算子以外が入力された場合は「計算できません」と出力せよ。
無し
練習問題11 正の整数n(≦100)と計算の種別s(1〜3)を入力し、整数1〜nまでのs乗の総和を計算して出力せよ。
ただしswith分岐を用い、sが他の数ならば「計算できません」と出力せよ。
無し
練習問題12 初速度v[m/s]を入力し、垂直に投げたボールの位置を0.2秒ごとに6秒まで計算して出力せよ。
ただし重力加速度g=9.8[m/s^2]、空気抵抗を無視する。
無し
練習問題13 正の整数(n≦12)を入力し、その階乗を求めよ。
ただし、nが12より大きい場合は再入力させるようにせよ。
無し
練習問題14 九九の表をプログラムで作成せよ。 無し
練習問題15 20個の整数を入力し、それら全てと最大値を出力せよ。 無し
練習問題16 20個の整数を入力し、大きい順に並べ替えて表示せよ。 無し
練習問題17 9×9の2次元配列の各要素に九九の計算結果を代入し、出力せよ。 無し
練習問題18 2つの3行3列の行列を入力し、それらの和を求めて出力せよ。 無し
練習問題19 文字列を入力し、その文字数を出力せよ。 無し
練習問題20 文字列を入力し、その文字列を逆順で表示せよ 無し
練習問題21 80文字までの文字列を入力し、文字列が80文字に満たない場合、残りをピリオドで埋めて出力せよ。 無し
練習問題22 円周率πの近似値を半径1の円に内接する正多角形の面積として求めよ。
正4,8,16,…,65536角形の順に計算し、近似値は小数点以下9桁まで表示せよ。
無し
練習問題23 円周率πの近似値を半径1の円に外接する正多角形の面積として求めよ。
正4,8,16,…,65536角形の順に計算し、近似値は小数点以下9桁まで表示せよ。
無し
練習問題24 円周率πの近似値を半径1の円に内接及び外接する正多角形の面積の平均値として求めよ。
正4,8,16,…,65536角形の順に計算し、近似値は小数点以下9桁まで表示せよ。
無し
練習問題25 文字列を入力し、以下のように表示せよ。ただしポインタを利用すること。
文字列を入力してください:alphabet
alphabet
lphabet
phabet
habet
abet
bet
et
t
		
無し
練習問題26 数値を10個入力し、小さい順に並べ換えて出力せよ。
ただし、数値を配列に格納し、並べ替えは配列のポインタ的使用によって操作せよ。
(添え字を使用しないこと。)
無し
練習問題27 数字を入力し対応した曜日を出力せよ。
(0:Sundday,1:Monday,…,6:Saturday)
なお0〜6以外を入力した場合はプログラムが終了すること。
無し
練習問題28 米国ドルを金額で入力し、日本円に換算して出力せよ。
ただし、換算にはd_to_y()という関数を作成し使用すること。
(為替レートは1ドル=118円と仮定する。)
無し
練習問題29 3×3の行列a,bを入力して、その和を求めて表示せよ。
ただし、行列の和を求めるにはadd_matrix()という関数を作成し使用すること。
無し
練習問題30 整数m,nを入力し、1m+2m+3m+…+nmを求めて出力せよ。
ただし、0≦m≦3,0≦n≦100とし、再帰関数を使用して総和を求めよ。
(べき乗の計算にpow()関数をしようしないこと。)
無し
練習問題31 コマンドラインから2つの文字を受け取り(実行ファイル名は除く)、文字数の大きい方の文字列を出力せよ。
なお等しい場合には両方とも出力せよ。
無し

○練習問題1

#include <stdio.h>
main()
{
  int     a,ni,san,yon;
  
  printf("任意の整数aの2〜4乗を計算します\n");
  printf("a=");
  scanf("%d",&a);
  ni=a*a;
  san=ni*a;
  yon=ni*ni;
  
  printf("二乗=%d\n",ni);
  printf("三乗=%d\n",san);
  printf("四乗=%d\n",yon);
}

・短縮形

#include <stdio.h>
main()
{
  int     a;
  
  printf("任意の整数aの2〜4乗を計算します\n");
  printf("a=");
  scanf("%d",&a);
  
  printf("二乗=%d\n",a*a);
  printf("三乗=%d\n",a*a*a);
  printf("四乗=%d\n",a*a*a*a);
}

・実行結果

任意の整数aの2〜4乗を計算します
a=2
二乗=4
三乗=8
四乗=16
このページのトップへ

○練習問題2

#include <stdio.h>
main()
{
  double     r,menseki,ensyuu;
  
  printf("半径から円周と面積を求めます\n");
  printf("半径=");
  scanf("%lf",&r);
  ensyuu=2*r*3.141592;
  menseki=r*r*3.141592;
  
  printf("円周=%.3lf\n",ensyuu);
  printf("面積=%.3lf\n",menseki);
}

・短縮形

#include <stdio.h>
main()
{
  double     r;
  
  printf("半径から円周と面積を求めます\n");
  printf("半径=");
  scanf("%lf",&r);
  
  printf("円周=%.3lf\n面積=%.3lf\n",2*r*3.141592,r*r*3.141592);
}

・実行結果

半径から円周と面積を求めます
半径=3
円周=18.850
面積=28.274
このページのトップへ

○練習問題3

#include <stdio.h>
main()
{
  float     w1,w2,w3,w4,w5;
  
  printf("5人の体重の平均を求めます[kg]\n");
  printf("w1=");
  scanf("%f",&w1);
  printf("w2=");
  scanf("%f",&w2);  
  printf("w3=");
  scanf("%f",&w3);
  printf("w4=");
  scanf("%f",&w4);  
  printf("w5=");
  scanf("%f",&w5);

  printf("平均=%.3f [kg]\n",(w1+w2+w3+w4+w5)/5);
}

・実行結果

5人の体重の平均を求めます[kg]
w1=55
w2=62
w3=78
w4=82
w5=41
平均=63.600 [kg]
このページのトップへ

○練習問題4

#include<stdio.h>
#include<math.h>
#define PI 3.141592

main()
{
    double  h,r,q,h1;
    
    printf("木の高さを求めます。\n");
    printf("木までの距離は? ");
    scanf("%lf",&r);
    printf("目線の高さは? ");
    scanf("%lf",&h1);
    printf("木の頂を見たときの角度は? ");
    scanf("%lf",&q);

    q=q*PI/180;
    h=r*tan(q)+h1;

    printf("木の高さは %.2lf[m]\n",h);
}

・短縮形

#include<stdio.h>
#include<math.h>
#define PI 3.141592

main()
{
    double  r,q,h1;
    
    printf("木の高さを求めます。\n");
    printf("木までの距離は? ");
    scanf("%lf",&r);
    printf("目線の高さは? ");
    scanf("%lf",&h1);
    printf("木の頂を見たときの角度は? ");
    scanf("%lf",&q);
    printf("木の高さは %.2lf[m]\n",r*tan(q*PI/180)+h1);
}

・実行結果

木の高さを求めます。
木までの距離は? 5
目線の高さは? 1.6
木の頂を見たときの角度は? 45
木の高さは 6.60[m]
このページのトップへ

○練習問題5

#include<stdio.h>
#include<math.h>

main()
{
    double  a,b,c,p,s;
    
    printf("三角形の面積を三辺a,b,cから求めます\n");
    printf("ただし、a+b>c かつ |a-b|<c であること\n");
    printf("a=");
    scanf("%lf",&a);
    printf("b=");
    scanf("%lf",&b);
    printf("c=");
    scanf("%lf",&c);

    if(a+b<=c)
      printf("入力データに誤りがあります。\n");
    else if(sqrt((a-b)*(a-b))>=c)
      printf("入力データに誤りがあります。\n");
    else{
      p=(a+b+c)/2;
      s=sqrt(p*(p-a)*(p-b)*(p-c));
      printf("面積は %lf \n",s);
	 }
}

・実行結果

三角形の面積を三辺a,b,cから求めます
ただし、a+b>c かつ |a-b|<c であること
a=3
b=4
c=5
面積は 6.000000
このページのトップへ

○練習問題6

#include
main()
{
    float  a;
    long   b,d;
    
    printf("整数aが奇数か偶数か判別します。\na=");
    scanf("%f",&a);

	d=b=a;
	d=d%2;
	
    if(a!=b)
      printf("これは整数ではありません。\n");
    else if(d)
      printf("これは奇数です。\n");
    else
      printf("これは偶数です。\n");
}

・別解

#include
main()
{
    float  a,c;
    long   b,d;
    
    printf("整数aが奇数か偶数か判別します。\n");
    printf("a=");
    scanf("%f",&a);

    b=a;
    c=a;
    d=b;
    a=a/2;
    b=b/2;

    if(c!=d)
      printf("これは整数ではありません。\n");
    else if(a!=b)
      printf("これは奇数です。\n");
    else
      printf("これは偶数です。\n");
}

・実行結果

整数aが奇数か偶数か判別します。
a=2
これは偶数です。
このページのトップへ

○練習問題7

#include
main()
{
    int n;

    printf("西暦年を入力して下さい --> ");
    scanf("%d",&n);

    if(n%400==0)
      printf("西暦%d年は、うるう年です。\n",n);
    else if(n%4==0){
		if(n%100!=0)
        	printf("西暦%d年は、うるう年です。\n",n);
		else
        	printf("西暦%d年は、うるう年ではありません。\n",n);
	}
    else
      printf("西暦%d年は、うるう年ではありません。\n",n);
}

・実行結果

西暦年を入力して下さい --> 2005
西暦2005年は、うるう年ではありません。
このページのトップへ

○練習問題8

#include
#include
main()
{
    double  a,b,c,p,s,ab1,ab2;
    
    printf("三角形の面積を三辺a,b,cから求めます\n");
    printf("ただし、a+b>c かつ |a-b|=c)
      printf("三角形は構成できない。\n");
    else{      
      p=(a+b+c)/2;
      s=sqrt(p*(p-a)*(p-b)*(p-c));
      printf("面積は %lf \n",s);
   }
}

・実行結果

三角形の面積を三辺a,b,cから求めます
ただし、a+b>c かつ |a-b|<c であること
a=2
b=3
c=4
面積は 2.904738
このページのトップへ

○練習問題9

#include
#include
main()
{
    double  a;
    int n;

    printf("実数 a = ");
    scanf("%lf",&a);
    printf("計算の種別 n = ");
    scanf("%d",&n);
    
    if(n==2)
      printf("%lfの2乗 = %lf\n",a,a*a);
    else if(n==3)
      printf("%lfの3乗 = %lf\n",a,a*a*a);
    else if(n==4)
      printf("%lfの平方根 = %lf\n",a,sqrt(a));
    else
      printf("%lfの計算はできません。\n",a);
}

・実行結果

実数 a = 2
計算の種別 n = 3
2.000000の3乗 = 8.000000
このページのトップへ

○練習問題10

#include
main()
{
  long a,b;
  char c;

  printf("算術式を入力して下さい --> ");
  scanf("%ld %c %ld",&a,&c,&b);

  switch(c)
  {
    case '+':
      printf("%ld %c %ld = %ld\n",a,c,b,a+b);
      break;
    case '-':
      printf("%ld %c %ld = %ld\n",a,c,b,a-b);
      break;
    case '*':
      printf("%ld %c %ld = %ld\n",a,c,b,a*b);
      break;
    case '/':
      printf("%ld %c %ld = %ld\n",a,c,b,a/b);
      break;
    default:
      printf("計算できません。\n");
      break;
  }
}

・実行結果

算術式を入力して下さい --> 2 + 3
2 + 3 = 5
このページのトップへ

○練習問題11

#include
main()
{
  int n,s,i,sum=0;

  printf("1からnまでの色々な総和を出します。ただしnは1以上,100以下\n");
  printf("n=");
  scanf("%d",&n);

  if(n<=100 && n>=1){
  	printf("計算の種別--->");
  	scanf("%d",&s);
	switch(s){
    	case 1:
      		for(i=1;i<=n;i++)
            	sum+=i;
      		printf("1から%dまでの総和=%d\n",n,sum);
      		break;
    	case 2:
      		for(i=1;i<=n;i++)
            	sum+=i*i;
      		printf("1から%dまでの2乗の総和=%d\n",n,sum);
      		break;
    	case 3:
      		for(i=1;i<=n;i++)
            	sum+=i*i*i;
      		printf("1から%dまでの3乗の総和=%d\n",n,sum);
      		break;
    	default:
      		printf("計算できません。\n");
      		break;
  	}
  }
  else
    printf("計算できない値です。\n");
}

・実行結果

1からnまでの色々な総和を出します。ただしnは1以上,100以下
n=50
計算の種別--->3
1から50までの3乗の総和=1625625
このページのトップへ

○練習問題12

#include
main()
{
    float v,t,y;

    printf("初速度 v0 -->");
    scanf("%f",&v);

    for(t=0;t<=6;t=t+0.2){
    	y=v*t-9.8*t*t/2;    
    	printf("%3.1f  %.5f\n",t,y);
	}
}

・実行結果

初速度 v0 -->20
0.0  0.00000
0.2  3.80400
0.4  7.21600
0.6  10.23600
0.8  12.86400
1.0  15.10000
1.2  16.94400
1.4  18.39600
1.6  19.45600
1.8  20.12400
2.0  20.40000
2.2  20.28400
2.4  19.77600
2.6  18.87600
2.8  17.58400
3.0  15.90000
3.2  13.82399
3.4  11.35599
3.6  8.49599
3.8  5.24399
4.0  1.59999
4.2  -2.43601
4.4  -6.86400
4.6  -11.68400
4.8  -16.89599
5.0  -22.49999
5.2  -28.49598
5.4  -34.88397
5.6  -41.66396
5.8  -48.83595
6.0  -56.39994
このページのトップへ

○練習問題13

#include
main()
{

  int n,sum=1;

  while(1){
  	printf("整数nの階乗を計算します。\n12以下の自然数を入力して下さい。\nn=");
  	scanf("%d",&n);

  	if(n<13) break;
  	printf("再入力して下さい。\n");
  }

  for(;n;n--)
    sum*=n;
	
  printf("結果:%d\n",sum);   
}

・実行結果

整数nの階乗を計算します。
12以下の自然数を入力して下さい。
n=5
結果:120
このページのトップへ

○練習問題14

#include
main()
{

  int a,b,c;

  for(a=1;a<=9;a++){
     for(b=1;b<=9;b++){
          c=a*b;
       if(c>=10){
         if(b==9)
          printf("%d\n",c);
         else
          printf("%d ",c);    
       }
       else{
         if(b==9)
          printf(" %d\n",c);
         else
          printf(" %d ",c);
       }
     }
  }
}

・実行結果

 1  2  3  4  5  6  7  8  9
 2  4  6  8 10 12 14 16 18
 3  6  9 12 15 18 21 24 27
 4  8 12 16 20 24 28 32 36
 5 10 15 20 25 30 35 40 45
 6 12 18 24 30 36 42 48 54
 7 14 21 28 35 42 49 56 63
 8 16 24 32 40 48 56 64 72
 9 18 27 36 45 54 63 72 81
このページのトップへ

○練習問題15


・実行結果


このページのトップへ

○練習問題16


・実行結果


このページのトップへ

○練習問題17


・実行結果


このページのトップへ

○練習問題18


・実行結果


このページのトップへ

○練習問題19


・実行結果


このページのトップへ

○練習問題20


・実行結果


このページのトップへ

○練習問題21


・実行結果


このページのトップへ

○練習問題22


・実行結果


このページのトップへ

○練習問題23


・実行結果


このページのトップへ

○練習問題24


・実行結果


このページのトップへ

○練習問題25


・実行結果


このページのトップへ

○練習問題26


・実行結果


このページのトップへ

○練習問題27


・実行結果


このページのトップへ

○練習問題28


・実行結果


このページのトップへ

○練習問題29


・実行結果


このページのトップへ

○練習問題30


・実行結果


このページのトップへ

○練習問題31


・実行結果


このページのトップへ

Copyright (C) 2002-2005 RYO All Rights Reserved
広告 万馬券 無料レンタルサーバー ブログ blog