2021-2022年內(nèi)蒙古自治區(qū)通遼市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第1頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第2頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第3頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第4頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年內(nèi)蒙古自治區(qū)通遼市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.算法能正確地實(shí)現(xiàn)預(yù)定功能的特性稱(chēng)為算法的()。

A.正確性B.易讀性C.健壯性D.高效率

2.若一組記錄的排序碼為(46,79,56,38,40,84),則利用快速排序的方法,以第一個(gè)記錄為基準(zhǔn)得到的一次劃分結(jié)果為()

A.38,40,46,56,79,84

B.40,38,46,79,56,84

C.40,38,46,56,79,84

D.40,38,46,84,56,79

3.

4.在C語(yǔ)言中,int、char和short種類(lèi)型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)()。

A.由用戶(hù)自己定義B.均為2個(gè)字節(jié)C.是任意的D.由所用機(jī)器的機(jī)器字長(zhǎng)決定

5.判斷char型變量c1是否為小寫(xiě)字母的正確表達(dá)式為()。

A.'a'<=c1<='Z'

B.(c1>=A)‖c1<=z)

C.('a'=>c1‖("z"<=c1)

D.(c1>='a')&&(c1<='z')

6.下列變量聲明合法的是()。

A.shorta=1.4e-1;

B.doubleb=1+3e2.8;

C.longdo=OxfdaL;

D.float2

7.設(shè)有說(shuō)明:charw;intx;f1oaty;doublez;則表達(dá)式w*x+z-y值的數(shù)據(jù)類(lèi)型為()。

A.floatB.charC.intD.double

8.下面程序中算法的時(shí)間復(fù)雜度是()A.O(n)B.O(n^2)C.O(logn)D.O(n*logn)

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

A.算法的執(zhí)行效率與數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)

B.算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止

D.以上3種描述都不對(duì)

10.在具有n個(gè)結(jié)點(diǎn)的單鏈表中,實(shí)現(xiàn)()的操作,其算法的時(shí)間復(fù)雜度是O。

A.求鏈表的第i個(gè)結(jié)點(diǎn)B.在地址為P的結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn)C.刪除表頭結(jié)點(diǎn)D.刪除地址為P的結(jié)點(diǎn)的后繼結(jié)點(diǎn)

11.軟件生命周期是指()。

A.軟件的定義和開(kāi)發(fā)階段

B.軟件的需求分析、設(shè)計(jì)與實(shí)現(xiàn)階段

C.軟件的開(kāi)發(fā)階段

D.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程

12.一個(gè)遞歸算法必須包括()。

A.遞歸部分B.終止條件和遞歸部分C.迭代部分D.終止條件和迭代部分

13.在一棵高度為5的理想平衡樹(shù)中,至少含有16個(gè)結(jié)點(diǎn),最多含有()個(gè)結(jié)點(diǎn)。

A.31B.32C.30D.33

14.

15.設(shè)無(wú)向圖的頂點(diǎn)數(shù)為n,則該圖最多有()條邊。

A.n-1B.n(n-1)/2C.n(n+1)/2D.0

16.在inta=3,int*p=&a;中,*p的值是()。

A.變量a的地址值B.無(wú)意義C.變量p的地址值D.3

17.以下敘述中正確的是()A.當(dāng)對(duì)文件的讀(寫(xiě)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

B.打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,必須先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù)

D.語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

18.以下敘述中正確的是()。A.A.當(dāng)對(duì)文件的讀(寫(xiě))操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

B.打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,必須先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù)

D.c語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

19.數(shù)據(jù)的不可分割的基本單位是()。

A.元素B.結(jié)點(diǎn)C.數(shù)據(jù)類(lèi)型D.數(shù)據(jù)項(xiàng)

20.

二、2.填空題(20題)21.以下程序通過(guò)函數(shù)SunFun()調(diào)用F(x),x的值從0到10,這里F(x)=x2+1,由F函數(shù)實(shí)現(xiàn),請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

intSunFun(int);

intF(int);

main()

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

SunFun(intn)

{intx,s=0;

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

returns;

F(intx)

{return(【】);}

22.設(shè)y是int型,請(qǐng)寫(xiě)出y為奇數(shù)的關(guān)系表達(dá)式【】。

23.閱讀下列程序,則程序的輸出結(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';}

24.若a=1,b=2,則表達(dá)式!(x=A)‖(y=B)&&0的值是______。

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

main()

{

inta[]={2,4,6},*prt=&a[0],x=8,y,z;

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

z=(*(ptr+y<x)?*(ptr+y):x;

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

}

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

#include<stdlib.h>

main()

{char*s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;*s2=20;m=*s1+*s2;

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

}

27.數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別為_(kāi)_____模式、內(nèi)部級(jí)模式與外部級(jí)模式。

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

#include<stdio.h>

main()

{inta=5,b=4,c=3,d;

d=(a>b>c);

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

}

29.有如下圖所示的雙鏈表結(jié)構(gòu),請(qǐng)根據(jù)圖示完成結(jié)構(gòu)體的定義:

structaa

{intdata;

【】}node;

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

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<C)t=a;a=c;c=t;

if(a<c&&b<C)t=b;b=a;a=t;

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

}

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

main()

{chars[]="abcdef";

s[3]='\0';

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

}

32.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),線性表、棧和隊(duì)列都屬于【】。

33.軟件生命周期包括8個(gè)階段。為了使各時(shí)期的任務(wù)更明確,又可分為3個(gè)時(shí)期:軟件定義期、軟件開(kāi)發(fā)期、軟件維護(hù)期。編碼和測(cè)試屬于【】期。

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

voidfun(int*n)

{while((*n)--);

printf("%d",++(*n));

}

main()

{inta=1000;

fun(&a);

}

35.在面向?qū)ο蠓椒ㄖ?,?lèi)的實(shí)例稱(chēng)為_(kāi)_____。

36.子程序通常分為兩類(lèi):【】和函數(shù),前者是命令的抽象,后者是為了求值。

37.若從鍵盤(pán)輸入58,則以下程序輸出的結(jié)果是【】。

mam()

{inta;

scanf("%d",&a);

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

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

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

}

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

39.以下函數(shù)的功能是【】。

floatav(a,n)

floata[];

intn;

{inti;floats;

for(i=0,s=0;i<n;i++)s=s+a[i];

returns/n;}

40.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若從鍵盤(pán)輸入;abcdef<回車(chē)>,則輸出結(jié)果是______。

A.defdefB.abcdefC.abedD.dd

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

A.return表達(dá)式;

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

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

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

43.待排序的關(guān)鍵碼序列為15,20,9,30,67,65,45,90,要按關(guān)鍵碼值遞增的順序排序,采取簡(jiǎn)單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個(gè)位置。

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

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

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

45.若有程序fun(inta,intb}{staticintc=0;c+=a+b;returnc;}main(){intx=5,y=3,z=7,r,r=fun(y,x+y),z);r=fun(xy);printf("%d\n",r);}上面程序的輸出結(jié)果是_____。

A.23B.15C.19D.18

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

#include<stdio.h>

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

main()

{p=(int*)malloc(sizeof(int));

f(p,a);

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

free(p);}

f(int*s,intp[][3])

{*s=p[1][1];}

A.1B.4C.7D.5

47.以下定義語(yǔ)句中正確的是

A.inta=b=0;

B.charA=65+1,b='b';

C.floata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

48.以下程序段的輸出結(jié)果是______。main(){chars1[10],s2[10],s3[10];scanf("%s",s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);}輸入數(shù)據(jù)如下:(此處<CR>代表回車(chē)符)aaa<CR>bbb<CR>

A.aaabbbB.aaabbbC.aaa\0bbb\0D.aaabbb

49.在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是()。

A.各模塊應(yīng)包括盡量多的功能

B.各模塊的規(guī)模應(yīng)盡量大

C.各模塊之間的聯(lián)系應(yīng)盡量緊密

D.模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度

50.設(shè)有定義語(yǔ)句int(*f)(int);,則以下敘述正確的是()。

A.f是基類(lèi)型為int的指針變量

B.f是指向函數(shù)的指針變量,該函數(shù)具有一個(gè)int類(lèi)型的形參

C.f是指向int類(lèi)型一維數(shù)組的指針變量

D.f是函數(shù)名,該函數(shù)的返回值是基類(lèi)型為int類(lèi)型的地址

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

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

52.下面程序的輸出結(jié)果是______。#include<string.h>main(){char*p1="abc",*p2="ABC",s[20]="xyz";strcpy(s+1,p2);strcat(s+2,p1);printf("%s\n",s);}

A.xABCabcB.zABCabcC.yzabcABCD.xyzABCabc

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

A.可以通過(guò)typedef增加新的類(lèi)型

B.可以用tyPedef將已存在的類(lèi)型用新的名字來(lái)表示

C.用typedef定義新的類(lèi)型名后,原有類(lèi)型名仍有效

D.用tyPedcf可以為各種類(lèi)型起別名,但不能為變量起別名

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

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

55.算法的空間復(fù)雜度是指()。

A.算法程序的長(zhǎng)度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.算法執(zhí)行過(guò)程中所需要的存儲(chǔ)空間

56.下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是A.數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過(guò)程

B.數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變

C.關(guān)系中的每一列稱(chēng)為元組,一個(gè)元組就是一個(gè)字段

D.如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱(chēng)其為本關(guān)系的外關(guān)鍵字

57.若有定義inta[2][3];,則對(duì)a數(shù)組的第i行第j列(假調(diào)i,j已正確說(shuō)明并賦值)元素值的正確引用為

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

58.以下程序的輸出結(jié)果是main(){inta=0,i;for(i=1;i<5i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}printf("%d\n",A);}

A.31B.13C.10D.20

59.若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;則與上述程序段功能等價(jià)的賦值語(yǔ)句是()。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

60.下列敘述中,正確的是

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

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

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

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

四、選擇題(20題)61.在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的主要根據(jù)是()。

A.程序內(nèi)部邏輯B.程序外部功能C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖

62.

63.

64.以下定義語(yǔ)句中正確的是()。

A.

B.

C.

D.

65.

66.下列函數(shù)的類(lèi)型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

67.

68.若二維數(shù)組a有m列,則在a[i][j]前的元素個(gè)數(shù)為()。

A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1

69.以下敘述正確的是()。A.C語(yǔ)言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))

B.C語(yǔ)言程序是由過(guò)程和函數(shù)組成的

C.c語(yǔ)言函數(shù)不可以單獨(dú)編譯

D.c語(yǔ)言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在

70.有以下程序

inta=2;

intf(int*a)

{

return(*a)++;

}

main()

{

ints=0;

{

inta=5;

s+=f(&a);

}

s+=f(&a);

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

}

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

A.10B.9

C.7D.8

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

A.-3,-1,1,3,B.-12,一3,0,0C.0,1,2,3,D.一3,-3,一3,一3,

72.以下與存儲(chǔ)類(lèi)別有關(guān)的四組說(shuō)明符中,全部屬于靜態(tài)類(lèi)的一組是()。

A.extem和static

B.auto和static

C.register和static

D.register和ex[erll

73.有以下程序:

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

A.y=一1B.Y=0C.y=1D.while構(gòu)成無(wú)限循環(huán)

74.若有以下定義:chara;intb;floatc;doubled;則表達(dá)式a*b+b-c值的類(lèi)型為()。A.floatB.intC.charD.double

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

A.存儲(chǔ)在外存中的數(shù)據(jù)B.?dāng)?shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

C.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示D.?dāng)?shù)據(jù)所占的存儲(chǔ)空間量

76.設(shè)有定義:

則a和b的值分別是()。

A.87和6.0B.876和543.0C.87和543.0D.76和543.0

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

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

78.c源程序中不能表示的數(shù)制是()。

A.二進(jìn)制B.八進(jìn)制C.十進(jìn)制D.十六進(jìn)制

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

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

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

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

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

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

#inclde<stdio.h>

#defineSUB(X,Y)(X)*Y

main()

{inta=3,b=4;

printf("%d\n",SUB(a++,b++));

}

A.12B.15C.16D.20

五、程序改錯(cuò)題(1題)81.寫(xiě)出下列程序的運(yùn)行結(jié)果。

main

{intn;

For(n=3;n<=10;n++)

{if(n%6==0)break;Printf(“%d”,n);}}

六、程序設(shè)計(jì)題(1題)82.實(shí)現(xiàn)字符串拷貝的函數(shù)strcpy為()。

參考答案

1.A

2.C

3.B

4.D

5.D解析:C語(yǔ)言規(guī)定,字符常量在程序中要用單引號(hào)括起來(lái)。判斷c1是否為小寫(xiě)字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來(lái)表示。A選項(xiàng)的這種形式在C語(yǔ)言中沒(méi)有,所以選項(xiàng)D)正確.

6.A解析:解答本題需了解3個(gè)知識(shí)點(diǎn):①標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線;②do是C語(yǔ)言中的一個(gè)關(guān)鍵字,不能再用做變量名和函數(shù)名;③C語(yǔ)言規(guī)定,指數(shù)形式的實(shí)型常量e或E后面的指數(shù)必須是整數(shù)。

7.D

8.C

9.C在程序設(shè)計(jì)中,算法執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)。算法的空間復(fù)雜度是指算法執(zhí)行過(guò)程中所需存儲(chǔ)空間。

10.A

11.D通常把軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用、退役的過(guò)程稱(chēng)為軟件生命周期。選項(xiàng)A、B、C選項(xiàng)均為生命周期的一部分。故選D選項(xiàng)。

12.B

13.A

14.B

15.B

16.D

17.AB)選項(xiàng)中打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對(duì)源文件進(jìn)行追加操作等。C)選項(xiàng)中在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,不用先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù),可以用fseek()函數(shù)進(jìn)行重新定位即可。D)選項(xiàng)中,C語(yǔ)言中的文件可以進(jìn)行隨機(jī)讀寫(xiě)。

18.AB)選項(xiàng)中打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對(duì)源文件進(jìn)行追加操作等。c)選項(xiàng)中在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,不用先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù),可以用fseek()函數(shù)進(jìn)行重新定位即可。D)選項(xiàng)中,C語(yǔ)言中的文件可以進(jìn)行隨機(jī)讀寫(xiě)。故本題答案為A)。

19.D

20.B

21.xx*x+1x\r\nx*x+1解析:本題考查函數(shù)的調(diào)用。P(x)的含義為x的平方加1,所以第一處應(yīng)填x;第二處應(yīng)填x*x+1。

22.y%2==1y%2==1解析:由關(guān)系運(yùn)算符組成的表達(dá)式稱(chēng)為關(guān)系表達(dá)式。判斷2除y的余數(shù)是否為1,即可判斷y是否為奇數(shù)。

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

24.00解析:根據(jù)運(yùn)算符的運(yùn)算順序可知,該表達(dá)式最后運(yùn)算的是與(&&)運(yùn)算,而任何表達(dá)式與“0”進(jìn)行“與”運(yùn)算,結(jié)果都為0。

25.66解析:條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,因此本題先計(jì)算關(guān)系個(gè)表達(dá)式(*ptr+y)<x)?(ptr+y):x的值,再賦紿變量z,當(dāng)y=O時(shí),*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(pry)=2,所以z=2;當(dāng)y=1時(shí)*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時(shí),*(ptr+y)=6,*((ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。

26.4040解析:本題中指針s1和s2都指向同一個(gè)內(nèi)存中的地址。因此語(yǔ)句“*s2=20;”執(zhí)行后,*\u3000s1=*s2=20。所以m最后的值為40。

27.概念(或概念級(jí))概念(或概念級(jí))

28.00解析:在本題中,d=(a>b>c);相當(dāng)于d=(5>4>3);其計(jì)算過(guò)程為:先算5>4,結(jié)果為真,得1,即d=(1>3);然后計(jì)算1>3,結(jié)果為假,得0。

29.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對(duì)鏈表的定義。

30.45994599解析:a、b、c的初值為3、4、5,t的初值為99,if語(yǔ)句的條件“b<a&&b<c”為假,不執(zhí)行“t=a;”,但緊隨其后的“a=c;c=t;”與此if語(yǔ)句無(wú)關(guān),仍被執(zhí)行。此時(shí)a的值為5,b的值仍是4,c的值為99。再執(zhí)行第二個(gè)if語(yǔ)句,由于此時(shí)“a<c&&b<c”為真,執(zhí)行“t=b;”,緊隨其后的“b=a;a=t;”與此if語(yǔ)句無(wú)關(guān),也被執(zhí)行。此時(shí)a的值為4,b的值是5,c的值為99。因此輸出結(jié)果是:4599。

31.abcabc解析:字符串的結(jié)束標(biāo)記'\\0',當(dāng)輸出一個(gè)存放在字符數(shù)組中的字符串時(shí),只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個(gè)字符“abc”。

32.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:本題考查了數(shù)據(jù)結(jié)構(gòu)的基本概念。與棧類(lèi)似,隊(duì)列也是線性表,可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),所以帶鏈的隊(duì)列屬于線性結(jié)構(gòu)。

33.軟件開(kāi)發(fā)軟件開(kāi)發(fā)解析:軟件生命周期可以分為3個(gè)時(shí)期:軟件定義期,包括問(wèn)題定義、可行性研究和需求分析3個(gè)階段;軟件開(kāi)發(fā)期,包括系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試4個(gè)階段;軟件維護(hù)期,即運(yùn)行維護(hù)階段。編碼和測(cè)試屬于軟件開(kāi)發(fā)階段。

34.00解析:while循環(huán)的條件為即當(dāng)*n非零時(shí)執(zhí)行循環(huán),(*n)一是先使用*n的值再對(duì)*n減1,結(jié)束while循環(huán)后*n的值為-1。++(*n)是先對(duì)*n加1再使用*n的值,-1+1=0,輸出*n的值即輸出0。

35.對(duì)象對(duì)象解析:類(lèi)描述的是具有相似性質(zhì)的一組對(duì)象。例如,每本具體的書(shū)是一個(gè)對(duì)象,而這些具體的書(shū)都有共同的性質(zhì),它們都屬于更一般的概念“書(shū)”這一類(lèi)對(duì)象。一個(gè)具體對(duì)象稱(chēng)為類(lèi)的實(shí)例。

36.過(guò)程過(guò)程

37.585858585858解析:在程序小,執(zhí)行scanf()語(yǔ)句后,a被賦值為58。接著執(zhí)行第一個(gè)if語(yǔ)句,因?yàn)?,a=58>50,執(zhí)行第一個(gè)if語(yǔ)句后面的輸出語(yǔ)句,輸出58;接著執(zhí)行第二個(gè)if語(yǔ)句,因?yàn)椋琣=58>40,執(zhí)行第二個(gè)if語(yǔ)句后面的輸出語(yǔ)句,輸出58;接著執(zhí)行第三個(gè)if語(yǔ)句,因?yàn)?,a=58>30,執(zhí)行第三個(gè)if語(yǔ)句后面的輸出語(yǔ)句,輸出58,所以最后的輸出為585858。

38.程序調(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ā)階段。

39.求出數(shù)組元素平均值求出數(shù)組元素平均值解析:函數(shù)有一個(gè)數(shù)組形參a和一個(gè)整型形參n。函數(shù)首先用循環(huán)求數(shù)組a的前n個(gè)元素和,然后將和除以n。即求數(shù)組元素的平均值。

40.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有4個(gè)元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。

41.A解析:本題考查%s控制符在scanf函數(shù)中的應(yīng)用。scanf函數(shù)中%s控制符的作用是將鍵盤(pán)輸入的字符串送到內(nèi)存,輸入的字符串從第一個(gè)非空格字符算起,遇到空格或回車(chē)就認(rèn)為是輸入結(jié)束。本題中執(zhí)行語(yǔ)句scanf('%s%s',p,q)時(shí),從鍵盤(pán)輸入abcdef<回車(chē)>后,指針變量p指向字符串'abc\\0',q指向字符串'def\\0',但是由于p和q指向同一個(gè)存儲(chǔ)單元,所以存儲(chǔ)單元中存放的是'def\\0',printf函數(shù)的輸出結(jié)果為defdef。

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

43.A解析:選擇排序的基本思想是掃描整個(gè)線性表,從中選出最小的元素,將它交換到表的最前面,然后對(duì)剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個(gè)位置,元素15則放在第二個(gè)位置。

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

45.A解析:static聲明的外部變量只限于彼本文件引用,而不能被其他文件引用。用static來(lái)聲明一個(gè)變量的作用有:①對(duì)局部變量用static聲明,則為該變量分配的空間在整個(gè)程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。調(diào)用第一個(gè)fun,其兩個(gè)實(shí)參的值為(3,5+3)與7即8與7,在函數(shù)fun執(zhí)行結(jié)束返回15。第二次調(diào)用fun時(shí),由于static為靜態(tài)類(lèi)型,其值保留,執(zhí)行fun(5,3)后,其返回值為23,故選A。

46.D解析:本題考查了二維數(shù)組元素引用的方法。題中用動(dòng)態(tài)存儲(chǔ)分配函數(shù)malloc分配了一個(gè)int型數(shù)據(jù)長(zhǎng)度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f()中對(duì)p所指向的數(shù)據(jù)進(jìn)行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對(duì)應(yīng)于實(shí)參a的元素5,所以輸出結(jié)果為5。

47.B解析:本題考查變量的定義方法。如果要一次進(jìn)行多個(gè)變量的定義,則在它們之間要用逗號(hào)隔開(kāi),因此選項(xiàng)A)和D)錯(cuò)誤。在選項(xiàng)C)中,變量c是一個(gè)浮點(diǎn)型指針,它只能指向一個(gè)浮點(diǎn)型數(shù)據(jù),不能指向指針變量b,故選項(xiàng)C)錯(cuò)誤。

48.B解析:scanf是標(biāo)準(zhǔn)輸入函數(shù),在輸入字符串a(chǎn)aa時(shí),實(shí)際的內(nèi)容為“aaa\\0”,“\\0”是由系統(tǒng)自動(dòng)加入的:gets的功能是從終端讀入一行字符,即一直讀到換行符為止,并由系統(tǒng)自動(dòng)以“/0”代替換行符。

49.D解析:本題考查軟件工程中軟件設(shè)計(jì)的概念和原理。人們?cè)陂_(kāi)發(fā)計(jì)算機(jī)軟件的長(zhǎng)期實(shí)踐中積累了豐富的經(jīng)驗(yàn),總結(jié)這些經(jīng)驗(yàn)得到如下的啟發(fā)式規(guī)則:

(1)改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性;通過(guò)模塊的分解或合并,力求降低耦合提高內(nèi)聚。低耦合也就是降低不同模塊間相互依賴(lài)的緊密程度,高內(nèi)聚是提高一個(gè)模塊內(nèi)各元素彼此結(jié)合的緊密程度。

(2)模塊的規(guī)模應(yīng)適中。一個(gè)模塊的規(guī)模不應(yīng)過(guò)大,過(guò)大的模塊往往是由于分解不夠充分:過(guò)小的模塊開(kāi)銷(xiāo)大于有益操作,而且模塊過(guò)多將使系統(tǒng)接口復(fù)雜。因此過(guò)小的模塊有時(shí)不值得單獨(dú)存在。

(3)模塊的功能應(yīng)該可以預(yù)測(cè),但也要防止模塊功能過(guò)分局限。如果模塊包含的功能太多,則不能體現(xiàn)模塊化設(shè)計(jì)的特點(diǎn):如果模塊的功能過(guò)分的局限,使用范圍就過(guò)分狹窄。

經(jīng)過(guò)上述分析,本題的正確答案是選項(xiàng)D。

50.B本題考查的是指向函數(shù)的指針。語(yǔ)句“int(*f)(int);”是對(duì)一個(gè)函數(shù)的聲明,其中f是指向該函數(shù)的指針,該函數(shù)有一個(gè)整型的參數(shù),函數(shù)返回值類(lèi)型為整型。故答案選B)。

51.AB選項(xiàng)中運(yùn)算符“%”的運(yùn)算對(duì)象為整數(shù)。C選項(xiàng)中不能將變量賦給表達(dá)式“x+n”。D選項(xiàng)中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項(xiàng)。

52.A解析:strcpy(s+1,p2)是字符串復(fù)制,s中的內(nèi)容變?yōu)?xABC',strcat(s+2,p1)是字符串連接(s的內(nèi)容已不是初始化的內(nèi)容,而是復(fù)制之后的內(nèi)容),結(jié)果為'xABCabc'。

53.A解析:選項(xiàng)A)錯(cuò)誤,原因是typedef可以聲明新的類(lèi)型名來(lái)代替已有的類(lèi)型名,但卻不能增加新的類(lèi)型。

54.D解析:程序不僅是編寫(xiě)完就結(jié)束了,為了測(cè)試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計(jì)的風(fēng)格應(yīng)該強(qiáng)調(diào)簡(jiǎn)單和清晰,即程序的易讀性,“清晰第一,效率第二”。

55.D【解析】算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。一個(gè)算法所占用的存儲(chǔ)空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過(guò)程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間。如果額外空間量相對(duì)于問(wèn)題規(guī)模來(lái)說(shuō)是常數(shù),則稱(chēng)該算法是原地工作的。在許多實(shí)際問(wèn)題中,為了減少算法所占的存儲(chǔ)空間,通常采用壓縮存儲(chǔ)技術(shù),以便盡量減少不必要的額外空間。

56.D數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過(guò)程,故選項(xiàng)A敘述錯(cuò)誤。數(shù)據(jù)的物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),故選項(xiàng)B敘述錯(cuò)誤。關(guān)系中的行稱(chēng)為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,關(guān)系中的列稱(chēng)為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,故選項(xiàng)C敘述錯(cuò)誤。所以本題選D。

57.A解析:本題考查了二維數(shù)組元素的引用方法。選項(xiàng)A中a+i指向了數(shù)組a的第i+1行,*(a+i)則是第i+1行第0列的地址值,*(a+i)+j指向了數(shù)組a第i+1行,j+1列,*(*(a+i)+j)取到的是數(shù)組a的a[i][j]元素。

58.A解析:本題考核的知識(shí)點(diǎn)是for語(yǔ)句與switch語(yǔ)句地綜合運(yùn)用。switch語(yǔ)句的執(zhí)行過(guò)程是:在switch后面的表達(dá)式的值和case后面常量表達(dá)式的值吻合時(shí),就執(zhí)行該case分支的語(yǔ)句。如果在該語(yǔ)句的后面沒(méi)有break語(yǔ)句,則按順序繼續(xù)執(zhí)行下一個(gè)case分支,直到遇到break語(yǔ)句或switch多分支語(yǔ)句結(jié)束,在switch語(yǔ)句中,break語(yǔ)句的作用是使流程跳出switch結(jié)構(gòu),終止switch語(yǔ)句的執(zhí)行.在本題中,因?yàn)槊總€(gè)case語(yǔ)句后面都沒(méi)有break語(yǔ)句,所以,第一輪循環(huán)(i==1)執(zhí)行過(guò)后a的值為8,第2輪(i==2)執(zhí)行過(guò)后a的值為16,第3輪(i==3)執(zhí)行過(guò)后a的值為26,第4輪(i==4)執(zhí)行過(guò)后a的值為31,然后執(zhí)行“i++”語(yǔ)句,這時(shí)循環(huán)條件為假,循環(huán)結(jié)束.所以,4個(gè)選項(xiàng)中A為所選。

59.B解析:本題考核的知識(shí)點(diǎn)是for循環(huán)次數(shù)的計(jì)算.本程序中for循環(huán)的次數(shù)為c-1+1共循環(huán)了c次,而每循環(huán)一次s的值加1,所以s的值為s+c.而最開(kāi)始s的值為a,故4個(gè)選項(xiàng)中選項(xiàng)B符合題意.

60.A解析:兩個(gè)實(shí)體之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對(duì)一的聯(lián)系、一對(duì)多(或多對(duì)一)的聯(lián)系和多對(duì)多的聯(lián)系;概念模型便于向各種模型轉(zhuǎn)換。由于概念模型不依賴(lài)于具體的數(shù)據(jù)庫(kù)管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。

61.B黑盒測(cè)試法指的是根據(jù)程序的外部功能,把程序本身看成一個(gè)黑盒子,設(shè)計(jì)測(cè)試用例來(lái)驗(yàn)證程序外部功能的正確性。

62.A

63.D

64.C解析:選項(xiàng)A中兩個(gè)變量的定義應(yīng)當(dāng)以逗號(hào)隔開(kāi);選項(xiàng)B中a和b應(yīng)當(dāng)分開(kāi)賦值;選項(xiàng)D中變量類(lèi)型不相匹配,b應(yīng)當(dāng)是指針型變量。

65.D

66.A本題考查函數(shù)值的類(lèi)型。在函數(shù)調(diào)用時(shí),盡管Y的類(lèi)型是float.x的類(lèi)型是double,但是因?yàn)楹瘮?shù)定義時(shí)沒(méi)有指定類(lèi)型說(shuō)明,系統(tǒng)默認(rèn)函數(shù)值的類(lèi)型為int型,所以計(jì)算后Y的類(lèi)型是int型。

67.A

68.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論