2022-2023年山東省青島市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第1頁
2022-2023年山東省青島市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第2頁
2022-2023年山東省青島市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第3頁
2022-2023年山東省青島市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第4頁
2022-2023年山東省青島市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022-2023年山東省青島市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.設(shè)單鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為非空的循環(huán)單鏈表first的尾結(jié)點(diǎn)(由p所指向)滿足:______A.p->link==NULL;B.p==NULL;C.p->link==first;D.p==first;

3.設(shè)線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。已知指針q所指結(jié)點(diǎn)是指針結(jié)點(diǎn)p的直接前驅(qū),若在*q與*p之間插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列()操作。

A.s->next=p->next;p->next=s;

B.q->next=s;s->next=p;

C.p->next=s->next;s->next=p;

D.p->next=s;s->next=q;

4.下列選項(xiàng)中,能正確定義數(shù)組的語句是()。

A.intnum[0..2008];

B.intnum[];

C.intN=2008;intnum[N];

D.#defineN2008;intnum[N];

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

A.軟件測(cè)試應(yīng)該由程序開發(fā)者來完成

B.程序經(jīng)調(diào)試后一般不需要測(cè)試

C.軟件維護(hù)只包括對(duì)程序代碼的維護(hù)

D.以上三種說法都不對(duì)

6.

7.算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是_____。A.有窮性B.簡(jiǎn)潔性C.可行性D.確定性

8.以下關(guān)于C語言的敘述中正確的是()。

A.C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間

B.C語言中的變量可以在使用之前的任何位置進(jìn)行定義

C.在C語言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致

D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示

9.

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

11.字符(char)型數(shù)據(jù)在微內(nèi)存中的存儲(chǔ)形式是______。

A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼

12.一個(gè)棧的進(jìn)棧序列是a,b,c,d,e,則棧的不可能的輸出序列是()。

A.edcbaB.decbaC.dceabD.abcde

13.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運(yùn)行時(shí)輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。

A.w,youjing,o

B.welcome,you,jing,to

C.w,you,eeijing,u

D.w,xelcome,eeijing,u

14.樹的度為3,且有9個(gè)度為3的節(jié)點(diǎn),5個(gè)度為1的節(jié)點(diǎn),但沒有度為2的節(jié)點(diǎn)。則該樹中的葉子節(jié)點(diǎn)數(shù)為()。

A.18B.33C.19D.32

15.設(shè)x、Y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。

A.xYB.x<=YC.x‖y+zy-zD.!((x

16.有以下程序:#include<stdio.h>intfun(int*a,int*b,intn){inti=0,j=0,sum=0;for(;i<n;i++){sum+=a[i];if((i+1)%2==0){b[j++]=sum;sum=0;}}returnj;}main(){inta[8]={1,0,2,3,5,4,2,1},b[8],k,i;k=fun(a,b,8);for(i=0;i<k;i++)printf(“%d”,b[i]);}程序的運(yùn)行結(jié)果是()。

A.0242B.1593C.1351D.286

17.在一個(gè)C語言源程序文件中所定義的全局變量,其作用域?yàn)?)。

A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.由具體定義位置和extern說明來決定范圍

18.有定義語句:“intx,y;”,若要通過“scanf("%d,%d,&x,&y);”語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯(cuò)誤的是

A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>

19.若希望下列的程序運(yùn)行后輸出25,程序空白處的正確選項(xiàng)是()。main{intid=50,a[]=(7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i

20.下列關(guān)于線性鏈表的敘述中,正確的是()A.各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)空間可以不連續(xù),但它們的存儲(chǔ)順序與邏輯順序必須一致

B.各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與邏輯順序可以不一致,但它們的存儲(chǔ)空間必須連續(xù)

C.進(jìn)行出入與刪除時(shí),不需要移動(dòng)表中的元素

D.以上三種說法都不催

二、2.填空題(20題)21.若intx=1,y=2;則計(jì)算表達(dá)式y(tǒng)+=y-=x*=y后的y值是()。

22.設(shè)二進(jìn)制數(shù)A是00101101,若想通過異或運(yùn)算ab使A的高4位取反,低4位不變,則二進(jìn)制數(shù)B應(yīng)是【】。

23.以下函數(shù)用于求出一個(gè)2×4矩陣中的最大元素值。

max_value(arr)

intarr[][4];

{

inti,j,max;

max=arr[O][0];

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

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

if(【】>max)max=【】;

return(max);

}

24.面向?qū)ο蟮哪P椭?,最基本的概念是?duì)象和______。

25.函數(shù)delete(s,i,n)是作用是從字符串s中刪除從第i個(gè)字符開始的n個(gè)字符,請(qǐng)?zhí)羁铡?/p>

voiddelete(chars[],inti,intn)

{intj,k,length=0;

while(s[length])

【】;

-i;

j=i

}

if(【】)

{k=i+n;

if(i+n<=length)

while(k<length)

s[j++]=s[k++];

s[j]='\0';

}

26.下列程序的運(yùn)行結(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);

}

27.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對(duì)象的______性來實(shí)現(xiàn)的。

28.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara='A';

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

29.若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和【】測(cè)試方法。

30.語句:x++;++x;x=1/x;執(zhí)行后都使變量x中的值增1,請(qǐng)寫出一條同一功能的賦值語句______。

31.以下程序?qū)崿F(xiàn)帶有頭結(jié)點(diǎn)的單鏈表的建立,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域data(字符型)和指針域next,所建立鏈表的頭指針由參數(shù)phd傳回調(diào)用程序。在空格處填入正確內(nèi)容。

#include<stdio.h>

#include<stdlib,h>

structnode{

chardata;

structnode*next;

};

voidcreatlist(【】)

{

charch;

structnode*s,*r;

*phd=malloc(sizeof(structnode));

r=*phd;

ch=getchar();

while(ch!='@'){

s=malloc(sizeof(structnode));

s->data=ch;

r->next=s;

r=s;

ch=getchar();

};

r->next=【】;

}

main()

{

structnode*head;

head=NULL;

creatlist(【】)

}

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

main()

{inti=010,j=10;

printf("%d,%d\n",i,j);}

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

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

34.下面程序的運(yùn)行結(jié)果是【】。

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

}

main()

{intaa[3]={1,2,3},s;

s=f(&aa[0],3);

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

}

35.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請(qǐng)將語句補(bǔ)充家整。

seanf("%d",【】);

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

36.下列程序執(zhí)行輸出的結(jié)果是【】。

#include<stdio.h>

f(inta)

{intb=0;

staticc=3;

a=c++,b++;

return(a);}

main()

{inta=2,i,k;

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

k=f(a++);

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

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

intfun(int*x,int*y)

{staticintm=4;

m=*X+*y;*x-=m;*y+=m;

returnm;

}

main()

{inta=2,b=6,n;

n=fun(&a,&B);printf("%d,",n);

n=fun(&a,&B);printf("%d\n",n);

}

38.在計(jì)算機(jī)領(lǐng)域中,通常用英文單詞“Byte'’表示【】。

39.在程序設(shè)計(jì)階段應(yīng)該采取______和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,繼而用某種程序設(shè)計(jì)語言寫成程序。

40.下列程序的運(yùn)行結(jié)果為【】。

main()

{inta=5,b=5,y,z;

y=b-->++a?++b:a;

z=++a>b?a:y;

printf("%d,%d,%d,%d",a,b,y,z);

}

三、1.選擇題(20題)41.指出下面不正確的賦值語句

A.a++;B.a==b;C.a+=b;D.a=1,b=1;

42.

對(duì)兩個(gè)數(shù)組a和b進(jìn)行下列初始化:

charm[]="1234567";

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

則下列敘述正確的是()。

A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長(zhǎng)度相同C.數(shù)組m比數(shù)組n長(zhǎng)1D.數(shù)組m與數(shù)組n中都存放字符串

43.下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

44.函數(shù)fun的返回值是fun(char*a,char*b){intnum=0,n=0;while(*(a+num)!='\0')num++;while(b[n]){*(a+num)=b[n];num++;n++;}returnnum;}

A.字符串a(chǎn)的長(zhǎng)度B.字符串b的長(zhǎng)度C.字符串a(chǎn)和b的長(zhǎng)度之差D.字符串a(chǎn)和b的長(zhǎng)度之和

45.在面向?qū)ο蠓椒ㄖ?,如果“雞”是一類對(duì)象,“公雞”、“母雞”等都繼承了“雞”類的性質(zhì),因而是“雞”的()。

A.子類B.實(shí)例C.對(duì)象D.父類

46.設(shè)有如下程序:#include'string.h"main(){staticchars1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果從鍵盤上輸入name1<回車>name2<回車>,則程序運(yùn)行后的輸出結(jié)果是()。

A.$9B.@11C.$10D.@10

47.若有定義inta=5,b=7;,則表達(dá)式a%=(b%2)運(yùn)算后,a的值為()。

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

48.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的()。

A.存儲(chǔ)問題B.共享問題C.安全問題D.保護(hù)問題

49.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

50.執(zhí)行以下語句后的輸出結(jié)果是______。intx=10,y=3,z;printf("%d\n",z=(x%y,x/y));

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

51.C語言函數(shù)返回值的類型是由______決定的。

A.return語句中的表達(dá)式類型B.調(diào)用函數(shù)的主調(diào)函數(shù)類型C.調(diào)用函數(shù)時(shí)臨時(shí)D.定義函數(shù)時(shí)所指定的函數(shù)類型

52.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與實(shí)體間的聯(lián)系可以表示成()。

A.屬性B.關(guān)系C.鍵D.域

53.詳細(xì)設(shè)計(jì)的結(jié)果基本決定了最終程序的()。

A.代碼的規(guī)模B.運(yùn)行速度C.質(zhì)量D.可維護(hù)性

54.經(jīng)過下面的語句定義后:inti,a[10],*p;下列語句中,合法的是______。

A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;

55.以下4個(gè)選項(xiàng)中,不能看作一條語句的是

A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;

56.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.選擇排序C.快速排序D.歸并排序

57.若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達(dá)式中值為5的是()。

A.(p++)->mB.*(p++)->mC.(*p).mD.*(++p)->m

58.設(shè)有輸入語句scanf("a=%d,b=%d,c=%d",&a,&b,&C),為使變量a的值為2,b的值為4,c的值為8,則從鍵盤輸入數(shù)據(jù)的正確形式是()。

A.1,3,2<回車>B.a=1b=3c=2<同車>C.132<回車>D.a=2,b=4,c=8<回車>

59.若有以下定義語句:char*sl="12345",*s2="1234";printf("%d"n",strlen(strcpy(s1,s2)));則輸出結(jié)果是()

A.4B.5C.9D.10

60.以下不能定義為用戶標(biāo)識(shí)符的是()。

A.scanfB.VoidC.3comD.int

四、選擇題(20題)61.下面程序的輸出結(jié)果是()。

#inclde<stdio.h>

#defineSUB(X,Y)(X)*Y

main()

{inta=3,b=4;

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

}

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

62.

63.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P

64.

有以下結(jié)構(gòu)說明和變量定義,指針p、q、r分別指向鏈表中的3個(gè)連續(xù)結(jié)點(diǎn)。

structnode

{intdata;structnode*next;)*p,*q,*r;

現(xiàn)要將q所指結(jié)點(diǎn)從鏈表中刪除,同時(shí)要保持鏈表的連續(xù),以下不能按要求完成操作的語句是()。

A.p->next=q->next;

B.P-next=P->next->next;

C.p->next=r;

D.p=q->next;

65.有以下程序則輸出結(jié)果是()。A.1245B.1256C.1278D.1267

66.下列排序方法中,最壞情況下比較次數(shù)最少的是()。

A.冒泡排序B.簡(jiǎn)單選擇排序C.直接插入排序D.堆排序

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

A.用戶定義的函數(shù)中可以沒有return語句

B.用戶定義的函數(shù)中可以有多個(gè)return語句,以便可以調(diào)用一次返回多個(gè)函數(shù)值

C.用戶定義的函數(shù)中若沒有reillnl語句,則應(yīng)當(dāng)定義函數(shù)為void類型

D.函數(shù)的retU/Tl語句中可以沒有表達(dá)式

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

A.c語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令

B.c程序經(jīng)過編譯、連接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件

C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個(gè)文本文件中

D.c語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序

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

A.算法是指對(duì)解題方案的準(zhǔn)確而完整的描述

B.算法的有窮性是指算法程序的長(zhǎng)度是有限的

C.算法是否有效與擁有的情報(bào)無關(guān)

D.算法的基本特征有可行性、確定性和有窮性

70.已知各變量的類型說明如下:

則以下不符合C語言語法的表達(dá)式是()。

A.

B.

C.

D.

71.有以下程序:

運(yùn)行時(shí),若輸入123450<;回車>;,則輸出結(jié)果是()。

A.66656B.6566456C.66666D.6666656

72.有以下程序:

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

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

73.

74.有以下程序

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.011122B.012

C.012020D.120

75.

76.若文件指針fp已正確指向文件,ch為字符型變量,以下不能把字符輸出到文件中的語句是()。

A.fget(f0,ch);

B.foutc(ch,fo);

C.fprinff(fp,”%c”,ch);

D.fwrite(&ch,sizeof(ch),1,fp);

77.

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

#include<stdio.h>

voidfun(int*S,int*p)

{staticintt=3:

*p=s[t];

t--;

}

voidmain

{inta[]={2,3,4,5),k;

intx;

for(k=0,k<4,k++)

{fun(a,&x);

printf("%d,",x);

}

}

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

78.設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是

79.有以下程序:

#include<stdio.h>

main()

{inta=7;

while(a--);

print[("%d\n",a);

}

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

A.-l

B.0

C.1

D.7

80.有以下程序

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

A.3040B.2050C.3344D.0304

五、程序改錯(cuò)題(1題)81.寫出下列程序的運(yùn)行結(jié)果。

#include“stdio.h”

Main

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

intm,n,*p;p=&a[0];m=*(p+1);n=*(p+4);

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

六、程序設(shè)計(jì)題(1題)82.編寫fun()函數(shù),它的功能是:利用以下所示的簡(jiǎn)單迭代方法求方程cos(y)-y=0的一個(gè)實(shí)根。

yn+1=cos(yn)

迭代步驟如下:

(1)取y1初值為0.0;

(2)y0=y1,把y1的值賦給y0;

(3)y1=cos(y0),求出一個(gè)新的y1;

(4)若y0=y1的絕對(duì)值小于0.000001,則執(zhí)行步驟

(5),否則執(zhí)行步驟(2);

(5)所求y1就是方程COS(y)-y=0的一個(gè)實(shí)根,作為函數(shù)值返回。

程序?qū)⑤敵鼋Y(jié)果Result=0.739085。

請(qǐng)勿改動(dòng)main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入所編寫的若干語句。

部分源程序給出如下。

試題程序:

參考答案

1.C

2.C

3.B

4.DC語言不允許定義動(dòng)態(tài)數(shù)組,定義數(shù)組的大小必須為常量表達(dá)式。A選項(xiàng)錯(cuò)誤,C語言中的數(shù)組沒有此類型的定義方法;B選項(xiàng)錯(cuò)誤,定義數(shù)組應(yīng)指明數(shù)組大小,如果不指明數(shù)組大小,需要給定元素的個(gè)數(shù);C選項(xiàng)錯(cuò)誤,N為變量,不能用來定義數(shù)組大小。故本題答案為D選項(xiàng)。

5.D程序調(diào)試是由程序開發(fā)者完成診斷和改正程序中的錯(cuò)誤的過程;軟件測(cè)試是由專門的測(cè)試人員完成,是發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程,是軟件生存周期中非常重要的一個(gè)階段。

6.D

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

8.B解析:C語言中注釋可以放在任何位置,選項(xiàng)A錯(cuò)誤;C語言中的變量只要在使用之前定義即可,位置可以是使用前的任何位置,故選項(xiàng)B正確;C語言中兩側(cè)數(shù)據(jù)類型可以不一致,系統(tǒng)可進(jìn)行強(qiáng)制類型轉(zhuǎn)換,選項(xiàng)C錯(cuò)誤;C語言數(shù)值常量中不允許存在空格,選項(xiàng)D錯(cuò)誤。

9.A

10.D本題考查兩個(gè)知識(shí)點(diǎn),按位異或左移把b左移2位化成二進(jìn)制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。

11.D解析:將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲(chǔ)單元中。

12.C

13.A題干中,定義一個(gè)二維字符數(shù)組v。然后通過for循環(huán),輸入4個(gè)字符串welcome、you、to、beijing,將其分別存放在v的4個(gè)元素中。數(shù)組v是存放4個(gè)字符串的二維數(shù)組;“**v”表示第1個(gè)字符串的第一個(gè)字符“w”;“*(v+1)”指向第2個(gè)字符串“you”;“v[3]+3”指向第4個(gè)字符串的第3個(gè)字符開始后的整個(gè)字符串“jing”;“*(v[2]+1)”表示第3個(gè)宇符串的第2個(gè)字符“o”。故本題答案為A選項(xiàng)。

14.C設(shè)葉子結(jié)點(diǎn)數(shù)為〃,則該樹的結(jié)點(diǎn)數(shù)為n+9+5=n+\n14,根據(jù)樹中的結(jié)點(diǎn)數(shù)=樹中所有結(jié)點(diǎn)的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,則n=19。本題選擇C選項(xiàng)。

15.D本題考查邏輯運(yùn)算符的使用。當(dāng)“”的兩個(gè)運(yùn)算對(duì)象都是邏輯l時(shí),表達(dá)式返回值才是1;“‖”的兩個(gè)運(yùn)算對(duì)象至少有一個(gè)是邏輯1時(shí),表達(dá)式返回值也是l,x<y為1,!z為0,10為1,0‖為1,因此,!l為0。

16.B程序中,fun函數(shù)的功能是接收兩個(gè)數(shù)組a、b,以及數(shù)組a的元素個(gè)數(shù)n,然后通過for循環(huán)將數(shù)組a中下標(biāo)為偶數(shù)的元素與后面相鄰的下標(biāo)為奇數(shù)的元素兩兩相加,賦給數(shù)組b中下標(biāo)為j的元素,最后返回?cái)?shù)組b的個(gè)數(shù)。所以main函數(shù)中,通過調(diào)用fun函數(shù),將數(shù)組a的元素兩兩相加,得到數(shù)組b的各個(gè)元素,再通過for循環(huán)輸出,結(jié)果為:1593。故本題答案為B選項(xiàng)。

17.D

\n全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個(gè)源文件結(jié)束止。當(dāng)全局變量定義在后,引用它的函數(shù)在前時(shí),應(yīng)該在引用它的函數(shù)中用extern對(duì)此全局變量進(jìn)行說明,以便通知編譯程序該變量是一個(gè)已在外部定義了的全局變量,這時(shí)全局變量的作用域從extern說明處起,延伸到該函數(shù)末尾。

\n

18.A解析:本題考核的知識(shí)點(diǎn)是scanf()函數(shù)的運(yùn)用。seanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)為輸入格式字符串,第二個(gè)參數(shù)為輸入變量地址列表,在scallf()語句中非格式字符可以作為輸入時(shí)數(shù)據(jù)的間隔,輸入時(shí)必須原樣輸入,在本題中輸入格式串為%d,%d其中“,”為非格式字符,所以輸入時(shí)必須原樣輸入。所以4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

19.D要想使程序輸出25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)的語句,使引用的數(shù)組元素累加65-50=15即可,D選項(xiàng)中,i下標(biāo)從0開始,i=2指向第3個(gè)數(shù)50+a[2]=50+10=60,繼續(xù)循環(huán)60+a[3]=60+5=65,此時(shí)i=4跳出,循環(huán)結(jié)束。

20.C

試題2分析

結(jié)點(diǎn)的存儲(chǔ)順序和邏輯順序不一定一致,存儲(chǔ)空間也不一定連續(xù)。插入和刪除元素的時(shí)候,不需要移動(dòng)表中的元素。

試題2答案

C

21.0

22.1111000011110000解析:按位異或運(yùn)算的一個(gè)重要應(yīng)用是讓某個(gè)整型變量的二進(jìn)制位取反,0變成1,而1變成0。這只要設(shè)計(jì)這樣一個(gè)位串信息,讓要變反的位為1,不要改變的位為0,用這個(gè)位串信息與整型變量按位加就能得到希望的結(jié)果。要使字節(jié)的高4位取反,低4位不變,則需要位串信息是11110000。

23.j<4arr[i][j]arr[i][j]j<4\r\narr[i][j]\r\narr[i][j]解析:2*4矩陣實(shí)際上就是一個(gè)二維數(shù)組,結(jié)合本題應(yīng)為arr[2][4],所以在第一個(gè)循環(huán)中應(yīng)當(dāng)填寫“4”;第二個(gè)橫線處是要判斷當(dāng)前的數(shù)組元素值是否大于max,所以應(yīng)填寫arr[i][j];第三個(gè)橫線處是要將當(dāng)前大于max的數(shù)組元素的值賦給變量max,所以應(yīng)當(dāng)填寫“arr[i][j]”。

24.類類

25.length++i<lengthlength++\r\ni<length解析:第一個(gè)循環(huán)極有可能是計(jì)算串的長(zhǎng)度,在i<=length時(shí)字符才被刪除,被刪除的是從第i個(gè)到第i+n或最后一個(gè)間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。

26.22132,2,1,3解析:本題考查++,--運(yùn)算符和條件運(yùn)算符的使用。

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

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

27.封裝封裝

28.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實(shí)現(xiàn)的是在字符“A”的ASCII碼值上加上一個(gè)常數(shù),使之變成另一個(gè)ASCII碼值,從而輸出字符。

29.黑盒軟件測(cè)試的方法有三種:動(dòng)態(tài)測(cè)試、靜態(tài)測(cè)試和正確性證明。設(shè)計(jì)測(cè)試實(shí)例的方法一般有兩類:黑盒測(cè)試法和白盒測(cè)試法。在使用黑盒法設(shè)計(jì)測(cè)試實(shí)例時(shí),測(cè)試人員將程序看成一個(gè)“黑盒”,即不關(guān)心程序內(nèi)部是如何實(shí)現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設(shè)計(jì)的測(cè)試用例完全是根據(jù)程序的功能說明來設(shè)計(jì)的。

30.x+=1x+=1解析:本題考查'++'、'--'運(yùn)算符。'++'、'--'只能作用于變量,不能用于表達(dá)式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。

31.structnode**phdNULL&head

32.8108,10解析:以0開頭的是八進(jìn)制數(shù),輸出時(shí)將其轉(zhuǎn)換成十進(jìn)制數(shù)。

33.246

34.66解析:經(jīng)過分析將遞歸函數(shù)寫成其數(shù)學(xué)表達(dá)式如下:

本題中定義了一個(gè)長(zhǎng)度為3的數(shù)組aa并初始化。接著調(diào)用遞歸函數(shù)f,由上面的數(shù)學(xué)表達(dá)式以計(jì)算其返回值s=1+2+3=6,所以空格處應(yīng)該填6。

35.k[7]*kk[7]*k解析:scanf()函數(shù)有兩個(gè)參數(shù),第—個(gè)參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號(hào)和格式字符組成)第二個(gè)參數(shù)是一地址列表(地址列表是由多個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個(gè)空格處位于scanf()函數(shù)的第二個(gè)參數(shù)處,所以,第一個(gè)空應(yīng)該填地址k。printf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時(shí)原樣輸出)第二個(gè)參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個(gè)需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號(hào)分隔開)。而第二個(gè)空位于printf()函數(shù)的第二個(gè)參數(shù)處,所以應(yīng)該填*K。

36.44解析:本題考查了靜態(tài)存儲(chǔ)類別的局部變量的特點(diǎn)。靜態(tài)存儲(chǔ)類別的局部變量在程序的整個(gè)生存周期內(nèi)都存在,但作用域卻只局限于定義它的函數(shù)或局部范圍。當(dāng)i=0時(shí)執(zhí)行第一次for循環(huán),k=f(2),a=c++,b++;因?yàn)橘x值運(yùn)算符的優(yōu)先級(jí)高于逗號(hào)運(yùn)算符,所以a=3,c=4;當(dāng)i=1時(shí)執(zhí)行第二次for循環(huán),k=f(3),a=c++,b++;因?yàn)閏為靜態(tài)局部變量所以保留著這一次執(zhí)行的結(jié)果值4,所以a=4,c=5,所以函數(shù)f()返回a的值為4。

37.88。8,8。解析:本題考查靜態(tài)局部變量值的特點(diǎn),請(qǐng)參考第10章有關(guān)習(xí)題的解析。

38.字節(jié)字節(jié)

39.自頂向下自頂向下解析:在程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,后考慮細(xì)節(jié),逐步使問題具體化,對(duì)復(fù)雜的問題,應(yīng)該設(shè)計(jì)一些子目標(biāo)作為過渡,上述方法概括為:自頂向下,逐步細(xì)化。

40.7467

41.B解析:本題考核的知識(shí)點(diǎn)是賦值語句的正確使用。C語言中賦值語句是由賦值表達(dá)式加“;”構(gòu)成的.賦值表達(dá)式的形式為:變量:表達(dá)式;。選項(xiàng)A中a++相當(dāng)于a+1,是賦值語句;選項(xiàng)C和選項(xiàng)D也是賦值語句.只有選項(xiàng)B不是,因?yàn)檫x項(xiàng)B中“==”符號(hào)是等于的意思,并不是賦值運(yùn)算符,所以,4個(gè)選項(xiàng)中B符合題意。

42.C解析:本題考查字符數(shù)組和字符串賦值給數(shù)組的一些區(qū)別。語句“charm[]='1234567';”定義了一個(gè)字符型數(shù)組并進(jìn)行了初始化,C語言規(guī)定,在字符串的末尾自動(dòng)加上串結(jié)束標(biāo)記\'\\0\',因此數(shù)組m的長(zhǎng)度是8;而數(shù)組n是按照字符方式對(duì)數(shù)組進(jìn)行初始化,系統(tǒng)不會(huì)自動(dòng)加上串結(jié)束標(biāo)記\'\\0\',因此數(shù)組n的長(zhǎng)度是7。

43.A解析:數(shù)據(jù)庫是一個(gè)通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨(dú)立性,而且能并發(fā)地為多個(gè)應(yīng)用服務(wù),同時(shí)具有安全性和完整性。即數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項(xiàng)A正確,選項(xiàng)B錯(cuò)誤。在數(shù)據(jù)庫管理階段中,數(shù)據(jù)是結(jié)構(gòu)化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲(chǔ)空間,也減少了對(duì)數(shù)據(jù)的存取時(shí)間,提高了訪問效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對(duì)數(shù)據(jù)的存取方式,選項(xiàng)C錯(cuò)誤。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫系統(tǒng)的特點(diǎn),選項(xiàng)D錯(cuò)誤。本題正確答案是A。

44.D解析:第一個(gè)while循環(huán)是字符串a(chǎn)的長(zhǎng)度,第二個(gè)while是將字符串b接在a的后面,num在a串長(zhǎng)度上繼續(xù)累計(jì),為兩個(gè)字符串長(zhǎng)度之和。

45.A解析:面向?qū)ο蠓椒ㄖ?,繼承是表示類之間的相似性的機(jī)制。如果類X繼承類Y,則X為Y的子類,Y為X的父類(超類)。如果“雞”是一類對(duì)象,“公雞”、“母雞”等都繼承了“雞”類的性質(zhì),因而是“雞”的子類。

46.D解析:本題首先定義了兩個(gè)字符數(shù)組,然后從鍵盤讀入兩個(gè)字符串'name1'和'name2'分別賦給它們,接下來使用strcmp()函數(shù)比較兩個(gè)字符串是否相等,若不相等就輸出一個(gè)‘@’字符,否則輸出一個(gè)‘$’字符,所以本題先輸出一個(gè)‘@’字符。最后使用strcat()函數(shù)將兩個(gè)字符串連成一個(gè),然后使用strlen()函數(shù)求連接后的字符串長(zhǎng)度,所以接下來又輸出一個(gè)10。故本題的正確答案為D。

47.A解析:本題考查'%'運(yùn)算符的使用。運(yùn)算符'%'要求兩個(gè)運(yùn)算對(duì)象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。本題中表達(dá)式ao%=(b%2)等價(jià)于a=a%o(b%2)=5%(7%2)=5%1=0。

48.B解析:數(shù)據(jù)庫產(chǎn)生的背景就是計(jì)算機(jī)的應(yīng)用范圍越來越廣泛,數(shù)據(jù)量急劇增加,對(duì)數(shù)據(jù)共享的要求越來越高。共享的含義是多個(gè)用戶、多種語言、多個(gè)應(yīng)用程序相互覆蓋的使用一些公用的數(shù)據(jù)集合。在這樣的背景下,為了滿足多用戶、多應(yīng)用共,享數(shù)據(jù)的要求,就出現(xiàn)了數(shù)據(jù)庫技術(shù),以便對(duì)數(shù)據(jù)庫進(jìn)行管理。因此,數(shù)據(jù)庫技術(shù)的根本目標(biāo)就是解決數(shù)據(jù)的共享問題。故選項(xiàng)B正確。

49.B解析:在C語言的數(shù)組元素的引用方法,我們?cè)谇懊嬉呀?jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對(duì)于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對(duì)此地址使用“間接訪問運(yùn)算符”:*(p+1)就代表存儲(chǔ)單元a[1],注意:一對(duì)圓括號(hào)不可少。同樣,對(duì)于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對(duì)于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時(shí),若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。

50.D

51.D解析:函數(shù)值的類型應(yīng)當(dāng)是在定義函數(shù)時(shí)指定的。在定義函數(shù)時(shí)對(duì)函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型—致,如果不—致,則以函數(shù)類型為準(zhǔn),即函數(shù)類型決定返回值的類型。

52.B解析:將E-R圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式是數(shù)據(jù)庫邏輯設(shè)計(jì)的主要工作。從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體和聯(lián)系都可以表示成關(guān)系。

53.C解析:詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體的實(shí)現(xiàn)所要求的系統(tǒng),但詳細(xì)設(shè)計(jì)階段的任務(wù)還不是具體的編寫程序,而是要設(shè)計(jì)出程序的“藍(lán)圖”,以后程序員將根據(jù)這個(gè)藍(lán)圖寫出實(shí)際的程序代碼,因此,詳細(xì)設(shè)計(jì)階段的結(jié)果基本上就決定了最終的程序代碼的質(zhì)量。

54.D

55.D解析:選項(xiàng)D)為兩條語句。

56.A解析:以下幾種算法的時(shí)間復(fù)雜度分別為:冒泡排序(n2);選擇排序(n2);快速排序(nlog2n);歸并排序(nlog2n)。當(dāng)排序元素序列基本有序的情況下,冒泡排序的交換次數(shù)為0,只是順序掃描數(shù)據(jù)而已,所以其效率是最高的。

57.D

58.D解析:本題考查scanf函數(shù)的基本格式。若在scanf函數(shù)的格式控制字符串中插入了其他的字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置原樣輸入這些字符,我們必須把“a=”、“b=”、“c=”也輸入。

59.A

60.D解析:標(biāo)識(shí)符是C語言中用來表示變量名、數(shù)組名、函數(shù)名、指針名、結(jié)構(gòu)名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語句標(biāo)號(hào)等用途的字符序列。標(biāo)識(shí)符由1~32個(gè)字符組成,第一個(gè)字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標(biāo)識(shí)符不能與C關(guān)鍵字相同,并區(qū)分大小寫。選項(xiàng)D)錯(cuò)誤,因?yàn)閕nt是C語言中的關(guān)鍵字。

61.Aa=3,b=4,sub(a++,b++)就是3*4=12,然后a=4,b=5;

62.A

63.D

64.D

\n本題考查鏈表結(jié)點(diǎn)的刪除,q一>next中存放的是r所指結(jié)點(diǎn)的首地址,將r所指結(jié)點(diǎn)的首地址存于p--next中,則實(shí)現(xiàn)刪除q所指點(diǎn)的功能,并保持鏈表連續(xù),P所指點(diǎn)與r所指結(jié)點(diǎn)相連。

\n

65.A本題考查的是輸入輸出函數(shù)。sCanf()是格式化輸入函數(shù);getChar()函數(shù)從鍵盤緩沖區(qū)讀一個(gè)字符;putChar()輸出一個(gè)字符;printf()函數(shù)是格式化輸出函數(shù)。在題目中,程序執(zhí)行到sCanf()函數(shù)時(shí),會(huì)暫停等待用戶輸A4個(gè)字符,按題意輸)k123<回車>后,字符l-3被分別賦值到Cl-C3中,而C4會(huì)得到一個(gè)換行符’\\\\n’。然后執(zhí)行第1個(gè)getChar()函數(shù),由于前面的sCanf()函數(shù)讀完了緩沖區(qū)中的所有字符,所以此時(shí)程序又會(huì)暫停等待用戶輸入,按題意輸入45678<回車>后,緩沖區(qū)第一個(gè)字符4賦值到。5,第二個(gè)字符5賦值給C6,所以本題應(yīng)該選擇A)。

66.D冒泡排序、簡(jiǎn)單插入排序與簡(jiǎn)單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2n。故答案為D選項(xiàng)。

67.B本題重點(diǎn)考察函數(shù)返回值的相關(guān)知識(shí),函數(shù)的值只能通過returll語句返回主調(diào)函數(shù),在函敦中允許有多個(gè)return語句,但每次調(diào)用只能有一個(gè)return語句t執(zhí)行,因此只能返回一個(gè)函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為“void”。因此B選項(xiàng)正確。

68.Ac語言中的非執(zhí)行語句不會(huì)被編譯,不會(huì)生成二進(jìn)制的機(jī)器指令,因此A)選項(xiàng)錯(cuò)誤。由C語言構(gòu)成的指令序列稱為C源程序,c源程序經(jīng)過c語言編譯程序編譯之后生成一個(gè)后綴為obj的二進(jìn)制文件(稱為目標(biāo)文件);最后要由“連接程序”把此.0bj文件與c語言提供的各種庫函數(shù)連接起來生成一個(gè)后綴為.exe的可執(zhí)行文件。根據(jù)上述分析可知,A)選項(xiàng)敘述錯(cuò)誤。

69.A算法是指對(duì)解題方案的準(zhǔn)確而完整的描述。算法具有4個(gè)特征:可行性、確定性、有窮性和擁有足夠的情報(bào)。有窮性指算法必需在有限時(shí)間內(nèi)做完,即算法必需能在執(zhí)行有限個(gè)步驟之后終止。當(dāng)算法擁有足夠的情報(bào)時(shí),此算法才是有效的;而當(dāng)提供的情報(bào)不夠時(shí),算法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論