2021-2022年河南省許昌市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第1頁
2021-2022年河南省許昌市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第2頁
2021-2022年河南省許昌市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第3頁
2021-2022年河南省許昌市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第4頁
2021-2022年河南省許昌市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年河南省許昌市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.若有定義:floatx=1.5;inta=1.b=3.c=2;則正確的switch語句是()。A.

B.

C.

D.

2.在一個(gè)鏈?zhǔn)疥?duì)列中,假設(shè)f和r分別為隊(duì)頭和隊(duì)尾指針,則插入S所指結(jié)點(diǎn)的運(yùn)算是()。

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

B.r->next=s;r=s;

C.S->next=rr=s;

D.r->next=f;f=s;

3.下面程序輸出的結(jié)果是main(){intx;x=-3+4*5-6;printf("%d",x);x=3+4%5-6;printf("%d",x);x=-3+4%6/5;printf("%d",x);x=(7+6)%5/2;printf("%d",x);}

A.111-31B.11-321C.12-321D.11121

4.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

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

1234

678

1112

16

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

A.i-1B.iC.i+1D.4一i

5.

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

A.形參可以是常量、變量或表達(dá)式

B.實(shí)參可以是常量、變量或表達(dá)式

C.實(shí)參的類型應(yīng)與形參的類型賦值兼容

D.實(shí)參的個(gè)數(shù)應(yīng)與形參的個(gè)數(shù)一致

7.有以下程序:#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);}程序的運(yùn)行結(jié)果是()。

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

8.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個(gè)關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個(gè)位置。

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

9.以下不屬于C語言整數(shù)的是()。

A.12fB.25uC.-32D.+20L

10.輸入序列為ABC,輸出為CBA時(shí),經(jīng)過的棧操作為()。

A.push,pop,push,pop,push,pop

B.push,push,push,pop,pop,pop

C.push,push,pop,pop,push,pop

D.push,pop,push,push,pop,pop

11.線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。已知指針p所指結(jié)點(diǎn)不是尾結(jié)點(diǎn),若在*p之后插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列()操作。

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

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

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

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

12.有以下程序intf(intA){returna%2;}main(){ints[8]={1,3,5,2,4,6),i,d=0;for(i=0;f(s[i];i++)d+=s[i];printf("%d\n",D);}程序運(yùn)行后的輸出結(jié)果是

A.9B.11C.19D.21

13.設(shè)計(jì)軟件結(jié)構(gòu)是在軟件生命周期的()。

A.軟件定義期B.軟件開發(fā)期C.軟件維護(hù)期D.以上3個(gè)都不是

14.下列程序的輸出結(jié)果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

15.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是

A.69825B.63825C.6385D.693825

16.下面程序段的時(shí)間復(fù)雜度為()。

A.O(n)B.O(n2)C.O(1)D.O(nlog2n)

17.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是______。

A.運(yùn)行后報(bào)錯(cuò)B.66C.611D.510

18.棧的特點(diǎn)是B,隊(duì)列的特點(diǎn)是()。

A.先進(jìn)先出B.先進(jìn)后出

19.

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

A.“charc1,*c2,*c3[10];”是合法的變量定義語句

B.數(shù)組說明符的方括號(hào)中不能使用表達(dá)式

C.數(shù)組元素下標(biāo)可以是非整數(shù)

D.若有定義“chararray[4];”,則語句“printf(“%c”,array[“3”]);”是合法的

二、2.填空題(20題)21.軟件測(cè)試是保證軟件質(zhì)量的重要手段,而軟件測(cè)試的主要和重要的測(cè)試方法是通過測(cè)試數(shù)據(jù)和【】的設(shè)計(jì)來實(shí)現(xiàn)。

22.以下程序通過函數(shù)SunFun求。這里f(x)=x2+1,由F函數(shù)實(shí)現(xiàn)。請(qǐng)?zhí)羁铡?/p>

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{returnx*x+1;}

23.下述函數(shù)用于統(tǒng)計(jì)一行字符中的單詞個(gè)數(shù),單詞之問用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fot(i=0;str[i]!=【】;i++)

if【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

24.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。

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

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

26.以下函數(shù)的功能是計(jì)算s=1+1/21+1/3!+…+1/n!,請(qǐng)?zhí)羁铡?/p>

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k;

s=s+fac;

}

}

27.如果一個(gè)工人可管理多個(gè)設(shè)備,而一個(gè)設(shè)備只被一個(gè)工人管理,則賣體“工人”與實(shí)體“設(shè)備”之間存在【】關(guān)系。

28.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu)、存取方式等)改變時(shí),不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。

29.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

30.以下程序的功能是輸出字符串。請(qǐng)?zhí)羁铡?/p>

main()

{char*a[]={"Pascal","Clanguage","dbase","Cobol"};

char【】;

intj=0;

p=a;

for(;j<4;j++)

print{("%s\n",*【】);

}

31.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

intmystden(char*str)

{inti;

fo,(i=0;【】!='\0';i++);

return(i);

32.數(shù)據(jù)流的類型有______和事務(wù)型。

33.設(shè)一棵完全二叉樹共有700個(gè)結(jié)點(diǎn),則在該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。

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

main()

{inta=177;

printf("%o\n",a);

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

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

36.以下程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){intf,f1,f2,i;f1=0;f2=1;printf("%d%d",f1,f2);for(i=3;i<=5;i++){f=-f1+f2,printf("%d",f);f2=f1;f1=f;}printf("\n");}

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

main()

{inta=2,b=3,c=4;

a*=16+(b++)-(++c);

printf("%d",a);

}

38.在雙鏈表中每個(gè)結(jié)點(diǎn)有兩個(gè)指針域:一個(gè)指向【】,另一個(gè)指向【】。

39.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

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

printf("\n");

}

三、1.選擇題(20題)41.下列程序的輸出結(jié)果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}

A.0B.3C.OKD.沒有任何輸出

42.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為

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

43.以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

44.設(shè)intx=1,y=1;表達(dá)式(!x||--y)的值是()。

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

45.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體之間聯(lián)系的是

A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表

46.按照“先進(jìn)先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。

A.隊(duì)列B.棧C.雙向鏈表D.二叉樹

47.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)s+=a[i][a[j][j]];printf("%d\n",s);}

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

48.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>voiddelch(char*s){inti,j;char*a;a=s;for(i=0,j=0;a[i]!='\0';i++)if(a[i]>='0'&&a[i]<='9'){s[j]=a[i];j++;}s[j]='\0';}main(){char*item="a34bc";delch(item);printf("\n%s",item);}

A.abcB.34C.a34D.a34bc

49.有以下程序#include<stdio.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dar","w+");for(i=1;i<6;i++){fprintf(fp,"%d",1);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf.("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是

A.00B.12345C.14D.12

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

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

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

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

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

51.在16位C編譯系統(tǒng)中,若定義longa;則能給a賦值40000的正確語句是()。

A.a=2000p+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;

52.下面的概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。

A.對(duì)象B.繼承C.類D.過程調(diào)用

53.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),

A.均占4個(gè)字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定

54.有如下程序:#include<stdio.h>main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序的輸出結(jié)果是()。

A.0B.0.25C.0.5D.1

55.下述程序段的輸出結(jié)果是()intx=10;inty=x++;printf("%d,%d",(x++,y),y++);

A.11,10B.11,11C.10,10D.10,11

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

A.return表達(dá)式;

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

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

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

57.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序運(yùn)行后的輸出結(jié)果是______。

A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5

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

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

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

A.局部變量說明為static存儲(chǔ)類,其生存期將得到延長(zhǎng)

B.全局變量說明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大

C.任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的

D.形參可以使用的存儲(chǔ)類說明符與局部變量完全相同

60.有以下程序:#include<stdio.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dar","w+");for(i=1;i<6;i++){fprintf(fp,"%d",i);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是()。

A.00B.12345C.14D.12

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

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

62.有以下程序

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

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

63.

64.

65.有3個(gè)關(guān)系R、S和T如下.

則由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.差C.交D.并

66.

當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABC,則輸出結(jié)罘是()。

#include<stdio.h>

#include<string.h>

main()

{charss[10]="1,2,3,4,5":

gets(ss);strcat(ss,"6789");printf("%s\n",ss);

}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

67.在JavaScript語言中,要定義局部變量則可以()。

A.由關(guān)鍵字private在函數(shù)內(nèi)定義

B.由關(guān)鍵字private在函數(shù)外定義

C.由var在函數(shù)內(nèi)定義

D.由關(guān)鍵字var在函數(shù)外定義

68.若有以下程序

#include<stdio.h>

voidf(intn);

main()

{

voidf(intn);

f(5);

}

voidf(intn)

{

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

}

則以下敘述中不正確的是

A.若只在主函數(shù)中對(duì)函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f

B.若在主函數(shù)前對(duì)函數(shù)f進(jìn)行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)f

C.對(duì)于以上程序,編譯時(shí)系統(tǒng)會(huì)提示出錯(cuò)信息:對(duì)f函數(shù)重復(fù)說明

D.函數(shù)f無返回值,所以,可用void將其類型定義為無返回值型

69.下列定義變量的語句中錯(cuò)誤的是()。

70.設(shè)有定義:intm=0;。以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是()。

A.++mB.m+=1C.m++D.m+1

71.有以下程序:

#include<stdio.h>

main()

{intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;

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

for(j=1;j<=i;j++)t+=b[i][b[j][i]];

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

}

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

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

72.有以下程序:

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

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

73.HTTP協(xié)議是運(yùn)行于()協(xié)議之上的應(yīng)用層協(xié)議。

A.FTPB.SMTPC.TCPD.UDP

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

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

75.有以下程序(注:字符a的ASCIl碼值為97):

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

A.789B.abeC.7890D.979899

76.有以下程序:

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

A.12B.14C.1234D.123456

77.以下選項(xiàng)中能表示合法常量的是()。

A.1,200B.1.5E2.0C.”\”D.”\007”

78.對(duì)于算法的每一步,指令必須是可執(zhí)行的。算法的()要求算法在有限步驟之后能夠達(dá)到預(yù)期的目的。

A.可行性B.有窮性C.正確性D.確定性

79.

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

charstr[15]=”hello!”;

printf(“%d\n”,strlen(str));

A.15B.14C.7D.6

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求出以下分?jǐn)?shù)序列的前m項(xiàng)之和。2/1,3/2,5/3,8/5,13/8,21/13,…和值通過函數(shù)值返回main()函數(shù)。例如,若m=6,則應(yīng)輸出10.007051。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編一個(gè)函數(shù)fun(char*str),該函數(shù)的功能是把字符串中的內(nèi)容逆置。例如,字符串中原有的字符串為asdfg,則調(diào)用該函數(shù)后,串中的內(nèi)容為gfdsa。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:

參考答案

1.AB)選項(xiàng)中switch(n[nx);語句中不應(yīng)該有最后的分號(hào)。switch(expr1),中的exp1不能用浮點(diǎn)類型或Iong類型,也不能為一個(gè)字符串,所以C)錯(cuò)誤。case后面常量表達(dá)式的類型必須與switch后面表達(dá)式的類型一致,所以D)錯(cuò)誤。

2.B

3.A解析:本題考查的是算術(shù)運(yùn)算符的各種運(yùn)算,x=-3+4*5-6=-3+20-6=11;x=3+4%5-6=3+4-6=1;x=-3+4%6/5=-3+4/5=-3+0=-3;x=(7+6)%5/2=13%5/2=3/2=1。故正確答案為選項(xiàng)A)。

4.B

\n本題中要求輸出右上半角的數(shù),對(duì)角線上的數(shù)的下標(biāo)相同,所以j=i。

\n

5.A

6.A函數(shù)中,形參必須是變量,實(shí)參可以是常量、變量或表達(dá)式,選項(xiàng)A錯(cuò)誤,選項(xiàng)B正確;實(shí)參的個(gè)數(shù)和類型要與形參一致,選項(xiàng)C、D正確。本題答案為A選項(xiàng)。

7.B內(nèi)循環(huán)只循環(huán)一次就結(jié)束,第1次外循環(huán)時(shí),t=t+b[0][b[0][0]]=1+b[0][0]=1+0=1;第2次外循環(huán)時(shí),t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第3次外循環(huán)時(shí),1=1+b[2][b[2][2]]=2+b[2][2]=2+2=4。故本題答案為B選項(xiàng)。

8.BB.【解析】快速排序的基本思想是:從表中選取一個(gè)元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線性表分割成兩部分(兩個(gè)子表),此元素插入到其分界線的位置處。然后分別對(duì)兩個(gè)子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。

9.AC語言中整型常量,從表示形式來看,有十進(jìn)制、八進(jìn)制或十六進(jìn)制;從符號(hào)位來看,有有符號(hào)整數(shù)和無符號(hào)整數(shù)兩類。選項(xiàng)A的“12f”是float類型的實(shí)數(shù),不是整數(shù);選項(xiàng)B的“25u”屬于無符號(hào)整數(shù);選項(xiàng)C的“-32”是十進(jìn)制形式的有符號(hào)整數(shù);選項(xiàng)D的“+20L”是十進(jìn)制形式的長(zhǎng)整數(shù)。故本題答案為A選項(xiàng)。

10.B

11.B

12.A解析:本題考核的知識(shí)點(diǎn)是一維數(shù)組的定義,初始化和數(shù)組中元素的引用。函數(shù)f()的作用是形參a為偶數(shù)的時(shí)候返回0,主函數(shù)中首先定義了一個(gè)長(zhǎng)度為8的一維數(shù)組,然后給它賦初值使得s[0]=1、a[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6.其他沒有賦值的數(shù)組元素將自動(dòng)賦值為0。for循環(huán)中,當(dāng)s[1]不為偶數(shù)的時(shí),將s[i]相加,即當(dāng)i=3時(shí),s[i]=2為偶數(shù),退出循環(huán),此時(shí)d的值為d=s101+s[1]+s[2]=1+3+5=9,因此最后輸出的d的值為9。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

13.BB。【解析】設(shè)計(jì)軟件結(jié)構(gòu),是在軟件概要設(shè)計(jì)階段進(jìn)行的,而概要設(shè)計(jì)屬于軟件開發(fā)期。

14.C本題考查do-while循環(huán),在fun函數(shù)中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實(shí)現(xiàn)的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數(shù)組賦值。在主函數(shù)中,通過調(diào)用fun函數(shù),按上面的規(guī)則對(duì)數(shù)組a重新賦值,最后輸出數(shù)組a。

15.C解析:該題稍微難一點(diǎn)。主要要搞清楚以下幾點(diǎn):①定義了一個(gè)指針數(shù)組char*p[2]后,程序中第一個(gè)循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個(gè)指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p[1]元素指向二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對(duì)應(yīng)關(guān)系,以后對(duì)二維數(shù)組ch的某個(gè)元素的引用就有兩種等價(jià)的形式:ch[i][j]或p[i][j]。②對(duì)二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串“693

16.A

17.A解析:本題考核的知識(shí)點(diǎn)是通過指針引用數(shù)組的元素的方法.本題中首先定義了一個(gè)一維數(shù)組a并初始化,由于定義該數(shù)組的時(shí)候省略了長(zhǎng)度,因此該數(shù)組的長(zhǎng)度為初始化時(shí)候賦初值的個(gè)數(shù)即為12。數(shù)組名a代表數(shù)組的首地址,所以*p=a+5語句使得p指向數(shù)組的第6個(gè)元素,而在程序中定義了一個(gè)指針q并讓它指向空,實(shí)際上程序并沒有在內(nèi)存中為指針q開辟存儲(chǔ)空間,這樣給q賦值不允許的,故該程序運(yùn)行后報(bào)錯(cuò)。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

18.A

19.A

20.AC語言規(guī)定定義數(shù)組時(shí),數(shù)組的長(zhǎng)度必須是整型常量,數(shù)組說明符的方括號(hào)中表達(dá)式只要是常量即合法,因此選項(xiàng)B錯(cuò)誤。C語言規(guī)定,數(shù)組元素下標(biāo)必須是非負(fù)整數(shù),因此選項(xiàng)C錯(cuò)誤。選項(xiàng)D中,“chararray[4]”數(shù)組的長(zhǎng)度為4,“army[“3”]”中“3”是常量字符串,與C語言規(guī)定數(shù)組的下標(biāo)必須是非負(fù)整數(shù)不符。故本題答案為A選項(xiàng)。

21.測(cè)試實(shí)例測(cè)試實(shí)例解析:進(jìn)行軟件測(cè)試時(shí),應(yīng)精心設(shè)計(jì)測(cè)試實(shí)例和選擇測(cè)試數(shù)據(jù),以對(duì)系統(tǒng)進(jìn)行全面測(cè)試。

22.xx解析:考查函數(shù)的調(diào)用。函數(shù)調(diào)用時(shí),實(shí)參與形參一致,函數(shù)F只有一個(gè)形參,故函數(shù)的調(diào)用為F(x)。

23.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點(diǎn):①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后一個(gè)字符;②str[i]代表字符串str中的第i+1個(gè)字符;③整型變量num的值是要記錄的單詞的個(gè)數(shù)。C語言中規(guī)定字符串的最后一個(gè)字符是一個(gè)隱含的字符串結(jié)束符“\\0”,所以在題中第一個(gè)空中應(yīng)填寫“\\0”;題中第二個(gè)空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個(gè)空中應(yīng)當(dāng)填寫“num++”,通過變量num的加1累加得到字符串中的單詞個(gè)數(shù)。

24.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。

25.1212解析:本題的第—個(gè)for循環(huán)用于紿數(shù)組arr賦初值,第二個(gè)for循環(huán)用于求和運(yùn)算。由于第二個(gè)for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。

26.k=k*ik=k*i解析:本題中遺過for循環(huán)求s表達(dá)式中每一項(xiàng)的和,表達(dá)式“fac=fac/k;”求的是每—項(xiàng)的值,所以k的值應(yīng)為n!,在求n!的時(shí)候,可以用上次循環(huán)階乘的值乘i,就可以直接得此次n!,故本題填k=k*i。

27.一對(duì)多一對(duì)多解析:實(shí)體之間的聯(lián)系有3類:一對(duì)一,一對(duì)多,多對(duì)多。設(shè)有兩個(gè)實(shí)體集E1和E2,如果E2中的每一個(gè)實(shí)體與E1中的任意個(gè)實(shí)體(包括零個(gè))有聯(lián)系,而E1中的每一個(gè)實(shí)體最多與E2中的一個(gè)實(shí)體有聯(lián)系,則稱這樣的聯(lián)系為“從E2到E1的一對(duì)多的聯(lián)系”,通常表示為“l(fā):n的聯(lián)系”。由此可見,工人和設(shè)備之間是一對(duì)多關(guān)系。

28.物理獨(dú)立性物理獨(dú)立性

29.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識(shí)點(diǎn):①在C語言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上字符串結(jié)束標(biāo)識(shí)符'\\0'所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

30.**p(p+i)

31.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,用*(str+i)或str[i]來訪問字符串的第i個(gè)元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+i)的值為'\\0'為止。

32.變換型變換型

33.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個(gè)度為1的結(jié)點(diǎn)。因此,設(shè)一棵完全二叉樹具有n個(gè)結(jié)點(diǎn),若n為偶數(shù),則在該二叉樹中有n/2個(gè)葉子結(jié)點(diǎn)以及n/2-1個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn):若n為奇數(shù),則在該二叉樹中有[n/2]+1個(gè)葉子結(jié)點(diǎn)以及[n/2]個(gè)度為2的結(jié)點(diǎn),沒有度為1的結(jié)點(diǎn)。本題中,完全二叉樹共有700個(gè)結(jié)點(diǎn),700是偶數(shù),所以,在該二叉樹中有350個(gè)葉子結(jié)點(diǎn)以及349個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn)。所以,本題的正確答案為350。

34.261261解析:在控制格式符中“O”代表的是將數(shù)據(jù)按八進(jìn)制輸出,十進(jìn)制數(shù)的177代表的八進(jìn)制數(shù)是261,所以該空格處應(yīng)該填寫261。

35.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算。運(yùn)算過程為:t=POW(x+y)=(2+3)*(2+3)=25。

36.0111201112解析:在主函數(shù)中定義了整型變量f1和f2,并把其值賦為0和1,在屏幕上輸出。然后在第一次運(yùn)行for循環(huán)語句時(shí),變量f的值等于1,把其值輸出,把變量f1的值0賦給變量f2,變量f的值1賦給n,在執(zhí)行第二次for循環(huán)語句時(shí),變量f的值等于1,把此值輸出。然后再把變量f1的值1賦給變量f2,變量f的值1賦給f1,在執(zhí)行第三次for循環(huán)語句時(shí),變量f的值等于2,把此值輸出。所以程序運(yùn)行后的結(jié)果為01112。

37.2828解析:a*=16+(b++)-(++c)等價(jià)于a=a*(16+(b++)-(++c)),b++的值為3;++c的值為5,請(qǐng)注意前綴++和后綴++的用法。

38.前趨結(jié)點(diǎn)后繼結(jié)點(diǎn)前趨結(jié)點(diǎn)\r\n后繼結(jié)點(diǎn)

39.存儲(chǔ)結(jié)構(gòu)

40.010111212010111212解析:本題考查的是靜態(tài)局部變量的運(yùn)用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長(zhǎng)到程序運(yùn)行結(jié)束。本題的主函數(shù)中使用一個(gè)for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒被修改過,所以三次調(diào)用的都是fun(5)。第1次調(diào)用,b=0,c=3,所以返回值為5+1+4=10;第2次調(diào)用,因?yàn)閏是靜態(tài)局部變量,它仍然保存著上次調(diào)用結(jié)束時(shí)的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調(diào)用返回的是12。所以,程序最終輸出為:010111212。

41.D解析:在題中,i的值為3,由于“case3:”后面沒有break語句,所以繼續(xù)向下執(zhí)行“case4:”后面的語句,由于“case4:”后面的語句為break強(qiáng)行退出switch語句,所以,本題沒有任何輸出。

42.D解析:在C語言中,定義一維數(shù)組的語句一般形式如下:

類型名數(shù)組名[常量表達(dá)式];

一維數(shù)組的引用形式為:數(shù)組名[下標(biāo)表達(dá)式]。count表示能被2整除或被5整除的個(gè)數(shù),i則計(jì)算有多少個(gè)數(shù)組元素。

43.C解析:靜態(tài)局部變量在編譯時(shí)賦初值,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,而對(duì)自動(dòng)變量賦初值,不是在編譯時(shí)進(jìn)行的,而在函數(shù)調(diào)用時(shí)進(jìn)行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時(shí),d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時(shí)d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。

44.A解析:當(dāng)邏輯或運(yùn)算符兩邊的運(yùn)算對(duì)象至少有一個(gè)為1時(shí),整個(gè)邏輯表達(dá)式的值是1;如果兩邊的運(yùn)算對(duì)象都為0,則整個(gè)邏輯表達(dá)式的值為0。題中!x=0,--y=0,所以整個(gè)表達(dá)式的值是0。

45.D解析:在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)關(guān)系。即關(guān)系模型是用表格數(shù)據(jù)來表示實(shí)體本身及其相互之間的聯(lián)系。本題的正確答案是D。

46.A隊(duì)列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊(duì)尾”,刪除元素的一端叫“隊(duì)頭”。先插入的元素先被刪除,是按“先進(jìn)先出”的原則組織數(shù)據(jù)的。

【知識(shí)拓展】“隊(duì)列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊(duì)列”,其形式如“排隊(duì)”。要講究“先來后到”,先進(jìn)先出,后進(jìn)后出。

47.B解析:當(dāng)外層循環(huán)為i時(shí),內(nèi)層循環(huán)i只能取j=i,所以s+=a[i][a[j][j]],其實(shí)就是s+=a[i][a[i][i]],當(dāng)i=0時(shí),s=s+a[0][a[01[0]]=s+a[0][0]=1,當(dāng)i=1時(shí),s=s+a[1][a[1][1]1=s+a[1][1]=1+1=2,當(dāng)i=2時(shí),s=s+a[2][a[2][2]]=s+a[2][2]=2+2=4。

48.B解析:指針a通過數(shù)組元素下標(biāo)來從頭逐個(gè)的引用字符串item中的字符,判斷不是0~9之間的數(shù)字時(shí),就去掉這個(gè)字符,所以程序結(jié)束后,字符串item中就只剩下34兩個(gè)字符了。注意:形參為指針變量時(shí),實(shí)參和形參之間的數(shù)據(jù)傳遞。

49.D解析:程序首先定義了一個(gè)文件指針fp,并使用fopen()數(shù)以'w+'方式新建一個(gè)可讀寫文件'data.daf'.然后使用一個(gè)for循環(huán),循環(huán)變量i從1遞增到5,在循環(huán)體中每次寫入循環(huán)變量i的值和4個(gè)空格,當(dāng)i能被3整除的時(shí)候?qū)懭胍粋€(gè)換行符。所以循環(huán)結(jié)束時(shí),文件中的內(nèi)容應(yīng)該為:

123

45

接下來程序使用rewind()函數(shù),將文件的讀寫指針調(diào)回起始位置。并調(diào)用fscanf()函數(shù)從文件中讀取兩個(gè)整數(shù)到變量k和n。所以最終輸出應(yīng)該為:12。故本題選D。

50.C解析:軟件測(cè)試的目的:盡可能地多發(fā)現(xiàn)程序中的錯(cuò)誤,不能也不可能證明程序沒有錯(cuò)誤,軟件測(cè)試是一個(gè)發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。軟件調(diào)試的目的是發(fā)現(xiàn)錯(cuò)誤的位置,并改正錯(cuò)誤。

51.D解析:40000已經(jīng)超過了C語言規(guī)定的短整型的范圍。要將這樣的數(shù)賦值給一個(gè)長(zhǎng)整型變量,需要在整型常量后面加字母L。

52.D解析:面向?qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象、類、封裝、繼承、多態(tài)和消息等概念來構(gòu)造、測(cè)試、重構(gòu)軟件的方法。面向?qū)ο蠓椒◤膶?duì)象出發(fā),發(fā)展出對(duì)象、類、消息、繼承等概念。

53.D解析:在C語言的標(biāo)準(zhǔn)中,short占2個(gè)字節(jié)、long占4個(gè)字節(jié),但int的大小和編譯系統(tǒng)相關(guān)。例如在Turbo\u3000C\u30002.0中,int占2個(gè)字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個(gè)字節(jié)。故本題應(yīng)該選擇D。

54.C解析:該題目考查對(duì)if-elseif結(jié)構(gòu)的理解。由于x的值滿足x<10.0的關(guān)系,所以程序執(zhí)行y=1.0/x;語句,y的值等于0.5。用printf函數(shù)按%f格式輸出時(shí),結(jié)果為小數(shù)點(diǎn)后保留6位。

55.A

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

57.B解析:主函數(shù)中先定義了一個(gè)整型變量a,一個(gè)字符變量c并賦初值10,一個(gè)浮點(diǎn)型變量f并賦初值100.00和一個(gè)double型x,接著執(zhí)行a=f/=c*=(x=6.5),該語句從右向左計(jì)算,先把6.5賦值給x(該括號(hào)表達(dá)式的值也為6.5),此時(shí)x的值變?yōu)?.5,然后執(zhí)行c*=(x=6.5)相當(dāng)于執(zhí)行c=c*(x=6.5),此時(shí)c的值為65,接著向左執(zhí)行f/c*=(x=6.5),語句相當(dāng)于執(zhí)行f=f/c,所以f的值為100/65≈1.538。接著向最右邊執(zhí)行“a=f”,由于a是整型變量,所以a最后去f的整數(shù)部分為1。程序最后輸出的a、c、f和x的值(f和x只保留小數(shù)點(diǎn)后面1位)分別為1、65、1.5、6.5。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

58.B解析:本題考查的是指針函數(shù)。指針函數(shù)定義的基本格式為:類型說明符(*函數(shù)名)()。其中,類型說明符表示返回的指針值指向的數(shù)據(jù)類型。

59.A解析:局部變量在執(zhí)行到它所在的程序塊時(shí)產(chǎn)生,執(zhí)行完時(shí)被摧毀,而靜態(tài)局部變量的生存期將一直延長(zhǎng)到程序運(yùn)行結(jié)束,故選項(xiàng)A正確;全局變量的只有一種靜態(tài)存儲(chǔ)類別,故全局變量說明為static存儲(chǔ)類,和沒有說明為static存儲(chǔ)類其生存期都是一直延長(zhǎng)到程序運(yùn)行結(jié)束,故選項(xiàng)B不正確:未賦初值的局部變量的初值是隨機(jī)的,故選項(xiàng)C不正確;形參只能是一般局部變量,不能使用任何存儲(chǔ)類說明符,故選項(xiàng)D不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

60.D解析:程序首先定義了一個(gè)文件指針fp,并使用fopen()函數(shù)以“w+”方式新建一個(gè)可讀寫文件“data.dat”。然后使用一個(gè)for循環(huán),循環(huán)變量i從1遞增到5,在循環(huán)體中每次寫入循環(huán)變量i的值和4個(gè)空格,當(dāng)i能被3整除的時(shí)候?qū)懭胍粋€(gè)換行符。所以循環(huán)結(jié)束時(shí),文件中的內(nèi)容應(yīng)該為:

123

45

接下來程序使用rewind()函數(shù),將文件的讀寫指針調(diào)回起始位置。并調(diào)用fscanf()函數(shù)從文件中讀取兩個(gè)整數(shù)到變量k和n。所以最終輸出應(yīng)該為:12。故本題選D。

61.BB?!窘馕觥吭跅V校试S插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。

62.A本題考查的是函數(shù)的地址調(diào)用,將數(shù)組名作為數(shù)組首地址進(jìn)行傳遞,然后取首個(gè)數(shù)組元素值進(jìn)行加l運(yùn)算,循環(huán)5次。因此A選項(xiàng)正確。

63.C

64.D

65.B關(guān)系之間的操作分為自然連接、投影、交、并、差等,由圖可知此操作為差操作。

66.A

\n當(dāng)執(zhí)行g(shù)ets(ss)后,ss數(shù)組中的元素為ABC,再執(zhí)行strcat(ss,'6789'),strcat的作用,是把6789連接到了ss數(shù)組后面,執(zhí)行完后SS數(shù)組為ABC6789,故選擇A選項(xiàng)。

\n

67.C

68.CC語言規(guī)定,一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)(即被調(diào)用函數(shù))需要具備的條件有:

①被調(diào)用的函數(shù)必須是已經(jīng)存在的函數(shù)(是庫函數(shù)或用戶自己定義的函數(shù))。

②如果使用庫函數(shù),一般還應(yīng)該在本文件開頭用#include命令將函數(shù)調(diào)用有關(guān)庫函數(shù)時(shí)所需要的信息“包含”到本文件中。

③如果使用自定義函數(shù),而且該函數(shù)與調(diào)用它的函數(shù)在同一個(gè)文件中,一般還應(yīng)該在主調(diào)函數(shù)中對(duì)被調(diào)用的函數(shù)做聲明,即向編譯系統(tǒng)聲明將要調(diào)用此函數(shù),并將有關(guān)信息通知編譯系統(tǒng)。

在本題中,選項(xiàng)C是不正確的,從程序中我們可以看出,首先在主函數(shù)前面聲明了函數(shù)f,按照函數(shù)調(diào)用的規(guī)則,主函數(shù)可以調(diào)用該函數(shù)了,但在主函數(shù)中又重復(fù)聲明了該函數(shù),其聲明的形式完全一樣,雖然重復(fù)了操作,但編譯時(shí)系統(tǒng)不會(huì)報(bào)錯(cuò),仍屬于合理操作。

69.A變量命名規(guī)范:由字母、數(shù)字、下劃線組成,且數(shù)字不作為開頭。所以A)錯(cuò)誤。

70.C選項(xiàng)中的四個(gè)表達(dá)式執(zhí)行后,m的值都遞增1。選項(xiàng)c)中,表達(dá)式的值是m遞增前的值,為0。選項(xiàng)A)、B)、D)中,表達(dá)式的值都是m遞增后的值,為1。

71.C\n本題考查了兩層for循環(huán)。外層循環(huán)增量i的值作為內(nèi)層循環(huán)執(zhí)行次數(shù)的值使用。

\n

72.D在程序中指針變量P初始指向a[3],執(zhí)行P減1后,P指向a[2],語句y=*P的作用是把a(bǔ)[2]的值賦給變量y,所以輸出為y=3。

73.C

74.C

75.A因?yàn)樾懽址鸻,b,c的ASCIl碼值分別為97,98,99,而在dowhile循環(huán)語句中,每次對(duì)字符的ASCII碼值取余數(shù)并輸出,所以分別輸出7,8,9。

76.D本題考查的是文件的綜合應(yīng)用。本題首先以創(chuàng)建方式打開文件”d2.dat”,兩次調(diào)用fprintf函數(shù)把a(bǔ)[O],a[1],a[2],a[3],a[4],a[5]的值寫到文件”d2.d8t”中,文件”d2.dat”的內(nèi)容為:1,2,3<回車>4,5,6。然后把該文件關(guān)閉再以只讀方式打開,文件位置指針指向文件頭,再通過fs-canf函數(shù)從中讀取兩個(gè)整數(shù)到k和n中,由于格式符之間無間隔,因此輸入數(shù)據(jù)可以用回車隔開,故輸入的k的值為123,n的值為456。

77.DA選項(xiàng)中整型常量應(yīng)表示為1200,不能包含“?!?。B選項(xiàng)中E后面的指數(shù)必須為整數(shù)。C選項(xiàng)中轉(zhuǎn)義字符以“、”開始,若要表示字符“、”,應(yīng)寫為“、、”。

78.A算法的特性;可行性,有窮性,確定性,有輸入和輸出。算法的可行性就是要求算法在有限步驟之后能夠達(dá)到預(yù)期的目的。確定性要求算法每一個(gè)步驟都必須明確,無歧義,有窮性是指算法在不能無限制地執(zhí)行下去。

79.B

80.D

81.(1)錯(cuò)誤:proc(intn)

正確:doubleproc(intn)

(2)錯(cuò)誤:c=a;a+=b;b+=C;

正確:c=a;a+=b;b=c;

【解析】由main()函數(shù)中的proc()函數(shù)調(diào)用可知,函數(shù)proc()的返回值為double型數(shù)據(jù)。因此,“proc(intn)”應(yīng)改為“doubleproc(intn)”。根據(jù)數(shù)列的特點(diǎn)可知,下一項(xiàng)的分子是上一項(xiàng)的分子和分母之和,下一項(xiàng)的分母為上一項(xiàng)的分子。根據(jù)數(shù)列的這個(gè)特點(diǎn),“c=a;a+=b;b+=c;”應(yīng)改為“c=a;a+=b;b=c;”。

82.

【解析】在fun()函數(shù)中,首先求行字符串的長(zhǎng)度,然后通過循環(huán)進(jìn)行字符交換。要注意的是,如果字符串長(zhǎng)度是奇數(shù),則最中間的元素在逆置前后的位置是沒有改變的。

2021-2022年河南省許昌市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.若有定義:floatx=1.5;inta=1.b=3.c=2;則正確的switch語句是()。A.

B.

C.

D.

2.在一個(gè)鏈?zhǔn)疥?duì)列中,假設(shè)f和r分別為隊(duì)頭和隊(duì)尾指針,則插入S所指結(jié)點(diǎn)的運(yùn)算是()。

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

B.r->next=s;r=s;

C.S->next=rr=s;

D.r->next=f;f=s;

3.下面程序輸出的結(jié)果是main(){intx;x=-3+4*5-6;printf("%d",x);x=3+4%5-6;printf("%d",x);x=-3+4%6/5;printf("%d",x);x=(7+6)%5/2;printf("%d",x);}

A.111-31B.11-321C.12-321D.11121

4.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

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

1234

678

1112

16

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

A.i-1B.iC.i+1D.4一i

5.

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

A.形參可以是常量、變量或表達(dá)式

B.實(shí)參可以是常量、變量或表達(dá)式

C.實(shí)參的類型應(yīng)與形參的類型賦值兼容

D.實(shí)參的個(gè)數(shù)應(yīng)與形參的個(gè)數(shù)一致

7.有以下程序:#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);}程序的運(yùn)行結(jié)果是()。

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

8.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個(gè)關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個(gè)位置。

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

9.以下不屬于C語言整數(shù)的是()。

A.12fB.25uC.-32D.+20L

10.輸入序列為ABC,輸出為CBA時(shí),經(jīng)過的棧操作為()。

A.push,pop,push,pop,push,pop

B.push,push,push,pop,pop,pop

C.push,push,pop,pop,push,pop

D.push,pop,push,push,pop,pop

11.線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。已知指針p所指結(jié)點(diǎn)不是尾結(jié)點(diǎn),若在*p之后插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列()操作。

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

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

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

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

12.有以下程序intf(intA){returna%2;}main(){ints[8]={1,3,5,2,4,6),i,d=0;for(i=0;f(s[i];i++)d+=s[i];printf("%d\n",D);}程序運(yùn)行后的輸出結(jié)果是

A.9B.11C.19D.21

13.設(shè)計(jì)軟件結(jié)構(gòu)是在軟件生命周期的()。

A.軟件定義期B.軟件開發(fā)期C.軟件維護(hù)期D.以上3個(gè)都不是

14.下列程序的輸出結(jié)果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

15.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是

A.69825B.63825C.6385D.693825

16.下面程序段的時(shí)間復(fù)雜度為()。

A.O(n)B.O(n2)C.O(1)D.O(nlog2n)

17.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是______。

A.運(yùn)行后報(bào)錯(cuò)B.66C.611D.510

18.棧的特點(diǎn)是B,隊(duì)列的特點(diǎn)是()。

A.先進(jìn)先出B.先進(jìn)后出

19.

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

A.“charc1,*c2,*c3[10];”是合法的變量定義語句

B.數(shù)組說明符的方括號(hào)中不能使用表達(dá)式

C.數(shù)組元素下標(biāo)可以是非整數(shù)

D.若有定義“chararray[4];”,則語句“printf(“%c”,array[“3”]);”是合法的

二、2.填空題(20題)21.軟件測(cè)試是保證軟件質(zhì)量的重要手段,而軟件測(cè)試的主要和重要的測(cè)試方法是通過測(cè)試數(shù)據(jù)和【】的設(shè)計(jì)來實(shí)現(xiàn)。

22.以下程序通過函數(shù)SunFun求。這里f(x)=x2+1,由F函數(shù)實(shí)現(xiàn)。請(qǐng)?zhí)羁铡?/p>

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{returnx*x+1;}

23.下述函數(shù)用于統(tǒng)計(jì)一行字符中的單詞個(gè)數(shù),單詞之問用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fot(i=0;str[i]!=【】;i++)

if【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

24.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。

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

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

26.以下函數(shù)的功能是計(jì)算s=1+1/21+1/3!+…+1/n!,請(qǐng)?zhí)羁铡?/p>

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k;

s=s+fac;

}

}

27.如果一個(gè)工人可管理多個(gè)設(shè)備,而一個(gè)設(shè)備只被一個(gè)工人管理,則賣體“工人”與實(shí)體“設(shè)備”之間存在【】關(guān)系。

28.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu)、存取方式等)改變時(shí),不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。

29.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

30.以下程序的功能是輸出字符串。請(qǐng)?zhí)羁铡?/p>

main()

{char*a[]={"Pascal","Clanguage","dbase","Cobol"};

char【】;

intj=0;

p=a;

for(;j<4;j++)

print{("%s\n",*【】);

}

31.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

intmystden(char*str)

{inti;

fo,(i=0;【】!='\0';i++);

return(i);

32.數(shù)據(jù)流的類型有______和事務(wù)型。

33.設(shè)一棵完全二叉樹共有700個(gè)結(jié)點(diǎn),則在該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。

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

main()

{inta=177;

printf("%o\n",a);

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

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

36.以下程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){intf,f1,f2,i;f1=0;f2=1;printf("%d%d",f1,f2);for(i=3;i<=5;i++){f=-f1+f2,printf("%d",f);f2=f1;f1=f;}printf("\n");}

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

main()

{inta=2,b=3,c=4;

a*=16+(b++)-(++c);

printf("%d",a);

}

38.在雙鏈表中每個(gè)結(jié)點(diǎn)有兩個(gè)指針域:一個(gè)指向【】,另一個(gè)指向【】。

39.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

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

printf("\n");

}

三、1.選擇題(20題)41.下列程序的輸出結(jié)果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}

A.0B.3C.OKD.沒有任何輸出

42.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為

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

43.以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

44.設(shè)intx=1,y=1;表達(dá)式(!x||--y)的值是()。

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

45.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體之間聯(lián)系的是

A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表

46.按照“先進(jìn)先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。

A.隊(duì)列B.棧C.雙向鏈表D.二叉樹

47.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)s+=a[i][a[j][j]];printf("%d\n",s);}

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

48.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>voiddelch(char*s){inti,j;char*a;a=s;for(i=0,j=0;a[i]!='\0';i++)if(a[i]>='0'&&a[i]<='9'){s[j]=a[i];j++;}s[j]='\0';}main(){char*item="a34bc";delch(item);printf("\n%s",item);}

A.abcB.34C.a34D.a34bc

49.有以下程序#include<stdio.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dar","w+");for(i=1;i<6;i++){fprintf(fp,"%d",1);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf.("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是

A.00B.12345C.14D.12

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

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

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

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

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

51.在16位C編譯系統(tǒng)中,若定義longa;則能給a賦值40000的正確語句是()。

A.a=2000p+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;

52.下面的概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。

A.對(duì)象B.繼承C.類D.過程調(diào)用

53.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),

A.均占4個(gè)字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定

54.有如下程序:#include<stdio.h>main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序的輸出結(jié)果是()。

A.0B.0.25C.0.5D.1

55.下述程序段的輸出結(jié)果是()intx=10;inty=x++;printf("%d,%d",(x++,y),y++);

A.11,10B.11,11C.10,10D.10,11

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

A.return表達(dá)式;

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

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

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

57.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序運(yùn)行后的輸出結(jié)果是______。

A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5

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

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

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

A.局部變量說明為static存儲(chǔ)類,其生存期將得到延長(zhǎng)

B.全局變量說明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大

C.任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的

D.形參可以使用的存儲(chǔ)類說明符與局部變量完全相同

60.有以下程序:#include<stdio.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dar","w+");for(i=1;i<6;i++){fprintf(fp,"%d",i);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是()。

A.00B.12345C.14D.12

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

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

62.有以下程序

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

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

63.

64.

65.有3個(gè)關(guān)系R、S和T如下.

則由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.差C.交D.并

66.

當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABC,則輸出結(jié)罘是()。

#include<stdio.h>

#include<string.h>

main()

{charss[10]="1,2,3,4,5":

gets(ss);strcat(ss,"6789");printf("%s\n",ss);

}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

67.在JavaScript語言中,要定義局部變量則可以()。

A.由關(guān)鍵字private在函數(shù)內(nèi)定義

B.由關(guān)鍵字private在函數(shù)外定義

C.由var在函數(shù)內(nèi)定義

D.由關(guān)鍵字var在函數(shù)外定義

68.若有以下程序

#include<stdio.h>

voidf(intn);

main()

{

voidf(intn);

f(5);

}

voidf(intn)

{

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

}

則以下敘述中不正確的是

A.若只在主函數(shù)中對(duì)函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f

B.若在主函數(shù)前對(duì)函數(shù)f進(jìn)行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)f

C.對(duì)于以上程序,編譯時(shí)系統(tǒng)會(huì)提示出錯(cuò)信息:對(duì)f函數(shù)重復(fù)說明

D.函數(shù)f無返回值,所以,可用void將其類型定義為無返回值型

69.下列定義變量的語句中錯(cuò)誤的是()。

70.設(shè)有定義:intm=0;。以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是()。

A.++mB.m+=1C.m++D.m+1

71.有以下程序:

#include<stdio.h>

main()

{intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;

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

for(j=1;j<=i;j++)t+=b[i][b[j][i]];

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

}

程序運(yùn)行后的

溫馨提示

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