2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第1頁
2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第2頁
2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第3頁
2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第4頁
2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.棧的特點(diǎn)是B,隊(duì)列的特點(diǎn)是()。

A.先進(jìn)先出B.先進(jìn)后出

2.程序運(yùn)行后的輸出結(jié)果是()。A.0304.B.2050C.3344D.3040

3.若用一個(gè)大小為6的數(shù)值來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為()。

A.1和5B.2和4C.4和2D.5和1

4.設(shè)"char**s;",以下正確的表達(dá)式是()。

A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';

5.一個(gè)有8個(gè)頂點(diǎn)的有向圖,所有頂點(diǎn)的入度出度之和與所有頂點(diǎn)的出度之和的差是()

A.16B.4C.0D.2

6.若要求在if后一對(duì)圓括號(hào)中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為()

A.a<>0B.!aC.a=0D.a

7.下列表達(dá)式中,可以正確表示的關(guān)系是()。

A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0

8.如果定義“班級(jí)”關(guān)系如下:班級(jí)(班級(jí)號(hào),總?cè)霐?shù),所屬學(xué)院,班級(jí)學(xué)生)則使它不滿足第一范式的屬性是()。

A.班級(jí)號(hào)B.班級(jí)學(xué)生C.總?cè)霐?shù)D.所屬學(xué)院

9.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

10.設(shè)有一個(gè)二維數(shù)組A[m][n],假設(shè)A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個(gè)元素占一個(gè)空間,問A[3][3](10)存放在什么位置()(腳注(10)表示用10進(jìn)制表示)。

A.688B.678C.692D.696

11.

12.

13.在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱為該表的()

A.連接碼B.關(guān)系碼C.外碼D.候選碼

14.在下列語句中,其含義為“q是一個(gè)函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。

A.int**q;B.int(*q);C.int*q;D.int*q;

15.以下選項(xiàng)中不能用做C程序合法常量的是()。

A.1,234B.‘\123’C.123D.“\x7G”

16.

17.由3個(gè)結(jié)點(diǎn)可以構(gòu)造出______種不同形態(tài)的二叉樹。

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

18.在軟件生存周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。

A.概要設(shè)計(jì)B.詳細(xì)設(shè)計(jì)C.可行性分析D.需求分析

19.若有定義“inta=3;doubleb=0.1263;charch=‘a(chǎn)’;”,則以下選項(xiàng)中敘述有錯(cuò)的是()。

A.逗號(hào)表達(dá)式的計(jì)算結(jié)果是最后一個(gè)表達(dá)式的運(yùn)算結(jié)果

B.運(yùn)算符“%”只能對(duì)整數(shù)類型的變量進(jìn)行運(yùn)算

C.語句“ch=(unsignedint)a+b;”是對(duì)a與b之和進(jìn)行強(qiáng)制類型轉(zhuǎn)換,結(jié)果賦值給變量ch

D.復(fù)合運(yùn)算“a*=b+ch”是將變量b、ch之和與a相乘,結(jié)果再賦值給a

20.算法分析的目的是()。

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系C.分析算法的易懂性和可靠性D.分析算法的效率以求改進(jìn)

二、2.填空題(20題)21.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

22.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。

23.需求分析的最終結(jié)果是產(chǎn)生【】。

24.設(shè)有以下定義和語句:

inta[3][2]={1,2,3,4,5},*p[3];

p[0]=a[1];

則*(p[0]+1)所代表的數(shù)組元素是【】。

25.面向?qū)ο蟮哪P椭?,最基本概念是?duì)象和【】。

26.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

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

doublefun(doublex,inty)

{inti;

doublez;

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

returnz;

}

28.程序如下:

main()

{inti=4;

printf("%d",-++i);

}

該程序執(zhí)行后的輸出結(jié)果以及i的值分別是______、_______。

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

main()

{intX==1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

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

}

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

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

32.數(shù)據(jù)的安全性是指保護(hù)數(shù)據(jù)以防止【】用戶的使用造成的數(shù)據(jù)泄密和破壞。

33.已有定義;charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

34.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。

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

36.以下程序從輸入的10個(gè)字符串中找出最長(zhǎng)的那個(gè)串,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

#defineN10

main()

{charstr[N][81],*sp;

inti;

for(i=0;i<N;i++)gets(str[i]);

sp=str[0];

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

if(strlen(sp)<strlen(str[i]))

【】;

printf("輸出最長(zhǎng)的那個(gè)串:\n%s\n",sp);

printf("輸出最長(zhǎng)的那個(gè)串的長(zhǎng)度:%d\n",strlen(sp));}

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

main()

{inta=2,b=4,e=6;

int*p1=&a,*p2=&b,*p;

*(p=&c)=*p1*(*p2);

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

}

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

#include

char*ss(char*s)

{char*p,t;

P=s+1;t=*s;

while(*p){*(P-1)=*P;P++;}

*(P-1)=t;

returns;

}

main()

{char*p,str[10]="abcdefgh";

p=ss(str);

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

}

39.以下程序運(yùn)行后,若輸入:3,abcde<回車>,則輸出結(jié)果是【】。

#include<stdio.h>

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

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

}

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

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;

sub(s,7,SIZE-1);

for(I=0;I<SIZE;I++)printf("%c",s[I]);

printf("\n");}

sub(char*a,intt1,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

三、1.選擇題(20題)41.已有定義語句:intx=3,y=0,z=0;,則值為0的表達(dá)式是()

A.x&&y

B.x||z

C.x||z+2&&y-z

D.!((x<y)&&!z||y)

42.有以下程序:#include<stdio.h>main()char*p[]={"3697","2548"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。

A.35B.37C.39D.3975

43.設(shè)有以下語句,其中不是對(duì)a數(shù)組元素的正確引用的是:______(其中0≤i<10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;

A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))

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

A.對(duì)于double類型數(shù)組,不可以直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出

B.數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變

C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出“下標(biāo)越界”的出錯(cuò)信息

D.可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)

45.下列程序段選擇項(xiàng),使i的運(yùn)行結(jié)果為3的程序段是()。

A.inti=0,j=O;(i=2,(j++)+i);

B.inti=1,j=0;j=i=((i=3)*2);

C.inti=0,j=1;(j=1)?(i=1):(i=3);

D.inti=1,j=1;i+=j+=1;

46.需求分析階段的任務(wù)是()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能

47.SQL語言又稱為______。

A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言

48.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計(jì)是描述______。

A.數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測(cè)試D.軟件控制過程

49.以下敘述正確的是______。

A.可以把define和if定義為用戶標(biāo)識(shí)符

B.可以把define定義為用戶標(biāo)識(shí)符,但不能把if定義為用戶標(biāo)識(shí)符

C.可以把if定義為用戶標(biāo)識(shí)符,但不能把define定義為用戶標(biāo)識(shí)符

D.define和if都不能定義為用戶標(biāo)識(shí)符

50.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運(yùn)行時(shí),從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是

A.anothernumber

B.anothernumberanother

C.anothernumbernumber

D.numbernumber

51.下面程序運(yùn)行后的輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}

A.1B.7C.9D.11

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

A.自頂向下B.逐步求精C.模塊化D.可復(fù)用

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

#include<stdio.h>

main()

{staticchara[]="Languagef",b[]="programe";

char*p1,*p2;intk;

p1=a;p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}

A.gaeB.gaC.LanguageD.有語法錯(cuò)

54.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)

55.有下列程序:#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

56.若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

57.設(shè)x為整型變量,n=14,n的地址為4000;m=6,m的地址為2000;執(zhí)行語句x=&n后的結(jié)果為()。

A.14B.6C.2000D.4000

58.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。

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

59.12.以下說法中正確的是()

A.#define和printf都是C語句

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

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

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

60.有以下說明和定義語句structstudent{intage;charnum[8];structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};structstudent*p=stu;};以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯(cuò)誤的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].a(chǎn)ge

四、選擇題(20題)61.有以下程序:

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

A.9B.7C.5D.3

62.有以下程序段

#include<stdio.h>

voidfun(char*fname,char*st)

{FILE*myf;

inti;

myf=fopen(fname,"w");

for(i=0;i<strlen(st);i++)fputc(st[i],myf);

fclose(myf);

}

main()

{fun("test.t","newworld");

fun("test.t","hello,");}

程序執(zhí)行后,文件test.t中的內(nèi)容是A.A.hello,

B.newworldhello,

C.newworld

D.hello,rld

63.

64.

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

intf(intA)

{returna%2;}

main

{ints[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s[8]);i++)d+=s[i];

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

}

A.9B.11C.19D.21

65.有以下程序:

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

66.在下述程序中,判斷條件“i>j”共執(zhí)行的次數(shù)是

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d",s);

break;

}s+=i;

}

}

A.4B.7

C.5D.6

67.

則下面對(duì)m數(shù)組元素的引用中錯(cuò)誤的是()。

A.

B.

C.

D.

68.下列程序的輸出結(jié)果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112

69.HTTP協(xié)議的GET請(qǐng)求方法可以獲取()類型的數(shù)據(jù)。

A.HTML文檔B.圖片C.視頻D.以上都可以

70.在一個(gè)C源程序文件中所定義的全局變量,其作用域?yàn)椋ǎ?/p>

A.由具體定義位置和extem說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

71.

72.設(shè)有定義:charp[]={1,2,3),*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

73.

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

#include<stdio.h>

#definePT5.5

#defineS(x)PT*x*X

main

{inta=1,b=2:

printf("%4.1f\n",s(a+b));

}

A.49.5B.9.5C.22.0D.45.0

75.有下列程序: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);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5

76.

77.應(yīng)用數(shù)據(jù)庫的主要目的是A.A.解決數(shù)據(jù)保密問題

B.解決數(shù)據(jù)完整性問題

C.解決數(shù)據(jù)共享問題

D.解決數(shù)據(jù)量大的問題

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

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

79.有以下程序,其輸出結(jié)果是()。

voidmain()

{

floarx=1;

inty;

x++;

y=x+1;

printf("x=%d,y=%f",x,y);

}

A.x=2,y=3

B.x=2,y=3.0

C.x=2.0,y=3

D.x=0,y=0.000000

80.設(shè)“intx=2,y=1;”,則表達(dá)式(!x||Y--)的值是()。

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

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算并輸出下列級(jí)數(shù)的前N項(xiàng)之和SN,直到SN+1大于q為止。q的值通過形參傳人。SN=2/1+3/2+4/3+(N+1)/N例如,若q的值為57,則函數(shù)值為59.593612。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存人XX所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過k返回。

例如,若輸入17,則應(yīng)輸出:46891012141516。注意:部分源程序在文件PROGl.C中。

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

參考答案

1.A

2.D[解析]第一次循環(huán)溈0.i%2為0.執(zhí)行switch(a[0]%62)中的case0語句后內(nèi)容即a[0]++,a[0]的值變成3;第二次循環(huán)的值為1.i%62為1.執(zhí)行case1:a[]=0;所以a[1]的值變成0;第三次循環(huán)的值為2.i%62為0.執(zhí)行switch([2]%62)中的case1語句后的內(nèi)容a[2]--,a[2]的值變成4;第四次循環(huán)的值為3.i%2為1.執(zhí)行case1:ai]=0;所以a[3]的值變成0.

3.B

4.B

5.C

6.D

7.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達(dá)式是或的關(guān)系,所以在寫成C語言表達(dá)式應(yīng)是邏輯或的關(guān)系,邏輯或運(yùn)算符是'‖'。

8.B對(duì)于關(guān)系模式,若其中的每個(gè)屬性都已不能再分為簡(jiǎn)單項(xiàng),則它屬于第一范式模式。題目中“班級(jí)”關(guān)系的“班級(jí)學(xué)生”屬性,還可以進(jìn)行再分,如學(xué)號(hào)、姓名、性別、出生日期等,因此不滿足第一范式。本題答案為B選項(xiàng)。

9.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:S=m+n+m+n*k=1+2+1+2*3=10。

10.C

11.D

12.D

13.DD)【解析】在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個(gè)作為用戶使用的鍵稱為主鍵或主碼。

14.B本題考查指針函數(shù)。其定義的基本格式為:類型說明符(*函數(shù)名)。“類型說明符”表示返回的指針值指向的數(shù)據(jù)類型。

15.AA選項(xiàng)中逗號(hào)是一個(gè)操作符。

16.B

17.C難易程度:易

18.D解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對(duì)目標(biāo)系統(tǒng)提出清晰、準(zhǔn)確和具體的要求,即要明確系統(tǒng)必須做什么的問題。本題的正確答案為D。

19.C逗號(hào)表達(dá)式的計(jì)算結(jié)果是最后一個(gè)表達(dá)式的運(yùn)算結(jié)果,選項(xiàng)A正確;運(yùn)算符“%”是求余運(yùn)算符,只能對(duì)整數(shù)類型的變量進(jìn)行運(yùn)算,選項(xiàng)B正確;在語句“ch=(unsignedint)a+b”中,圓括號(hào)優(yōu)先級(jí)最高,所以首先將a強(qiáng)制轉(zhuǎn)換成無符號(hào)整型,再與b相加,結(jié)果賦值給ch,選項(xiàng)C錯(cuò)誤;復(fù)合運(yùn)算“a*=b+ch”,先計(jì)算“b+ch”的值,再將a與b、ch之和相乘,結(jié)果再賦值給a,選項(xiàng)D正確。故本題答案為C選項(xiàng)。

20.D解析:算法分析是指對(duì)一個(gè)算法的運(yùn)行時(shí)間和占用空間做定量的分析,一般計(jì)算出相應(yīng)的數(shù)量級(jí),常用時(shí)間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時(shí)間復(fù)雜度和空間復(fù)雜度;提高算法的執(zhí)行效。率。

21.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。

22.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

23.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗(yàn)證性、一致性、可理解性、可修改性和可追蹤性等。

24.a[1][1]a[1][1]解析:p是一個(gè)指針數(shù)組,p[0]指向數(shù)組a[1][0]。*(p[0]+1)代表數(shù)組a[1][1]。

25.類類解析:面向?qū)ο竽P椭?,最基本的概念是?duì)象和類。對(duì)象是現(xiàn)實(shí)世界中實(shí)體的模型化:將屬性集和方法集相同的所有對(duì)象組合在一起,可以構(gòu)成一個(gè)類。

26.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴(kuò)充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

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

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

{

類型說明語句;

執(zhí)行語句;

}

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

28.-55。

29.2121解析:外層switch語句后面括號(hào)里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個(gè)switch語句后面括號(hào)里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時(shí)a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。

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

31.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長(zhǎng)度并作為函數(shù)的返回值,這里的長(zhǎng)度不包括串尾的結(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,所以返回的長(zhǎng)度是6。

32.(非法)不合法(非法)不合法

33.00解析:本題考查數(shù)據(jù)類型及其運(yùn)算的邏輯運(yùn)算,c為空格字符但其ASCII碼不為0,所以!c=0,在邏輯與運(yùn)算中,只要有一項(xiàng)為假,其值為0,所以b的值為0。

34.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。

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

36.sp=str[i]sp=str[i]解析:二維字符數(shù)組即數(shù)組的每個(gè)元素又是一個(gè)字符串,即字符串?dāng)?shù)組。題中二維數(shù)組的第一行的首地址賦給字符指針sp,使sp指向了二維字符數(shù)組的一個(gè)字符串。求字符串長(zhǎng)度函數(shù)strlen比較當(dāng)前字符串與數(shù)組的下一個(gè)元素的字符串的長(zhǎng)度,如果當(dāng)前字符串的長(zhǎng)度小于下一個(gè)元素的,則指針sp又指向了下一個(gè)元素,直到比較到數(shù)組的最后一個(gè)元素,得到的sp指針?biāo)赶虻淖址礊殚L(zhǎng)度最長(zhǎng)的字符串。

37.88解析:本程序定義了3個(gè)指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達(dá)式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(P)代表了c的存儲(chǔ)單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。

38.bcdefgha

39.cdeabcdeab解析:程序中的move函數(shù)的作用是保存輸入數(shù)組中的最后一個(gè)元素,然后從最后一個(gè)數(shù)組元素開始,依次向后移動(dòng)一個(gè)位置,再把保存的最后一個(gè)元素置于首位,循環(huán)次數(shù)由n控制。輸入3,abcde<回車>后主函數(shù)開始執(zhí)行,其中n=3,s[50]={'abcde'},z=5。第一次循環(huán),i=1時(shí),調(diào)用move(s,5)函數(shù),temp=str[4]語句把數(shù)組中最后一個(gè)元素\'e\'保存在temp中,然后i從4開始循環(huán),將str[3](字符\'d\')賦給str[4],str[2](字符\'c\')賦給str[3],……,循環(huán)結(jié)束時(shí)str所指字符串為'aabcd',再將保存在temp中的\'e\'置于首位,字符串變?yōu)?eabcd';i=2時(shí),調(diào)用move函數(shù),字符串為'deabc';i=3時(shí),調(diào)用move函數(shù),字符串為'cdeab'。最后輸出結(jié)果為'cdeab'。

40.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運(yùn)算等,某字符的大寫字母的ASCII碼值比它對(duì)應(yīng)的小寫字母ASCII碼值小32。

41.A

42.C解析:執(zhí)行main函數(shù)中的for語句,當(dāng)i=0,j=0時(shí),p[i][j]=p[0)[0]='3',滿足while循環(huán)條件,執(zhí)行循環(huán)體中的if語句得num=3,j=2,此時(shí)p[i][j]=p[0][2]='9',滿足循環(huán)條件,執(zhí)行while循環(huán)體得num=39,j=4,判斷while條件,不滿足并退出while循環(huán);再次執(zhí)行for語句,當(dāng)i=1,j=0,p[i][j]=p[1][0]=2,滿足while條件,執(zhí)行循環(huán)體中的if語句,但不符合if條件,所以num不進(jìn)行運(yùn)算,j進(jìn)行加2運(yùn)算j=2,此時(shí)p[i][j]=p[1][2]=4,if條件為假,num不進(jìn)行運(yùn)算,j進(jìn)行加2運(yùn)算j=4,再執(zhí)行while語句,條件不符合退出循環(huán)。所以結(jié)果為39。

43.D解析:觀察程序可知,a實(shí)際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個(gè)元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對(duì)a數(shù)組元素的正確引用。

44.C解析:在C語言中,除字符數(shù)組外,一個(gè)數(shù)組不能通過數(shù)組名對(duì)數(shù)姐進(jìn)行整體引用,因此選項(xiàng)A是對(duì)的。數(shù)組名中存放的是一個(gè)地址常量,它代表整個(gè)數(shù)組的首地址,因此選項(xiàng)B是對(duì)的。C語言程序在運(yùn)行過程中,系統(tǒng)不自動(dòng)檢驗(yàn)數(shù)組元素的下標(biāo)是否越界,因此選項(xiàng)C是錯(cuò)誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時(shí)數(shù)組說明符的一對(duì)方括號(hào)中可以不指定數(shù)組的大小,因此選項(xiàng)D也是正確的。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

45.D

46.DD)【解析】需求分析是軟件定義時(shí)期的最后一個(gè)階

\n段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象,充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在這些基礎(chǔ)上確定新系統(tǒng)的功能。

47.CC?!窘馕觥縎QL語言的全稱為StructuredQueryLanguage,它是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言,是一種面向數(shù)據(jù)庫的通用數(shù)據(jù)處理語言規(guī)范。它包含數(shù)據(jù)查詢語言、數(shù)據(jù)操縱語言、數(shù)據(jù)定義語言和數(shù)據(jù)控制語言4個(gè)部分。

48.B解析:從工程管理解度來看,軟件設(shè)計(jì)分兩步完成:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)(又稱結(jié)構(gòu)設(shè)計(jì))將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。

49.B解析:if是C語言中的保留字,所以不能作為用戶標(biāo)識(shí)符;define是C語言中的預(yù)編譯命令,由于C語言中的預(yù)編譯命令都是以#開頭,所以define可以作為用戶標(biāo)識(shí)符。

50.C解析:switch語句的執(zhí)行過程是:在switch后面的表達(dá)式的值和case后面常量表達(dá)式的值吻合時(shí),就執(zhí)行后面的語句.如果在該語句的后面沒有break語句,則繼續(xù)執(zhí)行下一個(gè)case,直到遇到break語句或switch多分支的結(jié)束,在switch語句中,break語句的作用是使流程跳出switch結(jié)構(gòu),終止Switch語句的執(zhí)行.本題中在for循環(huán)中嵌套了swish語句,每循環(huán)一次通過scanf()函數(shù)從鍵盤上輸入一個(gè)k值,然后執(zhí)行switch語句。for循環(huán)共循環(huán)了2次,當(dāng)i=1時(shí),從鍵盤上輸入0,使得k的值為0,執(zhí)行switch語句中case:0后面的語句,輸出another,接著執(zhí)行case:0下面的語句輸出number,退出switch語句,當(dāng)i=2時(shí),從鍵盤上輸入1,使得k的值為1,執(zhí)行switch語句中case1后面的語句,輸出number,退出switch語句.當(dāng)i=3時(shí)退出循環(huán).故最后的輸出為another、number和number,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

51.C解析:本題a[2][3]定義為一個(gè)具有兩行三列的元素的數(shù)組,malloc()函數(shù)的作用是開辟了一個(gè)長(zhǎng)度為sizeof(int)的內(nèi)存區(qū),p為指向整型數(shù)據(jù)的指針變量,程序調(diào)用fut()函數(shù),將第一行第一列對(duì)應(yīng)的元素值賦給**s,由于數(shù)組中第一行第一列對(duì)應(yīng)的元素為9,所以本題輸出值9。

52.D解析:20世紀(jì)70年代以來,提出了許多軟件設(shè)計(jì)方法,主要有①逐步求精:對(duì)復(fù)雜的問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化;②自頂向下:程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化;⑧模塊化:一個(gè)復(fù)雜問題,肯定是由若干稍簡(jiǎn)單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊,而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)優(yōu)點(diǎn)。

53.A解析:考查用指針來引用字符數(shù)組元素的方法。指針p1+k相當(dāng)于指針p1向后移動(dòng)了k個(gè)字符的位置,指針p2同理。

54.B本題主要考查C語言合法語句的定義。

在選項(xiàng)A中,a==1不是一個(gè)合法的語句,因?yàn)樗鼪]有語句結(jié)束標(biāo)識(shí)符“;”,不能說是一條語句,如果作為一個(gè)表達(dá)式,它是正確的。

在選項(xiàng)B中,由于變量i已被正確定義并有初值,“++i;”是正確的語句。

在選項(xiàng)C中,由于正確的賦值語句中,賦值符號(hào)的左邊不能為常量或表達(dá)式,而右邊不能為變量或表達(dá)式,很明顯,“a=a++=5;”違背了賦值語句的原則。

在選項(xiàng)D中,“a=int(i);”語句是不正確的,在C語言中沒有這種表示形式,如果是想將變量i強(qiáng)制轉(zhuǎn)換為整型的操作,應(yīng)該為“a=(int)i;”。

55.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)。

56.B解析:條件運(yùn)算符要求有3個(gè)操作對(duì)象,稱三目(元)運(yùn)算符,它是C語言中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為:表達(dá)式17表達(dá)式2:表達(dá)式3其求解順序是:先求解表達(dá)式1,若為非O(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。并且注意++、--的用法。

57.D解析:&是取地址運(yùn)算符,表達(dá)式x=&a是表示將a的地址賦給變量x。

58.B解析:本題中有一個(gè)陷阱,很多考生會(huì)根據(jù)程序的書寫格式來判斷:while循環(huán)的循環(huán)體為printf('y=%d\\n',y);語句。其實(shí)while的循環(huán)體是一條空語句,即y--后面的那個(gè)分號(hào)就是while的循環(huán)體。所以本題只要弄清楚表達(dá)式y(tǒng)--何時(shí)為“假”,即等于0,就能得出結(jié)果了。因?yàn)?-運(yùn)算符是后綴形式,所以表達(dá)式y(tǒng)--的值是y自減之前的值,即y等于。時(shí),表達(dá)式y(tǒng)--就等于0了。但此時(shí)的y還要被減1,所以循環(huán)結(jié)束后,y的值為-1。故應(yīng)該選擇B。

59.CC[解析]#define是宏命令,而不是C語句

60.D解析:結(jié)構(gòu)體變量也有地址,因此可以把它的地址賦值給一個(gè)指針變量,然后通過該指針變量來引用結(jié)構(gòu)體的成員,選項(xiàng)A和選項(xiàng)B就是通過指針變量來引用結(jié)構(gòu)體的成員,也可以通過結(jié)構(gòu)體數(shù)組元素的成員引用,而在選項(xiàng)D中stu[3].a(chǎn)ge不正確,因?yàn)榻Y(jié)構(gòu)體數(shù)組stu共有三個(gè)元素,其下標(biāo)應(yīng)該為0,1,2。

61.D第一次循環(huán)時(shí),k=1,在switch語句中,先執(zhí)行default后面的語句,即c=c+k=1,因?yàn)闆]有break語句,所以不會(huì)跳出switch結(jié)構(gòu),會(huì)接著執(zhí)行case2后面的語句,即c=c+1=2,然后跳出switch;第二次循環(huán)時(shí),k=2,直接執(zhí)行ease2后面的語句,即c=c+1=3,然后跳出switch語句,結(jié)束循環(huán),執(zhí)行輸出語句。

62.D本題主要考查文件的操作。在本題的程序中,首先定義了一個(gè)無返回值的函數(shù)fun,該函數(shù)帶有兩個(gè)指針類型的形參,其中第一個(gè)形參指向需要被操作文件的文件名,而第二個(gè)形參指向被操作的字符串。在函數(shù)體中,首先定義一個(gè)文件指針,然后以只寫的方式打開第一個(gè)形參所指向的文件,接著執(zhí)行for循環(huán),循環(huán)結(jié)束的條件是循環(huán)變量小于被操作字符串的長(zhǎng)度,循環(huán)體中的程序fputc(st[i],myf);的功能是將字符串中的當(dāng)前字符輸入到文件中。由這些分析我們可以知道,函數(shù)fun的作用是將字符串的內(nèi)容寫入到文件中。

在主函數(shù)中,兩次調(diào)用函數(shù)fun,當(dāng)?shù)谝淮握{(diào)用時(shí),寫入文件的內(nèi)容為newworld,然后第二次調(diào)用函數(shù),此時(shí)打開文件,文件的指針重新回到開始,然后往文件中寫內(nèi)容“hello,”,由于此時(shí)文件中已經(jīng)有內(nèi)容“newworld”,則需要覆蓋前面一部分的內(nèi)容,因此,程序的最終輸出結(jié)果是hello,rld,本題的正確答案選D。

63.B

64.A

\n在程序中當(dāng)i=0時(shí),s[o]=1,f(s[0])為1,執(zhí)行d+=s[0],d的值為1,i++也變?yōu)?。當(dāng)i=1時(shí),s[1]=3,f(s[1])為1,也為非0,繼續(xù)執(zhí)行后面的表達(dá)式,此時(shí)d的值為1+3=4,繼續(xù)著i++變?yōu)?,接著執(zhí)行for循環(huán),可知for循環(huán)的目的是把S數(shù)組中的奇數(shù)相加,因此最后d的值為1+3+5為9,故選擇A選項(xiàng)。

\n

65.A本題重點(diǎn)考察函數(shù)的調(diào)用,首先要了解字母對(duì)應(yīng)的ASCIl碼。例如A為65,a為97。即字母+1劂可得到下一個(gè)字母。-其次是函數(shù)形參和實(shí)參的問題,運(yùn)行過程如下:在fun(&b,a)中,}c=.a(chǎn)-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);輸出b,B,因?yàn)橹羔榗指向地址的值為b,此時(shí)b=}C=.b.;豳數(shù)返回執(zhí)行ptud(。%C,%c、n”,b,8);輸出b,A,因此A選項(xiàng)正確。

66.D本題主要要求我們求判斷條件“i>j”執(zhí)行的次數(shù)。在本題的程序中,首先定義了四個(gè)整型變量,并分別賦初值,然后執(zhí)行for循環(huán)結(jié)構(gòu),該循環(huán)結(jié)構(gòu)中都是缺省語句,那么如果循環(huán)體中沒有break語句,程序?qū)⒚媾R死循環(huán),從后面的程序中我們可以看出,程序中存在一條break語句。

第一次循環(huán)時(shí),變量k的值為2,變量i的值被改變?yōu)?,而此時(shí)變量j的值為10,執(zhí)行if(i>j)語句,結(jié)果為假,不執(zhí)行break語句,然后改變變量s的值,一次循環(huán)結(jié)束。

通過對(duì)這次循環(huán)的分析,我們發(fā)現(xiàn)變量k的值一直沒被改變,而變量i值的改變與變量k有關(guān),且每循環(huán)一次增加2,那么變量i的改變軌跡應(yīng)該為0,2,4,6,8,10,12,當(dāng)i等于12時(shí),其值大于j,條件判斷語句結(jié)果為真,執(zhí)行break語句,結(jié)束循環(huán)。從這里我們可以推斷出循環(huán)執(zhí)行的次數(shù)為6,因此,判斷條件“i>j”執(zhí)行的次數(shù)也為6次,本題的正確答案選D。

67.C數(shù)組m下標(biāo)從0到4計(jì)算,共5個(gè)元素,選項(xiàng)c)中m[0]=5,則m[m[0]]為m[5],超出了數(shù)組m的下標(biāo)范圍。因此正確答案為C)。

68.C當(dāng)執(zhí)行fun函數(shù)時(shí),因?yàn)閰?shù)傳遞時(shí)是地址傳遞,因此形參值的改變會(huì)影響實(shí)參中的數(shù),在執(zhí)行fun函數(shù)時(shí)先輸出12,接著把*X賦3,*y賦4,此時(shí)帶回主函數(shù)中,輸出的值為34。

69.D

70.A全局變量的作用域是從聲明處到文件的結(jié)束。所以選擇A)。

71.B

72.A選項(xiàng)A計(jì)算的是p口字符數(shù)組首地址所占的內(nèi)存字節(jié)數(shù)。選項(xiàng)8、C和D都能計(jì)算出一個(gè)字符型數(shù)據(jù)所占的字節(jié)數(shù)。

73.D

74.B本題考查函數(shù)調(diào)用,由于a+b沒有被括起來,所以s(a+b)=PT*a+b*a+b=5.5*1+2*1+2=9.5,故選擇B。

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

76.D

77.C數(shù)據(jù)庫是對(duì)數(shù)據(jù)進(jìn)行操作和管理的,可以看成是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。數(shù)據(jù)庫可以被直觀地理解為存放數(shù)據(jù)的倉庫,數(shù)據(jù)庫可以對(duì)大量數(shù)據(jù)進(jìn)行管理和應(yīng)用。一個(gè)應(yīng)用數(shù)據(jù)庫的主要目的就是要實(shí)現(xiàn)數(shù)據(jù)的共享,能使應(yīng)用數(shù)據(jù)庫的數(shù)據(jù)被大量用戶使用。

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

79.Dfloat是4個(gè)字節(jié),int是兩個(gè)字節(jié)。當(dāng)用int取float的值時(shí),只取前兩個(gè)字節(jié)

80.B因X為2,所以!X時(shí)表達(dá)式值為0,因Y為1,y--表達(dá)式的值為1然后自減1,y為0,所以!x||y--時(shí)表達(dá)式的值為1。

81.(1)錯(cuò)誤:doubleproc(doubleq)

正確:doubleproc(intq)

(2)錯(cuò)誤:sum=sum+(n+1)/n;

正確:sum=sum+(double)(n+1)/n;

(3)錯(cuò)誤:returnsum;

正確:returnt;

【解析】由主函數(shù)中函數(shù)調(diào)用的實(shí)參可知,函數(shù)proc()的形參為int型,因此,“doubleproc(doubleq)”應(yīng)改為“doubleproc(intq)”;變量sum為double型變量,因此表達(dá)式(n+1)/n要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,因此,“sum=sum+(n+1)/n;”應(yīng)改為“sum=sum+(double)(n+1)/n;”,由函數(shù)proc()可知,變量sum中存放的是SN+1項(xiàng),而變量t表示SN項(xiàng),因此,“returnsum;”應(yīng)改為“returnt;”。

82.

【考點(diǎn)分析】

本題考查:如何判斷非素?cái)?shù);循環(huán)判斷結(jié)構(gòu);數(shù)組的引用。

【解題思路】

題目要求將l—m之問的非素?cái)?shù)存人數(shù)組中,應(yīng)使用循環(huán)判斷結(jié)構(gòu)。循環(huán)語句用來遍歷1一m之間的每個(gè)數(shù),判斷語句用來判斷該數(shù)是否為素?cái)?shù),若不是素?cái)?shù),則將其存人數(shù)組中。這道題目是考查—個(gè)數(shù)是否為素?cái)?shù)的簡(jiǎn)單延伸,只要掌握了判斷素?cái)?shù)的方法,問題便能順利解決。

【解題寶典】

判定一個(gè)數(shù)是否為素?cái)?shù),即該數(shù)除了能被l和它本身外,不能被任何數(shù)整除。

代碼實(shí)現(xiàn)為:

for(j=2;j<i;j++)if(i%j==0)/*如余數(shù)為0,證明i不是素?cái)?shù)·/

此語句需要熟記,很多判斷素?cái)?shù)的題目也可通過此法解決。2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.棧的特點(diǎn)是B,隊(duì)列的特點(diǎn)是()。

A.先進(jìn)先出B.先進(jìn)后出

2.程序運(yùn)行后的輸出結(jié)果是()。A.0304.B.2050C.3344D.3040

3.若用一個(gè)大小為6的數(shù)值來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為()。

A.1和5B.2和4C.4和2D.5和1

4.設(shè)"char**s;",以下正確的表達(dá)式是()。

A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';

5.一個(gè)有8個(gè)頂點(diǎn)的有向圖,所有頂點(diǎn)的入度出度之和與所有頂點(diǎn)的出度之和的差是()

A.16B.4C.0D.2

6.若要求在if后一對(duì)圓括號(hào)中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為()

A.a<>0B.!aC.a=0D.a

7.下列表達(dá)式中,可以正確表示的關(guān)系是()。

A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0

8.如果定義“班級(jí)”關(guān)系如下:班級(jí)(班級(jí)號(hào),總?cè)霐?shù),所屬學(xué)院,班級(jí)學(xué)生)則使它不滿足第一范式的屬性是()。

A.班級(jí)號(hào)B.班級(jí)學(xué)生C.總?cè)霐?shù)D.所屬學(xué)院

9.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

10.設(shè)有一個(gè)二維數(shù)組A[m][n],假設(shè)A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個(gè)元素占一個(gè)空間,問A[3][3](10)存放在什么位置()(腳注(10)表示用10進(jìn)制表示)。

A.688B.678C.692D.696

11.

12.

13.在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱為該表的()

A.連接碼B.關(guān)系碼C.外碼D.候選碼

14.在下列語句中,其含義為“q是一個(gè)函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。

A.int**q;B.int(*q);C.int*q;D.int*q;

15.以下選項(xiàng)中不能用做C程序合法常量的是()。

A.1,234B.‘\123’C.123D.“\x7G”

16.

17.由3個(gè)結(jié)點(diǎn)可以構(gòu)造出______種不同形態(tài)的二叉樹。

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

18.在軟件生存周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。

A.概要設(shè)計(jì)B.詳細(xì)設(shè)計(jì)C.可行性分析D.需求分析

19.若有定義“inta=3;doubleb=0.1263;charch=‘a(chǎn)’;”,則以下選項(xiàng)中敘述有錯(cuò)的是()。

A.逗號(hào)表達(dá)式的計(jì)算結(jié)果是最后一個(gè)表達(dá)式的運(yùn)算結(jié)果

B.運(yùn)算符“%”只能對(duì)整數(shù)類型的變量進(jìn)行運(yùn)算

C.語句“ch=(unsignedint)a+b;”是對(duì)a與b之和進(jìn)行強(qiáng)制類型轉(zhuǎn)換,結(jié)果賦值給變量ch

D.復(fù)合運(yùn)算“a*=b+ch”是將變量b、ch之和與a相乘,結(jié)果再賦值給a

20.算法分析的目的是()。

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系C.分析算法的易懂性和可靠性D.分析算法的效率以求改進(jìn)

二、2.填空題(20題)21.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

22.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。

23.需求分析的最終結(jié)果是產(chǎn)生【】。

24.設(shè)有以下定義和語句:

inta[3][2]={1,2,3,4,5},*p[3];

p[0]=a[1];

則*(p[0]+1)所代表的數(shù)組元素是【】。

25.面向?qū)ο蟮哪P椭校罨靖拍钍菍?duì)象和【】。

26.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

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

doublefun(doublex,inty)

{inti;

doublez;

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

returnz;

}

28.程序如下:

main()

{inti=4;

printf("%d",-++i);

}

該程序執(zhí)行后的輸出結(jié)果以及i的值分別是______、_______。

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

main()

{intX==1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

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

}

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

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

32.數(shù)據(jù)的安全性是指保護(hù)數(shù)據(jù)以防止【】用戶的使用造成的數(shù)據(jù)泄密和破壞。

33.已有定義;charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

34.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。

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

36.以下程序從輸入的10個(gè)字符串中找出最長(zhǎng)的那個(gè)串,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

#defineN10

main()

{charstr[N][81],*sp;

inti;

for(i=0;i<N;i++)gets(str[i]);

sp=str[0];

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

if(strlen(sp)<strlen(str[i]))

【】;

printf("輸出最長(zhǎng)的那個(gè)串:\n%s\n",sp);

printf("輸出最長(zhǎng)的那個(gè)串的長(zhǎng)度:%d\n",strlen(sp));}

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

main()

{inta=2,b=4,e=6;

int*p1=&a,*p2=&b,*p;

*(p=&c)=*p1*(*p2);

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

}

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

#include

char*ss(char*s)

{char*p,t;

P=s+1;t=*s;

while(*p){*(P-1)=*P;P++;}

*(P-1)=t;

returns;

}

main()

{char*p,str[10]="abcdefgh";

p=ss(str);

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

}

39.以下程序運(yùn)行后,若輸入:3,abcde<回車>,則輸出結(jié)果是【】。

#include<stdio.h>

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

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

}

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

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;

sub(s,7,SIZE-1);

for(I=0;I<SIZE;I++)printf("%c",s[I]);

printf("\n");}

sub(char*a,intt1,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

三、1.選擇題(20題)41.已有定義語句:intx=3,y=0,z=0;,則值為0的表達(dá)式是()

A.x&&y

B.x||z

C.x||z+2&&y-z

D.!((x<y)&&!z||y)

42.有以下程序:#include<stdio.h>main()char*p[]={"3697","2548"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。

A.35B.37C.39D.3975

43.設(shè)有以下語句,其中不是對(duì)a數(shù)組元素的正確引用的是:______(其中0≤i<10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;

A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))

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

A.對(duì)于double類型數(shù)組,不可以直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出

B.數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變

C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出“下標(biāo)越界”的出錯(cuò)信息

D.可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)

45.下列程序段選擇項(xiàng),使i的運(yùn)行結(jié)果為3的程序段是()。

A.inti=0,j=O;(i=2,(j++)+i);

B.inti=1,j=0;j=i=((i=3)*2);

C.inti=0,j=1;(j=1)?(i=1):(i=3);

D.inti=1,j=1;i+=j+=1;

46.需求分析階段的任務(wù)是()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能

47.SQL語言又稱為______。

A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言

48.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計(jì)是描述______。

A.數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測(cè)試D.軟件控制過程

49.以下敘述正確的是______。

A.可以把define和if定義為用戶標(biāo)識(shí)符

B.可以把define定義為用戶標(biāo)識(shí)符,但不能把if定義為用戶標(biāo)識(shí)符

C.可以把if定義為用戶標(biāo)識(shí)符,但不能把define定義為用戶標(biāo)識(shí)符

D.define和if都不能定義為用戶標(biāo)識(shí)符

50.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運(yùn)行時(shí),從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是

A.anothernumber

B.anothernumberanother

C.anothernumbernumber

D.numbernumber

51.下面程序運(yùn)行后的輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}

A.1B.7C.9D.11

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

A.自頂向下B.逐步求精C.模塊化D.可復(fù)用

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

#include<stdio.h>

main()

{staticchara[]="Languagef",b[]="programe";

char*p1,*p2;intk;

p1=a;p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}

A.gaeB.gaC.LanguageD.有語法錯(cuò)

54.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)

55.有下列程序:#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

56.若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

57.設(shè)x為整型變量,n=14,n的地址為4000;m=6,m的地址為2000;執(zhí)行語句x=&n后的結(jié)果為()。

A.14B.6C.2000D.4000

58.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。

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

59.12.以下說法中正確的是()

A.#define和printf都是C語句

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

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

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

60.有以下說明和定義語句structstudent{intage;charnum[8];structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};structstudent*p=stu;};以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯(cuò)誤的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].a(chǎn)ge

四、選擇題(20題)61.有以下程序:

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

A.9B.7C.5D.3

62.有以下程序段

#include<stdio.h>

voidfun(char*fname,char*st)

{FILE*myf;

inti;

myf=fopen(fname,"w");

for(i=0;i<strlen(st);i++)fputc(st[i],myf);

fclose(myf);

}

main()

{fun("test.t","newworld");

fun("test.t","hello,");}

程序執(zhí)行后,文件test.t中的內(nèi)容是A.A.hello,

B.newworldhello,

C.newworld

D.hello,rld

63.

64.

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

intf(intA)

{returna%2;}

main

{ints[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s[8]);i++)d+=s[i];

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

}

A.9B.11C.19D.21

65.有以下程序:

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

66.在下述程序中,判斷條件“i>j”共執(zhí)行的次數(shù)是

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d",s);

break;

}s+=i;

}

}

A.4B.7

C.5D.6

67.

則下面對(duì)m數(shù)組元素的引用中錯(cuò)誤的是()。

A.

B.

C.

D.

68.下列程序的輸出結(jié)果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112

69.HTTP協(xié)議的GET請(qǐng)求方法可以獲取()類型的數(shù)據(jù)。

A.HTML文檔B.圖片C.視頻D.以上都可以

70.在一個(gè)C源程序文件中所定義的全局變量,其作用域?yàn)椋ǎ?/p>

A.由具體定義位置和extem說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

71.

72.設(shè)有定義:charp[]={1,2,3),*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

73.

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

#include<stdio.h>

#definePT5.5

#defineS(x)PT*x*X

main

{inta=1,b=2:

printf("%4.1f\n",s(a+b));

}

A.49.5B.9.5C.22.0D.45.0

75.有下列程序: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);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5

76.

77.應(yīng)用數(shù)據(jù)庫的主要目的是A.A.解決數(shù)據(jù)保密問題

B.解決數(shù)據(jù)完整性問題

C.解決數(shù)據(jù)共享問題

D.解決數(shù)據(jù)量大的問題

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

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

79.有以下程序,其輸出結(jié)果是()。

voidm

溫馨提示

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