2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第1頁(yè)
2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第2頁(yè)
2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第3頁(yè)
2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第4頁(yè)
2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.如有inta=11;則表達(dá)式(a++*1/3)的值是()。

A.0B.3C.4D.12

2.

3.下列程序的運(yùn)行結(jié)果是()。

#include<stdio.h>

main()

{intx=5,a=1,b=2,C=5,d=0;

if(a<B)

if(b!=3)

if(!C)

x=1;

else

if(D)x=1;

elsex=-1;

printf("%d",x);

}

A.-1B.0C.1D.不確定的值

4.下列標(biāo)識(shí)符不是關(guān)鍵字的是()。

A.breakB.charC.SwithchD.return

5.下列關(guān)于線性表的敘述中,不正確的是()

A.線性表可以是空表

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件

D.線性表是由n個(gè)元素組成的一個(gè)有限序列

6.以下說(shuō)法錯(cuò)誤的是:()

A.全局變量就是在函數(shù)外定義的變量,因此又叫做外部變量

B.一個(gè)函數(shù)中既可以使用本函數(shù)中的局部變量,也可以使用全局變量

C.局部變量的定義和全局變量的定義的含義不同

D.如果在同一個(gè)源文件中,全局變量和局部變量同名,則在局部變量的作用范圍內(nèi),全局變量通常不起作用

7.若有語(yǔ)句“typedefstructS{intg;charh;}T;”,則下列敘述中正確的是()。

A.可用S定義結(jié)構(gòu)體變量B.可用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量

8.

下列程序的輸出結(jié)果是()。

main

{inta,b,d=25;

a=d/10%9;

b=a&&(一1);

printf("%d,%d\n",a,b);}

A.6,1B.2,1C.6,0D.2,0

9.以下選項(xiàng)中非法的字符常量是()。

A.\101B.\65C.\xffD.\019

10.計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的語(yǔ)言是

A.匯編語(yǔ)言B.自然語(yǔ)言C.機(jī)器語(yǔ)言D.高級(jí)語(yǔ)言

11.關(guān)系R和關(guān)系S的并運(yùn)算是______。

A.由關(guān)系R和關(guān)系S的所有元組合并組成的集合,再刪去重復(fù)的元組

B.由屬于R而不屬于S的所有元組組成的集合

C.由既屬于R又屬于S的元組組成的集合

D.由R和S的元組連接組成的集合

12.

13.以下不完整的程序擬實(shí)現(xiàn)調(diào)用getmax函數(shù),找出4個(gè)變量中最大的一個(gè):#include<stdio.h>intgetmax(intx,inty){returnx>yx:y;}voidmain(){inta,b,c,d,mx;scanf(“%d%d%d%d”,&a,&b,&c,&d);printf(“max=%d\n”,________);}以下選項(xiàng)若填入下劃線處,不能實(shí)現(xiàn)上述功能的是()。

A.getmax(getmax(getmax(a,b),c),d)

B.getmax(getmax(a,b),getmax(c,d))

C.getmax(a,getmax(b,getmax(c,d)))

D.mx=(getmax(a,b),getmax(c,d))

14.對(duì)一個(gè)滿二叉樹,m個(gè)葉子,n個(gè)結(jié)點(diǎn),深度為h,則()。

A.n=h+mB.h+m=2nC.m=h-1D.n=2h-1

15.

16.在單鏈表中,增加頭結(jié)點(diǎn)的目的是______。

A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說(shuō)明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)

17.有以下程序:#include<stdio.h>main(){inta,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}編譯時(shí)編譯器提示錯(cuò)誤信息,你認(rèn)為出錯(cuò)的語(yǔ)句是()。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;

18.若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語(yǔ)句中錯(cuò)誤的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];

D.intn=10,a[n];

19.若定義下列結(jié)構(gòu)體,結(jié)構(gòu)體變量p的出生年份賦值正確的語(yǔ)句是()。structst{intx;inty;intz;}structworker{charname[20];charsex;structstbirth;}p;

A.x=1987B.birth.x=1987;C.p.birth.x=1987;D.p.x=1987;

20.一個(gè)C語(yǔ)言程序總是從()開始執(zhí)行:

A.主程序B.子程序C.主函數(shù)D.第一個(gè)函數(shù)

二、2.填空題(20題)21.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>

main()

{

inti,j,【】;charstr[]={"1234567");

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

printf("%s\n",str);

}

22.開發(fā)軟件所需要的高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象被人們稱之為【】。

23.以下程序的輸出結(jié)果是【】。

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

24.下列程序的輸出結(jié)果是______。

#include<stdio.h>

int(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

printf("%d%d\n",c,d);

}

25.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長(zhǎng)時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。請(qǐng)?zhí)羁铡?/p>

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&C);

if(())printf("YES\n");/*a、b、c能構(gòu)成三角形*/

elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/

}

26.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目"的聯(lián)系屬于【】的聯(lián)系。

27.—個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。

28.若a=1,b=2,則表達(dá)式!(x=A)‖(y=B)&&0的值是______。

29.下面fun函數(shù)的功能是將形參x的值轉(zhuǎn)換成二進(jìn)制數(shù),所得二進(jìn)制數(shù)的每一位數(shù)放在數(shù)組中返回,二進(jìn)制數(shù)的最低位放在下標(biāo)為0的元素中,其他依此類推。請(qǐng)?zhí)羁铡?/p>

Fun(intx,intb[])

{intk=0,r;

do

{r=x%2;

()=r;

x/=2;

}while(x);

}

30.若有下列定義(設(shè)int類型變量占兩個(gè)字節(jié)),則i=【】,j=【】。

inti=8,j=9;floatx=123.456;

print("i=%oj=%o\n",i,j);

31.以下程序的功能是【】。

main()

{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};

intsum=0,i;

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

if(num[i]>0)

sum=num[i]+sum;

printf("sum=%6d",sum);

}

32.下列程序段的運(yùn)行結(jié)果是______。

charstr[]="ABCD",*p=str;

printf("%d\n",*(p+3));

33.設(shè)有定義“stmct{inta;floatb;charc}abc,*p_abc=&abc;”,則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc______。

34.若有以下定義和語(yǔ)句:

intw[10]={23,54,10,33,47,98,72,80,61},*p;

p=w;

則通過(guò)指針p引用值為98的數(shù)組元素的表達(dá)式是【】。

35.以下程序的功能是計(jì)算:s=1+12+123+1234+12345。請(qǐng)?zhí)羁铡?/p>

main()

{intt=0,s=0,i;

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

{t=i+______;s=s+t;}

printf("s=%d\n",s);

}

36.為了建立如圖所示的存儲(chǔ)結(jié)構(gòu)(即每個(gè)結(jié)點(diǎn)含兩個(gè)域,data是數(shù)據(jù)域,next是指向結(jié)點(diǎn)的指針域)。請(qǐng)?zhí)羁铡?/p>

structlink{chardata;【】;}node;

37.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語(yǔ)句,且fun函數(shù)為void類型;請(qǐng)寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

38.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

intmystrlen(char*str)

{intI;

for(I=0;【】!='\n';I++);

return(I);}

39.以下程序運(yùn)行后輸入3,abcde<回車>,則輸出結(jié)果是【】。

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(S);

for(i=1;i<=n;i++)move(s,z);

printf("%s\n",s);

}

40.在面向?qū)ο蠓椒ㄖ?,允許作用于某個(gè)對(duì)象上的操作稱為【】。

三、1.選擇題(20題)41.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是()。

A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,

42.在軟件工程中,高質(zhì)量的文檔是______、一致性和無(wú)二義性的。

A.安全性B.完整性C.組合性D.統(tǒng)一性

43.以下程序的輸出結(jié)果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}

A.650B.1470C.5430D.輸出值不定

44.若有下列說(shuō)明和語(yǔ)句,則對(duì)結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

45.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語(yǔ)句是()。

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf("*\n");casec:printf("**\n");}

46.下面程序段的運(yùn)行結(jié)果是

charstr[]="ABC",*p=str;

printf("%d\n",*(p+3));

A.67B.0C.字符′C′的地址D.字符′C′

47.以下不合法的字符常量是()。

A.'\018'B.'\'''C.'\\'D.'\xcc\

48.以下正確的說(shuō)法是

A.定義函數(shù)時(shí),形參的類型說(shuō)明可以放在函數(shù)體內(nèi)

B.return后邊的值不能為表達(dá)式

C.如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準(zhǔn)

D.如果形參與實(shí)參類型不一致,以實(shí)參類型為準(zhǔn)

49.以下程序中函數(shù)setup的功能是返回形參指針s1和s2所指字符串中較小字符串的首地址:#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運(yùn)行時(shí)依次輸入:abcd、abba和abc3個(gè)字符串,則輸出結(jié)果為______。

A.abcdB.abbaC.abcD.abca

50.在最壞情況下,下列排序方法中時(shí)間復(fù)雜度最小的是()。

A.冒泡排序B.快速排序C.插入排序D.堆排序

51.以下描述中正確的是()。

A.由于do-while循環(huán)中循環(huán)體語(yǔ)句只能是一條可執(zhí)行語(yǔ)句,所以循環(huán)體內(nèi)不能使用復(fù)合語(yǔ)句

B.do-while循環(huán)由do開始,用while結(jié)束,在while(表達(dá)式.后面不能寫分號(hào)

C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進(jìn)行判斷

D.do-while循環(huán)中,根據(jù)情況可以省略while

52.設(shè)ch是char型變量,其值為A,且有表達(dá)式:ch=(ch>='A'&&ch<='Z')?(ch+32):ch。該表達(dá)式的值是______。

A.AB.aC.ZD.z

53.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。

A.不確定B.編譯錯(cuò)誤C.gD.輸出null字符

54.以下程序的輸出結(jié)果是______。structdate{long*a;structdate*next;doubleb;}too;printf("%d",sizeof(too));

A.20B.16C.14D.12

55.閱讀以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("請(qǐng)輸入2個(gè)數(shù):");scanf("%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下說(shuō)法正確的是()。

A.定義浯句出錯(cuò),Case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符,printF不能用作用戶自定義標(biāo)識(shí)符

B.定義語(yǔ)句出錯(cuò),Int無(wú)法被識(shí)別

C.定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用

D.定義語(yǔ)句無(wú)錯(cuò),printf不能輸出Case的值

56.算法一般都可以用______控制結(jié)構(gòu)組合而成。

A.循環(huán)、分支、遞歸B.順序、循環(huán)、嵌套C.循環(huán)、遞歸、選擇D.順序、選擇、循環(huán)

57.設(shè)計(jì)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)屬于()。

A.需求分析B.概念設(shè)計(jì)C.邏輯設(shè)計(jì)D.物理設(shè)計(jì)

58.以下選項(xiàng)中可作為C語(yǔ)言合法整數(shù)的是A.10110BB.386C.0XffaD.x2a2

59.以下程序的運(yùn)行結(jié)果為______。main(){inti,f1,f2;f1=f2=1;for(i=0;i<4;i++){printf("%d%d",f1,f2);f1+=f2;f2+=f1;}}

A.1123581321

B.1122551010

C.1258981321

D.0112451521

60.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>A)||(m=a<B);printf("%d,%d\n",k,m);}程序運(yùn)行后的輸出結(jié)果是

A.0,0B.0,1C.1,0D.1,1

四、選擇題(20題)61.軟件按其功能進(jìn)行分類,可分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是

A.文字編輯軟件B.網(wǎng)頁(yè)瀏覽器C.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)D.視頻播放軟件

62.以下敘述中錯(cuò)誤的是()。

A.C程序在運(yùn)行過(guò)程中所有計(jì)算都以二進(jìn)制方式進(jìn)行

B.C程序在運(yùn)行過(guò)程中所有計(jì)算都以十進(jìn)制方式進(jìn)行

C.所有C程序都需要編譯鏈接無(wú)誤后才能運(yùn)行

D.C程序中字符變量存放的是字符的ASCIl碼值

63.

64.程序流程圖(PFD.中的菱形代表的是()。

A.數(shù)據(jù)流B.控制流C.加工步驟D.邏輯條件

65.有以下程序程序的運(yùn)行結(jié)果是()。

A.a=2,b=lB.a=2,b=2C.a=1,b=lD.a=1.b=0

66.

67.

68.

程序運(yùn)行后的輸出結(jié)果是()。

A.ABCDE\0FG\OUKB.ABCDUKC.UKD.EFGUK

69.

70.有以下程序程序執(zhí)行后輸出結(jié)果是()。

A.5.OOB.5C.5.2lD.0.0

71.有以下程序:

執(zhí)行后輸出結(jié)果是()。

A.58B.56C.45D.24

72.

以下程序執(zhí)行后sum的值是()。

main

{inti,sum;

for(i=1;i<6;i++)sum+=i:

printf("1%d\n",sum):

}

A.15B.14C.不確定D.0

73.

74.設(shè)有圖書(圖書編號(hào),書名,第一作者,出版社.、讀者(借書證號(hào),姓名,單位,職稱.和借閱(借書證號(hào),圖書編號(hào),借書日期,還書日期.三張表,則表借閱的關(guān)鍵字(鍵或碼.為()。

A.借書證號(hào),圖書編號(hào)

B.圖書編號(hào),借書日期

C.借書日期,還書日期

D.借書證號(hào),借書日期

75.下列關(guān)于數(shù)據(jù)庫(kù)設(shè)計(jì)的敘述中,正確的是()。

A.在需求分析階段建立數(shù)據(jù)字典

B.在概念設(shè)計(jì)階段建立數(shù)據(jù)字典

C.在邏輯設(shè)計(jì)階段建立數(shù)據(jù)字典

D.在物理設(shè)計(jì)階段建立數(shù)據(jù)字典

76.以下選項(xiàng)中關(guān)于程序模塊化的敘述錯(cuò)誤的是()。

A.可采用自底向上、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序

B.把程序分成若干相對(duì)獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊

C.把程序分成若干相對(duì)獨(dú)立的模塊,可便于編碼和調(diào)試

D.可采用自頂向下、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序

77.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。

A.7,4.2,B.8,7,5,2,C.9,7,6,4,D.8,5,4,2,

78.

79.對(duì)于長(zhǎng)度為n的線性表,在最壞的情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是

A.插入排序?yàn)閚/2B.插入排序?yàn)閚C.快速排序?yàn)閚D.快速排序?yàn)閚(n-1)/2

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:在字符串的最前端加入m個(gè)*號(hào),形成新串,并且覆蓋原串。例如,用戶輸入字符串a(chǎn)bcd(以Enter鍵結(jié)束),然后輸入m值為3,則結(jié)果為***abcd。注意:字符串的長(zhǎng)度最長(zhǎng)允許為79。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.數(shù)組point中存放著m個(gè)人的成績(jī),請(qǐng)編寫函數(shù)fun().它的功能是:返回高于平均分的人數(shù),并將高于平均分的分?jǐn)?shù)放在high所指的數(shù)組中。例如,當(dāng)point數(shù)組中的數(shù)據(jù)為50,60,65,70.75,80.88,90,95時(shí),函數(shù)返回的人數(shù)應(yīng)該是5,high中的數(shù)據(jù)應(yīng)為75,80,88,90,95。請(qǐng)勿改動(dòng)main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入所編寫的若干語(yǔ)句。注意:部分源程序給出如下。試題程序:

參考答案

1.B

2.D

3.A解析:本題考查ifelse語(yǔ)句。第1個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語(yǔ)句;第2個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)b!=3條件成立,執(zhí)行下列的語(yǔ)句:第3個(gè)if語(yǔ)句,先判斷條件,c=5,則!c條件不成立,執(zhí)行與其配對(duì)的else語(yǔ)句:第4個(gè)if語(yǔ)句,先判斷條件,d=0,條件不成立,則x=-1,結(jié)束循環(huán)。

4.C在C語(yǔ)言中,字母區(qū)分大小,所以break、char、return、switch都是C語(yǔ)言中的關(guān)鍵字,而Swithch不是。

5.CC)【解析】線性表是一種線性結(jié)構(gòu),由n(n≥O)個(gè)元素組成,所以線性表可以是空表。但是性表中,第一個(gè)結(jié)點(diǎn)沒(méi)有前件,最后一個(gè)結(jié)點(diǎn)沒(méi)有后件,其他結(jié)點(diǎn)有且只有一個(gè)前件和后件,所以選項(xiàng)C)是錯(cuò)誤的。

6.A

7.BT為結(jié)構(gòu)體類型名,可以用來(lái)定義結(jié)構(gòu)體變量。故本題答案為B選項(xiàng)。

8.B

\n當(dāng)邏輯運(yùn)算符“&&”兩邊的值是非零時(shí),邏輯表達(dá)式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。

\n

9.D在選項(xiàng)中,\\019,以0開頭的數(shù)都為八進(jìn)制數(shù),而八進(jìn)制的表示數(shù)字是0~7,所以答案選擇D。

10.C

11.A

12.B

13.Dgetmax函數(shù)接收兩個(gè)整型變量x、y,使用條件運(yùn)算符返回x和y中的較大值。main函數(shù)首先輸入a、b、c、d4個(gè)整數(shù)值,然后通過(guò)調(diào)用getmax函數(shù),輸出它們的最大值。假設(shè)x、y是整數(shù),選項(xiàng)A中,首先執(zhí)行“getmax(a,b)”,返回a、b中的較大值X,再執(zhí)行“getmax(x,c)”,返回x、c中的較大值y,最后執(zhí)行“getmax(y,d)”,返回y、d中的較大值,滿足題意,正確;選項(xiàng)B中,首先執(zhí)行“getmax(a,b)”,返回a、b的較大值X,再執(zhí)行“getmax(c,d)”,返回c、d中的較大值y,最后執(zhí)行“getmax(x,y)”,返回x、y中的較大值,正確;選項(xiàng)C中,首先執(zhí)行“getmax(c,d)”,返回c、d的較大值X,再執(zhí)行“getmax(b,x)”,返回b、x中的較大值y,最后執(zhí)行“getmax(a,y)”,返回a、y中的較大值,正確;選項(xiàng)D中,首先執(zhí)行“getmax(a,b)”,返回a、b的較大值X,再執(zhí)行“getmax(c,d)”,返回c、d中的較大值y,最后執(zhí)行逗號(hào)表達(dá)式“(x,y)”,返回值為7,不滿足題意。故本題答案為D選項(xiàng)。

14.D

15.D

16.A\nA。【解析】頭結(jié)點(diǎn)不僅標(biāo)識(shí)了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,就能夠訪問(wèn)整個(gè)鏈表,因此增加頭結(jié)點(diǎn)的目的是為了便于運(yùn)算的實(shí)現(xiàn)。

\n

17.A本題考查指針,pl=&k表示P指向k的地址,則*p=k,依次類推,在對(duì)指針進(jìn)行賦值時(shí)沒(méi)有錯(cuò)誤。a=/*p+m賦值,在c語(yǔ)言中"/*"表示的注釋,所以答案選擇A。

18.D答案D

解析:在選項(xiàng)D中,n是一個(gè)整型的變量。C語(yǔ)言規(guī)定,在一維數(shù)組的定義中,其下標(biāo)只能是常量表達(dá)式,不能包含變量。

19.C解析:本題主要考查怎樣為嵌套定義的結(jié)構(gòu)中的成員賦值:由于worker中的birth是一個(gè)st型的結(jié)構(gòu),在給birth賦值時(shí),不能將birth作為一個(gè)整體,要用“.”運(yùn)算再深入一層訪問(wèn)到最基本的成員x、y、z。

20.C

21.k-1k\r\n-1解析:程序山使用了整型變量i、j、k,使用前應(yīng)先聲明,因此第1個(gè)空應(yīng)填變量k。i和j作為下標(biāo)的值,i被賦初值為0,j應(yīng)為下標(biāo)的最大值,下標(biāo)的最大值為數(shù)組的長(zhǎng)度減1。

22.軟件危機(jī)軟件危機(jī)

23.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒(méi)有發(fā)生變化,所以輸出結(jié)果為35。

24.7979解析:因?yàn)樵谡{(diào)用子函數(shù)時(shí)進(jìn)行的是數(shù)值傳遞,調(diào)用于函數(shù)并不能改變實(shí)參的值,所以經(jīng)過(guò)調(diào)用子函數(shù),c、d的值并沒(méi)有發(fā)生變化還是原來(lái)的值。

25.(a+b>C)&&(a+c>B)&&(b+c>A)(a+b>C)&&(a+c>B)&&(b+c>A)解析:本題主要考查運(yùn)算符邏輯與“&&”的用法。

26.一對(duì)多(或1∶N)一對(duì)多(或1∶N)解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,即一對(duì)一(1∶1)的聯(lián)系、一對(duì)多(1∶N)或多對(duì)一(N∶1)的聯(lián)系和多對(duì)多(N∶N)的聯(lián)系。

27.可重用性可重用性解析:繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

28.00解析:根據(jù)運(yùn)算符的運(yùn)算順序可知,該表達(dá)式最后運(yùn)算的是與(&&)運(yùn)算,而任何表達(dá)式與“0”進(jìn)行“與”運(yùn)算,結(jié)果都為0。

29.b[k++]b[k++]解析:本題的考查點(diǎn)是do-while語(yǔ)句。形參x默認(rèn)為十進(jìn)制,要想將一個(gè)十進(jìn)制的數(shù)轉(zhuǎn)換成二進(jìn)制,可以使用整除求余法,題中的程序段也表明了將使用這種方法,將一個(gè)十進(jìn)制的數(shù)轉(zhuǎn)換成二進(jìn)制要用這個(gè)十進(jìn)制數(shù)不斷的整除2,將每次的余數(shù)記錄下來(lái),直至無(wú)法再除,此時(shí),整除得到的第一個(gè)元素即為二進(jìn)制數(shù)的最低位,其余依次類推,所以在程序段中的橫線處,應(yīng)當(dāng)填寫“b[k++]”。

30.1011

31.計(jì)算數(shù)組num中大于零的數(shù)據(jù)之和計(jì)算數(shù)組num中大于零的數(shù)據(jù)之和

32.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個(gè)指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時(shí)是以“%d”格式輸出的,即輸出其相應(yīng)ASCII碼值68。

33.若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abe,則引用變量abe成員s的標(biāo)記形式有abe.a和p_abc->a。

34.*(p+5)

35.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結(jié)果來(lái)看,s保存的是最終結(jié)果,而s在循環(huán)體中,每次累加一個(gè)t,則說(shuō)明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i,又因?yàn)閕在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應(yīng)分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內(nèi)容”應(yīng)是t*10。

36.structlink*next

37.

38.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過(guò)程中,可以用*(str+I)來(lái)訪問(wèn)字符串中的第I個(gè)元素,判斷是否為結(jié)束標(biāo)志,如果不是,I=I+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+I)相當(dāng)于str[I]。

39.cdeabcdeab解析:本題move()函數(shù)的作用,是將形參s仕所指地址的連續(xù)n位循環(huán)右移1位,即讓str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函數(shù)中用了一個(gè)for循環(huán)調(diào)用move()函數(shù),共循環(huán)3次,所以數(shù)組s被循環(huán)右移了3位,故最后輸出的值為cdeab。

40.方法方法解析:在面向?qū)ο蠓椒ㄖ?,方法是指允許作用于某個(gè)對(duì)象上的各種操作。

41.A解析:在C語(yǔ)言中所謂函數(shù)的遞歸是指在調(diào)用一個(gè)函數(shù)的過(guò)程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用。由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是當(dāng)i<j時(shí),將數(shù)組中的元素a[i]和a[j]交換,然后再調(diào)用函數(shù)f(a,i+1,j-1),將數(shù)組中a[i+1]和a[j--]交換,這樣一直遞歸到數(shù)組下標(biāo)i=j,可見(jiàn)該遞歸函數(shù)的作用是使數(shù)組中首尾元素依次互換。主函數(shù)中定義了一個(gè)長(zhǎng)度為5的數(shù)組aa并初始化,然后調(diào)用f(a,0,4),將數(shù)組a中的元素依次互換,故最后for循環(huán)輸出的數(shù)組aa中各元素的值為5、4、3、2、1,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

42.B

43.A解析:對(duì)未給出初始值的整數(shù)數(shù)組元素,被默認(rèn)初始化為零。

44.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問(wèn)結(jié)構(gòu)體的成員,可以通過(guò)結(jié)構(gòu)變量訪問(wèn),即st.i,也可以用等價(jià)的指針形式,即(*p).i和p->i。

45.C解析:switch后的括號(hào)中只能是整型或字符型表達(dá)式,選項(xiàng)A中使用的是浮點(diǎn)型變量x,故不正確。選項(xiàng)B在switch的括號(hào)后面多了一個(gè)分號(hào),故也不正確。switch的case標(biāo)號(hào)后只能是常量或常量表達(dá)式,而不能是變量,所以選項(xiàng)D也不正確。故應(yīng)該選擇C。

46.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應(yīng)該是該字符串中的首地址,p+3指向的是字符串結(jié)束標(biāo)志'\\0'的地址,因而*(p+3)的值為0。

47.A解析:在選項(xiàng)A中,“\\”后跟著三個(gè)數(shù)字,是表示一個(gè)ASCII碼值等于這三位數(shù)字所組成的八進(jìn)制數(shù)數(shù)值的字符,但是八進(jìn)制數(shù)只能是由0-7這八個(gè)數(shù)字表示,而選項(xiàng)A中出現(xiàn)了數(shù)字8所以是不合法的。選項(xiàng)B是表示一個(gè)雙引號(hào)的轉(zhuǎn)義字符表示方法;選項(xiàng)C表示的是一個(gè)反斜桿;選項(xiàng)D表示一個(gè)ASCII值為十六進(jìn)制值“的字符。故應(yīng)該選擇A。

48.C解析:選項(xiàng)A)中定義函數(shù)時(shí),形參的類型說(shuō)明應(yīng)該放在形參表列內(nèi)說(shuō)明。老版本C語(yǔ)言中,對(duì)形參類型的聲明是放在函數(shù)定義的第2行,也就是不在第1行的括號(hào)內(nèi)指定形參的類型,而在括號(hào)外單獨(dú)指定。選項(xiàng)B)中return后面的值可以是一個(gè)表達(dá)式。選項(xiàng)D)中實(shí)參與形參的類型應(yīng)相同或賦值兼容。如果實(shí)參為整型而形參為實(shí)型,或者相反,則按不同類型數(shù)值的賦值規(guī)則進(jìn)行轉(zhuǎn)換,以形參類型為準(zhǔn)。

49.B解析:函數(shù)scmp的功能是比較兩個(gè)符號(hào)串的大小,返回值較小的那個(gè)符號(hào)串。str[0]中存放'abcd'、str[1]中存放'abba'、str[2]中存放'abc',執(zhí)行完語(yǔ)句strcpy(string,scmp(sty[0],sir[1]));后string中存放'abba',執(zhí)行完語(yǔ)句strcpy(string,scmp(string,str[2]));后string中存放'abba'。

50.D解析:在最壞情況下:冒泡排序需要的比較次數(shù)為n(n-1)/2;快速排序需要的比較次數(shù)也為n(n-1)/2;插入排序需要的比較次數(shù)也為n(n-1)/2;堆排序需要比較的次數(shù)為O(nlog2n)。可知,在最壞情況下,堆排序的時(shí)間復(fù)雜度最小,本題的正確答案為選項(xiàng)D。

51.C解析:do-while語(yǔ)句的一般形式為:do循環(huán)體語(yǔ)句while(表達(dá)式);,其中循環(huán)體語(yǔ)句可以是復(fù)合型語(yǔ)句,但必須用花括號(hào)括起來(lái)。while后必須要有分號(hào)作為語(yǔ)句的結(jié)束,在do-while循環(huán)中,不可以省略while。

52.B

53.A解析:由于s[2][6]表示字符串已超出了數(shù)組s的表示范圍,在C中不會(huì)劉數(shù)組越界進(jìn)行檢查,當(dāng)數(shù)組越界時(shí),會(huì)得到一個(gè)不確定的值。

54.D解析:指針類型占2個(gè)字節(jié),雙精度型占8個(gè)字節(jié),因此sizeof(too)=2+2+8=12

55.B解析:C語(yǔ)畝足一種大小寫敏感的語(yǔ)言,因此Int應(yīng)為int,而CaseprintF則可以使用。

56.D解析:算法的控制結(jié)構(gòu)給出了算法的基本框架,不僅決定了算法中各操作的執(zhí)行順序,也直接反映了算法的設(shè)計(jì)是否符合結(jié)構(gòu)化原則。一個(gè)算法一般都可以用順序、選擇、循環(huán)三種基本控制結(jié)構(gòu)組合而成。

57.DD?!窘馕觥课锢碓O(shè)計(jì)階段主要解決選擇文件存儲(chǔ)結(jié)構(gòu)和確定文件存取方法的問(wèn)題。物理設(shè)計(jì)階段包括:選擇存儲(chǔ)結(jié)構(gòu)、確定存取方法、選擇存取路徑、確定數(shù)據(jù)的存放位置。

58.C解析:本題考核的知識(shí)點(diǎn)是整數(shù)及常數(shù)的表示方法。在C語(yǔ)言中,整數(shù)常量可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制來(lái)表示,選項(xiàng)A為二進(jìn)制表示,故選項(xiàng)A不正確;選項(xiàng)B是八進(jìn)制表示法,但在八進(jìn)制數(shù)中,各個(gè)位數(shù)只能為數(shù)字。到7中的一個(gè),而在選項(xiàng)B中,有一個(gè)數(shù)字8,故選項(xiàng)B不正確;選項(xiàng)C為十六進(jìn)制表示法正確:選項(xiàng)D中也為十六進(jìn)制表示法,但十六進(jìn)制數(shù)以O(shè)x開頭,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)c符合題意。

59.A

60.C解析:本題考查“邏輯或”運(yùn)算的特例。本題中執(zhí)行語(yǔ)句k=(n=b>a)||(m=a<b)時(shí),首先計(jì)算表達(dá)式(n=b>a)||(m=a<b)的值,因b=2,a=1,所以b>a成立,即得n=1,故表達(dá)式(n=b>a)||(m=a<b)的值為真,不再執(zhí)行表達(dá)式m=a<b,故執(zhí)行完表達(dá)式k=(n=b2>a)||(m=a<b)后,n=1、m=0、k=1。

61.C本題考查不同種類軟件的劃分。

應(yīng)用軟件是用戶可以使用的各種程序設(shè)計(jì)語(yǔ)言,以及用各種程序設(shè)計(jì)語(yǔ)言編制的應(yīng)用程序的集合,分為應(yīng)用軟件和用戶程序。應(yīng)用軟件包括辦公室軟件(文書處理器、檔案管理系統(tǒng)、文本編輯器)、互聯(lián)網(wǎng)軟件(即時(shí)通訊軟件、電子郵件客戶端、網(wǎng)頁(yè)瀏覽器FTP客戶端下載工具)、多媒體軟件(媒體播放器、圖像編輯軟件、音訊編輯軟件、視訊編輯軟件)、分析軟件(統(tǒng)計(jì)軟件、數(shù)字計(jì)算)、協(xié)作軟件、商務(wù)軟件、會(huì)計(jì)軟件(企業(yè)工作流程分析軟件)。

系統(tǒng)軟件是指控制和協(xié)調(diào)計(jì)算機(jī)及外部設(shè)備,支持應(yīng)用的軟件開發(fā)和運(yùn)行的系統(tǒng),是無(wú)須用戶干預(yù)的各種程序的集合,主要功能是調(diào)度、監(jiān)控和維護(hù)計(jì)算機(jī)系統(tǒng);負(fù)責(zé)管理計(jì)算機(jī)系統(tǒng)中各種獨(dú)立的硬件,使得它們可以協(xié)調(diào)工作。系統(tǒng)軟件使得計(jì)算機(jī)使用者和其他軟件將計(jì)算機(jī)當(dāng)做一個(gè)整體而不需要顧及到底層每個(gè)硬件是如何工作的。系統(tǒng)軟件主要包括:操作系統(tǒng)(Windows、Linux、DOS、UNIX)、語(yǔ)言處理程序(匯編語(yǔ)言匯編器、C語(yǔ)言編譯、連接器)、高級(jí)語(yǔ)言系統(tǒng)和各種服務(wù)性程序(數(shù)據(jù)庫(kù)管理、存儲(chǔ)器格式化)等。

支撐軟件是支撐各種軟件的開發(fā)與維護(hù)的軟件,又稱為軟件開發(fā)環(huán)境,如IBM公司的WebSphere、微軟公司的Studio.NET,它主要包括環(huán)境數(shù)據(jù)庫(kù)、各種接口軟件和工具組。

選項(xiàng)A、B、D都屬于應(yīng)用軟件。

62.BC程序在運(yùn)行過(guò)程中的所有計(jì)算都以二進(jìn)制方式進(jìn)行,所以B選項(xiàng)錯(cuò)誤。

63.C

64.D程序流程圖是軟件設(shè)計(jì)過(guò)程中常用的圖形描述工具之一。構(gòu)成程序流程圖的最基本符號(hào)有:“→”或“↓”表示控制流,“口”表示加工步驟,“

”表示邏輯條件。

65.Acase常量表達(dá)式只是起語(yǔ)句標(biāo)號(hào)作用,并不是該處進(jìn)行條件判斷。在執(zhí)行switch語(yǔ)句時(shí),根據(jù)switch的表達(dá)式,找到與之匹配的case語(yǔ)句,就從該case-子句執(zhí)行下去,不再進(jìn)行判斷。直到碰到break競(jìng)語(yǔ)句結(jié)束為止。因此執(zhí)行內(nèi)層switch

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論