2023年全國計算機二級c語言考試真題詳細解答系列_第1頁
2023年全國計算機二級c語言考試真題詳細解答系列_第2頁
2023年全國計算機二級c語言考試真題詳細解答系列_第3頁
2023年全國計算機二級c語言考試真題詳細解答系列_第4頁
2023年全國計算機二級c語言考試真題詳細解答系列_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

2023年9月全國計算機等級考試二級C語言筆試試題一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)(1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是(C)A)循環(huán)隊列

B)帶鏈隊列

C)二叉樹

D)帶鏈棧(2)下列數(shù)據(jù)結(jié)果中,可以按照“先進后出”原則存取數(shù)據(jù)的是(B)A)循環(huán)隊列

B)棧

C)隊列

D)二叉樹(3)對于循環(huán)隊列,下列敘述中對的的是(D)A)隊頭指針是固定不變的B)隊頭指針一定大于隊尾指針C)隊頭指針一定小于隊尾指針D)隊頭指針可以大于隊尾指針,也可以小于隊尾指針(4)算法的空間復(fù)雜度是指(A)A)算法在執(zhí)行過程中所需要的計算機存儲空間B)算法所解決的數(shù)據(jù)量C)算法程序中的語句或指令條數(shù)D)算法在執(zhí)行過程中所需要的臨時工作單元數(shù)(5)軟件設(shè)計中劃分模塊的一個準則是(B)A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合C)低內(nèi)聚高耦合D)高內(nèi)聚高耦合(6)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是(A)A)可封裝D)自頂向下C)模塊化D)逐步求精(7)軟件具體設(shè)計產(chǎn)生的圖如下:

該圖是(C)A)N-S圖B)PAD圖C)程序流程圖D)E-R圖(8)數(shù)據(jù)庫管理系統(tǒng)是(B)A)操作系統(tǒng)的一部分B)在操作系統(tǒng)支持下的系統(tǒng)軟件C)一種編譯系統(tǒng)D)一種操作系統(tǒng)(9)在E-R圖中,用來表達實體聯(lián)系的圖形是(C)A)橢圓圖B)矩形C)菱形D)三角形(10)有三個關(guān)系R,S和T如下:

其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為(D)A)

選擇B)

投影C)

交D)

并(11)以下敘述中對的的是

A)程序設(shè)計的任務(wù)就是編寫程序代碼并上機調(diào)試

B)程序設(shè)計的任務(wù)就是擬定所用數(shù)據(jù)結(jié)構(gòu)

C)程序設(shè)計的任務(wù)就是擬定所用算法

D)以上三種說法都不完整解析:選D。原文見高教版二級教程P2,程序設(shè)計的任務(wù)涉及A、B、c及相關(guān)文檔。

(12)以下選項中,能用作用戶標記符的是A)voidB)8_8C)_0_D)unsigned解析:選C。標記符由字母或下劃線開頭,關(guān)鍵字不能用作標記符。

A、D為關(guān)鍵字,B以數(shù)字開頭,所以都是錯誤的。

(13)閱讀以下程序

#include<stdio.h>

main()

{intcase;floatprintF;

printf(“請輸入2個數(shù):”);

scanf(“%d%f”,&case,&pjrintF);

printf(“%d%f\n”,case,printF);

}

該程序編譯時產(chǎn)生錯誤,其犯錯因素是

A)定義語句犯錯,case是關(guān)鍵字,不能用作用戶自定義標記符

B)定義語句犯錯,printF不能用作用戶自定義標記符

C)定義語句無錯,scanf不能作為輸入函數(shù)使用

D)定義語句無錯,printf不能輸出case的值解析:選A。case是關(guān)鍵字,關(guān)鍵字不能用作標記符。C語言關(guān)鍵字見教材附錄。(注:標記符區(qū)分大小寫,printf是關(guān)鍵字,可用作標記符,當然printF也可以)

(14)表達式:(int)((double)9/2)-(9)%2的值是

A)0

B)3

C)4

D)5解析:選B??键c為運算符的優(yōu)先級。

括號>強制類型轉(zhuǎn)換int>乘除>加減

(int)((double)9/2)一(9)%2=(int)(9.0/2)-(9)%2=(int)(4.5)-1=3

(15)若有定義語句:intx=10;,則表達式x-=x+x的值為

A)-20

B)-10

C)0

D)10解析:選B??键c為復(fù)合的賦值運算符。(注意x+x作為一個整體)

x-=x+x→x=x-(x+x)→x=-x=-10

(16)有以下程序

#include<stdio.h>

main()

{inta=1,b=0;

printf(“%d,”,b=a+b);

printf(“%d\n”,a=2*b);

}

程序運營后的輸出結(jié)果是

A)0,0

B)1,0

C)3,2

D)1,2解析:選D??键c為賦值表達式的使用,賦值表達式的值和變量的值是同樣的。

printf在輸出賦值表達式的值時,先賦值再輸出。

b=a+b=l+0=1

a=2*b=2

17)設(shè)有定義:inta=1,b=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是

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;}解析:選C??键c為if句和逗號表達式的使用。逗號運算符也稱為順序求值運算符,依次執(zhí)行逗號表達式中的每個表選式。逗號表達式是一個整體,復(fù)合語句也是一個整體,當a>b時,A、B、D中if后的語句可以作為整體被執(zhí)行,把a、b的值互換。C的等價語句形式為:

if(a>b)

c=a;

a=b;b=c;

不能實現(xiàn)a、b的值互換。

(18)有以下程序

#include<stdio.h>

main()

{intc=0,k;

for(k=1;k<3;k++)

switch(k)

{default:c+=k

case2:c++;break;

case4:c+=2;break;

}

printf(“%d\n”,c);

}

程序運營后的輸出結(jié)果是

A)3

B)5

C)7

D)9解析:選A。考點為switch語句的使用。switch語句中case和default的順序可以任意,不影響程序結(jié)果。switch語句在循環(huán)中被執(zhí)行2次。k=l時,

c+=k

c=0+1=1

無break,繼續(xù)執(zhí)行c++

c=2

有break,終止switch

k=2時,c++

c=3

有break,終止switch,循環(huán)結(jié)束,輸出c。

(19)以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是

A)if((a>b)&&(b>c))k=1;

elsek=0;

B)if((a>b)||(b>c)k=1;

elsek=0;

C)if(a<=b)k=0;

elseif(b<=c)k=1;

D)if(a>b)k=1;

elseif(b>c)k=1;

elsek=0;解析:選A??键c為條件表達式的使用。語句的功能為:

a>b且b>c時,k=l

a>b且b<=e時,k=0

a<=b時,k=0符合語句功能的只有A。

20)有以下程序

#include<stdio.h>

main()

{chars[]={“012xy”};inti,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]>=’a’&&s[i]<=’z’)n++;

printf(“%d\n”,n);

}

程序運營后的輸出結(jié)果是

A)0

B)2

C)3

D)5解析:選B??键c為字符數(shù)組的使用。C語言用字符數(shù)組存放字符串,用\O作為結(jié)束標志。(\0是ASCII碼值為0的字符,也即數(shù)值0)程序的功能為記錄字符數(shù)組s中小寫字符的個數(shù),n為計數(shù)器。

(21)有以下程序

#include<stdio.h>

main()

{intn=2,k=0;

while(k++&&n++>2);

printf(“%d%d\n”,k,n);

}

程序運營后的輸出結(jié)果是

A)02

B)13

C)57

D)12解析:選D??键c為while語句的使用。該while(k++&&n++>2);的循環(huán)體為空語句,所以程序是輸出退出while循環(huán)后k、n的值。k++為先使用k的值再增1。先使用k的值,k=0,邏輯與結(jié)果為。,第一次執(zhí)行while循環(huán)時條件就不成立,直接退出循環(huán),k的值增1,n的值沒有任何改變。

(22)有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是

A)chara=’a’;

B)chara=’\n’;

C)chara=’aa’;

D)chara=’\x2d’;解析:選C??键c為字符型變量的賦值和基本概念。字符型為單引號括起的一個字符。A為標準的字符型賦值方法,B為把一個轉(zhuǎn)義字符賦值給字符變量,也是對的的。C為單引號括起的兩個字符,不符合字符型定義。D表面看上去是錯誤的,其實是對的的,也是一個轉(zhuǎn)義字符。‘/x2d’表達ASCII碼值為16進制數(shù)2d的字符,即‘-’號。

(23)有以下程序#include<stdio.h>main(){charc1,c2;

c1=’A’+’8’-‘4’;

c2=’A’+’8’-‘5’;

printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII碼為65,程序運營后的輸出結(jié)果是

A)E,68

B)D,69

C)E,D

D)輸出無定值解析:選A??键c為字符型數(shù)據(jù)的使用和基本知識。字符型數(shù)據(jù)在內(nèi)存中存放的是字符的ASCII碼值,可以作為整型數(shù)據(jù)來解決。英文字符和數(shù)字在ASCII碼表中是按順序排列的。

c1=‘A’+‘8'-‘4’=‘A’+‘4’=E

c2=‘A’+‘8’-‘5’=‘A’+3=‘D’

(24)有以下程序

#include<stdio.h>

voidfun(intp)

{intd=2;

p=d++;printf(“%d”,p);}

main()

{inta=1;

fun(a);printf(“%d\n”,a);}

程序運營后的輸出結(jié)果是

A)32

B)12

C)21

D)22解析:選C。考點為函數(shù)參數(shù)的傳遞。c語言中函數(shù)參數(shù)的傳遞是值傳遞,是把實參的值傳給形參,是單向傳遞,形參的改變不會影響到實參的值。程序中,把實參a的值傳給形參p,p=1,然后p=d++,再次賦值后p=2.輸出p的值2。返回到主程序中,輸出a的值1。(形參p的改變不會影響到實參a的值,a的值仍為1)

(25)以下函數(shù)findmax擬實現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯導(dǎo)致不能實現(xiàn)預(yù)定功能#defineMIN-

intfindmax(intx[],intn)

{inti,max;

for(i=0;i<n;i++)

{max=MIN;

if(max<x[i])max=x[i];}

returnmax;

導(dǎo)致錯誤的因素是

A)定義語句inti,max;中max未賦初值

B)賦值語句max=MIN;中,不應(yīng)給max賦MIN值

C)語句if(max<x[i])max=x[i];中判斷條件設(shè)立錯誤

D)賦值語句max=MIN;放錯了位置解析:選D。考點為求最大值的算法。max=MIN.不應(yīng)當放在循環(huán)內(nèi),而應(yīng)當放到for循環(huán)的前面。先讓max取最小的整數(shù),這樣第1次循環(huán)時max就可以取得第1個數(shù)組元素的值,然后在循環(huán)中把后面的數(shù)組元素依次和max比較,讓max取大值。

(26)有以下程序

#include<stdio.h>

main()

{intm=1,n=2,*p=&m,*q=&n,*r;

r=p;p=q;q=r;

printf(“%d,%d,%d,%d\n”,m,n,*p,*q);

程序運營后的輸出結(jié)果是

A)1,2,1,2

B)1,2,2,1

C)2,1,2,1

D)2,1,1,2

解析:選B??键c為指針的基本概念。p、q為指針,初始化時p指向m,q指向n。執(zhí)行r=p;p:q;q:r;后,p和q的值互換,從而p指向n,q指向m。指針的改變不會影響m、n的值,最后*p和*q的值為n、m的值。

(27)若有定義語句:inta[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]解析:選A??键c為指向二維數(shù)組的指針的用法。

p為基類型為int的指針,指向一個整型數(shù)據(jù),也就可咀指向一個數(shù)組元素,所以D對的。

a是二維數(shù)組名,存放二維數(shù)組的首地址,但二維數(shù)組名是一個行指針,其基類型為具有10個元素的一維數(shù)組。所以A錯誤,兩者基類型不一致(p+1指向下一個元素,而a+l指向二維數(shù)組的下一行)。假如p定義為int(*p)[10],才可以賦值p=a。在C語言中,二維數(shù)組a[4][10]可以看做是由4個元素組成的一維數(shù)組,這4個元素為a[0]、a[l]、a[2]、a[3],而其中每個元素又是由10個元素組成的維數(shù)組。

在這里,a[i]也是一個數(shù)組名,可以表達一維數(shù)組的首地址,但a[i]是一個列指針,基類型為int.指向一維數(shù)組的第1個元素。同時,指針數(shù)組q的每個數(shù)組元素q[i]的基類型也為int,所以p、a[i]、q[i]的基類型一致,選項B、C是對的的。

(28)有以下程序

#include<stdio.h>

#include<string.h>

main()

{charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];

printf(“%d,”,strlen(p));printf(“%s\n”,p);

}

程序運營后的輸出結(jié)果是

A)9,One*World

B)9,One*Dream

C)10,One*Dream

D)10,One*World解析:選C。考點為二維字符數(shù)組的使用和strlen()函數(shù)的使用。初始化p=str[l]后,p指向第二個字符串“One*Dream!”。strlen()函數(shù)計算字符串的長度時不涉及結(jié)束標志,所以strlen(p)=10。

(29)有以下程序

#include<stdio.h>

main()

{inta[]={2,3,5,4},i;

for(i=0;i<4;i++)

switch(i%2)

{case0:switch(a[i]%2)

{case0:a[i]++;break;

case1:a[i]--;

}break;

case1:a[i[=0;}for(i=0;i<4;i++)printf(“%d”,a[i]);printf(“\n”);}

A)3344

B)2050

C)3040

D)0304解析:選C??键c為switch語句。外部switch語句在循環(huán)中被執(zhí)行4次。i=0時,執(zhí)行case0.

內(nèi)部switch語句也執(zhí)行case0,

a[i]++

a[0]=3

i=1時,執(zhí)行case1,a[l]=0

排除法,只有C對的。i=2時,執(zhí)行case0.

內(nèi)部switch語句執(zhí)行case1.

a[i]--

a[2]=4i=3時,執(zhí)行case1,a[3]=0

最后依次輸出為:3040

(30)有以下程序

#include<stdio.h>#include<string.h>

main(){chara[10]=”abcd”;

printf(“%d,%d\n”,strlen(a),sizeof(a));}程序運營后的輸出結(jié)果是

A)7,4

B)4,10

C)8,8

D)10,10解析:選B??键c為strlen()函數(shù)和sizeof()運算符的使用。

strlen()函數(shù)計算字符串的長度時,碰到結(jié)束標志為止,且長度不涉及結(jié)束標志,所以strlen(a)=4,排除法選B。

sizeof()運算符的操作數(shù)可以是類型名或變量名、數(shù)組名等,當操作數(shù)是數(shù)組名時,其結(jié)果是數(shù)組的總字節(jié)數(shù),所咀sizeof(a)=10。

(31)下面是有關(guān)C語言字符數(shù)組的描述,其中錯誤的是

A)不可以用賦值語句給字符數(shù)組名賦字符串

B)可以用輸入語句把字符串整體輸入給字符數(shù)組

C)字符數(shù)組中的內(nèi)容不一定是字符串

D)字符數(shù)組只能存放字符串解析:選D??键c為字符數(shù)組的使用。字符數(shù)組名是數(shù)組首地址,是常量,不能被重新賦值,所以A對的??梢杂胹canf(“%s”,str)對字符串整體輸入,str可以是字符數(shù)組名或者字符指針,所以B對的。C和D說法對立,必然有一個對的,用排除法A、B選項主線不用看。字符數(shù)組的所有元素可以只存放普通字符,不存放結(jié)束標志。所以D錯誤。

(32)下列函數(shù)的功能是

fun(char*a,char*b)

{while((*b=*a)!=’\0’){a++,b++;}}

A)將a所指字符串賦給b所指空間

B)使指針b指向a所指字符串

C)將a所指字符串和b所指字符串進行比較

D)檢查a和b所指字符串中是否有’\0’

解析:選A??键c為指針的概念及while循環(huán)。While循環(huán)條件為:(*b=*a)!='\0’,執(zhí)行時先把指針a所指向的字符賦給指針b所在內(nèi)存單元,假如該字符不是結(jié)束標志“\0”,執(zhí)行循環(huán)體a++;b++;,指針a、b分別指向下一個字符單元。再判斷循環(huán)條件,假如成立,繼續(xù)把指針a所指向的字符賦給指針b所在內(nèi)存單元,直到碰到結(jié)束標志為止。所以對的答案為A。

(33)設(shè)有以下函數(shù)

voidfun(intn,char*s){……}

則下面對函數(shù)指針的定義和賦值均是對的的是

A)void(*pf)();pf=fun;

B)viod*pf();pf=fun;

C)void*pf();*pf=fun;

D)void(*pf)(int,char);pf=&fun;解析:選A??键c為指向函數(shù)的指針的用法。函數(shù)名代表函數(shù)的入口地址。指向函數(shù)的指針應(yīng)當定義為void(*pf)()。假如定義為void*pf(),則表達函數(shù)pf返回值為一個基類型為void的指針。綜上,所以對的答案為A。

(34)有以下程序

#include<stdio.h>

intf(intn);

main()

{inta=3,s;

s=f(a);s=s+f(a);printf(“%d\n”,s);

}

intf(intn)

{staticinta=1;

n+=a++;

returnn;

}

程序運營以后的輸出結(jié)果是

A)7

B)8

C)9

D)10解析:選C.考點為靜態(tài)局部變量的使用。

主函數(shù)和f函數(shù)中的a都為局部變量,作用域都在本函數(shù)之內(nèi),互不影響。f函數(shù)中的a為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時仍可保存上次調(diào)用時的值。也就是說,假如多次調(diào)用f函數(shù),a的定義只在第一次調(diào)用時有效,從第二次調(diào)用開始,a的定義相稱于不存在,直接使用a的值。主函數(shù)中調(diào)用了2次f(a),第一次調(diào)用,s=f(a)=f(3)

f函數(shù):n=3

a=l

n=n+(a++)=4

a=2

返回n,主函數(shù)s=4。第二次調(diào)用,s=s+f(a)=4+f(3)(a值為主函數(shù)中的a值)

f函數(shù)n=3

a=2

n=n+(a++)=5

a=3

返回n,主函數(shù)s=4+f(3)=4+5=9

最后輸出s的值為9。

(35)有以下程序

#include<stdio.h>

#definef(x)x*x*x

main()

{inta=3,s,t;

s=f(a+1);t=f((a+1));

printf(“%d,%d\n’,s,t);

}

程序運營后的輸出結(jié)果是

A)10,64

B)10,10

C)64,10

D)64,64解析:選A??键c為帶參數(shù)的宏定義。宏定義中的參數(shù)授有類型,僅為字符序列,不能當作表達式運算。宏展開時,把實參字符串原樣寫在替換文本中。s=f(a+l)=a+l*a+l*a+l=10t=f((a+1))=(a+1)*(a+1)*(a+1)=64

(36)下面結(jié)構(gòu)體的定義語句中,錯誤的是

A)structord{intx;inty;intz;};structorda;

B)structord{intx;inty;intz;}structorda;

C)structord{intx;inty;intz;}a;

D)struct{intx;inty;intz;}a;解析:選B??键c為結(jié)構(gòu)體變量的定義??梢韵榷x結(jié)構(gòu)體類型,再定義結(jié)構(gòu)體變量,如A??梢栽诙x結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如C。可以直接定義結(jié)構(gòu)體變量,沒有類型名,如D。B選項錯誤,定義結(jié)構(gòu)體類型的同時使用此類型。

(37)設(shè)有定義:char*c;,以下選項中可以使字符型指針c對的指向一個字符串的是

A)charstr[]=”string”;c=str;

B)scanf(“%s”,c);

C)c=getchar();

D)*c=”string”;解析:選A??键c為字符指針的使用。選項A為對的用法。先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針。(數(shù)組名代表數(shù)組首地址,定義數(shù)組時為其分派擬定地址)選項C錯誤。getchar()函數(shù)輸入個字符給字符型變量,而不是字符指針。選項B和D有類似的錯誤,兩個選項并無語法錯誤,但運營時也許會出現(xiàn)問題。因素:在選項B和D中,字符指針沒有被賦值,是個不擬定的值,指向一個不擬定的內(nèi)存區(qū)域,這個區(qū)域也許存放有用的指令或數(shù)據(jù)。在這個不擬定的區(qū)域重新存放字符串,也許會發(fā)生無法預(yù)知的錯誤。

(38)有以下程序

#include<stdio.h>

#include<string.h>

structA

{inta;charb[10];doublec;};

structAf(structAt);

main()

{structAa={1001,”ZhangDa”,1098.0};

a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);

structAf(structAt)

(t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;returnt;)

程序運營后的輸出結(jié)果是

A)1001,ZhangDa,1098.0

B)1001,ZhangDa,1202.0

C)1001,ChangRong,1098.0

D)1001,ChangRong,1202.0解析:選D??键c為結(jié)構(gòu)體類型在函數(shù)中的應(yīng)用。由于使用結(jié)構(gòu)體變量,程序看似很雜亂。但在使用中,結(jié)構(gòu)體變量和普通變量的作用是同樣的。假如這樣看,程序執(zhí)行流程如下:函數(shù)調(diào)用f(a)將實參a傳給形參t,函數(shù)內(nèi)部對t重新賦值,然后返回t;主函數(shù)a=f(a),把返回值t賦給a,然后輸出a,其實就是t的值。

(39)若有以下程序段

intr=8;

printf(“%d\n”,r>>1);

輸出結(jié)果是

A)16

B)8

C)4

D)2解析:選C??键c為位運算中右移運算符的使用。

每右移一次,相稱于除以2。本題中,r=(8)10=(00001000)2

r>>1后,r=(00000100)2=(4)10

(40)下列關(guān)于C語言文獻的敘述中對的的是

A)文獻由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文獻

B)文獻由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文獻或文本文獻

C)文獻由數(shù)據(jù)序列組成,可以構(gòu)成二進制文獻或文本文獻

D)文獻由字符序列組成,其類型只能是文本文獻解析:選C。C語言中根據(jù)數(shù)據(jù)的組織形式,分為二進制文獻和ASCII碼文本文獻。一個C文獻是一個字節(jié)序列或者二進制序列,而不是一個記錄(結(jié)構(gòu))序列。

二、填空題(每空2分,共30分)(1)某二叉樹有5個度為2的結(jié)點以及3個度為1的結(jié)點,則該二叉樹中共有14個結(jié)點。解析:度為2的結(jié)點有5個,則度為0的結(jié)點(葉子結(jié)點)為5+1=6個,度為1的結(jié)點有3個,總結(jié)點數(shù)位5+6+3=14個。

(2)程序流程圖中的菱形框表達的是邏輯條件。(3)軟件開發(fā)過程重要分為需求分析、設(shè)計、編碼與測試四個階段,其中需求分析階段產(chǎn)生“軟件需求規(guī)格說明書。(4)在數(shù)據(jù)庫技術(shù)中,實體集之間的聯(lián)系可以是一對一或一對多或多對多的,那么“學(xué)生”和“可選課程”的聯(lián)系為多對多。解析:一個學(xué)生可以選多門功課,一門功課可以多個學(xué)生選擇。

(5)人員基本信息一般涉及:身份證號,姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是身份證號碼。解析:關(guān)鍵字的值不能反復(fù),只能是唯一的。

(6)若有定義語句:inta=5;,則表達式:a++的值是5。解析:a++先使用a的值再增長1。

(7)若有語句doublex=17;inty;,當執(zhí)行y=(int)(x/5)%2;之后y的值為1。解析:y=(int)(3.

)%2=3%2=1。

(8)以下程序運營后的輸出結(jié)果是1

0。#include<stdio.h>main(){intx=20;

printf(“%d”,0<x<20);

printf(“%d\n”,0<x&&x<20);}解析:“<”的結(jié)合性為從左到右。計算O<x<20,x=20,O<x為1,然后1<20結(jié)果為1。關(guān)系運算符優(yōu)先級大于邏輯運算符。0<x&&x<20相稱于(0<x)&&(x<20),結(jié)果為0。

(9)以下程序運營后的輸出結(jié)果是

5

。#include<stdio.h>main(){inta=1,b=7;

do{

b=b/2;a+=b;

}while(b>1);

printf(“%d\n”,a);}解析:考點為dowhile語句的用法。程序執(zhí)行流程:a=lb=7執(zhí)行循環(huán)體,b=b/2=3

a=4;b>l條件成立,再執(zhí)行循環(huán)體,b=b/2=1a=5;此時,b>l條件不成立,輸出a的值5。

(10)有以下程序#include<stdio.h>main(){intf,f1,f2,i;

f1=0;f2=1;

printf(“%d%d”,f1,f2);

for(i=3;i<=5;i++)

{f=f1+f2;printf(“%d”,f);

f1=f2;f2=f;

}

printf(“\n”);}程序運營后的輸出結(jié)果是0

123。解析:程序執(zhí)行流程:

fl=0f2=1輸出:01For循環(huán)變量中的i只起到控制循環(huán)次數(shù)的作用,循環(huán)3次。i=3

f=f1+f2=0+1=1輸出1;

f1=f2=1

f2=f=li=4

f=f1+f2=1+1=2輸出2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論