マイクロソフトウィンドウズなどのオペレーティングシステムは、様々な機能 を提供している。OS の提供する機能に関して、次の問いに答えなさい。
編集作業などで、削除したものを一時的に貯めておく記憶領域
カットバッファは「削除」「コピー」「貼り付け」により操作する。 「削除」は指定した領域を削除し、削除したものをカットバッファに保存する。 「コピー」は指定した領域を、削除せずにカットバッファに保存する。 「貼り付け」はカットバッファの内容をポインタで示した指定位置に挿入する。
例えば、 abcdefghi という文字列に対して、 def が指定領域だとする。 この時、「削除」を行うと、文字列は abcghi となり、カットバッファの内容は def になる。 一方、「コピー」を行うと、文字列は abcdefghi のままで、カットバッファの内容は def になる。 カットバッファの内容が def の時、文字列 jklmnop の l と m の間を指定して「貼り付け」を行うと、文字列は jkldefnop になる。
データの集まり。コンピュータでは名前をつけて管理する。
コマンド行で実行されるプログラムが仮定している入力ファイルと、出力ファイル。通常はそれぞれキーボードと画面出力が割り当てられる。 但し、リダイレクトにより入出力ともファイルに割り当てることが可能。
問題点としては次のことが考えられる。 相手先にマイクロソフトワードやエクセルがない場合、内容を読むことができない。 また、一般にこれらのファイルは内容に比べて巨大なサイズになるため、内容の割に相手に負担させる通信料がかさむ。 さらにこれらのファイルはコンピュータウィルスが感染する。 従って、相手がこれらのファイルを受信することと、それに伴うデメリットを了承していれば問題ないが、了承していない場合は迷惑をかけることになる。 一方、了承していればソフトウェアの専用ファイルであるため、情報を利用する際に、ソフトウェアの機能を全て使うことができる。
次のプログラムを読み、各問いに答えなさい。
#include <stdio.h> main(){ int a=5; float b=2718E-3; char c='c'; char d[]="abcdef"; printf("%a %b\n%c\n%d\n",a,b,c,d); }
printf("%d %f\n%c\n%s\n",a,b,c,d);
5 2.718 c abcdef
次のプログラムを読み、各問いに答えなさい。
#include <stdio.h> main() { float a=3.0; float b=6.0; float x; printf("%fx + %f = 0",a,b); if(a!=0){ x=b/a; printf("解は\%f。\n ",x); }else{ if(b!=0){ printf("(A)"); }else{ printf("任意の x は式を満す。\n"); } } }
方程式 ax+b =0 を解くプログラムである。
「解なし」
x=b/a; → x=-b/a;
3.00000 x + 6.00000 = 0 解は -2.00000
float a=2.0; float b=1.0;
2.00000 x + 1.00000 = 0 解は -0.50000
float a=0.0; float b=1.0;
0.00000 x + 1.00000 = 0 解なし
float a=0.0; float b=0.0;
0.00000 x + 0.00000 = 0 任意の x は式を満たす。
次のプログラムを読み、各問いに答えなさい。
#define BUFSIZE 512 #include <stdio.h> main() { char c,a[BUFSIZE]; int i,j; for(i=0;i<5;i++){ j=0; while((c=getchar())!='\n'){ a[j]=c; j++; } a[j]='\0'; printf("%s\n",a); } }
入力を 5 行読んで表示するプログラム
EOF を考慮していない。つまり、 5 行以内にファイルが終ると誤動作する。
一文字ずつ読む度に EOF かを判断し、 EOF でなく 5 行以内であれば表示するようにする。
#include <stdio.h> main(){ int n; char c; while(((c=getchar())!=EOF)&&(n<5)){ printf("%c",c); if(c=='\n'){ ++n; } } }