- 相關推薦
2024下半年全國計算機二級C語言考前練習題答案(通用7套)
無論是在學校還是在社會中,我們最不陌生的就是練習題了,通過這些形形色色的習題,使得我們得以有機會認識事物的方方面面,認識概括化圖式多樣化的具體變式,從而使我們對原理和規律的認識更加的深入。大家知道什么樣的習題才是好習題嗎?以下是小編整理的2024下半年全國計算機二級C語言考前練習題答案(通用7套),供大家參考借鑒,希望可以幫助到有需要的朋友。
下半年全國計算機二級C語言考前練習題答案 1
一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)
(1)下列數據結構中,屬于非線性結構的是
A.循環隊列
B.帶鏈隊列
C.二叉樹
D.帶鏈棧
(2)下列數據結果中,能夠按照“先進后出”原則存取數據的是
A.循環隊列
B.棧
C.隊列
D.二叉樹
(3)對于循環隊列,下列敘述中正確的是
A.隊頭指針是固定不變的
B.隊頭指針一定大于隊尾指針
C.隊頭指針一定小于隊尾指針
D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針
(4)算法的空間復雜度是指
A.算法在執行過程中所需要的計算機存儲空間
B.算法所處理的數據量
C.算法程序中的語句或指令條數
D.算法在執行過程中所需要的臨時工作單元數
(5)軟件設計中劃分模塊的一個準則是
A.低內聚低耦合
B.高內聚低耦合
C.低內聚高耦合
D. 高內聚高耦合
(6)下列選項中不屬于結構化程序設計原則的是
A.可封裝,
B. 自頂向下
C.模塊化
D. 逐步求精
(7)軟件詳細設計產生的圖如下:
該圖是
A.N-S圖
B.PAD圖
C.程序流程圖
D. E-R圖
(8)數據庫管理系統是
A.操作系統的一部分
B.在操作系統支持下的系統軟件
C.一種編譯系統
D. 一種操作系統
(9)在E-R圖中,用來表示實體聯系的圖形是
A.橢圓圖
B.矩形
C.菱形
D. 三角形
(10)有三個關系R,S和T如下:
其中關系T由關系R和S通過某種操作得到,該操作為
A.選擇
B.投影
C.交
D.并
(11)以下敘述中正確的是
A.程序設計的任務就是編寫程序代碼并上機調試
B.程序設計的任務就是確定所用數據結構
C.程序設計的任務就是確定所用算法
D.以上三種說法都不完整
(12)以下選項中,能用作用戶標識符的是
A.void
B.8_8
C._0_
D.unsigned
(13)閱讀以下程序
#include
main()
{ int case; float printF;
printf(“請輸入2個數:”);
scanf(“%d %f”,&case,&pjrintF);
printf(“%d %f ”,case,printF);
}
該程序編譯時產生錯誤,其出錯原因是
A.定義語句出錯,case是關鍵字,不能用作用戶自定義標識符
B.定義語句出錯,printF不能用作用戶自定義標識符
C.定義語句無錯,scanf不能作為輸入函數使用
D.定義語句無錯,printf不能輸出case的值
(14)表達式:(int)((double)9/2)-(9)%2的值是
A.0
B.3
C.4
D.5
(15)若有定義語句:int x=10;,則表達式x-=x+x的值為
A.-20
B.-10
C.0
D.10
(16)有以下程序
#include
main()
{ int a=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d ”,a=2*b);
}
程序運行后的輸出結果是
A.0,0
B.1,0
C.3,2
D.1,2
17)設有定義:int a=1,b=2,c=3;,以下語句中執行效果與其它三個不同的是
A.if(a>B. c=a,a=b,b=c;
B.if(a>B. {c=a,a=b,b=c;}
C.if(a>B. c=a;a=b;b=c;
D.if(a>B. {c=a;a=b;b=c;}
(18)有以下程序
#include
main()
{ int c=0,k;
for (k=1;k<3;k++)
switch (k)
{ default: c+=k
case 2: c++;break;
case 4: c+=2;break;
}
printf(“%d ”,C.;
}
程序運行后的輸出結果是
A.3
B.5
C.7
D.9
(19)以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是
A.if((a>b)&&(b>C.) k=1;
else k=0;
B.if((a>b)||(b>C. k=1;
else k=0;
C.if(a<=B. k=0;
else if(b<=C.k=1;
D.if(a>B. k=1;
else if(b>C.k=1;
else k=0;
20)有以下程序
#include
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);
}
程序運行后的輸出結果是
A.0
B.2
C.3
D.5
(21)有以下程序
#include
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf(“%d %d ”,k,n);
}
程序運行后的輸出結果是
A.0 2
B.1 3
C.5 7
D.1 2
(22)有以下定義語句,編譯時會出現編譯錯誤的是
A.char a=’a’;
B.char a=’ ’;
C.char a=’aa’;
D.char a=’x2d’;
(23)有以下程序
#include
main()
{ char c1,c2;
c1=’A’+’8’-‘4’;
c2=’A’+’8’-‘5’;
printf(“%c,%d ”,c1,c2);
}
已知字母A的ASCII碼為65,程序運行后的輸出結果是
A.E,68
B.D,69
C.E,D
D.輸出無定值
(24)有以下程序
#include
void fun(int p)
{ int d=2;
p=d++; printf(“%d”,p);}
main()
{ int a=1;
fun(a); printf(“%d ”,a);}
程序運行后的輸出結果是
A.32
B.12
C.21
D.22
(25)以下函數findmax擬實現在數組中查找最大值并作為函數值返回,但程序中有錯導致不能實現預定功能
#define MIN -2147483647
int findmax (int x[],int n)
{ int i,max;
for(i=0;i
{ max=MIN;
if(max
return max;
}
造成錯誤的原因是
A.定義語句int i,max;中max未賦初值
B.賦值語句max=MIN;中,不應給max賦MIN值
C.語句if(max
D.賦值語句max=MIN;放錯了位置
(26)有以下程序
#include
main()
{ int m=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf(“%d,%d,%d,%d ”,m,n,*p,*q);
}
程序運行后的輸出結果是
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≤i<4,則錯誤的賦值是
A.p=a
B.q[i]=a[i]
C.p=a[i]
D.p=&a[2][1]
(28)有以下程序
#include
#include
main()
{ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];
printf(“%d,”,strlen(p));printf(“%s ”,p);
}
程序運行后的輸出結果是
A.9,One*World
B.9,One*Dream
C.10,One*Dream
D.10,One*World
(29)有以下程序
#include
main()
{ int a[ ]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0:switch(a[i]%2)
{case 0:a[i]++;break;
case 1:a[i]--;
}break;
case 1:a[i[=0;
}
for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“ ”);
}
A.3 3 4 4
B.2 0 5 0
C.3 0 4 0
D.0 3 0 4
(30)有以下程序
#include
#include
main()
{ char a[10]=”abcd”;
printf(“%d,%d ”,strlen(a),sizeof(a));
}
程序運行后的輸出結果是
A.7,4
B.4,10
C.8,8
D.10,10
(31)下面是有關C語言字符數組的描述,其中錯誤的'是
A.不可以用賦值語句給字符數組名賦字符串
B.可以用輸入語句把字符串整體輸入給字符數組
C.字符數組中的內容不一定是字符串
D.字符數組只能存放字符串
(32)下列函數的功能是
fun(char * a,char * b)
{ while((*b=*a)!=’’) {a++,b++;} }
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進行比較
D.檢查a和b所指字符串中是否有’’
(33)設有以下函數
void fun(int n,char * s) {……}
則下面對函數指針的定義和賦值均是正確的是
A.void (*pf)(); pf=fun;
B.viod *pf(); pf=fun;
C.void *pf(); *pf=fun;
D.void (*pf)(int,char);pf=&fun;
(34)有以下程序
#include
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf(“%d ”,s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序運行以后的輸出結果是
A.7
B.8
C.9
D.10
(35)有以下程序
#include
#define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf(“%d,%d ’,s,t);
}
程序運行后的輸出結果是
A.10,64
B.10,10
C.64,10
D.64,64
(36)下面結構體的定義語句中,錯誤的是
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)設有定義:char *c;,以下選項中能夠使字符型指針c正確指向一個字符串的是
A.char str[ ]=”string”;c=str;
B.scanf(“%s”,C.;
C.c=get);
D.*c=”string”;
(38)有以下程序
#include
#include
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);jprintf(“%d,%s,%6.1f ”,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; )
程序運行后的輸出結果是
A.1001,ZhangDa,1098.0
B.1001,ZhangDa,1202.0
C.1001,ChangRong,1098.0
D.1001,ChangRong,1202.0
(39)若有以下程序段
int r=8;
printf(“%d ”,r>>1);
輸出結果是
A.16
B.8
C.4
D.2
(40)下列關于C語言文件的敘述中正確的是
A.文件由一系列數據依次排列組成,只能構成二進制文件
B.文件由結構序列組成,可以構成二進制文件或文本文件
C.文件由數據序列組成,可以構成二進制文件或文本文件
D.文件由字符序列組成,其類型只能是文本文件
下半年全國計算機二級C語言考前練習題答案 2
1.在公有派生情況下,有關派生類對象和基類對象的關系,下列敘述不正確的是( )
A.派生類的對象可以賦給基類的對象
B.派生類的對象可以初始化基類的引用
C.派生類的對象可以直接訪問基類中的成員
D.派生類的對象的地址可以賦給指向基類的'指針
【參考答案】 C
2.下列關于虛基類的描述,錯誤的是( )
A.設置虛基類的目的是為了消除二義性
B.虛基類的構造函數在非虛基類之后調用
C.若同一層中包含多個虛基類,這些基類的構造函數按它們說明的次序調用
D.若虛基類由非虛基類派生而來,則仍然先調用基類構造函數,再調用派生類的構造函數
【參考答案】 B
3.下列運算符中,在C++語言中不能重載的是( )
A.*
B.>=
C.:
D./
【參考答案】 C
4.下列程序的運行結果是( )
#include
class A
{ int a;
public:
A( ) {a=0;}
A(int aa)
{a=aa;
cout<
void main( )
{A x,y(2),z(3);
cout<
A.00
B.23
C.34
D.25
【參考答案】 B
5.判斷char型變量c是否為小寫字母的正確表達式是( )
A.′a′<=c<=′z′
B.(c>+A)&&(c<=z)
C.(′a′>=c)||(′z′<=c)
D.(c>=′a′)&&(c<=′z′)
【參考答案】 D
下半年全國計算機二級C語言考前練習題答案 3
1.下面對軟件特點描述不正確的是()。
A.軟件是一種邏輯實體,具有抽象性
B.軟件開發、運行對計算機系統具有依賴性
C.軟件開發涉及軟件知識產權、法律及心理等社會因素
D.軟件運行存在磨損和老化問題
【答案】D
【解析】軟件具有以下特點:①軟件具有抽象性,是一種邏輯實體;②軟件沒有明顯的制作過程;③軟件在使用期間不存在磨損、老化問題,④對硬件和環境具有依賴性;⑤軟件復雜性高,成本昂貴;⑥軟件開發涉及諸多的社會因素。D項描述是硬件存在的問題。答案選擇D選項。
2.下面描述不屬于軟件特點的是()。
A.軟件是一種邏輯實體,具有抽象性
B.軟件在使用中不存在磨損、老化問題
C.軟件復雜性高
D.軟件使用不涉及知識產權
【答案】D
【解析】軟件具有以下特點:①軟件是一種邏輯實體,具有抽象性;②軟件沒有明顯的制作過程,③軟件在使用期間不存在磨損、老化問題;④軟件對硬件和環境具有依賴性;⑤軟件復雜性高,成本昂貴,⑥軟件開發涉及諸多的社會因素,如知識產權等。答案選擇D選項。
3.下面對軟件特點描述錯誤的是()
A.軟件沒有明顯的制作過程
B.軟件是一種邏輯實體,不是物理實體,具有抽象性
C.軟件的開發、運行對計算機系統具有依賴性
D.軟件在使用中存在磨損、老化問題
【答案】D
【解析】軟件的特點有:①具有抽象性,是邏輯實體;②沒有明顯的制作過程;③在使用期間不存在磨損、老化問題;④對硬件和環境具有依賴性;⑤復雜性高,成本昂貴;⑥開發涉及諸多的社會因素。答案選擇D選項。
4.軟件按功能可以分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于系統軟件的是()。
A.編輯軟件
B.操作系統
C.教務管理系統
D.瀏覽器
【答案】B
【解析】系統軟件是控制和協調計算機及外部設備,支持應用軟件開發和運行的軟件,操作系統是系統軟件;支撐軟件是支撐各種軟件的開發與維護的軟件,又稱為軟件開發環境,瀏覽器屬于支撐軟件;應用軟件是用戶可以使用的各種程序設計語言,以及用各種程序設計語言編制的應用程序的集合,編輯軟件、教務管理軟件屬于應用軟件。答案選擇B選項。
5.軟件按功能可以分為應用軟件、系統軟件和支撐軟件(或工具軟件),下面屬于應用軟件的是()。
A.學生成績管理系統
B. C語言編譯程序
C. UNIX操作系統
D.數據庫管理系統
【答案】A
【解析】應用軟件是為解決特定領域的應用而開發的軟件,如事務處理軟件,工程與科學計算軟件,學生成績管理系統、教務管理系統、瀏覽器、編輯軟件等應用性質不同的各種軟件。系統軟件是計算機管理自身資源,提高計算機使用效率并服務于其他程序的軟件,如操作系統,編譯程序,匯編程序,數據庫管理系統等。支撐軟件是介于系統軟件和應用軟件之間,協助用戶開發軟件的工具性軟件,包括輔助和支持開發和維護應用軟件的工具軟件,如需求分析工具軟件,設計工具軟件,編碼工具軟件,測試工具軟件,維護工具軟件等。答案選擇A選項。
6.數據庫管理系統是()。
A.操作系統的一部分
B.在操作系統支持下的系統軟件
C.一種編譯系統
D.一種操作系統
【答案】B
【解析】系統軟件主要包括:①操作系統軟件;②各種語言的解釋程序和編譯程序;③各種服務性程序;④各種數據庫管理系統。數據庫管理系統是一種系統軟件,負責數據庫中的數據組織、數組操縱、數據維護、控制和保護以及數據服務等。答案選擇B選項。
7.數據庫管理系統是()。
A.操作系統的一部分
B.在操作系統支持下的.系統軟件
C.一種編譯系統
D.一種通信軟件系統
【答案】B
【解析】系統軟件主要包括:①操作系統軟件;②各種語言的解釋程序和編譯程序;③各種服務性程序;④各種數據庫管理系統。數據庫管理系統是一種系統軟件,負責數據庫中的數據組織、數組操縱、數據維護、控制和保護以及數據服務等。答案選擇B選項。
8.下列選項中,不屬于數據管理員(DBA)職責的是()。
A.數據庫維護
B.數據庫設計
C.改善系統性能,提高系統效率
D.數據類型轉換
【答案】D
【解析】數據庫管理員對數據庫進行規劃、設計、維護、監視等,其主要工作有:①數據庫設計,主要是對數據模式進行設計,②數據庫維護,對數據庫中的數據安全性、完整性、并發控制及系統恢復、數據定期轉儲等進行實施與維護;③改善系統性能,不斷調整內部結構,提高系統效率。答案選擇D選項。
9.數據庫系統的核心是()。
A.數據模型
B.軟件開發
C.數據庫設計
D.數據庫管理系統
【答案】D
【解析】數據庫系統包括四個部分:數據庫、數據庫管理系統、數據庫應用程序、數據庫管理員。其中DBMS是為數據庫的建立、使用和維護而配置的軟件,是數據庫系統的核心。答案選擇D選項。
10.下列敘述中正確的是()。
A.數據庫系統是一個獨立的系統,不需要操作系統的支持
B.數據庫技術的根本目標是要解決數據的共享問題
C.數據庫管理系統就是數據庫系統
D.數據庫系統由數據庫應用系統、數據庫和數據庫管理系統組成。
【答案】B
【解析】A項錯誤,數據庫需要調用操作系統的接口,需要操作系統的支持;C項錯誤,數據庫管理系統(DBMS)是數據庫系統的核心,負責數據庫中的數據組織、數據操作、數據維護、控制及保護和數據服務等;D項錯誤,數據庫應用系統是數據庫系統再加上應用軟件及應用界面這三者所組成,具體包括:數據庫、數據庫管理系統、數據庫管理員、硬件平臺、軟件平臺、應用軟件、應用界面。答案選擇B選項。
下半年全國計算機二級C語言考前練習題答案 4
1. 下列敘述中正確的是( )。
A. 循環隊列是隊列的一種鏈式存儲結構
B. 循環隊列是一種邏輯結構
C. 循環隊列是隊列的一種順序存儲結構
D. 循環隊列是非線性結構
【答案】C
【解析】線性表常用存儲結構為:①順序存儲結構,物理上連續存儲,空間位置隱含邏輯位置,②鏈式存儲結構,存儲上不連續,通過指針相連。循環隊列是指用一段地址連續的存儲單元存儲數據元素,定義兩個游標:指向隊頭的游標(front)、指向隊尾的游標(rear)。
2. 下列敘述中正確的是( )。
A. 棧是一種先進先出的線性表
B. 隊列是一種后進先出的線性表
C. 棧與隊列都是非線性結構
D. 以上三種說法都不對
【答案】D
【解析】棧和隊列都是操作受限的線性表:棧只能在棧頂插入和刪除元素,按照先進后出的原則組織數據;隊列只能在隊頭刪除元素,在隊尾插入元素,按照先進先出的原則組織數據。對于每一個節點都有一個前件和一個后件,屬于線性結構。
3. 一棵二叉樹共有25個結點,其中5個是葉子結點,則度為1的結點數為( )。
A. 16
B. 10
C. 6
D. 4
【答案】A
【解析】二叉樹中,度為0的結點(即葉子結點)比度為二的結點多1個,而度為0、1、2的結點相加等于總結點數25,所以度為1的結點數為25-5-(5-1)=16。
4. 在下列模式中,能夠給出數據庫物理存儲結構與物理存取方法的是( )。
A. 外模式
B. 內模式
C. 概念模式
D. 邏輯模式
【答案】B
【解析】數據庫管理系統的三級模式包括:①外模式,也稱子模式、用戶模式,是指數據庫用戶所看到的數據結構,是用戶看到的數據視圖;②模式,也稱邏輯模式,是數據庫中對全體數據的邏輯結構和特性的描述,是所有用戶所見到的數據視圖的總和;③內模式,也稱存儲模式、物理模式,是指數據在數據庫系統內的存儲介質上的'表示,是對數據的物理結構和存取方式的描述。答案選擇B選項。
5. 在滿足實體完整性約束的條件下( )。
A. 一個關系中應該有一個或多個候選關鍵字
B. 一個關系中只能有一個候選關鍵字
C. 一個關系中必須有多個候選關鍵字
D. 一個關系中可以沒有候選關鍵字
【答案】A
【解析】在關系R中如記錄完全函數依賴于屬性(組)X,則稱X為關系R中的一個候選關鍵字。候選關鍵字的性質有①在一個關系中,候選關鍵字可以有多個,②任何兩條記錄候選關鍵字值都是不相同的;③關鍵字由一個屬性構成,也可能由多個屬性構成;④在任何關系中至少有一個關鍵字。所以,在滿足實體完整性約束的條件下,一個關系中應該有一個或多個候選關鍵字。答案選擇A選項。
6. 一個棧的初始狀態為空。現將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是( )。
A. 123456ABCDE
B. EDCBA54321
C. ABCDE12345
D. 54321EDCBA
【答案】B
【解析】棧是按照“先進后出”的原則組織數據的,入棧的順序為12345ABCDE,則依次出棧的順序應為其逆序,即EDCBA54321。答案選擇B選項。
7. 下列敘述中正確的是( )。
A. 循環隊列有隊頭和隊尾兩個指針,因此,循環隊列是非線性結構
B. 在循環隊列中,只需要隊頭指針就能反映隊列中元素的動態變化情況
C. 在循環隊列中,只需要隊尾指針就能反映隊列中元素的動態變化情況
D. 循環隊列中元素的個數是由隊頭指針和隊尾指針共同決定
【答案】D
【解析】D項正確,從隊頭指針front指向的后一個位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素。A項錯誤,循環隊列是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環形空間,其存儲結構依然是順序的BC兩項錯誤,在循環隊列中,每進行一次入隊運算,隊尾指針就進一,每進行一次出隊運算,隊頭指針就進一,可見由隊頭指針和隊尾指針一起反映隊列中元素的動態變化情況。
8. 在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數是( )。
A. 0(n)
B. O(n2)
C. O (log2n)
D. O(nlog2n)
【答案】C
【解析】二分查找的最壞情況是不斷的二分直至無法再分時,仍然沒有查找成功。對于有序的線性表,二分查找法只需比較log2n次。答案選擇C選項。
9. 下列敘述中正確的是( )。
A. 順序存儲結構的存儲一定是連續的,鏈式存儲結構的存儲空間不一定是連續的
B. 順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構
C. 順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表
D. 鏈式存儲結構比順序存儲結構節省存儲空間
【答案】A
【解析】A項正確,在順序存儲結構中所有元素所占的存儲空間是連續的,而在鏈式存儲結構中,存儲數據結構的存儲空間可以不連續。
10. 數據流圖中帶有箭頭的線段表示的是( )。
A. 控制流
B. 事件驅動
C. 模塊調用
D. 數據流
【答案】D
【解析】數據流圖基本符號的含義:①矩形表示數據的外部實體,②圓角的矩形表示變換數據的處理邏輯;③缺少右半邊的矩形表示數據的存儲;④箭頭表示數據流。答案選擇D選項。
下半年全國計算機二級C語言考前練習題答案 5
1.C語言編譯程序的功能是()。
A.執行一個C語言編寫的源程序
B.把C源程序翻譯成ASCII碼
C.把C源程序翻譯成機器代碼
D.把C源程序與系統提供的庫函數組合成一個二進制執行文件
【答案】C
【解析】編譯程序的功能是將“高級語言”翻譯為“機器語言”。每條C語言語句,經過編譯最終都將轉換成二進制的機器指令。答案選擇C選項。
2.計算機高級語言程序的運行方法有編譯執行和解釋執行兩種,以下敘述中正確的是()。
A. C語言程序僅可以編譯執行
B. C語言程序僅可以解釋執行
C. C語言程序既可以編譯執行,又可以解釋執行;
D.以上說法都不對
【答案】A
【解析】編譯執行是指程序執行前需要一個專門的編譯過程把程序編譯成機器語言的文件,再次運行時不需要重新翻譯,執行效率高;解釋執行是指每個語句都是執行的時候才翻譯,執行效率低。用C語言編寫的程序必須經過編譯器編譯后,轉換為二進制的機器指令來運行。答案選擇A選項。
3.以下敘述中錯誤的是()。
A. C語言中的每條可執行語句和非執行語句最終都將被轉換成二進制的機器指令
B. C程序經過編譯、鏈接步驟之后才能形成一個真正可執行的二進制機器指令文件
C.用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中
D. C語言源程序經編譯后生成后綴為的目標程序
【答案】A
【解析】A項錯誤,注釋語句不會被翻譯成二進制的機器指令。C源程序經過C編譯程序編譯之后生成后綴為的二進制文件(稱為目標文件),然后由“鏈接程序”(Link)的軟件把文件與各種庫函數連接起來生成一個后綴為的可執行文件。答案選擇A選項。
4.以下敘述中錯誤的是()
A.C語言的可執行程序是由一系列機器指令構成的
B.用C語言編寫的源程序不能直接在計算機上運行
C.通過編譯得到的二進制目標程序需要連接才可以運行
D.在沒有安裝C語言集成開發環境的機器上不能運行C源程序生成的exe文件
【答案】D
【解析】A項正確,C語言的可執行程序是由一系列機器指令組成的;BC項正確,用C語言編寫的源程序必須經過編譯,生成二進制目標代碼,再經過連接才能運行;D項錯誤,C語言經過編譯鏈接后的二進制目標代碼可以脫離C語言集成開發環境獨立運行。答案選擇D選項。
5.以下敘述正確的是()。
A. C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為的二進制文件
B. C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為的可執行文件
C. C編譯程序把文件后綴為的二進制文件編譯成文件后綴為的可執行文件
D.鏈接程序把文件后綴為.c的源程序文件鏈接成文件后綴為的`可執行文件
【答案】A
【解析】C編譯程序把文件后綴為C的源程序文件編譯成文件后綴為的二進制文件,鏈接將一個或多個目標文件與程序用到的庫文件連接起來,形成一個可以在操作系統直接運行的執行程序,故排除B、C、D項,答案選擇A選項。
6.以下敘述中正確的是(A.在C語言程序中,main函數必須放在其他函數的最前面
B.每個后綴為.c的C語言源程序都可以單獨進行編譯
C.在C語言程序中,只有main函數才可以單獨進行編譯
D.每個后綴為.c的C語言源程序都應該包含一個main函數
【答案】B
【解析】main函數可以在程序的任何位置。每一個可執行的C程序都必須有一個且只能有一個主函數。后綴名為.c的C語言源程序都可以單獨進行編譯。main函數只是讓執行程序的系統知道該從哪里開始執行程序(從主函數處執行),其他有關這個程序的子函數是通過函數調用來實現其功能(不需main函數)。答案選擇B選項。
7.以下敘述中錯誤的是()。
A. C語言編寫的函數源程序,其文件名后綴可以是.c
B. C語言編寫的函數都可以作為一個獨立的源程序文件
C. C語言編寫的每個函數都可以進行獨立的編譯并執行;
D.一個C語言程序只能有一個主函數
【答案】C
【解析】C源程序經過C編譯程序編譯之后生成一個后綴為的二進制文件(稱為目標文件),然后由稱為“連接程序”(Link)的軟件,把此文件與C語言提供的各種庫函數連接起來生成一個后綴為的可執行文件。只有含有main函數的經過編譯鏈接才能執行。答案選擇C選項。
8.以下敘述中錯誤的是(A.一個C程序可以包含多個不同名的函數
B.一個C程序只能有一個主函數
C. C程序在書寫時,有嚴格的縮進要求,否則不能編譯通過
D. C程序的主函數必須用main作為函數名
【答案】C
【解析】一個C程序有且只有一個主函數main。一個C程序可以包含多個不同名字的子函數。C程序在書寫時沒有嚴格的縮進要求。答案選擇C選項。
9.以下敘述中正確的是()。
A. C語言規定必須用main作為主函數名,程序將從此開始執行
B.可以在程序中由用戶指定任意一個函數作為主函數,程序將從此開始執行
C. C語言程序將從源程序中第一個函數開始執行;
D. main的各種大小寫拼寫形式都可以作為主函數名,如:MAIN,Main等
【答案】A
【解析】用戶不能指定某函數為主函數,C語言規定,程序從main函數開始執行,從main函數退出,C語言函數名區別大小寫。答案選擇A選項。
10.下列敘述中錯誤的是()。
A. C程序可以由一個或多個函數組成
B. C程序可以由多個程序文件組成
C.一個C語言程序只能實現一種算法
D.一個C函數可以單獨作為一個C程序文件存在
【答案】C
【解析】一個C程序可以有一個或多個程序文件,也可以有一個或多個函數,所以一個C語言程序可以實現多種算法,答案選擇C選項。
下半年全國計算機二級C語言考前練習題答案 6
一、選擇題。
1). 下列關于棧的描述中正確的是( )
A.在棧中只能插入元素而不能刪除元素
B.在棧中只能刪除元素而不能插入元素
C.棧是特殊的線性表,只能在一端插入或刪除元素
D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素
正確答案:C
答案解析:棧是限定在一端進行插入與刪除的線性表,在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。
2). 在一個容量為15的循環隊列中,若頭指針front=6,尾指針rear=9,則循環隊列中的元素個數為( )
A.2
B.3
C.4
D.5
正確答案:B
答案解析:循環隊列中,rear表示尾指針,front表示頭指針,當有元素入隊時,rear=rear+1,而元素出隊的時候,front=front+1,當rear值大于front值時,隊列中的元素個數為rear-front,當rear的值小于front時,列隊中的元素個數為rear-front+m(m表示隊列的'容量)。
3). 數據處理的最小單位是( )
A.數據
B.數據元素
C.數據項
D.數據結構
正確答案:C
4). 棧和隊列的共同點是( )
A.都是先進后出
B.都是先進先出
C.只允許在端點處插入和刪除元素
D.沒有共同點
正確答案:C
5). 在深度為5的滿二叉樹中,葉子結點的個數為
A.32
B.31
C.16
D.15
正確答案:C
答案解析:滿二叉樹是指除最后一層外,每一層上的所有結點都有兩個葉子結點。在滿二叉樹中,層上的結點數都達到最大值,即在滿二叉樹的第k層上有2k-1個結點,且深度為m的滿二叉樹有2m-1個結點。
6). 一個棧的初始狀態為空。現將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是( )
A.1,2,3,A,B,C
B.C,B,A,1,2,3
C.C,B,A,3,2,1
D.1,2,3,C,B,A
正確答案:C
答案解析:棧是按照″先進后出″或″后進先出″的原則組織數據的。所以出棧順序是CBA321。
【下半年全國計算機二級C語言考前練習題答案】相關文章:
計算機二級C語言考前練習題及答案10-27
2017計算機二級C語言考前練習題及答案06-18
全國計算機二級c語言練習題及答案10-01
C語言考前練習題及答案11-10