c語言期末復習資料
⑴ 計算機二級c語言考試用什麼復習資料好
全是官方出品的《全國計算機等級考試二級教程》系列的c語言和公共基礎知識,輔助用書:《C primer plus》。如果只是為了應付考試,這三本書足矣。其實,不要覺得計算機二級有多難。
其實現在高校里教的c語言,又或是你自己學的c語言,主要是為了建立一種編程思想或者是一種邏輯思想(答主詞窮,意會一下 ),計算機二級c語言考的東西不會難到哪裡去,考的最多的也就是順序,判斷,循環三種語句。
多去做一些相關的題目,做歷年來的考題,做的越多越好,邊做還要邊思考,這些出題思路是怎樣的,有哪些難點,前幾次做可能會有很多地方不會,但不要退縮。
⑵ C語言復習資料!
總體上必須清楚的:
1)程序結構是三種: 順序結構 , 循環結構(三個循環結構), 選擇結構(if 和 switch)
2)讀程序都要從main()入口, 然後從最上面順序往下讀(碰到循環做循環,碰到選擇做選擇)。
3)計算機的數據在電腦中保存是以 二進制的形式. 數據存放的位置就是 他的地址.
4)bit是位 是指為0 或者1。 byte 是指位元組, 一個位元組 = 八個位.
5)一定要記住 二進制 如何劃成 十進制。
概念常考到的:
1、編譯預處理不是C語言的一部分,不再運行時間。C語言編譯的程序稱為源程序,它以ASCII數值存放在文本文件中。
2、每個C語言程序中main函數是有且只有一個。
3、在函數中不可以再定義函數。
4、演算法的是一定要有輸出的,他可以沒有輸入。
5、break可用於循環結構和switch語句。
6、逗號運算符的級別最低。
第一章
1)合法的用戶標識符考查:
合法的要求是由字母,數字,下劃線組成。有其它元素就錯了。
並且第一個必須為字母或則是下劃線。第一個為數字就錯了。
關鍵字不可以作為用戶標識符號。main define scanf printf 都不是關鍵字。迷惑你的地方If是可以做為用戶標識符。因為If中的第一個字母大寫了,所以不是關鍵字。
2)實型數據的合法形式:
2.333e-1 就是合法的,且數據是2.333×10-1。
考試口訣:e前e後必有數,e後必為整數。.
3)字元數據的合法形式::
'1' 是字元佔一個位元組,"1"是字元串占兩個位元組(含有一個結束符號)。
'0' 的ASCII數值表示為48,'a' 的ASCII數值是97,'A'的ASCII數值是65。
4) 整型一般是兩個位元組, 字元型是一個位元組,雙精度一般是4個位元組:
考試時候一般會說,在16位編譯系統,或者是32位系統。碰到這種情況,不要去管,一樣做題。掌握整型一般是兩個位元組, 字元型是一個位元組,雙精度一般是4個位元組就可以了。
5)轉義字元的考查:
在程序中 int a = 0x6d,是把一個十六進制的數給變數a 注意這里的0x必須存在。
在程序中 int a = 06d, 是一個八進制的形式。
在轉義字元中,』\x6d』 才是合法的,0不能寫,並且x是小寫。
『\141』 是合法的, 0是不能寫的。
『\108』是非法的,因為不可以出現8。
6)算術運算符號的優先順序別:
同級別的有的是從左到右,有的是從右到左。
7)強制類型轉換:
一定是 (int)a 不是 int(a),注意類型上一定有括弧的。
注意(int)(a+b)和(int)a+b 的區別。 前是把a+b轉型,後是把a轉型再加b。
8)表達式的考查:
是表達式就一定有數值。
賦值表達式:表達式數值是最左邊的數值,a=b=5;該表達式為5,常量不可以賦值。
自加、自減表達式:假設a=5,++a(是為6), a++(為5);
運行的機理:++a 是先把變數的數值加上1,然後把得到的數值放到變數a中,然後再用這
個++a表達式的數值為6,而a++是先用該表達式的數值為5,然後再把a的數值加上1為6,
再放到變數a中。 進行了++a和a++後在下面的程序中再用到a的話都是變數a中的6了。
考試口訣:++在前先加後用,++在後先用後加。
逗號表達式:優先順序別最低 ;表達式的數值逗號最右邊的那個表達式的數值。
(2,3,4)的表達式的數值就是4。
9)位運算的考查:
會有一到二題考試題目。
總的處理方法:幾乎所有的位運算的題目都要按這個流程來處理(先把十進制變成二進制再變成十進制)。
例1: char a = 6, b;
b = a<<2; 這種題目的計算是先要把a的十進制6化成二進制,再做位運算。
例2: 一定要記住,
例3: 在沒有捨去數據的時候,<<左移一位表示乘以2;>>右移一位表示除以2。
10)018的數值是非法的,八進制是沒有8的,逢8進1。
11)%符號兩邊要求是整數。不是整數就錯了。
12) 三種取整丟小數的情況:
1、int a =1.6;
2、(int)a;
3、
第二章
1)printf函數的格式考查:
%d對應整型;%c對應字元;%f對應單精度等等。寬度的,左對齊等修飾。
%ld對應 long int;%lf 對應double。
2)scanf函數的格式考察:
注意該函數的第二個部分是&a 這樣的地址,不是a;
Scanf(「%d%d%*d%d」,&a,&b,&c); 跳過輸入的第三個數據。
3)putchar ,getchar 函數的考查:
char a = getchar() 是沒有參數的,從鍵盤得到你輸入的一個字元給變數a。
putchar(『y』)把字元y輸出到屏幕中。
4)如何實現兩個變數x ,y中數值的互換(要求背下來)
不可以把 x=y ,y=x; 要用中間變數 t=x;x=y;y=t。
5)如何實現保留三位小數,第四位四捨五入的程序,(要求背下來)
這個有推廣的意義,注意 x = (int)x 這樣是把小數部分去掉。
第三章
特別要注意:c語言中是用非0表示邏輯真的,用0表示邏輯假的。
1)關系表達式:
表達式的數值只能為1(表示為真),或0(表示假)
當關系的表達是為真的時候得到1。如 9>8這個是真的,所以表達式的數值就是1;
2)邏輯表達式:
只能為1(表示為真),或0(表示假)
a) 共有&& || ! 三種邏輯運算符號。
b) !>&&>|| 優先的級別。
c) 注意短路現象。考試比較喜歡考到。
d) 要表示 x 是比0大,比10小的方法。0<x<10是不可以的(一定記住)。是先計算0<x 得到的結果為1或則0;再用0,或1與10比較得到的總是真(為1)。所以一定要用 (0<x)&&(x<10)表示比0大比10小。
3)if 語句
else 是與最接近的if且沒有else的相組合的。
4)條件表達式:
表達式1 ?表達式2 :表達式3
注意是當非0時候是表達式2的數值,當為0是就是表達式2的數值。
考試口訣:真前假後。
5)switch語句:
a)一定要注意 有break 和沒有break的差別,書上(34頁)的兩個例子,沒有break時候,只要有一個case匹配了,剩下的都要執行,有break則是直接跳出了swiche語句。
b)switch只可以和break一起用,不可以和continue用。
第四章
1)三種循環結構:
a)for() ; while(); do- while()三種。
b)for循環當中必須是兩個分號,千萬不要忘記。
c)寫程序的時候一定要注意,循環一定要有結束的條件,否則成了死循環。
d) do-while()循環的最後一個while();的分號一定不能夠丟。(當心上機改錯)
2) break 和 continue的差別
記憶方法:
break:是打破的意思,(破了整個循環)所以看見break就退出真個一層循環。
continue:是繼續的意思,(繼續循環運算),但是要結束本次循環,就是循環體內剩下的語句不再執行,跳到循環開始,然後判斷循環條件,進行新一輪的循環。
3)嵌套循環
就是有循環裡面還有循環,這種比較復雜,要一層一層一步一步耐心的計算,一般記住兩層是處理二維數組的。
4) while((c=getchar())!=』\n』) 和 while(c=getchar() !=』\n』)的差別
先看a = 3 != 2 和 (a=3)!=2 的區別:
(!=號的級別高於=號 所以第一個先計算 3!=2) 第一個a的數值是得到的1;第二個a的數值是3。
考試注意點: 括弧在這里的重要性。
第五章
函數:是具有一定功能的一個程序塊;
1) 函數的參數,返回數值(示意圖):
main()
{
int a = 5,b=6,c;
c = add(a,b);
printf(「%d」,c);
}
調用函數
a,b是實參
整個函數得到一個數值就是
Add函數的返回數值。
int add ( int x, int y)
{
int z;
z=x+y;
return z;
}
被調用函數
x,y是形式參數
函數返回數值是整型
z就是這個add函數計算後得到的結果,就是函數返回給主程序的返回數值。
程序是在從上往下順序執行,當碰到了函數add後,把a,b的數值穿給調用函數,程序暫時中斷等待返回數值。當得到了返回數值後,再順序的往下執行
2)一定要注意參數之間的傳遞
實參和形參之間 傳數值,和傳地址的差別。(考試的重點)
傳數值的話,形參的變化不會改變實參的變化。
傳地址的話,形參的變化就會有可能改變實參的變化。
3)函數聲明的考查:
一定要有:函數名,函數的返回類型,函數的參數類型。
不一定要有:形參的名稱。
第六章
指針變數的本質是用來放地址,而一般的變數是放數值的。
int *p 中 *p和p的差別:
*p可以當做變數來用;*的作用是取後面地址p裡面的數值
p是當作地址來使用。
*p++ 和 (*p)++的之間的差別:改錯題目中很重要
*p++是 地址會變化。
(*p)++ 是數值會要變化。
三名主義:(考試的重點)
數組名:表示第一個元素的地址。數組名不可以自加,他是地址常量名。(考了很多次)
函數名:表示該函數的入口地址。
字元串常量名:表示第一個字元的地址。
第七章
1一維數組的重要概念:
對a[10]這個數組的討論。
1、a表示數組名,是第一個元素的地址,也就是元素a[10]的地址。
2、a是地址常量,所以只要出現a++,或者是a=a+2賦值的都是錯誤的。
3、a是一維數組名,所以它是列指針,也就是說a+1是跳一列。
對a[3][3]的討論。
1、a表示數組名,是第一個元素的地址,也就是元素a[10]的地址。
2、a是地址常量,所以只要出現a++,或者是a=a+2賦值的都是錯誤的。
3、a是二維數組名,所以它是行指針,也就是說a+1是跳一行。
4、a[0]、a[1]、a[2]也都是地址常量,不可以對它進行賦值操作,同時它們都是列指針,a[0]+1,a[1]+1,a[2]+1都是跳一列。
5、注意a和a[0] 、a[1]、a[2]是不同的,它們的基類型是不同的。前者是一行元素,後三者是一列元素。
二維數組做題目的技巧:
如果有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 ->第三行
步驟二:這樣作題目間很簡單:
*(a[0]+1)我們就知道是第一行的第一個元素往後面跳一列,那麼這里就是a[0][1]元素,所以是1。
*(a[1]+2)我們就知道是第二行的第一個元素往後面跳二列。那麼這里就是a[1][2]元素,所以是6。
一定記住:只要是二維數組的題目,一定是寫成如上的格式,再去做題目,這樣會比較簡單。
數組的初始化,一維和二維的,一維可以不寫,二維第二個一定要寫
int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。 但int a[4][]={2,3,4}非法。
二維數組中的行指針
int a[1][2];
其中a現在就是一個行指針,a+1跳一行數組元素。 搭配(*)p[2]指針
a[0],a[1]現在就是一個列指針。a[0]+1 跳一個數組元素。搭配*p[2]指針數組使用
還有記住脫衣服法則:
a[2] 變成 *(a+2) a[2][3]變成 *(a+2)[3]再可以變成 *(*(a+2)+3)
這個思想很重要!
此日誌來自QQ校友社區(xiaoyou.qq
⑶ 求助~C語言程序設計期末復習題
1. %
2.run (沒理解他的含義,難道是 int main(int argc, char *argv[])的意思么?)
3.只在該復合句中
4.run
5.(1)標識符由字母、下劃線、數字這三個方面組成,(2)開頭必須是字母或下劃線。(3)關鍵字不能是標識符,如main等 .
6.在其之前未配對的最近的if
7.while語句的一般形式如下:
while(表達式)語句
表達式為非0值,執行while中內嵌語句。
它是先判斷表達式,在根據表達式值,執行語句。
do_while語句的一般形式如下:
do
循環體語句
while(表達式);
它的特點是先執行循環體語句,然後判斷循環條件是否成立,不成立就退出,成立就再執行循環體語句。
8.成員中占內存量最大者所需的容量乘上所有成員的個數。
9.10
10.五種基本數據類型:字元、整型、單精度實型、雙精度實型和空類型
⑷ c語言 期末復習題
第一題:float是分配4個單元的內存,double是分配8個單元的內存,需要從取值范圍的角度來考慮(我忘了范圍,你可以那本C語言的書看看),還有就是%f 對應的是float,%lf 對應的是double
第二題:nr=nr*10+n%10;說的是將輸入的數據(n)取其個位數 n/=10;說的是去掉n的個位
如:第一次執行nr=nr*10+n%10;後nr=0*10+4=4 執行n/=10;後n=123
第二次執行nr=nr*10+n%10;後nr=4*10+3=43 執行n/=10;後n=12
第三次執行nr=nr*10+n%10;後nr=43*10+2=432 執行n/=10;後n=1
第四次執行nr=nr*10+n%10;後nr=432*10+1=4321 執行n/=10;後n=0(停止循環,輸出4321)
⑸ 大一期末C語言考試的重點是什麼
我上點選擇題
1、以下不正確的描述為【 】。
(A) 調用函數時,實參可以是表達式
(B) 調用函數時,實參與形參可以共用內存單元
(C) 調用函數時,將為形參分配內存單元
(D) 調用函數時,實參與形參的類型必須一致
2、以下正確的敘述是【 】。
(A) C語言的主函數是無參函數
(B) C語言的主函數最多允許有1個形式參數
(C) C語言的主函數最多允許2個形式參數
(D) C語言的主函數可以有2個以上形式參數
3、C語言中函數返回值的類型是由【 】決定的。
(A) return語句中的表達式類型
(B) 調用該函數的主調函數類型
(C) 調用函數時臨時
(D) 定義函數時所指定的函數類型
4、若x為int型變數,則以下函數fun【 】。
fun(int x)
{
printf("%d",x);
}
(A) 返回值為void類型
(B) 無法確定返回值
(C) 返回值為int類型
(D) 沒有返回值
5、以下不正確的描述為【 】。
(A) 不同函數中可以使用相同名字的變數
(B) 形式參數是局部變數
(C) 一個函數內部定義的變數只能在本函數范圍內有效
(D) 在一個函數內部的復合語句中定義的變數可以在本函數范圍內有效
6、C語言規定,調用一個函數時,實參變數和形參變數之間的數據傳遞是【 】。
(A) 地址傳遞
(B) 值傳遞
(C) 由實參傳給形參,並由形參傳回來給實參 十
(D) 由用戶指定傳遞方式
7、若用數組名作為函數調用時的實參,則實際上傳遞給形參的是【 】。
(A) 數組首地址
(B) 數組的第一個元素值
(C) 數組中全部元素的值
(D) 數組元素的個數
8、凡是函數中未指定存儲類別的變數,其隱含的存儲類別為【 】。//應該為局部變數
(A) 自動(auto)
(B) 靜態(static)
(C) 外部(extem)
(D) 寄存器(register)
9、在C語言中,對於存儲類型為【 】的變數,只有在使用它們時才佔用內存單元。
(A) static和auto
(B) register和extern
(C) register和static
(D) auto和register
10、在一個源文件中定義的全局變數的作用域為【 】。
(A)本文件的全部范圍
(B)本程序的全部范圍
(C)本函數的全部范圍
(D)從定義變數的位置開始至文件結束
11、在一個C源程序文件中,若要定義一個只允許本源文件中所有函數使用的全局變數,則該變數需要使用的存儲類別為【 】。
(A)extern
(B)register
(C)auto
(D)static
12、以下不正確的描述為【 】。
(A)在函數之外定義的變數稱為外部變數,外部變數是全局變數
(B)在一個函數中既可以使用本函數中的局部變數,又可以使用全局變數
(C)外部變數定義和外部變數說明的含義不同
(D)若在同一個源文件中,外部變數與局部變數同名,則在局部變數的作用范圍內,外部變數不起作用
13、以下正確的函數定義形式是【 】。
(A)double fun(int x,int y)
(B)double fun(int x; int y)
(C)double fun(int x,int y);
(D)double fun(int x,y);
14、以下說法正確的是【 】。
(A) 實參和與其對應的形參各佔用獨立的存儲單元
(B) 實參和與其對應的形參共佔用一個存儲單元
(C) 只有當實參和與其對應的形參同名時才共用存儲單元
(D) 形參是虛擬的,不佔用存儲單元
15、若調用一個函數,且此函數中沒有return語句,則正確的說法是【 】。
(A) 沒有返回值
(B) 返回若干個系統默認值
(C) 能返回一個用戶所希望的函數值
(D) 返回一個不確定的值
16、以下敘述正確的是【 】。
(A )定義函數時,形參的類型說明可以放在函數體內
(B) return後邊的值不能為表達式
(C) 如果函數的類型與返回值類型不一致,以函數類型為准
(D) 如果形參與實參的類型不一致,以實參類型為准
17、以下程序有語法性錯誤,有關錯誤的原因的正確說法是【 】。
main( )
{int G=5,K;
void Prt_char();
……
K=Prt_char(G);
……
}
(A) 語句void prt_char();有錯,它是函數調用語句,不能用void說明
(B) 變數名不能使用大寫字元
(C) 函數說明和函數調用語句之間有矛盾
(D) 函數名不能使用下劃線
18、以下正確的描述是【 】。
(A) 函數的定義可以嵌套,但函數的調用不可以嵌套
(B) 函數的定義不可以嵌套,但函數的調用可以嵌套
(C) 函數的定義和函數的調用均不可以嵌套
(D) 函數的定義和函數的調用均可以嵌套
19、以下說法正確的是【 】。
如果在一個函數中的復合語句中定義了一個變數,則該變數
(A) 只在該復合語句中有效
(B) 在該函數中有效
(C) 在本程序范圍內均有效
(D) 為非法變數說明
20、以下程序的正確運行結果是【 】。
f(int a)
{int b=0; static int c=3;
b++; c++;
return(a+b+c);
}
main()
{int a=2,i;
for(i=0;i<3;i++) printf("%4d",f(a));
}
(A) 7 7 7 (B) 7 10 13
(C) 7 9 11 (D) 7 8 9
21、請選擇正確的運行結果填入【 】中。
#include <stdio.h>
fun(int x,int y)
{static int m=0,i=2;
i+=m+1;
m=i+x+y;
return(m);
}
main()
{
int j=4,m=1,k;
k=fun(j,m);
printf("%d,",k);
k=fun(j,m);
printf("%d\n",k);
}
(A) 08, 20 (B) 8, 8 (C) 8, 17 (D) 8, 16
22、請選擇正確的運行結果填入【 】中。
#include <stdio.h>
int x,y;
num( )
{
int a=15,b=10;
int x,y;
x=a-b;
y=a+b;
return;
}
main( )
{int a=7,b=5;
x=a+b;
y=a-b;
num( );
printf("%d,%d\n",x,y);
}
(A) 12,2 (B) 5,25 (C) 2,12 (D)不確定
一、填空題
1、一個C語言程序的語句至少應包含一個______。
2、C語言源程序文件的擴展名是______,經過編譯、連接後,生成文件的擴展名是______。
3、結構化程序由順序結構、______和______三種基本結構組成。
4、C語言的執行是從______開始執行的。
5、C源程序的語句分隔符是______。
6、在C語言中,用關鍵字______定義單精度實型變數。
7、表達式S=12應當讀做「______」。
8、C語言源程序的基本單位是______。
9、設int x=9,y=8;表達式x-=y+1的結果是______。
10、若a為整型變數,a=12,則表達式:a * =2+3的值______。
11、調用C語言對輸入輸出處理的庫函數時,在# include命令行中應包含的頭文件是______。
12、表達式9%5的結果是______。
13、若a為整型變數,a=12,則表達式:a+=4的值______。
14、 在C語言中,要求運算數必須是整型的運算符是______。
15、在C語言中,用______表示邏輯「真」值。
16、7、表達式10/3的結果是______。
17、通常一個位元組包含______個二進制位。
18、 假設所有變數均為整型,a=2,b=5,b++則表達式a+b的值是______。
19、在C語言中,最基本的數據類型只有四種,它們分別是:______、______、______和double。
20、一個C程序有且僅有一個______函數。
21、若a為整型變數,a=12,則表達式:a-=2的值______。
22、在C語言中,有三種邏輯運算符,它們分別是:______、______、______。
23、在C語言中,字元輸入函數和字元輸出函數分別是:______和______。
24、C程序開發的四個步驟是______、______、______和執行。
25、C程序的結構分別是:順序結構、______、______。
26、if語句中的表達式可以是關系表達式、______、______。
27、______是C語言中惟一一個三元運算符。
28、C語言提供的預處理命令主要包括如下三種:宏定義、______、______。
⑹ 計算機二級C語言考試重點以及復習技巧
1、語言的基本語法25分。主要有C語言的主要特點、各種數據類型、運算符與運算表達式、基本I/O結構應用、基本的程序控制結構、宏的基本定義、文件的基本應用等。
2、程序閱讀題30分。考核的主要內容為:選擇結構、循環結構的應用、數組的應用、指針特別是指針與字元數組的關系應用、函數應用(參數傳輸,全局變數,局部變數應用等)。3、程序設計15分。主要是應該熟悉程序控制結構,數組,函數的應用。
復習內容:
C語言的基本概念
C語言的主要特徵和程序結構。頭文件,函數的開始和結束標志。源程序的書寫格式。數據類型和運算
基本數據類型和常量的表示法。各種變數的定義和初始化。
運算規則和表達式。
賦值表達式、算術表達式、關系表達式、邏輯表達式、條件表達式、逗號表達式。
運算符的優先順序、類型的自動轉換和強制類型轉換,
C語言的基本語句
基本語句:表達式語名、空語句、復合語句。數據的輸入與輸出、輸入輸出函數的調用。選擇結構語句。if語句。switch語句。
選擇結構的嵌套。循環結構語句。for語句。while語句和do-while語句。continue語句和break語句。
構造類型和指針類型數據
數組、結構、聯合類型的說明和正確使用。
指針。
指針與指針變數的概念,指針與地址運算符。
變數、數組、字元串、函數、結構體的指針,以及指向變數、數組、字元串、函數、結構體的指針變數。通過指針引用以上各類型數據。指針數組,指向指針的指針。
存儲區動態分配和釋放。
函數
函數的基本結構和定義方法。
函數的調用和參數傳遞。
函數的嵌套調用、遞歸調用。
變數的作用域。
Main
()函數的命令行參數引用。
內部函數與外部函數。
庫函數的正確使用。
文件只要求緩沖文件系統(即高級磁碟I/O系統)。
文件的概念:文本文件和二進制文件。
文件類型指針。
文件的基本操作:文件的打開與關閉、文件的讀寫、文件指針的操作。
⑺ c語言復習資料
1、根據考試的時候來看。選擇填空判斷:基本上都要囊括那些書上的重點
2、簡答題就是一些概念性的提問;
3、問答題一般會設計排序吧。我覺得
4、遠離課堂很久了。只是在這里泛泛而談
⑻ c語言復習題
35.以下定義語句中,正確的是( D )。
A) int n=5,a[n]; B) int a[3][]={1,2,3,4,5};
C) int s[10]={1、2、3}; D) int a[3][4]={{1,2},{3},{0,5,6,7}};
36.執行char str1[10]=「Hello」,str2[10]=「 China」;strcat(str1,str2)後輸出str1的結果是( C ?)。
A) Hello B) China C) Hello China D) China Hello
37.若x=3,y=2,z=1,求下列表達式的z值為( D )。
z+=(x<y?x++:y++)
(A)1 (B)2 (C)3 (D)4
38.當調用函數時,實參是一個數組名,則向函數傳送的是( B )。
A) 數組的長度 B) 數組的首地址
C) 數組每一個元素的地址 D) 數組每個元素中的值
39. 有以下程序段,while 循環執行的次數是( D )。
int k=0;
while(k=1) k++;
A) 執行1次 B) 有語法錯,不能執行
C) 執行0次 D) 無限次
40.若有下面的變數定義,以下語句中合法的是( A )。
int i,a[10],*p;
(A) p=a+2; (B) p=a[5]; (C) p=*a[2]+2; (D) p=&(i+2);
41. 以下函數調用語句中實參個數為( B)。
Func((exp1,exp2),(exp3,exp4,exp5));
A) 1 B) 2 C) 4 D) 5
42. 下列說法中正確的是( C )。
A)C語言程序總是從第一個定義的函數開始執行
B)在C語言程序中,要調用的函數必須是在main()函數中定義
C)C語言程序總是從main()函數開始執行
D)C語言程序中的main()函數必須放在程序的開始部分
43、若變數已正確定義,要將 a和b中的數進行交換,下面不正確的語句組是( B)。
(A) s=a,a=b,b=s; (B)a=a+b,b=a-b,a=a-b ; (C)s=b,b=a,a=s; (D)a=s,s=b,b=a;
44. 執行以下程序,程序運行後,如果從鍵盤上輸人-10,則輸出結果是(B )。
A) -9 B) -10 C) -11 D) 無輸出
main( )
{ int x;
scanf(「%d」,&x);
if(x>=10) printf(「%d」,x--);
else printf(「%d」,x++);
}
45. 以下程序的輸出結果是 ( A )。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
(A)1 (B)0 (C)非0的數 (D)-1
第36問 36.執行char str1[10]=「Hello」,str2[10]=「 China」;strcat(str1,str2) 因為str1長度不夠 所以答案應該是Hello Chi