2021-2022年湖南省湘潭市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)_第1頁
2021-2022年湖南省湘潭市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)_第2頁
2021-2022年湖南省湘潭市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)_第3頁
2021-2022年湖南省湘潭市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)_第4頁
2021-2022年湖南省湘潭市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年湖南省湘潭市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序#include<stdio.h>voidfun(char**p){++p;printf("%s",*p);}main{char*a[]={"Morning","Afternoon","Evening","Night");fun(a);}程序的運(yùn)行結(jié)果是()。A.AfternoonB.fternoonC.MorningD.orning

2.設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價的是()。

A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)

3.

4.有以下程序:#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<9)printf("%d\n",a);clscprintf("%d\n",a--);}程序運(yùn)行時從鍵盤輸入9<回車>,則輸出結(jié)果是()。A.10B.11C.9D.8

5.下列程序段輸出的字符串長度為()。printf("\\aaa\'ccc\bddd\'");

A.11B.12C.13D.17

6.下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是()。

A.循環(huán)隊列B.棧C.隊列D.二叉樹

7.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745

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

A.在C語言中,預(yù)處理命令行都以“#”開頭

B.預(yù)處理命令行必須位于c源程序的起始位置

C.#include<stdi0.h>必須放在C程序的開頭

D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能

9.c源程序中不能表示的數(shù)制是()。

A.二進(jìn)制B.八進(jìn)制C.十進(jìn)制D.十六進(jìn)制

10.

11.下列語句中,說法正確的是______。

A.C程序書寫格式嚴(yán)格,每行只能寫一個語句

B.C程序書寫格式嚴(yán)格,每行必須有行號

C.C程序書寫格式自由,每行可以寫多條語句,但之間必須用逗號隔開

D.C程序書寫格式自由,一個語句可以分寫在多行

12.下面程序的輸出結(jié)果是()。chars()="ABCD",*p;main(){for(p=s;p<s+4;p++)printf("%s\n",p);)

A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA

13.以下選項中不能用做C程序合法常量的是()。

A.1,234B.‘\123’C.123D.“\x7G”

14.以下只有在使用時才為該類型變量分配內(nèi)存的存儲類型說明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

15.

16.以下選項中表示空函數(shù)的是()。

A.intfun(){return0;}

B.intfun();

C.intfun(){}

D.intfun(inta,intB){return1;}

17.以下不合法的數(shù)值常量是()。

A.8.0E0.5B.1e1C.011D.0xabcd

18.以下程序的輸出結(jié)果是().A.A.2222B.2468C.222D.246

19.設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式是______。

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

20.已知函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer代表的是()。

A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)

B.一個文件指針,指向要讀的文件

C.一個指針,是指向的輸入數(shù)據(jù)放在內(nèi)存中的起始位置

D.一個存儲區(qū),存放要讀的數(shù)據(jù)項

二、2.填空題(20題)21.下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變。請?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

for(i=0;i<=k-2;i+=2)

for(j=i+2;j<=k;j+=2;)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;}

puts(a);

printf("\n");

}

22.有一個已排好序的數(shù)組,今輸入一個數(shù),要求按原來的順序規(guī)律將它插入到數(shù)組中。算法是:假設(shè)排序順序是從小到大,對輸入的數(shù),檢查它在數(shù)組中哪個數(shù)之后,然后將比這個數(shù)大的數(shù)順序后移一個位置,在空出的位置上將該數(shù)插入。請在程序中的空白處填上一條語句或一個表達(dá)式。

#defineN100

main()

{floata[N+1],x;

inti,p;

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

scanf("%f"&a[i]);

scanf("%f",&x);

for(i=0,p=N;i<N;i++)

if(x<a[i])

{【】;

break;}

for(i=N-1;【】;i-)

a[i+1]=a[i];

a[p]=x;

for(i=0;【】;i++)

{printf("%8.2f",a[i]);

if(i%5=0)

printf("\n");

}

}

23.以下程序的功能是調(diào)用函數(shù)fun計算:m=1-2+3-4+…+9-10,并輸出結(jié)果。請?zhí)羁铡?/p>

intfun(intn)

{

intm=0,f=1,i;

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

{

m+=i*f;

f=______;

}

returnm;

}

main()

{printf(“m=%d\n”,______)};

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

25.下面程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中,請?zhí)羁?。main(){inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;for(i=0;i<2;i++){for(j=0;j<3;j++)();}}

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

structNODE

{intk;

structNODE*link;

};

main()

structNODEm[5],*p=m,*q=m+4;

inti=0;

while(p!=q)

{p->k-++i;p++;

q->k-i++;q--;

}

q->k=i;

for(i-0;i<5;i++)

printf("%d",m[i].k);

printf("\n");

27.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。

28.若有如下定義,則該數(shù)組的第一維大小為【】。

intb[][4]={1,2,3,4,5,6,7,8,9);

29.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END)fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

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

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

31.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運(yùn)行時輸入:1234<回車>,程序的輸出結(jié)果是【】。

32.以下程序用來輸出結(jié)構(gòu)體變量ex所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>

structst

{charname[20];doublescore;};

main()

{structstex;

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

33.設(shè)當(dāng)前盤為A盤,當(dāng)前系統(tǒng)提示符為“>”在不改變當(dāng)前盤情況下,顯示C盤的當(dāng)前目錄路徑,應(yīng)使用命令【】。

34.閱讀程序:

main()

{charstrl[]="howdoyoudo",str2[10];

char*p1=strl,*p2=str2;

scanf("%s”,p2);

printf("%s”,p2);

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

}

運(yùn)行上面的程序,輸入字符串HOWDOYOUDO則程序的輸出結(jié)果是【】。

35.若有語句

inti=-19,j=i%4;

printf("%d\n",j),

則輸出的結(jié)果是______。

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

#include<stdio.h>

main()

{inta,b,c;

a=25;b=025;e=0x25;

prinff("%d%d%d\n",a,h,c);

}

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

38.以下sum函數(shù)的功能是計算下列級數(shù)之和。請給函數(shù)中的各變量正確賦初值。

doublesum(doublex,intn)

{inti;doublea,b,s;

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

{a=a*x;b=b*i;s=s+a/b;}

returns;

}

39.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

40.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結(jié)束循環(huán)。請?zhí)羁铡?/p>

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。intf(){staticinti=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

42.用語句scanf("%c%c%c",&c1,&c2,&c3)輸入a、b、c時,變量c1、c2、c3的值分別為______。

A.'a','b','c'B.'a','b',''C.'a','','b'D.'a','','c'

43.下列關(guān)于c語言用戶標(biāo)識符的敘述中正確的是()。

A.用戶標(biāo)識符中可以出現(xiàn)下劃線和中劃線(減號)

B.用戶標(biāo)識符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線

C.用戶標(biāo)識符中可以出現(xiàn)下劃線,但不可以放在用戶標(biāo)識符的開頭

D.用戶標(biāo)識符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在用戶標(biāo)識符的開頭

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

A.breakB.charC.SwitchD.retum

45.有以下程序:#include<string.h>main(){charp[20]={'a','b','c','d'),q[]="abc",r[]="abcde"strcat(p,r);strcpy(p+strlen(q),q);printf("%d\n",sizeof(p));}程序運(yùn)行后的輸出結(jié)果是()。

A.9B.6C.11D.7

46.下列敘述中正確的是A.break語句只能用于switch語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對使用

D.在switch語句中,不一定使用break語句

47.由兩個棧共享一個存儲空間的好處是______。

A.減少存取時間,降低下溢發(fā)生的幾率

B.節(jié)省存儲空間,降低上溢發(fā)生的幾率

C.減少存取時間,降低上溢發(fā)生的幾率

D.節(jié)省存儲空間,降低下溢發(fā)生的幾率

48.對長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。

A.125B.n/2C.nD.n+1

49.以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf("%d%d%d,",a[2],a[5],a[8]);}

A.258B.741C.852D.369

50.有以下程序#include<stdio.h>intf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}main(){intz;z=f(3);printf("%d\n",z);}程序的運(yùn)行結(jié)果是

A.0B.9C.6D.8

51.請閱讀以下程序:#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

52.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()A.需求分析階段B.邏輯設(shè)計階段C.概念設(shè)計階段D.物理設(shè)計階段

53.若執(zhí)行下面的程序時,從鍵盤輸入5和2,則輸出結(jié)果是

main()

{inta,b,k;

scanf("%d,%d",&a,&b);

k=a;

if(a<b)k=a%b;

elsek=b%a;

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

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

54.下列SQL語句中,用于修改表結(jié)構(gòu)的是()。A.A.ALTERB.CREATEC.UPDATED.INSERT

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

A.調(diào)用printf()函數(shù)時,必須要有輸出項

B.使用putchar()函數(shù)時,必須在之前包含頭文件stdio.h

C.在C語言中,整數(shù)可以以二進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出

D.調(diào)節(jié)getchar()函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應(yīng)的ASCII碼

56.以下有4組用戶標(biāo)識符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

57.若有如下變量定義并賦值:inta=1,b=2,c=3,k;floatf=2.5,e;doubled=2.4,g;則下列符合C語言語法的表達(dá)式是()

A.e=c*=a+=d*f%bB.(k=a+b,b*f++,k%c)C.g=a+f*c=5D.x=double(b)

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

A.C語言比其他語言高級

B.C語言可以不用編譯就被計算機(jī)識別并執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式

D.C語言出現(xiàn)最晚,具有其他語言的一切優(yōu)點(diǎn)

59.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

60.有以下程序prt(int*m,intn){inti;for(i=0;i<n;i++)m[i]++;}main(){inta[]={1,2,3,4,5},i;prt(a,5);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是

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

四、選擇題(20題)61.下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高

62.有以下程序:

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

A.10,One*Dream!B.9,One*Dream!C.9,One*WorldD.10,One*World

63.

64.

65.非空的循環(huán)單鏈表head的尾結(jié)點(diǎn)(由p所指向)應(yīng)該滿足

A.p->next==NULLB.p==NULLC.p->next=headD.p=head

66.在下列語句中,其含義為“q是一個函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。

A.int**q;B.int(*q);C.int*q;D.int*q;

67.有以下程序:

main()

{intp[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2){k=k+p[i++];i++}

Printf("%d\n",k);

}

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

A.57B.39C.24D.11

68.以下定義數(shù)組的語句錯誤的是()。

A.intnum[]={1,2,3,4,5,6};

B.intnum[][3]={{1,2},3,4,5,6};

C.intnum[2][4]={{1,2},{3,4},{5,6}};

D.intnum[][4]={1,2,3,4,5,6};

69.

70.有以下程序:

main

{inta[]=(2,4,6,8,10},y=0,x,*P;

p=&a[1];

for(x=1;x<3;x++)y+=p[x];

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

}

程序運(yùn)行后的輸出結(jié)果是()。A.A.10B.11C.14D.15

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

A.gets函數(shù)用于從終端讀人字符串

B.getehar函數(shù)用于從磁盤文件讀人字符

C.fputs函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件

72.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

73.數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是()。

A.內(nèi)模式B.概念模式C.外模式D.設(shè)計模式

74.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。

A.從文件file中讀取長度為n的字符串存入字符數(shù)s由

B.從文件file中讀取長度不超過n-1個字符的字符放到字符數(shù)組S中

C.從文件file中讀到n個字符串存入字符數(shù)組s中

D.從文件file中讀取長度為n-1個字符的字符串存字符數(shù)組S中

75.第

42

若有說明語句

chara[]="Itismine";

char*p="Itismine";

則以下不正確的敘述是

A.a+1表示的是字符t的地址

B.p指向另外的字符串時,字符串的長度不受限制

C.p變量中存放的地址值可以改變

D.a中只能存放10個字符

76.(13)設(shè)一棵完全二叉樹共有699個結(jié)點(diǎn),則在該二叉樹中的葉子結(jié)點(diǎn)數(shù)為()

A.349

B.350

C.255

D.351

77.有以下程序

#include"stdio.h"

main()

{charstr[]="tomeetme",str1[]="toseeyou";

char*p=str,*p1=str1;

inti;

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

if(*(p+i)==*(p1+i))

putchar(*(p+i));

printf("\n");

}

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

A.to

B.tomeet

C.toee

D.程序段不能通過編譯

78.有以下程序:

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

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

79.

80.

五、程序改錯題(1題)81.改正下列程序中不正確的語句。

main()

{inta;

scanf(“%d”,a);if(a=1)printf(“One\n”);}

六、程序設(shè)計題(1題)82.請編寫一個函數(shù)intproc(int*s,intt,int*k),用來求出數(shù)組的最小元素在數(shù)組中的下標(biāo)并存放在k所指的存儲單元中。例如,輸入如下整數(shù):27393445362489342111831527246則輸出結(jié)果為4,89。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A執(zhí)行fun(a)語句時,P指向的是字符串?dāng)?shù)組a的第一個字符串“Morning”,p自加1之后,p指向字符串?dāng)?shù)組a的第2個字符串“Afternoon”。

2.B解析:條件表達(dá)式的形式為:“表達(dá)式1?表達(dá)式2:表達(dá)式3”。其含義為:當(dāng)“表達(dá)式1”的值為非零時,求出“表達(dá)式2”的值,此時“表達(dá)式2”的值就是整個條件表達(dá)式的值;當(dāng)“表達(dá)式1”的值為零時,求出“表達(dá)式3”的值,此時“表達(dá)式3”的值就是整個條件表達(dá)式的值。對于本題來說,當(dāng)表達(dá)式EXP為非0值時條件成立,即執(zhí)行語句i++;當(dāng)EXP等于0時,執(zhí)行語句j--;這等同于條件表達(dá)式“(EXP!=0)?i++:i++;”。

3.B

4.A本題考查簡單的運(yùn)算符操作.當(dāng)輸入9時,(a++<9)為假,所以執(zhí)行else語句中的printf("%d\n",a--),在執(zhí)行時此時a經(jīng)過a++操作a=10,所以答案為A。

5.C解析:轉(zhuǎn)義字符有1個\\\\、2個\\'、1個\\b,普通字符有3個a、3個c、3個d,共13個字符。

6.BB。【解析】在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。

7.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。

8.A預(yù)處理命令是以“#”號開頭的命令,它們不是C語言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、c錯誤。C語言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D錯誤。

9.AA?!窘馕觥緾語言源程序不能表示八進(jìn)制,在C語言中,所有的數(shù)值型常量都帶有符號,所以整型數(shù)量只區(qū)別整型和長整型兩種形式,整型常量和長整型常量均可用十進(jìn)制、二進(jìn)制、十六進(jìn)制3種形式表示,故A不正確。

10.D

11.D

12.A解析:p為指針型變量。第一次循環(huán),p=s,p的值為字符數(shù)組s的首地址,輸出字符串'ABCD'。p++,第二次循環(huán),p的值為字符數(shù)組s的首地址加1,輸出字符串'BCD'。p++,第三次循環(huán),p的值為字符數(shù)組s的首地址加2,輸出字符串'CD'。p++,第4次循環(huán),p的值為字符數(shù)組s的首地址加3,輸出字符串\'D'。

13.AA選項中逗號是一個操作符。

14.B在用靜態(tài)static與外部extern定義變量時,系統(tǒng)立刻給其分配內(nèi)存,而定義自動類auto與強(qiáng)制放入寄存器register類型變量時,只有當(dāng)使用時才分配內(nèi)存。

15.D

16.C空函數(shù)是函數(shù)體沒有執(zhí)行語句的函數(shù)。選項A、D不是空函數(shù);選項B是函數(shù)的聲明;只有選項C是空函數(shù)。故本題答案為C選項。

17.AA選項中E后面的指數(shù)必須為整數(shù),所以不合法。C選項中的011表示的是八進(jìn)制常量,D選項中的0xabcd表示的是十六進(jìn)制常量。故本題答案為A選項。

18.D

19.D解析:選項A:'a'&&'b'是字符a與b的相與,不為0:選項B:a<=b,由題中變量賦值可知,結(jié)果為1。選項C:a||+c&&b-c,結(jié)果為1;選項D:!((a<B)&&!c||1),運(yùn)算結(jié)果為0。

20.C解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說明:“buffer”是一個指引,對fread來說,它是讀入數(shù)據(jù)的存放地址;“size”是要讀寫的字節(jié)數(shù);“count”是要進(jìn)行讀寫多少個size字節(jié)的數(shù)據(jù)項;“fp”是指文件型指針。

21.a[i]>a[j]a[i]>a[j]解析:本題中的嵌套的循環(huán)結(jié)構(gòu)用在了數(shù)組元素的排序上。本題需要注意的一點(diǎn)是:由于題目只要求將下標(biāo)值為偶數(shù)的元素從小到大排序,所以內(nèi)外層for循環(huán)的條件變量變更條件都是+=2。最后通過條件a[i]>a[j]對元素大小進(jìn)行判斷并交換。

22.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本題主要考查了插入排序。由于程序中的數(shù)組在開始己經(jīng)按從小到大順序排序排好。在插入時,首先要查到第一個大于恃插入數(shù)的數(shù)組下標(biāo),即當(dāng)待插入元素小于數(shù)組中當(dāng)前元素時,記下數(shù)組的當(dāng)前下標(biāo)p,并結(jié)束循環(huán),故第一空目的是為了記下數(shù)組下標(biāo),應(yīng)填p=i;插入排序的第二部是將大于待插入元素的所有元素都向后移動—位,故在循環(huán)時,要從最后一個元素到第p個元素都要后移一位,因此第二空應(yīng)填>i=p。最后一個循環(huán)是將N+1個元素都輸出,故最后一空應(yīng)為i<=N。(注:本題有多種答案,以上僅提供一種)

23.-f或f*-1或-1*f或f*(-1)或(*1)*f。fun(10)-f或f*-1或-1*f或f*(-1)或(*1)*f。\r\nfun(10)解析:本題考核的知識點(diǎn)是C程序的簡單應(yīng)用。本題要求調(diào)用fun()函數(shù)計算m的值,故在主函數(shù)中的空格處應(yīng)該填調(diào)用fun()函數(shù)的語句。fun()函數(shù)有一個形參n,為每次參加計算的值的個數(shù),故在主函數(shù)中的空格處應(yīng)該填fun(10),回到fun()函數(shù),函數(shù)用到了一個for循環(huán),共循環(huán)n次,當(dāng)循環(huán)第i次的時候,m的值等于m=1-2+……+[(-1)的i-1次方]*1所以在fun()函數(shù)的空格處應(yīng)該填使f改變符號的語句,故應(yīng)填*f或f*-1或-1*f或f*(-1)或(-1)*f。

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

25.b[j][i]=a[i][j]

26.1343113431解析:本題看似考查鏈表的知識,其實(shí)只是考查了結(jié)構(gòu)體數(shù)組。程序首先定義了一個結(jié)構(gòu)體NODE,在主函數(shù)中聲明了一個該結(jié)構(gòu)體的數(shù)組m[5]和兩個結(jié)構(gòu)體指針p和q,并分別初始化p指向m(指向數(shù)組的第一個元素);q指向m+4(指向數(shù)組的最后一個元素)。接下來定義并初始化一個整型變量i為0。然后用一個while循環(huán)。在p和q不相等的時候執(zhí)行循環(huán)體:讓p所指結(jié)構(gòu)體的成員k等于++i的值,然后讓p指向下一個結(jié)構(gòu)體;讓q所指結(jié)構(gòu)體的成員k等于i++的值,然后讓q指向前一個結(jié)構(gòu)體。i從0開始交替調(diào)用++i和i++,兩個表達(dá)式的值依次分別為1和1、3和3……。所以當(dāng)p叫循環(huán)結(jié)束時,實(shí)際循環(huán)了兩次,p和q都指向m數(shù)組的中間位置m[2],i自增了4次,所以q->k=i;就是讓m[2]k=4。所以程序最后輸出為:13431。

27.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫的應(yīng)用程序的集合。因此,數(shù)據(jù)庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務(wù)。

28.33解析:在初始化一個含有未指定維度的數(shù)組時,C語言總是在能完全容納初始化列表的基礎(chǔ)上盡可能小地設(shè)定該維度,來作為指定維度的標(biāo)準(zhǔn)。本題有9個初始值,若指定第一維度為2,則數(shù)組含有2*4=8個元素,容納不下,所以指定維度為3,3*4=12,足夠容納了。故應(yīng)該填3。

29.fopenfopen解析:C語言中的文件分為:ASCII文件與二進(jìn)制文件。文件在使用前打開,使用后要關(guān)閉。打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen('文件名','使用文件方式');關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp),其中fp為文件指針。

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

31.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

32.structst或exstructst或ex解析:結(jié)構(gòu)體類型數(shù)據(jù),其數(shù)據(jù)成員各自占據(jù)不同的存儲空間,整個結(jié)構(gòu)體變量所占存儲單元的字節(jié)數(shù)為每一個數(shù)據(jù)成員所占的存儲空間的和。注意:共用體變量所占存儲單元字節(jié)數(shù)的計算。

33.CDC:(CD與C:中間至少要有一個空格)CDC:(CD與C:中間至少要有一個空格)

34.HOWhowdoyoudo

35.-3-3解析:本題考核的知識點(diǎn)是運(yùn)算符“%’的應(yīng)用。該運(yùn)算符是求兩個數(shù)相除的余數(shù),其結(jié)果與被除數(shù)的符號一致,本題中“-19%4”的值為“-3”,所以說空格處應(yīng)該填-3。

36.252137252137解析:程序中變量a、b、c分別為十進(jìn)制、八進(jìn)制、十六進(jìn)制的數(shù)25,按%d格式輸出,a的輸出值為25;b=025轉(zhuǎn)換為十進(jìn)制數(shù)(b=2*8+5=16+5=21)輸出;c=0x25轉(zhuǎn)換為十進(jìn)制數(shù)(c=2*16+5=32+5=37)輸出。輸出結(jié)果為252137。

37.14

38.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1s=1或給abs賦1或1.0或1.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1,s=1或給a,b,s賦1或1.0或1.解析:sum函數(shù)的功能是求表達(dá)式s的級數(shù)之和,該函數(shù)的大致思路是:在該函數(shù)中,定義了—個整型變量i用作循環(huán)計數(shù)器,定義一個變量a用來表示各個子項的分子,初始為第一個子項的分子,故為1,定義了一個變量b用來表示各個子項大分母,初始為第一個子項的分母,故為1,定義一個變量s存放累加和,初始為第一個子項的值即為1,然后給各個定義的變量初始化,然后通過一個for循環(huán)將題目中的數(shù)學(xué)表達(dá)式的各個子項求出來并累加到s中,所以說,在該題的空格處應(yīng)該填寫將a、b和s賦初值的語句,即為a=1;b=1;s=1:(說明:語句的順序可任意)或a=b=s=1;(說明:變量的順序可任意)或a=1,b=1,s=1(說明:賦值表達(dá)式的順序可任意)給a,b,s賦1或1.0或1都可以。

39.數(shù)據(jù)存儲數(shù)據(jù)存儲

40.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。

41.D解析:函數(shù)f中變量i為靜態(tài)變量,函數(shù)f調(diào)用結(jié)束后變量i所占據(jù)的存儲單元不會釋放,而在主函數(shù)中f被調(diào)用5次,具體過程如下。

第1次調(diào)用f:s=s+i=1+0=1,i=i+1=1,主函數(shù)中a=a+f()=O+1=1

第2次調(diào)用f:s=s+1=1+1=2,i=i+1=2,豐函數(shù)中a=a+f()=1+2=3

第3次調(diào)用f:s=s+1=1+2=3,i=i+1=3,主函數(shù)中a=a+f()=3+3=6

第4次調(diào)用f:s=s+i=1+3=4,i=i+1=4,主函數(shù)中a=a+r()=6+4=10

第5次調(diào)用f:s=s+i=1+4=5,i=i+4=5,主函數(shù)中a=a+f()=10+5=15

所以printf語句的輸出結(jié)果為15。

42.C

43.B解析:在C語言中,合法的標(biāo)識符由字母,數(shù)字和下劃線組成(故選項A不正確),并且第一個字符必須為字母或者下劃線(故選項B和選項D不正確).所以,B選項為所選.

44.C解析:break,char、return、switch都是C語言中的關(guān)鍵字,Switch不是。因?yàn)镃語言區(qū)分字母的大小寫。

45.B解析:題目中首先通過strcat(p,r)函數(shù)將r所指字符串內(nèi)容連接到p所指的字符串后面,p[20]={'a','b','c','d','a','b','c','d','e'},然后通過strcpy(p+strlen(q),q),首先在p[0]地址的基礎(chǔ)上向后移動三位,然后將q所指字符串的內(nèi)容復(fù)制到p所指的存儲空間中,從字符d往后全部覆蓋,p[20]={'a','b','c','a','b','c'}。在輸出語句中strlen(p)是求字符串的長度。

46.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時的分支,也可以不使用default,此時若所有case均失配則跳出switch,因此選項B不正確。在switch語句中,每個case的作用就是標(biāo)出一個執(zhí)行的起點(diǎn),當(dāng)符合某個case時,程序就從該case所標(biāo)出的起點(diǎn)處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會一直執(zhí)行到switch的最后一條語句,而不是碰到下一個case就跳出switch。雖然break與case的配對使用會讓所有case分支互不重疊條理明確,但不配對使用在C語言中也是允許的。因此選項C不正確,應(yīng)該選擇D。

47.B解析:常常一個程序中要用到多個棧,為了不發(fā)生上溢錯誤,就必須給每個棧分配一個足夠大的存儲空間。但實(shí)際中,很難準(zhǔn)確地估計,若每個棧都分配過大的存儲空間,勢必造成系統(tǒng)空間緊張;若讓多個棧共用一個足夠大的連續(xù)存儲空間,則可利用棧的動態(tài)特性使他們的存儲空間互補(bǔ)。

48.CC?!窘馕觥繉€性表進(jìn)行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。

49.C解析:在本題運(yùn)行時主要注意的是當(dāng)i=9時,a[i]=10-9=1;i=8時,a[i]=10-8=2;i=7時,a[i]=10-7=3;……依此類推,直到i=0時,a[i]=10-0=10;此時,i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分別為8,5,2。

50.C解析:函數(shù)intf(intx)是一個遞歸函數(shù)調(diào)用,當(dāng)x的值等于0或1時,函數(shù)值等于3,其他情況下y=x2-f(x-2),所以在主函數(shù)中執(zhí)行語句z=f(3)時,y=3*3-f(3-2)=9-f(1)=9-3=6。

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

52.B數(shù)據(jù)庫應(yīng)用系統(tǒng)的邏輯設(shè)計包括數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫事務(wù)概要設(shè)計和應(yīng)用程序概要設(shè)計三方面。數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計的主要步驟為:將E—R圖轉(zhuǎn)換為初始關(guān)系模式,對初始關(guān)系模式進(jìn)行優(yōu)化,檢查關(guān)系表對數(shù)據(jù)庫事務(wù)的支持性,確定關(guān)系模式完整性約束,設(shè)計基于關(guān)系模式的用戶視圖。

53.C解析:本題考查簡單的if…else語句。先執(zhí)行條件if(a<b),顯然不成立,在執(zhí)行else語句。

54.A解析:在SQL語句中,凡是創(chuàng)建都用CREATE,刪除都用DROP,改變用ALTER,后面跟類型和名字,附加子句。

55.B

56.C解析:選項A中for和case為C語言中的保留字,不能作為用戶標(biāo)志符,故A錯誤。選項B中的4d其開頭的第一個為數(shù)字,而在C語言中規(guī)定,第一個字符必須為字母或者下劃線,故B錯誤;選項D中void為C語言中的保留字,不能作為用戶標(biāo)志符,故D錯誤。所以,4個選項中選項C符合題意。

57.B

58.C解析:計算機(jī)語言分為低級語言和高級語言,C語言屬于高級語言,但并非比其他語言高級,選項A)錯誤;除了機(jī)器語言外,其他各種語言都必須編譯成能被計算機(jī)識別的機(jī)器代碼才能執(zhí)行,選項B)錯誤;C語言出現(xiàn)于1972年至1973年,并不是出現(xiàn)最晚的語言,選項D)錯誤。

59.B解析:一個算法應(yīng)當(dāng)具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應(yīng)該選擇B。

60.B解析:函數(shù)ptr(*m,n)中,參數(shù)m傳遞的是一個地址,所以可以改變主函數(shù)中數(shù)組a的各元素值,函數(shù)ptr(*m,n)的功能是將數(shù)組的各元素都自加1,所以,最后數(shù)組a中的各元素為2,3,4,5,6。

61.A軟件危機(jī)主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進(jìn)度無法控制;軟件質(zhì)量難以保證;軟件不可維護(hù)或維護(hù)程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。所以選擇A。

62.AP是指向二維字符數(shù)組第二行One+Dream!的數(shù)組指針,所以長度是10,打印輸出的也是該字符串。

63.C

64.D

65.C循環(huán)鏈表是一種鏈?zhǔn)酱鎯Y(jié)構(gòu)。它的特點(diǎn)是表中最后一個結(jié)點(diǎn)的指針域指向頭結(jié)點(diǎn),整個鏈表形成一個環(huán)。循環(huán)鏈表的操作和線性鏈表基本一致,差別僅在于算法中的循環(huán)條件不是p或p->ne

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論