おさえておきたいプログラミングの基本
この問題を解くためには…
以下のプログラムを実行すると結果は実行結果1のようになる。
probex4-1:main.c#include <stdio.h>
int main(int argc, char** argv){
// サイズSIZEの配列を用意する。
int nums[] = { 1,2,3,4,5 };
int *p = NULL;
int i;
p = nums; // pにnumsのアドレスを入力
for( i = 0 ; i < 5; i++){
printf("%d ",*p);
p++; // p2のアドレスをインクリメント
}
printf("\n");
return 0;
}
実行結果1
このプログラムの一部を改造し、次の実行結果2のようになるようにプログラムを変えなさい。ただし、変えてよい部分は、ポインタ変数pへの操作の部分のみとする。
実行結果2実行結果の例を参考にして、長さ5の整数型の配列変数aに、すべての成分に0から100の乱数の値を代入して表示し、以下の条件を満たす数値を表示するプログラムを作りなさい。
以下のプログラムは、ポインタ変数arrayに動的に配列を確保し、処理を行うプログラムである。コメントで示された部分①と②を、適切な処理に変えて、プログラムを完成させなさい。
probex4-3:main.c#include <stdio.h>
#include <malloc.h>
int main(int argc, char** argv){
// 数値配列代入用のポインタ変数
int *array = NULL;
int i;
// ①長さ10の配列の生成(mallocを使用)
for(i = 0; i < 10; i++){
array[i] = i; // 値の代入
}
// 値の表示
for(i = 0; i < 10; i++){
printf("%d ",array[i]); // 値の代入
}
printf("¥n");
// ②生成したメモリの開放(free()を使用)
}
期待される実行結果
以下のプログラムを実行すると
probex4-4:main.c#include <stdio.h>
#include <malloc.h>
int main(int argc, char** argv){
// 数値配列代入用のポインタ変数
double *a = NULL;
int i;
// メモリの生成
a = (double*)malloc(sizeof(double)*3);
for(i = 0; i < 3; i++){
a[i] = 0.1 * i;
}
// 結果の表示
for(i = 0; i < 3; i++){
printf("%f ",a[i]);
}
printf("¥n");
// メモリの開放
free(a);
return 0;
}
次のような実行結果になる。
実行結果このプログラムを、以下のような実行結果になるように変更しなさい。
期待される実行結果キーボードから2つの字列を入力し、その2つを結合した文字列を表示するプログラムを作成しなさい。ただし、最終的に出力する文字列は、strcpy()および、strcat()関数を用いて、2つの文字列を1つに統合したものにすること。
期待される実行結果probex5-1と同じ結果を得られるプログラムを、strcpy()やstrcat関数といった、文字列操作関数を用いずに作りなさい。
キーボードから文字列を入力し、その文字列の長さを表示するプログラムを作りなさい。この時、strlen()関数を用いること。
期待される実行結果probex5-3と同じ結果を得られるプログラムを、strlen関数を用いないで作りなさい。
キーボードから2つの字列を入力し、2つが同じものならば、「同じものです」と表示し、違うのならば、「違うものです」と表示するプログラムを作りなさい。ただし、文字列の比較にはstrcmp()関数を用いること。
期待される実行結果1(2つの文字列が同じ場合)probex5-5.と同じ結果が得られるものを、strcmp()関数を用いずに作りなさい。
以下のプログラムは、文字列として定義されている「100」を、整数の値に変換して出力するプログラムである。/** **/でコメントされている部分に、不完全な部分を実装し、プログラムを完成させなさい。
期待される実行結果#include <stdio.h>
#include <string.h>
int main(int argc,char** argv){
char[] numString = "100"; // 数値の文字列
int num; // numStringの数値を入れる変数
/**
numStringを整数値に変換し、numに代入
**/
printf("%d\n",num);
return 0;
}
期待される実行結果
キーボードから3つの文字列を入力させ、そのうち最も長い文字列を表示するプログラムを作りなさい。ただし、同じ長さの文字列が複数ある場合は、すべて表示すること。
期待される実行結果の例①(最長のものが1つしかない場合)以下の条件と、実行結果の例をもとにして、キーボードから入力した文字列を反転させるプログラムを作りなさい。
一週間でわかるC言語・C++言語がオンライン講座になりました!動画と音声によってさらにわかりやすくなりました!! 1講座で2つの言語を学ぶことができる上に、練習問題の回答もダウンロードできます。
Read →本講座が「1週間でC言語の基礎が学べる本」として書籍化されました!サイトの内容プラスアルファでより学習しやすくなっています!Impressより発売中です!!
Read →