2021年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第1頁
2021年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第2頁
2021年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第3頁
2021年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第4頁
2021年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.設(shè)散列表長m=14,散列函數(shù)H(K)=K%11,已知表中已有4個結(jié)點:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址為空,如用二次探測再散列處理沖突,關(guān)鍵字為49的結(jié)點地址是_____。

A.8B.3C.5D.9

2.有以下程序

#include<stdio.h>

voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/

{intt,i,j;

for(i=0;i<n-1;j++)

for(j=i+1;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,

3.設(shè)有宏定義:#defineIsDIV(k,n)((k%n==1)?1:0)且變量m已正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達的是A.判斷m是否能被5或者7整除

B.判斷m是否能被5和7整除

C.判斷m被5或者7整除是否余1

D.判斷m被5和7整除是否都余1

4.若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。#include<stdio.h>#include<string.h>main{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.-1B.0C."abcdef"D."abdef"

5.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序運行后的輸出結(jié)果是()。A.0B.1C.2D.3

6.對n個元素的有序表A[1..n]進行順序查找,其成功查找的平均查找長度(即在查找表中找到指定關(guān)鍵碼的元素時,所進行比較的表中元素個數(shù)的期望值)為()

A.nB.(n+1)/2C.log2nD.n^2

7.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y(tǒng))reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運行后的輸出結(jié)果是______。A.3B.6C.8D.12

8.下列SQL語句中,用于修改表結(jié)構(gòu)的命令式是A.A.Alter

B.Create

C.Update

D.Insert

9.以下語句中存在語法錯誤的是()。A.charss[6][20];s[1]="right?";

B.charss0[20]={"right?"};.

C.char*ss[6];s[1]="right?";

D.char*ss[={"rignt?"};

10.設(shè)有定義inta=2,b=3,c=4;,則以下選項中值為0的表達式是______。A.(!a==1&&(!b==0)

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

C.a&&b

D.a||(b+b)&&(c-a)

11.一個二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[2][1]的值為()。

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

12.表達式“(int)((double)9/2)-9%2”的值是()。

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

13.一個棧的進棧序列是a,b,c,d,e,則棧的不可能的輸出序列是()。

A.edcbaB.decbaC.dceabD.abcde

14.按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的是()。A.大寫字母B.下劃線C.數(shù)字字符D.連接符

15.表達式9!=10的值為()。

A.非零值B.trueC.0D.1

16.下列程序的輸出結(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

17.有以下程序

#include<stdio.h>

#include<stdlib.h>

main()

{int*a,*b,*c;

a=b=c=(int*)malloc(sizeof(int));

*a=1;*b=2,*c=3;

a=b

printf(”%d,%d,%d\n”,*a,*b,*c);

}

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

18.在軟件設(shè)計中,不屬于過程設(shè)計工具的是()。

A.PDLB.DFD圖C.PAD圖D.N—S圖

19.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。

A.334HB.30DHC.352HD.31AH

20.若有定義和語句int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);則輸出結(jié)果是()

A.10,10B.10,20C.20,10D.20,20

二、2.填空題(20題)21.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個數(shù)中,找出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

22.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標志)輸出到一個名為bi.dat的新文件中,請?zhí)羁铡?/p>

#include<stdio.h>

#include<stdlib.h>

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

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

24.以下程序的運行結(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]);

printf("\n");}

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

main()

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

intm=4,j;

move(number,6,m);

for(j=0;i<5;j++)

printf("%d,",number[j]);

printf("%d",number[5]);

}

move(array,n,m)

intn,m,array[6];

{int*p,array_end;

array_end=*(array+n-1);

for(p=array+n-1;p>array;p--)

*p=*(p-1);

*array=array_end;

m--;

if(m>0)move(array,n,m);

}

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

structNODE

{

intnum;

stmctNODE*next;

};

main()

{structNODEs[3]={{1,'\0'),{2,'\0'),{3,'\0'}),*p,*q,*r;

intsum=0;

s[0].next=s+1;

s[1].next=s+2;

s[2].next=s;

p=s

q=p->next;

r=q->next;

sum+=q->next->num;

sum+=r->next->next->num;

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

}

27.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。

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

intk=0;

voidfun(intm)

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

main()

{inti=4;

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

}

29.在關(guān)系模型中,二維表的行稱為______。

30.函數(shù)de1ete(s,i,n)的作用是從字符串s中刪除從笫i個字符開始的n個字符,請?zhí)羁铡?/p>

voidde1ete(chars[],inti,intn)

{intj,k,length=O;

whi1e(s[length])

【】

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<=length)

whi1e(k<length)

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

s[j]='\0;}

31.有以下程序:

voidfun(int*a,inti,intj)

{intt;

if(i<j)

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

i++;j--;

fun(a,i,j);

}

}

main()

{intx[]=(2,6,1,8),i;

fun(x,0,3);

for(i=0;i<4;i++)printf("%2d",x[i]);

}

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

32.算法的復雜度主要包括【】復雜度和空間復雜度。

33.設(shè)有以下定義和語句,則*(*(p+2)+1)的值【】。

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

p=a;

34.軟件的需求分析階段的工作,可以概括為四個方面:【】、需求分析、編寫需求規(guī)格說明書和需求評審。

35.有以下程序:

voidf(inta[],inti,intj)

{intt;

if(i<j)

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

f(a,i+1,j-1);

}

}

main()

{inti,aa[5]={1,2,3,4,5};

f(aa,0,4);

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

}

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

36.函數(shù)viodfun(float*sn,intn)的功能是:根據(jù)以下公式計算S,計算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請?zhí)羁铡?/p>

s=1-1/3+1/5-1/7+…1/(2n+1)

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【】*f;

w=f/(2i+1);

s++=w;

}

【】=s;

}

37.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

38.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結(jié)果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%x\n",p);

printf("%x\n,p+9);

}

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

voidaverage();

main()

{floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,99}};

average(*score,12);

}

voidaverage(p,n)

intn;

float*p;

{inti;

floatsum=0;

for(i=0;i<n;i++,p++)sum+=(*p);

printf("%.2f\n",sum/n);

}

40.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。

#definePI3.14159;printf("PI=%f",PI);

三、1.選擇題(20題)41.設(shè)已執(zhí)行預編譯命令#include<string.h>,以下程序段的輸出結(jié)果是

chars[]="anapple";

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

A.7B.8C.9D.10

42.下面程序的輸出是______。typedefunion{longx[2];inty[4];charz[8];}MYTYPE;MYTYPEthem;mare(){printf("%d\n",sizeof(them));}

A.32B.16C.8D.24

43.以下程序的輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charstr[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str));}

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

44.設(shè)有定義:intk=0;,以下選項的四個表達式中與其他三個表達式的值不相同的是()。

A.k++B.k+=1C.#NAME?D.k+1

45.C語言源程序名的后綴是A..exeB..CC..objD..cp

46.在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A.概要設(shè)計B.詳細設(shè)計C.可行性分析D.需求分析

47.數(shù)據(jù)的存儲結(jié)構(gòu)是指

A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中表示C.數(shù)據(jù)在計算機中的順序存儲方式D.存儲在外存中的數(shù)據(jù)

48.在嵌套使用if語句時,C語言規(guī)定else總是()。

A.和之前與其具有相同縮進位置的if配對

B.和之前與其最近的if配對

C.和之前與其最近不帶else的if配對

D.和之前的第一個if配對

49.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

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

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

51.整型變量x和Y的值相等,且為非0值,則以下選項中結(jié)果為0的表達式是______。

A.X‖YB.X|YC.X&YD.XY

52.下述程序段的執(zhí)行結(jié)果是()#include<stdio.h>voidmain(){intx;for(x=1;x<=100;x++)if(++x%3==0)if(++x%4==0)if(++x%7==0)printf("%d",x);}

A.75B.76C.77D.84

53.以下選項中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

54.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

55.下面程序輸出的結(jié)果是______。main(){inti=5,j=9,x;x=(i==j?i:(j=7));printf("\n%d,%d",i,j);}

A.5,7B.5,5C.語法錯誤D.7,5

56.若有如下程序:voida(char*p,charc){while(*p){if(*p==c)*p=c-'b'+'B';;p++;}}main(){chars[50]="abcdeeffgee",b='e';a(s,b);printf("%s\n",s);}則程序運行后的輸出結(jié)果是()。

A.AbcdeeffgeeB.ABCDeeFFGeeC.abcdEEffgEED.ABCDEEFFGEE

57.下面程序的輸出結(jié)果是______。#inc1ude<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)prinf("%c",*p[i]);print("\n")}

A.SOB.SPC.SPOPKD.SHOB

58.有以下程序:#include<string.h>voidf(charp[][10],intn)/*字符串從小到大排序*/{chart[10];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0{strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy([i],t);}}main(){charp[5][10]={"abc","aabdfg","abbd","dcdbe","cd";f(p,5);printf("%d\n",strlen(p[0]));}程序運行后的輸出結(jié)果()。

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

59.下列語句組中,不正確的是()。

A.char*s;s="Olympic";

B.chars[]="Olympic";

C.char*s;s={"Olympic"};

D.chars[]={"Olympic"};

60.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運行該程序的輸出結(jié)果是______。

A.34B.42C.43D.33

四、選擇題(20題)61.以下選項中值為1的表達式是()。

A.

B.

C.

D.

62.

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

A.143B.197C.33D.28

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

A.abc28B.28cC.abcD.因類型不一致而出錯

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

66.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

67.在C程序中有如下語句:char*func(intx,inty);它是()。

A.對函數(shù)func的定義。B.對函數(shù)func的調(diào)用。C.對函數(shù)func的原型說明。D.不合法的

68.交換兩個變量的值,不允許用臨時變量,應該使用下列()位運算符。

A.&B.^C.D.E.F.~

69.“商品”與“顧客”兩個實體集之間的聯(lián)系一般是

A.一對一B.一對多C.多對一D.多對多

70.表達式a+=a-=a=9的值是()。

A.0B.-9C.18D.9

71.某二叉樹有5個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是A.10B.8C.6D.4

72.

73.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是

A.EOFB.-1C.1D.NULL

74.下面函數(shù)的功能是()。

intfunc(char*x)

{char*y=x;

while(*y++);

return(y-x-1);

}

A.求字符串的長度

B.比較兩個字符串的大小

C.將字符串x復制到字符串y

D.將字符串x連接到字符串y后面

75.若有函數(shù)voidfun(doublea[]。int*n){…}以下敘述中正確的是()。A.調(diào)用fun函數(shù)時只有數(shù)組執(zhí)行按值傳送,其他實參和形參之間執(zhí)行按地址傳送

B.形參a和n都是指針變量

C.形參a是一個數(shù)組名,n是指針變量

D.調(diào)用fun函數(shù)時將把double型參數(shù)組元素一一對應地傳送給形參a數(shù)組

76.以下程序中函數(shù)sCmp的功能是返回形參指針sl和s2所指字符串中較小字符串的首地址。

若運行時依次輸入:abCd、abba和abC三個字符串,則輸出結(jié)果是()。

A.abCdB.abbaC.abCD.abCa

77.對下列二叉樹

進行中序遍歷的結(jié)果是()。

A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG

78.若有定義語句:

char}sl=‘’0K”,:Its2=”ok”;

以下選項中,能夠輸出“OK”的語句是()。

A.if(strcmp(sl,s2)!=0)puts(s2);

B.if(strcmp(sl,s2)!=0)puts(s1);

C.if(strcmp(sl,s2)==1)puts(s1);

D.if(strcmp(sl,s2)==0)puts(s1);

79.數(shù)據(jù)字典(DD)所定義的對象都包含于()。

A.軟件結(jié)構(gòu)圖B.方框圖C.數(shù)據(jù)流圖(DFD圖)D.程序流程圖

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的字母字符,形成新的字符串,并取代原字符串。例如,若輸入的字符串是:“ab232bd34bkw”,則輸出結(jié)果是:“abbdbkw”。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將形參s所指字符串放入形參a所指的字符數(shù)組中,使a中存放同樣的字符串。說明:不得使用系統(tǒng)提供的字符串函數(shù)。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()指定的部位填入所編寫的若干語句。試題程序:

參考答案

1.D

2.D解析:在本題中,主函數(shù)在調(diào)用fun()函數(shù)進行排序時,傳遞的參數(shù)是c+4和6,fun()函數(shù)實現(xiàn)的功能是將數(shù)組c的第5個元素開始的6個元素依次進行從大到小的順序排列。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。

3.D

4.D本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。

5.D

6.B

7.B解析:在主函數(shù)中,第—次調(diào)用fun函數(shù),將變量b,c的值傳給形參x,y,在fun()函數(shù)中執(zhí)行if語句,判斷b和c的值是否相等,由于在主函數(shù)中賦初值b=5,c=6,所以判斷條件不滿足,執(zhí)行else語句,返回表達式(x+y)/2的值,即:(5+6)/2,因為參數(shù)的類型都為int型,所以結(jié)果也為整型:5,第二次調(diào)用時8和5也不相等,所以返回值為6,因此,選項B是正確的。

8.A本題主要考查SQL中一些基本的命令。SQL常用的語句包括:Select、Insert、Update、Delete、Create、Alter和Drop等。

在SQL語言中使用率最高的是Select,這個命令的作用是從表中查找出滿足條件的記錄。

Insert命令的作用是對數(shù)據(jù)表進行插入操作。

Update命令的作用是對數(shù)據(jù)表進行更新操作。

Delete命令的作用是對數(shù)據(jù)表中的數(shù)據(jù)進行刪除操作。

Create命令的作用是創(chuàng)建數(shù)據(jù)表。

Alter命令的作用是修改表的結(jié)構(gòu)。

Drop命令的作用是用來刪除表,它與Delete的區(qū)別是進行Drop操作后,數(shù)據(jù)表不存在了,而進行Delete操作后,數(shù)據(jù)表還在,只是數(shù)據(jù)被刪除了。

9.A[解析]數(shù)組定義后,不可以對數(shù)組整體賦值,s是二維數(shù)組,因ss[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用strcpy[1],"right);這樣的形式,而選項A)中對二維數(shù)組中的第“1維(相當于一個一維數(shù)組)賦值,是不可以的。選項B)和D)是定義時對數(shù)組初始化,這是可以的。選項C)中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個元素,這是可以的。

10.A解析:選項A中(!a==1)&&(!b==0)→(!2==1)&&(!b==0)→(0==1)&&(!b==0)→0&&(!b==0)→0(&&右邊表達式(!b==0)被“短路”):選項B中(a<b)&&!c||1→(2<3)&&!4||1→1&&0||1→0||1→1;選項C中a&&b→2&&3→1;選項Da||b+b)&&(c-a)→2||(b+b)&&(c-a)→1(||右邊表達式(b+b)&&(c-a)被“短路”)。所以本題選A。

11.A

12.B先將int型數(shù)據(jù)9強制轉(zhuǎn)換成double型,然后除以2,得到的結(jié)果與double型保持一致,即4.5;然后將4.5強制轉(zhuǎn)換成int型數(shù)據(jù)4,再計算9%2的值為1;最后計算4-1的值為3。故本題答案為B選項。

13.C

14.D[解析]C語言中標識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。所以D)選項中的連接符不合法。

15.D

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

17.A解析:本題中,首先創(chuàng)建開辟一個動態(tài)內(nèi)存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同的變量。分別給a、b、C所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量的值,即3,3,3。所以選A。

18.B常見的過程設(shè)計工具有圖形土具(程序流程圖、N—S圖、PAD圖、HIP0圖)、表格工具(判定表)和語言工具(PDL)。DFD是數(shù)據(jù)流圖,是描述數(shù)據(jù)處理過程的工具。

19.C解析:解答本題,首先要明白在對指針進行加、減運算的時候,數(shù)字“1”不是十進制的數(shù)“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節(jié),如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標)4)H=352H。

20.D

21.q<p+nq<p+n解析:考查對于函數(shù)的地址傳遞的掌握情況。通過地址傳遞可以在被調(diào)函數(shù)中對調(diào)用函數(shù)中的變量進行引用。

22.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根據(jù)fopen函數(shù)的調(diào)用方式fopen(文件名,使用文件方式)和題意可得結(jié)果。

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

24.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

25.345612

26.55解析:主函數(shù)首先聲明了一個結(jié)點數(shù)組s[3],并分別初始化其成員num為1、2、3,而成員next全部被初始化為'\\0'也就是0。下面又用三條語句s[0].next=s+1;s[1].next=s+2;s[2].next=s;分別將三個結(jié)點指向其后面一個結(jié)點,而最后一個結(jié)點指向第1個結(jié)點,構(gòu)造出一條單向循環(huán)鏈表。接下來用結(jié)點指針p=s即讓其指向s[0],然后讓q=p->next,即指向了s[1],r=q->next即讓r指向s[2],然后讓一個累計變量sum累加q->next->num和r->next->next->nm,因為q指向s[1]所以它的next指針指向的是s[2],故第1次累加的是s[2].num=3,而r指向的是s[2]所以它的next是s[0],s[0]的next指向s[1],故第2次累加的是s[1].num=2。所以程序最終輸出結(jié)果為5。

27.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指的存儲空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指的存儲空間中,然后輸出字符數(shù)組t。

28.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函數(shù)main()中定義了一個變量i,并賦初值4,調(diào)用fun()函數(shù)將i的初值傳遞給形參m,進行fun()函數(shù)后的運算,輸出結(jié)果為m=4,k=4。將k值輸出后自行增加1,k=5,此時全局變量k的值變?yōu)?。主函數(shù)中調(diào)用fun()函數(shù)后,i再自行增加1,i=5,所以主函數(shù)輸出的結(jié)果為“i=5k=5”。

29.元組元組解析:在關(guān)系型數(shù)據(jù)庫中,用二維表來表示關(guān)系,二維表的表名即關(guān)系名,二維表的行稱為關(guān)系的元組,二維表的列,稱為關(guān)系的屬性。

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

31.81628162解析:第一次調(diào)用函數(shù)fun時,x[0]=2、xL1]=6、x[2]=1、x[3]=8,執(zhí)行完函數(shù)fun后,x[0]與x[3]的值互換,即x[0]=8、x[1]=6、x[2]=1、x[3]=2;第二次調(diào)用函數(shù)fun時,i=1、j=2,故將x[1]與x[2]的值互換,即得x[0]=8、x[1]=1、x[2]=6、x[3]=2。

32.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

33.6060解析:*(*(p+2)+1)相當于訪問的是a[2][1]的值。*(p[2]+1)、p[2][1]以及(*(p+2))[1]表達的含義都是a[2][1]的值。

34.需求獲取需求獲取解析:軟件的需求分析階段的工作,可以概括為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。需求獲取的目的是確定對目標系統(tǒng)的各方面需求;需求分析是對獲取的需求進行分析和綜合,最終給出系統(tǒng)的解決方案和目標系統(tǒng)的邏輯模型;編寫需求規(guī)格說明書作為需求分析的階段成果,可以為用戶、分析人員和設(shè)計人員之間的交流提供方便,可以直接支持目標軟件系統(tǒng)的確認,又可以作為控制軟件開發(fā)進度的依據(jù);需求評審是對需求分析階段的工作進行的復審,驗證需求文檔的一致性、可行性、完整性和有效性。

35.154321,5,4,3,2解析:第一次調(diào)用函數(shù)f后aa[0]=5、aa[4]=1;第二次調(diào)用函數(shù)f后aa[1]=4、aa[4]=2;第三次調(diào)用函數(shù)f后aa[3]=3。正確答案為1,5,4,3,2。

36.-1或-1.0或-1*sn-1或-1.0或-1\r\n*sn

37.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。

38.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。

39.82.25

40.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進行替換的。

41.B解析:考查了測字符串長度函數(shù)strlen。如果一個字符數(shù)組中存放一個字符串,則函數(shù)strlen的值為'\\0'之前的全部字符個數(shù),也包括空格在內(nèi)。

42.C解析:sizeof(x)是一個標準C函數(shù),它的返回值是x型的數(shù)據(jù)結(jié)構(gòu)占用的內(nèi)存字節(jié)數(shù)。題目中定義了一個共用體,共用體變量在內(nèi)存中所占的長度等于最長的成員的長度。

43.A解析:本題考查求字符串的長度。程序中定義字符串str時中請了12個字節(jié)的內(nèi)存空間,對它賦初值后,函數(shù)strlen在求串長度時,以'\\0'作為串結(jié)束符,所以,strlen(str)的值為6。

44.A解析:凡是表達式都有一個值,即運算結(jié)果。k++的表達式值為0,k再進行增1運算;k+=1是賦值表達式,其作用是取k中的值加1后再放到k變量中,即表達式的值為1;++k是先進行k增1運算,表達式的值為1;k+1=0+1,其運算的結(jié)果為1。所以選項A中表達式的值與其他三個表達式不同。

45.B解析:C語言源程序的后綴為.c;經(jīng)過編譯得到的目標程序文件的后綴為.obj;再將目標程序文件鏈接后得到可執(zhí)行文件的后綴為.exe。故本題應該選擇B。

46.D通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。

軟件生命周期的主要活動階段為:

①可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實施計劃。

②需求分析。對待開發(fā)軟件提出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能。編寫軟件,規(guī)格說明書及初步的用戶手冊,提交評審。

③軟件設(shè)計。系統(tǒng)設(shè)計人員和程序設(shè)計人員應該在反復理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。

④軟件實現(xiàn)。把軟件設(shè)計轉(zhuǎn)換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。

⑤軟件測試。在設(shè)計測試用例的基礎(chǔ)上,檢驗軟件的各個組成部分。編寫測試分析報告。

⑥運行和維護。將已交付的軟件投入運行,并在運行使用中不斷地維護,根據(jù)新提出的需求進行必要而且可能的擴充和刪改。

47.B解析:數(shù)據(jù)的存儲結(jié)構(gòu)是數(shù)據(jù)元素在計算機存儲器內(nèi)的表示。數(shù)據(jù)的存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)用計算機語言的實現(xiàn),即建立數(shù)據(jù)的機內(nèi)表示。

48.C

49.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個值的表達式。

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

51.D解析:“‖”為或運算符,當其左右表達式中只要一個為非零則整個表達式的值1。|是按位或,&是按位與,^是按位異或,這三位運算符是按值的二進制位來比較的。

52.C

53.C解析:C語言中字符常量是以單引號括起來的單個字符,或為以“\\”與三位八進制數(shù)值或兩位十六進制數(shù)值代替單個字符。

54.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:

①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。

55.A解析:條件表達式的一般形式為:表達式1?表達式2:表達式3;先求解表達式1,若為真則求解表達式2;若表達式1的值為假,則求解表達式3。本題中先判斷i==j,不等,執(zhí)行j=7;然后執(zhí)行x=7。故本題為A。

56.C解析:函數(shù)a的功能是將字符數(shù)組s中的小寫字母e變?yōu)榇髮懽帜?,其余字符不變?個選項中只有C符合題意。

57.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPk\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串中的第一個字符。在for循環(huán)中,i的初值為3,那么輸出的第—個字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。

58.D解析:strcmp(str1,str2)是比較字符串str1和s

溫馨提示

  • 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

提交評論