2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第1頁
2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第2頁
2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第3頁
2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第4頁
2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:#include<stdio.h>main(){inta,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}編譯時編譯器提示錯誤信息,你認(rèn)為出錯的語句是()。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;

2.結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。

A.順序結(jié)構(gòu)B.GOT0跳轉(zhuǎn)C.選擇(分支)結(jié)構(gòu)D.重復(fù)(循環(huán))結(jié)構(gòu)

3.設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學(xué)號,課號,成績.,則表SC的關(guān)鍵字(鍵或碼)為()

A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績

4.第

2

現(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

5.有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII碼值為65。程序運行后的輸出結(jié)果是A.5670B.656667C.567D.ABC

6.假定下列x和y均為int型變量,則不正確的賦值為()。

A.x+=y++B.x++=y++C.x=++yD.++x=++y

7.面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。

A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系

B.強(qiáng)調(diào)模擬現(xiàn)實世界中的算法而不強(qiáng)調(diào)概念

C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題

D.不強(qiáng)調(diào)模擬現(xiàn)實世界中的算法而強(qiáng)調(diào)概念

8.

9.若有定義語句:"inta[4][10],*P,*q[4];"且0≤i<4,則錯誤的賦值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

10.廣告系統(tǒng)為了做地理位置定向,將IPV4分割為627672個區(qū)間,并標(biāo)識了地理位置信息,區(qū)間之間無重疊,用二分查找將IP地址映射到地理位置信息,請問在最壞的情況下,需要查找多少次?()

A.17B.18C.19D.20

11.在一個順序隊列中,隊首指針指向隊首元素的____位置。

A.前一個B.后一個C.當(dāng)前D.最后一個

12.二維數(shù)組A的元素都是6個字符組成的串,行下標(biāo)i的范圍從0到8,列下標(biāo)j的范圈從1到10,則存放A至少需要()個字節(jié)。

A.90B.180C.240D.270

13.若有語句“void*P=malloc(80);”,則以下敘述錯誤的是()。

A.可以通過指針P直接訪問用malloc開辟的這塊內(nèi)存

B.p所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有20個int型元素的一維數(shù)組來使用

C.p所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有10個double型元素的一維數(shù)組來使用

D.P所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有80個char型元素的一維數(shù)組來使用

14.在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖

15.任何一個無向圖的最小生成樹()。

A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在

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

A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計

17.下列程序的輸出結(jié)果是

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

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

for(j=0;j<N;j++)

a[i][j]=i+j-(i-j);

fun(a);}

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

18.將數(shù)組a[0,1,…,m-1]作為循環(huán)隊列SQ的存儲空間,f為隊頭指示,r為隊尾指示,則執(zhí)行出隊操作的語句為()A.f=f+1B.f=(f+1)%mC.r=(r+1)%mD.f=(f+1)%(m+1)

19.以下敘述中錯誤的是()。

A.getehar函數(shù)用于從磁盤文件讀入字符

B.gets匿數(shù)用于從終端讀入字符串

C.取ns函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件

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

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

二、2.填空題(20題)21.數(shù)據(jù)流圖的類型有【】和事務(wù)型。

22.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結(jié)果是______。

23.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組b。請?zhí)羁铡?/p>

#include<stdioh>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

for(i;0;i<9;i++)

{if(i%4==0)primf("\n");

printf("%3d",b[i];

}

}

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

main()

{intx=0;

sub(&x,8,1);

printf(“%d\n”,x);

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

26.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。

27.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。

28.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。

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

#defineMCNA(m)2*m

#defineMCNB(n,m)2*MCRA(n)+m

#definef(x)(x*x)

main()

{inti=2,j=3;

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

}

30.在面向?qū)ο蠓椒ㄖ校尽棵枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。

31.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。

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

main()

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

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

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

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

}

33.若從鍵盤輸入58,則以下程序輸出的結(jié)果是______。

main{)

{inta;

scanf("%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

}

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

intn='c';

switch(n++)

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

case'a':

case'A':

case'b':

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

case'c':case'C':printf("pass");

case'd':case'D':printf("warn");

}

35.閱讀下列程序,則程序的輸出結(jié)果為【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,′x′};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c=′y′;}

36.若x,y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。

x=(y=4)+(z=2)

37.如果兩個8位二進(jìn)制數(shù)00010101與01000111相加,其結(jié)果用十進(jìn)制表示為【】。

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

#include<stdio,h>

main()

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

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

elseprintf("%d\n",b);}

39.有以下程序

main()

{intn=0,m+1,X=2;

if(!n)X-=l;

if(m)X-=2;

if(X)X-=3;

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

}

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

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

main()

{inta=1,b=3,c=5;

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

三、1.選擇題(20題)41.C語言的基本單位是()。

A.函數(shù)B.過程C.子程序D.子函數(shù)

42.當(dāng)執(zhí)行下面的程序時,其輸出結(jié)果為______。unionst{inta;charb;}main(){unionsts;char*p=(char*)&s;s.a=0x3132;s.b=0x33;printf("%c",*p);}

A.1B.2C.3D.不確定

43.下列敘述中正確的是A.C語言中既有邏輯類型也有集合類型

B.C語言中沒有邏輯類型但有集合類型

C.C語言中有邏輯類型但沒有集合類型

D.C語言中既沒有邏輯類型也沒有集合類型

44.軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()

A.定義、開發(fā)、運行維護(hù)

B.設(shè)計階段、編程階段、測試階段

C.總體設(shè)計、詳細(xì)設(shè)計、編程調(diào)試

D.需求分析、功能定義、系統(tǒng)設(shè)計

45.以下敘述中錯誤的是()。

A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出

B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變

C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界”的出錯信息

D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)

46.有以下程序#include<stdio.h>main(){printf("%d\n",NULL);}

A.0B.1C.-1D.NULL沒定義,出錯

47.有下列程序:

main()

{intx=0;

inty=0;

while(x<7&&++y)

{y--;

printf(:%d,%d",y,x);

}

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

A.0,7B.7,7C.0,6D.1,6

48.以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子x/(y*z)的C語言表達(dá)式是______。

A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z

49.一棵二叉樹中共有70個葉子結(jié)點與80個度為1的結(jié)點,則該二叉樹中的總結(jié)點數(shù)為()。

A.221B.219C.231D.229

50.下面程序段的輸出為#nclude"stdio.h"main(){printf("%d\n",12<<2);}

A.0B.47C.48D.24

51.C語言中用于結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

B.if、switch、break

C.for、while、do-while

D.if、for、continue

52.下面程序段的運行結(jié)果是charstr[]="ABC",*p=str;printf("%d\n",*(p+3));

A.67B.0C.字符'C'的地址D.字符'C'

53.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[2][3]={{1,2,3},{4,5,6}},(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}

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

54.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是

A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

55.軟磁盤最外邊的磁道數(shù)是()

A.0B.1C.39D.79

56.設(shè)a=1,b=2,c=3,d=4,則表達(dá)式a<b?a:c<d?a:d的結(jié)果為______。

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

57.下列屬于不合法的C語言整型常量的選項是()。A.-32679

B.0Xabc

C.069

D.3.00E+02B.C.D.

58.以下對C語言中聯(lián)合類型數(shù)據(jù)的正確敘述是()。

A.定義了聯(lián)合變量后,即可引用該變量或該變量中的任意成員

B.一個聯(lián)合變量中可以同時存放其所有成員

C.聯(lián)合中的各個成員使用共同的存儲區(qū)域

D.在向聯(lián)合中的一個成員進(jìn)行賦值時,聯(lián)合中其他成員的值不會改變

59.下列程序的運行結(jié)果為()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!='\0';i++)if(str[i]!='a'str[j++]=str[i];str[j]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]=%s",str);}

A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab

60.下述對C語言字符數(shù)組的描述中錯誤的是

A.字符數(shù)組的下標(biāo)從0開始

B.字符數(shù)組中的字符串可以進(jìn)行整體輸入/輸出

C.可以在賦值語句中通過賦值運算符“=”對字符數(shù)組整體賦值

D.字符數(shù)組可以存放字符串

四、選擇題(20題)61.(42)希爾排序法屬于哪一種類型的排序法()

A.交換類排序法

B.插入類排序法

C.選擇類排序法

D.建堆排序法

62.

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

A.冒泡排序B.簡單選擇排序C.直接插入排序D.堆排序

64.

65.

66.設(shè)j為Int型變量,則下面for循環(huán)語句的執(zhí)行結(jié)果是()。

for(j=10;j>3;j--)

{if(j%3)j--;

--j;--j;

printf("%d",j);

}

A.63B.74C.62D.73

67.有如下程序

#defineN2

#defineMN+1

#defineNUM2*M+1

main()

{

inti;

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

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

}

該程序中for循環(huán)執(zhí)行的次數(shù)是

A.5B.6

C.7D.8

68.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是______。

A.隊列B.線性表C.二叉樹D.棧

69.

70.結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是

A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序易讀性

71.

72.

73.以下選項中,不能作為合法常量的是

A.1.24e03B.1.34e0.3C.1.24e+3D.1.34e0

74.利用fseek函數(shù)可實現(xiàn)的操作是()。

A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機(jī)讀寫D.以上答案均正確

75.在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最好的是()。

A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.三個階段相同

76.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。

A.從文件file中讀取長度為n的字符串存入字符數(shù)s由

B.從文件file中讀取長度不超過n-1個字符的字符放到字符數(shù)組S中

C.從文件file中讀到n個字符串存入字符數(shù)組s中

D.從文件file中讀取長度為n-1個字符的字符串存字符數(shù)組S中

77.有以下程序

#include<stdio.h>

main()

{

intnum=0;

while(num<=2)

{

num++;

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

}

}

上面程序的輸出結(jié)果是

78.

79.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。

A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0

80.已知intx=(1,2,3,4);變量x的值是()。

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)形參m(2≤m≤9)的值,在m行m列的二維數(shù)組中存放如下所示的數(shù)據(jù),由main()函數(shù)輸出。

請修改程序中的錯誤,使它能得出正確的結(jié)果。

注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

六、程序設(shè)計題(1題)82.學(xué)生的記錄由學(xué)號和成績組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請編寫函數(shù)proc(),該函數(shù)的功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A本題考查指針,pl=&k表示P指向k的地址,則*p=k,依次類推,在對指針進(jìn)行賦值時沒有錯誤。a=/*p+m賦值,在c語言中"/*"表示的注釋,所以答案選擇A。

2.B1966年Boehm和Jacopini證明了程序設(shè)計語言僅僅使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。

3.C學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇C項。

4.D

5.C

6.B

7.C\n面向?qū)ο蟮脑O(shè)計方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它雖強(qiáng)調(diào)模擬現(xiàn)實世界中的概念而不強(qiáng)調(diào)算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。

\n

8.A

9.A數(shù)組名是一個存放一個數(shù)組首地址的值,是一個地址常量。而p=a不是合法的,因為p和a的基本類型不同。

10.D

11.A

12.A

13.A題干中使用malloc函數(shù)分配了80個字節(jié)的內(nèi)存單元,void指針p指向該內(nèi)存單元。在C語言中,void*不能直接使用,必須利用強(qiáng)制類型轉(zhuǎn)換將其轉(zhuǎn)成所需的類型才能使用,選項A錯誤。int類型的元素占4個字節(jié),所以可以將p指向的內(nèi)存強(qiáng)制類型轉(zhuǎn)換成具有20個int類型的一維數(shù)組來使用,同理,也可以強(qiáng)制類型轉(zhuǎn)換成10個double類型的一維數(shù)組來使用,或強(qiáng)制類型轉(zhuǎn)換成80個char類型的一維數(shù)組來使用,選項B、C、D正確。故本題答案為A選項。

14.A【答案】:A

【知識點】:黑盒測試

【解析】:黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特征,只著眼于程序的外部結(jié)構(gòu),主要用來檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。故選A。

15.B

16.A解析:模式設(shè)計和內(nèi)模式設(shè)計是概念設(shè)計的兩種方法。物理設(shè)計是根據(jù)特定的計算機(jī)系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進(jìn)行設(shè)計,從而實現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計和行為特性-設(shè)計是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計,設(shè)計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。

17.B解析:若有以下定義:inta[3][4],i,j;且當(dāng)0<=i<3,0<=j<4,則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

18.B

19.A本題考查的是文件操作。題中“fopen(fn,”w”)”的作用是打開fn所指向的文件,使用文件方式為“寫入”;

“每uts(str,fp)”的作用是將字符str的值輸出到fb所指向的文件中去。在程序中,兩次使用“寫入”的方式打開同一個文件,在第二次打開時,文件指針指向文件頭,所以此次寫入的數(shù)據(jù)覆蓋了文件原有的數(shù)據(jù),故本題中tl.dat的內(nèi)容為end。故本題答案為A)。

20.A

21.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。

22.-1-1解析:strcmp(s1,s2)函數(shù)的作用是:對字符數(shù)組s2和字符數(shù)組s1進(jìn)行比較。如果s1<s2,則返回負(fù)數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。

23.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i]小即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。

24.77解析:在主函數(shù)中定義了一個變量x并賦初值0,然后執(zhí)行函數(shù)調(diào)用語句,該語句的執(zhí)行過程為sub(&x,8,1)調(diào)用sub(&a,4,2),sub(&a,4,2)調(diào)用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號里的判斷為假,遞歸結(jié)束,執(zhí)行其后的*a+=k;語句此時x=x+k=0+4=4,回退到上一層調(diào)用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語句,x=x+k=4+2=6,再回推到最上一層調(diào)用函數(shù)sub(&x,8,1)執(zhí)行后面的語句,x=x+k=6+1=7,所以最后輸出7。

25.852852解析:循環(huán)前,變量y的值為9,其中,循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值都減1。循環(huán)體是當(dāng)y能被3整除時輸出表達(dá)式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán),所以程序輸出852。

26.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。

27.邏輯關(guān)系邏輯關(guān)系

28.2525解析:#NAME?

29.1616解析:本題定義了兩個宏MCRA(m)和MCRB(n,m),展開宏MCRB(n,m),得到:MCRB(j,MCRA(i)=2*MCRA(j)+MCRA(i)=2×2×j+2×i=4×3+2×2=12+4=16,因此printf函數(shù)的輸出結(jié)果為16。

30.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似屬性與操作的一組對象。

31.非線性結(jié)構(gòu)非線性結(jié)構(gòu)

32.7467

33.585858585858解析:在程序中,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個if語句,因為,a=58>50,執(zhí)行第一個訂語句后面的輸出語句,輸出58;接著執(zhí)行第二個if語句,因為,a=58>4O,執(zhí)行第二個if語句后面的輸出語句,輸出58;接著執(zhí)行第三個if語句,因為,a=58>30,執(zhí)行第三個if語句后面的輸出語句,輸出58,所以最后的輸出為585858。

34.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結(jié)果是passwarn。

35.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以被調(diào)用函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。

36.6

37.92

38.11解析:該程序要注意的是if語句的判斷條件“c=a”是賦值,而不是“c==a”。由于a=1,故條件c=a使c的值為1(真),所以輸出c的值1。

39.-4-4解析:if-else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu),if(條件)S1(if分結(jié)構(gòu))elseS2(else分結(jié)構(gòu)),它的工作過程是:先對條件表達(dá)式進(jìn)行判斷,若為真(成立,值為非零),就執(zhí)行if分結(jié)構(gòu)(S1);否則(不成立,值為0),就執(zhí)行else分結(jié)構(gòu)(S2)。本題中,n=O,可以判斷(!n)為真,執(zhí)行“x=x-1=2-1=1;m=1”,可以判斷(m)為真,執(zhí)行“x=x-2=1-2=-1;”進(jìn)而可以判斷(x)為真,執(zhí)行x=x-3=-1-3=-4。所以,最后輸出為-4。

40.yesyes解析:if語句的條件語句為c=a+b=1+3=4,即條件為真,執(zhí)行語句printf('yes\\n');,輸出結(jié)果為yes。

41.AA?!窘馕觥緾語言是函數(shù)式的語言。它的基本組成單位是函數(shù),在C語言中任何程序都是由一個或者多個函數(shù)組成的。

42.C解析:共用體類型結(jié)構(gòu)的特點是使幾個不同的變量共占同一段內(nèi)存,但在每一瞬時只能存放其中一種,而不是同時存放幾種,共用體變量中起作用的成員是最后一次存放的成員,在存入一個新的成員后原有的成員就失去作用。因此本題起作用的是成員b的值,所以程序打印輸出3。

43.D解析:在C語言中沒有邏輯類型,邏輯類型用整型來表示,故選項A和選項C不正確,C語言中沒有集合類型,故選項B不正確。所以,D選項為所選。

44.A解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運行維護(hù)3個階段。

45.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進(jìn)行整體引用,因此選項A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項B是對的。C語言程序在運行過程中,系統(tǒng)不自動檢驗數(shù)組元素的下標(biāo)是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。

46.A解析:在C語言中NULL的ASCII碼值為0,而輸出函數(shù)要求以整形格式輸出,故最后的輸出數(shù)為0。所以,4個選項中選項A符合題意。

47.A解析:本題考查while循環(huán)。y的值在while循環(huán)的控制表達(dá)式中加1,在循環(huán)體內(nèi)減1,所以總的y值不變,且控制條件++y永遠(yuǎn)非零。當(dāng)x加到7時不滿足循環(huán)條件,結(jié)束循環(huán)。

48.A解析:按照自左向右的運算邏輯,選項A是先做x/y,然后再乘以x,顯然與題意不符。

49.B解析:二叉樹有一個性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個,由于本題中的二叉樹有70個葉子結(jié)點,因此有69個度為2的結(jié)點。

該二叉樹中總的結(jié)點數(shù)為

度為2的結(jié)點數(shù)+度為1的結(jié)點數(shù)+葉子結(jié)點數(shù)=69+80+70=219

50.C

51.A解析:本題主要考查結(jié)構(gòu)化程序設(shè)計的基本結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計有3種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。

52.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應(yīng)該是該字符串中的首地址,p+3指向的是字符串結(jié)束標(biāo)志'\\0'的地址,因而。(p+3)的值為0。

53.B解析:第1次執(zhí)行for循環(huán),p[1][0]=p[1][0]-1=3:第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4:第3次執(zhí)行for循環(huán),p[1][2]=1,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

54.D解析:C語言中數(shù)組下標(biāo)是從0開始的,所以二維數(shù)組a[2][3]的第一維下標(biāo)取值為0、1;第二維的下標(biāo)取值為0、1、2,因而選項A)、B)、C)都是錯誤的,選項D)表示數(shù)組元素a[0][0]。

55.A

56.D

57.C解析:C語言中,以0開頭的整型常量表示八進(jìn)制數(shù),而八進(jìn)制數(shù)只能由‘O’~‘7’八個字符組成,選項C中出現(xiàn)了數(shù)字9是錯誤的。故應(yīng)該選擇C。

58.C解析:聯(lián)合體的幾個特點:①聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間;②各個成員分量全部是從低地址方向開始使用內(nèi)存單元;③聯(lián)合體中的空間在某一時刻只能保存某一個成員的數(shù)據(jù);④聯(lián)合體和結(jié)構(gòu)體可以任意嵌套。

59.A解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。通過函數(shù)abc的執(zhí)行,將字符串中的字母a去掉,保留剩下的。由于是通過指針調(diào)用,所以改變字符串的結(jié)果。

60.C解析:在C語言中,通過使用庫函數(shù)允許對字符數(shù)組進(jìn)行整體輸入/輸出。C語言不允許通過賦值運算符對字符數(shù)組整體進(jìn)行賦值,對字符串使用符號:只能在說明字符數(shù)組并進(jìn)行初始化的時候進(jìn)行。字符串結(jié)束標(biāo)志為'\\0',計算字符串的實際長度時。不計入串長。

61.B

62.C

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

64.D

65.A

66.B當(dāng)j=10時,for循環(huán)成立,j%3為1,if條件也為真,當(dāng)執(zhí)行完j--后,j為9,再執(zhí)行“--j;--J;”后,j的值為7,因此輸出7,繼續(xù)循環(huán)執(zhí)行j--后j為6,當(dāng)j=6時for循環(huán)成立,j%3為0,if條件為假,此時執(zhí)行“--j;--j;”后,j為4,輸出4,再繼續(xù)循環(huán)執(zhí)行j--后j為3,當(dāng)j=3時,for循環(huán)不成立,退出循環(huán),故選擇8選項。

67.B分別將N、M的宏定義代入NUM的表達(dá)式中,可以得到NUM=2*2+1+1=6,所以當(dāng)常數(shù)NUM作為for循環(huán)的終止條件時,應(yīng)當(dāng)循環(huán)6次。

68.C解析:線性表、棧和隊列所表達(dá)和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧是一種特殊的線性表,它只能在固定的一端進(jìn)行插入和刪除操作,又稱后進(jìn)先出表(LastInFirstOut);隊列是插入在一端進(jìn)行,刪除在另一端進(jìn)行的線性表,又稱先進(jìn)先出表(FirstInFirstOut)。

69.C

70.D結(jié)構(gòu)化程序設(shè)計由迪

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論