1、C言語のキーワードオート:ダブルを使用してのような自己宣言された変数:倍精度変数や関数の宣言int型:整数変数や関数の宣言構造体:宣言構造体変数や関数のブレーク:他のサイクリングの前にジャンプ:条件文の否定のサポート(と長い)関連して使用される場合:場合のステートメントオフ:列挙型宣言レジスタ:指定されたデータ型のエイリアス(役割)CHAR:typedefのリザーバ変数宣言文字宣言ステートメント分枝列挙オフ変数宣言または関数スイッチ整数変数や関数externを:ファイルの宣言は(参照変数として見られる)ことを宣言変数リターン:リターン・プログラムのステートメント(パラメータとパラメータを参照してください)組合:共同声明のデータ型のconst:ステートメントは、変数floatを読む:float型変数や関数が短い宣言:宣言された変数または関数unsigned short型整数:コマンドタイプ変数または関数空隙記号:宣言関数戻り値またはパラメータの宣言を終了するためのサイクルのサイクルを開始::シンボルタイプは、変数または関数が、種がループ(意味の言葉で運ば)署名付きを継続宣言しましたポインタ型(三つの基本的な効果)デフォルト:条件ジャンプ文のsizeof:揮発性の計算データタイプ:説明変数行う暗黙実行を変更:分岐ジャンプ文オフ円形 文whileループ:ループループ条件の静的次の場合に宣言静的変数:条件文
2、機能
3は、C言語プログラムをコンパイルすることができ、実行は、することができないの実装を説明
し、そう++などC、Cなどのコンパイラでコンパイルした実行可能なバイナリファイル、実行するオペレーティングシステムによって認識されなければならない、あなたがCコードで書かれているコンパイラの実装を
解釈し、手段は、コンパイル済みの直接解釈されたソースファイルと読んでいない必要があると解釈プログラムを、例えば、シェル、Pythonや他の言語のために
ことができます。プラスライン上にキャスト。タイプと一致するように変換されたポインタの種類、及びビット長に注意を払うは、整数ビット長のポインタを超えることはできません。例えば:INT ADDR = 0x10000004; INT * P、これは後のどこかで使用することができる:P =(INT *)ADDR、非常に一般的であるSCMに。
4、A「B」の文字列定数。
B「\ 010」8の文字定数のASCIIコードである
整数C 68定数
DDアポストロフィ文字定数である識別子です。
一つは、のように表現、進のASCII文字である:\ 0ddは8進数(0を省略することができる)で、ここに0dd。
xhhまたはhhは2桁の16進数値であるXhh \として表現ASCII文字の16進値を、使用する別の方法。
以下のような:「A」、「\ 101 」 と「\ X41」は、同じ文字定数で表されます。
5、C / C ++です:
バイトのサポート、文字、短い、int型、長い、ブール値、 タイプ、および列挙型の整数。
これは、フロート、ダブル、文字列をサポートしていません。
Javaでは:
boolean型の
文字列型はサポートにjava7を始めています
図6は、第一、Cにおいて、データ間の演算が実行する操作の同じタイプでなければなりません。タイプが矛盾している場合は、同じタイプ----------→ハイレベルではない下位変換に変換しなければなりません。
ローからハイレベルへのデータの種類は以下のとおりです。ダブルのchar→int型→フロート→ 。変換時にローレベルからハイレベルに変換されます。
この問題では、データの種類は次のとおりです。char型、int型、float型とdouble型。
遷移ルールによれば、第二フロートベースdouble型に、すなわち完全次にダブルタイプの動作に変換にCHAR型doubl、(二重レベルより高いチャーよりため)int型に変換されなければなりません。したがって、最終的なデータタイプは二重です。
図7に示すように、使用することができないAB使用エラー、C、Dレンジではありません
8、C番号:0、falseのすべての非ゼロの値が「真」bool型は1本当であるC ++であります
9、D
10、C
ポインタp何最寄りのすべてを見
ていない括弧の場合はDであり、括弧の中身を見て
11、C
12、D
13、B
14、C
15は、C [D]は、全体ができるように可変構造は、入力と出力、入力と出力のための各メンバー変数の唯一の構造ではないことに留意されたいです。参照変数の構造体のメンバーは以下のとおりである:
構造メンバ変数名、製品名ポインタ変数- >メンバ名;(*ポインタ変数名)メンバー名...
16、D strlenを機能評価は、文字列の実際の長さで、それは「\ 0」を最初に体験し始めている、あなただけの結果が不確実、それを初期値を与えていない定義した場合、それは、AAからの最初のアドレスだっただろうそれは「\ 0」の停止に遭遇するまで、見下ろしています。
17、
18、B
19、B 1 + 3 + 5 + 7 = 16
20、B
21、C
int型* P1;
彼はint型のP1の量を指して言っ表し、そしてp自体がアドレスを保持しているint型の変数へのポインタです。
int型** p2は、
* int型、* int型の量を言うためにP2点を表し、それはint型の変数を別の変数ポイントを指します。P2と走った
変数は、アドレスを指しています。
22、C
23、D
図24は、B [D]の関数は、 '\ 0' は、ループ条件が=式(* P2 = P1 *):!あるループ、しばらくfunOサイクル、すなわち、最初のP1をいう場合も同様ですアドレスに割り当てられたコンテンツは、コンテンツが文字列終端「\ 0」であるか否かを決定その後P2によって示され、そして、それはP1およびP2同時に後方いずれかをさせ、そうでなければループ、ループの終わりです。そのため、「文字列をコピーP1 P2メモリ空間と呼ば呼ぶ」機能をされて実現します
25、第1の出力C ++
26、B
27、C
28、B
二進の数字が続く0Bを、開始、そのような0b10と2進数は、小数点2に等しい
8進数に相当進数、など010オクタル、続いて、最初に0
が続く、0xで始まりますこのような進数0x10のような16進数は、小数点以下16に等しいです
預金の大端部が正で、小端部は、預金の反対であります
29、C
30、D
その機能外部グローバル変数定義、記憶空間は、グローバルデータ領域に割り当てられ、コンパイラが自動的に初期化されます。
プロジェクト全体のために普通の目に見えるグローバル変数は、他のファイルは、使用のextern外部宣言の後に直接使用することができます。他の文書は、その(それ以外の場合は、コンパイラは、彼らが同じ変数だと思います)の同じ名前の変数を定義することができません。
静的なグローバル変数は、他のファイルにアクセスできなく、現在のファイルのみに表示され、他の変数は、同じ名前のファイルが、両方の互いに独立して定義することができます。
31、12387654910
32,10 10
33、のprintf(I、* P "[%dは】%D \ N ="); * P ++オーバー添加
34、
私は= 0; I <10; I ++
[I] = [I + 1]
35、
char *strstr(const char *s1,const char *s2)
{
int len2;
if(!(len2=strlen(s2)))//此种情况下s2不能指向空,否则strlen无法测出长度,这条语句错误
return(char*)s1;
for(;*s1;++s1)
{
if(*s1==*s2 && strncmp(s1,s2,len2)==0)
return(char*)s1;
}
return NULL;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * strshstr(const char * s1, const char *s2)
{
int len2,i;
if(!( len2=strlen(s2)) )
return (char*) s1;
for(;* s1;++s1)
{
for(i=0;i<len2;i++)
{
if(s1[i]!=s2[i])
break;
}
if(i>=len2)
return (char*)s1;
}
return NULL;
}
int main()
{
printf("%x\n",strshstr("zxcvbnm","nm") );
system("pause");
return 0;
}