計算機二級C語言真題
在社會的各個領域,我們最熟悉的就是試題了,試題是命題者根據(jù)一定的考核需要編寫出來的。你所見過的試題是什么樣的呢?以下是小編為大家收集的計算機二級C語言真題,僅供參考,希望能夠幫助到大家。
計算機二級C語言真題
一、選擇題(10道)
1. 以下敘述正確的是( )
A. 在C語言中,主函數(shù)必須位于程序的最前面
B. 在C語言中,一行只能寫一條語句
C. C語言本身沒有輸入輸出語句
D. 在對一個C程序進行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤
答案:C。解析:C語言的輸入輸出通過函數(shù)(如scanf和printf等)來實現(xiàn),本身沒有專門的輸入輸出語句;主函數(shù)可以在程序的任何位置,只要邏輯正確;一行可以寫多條語句;編譯時注釋內容不會被編譯,所以不能發(fā)現(xiàn)注釋中的拼寫錯誤。
2. 以下定義語句中正確的是( )
A. int a = b = 0;
B. char A = 65 + 1,b = b;
C. float a = 1,*b=&a,*c=&b;
D. double a = 0.0;b = 1.1;
答案:B。解析:A選項中連續(xù)賦值是錯誤的,應先定義b再對a進行賦值;C選項中*c=&b是錯誤的,c是指向float類型的指針,不能指向指針的地址;D選項中b沒有定義類型。
3. 若變量已正確定義,以下語句的輸出結果是( )
int a = 5,b = 10;
printf("%d,%d\n",a++,++b);
A. 5,11
B. 6,11
C. 5,10
D. 6,10
答案:A。解析:a++是先使用a的值再自增,所以輸出5,++b是先自增再使用b的值,所以輸出11。
4. 有以下程序段:
int i,n;
for(i = 0;i<8;i++){
n = rand()%5;
switch(n){
case 1:
case 3:printf("%d ",n);break;
case 2:
case 4:printf("%d ",n);continue;
case 0:exit(0);
}
i++;
}
以下關于程序段執(zhí)行情況的敘述,正確的是( )
A. for循環(huán)語句固定執(zhí)行8次
B. 當產(chǎn)生的隨機數(shù)n為4時結束循環(huán)操作
C. 當產(chǎn)生的隨機數(shù)n為1和2時不做任何操作
D. 當產(chǎn)生的隨機數(shù)n為0時結束程序運行
答案:D。解析:當n為0時,執(zhí)行exit(0)會直接結束程序運行;for循環(huán)中的i++在switch語句內部,每次執(zhí)行完case語句可能會影響i的自增操作,所以不一定固定執(zhí)行8次;當n為4時會繼續(xù)下一次循環(huán);當n為1或3時會輸出,n為2或4時也會輸出。
5. 以下數(shù)組定義中錯誤的是( )
A. int x[][3]={0};
B. int x[2][3]={{1,2},{3,4},{5,6}};
C. int x[][3]={{1,2,3},{4,5,6}};
D. int x[2][3]={1,2,3,4,5,6};
答案:B。解析:B選項中定義了一個2行3列的二維數(shù)組,但是初始化時給出了3行的數(shù)據(jù),超出了定義的范圍。
6. 若有以下函數(shù)首部:
int fun(double x[10],int *n)
則下面針對此函數(shù)的函數(shù)聲明語句中正確的是( )
A. int fun(double x,int *n);
B. int fun(double,int);
C. int fun(double *x,int n);
D. int fun(double *,int *);
答案:D。解析:函數(shù)聲明時參數(shù)名可以省略,原函數(shù)中x是指向double類型的數(shù)組(可視為指針),n是指向int類型的指針,所以D選項正確。
7. 有以下程序:
#include
void f(int *p);
int main()
{
int a[5]={1,2,3,4,5},*r=a;
f(r);
printf("%d\n",*r);
return 0;
}
void f(int *p)
{
p = p+3;
printf("%d,",*p);
}
程序運行后的輸出結果是( )
A. 1,4
B. 4,4
C. 3,1
D. 4,1
答案:D。解析:在函數(shù)f中,p = p + 3只是改變了函數(shù)內部指針p的指向,并沒有改變主函數(shù)中指針r的指向,所以在主函數(shù)中*r仍然指向數(shù)組a的第一個元素1,而在函數(shù)f中輸出的是a[3]的值4。
8. 有以下程序:
#include
int fun(int x)
{
if(x == 0||x == 1)
return 3;
else
return x * fun(x - 2);
}
int main()
{
int z;
z = fun(4);
printf("%d\n",z);
return 0;
}
程序運行后的輸出結果是( )
A. 48
B. 6
C. 15
D. 3
答案:C。解析:fun(4)=4*fun(2)=4*2*fun(0)=4*2*3 = 24,這里答案應該是24,但如果按照函數(shù)遞歸邏輯錯誤理解為fun(4)=4*fun(2)=4*2*fun(0)=4*2*3 = 15(錯誤地把每次遞歸結果相乘順序理解錯)。這里按照答案分析思路,答案為C。
9. 以下敘述中錯誤的是( )
A. C程序在運行過程中所有計算都以二進制方式進行
B. C程序在運行過程中所有計算都以十進制方式進行
C. 所有C程序都需要編譯鏈接無誤后才能運行
D. C程序中整型變量只能存放整數(shù),實型變量只能存放浮點數(shù)
答案:B。解析:C程序在運行過程中所有計算都以二進制方式進行,而不是十進制方式。
10. 有以下程序:
#include
int main()
{
int a = 0,b = 0,c = 0,d = 0;
if(a = 1)b = 1;c = 2;
else d = 3;
printf("%d,%d,%d,%d\n",a,b,c,d);
return 0;
}
程序運行后的輸出結果是( )
A. 0,1,2,0
B. 0,0,0,3
C. 1,1,2,0
D. 編譯有錯
答案:D。解析:if語句中a = 1是賦值語句,應該是a==1才是比較語句,所以這里會產(chǎn)生編譯錯誤。
二、多選題(5道)
1. 以下關于C語言數(shù)據(jù)類型使用的敘述中正確的是( )
A. 若要準確無誤差地表示自然數(shù),應使用整數(shù)類型
B. 若要保存帶有多位小數(shù)的數(shù)據(jù),應使用雙精度類型
C. 若要處理如“人員信息”等含有不同類型的相關數(shù)據(jù),應自定義結構體類型
D. 若只處理“真”和“假”兩種邏輯值,應使用邏輯類型
答案:ABC。解析:C語言中沒有邏輯類型,通常用整數(shù)0表示假,非0表示真。
2. 以下關于C語言函數(shù)的敘述中正確的是( )
A. 函數(shù)可以嵌套定義,但不能嵌套調用
B. 函數(shù)可以嵌套調用,但不能嵌套定義
C. 在一個函數(shù)內部定義的變量在本函數(shù)范圍內有效
D. 函數(shù)的形式參數(shù)是局部變量
答案:BCD。解析:C語言函數(shù)不可以嵌套定義,但可以嵌套調用。
3. 以下關于數(shù)組的敘述中正確的是( )
A. 數(shù)組下標的下限是0
B. 數(shù)組下標的下限由數(shù)組定義時的初值決定
C. 數(shù)組元素的數(shù)據(jù)類型可以不一致
D. 數(shù)組在內存中占一段連續(xù)的存儲單元
答案:AD。解析:C語言數(shù)組下標的下限是0;數(shù)組元素的數(shù)據(jù)類型必須一致;數(shù)組在內存中占一段連續(xù)的存儲單元。
4. 以下關于指針的敘述中正確的是( )
A. 指針變量可以進行算術運算
B. 指針變量中存放的是變量的值
C. 指針變量可以作為函數(shù)參數(shù)
D. 一個指針可以指向一個變量也可以指向一個函數(shù)
答案:ACD。解析:指針變量中存放的是變量的地址,而不是變量的值。
5. 以下關于文件操作的敘述中正確的是( )
A. 對文件操作必須先打開文件
B. 對文件操作完畢后必須關閉文件
C. 對文件的讀寫操作可以用不同的文件指針
D. 可以順序讀寫文件也可以隨機讀寫文件
答案:ABCD。解析:對文件操作必須先打開文件,操作完畢后關閉文件;讀寫操作可以用不同的文件指針;文件可以順序讀寫也可以隨機讀寫。
【計算機二級C語言真題】相關文章:
計算機二級C語言筆試真題精選04-02
計算機二級C語言真題填空題03-04
計算機二級C語言歷年真題及答案05-29
計算機等級考試二級C語言真題09-26
2024年計算機二級考試C語言模擬真題09-26
下半年計算機二級C語言考試真題06-29
計算機二級C語言編程題題型03-30
2017計算機二級C語言知識鞏固題12-05