2021-2022年貴州省貴陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第1頁(yè)
2021-2022年貴州省貴陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第2頁(yè)
2021-2022年貴州省貴陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第3頁(yè)
2021-2022年貴州省貴陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第4頁(yè)
2021-2022年貴州省貴陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(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年貴州省貴陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.下列選項(xiàng)中,能正確定義數(shù)組的語句是()。

A.intnum[0..2008];

B.intnum[];

C.intN=2008;intnum[N];

D.#defineN2008;intnum[N];

2.軟件詳細(xì)設(shè)計(jì)的主要任務(wù)是確定每個(gè)模塊的()。

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

3.有下列程序段:

intk=0,a=1,b=2,c=3;

k=a<b?b:a;k=k>C?C:k;

執(zhí)行該程序段后,k的值是()。

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

4.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2||c--!=3) printf(“%d,%d,%d\n”,a,b,c); elseprintf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,%d,%d\n”,a,b,c);}程序的運(yùn)行結(jié)果是()。

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

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

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

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

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

6.對(duì)稱數(shù)組A中,每個(gè)元素的長(zhǎng)度為4個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到8。將其下三角中的元素連續(xù)存儲(chǔ)在從首地址SA開始的存儲(chǔ)器內(nèi),該數(shù)組按行存放是,則元素A[5][8]的起始地址為()。

A.SA+124B.SA+128C.SA+132D.136

7.下列敘述中錯(cuò)誤的是()。A.在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致,

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

C.數(shù)據(jù)庫(kù)設(shè)計(jì)是指在已有數(shù)據(jù)庫(kù)管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫(kù)

D.數(shù)據(jù)庫(kù)系統(tǒng)需要操作系統(tǒng)的支持

8.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試

9.以下程序運(yùn)行時(shí)若要正確輸出函數(shù)的入口地址和輸入數(shù)的絕對(duì)值,應(yīng)在程序空缺處填入的正確選項(xiàng)是

abs(intx)

{if(x>=0)returnx;

elsereturn-x;}

main()

{inty,z,(*p)(intx)=abs;

scanf("%d",&y);

z=(*p)(y);

;}

A.printf("%d%d\n",&p,z)

B.printf("%d%d\n",p,z)

C.printf("%d%d\n",*p,z)

D.printf("%d%d\n",p,*z)

10.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

11.在C語言中,函數(shù)返回值的類型最終取決于()。

A.函數(shù)定義時(shí)在函數(shù)首部所說明的函數(shù)類型

B.return語句中表達(dá)式值的類型

C.調(diào)用函數(shù)時(shí)主調(diào)函數(shù)所傳遞的實(shí)參類型

D.函數(shù)定義時(shí)形參的類型

12.從一個(gè)長(zhǎng)度為100的順序表中刪除第30個(gè)元素時(shí)需向前移動(dòng)()個(gè)元素

A.70B.71C.69D.30

13.依次讀入數(shù)據(jù)元素序列{a,b,c,d,e,f,g}進(jìn)棧,元素進(jìn)?;虺鰲m樞蚴俏粗模铝行蛄兄?,不可能成為??諘r(shí)彈出的元素構(gòu)成序列的有()

A.{d,e,c,f,b,g,a}

B.{f,e,g,d,a,c,b}

C.{e,f,d,g,c,b,a}

D.{c,d,b,e,f,a,g}

14.已知10個(gè)元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序樹,查找值為62的結(jié)點(diǎn)所需比較次數(shù)為()

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

15.下列正確的實(shí)型常量是()。

A.E3.4B.-12345C.2.2eO.8D.4

16.在面向?qū)ο笤O(shè)計(jì)中,對(duì)象有很多基本特點(diǎn),其中“從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部對(duì)外是不可見的。”這一性質(zhì)指的是對(duì)象的

A.分類性B.標(biāo)識(shí)惟一性C.多態(tài)性D.封裝性

17.若有如下定義,則__________是對(duì)數(shù)組元素的正確的引用。.

inta[10],*p;p=a;

A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p

18.若有定義inta=5,b=7;,則表達(dá)式a%=(b%2)運(yùn)算后,a的值為()。

A.0B.1C.11D.3

19.有以下程序

#include<stdio.h>

main()

{intx=1,y=2,z=3;

if(x>y)

if(y<z)printf("%d",++z);

elseprintf("%d",++y);

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

}

程序的運(yùn)行結(jié)果是

A.A.331

B.41

C.2

D.1

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

A.在賦值表達(dá)式中,賦值號(hào)的左邊既可以是變量,也可以是任意表達(dá)式

B.實(shí)型變量中允許存放整型數(shù)

C.若a和b類型相同,在執(zhí)行賦值a=b后,b中的值將放入a中,但b中的值不變

D.在C程序中,求余算符“%”兩邊的類型相同時(shí)才能進(jìn)行運(yùn)算

二、2.填空題(20題)21.下列程序的輸出結(jié)果是______。

main()

{inti=0,a=0;

while(i<20)

{for(;;)

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

elsei--;}

i+=11;

a+=i;

}

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

}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\N,*p,*q))

}

23.定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為______。

24.下面程序的運(yùn)行結(jié)果是()。

#defineEXCH(a,B){intt;t=a;a=b;b=t;}

main()

{intx=1,y=2;

EXCH(x,y);

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

}

25.以下程序中函數(shù)fun的功能是求出能整除x且不是偶數(shù)的務(wù)正整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個(gè)數(shù)通過形參n返回。

例如,若x中的值為30,則有4個(gè)數(shù)符合要求,它們是1,3,5,15。

請(qǐng)按題意,完成填空。

試題程序:

#include<stdio.h>

voidfun(intx,intpp[],int*n)

{inti,j=0;

【】;

if(x%i==0)pp[j++]=i;

【】;

}

main()

{intx,aa[1000],n,i;

printf("\nPleaseenteranintegernumber:\n");

scanf("%d",&x);

fun(x,aa,&n);

for(i=0;i<n;i++)printf("%d",aa[i]);

printf("\n");

}

26.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

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

voidfun()

{staticinta;

a+=2;

printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<=4;cc++)fun();

printf("\n");

}

28.一個(gè)模塊直接訪問另一個(gè)模塊的內(nèi)容,稱為【】藕合。

29.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結(jié)果傳回,請(qǐng)?zhí)羁铡?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;}

30.軟件結(jié)構(gòu)是以【】為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。

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

main()

{

intp[7]={11,13,14,15,16,17,18);

inti=0,j=0;

while(i<7&&p[i]%2==1)

j+p[i++];

printf(“%d\n”j);

}

32.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

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

#include<stdio,h>

main()

inti,a[20],sum,count;

sum=count=0;

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

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

{if(a[i]>0)

{count++;

sum+=【】;

}

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

}

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

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

#include<stdio.h>

main()

{ints[]={1,2,3,4},i;

intx=0;

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

{x=sb(s,x);

printf("%d",x);}

printf("\n");}

sb(s1,y)

int*s1,y;

{staticinti1=3;

y=s1[i1];

i1--;

return(y);}

36.函數(shù)sub的功能是根據(jù)下面近似分式求π的值。

(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

現(xiàn)在請(qǐng)?jiān)谙旅娴暮瘮?shù)中填空,完成求π值的功能。

#include"math.h"

doublesub(longm)

{doublesum=0.0,t;longn;

for(n=1;n<=m;n++)sum+=【】;

t=sqrt(6*sum);

return(t);

}

37.在數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)中,常用的描述工具是【】。

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

#include<stdio,h>

voidswap(y)

{intt;

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

}

main()

{ihta=3,b=4:

swap(a,b);prinff("%d%d",a,b);

}

39.以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。

structnode

{intinfo;

【】link;};

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

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

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

t(a,b,c,d);

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

}

三、1.選擇題(20題)41.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}

A.languageB.lnugC.有語法錯(cuò)誤D.lang

42.順序查找一個(gè)具有n個(gè)元素的線性表,二分查找一個(gè)具有n個(gè)元素的有序表,其時(shí)間復(fù)雜性為______。

A.O(n)

B.O(log2n)

C.O(n2)

D.O(nlog2n)

43.下列定義中,不正確的有______。

A.#definePI3.141592

B.#defineS345;

C.intmax(x,y);

D.staticcharc;intx,y;{...}

44.若有如下程序:main(){intn;for(n=0;n<9;n++){if(n<1){printf("%d",n);continue;}if(n==4)break;printf("%d",n);}}則循環(huán)體執(zhí)行的次數(shù)是()。

A.1B.5C.9D.死循環(huán)

45.一個(gè)算法應(yīng)該具有“確定性”等5個(gè)特性,下面對(duì)另外4個(gè)特性的描述中錯(cuò)誤的是()A.有零個(gè)或多個(gè)輸入B.有零個(gè)或多個(gè)輸出C.有窮性D.可行性

46.若有函數(shù)max(a、b),為了讓函數(shù)指針變量p指向函數(shù)max,當(dāng)調(diào)用該函數(shù)時(shí),正確的賦值方法是

A.(*p)max(a,b)B.*pmax(a,b)C.p=max(a,b)D.*p=max(a,b)

47.一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為()。

A.對(duì)應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系

48.若有定義:"inta[2][3];"則對(duì)a數(shù)組的第i行第j列無素的正確引用為()。

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

49.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}執(zhí)行后的輸出結(jié)果是

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

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

A.在C語言中,可以使用動(dòng)態(tài)內(nèi)存分配技術(shù),定義元素個(gè)數(shù)可變的數(shù)組

B.在C語言中,數(shù)組元素的個(gè)數(shù)可以不確定,允許隨機(jī)變動(dòng)

C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致

D.在C語言中,定義了一個(gè)數(shù)組后,就確定了它所容納的元素的個(gè)數(shù)

51.對(duì)下述程序,正確的判斷是()。main(){inta,b;scanf("%d",&a);scanf("%d",&b);if(a>b)a+=b;b++;elseb+=a;a++;printf("%d,%d",a,b);}

A.有語法錯(cuò)誤,不能通過編譯

B.若輸入數(shù)據(jù)2和5,則輸出3和7

C.若輸入數(shù)據(jù)5和2,則輸出7和3

D.若輸入數(shù)據(jù)5和5,則輸出6和10

52.以下語句的輸出結(jié)果是()printf("%d,%d,%u\n",016,16,-16);

A.16,16,65420B.14,16,6542C.16,16,-16D.14,16,-16

53.以下非法的賦值語句是

A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;

54.以下程序段的輸出結(jié)果是chars[]="\\141\141abc\t";printf("%d\n",strlen(s));

A.9B.12C.13D.14

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

A.局部變量說明為static存儲(chǔ)類,其生存期將得到延長(zhǎng)

B.全局變量說明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大

C.任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的

D.形參可以使用的存儲(chǔ)類說明符與局部變量完全相同

56.下面程序的輸出結(jié)果是#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%d\n",*p+9);}

A.0B.1C.10D.9

57.下面程序的輸出結(jié)果是()main(){inta[10]={l,2,3,4,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}

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

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

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

59.有以下函數(shù):mtaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下關(guān)于aaa函數(shù)的功能的敘述正確的是()。

A.求字符串s的長(zhǎng)度B.比較兩個(gè)串的大小C.將串s復(fù)制到串tD.求字符串s所占字節(jié)數(shù)

60.當(dāng)變量c的值不為2、4、6時(shí),值也為“真”的表達(dá)式是

A.(c==2)||(c==4)||(c==6)

B.(c>=2&&c<=6)||(c!=3)||(c!=5)

C.(c>=2&&c<=6)&&!(c%2)

D.(c>=2&&c<=6)&&(c%2!=1)

四、選擇題(20題)61.若變量X、y已正確定義并賦值,以下符合c語言語法的表達(dá)式是()。

A.++x,y=x-一B.x+l=yC.x=x+10--x+yD.double(x)/lO

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

A.在不同的函數(shù)中可以使用相同名字的變量

B.函數(shù)中的形式參數(shù)是局部變量

C.在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D.在一個(gè)函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效

63.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。

A.可封裝B.自頂向下C.模塊化D.逐步求精

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

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

65.

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

main

{charw[][10]={"ABCD","EFGH","IJKL","

MNOP"),K;

for(k=1;k<3;k++)printf("%s\n",w[k]);

A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL

66.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a(chǎn)[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745

67.兩次運(yùn)行下面的程序,如果從鍵盤上分別輸入6和3,則輸出結(jié)果是()。

if(x++>5)printf("%d",x);

elseprintf("%d\n",x--);

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

68.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6

69.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

70.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21

71.

72.

73.下列選項(xiàng)中屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。

A.可封裝

B.多態(tài)性

C.自下而上

D.逐步求精

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

#include<stdio.h>

main()

{

inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

}

A.6,1B.6,0

C.2,1D.2,0

75.

76.

77.以下選項(xiàng)中關(guān)于程序模塊化的敘述錯(cuò)誤的是()。

A.可采用自底向上、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序

B.把程序分成若干相對(duì)獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊

C.把程序分成若干相對(duì)獨(dú)立的模塊,可便于編碼和調(diào)試

D.可采用自頂向下、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序

78.

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

則由關(guān)系R和S得到關(guān)系T的操作是()。

A.自然連接B.交C.投影D.并

80.

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

main

{intn;

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

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

六、程序設(shè)計(jì)題(1題)82.N名學(xué)生的成績(jī)已在主函數(shù)中放人一個(gè)帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。請(qǐng)編寫函數(shù)fun,其功能是:求出平均分,并由函數(shù)值返回。

例如,若學(xué)生的成績(jī)是:8576698591726487,則平均分應(yīng)當(dāng)是:78.625。注意:部分源程序在文件PROGl.C中。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填人你編寫的若干語句。

參考答案

1.DC語言不允許定義動(dòng)態(tài)數(shù)組,定義數(shù)組的大小必須為常量表達(dá)式。A選項(xiàng)錯(cuò)誤,C語言中的數(shù)組沒有此類型的定義方法;B選項(xiàng)錯(cuò)誤,定義數(shù)組應(yīng)指明數(shù)組大小,如果不指明數(shù)組大小,需要給定元素的個(gè)數(shù);C選項(xiàng)錯(cuò)誤,N為變量,不能用來定義數(shù)組大小。故本題答案為D選項(xiàng)。

2.A解析:從軟件開發(fā)的工程化觀點(diǎn)來看,在使用程序設(shè)計(jì)語言編制程序以前,需要對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計(jì)的任務(wù)就是要決定各個(gè)模塊的實(shí)現(xiàn)算法,并精確表達(dá)出這些算法。本題正確答案為選項(xiàng)A。

3.B解析:因?yàn)閍<b成立,所以條件表達(dá)式a<b?b:a的值等于b的值等于2,因此變量k的值等于2。又因?yàn)閗=2>c=3不成立,所以條件表達(dá)式k>c?c:k的值等于k的值等于2。把條件表達(dá)式k>c?c:k的值賦給變量k,因而變量k的值等于2。因此,選項(xiàng)B)為正確答案。

4.Belse總是和最近的if配對(duì)。進(jìn)入第1個(gè)if語句進(jìn)行條件判斷時(shí),因?yàn)槭沁x輯與操作,需要兩邊運(yùn)算對(duì)象的值均為非零值才為真,所以需要逐個(gè)執(zhí)行判斷。結(jié)果為1,進(jìn)入第2個(gè)if語句進(jìn)行條件判斷。因?yàn)椤癰!=2”條件成立,所以整個(gè)條件表達(dá)式的值為真,不再執(zhí)行邏輯或的第2個(gè)運(yùn)算對(duì)象“(c--!=3)”變量c的值不變,也不再執(zhí)行第1個(gè)else語句。輸出a的值1,b的值3,c的值3。故本題答案為B選項(xiàng)。

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

6.B

7.A解析:本題考查數(shù)據(jù)庫(kù)系統(tǒng)的基本概念和知識(shí)。數(shù)據(jù)的邏輯結(jié)構(gòu),是數(shù)據(jù)間關(guān)系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管其在計(jì)算機(jī)中的存儲(chǔ)方式。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又叫物理結(jié)構(gòu),是邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)器里的實(shí)現(xiàn)。這兩者之間沒有必然的聯(lián)系。因此,選項(xiàng)A的說法是錯(cuò)誤的。

數(shù)據(jù)庫(kù)可以看成是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫(kù)具有為各種用戶所共享的特點(diǎn)。不同的用戶可以使用同一個(gè)數(shù)據(jù)庫(kù),可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫(kù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項(xiàng)B的說法是正確的。

數(shù)據(jù)庫(kù)設(shè)計(jì)是在數(shù)據(jù)庫(kù)管理系統(tǒng)的支持下,按照應(yīng)用的要求,設(shè)計(jì)一個(gè)結(jié)構(gòu)合理、使用方便、效率較高的數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)。數(shù)據(jù)庫(kù)設(shè)計(jì)包含兩方面的內(nèi)容:一是結(jié)構(gòu)設(shè)計(jì),也就是設(shè)計(jì)數(shù)據(jù)庫(kù)框架或數(shù)據(jù)庫(kù)結(jié)構(gòu);二是行為設(shè)計(jì),即設(shè)計(jì)基于數(shù)據(jù)庫(kù)的各類應(yīng)用程序、事務(wù)等。因此,選項(xiàng)C的說法是錯(cuò)誤的。

數(shù)據(jù)庫(kù)系統(tǒng)除了數(shù)據(jù)庫(kù)管理軟件之外,還必須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等。對(duì)于大型的多用戶數(shù)據(jù)庫(kù)系統(tǒng)和網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡(luò)系統(tǒng)軟件的支持。因此,選項(xiàng)D的說法是正確的。因此,本題的正確答案是選項(xiàng)A。

8.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個(gè)模塊的功能、建立與已確定的軟件需求的對(duì)應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評(píng)估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計(jì)的任務(wù)是:在使用程序設(shè)計(jì)語言編制程序以前,對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。需求分析是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進(jìn)度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯(cuò)誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計(jì)階段。

9.B解析:考查函數(shù)指針的使用方法。可以使用函數(shù)指針來調(diào)用函數(shù)。調(diào)用形式為:(*指針變量)(實(shí)參表列)。

10.D解析:本題中首先定義一個(gè)字符數(shù)組s,并將字符串'ABCD'存到數(shù)組s中,定義了一個(gè)字符指針變量p,在接下來for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向s[1],所以此時(shí)輸出的p所指字符串的值為BCD,第二次循環(huán)p指向s[2],此時(shí)輸出p所指的字符串的值為CD,第三次循環(huán)p指向s[3],此時(shí)輸出的p所指的字符串的值為D。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

11.A解析:在C語言中,應(yīng)當(dāng)在定義函數(shù)時(shí)指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認(rèn)按整型處理。在定義函數(shù)時(shí)對(duì)函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型一致。如果函數(shù)值的類型和return語句中的表達(dá)式類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)自動(dòng)進(jìn)行轉(zhuǎn)換,即函數(shù)類型決定返回值的類型。

12.A

13.B

14.B

15.B解析:實(shí)型常量有兩種書寫形式:①小數(shù)形式,它由符號(hào)、整數(shù)部分、小數(shù)點(diǎn)及小數(shù)部分組成;②指數(shù)形式,由十進(jìn)制小數(shù)形式加上指數(shù)部分組成,其形式為十進(jìn)制小數(shù)e指數(shù)或十進(jìn)制小數(shù)E指數(shù)。注:e或E后面的指數(shù)必須是整數(shù),并且在e或E的前面必須有數(shù)字。本題中,選項(xiàng)A)中E的前面沒有數(shù)字,因此錯(cuò)誤。選項(xiàng)C)中0.8不是整數(shù),因此錯(cuò)誤。選項(xiàng)D)中4是整型常量而不是實(shí)型常量。

16.D解析:從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),指的是對(duì)象的封裝性。

17.D

18.A解析:本題考查'%'運(yùn)算符的使用。運(yùn)算符'%'要求兩個(gè)運(yùn)算對(duì)象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。本題中表達(dá)式ao%=(b%2)等價(jià)于a=a%o(b%2)=5%(7%2)=5%1=0。

19.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或?yàn)椤凹佟睍r(shí)執(zhí)行指定的動(dòng)作,由if引導(dǎo)條件為“真”時(shí)執(zhí)行的操作;由else引導(dǎo)條件為“假”時(shí)執(zhí)行的操作。else語句要與上面最近的if語句進(jìn)行匹配,如果要嵌套調(diào)用if-else語句,需要將嵌套部分用{}括起來,避免程序報(bào)錯(cuò)。題目中給出了一個(gè)if語句和一個(gè)if-else語句,if-else語句為第一個(gè)if語句的子語句。首先執(zhí)行外層if語句,執(zhí)行條件為x>y,由于x=1,y=2,故該條件為假,不執(zhí)行if的子語句,直接執(zhí)行語句printf("%d\\n",x++);,該語句先輸出x的值,然后進(jìn)行x++操作。x的初始值為1,輸出結(jié)果為1。

20.D選項(xiàng)A,在賦值表達(dá)式中,賦值號(hào)的左邊只能是變量或者是代表某個(gè)存儲(chǔ)單元的表達(dá)式,不能是任意表達(dá)式,右邊也不得出現(xiàn)表達(dá)式;選項(xiàng)8中,整型變量中只能存放整型數(shù),但實(shí)型變量中能存放實(shí)型數(shù),也能存放整型數(shù);選項(xiàng)C,表達(dá)式a=b的意思是把變量b的值賦給變量a,從而覆蓋a中原來值;選項(xiàng)D,要求取余運(yùn)算符"%"兩邊的類型均為整型。

21.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é)束。

22.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。

23.用“&&”連接兩個(gè)表達(dá)式時(shí),若第1個(gè)表達(dá)式的值為“假”,則運(yùn)算結(jié)果與第2個(gè)表達(dá)式無關(guān),此時(shí)第2個(gè)表達(dá)式將不再進(jìn)行計(jì)算。本題中第1個(gè)表達(dá)式“j=!ch”值為0,所以第2個(gè)表達(dá)式i++將不再進(jìn)行計(jì)算,i的值為1。\r\n\r\n

24.x=2y=1

25.for(i=1;i<=x;i+=2)*n=jfor(i=1;i<=x;i+=2)*n=j解析:本題題干信息是求能整除x且不是偶數(shù)的所有正整數(shù)。循環(huán)語句中i從1開始且每次增2,所以i始終是奇數(shù),語句,n=j;是記錄符合題意的整數(shù)的個(gè)數(shù)。

26.格式化模型格式化模型解析:層次模型與網(wǎng)狀模型屬于格式化模型。

27.2468

28.內(nèi)容內(nèi)容

29.int*int*解析:從題中代碼可知:z應(yīng)該是一個(gè)整型指針,因此應(yīng)填int*。

30.模塊模塊

31.2424解析:本題考核的知識(shí)點(diǎn)是數(shù)組的定義和數(shù)組元素的引用。主函數(shù)中首先定義了一個(gè)長(zhǎng)度為7的數(shù)組,然后用一個(gè)while循環(huán)引用數(shù)組的元素,當(dāng)i大于7或者p[i]為偶數(shù)時(shí),循環(huán)結(jié)束。顯然當(dāng)i=2時(shí),p12]=14為偶數(shù)時(shí),循環(huán)結(jié)束,此時(shí)j的值為j=p[0]+p[1]=24;

32.88解析:fabs函數(shù)功能是求x的絕對(duì)值,計(jì)算結(jié)果為double型。pow功能是計(jì)算x的y次方的值,計(jì)算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。

33.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式為:scanf(格式控制,地址表列),因此,第一處應(yīng)該填寫地址,由于是循環(huán)輸入,所以填&a[i]。依據(jù)題意第二處應(yīng)該填寫a[i],以實(shí)現(xiàn)sum=sum+a[i]的求和。

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

35.43214321解析:靜態(tài)存儲(chǔ)類的局部變量其生存期為整個(gè)程序的運(yùn)行期間,作用域卻只是定義它的函數(shù)或局部范圍。注意:局部變量和全局變量的作用域。

36.1.0/(n*n)1.0/(n*n)解析:sam中累加的值是1+1/(2*2)+1/(3*3)+…+1//(n*n),如果寫為1/(n*n),則會(huì)因?yàn)?和n都為整型,結(jié)果則為實(shí)型,將1變?yōu)?.0,結(jié)果則為實(shí)型。

37.E-R圖E-R圖解析:E-R圖是設(shè)計(jì)概念模型的有力工具。

38.43344334解析:程序?qū)⒆兞縜,b的值傳給函數(shù)swap的形參x,y,并在函數(shù)中對(duì)x,y的值進(jìn)行交換,所以在函數(shù)swap中輸出x,y的值4,3,由于c程序的函數(shù)是僧傳遞,實(shí)參a,b的值不會(huì)隨形參x,y的改變而改變,所以在主函數(shù)中輸出的a,b的值為3,4。

39.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個(gè)指向自身的結(jié)構(gòu)體指針。

40.5656解析:本題中a,b,c,d足實(shí)參,x,y,cp,dp是形參。C語言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。

41.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。

第1次for循環(huán),p=a,p指向數(shù)組的第1個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。

42.B

43.C

44.B解析:因?yàn)樵谘h(huán)中存在一條這樣的語句“if(n=4)break;”,所以循環(huán)變量n遞增到4的時(shí)候循環(huán)會(huì)被強(qiáng)行結(jié)束。故一共循環(huán)了5次,每次n的值分別為0、1、2、3、4。應(yīng)該選擇B。

45.B解析:本題考核的知識(shí)點(diǎn)是算法的性質(zhì)。算法是為解決某個(gè)特定問題而采取的確定的且有限的步驟,一個(gè)算法應(yīng)當(dāng)具有以下5個(gè)基本特性:1.有窮性,就是指一個(gè)算法應(yīng)當(dāng)包含有限個(gè)操作步驟。2.確定性,就是說算法中每一條指令必須有確切的含義,不能有二義性,對(duì)于相同的輸入必能得出相同的執(zhí)行結(jié)果。3.有零個(gè)或多個(gè)輸入。4.可行性,就是說算法中指定的操作,都可以通過已經(jīng)實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次實(shí)現(xiàn),5.有一個(gè)或多個(gè)輸出。由此可知選項(xiàng)B不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

46.C解析:考查指向函數(shù)的指針變量的使用。在本題中,將函數(shù)的入口地址賦給指針后就可以用該指針調(diào)用函數(shù)了。

47.C解析:在關(guān)系模型數(shù)據(jù)庫(kù)中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個(gè)具有N個(gè)屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點(diǎn)。

48.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。

49.C解析:本題考查的知識(shí)點(diǎn)是運(yùn)算符的優(yōu)先級(jí).在復(fù)合賦值語句中,應(yīng)該由右向左依次賦值,在表達(dá)式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個(gè)選項(xiàng)中C正確。

50.D解析:本題考查數(shù)組的兩個(gè)知識(shí)點(diǎn):①在C語言中,數(shù)組元素的個(gè)數(shù)是確定的,不允許隨機(jī)變動(dòng),數(shù)組定義好之后,它所能容納的元素的個(gè)數(shù)也就確定了;②同一個(gè)數(shù)組中所有元素的類型是一樣的。

51.A解析:本題中的else語句和if語句之間有兩條語句,并且未用大括號(hào)括起來,故編譯通不過。所以應(yīng)該選擇A。

52.B

53.C解析:本題考查的知識(shí)點(diǎn)是賦值語句的基本知識(shí)。在表達(dá)式的運(yùn)算中,雙目賦值運(yùn)算符的格式為“變量二表達(dá)式”,單目運(yùn)算符一般形式為“運(yùn)算符表達(dá)式”或“表達(dá)式運(yùn)算符”。常量和表達(dá)式是不能被賦值的。選項(xiàng)A為復(fù)合表達(dá)式,首先計(jì)算(i=2,++i)的值,然后賦值給n,故選項(xiàng)A正確;選項(xiàng)B為簡(jiǎn)單自加運(yùn)算,故選項(xiàng)B正確;選項(xiàng)C在表達(dá)式++(i+1);中,(i+1)不是變量,該表達(dá)式的值為常量,而在++運(yùn)算中,其運(yùn)算對(duì)象必須為變量,故選項(xiàng)C錯(cuò)誤;選項(xiàng)D中為復(fù)合賦值表達(dá)式,正確.所以應(yīng)當(dāng)選擇C。

54.A解析:本題考核的知識(shí)點(diǎn)是字符串的長(zhǎng)度。字符數(shù)組中可以存放字符串,但字符數(shù)組的長(zhǎng)度并不是字符串的長(zhǎng)度,字符串的長(zhǎng)度是指字符數(shù)組中存放的有效字符個(gè)數(shù),即,\'\\0\'之前的字符數(shù)。字符數(shù)組s中依次存放的字符是:\'\\\\'1'4'1'141'a'b'c'\\t\'和最后一個(gè)字符串結(jié)束標(biāo)記\'\\0\',故字符串的長(zhǎng)度是9。所以,4個(gè)選項(xiàng)中A為所選。

55.A解析:局部變量在執(zhí)行到它所在的程序塊時(shí)產(chǎn)生,執(zhí)行完時(shí)被摧毀,而靜態(tài)局部變量的生存期將一直延長(zhǎng)到程序運(yùn)行結(jié)束,故選項(xiàng)A正確;全局變量的只有一種靜態(tài)存儲(chǔ)類別,故全局變量說明為static存儲(chǔ)類,和沒有說明為static存儲(chǔ)類其生存期都是一直延長(zhǎng)到程序運(yùn)行結(jié)束,故選項(xiàng)B不正確:未賦初值的局部變量的初值是隨機(jī)的,故選項(xiàng)C不正確;形參只能是一般局部變量,不能使用任何存儲(chǔ)類說明符,故選項(xiàng)D不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

56.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因?yàn)檫\(yùn)算符“*”的優(yōu)先級(jí)高于“+”,所以輸出結(jié)果為p指向的元素1,然后加9,值為10。

57.A

58.A解析:C語言中,一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號(hào)括起來作為字符常量,字符常量的范圍是0~127。由于字符常量用單引號(hào)括起來,所以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論