c語言二級上機題庫
㈠ 2011年9月計算機二級c語言 機試題庫,不要去年的,也不要上次的,要最新的,謝謝~@~@~
試題一
一、單項選擇題
1.C語言程序的執行,總是起始於【 】。
A) 程序中的第一條可執行語句
B) 程序中的第一個函數
C) main函數
D) 包含文件中的第一個函數
分析:在一個C語言源程序中,無論main函數書寫在程序的前部,還是後部,程序的執行總是從main函數開始,並且在main函數中結束。
本題正確答案為C。
2.下列說法中正確的是【 】。
A) C程序書寫時,不區分大小寫字母
B) C程序書寫時,一行只能寫一個語句
C) C程序書寫時,一個語句可分成幾行書寫
D) C程序書寫時每行必須有行號
分析:C語言嚴格區分大小寫字母,如"A1"和"a1"被認為是兩個不同的標識符,C程序的書寫非常靈活,既可以一行多句,又可以一句多行,且每行不加行號。
本題正確答案為C。
3.下面對C語言特點,不正確描述的是【 】。
A) C語言兼有高級語言和低級語言的雙重特點,執行效率高
B) C語言既可以用來編寫應用程序,又可以用來編寫系統軟體
C) C語言的可移植性較差
D) C語言是一種結構式模塊化程序設計語言
分析:C語言是介於匯編語言和高級語言之間的一種語言,由於它可以直接訪問物理地址,對硬體操作,所以C語言既可以編寫應用程序,又可以開發系統軟體,而且C程序可移植性好於匯編語言,程序清晰具有模塊化的特點。
本題正確答案為C。
4.C語言源程序的最小單位是【 】。
A) 程序行B) 語句C) 函數D) 字元
分析:程序行、語句、函數都是由字元構成的,字元是C語言的最小單位。
本題正確答案為D。
5.以下四項中屬於C語言關鍵字的是【 】。
A) CHAR B) define C) unsigned D) return
分析:C語言有32個關鍵字(或稱保留字),它們都有特定的含意,並且由小寫字母組成,所以選項A是錯的,選項B不是保留字,選項D是return的錯誤拼寫。
本題正確答案為C。
6.十進制數2403轉換成十六進制數為【 】。
A) 963 B) 369 C) 953 D) 359
分析:十進制數化成十六進制數的方法是:不斷除以16,商0為止,倒取余數。
本題正確答案為A。
7.二進制數00110101轉換成八進制數是【 】。
A) 055 B) 065 C) 056 D) 152
分析:二進制數化成八進制數的方法是:從右向左劃分,將每3位二進制數書寫成1位八進制數。
本題正確答案為B。
8.將二進制數1011011.011轉換成十進制數是【 】。
A) 91.75 B) 91.375 C) 91.125 D) 91.25
分析:二進制數化成十進制數的方法是:各數字乘以權重再相加,題中整數部分為:(1011011)2=1×26+1×24+1×23+1×21+1×20=64+16+8+2+1=91,小數部分為:(0.011)2=0×2-1+1×2-2+1×2-3=0.25+0.125=0.375,再將兩者合在一起得91.375。
本題正確答案為B。
9.計算機內部運算使用的數是【 】。
A) 十進制數 B) 十六進制數 C) 二進制數 D) 八進制數
分析:在實際生活中找不到具有十個穩定狀態的物理元件,而具有兩種穩定狀態的元件到處可見,如一個開關具有通電和斷電兩個穩定狀態,計算機內部的元件正是以"1"代表通電,以"0"代表斷電的,所以計算機內部運算使用的數是二進制數,至於八進制數和十六進制數是對二進制數的人為縮寫。
本題正確答案為C。
10.一個字長的二進制位數是【 】。
A) 2個BYTE,即16個bit B) 3個BYTE,即24個bit C) 4個BYTE,即32個bit D) 隨計算機系統不同而不同
分析:一個二進制位也稱做1bit,八個二進制位稱做1個BYTE,即所說的一個位元組,BYTE和bit有固定的換算關系,但是計算機中的字長WORD和位元組BYTE沒有固定的換算關系,字長WORD是隨CPU型號而異的。
本題正確答案為D。
11.在C語言系統中,假設int類型數據佔2個位元組,則double、long、unsigned int、char類型數據所佔位元組數分別多少【 】。
A) 8,2,4,1 B) 2,8,4,1 C) 4,2,8,1 D) 8,4,2,1
分析:由上題知CPU字長決定了分配給各種類型變數多少個位元組,當int類型佔2個位元組時,double、long、unsigned int、char型所佔的位元組分別為8、4、2、1個位元組。
本題正確答案為D。
12.下面程序段執行結果是【 】。
int i=5,k;
k=(++i)+(++i)+(i++);
printf("%d,%d",k,i);
A) 24,8 B) 21,8 C) 21,7 D) 24,7
分析:k=(++i)+(++i)+(i++)表達式中,"++"號在i前面的有兩個,所以在計算k之前,i要先增兩次,即i變為7,然後再將3個7相加,使k得21,表達式中"++"號在i後面的有1個,所以得出k的值以後i又增1次變為8。
本題正確答案為B。
13.下面程序段執行結果是【 】。
int i=5;
printf("%d,%d,%d", i,(++i)+(++i)+(i++),i);
A) 8,20,5 B) 8,21,5 C) 5,20,8 D) 5,21,8
分析:此題不能看作將12題中的k=(++i)+(++i)+(i++)代入printf函數,因為函數處理參數的順序是從右向左,所以(++i)+(++i)+(i++)表達式的值不再是求7+7+7,而是為8+7+5=20。
本題正確答案為A。
14.下面程序段的輸出結果是【 】。
int i=32769;
printf("%d\\n",i);
A) 32769 B) 32767 C) -32767 D) 輸出不是確定的數
分析:int型變數表示數據的范圍是-32768~+32767,賦值時比-32768小或比+32767大,都會發生溢出,溢出後存放的數值是:正向溢出時,為該數減去模65536,負向溢出時,為該數加上模65536,所以本題輸出為32769-65536=-32767。
本題正確答案為C。
15.下面的程序運行後輸出為【 】。
main( )
{ int a=-32769;
ptintf("%8U\\n",a);
}
A) 32769 B) %8U C) 32767 D) -32767
分析:格式字元必須小寫,題中的"%8U"不會當作格式控制符,而是原樣輸出,變數a將沒有對應的格式說明,也不會送出。
本題正確答案為B。
二、填空題
1.若以下程序的輸出結果是13,請填空。
main( )
{ int x=016;
printf("%d\\n",【1】); }
分析:在C語言中以0開頭的數字是八進制數,016相當於十進制數14,執行printf語句時,輸出項應為x的值減1。
本題正確答案為 【1】 --x或x-=1。
2.下面程序段的輸出結果是【2】。
int k=10;
float a=3.5,b=6.7,c;
c=a+k%3*(int)(a+b)%2/4;
分析:本題考查運算符的優先順序概念,式中要先算(a+b)的值,再算強制類型變換,*、/、%是同級的要從左到右計算,最後算加法和賦值。
本題正確答案為【2】 3.500000
3.若執行下面程序段後的輸出為:3,4,5,請填空。
int a,b=3,c=5;
a=b<c?【3】:c++;
printf("%d,%d,%d",a,b,c);
分析:本題考查條件運算符和增量運算符的概念,題中b<C為真,應取B++的值給A,因B的值是先用後增1,所以A為3,題中的C++沒有執行到,C保持原值。
本題正確答案為 【3】 b++。
4.C語言中的運算符,優先順序最低的是【4】。
分析:與其它高級語言相比,在C語言中賦值號並不是優先順序最低的,C語言中優先順序最低的運算符是逗號運算符。
本題正確答案為 【4】 逗號運算符。
5.若下面程序的輸出結果是4,請填空。
main( )
{ int i,j,k;
k=0 ; i=j=-2 ;
k+=-i--【5】;
printf("%d\\n",k);
}
分析在C語言中當3個加號或3個減號連在一起時,中間的符號歸屬左邊的變數,即-i---j相當於-(i--)-j。
本題正確答案為 【5】-j 。</c?【3】:c++;
試題二
一、單項選擇題
1.下面敘述不正確的是【 】。
A) C語句末尾必須有分號
B) C語言中無論是整數還是實數都能准確的表示
C) 運算符「%」只能用於整數運算
D) 乘除運算符優先順序高於加減運算符
2.以下敘述正確的是【 】。
A) C語句前面必須有行號
B) C程序中每行只能寫一條語句
C) C語言本身沒有輸入輸出語句
D) 注釋必須跟在一行語句的後面
3.復合語句應用【 】括起來。
A) 小括弧 B) 方括弧 C) 大括弧 D) 尖括弧
4.將二進制數101101101111轉換成十六進制數是【 】。
A) 5557 B) B6F C) 7555 D) F6B
5.將十進制數0.625轉換成二進制數是【 】。
A) 0.111 B) 0.101 C) 0.5 D) 0.A
6.C語言語句一行寫不下時,可以【 】。
A) 用逗號換行 B) 用分號換行 C) 用回車換行 D) 在任意一空格處換行
7.C語言允許將一條語句寫在兩行上,下列語句不正確是【 】。
A) int a, B) int a C) int D) int a,b
b; ,b; a,b; ;
8.下面程序的輸出是【 】。(「□」表示一個空格)
int a=3366;
printf("|%-08d|",a);
A) |-0003366| B) |00003366| C) |3366□□□□| D) 輸出格式非法
9.若有說明語句:int a; float b;,以下輸入語句正確的是【 】。
A) scanf("%f%f",&a,&b);
B) scanf("%f%d",&a,&b);
C) scanf("%d,%f",&a,&b);
D) scanf("%6.2f%6.2f",&a,&b);
10.以下程序的輸出結果是【 】。
main( )
{ int x=11,y=11;
printf("%d%d\\n",x--,--y);
}
A) 11,11 B) 10,10 C) 10,11 D) 11,10
11.將八進制數307轉換成二進制數是【 】。
A) 100110011 B) 11000111 C) 1100000111 D) 111000011
12.執行下面程序段,給x、y賦值時,不能作為數據分隔符的是【 】。
int x,y;
scanf("%d%d",&x,&y);
A) 空格 B) Tab鍵 C) 回車 D) 逗號
13.下面合法的語句是【 】。
A) int a=8,b;
b=++a++;
printf("%d,%d",a,b++);
B) int a;
printf("\\"%d\\"",scanf("%d",&a));
C) char a;
scanf("%c",&a);
char b=scanf("b=%c",&b);
D) char c=getchar( );
putchar((int)c);
14.執行下面程序時,欲將25和2.5分別賦給a和b,正確的輸入方法是【 】。
int a;
float b;
scanf("a=%d,b=%f",&a,&b);
A) 25□2.5
B) 25,2.5
C) a=25,b=5.5
D) a=25□b=2.5
15.與數學公式a•b x•y不等價的語句是【 】。
A) a*b/x*y
B) a*b/x/y
C) a*b/(x*y)
D) a/(x*y)*b
二、填空題
1.表達式5%(-3)的值是【1】,表達式-5%(-3)的值是【2】。
2.在C語言中,格式輸入庫函數為【3】,格式輸出庫函數為【4】。
3.下面程序的輸出結果是【5】。
int x=-32769;
printf("%d",x);
4.執行下列程序的輸出結果是【6】。
main( )
{
float a=1,b;
b=++a*++a;
printf("%f\\n",b);
}
5.執行下列程序的輸出結果是【7】。
main( )
{
int x=5,y;
y=++x*++x;
printf("y=%d\\n",y);
}
參 考 答 案
一、選擇題(1)B (2)C (3)C (4)B (5)B (6)D (7)D (8)C (9)C (10)D (11)B (12)D (13)D (14)C (15)A
二、填空題【1】 2 【2】 -2 【3】 scanf 【4】 printf 【5】 32767 【6】 6.000000 【7】 49
試題三
一、單項選擇題
1.下面不屬於C語言的數據類型是【 】。
A) 整型 B) 實型 C) 邏輯型 D) 雙精度實型
分析:和其它高級語言相比,C語言中沒有邏輯型數據,也沒有邏輯型變數。
本題正確答案為C。
2.C語言中,下列屬於構造類型的是【 】。
A) 整型 B) 實型 C) 指針類型 D) 結構體類型
分析:C語言中構造類型的數據有三種:數組、結構體和共用體,數組是同類型數據的集合,結構體是不同類型的數據集合。
本題正確答案為D。
3.下列字元串不符合標識符規定的是【 】。
A) SUM B) sum C) 3cd D) end
分析:標識符規定只能由26個英文字母(大小寫均可),數字0~9和下劃線組成,且不能以數字開頭,題中的3cd不符合規定。
本題正確答案為C。
4.下面能正確表示八進制數的是【 】。
A) 0x16 B) 029 C) -114 D) 033
分析:選項A)以0x開頭是十六進制數,選項B)雖然是0開頭,但出現了數字9,選項C)是十進制數。
本題正確答案為D。
5.下面四個選項中,均是合法實數的選項是【 】。
A) 2e-4.2 B)-0.50 C) 0.2e-.5 D)-e5
分析:實數有兩種表示形式:小數形式和指數形式,小數形式必須有小數點,指數形式中,字母e之前必須有數字,e之後必須是整數。選項A)中的"2e-4.2",選項C)中的"0.2e-.5",選項D)中的"-e5"均是不合法的。
本題正確答案為B。
6.C語言中,字元型數據在內存中存儲形式是【 】。
A) 原碼 B) 反碼 C) 補碼 D) ASCII碼
分析:C語言中int型數據是以補碼形式存放的,字元型數據是以ASCII碼形式存放的。
本題正確答案為D。
7.下列正確的字元型常量是【 】。
A) "a" B) ′\\\\′ C) "\\r" D) 277
分析:字元常量的定義是用單引號括起來的一個字元,A和C的定界符不對,D超過了char型數據的表示範圍,′\\\\′是轉義字元。
本題正確答案為B。
8.若有說明語句char ch1=′\\x41′;則ch1【 】。
A) 包含4個字元 B) 包含3個字元 C) 包含2個字元 D) 包含1個字元
分析:"\\x41"中的"41"是十六進制數,即十進制的65,題中ch1存放的65是字母"A"的ASCII碼。
本題正確答案為D。
9.下列程序段輸出的字元串長度為【 】。
printf("\\\\aaa\\′ccc\\bddd\\"");
A) 11 B) 12 C) 13 D) 17
分析:\\\\、\\′、\\b和\\"為轉義字元,程序輸出結果為:\\aaa′ccddd"。
本題正確答案為A。
10.下列運算符中,要求運算對象必須是整數的是【 】。
A) / B) * C) % D) !
分析:題目中"/"、"*"、"!"的運算對象既可以整數,也可以是實數,只有取余數運算符"%"要求運算對象必須是整數。
本題正確答案為C。
11.下面合法的賦值語句是【 】。
A) x+y=2002; B) ch="green"; C) x=(a+b)++; D) x=y=0316;
分析:賦值號左端不能為表達式,選項A)是錯的;賦值號不能將字元串賦給某個變數,選項B)也是錯的;增量運算符「++」不能用於表達式,選項C)也是錯的。
本題正確答案為D。
12.已知a為int型,b為double型,c為float型,d為char型,則表達式a+b*c-d/a結果的類型為【 】。
A) int 型 B) float型 C) double型 D) char型
分析:不同類型數據混合運算的轉換規律是:運算前float型數據會自動轉換為double型,char型數據會自動轉換為int型。運算時int型數據和double型數據要先化為相同類型,即double型,運算結果也為double型。
本題正確答案為C。
13.執行以下程序段後的輸出結果是【 】。
int x=0xcde;
printf("M,%4o,%4x\\n",x,x,x);
A) 3294,6336,cde B) 3294,6336,xcde C) 3294,06336,0xcde D) 3294,6336,0cde
分析:0xcde是十六進制數,寫成二進制數形式為:1100 1101 1110,按八進制送出時,是從右向左3位二進制數寫成1位,按十六進制形式送出時,是從右向左4位二進制數寫成1位。
本題正確答案為A。
14.下面的程序運行後輸出為【 】。
#include
#include
main( )
{ int a,b;
float c;
b=5;c=6;c=b+7;b=c+1;
a=sqrt((double)b+c);
printf("%d,%f,%d",a+6,c,b);
}
A) 11.000000,12.000000,13.000000
B) 11.000000,12.000000,13
C) 11.0000000,12,13
D) 11,12.000000,13
分析:C語言允許將一種類型的數據賦給另一種類型的變數,但是變數的類型並不會因為賦值而發生改變,如本題中將b+7,即12賦給float型變數c,c值應為12.000000而不是整數12,同樣a=sqrt((double)b+c),賦值號右邊是雙精度數,但由於a是整形變數,故a的值為5。
本題正確答案為D。
15.執行以下程序後x的值為【 】。
unsigned int x=65535;
printf("%d\\n",x);
A) 65535 B) 1 C) 有錯誤 D) -1
分析:題中將x定義成無符號整數,並且已初始化為:1111111111111111,若按%d格式輸出,則最高位的1被當成了符號,1111111111111111成了負數的補碼,輸出結果為-1。
本題正確答案為D。
二、填空題
1.下面程序段的功能是輸出大寫字母對應的小寫字母的ASCII碼,請填空。
char ch;
scanf("%c",&ch);
ch=(ch>=′A′&&ch<=′Z′)?(【1】):ch
printf("【2】\\n",ch);
分析:題目中條件運算為判斷輸入字母是否為大寫,當ch>=′A′&&ch<=′Z′為真時,將其轉換成對應的小寫字母,需ASCII碼值加上32,已知題意是將大寫字母對應的小寫字母ASCII值輸出,所以printf語句中的輸出格式應為十進制格式。
本題正確答案為 【1】 ch+32, 【2】 %d。
2.下面程序段的執行結果是x=【3】,y=【4】。
inta=3,b=5,x,y;
x=a+1,b+6;
y=(a+1,b+6);
printf("x=%d,y=%d",x,y);
分析:此題考查逗號表達式的概念,因逗號運算符的優先順序比賦值號還低,所以執行x=a+1,b+6時,x得到的是a+1的值。
本題正確答案為 【3】 4, 【4】 11。
3.下面程序執行後k的值為【5】。
int a=1,b=2,c=3,d=4,k;
k=a>b?a:c>d?c:d
分析:因題中a>b的值為假,故求解表達式k=a>b?a:c>d?c:d相當於求k=a>b?a:(c>d?c:d)。
本題正確答案為 【5】 4。
4.已知:int a=5;則執行a+=a-=a*a;語句後,a的值為【6】。
分析:a+=a-=a*a的運算順序是從右向左,相當於求a+=(a-=a*a),其中小括弧內的運算得a=5-5*5即a=-20,下一步再求a+=a,即a=a+a,將-20代入得a=-40。
本題正確答案為 【6】 -40。
5.下面程序的運行結果是x=【7】,y=【8】。
main( )
{ float x=4.9;int y;
y=(int)x;
printf("x=%f,y=%d",x,y); }
分析:強制類型變換並不改變x的原值,x仍為4.9,而變換得到的是中間結果,此題將中間結果賦給了y,另外注意是舍棄小數部分,而不是四捨五入。
本題正確答案為 【7】 4.900000 【8】 4。
試題四
一、單項選擇題
1.對if語句中表達式的類型,下面正確的描述是【 】。
A) 必須是關系表達式
B) 必須是關系表達式或邏輯表達式
C) 必須是關系表達式或算術表達式
D) 可以是任意表達式
分析:C語言中if語句的表達式可以是任意類型,只要表達式的值非0就算作真,是0就作為假。
本題正確答案為D。
2.多重if_else語句嵌套使用時,尋找與else配套的if方法是【 】。
A) 縮排位置相同的if
B) 其上最近的if
C) 下面最近的if
D) 同行上的if
分析:多重if_else嵌套時,else總是與它上面最近的if配對。
本題正確答案為B。
3.以下錯誤的if語句是【 】。
A) if(x>y) z=x;
B) if(x==y) z=0;
C) if(x!=y) printf("%d",x) else printf("%d",y);
D) if(x
分析:選項C)中的第一個printf語句後面丟了分號,所以是錯誤的。
本題正確答案為C。
4.以下判斷兩個字元串相等的正確方法是【 】。
A) if(str1=str2)
B) if(str1==str2)
C) if(strcpy(str1,str2)=0)
D) if(strcmp(str1,str2)==0)
分析:選項A)中用了賦值號,顯然是錯誤的,選項C)中的字元串拷貝函數strcpy不能比較大小,選項B)中的"=="號也不具有串比較功能,比較兩個字元串的大小應用字元串比較函數。
本題正確答案為D。
5.執行下面程序的正確結果是【 】。
main( )
{ float a=1.9;
switch(a)
{ case 0: printf("0000");
case 1: printf("1111");
case 2: printf("2222");
}
printf("%f",a);
}
A) 1.900000
B) 111122221.900000
C) 22221.900000
D) 0000111122221.900000
分析:題中定義了單精度實數a,所以最下面的printf語句輸出有6位小數,另外C語言在判斷switch表達式的值時,是按整型數據處理的(但不4舍5入),所以程序是從case 1處開始執行的,因沒有break語句,接著會執行case 2。
本題正確答案為B。
6.以下程序的輸出為【 】。
main( )
{ int a=20,b=30,c=40;
if(a>b) a=b,
b=c;c=a;
printf("a=%d,b=%d,c=%d",a,b,c);
希望對你有所幫助!!! 也希望能賞點分!!!謝謝
㈡ 二級C語言上機考試有題庫嘛
上機考試試題
1、填空題
下列給定程序中,函數fun()的作用是:將字元串tt中的大寫字母都改為對應的小寫字母,其他字元不變。例如,若輸入「Ab,cD」,則輸出「ab,cd」。
試題程序:
# include <stdio.h>
# include <stdio.h>
# include <conio.h>
Char【1】fun(char tt[])
{
int i;
for (i=0;tt[i];i++)
{
if ((tt[i]>=』A』)&&(tt[i]<=【2】))
tt[i]+=32;
}
return(tt);
}
main()
{
char tt[81];
printf (「\nPlease enter a string:」);
gets (tt);
printf (「\nThe result string is: \n%s」,fun(【3】));
}
2、改錯題
下列給定程序中,函數fun()的功能是逐個比較a,b兩個字元串對應位置中的字元,把ASCII值小或相等的字元依次存放到c數組中,形成一個新的字元串。
例如:a中的字元串為fshADfg,b中的字元為sdAEdi,則c中的字元串應為fdAADf。
請改正程序中的錯誤,使它能得到正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
# include <stdio.h>
# include <string.h>
void fun(char *p,char *q,char *c)
{ int k=0;
while(*p‖*q)
/***************found******************/
{ if (*p<=*q)
c[k]=*q;
else c[k]=*p;
if (*p) p++;
if(*q) q++;
/***************found*******************/
k++
}
}
main()
( char a[10]=」fshADfg」,b[10]=」sdAEdi」,c[80]={『\0』};
fun(a,b,c);
printf(「The string a:」); puts(a);
printf(「The string b:」); puts(b);
printf(「The string c:」); puts(c);
}
3、編程題
請編寫函數fun,其功能是將兩個兩位數的正整數a、b合並形成一個整數放在c中。合並的方式是:將a數的十位和個位數依次放在c數的十位和個位數依次放在c數的百位和千位上。
例如,當a=16,b=35,調用該函數後,c=5361。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括弧中填入所編寫的若干語名。
試題程序:
# include<stdio.h>
void fun(int a,int b,long *c)
{
}
main()
{
int a,b;
long c;
clrscr();
printf(「Input a,b;」);
scanf(「%d%d」,&a&b);
fun(a,b,&c);
printf(「The result is:%d\n」,c);
}
㈢ c語言計算機二級考試選擇題如圖
全國計算機二級考試試題題庫(附答案)
下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在答題
卡相應位置上塗黑,答在試卷上不得分。
(1) 應用軟體是指
A) 所有能夠使用的軟體 B) 能被各應用單位共同使用的某種軟體
C) 所有微機上都應使用的基本軟體 D) 專門為某一應用目的而編制的軟體
(2) 下列述敘中錯誤的是
A) 計算機要經常使用不要長期閑置不用
B) 為了延長計算機的壽命,應避免頻繁開關計算機
C) 在計算機附近應避免磁場干擾
D) 計算機用幾小時後,應關機一會兒再用
(3) 下列字元中,ASCII碼值最小的是
A) A B) a C) Z D) x
(4) 用晶體管作為電子器件製成的計算機屬於
A) 第一代 B) 第二代 C) 第三代 D) 第四代
(5) 下列各不同進制的四個無符號數中,最小的數是
A) ()2 B) (37)8 C) (75)10 D) (2A)16
(6) 二進制數轉換成十六進制數是
A) B) C) D)
(7) 下列各無符號十進制數中,能用八位二進製表示的是
A) 296 B) 333 C) 256 D) 199
(8) 計算機的軟體系統可分類為
A) 程序與數據 B) 系統軟體與應用軟體
D) 操作系統與語言處理程序 D) 程序、數據與文檔
(9) 486機中的CPU同時能處理的二進制位數為
A) 8 B) 16 C) 32 D) 64
(10) 在使用計算機的過程中,需要重新啟動DOS,則要
A) 按Ctrl+Break鍵 B) 按^C鍵 C) 按Ctrl+Alt+Del鍵 D) 按^H鍵
(11) 現要從軟盤啟動DOS(軟盤中已存有DOS系統),設有如下一些操作:①打開計算機
電源;②將該軟盤插入A驅動器;③關好A驅動器門。則冷啟動的操作順序應為
A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①
(12) 設當前盤中某一文件路徑為\A\C\B\,當前目錄為\A。下列命令中錯誤的是
A) CD.. B) RD \A\C\B
C) TYPE \A\C\B\ D) TYPE C\B\
(13) 設當前盤中的根目錄下有一子目錄AB,在子目錄AB下有一文件。現要查看文件
的內容,應使用命令
A) TYPE \AB B) TYPE \AB\
C) TYPE \ D) DIR \AB\
(14) 自動批處理文件必須放在
A) C盤根目錄中 B) A盤根目錄中
C) 啟動盤的任一個目錄中 D) 啟動盤的根目錄中
(15) 設當前盤當前目錄為C:\USER\XY\P,且當前盤當前目錄為空,則下列命令中能正
確執行的是
A) RD C:\USER\XY\P B) RD USER\XY\P
C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y
(16) 下列DOS命令中,合法的是
A) DISKCOMP B) TYPE >>
C) COMP A: B: D) COMP A: A:
(17) 設當前盤為C盤,所用的所有軟盤已格式化,且容量相同,則下列DOS命令中錯
誤的是
A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:
(18) 下列DOS命令中錯誤的是
A) TYPE >PRN B) TYPE PRN
C) COPY *.TXT PRN D) COPY CON PRN
(19) 下列四組DOS命令中,互相等價的一組是
A) COPY A:*.* B:與DISKCOPY A: B:
B) COPY +與TYPE >>
C) COPY + 與COPY +
D) TYPE *.FOR>CON與COPY *.FOR CON
(20) 設C盤目錄結構如下:
且C盤根目錄下文件的內容為
CD FORTRAN
CD \TC
如果在A驅動器中插入一張根目錄中只有擴展名為.C的若干文件(即A盤中無DOS系統
文件)的軟碟片,則由C盤啟動DOS系統後,第一次鍵入下列命令中,正確的是
A) COPY A:\*.C B) COPY A:\*.C TC
C) COPY A:\*.C FORTRAN D) CD USER
(21) C語言提供的合法的數據類型關鍵字是
A) Double B) short C) integer D) Char
(22) 在C語言中,合法的長整型常數是
A) 0L B) 4962710 C) D)
(23) 表達式:10!=9的值是
A) true B) 非零值 C) 0 D) 1
(24) 合法的C語言中,合法的長整型常數是
A) '\t' B) "A" C) 65 D) A
(25) 若有說明和語句:
int a=5;
a++;
此處表達式a++的值是
A) 7 B) 6 C) 5 D) 4
(26) 在下列選項中,不正確的賦值語句是
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
(27) 若有說明:int i,j=7, *p=&i;,則與i=j;等價的語句是
A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;
(28) 不能把字元串:Hello!賦給數組b的語句是
A) char b[10]={'H','e','l','l','o','!'};
B) char b[10];b="Hello!";
C) char b[10];strcpy(b,"Hello!");
D) char b[10]="Hello!";
(29) 若有以下說明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
則數值為4的表達式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
(30) 若有以下說明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則數值為6的表達式是
A) *p+6 B) *(p+6) C) *p+=5 D) p+5
(31) 若有以下說明:
int w[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
則數值為4的表達式是
A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]
(32) 若程序中有下面的說明和定義
struct abc
{int x;char y;}
struct abc s1,s2;
則會發生的情況是
A) 編譯進錯 B) 程序將順利編譯`連接`執行
C) 能順利通過編譯`連接`但不能執行 D) 能順利通過編譯`但連接出錯
(33) 能正確表示a≥10或a≤0的關系表達式是
A)a>=10 or a<=0 B)a>=10│a<=0
C)a>=10││a<=0 D)a>=10 ││a<=0
(34) 下面程序的輸出是
main()
{ int x=3,y=6,a=0;
while(x++!=(y+=o1))
{ a+o=1;
if(y
#include
main()
{ char ss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(35) 下面程序的輸出是
main()
{ char *a="";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ default:v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++; }
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1
C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8
(36) 下面程序的輸出是
main()
{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b
(37) 若有以下程序段,w和k都是整型變數:
┆
w=k;
LB: if(w==0) go to LE;
w--;
printf("*");
goto LB;
LE: ┆
則不能與上面程序段等價的循環語句是
A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");
C)w=k; D)w=k;
while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);
(38) 若有說明,double *p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是
A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);
(39) 當執行下面程序且輸入:ABC時,輸出的結果是
#include
#include
main()
{ char ss[10]="12345";
gets(ss);printf("%s\n",ss); }
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(40) 若有以下的說明和語句:
main()
{int t[3][2], *pt[3],k;
fpr(k=o; k<3;k++)pt[k]=t[k];
}
則以一選項中能正確表示t數組元素地址的表達式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
(41) 下面程序輸出數組中的最大值,由s指針指向該元素.
main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
flr(p=a, s=a; p-a<10; p++)
if(---?---)s=p;
printf("The max:%d",*s):
}
則在if語句中的判斷表達式應該是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(42) 下面程序的輸出是
#include
main()
{ char*a="abcdefgh";
fun(a);puts(a); }
fun (char * s)
{ int x=0,y;char c;
for(y=strlen(s)-1;x
A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba
(43) 若有以下函數調用語句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數調用語句
中實參的個數是
A)3 B)4 C)5 D)6
(44) 下面程序的輸出是
main()
{ int t=1; fun(fun(t));}
fun(int h)
{ static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++) a[k]+=a[k]-h;
for(k=1;k<3;k++) printf("%d",a[k]);
printf("\n"); return(a[h]);}
A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,
1,5,9, 1,3,5, 0,4,8, -1,3,7,
(45) C語言中,函數的隱含存儲類別是
A)auto B)static C)extern D)無存儲類別
(46) 下面程序的輸出是
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }
㈣ 二級c公共基礎題庫
c語言總復習資料
一 c語言的基本組成單位——函數。1.main();2庫函數;3.自定義函數。Abc();
二 函數的組成:1.函數的首部,函數的第一行語句(包括函數的返回值類型、函數名、函數參數類型及函數參數名)。()不可省略,例如:void main() 2.函數體,包括函數的聲明部分(聲明在該程序中所要用到的函數)、定義部分(定義函數可能要用到的變數)、執行部分(用於實現函數的功能)。
三 函數必不可少的分號。
四 輸入輸出所使用的函數:scanf、getchar、gets、printf、putchar、puts等。
五 注釋:不能嵌套。習題94頁18題。
六 大小寫區分:printf與Printf之不一樣。
七 C語言上機過程:編輯(.c)——>編譯(.obj)——>連接(.exe)——>運行得結果。
八 C程序執行是從main()函數開始,到main函數結束處結束。
九 進制轉換:著重掌握十、八、十六進制及相互轉換,原補碼(位運算中要用到)。
十 用戶自定義標識符:1.字母、數字、下劃線。2第一個字母不能為數字。3.不能與c語言所定義的關鍵字相同,但可以與預定義標識符同。
十一 常量:
1整形常量 十進制、八進制(以0開頭)、十六進制(以0x開頭)後兩種無負數。
2實型常量 2.78(小數點兩邊至少有一邊要有數字)5.48e-3(e前必有數字,e後必為整數)
3字元型常量 a.一般字元』a』 ;b.轉義字元:一般轉義字元、八\十六進制轉義字元。』\n』,』\\』,』\t』,』\」』,』\64』,』\82』,』\x42』,』\xff』,』a12』.
4字元串常量 「a」 vs 』a』
十二 變數 1.必須要先定義後使用;2變數三要素 變數類型 變數名 變數值
例1:下面不是c語言整形常量的是 A. 02 B. 0 C.038 D.0xAL
例2:合法的實型常量是A. 5E2.0 B.E-3 C.2E0 D 1.3E
例3:若有語句char a;並要將字元a賦值給變數a,則下列正確的賦值表達式是
A.a=」a」 B.a=』a』 C.a=」97」 D.a=』97』
例4:以下合法的定義是:
A. float _a=1.1e-1; B. double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3;
十三.求余原則:1.兩邊都要為整數;
2.先取絕對值求余,余數與被除數符號相同。特別要注意』%』與』/』 的區別。 -10/3 10/-3
十四. 賦值運算符及表達式:運算順序自右致左,左邊必須要是一個變數(能夠存放東西)。
a=b=c=10(定義處不能這樣); x+y=10; x+1=10;
十五. 逗號表達式:a=(b=5,b+10); b=(a=4*9,a*2),a-3; 要考慮優先順序。
十六. 類型轉換 char a=』a』; int b=32; float c=32.5;double s,d=32; s=a+b+c+d;
十七.強制類型轉換 float b=3.5;int a; a=(int)b;
例5:設有int x=11;則表達式(x++*1/3)的值是 A 3 B 4
例6:設有int a=1,b=1,c=1;a=a+++b+++c; 最終a、b、c的值是:a=4;b=2;c=1;
例7:有以下定義和語句組:float x=1;int y=2;y+=++x*++x;則最終y的值為:11
例8:int x=2;printf(「%d」,((x=4*5,x*5),x+25)); 45
例9:若變數已正確定義並賦值,以下符合c語言語法的表達式是
A.a:=b+1 B.a=b=c+2 C. int 18.5%3 D.a=a+7=c+b
十八 輸入輸出格式ch=getchar(); putchar(ch); scanf(「%d%f%c」,&a,&b,&c); printf(「%d,%d」,a,b);
例10:有以下程序,輸出的結果是
main(){int a;char c=10;float f=100.0;double x;
a=f/=c*=(x=6.5);printf(「%d %d %3.1f %3.1f\n」,a,c,f,x);}1 65 1.5 6.5 (習題集2.13)
十九.邏輯運算及其短路現象(對於邏輯與和邏輯或而言)
二十.關系運算符及表達式a>b>c 優先順序要清楚(即關>邏輯)
二十一.條件運算符及表達式a>b?a:c>d:c:d等價與a>b?a:(c>d?c:d) 設a=1,b=2,c=3,d=4; 4
例11:以下程序的輸出是 A. d=0 c=50 B.d=0 c=2 C.d=1 c=50 D.d=1 c=2
main(){int a=3,b=4,c=2,d; d=a<!b&&(c=50)>b; printf(「d=%d c=%d」,d,s);}
二十二.if語句 例12:以下程序輸出結果是
int i=1,j=1,k=2; if((j++||k++)&&i++) printf(「%d,%d,%d\n」,i,j,k); 2,2,2
if-else語句注意:if後只能管一個語句
main(){int a=2,b=-1,c=2; if(a<b) if(b<0) c=0;
else c++; printf(「%d\n」,c);}
二十三.switch 語句 以下程序的輸出是: main(){int x=1,a=0,b=0;
switch(x) {case 0:b++;case 1:a++;case 2:a++;b++;} printf(「a=%d,b=%d\n」,a,b)} a=2,b=1
二十四.while vs do-while
main()
{int i=0,n=0;
while(n!=0){i++;++i} printf(「%d」,i);
}
main()
{int i=0,n=0;
do {i++;++i} while(n!=0); printf(「%d」,i);
}
二十五 break vs continue
注意:break語句只能出現在循環體和switch語句中而continue只出現在循體環中。
main()
{int sum,i;sum=0; for(i=10;i>0;i--) {if(i>5) continue;sum=sum+i;} printf("%d\n",sum);}
例13:以下程序的輸出是: main(){int a,y;a=5;y=0; a=7 y=7
do{ a+=2;y+=a;printf(「a=%d y=%d\n」,a,y);if(y>10) break; }while(a==7); }a=9 y=16
例14:以下程序的輸出是: main(){int k=4,n=0; for(;n<k;){n++;if(n%3!=0) continue;k--;}
printf(「%d,%d\n」,k,n);} 3,3
二十六.一維數組的定義、賦初值、引用。注意:int a[10]={0};中括弧例常量表達式 ,下標從0開始 例15:若有定義float y[5]={1,2,3};則下列描述正確的是:( )
A. y並不代表數組元素 B.定義此數組時不指定數組的寬度,定義效果一樣
C.數組含有三個元素 D.a[3]的值是3
例16:以下程序的輸出是: main(){int z,y[3]={2,3,4};z=y[y[0]];printf(「%d」,z);} 4
例17:以下程序的輸出是: main(){int p[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2) {k=k+p[i];i++}printf(「%d\n」,k);} 24
例18:以下程序的輸出是:
main(){int n[5]={0,0,0},i,k=2;for(i=0;i<k;i++) n[i]=n[i]+1;printf(「%d\n」,n[k])} 0
二十七.二維數組的定義、賦初值、引用
例19:main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++)
for(j=0;j<=i;j++) s+=a[i][j];printf(「%d\n」,s)} 18
例20:以下不能正確定義二維數組的是:
A int a[2][2]={{1},{2}};B int a[][2]={1,2,3};C int a[2][2]={{1},2,3}; D int a[2][]={{1,2},{3,4}};
例21:若a是一個m行n列的數組,則a[i][j]是數組的第( )個元素
A i*m+j B i*m+j+1 C i*n+j D i*n+j+1
二十八 字元數組的定義、賦初值、引用
1.char arr[10]={『h』,』e』,』l』,』l』,』o』}; 2.char arr[]={『h』,』e』,』l』,』l』,』o』,』\0』};
3.char arr[10]={「hello」}; 4.char arr[10]=」hello」;
二十九 字元串輸入輸出 若char str[10]=」hello」,arr[10]=」me」;
scanf(「%s」,str); printf(「%s」,str); gets(str); puts(str);
strcpy(arr,str); strcmp(str,arr); strlen(str); strcat(str,arr);
例22:以下程序的輸出是:
main(){char st[20]=」hel\0lo\t」;printf(「%d%d\n」,strlen(st),sizeof(st))} 3,20
例23:以下程序的輸出是:char s[]=」\\141\141abc\t」;printf(「%d\n」,strlen(s));9
三十 指針與字元串 char *a; a=」hello」; char a[10]; a=」hello」;
例24:以下選項中正確的語句組是:( ) A.char s[8];s={「Beijing」};
B.char *s;s={「Beijing」}; C.char s[8];s=」Beijing」; D.char *s;s=」Beijing」;
三十一 有參函數的聲明、定義、與調用。
float add(float x,float y);/*函數的聲明*/
mai()
{int a=3.5,b=4.0,d;
d=add(a,b);/*函數的調用*/
}
float add(float x,float y)/*函數的定義*/
{return x+y;}
三十二 函數的嵌套調用與遞歸調用
double fun1(double a) {return a*=a;}
double fun2(double x,double y)
{ double a=0,b=0;
a=fun1(x);b=fun1(y);
return (int)(a+b);}
main()
{double w;w=fun2(1.1,2.0);
printf("%f\n",w);} /*嵌套調用*/
long fib(int n)
{if(n>2) return (fib(n-1)+fib(n-2));
else return 2;}
main(){printf(「%d\n」,fib(3));}/*遞歸調用*/
三十三 函數中的值傳遞與地址傳遞(不管是傳遞什麼,實質都是傳值,只不過一個是傳遞地址值而已)
func(int a){a=100;} func(int a[]) {a[0]=100;}
main(){int a=10;func(a);printf(「%d」,a);} main(){int a[1];a[0]=10;func(a);printf(「%d」,a[0]);}
三十四 局部變數與全局變數:局部變數的存儲類型分為自動型(auto)、寄存器型(register)、靜態類型(static),其中auto型和register型的變數的存儲空間是動態的,程序一結束,其值就消失。而static類型的變數,程序結束後其值仍然存在。全局變數是靜態的變數。
int a=5;
fun(int b) {static int a=10;a+=b++;printf(「%d」,a);}
main(){int c=20;fun(c);a+=c++;printf(「%d\n」,a);} 3025 如果在main中再加一個fun(c)呢?305025
三十五 宏命令與文件包含
#define N 10
#define S(x) x*x/*只要把這三個define語句放到一個文件hong.h裡面*/
#define f(x) (x*x)/*再在主函數前加一個#include 「hong.h」,程序運行結果一樣*/
main(){int i1,i2; i1=1000/S(N); i2=1000/f(N); printf(「%d %d」,i1,i2);}1000 10
三十六 指針變數的定義、初始化、運算
main()
{int n=5,*p=&n;printf(「the address is :%d\n」,p);
printf(「the data is:%d\n」,*p);
printf(「&*p is:%d\n」,&*p);
printf(「*&nis:%d\n」,*&n);}
例24:設有定義int n=0,*p=&n;則正確的賦值語句是:A. p=1; B.*p=&n; A選項不行,因p中應存放一個地址值對於B選項,因p已經指向了n這個存儲單元,實際上相當於n=5 。
三十七 指針與一維數組
int a[10],*p;/*a與p是不同的,a是數組名是常量,不能執行a++;a+=1的操作,p則可以*/
p=&a[0];p=a;/*這兩個語句等價,都是讓p指針指向這個數組*/
執行上述語句後:p[i]等價於a[i];*(p+i)等價於*(a+i)
三十八 指針與二維數組:下面給出了引用二維數組第i行第j列元素的不同方式
1. a[i][j];
2. 因a[i]表示第i行的首地址,a[i]+j表示第i行第j列的地址,所以*(a[i]+j)表示第i行第j列的值。
3. 又因a[i]可以寫成*(a+i),所以2中的表達式又可以寫成*(*(a+i)+j)。
4. 把1中的a[i]變成*(a+i),後面的不變,故又可寫成(*(a+i))[j]。
三十九 通過行指針引用二維數組
int a[4][4],(*p)[4];p=a;
四十 通過指針數組引用二維數組元素
int *p[4],a[4][4]; for(i=0;i<4;i++) p[i]=a[i];
以上兩個知識點,像以上這樣賦值後,要引用第i行第j列元素時,只需要把a改成p即可。
四十一 函數指針與指針函數
int f(int x) {……} main() {int (*p)(); int a,b=2;p=f;a=(*p)(b); a=f(b);a=p(b);……}
函數指針:返回值是指針(地址)的函數。 int *func(int a,int b);
例25:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0<=i<=9,下列對數組引用不正確的是:
A. a[p-a] B. *(&a[i]) C. p[i] D.a[10]
例 26:若定義int a[3][2];能正確表示t數組元素的地址的表達式是 A. &a[3][2] B.a[3] C. a[1] D.*a[2]
例28:以下程序輸出結果是:A. 69825 B.63825 C.6385 D.693825
main(){char ch[2][5]={「6937」,」8254」},*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i];
for(i=0;i<2;i++) for(j=0;p[i][j]>』\0』;j+=2) s=10*s+p[i][j]-『0』; printf(「%d\n」,s); }
四十二 結構體的定義、賦初值
struct student {int num;char name[10];} *p,stu[2]={{123,」zhang」},{124,」li」}};p=stu;
typedef struct student {} STU; 在這個語句後就可以用STU來定義結構體變數了。
例:STU a,*p;等價於 struct student a,*p;
四十三 結構體變數的引用
printf(「%d」,stu[1].num); printf(「%d」,stu[1].name ); printf(「%d」,p[1]->num);
printf(「%d」,p[1]->name); printf(「%d」,stu);則不對
四十四 malloc、calloc、free函數及鏈表的操作 鏈表操作見書p120 int *p,*pint; float *q; p=(int*)malloc(sizeof(int)); q=(float*)malloc(sizeof(float)); pint=(int*)calloc(10,sizeof(int)); free(p); 習題集12章16題。
例29:下列賦值語句正確的是 struct worker {int num;char *name;}*p,a;
A. worker.num=1; B.p.num=1; C.*p.num=1; D.a.num=1;
例30:在16位pc環境下,下列程序運行的結果是:(此題大家有印象即可,不必深究)
struct worker {int num;char *name;}a; main(){printf(「%d」,sizeof(a))} 4(若32位則是8)
例31:設有如下定義:struct ss{char name[10]:int age:char sex:}stu[3],*p=std;下面各輸入語句錯誤的是:( )
A. scanf(「%d」,&(*p).age); B.scanf(「%s」,&std.name); C.scanf(「%c」,&std[0].sex); D.scanf(「%c」,&(p->sex));
因為std是表示是地址,而地址表示不應該是這樣的,應該是&(std->name);
四十五 位運算 ~、<<、>>、|、& 、^、例5.4
四十六 文件的打開及對文件的操作 FILE *fp;char str[10]=」hello」;int a,b;
1. if((fp=fopen(「in.dat」,」rb」))==NULL) printf(「Unable to open the file!」);/*重點注意打開文件的方式,特別注意以」w」,」r+」,」w+」,」a」方式打開,對文件的影響。*/
2. fclose(fp);/*關閉文件*/ feof(fp);/*測試文件是否結束,如到了則返回1,否則返回0*/
3. fseek(fp,12,SEEK_SET) /*將文件指針移動到文件起始位置後面的第12個位元組處*/
4. fseek(fp,12,SEEK_END)/* 將文件指針移動到文件倒數第12個位元組處*/
5. fseek(fp,0,SEEK_SET) /*將文件指針移動到文件起始位置同rewind(fp)函數*/
6. fseek(fp,12,SEEK_END)/* 將文件指針移動到文件末尾*/
7. ftell(fp); ch=fgetc(fp); putc(ch,fp); fgets(str,n,fp); fputs(str,fp);
8. fscanf(fp,」%d%d」,&a,&b);/*從fp所指向的文件中取出的兩數分別存放在a和b中*/
9. fprintf(fp,」%d%d」,a,b);/*把a和b中所存放的數據輸出(存放)到fp所指向的文件中*/
10. fread(str,size,count,fp);/*從fp所指向的文件中取出size*count個位元組存放到str數組中*/
11. fwrite(str,size,count,fp);/*把str數組中的size*count個位元組存放到fp所指向的文件中*/
你有相關的書嗎?這是我當年考試用過的一些資料呀!希望對你有幫助!!