2021-2022年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第1頁
2021-2022年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第2頁
2021-2022年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第3頁
2021-2022年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第4頁
2021-2022年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.在如下結(jié)構(gòu)定義中,不正確的是()。A.

B.

C.

D.

2.若文件指針fp已正確指向文件,ch為字符型變量,以下不能把字符輸出到文件中的語句是()。

A.fget(f0,ch);

B.foutc(ch,fo);

C.fprinff(fp,”%c”,ch);

D.fwrite(&ch,sizeof(ch),1,fp);

3.若有如下形式的函數(shù):intfun(inta[],int*p,intn){…}調(diào)用函數(shù)之前需要對(duì)函數(shù)進(jìn)行聲明,則以下選項(xiàng)中錯(cuò)誤的是()。

A.intfun(int,int,int);

B.intfun(inta[],int*p,intn);

C.intfun(inta[],int*,int);

D.intfun(int[],int*,int);

4.以下不正確的定義語句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5.3]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′\xa′,′\x8′};

5.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Zhao,m,85,Zhao,m,85

B.Sun,f,90,Zhao,m,85

C.Zhao,m,85,Sun,f,90

D.Sun,f,90,Sun,f,90

6.運(yùn)行下列程序,若從鍵盤輸入字符“a”,則輸出結(jié)果是()。

charc;

c=getchar;

if(c>=a&&c<=g)c=c+4:

elseif(c>=9&&c<=2)c=c-21:

elseprintf("inputerror!\n");

putchar(c);

A.fB.tC.eD.d

7.在以下的敘述中,正確的是()。

A.線性表的順序存儲(chǔ)結(jié)構(gòu)優(yōu)于鏈表存儲(chǔ)結(jié)構(gòu)

B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表

C.棧的操作方式是先進(jìn)先出

D.隊(duì)列的操作方式是先進(jìn)后出

8.考慮下圖中的程序段,①號(hào)語句的輸出結(jié)果是()。A.A.'a'B.'t'C.'c'D.'k'

9.插入和刪除只能在一端進(jìn)行線性表,稱為()。

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

10.若有定義“intx,y;”,并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式“(x-y)?(x++):(y++)”中的條件表達(dá)式“(x-y)”等價(jià)的是()。

A.(x-y<0||x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y==0)

11.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。A.x=y+z+5.++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

12.有以下程序:

程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果()。

A.不等于10的整數(shù)

B.大于3且不等于l0的整數(shù)

C.大于3或等于l0的整數(shù)

D.小于3的整數(shù)

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

A.有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)

B.只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)

C.循環(huán)鏈表是非線性結(jié)構(gòu)

D.雙向鏈表是非線性結(jié)構(gòu)

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

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

15.第

4

棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能是

A.ABCEDB.DCBEAC.DBCEAD.CDABE

16.以下說法正確的是()。

A.C語言只接受十進(jìn)制的數(shù)

B.C語言只接受八進(jìn)制、十進(jìn)制、十六進(jìn)制的數(shù)

C.C語言接受除二進(jìn)制之外任何進(jìn)制的數(shù)

D.C語言接受任何進(jìn)制的數(shù)

17.若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);執(zhí)行后輸出結(jié)果是A.0X0B.0x0C.0D.0XABC

18.

19.在n個(gè)結(jié)點(diǎn)的線性表的數(shù)組實(shí)現(xiàn)中,算法的時(shí)間復(fù)雜度是O(1)的操作是()。

A.訪問第i(1<=i<=n)個(gè)結(jié)點(diǎn)和求第i個(gè)結(jié)點(diǎn)的直接前驅(qū)(1<i<=n)

B.在第i(1<=i<=n)個(gè)結(jié)點(diǎn)后插入一個(gè)新結(jié)點(diǎn)

C.刪除第i(1<=i<=n)個(gè)結(jié)點(diǎn)

D.以上都不對(duì)

20.語句int(*ptr)的含義是()。

A.ptr是一個(gè)返回值為int的函數(shù)

B.ptr是指向int型數(shù)據(jù)的指針變量

C.ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)

D.ptr是一個(gè)函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針

二、2.填空題(20題)21.若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

22.以下程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){staticintt=0;return(t+=x);}main(){ints,i;for(i=1;i<=5;i++)s=fun(i);printf("%d\11",s);}

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

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

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

}

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

}

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

24.若a是int型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

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

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

27.若有以下程序

main()

{chara;

a='H'-'A'+'0';

printf("%c\n",A);

}

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

28.以下程序的功能是建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

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

【】=a;q->next=p;【】=p;scanf("%d",&a);}

p->next=′\0;return(ph);}

main()

{structlist*head;head=creatlist();}

29.對(duì)于圖書管理數(shù)據(jù)庫,將圖書表中"人民郵電出版社"的圖書的單價(jià)漲價(jià)5%。請(qǐng)對(duì)下面的SQL語句填空:UPDATE圖書【】WHERE出版單位="人民郵電出版社"

30.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。

31.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”語句的輸出結(jié)果是()。

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

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

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);

}

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

main()

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

p=a;

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

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

}

35.以下程序運(yùn)行時(shí)若從鍵盤輸入:102030<回車>。輸出結(jié)果是()。

#include<stdio.h>

main()

{inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);

}

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

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

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

38.下面函數(shù)用來求兩個(gè)單精度數(shù)之和,并通過形參將結(jié)果傳回,請(qǐng)?zhí)羁铡?/p>

Voidsub(floatx,noaty,【】z)

{【】=x+y;}

39.表示條件;10<x<100或x<0的C語言表達(dá)式是【】。

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

#include<stdio.h>

sb(ints[].intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8);

inti,x=0;

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

{x=sb(s,x);

printf(:%d",x);

}

printf("\n");

}

三、1.選擇題(20題)41.關(guān)系表中的每一橫行稱為一個(gè)()。A.元組B.字段C.屬性D.碼

42.用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是

A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上三個(gè)都是

43.若有定義:char*x="abcdefghi";,以下選項(xiàng)中正確運(yùn)用了strcpy函數(shù)的是()。

A.chary[10];strcpy(y,x[4]);

B.chary[10];strcpy(++y,&x[1]);

C.chary[10],*s;strcpy(s=y+5,x);

D.chary[10],*s;strcpy(s=y+1,x+1);

44.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。

A.順序存儲(chǔ)的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表

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

A.線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.雙向鏈表是非線性結(jié)構(gòu)D.只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)

46.在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是()。

A.整型表達(dá)式B.整型常量C.整型常量或整型表達(dá)式D.任何類型的表達(dá)式

47.下列敘述中,錯(cuò)誤的是()

A.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)

B.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)

C.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的

D.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)

48.在最壞情況下,下列排序方法中時(shí)間復(fù)雜度最小的是()。

A.冒泡排序B.快速排序C.插入排序D.堆排序

49.判斷字符型變量chr為小寫字母的表達(dá)式是______。

A.'a'<=chr<='z'

B.(chr>='a')||(chr<='z')

C.(chr>=A)&&(chr<=z)

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

50.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是()。

A.*p=&a;sCanf("%1f",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%1f",*p);

D.p=&a;scanf("%1f",p);

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

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)

52.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。

A.順序存儲(chǔ)的有序線性表B.線性鏈表C.二叉鏈表D.有序線性鏈表

53.一個(gè)良好的算法由下面的基本結(jié)構(gòu)組成,但不包括______。

A.順序結(jié)構(gòu)B.選擇結(jié)構(gòu)C.循環(huán)結(jié)構(gòu)D.跳轉(zhuǎn)結(jié)構(gòu)

54.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}

A.16B.2C.9D.1

55.用鏈表表示線性表的優(yōu)點(diǎn)是()。

A.便于隨機(jī)存取B.花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少C.便于插入和刪除操作D.數(shù)據(jù)元素的物理順序和邏輯順序相同

56.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。

A.控制程序的執(zhí)行順序B.模塊之間的調(diào)用關(guān)系C.數(shù)據(jù)的流向D.程序的組成成分

57.設(shè)有定義:intk=0;,下列選項(xiàng)的4個(gè)表達(dá)式中與其他3個(gè)表達(dá)式的值不相同的是()。

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

58.有以下程序:#include<stdio.h>main(){inta=6,b=7,m=1;switch(a%2){case0:m++;break;case1:m++;switch(b%2){defaut:m++;case0:m++;break;}}printf("%d\n",m);}

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

59.有下列程序: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);printf("%d,",k);k=fun(j,m);printf("%d\n".k);}執(zhí)行后的輸出結(jié)果是()。

A.5,5B.5,11C.11,11D.11,5

60.下面關(guān)于完全二叉樹的敘述中,錯(cuò)誤的是______。

A.除了最后—層外,每—層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值

B.可能缺少若干個(gè)左右葉子結(jié)點(diǎn)

C.完全二叉樹—般不是滿二叉樹

D.具有結(jié)點(diǎn)的完全二叉樹的深度為[log2n]+1

四、選擇題(20題)61.軟件詳細(xì)設(shè)計(jì)的主要任務(wù)是確定每個(gè)模塊的()。

A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程

62.

設(shè)變量均已正確定義,

值10和20,為變量cl和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:口代表空格字符.()。

A.

B.

C.

D.

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

A.Zha0,m,85,90,Qian,f,95,92

B.Zha0,m,85,90,Zha0,m,85,90

C.Qian.f,95,92,Qian,f,95,92

D.Qian,f,95,92,Zha0,m,85,90

64.

65.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain{intb[6]={2,4,6,8,10,12);int*p=b,**q=&p;printf("%d,",*(p++));printf("%d,",**q);}A.4,4B.2,2C.4,5D.2,4

66.

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

#include<stdio.h>

intfun(inta)

{intb=0;

staticintc=4:

a=c++:b++;

return(a):

main

{inta=2,i,c;

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

c=f(a+1):

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

}

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

67.表達(dá)式:(im)((double)9/2)一9%2的值是()。

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

68.

69.關(guān)系數(shù)據(jù)庫管理系統(tǒng)所管理的關(guān)系是()。A.若干個(gè)二維表B.一個(gè)DBF文件C.一個(gè)DBC文件D.若干個(gè)DBC文件

70.有以下程序

71.有以下程序:

#include<stdio.h>

intf(intm)

{staticintn=0;

n+=m;

returnn;

}

main()

{intn=0;

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

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

}

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

A.1,2

B.1,1

C.2,3

D.3,3

72.

73.有下列程序:

intfun(intn)

{if(n==1))returnl;

else

return(n+fun(n-1)):

}

main()

{intx;

seanf("%d",&x);x=fun(x);printf("%d\n",x);

}

執(zhí)行程序時(shí),給變量x輸入l0,程序的輸出結(jié)果是()。

A.55

B.54

C.65

D.45

74.有以下程序:

以上程序執(zhí)行后abc.dat文件的內(nèi)容是()。

A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina

75.以下選項(xiàng)中,能表示邏輯值“假”的是()

A.1B.0.000001C.0D.100.0

76.

77.有以下程序

78.在執(zhí)行下述程序時(shí),若從鍵盤輸入6和8,則結(jié)果為()。

A.36B.64C.48D.以上都不對(duì)

79.

80.若有定義“floata=25,b,*p=&b;”,則下列對(duì)賦值語句“*p=a;”和“p=&a;”的正確解釋為()。

A.兩個(gè)語句都是將變量a的值賦予變量P

B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P

C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a

D.兩個(gè)語句都是使P指向變量a

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:先將字符串s中的字符按順序存放到t中,然后把S中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時(shí),則t中的字符串應(yīng)為WXYZWXYZ。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

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

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#include<string.h>

voidproc(char*s,char*t)

{

inti,s1;

s1=strlen(s);

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

//****found****

t[i]=s[s1];

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

t[s1+i]一s[i];

t[2*s1]=\O0;

}

voidmain

{

chars[100],t[100];

system("CLS");

print{("\nPleaseenterstrings:");

scanf("%s",s);

proc(s,t);

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

}

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫一個(gè)函數(shù),用來刪除字符串中的所有空格。例如,輸入abcdefgh,則輸出為abcdefgh。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.A函數(shù)fgete()從文件讀入一個(gè)字符到指定變量。函數(shù)fputc()將指定字符寫入審文件中,函數(shù)fprinff(),fwrite()均是寫入文件操作函數(shù)。因此選項(xiàng)B,c。D錯(cuò)誤。答案為A選項(xiàng)。

3.AC語言中,函數(shù)聲明的函數(shù)名、返回值類型和參數(shù)列表必須與函數(shù)定義相同。其中參數(shù)列表中可以省略參數(shù)名。題干中,fun函數(shù)返回整型,3個(gè)參數(shù)分別是:整型指針、整型指針、整型。選項(xiàng)A中,第1個(gè)參數(shù)應(yīng)該是整型指針類型,第2個(gè)參數(shù)也應(yīng)該是指針類型,錯(cuò)誤;其他選項(xiàng)都正確。故本題答案為A選項(xiàng)。

4.B

5.D程序定義結(jié)構(gòu)體類型STU,main函數(shù)定義結(jié)構(gòu)體STU變量b,并將b的地址賦給指針變量a。調(diào)用函數(shù)f,傳入a。在函數(shù)f中,定義了STU變量c,并將c的地址賦給d,再用d指向的值賦給a指向的地址,接著輸出a指向的值,也就是c的值:Sun,f,90。由于函數(shù)f的調(diào)用通過指針參數(shù)a修改了變量b的值,因此a指向的值也就是b的值等價(jià)于c:Sun,f,90。本題答案為D選項(xiàng)。

6.C

\ngetchar函數(shù)是讀取鍵盤的輸入函數(shù),本題中輸入字母“a”,則c=a,判斷if條件,發(fā)現(xiàn)a>=a&&a<=g成立,則執(zhí)行下列語句:C=C+4,C得到的字符的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符。

7.B

8.D

9.C

10.A條件表達(dá)式“x=表達(dá)式1?表達(dá)式2:表達(dá)式3”的含義是:先求解表達(dá)式1,若其值不為0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x;若表達(dá)式1的值為0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給X。本題中與條件表達(dá)式“(x-y)”等價(jià)的是“(x-y<0||lx-y>0)”。故本題答案為A選項(xiàng)。

11.A[解析]B)與D)選項(xiàng)中取模運(yùn)算符%的左右兩個(gè)操作數(shù)均應(yīng)為整數(shù),所以B)、D)錯(cuò)誤。C)選項(xiàng)中不能將x+z的值賦給表達(dá)式y(tǒng)*5.所以C)錯(cuò)誤。

12.Bif-else控制結(jié)構(gòu)中,else總是與最近的未配對(duì)的if匹配。本題的執(zhí)行過程為:如果輸入整數(shù)小于3則不進(jìn)行任何操作,否則判斷該整數(shù)是否不等于l0,若為真則進(jìn)行輸出。因此程序輸出的數(shù)據(jù)為大于3且不等于l0的整數(shù)。

13.B解析:如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足以下兩個(gè)條件:(l)有且只有一個(gè)根結(jié)點(diǎn);(2)每個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。如果一個(gè)數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱之為非線性結(jié)構(gòu),故A項(xiàng)錯(cuò)誤。有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu),如二叉樹,B項(xiàng)說法正確。循環(huán)鏈表和雙向鏈表都屬于線性鏈表。故C、D項(xiàng)錯(cuò)誤。

14.B

15.B解析:棧操作原則上“后進(jìn)先出”,棧底至棧頂依次存放元素A、B、C、D,則表明這4個(gè)元素中D是最后進(jìn)棧,B、C處于中間,A最早進(jìn)棧。所以出棧時(shí)一定是先出D,再出C,最后出A。

16.BC語言可以使用格式控制符“%d”“%u”等接受十進(jìn)制的數(shù),使用“%o”接受八進(jìn)制的數(shù),使用“%x”接受十六進(jìn)制的數(shù)。本題答案為B選項(xiàng)。

17.C解析:格式字符x或x是以十六進(jìn)制無符號(hào)形式輸出整型數(shù)(不帶前導(dǎo)0x或OX)。對(duì)于x用abc輸出,X用ABC輸出。

18.C

19.A

20.C本題考查的是指向函數(shù)的指針。函數(shù)指針定義的基本格式為:類型標(biāo)識(shí)符(*指針變量名)()?!邦愋蜆?biāo)識(shí)符”為函數(shù)返回值的類型。

21.33解析:這里:b-5=4,a-=4之后a的值為6,并把它賦給c。此時(shí)b的值并未被改變。在第2個(gè)表達(dá)式中,也只有賦值表達(dá)式b=3改變了b的值。所以兩行語句執(zhí)行完畢,b的值應(yīng)該為3。

22.1515解析:在函數(shù)fun(intx)中定義了局部靜態(tài)整形變量t,并初始化為0。這個(gè)函數(shù)的返回值為t+x。所以在主函數(shù)的for循環(huán)中,5次連續(xù)調(diào)用fun(i),實(shí)現(xiàn)了從1到5連續(xù)數(shù)字的相加運(yùn)算。因而最后結(jié)果等于15。

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

24.1212解析:本題考查逗號(hào)表達(dá)式的運(yùn)算規(guī)則。逗號(hào)表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個(gè)表達(dá)式的結(jié)果取最后一個(gè)子表達(dá)式的值。本題中首先計(jì)算逗號(hào)表達(dá)式中的第1個(gè)表達(dá)式a=2*3=6,然后計(jì)算第2個(gè)表達(dá)式a*2,這時(shí)整個(gè)表達(dá)式的值為12,但要注意,因?yàn)榈?個(gè)表達(dá)式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個(gè)表達(dá)式a+6=12,所以整個(gè)表達(dá)式最后的值為12。

25.2424解析:本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當(dāng)x=4時(shí),不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結(jié)果為4*3*2*1-24。

26.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲(chǔ)單元的首地址。指針的定義:

類型說明符*指針變量名;

27.77解析:字符型數(shù)據(jù)可作為整型參加算術(shù)運(yùn)算,其值為其對(duì)應(yīng)的ASCII碼。'H'-'A',的結(jié)果是7,加'0'后是'7'的ASCII碼,所以輸出的是字符'7'。

28.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對(duì)結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點(diǎn)是結(jié)構(gòu)體變量中有兩個(gè)域,一個(gè)是數(shù)據(jù),另一個(gè)是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個(gè)結(jié)點(diǎn)。

29.SET單價(jià)=單價(jià)*1.05SET單價(jià)=單價(jià)*1.05解析:更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個(gè)或多個(gè)屬性值。UPDATE短語之后指定更新數(shù)據(jù)所屬的表,將新的屬性值或表達(dá)式賦值給對(duì)應(yīng)的屬性名(SET單價(jià)=單價(jià)*1.05),并置于SET短語之后。要求對(duì)人民郵電出版社的圖書漲5%,需要用WHERE短語對(duì)元組進(jìn)行限制,即對(duì)符合條件的元組進(jìn)行更新。

30.可重用性繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

31.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格;\'\\'\'是轉(zhuǎn)義字符,代表雙引號(hào):\'\\023\'也只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)符;\'\\xAB\'是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。題中語句中的字符串有5個(gè)字符常量各代表一個(gè)字符,再加上字母C,所以返回的長度是6。

32.指針P指向數(shù)組a的首地址,執(zhí)行語句p++;后p指向數(shù)組a的第2個(gè)元素的地址,即a[1]的地址,因此*p=a[1]=4。\r\n\r\n

33.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。

34.1a61a6解析:對(duì)于指針變量的運(yùn)算,就是對(duì)地址的運(yùn)算。本題中由于指針指向的是整型變量,所以,使指針變量移動(dòng)9個(gè)位置也就是移動(dòng)18個(gè)字節(jié)。注意,本題是以十六進(jìn)制輸出的。

35.1030010300解析:本題的考點(diǎn)是C語言的scanf的“%*d”?!?*d”是在輸入流中跳過一個(gè)整數(shù),而讀入下一個(gè)整數(shù)。因此語句“scanf('%d%*d%d',&i,&j,&k);”在讀入10、20、30時(shí),將10讀入到i中,將20跳過,將30讀入到j(luò)中,而k沒有讀入數(shù),仍是初值的0。

36.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當(dāng)y能被3整除時(shí)輸出表達(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。

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

38.float*z

39.(x>10&&x<100)||x<0

40.86518651解析:主程序中,第一次循環(huán)時(shí),i=0,調(diào)用sb(s,x)子函數(shù),此時(shí)n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時(shí),i=1,調(diào)用sb(s,x)子函數(shù),因?yàn)閷定義為了靜態(tài)變量,所以此時(shí)n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時(shí),i=2,調(diào)用sb(s,x)子函數(shù),此時(shí)n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時(shí),i=3,調(diào)用sb(s,x)子函數(shù),此時(shí)n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。

41.A解析:關(guān)系表中,每一行稱為一個(gè)元組,對(duì)應(yīng)表中的一條記錄;每一列稱為表中的一個(gè)屬性,對(duì)應(yīng)表中的一個(gè)字段;在二維表中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。

42.C解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實(shí)體之間的聯(lián)系是用樹形結(jié)構(gòu)來表示的,其中實(shí)體集(記錄型)是樹中的結(jié)點(diǎn),而樹中各結(jié)點(diǎn)之間的連線表示它們之間的關(guān)系。因此,本題的正確答案是C。

43.D解析:字符串復(fù)制函數(shù)strcpy調(diào)用形式為:“strcpy(s1,s2)”,其功能為把s2所指字符串的內(nèi)容復(fù)制到s1所指空間,函數(shù)返回s1的值,即目的串的首地址。為保證復(fù)制的合法性,s1必須指向一個(gè)足夠容納s2串的存儲(chǔ)空間。

44.A\nA。【解析】二分法查找只適用于順序存儲(chǔ)的有序線性表,對(duì)于順序存儲(chǔ)的非有序線性表和線性鏈表,都只能采用順序查找。

\n

45.A解析:一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)如果滿足下列兩個(gè)條件:(1)有且只有一個(gè)根結(jié)點(diǎn);(2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件,則稱為線性結(jié)構(gòu)。線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),選項(xiàng)A的說法是正確的。棧與隊(duì)列是特殊的線性表,它們也是線性結(jié)構(gòu),選項(xiàng)B的說法是錯(cuò)誤的:雙向鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),其對(duì)應(yīng)的邏輯結(jié)構(gòu)也是線性結(jié)構(gòu),而不是非線性結(jié)構(gòu),選項(xiàng)C的說法是錯(cuò)誤的;二叉樹是非線性結(jié)構(gòu),而不是線性結(jié)構(gòu),選項(xiàng)D的說法是錯(cuò)誤的。因此,本題的正確答案為A。

46.C解析:在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型可以是整型常量,也可以是整型表達(dá)式。

47.B解析:數(shù)據(jù)處理是計(jì)算機(jī)應(yīng)用的重要領(lǐng)域,在實(shí)際數(shù)據(jù)處理時(shí),被處理的各數(shù)據(jù)元素總是被存放在計(jì)算機(jī)的存儲(chǔ)空間中,并且各數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)空間中的位置關(guān)系與它們的邏輯關(guān)系不一定是相同的,一般也不可能相同。數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。一般來說,數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等存儲(chǔ)結(jié)構(gòu)。而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率也是不同的。

48.D解析:在最壞情況下:冒泡排序需要的比較次數(shù)為n(n-1)/2;快速排序需要的比較次數(shù)也為n(n-1)/2;插入排序需要的比較次數(shù)也為n(n-1)/2;堆排序需要比較的次數(shù)為O(nlog2n)??芍谧顗那闆r下,堆排序的時(shí)間復(fù)雜度最小,本題的正確答案為選項(xiàng)D。

49.B解析:程序段中定義x值為1,!x值為0,因此循環(huán)執(zhí)行的條件永遠(yuǎn)成立,該循環(huán)是死循環(huán)。

50.D解析:double*p,a;語句表示定義了一個(gè)指向雙精度型的指針變量p和雙精度型變量a,而語句p=&a表示將變量a的地址賦給指針變量p;scanf'('%1f',p)表示用鍵盤輸入的數(shù)賦給指針變量p所指向的地址單元中。scanf()函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f(或%1e)。否則,數(shù)據(jù)不能正確輸入。所以選項(xiàng)D)為正確答案。

51.C解析:帶參數(shù)宏的格式為:#define標(biāo)識(shí)符(形參表)形參表達(dá)式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實(shí)參的宏名,展開成由實(shí)參組成的表達(dá)式。

52.A\r\n二分法又叫折半(對(duì)分)查找法,只適合于順序存儲(chǔ)的有序表(是指線性表中的元素按值非遞減排列)。二分法的基本思想是:設(shè)有序線性表的長度為n,被查元素為X,則二分查找的方法如下:

將X與線性表的中間項(xiàng)進(jìn)行比較:若中間項(xiàng)的值等于x,則說明找到,查找結(jié)束;若x小于中間項(xiàng)的值,則在線性表的前半部分(即中間項(xiàng)以前的部分)以相同的方法進(jìn)行查找;若X大于中間項(xiàng)的值,則在線性表的后半部分(即中間項(xiàng)以后的部分)以相同的方法進(jìn)行查找、這個(gè)過程-直進(jìn)行到查找成功或于表長度為0,(說明線性表中沒有這個(gè)元素為止)順序存儲(chǔ)的線性袁在計(jì)算機(jī)中-般用一個(gè)-維數(shù)組來表示,在數(shù)組中我們可以通過數(shù)組名和下標(biāo)來對(duì)數(shù)組中的任意一個(gè)元素進(jìn)行訪問,而在鏈表(不管是有序還是無序)中,要對(duì)元素進(jìn)行訪問必須從表頭結(jié)點(diǎn)開始,順著鏈條一個(gè)一個(gè)結(jié)點(diǎn)進(jìn)行搜索,因此選項(xiàng)A正確

53.D解析:1966年,Bohra和Jacopini提出了以下三種結(jié)構(gòu),用這三咱基本結(jié)構(gòu)作為表示一個(gè)良好算法的基本單元:1、順序結(jié)構(gòu);2、選擇結(jié)構(gòu);3、循環(huán)結(jié)構(gòu)。

54.D解析:本題考查帶參數(shù)的宏調(diào)用。a/=SQR(k+m)/SQR(k+m)進(jìn)行宏替換后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。

55.C【解析】在鏈表中因?yàn)槌舜娣艛?shù)據(jù)元素之外,還要存放指針,所以鏈表花費(fèi)的存儲(chǔ)空間要比順序表還要多,在插入和刪除數(shù)據(jù)元素時(shí),只需要移動(dòng)相應(yīng)的記錄指針即可,在鏈表中,數(shù)據(jù)的物理結(jié)構(gòu)與邏輯結(jié)構(gòu)不一定相同,因?yàn)槭强恐羔榿韺?shí)現(xiàn)對(duì)數(shù)據(jù)的指定的,所以不能進(jìn)行隨機(jī)存取。

56.C解析:數(shù)據(jù)流相當(dāng)于一條管道,并有一級(jí)數(shù)據(jù)(信息)流經(jīng)它。在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,并且可以從外部實(shí)體流向系統(tǒng)或從系統(tǒng)流向外部實(shí)體。

57.A

58.B解析:本題考查swish語句。第一個(gè)switch語句,因?yàn)閍=6,a%2=0,所以執(zhí)行case0,將m加1,遇到break語句跳出switch語句,結(jié)束循環(huán)。

59.B解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+

溫馨提示

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