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

下載本文檔

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

文檔簡介

2021年山東省泰安市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.運(yùn)行下面程序段的輸出結(jié)果是().A.A.Set

B.Setup

C.Setup

D.'S''e''t'

2.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

3.設(shè)s1="Good",s2="",s3="Bye",則s1、s2和s3連接后的結(jié)果是()。

A.GoodB.GoodByeC.GoodByeD.Bye

4.已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是()。

A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.以述說法都不對

5.a、b和c都是int型變量,且a=3,b=4,c=5,則下面的表達(dá)式中,值為0的表達(dá)式是()

A.'a'&&'b

B.a<=b

C.ab+c&&b-c

D.!((a<b)&&!c1)

6.恢復(fù)系統(tǒng)默認(rèn)菜單的命令是()。

A.SETMENUTODEFAULT

B.SETSYSMENUTODEFAULT

C.SETSYSTEMMENUTODEFAULT

D.SETSYSTEMTODEFAULT

7.若有下列說明語句int(*p)();則標(biāo)識(shí)符p代表的是()

A.一個(gè)用于指向函數(shù)的指針變量,函數(shù)返回值的類型為int型

B.一個(gè)帶回值類型為整型的函數(shù)名

C.一個(gè)用于指向整型數(shù)據(jù)的指針變量

D.一個(gè)帶回值類型為指針類型的函數(shù)名

8.

9.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}輸出的結(jié)果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456

10.在inta=3,int*p=&a;中,*p的值是()

A.變量a的地址值B.無意義C.變量p的地址值D.3

11.在16位IBM-PC機(jī)上使用C語言,若有如下定義structdata{inti;charch;doublef;}b;則結(jié)構(gòu)變量b占用內(nèi)存的字節(jié)數(shù)是

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

12.在有向圖G的拓?fù)湫蛄兄校繇旤c(diǎn)Vi在頂點(diǎn)Vj之前,則下列情形不可能出現(xiàn)的是()。

A.G中有弧

B.G中有一條從Vi到Vj的路徑

C.G中沒有弧

D.G中有一條從Vj到Vi的路徑

13.下列字符數(shù)組初始化語句中,不正確的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

C.charc[]={a,b,c,d);

D.charc[]={"ffgoodmorning"};

14.有3個(gè)關(guān)系R、S和T如下.

則由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.差C.交D.并

15.棧的特點(diǎn)是B,隊(duì)列的特點(diǎn)是()。

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

16.

17.若有以下的說明和語句,則在執(zhí)行for語句后,’(*(pt+1)+2)表示的數(shù)組元素是()。intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

18.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。

A.334HB.30DHC.352HD.31AH

19.下列關(guān)于數(shù)據(jù)結(jié)構(gòu)的敘述中,正確的是()。

A.數(shù)組是同類型值的集合

B.遞歸算法的程序結(jié)構(gòu)比迭代算法的程序結(jié)構(gòu)更為精煉

C.樹是一種線性結(jié)構(gòu)

D.用一維數(shù)組存儲(chǔ)二叉樹,總是以先序遍歷的順序存儲(chǔ)各結(jié)點(diǎn)

20.假設(shè)下圖中每個(gè)正方形的邊長為1,則從A到Z的最短路徑條數(shù)為()A.11B.12C.13D.14

二、2.填空題(20題)21.執(zhí)行以下程序后,輸出“#”的個(gè)數(shù)是【】。

#include<stdio.h>

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

22.在結(jié)構(gòu)化設(shè)計(jì)方法中,數(shù)據(jù)流圖表達(dá)了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個(gè)______實(shí)際上對應(yīng)一個(gè)處理模塊。

23.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請?zhí)羁铡?/p>

#include<stdio.h>

#include<stdlib.h>

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

24.函數(shù)fun的功能是計(jì)算xn

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)節(jié)器用語句為______。

25.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)______。

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

doublesub(doublex,doubley,doublez)

{y-=1.0;

z=z+x;

returnz;

}

main()

{doublea=2.5,b=9.0;

printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));

}

27.在宏定義#definePI3.14159中,用宏名PI代替一個(gè)______。

28.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。

29.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

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

#include<stdio.h>

main()

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

p=a;p++;

printf("%d",*p);

}

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

#definePR(ar)printf("ar=%d",ar)

main()

{intj,a[]={1,3,5,7,9,1l,13,1},*p=a+5;

for(j=3;j;j--)

switch(j)

{case1:

case2:PR(*p++);break;

case3:PR(*(--p));}}

32.數(shù)據(jù)庫保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。

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

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

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

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

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=-a;a=c;c=t;

if(a<c&&b<c)t=b;b=a;a=t;

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

}

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

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

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

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

scanf("%d",&a);

while(a!=-1)

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

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

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

main()

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

37.以下程序是用遞歸方法求數(shù)組中的最大值及其下標(biāo)值。請?zhí)羁铡?/p>

#defineM10

voidfindmax(int*a,intn,inti,int*pk)

{if(i<n)

{if(a[i]>a[*pk])【】;

findmax(a,n,i+1,&(*pk));}}

main()

{inta[M],j,n=0;

printf("\nEnter%ddata;\n",M);

for(i=0;i<M;i++)scanf("%d",a+i);

findmax(a,M,0,&n);

printf("Themaxinumis:%d\n",a[n]);

printf("It'sindexis;%d\n",n);}

38.下面的程序?yàn)?個(gè)整型變量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");

}

39.以下程序給指針p分配三個(gè)double型動(dòng)態(tài)內(nèi)存單元,請?zhí)羁铡?/p>

#include<stdio.h>

#include<stdlib.h>

main()

{double*p;

p=(double*)malloc(【】);

p[0]=1.5;p[1]=2.5;P[2]=3.5;

printf("%f%f%f\n",p[0],p[1],p[2]);

}

40.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){chara[80],*p="AbabCDcd";inti=0,j=0;while(*(p++)!='\0'){if(*p>='a'&&*p<='z'){a[i]=*p;i++;}}a[i]='\0';puts(A);}

三、1.選擇題(20題)41.若有定義:"inta[2][3];"則對a數(shù)組的第i行第j列元素的正確引用為()。

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

42.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+'a'+i*f值的數(shù)據(jù)類型為()。

A.intB.floatC.doubleD.不確定

43.軟件系統(tǒng)生命周期的第一個(gè)階段是______。

A.軟件分析階段B.軟件設(shè)計(jì)階段C.軟件運(yùn)行階段D.軟件維護(hù)階段

44.若有以下定義的語句

structstudent

{intage;

intnum;};

structstudentstu[3]={{1001,20},{1002,19},{1003,21}};

main()

{structstudent*p;

p=stu;

…}

則以下不正確的引用是

A.(p++)->numB.p++C.(*p).numD.P=&stu.age.

45.以下程序的輸出結(jié)果是()main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,i,t=1;for(i=0:i<3;i++)for(j=j(luò);j<=i;j++)t=t+b[i][j]printf("%d\n",t);}

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

46.具有3個(gè)結(jié)點(diǎn)的二叉樹有

A.2種形態(tài)B.4種形態(tài)C.7種形態(tài)D.5種形態(tài)

47.

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

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

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

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

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.下列敘述中錯(cuò)誤的是A.計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程序

B.C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件

C.后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件

D.后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行

50.有以下程序intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){returnf2(x)-f1(x);}main(){inti;i-f(fa,fb,2);printf("%d\n",i);}程序運(yùn)行后的輸出結(jié)果是

A.4B.1C.4D.8

51.下列語句中,在字符串s1和s2相等時(shí)顯示“theyareEqual”的是()。

A.if(*s1==*s2)puts("theyareEqual");

B.if(!strcmp(s1,s2))puts("theyareEqual");

C.if(s1==s2)Puts("theyareEqual");

D.if(strcmp(s1,s2))puts("theyareEqual");

52.設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式是______。

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

53.下列程序段的輸出結(jié)果是()。chara=9,b=020;prihtf("%o\n",~a&b<<1);

A.100000B.8C.40D.77

54.以下對枚舉類型名的定義中正確的是______。

A.enuma={one,two,three};

B.enuma{on=9,two=-1,three};

C.enuma={"one","two","three"};

D.enuma{"one","two","three"};

55.用樹形結(jié)構(gòu)來表示實(shí)體之間聯(lián)系的模型稱為______。

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

56.以下程序運(yùn)行后,輸出結(jié)果是()main(){charch[2][5]={"693","825"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(j=0;j<2;j++)for(j=0;p[i][j]>='0'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.6385B.22C.33D.693825

57.以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

58.以下有4組用戶標(biāo)識(shí)符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

59.若t為doudle類型,表達(dá)式t=1,t+5,t++的值是()

A.1B.6C.2D.1

60.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'3'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n");}從第一列開始輸入數(shù)據(jù)(<CR>代表…個(gè)回車符):3845<CR>,則狴序輸出結(jié)果為()。

A.77889B.77868C.776810D.7.78866e+007

四、選擇題(20題)61.若有“doublea;”,則正確的輸入語句是()。A.A.scanf("%1f",a);

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

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

D.scanf("1e",&a);

62.

有以下程序:

#include<stdio.1l>

voidWriteStr(char*fn.char*str)

{FILE*fp;

fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}

main

{WriteStr("tl.dat","start");

WriteStr("t1.dat","end");)

程序運(yùn)行后,文件t1.dat中的內(nèi)容是()。

A.startB.endC.startendD.endrt

63.(21)算法的空間復(fù)雜度是指______。

A.算法程序的長度

B.算法程序中的指令條數(shù)

C.算法程序所占的存儲(chǔ)空間

D.算法執(zhí)行過程中所需要的存儲(chǔ)空間

64.

65.

有以下程序:

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ò)

66.以下選項(xiàng)中正確的定義語句是()。

67.在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是()。

A.PDL(過程設(shè)計(jì)語言)B.PAD圖C.N-S圖D.DFD圖

68.以下選項(xiàng)中,能用作數(shù)據(jù)常量的是()。

A.115LB.0118C.1.5elD.0115

69.下列選項(xiàng)中屬于軟件生命周期中開發(fā)階段任務(wù)的是()。

A.詳細(xì)設(shè)計(jì)B.運(yùn)行維護(hù)C.可行性研究D.需求分析

70.以下關(guān)于宏的敘述中正確的是()。

A.宏替換沒有數(shù)據(jù)類型限制

B.宏定義必須位于源程序中所有語句之前

C.宏名必須用大寫字母表示

D.宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間

71.假設(shè)a和b為int型變量,則執(zhí)行以下語句后b的值為()。a=1;b=10;do{b-=a;a++;}while(b--<0);A.9B.-2C.-lD.8

72.下面關(guān)于數(shù)據(jù)庫系統(tǒng)中敘述正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

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

A.678910

B.13579

C.12345

D.62345

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

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

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

75.若有定義語句:“intkl一10,k2=20;”,執(zhí)行表達(dá)式(kl=kl>k2)(k2=k2>

k1)后,kl和k2的值分別為()。

A.0和1B.0和20C.10和1D.10和20

76.軟件開發(fā)中需求分析的主要任務(wù)是()。

A.定義和描述目標(biāo)系統(tǒng)“做什么”B.獲取需求C.給出軟件解決方案D.需求評審

77.

78.(24)對建立良好的程序設(shè)計(jì)風(fēng)格,下面描述正確的是()

A.程序應(yīng)簡單、清晰、可讀性好

B.符號名的命名要符合語法

C.充分考慮程序的執(zhí)行效率

D.程序的注釋可有可無

79.

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

A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C.C語言是-種結(jié)構(gòu)化程序設(shè)計(jì)語言

D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是:逐個(gè)比較P.q所指兩個(gè)字符串對應(yīng)位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的數(shù)組中,形成一個(gè)新的字符串。

例如,若主函數(shù)中a字符串為“aBCDeFgH”,b字符串為“Abed”,則C中的字符串應(yīng)為“aBcdeFgH”。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc(),其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存入XX所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過k傳回。例如,輸入20,則應(yīng)輸出4689101214151618。注意:部分源程序給出如下。請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A

2.D解析:本題考查指向字符串指針的運(yùn)算方法。執(zhí)行p=s+1后,指針變量p就指向字符串中的第二個(gè)字符“B”,然后輸出字符串“BCD”并換行;下面繼續(xù)執(zhí)行循環(huán)語句,指針變量p指向下一個(gè)字符“C”,輸出字符串“CD”,最后一次循環(huán),p指向字符“D”,輸出字符串“D”。

3.C

4.C解析:對字符型一維數(shù)組在定義時(shí)初始化,既可以使用初始化列表,也可以使用字符串常量。不過由于字符串常量會(huì)自動(dòng)在結(jié)尾添加\'\\0\',字符做結(jié)束標(biāo)志,所以用字符串常量的初始化列表項(xiàng)個(gè)數(shù)是字符串的長度加1。因此題目中的chara[]='xyz';等價(jià)于chara[]={\'x\',\'y\',\'z\',\'\\0\');,所以a數(shù)組長度大于b數(shù)組長度,應(yīng)該選C。

5.D

6.BB?!窘馕觥靠疾椴藛巍T诓藛沃谢謴?fù)系統(tǒng)菜單用的是SETSYSMENUTODEFAULT。所以答案選擇B。

7.A

8.C

9.B本題考查實(shí)參與形參調(diào)用,從實(shí)參傳遞到形參時(shí),只是數(shù)值的傳遞,調(diào)用函數(shù)中值的改變不會(huì)影響主函數(shù)中的值,因此原樣輸出。

10.D

11.D解析:結(jié)構(gòu)體變量所占用內(nèi)存的字節(jié)數(shù)是其所有成員所占用內(nèi)存字節(jié)數(shù)之和。本題中整型變量i所占用的內(nèi)存是2字節(jié),字符型變量ch所占用的內(nèi)存是1字節(jié),雙精度型變量f所占用的內(nèi)存是8字節(jié),三者相加即可。

12.D若G中有一條從Vj到Vi的路徑,則圖的拓?fù)湫蛄兄许旤c(diǎn)Vj在頂點(diǎn)Vi之前。設(shè)G(V,E)是一個(gè)具有n個(gè)頂點(diǎn)的有向圖,V中頂點(diǎn)的序列v1,v2,…,vn稱為一個(gè)拓?fù)湫蛄?,?dāng)且僅當(dāng)該頂點(diǎn)滿足下列條件:若在有向圖G中,從頂點(diǎn)vi在vj有一條路徑,則在拓?fù)湫蛄兄许旤c(diǎn)vi必須排在頂點(diǎn)vj之前。

13.A本題考查兩個(gè)概念:①用單引號括起來的一個(gè)字符常量只能存放一個(gè)字符;②℃語言中沒有字符串變量,只能用字符數(shù)組來存儲(chǔ)字符串。

14.B關(guān)系之間的操作分為自然連接、投影、交、并、差等,由圖可知此操作為差操作。

15.A

16.C

17.C從for循環(huán)可知pt是指向行的首地址的指針變量,因此由指針的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。

18.C解析:解答本題,首先要明白在對指針進(jìn)行加、減運(yùn)算的時(shí)候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個(gè)存儲(chǔ)單元長度,而1個(gè)存儲(chǔ)單元長度占多少存儲(chǔ)空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動(dòng)1個(gè)存儲(chǔ)單元的長度就是位移2個(gè)字節(jié),如果基本類型是float型,移動(dòng)1個(gè)存儲(chǔ)單元的長度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。

19.B

20.C

21.66解析:本題考察的是一個(gè)嵌套的循環(huán),當(dāng)滿足j<=i時(shí),輸出一個(gè)“#”號,符合條件的有i=2,j=2;i=3,j=2;i=3,j=3;i=4,j=2;i=4,j=3;i=4,j=4,共輸出6個(gè)“#”。

22.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過程。其中的每一個(gè)加工對應(yīng)一個(gè)處理模塊。

23.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根據(jù)fopen函數(shù)的調(diào)用方式fopen(文件名,使用文件方式)和題意可得結(jié)果。

24.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:本題考核的知識(shí)點(diǎn)是C程序的簡單應(yīng)用。函數(shù)fua(x,n)的作用是求x的n次方,因此a的4次方應(yīng)該調(diào)用函數(shù)tim(a,4),b的4次方應(yīng)該調(diào)用函數(shù)fun(b,4),a+b的3次方應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

25.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個(gè);維表代表一種關(guān)系。

26.functionrunningresultis:9.0

27.字符串字符串解析:本題考查字符替換格式:#define標(biāo)識(shí)符字符串。

28.2525解析:#NAME?

29.str[i]或str+iistr[i]或str+i\r\ni

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

31.ar=9ar=9ar=11ar=9ar=9ar=11解析:本題綜合考查了for循環(huán),switch語句及宏替換等幾個(gè)知識(shí)點(diǎn)。j=3時(shí),執(zhí)行PR(*(--p));輸出數(shù)組元素a[4]的值;j=2時(shí),執(zhí)行PR(*p++);取出p所指位置的元素a[4],然后p++;當(dāng)j=1時(shí),執(zhí)行PR(*p++);取得是數(shù)組元素a[6]的值11。

32.完整性控制完整性控制

33.*2*4*6*8**2*4*6*8*解析:程序中定義了一個(gè)字符數(shù)組a,并初始化為123456789,接著定義了一個(gè)指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個(gè)while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時(shí),將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時(shí)數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*

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

35.45994599解析:if語句只對緊跟其后的一條語句或語句塊產(chǎn)生作用。因此,題目中兩條if語句只有t=a;和t=b是if的子句。第1條if語句中b<a為假,所以跳過語句t=-a;,執(zhí)行a=c;c=t,a=5、b=4、c=99。第2條if語句的判斷條件a<c&&b<c為真,所以后面3條語句都被執(zhí)行,這3條語句構(gòu)成一次a和b的內(nèi)容交換。所以最后輸出的結(jié)果是:4599。

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

37.*pk=a[i]*pk=a[i]解析:通過參數(shù)傳遞,findmax函數(shù)接收到4個(gè)參數(shù),分別是數(shù)組a(需要對其中的數(shù)據(jù)按照題目的要求進(jìn)行計(jì)算)、10(數(shù)組a中的元素個(gè)數(shù))、0(數(shù)組a的起始位置)、指針變量n(對數(shù)組a中的元素進(jìn)行遍歷)。我們了解了這些參數(shù)的作用后,再對遞歸調(diào)用的函數(shù)進(jìn)行分析,就不難得出結(jié)論了。注意:通過對本例中遞歸函數(shù)的分析掌握遞歸算法的執(zhí)行原理。

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

39.3*sizeof(double)或243*sizeof(double)或24解析:觀察程序可知,本題要求用malloc函數(shù)分配三個(gè)double型的動(dòng)態(tài)內(nèi)存單元。

40.babcdbabcd解析:C語言中“\\0”表示字符串的結(jié)束。程序?qū)指針指向字符串“AbabCDcd”的首地址,循環(huán)開始后若指針不是指向當(dāng)前字符串的結(jié)束標(biāo)志位,則進(jìn)入循環(huán)體。循環(huán)中每次檢驗(yàn)字符串中字母是否在'a'與'z'之間,若滿足則將當(dāng)前值賦值給數(shù)組a,最后給數(shù)組添加字符結(jié)束標(biāo)志。此程序可以篩選出字符串中的小寫字母。

41.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:

①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i][j];⑤*(&a[0][0]+3*i+j)。

42.C解析:根據(jù)混合運(yùn)算規(guī)則,如果有一個(gè)數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運(yùn)算的結(jié)果最終也是double型。

43.A解析:軟件工程的第一個(gè)階段是軟件分析階段。軟件分析階段的工作是由軟件分析員和用戶一起來做的。軟件分析的結(jié)果是分析人員寫出的分析報(bào)告,該分析報(bào)告實(shí)際上就是軟件系統(tǒng)的系統(tǒng)總體設(shè)計(jì)方案。

44.D解析:考查對結(jié)構(gòu)體成員的引用方法。結(jié)構(gòu)體成員的引用可以用'結(jié)構(gòu)體變量名.成員名'或者'結(jié)構(gòu)體變量指針->成員名'兩種方式來引用。

45.B

46.D解析:因?yàn)槎鏄溆凶?、右子樹之分,所以?個(gè)結(jié)點(diǎn)的二叉樹具有5種不同的形態(tài)。

47.C解析:逗號表達(dá)式的求解步驟是先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式N的值。整個(gè)逗號表達(dá)式的值就是最后一個(gè)表達(dá)式N的值。

表達(dá)式(x=3*y,x+1)中,第一個(gè)表達(dá)式x=3*y=3*5=15;第二個(gè)表達(dá)式x+1=16,但沒有給x或y賦值,所以x還是等于15;第3個(gè)表達(dá)式x-1=15-1=14,所以y的值為14。

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.D

50.C解析:函數(shù)f()有3個(gè)形式參數(shù)f1、f2和x,其中f1、f2是指向函數(shù)的指針變量。在main()函數(shù)中執(zhí)行了函數(shù)調(diào)用“f(fa,fb,2)”,從而使f()的形式參數(shù)f1指向了fa,形式參數(shù)f2指向了fb,把實(shí)參2傳給了行參變量x。函數(shù)f()中的return語句中的相當(dāng)于“fb(2)-fa(2)”(fb(2)的返回值為2*2*2=8,fa(2)返回值為2*2=4)即(8-4),值為4.函數(shù)f()執(zhí)行后把返回值4賦給了i,輸出i的值是4.所以4個(gè)選項(xiàng)中C正確。

51.B解析:字符串比較不能用兩個(gè)等于號(==)來進(jìn)行比較,應(yīng)使用函數(shù)strcmp(s1,s2)來比較。函數(shù)strcmp(s1,s2)的功能是:當(dāng)字符串s1和s2相等時(shí),返回值為0。因此,當(dāng)表達(dá)式!strcmp(s1,s2)=1時(shí),條件成立,執(zhí)行后面的語句,輸出theyareEqual。

52.D解析:選項(xiàng)A:'a'&&'b'是字符a與b的相與,不為0:選項(xiàng)B:a<=b,由題中變量賦值可知,結(jié)果為1。選項(xiàng)C:a||+c&&b-c,結(jié)果為1;選項(xiàng)D:!((a<B)&&!c||1),運(yùn)算結(jié)果為0。

53.C解析:將變量a按位求反,再與b按位與,最后左移1位。9的二進(jìn)制表示為00001001,020的二進(jìn)制表示為00010000。a按位求反為11110110,再與b按位與結(jié)果為00010000,左移1位結(jié)果為00100000。按八進(jìn)制輸出為040。

54.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明;1、在C編譯中,對枚單元素按常量處理,同時(shí)可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個(gè)整數(shù)不能直接賦給一個(gè)牧舉變量。

55.C解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實(shí)世界中很普遍,如家族結(jié)構(gòu)、行政組織機(jī)構(gòu)等,它們自頂向下、層次分明。由第一章樹的知識(shí),知道任一樹結(jié)構(gòu)均有下列特性:(1)每棵樹有且僅有一個(gè)無雙親結(jié)點(diǎn),稱為根(root)。(2)樹中除根外所有結(jié)點(diǎn)有且僅有一個(gè)雙親。因此,樹結(jié)構(gòu)是受到一定限制的,從E-R模型觀點(diǎn)看,它對于聯(lián)系也加上了許多限制。

56.A

57.C解析:靜態(tài)局部變量在編譯時(shí)賦初值,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,而對自動(dòng)變量賦初值,不是在編譯時(shí)進(jìn)行的,而在函數(shù)調(diào)用時(shí)進(jìn)行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時(shí),d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時(shí)d=d+p=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論