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

下載本文檔

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

文檔簡(jiǎn)介

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

一、單選題(20題)1.具有n個(gè)結(jié)點(diǎn)的連通圖至少有()條邊。

A.n-1B.nC.n(n-1)/2D.2n

2.有以下程序段chareh;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無(wú)定值

B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

3.下面排序算法中,初始數(shù)據(jù)集的排列順序?qū)λ惴ǖ男阅軣o(wú)影響的是()

A.堆排序B.插入排序C.冒泡排序D.快速排序

4.下面的哪個(gè)保留字不能作為函數(shù)的返回類型()。

A.voidB.intC.newD.long

5.命令“DIRA:*.*/W”的功能是()

A.寬行顯示A盤(pán)當(dāng)前目錄的所有文件

B.寬行顯示A盤(pán)所有目錄的所有文件

C.寬行顯示A盤(pán)的所有目錄

D.顯示A盤(pán)中的文件名,每滿一屏后停頓一下

6.有說(shuō)明語(yǔ)句“inta,b;”,如果輸入111222333,使得a的值為111,b的值為333,則以下正確的語(yǔ)句是()。A.scanf("%3d%*3d%3d",&a,&b);

B.scanf("%*3d%3d%3d",&a,&b);

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

D.scanf("%3d%*2d%3d",&a,&b);

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

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

8.在一棵高度為5的理想平衡樹(shù)中,至少含有16個(gè)結(jié)點(diǎn),最多含有()個(gè)結(jié)點(diǎn)。

A.31B.32C.30D.33

9.在定義inta[3][2]以后,對(duì)a的引用正確的是()

A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]

10.以三級(jí)模式為框架形成的3種數(shù)據(jù)庫(kù)中,真實(shí)存在于計(jì)算機(jī)外存的數(shù)據(jù)庫(kù)是()。

A.概念數(shù)據(jù)庫(kù)B.用戶數(shù)據(jù)庫(kù)C.物理數(shù)據(jù)庫(kù)D.邏輯數(shù)據(jù)庫(kù)

11.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}執(zhí)行程序時(shí),給變量X輸入10,程序的輸出結(jié)果是()。A.55B.54C.65D.45

12.

13.下列語(yǔ)句中,說(shuō)法正確的是______。

A.C程序書(shū)寫(xiě)格式嚴(yán)格,每行只能寫(xiě)一個(gè)語(yǔ)句

B.C程序書(shū)寫(xiě)格式嚴(yán)格,每行必須有行號(hào)

C.C程序書(shū)寫(xiě)格式自由,每行可以寫(xiě)多條語(yǔ)句,但之間必須用逗號(hào)隔開(kāi)

D.C程序書(shū)寫(xiě)格式自由,一個(gè)語(yǔ)句可以分寫(xiě)在多行

14.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain{inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5

15.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。A.35B.37C.39D.3975

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

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

17.允許對(duì)隊(duì)列進(jìn)行的操作有()。

A.對(duì)隊(duì)列中的元素排序B.取出最近進(jìn)隊(duì)的元素C.在隊(duì)頭元素之前插入元素D.刪除隊(duì)頭元素

18.當(dāng)很頻繁的對(duì)序列中部進(jìn)行插入和刪除操作時(shí),應(yīng)該選擇使用的容器是()

A.vectorB.listC.dequeD.stack

19.定義學(xué)生選修課程的關(guān)系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其屬性分別為學(xué)號(hào)、姓名、課程號(hào)、課程名、成績(jī)、學(xué)分)則對(duì)主屬性部分依賴的是()。

A.C#→CnB.(S#,C#)→GC.(S#,C#)→S#D.(S#,C#)→C#

20.執(zhí)行下列程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/S(k+m):printf("%d",a);}A.1B.4C.9D.0

二、2.填空題(20題)21.以下程序的功能是輸出如下形式的方陣:

13141516

9101112

5678

1234

請(qǐng)?zhí)羁铡?/p>

main()

{inti,j,x;

for(j=4;j>0;j--)

{for(i=1;i<=4;i++)

{x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

}

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

main()

{

intx=15;

while(x>10&&x<50)

{

x++;

if(x/3){x++;break;}

elsecontinue;

}

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

}

23.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過(guò)對(duì)象的______性來(lái)實(shí)現(xiàn)的。

24.用以下語(yǔ)句調(diào)用庫(kù)函數(shù)malloc,使字符指針st指向具有11個(gè)字節(jié)的動(dòng)態(tài)存儲(chǔ)空間,請(qǐng)?zhí)羁铡t=(char*)【】;

25.已定義charch=′$′;inti=1,j;,執(zhí)行j!=ch&&i++以后,i的值為【】。

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

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wbt");

fwtite(a,sizeof(int),5,fp);

fwlite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

for(i=0;i

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

28.執(zhí)行下列語(yǔ)句段后,x的值是______。

int*p,x;

x=100;

p=&x;

x=*p+50;

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

#defineLEN5

inta[LEN],k;

main()

{fun1();

fun2();

}

fun1()

{for(k=0;k<LEN;k++)

a[k]=k;

}

fun2()

{intk;

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

printf("%d",*(a+k));

}

30.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu))改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的_______。

以下程序的輸出結(jié)果是#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prr(&a,&b,&c);}

31.函數(shù)mycmp(char*s,char*t)的功能提比較字符串s和t的大小,當(dāng)s等于t時(shí)返回0,當(dāng)s>t返回正值,當(dāng)s<t時(shí)返回負(fù)值。請(qǐng)?zhí)羁铡?/p>

mycmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}

return(【】)

}

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

33.若a是血型變量,且a的初值為4,則計(jì)算a+=a-=a*a表達(dá)式后a的值為_(kāi)_____。

34.有以下程序:

main()

{inti,n=0;

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

{do

{if(i%3)continue;

n++;

}while(!i);

n++;

}

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

}

程序執(zhí)行后輸出結(jié)果是【】。

35.注釋說(shuō)明了程序的功能,它分為【】注釋和功能性注釋。

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

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

37.下面的程序?yàn)?個(gè)整型變量A、B、C、D、E、F輸入整數(shù),并按從大到小的順序輸出整數(shù)及其所對(duì)應(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");

}

38.數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。

39.設(shè)有下列宏定義:

#defineA2

#defineB(A+3)

則執(zhí)行賦值語(yǔ)句"k=B*20;"(k為int型變量)后,k的值是______。

40.深度為5的滿二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為_(kāi)_____。

三、1.選擇題(20題)41.在C語(yǔ)言中,函數(shù)中變量的隱含存儲(chǔ)類別是______。

A.autoB.staticC.externD.無(wú)存儲(chǔ)類別

42.有以下程序:main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]-'0';printf("%d\n",n);}編譯連接后生成可執(zhí)行文件tt.exe。若運(yùn)行時(shí)輸入以下命令行tt12345678程序運(yùn)行后的輸出結(jié)果是()。

A.12B.12345C.12345678D.136

43.以下程序的功能是:建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,并將存儲(chǔ)在數(shù)組中的字符依次轉(zhuǎn)存到鏈表的各個(gè)結(jié)點(diǎn)中,請(qǐng)為下劃線處選擇正確的選項(xiàng)。#include<stdlib.h>stuctnodechardata;structnode*next;};()CreatList(char*s)struetnode*h,*p,*q;h=(struetnode*)ma]loc(sizeof(structnode));p=q=h;while(*s!='\0')p=(structnode*)ma]loc(sizeof(structnode));p->data=*s;q->next=p;q=p;s++;}p->next='\0';returnhmain()charstr[]="linklist";struetnode*head;head=CreatList(str);

A.char*B.struetnodeC.structnode*D.char

44.設(shè)有以下程序段;inta[5]={0},*p,*q;p=a;q=a;則合法的運(yùn)算是______。

A.p+qB.p-qC.p*qD.p%q

45.下列模式中,能夠給出數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法的是A.內(nèi)模式B.外模式C.概念模式D.邏輯模式

46.以下選項(xiàng)中不合法的標(biāo)識(shí)符是

A.printB.FORC.&aD._00

47.設(shè)在C語(yǔ)言中,float類型數(shù)據(jù)占4個(gè)字節(jié),則double類型數(shù)據(jù)占()個(gè)字節(jié)。

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

48.以下程序的輸出結(jié)果是#include<stdio.h>main(){unionun{inti;longk;charc;};structbyte{inta;longb;unionunc;}r;printf("%d\n",sizeof(r));}

A.10B.13C.7D.8

49.在C語(yǔ)言中,下列關(guān)于文件操作的敘述正確的是()。

A.對(duì)文件操作必須先關(guān)閉文件B.對(duì)文件操作必須先打開(kāi)文件C.對(duì)文件操作順序沒(méi)有統(tǒng)一規(guī)定D.以上全錯(cuò)

50.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本的結(jié)構(gòu)組成的算法

A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成些簡(jiǎn)單的仟?jiǎng)?wù)

51.鏈表不具有的特點(diǎn)是()

A.不必事先估計(jì)存儲(chǔ)空間B.可隨機(jī)訪問(wèn)任一元素C.插入刪除不需要移動(dòng)元素D.所需空間與線性表長(zhǎng)度成正比

52.有如下程序main(){intx=3;do{printf("%d",x--);}while(!x);}該程序的執(zhí)行結(jié)果是______。

A.321B.3C.不輸出任何內(nèi)容D.陷入死循環(huán)

53.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inta=2,c=5;printf("a=%%d,b=%%d\n",a,c);}

A.a=%2,b=%5B.a=2,b=5C.a=%%d,%%dD.a=%d,b=%d

54.在C語(yǔ)言中,形參的缺省存儲(chǔ)類是

A.autoB.registerC.staticD.extern

55.有以下程序:main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}執(zhí)行后輸出結(jié)果是()。

A.11122B.12C.12020D.120

56.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2為真的是______。

A.8B.23C.17D.6

57.有以下程序

main()

{inti,s=0,t[]={l,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}

程序執(zhí)行后的輸出結(jié)果是

A.45B.20C.25D.36

58.下列程序的輸出結(jié)果是()。#include<stdio.h>voidfun(int*a,int*B){int*k;k=a;a=b;b=k;}main(){inta=1,b=2,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,B);}

A.21B.12C.編譯出錯(cuò)D.00

59.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]="BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}

A.SOB.SPC.SPOPKD.SHOB

60.以下程序的輸出結(jié)果是_______。main(){charst[20]="hello\0\t\\";printf(%d%d\n",strlen(st),sizeof(st));}

A.99B.520C.1320D.2020

四、選擇題(20題)61.有如下說(shuō)明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

62.

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

#include<stdio.h>

main

{inta[2][3]={{1,2,3),{4,5,6}},(*p)[3],i;

p=a;

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

{if(i<2)

p[1][i]=p[1][i]一1;

else

p[1][i]=1;)

printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}

A.8B.7C.12D.9

63.有以下程序:

若要按以下形式輸出數(shù)組右上半三角:

則在程序下劃線處應(yīng)填人的語(yǔ)句是()。

A.i-1B.i+1C.iD.4-i

64.

65.以下函數(shù)實(shí)現(xiàn)按每行8個(gè)輸出w所指數(shù)組中的數(shù)據(jù)

66.有以下程序:

程序執(zhí)行后的輸出結(jié)果是()。

A.321,cbaB.abc,123C.123,abcD.lbe,a23

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

A.改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值

B.函數(shù)可以返回地址值

C.可以給指針變量賦一個(gè)整數(shù)作為地址值

D.當(dāng)在程序的開(kāi)頭包含文件stdi0.h時(shí),可以給指針變量賦NULL

68.若有下面的程序段

#include"stdio.h"

main()

{inti=6;

while(i--)

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

printf("\n");

}

那么程序的輸出結(jié)果為

A.531B.420

C.654321D.死循環(huán)

69.

70.有以下程序

main()

{

intx[]={1,3,5,7,2,4,6,0},i,j,k;

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

for(j=2;j>=i;j--)

if(x[j+1]>x[j])

{

k=x[j];

x[j]=x[j+1];

x[j+1]=k;

}

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

for(j=4;j<7-i;j++)

if(x[j]>x[j+1])

{

k=x[j];

x[j]=x[j+1];

x[j+1]=k;

}

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

printf("%d",x[i]);

printf("\n");

}

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

A.75310246B.01234567

C.76310462D.13570246

71.以下敘述中正確的是

A.C語(yǔ)言比其他語(yǔ)言高級(jí)

B.C語(yǔ)言可以不用編譯就能被計(jì)算機(jī)識(shí)別執(zhí)行

C.C語(yǔ)言以接近英語(yǔ)國(guó)家的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式

D.C語(yǔ)言出現(xiàn)得最晚,具有其他語(yǔ)言的一切優(yōu)點(diǎn)

72.

有下列程序:

main

{char*p[]={"3697","2584"};

inti,j;longnum=0;

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

{j=0;

while(p[i][j]!=\0)

{if((p[i][j]-\0)%2)num=1O*num+p

[j][j]-0;

j+=2;

}

}

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

}

程序執(zhí)行后的輸m結(jié)果是()。

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

73.

74.設(shè)有定義:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若變量均已正確賦初值,則以下語(yǔ)句中錯(cuò)誤的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

75.

76.

77.下列哪個(gè)不屬于DOM元素結(jié)點(diǎn)類型?

A.元素結(jié)點(diǎn)B.文本結(jié)點(diǎn)C.屬性結(jié)點(diǎn)D.樣式結(jié)點(diǎn)

78.以下能正確定義一維數(shù)組的選項(xiàng)是()。

A.inta[5]=(0,1,2,3,4,5);

B.chara[]={0,1,2,3,4,5);

C.chara={'A','B','C'};

D.inta[5]="0123";

79.在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的主要根據(jù)是()。

A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖

80.有以下程序:

若運(yùn)行時(shí)輸入:123<回車>,則輸出結(jié)果是()。

A.編譯錯(cuò)誤2000B.102000C.122030D.10

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個(gè)字符串(長(zhǎng)度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。

例如,輸入opdye,則應(yīng)輸出deopy。

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

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

試題程序:

#include%string.h>

#include%stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charC;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j4-+)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=C;

}

}

voidmain

{

charst/[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

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

proc(str);

printf("\nAftersortingdecendingly:\n

%S",str);

}

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫(xiě)函數(shù)fun(),其功能是將放在字符串?dāng)?shù)組中的M個(gè)字符串(每個(gè)字符串的長(zhǎng)度不超過(guò)N),按順序合并成一個(gè)新的字符串。例如,若字符串?dāng)?shù)組中的M個(gè)字符串為|“AAAA”,“BBBBBBB”,“CC”|,則合并后的字符串內(nèi)容應(yīng)該是“AAAABBBBBBBCC”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidfun(chara[M][N],char*b){}voidmain(){ charw[M][N]={“AAAA”,“BBBBBBB”,“CC”}; chara[100]={“##################”}; inti; printf(“Thestring:\n”); for(i=0;i<=""p=""> puts(w[i]); printf(“\n”); fun(w,a); printf(“TheAstring:\n”); printf(“%s”,a); printf(“\n\n”);}

參考答案

1.A

2.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號(hào)的十進(jìn)制整型數(shù)輸出,所以第一個(gè)輸出語(yǔ)句輸出的結(jié)果為a,97;第二個(gè)輸出語(yǔ)句輸出的結(jié)果為k=12。

3.A

4.C

5.A

6.A根據(jù)題意,要使a的值為111,b的值為333,必須在讀入時(shí)指定a的讀入寬度為3,b的讀入寬度為3,且a和b的控制字符之間必須額外增加%*控制符,用于跳過(guò)中間的3位輸入數(shù)字,選項(xiàng)A正確。本題答案為A選項(xiàng)。

7.D

8.A

9.D

10.B

\n①以內(nèi)模式為框架所組成的數(shù)據(jù)庫(kù),1物理數(shù)據(jù)庫(kù);②以概念模式為框架所組成的數(shù)據(jù)庫(kù)叫概念數(shù)據(jù)庫(kù);③以外模式為框架所組成的數(shù)據(jù)庫(kù)叫用戶數(shù)據(jù)庫(kù)。它是真實(shí)存在于計(jì)算機(jī)外存中的數(shù)據(jù)庫(kù)。

\n

11.A函數(shù)intfun(intn)的功能是求1+2+…+n的值并返回。所以執(zhí)行程序時(shí),給變量x輸入10后,執(zhí)行語(yǔ)句“x=fun(x);”,X的值將變?yōu)?到10中10個(gè)整數(shù)的累加和,即55。

12.B

13.D

14.A依據(jù)fun函數(shù),可知其要實(shí)現(xiàn)的功能是將S中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)x,最后輸出x數(shù)組。

15.D執(zhí)行第一次for循環(huán)時(shí),用表達(dá)式p[i][J]!=\o來(lái)判斷字符串?dāng)?shù)組指針P是否到達(dá)字符串的結(jié)尾,如果沒(méi)有到達(dá),繼續(xù)執(zhí)行while中的語(yǔ)句。if語(yǔ)句表示(p[i][j]-\o)除2的余數(shù)不為0時(shí),即字符串所有奇數(shù),執(zhí)行后面的語(yǔ)句。所以退出第1次for的循環(huán)體時(shí),輸出為397,執(zhí)行第2次循環(huán)體。對(duì)字符串“2584”進(jìn)行處理,輸出結(jié)果為5,因而最后輸出結(jié)果為3975。

16.CC。【解析】結(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

17.D

18.B

19.A關(guān)系SC中的主鍵是(S#,C#),但C#(課程號(hào))單獨(dú)就可以決定Cn(課程名),存在著對(duì)主鍵的部分依賴。本題答案為A選項(xiàng)。

20.D本題主要考查帶參數(shù)的宏定義,過(guò)程如下:由于定義為define(x)x*x沒(méi)有括號(hào)優(yōu)先級(jí),所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

21.ii解析:外循環(huán)是遞減的,方陣中的每個(gè)元素為(j-1)*4+i,因此空格處填i。

22.1717解析:break語(yǔ)句只能在循環(huán)體和switch語(yǔ)句體內(nèi)使用,當(dāng)break出現(xiàn)在循環(huán)體中的switch語(yǔ)句體內(nèi)時(shí),其作用只是跳出該switch語(yǔ)句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語(yǔ)句體內(nèi)時(shí),則在執(zhí)行break后,跳出本層循環(huán)體。而continue語(yǔ)句的作用時(shí)結(jié)束本次循環(huán),即跳過(guò)本次循環(huán)中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)的條件判定。本題中首先定義了一個(gè)變量x并賦初值15,然后判斷循環(huán)條件“x>5&&x<50”,即“x>5&&x<50”,為真,執(zhí)行循環(huán)體.語(yǔ)句“x++;”執(zhí)行后,x的值變?yōu)?6,“X/3”的值為5為真,執(zhí)行其后的語(yǔ)句“x++;”,x的值變?yōu)?7,執(zhí)行語(yǔ)句“break”,退出循環(huán),輸出。x的值為17。

23.封裝封裝

24.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲(chǔ)區(qū),此題要分配11字節(jié)的單元,把11代入即可。

25.11解析:在執(zhí)行邏輯表達(dá)式'j=!ch&&i++'時(shí),首先判斷j=!ch的值,因?yàn)?ch=\'$\''不為0,所以'j=!ch=0',編譯系統(tǒng)便不再計(jì)算表達(dá)式'i++'的值,i的值不變,仍為1。

26.解析:本題考查文件讀寫(xiě)函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個(gè)元素輸出到文件fp中兩次,共10個(gè)字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個(gè)字節(jié)的數(shù)據(jù)到數(shù)組a中,此時(shí)數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,)},最后的輸出結(jié)果為“1,2,3,0,0,1,2,3,0,0,”。

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

28.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內(nèi)容,即100,所以x=100+50=150。

29.01234。01234。解析:函數(shù)fun1給數(shù)組a的每個(gè)元素賦值,fun2則輸出結(jié)果。

30.B

31.*s-*t或-*t+*s*s-*t或-*t+*s解析:函數(shù)的兩個(gè)形參是兩個(gè)字符指針變量,字符串的首地址是指針變量的值,*s和*t表示字符串?dāng)?shù)組s和t的第一個(gè)字符,在while循環(huán)中,是通過(guò)s和t值的不斷變化來(lái)改變指針?biāo)赶虻淖址?,要改變s和t所指不同字符的ASCII碼的差值,必須使用“*s-*t”得出。

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

33.-24-24解析:本題考查賦值運(yùn)算符a+=b等價(jià)于a=a+b;a-=a*a等價(jià)于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。

34.n=4n=4解析:continue語(yǔ)句是結(jié)束本次循環(huán)。i=2時(shí)因i%3條件為真,故不執(zhí)行do-while語(yǔ)句中的n++,只執(zhí)行一次n++得n=1;i=3時(shí),i%3條件為假,執(zhí)行兩次n++得n=3;i=4時(shí),i%3條件為真,執(zhí)行一次n++得n=4。

35.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

36.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當(dāng)n=4時(shí),判斷條件不滿足,退出循環(huán)。

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

38.物理獨(dú)立性物理獨(dú)立性解析:數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為物理獨(dú)立性。

39.100100解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算。運(yùn)算過(guò)程為:k=B*20=(A+3)*20=(2+3)*20=100。

40.1616解析:滿二叉樹(shù)的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。

41.A解析:函數(shù)中變量的存儲(chǔ)類別包括auto,static,extern,其中auto為隱含存儲(chǔ)類別,static為靜態(tài)存儲(chǔ)類別,register是寄存器存儲(chǔ)類別。

42.D解析:因?yàn)轭}目給出的命令行為tt12345678,所以main函數(shù)的兩個(gè)參數(shù)分別為4和{'tt','12','345','678')。程序中,通過(guò)一個(gè)for循環(huán),遍歷了后面的三個(gè)參數(shù)字符串,每次將n自乘10,然后累加*argv[i]-\'0\',即第i個(gè)參數(shù)字符串的首字符減去\'0\'。一個(gè)數(shù)寧字符減去,O字符,即可得到這個(gè)數(shù)字字符的實(shí)際數(shù)值,因此三次循環(huán)的結(jié)果是讓n的值變?yōu)?36,故本題應(yīng)該選擇D。

43.C解析:本題要求建立一個(gè)structnode類型的數(shù)據(jù)鏈表,從main函數(shù)可知,h是“頭指針”變量,它指向所建立的表的第一個(gè)數(shù)據(jù),函數(shù)的類型應(yīng)該與h的類型一致,所以應(yīng)該填streetnode*。

44.B解析:指向同一字符串的指針可以、也只能進(jìn)行減運(yùn)算,返回一個(gè)整型數(shù)。

45.A數(shù)據(jù)庫(kù)管理系統(tǒng)的三級(jí)模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。

外模式,或子模式,或用戶模式,是指數(shù)據(jù)庫(kù)用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或邏輯模式,是數(shù)據(jù)庫(kù)中對(duì)全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見(jiàn)到的數(shù)據(jù)視圖的總和。外模式是模式的一一部分。內(nèi)模式,或存儲(chǔ)模式,或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)的存儲(chǔ)介質(zhì)上的表示,即對(duì)數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。

46.C解析:考查C語(yǔ)言標(biāo)識(shí)符。C語(yǔ)言合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線。因?yàn)檫x項(xiàng)C)中的標(biāo)識(shí)符的第一個(gè)字符為'&',所以C)為本題的正確答案。

47.C

\n在C語(yǔ)言中各種數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)與機(jī)器的位數(shù)有關(guān),16位機(jī)中(也就是在標(biāo)準(zhǔn)c中),若int類型數(shù)據(jù)占2個(gè)字節(jié),則float類型數(shù)據(jù)占4個(gè)字節(jié),double類型數(shù)據(jù)占8個(gè)字節(jié)。

\n

48.A解析:本題主要考查了結(jié)構(gòu)體和共用體數(shù)據(jù)的存儲(chǔ)形式。共用體的一個(gè)特點(diǎn)是所有數(shù)據(jù)成員共用一段存儲(chǔ)單元,而結(jié)構(gòu)體每個(gè)數(shù)據(jù)成員都單獨(dú)占據(jù)一段存儲(chǔ)單元。共用體所占存儲(chǔ)單元的大小由長(zhǎng)度最長(zhǎng)的數(shù)據(jù)成員的長(zhǎng)度決定。題中共用體變量c占據(jù)4個(gè)字節(jié)的長(zhǎng)度,結(jié)構(gòu)體r所占存儲(chǔ)空間的大小為int(2個(gè)字節(jié))+long(4個(gè)字節(jié))+共用體c(4個(gè)字節(jié))=10個(gè)字節(jié),所以答案為A)。

49.B解析:本題考查對(duì)文件的操作。文件打開(kāi)后才可以對(duì)文件進(jìn)行操作,使用結(jié)束后要關(guān)閉文件。對(duì)文件的操作都是順序讀寫(xiě),即從文件的第一個(gè)數(shù)據(jù)開(kāi)始,依次進(jìn)行讀寫(xiě)。

50.A解析:本題考核的知識(shí)點(diǎn)是C程序的三種基本結(jié)構(gòu)。C程序由三種基本的結(jié)構(gòu)組成,分別為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù),故選項(xiàng)B、選項(xiàng)C和選項(xiàng)D都不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

51.B解析:鏈表采用的是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),它克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來(lái)指示,不需要移動(dòng)數(shù)據(jù)元素。但是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)也有不足之處:①每個(gè)結(jié)點(diǎn)中的指針域需額外占用存儲(chǔ)空間;②鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是一種非隨機(jī)存儲(chǔ)結(jié)構(gòu)。

52.B解析:本題x賦初值為3,當(dāng)執(zhí)行printf('%d',x-);時(shí),由于X--的作用是先運(yùn)算x,再將x的值減1,所以,printf輸出的x值為3,等輸出后,x的值減1變?yōu)?,繼續(xù)執(zhí)行,判斷條件!x為假,循環(huán)只被執(zhí)行一次。

53.D

54.A解析:本題考核的知識(shí)點(diǎn)是定義函數(shù)時(shí)形參的缺省存儲(chǔ)類。在C語(yǔ)言中,形參的缺省存儲(chǔ)類為auto。

55.A解析:for循環(huán)執(zhí)行了3次,第一次時(shí)i的值為0,執(zhí)行其后的switch語(yǔ)句,沒(méi)有匹配的分支,執(zhí)行default語(yǔ)句后的printf語(yǔ)句,輸出為0;第二次循環(huán)時(shí)i的值為1,執(zhí)行其后的switch語(yǔ)句,與第一個(gè)分支匹配,執(zhí)行其后的primf語(yǔ)句,輸出1,由于沒(méi)有遇到break語(yǔ)句,所以一直向下執(zhí)行,又輸出了兩個(gè)1,第三次循環(huán)時(shí)i值為2,執(zhí)行其后的switch語(yǔ)句,同理輸出兩個(gè)2。所以,A選項(xiàng)是正確的。

56.B

57.C解析:統(tǒng)計(jì)1~9九個(gè)數(shù)中的奇數(shù)和,此題考察指向數(shù)組的指針。C語(yǔ)言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素的地址。因此*(t+i)代表數(shù)組的第i+1個(gè)元素。程序運(yùn)行的結(jié)果是1+2+3+4+5+6+7+8+9=25。

58.B

59.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPK\\0”的首址等。在printf語(yǔ)句中輸出的*p[i]表示p[i]字符串的第—個(gè)字符。在for循環(huán)中,i的初值為3,那么輸出的第—個(gè)字符為“S”,接著兩次i-,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。

60.B解析:C語(yǔ)言中字符串是以'\\0'字符結(jié)束的,且strlen()函數(shù)計(jì)算的是'\\0'字符前的所有字符的個(gè)數(shù)。本題中strlen(st)應(yīng)為5。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有沒(méi)有內(nèi)容。sizeof()函數(shù)是計(jì)算變量或數(shù)組的所分配到的內(nèi)存空間的大小。所以本題的sizeof(st)為20。

61.B解析:在C語(yǔ)言的數(shù)組元素的引用方法,我們?cè)谇懊嬉呀?jīng)講過(guò)了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來(lái)引用,對(duì)于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來(lái)引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對(duì)此地址使用“間接訪問(wèn)運(yùn)算符”:*(p+1)就代表存儲(chǔ)單元a[1],注意:一對(duì)圓括號(hào)不可少。同樣,對(duì)于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來(lái)引用…,對(duì)于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來(lái)引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時(shí),若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來(lái)表示。

62.B\n根據(jù)判斷本題共進(jìn)行三次for循環(huán),第一次執(zhí)行for循環(huán),p[1][0]=p[1][0]-1=3;第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4;第3次執(zhí)行for循環(huán),[1][2]=1,最后輸出的是a[o][1]+a[1][1]+a[1][2]=2+4+1=7。

\n

63.C此題中嵌套了兩個(gè)for語(yǔ)句,第一個(gè)用來(lái)輸出空格,第二個(gè)用來(lái)輸出數(shù)字。如此類型的輸出某種格式的考題,一般是采用多重循環(huán)來(lái)解決,需要考生找出輸出數(shù)據(jù)的特點(diǎn),并用相應(yīng)的數(shù)學(xué)公式表示出來(lái)。

64.A

65.A當(dāng)i為8的倍數(shù)時(shí),輸出一個(gè)回車符,只有A)符合題意。

66.D字符串是一個(gè)特殊的數(shù)組,所以按照數(shù)組的規(guī)則,sl應(yīng)該指向的是數(shù)組的首地址,即“abc”的第一個(gè)字符的地址。s2指向的是“123”的第一個(gè)字符的地址。調(diào)用swap函數(shù)之后交換的是兩個(gè)字符串的第一個(gè)字符‘a(chǎn)’和‘1’的內(nèi)容,所以打印輸出為D)。

67.C指針變量的值只能是存儲(chǔ)單元地址,而不能是一個(gè)整數(shù),故選項(xiàng)C錯(cuò)誤。

68.B題目給出的程序主要結(jié)構(gòu)是while循環(huán)。自減運(yùn)算符“--”在題目中出現(xiàn)了兩次,一次是在while語(yǔ)句的判別表達(dá)式中,出現(xiàn)的形式為i--,即先利用變量i的值進(jìn)行判別,再執(zhí)行i-1操作。另一次是在輸出函數(shù)printf中,出現(xiàn)的形式為--i,先執(zhí)行i-1操作,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論