電子書籍の厳選無料作品が豊富!

先日、技術の授業がありました。先生から「c言語を知っている奴はいるか?」と聞かれ、僕は体験授業で少し触ったことがあったので「一応知っています」と答えました。「すると、次の時間○○にはc言語について聞きながら授業進めます。期待しています。そんな深い話はせず基本的なこと聞くだけやけん、大丈夫。」と言われました。

正直、「知っているか」と聞かれたので「知っている」と答えただけでほとんど知りません。

「c言語をある程度されている人なら知っている、知識を教えていただきたいです。よろしくお願いします。


補足

我が校の技術教師は評定2下がっていい奴だけ、文句言えという人なのです。
だから、そう簡単に文句は言えません。

また、50分でざっくり学ぶだけなのでその場凌ぎの知識で大丈夫です。

A 回答 (9件)

    • good
    • 0

うーん、どうすんべぇ。



> c++やc#は「オブジェクト志向言語」と呼ばれる。)

こういうタイポはこのタイミングじゃマズいでしょ。
「オブジェクト志向」じゃなくって「オブジェクト指向」。

> ヘッダファイルの存在
>(必要なライブラリ(機能)だけを呼び出すことで、実行ファイルを小さくできる。)

これは「特徴」なのか・・・・・・。
ぶっちゃけ、原始的過ぎるし、今のフツーのモダンな言語のimportの方がマシだったりする。

> 実行ファイルを作成するのに、「コンパイル」が必要。

実はC言語の仕様では「C言語はコンパイラを使う」たぁ規定されていない。
原理的にはインタプリタのC言語は充分にアリなのだ。
単に殆どの実装がコンパイラとして実装してるのを選んでるだけで。

> インクリメント(デクリメント)

これも別に特徴ではない。

> ポインタ

上に同じ。FortranにもPascalにもポインタは存在するし、別にCの特徴ではない。
    • good
    • 1

c言語で特徴的なのは、


・構造化言語。(これに対して、c++やc#は「オブジェクト志向言語」と呼ばれる。)
・ヘッダファイルの存在
(必要なライブラリ(機能)だけを呼び出すことで、実行ファイルを小さくできる。)
・実行ファイルを作成するのに、「コンパイル」が必要。
・プログラムを記述するときは、大文字と小文字は区別される。
・インクリメント(デクリメント)
変数を1増やす(減らす)操作。
変数の前か後ろに“++”(“--”)をつけて表す。
・ポインタ
(「変数の箱がある、メモリ上の番地」を指定(参照渡し)するのに使う。)
・構造体とメンバ
(いわゆる、「レコード型(例えば、電話帳の1行の“住所”、“氏名”、“電話番号”…を1つの変数でまとめて定義)」。)
    • good
    • 0

ちょっと待った。



あまりにも酷い(ウソの)内容が書かれてるんで、こりゃ幾ら何でもダメだろ、ってんで訂正しておきます。

> C言語はプログラミング言語で一番普及しているものです。
> 簡単に説明すると人間が機械に命令を出すために人間が理解しやすくしたコードで、関数型言語です。

C言語は関数型言語じゃない。関数使うから関数型言語、ってのは全然違う。
Cは手続き型言語です。
関数型言語に必要最低限な機能(例えばクロージャを扱える)をCは持っていない。
だから関数型言語なんかじゃないです。

> 「右に曲がる」という関数をいろいろ装飾し「とある店の前を右に曲がると女の子が立っていました」といったふうに「店の前」「女の子」など、変数と呼ばれるものに変換して装飾していきます。
> そうしてペーじを作ります。

何故C言語でページを作るんだ。
意味が分からない。

> ただ、C言語は古いものです。エラーも多く、どんどん新しいものが出ています。
> C言語を基礎として、C+(シープラ)C++、(シープラプラ)C♯(シーシャープ)と、条件や使い方も変わり、素人にはわかりにくいですができることの幅が広がり、日々進化しています。

C+(シープラ)って何だろ。聞いた事ないけど。
そしてCが進化してC++やC#になった、みたいに読み取れるけど、基本的には互いは関係ない、「別々のプログラミング言語」です。
そして「日々進化」しない。
C言語はISO(国際標準化機構)の仕様策定委員会で厳密に定義されるので、「日々進化して変わったり」したら困るのだ。
そんなバカな話はない。

> CSSだと一番多いコードだと、色をつけたり、模様をつけたり影をつけたりできます。たとえば回答ボタンは赤ですが、このCSSをいじると青にしたりできます。

CSSはプログラミング言語か・・・?

> C言語、Java、JavaScript、HTMLなどはフロントエンドと言われ、画面に表示される文字列や、システムを作ります。

フロントエンドの意味が分かってない。
フロントエンドと言うのはユーザーに見える部分、あるいは(GUI的な意味で)触れる部分の事で、

> C言語、Java、JavaScript、HTMLなどはフロントエンドと言われ、

当然これらはフロントエンドとは言われない。
作り上げた「フロントエンド」とプログラミング言語を混同してる。

> それぞれできることが違い、スクリプト系は「クリックすると別のファイルを開く」などの動作を作ることができます。

スクリプトの意味も分かってない。
「クリックすると別のファイルを開く」などの動作を作ることができるからスクリプトなわけじゃない。

> C言語はそれらを組み合わせて、情報を教えるシステムです。

全然意味が分からん。C言語は情報を教えるシステムでもなんでもない。単なるプログラミング言語だ。

> これらはフロントエンドという種類ですが

だからフロントエンドの意味が分かってない。
って事は当然、バックエンドの意味も分かってない、と言う事だ。


> 基本的なこと、というのならこの辺りまでで大丈夫です。

いや、あんまツッコミ役やりたくないんだけど、基本的な事分かってないとこういう大間違い書き連ねるよ、と言う・・・・まあ例示してくれたのかなぁ。身を持って。
    • good
    • 3

そんな付け焼刃な知識では、どうせ答える時にしどろもどろになります。


問われたものについて、分からないなら分からないと答えた方が気持ちはすっきりしたまま過ごせます。
いくらC言語を知っているという発言をしようと、当たり前ですが知っているものと知らないものがあります。

あなたが一応知っている、というのが、文法、文字や配列の扱い方、ポインタ、サブルーチンなどの言語仕様であるならば、十分かと思います。
全生徒向けにC言語の入口を授業として教鞭をふるうのに、誰が作ったのか、なんで作られたのか、などを問われるとは思いません。

誰が作ったものなのか、成り立ち、メモリの具体的な扱われ方、など、何を基本的なこととするのか、聞かれる内容も定かでないのに、自分の中で理解を落とし込めない知識など不要です。
    • good
    • 0

そんな事を気にせずに…授業の時は先生に質問されても『その事は良く知りませんとか答えると良いでしょう。



知ってるのでは範囲は人それぞれです。

開発者や熟練者…初心者もいるので素直に受け答えすればよほど馬鹿な教師で無い限り心配は無い。
    • good
    • 1

C言語はプログラミング言語で一番普及しているものです。


簡単に説明すると人間が機械に命令を出すために人間が理解しやすくしたコードで、関数型言語です。

「右に曲がる」という関数をいろいろ装飾し「とある店の前を右に曲がると女の子が立っていました」といったふうに「店の前」「女の子」など、変数と呼ばれるものに変換して装飾していきます。
そうしてペーじを作ります。

ただ、C言語は古いものです。エラーも多く、どんどん新しいものが出ています。
C言語を基礎として、C+(シープラ)C++、(シープラプラ)C♯(シーシャープ)と、条件や使い方も変わり、素人にはわかりにくいですができることの幅が広がり、日々進化しています。

他にもプログラミング言語にはいろいろな種類があります。
CSSだと一番多いコードだと、色をつけたり、模様をつけたり影をつけたりできます。たとえば回答ボタンは赤ですが、このCSSをいじると青にしたりできます。

また、プログラミング言語には用途があり、ウェブページを作る言語、アプリを作る言語(アプリでもPCなのか AndroidなのかiPhoneなのかでも言語が変わります)



C言語とスクリプトなどを使ってWebページを作ります。
C言語、Java、JavaScript、HTMLなどはフロントエンドと言われ、画面に表示される文字列や、システムを作ります。
それぞれできることが違い、スクリプト系は「クリックすると別のファイルを開く」などの動作を作ることができます。HTMLで「ボタン(投稿画面の「投稿」ボタンなど)」を作り、そのボタンに動作(投稿する)をつけます。
C言語はそれらを組み合わせて、情報を教えるシステムです。
たとえば、HTMLでノートを用意し、スクリプトでノートを開くという動作を作ります。
ノートを開いたところで中身がなければ何も変わりません(次のページを開こうにも次のページがなければ機械はなんの動作もしません)から、そこにさらにページ(情報)を作ります。そうしてようやく、クリックしたら次のページが開けるのです。
それらを組み合わせてプログラミングコードを開かずに書き込んだり、アプリなどを操作しやすくするのがプログラミング言語の基本です。

たまにひとつのプログラミング言語で、これらすべての言語を使えるものもありますから、奥が深いです。

また、これらはフロントエンドという種類ですが、研究者がただ計算するための言語やAIを作るための情報整理が目的の言語などもあります。
また、バックエンドという種類もあります。


基本的なこと、というのならこの辺りまでで大丈夫です。
使用方法まではいう必要はありません。それは教師が教えることですし、なによりそこまで知っていればC言語を使って仕事ができます。

関数、変数、コードの書き方などは、パイザなどのプログラミングの教育サイトでタダで学べますから、PCを持ってるなら少し履修しておくのも良いです。

PC持ってないなら「実際に使ったことがないので使用方法についてはわかりません」と伝えれば逃げれます。

プログラミングは適当に基礎を学んで、あとはコード書いてやって覚えるのが基本です。
本読んだだけでマスターできるわけではありませんから、そもそも生徒に聞くこと自体間違ってます。
わからないところは素直にわかりませんと言いましょう。
    • good
    • 0

×「一応知っています」


〇「名前だけなら知っています」 とすべきでしたね。

とはいえ後の祭りなので、一応

C言語自体を学びたいなら、以下のサイトを焦らず1つずつやれば身に付きます。
基本編だけで十分です。
<http://c-lang.sevendays-study.com/>

C言語の成り立ちなどを知りたいなら検索すれば出てくるとおもいますが、
以下のようなサイトで頭に入れておくといいかもしれません。
<https://www.modis.jp/staffing/insight/column_58/>
    • good
    • 0

wikiの前半をしっかり読んでおくことだね。


あとは、Cと言っても、いろいろあるから、
自分がやってみた言語を少し掘り下げる程度かな。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!