2022-2023年湖北省荊門市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第1頁
2022-2023年湖北省荊門市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第2頁
2022-2023年湖北省荊門市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第3頁
2022-2023年湖北省荊門市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第4頁
2022-2023年湖北省荊門市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(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ì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.軟件生命周期中,花費(fèi)最多的階段是()。

A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測(cè)試D.軟件維護(hù)

2.對(duì)于int*pa[5];的描述,()是正確的。

A.pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素

B.pa是一個(gè)指向某數(shù)組中第5個(gè)元素的指針,該元素是int型變量

C.pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針

D.pa[5]表示某數(shù)組的第5個(gè)元素的值

3.下列能正確進(jìn)行字符串賦值的是()。A.B.C.D.

4.對(duì)線性表進(jìn)行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼值排好序

D.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼的檢索頻率排好序

5.對(duì)于哈希表,如果將裝填因子α定義為表中裝入的記錄數(shù)與表的長(zhǎng)度之比,那么向表中加入新紀(jì)錄時(shí),()

A.α的值隨時(shí)沖突次數(shù)的增加而遞減

B.α越大發(fā)生沖突的可能性越大

C.α等于1時(shí)不會(huì)再發(fā)生沖突

D.α低于0.5時(shí)不會(huì)發(fā)生沖突

6.

7.若有定義"int(*pt)[3];",則下列說法正確的是()。

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

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

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

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

8.下列關(guān)于宏的敘述中正確的是()。

A.宏替換沒有數(shù)據(jù)類型限制

B.宏定義必須位于源程序中所有語句之前

C.宏名必須用大寫字母表示

D.宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間

9.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

10.若有序表的關(guān)鍵字序列為(b,c,d,e,f,g,q,r,s,t),則在二分查找關(guān)鍵字b的過程中,先后進(jìn)行的關(guān)鍵字依次為()

A.f,c,BB.f,d,BC.g,c,BD.g,d,B

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

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

12.若用一個(gè)大小為6的數(shù)組來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為()

A.2和4B.1和5C.4和2D.5和1

13.#define能作簡(jiǎn)單的替代,用宏來替代計(jì)算多項(xiàng)式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

14.有以下程序:voidswap1(intC[]){intt;t=c[0];c[0]=C[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5);swapl(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其輸出結(jié)果是

A.5353B.5335C.3535D.3553

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

A.C語言編寫的函數(shù)源程序,其文件名后綴可以是C

B.C語言編寫的函數(shù)都可以作為一個(gè)獨(dú)立的源程序文件

C.C語言編寫的每個(gè)函數(shù)都可以進(jìn)行獨(dú)立的編譯并執(zhí)行

D.一個(gè)C語言程序只能有一個(gè)主函數(shù)

16.有以下程序:fun(intx){intp;if(x=0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}執(zhí)行后的輸出結(jié)果是()。

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

17.對(duì)一個(gè)算法的評(píng)價(jià),不包括()方面的內(nèi)容。

A.健壯性和可讀性B.并行性C.正確性D.時(shí)空復(fù)雜度

18.

19.

20.若變量已正確定義,有下列程序段:inta=3,b=5,c=7;if(a>B)a=b;c=a;if(c!=A)c=b;printf("%d,%d,%d\n",a,b,C);其輸出結(jié)果是()。A.程序段有語法錯(cuò)B.3,5,3C.3,5,5D.3,5,7

二、2.填空題(20題)21.在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅需要存儲(chǔ)各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。

22.在關(guān)系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為【】。

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

24.數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

25.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們之和。請(qǐng)?zhí)羁铡?/p>

main()

{

inti,a[20],sum,count;

sum=count=0;

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

scanf("%d",(______);

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

{

if(a[i]>0)

{

count++;

sum+=(______);

}

}

printf("sum=%d,count-%dkn",sum,count);

}

26.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

27.有以下程序:

main()

{inta[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++)p[i]=i+1;

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

}

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

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

intn='c':

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("moming");

case'd':printf("class");

}

29.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結(jié)果傳回,請(qǐng)?zhí)畛渫暾?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;

}

30.下面的程序能求a:ab.c文件中最長(zhǎng)行和它的位置。

#include<stdio.h>

main()

{intlin,i,j=0,k=0;

charc;

FILE*fp;

fp=(【】("a:ab.c","r");

rewind(fp);

while(fgetc(fp)!=EOF)

i=1;

【】

{i++;

j++;

if(i>=k){k=i;【】;}

}

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

【】;

}

31.下列程序利用指針將2個(gè)數(shù)按從大到小的順序輸出。

main()

{inta,b,【】;

printf("inputa,b:");

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

【】;

p2=&b;

if(a<b)

{p=p1;

p1=p2;

p2=p;

}

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

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

32.以下程序調(diào)用函數(shù)swap_p將指針s和t所指單元(a和b)中的內(nèi)容交換,請(qǐng)?zhí)羁铡?/p>

main()

{inta=10,b=20,*s,*t;

s=&a;t=&b;

swap_p(【】);

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

swap_p(int**ss,int**tt)

{intterm;

term=**ss;

**ss=**tt;

**tt=term;}

33.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過來,請(qǐng)?zhí)羁铡?/p>

#include<string.h>

main()

{infi,j,[13];charstr[]={"1234567"};

for(i=0,j=strlen(str)[14];i<j;i++,j--)

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

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

34.設(shè)有chara,b;,若要通過a&b運(yùn)算屏蔽掉a中的其他位,只保留第2位和笫8位(右起為第1位),則b的二進(jìn)制是【】。

35.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{intn,s;

printf("Enteranumber:");scanf("%d",&n);

printf("Output:");

do

{s=n%10;printf("%d",s);【】;

}while(n!=0);

printf("\n");

}

36.以下函數(shù)將b字符串連接到a字符串的后面,并返回a中新字符串的長(zhǎng)度。

strcen(charaC),charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;)

return(num);

}

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

main()

{inta[]={31,27,20,12,6,1},*p=a;

p++;

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

}

38.函數(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';

}

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

voiddelete(chars[],inti,intn)

{intj,k,length=0;

whiles(length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<=length)

while(k<length)

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

s[j]='\0';

}

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

main()

{

inti,n[]={0,0,0,0,0};

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

{

n[i]=n[i-1]*2+1;

printfi["%d",n[i]);

}

}

三、1.選擇題(20題)41.以下程序的運(yùn)行結(jié)果是

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%dk=%d",m,k++);}

main()

{inti=4;

fun(i++);

printf("i=%dk=%d\n",i,k);

}

A.m=4k=5i=5k=5

B.m=4k=4i=5k=5

C.m=4k=4i=4k=5

D.m=4k=5i=4k=5

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

A.順序存儲(chǔ)的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表

43.實(shí)體是信息世界中廣泛使用的一個(gè)術(shù)語,它用于表示()。

A.有生命的事物B.無生命的事物C.實(shí)際存在的事物D.一切事物

44.下列說法不正確的是

A.int*fun();----fun是一個(gè)返回int指針的函數(shù)

B.int(*fun)();---fun是一個(gè)返回int指針的函數(shù)

C.int(*array[5])();----array是一個(gè)有5個(gè)元素的數(shù)組,每一個(gè)元素都是一個(gè)函數(shù)指針,指向一個(gè)返回int的函數(shù)

D.int(*fun(int))(int);----fun是帶有一個(gè)int參數(shù)的函數(shù),返回值是一個(gè)函數(shù)指針,這個(gè)指針指向帶有一個(gè)int參數(shù)并返回int的函數(shù)

45.若二維數(shù)組a有m列,且設(shè)a[0][0]位于數(shù)組的第一個(gè)位置上,則計(jì)算任一元素a[i][j]剛在數(shù)組中的位置的式子為()。

A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+l

46.以下能正確定義一維數(shù)組的選項(xiàng)是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

47.微型計(jì)算機(jī)中使用的鼠標(biāo)器連接在()

A.并行接口上B.串行接口上C.顯示器接口上D.鍵盤接口上

48.設(shè)在C語言中,float類型數(shù)據(jù)占4個(gè)字節(jié),則double類型數(shù)據(jù)占()個(gè)字節(jié)。

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

49.有以下程序intf(intn){if(n==l)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf{"%d\n",j);}程序運(yùn)行后的輸出結(jié)果是

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

50.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}

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

51.在C語言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。

A.auto和register

B.extern和register

C.auto和static

D.static和register

52.有以下程序:voidsott(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;)}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},I;sort(aa+2,5);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是______。

A.1,2,3,4,5,6,7,8,9,10,

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

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

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

53.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運(yùn)行后的輸出結(jié)果是()。

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*1=22*2=43*1=33*2=63*3=9

54.有以下程序并include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){charp[]="1234567";fun(p,strlen(p));puts(p);}程序運(yùn)行后的輸出結(jié)果是()

A.1234567B.7654321C.1711717D.7177171

55.以下對(duì)枚舉類型名的定義中正確的是______。

A.enuma={one,two,three};

B.enuma{one=9,two=-1,three};

C.enuma={one","two","three"};

D.enuma{"one","two","three"};

56.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

57.請(qǐng)選出以下程序的輸出結(jié)果_______。#include<stdio.h>sub(int*s,inty){staticintt=3,y=s[t];t-;}main(){inta[]={1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}

A.1234B.4321C.0D.4444

58.以下程序的功能是進(jìn)行位運(yùn)算main(){unsignedchara,b;a=73;b=~4&3;printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是

A.43B.73C.70D.40

59.函數(shù)的值通過return語句返回,下面關(guān)于return語句的形式描述錯(cuò)誤的是

A.return表達(dá)式;

B.return(表達(dá)式);

C.一個(gè)return語句可以返回多個(gè)函數(shù)值

D.一個(gè)return語句只能返回一個(gè)函數(shù)值

60.下列對(duì)于軟件測(cè)試的描述中正確的是()。

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

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

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

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

四、選擇題(20題)61.

62.

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

main

{charw[][10]={"ABCD","EFGH","IJKL","

MNOP"),K;

for(k=1;k<3;k++)printf("%s\n",w[k]);

A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL

63.有如下程序段

#include"stdio.h"

typedefunion

{longx[2];

inty[4];

charz[8];

}atx;

typedefstructaa

{longx[2];

inty[4];

charz[8];

}stx;

main()

{printf("union=%d,structaa=%d\n",sizeof(atx),sizeof(stx));}

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

A.union=8,structaa=8

B.union=8,structaa=24

C.union=24,structaa=8

D.union=24,structaa=24

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

A.概念設(shè)計(jì)和邏輯設(shè)計(jì)

B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)

C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)

D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)

65.在一個(gè)C程序中

A.main函數(shù)必須出現(xiàn)在所有的函數(shù)之前B.main函數(shù)可以在任何地方出現(xiàn)

C.main函數(shù)必須出現(xiàn)在所有的函數(shù)之后D.main函數(shù)必須出現(xiàn)在固定位置

66.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

67.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運(yùn)算合法的是()。

A.R∩SB.R∪SC.R-SD.R×S

68.若各選項(xiàng)中所用變量已正確定義,函數(shù)fun中通過return語句返回一個(gè)函數(shù)值,以下選項(xiàng)中錯(cuò)誤的程序是

69.

70.有以下程序:

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

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

71.

72.

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

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

74.有以下程序在VC6平臺(tái)上編譯運(yùn)行。程序運(yùn)行后的輸出結(jié)果是(

)。

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

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

A.用E—R圖能夠表示實(shí)體集間一對(duì)一的聯(lián)系、一對(duì)多的聯(lián)系和多對(duì)多的聯(lián)系

B.用E—R圖只能表示實(shí)體集之間一對(duì)一的聯(lián)系

C.用E—R圖只能表示實(shí)體集之間一對(duì)多的聯(lián)系

D.用E—R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型

76.有以下程序:

若要按以下形式輸出數(shù)組右上半三角:

則在程序下劃線處應(yīng)填人的語句是()。

A.i-1B.i+1C.iD.4-i

77.有如下程序段:

執(zhí)行該程序段后,X的值為()。

A.trueB.falseC.0D.1

78.有以下定義語句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是()。

79.

80.

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

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),它的功能是計(jì)算:s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5在C語言中可調(diào)用log(n)函數(shù)求1n(n)。例如,若n1的值為30,則proc()函數(shù)值為8.640500。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:

參考答案

1.D本題考查對(duì)軟件生命周期的理解,軟件生命周期整體上可分為定義階段、開發(fā)階段和維護(hù)階段。其中定義階段包括可行性研究與計(jì)劃制訂和需求分析;開發(fā)階段包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、開發(fā)和測(cè)試;維護(hù)階段是一個(gè)單獨(dú)階段,不包含在開發(fā)階段內(nèi),它是所花費(fèi)用最多的一個(gè)階段。

2.A

3.C選項(xiàng)A、B的空間不夠;選項(xiàng)D中字符串存儲(chǔ)要有結(jié)束符ˊ\0ˊ,且要占用一個(gè)空間,printf用來輸出字符,不能輸入字符串。

4.A解析:對(duì)線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲(chǔ)的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。

5.B

6.C

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

\n

8.A宏定義寫在函數(shù)的花括號(hào)外,作用域?yàn)槠浜蟮某绦颍ǔT谖募淖铋_頭,所以B選項(xiàng)錯(cuò)|誤。宏名一般用大寫字母,但不是必須用大寫字母,所以C選項(xiàng)錯(cuò)誤。宏展開不占運(yùn)行時(shí)間,只占編譯時(shí)間,函數(shù)調(diào)用占運(yùn)行時(shí)間(分配內(nèi)存、保留現(xiàn)場(chǎng)、值傳遞、返回值),所以D選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。

9.B本題考查for循環(huán)的使用。對(duì)于第1個(gè)for循環(huán),任何一個(gè)i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時(shí)不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時(shí)退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。

10.A

11.D本題考查while循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,x++后值為1,x自加變成2,進(jìn)入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1.循環(huán)條件成立,進(jìn)入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執(zhí)行break語句。退出循環(huán)。結(jié)果為D。

12.A

13.C解析:帶參數(shù)宏的格式為:#define標(biāo)識(shí)符(形參表)形參表達(dá)式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實(shí)參的宏名,展開成由實(shí)參組成的表達(dá)式。

14.B解析:本題中函數(shù)swapl()是傳遞的地址。所以對(duì)該形參c的改變將影響實(shí)參,分析可知該函數(shù)的作用,是使數(shù)組c的第一個(gè)元素和第二個(gè)元素的值互換。主函數(shù)中調(diào)用該函數(shù)將a作為實(shí)參傳遞給形參c,故執(zhí)行該函數(shù)后a的第一個(gè)元素和第二個(gè)元素的值將交換。分別為5和3。函數(shù)swap2()是值傳遞的,所以該函數(shù)執(zhí)行后對(duì)數(shù)組b將沒有任何改變,此時(shí)該數(shù)組的第一個(gè)和第二個(gè)元素依然為3和5,因此最后的輸出為5、3、3和5,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

15.C函數(shù)是指預(yù)先定義功能塊,其目的是提高程序的重用性。在C語言中函數(shù)的源程序,后綴名可以為C。C語言所編寫的函數(shù)都可以是一個(gè)獨(dú)立的源文件。一個(gè)C語言程序只能有一個(gè)主函數(shù)。C語言中編寫的函數(shù)不是每個(gè)都可以獨(dú)立地編譯和執(zhí)行的,因?yàn)镃語言中程序的開始為主函數(shù),如果程序中沒有主函數(shù)則無法進(jìn)行編譯和執(zhí)行。

16.C解析:x=7,通過遞歸調(diào)用fun函數(shù)后得到結(jié)果。

17.B

18.C

19.D

20.B解析:本題考查的是程序結(jié)構(gòu)設(shè)計(jì)中if語句的應(yīng)用,當(dāng)if判斷條件成立時(shí)就執(zhí)行其后的相關(guān)語句,否則不執(zhí)行,本題中第一個(gè)if條件不成立,故不執(zhí)行“a=b”,接著執(zhí)行“c=a”,此時(shí)第二個(gè)if條件也不成立,故不執(zhí)行其后語句,最終c的值為3。

21.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中,除了要存儲(chǔ)數(shù)據(jù),還要存儲(chǔ)數(shù)據(jù)的前后件關(guān)系,對(duì)于順序存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲(chǔ)空間的位置來實(shí)現(xiàn)的,而對(duì)于鏈?zhǔn)酱鎯?chǔ)來說,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實(shí)現(xiàn)的。

22.關(guān)系或一個(gè)關(guān)系關(guān)系或一個(gè)關(guān)系解析:在關(guān)系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,而一個(gè)二維表就是一個(gè)關(guān)系。

23.3232解析:while(表達(dá)式)的功能是:首先計(jì)算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計(jì)算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時(shí),結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時(shí)滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。

24.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

25.&a[i]或a+ia[i]或*(a+i)&a[i]或a+ia[i]或*(a+i)解析:主函數(shù)中一開始定義了一個(gè)長(zhǎng)度為20得整形數(shù)組,然后通過—個(gè)循環(huán),循環(huán)20次給它的每個(gè)元素賦初值,所以在第一個(gè)空格處應(yīng)填各個(gè)元素的地址,即填&a[1]或a+i,然后在通過一個(gè)循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于。將其累加到變量sum中,所以第二個(gè)空格處應(yīng)該填入數(shù)組元素,所以應(yīng)該填a[i]或*(a+i)。

26.外模式外模式解析:外模式由概念模式推導(dǎo)而出,給出了每個(gè)用戶的局部數(shù)據(jù)描述,即數(shù)據(jù)視圖。

27.66解析:本題定義了二維數(shù)組a和指針變量p,p指向數(shù)組的首地址,for循環(huán)語句的功能是給數(shù)組元素賦值,結(jié)果為a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[2][0]=7、a[2][1]=8、a[2][2]=9,故printf函數(shù)的輸出結(jié)果為6。

28.morningclassmorningclass解析:本題考查了兩個(gè)知識(shí)點(diǎn):①“++、--”運(yùn)算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當(dāng)n=\'c\'時(shí),執(zhí)行“case\'c\':”,輸出morning;因?yàn)榇司渲袥]有break語句,因此接著執(zhí)行'case\'d\':”,輸出class,最終輸出結(jié)果為morningclass。

29.int*int*解析:從函數(shù)體中可看出,2是一個(gè)指向整型的指針,該函數(shù)的形參z是傳地址調(diào)用。

30.fopenwhile(fgetc(fp)!='\n')lin=jclose(fp)fopen\r\nwhile(fgetc(fp)!='\\n')\r\nlin=j\r\nclose(fp)

31.*p*p1*p2p1:&a*p1*p2

32.&s&t&s,&t解析:指針做函數(shù)參數(shù)時(shí),形參和實(shí)參指向同一個(gè)數(shù)據(jù),所以函數(shù)中對(duì)形參所指向的數(shù)據(jù)的改變也能影響到實(shí)參。本題中函數(shù)swap_p的形參為指向指針的指針,即雙重指針,原理跟普通的指針是一樣的。注意:通過指針來引用一個(gè)存儲(chǔ)單元。

33.顛倒一個(gè)字符串中的字符,就是首尾對(duì)應(yīng)的元素兩兩交換。簡(jiǎn)單地可用兩個(gè)游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個(gè)變量值為下標(biāo)的元素str[i]和str[j]。開始時(shí),i的值為0,j的值為字符串末元素的下標(biāo)(字符串長(zhǎng)度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j字符串末元素的下標(biāo)是它的長(zhǎng)度減1,所以在第二個(gè)空框處應(yīng)填入-1。程序?yàn)榱私粨Qstr[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中—起定義,所以在第—個(gè)空\(chéng)r\n\r\n

34.1000001010000010解析:運(yùn)算“&”的,的規(guī)則是只有當(dāng)兩個(gè)相應(yīng)的二進(jìn)制位都為1時(shí),該位的結(jié)果才為1。要保留第2、8位,只要將其與二進(jìn)制數(shù)10000010相與。

35.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。

36.\0n++

37.1212解析:本題簽考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個(gè)指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3)的值12。

38.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。

39.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。

40.1371513715解析:本題中,定義了個(gè)整型數(shù)組n并初始化,在for循環(huán)語句中,再對(duì)數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時(shí),n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應(yīng)輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。

41.B解析:由于在main()函數(shù)中,變量i=4,所以就調(diào)用fun(4),則輸出“m=4k=4”。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的“printf('i=%dk=%d\\n',i,k);”語句輸出“i=5k=5”。

42.A\nA?!窘馕觥慷址ú檎抑贿m用于順序存儲(chǔ)的有序線性表,對(duì)于順序存儲(chǔ)的非有序線性表和線性鏈表,都只能采用順序查找。

\n

43.C解析:實(shí)體是客觀存在且可以相互區(qū)別的事物。實(shí)體可以是具體的對(duì)象,如一個(gè)學(xué)生,也可以是一個(gè)抽象的事件,如一次出門旅游等。因此,實(shí)體既可以是有生命的事物,也可以是無生命的事物,但它必須是客觀存在的,而且可以相互區(qū)別。

44.B解析:該函數(shù)中fun是一個(gè)函數(shù)指針。指向一個(gè)返回int的函數(shù)。

45.D解析:解此題要注意的問題有兩個(gè):一是,二維數(shù)組在內(nèi)存中的存放形式是線性的,且是以行方式排列的。例如:a[3][4]在內(nèi)存中是以a[0][0],a[0][1],a[0][2],a[0][3],a[1][0],a[1][1],a[1][2],…的順序排列的。二是,數(shù)組的下標(biāo)范圍是從0開始至上限減1為止的。例如:a[5]中5個(gè)元素的下標(biāo)范圍是0~4。所以,元素a[i][j]剛在m列的二維數(shù)組a中,其上面已經(jīng)有a[0][?]~a[i-1][?],i行元素,加上其左面的a[i][0]~a[i][j-1],j個(gè)元素,再加上自己所處的位置1就是該元素在數(shù)組中的位置值了。i行元素的個(gè)數(shù)是i*m,所以元素a[i][j]在數(shù)組中的位置為i*+j+1。得出結(jié)論后還應(yīng)該驗(yàn)證一下,當(dāng)i=0,j=0時(shí),a[0][0]所處的位置代入式子為0*m+0+1:1,符合題意。故正確答案為D。

46.B解析:選項(xiàng)A定義數(shù)組時(shí)省略了長(zhǎng)度,而C語言中規(guī)定,只有在定義并同時(shí)進(jìn)行初始化時(shí),數(shù)組的長(zhǎng)度才可以省略,數(shù)組的長(zhǎng)度為初始化時(shí)候的成員個(gè)數(shù),故選項(xiàng)A錯(cuò)誤;在C語言中規(guī)定,數(shù)組的長(zhǎng)度必須是一個(gè)整數(shù)或整型常量表達(dá)式,故選項(xiàng)C不正確:定義時(shí)數(shù)組的長(zhǎng)度不能使用變量表示,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

47.B

48.C

\n在C語言中各種數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)與機(jī)器的位數(shù)有關(guān),16位機(jī)中(也就是在標(biāo)準(zhǔn)c中),若int類型數(shù)據(jù)占2個(gè)字節(jié),則float類型數(shù)據(jù)占4個(gè)字節(jié),double類型數(shù)據(jù)占8個(gè)字節(jié)。

\n

49.B解析:本題考查的知識(shí)點(diǎn)是遞歸函數(shù).通過分析不難寫出,f()函數(shù)的數(shù)學(xué)表達(dá)式為:

f(n)=1n=1;

f(n)=f(n-1)+1n不等于1;

在主函數(shù)中for循環(huán)執(zhí)行了兩次函數(shù)調(diào)用f(i)。第一次:i為1,調(diào)用f(1)得到返回值1,并把它加到i中,i的值為1。第二次i為2,調(diào)用f(n),根據(jù)遞歸公式可知“f(2)=f(1)+1”,得到返回值2并把它加到i中,j的值為3。所以最后輸出的j的值為3,所以4個(gè)選項(xiàng)中B正確。

50.C解析:本題考查if語句。先判斷if語句的條件是否成立,++a=1>0,此條件成立,又因?yàn)槭沁M(jìn)行邏輯或運(yùn)算,在已知其中一個(gè)運(yùn)算對(duì)象為真的情況下,不必判斷另外一個(gè)運(yùn)算符的真假,即不進(jìn)行++b操作,就可以直接得出整個(gè)表達(dá)式的值為邏輯1,執(zhí)行下列的++c。

51.A解析:在C語言中,動(dòng)態(tài)存儲(chǔ)區(qū)域中存放的變量在使用時(shí)才分配內(nèi)存空間,函數(shù)調(diào)用時(shí)返回的地址和自動(dòng)類局部變量等存放在動(dòng)態(tài)存儲(chǔ)區(qū)域中。auto變量和register變量都屬于自動(dòng)類局部變量,因此選項(xiàng)A正確。static說明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲(chǔ)中占據(jù)著永久的存儲(chǔ)單元,直至程序運(yùn)行結(jié)束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個(gè)程序運(yùn)行期間都占用內(nèi)存空間。

52.C解析:aa+2=aa[2],因此sort(aa+2,5)是從aa[2]開始,依次與后面的元素進(jìn)行比較,將當(dāng)前值小于其后一項(xiàng)的值進(jìn)行互換,循環(huán)5次。

53.B解析:外層for循環(huán)的自變量i從1開始,每次循環(huán)后增1,直到i等于3結(jié)束.對(duì)于外層循環(huán)自變量i的每一個(gè)值,內(nèi)層循環(huán)的自變量j每次從i開始,每次循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打印i*j=兩個(gè)乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結(jié)果。

54.C

55.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明:1、在C編譯中,對(duì)枚舉元素按常量處理,同時(shí)可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個(gè)整數(shù)不能直接賦給一個(gè)枚舉變量。

56.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細(xì)設(shè)計(jì)的常用工具,不是需求分析的工具。

57.C解析:x作為函數(shù)sub()的實(shí)參時(shí),函數(shù)對(duì)x值的改變沒有返回主函數(shù),并不能使得x的值變化,所以在打印時(shí),x的值是始終不變的,即為0。

58.A解析:是位異或運(yùn)算符,其作用是將左右運(yùn)算分量的相應(yīng)二進(jìn)制位進(jìn)行異或操作。即,相應(yīng)位同時(shí)為。或同時(shí)為1則結(jié)果相應(yīng)位為0,否則結(jié)果相應(yīng)位為1。所以a=73=(00000111)2(00000011)2=(00000100)2=4?!俏环催\(yùn)算符,作用是將運(yùn)算分量的二進(jìn)制位按位取反。即,原來是0的二進(jìn)制位變成1,原來是1的變成0。&是位與運(yùn)算符,其作用是將左右運(yùn)算分量的相應(yīng)二進(jìn)制位進(jìn)行與操作。即,相應(yīng)位同時(shí)為1時(shí)結(jié)果相應(yīng)位為1,否則結(jié)果相應(yīng)位為0。所以b=-4&3=~(00000100)2&(00000011)2(11111011)2&(00000011)2=(00000011)2=3。故應(yīng)該選擇A。

59.C解析:return語句中的表達(dá)式的值就是所求的函數(shù)值,此表達(dá)式值的類型必須與函數(shù)首部所說明的類型一致。如果類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)自動(dòng)進(jìn)行轉(zhuǎn)換。一個(gè)return語句只能返回一個(gè)值。

60.C解析:關(guān)于軟件測(cè)試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;一個(gè)好的測(cè)試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的用例;一個(gè)

溫馨提示

  • 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)論