2021年安徽省宣城市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2021年安徽省宣城市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2021年安徽省宣城市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2021年安徽省宣城市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2021年安徽省宣城市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年安徽省宣城市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.數(shù)據(jù)結(jié)構(gòu)通常是研究數(shù)據(jù)的及它們之間的聯(lián)系______。A.存儲和邏輯結(jié)構(gòu)B.存儲和抽象C.理想和抽象D.理想與邏輯

2.軟件設(shè)計中劃分模塊的一個準則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合

3.

4.

5.以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()。

A.結(jié)構(gòu)化程序使用goto語句會很便捷

B.在c語言中,程序的模塊化是利用函數(shù)實現(xiàn)的

C.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成

D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題

6.以下正確的敘述是()。

A.在C程序中,每行中只能寫一條語句

B.若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數(shù)

C.在C程序中,無論是整數(shù)還是實數(shù),都能被準確無誤地表示

D.在C程序中,%是只能用于整數(shù)運算的運算符

7.選出任何情況下都不引起二義性的宏定義()。

A.#definePOWER(x)x*x

B.#definePOWER(x)((x)*(x))

C.#definePOWER(x)(x*x)

D.#definePOWER(x)(x)*(x)

8.

9.若有說明:int*p,m=5,n;以下正確的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

10.第

11

若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

11.

12.以下程序的運行結(jié)果是()。#include<stdio.h>main(){st,uctdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

A.6B.8C.10D.12

13.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄

B.數(shù)據(jù)行

C.數(shù)據(jù)塊

D.字符(字節(jié))序列

14.請閱讀以下程序:#include<stdio.h>voidfun(ints[]){staticintj=0;dos[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]);}上面程序的輸出是

A.34756B.23445C.35745D.12345

15.參加百年阿里培訓的n位同學結(jié)伴去西湖旁邊為游人指路,兩人一組,他們打算先讓體重之和恰好為102公斤的同學一組,請給出一個算法找到這樣的組合,或者確定他們中不存在這樣的組合,其中最優(yōu)的算法時間復雜度為?(假設(shè)體重均為整數(shù))()

A.O(log(n))B.O(n)C.O(nlog(n))D.O(n^2)

16.

17.以下敘述中錯誤的是()。

A.可以通過typedef增加新的類型

B.可以typedef將已存在的類型用一個新的名字來代表

C.用typedef定義新的類型名后,原有類型名仍有效

D.用typedef可以為各種類型起別名,但不能為變量起別名

18.以下編碼方法中,()屬于熵編碼。

A.哈夫曼編碼B.小波變換編碼C.線性預測編碼D.形成編碼

19.需要分配較大空間,插入和刪除不需要移動元素的線性表,其存儲結(jié)構(gòu)是()。A.單鏈表B.靜態(tài)鏈表C.線性鏈表D.順序存儲結(jié)構(gòu)

20.下列條件語句中,輸出結(jié)果與其他語句不同的是()。

A.if(a!=0)printf(“%d\n”,x);elseprintf(“%d\n”,y);

B.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)printf(“%d\n”,x);elseprintf(“%d\n”,y);

二、2.填空題(20題)21.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”語句的輸出結(jié)果是()。

22.若a是int型變量,則表達式(a=2*3,a*2),a+4的值為______。

23.有以下程序:

#include<stdio.h>

voidf(inty,int*x)

{y=y+*x;*x=*x+y;}

main()

{intx=2,y=4;

f(y,&x);

printf("%d%d\n",x,Y);

}

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

24.數(shù)據(jù)庫保護分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復。

25.以下程序的輸出結(jié)果是()。#definePR(ar)printf("ar=%d”,ar)main(){intj,a[]={1,8,3,7,6,13,17,15},*p=a+5;for(j=3;j;j--)switch(j){case1:case2:PR(*p++);break;case3:PR(*(--p));}}

26.注釋說明了程序的功能,它分為【】注釋和功能性注釋。

27.下列語句的輸出結(jié)果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

28.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。

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

inta=1234;

printf("%2d\n",a);

30.買來一張新盤后,在存入文件前,必須進行【】處理。

31.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。

32.以下程序運行后的輸出結(jié)果是【】。

#include<stdio.h>

#include<string.h>

char*ss(char*s)

char*p,t;

p=s+1:t=*s:

whilet*p){*(,p-1)=*p;p++;}

*(p-1)=t;

returns:}

main()

{char*p,str[10]="abedefgh";

p=ss(str);printf("%s\n".p):}

33.在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化程序設(shè)計方法??尚行匝芯侩A段采用的是【】。

34.假定變量x為int類型,請以最簡單的形式寫出與邏輯表達式!x等價的C語言關(guān)系表達式【】。

35.以下程序的運行結(jié)果是______。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

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

pfintf("\n",);}

36.下列循環(huán)的循環(huán)次數(shù)是______。

ihtk=2;

while(k=0)

printf("%d",k);

k--;

printf("\n");

37.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。

38.下列程序的運行結(jié)果是______。

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

printf("%d,%d",x,y);

}

39.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應該是:

2345678910。

請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");

}

40.funl函數(shù)的調(diào)用語句為:fun1(&a,&b,&c);它將3個整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c這3個變量中,a中放最大數(shù)。

voidfun2(int*x,int*y)

{intt;

t=*x;*X=*y;*y=t;

}

voidfunl(int*pa,int*pb,int*pc)

{if(*pc>*pb)fun2(【】);

if(*pa<*pc)fun2(【】);

if(*pa<*pb)fun2(【】);

}

三、1.選擇題(20題)41.以下程序的功能是:建立一個帶有頭結(jié)點的甲—向鏈表,并將存儲在數(shù)組中的字符依次轉(zhuǎn)存到鏈表的各個結(jié)點中,請從與下劃線處號碼對應的一組選項中選擇出正確的選項。

#include<stdlib.h>

structnode

{chardata;structnode*next:};

(1)CreatList(char*s)

{

structnode*h,*p,*q;

h=(structnode*)mallocsizeof(structnode));

p=q=h;

while(*s!='\0')

{

p=(structnode*)malloc(sizeof(structnode));

p->data=(2);

q->next=p;

q-(3);

S++;

}

p->next='\0';

returnh;

}

main()

{

charstr[]="linklist";

structnode*head;

head=CreatList(str);

}

(1)

A.char*B.structnodeC.structnode*D.char

42.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若運行時從鍵盤上輸入:6,5,65,66<回車>。則輸出結(jié)果是

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

43.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()

A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計

44.在面向?qū)ο蠓椒ㄖ?,一個對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息

45.下列選項中不能正確定義結(jié)構(gòu)體的是_______。

A.typedefstruct

B.structcolorcl{intred;{intred;intgreen;intgreen;intblue;intblue;}COLOR;};COLORcl;

C.structcolor

D.struct{intred;{intred;intgreen;intgreen;intblue;intblue;}cl;}cl;

46.執(zhí)行下面的程序段intx=40;charz='B';intB;B=((x&0xff)&&(z>'a'));后,B的值為()

A.0B.1C.2D.3

47.以下4個選項中,不能被看作是一條語句的是______。

A.{;}B.a=0,b=0,c=0;C.if(a>O);D.if(b==0)m=1;n=2;

48.下列對于軟件測試的描述中正確的是()。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運行結(jié)果正確

C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

49.請選出以下程序的輸出結(jié)果______。#include<stdio.h>sub(x,y,z)intx,y*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}

A.5,23B.-5,-12,7C.-5,-12,-17D.5,2,-7

50.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再復制到字符串str3之后

C.將字符串str2復制到字符串str1中后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串str1復制到字符串str3中

51.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進行查找的是()

A.無序線性表B.線性鏈表C.二叉鏈表D.順序存儲的有序表

52.關(guān)于線性表的描述,錯誤的一條是______。

A.線性表是線性結(jié)構(gòu)

B.線性表就是單鏈表

C.線性表的順序存儲結(jié)構(gòu),必須占用一片連續(xù)的存儲單元

D.線性表的鏈式存儲結(jié)構(gòu),不必占用連續(xù)的存儲單元

53.以下敘述中錯誤的是______。A.用戶所定義的標識符允許使用關(guān)鍵字

B.用戶所定義的標識符應盡量做到“見名知意”

C.用戶所定義的標識符必須以字母或下劃線開頭

D.用戶定義的標識符中,大、小寫字母代表不同標識

54.設(shè)有定義語句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次輸出x數(shù)組6個元素中的值,不能完成此操作的語句是()。

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(p+i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",(*p)++);

55.下列敘述中正確的是A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鏈表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)

56.下列函數(shù)的運行結(jié)果是

main()

{inti=2,p;

intj,k;

j=i;k=++i;p=f(j,k);

printf("%d",p);}

intf(inta,intb)

{intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);}

A.-1B.1C.2D.編譯出錯,無法運行

57.詳細設(shè)計主要確定每個模塊具體執(zhí)行過程,也稱過程設(shè)計,下列不屬于過程設(shè)計工具的是()

A.DFD圖B.PAD圖C.N-S圖D.PDL

58.以下與函數(shù)fseek(fp,OL,SEEK_SET)有相同作用的是()。

A.feof(fp)B.tell(fp)C.fgetc(fp)D.rewind(fp)

59.若要用下面的程序片段使指針變量p指向一個存儲字符型變量的動態(tài)存儲單元,則應填入;char*p;p=()malloc(sizeof(char));

A.charB.char*C.(*char)D.(char*)

60.下面程序的輸出結(jié)果是______。#include<string.h>main(){char*p1="abc",*p2="ABC",s[20]="xyz";strcpy(s+1,p2);strcat(s+2,p1);printf("%s\n",s);}

A.xABCabcB.zABCabcC.yzabcABCD.xyzABCabc

四、選擇題(20題)61.

62.下列敘述中正確的是()。

A.循環(huán)鏈表是非線性結(jié)構(gòu)

B.雙向鏈表是非線性結(jié)構(gòu)

C.只有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)

D.有一個以上根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)

63.下列敘述中正確的是()。

A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B.數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率

D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率

64.

65.

66.有以下程序:

程序運行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356

67.若有以下說明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為6的表達式是_______。

A.*p+6B.*(p+6)C.*p+=5D.p+5

68.若變量已正確定義并賦值,以下符合C語言語法的表達式是()。

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

69.有以下程序:

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

A.6B.3C.8D.12

70.對兩個數(shù)組a和b進行下列初始化:

charm[]1="l234567":

charn[]={'1','2','3','4','5','6','7');

則下列敘述正確的是()。A.A.數(shù)組m與數(shù)組n完全相同

B.數(shù)組m與數(shù)組n長度相同

C.數(shù)組m比數(shù)組n長1

D.數(shù)組m與數(shù)組n中都存放字符串

71.以下選項中不屬于字符常量的是()。

A.

B.

C.

D.

72.

73.

74.有以下程序:

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

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

75.

有以下程序

#include<stdio.h>

main

{inta=1,b=2,c=3,x;

x=(a^b)&C;printf("%d",x);

}

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

A.0B.1C.2D.3

76.下列選項中不符合良好程序設(shè)計風格的是()。

A.數(shù)據(jù)說明的次序要規(guī)范化

B.程序中要有必要的注釋

C.對所有輸入的數(shù)據(jù)都要進行檢查,確保數(shù)據(jù)的合法性

D.程序的效率第一,清晰第二

77.

設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句:

if(a<b)

if(c==d)y=0;

elsey=1;

該語句所表示的含義是()。

A.y=0,a<b且c=dy=1,a≥b

B.y=0,a<b且c=dy=1,a≥b且c≠d

C.y=0,a<b且c=dy=1,a<b且c≠d

D.y=0,a<b且c=dy=1,c≠d

78.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運行的結(jié)果是()。A.1,2,3,4,5,6,7,8,9,0,

B.0,9,8,7,6,5,1,2,3,4,

C.0,9,8,7,6,5,4,3,2,1,

D.1,2,3,4,9,8,7,6,5,0,

79.

80.以下敘述中錯誤的是()。A.可以通過typedef增加新的類型

B.可以用typedef將已存在的類型用一個新的名字來代表

C.用typedef定義新的類型名后,原有類型名仍有效

D.用typedd可以為各種類型起別名,但不能為變量起別名

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從字符串str中,刪除所有小寫字母c。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫一個函數(shù)proc(),它的功能是:求出一個4×N整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A

2.B一般較優(yōu)秀的軟件設(shè)計,應盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。

3.D

4.D

5.B濫用90t0語句將使程序的流程毫無規(guī)律,可讀性差,對于初學者來說盡量不要使用,所以A錯誤?!獋€結(jié)構(gòu)化程序可以包含順序、分支、循環(huán)結(jié)構(gòu)中的一種或多種,所以C錯誤。由三種基本結(jié)構(gòu)構(gòu)成的程序可以解決任何復雜的問題,所以D錯誤。

6.D

7.B解析:引起帶參數(shù)宏的二義性主要有兩個方面:一是,參數(shù)之間因運算符優(yōu)先級不確定而帶來的二義性。例如本題的選項A),若程序中使用POWER(a+b),會展開為a+b*a+b,這樣就會先計算b*a的值,然后再加一個a和一個b,產(chǎn)生二義性。杜絕這種二義性的方法是在宏定義的每個參數(shù)外加上圓括號以保證總是先計算每個參數(shù)的值,就好像本題的選項D)那樣。另一個是,整個宏所代表的表達式因運算符優(yōu)先級不確定而帶來的二義性。例如本題的選項D),若程序中使用a/POWER(b),會展開為a/(b)*(b),這樣就會先計算a/b的值,然后再乘以b,產(chǎn)生二義性。杜絕這種二義性的方法是對整個宏定義加一個圓括號,就好像本題的選項B)那樣。故選項B)在任何情況下都不會引起二義性,應該選B。

8.A

9.D解析:“&”是求址運算符,“*”是指變量說明符。選項A)、B)應改為scanf('%d',p);選項C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險,建議不使用。

10.A本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達式對字符數(shù)組賦值,如下面的語句就是非法的:str1='China',如果想把“China”這5個字符放到數(shù)組str1中,除了逐個輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復制到一字符數(shù)組中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給str1):str1=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)

其中,需要注意的是,字符數(shù)組1的長度不應小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(str1),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

11.A

12.A解析:結(jié)構(gòu)體變量的長度是其內(nèi)部成員總長度之和,在本題中,structdate中包含year,month,day三個整型變量。通常一個整型變量占2個字節(jié),因此,用sizeof求得該結(jié)構(gòu)體變量的長度為6個字節(jié)。

13.D解析:C語言中的文件是流式文件。流式文件是一種無結(jié)構(gòu)文件,即整個文件是一串字符流或二進制流。文件的存取以字符或字節(jié)為單位。

14.C解析:本題考查了通過數(shù)組首地址引用數(shù)組元素的方法。第一次執(zhí)行fun(a)后,a[0]=3,a[1]=5。第二次執(zhí)行fun(a)時,因為static變量j保存著上次執(zhí)行時的值為2,所以a[2]=7,最后數(shù)組a={3,5,7,4,5},所以正確答案為C)。

15.B

16.C

17.A關(guān)鍵字typedet的作用只是將C語言中的已有的數(shù)據(jù)類型作了置換,并不是增加新的類型,所以A)錯誤。

18.A

19.B

20.CA、B、D選項的含義均為:a的值如果為0,輸出y的值,否則輸出x的值。而C選項的含義是:a的值為0時輸出x的值,不為0時輸出y的值,與其他選項正好相反。故本題答案為C選項。

21.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標志\'\\0\'。\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格;\'\\'\'是轉(zhuǎn)義字符,代表雙引號:\'\\023\'也只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個符;\'\\xAB\'是以兩位十六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。題中語句中的字符串有5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。

22.此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以返回值a+4=6+4=10。

23.8484解析:f函數(shù)中變量x傳的是變量的地址,而變量y是傳的值,調(diào)用函數(shù)f后,雖然f函數(shù)中的。x變?yōu)?,y值也變了,但main函數(shù)中的y未變,仍然為4。

24.完整性控制完整性控制

25.ar=6ar=6ar=13ar=6ar=6ar=13解析:通過*p=a+5將指針P指向a[5],第1次循環(huán),i=3時,switch(3),執(zhí)行case3,*(-p)-a[4]=6,所以輸出ar=6;第2次循環(huán),j=2時,switch(2),執(zhí)行case2,(*p++)是先引用a[4]的值6,輸出ar=6,再將指針P移位指向a[5];第3次循環(huán),j=1時,switch(1),執(zhí)行case1,case1后沒有break語句,接著執(zhí)行case2,(*p++)是先引用a[5]的值13,輸出ar=13,再將指針P移位指向a[6]。

26.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

27.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數(shù)組sp末尾的\'\\0\'。

28.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。

29.12341234解析:在%與格式符之間插入一個整型數(shù)來指定輸出寬度,當指定寬度小于輸出數(shù)的實際寬度時,則按實際寬度輸出。

30.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)

31.內(nèi)模式內(nèi)模式解析:內(nèi)模式又稱為物理模式,它給出?數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。

32.bedefghabedefgha解析:函數(shù)9,的作用是將指針變量。指向的字符串的首字符移到最后一個位置,其他字符依次前移。其方法是:首先將指針變量p指向字符串s的第2個字符b,然后將首字符保存在字符變量t中;從字符串的第2個字符開始,通過語句*(P-1)=*p;依次前移,直到字符串結(jié)束符;最后通過語句*(P-1)=t;將保存在t中的字符放到移動后的字符串末尾,返回main函數(shù)并輸出,輸出結(jié)果為bedefsh。

33.結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法解析:結(jié)構(gòu)化分析方法主要用于系統(tǒng)分析階段;結(jié)構(gòu)化設(shè)計方法主要用于系統(tǒng)設(shè)計階段;結(jié)構(gòu)化程序設(shè)計方法主要用于編碼階段。可行性研究屬于系統(tǒng)分析階段,因此,可行性研究階段采用的是結(jié)構(gòu)化分析方法。

34.x==0

35.本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

36.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關(guān)系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環(huán)。

37.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。

38.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。

“表達式1?表達式2:表達式3”的功能是:表達式1的值若非0,則計算表達式2的值,且表達式2的值為最終結(jié)果;若表達式1的值為0,則計算表達式3的值,且為最終結(jié)果。

本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。

39.!=returnj!=,returnj解析:本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標,i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標,所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留到新數(shù)組中。注本題中i、j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。

40.pcpb或pbpcpcpa或papcpbpa或papbpc,pb或pb,pc\r\npc,pa或pa,pc\r\npb,pa或pa,pb

41.C

42.A解析:主函數(shù)中首先定義了4個字符變量a、b、cd,然后通過scanf()函數(shù)輸入a、b、c、d輸入中a和b是按字符格式c輸入的,c和d是按整型符號d輸入的。在看下面的printf()函數(shù)中,要求a、b、c、d都按字符輸出,故a和b原樣輸出為6、5,c和d將把與其ASCII碼對應的字符輸出,65和66的ASCII碼對應字符A和B,故最后的輸出為6,5,A,B。所以,4個選項中選項A符合愿意。

43.A解析:模式設(shè)計和內(nèi)模式設(shè)計是概念設(shè)計的兩種方法。物理設(shè)計是根據(jù)特定的計算機系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進行設(shè)計,從而實現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計和行為特性-設(shè)計是數(shù)據(jù)庫應用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計,設(shè)計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。

44.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

45.B解析:將一個變量定義為標準類型與定義為結(jié)構(gòu)體類型不同之處在于:后者不僅要求指定變量為結(jié)構(gòu)體類型,而且要求指定為某一特定的結(jié)構(gòu)體類型(例如,structcolor),不能只指定結(jié)構(gòu)體名。其中可以不出現(xiàn)結(jié)構(gòu)體名,答案D就是缺省結(jié)構(gòu)體名的隋況。而變量名歹婊必須放在成員列表后面,所以B答案不能正確將cl定義為結(jié)構(gòu)件變量。

46.A

47.D解析:選項D中有兩條語句。

48.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。

49.B解析:sub()函數(shù)的作用是將形參y和x的差賦給了z指向的那個內(nèi)存地址,所以在sub(10,5,&a),10和5屬于值傳遞,a是屬于地址傳遞,也就是a與z指向了同一個存儲單元,在執(zhí)行函數(shù)后,a的值隨*z變化,所以此次函數(shù)被調(diào)用后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發(fā)生變化其值為-5-7=-12,在sub(a,b,&c)后,c的值發(fā)生變化,其值為-12-(-5)=-7。

50.C解析:strcat(s1,s2)是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復制給s1字符串,要保證s1能容納下連接或復制后的字符串。

51.DD)【解析】二分法查找只適用于順序存儲的有序表,表中的元素按值從小到大排列。

52.A解析:線性表是一種最簡單,最常用的數(shù)據(jù)結(jié)構(gòu)。線性表操作的實現(xiàn)依賴于線性表中數(shù)據(jù)元素及元素之間的關(guān)系在存儲器中如何存儲。采用順序存儲方式存儲的線性表稱為順序表,用鏈式存儲方式存儲的線性表稱為線性鏈表,用散列方法存儲的線性表稱為散列表。

53.A解析:C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。大寫字母和小寫字母被認為是兩個不同的字符,用戶在定義標識符時應盡量做到“見名知意”,且不允許使用關(guān)鍵字作標識符。

54.D解析:*p=x的作用是將x的首地址賦給指針變量p。選項A)正確,*(P++)中括號內(nèi)的++是在P的后面,所以它先取*P的值x[0],再執(zhí)行p++;選項B)正確,p+i表示x[i]的地址,*(p+i)表示x[i]的值;選項C)中的*和++處于同一優(yōu)先級別,而結(jié)合方向為自右而左,因此*p++相當于*(p++),與選項A)相同;選項D)中的(*p)++是使*p的值+1,即x[0]的值加1,它不能實現(xiàn)指針的移動,每次循環(huán)只是x[0]的值在改變,而P的值并沒有改變,所以不能實現(xiàn)6個元素的輸出。

55.A根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件:1,有且只有一根節(jié)結(jié)點,2,每一個結(jié)點最多有一個前件,也最多有一個后件,則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

56.A解析:函數(shù)調(diào)用相當于f(2,3),程序運算應得結(jié)果為'-1'。

57.AA)【解析】DFD圖(數(shù)據(jù)流圖)是以圖形的方式描述數(shù)據(jù)在系統(tǒng)中流動和處理的過私,只反映系統(tǒng)必須完成的邏輯功能,它是需求分析階段的圖形工具。盒式圖(N—S圖)、問題分析圖

\n(PAD圖)和PDL(偽碼)是詳細設(shè)計的常用工具。

58.D解析:本題的考點是C語言的文件操作。函數(shù)fseek(fp,0L,SEEK_SET)的作用是,將文件指針fp移到相對于文件開始處(SEEK_SET)位移為0L的地方,也就是文件的開頭。選項A的feof(fp)是判斷是否讀到了文件尾,作用與函數(shù)fseek不符。選項B的ftell(fp)是告知文件指針的當前位置,作用與函數(shù)fseek也不符。選項C的fgetc(fp)是從文件指針fp中讀入一個字符,作用與函數(shù)fseek也不符。選項D的rewind(fp)是將文件指針回繞到文件開始處,作用與函數(shù)fseek(fp,0L,SEEK_SET)相同。

59.D

60.A解析:strcpy(s+1,p2)是字符串復制,s中的內(nèi)容變?yōu)?xABC',strcat(s+2,p1)是字符串連接(s的內(nèi)容已不是初始化的內(nèi)容,而是復制之后的內(nèi)容),結(jié)果為'xABCabc'。

61.C

62.C線性結(jié)構(gòu)指的是數(shù)據(jù)元素之間存在著“一對一”線性關(guān)系的數(shù)據(jù)結(jié)構(gòu),這樣的結(jié)構(gòu)中只有一個根

溫馨提示

  • 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

提交評論