2021-2022年河北省秦皇島市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第1頁
2021-2022年河北省秦皇島市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第2頁
2021-2022年河北省秦皇島市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第3頁
2021-2022年河北省秦皇島市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第4頁
2021-2022年河北省秦皇島市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年河北省秦皇島市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.以下選項(xiàng)中非法的字符常量是()。

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

3.面向?qū)ο蠓椒ㄖ?,繼承是指()。

A.一組對(duì)象所具有的相似性質(zhì)B.一個(gè)對(duì)象具有另一個(gè)對(duì)象的性質(zhì)C.各對(duì)象之間的共同性質(zhì)D.類之間共享屬性和操作的機(jī)制

4.有以下程序#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf(“%d\n”,i);}執(zhí)行后輸出結(jié)果是()A.28B.22C.16D.4

5.兩個(gè)或兩個(gè)以上模塊之間關(guān)聯(lián)的緊密程度稱為()。

A.耦合度

B.內(nèi)聚度

C.復(fù)雜度

D.數(shù)據(jù)傳輸特性

6.

7.

8.設(shè)有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯(cuò)誤的是()。

A.a++;B.b++;C.c++;D.d++;

9.數(shù)據(jù)庫設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和______。A.編碼設(shè)計(jì)B.測(cè)試階段C.運(yùn)行階段D.物理設(shè)計(jì)

10.算法能正確地實(shí)現(xiàn)預(yù)定功能的特性稱為算法的()。

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

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

A.數(shù)據(jù)所占的存儲(chǔ)空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)

12.在位運(yùn)算中,操作數(shù)每右移一位,其結(jié)果相當(dāng)于()

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以16D.操作數(shù)乘以16

13.有下列程序:

main()

{inty=20;

do{y--;}while(--y);

phntf("%d\n",y--);

}

當(dāng)執(zhí)行程序時(shí),輸出的結(jié)果是()。

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

14.已知待排序的n個(gè)元素可分為n/k個(gè)組,每個(gè)組包含k個(gè)元素,且任一組內(nèi)的各元素均分別大于前一組內(nèi)的所有元素和小于后一組內(nèi)的所有元素,若采用基于比較的排序,其時(shí)間下界應(yīng)為()A.O(nlog2n)B.O(nlog2k)C.O(klog2n)D.O(klog2k)

15.若有定義語句:doublea,*p=&a;,以下敘述中錯(cuò)誤的是()。

A.定義語句中的*號(hào)是一個(gè)間址運(yùn)算符

B.定義語句中的*號(hào)只是一個(gè)說明符

C.定義語句中的P只能存放double類型變量的地址

D.定義語句中,*p=&n把變量a的地址作為初值賦給指針變量P

16.設(shè)有定義“intx,y,z;”,且各變量已經(jīng)賦正整數(shù)值,則以下能正確表示代數(shù)式“”的C語言表達(dá)式是()。

A.1.0/x/y/zB.1/x*y*zC.1/(x*y*z)D.1/x/y/(double)z

17.第

22

閱讀下面程序,則程序執(zhí)行后的結(jié)果為

#include"stdio.h"

main()

{inta=4,b=6,c=7;

doubled,fun(int,int,int);

d=fun(a,b,c);

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

doublefun(inta,intb,intc)

{doubles;

s=a%b*c;

returns;}

A.27B.27.000000C.28D.28.000000

18.

19.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.2,3,1,2B.9,9,2,9C.8,10,2,8D.9,9,1,9

20.已知:intx,y;doublez;則以下語句中錯(cuò)誤的函數(shù)調(diào)用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);

B.scanf("%1d*%d&1f",&x,&y,&z);

C.scanf("%x%*d%o",&x,&y);

D.scanf("%x%o%6.2f",&x,&y,&z);

二、2.填空題(20題)21.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}

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

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

23.問題處理方案的正確而完整的描述稱為______。

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

#defineMCRA(m)2*m

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

main()

{inti-2,j=3;

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

}

25.以下程序中函數(shù)fun的功能是:構(gòu)成一個(gè)如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個(gè)字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點(diǎn)中的字符串。請(qǐng)?zhí)羁胀瓿珊瘮?shù)disp。

#include<stdio.h>

typedefstructnode/*鏈表結(jié)點(diǎn)結(jié)構(gòu)*/

{charsub[3];

structnode*next;

}Node;

Nodefun(chars)/*建立鏈表*/

{……}

voiddisp(Node*h)

{Node*p;

p=h->next;

while(【】)

{printf("%s\n",P->sub);p=【】;}

}

main()

{Node*hd;

hd=fun();disp(hd);printf("\n");

}

26.以下函數(shù)的功能是求x的y次方,請(qǐng)?zhí)羁?/p>

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i<y;i++)z=z*【】;

}

27.下列表達(dá)式用于判斷y是否為閏年。閏年的判斷條件是:年號(hào)能被4整除但不能被100整除或年號(hào)能被400整除,請(qǐng)?zhí)羁誣_____。

28.函數(shù)rewind的作用是

29.以下程序是從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們的和。請(qǐng)?zhí)?/p>

main()

{

inti,a[20],sum,count;

sum=count=【】;

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

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

{

if(a[i]>0)

{count++;

sum+=【】;

}

}

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

}

30.以下程序的功能是:通過函數(shù)func輸入字符并統(tǒng)計(jì)輸入字符的個(gè)數(shù)。輸入時(shí)用字符作為輸入結(jié)束標(biāo)志。請(qǐng)?zhí)羁铡?include<stdio.h>long();/*函數(shù)說明語句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}

31.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請(qǐng)寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

32.下述函數(shù)統(tǒng)計(jì)—個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請(qǐng)?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】='')flag=0;

elseif(【】){flag=1;num++}

}

return【】;}

33.若有以下程序段:

intc1=1,c2=2,c3;

c3=1.0/c2*c1;

則執(zhí)行后,c3中的值是【】。

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

35.數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)中用于提供信息表示和操作手段的結(jié)構(gòu)形式。實(shí)際數(shù)據(jù)庫系統(tǒng)中所支持的數(shù)據(jù)模型主要有層次模型、網(wǎng)狀模型和【】3種。

36.表示""整數(shù)x的絕對(duì)值大于5""時(shí)值為""真""的C語言表達(dá)式是【】。

37.數(shù)據(jù)庫技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控制。

38.軟件生命周期可分為多個(gè)階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測(cè)試屬于【】階段。

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

40.以下函數(shù)用來求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單元中。請(qǐng)?zhí)羁铡?/p>

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

【】

if(s[*k]<s[i])*k=i;

return【】;}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

三、1.選擇題(20題)41.在C語言中提供的合法的關(guān)鍵字是______。

A.swicthB.cherC.CaseD.default

42.若i和j已定義為int類型,則以下程序段中內(nèi)循環(huán)體總的執(zhí)行次數(shù)是______。for(i=5;i;i--)for(j=0;j<5;j++){...}

A.20B.25C.24D.30

43.若有說明語句:inta,b,c,*d=&c;則能正確從鍵盤讀入主個(gè)整數(shù)分別賦給變量a、b、c的語句是

A.scanf(“%d%d%d”,&a,&b,d);

B.scanf(“%d%d%d”,&a,&b,&d);

C.scanf(“%d%d%d”,a,b,d);

D.scanf(“%d%d%d”,a,b,*d);

44.若程序執(zhí)行時(shí)的輸入數(shù)據(jù)是"2473",則下述程序的輸出結(jié)果是

#include<stdio.h>

voidmain()

{intcs;

while((cs=getchar())!=;'\n')

{switch(cs-'2')

{case0

case1:putchar(cs+4);

case2:putchar(cs+4);

break;

case3:putchar(cs+3);default:putchar(cs+2);}}}

A.668977B.668966C.6677877D.6688766

45.在面向?qū)ο笾?,一個(gè)對(duì)象請(qǐng)求另一個(gè)對(duì)象為其服務(wù)的方式是通過發(fā)送

A.調(diào)用語句B.命令C.口令D.消息

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

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

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

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

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

47.若i是int型變量,且有下面的程序段:for(i=4;i<6;i++)printf((i%2)?("**%d\n"):("##%d\n"),i);上面程序段的輸出結(jié)果是______。

A.**4##5B.##4**5C.**4**5D.##4##5

48.有以下程序:#inelude<stdio.h>main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){fi(j%2)continue;x++;x++;}pfinff("x=%d\n",x);}程序執(zhí)行后的輸出結(jié)果是()。

A.x=4B.x=8C.x=6D.x=12

49.下列選項(xiàng)可以正確表示字符型常量的是

A.'\r'B.aC.\897D.296

50.已知字母A的ASCII碼值是65,字母a的ASCII碼值是97,以下程序______。main(){chara='A';intb=20;printf(%d,%0",(a=a+a,a+b,B),a+'a'-'A',B);}

A.表達(dá)式非法,輸出零或不確定值

B.因輸出項(xiàng)過多,無輸出或輸出不確定值

C.輸出結(jié)果為20,141

D.輸出結(jié)果為20,141,20

51.下列運(yùn)算符中,不屬于關(guān)系運(yùn)算符的是______。

A.+=B.!=C.<=D.==

52.算法的時(shí)間復(fù)雜度是指______。

A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)

53.表達(dá)式“1||2||3||4”的值是()。

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

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

A.一個(gè)C程序可以有多個(gè)主函數(shù)

B.一個(gè)C語言的函數(shù)中只允許有一對(duì)花括號(hào)

C.C程序的書寫格式是自由的,一個(gè)語句可以寫在一行上,也可以寫在多行內(nèi)

D.在對(duì)C程序進(jìn)行編譯時(shí),可以發(fā)現(xiàn)注釋行中的拼寫錯(cuò)誤

55.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系

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

A.C語言的源程序不必通過編譯就可以直接運(yùn)行

B.C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令

C.C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行

D.C語言中的函數(shù)不可以單獨(dú)進(jìn)行編譯

57.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()。

A.scanf("%d",pA);

B.scanf("%d",A);

C.scanf("%d",&pA);

D.seanf("%d",*pA);

58.下面程序的輸出是______。main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1if(y<x)break;}printf("x=%d,y=%d,=%d\n",x,y,a);}

A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1

59.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結(jié)果是()。

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

60.下面程序的輸出結(jié)果為______。#include<string.h>main(){charP[17]="abc"="ABC".STR[50]="xyz";strcpy(str,strcat(p1,p2));printf(%s,str);}

A.xyzabcABCB.abcABCC.xyzabcD.xyzABC

四、選擇題(20題)61.

62.簡(jiǎn)單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

63.在單鏈表中,增加頭結(jié)點(diǎn)的目的是()。

A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說明單鏈表是線性的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)

64.(40)將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成()

A.屬性

B.關(guān)系

C.鍵

D.域

65.下列關(guān)于結(jié)構(gòu)化設(shè)計(jì)原則的描述,錯(cuò)誤的是

A.在塊和進(jìn)程的非正常出口處往往需要調(diào)用GOTO語句,使用GOTO語句使程序執(zhí)行效率提高,但是濫用GOTO語句確實(shí)有害,應(yīng)該避免使用GOTO語句

B.程序設(shè)計(jì)時(shí)應(yīng)該自頂向下,逐步求精

C.程序設(shè)計(jì)時(shí),應(yīng)該將復(fù)雜問題進(jìn)行模塊化,就是將程序設(shè)計(jì)的總目標(biāo)分解為若干個(gè)分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo)

D.在進(jìn)行程序設(shè)計(jì)時(shí),應(yīng)該盡量在一行寫一條語句,盡量做到效率第一,清晰第二

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

A.break語句只能用于switch語句體中

B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

D.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

67.(25)下面對(duì)對(duì)象概念描述錯(cuò)誤的是()

A.任何對(duì)象都必須有繼承性

B.對(duì)象是屬性和方法的封裝體

C.對(duì)象間的通訊靠消息傳遞

D.操作是對(duì)象的動(dòng)態(tài)性屬性

68.某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有l(wèi)個(gè),則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。

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

69.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對(duì)象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

70.

71.第

15

非空的循環(huán)單鏈表head的尾結(jié)點(diǎn)(由p所指向),滿足

A.p->next==NULLB.p==NULLC.p->next=headD.p=head

72.有三個(gè)關(guān)系R、s和T如下:

由關(guān)系R和s通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。

A.并B.自然連接C.笛卡爾積D.交

73.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}

A.11B.12C.13D.15

74.

75.

76.

有以下程序:

main

{inta=0,b=0;

a=10;/*給a賦值

b=20;給b賦值*/

printf("a+b=%d\n",a+b);//輸出計(jì)算機(jī)結(jié)果

}

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

A.a+b=10B.a+b=30C.30D.出錯(cuò)

77.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)

B.算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量

C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的

D.算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)

78.

79.設(shè)變量已正確定義,則下列能正確計(jì)算f=n!的程序段是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將tt所指字符串中的小寫字母全部改為對(duì)應(yīng)的大寫字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CD”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.

參考答案

1.C

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

3.D繼承是面向?qū)ο蟮姆椒ǖ囊粋€(gè)主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義的說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們,所以說繼承是指類之間共享屬性和操作的機(jī)制。

4.A解析:f(4+4)/f(2+2)=4+4*4+4/2+2*2+2=28。

5.A解析:本題考核模塊獨(dú)立性的評(píng)價(jià)。評(píng)價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn)有兩個(gè);一是模塊之間的耦合,它表明兩個(gè)模塊之間互相獨(dú)立的程度,也可以說是兩個(gè)或兩個(gè)以上模塊之間關(guān)聯(lián)的緊密程度(所以,本題的正確答案為選項(xiàng)A);二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨(dú)立,而要求模塊的內(nèi)聚程度盡量地高。

6.B

7.B

8.D解析:本題考核的知識(shí)點(diǎn)是在自加運(yùn)算符的運(yùn)算對(duì)象。自加運(yùn)算對(duì)象可以是整型變量也可以是實(shí)型變量,但不能是表達(dá)式和常量。本題中,#defined2定義了d為常數(shù)2,不能在對(duì)d進(jìn)行自加運(yùn)算.故選項(xiàng)D是個(gè)不正確的語句,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

9.DD)【解析】數(shù)據(jù)庫設(shè)計(jì)目前一段采用生命周期法.即將整個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標(biāo)獨(dú)立的若干階段,它們是:需要分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫設(shè)計(jì)中采用上面幾個(gè)階段中的前四個(gè)階段,并且重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計(jì)為主線。

10.A

11.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

12.B

13.D解析:本題考查do…while循環(huán)。當(dāng)--寸是0(即y是0)時(shí)結(jié)束循環(huán),輸出y--是先輸出y的值再將y的值減1。

14.B

15.Cdoublea,*p=&a語句的意思是將a的值存放到指針變量P中,P是指針可以隨意指向任何地址,所以答案C錯(cuò)誤。

16.A代數(shù)式“”的結(jié)果為小數(shù),轉(zhuǎn)為C語言的表達(dá)式必須是浮點(diǎn)數(shù)。A選項(xiàng)由于1.0為浮點(diǎn)數(shù),計(jì)算結(jié)果自動(dòng)轉(zhuǎn)換為浮點(diǎn)數(shù)。選項(xiàng)B、C、D的表達(dá)式均為0,因此只有選項(xiàng)A正確。故本題答案為A選項(xiàng)。

17.D

18.A

19.D程序定義了一個(gè)整型數(shù)組a,它包含5個(gè)整型元素,分別是1,2,3,4,5。數(shù)組名a代表數(shù)組的首地址,另外還定義整型指針P,將a傳給函數(shù)f。在函數(shù)f中,首先將指針s向右移動(dòng)一個(gè)整型變量的長(zhǎng)度,此時(shí)s指向元素2(a[1])。S[1](a[2]);表示元素3,自增6后s[1](a[2])的值為9。表達(dá)式“+=7”;表示將*(s--)指向的元素自增7,即S[0](a[1])的值為9,s向左移動(dòng)一個(gè)整型變量的長(zhǎng)度,此時(shí)s指向元素1(a[0]),最后將s返回并賦給p。經(jīng)過函數(shù)f的調(diào)用可知:P指向數(shù)組a的第1個(gè)元素,a[1]和a[2]值為9。綜上,輸出結(jié)果為:9,9,1,9。本題答案為D選項(xiàng)。

20.BB項(xiàng)的格式應(yīng)該為scanf("%1d*%d%1f",&x,&y,&z);

21.aa解析:本程序先將指針ptr1和ptr2分別指向字符數(shù)組a和b,然后通過指針的移動(dòng)比較a和b中是否有相同的字符。若有相同的字符則將其輸出。

22.77解析:在程序執(zhí)行時(shí),static變量?jī)H初始化一次,下次使用時(shí)將使用上次保存的值。

23.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。

24.1616解析:首先將程序中宏替換掉,先把“MCRA(i)”替換成“2*i”,然后把“MCRA(j,2*i)”替換成“2*2*j+2*i”,經(jīng)計(jì)算該表達(dá)式的值為16,所以最后輸出為16。

25.p!=NULLp->nextp!=NULL,p->next解析:考查了單鏈表的相關(guān)知識(shí)。NULL的ASCII碼的值和'\\0'的ASCII碼的值相等,條件到NULL停止循環(huán)。把下一個(gè)節(jié)點(diǎn)的地址賦給p,這樣循環(huán),節(jié)點(diǎn)可以依次向后取值。

26.xx解析:函數(shù)的定義形式為:

函數(shù)類型函數(shù)名(形參表)

{

類型說明語句;

執(zhí)行語句;

}

本題中函數(shù)的功能是:累積變量以求捐變量的Y次方。

27.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達(dá)。年號(hào)能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關(guān)系,年號(hào)能被400整除即y%400==0,與前兩項(xiàng)是或的關(guān)系。

28.A

29.0&a[i]a[i]0\r\n&a[i]\r\na[i]解析:本題要求從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們的和。程序中首先要對(duì)存放正數(shù)個(gè)數(shù)的變量count及存放和值的變量sum初始化為0,所以第一空應(yīng)填0。接著要求從終端讀入數(shù)據(jù)到數(shù)組中,可以通過scanf函數(shù)實(shí)現(xiàn),因此第二空應(yīng)填&a[i]。最后通過sum+=a[i];語句累加正數(shù)a[i]的值到sum中,因此第三空應(yīng)填a[i]。

30.tunc()m++tunc()m++解析:第一空白處,在C語言中如果子函數(shù)在主函數(shù)之后定義,就要對(duì)其進(jìn)行說明,說明的形式為:“函數(shù)類型名函數(shù)名”。所以此處填寫func()。第二空白處,整型變量m表示輸入字符的個(gè)數(shù),所以每輸入一個(gè)字符,變量m的值就加1。所以此處填寫m++。

31.

32.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄—個(gè)單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個(gè)字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前—個(gè)字符是否是空格,如果是則說明這個(gè)字符是—個(gè)單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)填flag=0或*(s-1)='';最后—個(gè)空格需填寫的是返回的單詞的個(gè)數(shù),即num。

33.00解析:在賦值運(yùn)算中。如果表達(dá)式中變量和常量的數(shù)據(jù)類型不一致就會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換。系統(tǒng)會(huì)計(jì)算1.0/c2,由于1.0是實(shí)型,所以均先轉(zhuǎn)化為雙精度型0.500000,再和c1轉(zhuǎn)化后的雙精度數(shù)相乘得0.500000。但其要賦值給整型變量c3,故要進(jìn)行強(qiáng)制轉(zhuǎn)換,c3的值為0。

34.3232解析:while(表達(dá)式)的功能是:首先計(jì)算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計(jì)算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時(shí),結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時(shí)滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。

35.關(guān)系模型關(guān)系模型

36.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整數(shù)x的絕對(duì)值大于5,則x大于5或x小于5,用C語言表示即為:x>5||x<-5或者x<-5||x>5。故本題答案為;x>5||x<-5或者x<-5||x>5。

37.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點(diǎn)有以下幾個(gè)方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨(dú)立性,數(shù)據(jù)統(tǒng)一管理與控制。

38.開發(fā)開發(fā)解析:軟件生命周期(SDLC,軟件生存周期)是軟件的產(chǎn)生直到報(bào)廢的生命周期,周期內(nèi)有問題定義、可行性分析、總體描述、系統(tǒng)設(shè)計(jì)、編碼、調(diào)試和測(cè)試、驗(yàn)收與運(yùn)行、維護(hù)升級(jí)到廢棄等階段,其中的編碼和測(cè)試屬于開發(fā)階段。

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

40.for(I=0;I<t;I++)0for(I=0;I<t;I++),0解析:本題中直接使用指針變量k,但在使用時(shí)要注意對(duì)k的指針運(yùn)算,此外,一開始應(yīng)使*k的值為數(shù)組中的某一下標(biāo)值,即*k=0。

41.D

42.B解析:對(duì)于第一個(gè)for語句,i從5至1,且對(duì)于第二個(gè)for語句,在i取5至1的某個(gè)值時(shí),j又從0變化至5。

43.A解析:scanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸入格式字符串,第二個(gè)參數(shù)是輸入變量地址列表。輸入格式字符串主要由“%”符號(hào)和格式字符組成。地址列表是由多個(gè)地址組成的。選項(xiàng)B中d已經(jīng)為地址,不應(yīng)再加上求地址符號(hào)“&”;選項(xiàng)C中,a和b都為變量不是地址,應(yīng)該在a和b之前加上求地址符號(hào)“&”;選項(xiàng)D中指針d所指向的存儲(chǔ)空間的位置為變量c的值,不為地址。

44.A解析:本題主要考查switch語句的使用方法。switch語句的執(zhí)行過程為:進(jìn)入switch結(jié)構(gòu)后,對(duì)條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時(shí),則執(zhí)行default后面的語句。

45.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對(duì)象與對(duì)象間彼此的相互合作來推動(dòng)的,一個(gè)對(duì)象與另一個(gè)對(duì)象通過發(fā)送消息彼此交換信息,請(qǐng)求對(duì)方執(zhí)行某一處理或回答某一要求的信息。

46.B解析:一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等,選項(xiàng)A和選項(xiàng)D正確。采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率不同,因此,在進(jìn)行數(shù)據(jù)處理時(shí),選擇合適的存儲(chǔ)結(jié)構(gòu)是很重要的,選項(xiàng)C正確,選項(xiàng)B錯(cuò)誤,應(yīng)為本題正確答案。

47.B解析:函數(shù)printf中的參數(shù)是三目條件表達(dá)式,循環(huán)控制變量i值為4時(shí),i%2為0,格式控制字符串為'##%d\\n',輸出為##4;循環(huán)控制變量i值為5時(shí),i%2為1,格式控制字符串為'**%d\\n',輸出為*5,兩次輸出不在同一行。

48.B解析:本問題要求給出程序執(zhí)行后輸出的x的值。x的初值為0,程序中出現(xiàn)了3次x++,其中外層循環(huán)中出現(xiàn)了兩次,共自增了4次;在內(nèi)層循環(huán)中,當(dāng)循環(huán)變量為。和2時(shí),x自增,因此共自增了4次,這樣x共自增了8次,所以結(jié)果為8。

49.A解析:C語言中,一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號(hào)括起來作為字符常量,字符常量的范圍是0~127。由于字符常量用單引號(hào)括起來,所以選項(xiàng)B),C)錯(cuò)誤,選項(xiàng)D)超過了字符常量的表示范圍。

50.C解析:本題中首先輸出逗號(hào)表達(dá)式“a=a+a,a+b,b”的值,即20。然后以八進(jìn)制的形式輸出a+'a'-'A'的值為97對(duì)應(yīng)的八進(jìn)制數(shù)141,由于最后一個(gè)表達(dá)式b沒有對(duì)應(yīng)輸出格式的輸出項(xiàng)表列就不會(huì)輸出。

51.A解析:+=是算術(shù)賦值運(yùn)算符。

52.C解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫算法程序所使用的程序設(shè)計(jì)語言、執(zhí)行算法程序時(shí)所使用的計(jì)算的工具以及程序員的水平無關(guān)。選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤,因?yàn)樗惴ㄋ帉懙某绦蜷L(zhǎng)度往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語言或者不同的程序員所編寫出的程序其長(zhǎng)度可能會(huì)大不相同。選項(xiàng)D錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時(shí)間復(fù)雜度。所以,本題正確答案為C。

53.A解析:C語言中任何非0值都表示真,所以表達(dá)式1||2||3||4就是“真||真||真||真”,結(jié)果為真。又因?yàn)镃語言中的真值轉(zhuǎn)換為整型就是1,故選項(xiàng)A正確。

54.C解析:本題涉及C語言基本的3個(gè)知識(shí)點(diǎn):①C語言規(guī)定一個(gè)程序只允許有一個(gè)主函數(shù),一個(gè)函數(shù)內(nèi)可以允許有多個(gè)花括號(hào);②C語言的標(biāo)識(shí)符是由字母、數(shù)字、下劃線組成的,可以是大寫字母,而且標(biāo)識(shí)符區(qū)分字母的大小寫;③C程序的注釋部分僅僅是方便程序員閱讀,提高程序的可讀性和可移植性,它并不參與程序的編譯,所以編譯器也就不會(huì)發(fā)現(xiàn)注釋行中的錯(cuò)誤。

55.C解析:程序流程圖是人們對(duì)解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號(hào)表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

56.B解析:本題考核的知識(shí)點(diǎn)是C程序從編寫到生成可執(zhí)行文件的步驟。C語言采用編譯方式將源程序轉(zhuǎn)換為二進(jìn)制的目標(biāo)代碼,編寫好一個(gè)C程序到完成運(yùn)行一般經(jīng)過以下幾個(gè)步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進(jìn)制的目標(biāo)代碼,經(jīng)編譯后的得到的二進(jìn)制代碼還不能直接執(zhí)行,因?yàn)槊恳粋€(gè)模塊往往是單獨(dú)編譯的,必須把經(jīng)過編譯的各個(gè)模塊的目標(biāo)代碼與系統(tǒng)提供的標(biāo)準(zhǔn)模塊連接后才能運(yùn)行;連接,將各模塊的二進(jìn)制目標(biāo)代碼與系統(tǒng)標(biāo)準(zhǔn)模塊經(jīng)連接處理后,得到具有絕對(duì)地址的可執(zhí)行文件,它是計(jì)算機(jī)能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個(gè)經(jīng)過編譯和連接的可執(zhí)行的目標(biāo)文件。由以上定義可知,選項(xiàng)A、C、D均不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

57.A解析:本題中定義了整型變量a和一個(gè)指向整型數(shù)據(jù)的指針變量pa,并定義pa是一個(gè)存放a的地址的變量。選項(xiàng)B是應(yīng)該將a改為&a,故選項(xiàng)B不正確;選項(xiàng)c應(yīng)該將&pa改為pa,因?yàn)閜a已經(jīng)表示存放:的地址,故選項(xiàng)C不正確:選項(xiàng)D中*pa表示的是指針p8所指向存儲(chǔ)空間的變量的值,而不是一個(gè)地址,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)十選項(xiàng)A符合題意。

58.D解析:注意的是x++中x值的引用時(shí),這里應(yīng)當(dāng)是先引用,后自加,具體執(zhí)行過程如下:第—次while循環(huán):條件為真,執(zhí)行a=a+1=1;此時(shí),x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);第二次while循環(huán);條件為假,此時(shí)x的值已為5,退出while循環(huán),執(zhí)行printf。

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

60.B解析:strcpy(strl,s1):作用是將字符串s1拷貝到字符數(shù)組strl中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個(gè)字符數(shù)組pl,p2,str,strcat(pl,p2)函數(shù)的作用是將字符串?dāng)?shù)組p2接到字符串p1的后面,結(jié)果放在字符數(shù)組p1中,再通過strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。

61.D

62.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡(jiǎn)單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。

63.A根據(jù)單位鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個(gè)鏈表,因此增加頭結(jié)點(diǎn)的目的是為了便于運(yùn)算的實(shí)現(xiàn)。

64.B

65.D在結(jié)構(gòu)化程序設(shè)計(jì)過程中,我們可以根據(jù)下面的原則進(jìn)行:

(1)使用語言中的順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等有限的基本控制結(jié)構(gòu)表示程序邏輯。

(2)選用的控制結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口。

(3)復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)。

(4)語言中沒有的控制結(jié)構(gòu)可以用一段等價(jià)的程序段來模擬,但是要求程序段在整個(gè)系統(tǒng)中前后一致。

(5)嚴(yán)格限制GOTO語句。

(6)在編寫程序時(shí),強(qiáng)調(diào)使用幾種基本的控制結(jié)構(gòu),通過組合嵌套,形成程序的控制結(jié)構(gòu)。

(7)在程序設(shè)計(jì)過程中,盡量采用自頂向下和逐步細(xì)化的原則,由粗到細(xì),一步步展開。把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而翻譯成一系列用某種程序設(shè)計(jì)語言寫成的源程序。

總之,在結(jié)構(gòu)化程序設(shè)計(jì)的過程中,要將清晰放在第一位。因此,本題中的答案D是不正確的。

66.C解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。當(dāng)break出現(xiàn)在循環(huán)體的switch語句體內(nèi)時(shí),其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。

溫馨提示

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