2021-2022年山東省臨沂市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第1頁(yè)
2021-2022年山東省臨沂市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第2頁(yè)
2021-2022年山東省臨沂市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第3頁(yè)
2021-2022年山東省臨沂市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第4頁(yè)
2021-2022年山東省臨沂市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年山東省臨沂市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序:#include<stdio.h>main(){char*p=“6938”;inti,s=0;for(i=3;i>=0;i--)s=10*s+p[i]-‘0’;printf(“%d\n”,s);}程序運(yùn)行后的輸出結(jié)果是()。

A.8396B.6938C.3869D.3689

2.棧這種數(shù)據(jù)結(jié)構(gòu)一般應(yīng)用在()。

A.遞歸調(diào)用B.子程序調(diào)用C.表達(dá)式求值D.A,B,C

3.若輸入“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"

4.若要判斷char型變量c中存放的是否為小寫(xiě)字母,以下正確的表達(dá)式是()。A.'a'<=c<='z'

B.(c>='a')&&(c<='z')

C.(c>='a')‖(c<='z')

D.('a'<=c)AND('z'>=c)

5.以下選項(xiàng)中,值為1的表達(dá)式是()。

A.1-‘0’B.1-‘\0’C.‘1’-0D.‘\0’-‘0’

6.以下選項(xiàng)中,合法的一組C語(yǔ)言數(shù)值常量是()。

A.12.0Xa234.5e0

B.028.5e-3-0xf

C..1774e1.50abc

D.0x8A10,0003.e5

7.在一個(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;

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

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

9.

10.設(shè)有定義:structcomplex{intreal,unreal;}data1={1,8},data2;則下列賦值語(yǔ)句中錯(cuò)誤的是()。

A.data2=(2,6);

B.data2=data1;

C.data2.real=data1.real;

D.data2.real=data1.unreal;

11.下列敘述中錯(cuò)誤的是()。

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

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

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

D.函數(shù)的return語(yǔ)句中可以沒(méi)有表達(dá)式

12.

13.有以下程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;for(;j<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i]);printf("\n");}如果從鍵盤(pán)上輸入:ab<回車>c<回車>def<回車>則輸出結(jié)果為_(kāi)_____。

A.abcdefB.abcdC.abcdD.abcdef

14.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達(dá)式a/b+c-k值的類型為:

A.intB.doubleC.floatD.char

15.某二叉樹(shù)的前序和后序序列正好相反,則該二叉樹(shù)一定是_____的二叉樹(shù)

A.空或者只有一個(gè)結(jié)點(diǎn)B.高度等于其結(jié)點(diǎn)數(shù)C.任一結(jié)點(diǎn)無(wú)左孩子D.任一結(jié)點(diǎn)無(wú)右孩子

16.有定義:“inta=2,b=3,c=4;”,則下列選項(xiàng)中值為0的表達(dá)式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)

17.下列排序方法中,()方法的比較次數(shù)與記錄的初始排列狀態(tài)無(wú)關(guān)。

A.直接插入排序B.冒泡排序C.快速排序D.直接選擇排序

18.下列哪個(gè)算法是對(duì)一個(gè)list排序的最快方法()

A.快速排序B.冒泡排序C.二分插入排序D.線性排序

19.以下正確的字符串常量是()。

A."\\\"B.abcC.OlympicGamesD.""

20.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

二、2.填空題(20題)21.以下程序運(yùn)行后的輸出結(jié)果是______。

main()

{chara[]="Language",b[]="Programe";

char*p1,*p2;

intk;

p1=a;p2=b;

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

if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));

}

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

23.若有如下結(jié)構(gòu)體說(shuō)明:

structSIRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請(qǐng)?zhí)羁?,以完成?duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。

【】t[20]

24.若有定義:inta=4,b=5,c=6;然后順序執(zhí)行下列語(yǔ)句后,變量b中的值是()。c=(a-=(b-5));c=(a%3)+(b=1);

25.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。

26.設(shè)y為血型變量,請(qǐng)寫(xiě)出描述“y是偶數(shù)”的表達(dá)式______。

27.在對(duì)文件進(jìn)行操作的過(guò)程中,若要求文件的位置回到文件的開(kāi)頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】函數(shù)。

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

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;

sub(s,7,SIZE-1);

for(I=0;I<SIZE;I++)printf("%c",s[I]);

printf("\n");}

sub(char*a,intt1,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

29.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),隊(duì)列屬于______。

30.函數(shù)delete(s,i,n)是作用是從字符串s中刪除從第i個(gè)字符開(kāi)始的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';

}

31.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)s等于t時(shí)返回0,否則返回s和t的第一個(gè)不同字符的ASCII碼差值,即s>t時(shí)返回正值,當(dāng)s<t時(shí)返回負(fù)值。請(qǐng)?zhí)羁铡?/p>

my_cmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}return【】;

}

32.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。

33.下面的程序可對(duì)指定字符串進(jìn)行從大到小排序,請(qǐng)將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

34.數(shù)據(jù)庫(kù)管理系統(tǒng)常見(jiàn)的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

35.要求使下列程序輸出5個(gè)整數(shù),請(qǐng)?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

36.診斷和改正程序中錯(cuò)誤的工作通常稱為【】。

37.下面的程序用來(lái)統(tǒng)計(jì)文件中字符的個(gè)數(shù)。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fP;

longnum=0;

if((fp=fopen("fname.dat","r"))==NULL)

{printf("Can'topenfile!\n");sxit(0);}

while【】

{fgetc(fp);num++;}

printr("num=%d\n",num);

fclose(fp);

}

38.在宏定義#definePI3.14159中,用宏名PI代替一個(gè)______。

39.設(shè)有以下程序:

main()

{inta,b,k=4,m=6,*p1=&k,*p2=&m;

a=p1=&m;

b=(*p1)/(*p2)+7;

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

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

}

執(zhí)行該程序后,a值為【】,b值為【】。

40.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。

例如,輸入字符串:abc123edf456gh,執(zhí)行程序后輸出:123456。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

三、1.選擇題(20題)41.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0;m++;break;}}printf("%d\n",m);}程序運(yùn)行后的輸出結(jié)果是()。

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

42.有以下程序

#include<stdio.h>

main()

{inti,j,m=55;

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

for(j=3;j<=i;j++)m=m%j;

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

}

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

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

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

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

44.若運(yùn)行時(shí)給變量x賦值12,則以下程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}

A.0B.22C.12D.10

45.若有定義inta[9],*p=a;則p+5表示

A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5

46.以下說(shuō)法不正確的是

A.C程序中必須有一個(gè)main()函數(shù),C程序是從main()函數(shù)的第1條語(yǔ)句開(kāi)始執(zhí)行的。

B.非主函數(shù)都是在執(zhí)行主函數(shù)時(shí),通過(guò)函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的。

C.C程序中的main()函數(shù)必須放在程序的開(kāi)始位置。

D.C程序中的main()函數(shù)位置可以任意指定。

47.設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為_(kāi)_____。A.EOFB.非0值C.0D.NULL

48.下列用于printf函數(shù)的控制字符常量中,代表“豎向跳格”的轉(zhuǎn)義字符常量是()。

A.\bB.\tC.\vD.\f

49.在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是______。

A.程序結(jié)構(gòu)應(yīng)有助于讀者理解B.不限制goto語(yǔ)句的使用C.減少或取消注解行D.程序越短越好

50.下列敘述中,不屬于測(cè)試的特征的是

A.測(cè)試的挑剔性B.完全測(cè)試的不可能性C.測(cè)試的可靠性D.測(cè)試的經(jīng)濟(jì)性

51.若有如下定義:intx=6,y=3,z=2;則表達(dá)式“x=y||y<z&&z==z”的值是()。

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

52.下面程序中有錯(cuò)誤的行是()。(每行程序前面的數(shù)字表示符號(hào))1main()2{3inta[3]={1};4inti;5scanf("%d",&a);6for(i-1;i<3;i++)a[0]=a[0]+a[i];7printf("a[0]=%d\n,"a[0]);8}

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

53.有以下程序:main(){inti=10,j=1;printf("%d,%d\n",i--,++j);}執(zhí)行后輸出結(jié)果是()。

A.9,2B.10,2C.9,1D.10,1

54.若有說(shuō)明:inta[][3]={0,0};則不正確的敘述是()。

A.數(shù)組a的每個(gè)元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

55.若運(yùn)行以下程序時(shí),從鍵盤(pán)輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是#include<stdio.h>main(){charc;intv0=1,v1=0,v2=0;do{switch(c=getchar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':v1+=1default:v0+=1;v2+=1;}}while(c!='\n');printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=13,v1=4,v2=12

56.下列選項(xiàng)中不屬于軟件生命周期開(kāi)發(fā)階段任務(wù)的是()。

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

57.棧和隊(duì)列的共同點(diǎn)是()。

A.都是先進(jìn)后出B.都是先進(jìn)先出C.只允許在端點(diǎn)處插入和刪除元素D.沒(méi)有共同點(diǎn)

58.在位運(yùn)算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2

B.操作數(shù)除以2

C.操作數(shù)除以4

D.操作數(shù)乘以4

59.有以下程序:#include<stdio.h>main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%d\n",n);}程序執(zhí)行后的輸出結(jié)果是()。

A.n=5B.n=2C.n=3D.n=4

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

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

四、選擇題(20題)61.

62.

63.

64.

65.有以下程序:

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

A.Beijing!

B.toBeijing]

C.WelcomeyoutoBeijingI

D.youtoBeijingI

66.

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

A.列表框和組合框都有List屬性

B.列表框有Selected屬性,而組合框沒(méi)有

C.列表框和組合框都有Style屬性

D.組合框有Text屬性,而列表框沒(méi)有

68.

69.(38)索引屬于()

A.模式

B.內(nèi)模式

C.外模式

D.概念模式

70.

71.有以下定義:inta;longb;doublex,y;則以下選項(xiàng)中正確的表達(dá)式是()。

A.a%(int)(x-y)B.a=x!=y;C.(a*y)%bD.y=x+y=x

72.以下敘述不正確的是

A.分號(hào)是C語(yǔ)言的必要組成部分B.C程序的注釋可以寫(xiě)在語(yǔ)句的后面

C.函數(shù)是C程序的基本組成單位D.程序中可以有一個(gè)或多個(gè)main函數(shù)

73.有以下程序:

當(dāng)執(zhí)行程序時(shí)從鍵盤(pán)上輸入HelloBeijing<;回車>;,則程序運(yùn)行后的輸出結(jié)果是()。

A.hellobajiIlg

B.HelloBeijing

C.HELLOBEIJING

D.hELLOBeijing

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

A.intjnt;B.doubleint_;C.charFor;D.floatUS$;

75.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5

76.有以下程序

#include<stdio.h>

main()

{charb=2;

printf("%d\n",b=b<<3);

}

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

A.4B.8

C.16D.2000

77.

78.

79.有以下程序:main(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序運(yùn)行后的輸出結(jié)果是()。

A.-1B.65535C.32767D.-32768

80.為了避免嵌套的條件分支語(yǔ)句if—else的二義性,C語(yǔ)言規(guī)定:C程序中的else總是與_____組成配對(duì)關(guān)系。

A.縮排位置相同的ifB.在其之前未配對(duì)的ifC.在其之前未配對(duì)的最近的ifD.同一行上的if

五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是。用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第l項(xiàng)起,斐波拉契數(shù)列為:1、1、2、3、5、8、l3、21、……

例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為l3。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

六、程序設(shè)計(jì)題(1題)82.編寫(xiě)函數(shù)proc,它的功能是:計(jì)算和輸出下列級(jí)數(shù)的和。S=1/(12)+1/(23)+…+1/(n(n+1))例如,當(dāng)n=20時(shí),函數(shù)值為0.952381。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.A程序首先定義一個(gè)字符指針P,使其指向一個(gè)字符串“6938”。然后通過(guò)for循環(huán)使用逆序的方式遍歷字符串的各個(gè)字符,并將各個(gè)字符當(dāng)作整數(shù)參與算術(shù)運(yùn)算。其中,“p[i]-‘0’”的含義是將字符串中的數(shù)字字符轉(zhuǎn)換成對(duì)應(yīng)的整數(shù);“10*s+P[i]-‘0’”是將上一次運(yùn)算結(jié)果乘以10后與轉(zhuǎn)換后的整數(shù)相加,再累加到S中。所以for循環(huán)執(zhí)行完后,S的值是將字符串“6938”逆序后當(dāng)作整數(shù)輸出。故本題答案為A選項(xiàng)。

2.D

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

4.BC語(yǔ)言中,char型變量的值是其對(duì)應(yīng)字符的ASCII值,可以做比較運(yùn)算。由于小寫(xiě)字母的ASCII值按字母表的順序連續(xù)遞增,因此判斷char型變量c是不是小寫(xiě)字母時(shí),判斷c的ASCII值是否在’a’和’z’之間,即(c>=’a’)&&(c<=’z’)。本題答案為B選項(xiàng)。

5.B字符‘\\0’為空值,其ASCII值為0,所以B選項(xiàng)的值為1。字符‘0’的ASCII值為48,所以A、C、D選項(xiàng)的值均不為1。故本題答案為B選項(xiàng)。

6.AC語(yǔ)言中,八進(jìn)制整型常量以0開(kāi)頭,十六進(jìn)制整型常量以0x或0X開(kāi)頭。C語(yǔ)言中的實(shí)型常量有兩種表示形式:小數(shù)形式和指數(shù)形式。小數(shù)形式,表示的實(shí)型常量必須要有小數(shù)點(diǎn);指數(shù)形式,在e或E后加一個(gè)整數(shù)來(lái)表示以10為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B選項(xiàng)中“028”不合法,八進(jìn)制中沒(méi)有數(shù)字8。C選項(xiàng)中,e后面的指數(shù)不是整數(shù)。D選項(xiàng)中“10,000”數(shù)字之間不能有逗號(hào)。故本題答案為A選項(xiàng)。

7.B

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

9.D

10.AA選項(xiàng)中的語(yǔ)句可以在聲明變量的同時(shí)為data2賦值,賦值語(yǔ)句應(yīng)寫(xiě)作“data2={2,6};”。故本題答案為A選項(xiàng)。

11.B函數(shù)的值只能通過(guò)return語(yǔ)句返回主調(diào)函數(shù)。函數(shù)中允許有多個(gè)return語(yǔ)句,但每次只能調(diào)用一個(gè)return語(yǔ)句,因此只能返回一個(gè)函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說(shuō)明符為void。故本題答案為B選項(xiàng)。

12.C

13.C解析:1.getchar():此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符。

2.putchar():此函數(shù)的作用是向終端輸出一個(gè)字符,也可以輸出控制字符。本題在輸入字符時(shí),ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。

14.B解析:雙目運(yùn)算中兩邊運(yùn)算量類型轉(zhuǎn)換規(guī)律:

運(yùn)算數(shù)1運(yùn)算數(shù)2轉(zhuǎn)換結(jié)果類型

短整型長(zhǎng)整型短整型->長(zhǎng)整型

整型長(zhǎng)整型整型->長(zhǎng)整型

字符型整型字符型->整型

有符號(hào)整型無(wú)符號(hào)整型有符號(hào)整型->無(wú)符號(hào)整型

整型浮點(diǎn)型整型->浮點(diǎn)型

在a/b的時(shí)候,a、b的類型不一致,根據(jù)類型轉(zhuǎn)換規(guī)則,把整型轉(zhuǎn)換成double類型,之后的加、減類似。轉(zhuǎn)化規(guī)則為char,short->int->unsigned->long->double←float。

15.B

16.A本題考查邏輯與運(yùn)算“&&”與邏輯或運(yùn)算“||”。在選項(xiàng)A中,因?yàn)?a=0,所以關(guān)系表達(dá)式!a=1為0,又因?yàn)檫壿嬇c運(yùn)算符“&&”兩邊的表達(dá)式只要一個(gè)等于零,則整個(gè)表達(dá)式為零,所以選項(xiàng)A正確。在選項(xiàng)8中,關(guān)系表達(dá)式a<b為真,表達(dá)式(a<b)&&!C為假,而表達(dá)式(a<b)&&!||1為真,所以整個(gè)表達(dá)式的值為真。選項(xiàng)C中,a&&b的結(jié)果為真。在選項(xiàng)D中,a||(b+b)&&(C-a)的結(jié)果為真。

17.D

18.A

19.D選項(xiàng)A中“\\\”為轉(zhuǎn)義字符,故選項(xiàng)A錯(cuò)誤,選項(xiàng)B和C顯然不是字符串常量。選項(xiàng)D是一個(gè)字符串常量,稱為空串。

20.DD。【解析】面向?qū)ο笤O(shè)計(jì)方法與面向過(guò)程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。其特點(diǎn)包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。

21.gae

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

23.structSTRUstructSTRU解析:結(jié)構(gòu)體類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結(jié)構(gòu)體類型的定義:

struct結(jié)構(gòu)體類型名

{

成員項(xiàng)表;

定義結(jié)構(gòu)休變量的的形式為:

struct結(jié)構(gòu)體類型名變量1,變量2,....

其中變量包括:一般變量、指針變量、數(shù)組變量等。

24.11解析:本題考查的是基本賦值運(yùn)算符和賦值表達(dá)式。a-=(b-5)等價(jià)于a=a-(b-5)=4,c=a=4;a%3=1,c=(a%3)+(b=1)=2,其中b的值被b=1確定為1。

25.33解析:本題考查的是C語(yǔ)言逗號(hào)表達(dá)式的相關(guān)知識(shí)。程序在計(jì)算逗號(hào)表達(dá)式時(shí),從左到右計(jì)算由逗號(hào)分隔各表達(dá)式的值,整個(gè)逗號(hào)表達(dá)式的值等于其中最后一個(gè)表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計(jì)算為3。

26.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對(duì)2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。

27.rewind()或fseek()rewind()或fseek()

28.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來(lái)處理,如參與算術(shù)運(yùn)算等,某字符的大寫(xiě)字母的ASCII碼值比它對(duì)應(yīng)的小寫(xiě)字母ASCII碼值小32。

29.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:隊(duì)列有且只有一個(gè)根結(jié)點(diǎn),而且每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件,滿足線性結(jié)構(gòu)的條件,所以屬于線性結(jié)構(gòu)。

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

31.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開(kāi)始,在對(duì)應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時(shí),若字符串已到了字符串的結(jié)束標(biāo)記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準(zhǔn)備比較下一對(duì)字符。對(duì)應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時(shí),就以兩個(gè)當(dāng)前字符的差返回。所以在空框處應(yīng)填入*s-*t,保證在e>t時(shí)返回正值,當(dāng)s<t時(shí)返回負(fù)值。

32.77解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個(gè)表達(dá)式的值為++a的值,++a的值為7。請(qǐng)注意前綴++,--和后綴++,--的區(qū)別。

33.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)現(xiàn)過(guò)程是將相鄰兩個(gè)字詞進(jìn)行比較,如果當(dāng)前字符小于下一個(gè)字符,則通過(guò)中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。

34.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫(kù)之間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

35.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開(kāi)始,輸出5個(gè)整數(shù)則需要的條件是i<=8。

36.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。程序調(diào)試與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于調(diào)試工具找出軟件錯(cuò)誤的具體位置。軟件測(cè)試貫穿整個(gè)軟件生命期,而調(diào)試主要在開(kāi)發(fā)階段。

37.(!feof(fp))或feof(fp):=0(!feof(fp))或feof(fp):=0

38.字符串字符串解析:本題考查字符替換格式:#define標(biāo)識(shí)符字符串。

39.07

40.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根據(jù)題意和程序可知要填空的內(nèi)容是:將字符申s中的數(shù)字字符放入d數(shù)組的條件。

41.A解析:在switch語(yǔ)句中break語(yǔ)句的作用是退出分支語(yǔ)句,若沒(méi)有break語(yǔ)句則一直向下執(zhí)行。本題中首先計(jì)算switch后面括號(hào)里的表達(dá)式a%3,即15%3為0:執(zhí)行case0:后面的語(yǔ)句“m++;”,m自加1,即m為1;遇到break語(yǔ)句;然后跳出switch語(yǔ)句,所以最后輸出的m值為1。所以選項(xiàng)A正確。

42.B解析:本題考查循環(huán)語(yǔ)句的嵌套以及條件的判斷問(wèn)題。在程序中,內(nèi)層循環(huán)判斷條件為'\ue008j<=i\ue009',而j的初值為3,故當(dāng)i的值為1和2時(shí),內(nèi)層循環(huán)體都不會(huì)被執(zhí)行。只有當(dāng)i和j都等于3時(shí)才會(huì)執(zhí)行一次。m的值為55對(duì)3取模,計(jì)算結(jié)果為1。

43.C

\n在C語(yǔ)言中各種數(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

44.A解析:條件運(yùn)算符“?:”是三目運(yùn)算符,其形式為:

表達(dá)式17表達(dá)式2:表達(dá)式3

當(dāng)表達(dá)式1的值為真時(shí),則表達(dá)式2的值為整個(gè)表達(dá)式的值;如果表達(dá)式1的值為假,則表達(dá)式3的值為整個(gè)表達(dá)式的值。題中,表達(dá)式x>12的結(jié)果為假,所以將表達(dá)式x-12的值0作為y的值。

45.B解析:本題考查了通過(guò)指針來(lái)引用一維數(shù)組元素的方法。題中*p=a;這一賦值語(yǔ)句是指針p指向了數(shù)組a的首地址,p+5是指針p向后移動(dòng)了5個(gè)int類型的存儲(chǔ)單元,所以p+5指向了數(shù)組元素a[5]。

46.C解析:本題考核的知識(shí)點(diǎn)是main()函數(shù)的作用,以及main()函數(shù)在程序中出現(xiàn)的位置。一個(gè)完整的C語(yǔ)言程序有且僅有一個(gè)主函數(shù)(main()函數(shù))。程序總從main()函數(shù)的第一條語(yǔ)句開(kāi)始執(zhí)行,到main()函數(shù)的最后一條語(yǔ)句結(jié)束,其他函數(shù)都是在執(zhí)行main()函數(shù)時(shí),通過(guò)函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的。C語(yǔ)言規(guī)定,main()函數(shù)在程序中的位置是任意的,故選項(xiàng)c不正確。所以,4個(gè)選項(xiàng)中C符合題意。

47.B(27)B)解析:函數(shù)feof的功能是:測(cè)試fp所指的文件的位置是否已達(dá)到文件尾,如果達(dá)到文件尾,則函數(shù)返回非0值,否則返回0,表示文件尚未結(jié)束。

48.C本題考查C語(yǔ)言轉(zhuǎn)義字符的含義。我們歸類了常用的轉(zhuǎn)義字符及其含義,如下,根據(jù)這些不難選出正確答案

轉(zhuǎn)義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁(yè)、\\反斜線符、“\”\′單引號(hào)符、\\ddd1~3位八進(jìn)制數(shù)所代表的字符、\xhh1~2位十六進(jìn)制數(shù)所代表的字符。

49.A解析:程序設(shè)計(jì)的風(fēng)格主要強(qiáng)調(diào)程序的簡(jiǎn)單、清晰和可理解性,以便讀者理解。因此選項(xiàng)A是正確答案。程序?yàn)E用goto語(yǔ)句將使程序流程無(wú)規(guī)律,可讀性差;添加的注解行有利于對(duì)程序的理解,不應(yīng)減少或取消;程序的長(zhǎng)短要依照實(shí)際需要而定,并不是越短越好。因此選項(xiàng)B、C、D都是錯(cuò)誤的。

50.C解析:軟件測(cè)試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯(cuò)誤,給出程序可靠性的鑒定。它有3個(gè)方面的重要特征,即測(cè)試的挑剔性、完全測(cè)試的不可能性及測(cè)試的經(jīng)濟(jì)性。其中沒(méi)有測(cè)試的可靠性這一說(shuō)法。注意:軟件測(cè)試與軟件調(diào)試的概念,以及相應(yīng)的方法。

51.B解析:表達(dá)式x=y||y<z&&z==z中共有5種運(yùn)算符,其優(yōu)先級(jí)從高到低排列依次是:小于<、等于==、邏輯與&&、邏輯或||、賦值二。所以原式可看做x=(y||(y<z&&z==z)),在子表達(dá)式y(tǒng)||(y<z&&z==z)中,因?yàn)閥=3為真,而真||任何數(shù)都為真,所以表達(dá)式等價(jià)于x=真=1,故整個(gè)表達(dá)式的值為1,應(yīng)該選擇B。

52.D解析:第5行代碼中scanf輸入數(shù)據(jù)時(shí),要求輸入項(xiàng)為地址,而數(shù)組名即為數(shù)組的首地址,所以不應(yīng)該再在前面加取地址符號(hào)&。注意:二維數(shù)組的定義、初始化及元素的引用方法。

53.B解析:++、--運(yùn)算符在變量之前是先使變量的值加1或減1,然后再使用變量的值;如果在變量之后則先使用變量之前的值,再把變量的值加1或減1。顯然,程序中表達(dá)式i--的值為10,++j的值為2,所以最后輸出的值為10和2,故B選項(xiàng)為所選。

54.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時(shí)應(yīng)注意下列兩點(diǎn):①在對(duì)二維數(shù)組元素賦初值時(shí),可以只對(duì)部分元素賦初值,未賦初值的元素自動(dòng)取0。②二維數(shù)組第一維的大小由下列規(guī)則確定;當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小;當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),第一維的大小等于所得商數(shù)加1。

55.D解析:本題考查switch語(yǔ)句的掌握。必須撐握以下內(nèi)容:首先應(yīng)該明白switch語(yǔ)句的語(yǔ)法格式:

switch語(yǔ)句的語(yǔ)法格式為:

switch(表達(dá)式)

{

case常量表達(dá)式1:語(yǔ)句組1;

case常量表達(dá)式2:語(yǔ)句組2;

……

case常量表達(dá)式n:語(yǔ)句組n;

default:語(yǔ)句組n+1;

}

另外,注意以下幾點(diǎn)關(guān)于switch語(yǔ)句的重點(diǎn):

①系統(tǒng)在執(zhí)行時(shí)計(jì)算開(kāi)關(guān)表達(dá)式的值;②根據(jù)所得的值在各個(gè)case標(biāo)號(hào)表達(dá)式中尋找匹配,直到發(fā)現(xiàn)與表達(dá)式匹配的標(biāo)號(hào)(本例中匹配的是case'B':);③找到匹配后執(zhí)行后面相應(yīng)的語(yǔ)句表,順序往下執(zhí)行;④如果無(wú)相匹配的標(biāo)號(hào),若存在default標(biāo)號(hào),則執(zhí)行該語(yǔ)句標(biāo)號(hào)后面的語(yǔ)句表n+1;當(dāng)不存在default標(biāo)號(hào)時(shí),不執(zhí)行switch中的任何一個(gè)語(yǔ)句表。

一般而言,在多分支結(jié)構(gòu)中總會(huì)出現(xiàn)“意外”的情況,這時(shí)均可歸入default:程序段,作統(tǒng)一的處理;default標(biāo)號(hào)是可選性的,不必每次都有,視需要而定。switch語(yǔ)句中還可以包含switch語(yǔ)句,形成switch的嵌套。

56.C解析:軟件生命周期由軟件定義、軟件開(kāi)發(fā)和軟件維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分為若干個(gè)階段。軟件定義時(shí)期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個(gè)階段。軟件開(kāi)發(fā)時(shí)期是具體設(shè)計(jì)和實(shí)現(xiàn)在前一時(shí)期定義的軟件,它通常由下面五個(gè)階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫(xiě)代碼、組裝測(cè)試和確認(rèn)測(cè)試。軟件維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當(dāng)軟件在使用過(guò)程中發(fā)現(xiàn)錯(cuò)誤時(shí)應(yīng)加以改正;當(dāng)環(huán)境改變時(shí)應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當(dāng)用戶有新要求時(shí)應(yīng)該及時(shí)改進(jìn)軟件,以滿足用戶的新要求。根據(jù)上述對(duì)軟件生命周期的介紹,可知選項(xiàng)C中的軟件維護(hù)不是軟件生命周期開(kāi)發(fā)階段的任務(wù)。因此,本題的正確答案是C。

57.C棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種“先進(jìn)先出”的線性表:本題答案為C)。

58.A左移運(yùn)算符“<<”是雙目運(yùn)算符,其功能是把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。例如,a<<4是把a(bǔ)的各二進(jìn)位向左移動(dòng)4位。如a=00000011(十進(jìn)制3),左移4位后為00110000(十進(jìn)制48)。

59.D解析:for循環(huán)中,當(dāng)i=2時(shí),i%3為真,結(jié)束本次while循環(huán),!i為假,執(zhí)行n++,n為1;當(dāng)i=3時(shí),i%3=0,執(zhí)行n++,n為2,!i為假,執(zhí)行n++,n為3;當(dāng)i=4時(shí),i%3為真,結(jié)束本次while循環(huán),!i為假,執(zhí)行n++,n為4;當(dāng)i=5時(shí),for循環(huán)結(jié)束。這時(shí)輸出n=4。

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

61.A

62.D

63.C

64

溫馨提示

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