2021年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)_第1頁
2021年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)_第2頁
2021年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)_第3頁
2021年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)_第4頁
2021年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有定義"int(*pt)[3];",則下列說法正確的是()。

A.定義了基類型為int的三個指針變量

B.定義了基類型為int的具有三個元素的指針數(shù)組pt

C.定義了一個名為*pt、具有三個元素的整型數(shù)組

D.定義了一個名為pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組

2.有以下程序:#include<stdio.h>voidf(intb[]){inti;for(i=2;i<6;i++)b[i]*=2;}main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;f(a);for(i=0;i<10;i++)printf(“%d,”,a[i]);}程序的運行結(jié)果是()。A.1,2,3,4,5,6,7,8,9,10,

B.1,2,6,8,10,12,7,8,9,10,

C.1,2,3,4,10,12,14,16,9,10,

D.1,2,6,8,10,12,14,16,9,10,

3.線性表是具有n個()的有限序列。

A.表元素B.字符C.數(shù)據(jù)元素D.數(shù)據(jù)項

4.有以下程序:

main()

{intX,i;

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

{x=i;

if(X%2=O)

if(x%3=O)

if(X%7=0)

printf("%d,i)";

}

}

輸出結(jié)果是()。

A.28

B.27

C.42

D.41

5.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是______。

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

6.如有inta=11;則表達式(a++*1/3)的值是()。

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

7.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細設計說明書C.用戶手冊D.軟件需求規(guī)格說明書

8.在具有101個元素的順序表中查找值為x的元素結(jié)點時,平均比較元素的次數(shù)為()。

A.50B.51C.100D.101

9.以下不能定義為用戶標識符的是()。

A.VoidB.scanfC.intD._3com_

10.下列描述中,不是線性表順序存儲結(jié)構(gòu)特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關(guān)系

11.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的運行結(jié)果是()。A.*****a*bB.a*bC.a*b****D.ab

12.有以下程序:

程序運行后的輸出結(jié)果是()。A.4B.2C.3D.1

13.字符串"\\"ABCDEF\"\\”的長度是()。

A.11B.10C.5D.3

14.

15.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abcdefghijklmnopq

B.afgebcdhnopqmijklhnopqmijkl

C.efgabcdmnopqhijkl

D.mijklhnopqebcdafg

16.若有語句“typedefstructTT{charc;inta[4];}CIN;”,則下列敘述中正確的是()。

A.CIN是structTT類型的變量

B.TT是struct類型的變量

C.可以用TT定義結(jié)構(gòu)體變量

D.可以用CIN定義結(jié)構(gòu)體變量

17.在決定選取何種存儲結(jié)構(gòu)時,一般不考慮()。

A.各結(jié)點的值如何B.結(jié)點個數(shù)的多少C.對數(shù)據(jù)有哪些運算D.所用的編程語言實現(xiàn)這種結(jié)構(gòu)是否方便

18.數(shù)據(jù)的邏輯關(guān)系是指數(shù)據(jù)元素的()。

A.關(guān)聯(lián)B.結(jié)構(gòu)C.數(shù)據(jù)項D.存儲方式

19.C程序是由()構(gòu)成的。

A.主程序與子程序B.主函數(shù)與子函數(shù)C.一個主函數(shù)與若干個其他函數(shù)D.主函數(shù)與子程序

20.在三級模式之間引入兩層映像,其主要功能之一是()。

A.使數(shù)據(jù)與程序具有較高的獨立性B.使系統(tǒng)具有較高的通道能力C.保持數(shù)據(jù)與程序的一致性D.提高存儲空間的利用率

二、2.填空題(20題)21.下面程序用來輸出結(jié)構(gòu)體變量a所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>

main()

{structstu

{charx[20];floaty;}a;

printf("asize:%d\n",sizeof(【】));

}

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

23.在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。

24.下列程序的運行結(jié)果為【】。

enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};

main()

{enumweekdayworkday,weekend;

inti,a[8];

workday=tue;

weekend=sun;

printf("\ntueday=%dsunday=%d;",workday,week_end);

workday=sun+tue;

week_end=(enumweekday)3;

printf("tueday=%dsunday=%d;",workday,weekend);

a[sun]=sun;

a[mon]=mon;

a[tue]=rue;

a[wed]=wed;

a[thu]=thu;

a[fri]=fri;

a[sat]=sat;

for(i=l;i<=7;i++)printf("%d",a[i]);

}

25.以下程序的功能是建立一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

【】=a;q->next=p;【】=p;scanf("%d",&a);}

p->next=′\0;return(ph);}

main()

{structlist*head;head=creatlist();}

26.若輸入tear、test、arj,則下列程序的運行結(jié)果為【】。

main()

{char*strl[20],*str2[20],*str3[20];

charswap();

scanf("%s",str1);

scanf("%s",str2);

scanf("%s",str3);

if(strcmp(str1,str2)>0)swap(str1,str2);

if(strcmp(str1,str3)>0)swap(str1,str3);

if(strcmp(str2,str3)>0)swap(str2,str3);

printf("%s%s%s\n",str1,str2,str3);

}

charswap(p1,p2)

char*p1,*p2;

{char*p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);

}

27.有下面的程序:

#include<stdio,h>

main()

{enumteam{my,your=4,his,her=his+10};

prinff("%d%d%d%d\n",my,your,his,her);

此程序的輸出結(jié)果是【】。

A)0123B)04010C)04515D)14515

28.有以下程序:

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

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

29.設某循環(huán)隊列的容量為50,頭指針front=5(指向隊頭元素的前一位置),尾指針rear=29(指向隊尾元素),則該循環(huán)隊列中共有【】個元素。

30.表達式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

31.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

32.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。

33.以下程序運行后的輸出結(jié)果是______。

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

34.以下程序段用于構(gòu)成一個簡單的單向鏈表。請?zhí)羁铡?/p>

struetSTRU

{intx,y;

floatrate;

【】p;

}a,b;

a.x=0;a.y=0;a.rate=0;a.p=&b;

b.x=0;b.y=0;b.rate=0;b.p=NULL;

35.設有以下定義和語句,則*(*(P+2)+1)的值為【】。

int[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

36.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是【】。

37.下面程序的功能是輸出數(shù)組s中最大元素的下標,請?zhí)羁铡?/p>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

printf("%d\n",k);}

38.以下程序段中,錯誤的行號是【】。①#include<stdio.h>②main()③{charstr[14];str[]={"IloveChina!"};④printf("%s",str);⑤}

39.軟件工程的出現(xiàn)是由于【】。

40.軟件是程序、數(shù)據(jù)和【】的集合。

三、1.選擇題(20題)41.設有以下定義和語句,輸出的結(jié)果是(用small模式編譯,指針變量占2個字節(jié))______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));

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

42.以下程序的輸出結(jié)果是unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d\n",a.u.x);}

A.4B.5C.6D.0

43.有關(guān)return語句說法不正確的是()。

A.系統(tǒng)默認的返回值類型為整型,故當函數(shù)的返回值為int型時,在函數(shù)定義時,返回值的類型說明可以省略

B.當函數(shù)有返回值時,凡是允許表達式出現(xiàn)的地方,都可以調(diào)用該函數(shù)

C.當函數(shù)沒有返回值時,函數(shù)的返回值類型可以說明為void型,它表示“無類型”或“空類型”

D.函數(shù)的返回值類型必須與return語句中的表達式值的類型一致,但C語言也允許不同;這時,系統(tǒng)以函數(shù)定義時的返回值類型說明為準,并自動地將return語句中表達式的值轉(zhuǎn)換為函數(shù)的返回值類型

44.下面程序的輸出結(jié)果是()。#include<stdio.h>#include<string.h>main(){charp1[]="WHO",p2[]="who",str[50]="xyz";strcpy(str+1,strcat(p1,p2));printf("%s",str);}

A.xyzWHOwhoB.zWHOwhoC.zWHOwhoD.xWHOwho

45.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。

A.12B.13C.14D.15

46.以下程序的輸出結(jié)果是intf(){stadcinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f();printf(“%d\n”,A);}

A.20B.24C.25D.15

47.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關(guān)的是數(shù)據(jù)的()。A.存儲結(jié)構(gòu)B.物理結(jié)構(gòu)C.邏輯結(jié)構(gòu)D.物理和存儲結(jié)構(gòu)

48.若以下定義:structlink{intdata;strucklink*next;}a,b,c,*p,*q;且變量a和b之間已有下圖所示的鏈表結(jié)構(gòu):

指針p指向變量a,q指向變量c,則能夠把c插入到a和b之間并形成新的鏈表的語句組是()。

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p>next;

D.(*p).next=q;(*q).next=&b;

49.以下程序輸出正確的是_______amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)mallox(100)amovep)p,a,3);printf("%d%d\n",p[2],p[5]);free(p)}

A.56B.25C.34D.程序錯誤

50.若變量已正確定義并賦值,下面符合C語言的表達式是_____。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

51.不能把字符串"Hello!"賦給數(shù)組b的語句是______。

A.charb[10]={'H','e','l','l','o','!'};

B.charb[10]={'h','e','l','l','o','!'};

C.charb[10];strcpy(b,"Hello!");

D.charb[10]="Hello!";

52.若k是int型變量,且有下面程序片段:k=-3;if(k<=0)printf("####")elseprintf("&&&&")上面程序片段的輸出結(jié)果是()

A.####

B.&&&&

C.###&&&&

D.有語法錯誤,無輸出結(jié)果

53.以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請選擇正確答案填入。()#inelude<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);┇}

A.a+(i++)B.&a[i+1]C.a+iD.&a[i++]

54.下列描述中正確的是()。

A.程序就是軟件

B.軟件開發(fā)不受計算機系統(tǒng)的限制

C.軟件既是邏輯實體,又是物理實體

D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合

55.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}執(zhí)行扣輸出的結(jié)果是

A.11122B.12C.12020D.120

56.面向?qū)ο蟮脑O計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。

A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系

B.強調(diào)模擬現(xiàn)實世界中的算法而不強調(diào)概念

C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題

D.鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領域的概念去思考

57.下列程序是將一個十進制正整數(shù)轉(zhuǎn)化為一個八進制數(shù),在程序的空白處應填入的語句是_______。#include<stdio.h>main(){inti=9,a,b[10]={0};scanf("%d",&A);sub(a,B);for(;i>=0;i--)printf("%d",b[i]);}sub(intc,intd[]){inte,i=0;while(c!=0){e=c%8;d[i]=e;________.i++;}return;}

A.c=e/8B.c=c%8C.c=c/8D.c=e%8

58.字符串"%%\"ABCDEF\"\\"的長度是()。

A.11B.10C.5D.3

59.有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib(3));}該程序的輸出結(jié)果是______。

A.2B.4C.6D.8

60.設有定義:charp[]={′1′,′2′,′3′},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

四、選擇題(20題)61.有如下程序:

main

{inta=2,b=-1.c=2;

if(a<b)if(b<0)c=0;

elsec++;

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

}

該程序的輸出結(jié)果是()。A.A.0B.1C.2D.3

62.

63.執(zhí)行下列程序時輸入:123<空格>456<空格>789<回車>輸出結(jié)果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456

64.假定已建立以下鏈表結(jié)構(gòu),且指針P和q已指向如圖所示的結(jié)點:

則以下選項中可將q所指結(jié)點從鏈表中刪除并釋放該結(jié)點的語句組是()。

A.p一>next=q一>next;flee(q);

B.p=q一>next;free(q);

C.p=q;free(q);

D.(*p).next=(幸q).next;ffee(p);

65.

66.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8

67.(31)算法一般都可以用哪幾種控制結(jié)構(gòu)組合而成()

A.循環(huán)、分支、遞歸

B.順序、循環(huán)、嵌套

C.循環(huán)、遞歸、選擇

D.順序、選擇、循環(huán)

68.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細設計B.需求分析C.總體設計D.編程調(diào)試

69.若有說明“chars1[30]="abc",s2[]="defghi";",則在使用函數(shù)stoat(s1,s2)后,結(jié)果是()。

A.s1的內(nèi)容更新為abcdefghi

B.s1的內(nèi)容更新為defghi\0

C.s1的內(nèi)容更新勾defghiabc\0

D.s1的內(nèi)容更新為abcdefghi\0

70.若有定義:doublea=22;inti=0,k=18;,則不符合c語言規(guī)定的賦值語句是()。

A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;

71.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

72.下列選項中不是字符常量的是()。

A.'\v'B.'\x2a'C.'a'D."\0"

73.

74.C語言中,合法的字符型常數(shù)是_________。

A.‘A’B.“A”C.65D.A

75.

76.設有如下說明:

以下說法正確的是()。

A.NEW是一個結(jié)構(gòu)體變量

B.NEW是一個結(jié)構(gòu)體類型

C.ST是一個結(jié)構(gòu)體類型

D.以上說明形式非法

77.有以下程序

#include<stdio.h>

voidfun(ints[])

{staticintj=0;

do

s[j]+=s[j+1];

while(++j<2);

}

main()

{

intk,a[10]={1,2,3,4,5};

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

for(k=0;k<5;k++)

printf("%d",a[k]);

}

程序的運行結(jié)果是

A.34756B.23445

C.35745D.12345

78.設有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9

79.(27)程序流程圖(PFD)中的箭頭代表的是()

A.數(shù)據(jù)流

B.控制流

C.調(diào)用關(guān)系

D.組成關(guān)系

80.若有以下說明和語句:

sturctst

{intn;char*ch;};

structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;

則值為6的表達式是()。

A)p++->nB)p->n++

C)(*p).n++D)++p->n

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求S的值。設例如,當k為20時,函數(shù)的值應為1.551759。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設計題(1題)82.請編寫—個函數(shù),用來刪除字符串中的所有空格。例如,輸入asdafaaz67,則輸出為asdafaaz67。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.D\n數(shù)組指針是指向數(shù)組的一個指針,int(*pt)[3]表示一個指向3個int元素的數(shù)組的一個指針。

\n

2.B數(shù)組名相當于常量,表示的是數(shù)組首元素的地址。當執(zhí)行函數(shù)f(a)的時候,因為傳遞的是首地址,相當于直接對數(shù)組a進行操作,所以從數(shù)組a的第3個元素a[2]到元素a[5],每個元素值擴大兩倍。故本題答案為B選項。

3.A

4.C\n只有當3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇c選鞏。

\n

5.D解析:通常,引用一個數(shù)組元素可以用下標法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標是從0開始的。

6.B

7.D需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評審四個方面。所以選擇D。

8.B

9.C標識符的命名可以由字母、數(shù)字或下劃線組成,并且第1個字符必須為字母或下劃線,另外用戶標識符不能使用關(guān)鍵字。選項A中的Void可以定義為用戶標識符,因為C語言對大小寫敏感,Void與關(guān)鍵字void屬于不同的標識符;選項B中的scanf是庫函數(shù)名,屬于預定義標識符,它也可以作為用戶標識符使用,不過通常不建議這么使用;選項C中的int屬于關(guān)鍵字,錯誤;選項D符合標識符的命名規(guī)則,也不屬于關(guān)鍵字,可以作為標識符使用。本題答案為C選項。

10.D解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關(guān)系。

11.C解析:主函數(shù)main()定義了指向字符串的指針和一個字符數(shù)組,接著調(diào)用fun(s,t)函數(shù),進行實參向形參傳遞,函數(shù)fun()第一個while語句判斷*a中的值為“*”時繼續(xù)掃描,當遇到不是“*”時結(jié)束,接著第二個while循環(huán)語句,將*a中從“a”開始的后續(xù)所有字符都賦予*b,也就是t[80]中的內(nèi)容為“a*b****”,所以此題的運行結(jié)果為選項C)。

12.D條件表達式形式:表達式1?表達式2:表達式3。當表達式1的值為非零值時,整個表達式的值是表達式2的值;當表達式1的值為零值時,整個表達式的值是表達式3的值。題干中的表達式是嵌套的條件表達式w﹤x?w:z﹤y?z:x,等價于w﹤x?w:(z﹤y?z:x)。由于w取值為4,x取值為3,所以w﹤x的值為零值,整個表達式的值為z﹤y?z:x,z取值為1,y取值為2,所以z﹤y的值為非零值,整個表達式的值為z的值1。本題答案為D選項。

13.B解析:本題涉及字符串的兩個最基本的概念。①字符串的長度是指字符串中字符的個數(shù),但不包含字符串結(jié)束符;②以反斜線“\\”開頭的特殊字符序列,意思是把反斜線后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\\”連同后面的字符為一個長度。

14.A

15.B程序首先定義二維字符數(shù)組v,使用4個字符串初始化,另外定義字符指針數(shù)組P。通過第1個for循環(huán),將v的4個字符串的首地址賦給p。第2for循環(huán)通過兩層內(nèi)嵌循環(huán)將p中元素指向的字符串首字母進行排序交換。規(guī)則是將指向的字符串的首字母字符按照字母表中的順序排序后交換。注意,這里交換的是首字母,而不是整個字符串,所以程序輸出:afgebcdhnopqmijkl。本題答案為B選項。

16.DCIN為結(jié)構(gòu)體類型名,而不是結(jié)構(gòu)體變量。故本題答案為D選項。

17.A

18.A

19.B

20.AA.【解析】數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)庫的三級模式之間提供了兩層映像,保證了數(shù)據(jù)庫中數(shù)據(jù)的較高的邏輯獨立性和物理獨立性。使系統(tǒng)具有較高的通道能力和提高存儲空間的利用率是操作系統(tǒng)的職能,而不是數(shù)據(jù)庫管理系統(tǒng)的職能。在數(shù)據(jù)庫系統(tǒng)中沒有“數(shù)據(jù)和程序一致性”這一概念。

21.dd解析:d被定義為一個結(jié)構(gòu)體類型變量,求結(jié)構(gòu)體變量a所占存儲單元的字節(jié)數(shù)即sizeof(d)。

22.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。

23.有窮性有窮性解析:算法的4個基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報,其中,算法的有窮性指的是算法必須在有限的時間內(nèi)完成,即算法必須在執(zhí)行有限個步驟之后終止。

24.tueday=2sunday=7;tueday=9sunday=3;1234567

25.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點。

26.arjteartest

27.CC解析:枚舉的語法規(guī)定,當枚舉元素沒有賦值時,如果前面沒有其他枚舉元素,其值為0;如果前面有其他枚舉元素,其值為前一個元素的值加1,所以his的值為5,her的值為15。

28.00解析:for循環(huán)執(zhí)行完成后t=5×4×3×2×1×0=0。

29.2424解析:在循環(huán)隊列中因為頭指針指向的是隊頭元素的前一個位置,所以是從第6個位置開始有數(shù)據(jù)元素,所以隊列中的數(shù)據(jù)元素的個數(shù)為29-5=24。

30.整型整型解析:上面的表達式中,通過強制類型轉(zhuǎn)換把最后參與運算的數(shù)據(jù)都轉(zhuǎn)換成了int型,所以最后得到的結(jié)果也是int類型。

31.11解析:字符空格的ASCII碼不為0,所以本題中表達式\ue008!c\ue009的值為0,b=0&&1的結(jié)果顯然為0。

32.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨立性,數(shù)據(jù)統(tǒng)一管理與控制。

33.136136解析:本題考核的知識點是函數(shù)遞歸。主函數(shù)調(diào)用函數(shù)fun(6),由于6/2>0為真遞歸調(diào)用fun(3),接著遞歸調(diào)用fun(1),輸出1,返回上一層輸出3,在返回上一層輸出6。故空格處應該填136。

34.structSTRU*

35.6060解析:本題定義了一個3行2列的二維數(shù)組a,并定義了一個指向兩個元素的一維數(shù)組指針p,讓p指向二維數(shù)組a的首行。*(*(p+2)+1)是引用a[2][1],其值是60。

36.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)解析:數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。(1)人工管理階段。這一階段的計算機主要用于科技計算。外存只有磁帶、卡片和紙帶等,軟件只有匯編語言,尚無數(shù)據(jù)管理方面的軟件。數(shù)據(jù)處理方式是批處理。(2)文件系統(tǒng)階段。文件系統(tǒng)是數(shù)據(jù)庫系統(tǒng)發(fā)展的初級階段,它提供了簡單的數(shù)據(jù)共享與數(shù)據(jù)管理能力,但是它無法提供完整的、統(tǒng)一的管理和數(shù)據(jù)共享的能力。由于它的功能簡單,因此它附屬于操作系統(tǒng)而不能成為獨立的軟件,目前一般將其看成僅是數(shù)據(jù)庫系統(tǒng)的雛形,而不是真正的數(shù)據(jù)庫系統(tǒng)。(3)數(shù)據(jù)庫系統(tǒng)階段。數(shù)據(jù)庫階段用數(shù)據(jù)模型表示復雜的數(shù)據(jù)模型,有較高的數(shù)據(jù)獨立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式(用COBOL、C一類高級語言和數(shù)據(jù)庫語言編制的程序)操作數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。

37.k=p;k=p;解析:為尋找數(shù)組中最大元素的下標,需先預設1個臨時最大元素的下標,并順序逐一考查數(shù)組的元素,當發(fā)現(xiàn)當前元素比臨時最大元素更大時,就用當前元素的下標更新臨時最大元素下標。直至考查了數(shù)組的全部元素后,這臨時最大元素下標就是數(shù)組的最大元素下標。通常預設的最大元素下標是數(shù)組的首元素下標,考查通常從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標的變量是k,變量p控制順序考查的循環(huán)控制變量。當發(fā)現(xiàn)當前元素s[p]比臨時最大元素s[k]更大時,應該用p更新k,所以在空框處應填入代碼'k=p;'。

38.③數(shù)組可以在定義時整體賦初值,但不能在賦值語句中整體賦初值。因此,可將第三行改為charstr[14]={"IloveChina!"};

39.軟件危機的出現(xiàn)軟件危機的出現(xiàn)

40.文檔文檔解析:計算機軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

41.D解析:sizeof函數(shù)計算已知類型所占的字節(jié)數(shù)。結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。指針變量占2個字節(jié),所以cat和*next各占2個字節(jié);double型占8個字節(jié),故too共占12個字節(jié)。

42.D解析:本題考查共用體變量起作用的范圍。共用體變量中起作用的成員是最后一次存放的成員,在存入一個新的成員后原有的成員就失去作用,在本題中,當對a.u.y成員賦值時,a.u.x的值就不存在了,當對a.u.2賦值時,a.u.y的值就不存在了。

43.D函數(shù)的返回值類型一般與return語句中的表達式值的類型一致,但C語言也允許不同;這時,系統(tǒng)以函數(shù)定義時的返回值類型說明為準,并自動地將return語句中表達式的值轉(zhuǎn)換為函數(shù)的返回值類型。

44.D

45.D解析:調(diào)用函數(shù)func(x,y),返回x+y,即7;再調(diào)用函數(shù)func(7,z),返回7+z,即15。

46.D解析:在C語言中聲明為static型的變量,在整個程序運行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲區(qū)中占據(jù)永久性的存儲單元。即使退出函數(shù)后,下次再進入該函數(shù)時,靜態(tài)局部變量仍使用原來的存儲單元。由于并不釋放這些存儲單元,因此這些存儲單元中的值得以保留;因而可以繼續(xù)使用存儲單元中原來的值。本題中函數(shù)f()中定義了一個static型變量i,故每調(diào)用一次函數(shù)f(),i的值加1,返回s的值等于i,在主函數(shù)中用了一個for循環(huán),該循環(huán)執(zhí)行了5次,每次都調(diào)用f()函數(shù),將其返回值累加到變量a中,故最后a的值為1+2+3+4+5=15。

47.C數(shù)據(jù)結(jié)構(gòu)概念一般包括3個方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)(物理結(jié)構(gòu))及數(shù)據(jù)上的運算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,即數(shù)據(jù)元素之間的前后件關(guān)系,而不管它在計算機中的存儲表示形式。

48.D解析:在本題,扣指針p指向變量a,q指向變量c。要把c插入到變量a和變量b之間,就應該首先讓變量a的指針域指向變量c,即(*p).next=q,然后讓變量c的指針域指向變量b,即(*q).next=&b。所以,4個選項中D為所選。

49.A解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲單元中,a的各元素分別:a[0][0]=1,a[0][1]=3,a[0][1]=3,a[0][2]=5,a[1][2]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過malloc()函數(shù)給指針分配內(nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過amovep(p,a,3)調(diào)用函數(shù)amovep,使得實參p與形參P,實參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲空間。最后輸出p[2],p[5]為56。

50.B解析:選項A和C一望而知其錯;對于表達式a=a+7=c+b(答案D),是先執(zhí)行賦值表達式a+7=c+b,再把這個表達式的值賦給a,顯然,表達式a+7=c+b非法,因為賦值表達式的左側(cè)不能為常量或表達式。

51.B解析:在C語言中,大寫字母和小寫字母被認為是兩個不同的字符,因此,“hello!”和“Hello!”是兩個不同的字符串。

52.D

53.D

54.D\r\n軟件是與計算機操作相關(guān)的計算機程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開發(fā)要受到計算機系統(tǒng)的限制;軟件是一個邏輯實體,不是物理實體,軟件具有抽象性。因此選項D正確。

55.A解析:本題考核的知識點是for循環(huán)和switch語句的綜合運用。for循環(huán)執(zhí)行了3次,第一次時i的值為0,執(zhí)行其后的switch語句,沒有匹配的case,執(zhí)行default語句后的pdntf語句,輸出為0;第二次循環(huán)時i的值為1,執(zhí)行其后的switch語句,與第一個case分支匹配,執(zhí)行其后的printf語句,輸出1,由于沒有遇到break語句,所以一直向下執(zhí)行,又輸出了兩個1,第三次循環(huán)時i值為2,執(zhí)行其后的switch語句,同理輸出兩個2。所以,A選項為所選。

56.C解析:面向?qū)ο蟮脑O計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同。它的基本原理是,使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它強調(diào)模擬現(xiàn)實世界中的概念而不強調(diào)算法,它鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用應用領域的概念去思考。

57.C解析:本題主要考查了進制轉(zhuǎn)換的除余取整法。本算法中,是先對數(shù)c除8取余作為轉(zhuǎn)換后的8進制數(shù)的第1位,然后對c整除以8的商作同樣的操作,直到商為0為止,因此本題應選C。

58.B

59.B解析:函數(shù)fib內(nèi)部有兩個遞歸調(diào)用,當n=3時,fib(n-1)返回2,fib(n-2)也返回2,所以fib(n-1)+fib(n-2)的值為4。

60.A解析:在本題中,p和q同為指向字符類型數(shù)據(jù)的指針。*q和p[0]同為字符型數(shù)據(jù)。選項B)、C)和D)都符合題目的要求;選項A)計算得出的是指針類型數(shù)據(jù)所占的內(nèi)存字節(jié)數(shù)。

61.Celse與離它最近的if構(gòu)成if…else語句,而當a為2時,第一個if語句不成立,因此什么也不做,即c的值仍然為2,故選擇C選項。

62.D\r\n

63.D解析:根據(jù)給定的數(shù)據(jù)輸入格式:123<空格>456<空格>789<回車>,第一個scanf語句中,格式字符為“%c”,只能得到一個字符\'1\',第二個scanf語句中格式字符為“%d”,變量i得到的數(shù)值為23,第三個scanf語句中格式字符為“%s”,遇到空格就自動結(jié)束,因此字符數(shù)組s得到的是'456\\0”。因而正確答案為選項D。

64.A本題考查刪除鏈表中的結(jié)點操作,其方法是將要刪除結(jié)點的上個結(jié)點的下個結(jié)點指向要刪除結(jié)點的下個結(jié)點,然后釋放該要刪除結(jié)點,所以選項A正確。

65.B

66.A本題考查switch語句。當i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當

溫馨提示

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

評論

0/150

提交評論