




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
國家二級C語言機試(選擇題)模擬試
卷第1套
一、選擇題(本題共25題,每題1.0分,共25分。)
1、下列數據結構中,屬于非線性結構的是
A、循環隊列
B、帶鏈隊列
C、二叉樹
D、帶鏈棧
標準答案:c
知識之解析:根據數據結構中各數據元素之間的前后件關系的復雜程度,一般將數
據結構分為兩大類:線性結構和非線性結構。循環隊列、帶鏈隊列和帶鏈棧都是線
性結構,而二叉樹是非線性結構。
2、某二叉樹的中序遍歷序列為CBADE,后序遍歷序列為CBEDA,則前序遍歷序
列為()。
A、CBADE
B、CBEDA
C、ABCDE
D、EDCBA
標準答案:C
知識點解析:二叉樹的后序遍歷序列為CBEDA,由于后序遍歷最后訪問根結點,
可以確定該二叉樹的根結點是A。再由中序遍歷序列為CBADE,可以得到子序列
(cB)一定在左子樹中,子序列(DE)一定在右子樹中.結點C、B在中序序列和后序
序列中順序未變,說明結點B是結點c的父結點;結點D、E在中序序列和后序序
列中順序相反,說明結點D是結點E的父結點。因此該二義樹的前序遍歷序歹J為
ABcDEo
3、已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將
變量c中的大寫字母轉換為對應小寫字母的語句是
A、c=('A'+c)%26-'a'
B、c=C+32
C、c=C-'A+a'
D、c=(C-'A,)%26+'a'
標準答案:A
知識點解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所
以選項C)能將大寫字符C的ASCII代碼轉換為小寫字符c的ASCII代碼:選項D)
和C)左側的表達式都是大寫字符c與大寫字符A的差與言的ASCII代碼的和就是
小寫字符c的ASCH代碼。而選項A)中應該是加上而不是減去
4、設有定義:inta;floatb;執行scanf("%2d%?,&a,&b);語句時,若從鍵盤
輸入876543.0則a和b的值分別是
A、876和543.0
B、87和6.0
C、87和543.0
D、76和543.0
標準答案:B
知識點解析:在輸入函數scanf的輸入格式符%2d%f中,2d表示輸入的數據的寬
度為2,所以當從鍵盤輸入876543.0VCR>時,這時把輸入數字串的前兩位87
賦給變量a,然后將緊接著將6按照格式控制符%£的形式賦給變量b,所以b的值
為6.000000o
5、有兩個關系R,S如下,由關系R和S通過運算得到關系T,則所使用的操作
為()。
A、并
B、自然連接
C、笛卡爾積
D、差
標準答案:D
知識點解析:由關系可以看出,關系T是由關系R中減去關系R和關系S共有的
元組得到的,所以答案選擇D。
6、若有以下程序main(){inta=6,b=0,c=0;for(;a;){b+=a;a-=++C;)
printf,%d,%d,%dkn”,a,b,c);)則程序的輸出結果是
A、1,14,3
B、0,18,3
C、0,14,3
D、0,14,6
標準答案:C
知識點解析:循環體執行三次,a初值6,第一次執行循環體,b=6,題a=5。繼續
執行循環體,b=ll,a=3,第三次執行循環體,b=14,a=0,循環退出。
7、有以下程序#includemain。{inti,j,m=l;for(i=1:i<3;i++){for(j=3;j>0;
j-){if(i*j>3)break;m*=i*j;}}printf("m=%d\if,m);}程序運行后的輸出結
果是
A、m=2
m=4
C、m=5
D^m=6
標準答案:D
知識點解析:這道題考查了for循環的嵌套應用。對于外層for循環來說,變量i從
1增到2,循環執行2次。當變量i的值等于1時,對于內層for循環來說,變量i
從3減到1,求得變量m的值等于6。當變量i的值等于2時,第一遍執行內層for
循環,變量i的值等于3,那么i*i的值等于6,其值大于3,這時執行break語
句,退出內層for循環的執行。所以程序輸出變量m的值為6。
8、若有定義語句doublex,y,*px,*py;,執行了px=&x;py=&y;之后,正確
的輸入語句是()。
A、seanf("%If%le",px,py);
B、seanf("%f%f"&x,&y);
C、sccanf(H%f%f',x,y);
D、scanf("%If%If,x,y);
標準答案:A
知識點解析:因為x和y都是double型數據,所以輸入時的格式字符應為%住所
以B、C選項錯誤。D選項中的scanf("%D%lf],x,y);應為scanf(”%lf%lF,
&x,&y);o
9、以下選項中合法的變量是()。
A、_10_
B、5a
C、A%
D^sizeof
標準答案:A
知識點解析:C語言規定,標識符由字母(A~Z,a?z)、數字(0?9)或者下劃線
(_)組成,并且第一個字符必須為字母或者下劃線.變量為用戶標識符.命名方
法需要遵循標識符的命名規則,答案選A。
10、設變量均已正確定義并賦值,以下與其他三組輸出結果不同的一組語句是
x++;printf("%d\n",x);
B、++x;printf(',%d\n",x);
C、n=x++:printf("%d\n",n);
D^n=++x;printf("%d\n",n);
標準答案:c
知識點詞析:本題考查自增運算符。++在前表示先自增然后使用,++在后面表示
先使用然后自增。選項A中首先執行x++,執行完后x自增1,然后printf輸H的
是x自增后的值;選項B首先執行++x,x的值增加1,接著輸出x的值:選項C
中++在x的后面,因此n的值是x自增前的值,printf輸出的是x自增前的值;選
項D中++在x的前面,因此x首先自增,然后再賦值給n,n的值是x自增后的
值,輸出的也是x自增后的值。
11、以F選項中合法的常量是
A、2.7e
B、999
C、123E0.2
D、OXab
標準答案:D
知識點解析:Oxab是十六進制表示的常量。
12、若變量已正確定義為int型,要通過語句scanf(”%d,%d,%d",&a,&b,
&c);紿a賦值1、紿b賦值2、給c賦值3,以下輸入形式中錯誤的是(注:□代表
一個空格符)
A、□□□1.2,3
B、1,口口口2,口口口3
C、I.2.3
D^1口2口3
標準答案:D
知識點解析:本題主要考查scanf函數的輸入格式問題。scanf函數的一般形式為:
scanf(格式控制字符串,地址1,地址2,…);格式控制字符串是由雙撇號括起來
的字符串,它主要由兩種類型的字符組成:①格式說明符由“%''和格式字符組
成,如%“,%d,%s,%f等。其作用是將輸入的數據轉換為指定的格式,賦給
scanf的二個參量(是地址1)所指定的內存單元(可能一次使用多個)中。格式說明以
“%”字符為標志;②普通字符,是需要用戶在輸入時原樣輸入的字符。在本題中
格式控制字符串為"%d,%d,%d",表示按十進制輸入三個數據。要求在輸入數
據時,兩個數據間一定以一個逗號“,”作為問隔符,
13^若有以下程序main。{inta=l,b=2,c=3,d=4.r=0;if(a!=l);elser=1;
if(b==2)r+=2;if(c!=3);r+=3;if(d==4)r+=4;printf(H%d\n",r);)則程序的輸
出結果是
A、7
B、10
C、6
D、3
標準答案:B
知識點解析:程序代碼中有四條并列的if語句,第一條if表達式a!二l不成立,執
行else分支,r=l:第二條if表達式b==2成立,執行r+=2,r=3;第三條if語句
c!=3不成立,執行語句r+=3,r=6;第四條if分支d==4成立,執行該if分支語
句,r+=4,r=10o
14、有以下程序main(){intk=5;while(-k)printf("%d”,k-=3);printf("\n");)
執行后的輸出結果是
A、2
B、4
C、I
D、死循環
標準答案:C
知識點解析:在程序語句中,k的初始值為5,進行第1次while循環后?k自減1為
4,菲0,執行循環體里的printf語句,輸出1,此時k的值變為1。程序執行第2
次循環時,k自減1變為0,為假,退出while循環語句。所以程序的最后結果為
lo
15、若有定義語句:inta[2][3],*p[3];則以下語句中正確的是
A、pL0J=&allJL2J;
B、p[O]=a;
C、p=a;
D、p[l]=&a;
標準答案:A
知識點解析:定義語句“inta[2][3],*p[3];”定義了整型二維數組a[2][3]和指針數
組p[3]。在C語言中,二維數組名也是一個存放地址常量的指針,其值為二維數
組中第一行的地址。所以選項A中,把整型數組a[0]的指針賦給p[0]。
16,有以下程序#includemain(){inta=7;while(a—);printf("%d\n",a);}程序運
行后的輸出結果是()。
A、-1
B、0
C、I
D、7
標準答案:A
知識點解析:考查while循環語句。while(a-);的循環條件是若a值不為0,則循
環,每次判定循環條件的時候是選用a進行判定,然后a自減1,再執行循環體的
空語句”;當a=0的時候,循環條件不滿足,不再進行循環,a-后.a的值為-I.
答案選A。
17、以下程序的主函數中調用了其前面定義的fun函數#include<stdio.h>main()
{doublea[I5],k:k=fun(a);}則以下選項中錯誤的fun函數首部是
A、doublefun(doublea[15])
B、doublefun(double*a)
C^doublefun(doublea[J
D、doublefun(doublea)
標準答案:D
知識點解析:本題考查函數的定義和調用。根據對fun函數的調用可知,fun函數
的返回值為double類型的,輸入參數是一個double類型的地址(指針),因此選項
D)錯誤。
18、程序中若有如卜說明和定義語句charfun(char*);main(){char*s="one",
a[5]={0},(*fl)()=fun,ch;}以下選項中對函數fun的正確調用語句是
A、(*fl)(a);
B、*fl(*s);
C、fun(a);
D、ch=*fl(s);
標準答案:A
知識點解析:本題主要考查函數調用和函數指針的使用。根據定義fl是一個函數
指針,.且指向fun函數,因此可以使用函數指針來調用函數。使用函數指針調用函
數的時候使用.運算符,即*門和fun是一樣的,fun函數有參數,通過門調用fun
函數寫法為:(*fl)(a),括號是必須的,這樣才能保證各部分正確結合。
19、若有以下定義定*pt=x;則對x數組元素的正確引用是
A、*(x+3)
B、*&x[10]
C、*(pt+10)
D、pt+3
標準答案:A
知識點解析:本題考查韋釗的調用。x優表x[10|數組的首地址指針,pt是指向
x[10]數組的首地址的指針,即兩者指向同一內存單元。+(x+3)等同于x[3]。
20、有下列程序:structS{intn;inta[20];);voidflint*a,intn){inti;for(i=0;
i<n-l;i++)a[i]+=i;)main(){inti;structSs={10,{2,3,1,6,8,7>5,4,
10,9));f(s.a,s.n);for(i=0;i<s.n;i++)printf("%d?",s.a[i]);}程序
運行后的輸出結果是
A、3,4,2,7,9,8,6,5,11,10,
B、2,3,1,6,8,7,5,4,10,9,
C、2.4.3.9.12.12.IL11.18.9.
D、I,2,3,6,8,7,5,4,10,9,
標準答案:C
知識點解析:void{(int*aintn)函數的功能是對數組a[]的每一個元素加上其下標的
值。所以在main。函數中f(s,a,s,n)語句會調用f(int*a,intn)函數,此時指針a
指向數組s.a={2,3,1,6,8,7,5,4,10,9),n=10;然后執行for(i=0;iV
n-1;i++)a[i]+=i;語句,也就是從0開始到8對數組S.a={2,3,1,6,8,7,
5,4,10,9}中的每一個元素加上其下標值。
21、有以下程序#inckide<stdio.h>#include<string.h>voidfun(chars[][10],intn)
{chart;inti,j;for(i=0;i<n-l;i++)for(j=i+l;j<n;j++)if(s[i][O]>
s|j][O]){t=s[i][O];s[i][O]=s[j][O];sU][O]=t;))main(){char
ss[5][10]=("bcc,,;,bbcc",,,xy","aaaacc","aabcc");fun(ss,5);
printf("%s,%s\n'\ss[0],ss[4]);}程序的運行結果是
A、aaaacc,xy
B>bcc,aabcc
C^xy,aaaacc
D^aabcc,bcc
標準答案:C
知識點解析:函數fun(chars[][10],intn)通過兩重for循環語句,比較二維字符數
組s口[10]的每個字符串的首字符大小,如果前一個字符串首字符大于后一個字符
串的首字符,則交換這兩個字符串的首字符。在主函數中,語句「un(ss,5)的作用
是對二維字符數組ss[5][10]的5個字符串的首字符進行從小到大的排序,不影響各
個字符串另外的字符。所以排序結束后,5個字符串的第一個字符依次變為a、a、
b、b和x;最后輸出第1個和第4個字符串。
22、下列鏈表中,其邏輯結構屬于非線性結構的是
A、二叉鏈表
B、循環鏈表
C、雙向鏈表
D、帶鏈的棧
標準答案:A
知識點解析?:在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這
樣的鏈表為單鏈表或線性鏈表。帶鏈的棧可以用來收集訂算機存儲空間中所有空閑
的存儲結點,是線性表。在單鏈表中的結點中增加一個指針域指向它的直接前件,
這樣的鏈表,就稱為雙向鏈表(一個結點中含有兩個指針),也是線性鏈表。循環
鏈表具有單鏈表的特征,但又不需要增加額外的存貯空間,僅對表的鏈接方式稍做
改變,使得對表的處理更加方便靈活,屬于線性鏈表。二叉鏈表是二叉樹的物理實
現,是一種存儲結構,不屬于線性結構。答案為A選項。
23、結構化程序設計的基本原則不包括()o
A、多態性
R、自頂向下
C、模塊化
D、逐步求精
標準答案:A
知識點解析:結構化程序設計的思想包括:自頂向下、逐步求精、模塊化、限制使
用golo語句,所以選擇A)。
24、由以下while構成的循環,循環體執行的次數是intk=O;while(k=l)k++;
A、有語法錯,不能執行
B、一次也不執行
C、執行一次
D、無限次
標準答案:D
知識點解析:本題考察while語句,while語句的語義是:計算表達式的值,當值
為真(非0)時,執行循環體語句。k=l為賦值語句,即k的值等于1。while(k=l)=
whilc(l),是死循環,執行無限次。因此A選項正確。
25、數據庫設計中反映用戶對數據要求的模式是
A、內模式
B、概念模式
C、外模式
D、設計模式
標準答案:C
知識點解析:數據庫系統的三級模式是概念模式、外模式和內模式。概念模式是數
據庫系統中全局數據邏輯結構的描述,是全體用戶公共數據視圖。外模式也稱子模
式或用戶模式,它是用戶的數據視圖,給出了每個用戶的局部數據描述,所以選擇
C)o內模式又稱物理模式,它給出了數據庫物理存儲結構與物理存取方法。
國家二級C語言機試(選擇題)模擬試
卷第2套
一、選擇題(本題共25題,每題1.0分,共25分。)
1、下列描述中正確的是
A、一個邏輯數據結構只能有一種存儲結構
B、數據的邏輯結構屬于線性結構,存儲結構屬于非線性結構
C、一個邏輯數據結構可以有多種存儲結構,且各種存儲結構不影響數據處理的效
率
D、一個邏輯數據結構可以有多種存儲結構,且各種存儲結構影響數據處理的效率
標準答案:D
知識點解析:數據的邏輯結構是指數據集合中各數據元素之間所固有的邏輯關系;
數據的存儲結構是在對數據進行處理時,各數據元素在計算機中的存儲關系。數據
的存儲結構是指數據的邏輯結構在計算機中的表示,一種邏輯結構可以表示成多種
存儲結構:而采用不同的存儲結構,其數據處理的效率是不同的。
2、某二叉樹共有12個結點,其中葉子結點只有1個。則該二叉樹的深度為(根結
點在第1層)
A、3
B、6
C、8
D、12
標準答案:D
知識點解析:根據二叉樹的性質,度為0的結點(即葉子結點)總是比度為2的結點
多一個。題目中的二叉樹的葉子結點為1,因此度為2的結點的數目為0,故該二
叉樹為12層,每層只有一個結點。
3、下面對軟件測試描述錯誤的是()。
A、嚴格執行測試計劃,排除測試的隨意性
B、隨機地選取測試數據
C、軟件測試的目的是發現錯誤
D、軟件測試是保證軟件質量的重要手段
標準答案:B
知識點解析:軟件測試的準則如下:①所有測試都應追溯到需求。②嚴格執行測
試計劃,排除測試的隨意性。③充分注意測試中的群集現象。④程序員應避免檢
查自己的程序。⑤窮舉測試不可能。⑥妥善保存測試計劃、測試用例、出錯統計
和最終分析報告,為維手提供方便。
4、設有定義:“kmgx=123450L;”,則以下能夠正確輸出變量x的是()。
A、printf("x=%d\n",x);
B、printf("x=%id\n",x);
C^printf(nx=%dL\n",x);
D、printf("x=%ld\n'\x);
標準答案:D
知識點解析:C語言規定,輸出long型數值的格式符為%ld。
5、軟件詳細設計產生的圖如下,該圖是
A、N-S圖
B、PAD圖
C、程序流程圖
D、E-R圖
標準答案:C
知識點解析:本題考查程序流程圖的概念,流程圖直觀地描述了程序的具體步驟。
6、若有以下程序main(){inta=6,b=0,c=0;for(;a&&(b=0);){b+=a;a-
=C++;}printf(”%d,%d,%d\n",a,b,c);}則程序的輸出結果是
A、6,0,0
B、5,6,0
C、6,6,1
D、5,6,1
標準答案:C
知識點解析:循環條件a&&(b=O),a非零同時b=0則執行循環體,否則退出,循
環體執行一次,此時b=6,a=6,c=lo
7、有以下程序:#include<stdio.h>#defineN3voidfun(inta[][N],intb[]){int
i,j;for(i=0;i<=2;i++){intmax=a[i][0];for(j=i;j<=2;j++)if(max<a|i][j])
max=a[i][j]:b[i]=max;)}main(){intx[N][N]={1,2,3,4,5,6,7,8,
9),y[NJ,i;tun(x,y);tor(i=0;i<=2;i++){pnntf("%d,",yUJ);}pnntt'C
\n");}程序運行后的輸出結果是()。
A、2,4,8,
B、3,6,9,
C、3,5,7,
D^1,3,5,
標準答案:B
知識點解析:fun函數功能是把數組a的每一行的最大值賦給b,a的第一行的最大
值是3,第二行的最大值是6,第三行的最大值是9,所以答案是3,6,9,o
8、以下選項中合法的標識符是()。
A、_11
B、1-1
C、1_1
D、1__
標準答率:A
知識點解析:C語言規定,標識符由字母(A?Z,a~z)、數字(0?9)或者下劃線
(一)組成,并且第一個字符必須為字母或者下劃線,答案選A。
9、設有定義:intx=2;以下表達式中,值不為6的是
A、2*x,x+=2
B、x++,2*x
C^x*=(l+x)
D、x*=x+l
標準答案:A
知識點解析?:本題考查逗號表達式。逗號表達式的求解過程是:先求解表達式1,
再求解表達式2,整個逗號表達式的值是表達式2的值,因此,選項A)中值為4;
選項B)中,值為6。選項C)中x*=x+l等價于x=x*(x+l),所以等于6:選項D)與
選項C)等價,結果也為6。
10、設有定義:intx|2]|3];則以下關于二維數組X的敘述錯誤的是
A、數組x可以看作是由x[0]和x[l]兩個元素組成的一維數組
B、可以用x[0]=0;的形式為數組所有元素賦初值0
C、元素x[0]可看作是由3個整型元素組成的一維數組
D、x[0]和x[l]是數組名,分別代表一個地址常量
標準答案:B
知識點解析:二維數組的元素在內存中占一系列連續的存儲單元。數組元素在內存
中的排列順序是先存放第。行的元素,再存放第1行的元素……稱這種存放順序為
按行存放。可以把一個二維數組看成是一個一維數組,每個數組元素乂是包含有若
干個元素的一維數組。另外在給二維數組賦初值時可以不用含花括號對。例如,
inta[4][3]={l,2,4,5);在編譯時,系統將按a數組元素在內存中排列的順序,
將花括號內的數據一一對應地賦給各個元素,若數據不足,系統將給后面的元素自
動補初值0。以上將給a數組第一行的元素和第二行的第一個元素依次賦予1、2、
4、5,其他元素的初值都為0。
11、以下關于宏的敘述中正確的是
A、宏定義必須位于源程序中所有語句之前
B、宏名必須用大寫字母表示
C、宏調用比函數調用耗費時間
D、宏替換沒有數據類型限制
標準答案:D
知識點解析:本題考查宏替換的規則。宏替換分為簡單的字符替換和帶參數的宏替
換兩類。使用宏時應注意以下幾點:①宏定義儀僅是符號替換,不是賦值語句,
因此不做語法檢查;②為了區別程序中其他的標識符,宏名的定義通常用大寫字
母,但不是必須用大寫:③雙引號中出現的宏名不替換;④使用宏定義可以嵌
套,即后定義的宏中可以使用先定義的宏。
12、以下敘述中正確的是
A、不能用字符串常量對字符數組名進行整體賦值操作
B、字符串常量"Heller會被隱含處理成一個無名字符型數組,它有5個元素
C、char"r[7]=、ring!2在語法卜是合法的.運行也是安全的
D、char*str;str=,,Hello,\與char$tr[];str=''Helk)'';效果是一樣的
標準答案:A
知識點解析:字符數組僅僅可以采用定義時初始化以及輸入得到數據,在程序其他
部分不允許對其進行賦值。字符串常量中除了實際字符之外還有結束標志,選項B
錯誤,而選項C中,沒有空間存放字符串結束標志,因此運行是不安全的。選項
D中第一個str為指針,可以賦值,而后面的為數組,在程序中賦值出錯。
13、程序段:intx=12;doubley=3.141593;printf("%d%8.6f,x,y);的輸出
結果是
A、123.141593
B、123.141593
C、12,3.141593
D、123.1415930
標準答案:A
知識點解析:本題考查格式化輸出函數primf。在prinlf函數調用里面首先輸入整
型變量x的值12,然后按照“%8.6『格式輸出double類型變量y的值,“%8.6儼
表示輸出8位,小數點后輸出6位。
14、設有定義:doublea,b,c;若要求通過輸入分別給a、b、c輸入1、2、3,輸
入形式如下(注:此處口代表一個空格)口口1.0口口2.0口口3.0則能進行正確輸入的
語句是
A、scanf(n%lf%lf%lf,a,b,c);
B、scanf(”%f%f%7,&a,&b,&c);
C、scanty%If%If%If,&a,&b,&c);
D、scanf(n%5.llf%5.If,&a,&b,&c);
標準答案:C
知識點解析:輸入格式scanf(格式控制,輸入項1,輸入項2,…),其中在scanf。
函數的格式字符前可以加入一個正整數指定輸入數據所占的寬度,但不可以用實數
指定小數位的寬度。輸入double型數據,格式控制必須用%1a(或%le)。否則。
數據不能正確輸入。由于輸入是一個字符流,scanf函數從這個字符流中按照格式
控制指定的格式解析出相應數據,送到指定地址的變量中。
15、在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于
A、邏輯設計階段
B、需求分析階段
C、概念設計階段
D、物理設計階段
標準答案:A
知識點解析:數據庫的設計階段包括需要分析,概念設計、邏輯設計和物理設計,
其中將E-R圖轉換成關系數據模型的過程屬于邏輯設計階段。
16、以下結構體類型說明和變量定義中正確的是
A、typcdefstruct{intn;charc;(REC;REC11,⑵
B、structREC;{intn;charc;};RECtl,t2;
C、typedefstructREC;{intn=0;charc=,A,;}tl,t2;
D^struct(intn:chare:}REC:REC11,t2:
標準答案:A
知識點解析:定義結構體類型的一般形式為:struc[結構體名{成員列:表};sirucl
結構體名后不能加號,所以選項B)、C)錯誤,選項D)中定義無名稱的結構體
類型同時定義結構體變量形式應為struct11,12;選項A)為用戶自定義類型,其為
正確的定義形式。
ST
ABCABcABc
,
a1d?*11
b一1c21b一1
cs1c1
A
e4dda
e
則由關系R和S得到關系T的運
算是
A、并
B、投影
C、交
D^選擇
標準答案:A
知識點解析:關系并運算是指,設有兩個關系R和S,它們具有相同的結構。R和
S的并是由屬于R或屬于S的元組組成的集合。所以對于本題關系R和S具有相
同的結構,并且關系T的元組是由屬于R或屬于S的元組組成的集合。因此選項
A正確。
18、以下關于函數的敘述中正確的是
A、每個函數都可以被其他函數調用(包括main函數)
B、每個函數都可以被單獨編譯
C、每個函數都可以單獨運行
D、在一個函數內部可以定義另一個函數
標準答案:B
知識點解析:本題主要考查函數的定義和使用。選項A)錯誤,main函數可以調用
其他函數,但是其他函數不能調用main函數;選項B)正確;選項C)錯誤,只有
main函數可以單獨運行,其他函數只能被調用:選項D)錯誤,C語言中不能在函
數內部定義函數。
19、若有以下程序typedefstructstu{charname[10],gender;intscore;}STU;void
f(STUa,STUb){b=a:printff(n%s,%c,%d,",b.name,b.gender,
b.score);}main(){STUa={"Zhao\,m',290},b=["Qian",T,350};f(a,
b);prinlf("%s,%c,%d\n",b.name,b.gender,b.score);}則程序的輸出
結果是
A^Zhao?m,290?Zhao,m,290
B、Zhao,m,290,Qian,f,350
C、Qian,f,i350,Qian,f,350
D、Zhao,m,290,Zhao,f,350
標準答案:B
知識點解析:函數f(STUa,STUb)的主要功能是為把結構體變量a的值存放到b
中,然后輸出b中各個成員的值。主函數中調用函數f(a,b),輸出賦值以后b的
數據,實際為a{“Zhao",'m,,290}的數據,函數調用結束,形參a和b撤銷,流
程到主函數輸出b{“Qian”,350)的數據。
20>有以下程序main(){inta=l,b=2,c=3,d=0;if(a==l&&b++==2)if(b!=2||c-!=3)
printf("%d,%d,%d\n",a,b.c);elseprintf("%d,%d,%d\n';a,b,c);else
printf("%d,%d,%d\n",a,b,c);}程序運行后的輸出結果是
A、1,3,2
B、1,2,3
C、1,3,3
D、3,2,1
標準答案:C
知識點解析:a,b,c,d初始值分別為123,0。嵌套的if語句中,第一個if中,表達式
a==l&&b++==2值為1,執行嵌套的if分支,此時b=3,b!=2成立,由于運算符是
II,不管后面一個表達式的值是不是I,其整個表達式的值總是1,c--!二3表達式不
執行,最后打印出a,b,c的值是1,3,3。
21、有以下程序#inckidevoidfun(char*c,intd)[*c=*c+1;d=d+1;
printf(,,%c,%c,,,,*c,d);}main(){charb='a',a='A';fun(&b,a);printf("%c,%c\n",b,a);}
程序運行后的輸出結果是()。
A、b,B,b,A
B、b.B,B,A
C、a,B,B,a
D、a,B,a,B
標準答案:A
知識點Q析:計算字符常量時一般使用其ASCII碼進行運算。3+l=E,fun()中的
第一個參數為地址傳參,形參的變化會影響實參的變化,所以兩次輸出的b值都為
字符b;第二個參數為值傳參,形參變化不會影響實參,所以在函數fun()體內輸
出字符,BI函數fun()體外輸出結果為字符,AI所以答案選A。
22、有下列程序:includemain(){FILE*fp;inta[10]={1,2,3),i,n;fp=
fopen("dl.dat'\"w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,n\
n");fclose(fp);fp=open("dl.dal"Jr");fscanf(fp,"%d",&n);fclose(fp);
printfC%d\n\n);}程序的運行結果是
A、12300
B、123
C、1
D、321
標準答案:B
知識點解析?:本題考查以讀和寫的方式打開文件對文件內容操作的不同,fp=
fopen("dl.dat","w");以可寫的方式為輸出建立新文本文件,調用printf,輸出
“123”,fp=fopen("dl,dal“,”r");以只讀的方式打開文本文件,不能對文件內容
進行操作。
23、有以卜程序#includemain(){inti,x|3||3]={123,4,5,6,7,8,9);for(i=0;i<3;
i++)printf("%d",x[i][2-i]);printf(M\n");}程序的輸出結果是
A、1、5、0
B、3、5、7
C、1、4、7
D、3、6、9
標準答案:B
知識點解析:程序首先初始化二維數組x[3][3],然后通過3次for循環,輸出
x[0][2]、和x[2][0]的值,即3、5、7。因此B選項正確。
24、在數據管理技術發展的三個階段中,數據共享最好的是0。
A、人工管理階段
B、文件系統階段
C、數據庫系統階段
D、三個階段相同
標準答案:C
知識點解析:數據管理發展至今已經歷了三個階段:人工管理階段、文件系統階段
和數據庫系統階段。其中最后一個階段結構簡單,使用方便邏輯性強物理性少,在
各方面的表現都最好,一直占據數據庫領域的主導地位,所以選擇C)。
25、下列條件語句中,輸出結果與其他語句不同的是
A^if(a!=0)printf("%d\n",x);elseprintf("%d\nn,y);
if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C、if(a==0)printf("%d\n",x);elseprintf(,,%d\n,',y);
D、if(a)printfC%d\n",x);elseprintf("%d\n",y);
標準答案:C
知識點解析:A,B,D選項的含義均為:a的值如果為0時打印y的值,否則打印x的
值.但是C選項的含義是:a的值為0時打印x的值、不為0時打印y的值,與其他選
項正好相反。
家二級C語言機試(選擇題)模擬試
卷第3套
一、選擇題(本題共40題,每題1.0分,共40分。)
1、以下選項中關于程序模塊化的敘述錯誤的是
A、把程序分成若干相對獨立、功能單一的模塊,可便于重復使用這些模塊
B、可采用自底向上、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序
C、把程序分成若干相對獨立的模塊,可便于編碼和調試
D、可采用自頂向下、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序
標準答案:B
知識點解析:如果應用結構化程序設計方法設計程序,那么可采用自頂向下,逐步
細化的設計方法把若干獨立模塊組裝成所要求的程序。
2、下列關于棧的敘述中正確的是()。
A、棧按“先進先出”組織數據
B、棧按“先進后出”組織數據
C、只能在棧底插入數據
D、不能刪除數據
標準答案:B
知識點解析:棧是只允許在棧頂進行插入和刪除運算的線性表,按“先進后出”組織
數據。
3、下列敘述中正確的是()。
A、線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的
B、線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構
C、線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構
D、線性表的鏈式存儲結構所需要的存儲空間與順序存儲結構沒有任何關系
標準答案:B
知識點解析:線性鏈式存儲結構中每個結點都由數據域與指針域兩部分組成,增加
了存儲空間,所以一般要多于順序存儲結構。
4、設循環隊列的存儲空間為Q(l:35),初始狀態為front=rear=35。現經過一系列
入隊與退隊運算后,fronl=15,rear=l5,則循環隊列中的元素個數為
A、15
B、16
C、20
D、0或35
標準答案:D
知識點解析:循環隊列的隊頭指針和尾指針都等于15,此循環隊列中元素的個數
有兩種情況,第一種情況是隊頭指針和尾指針都是第一次到達15,此時元素個數
為0;第二種情況是隊頭指針第一次到達15,而尾指針第二次到達15,此時元素
個數為35。
5、下列關于棧的描述中正確的是
A、在棧中只能插入元素而不能刪除元素
B、在棧中只能刪除元素而不能插入元素
C、棧是特殊的線性表,只能在一端插入或刪除元素
D、棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素
標準答案:C
知識點解析:棧是限定在一端進行插入與刪除的線性表,在棧中。允許插入與刪除
的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。
6、以下敘述中正確的是
A、標識符的長度不能任意長,最多只能包含16個字符
B、語言中的關鍵字不能作變量名,但可以作為函數名
C、用戶自定義的標識符必須“見名知義”,如果隨意定義,則會出編譯錯誤
D、標識符總是由字母、數字和下劃線組成,且第一個字符不得為數字
標準答案:D
知識點解析:標識符就是C語言中的變量名、函數名、數組名、文件名、類型名
等。C語言合法標識符的命名規則是:①標識符由字母、數字和下劃線組成;②
第一個字符必須為字母或下劃線;③大寫字母與小寫字母被認為是兩個不同的字
符;④C語言規定了一個標識符允許的字符個數,為32,超過的字符將不被識
別。C語言的標以符可分為以下3類:①火鍵字,不能用于為自定義標識符命
名。②預定義標識符。③用戶標識符。由用戶根據需要定義的標識符稱為用戶標
識符,又稱自定義標識符,一般用來給變量、函數、數組等命名,一般做到見名知
義,但是沒有特殊規定。
7、下列敘述中正確的是
A、對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數為n
B、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(n/2)
C、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(log2n)
D、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(nlogzn)
標準答案:A
知識點解析:本題主要考查的知識點為查找技術。順序查找的使用情況:①線性
表為無序表;②表采用鏈式存儲結構。二分法查找只適用于順序存儲的有序表,
并不適用于線性鏈表。
8、表達式:(int)((double)9/2)-9%2的值是
A、0
B、4
C、3
D、5
標準答案:c
知識點解析:這個表達式的計算過程為,首先求出9除以2的商等于4,再把其強
制轉化為實型數據為4.0,然后再強制轉4,減去9對2求余數1,得到其結果等
于3。
9、已知字符,A,的ASCII代碼值是65,字符變量cl的值是,Alc2的值是,D"則
執行語句printf("%d,%dn,cl,c2-2);的輸出結果是
A、A,68
B、A,B
C、65,66
D、65,68
標準答案:C
知識點解析:在C語言中,字符常量在內存中占一個字節,存放的是字符的ASCII
碼值。所有的字符常量都作為整型量來處理。在本題中輸出語句用整型格式輸出字
符時,輸出的是其ASCH碼值。因為字符,人,和,>的ASCII碼值分別為65和68,
所以c2-2=68-2=66o
10、在軟件開發中,需求分析階段產生的主要文檔是
A、可行性分析報告
B、軟件需求規格說明書
C、概要設計說明書
D、集成測試計劃
標準答案:B
知識點解析:需求分析的最終結果是生成軟件需要規格說明書,可以為用戶、分析
人員和設計人員之間的交流提供方便,可以直接支持目標與確認,又可以作為控制
軟件開發進程的依據。
11、以下敘述中正確的是
A、賦值語句是一種執行語句,必須放在函數的可執行部分
B、scanf和prinlf是C語言提供的輸入和輸出語句
C、由printf輸出的數據都隱含左對齊
D、由printf輸出的數據的實際精度是由格式控制中的域寬和小數的域寬來完全決
定的
標準答案:A
知識點解析:C語言本身沒有提供輸入輸出語句,但是可以通過調用標準庫函數中
提供的輸入和輸出函數來實現輸入和輸出,選項B錯誤;采用printf輸出數據,輸
出數據都默認為右對齊,若要左對齊,可以存格式捽制中的“%”和寬度之間加一
個,,」號來實現,選項C錯誤;printf的輸出精度由變量的類型決定,與域寬無關,
選項D錯誤。
12、設有定義:inta;floatb:執行scanf(''%2d%f\&a,&b):語句時,若從鍵
盤輸入876543.0則a和b的值分別是
A、876和543.0
B、87和6.0
C、87和543.0
D、76和543.0
標準答案:B
知識點解析:在輸入函數scanf的輸入格式符%2d%f中,2d表示輸入的數據的寬
度為2,所以當從鍵盤輸入876543.0〈CR>時,這時把輸入數字串的前兩位87
賦給變量a,然后將緊接著將6按照格式控制符%£的形式賦給變量b,所以b的值
為6.000000o
號唯
生學
個學
),每
證號
身份
齡,
,年
性別
名,
,姓
學號
生S(
表學
關系
設有
13、
)。
是(
鍵的
作為
可以
,也
號外
性學
除屬
一。姓名
A、身例
B、姓得
C、學當
D、
:B
答案
標準
據
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年阿里5次面試碰壁100天深造-Jetpack架構組件從入門到精通險獲騰訊年薪45w+offer
- 2024-2025學年下學期高一生物人教版期末必刷常考題之人類遺傳病
- 建筑施工特種作業-建筑起重機械安裝拆卸工(物料提升機)真題庫-4
- 國家開放大學電大《資源與運營管理》機考終結性2套真題題庫及答案9
- 色彩與心理題目及答案
- 軟考信管題目及答案
- 11 1 用樣本估計總體-2026版53高考數學總復習A版精煉
- 5 2 平面向量的數量積及其應用-高考數學真題分類 十年高考
- 2023-2024學年河南省許昌市高二下學期7月期末教學質量檢測數學試題(解析版)
- 2024-2025學年陜西省西安市部分學校聯考高一上學期期末考試語文試題(解析版)
- 2025年 汾西礦業井下崗位高校畢業生招聘考試筆試試題(山西省)含答案
- 物理中考二輪復習教案 1作圖專題3(電學電磁學)
- 石膏廠安全管理制度 最終
- 2025年河北省中考麒麟卷生物(二)
- 結構動力學完整版本
- 2025年八年級數學下學期期末總復習八年級數學下學期期末測試卷(2)(學生版+解析)
- 四級閱讀測試題及答案
- 農村供水水質管理制度
- 建筑工地應急預案方案
- T/CIE 208-2024兒童機器人教育評價指南
- 2025年高考英語課后續寫高頻考點話題分類第07講 讀后續寫之成長類主題(講義)
評論
0/150
提交評論