・整数型の変数aと,整数型の変数の (A) を格納する (B) 変数paを宣言する
int a;
int *pa;
(B) 変数paに変数aの (A) を代入するには,
(C) = (D);
とする.さらに(B)変数paを使って(B)の指す値を別の整数型の変数bに代入するためには
int b = (E);
とする.
・文字列変数は文字の (F) として表され,文字の終わりを表す (G) を文字の最後につける.
・関数へ値を渡す方法は (H) と (I) があり,(H) では呼び出す側へ戻せる値の数は (J) 個であるのに対し,(I) では関数を呼び出す側と呼び出された関数側で同じ (A) を参照するので,複数の値や配列を共有できる.
解答例:
A: アドレス
B: ポインタ
C: pa
D: &a
E: *pa
F: 配列
G: ‘\0’,NULL,NULL文字,(0,0x00なども可)
H: 値参照
I: アドレス参照
J: 1
解答例:
#include <stdio.h>
void main()
{
char a[ ]= "Hello Meiji";
int i=0;
int count=0; /* 'e'を数えるための変数 */
while(a[i] != '\0' ) {
if(a[i] == 'e') {
count++;
}
i++;
}
if ( count != 0 ) {
printf("文字列はeを%d個含みます\n", count);
}
}
解答例:
#include <stdio.h>
int saidai_kouyakusu(int p, int q)
{
int i;
int result;
/* p,qの小さいほうをiに代入する */
if(p<q) {
i=p;
} else {
i=q;
}
/* p,qともに割り切れる値を見つける */
while( i>=1 ) {
if(p%i == 0 && q%i ==0) {
return i; /* i=1となる最後には必ず呼ばれる */
}
i--;
}
/* 2以上の数で割り切れなければ最大公約数は1 */
/* ここは呼ばれないので無くてもよい(無いと警告が出る?)*/
return 1;
}
void main()
{
int a,b;
int result;
printf("a=");
scanf("%d", &a);
printf("b=");
scanf("%d", &b);
result = saidai_kouyakusu(a,b);
printf("%dと%dの最大公約数は,%dです\n", a, b, result);
}
解答例:
#include<stdio.h>
int kaijo(int n)
{
int i;
int result=1;
for(i=1; i<=n; i++) {
result *= i;
}
return result;
}
void main()
{
int i;
int n;
int sum=0;
printf("n=");
scanf("%d", &n);
for(i=1; i<=n; i++) {
sum += kaijo(i);
}
printf("1!から%d!までの和は%dです", n, sum);
}