數(shù)據(jù)類型,運(yùn)算符與表達(dá)式;程序結(jié)構(gòu):順序,選擇,循環(huán); 數(shù)組,函數(shù),預(yù)處理命令,指針,結(jié)構(gòu)體與共用體,文件,位運(yùn)算;
創(chuàng)新互聯(lián)建站專注于北辰企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城網(wǎng)站建設(shè)。北辰網(wǎng)站建設(shè)公司,為北辰等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
當(dāng)然,C程序的靈魂是算法。
c學(xué)起來也不是很難,主要是指針和其他的知識(shí)點(diǎn)入數(shù)組、函數(shù)等組合起來難理解一些
要想學(xué)習(xí),主要有幾點(diǎn)需要注意
一、記憶部分
1、保留字,如if,int,for等
2、常規(guī)的結(jié)構(gòu),如條件,循環(huán),switch、數(shù)組的結(jié)構(gòu),指針定義,結(jié)構(gòu)體的定義等
3、語法的構(gòu)成,如printf,scanf等一些語句的構(gòu)成
4、一些系統(tǒng)帶的函數(shù),常用的要記住,如strlen,printf等
5、一些經(jīng)典的算法,如素?cái)?shù)的計(jì)算,排序的寫法等
二、算法,語法等
這個(gè)就是解決問題的方法,沒有好的捷徑,只要慢慢的積累,數(shù)學(xué)方面的算法要加深
其實(shí),c基礎(chǔ)也就是那么一些基礎(chǔ)點(diǎn)
1、保留字
2、定義變量等,int,float等
3、條件語句if,選擇語句switch,循環(huán),do--while、for、while、goto
4、注意逗號(hào)語句,scanf和printf要熟練,知道格式(這個(gè)很基礎(chǔ),用錯(cuò)了很麻煩)
5、數(shù)組,這里注意二維數(shù)組和字符串的一些函數(shù)
6、指針,這個(gè)是難點(diǎn),也就是說很難理解,特別是和數(shù)組函數(shù)結(jié)構(gòu)體等結(jié)合使用的時(shí)候
7、結(jié)構(gòu)體共用體,這個(gè)不難,就是繁瑣而已。這里涉及到鏈表,其實(shí)不難理解,可以想象成一串珠子,next指針就是串珠子的線,結(jié)構(gòu)體就是珠子
8、文件操作,這個(gè)就是套用格式,沒難度
9、宏定義,這個(gè)沒難度,就是最簡(jiǎn)單的直接替換。注意一點(diǎn)就是在定義宏的時(shí)候多用幾個(gè)括號(hào)增加優(yōu)先級(jí)沒壞處
10、函數(shù)。這個(gè)難度不大,主要是要理解,參數(shù)是在調(diào)用的時(shí)候另外開辟內(nèi)存空間。除了數(shù)組和用定義的參數(shù)。要不然子函數(shù)改變了參數(shù)變量,調(diào)用它的地方的變量時(shí)不會(huì)改變的
其實(shí)就是這些基本的知識(shí)點(diǎn)
您好,SA團(tuán)隊(duì)給出的答案(直接給你試題看看吧,這樣比較詳細(xì))2009年9月全國(guó)計(jì)算機(jī)等級(jí)考試筆試試卷
二級(jí)公共基礎(chǔ)知識(shí)和C語言程序設(shè)計(jì)
(考試時(shí)間90分鐘,滿分100分)
一、選擇題((1)~(10)、(21)~(40)每題2分,(11)~(20)每題1分,70分)
(1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是( )。
A)循環(huán)隊(duì)列 B)帶鏈隊(duì)列
C)二叉樹 D)帶鏈棧
(2)下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是( )。
A)循環(huán)隊(duì)列 B)棧
C)隊(duì)列 D)二叉樹
(3)對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是( )。
A)隊(duì)頭指針是固定不變的
B)隊(duì)頭指針一定大于隊(duì)尾指針
C)隊(duì)頭指針一定小于隊(duì)尾指針
D)隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針
(4)算法的空間復(fù)雜度是指( )。
A)算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲(chǔ)空間
B)算法所處理的數(shù)據(jù)量
C)算法程序中的語句或指令條數(shù)
D)算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)
(5)軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是( )。
A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合
C)低內(nèi)聚高耦合D)高內(nèi)聚高耦合
(6)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是( )。
A)可封裝 B)自頂向下 C)模塊化 D)逐步求精
(7)軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下:
begin
1
該圖是( )。
A)N-S圖 B)PAD圖
C)程序流程圖D)E-R圖
(8)數(shù)據(jù)庫(kù)管理系統(tǒng)是( )。
A)操作系統(tǒng)的一部分B)在操作系統(tǒng)支持下的系統(tǒng)軟件
C)一種編譯系統(tǒng)D)一種操作系統(tǒng)
(9)在E-R圖中,用來表示實(shí)體聯(lián)系的圖形是( )。
A)橢圓形 B)矩形 C)菱形 D)三角形
(10)有三個(gè)關(guān)系R,S和T如下:
2
R S T
A
B
C
A
B
C
A
B
C
a
1
2
d
3
2
a
1
2
b
2
1
b
2
1
c
3
1
c
3
1
d
3
2
其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為( )。
A)選擇 B)投影 C)交 D)并
(11)以下敘述中正確的是( )。
A)程序設(shè)計(jì)的任務(wù)就是編寫程序代碼并上機(jī)調(diào)試
B)程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)
C)程序設(shè)計(jì)的任務(wù)就是確定所用算法
D)以上三種說法都不完整
(12)以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是( )。
A)void B)8_8 C)_0_ D)unsigned
(13)閱讀以下程序
# include stdio.h
main()
{ int case; float printF;
printf ("請(qǐng)輸入2個(gè)數(shù):");
scanf ("%d %f", case, printF);
printf ("%d %f\n", case, printF);
}
該程序在編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是( )。
A)定義語句出錯(cuò),case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符
B)定義語句出錯(cuò),printF不能用作用戶自定義標(biāo)識(shí)符
C)定義語句無錯(cuò),scanf不能作為輸入函數(shù)使用
D)定義語句無錯(cuò),printf不能輸出case的值
(14)表達(dá)式:(int)((double)9/2)-(9)%2的值是( )。
A)0 B)3 C)4 D)5
(15)若有定義語句:int x=10;,則表達(dá)式x-=x+x的值為( )。
A)-20 B)-10 C)0 D)10
(16)有以下程序
# include stdio.h
main()
{ int a=l, b=0;
printf ("%d,", b=a+b);
printf ("%d\n", a=2*b);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)0,0 B)1,0 C)3,2 D)1,2
(17)設(shè)有定義:int a=l, b=2, c=3;,以下語句中執(zhí)行效果與其它三個(gè)不同的是( )。
A)if(ab)c=a,a=b,b=c; B)if(ab){c=a,a=b,b=c;}
C)if(ab)c=a;a-b;b=c; D)if(ab){c=a;a-b;b=c;}
(18)有以下程序
# include stdio.h
3
main()
{ int c=0, k,
for(k=1; k3; k++)
switch (k)
{ default: c+=k;
case 2: c++; break;
case 4: c+=2; break;
}
printf("%d\n", c);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)3 B)5 C)7 D)9
(19)以下程序段中,與語句:k=ab?(bc ? 1 : 0) : 0;功能相同的是( )。
A)if((ab) (bc)) k=l; B)if((ab)||(bc))k=l;
else k=0; else k=0;
C)if(a=b)k=0; D)if(ab) k=l;
else if(b=c)k=1; else if(bc)k=1;
else k=0;
(20)有以下程序
# include stdio.h
main()
{ char s[]={"012xy"}; int i, n=0;
for (i=0; s[i]!=0; i++)
if(S[i]='a' s[i]='z') n++;
printf("%d\n",n);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)0 B)2 C)3 D)5
(21)有以下程序
# include stdio.h
main()
{ int n=2,k=0;
while (k++ n++2);
printf("%d %d\n",k,n);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)0 2 B)1 3 C)5 7 D)l 2
(22)有以下定義語句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是( )。
A)char a='a'; B)char a='\n'; C)char a='aa'; D)char a='\x2d';
(23)有以下程序
# include stdio.h
main()
{ char c1,c2;
c1='A'+'8'-'4';
c2='A'+'8'-'5';
printf("%c,%d\n",c1,c2);
4
}
已知字母A的ASCII碼為65,程序運(yùn)行后的輸出結(jié)果是( )。
A)E,68 B)D,69 C)E,D D)輸出無定值
(24)有以下程序
# include stdio.h
void fun (int p)
{ int d=2;
p=d++; printf("%d",p);}
main()
{ int a=1;
fun(a); printf("%d\n",a);}
程序運(yùn)行后的輸出結(jié)果是( )。
A)32 B)12 C)21 D)22
(25)以下函數(shù)findmax擬實(shí)現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能。
# define MIN -2147483647
int findmax (int x[],int n)
{ int i,max;
for(i=0;in;i++)
{ max=MIN;
if(maxx[i]) max=x[i];}
return max;
}
造成錯(cuò)誤的原因是( )。
A)定義語句int i,max;中max未賦初值
B)賦值語句max=MIN;中,不應(yīng)給max賦MIN值
C)語句if(maxX[i])max=X[i];中判斷條件設(shè)置錯(cuò)誤
D)賦值語句max=MIN;放錯(cuò)了位置
(26)有以下程序
# include stdio.h
main()
{ int m=1, n=2, *p=m, *q=n, *r;
r=p; p=q; q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2
(27)若有定義語句:int a[4][10],*p,*q[4];且0≤i4,則錯(cuò)誤的賦值是( )。
A)p=a B)q[i]=a[i] C)p=a[i] D)p=a[2][1]
(28)有以下程序
# include stdio.h
# include string.h
main()
{ char str[][20]={"One*World","One*Dream!"},*p=str[1];
printf("%d,",strlen(p));printf("%s\n",p);
}
5
程序運(yùn)行后的輸出結(jié)果是( )。
A)9,One*World B)9,One*Dream! C)10,One*Dream! D)10,One*World
(29)有以下程序
# include stdio.h
main()
{ int a[]={2, 3, 5, 4}, i;
for(i=0;i4;i++)
switch(i%2)
{ case 0 : switch(a[i]%2)
{case 0 : a[i]++;break;brcase 1 : a[i]--;br}break;
case 1 : a[i]=0;
}
for(i=0;i4;i++)printf("%d",a[i]);printf("\n");
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4
(30)有以下程序
# include stdio.h
# include string.h
main()
{ char a[10]="abcd";
printf("%d,%d\n",strlen(a),sizeof(a));
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)7,4 B)4,10 C)8,8 D)10,10
(31)下面是有關(guān)C語言字符數(shù)組的描述,其中錯(cuò)誤的是( )。
A)不可以用賦值語句給字符數(shù)組名賦字符串
B)可以用輸入語句把字符串整體輸入給字符數(shù)組
C)字符數(shù)組中的內(nèi)容不一定是字符串
D)字符數(shù)組只能存放字符串
(32)下列函數(shù)的功能是( )。
fun(char *a,char *b)
{ while((*b=*a)!='\0') {a++; b++;} }
A)將a所指字符串賦給b所指空間
B)使指針b指向a所指字符串
C)將a所指字符串和b所指字符串進(jìn)行比較
D)檢查a和b所指字符串中是否有'\0'
(33)設(shè)有以下函數(shù):
void fun(int n,char *s) {……}
則下面對(duì)函數(shù)指針的定義和賦值均正確的是( )。
A)void (*pf)(); pf=fun; B)void *pf(); pf=fun;
C)void *pr(); *pf=fun; D)void(*pf)(int,char);pf=fun;
(34)有以下程序
# include stdio.h
6
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)7 B)8 C)9 D)10
(35)有以下程序
# include stdio.h
# define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf("%d,%d\n",s,t);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A)10,64 B)10,10 C)64,10 D)64,64
(36)下面結(jié)構(gòu)體的定義語句中,錯(cuò)誤的是( )。
A)struct ord {int x; int y; int z;}; struct ord a;
B)struct ord {int x; int y; int z;} struct ord a;
C)struct ord {int x; int y; int z;}a;
D)struct {int x; int y; int z;} a;
(37)設(shè)有定義:char *c;,以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的是( )。
A)char str[]="string";c=str; B)scanf("%s",c);
C)c=getchar(); D)*c=*string";
(38)有以下程序
# include stdio.h
# include string.h
Struct A
{ int a; char b[10]; double c;};
struct A f(struct A t);
main()
{ struct A a={1001,"ZhangDa",1098.0};
a=f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
struct A f(Struct A t)
{ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;return t;}
程序運(yùn)行后的輸出結(jié)果是( )。
A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0
C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0
(39)若有以下程序段
7
int r=8;
printf("%d\n",r1);
輸出結(jié)果是( )。
A)16 B)8 C)4 D)2
(40)下列關(guān)于C語言文件的敘述中正確的是( )。
A)文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件
B)文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
C)文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
D)文件由字符序列組成,其類型只能是文本文件
二、填空題(每空2分,共30分)
(1)某二叉樹有5個(gè)度為2的結(jié)點(diǎn)以及3個(gè)度為1的結(jié)點(diǎn),則該二叉樹中共有【1】個(gè)結(jié)點(diǎn)。
(2)程序流程圖中的菱形框表示的是【2】。
(3)軟件開發(fā)過程主要分為需求分析、設(shè)計(jì)、編碼與測(cè)試四個(gè)階段,其中【3】階段產(chǎn)生“軟件需求規(guī)格說明書”。
(4)在數(shù)據(jù)庫(kù)技術(shù)中,實(shí)體集之間的聯(lián)系可以是一對(duì)一或一對(duì)多或多對(duì)多的,那么“學(xué)生”和“可選課程”的聯(lián)系為【4】。
(5)人員基本信息一般包括:身份證號(hào),姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是【5】。
(6)若有定義語句:int a=5;,則表達(dá)式:a++的值是【6】。
(7)若有語句double x=17; int y;,當(dāng)執(zhí)行y=(int)(x/5)%2;之后y的值為【7】。
(8)以下程序運(yùn)行后的輸出結(jié)果是【8】。
# include stdio.h
main()
{ int x=20;
printf("%d",0x20);
printf("%d\n",0x x20); }
(9)以下程序運(yùn)行后的輸出結(jié)果是【9】。
# include stdio.h
main()
{ int a=1,b=7;
do {
b=b/2; a+=b;
} while (b1);
printf ("%d\n",a); }
(10)有以下程序
# include stdio.h
main()
{ int f,fl,f2,i;
f1=0; f2=1;
printf("%d %d",fl,f2);
for(i=3;i=5;i++)
{ f=fl+f2; printf("%d",f);
f1=f2; f2=f;
}
printf("\n");
}
程序運(yùn)行后的輸出結(jié)果是【10】。
8
(11)有以下程序
# include stdio.h
int a=5;
void fun(int b)
{ int a=10;
a+=b; printf("%d",a);
}
main()
{ int c=20;
fun(c); a+=c; printf("%d\n",a);
}
程序運(yùn)行后的輸出結(jié)果是【11】。
(12)設(shè)有定義:
struct person
{ int ID; char name[12];}p;
請(qǐng)將scanf("%d", 【12】); 語句補(bǔ)充完整,使其能夠?yàn)榻Y(jié)構(gòu)體變量p的成員ID正確讀入數(shù)據(jù)。
(13)有以下程序
# include stdio.h
main()
{ char a[20]="How are you?",b[20];
scanf("%s",b); printf("%s %s\n",a,b);
}
程序運(yùn)行時(shí)從鍵盤輸入:How are you?回車
則輸出結(jié)果為【13】。
(14)有以下程序
# include stdio.h
typedef struct
{ int num; double s; } REC;
void funl(REC x) {x.num=23; x.s=88.5;}
main()
{ REC a={16,90.0};
funl (a);
printf("%d\n",a.num);
}
程序運(yùn)行后的輸出結(jié)果是【14】。
(15)有以下程序
# include stdio.h
fun(int x)
{ if(x/20) fun(x/2);
printf("%d", x);
}
main()
{ fun(6); printf("\n"); }
程序運(yùn)行后的輸出結(jié)果是【15】。
C語言程序設(shè)計(jì)這門課第八章函數(shù)進(jìn)階(中級(jí))的知識(shí)點(diǎn)包含【中級(jí)】第48講-參數(shù)的2種傳遞方式,【中級(jí)】第49講-編寫一個(gè)strlwr函數(shù),【中級(jí)】第50講-數(shù)組作為函數(shù)參數(shù),【中級(jí)】第51講-指針數(shù)組作為函數(shù)參數(shù),【中級(jí)】第52講-指向指針的指針作為函數(shù)參數(shù),【中級(jí)】第53講-結(jié)構(gòu)體作為函數(shù)參數(shù),【中級(jí)】第54講-函數(shù)的作用范圍,【中級(jí)】第55講-變量的作用范圍,。
第六章
指針變量的本質(zhì)是用來放地址,而一般的變量是放數(shù)值的。
int *p 中 *p和p的差別:
*p可以當(dāng)做變量來用;*的作用是取后面地址p里面的數(shù)值
p是當(dāng)作地址來使用。
*p++ 和 (*p)++的之間的差別:改錯(cuò)題目中很重要
*p++是 地址會(huì)變化。
(*p)++ 是數(shù)值會(huì)要變化。
三名主義:(考試的重點(diǎn))
數(shù)組名:表示第一個(gè)元素的地址。數(shù)組名不可以自加,
他是地址常量名。(考了很多次)
函數(shù)名:表示該函數(shù)的入口地址。
字符串常量名:表示第一個(gè)字符的地址。
第七章
1一維數(shù)組的重要概念:
對(duì)a[10]這個(gè)數(shù)組的討論。
1、a表示數(shù)組名,是第一個(gè)元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出現(xiàn)a++,或者
是a=a+2賦值的都是錯(cuò)誤的。
3、a是一維數(shù)組名,所以它是列指針,也就是
說a+1是跳一列。
對(duì)a[3][3]的討論。
1、a表示數(shù)組名,是第一個(gè)元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出現(xiàn)a++,或者
是a=a+2賦值的都是錯(cuò)誤的。
3、a是二維數(shù)組名,所以它是行指針,也就
是說a+1是跳一行。
4、a[0]、a[1]、a[2]也都是地址常量,不可以對(duì)
它進(jìn)行賦值操作,同時(shí)它們都是列指針,a[0]+1,
a[1]+1,a[2]+1都是跳一列。
5、注意a和a[0] 、a[1]、a[2]是不同的,它們的
基類型是不同的。前者是一行元素,后三者是一列元素。
二維數(shù)組做題目的技巧:
如果有a[3][3]={1,2,3,4,5,6,7,8,9}這樣的題目。
步驟一:把他們寫成:
第一列 第二列 第三列
a[0]à 1 2 3 -第一行
a[1]à 4 5 6—第二行
a[2]à 7 8 9-第三行
步驟二:這樣作題目間很簡(jiǎn)單:
*(a[0]+1)我們就知道是第一行的第一個(gè)元素往后
面跳一列,那么這里就是a[0][1]元素,所以是1。
*(a[1]+2)我們就知道是第二行的第一個(gè)元素往后面
跳二列。那么這里就是a[1][2]元素,所以是6。
一定記?。褐灰嵌S數(shù)組的題目,一定是寫成如
上的格式,再去做題目,這樣會(huì)比較簡(jiǎn)單。
數(shù)組的初始化,一維和二維的,一維可以不寫,
二維第二個(gè)一定要寫
int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。
但int a[4][]={2,3,4}非法。
二維數(shù)組中的行指針
int a[1][2];
其中a現(xiàn)在就是一個(gè)行指針,a+1跳一行數(shù)組元素。
搭配(*)p[2]指針
a[0],a[1]現(xiàn)在就是一個(gè)列指針。a[0]+1 跳一個(gè)數(shù)組
元素。搭配*p[2]指針數(shù)組使用
還有記住脫衣服法則:
a[2] 變成 *(a+2) a[2][3]變成 *(a+2)[3]再
可以變成 *(*(a+2)+3)
C語言基礎(chǔ)知識(shí)點(diǎn)集錦
【知識(shí)點(diǎn)1】C程序
C語言程序結(jié)構(gòu)有三種: 順序結(jié)構(gòu) , 循環(huán)結(jié)構(gòu)(三個(gè)循環(huán)結(jié)構(gòu)), 選擇結(jié)構(gòu)(if 和 switch)
【知識(shí)點(diǎn)2】main函數(shù)
每個(gè)C語言程序中main 函數(shù)是有且只有一個(gè)。讀程序都要從main()入口, 然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。
【知識(shí)點(diǎn)3】存儲(chǔ)形式
計(jì)算機(jī)的數(shù)據(jù)在電腦中是以二進(jìn)制的形式保存。最低的存儲(chǔ)單元是bit(位),位是由為 0 或者1構(gòu)成。 byte 是指字節(jié), 一個(gè)字節(jié) = 八個(gè)位。數(shù)據(jù)存放的位置就是它的地址。
【知識(shí)點(diǎn)4】注釋
是對(duì)程序的說明,可出現(xiàn)在程序中任意合適的地方,注釋從“/*”開始到最近一個(gè)“*/”結(jié)束,其間任何內(nèi)容都不會(huì)被計(jì)算機(jī)執(zhí)行,注釋不可以嵌套。
【知識(shí)點(diǎn)5】書寫格式
每條語句的后面必須有一個(gè)分號(hào),分號(hào)是語句的一部分。一行內(nèi)可寫多條語句,一個(gè)語句可寫在多行上。
【知識(shí)點(diǎn)6】標(biāo)識(shí)符
合法的用戶標(biāo)識(shí)符考查:
合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯(cuò)了。
并且第一個(gè)必須為字母或則是下劃線。第一個(gè)為數(shù)字就錯(cuò)了。
C語言標(biāo)識(shí)符分如下3類
(1)關(guān)鍵字。它們?cè)诔绦蛑杏泄潭ǖ暮x,不能另作他用。如int、for、switch等。
(2)預(yù)定義標(biāo)識(shí)符。預(yù)先定義并具有特定含義的標(biāo)識(shí)符。如define、include等。
(3)用戶標(biāo)識(shí)符。用戶根據(jù)需要定義的標(biāo)識(shí)符,符合命名規(guī)則且不與關(guān)鍵字相同。
關(guān)鍵字不可以作為用戶標(biāo)識(shí)符號(hào)。main define scanf printf 都不是關(guān)鍵字。迷惑你的地方If 是可以做為用戶標(biāo)識(shí)符。因?yàn)镮f 中的第一個(gè)字母大寫了,所以不是關(guān)鍵字。
【知識(shí)點(diǎn)7】實(shí)型數(shù)據(jù)
實(shí)型數(shù)據(jù)的.合法形式:小數(shù)形式和指數(shù)形式。掌握判定指數(shù)形式合法性。
2.333e-1 就是合法的,且數(shù)據(jù)是2.333×10-1。
【知識(shí)點(diǎn)8】字符
字符數(shù)據(jù)的合法形式::
1 是字符占一個(gè)字節(jié),"1"是字符串占兩個(gè)字節(jié)(含有一個(gè)結(jié)束符號(hào))。
0 的ASCII 數(shù)值表示為48,a 的ASCII 數(shù)值是97,A的ASCII 數(shù)值是65。
字符型和整數(shù)是近親:
char a = 65 ;
printf(“%c”, a); 得到的輸出結(jié)果:a
printf(“%d”, a); 得到的輸出結(jié)果:65
一般考試表示單個(gè)字符錯(cuò)誤的形式:65 "1"
字符是可以進(jìn)行算術(shù)運(yùn)算的,記?。?0-0=48
大寫字母和小寫字母轉(zhuǎn)換的方法: A+32=a 相互之間一般是相差32。
【知識(shí)點(diǎn)9】整型數(shù)據(jù)
整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4 個(gè)字節(jié):
考試時(shí)候一般會(huì)說,在16 位編譯系統(tǒng),或者是32 位系統(tǒng)。碰到這種情況,不要去管,
一樣做題。掌握整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4 個(gè)字節(jié)就可以了。
【知識(shí)點(diǎn)10】轉(zhuǎn)義字符
轉(zhuǎn)義字符的考查:
在程序中 int a = 0x6d,是把一個(gè)十六進(jìn)制的數(shù)給變量a 注意這里的0x 必須存在。
在程序中 int a = 06d, 是一個(gè)八進(jìn)制的形式。
在轉(zhuǎn)義字符中, ’x6d’ 才是合法的,0 不能寫,并且x 是小寫。
‘141’ 是合法的, 0 是不能寫的。
‘108’是非法的,因?yàn)椴豢梢猿霈F(xiàn)8。
【知識(shí)點(diǎn)11】算術(shù)運(yùn)算
算術(shù)運(yùn)算符一共有+、—、*、/、%這五個(gè)。%符號(hào)兩邊要求是整數(shù)。不是整數(shù)就錯(cuò)了。
三種取整丟小數(shù)的情況:不是四舍五入是舍掉小數(shù)部分。
1、int a =1.6;
2、(int)a;
3、1/2; 3/2;
【知識(shí)點(diǎn)12】強(qiáng)制類型轉(zhuǎn)換
將一個(gè)運(yùn)算對(duì)象轉(zhuǎn)換成指定類型,格式為(類型名)表達(dá)式
一定是 (int)a 不是 int(a),注意類型上一定有括號(hào)的。
注意(int)(a+b) 和(int)a+b 的區(qū)別。前是把a(bǔ)+b 轉(zhuǎn)型,后是把a(bǔ) 轉(zhuǎn)型再加b。
【知識(shí)點(diǎn)13】賦值
是表達(dá)式就一定有數(shù)值。
賦值表達(dá)式:表達(dá)式數(shù)值是最左邊的數(shù)值,a=b=5;該表達(dá)式為5,常量不可以賦值。
復(fù)合賦值運(yùn)算符:注意:a*=m+2 是 a=a*(m+2)
自加、自減表達(dá)式:假設(shè)a=5,++a(表達(dá)式的值為6), a++(表達(dá)式的值為5);
j=a++;等價(jià)于j=a;a=a+1; 而j=++a;等價(jià)于a=a+1;j=a;。
考試口訣:++在前先加后用,++在后先用后加。
【知識(shí)點(diǎn)14】逗號(hào)運(yùn)算
逗號(hào)表達(dá)式:優(yōu)先級(jí)別最低; 表達(dá)式的數(shù)值逗號(hào)最右邊的那個(gè)表達(dá)式的數(shù)值。
(2,3,4)的表達(dá)式的數(shù)值就是4。
【知識(shí)點(diǎn)15】數(shù)制轉(zhuǎn)換
一定要記住二進(jìn)制 如何轉(zhuǎn)換成十進(jìn)制。
八進(jìn)制是沒有8 的,逢8 進(jìn)1,018 的數(shù)值是非法的。