2022-2023年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第1頁
2022-2023年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第2頁
2022-2023年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第3頁
2022-2023年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第4頁
2022-2023年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.用不帶頭結(jié)點的單鏈表存儲隊列時,其隊頭指針指向隊頭結(jié)點,其隊尾指針指向隊尾結(jié)點,則在進行刪除操作時()。

A.僅修改隊頭指針B.僅修改隊尾指針C.隊頭、隊尾指針都要修改D.隊頭,隊尾指針都可能要修改

2.樹的度為3,且有9個度為3的節(jié)點,5個度為1的節(jié)點,但沒有度為2的節(jié)點。則該樹中的葉子節(jié)點數(shù)為()。

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

3.以下選項中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L

4.下列敘述中,不正確的是

A.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題

B.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致

C.數(shù)據(jù)庫設(shè)計是指設(shè)計一個能滿足用戶要求,性能良好的數(shù)據(jù)庫

D.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),但是需要操作系統(tǒng)的支持

5.

6.下列敘述中,正確的是()

A.軟件交付使用后還需要進行維護

B.軟件一旦交付使用就不需要再進行維護

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護是指修復(fù)程序中被破壞的指令

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

A.用C語言編寫的程序只能放在一個程序文件中

B.C語言程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個語句

C.C語言程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面

D.C語言程序書寫格式自由,一個語句可以寫在多行上

8.

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

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

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

C.棧的操作方式是先進先出

D.隊列的操作方式是先進后出

10.若已包括頭文件且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語句錯誤的是()。

A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

D.for(i=0;i<6;i++)sl[i]=s2[i]

11.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.eeaabmmnhhirrstu

B.efgabcdmnopqhijkIrstuvwxyz

C.efgacdmopqhjkIrvwxyz

D.eefgaabcdmmnopqhhijkIrrstuvwxyz

12.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

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

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

13.

14.以下選項中非法的字符常量是()。

A.\101B.\65C.\xffD.\019

15.

16.同一個關(guān)系模型的任意兩個元組值()。

A.可以全相同B.不能全相同C.必須全相同D.以上都不對

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

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

18.數(shù)據(jù)流圖用于抽象地描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。

A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭

19.以下正確的字符串常量是()。A.“\\\”B.‘a(chǎn)bc’C.OlympicGamesD.“”

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

A.通過指針變量存取某個變量值的方式稱為“直接存取”方式

B.在程序的開頭包含頭文件stdio.h后,可以給指針變量賦NULL值

C.將一個指針變量中的值賦給另一個指針變量,則這兩個指針變量指向同一地址

D.C語言中函數(shù)返回值的類型可以是簡單的數(shù)據(jù)類型,也可以是指針類型

二、2.填空題(20題)21.在ER圖中,矩形表示【】。

22.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

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

#include<stdio.h>

main()

{intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

24.數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

25.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向該文件,則程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{FILE*fr;charstr[40];

fgets(str,5,fr);

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

felose(fr);

}

26.一棵二叉樹第6層(根結(jié)點為第一層)的結(jié)點最多為______個。

27.有以下程序

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

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

28.下述函數(shù)用于統(tǒng)計—行字符中的單詞個數(shù),單詞之間用空格分隔。

word_num(str)

charstr[];

{int,num=O,word=O;

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

if(【】=")wprd=0

elseif(word=O)

{

word=1:

【】;

}

return(num);

}

29.若a是血型變量,且a的初值為4,則計算a+=a-=a*a表達式后a的值為______。

30.\13'在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。

31.根據(jù)以下if語句寫出與其功能相同的switch語句(x的值在0~100之間)。

if語句:

if(x<60)m=1;

elseif(x<70)m=2;

elseif(x<80)m=3;

elseif(x<90)m=4;

elseif(x<100)m=5;

switch語句:

switch(【】)

{

【】m=1;break;

case6:m=2;break;

case7:m=3;break;

case8:m=4;break;

【】m=5;

}

32.下面的程序為6個整型變量A、B、C、D、E、F輸入整數(shù),并按從大到小的順序輸出整數(shù)及其所對應(yīng)的變量名。例如,輸入的數(shù)為3、2、5、7、4、6,則輸出的形式為:D(7)F(6)C(5)E(4)A(3)B(2)。

#include<stdio.h>

intA,B,C,D,E,F(xiàn);

struct

{

charn;

【】;

}tb1[]={{'A',&A},{'B',&B},{'C',&c},{'D',&D),{'E',&E},{'F',&F}},t;

main()

{

inti,j;

for(i=0;i<6;i++)scanf("%d",【】);

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

for(j=0;j<5-i;j++)

if(【】)

{

t=tb1[j];

tb1[j]=tb1[j+1];

tb1[j+1]=t;

}

for(i=0;i<6;i++)printf("%c(%d)",tb1[i].n,*tb1[i].p);

printf("\n");

}

33.按“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。

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

main()

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

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

}

35.執(zhí)行以下程序后sum的值是【】。

main()

{

inti,sum;

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

sum+=i;

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

}

36.以下程序通過函數(shù)SunFun求。這里f(x)=x2+1,由F函數(shù)實現(xiàn)。請?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;}

37.診斷和改正程序中錯誤的工作通常稱為【】。

38.數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。

39.若x和a均是int型變量,則計算完x=(a=4,6*2)后的x值為______。

40.若下面程序的輸出結(jié)果是4,請?zhí)羁铡?/p>

main()

{inti,j,k;

k=0;i=j=【】;

k+=-(i+j);printf("%d\n",k);

}

三、1.選擇題(20題)41.已知a、b、c為整型變量,若從鍵盤輸入5<空格>6<空格>7<回車>,使a的值為5,b的值為6,c的值為7,則下列選項中正確的輸入語句是()。

A.scanf("%3d%3d%3d",a,b,C);

B.scanf("%d%d%d",a,b,C);

C.scanf("%d%d%d",&a,&b,&c);

D.scanf("%d%d%d",&a,&b,&c);

42.樹最適合用來表示()。

A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關(guān)系的數(shù)據(jù)D.元素之間無聯(lián)系的數(shù)據(jù)

43.下面對對象概念描述,不正確的是

A.任何對象都必須有繼承性B.對象是屬性和方法的封裝體C.對象間的通訊靠消息傳遞D.操作是對象的動態(tài)屬性

44.有以下程序:#include<stdio.h>main(){intx;scanf("%d",&x);if(x<=0);elseif(x!=5)printf("%d\n",x);}程序運行時,輸入的值在哪個范圍才會有輸出結(jié)果()。

A.不等于5的整數(shù)B.大于0且不等5的整數(shù)C.大于0或等于5的整數(shù)D.小于5的整數(shù)

45.如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意順序

46.在下列敘述中,正確的一條是_______。

A.#defineprintf都是C語句

B.#define是C語句,而priatf不是

C.printf是C語句,但#define不是

D.#define和printf都不是C語句

47.閱讀下列程序,當(dāng)運行函數(shù)時,輸入asdafaaz67,則輸出為

#include<stdio.h>

#include<ctype.h>

#include<string.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=′\0′;i++)

if(str[i]!=′′)str[j++]=str[i];

str[j]=′\0′;

}

main()

{

charstr[81];

intn;

printf("Inputastring:");

gets(str);

puts(str);

fun(str);

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

}

A.asdafaaz67B.asdafaaz67C.asdD.z67

48.設(shè)有如下的變量定義;inti=8,k,a,b;unsingedlongw=5;doublex=1.42,y=5.2則以下符合C語言語法的表達式是()

A.a+=a-=(b=4)*(a=3)B.x%(-3);C.a=a*3=2D.y=float(i)

49.某二叉樹中度為2的結(jié)點有10個,則該二叉樹中有()個葉子結(jié)點。

A.9B.10C.11D.12

50.設(shè)有下列說明語句:strcutstr{intx;floaty;charz;}st;則下列的敘述中不正確的是()。

A.00001111B.11111101C.00000010D.11000000

51.在軟件生產(chǎn)過程中,需求信息的來源是()

A.程序員B.項目經(jīng)理C.設(shè)計人員D.軟件用戶

52.若有定義:floatx=1.5;inta=1,b=3,c=2;,則正確的switch語句是

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf(**\n);}casec:printf(**\n);}

53.標(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中

54.設(shè)有程序段:intk=12:while(k=1)k=k-1:則下列描述中正確的是()。

A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

55.假定所有變量均已正確說明,下列程序段運行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

56.設(shè)有定義:intk=1,m=2;floatf=7;則下列選項中錯誤的表達式是()。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

57.一個C語言程序是由()

A.一個主程序和若干子程序組成B.函數(shù)組成C.若干過程組成D.若干子程序組成

58.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運行該程序的輸出結(jié)果是______。

A.34B.42C.43D.33

59.下列關(guān)于線性鏈表的描述中正確的是()。

A.存儲空間不一定連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且各前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

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

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

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

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

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

四、選擇題(20題)61.

62.設(shè)有定義:intx-2;,以下表達式中,值不為6的是()。A.2*x,X+=2B.x++,2*xC.x*=(1+x)D.x*=x+1

63.執(zhí)行下列程序時輸入:123<空格>456<空格>789<回車>輸出結(jié)果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456

64.設(shè)有如下定義:char*aa[2]={"abcd","ABCD"};則以下說法中正確的是()。

A.aa數(shù)組成元素的值分別是"abcd"和ABCD"

B.aa是指針變量,它指向含有兩個數(shù)組元素的字符型一維數(shù)組

C.aa數(shù)組的兩個元素分別存放的是含有4個字符的一維字符數(shù)組的首地址

D.aa數(shù)組的兩個元素中各自存放了字符’a’和’A’的地址

65.下列選項中,能夠滿足“若字符串sl等于字符串s2,則執(zhí)行ST”要求的是()。

A.if(stremp(s2,s1)==0)ST;

B.if(s1==s2)ST;

C.if(strcpy(sl,s2)==l)ST;

D.if(sl,s2==O)ST;

66.下列說法不正確的是()。

A.調(diào)用函數(shù)時,實參可以是表達式

B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元

C.調(diào)用函數(shù)時,將實參的值復(fù)制給形參,使實參變量和形參變量在數(shù)值上相等

D.調(diào)用函數(shù)時,實參與形參的類型必須一致

67.(42)希爾排序法屬于哪一種類型的排序法()

A.交換類排序法

B.插入類排序法

C.選擇類排序法

D.建堆排序法

68.以下數(shù)組定義中錯誤的是()。

69.下述程序的輸出結(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

70.設(shè)有intx=11;則表達式(x++*1/3)的值是()。

A.3B.4C.11D.12

71.若變量已正確定義,在if(W)塒ntf(”%d\n”,k);中,以下不可替代w的是()。

A.a<>b+CB.ch=getcharC.a==b+CD.a++

72.

s1和s2已正確定義并分別指向兩個字符串。若要求:當(dāng)s1所指串大于s2所指串時,執(zhí)行語句s;則以下選項中正確的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,sl)>O)S;

D.if(stremp(s1,s2)>O)S;

73.按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()。

A.大寫字母B.連接符C.數(shù)字字符D.下劃線

74.在軟件開發(fā)中,需求分析階段可以使用的工具是()。A.N—s圖B.DFD圖C.PAD圖D.程序流程圖

75.分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是

A.?dāng)?shù)據(jù)的物理分布性和邏輯整體性B.位置透明性和復(fù)制透明性

C.事物管理的集中性D.?dāng)?shù)據(jù)冗余

76.一些重要的程序設(shè)計語言(inC語言和Pascal語言)允許過程的遞歸調(diào)用,而實現(xiàn)遞歸調(diào)用中的存儲分配通常用()。

A.棧B.堆C.數(shù)組D.鏈表

77.

有以下程序

#include<stdio.h>

voidfun(char**p)

{++p;printf("%s",*p);}

main

{char*a[]={"Morning","Afternoon","Evening","Night");

fun(a);

}

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

A.AfternoonB.fternoonC.MorningD.orning

78.

79.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細設(shè)計說明書C.用戶手冊D.軟件需求規(guī)格說明書

80.如果在C程序中要用到庫函數(shù)中的字符串比較函數(shù)strcmp(),那么在程序前面應(yīng)該添加的頭文件是()。

A.stdio.hB.string,hC.a(chǎn)lloc.hD.math.H

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:對M名學(xué)生的學(xué)習(xí)成績,按從低到高的順序找出前m(m≤10)名學(xué)生來,并將這些學(xué)生數(shù)據(jù)存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數(shù)值返回。

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

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

試題程序:

六、程序設(shè)計題(1題)82.請編寫fun()函數(shù),其功能是:計算并輸出3~m所有素數(shù)的平方根之和。例如,若主函數(shù)從鍵盤給m輸入50后,則輸出為s=63.665791。注意:m的值要大于2但不大于l00。部分源程序給出如下。請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D

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

3.D在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。整型常量和實型常量又稱數(shù)值型常量?;菊统A恐荒苡脭?shù)字表示,不帶小數(shù)點,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—個字母l(L的小寫)或L;實型常量必須用帶小數(shù)點的數(shù)表示,例如3.14159、-2.71828、0.0等;選項A中字母o不符合要求,選頂B中超出八進制的范圍,選項C中e后面的不為整數(shù),因此選頂D是正確的。

4.B解析:B選項錯誤,原因是,數(shù)據(jù)庫應(yīng)該具有物理獨立性和邏輯獨立性,改變其一而不影響另一個。

5.C

6.A解析:維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段。軟件工程學(xué)的目的就在于提高軟件的可維護性,同時也要設(shè)法降低維護的代價。

軟件維護通常有以下四類;

①為糾正使用中出現(xiàn)的錯誤而進行的改正性維護;

②為適應(yīng)環(huán)境變化而進行的適應(yīng)性維護;

③為改進原有軟件而進行的完善性維護;

④為將來的可維護和可靠而進行的預(yù)防性維護。

軟件維護不僅包括程序代碼的維護,還包括文檔的維護。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護。只有與程序代碼完全一致的文檔才有意義和價值。由此可知,本題中選項B、C、D中的說法都是錯誤的。

7.D用C語言編寫的程序可以放置于多個程序文件中,所以A選項錯誤。C語言程序中的一行可以有多條語句,所以B選項錯誤。C語言中的注釋語句可以與原語句放在一行,也可以不放在一行,所以C選項錯誤。故本題答案為D選項。

8.C

9.B

10.C數(shù)組名sl是代表sl數(shù)組首地址的地址常量,因為“=”左邊不能出現(xiàn)常量,所以s1="ABCDE"的方法是錯誤的。

11.C程序定義一個二維字符數(shù)組a,使用5個字符串對其初始化。另外定義字符指針數(shù)組P。for循環(huán)中,每次將數(shù)組a當(dāng)前下標(biāo)為i的字符串首地址賦給P[i],再求得P[i]的長度賦給len,第1個printf輸出p[i]字符串的首字母,第2個printf輸出p[i]字符串下標(biāo)從len/2開始的子字符串。當(dāng)下標(biāo)i=0時輸出efg;當(dāng)下標(biāo)i=l時輸出acd;當(dāng)下標(biāo)i=2時輸出mopq;當(dāng)下標(biāo)i=3時輸出hjkl;當(dāng)下標(biāo)i=4時輸出rvwxyz。所以程序輸出:efgacdmopqhjklrvwxyz。本題答案為C選項。

12.Cf函數(shù)的功能是對形參a的各個成員用結(jié)構(gòu)體變量b的各個成員進行賦值后,然后返回變量a。

13.C

14.D在選項中,\\019,以0開頭的數(shù)都為八進制數(shù),而八進制的表示數(shù)字是0~7,所以答案選擇D。

15.A

16.B關(guān)系具有以下7個性質(zhì)。①元組個數(shù)有限性:二維表中元組的個數(shù)是有限的。②元組的唯一性:二維表中任意兩個元組不能完全相同。③元組的次序無關(guān)性:二維表中元組的次序,即行的次序可以任意交換。④元組分量的原子性:二維表中元組的分量是不可分割的基本數(shù)據(jù)項。⑤屬性名唯一性:二維表中不同的屬性要有不同的屬性名。⑥屬性的次序無關(guān)性.二維表中屬性的次序可以任意交換。⑦分量值域的同一性:二維表屬性的分量具有與該屬性相同的值域,或者說列是同質(zhì)的。滿足以上7個性質(zhì)的二維表稱為關(guān)系,以二維表為基本結(jié)構(gòu)所建立的模型稱為關(guān)系模型。本題答案為B選項。

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

18.A解析:數(shù)據(jù)流圖包括四個方面,即加工(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體),不包括選項中的控制流。

19.D在C語言中,字符串常量是用雙引號標(biāo)注的字符序列,因此B選項和C選項不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符以“\\”開頭。A選項中包含3個前兩個(\\\\)代表一個“\\”字符,后面一個為“””。因為\\”被看作一個“””,所以該字符串缺少一個結(jié)束的“””。因此A選項不正確。D選項的兩個“”之間沒有任何字符,代表的是一個空串,是合法的字符串常量,因此D選項正確。B選項的abc應(yīng)該使用雙引號標(biāo)注。故本題答案為D選項。

20.A通過指針變量存取某個變量值的方式稱為“間接存取”方式,選項A錯誤;頭文件stdio.h中定義了NULL,在程序的開頭包含stdio.h后,可以給指針變量賦NULL值,表示一個空指針,選項B正確;將一個指針變量中的值賦給另一個指針變量,這兩個指針變量指向同一地址,選項C正確;C語言中函數(shù)返回值的類型可以是簡單的數(shù)據(jù)類型,也可以是指針類型,選項D正確。故本題答案為A選項。

21.實體實體解析:在E-R圖中用矩形表示實體;橢圓形表示屬性;菱形表示聯(lián)系。

22.軟件開發(fā)

23.33解析:(p/3>0?p/10:p%3)是一個條件表達式。題中p=30,p/3>0為真,所以p/10的結(jié)果3作為整個表達式的值。

24.概念概念

25.HellHell解析:文件的字符串讀寫函數(shù)fgets()有3個參數(shù),第三個參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個參數(shù)是一個整數(shù)(假設(shè)為n),表示從文件中讀取n-1個字符并在其后加一個'0',第一個參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取得數(shù)據(jù)保存在其中??梢姳绢}的輸出結(jié)果為:Hell。

26.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結(jié)點。第6層的結(jié)點數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結(jié)點最多數(shù)”和“某一層的結(jié)點最多數(shù)”。前者的計算是深度為m的二叉樹最多有2m-1個結(jié)點。

27.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應(yīng)i的值相乘,最后當(dāng)i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。

28.\0'或0或NULLstr[i]num++或num=num+1或mum+=l\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或mum+=l解析:觀察題目要求,可以知道以下幾點:

①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后一個字符;

②str[i]代表字符串str中的第i+1個字符;

③整型變量num的值是要記錄的單詞的個數(shù)。

C語言中規(guī)定字和會串的最后一個字和會是一個隱含的字符串結(jié)束符“\\0”,所以在題中第一個空中應(yīng)填寫“\\0”;題中第二個空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個空中應(yīng)當(dāng)填寫“num++”,通地變量num的加1累加到字符串中的單詞個數(shù)。

29.-24-24解析:本題考查賦值運算符a+=b等價于a=a+b;a-=a*a等價于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。

30.22解析:'\\13':表示八進制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而”\\12”是個字符串,除了八進制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結(jié)束標(biāo)志“'\\0'”,所以共有2個字節(jié)。

31.x/10case0:case1:case2:case3:case4:case5:case9:x/10\r\ncase0:case1:case2:case3:case4:case5:\r\ncase9:

32.int*ptb1[i].p*tb1[j].p<*tb1[j+1].p

33.棧棧解析:棧和隊列都是—種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進行插入或刪除操作,是—種“先進后出”的線性表;而隊列只允許在表的—端進行插入操作,在另—端進行刪除操作,是—種“先進先出”的線性表。

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

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

35.1515解析:程序的功能是求1、2、3、4、5的和即15。

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

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

38.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)是現(xiàn)實世界符號的抽象,而數(shù)據(jù)模型(datamodel)則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束行為,為數(shù)據(jù)庫系統(tǒng)的信息表示與操作提供一個抽象的框架。數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型(conceptualdatamodel)、邏輯數(shù)據(jù)模型(logicdatamodel)、物理數(shù)據(jù)模型(physicaldatamodel)。

39.1212解析:x=(表達式1,表達式2,…)的形式,結(jié)果為最后一個表達式的值:x=(a=4,6*2)=2*6=12。

40.-2-2解析:題目中定義并初始化了變量k為0,最后輸出k的值,要求為4,而在此期間只有k+=-(i+j);這條語句改變了k的值,即要求表達式-(i+j)的值為4。所以,答案應(yīng)該為-2,因為只有i=j=-2時,表達式-(i+j)的值才為4。

41.C解析:通過scanf()函數(shù)從鍵盤讀入數(shù)據(jù)時,接收參數(shù)的使用變量的地址值,所以選項A和B是錯誤的。選項D要求輸入時以逗號間隔,故按題目要求的輸入方式不能正確讀取到3個數(shù),也是錯誤的。所以正確答案是C。

42.C樹最適合用來表示元素之間具有分支層次關(guān)系的數(shù)據(jù),故本題選C。

43.A解析:有時為了保護某些特有的對象,可以通過定義其為私有屬性達到不被繼承的目的。

44.B解析:題目中,雖然else和第二個if不在同一行上,但等價于在同一行上,因此,程序的意思是當(dāng)x大于0且不等于5時將其打印出來。

45.B解析:由?!昂筮M先出”的特點可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中棧是先進后出的,所以不可能是任意順序。所以B是正確的。它執(zhí)行的順序是:e1進?!鷈2進棧→e2出?!鷈3進?!鷈4進?!鷈4出?!鷈3出?!鷈1出棧,所以只看出棧序列應(yīng)為e2,e4,e3,e1。

46.D

47.A解析:本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對于刪除字符的操作都是采用'留下'字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動,每走到一個字符都判斷其是否為空格,若不是空格(注意在if()的單引號之間有一個空格),則將其保存str[j]中。注意j的下標(biāo)變化、初值及最后加串結(jié)束符\'\\0\'。

48.A

49.CC)【解析】根據(jù)二叉樹的性質(zhì)3:對任何一棵=叉樹,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多…+個。

50.C解析:本題主要考查按位異或運算,x=015(二進制00001101),017的二進制為000001111,兩者異或結(jié)果為00000010。

51.DD)【解析】軟件需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、性能、設(shè)計約束等方面的要求,是由用戶提出的。

52.C解析:C語言中,switch語句專用于實現(xiàn)多分支結(jié)構(gòu)程序,其特點是各分支清晰而直觀。switch后面括號中可以是任何表達式,取其整數(shù)部分與各常量表達式進行比較。常量表達式中不能出現(xiàn)變量,且類型必須是整型、字符型或枚舉型,各常量表達式各不相同。

53.B解析:字符串輸入函數(shù)fgets()的調(diào)用形式為:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“s”可以是一個字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個數(shù);“fp”是指向該文件的文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個字符的字符串,并將該字符串放到字符數(shù)組s中;讀入字符串后會自動在字符串末尾加入“'\\0'”結(jié)束符,表示字符串結(jié)束。

54.C本題考查while,while循環(huán)表達式k-1是個賦值表達式而不是邏輯表達式,k的初值為l2不符合循環(huán)條件,所以循環(huán)體語句一次也不執(zhí)行。

55.B解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a=0,則!a成立,執(zhí)行下列的語句,x--,得x=11:第二個if語句,判斷條件,發(fā)現(xiàn)c=o,則條件不成立,執(zhí)行下列的else語句,得x=4。

56.C解析:在C語言中,求余運算符“%”兩邊的運算對象都應(yīng)為整型數(shù)據(jù),所以需要對變量f進行強制類型轉(zhuǎn)換,正確的寫法為k%(int)f。在C語言中,邏輯運算符與賦值運算符、算術(shù)運算符、關(guān)系運算符之間從高到低的運算優(yōu)先次序是:!(邏輯“非”)、算術(shù)運算符、關(guān)系運算符、&&(邏輯“與”)、||(邏輯“或”)、賦值運算符。根據(jù)運算符的優(yōu)先級與結(jié)合性,對于選項A),先計算k>=k的值(為真,即1),再用1對k進行賦值。對于選取項B),先計算k++的值,再對其取負(fù)數(shù)。對于選項D),先計算k>=f的值(為假,即0),再用0與出進行比較,故最終結(jié)果為0。

57.B解析:C程序是由函數(shù)構(gòu)成的。一個C源程序至少包括一個main函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù)。因此,函數(shù)是C程序的基本單位,被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需要自己編制設(shè)計的函數(shù)。

58.D解析:逗號表達式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。

59.A解析:線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中的結(jié)點空間是動態(tài)生成的,它們在內(nèi)存中的地址可能是連續(xù)的,也可能是不連續(xù)的。

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

61.A

62.A選項A中,2*x對x的值沒有影響,x仍為2,“x+=2”執(zhí)行后,表達式值為4。故本題答案為A。

63.D解析:根據(jù)給定的數(shù)據(jù)輸入格式:123<空格>456<空格>789<回車>,第一個scanf語句中,格式字符為“%c”,只能得到一個字符\'1\',第二個scanf語句中格式字符為“%d”,變量i得到的數(shù)值為23,第三個scanf語句中格式字符為“%s”,遇到空格就自動結(jié)束,因此字符數(shù)組s得到的是'456\\0”。因而正確答案為選項D。

64.D

65.Astrcmp(char*,char*),函數(shù)strcmp用于比較兩個字符串的長度,長者為大,若字符個數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCIl表值計算,直到最后一個字符,若還相同,則兩個字符串相等,返回值0。選項A中if(strcmp(s2,sl)==0)ST,若s2等于sl,則返回值0,0等于0,所以邏輯表達式strcmp(s2,sl)==0為真,執(zhí)行ST。

66.B

\n本題考查函數(shù)調(diào)用的基本概念。調(diào)用函數(shù)時,實參的形式可以是具體的數(shù)值,也可以是表達式。實參將數(shù)值或表達式的值傳遞給形參,因而兩者的類型必須保持一致;形參在運算過程中會發(fā)生改變,但不一定會影響到實參值,所以可知兩者不共用內(nèi)存單元。

\n

67.B

68.AA)選項dPx[2][31定義的是一個2行3列的二維數(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論