2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第1頁
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第2頁
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第3頁
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第4頁
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第5頁
已閱讀5頁,還剩72頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運(yùn)行時(shí)輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。

A.w,youjing,o

B.welcome,you,jing,to

C.w,you,eeijing,u

D.w,xelcome,eeijing,u

2.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf(“m=%d\n”,m);}程序運(yùn)行后的輸出結(jié)果是()A.m=4B.m=2C.m=6D.m=5

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

A.線性結(jié)構(gòu)也能采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

B.線性結(jié)構(gòu)一定能采用順序存儲(chǔ)結(jié)構(gòu)

C.有的非線性結(jié)構(gòu)也能采用順序存儲(chǔ)結(jié)構(gòu)

D.非線性結(jié)構(gòu)一定不能采用順序存儲(chǔ)結(jié)構(gòu)

4.若有定義“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。

A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;

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

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

6.運(yùn)行下面程序段的輸出結(jié)果是().A.A.Set

B.Setup

C.Setup

D.'S''e''t'

7.若有說明語句:charc='\72'則變量c()。

A.包含1個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.說明不合法,c的值不確定

8.已知字符A的ASCII值是65,字符變量c1的值是‘A’,c2的值是‘D’,則執(zhí)行語句“printf(“%d,%d”,c1,c2-2);”的輸出結(jié)果是()。

A.65,68B.A,68C.A,BD.65,66

9.有以下定義

#include<stdio.h>

chara[10],*b=a;

不能給a數(shù)組輸入字符串的語句是

A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(B);

10.

11.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序運(yùn)行后的輸出結(jié)果是()。A.0B.1C.2D.3

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

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

13.以下程序的輸出結(jié)果是()。main(){inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};printf("%(1%d%d%d\n".a(chǎn)[O][3],a[1][2],a[2][1],a[3][0];}A.0650B.1470C.5430D.輸出值不定

14.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。A.AaB.AbC.abD.Ba

15.下列排序算法中,時(shí)間復(fù)雜度不受數(shù)據(jù)初始化狀態(tài)影響,恒為0(log2n)的是()。A.堆排序B.冒泡排序C.直接選擇排序D.快速排序

16.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的運(yùn)行結(jié)果是()。

A.abcB.28cC.abc28D.因類型不一致而出錯(cuò)

17.若要說明一個(gè)類型名STP,使得定義語句STPs;等價(jià)于Char*s;,以下選項(xiàng)中正確的是()。

A.typedefChar*s;

B.typedefChar*STP;

C.typedefSTP*Char;

D.typedef*CharSTP;

18.

19.以下敘述中正確的是______。

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

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

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

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

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

A.C程序中的#include和#define行均不是C語句

B.除逗號(hào)運(yùn)算符外,賦值運(yùn)算符的優(yōu)先級(jí)最低

C.C程序中,j++;是賦值語句

D.C程序中,+、-、*、/、%是算術(shù)運(yùn)算符,可用于整型和實(shí)型數(shù)的運(yùn)算

二、2.填空題(20題)21.若有以下定義,則使指針p指向值為35的數(shù)組元素的語句是______。

inta[10]={14,27,47,29,35,21,49,71},*p;

22.【】是數(shù)據(jù)庫設(shè)計(jì)的核心。

23.下面程序的功能是:輸出100以內(nèi)能被4整除且個(gè)位數(shù)為8的所有整數(shù),請(qǐng)?zhí)羁?。main(){inti,j;for(i=0=();i++){j=i*10+8;if(j%4!=0)continue;printf("%d",j);}}

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

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

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

case3:a++;b++;

}

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

}

25.有如下圖所示的雙鏈表結(jié)構(gòu),請(qǐng)根據(jù)圖示完成結(jié)構(gòu)體的定義:

structaa

{intdata;

【】}node;

26.若x和a均是血型變量,則計(jì)算完x=(a=4,6*2)后的x值為______。

27.在Windows環(huán)境下,可以將窗口最小化為【】。

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

29.有以下程序:

#include<stdio.h>

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

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

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

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

#include<stdio,h>

#include<stating,h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abedefg";

fun(s,3,strlen(s));puts(s);

}

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

34.在E-R圖中,矩形表示【】。

35.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個(gè)二維數(shù)組b中。請(qǐng)?zhí)羁铡?/p>

main()

{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;

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

{for(j=0;j<3;j++)

}

}

36.在使用putchar和getchar函數(shù)處理字符時(shí),必須在程序的開頭出現(xiàn)包含頭文件的命令行是【】。

37.下列語句的輸出結(jié)果是【】。

chara=3;printf("%d,%o,%x,%u\n",a,a,a,a);

38.下面程序把從終端讀入的10個(gè)整數(shù)以二進(jìn)制方式寫入一個(gè)名為bi.dat的新文件中。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

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

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

{scanf("%d",&j);

fwrite(&j,sizeof(int),1,【】;

}

fclose(fp);

}

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

doublefun(doublex,intn)

{inti;doubley=1;

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

returny;

}

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

40.人員基本信息一般包括:身份證號(hào)、姓名、性別、年齡等。其中可以作為主關(guān)鍵字的是()。

三、1.選擇題(20題)41.若有以下定義和語句,則輸出的結(jié)果是______。charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");

A.2,MB.3,EC.2,ED.輸出結(jié)果不確定

42.設(shè)已執(zhí)行預(yù)編譯命令#include<string.h>,以下程序段的輸出結(jié)果是()。chars[]="anapple";printf("%d\n",strlen(s));

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

43.棧和隊(duì)列的共同特點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)

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

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

45.關(guān)于return語句,正確的說法是______。

A.在主函數(shù)和其他函數(shù)中均可出現(xiàn)

B.必須在每個(gè)函數(shù)中出現(xiàn)

C.可以在同一個(gè)函數(shù)中出現(xiàn)多次

D.只能在除主函數(shù)之外的函數(shù)中出現(xiàn)一次

46.對(duì)下述程序的判斷中,正確的是()。#include<stdio.h>voidmain(){char*P,s[256];p=s;while(strcmp(s,"theend")){printf("Inputthestring:");gets(s);while(*P)putchar(*p++);}}

A.此程序循環(huán)接收字符串并輸出,直到接收到字符串“theend”為止

B.此程序循環(huán)接收字符串,接收到字符串“theend”則輸出,否則程序終止

C.此程序循環(huán)接收字符串并輸出,直到接收字符串“theend”為止,但因?yàn)榇a有錯(cuò)誤,程序不能正常工作

D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串“theend”為止,輸出連接在一起的字符串

47.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=3,b=2,c=1;if(a<B)if(b<0)c=0;elsec++;printf("%d\n",C);}

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

48.有以下程序

#include<stdio.h>

#defineN5

#defineMN+1

#definef(x)(x*M)

main()

{inti1,i2;

i1=f(2);

i2=f(1+1);

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

}

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

A.1212B.117C.1111D.127

49.以下不屬于對(duì)象的基本特點(diǎn)的是()

A.分類性B.多態(tài)性C.繼承性D.封裝性

50.有以下程序:#include<stdio.h>main(){inti=1,j=2,k=3;if(i++==1&&(++j==3‖k++==3))printf("%d%d%d\n",i,j,k);}程序運(yùn)行后的輸出結(jié)果是()。

A.123B.234C.223D.233

51.計(jì)算機(jī)的軟件系統(tǒng)一般分為()

A.系統(tǒng)軟件、應(yīng)用軟件與各種字處理軟件

B.操作系統(tǒng)、用戶軟件與管理軟件

C.系統(tǒng)軟件與應(yīng)用軟件

D.操作系統(tǒng)、實(shí)時(shí)系統(tǒng)與分的系統(tǒng)

52.以下程序中,能夠通過調(diào)用函數(shù)fun,使main函數(shù)中的指針變量p指向一個(gè)合法的整型單元的是

A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}

B.main(){int*p;fun(&p);…}intfun(int**p){ints;*p=&s;)

C.#includemain(){int*p;fun(&p);…}intfun(int**p)*p=(int*)malloc(2);}

D.#includemain(){iht*p;fun(p);…}ihtfun(iht*p){p=(int*)malloc(sizeof(int));}

53.C語言提供的合法關(guān)鍵字是______。

A.swicthB.chanC.CaseD.default

54.關(guān)系表中的每一橫行稱為一個(gè)()。A.元組B.字段C.屬性D.碼

55.某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為()

A.n+1B.n-1C.2nD.n/2

56.下列關(guān)于棧的敘述中正確的是()

A.在棧中只能插入數(shù)據(jù)B.在棧中只能刪除數(shù)據(jù)C.棧是先進(jìn)先出的線性表D.棧是先進(jìn)后出的線性表

57.如下程序的輸出結(jié)果是#include<stdio.h>main(){chsrch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0'printf("%d\n",s);}

A.69825B.63825C.6385D.693825

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

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

59.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序運(yùn)行后的輸出結(jié)果是

A.2B.3C.43D.44

60.在數(shù)據(jù)管理技術(shù)發(fā)展過程中,文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的主要區(qū)別是數(shù)據(jù)庫系統(tǒng)具有

A.特定的數(shù)據(jù)模型B.數(shù)據(jù)無冗余C.數(shù)據(jù)可共享D.專門的數(shù)據(jù)管理軟件

四、選擇題(20題)61.以下程序段中的變量已正確定義。

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

for(k=1;k<;3;k++);prinff(”*”);該程序段的輸出結(jié)果是()。

A.*B.****C.**D.********

62.數(shù)據(jù)庫設(shè)計(jì)中,用E—R圖來描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫設(shè)計(jì)的()。

A.需求分析階段B.邏輯設(shè)計(jì)階段C.概念設(shè)計(jì)階段D.物理設(shè)計(jì)階段

63.

64.若有定義語句:“inta=10;doubleb=3.14;”,則表達(dá)式A+a+b值的類型是()。

A.charB.intC.doubleD.float

65.以下程序中函數(shù)f的功能是:當(dāng)na9為1時(shí),進(jìn)行由小到大排序;當(dāng)na9為0時(shí),進(jìn)行由大到小排序。

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

A.1,2,3,4,5,6,7,8,9,10,

B.3,4,5,6,7,2,1,8,9,10,

C.5,4,3,2,1,6,7,8,9,10,

D.10,9,8,7,6,5,4,3,2,1,

66.若有定義語句:

67.

68.軟件(程序.調(diào)試的目標(biāo)是()。

A.診斷和改正程序中的錯(cuò)誤

B.盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤

C.發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤

D.確定程序中錯(cuò)誤的性質(zhì)

69.軟件詳細(xì)設(shè)計(jì)生產(chǎn)的圖如右圖:該圖是()。

A.N—S圖B.PAD圖C.程序流程圖D.E—R圖

70.

71.

72.數(shù)據(jù)庫管理系統(tǒng)是()。

A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)

73.

74.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡單的變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是

A.地址傳遞B.單向值傳遞

C.由實(shí)參傳形參,再由形參傳實(shí)參D.傳遞方式由用戶指定

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

76..C語言運(yùn)算對(duì)象必須是整型的運(yùn)算符是

A.%B./C.=D.<

77.有以下程序段以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。

A.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行

B.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作

C.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作

D.for循環(huán)語句固定執(zhí)行8次

78.有以下程序

structSTU

{

charname[10];

intnum;

intScore;

};

main()

{

structSTUs[5]={{"YangSan",20041,703},

{"LiSiGuo",20042,580},

{"WangYin",20043,680},

{"SunDan",20044,550},

{"Penghua",20045,537}},*p[5],*t;

inti,j;

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

p[i]=&s[i];

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

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

if(p[i]->Score>p[j]->Score)

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

printf("%d%d\n",s[1].Score,p[1]->Score);

}

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

A.550550B.580550

C.680680D.580680

79.以下敘述中正確的是

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

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

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

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

80.若有以下定義:

chara;intb;

floatc;doubled;

則表達(dá)式a*b+d-c值的類型為()。A.A.floatB.intC.charD.double

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫字母F。

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

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

試題程序:

#include<stdio.h>

voidproc(char*str)

{

inti,j;

//****found****

for(i=j=0;str[i]一0;i++)

if(str[i]!=F)

//****found****

str[i]=str[i];

str[j]=\0;

}

voidmain

{

charstr[80];

printf("\nEnterastring:");

gets(str);

printf("Theoriginalstring:");

puts(str);

proc(str);

printf("Thestringafterdeleted:");

puts(str);

printf("\n\n");}

六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:求出1~1000之間能被7或11整除,但不能同時(shí)被7和11整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過n返回這些數(shù)的個(gè)數(shù)。

注意:部分原程序在文件PROGl.C中。

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

參考答案

1.A題干中,定義一個(gè)二維字符數(shù)組v。然后通過for循環(huán),輸入4個(gè)字符串welcome、you、to、beijing,將其分別存放在v的4個(gè)元素中。數(shù)組v是存放4個(gè)字符串的二維數(shù)組;“**v”表示第1個(gè)字符串的第一個(gè)字符“w”;“*(v+1)”指向第2個(gè)字符串“you”;“v[3]+3”指向第4個(gè)字符串的第3個(gè)字符開始后的整個(gè)字符串“jing”;“*(v[2]+1)”表示第3個(gè)宇符串的第2個(gè)字符“o”。故本題答案為A選項(xiàng)。

2.C第一次外循環(huán)的值為1,第一次內(nèi)循環(huán)j的值為3,不滿足條件執(zhí)行m*=i*j即m的值為3;第二次j的值為2。不滿足條件執(zhí)行m*=i*j,即的值為6;第三次j的值為1,不滿足條件執(zhí)行m*=i*j,即m的值仍為6。第二次外循環(huán)的值2,j的值為3,滿足條件執(zhí)行break語句跳出循環(huán)。

3.D滿二叉樹與完全二叉樹均為非線性結(jié)構(gòu),但可以按照層次進(jìn)行順序存儲(chǔ)。本題答案為D選項(xiàng)。

4.B運(yùn)算符“%”為二元運(yùn)算符,具有左結(jié)合性,參與運(yùn)算的量均為整型。B選項(xiàng)中的變量a是double型,不符合規(guī)定。故本題答案為B選項(xiàng)。

5.D

6.A

7.A解析:C語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個(gè)“\\”開頭的字符。其中,“\\ddd”表示用ASCII碼(八進(jìn)制數(shù))表示一個(gè)字符,本題中的charc='\\72'H口表示占一個(gè)字符的變量c的ASCII碼值。

8.D輸出時(shí)以%d整型格式輸出,所以輸出字符變量c1的值為65,c2-2的值為68-2,即66。故本題答案為D選項(xiàng)。

9.B解析:函數(shù)gets()的調(diào)用形式為gets(str_adr);str_adr是存放字符串的起始地址??梢允亲址麛?shù)組名、字符指針或字符數(shù)組元素的地址。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。換行符讀入后,不作為字符串的內(nèi)容。本題中定義一個(gè)長度為10的字符數(shù)組,和一個(gè)指針變量b,并且通過賦值讓它指向數(shù)組a。gets函數(shù)的參數(shù)a[0]不能表示數(shù)組a的首地址。

10.A

11.D

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

13.A當(dāng)所賦的值不夠其列的寬度時(shí),系統(tǒng)在其后自動(dòng)補(bǔ)0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故選擇A選項(xiàng)。

14.B函數(shù)fun將形參b賦給形參a,使得a和b都指向原b所指向的地址,然后對(duì)該地址的值執(zhí)行自增1;main函數(shù)中p1指向ch1,p2指向ch2。通過fun函數(shù)的調(diào)用,將ch2的值完成自增1,字符’a’自增1后變成字符’b’,所以程序輸出:Ab。本題答案為B選項(xiàng)。

15.D

16.Cfprintf函數(shù)將內(nèi)容寫入硬盤的文件,fputs函數(shù)將字符串寫入文件,最終文件的內(nèi)容為abc28。故本題答案為C選項(xiàng)。

17.B用關(guān)鍵字typedef聲明一種新的類型的形式為typedef類型名標(biāo)識(shí)符。本題中的類型為char*。

18.C

19.C解析:計(jì)算機(jī)語言分為低級(jí)語言、匯編語言和高級(jí)語言,C語言屬于高級(jí)語言,但并不是說C語言比其他語言高級(jí),所以選項(xiàng)A錯(cuò)誤;除了低級(jí)語言外,其他各種語言都必須譯成能被計(jì)算機(jī)識(shí)別的二進(jìn)制數(shù)才能執(zhí)行,選項(xiàng)B錯(cuò)誤;C語言出現(xiàn)從1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項(xiàng)D也是錯(cuò)誤的。

20.D解析:“%”是求余運(yùn)算符,其兩側(cè)的數(shù)值只能為整型,不能用于實(shí)型數(shù)據(jù)的運(yùn)算。

21.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接將數(shù)組元素a[4]的地址(即&a[4])賦給指針變量p,也可以用數(shù)組名加偏移量的形式(即a+4)表示數(shù)組元素a[4]的地址,并賦給指針變量p。

22.數(shù)據(jù)模型數(shù)據(jù)模型

23.i<10i<10解析:分析程序:當(dāng)(i=0,1,2,…)時(shí),“j=i*10+8”語句的運(yùn)行結(jié)果是(8,18,28,…)個(gè)位數(shù)字為8的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%4!=0)continue;”語句的功能是當(dāng)條件不能被4整除時(shí),繼續(xù)循環(huán)不執(zhí)行操作,直到能被4整除時(shí)輸出該數(shù),所以輸出的數(shù)滿足條件100以內(nèi)能被4整除且個(gè)位數(shù)為8。

24.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個(gè)case標(biāo)號(hào)的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會(huì)轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是起語句標(biāo)號(hào)作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2:分支,最后a和b的值分別為2和1。

25.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對(duì)鏈表的定義。

26.1212解析:x=(表達(dá)式1,表達(dá)式2,…)的形式,結(jié)果為最后一個(gè)表達(dá)式的值:x=(a=4,6*2)=2*6=12。

27.圖標(biāo)或按鈕圖標(biāo)或按鈕

28.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運(yùn)算方法。指針變量p首先指向字符串中的第一個(gè)字符A,執(zhí)行p=s+1后,p指向字符串中的第二個(gè)字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。

29.-4-4解析:因?yàn)閚=0,所以!n為真,執(zhí)行x-=1;得到x=x=2-1=1;m=1為真,執(zhí)行x-=2;得到x=x-2=1-2=-1;x=-1為真,執(zhí)行x-=3;得到x=x-3=-1-3=-4。

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

31.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è)。

32.abcfgabcfg解析:fun函數(shù)中for循環(huán)語句的作用是將s所指的字符串中從第5個(gè)字符到第7個(gè)字符依次向前移動(dòng)兩個(gè)位置。輸出結(jié)果為abcfg。

33.55解析:分析程序,當(dāng)a=3;b=4;c=5時(shí),判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結(jié)果為5。

34.實(shí)體實(shí)體解析:E-R模型中,有3個(gè)基本的抽象概念:實(shí)體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實(shí)體,菱形框表示聯(lián)系,橢圓形框表示屬性。

35.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識(shí)。它是要將一個(gè)二維數(shù)組,的行和列元素互換后存放到另一個(gè)二維數(shù)組b中,只要將數(shù)組a的行標(biāo)和列標(biāo)互換,然后賦給數(shù)組b即可。

36.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函數(shù)時(shí),必須在程序的開頭出現(xiàn)包含頭文件#include'stdio.h'的命令行。putchar的函數(shù)調(diào)用形式為:putchar(字符變量或字符常量);getchar函數(shù)的調(diào)用形式為:變量=getchar();getchar后的一對(duì)圓括號(hào)內(nèi)沒有參數(shù),但這一對(duì)圓括號(hào)不可少。

37.31371f3131,37,1f,31解析:此題考查了printf函數(shù)的格式字符,題中d是以十進(jìn)制形式輸出,o是以八進(jìn)制形式輸出,x是以十六進(jìn)制形式輸出,u以不帶符號(hào)的十進(jìn)制數(shù)輸出。

38."bi.dat"fp'bi.dat'\r\nfp解析:打開文件函數(shù)fopen的參數(shù)是文件名,因此有fopen('bi.dat');而寫文件的參數(shù)是文件指針,因此有fwrite(&j,sizeof(int),1,fp);

39.fun(a4)+fun(b4)-fun((a+b)3);fun(a,4)+fun(b,4)-fun((a+b),3);解析:函數(shù)fun的功能是計(jì)算x的n次方,a的4次方的調(diào)用函數(shù)為fun(a,4),b的4次方的調(diào)用函數(shù)為fun(b,4),(a+b)的3次方的調(diào)用函數(shù)為fun((a+b),3),計(jì)算m=a4+b4-(a+b)3的函數(shù)調(diào)用語句為:fun(a,4)+fun(b,4)-fun((a+b),3);

40.身份證號(hào)身份證號(hào)解析:主關(guān)鍵字是表中區(qū)別不同記錄的標(biāo)識(shí),在該表中只有身份證號(hào)能具有這個(gè)作用,所以用其作為主關(guān)鍵字。

41.B

42.B解析:如果一個(gè)字符數(shù)組中存放一個(gè)字符串,則函數(shù)strlen的值為“\\0”之前的全部字符個(gè)數(shù),也包括空格在內(nèi)。注意:字符串處理函數(shù)的使用。

43.C解析:考查棧和隊(duì)列概念的掌握。棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種'后進(jìn)先出'的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種'先進(jìn)先出'的線性表。模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級(jí),分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項(xiàng)C),沒有這種耦合方式。

44.D解析:本題主要考查左移、右移對(duì)數(shù)據(jù)值的影響,左移n位相當(dāng)于乘以2的n次冪,右移n位相當(dāng)于除以2的n次冪。

45.C

46.A解析:strcmp(str1,str2)是比較字符串str1和sir2,當(dāng)兩字符串相等時(shí),返回值為0,不相等時(shí)返回值為非0;所以此段程序的功能是在未接收到字符串“theend”時(shí),讀入字符并輸出。

47.C解析:本題考查if語句。第一個(gè)if語句,先判斷條件,發(fā)現(xiàn)a<b不成立,不再執(zhí)行下列的語句,直接執(zhí)行最后的printf輸出語句,然后結(jié)束程序,整個(gè)過程c的值沒有發(fā)生變化。

48.B解析:根據(jù)宏替換的替換規(guī)則,我們可知,f(2)=2*N+1=2*5+1=11,f(1+1)=1+1*N+1=1+1*5+1=7。

49.C解析:對(duì)象的基本特點(diǎn)包括;標(biāo)識(shí)惟一性、分類性、多態(tài)性、封裝性和獨(dú)立性等。繼承性不屬于對(duì)象的基本特點(diǎn)。

50.D解析:判斷i++==1&&(++j==3||k++==3)時(shí),先執(zhí)行i++==1,由于i++是先運(yùn)算,后自加,這時(shí)i的值為1,所以表達(dá)式i++==1的值為真,其值為i;然后執(zhí)行++j==3,由于++j是先自加,后運(yùn)算,這時(shí)j的值為3,所以表達(dá)式++j==3的值為真,不再計(jì)算右邊表達(dá)式k++==3,括號(hào)中表達(dá)式的值為1,“&&”運(yùn)算后整個(gè)表達(dá)式的值也為1,輸出i,j,k時(shí),由于k沒有進(jìn)行過運(yùn)算,所以輸出結(jié)果為2,3,3。

51.C

52.C解析:本題考核的知識(shí)點(diǎn)是指針變量作為函數(shù)的參數(shù)以及變量的作用域。在選項(xiàng)A中,main()函數(shù)中定義了一個(gè)指針變量p,調(diào)用fun()函數(shù)時(shí)把p傳給形參p,在函數(shù)中讓p指向局部變量s,由于函數(shù)調(diào)用返回后,局部變量s將被釋放,因此無法實(shí)現(xiàn)讓實(shí)參p指向一個(gè)整型單元,故選項(xiàng)A錯(cuò)誤.選項(xiàng)B中實(shí)現(xiàn)的也是讓實(shí)參p,指向一個(gè)在函數(shù)fun()定義的局部變量s,因此也是錯(cuò)誤的;選項(xiàng)C在函數(shù)fun()中分配了兩個(gè)字節(jié)的內(nèi)存單元并把首地址賦值給形參p指向的變量,即main()函數(shù)的指針變量p中,由于整型變量占兩個(gè)字節(jié),因此,選項(xiàng)C是正確的;選項(xiàng)D在主函數(shù)中定義了一個(gè)指針地址變量p,并把指針變量的值傳給形參變量p,在fun()函數(shù)分配了一個(gè)整型單元并把首地址賦值給行參指針變量p,由于C語言中變量作為參數(shù)是傳值的,所以并沒有改變對(duì)應(yīng)實(shí)參指針變量的值,因此選項(xiàng)D也是錯(cuò)誤的.所以,C選項(xiàng)為所選。

53.D

54.A解析:關(guān)系表中,每一行稱為一個(gè)元組,對(duì)應(yīng)表中的一條記錄;每一列稱為表中的一個(gè)屬性,對(duì)應(yīng)表中的一個(gè)字段;在二維表中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。

55.A解析:本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對(duì)任意一棵二叉樹,若終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為n0,而其度數(shù)為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1。根據(jù)這條性質(zhì)可知,若二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為n+1。因此,本題的正確答案是選項(xiàng)A。

56.D解析:棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個(gè)新元素只能從棧頂一端進(jìn)入,刪除時(shí),只能刪除棧頂?shù)脑?,即剛剛被插入的元素,所以棧也被稱為“先進(jìn)后出”表或“后進(jìn)先出”表。

57.C

58.C解析:靜態(tài)局部變量在編譯時(shí)賦初值,即只賦韌值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,而對(duì)自動(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=6+9=15,最后打印輸出d的值并返回主函數(shù)。

59.A解析:本題考核的知識(shí)點(diǎn)是if-else語句的程序分析。我們首先看程序中if-else的匹配,由于C語言中規(guī)定else總是與最近的if搭配,因此程序中else與第二個(gè)訂搭配,即該if-else語句為第一個(gè)if語句的執(zhí)行部分,接著判斷第一個(gè)if后面括號(hào)里的表達(dá)式的值“a>b”為假('3>4'為假),因此不執(zhí)行后面if-else語句,程序?qū)?zhí)行下面的輸出語句輸出d,而d一直未被改變故為原來的值2,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

60.A解析:在文件系統(tǒng)中,記錄是相互獨(dú)立的,其內(nèi)部結(jié)構(gòu)的最簡單形式是等長同格式記錄的集合,易造成存儲(chǔ)空間大量浪費(fèi),不方便使用。而在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)是結(jié)構(gòu)化的,這種結(jié)構(gòu)化要求在描述數(shù)據(jù)時(shí)不僅描述數(shù)據(jù)本身,還要描述數(shù)據(jù)間的關(guān)系,這正是通過采用特定的數(shù)據(jù)模型來實(shí)現(xiàn)的。

61.Ac語言約定分號(hào)為一條語句的結(jié)束。因此for(i=0;i<4;i++,i++)for(k=1;k<3;k++);是完整的語句,對(duì)研nd();沒有任何影響,最后一nff(”·’),執(zhí)行一次。因此答案為A選項(xiàng)。

62.CC?!窘馕觥縀—R(Entity—Relationship)圖為實(shí)體一聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型。

63.C

64.C如果是字符數(shù)據(jù)和整數(shù)運(yùn)算將先轉(zhuǎn)換成整型再進(jìn)行運(yùn)算,當(dāng)整型和浮點(diǎn)數(shù)進(jìn)行運(yùn)算,為了提高精度將會(huì)轉(zhuǎn)化為雙精度類型然后進(jìn)行運(yùn)算,所以此題結(jié)構(gòu)的數(shù)值類型為double類型。

65.B本題重點(diǎn)考察函數(shù)的參數(shù)傳遞,函數(shù)的參數(shù)傳遞分為傳值和傳地址兩種情況。本題就是結(jié)合數(shù)組考查參數(shù)傳遞的情形。函數(shù)f完成的功能是對(duì)數(shù)據(jù)進(jìn)行排序,語句f(&a[2],5,O)的作用是對(duì)從a[2]開始的5個(gè)元素進(jìn)行從大到小排序。注意:這里傳遞的是地址&a[2],所以排序操作可看作是直接對(duì)數(shù)組a操作,執(zhí)行后的結(jié)果為5,4,7,6,3,2,1,8,9,10。語句f(a,5,1)對(duì)數(shù)組a的前5個(gè)元素從小到大排序,排序后數(shù)組為:3,4,5,6,7,2,1,8,9,10。因此B選項(xiàng)正確。

66.A本題考查的知識(shí)點(diǎn)是:二維數(shù)組和指針數(shù)組。無論一個(gè)數(shù)組有多少維或者是否含指針類型,該數(shù)組最終都可以被看做一個(gè)比較特殊的一維數(shù)組。例如本題中的inta[2][3]可以看作元素為int[3](即包含3個(gè)int型元素的一維數(shù)組),包含2個(gè)這樣元素的一維數(shù)組;而int*p[31則可以看作元素為int*,包含3個(gè)這樣元素的一維數(shù)組。選項(xiàng)C)中,p為數(shù)組名,其值是不能被改變的,故非法;選項(xiàng)B)中,do]的類型是int*,而a是二維數(shù)組名(類型為intfl[3]),兩者無法賦值,故非法;選項(xiàng)A)中,p[01為int型指針,&a[lⅡ2]為元素a[lⅡ2]的地址,所以選項(xiàng)A)符合題意。

67.A

68.A\n軟件測(cè)試與軟件調(diào)試是兩個(gè)不同的概念:軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤,而軟件調(diào)試的目的是發(fā)現(xiàn)錯(cuò)誤或?qū)е鲁绦蚴У脑?,并修改程序以修正錯(cuò)誤,調(diào)試是測(cè)試之后的活動(dòng)。

\n

69.CN—s圖提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對(duì)。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細(xì)設(shè)計(jì)的圖形表示工具,所以8不對(duì)。E—R圖是數(shù)據(jù)庫中的用于表示E—R模型的圖示工具,所以D不對(duì)。根據(jù)圖中所示表示方法是進(jìn)行軟件詳細(xì)設(shè)計(jì)時(shí)使用的程序流程圖。

70.D

71.D

72.B數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,是一種在操作系統(tǒng)支持下的系統(tǒng)軟件,因此本題答案為B)。

73.B

74.B函數(shù)調(diào)用時(shí),在主調(diào)函數(shù)和被調(diào)函數(shù)之間,存在著數(shù)據(jù)的傳遞,利用參數(shù)傳遞數(shù)據(jù)和利用返回值傳遞數(shù)據(jù)是常用的兩種方法。

函數(shù)調(diào)用時(shí)的參數(shù)叫做實(shí)參,函數(shù)執(zhí)行時(shí)的參數(shù)叫做形參,利用參數(shù)傳遞數(shù)據(jù)實(shí)質(zhì)是指函數(shù)實(shí)參和形參之間的數(shù)據(jù)傳遞過程。存在兩種數(shù)據(jù)傳遞的方式:傳值和傳地址。

在函數(shù)調(diào)用時(shí),系統(tǒng)為形參準(zhǔn)備空間,并把實(shí)參的值賦值到形參空間中,在調(diào)用結(jié)束后,形參空間將被釋放,而實(shí)參的值保持不變,這就是傳值傳遞方式。傳值傳遞方式中實(shí)參與形參之間的數(shù)據(jù)傳遞是單向的,只能由實(shí)參傳遞給形參。因而,即使形參的值在函數(shù)執(zhí)行過程中發(fā)生了變化,也不會(huì)影響到實(shí)參值。在C語言中,當(dāng)參數(shù)類型是非指針類型和非數(shù)組類型時(shí),均采用傳值方式。

傳地址方式把實(shí)參的地址賦值給形參,這樣形參就可以根據(jù)地址值訪問和更改實(shí)參的內(nèi)容,從而實(shí)現(xiàn)雙向傳遞。當(dāng)參數(shù)類型是指針類型或數(shù)組類型時(shí),均采用傳地址方式。

區(qū)別于參數(shù)傳值方式和返回值傳遞方式,傳地址方式具有明顯的優(yōu)勢(shì)。

(1)參數(shù)傳值方式是主調(diào)函數(shù)與被調(diào)函數(shù)之間的單向數(shù)據(jù)傳遞方式,而參數(shù)的傳地址方式則實(shí)現(xiàn)了二者之間的雙向數(shù)據(jù)傳遞。

(2)函數(shù)的返回值每次只能把一個(gè)數(shù)據(jù)項(xiàng)從被調(diào)函數(shù)傳遞到主調(diào)函數(shù),而參數(shù)的傳地址方式卻可一次性地傳遞多個(gè)數(shù)據(jù)項(xiàng)到主調(diào)函數(shù)。

根據(jù)上述描述,由于本題中說的實(shí)參是普通的變量,即非指針類型和數(shù)組類型,那么采用的是傳值方式,是單向的。因此,本題的答案是B。

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

76.A本題主要考查C語言中一些常見運(yùn)算符的基本知識(shí)。在題目中,給出了四種不同的運(yùn)算符,分別如下:

“/”是除法運(yùn)算符。在C語言中,該運(yùn)算符的作用是將兩操作數(shù)進(jìn)行除法運(yùn)算,在更改運(yùn)算符時(shí),兩操作數(shù)可以是同類型的數(shù)值類型,也可以是不同類型的數(shù)值類型。

“=”是賦值運(yùn)算符。在C語言中,該運(yùn)算符的作用是將運(yùn)算符左邊的結(jié)果值復(fù)制到右邊的變量中保存,該運(yùn)算符可以操作整型數(shù)據(jù),也可以操作其他類型的數(shù)據(jù)。

“<”是小于關(guān)系運(yùn)算符。如果左邊的操作數(shù)小于右邊,則返回真,否則返回假。該運(yùn)算符可以操作整型數(shù)據(jù),也可以操作其他類型的數(shù)據(jù)。

“%”是取余運(yùn)算符。該運(yùn)算符的作用是求兩操作數(shù)相除后的余數(shù),該運(yùn)算符要求兩操作數(shù)都不能為實(shí)數(shù)。

\r\n\r\n\r\n

77.An為。時(shí)執(zhí)行exit(0);函數(shù)結(jié)束,所以產(chǎn)生的隨機(jī)數(shù)為0時(shí),函數(shù)結(jié)束。答案選擇A)。

78.B本題實(shí)際上是按成員變量Score的值進(jìn)行由小到大的排序,程序執(zhí)行后,數(shù)組p[5]中各元素分別為:

{{'Penghua',20045,537},

{'SunDan',20044,550},

{'LiSiGuo',20042,580},

{'WangYin',20043,680},

{'YangSan',20041,703}}

所以,p[1]->Score=550,s[1].Score=580。故本題答案為B。

79.C本題主要考查我們對(duì)C語言一些基礎(chǔ)知識(shí)的掌握情況。下面分別分析本題的四個(gè)選項(xiàng)。

對(duì)于選項(xiàng)A,C語言是一種高級(jí)語言,但還存在很多其他的高級(jí)語言,并不能說C語言就比其他高級(jí)語言更高級(jí)。

對(duì)于選項(xiàng)B,C語言并不是機(jī)器語言或匯編語言,它需要通過編譯程序?qū)ζ溥M(jìn)行編譯后才能被計(jì)算機(jī)識(shí)別執(zhí)行。

對(duì)于選項(xiàng)C,C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式的說法是正確的。

對(duì)于選項(xiàng)D,C語言并不是最晚出現(xiàn)的語言,而且C語言也不具備其他語言的一切優(yōu)點(diǎn)。C語言是一種面向過程的設(shè)計(jì)語言,它不具備面向?qū)ο蟮膬?yōu)點(diǎn)。

80.D在表達(dá)式a*b+d-c中,double的類型最高,C語言中,由低類型自動(dòng)向高類型轉(zhuǎn)換,所以最后的結(jié)果一定是double型。

81.(1)錯(cuò)誤:for(i=j=0;str[i]!=0;i++)

\n正確:for(i=j=0;str[i]!=\0;i++)

\n(2)錯(cuò)誤:str[j]=str[i];

\n正確:str[i++]=str[i];

\n【解析】根據(jù)題目中的要求,從字符串str中刪除所有大寫字母F,需要檢查字符串str中的每一個(gè)字符,直到字符串結(jié)束,因此,“for(i=j=0;str[i]!=0;i++)”應(yīng)改為“for(i=J=0;str[i]!=0;i++)”;將每一個(gè)不是F的字符放入原來的字符串中,形成新的字符串,因此,“str[j]=str[i];”應(yīng)改為“str[j++]=str[i];”。

\n

82.

【考點(diǎn)分析】

本題考查:if語句,用來判斷能被7整除或者能被11整除,但是又不能同時(shí)被7和11整除的數(shù),在這里充分理解”邏輯與”和”邏輯或”的區(qū)別;for循環(huán)語句的循環(huán)變量用來控制取值范圍。

【解題思路】

該題需要運(yùn)用循環(huán)判斷結(jié)構(gòu)來實(shí)現(xiàn),其中循環(huán)語句比較容易,只要確定循環(huán)變量的范圍即可,下面來看判斷語句,題目要求找出能被7或11整除,但不能同時(shí)被7和11整除的所有整數(shù)。能同時(shí)被7和ll整除的整數(shù)一定能被77整除,且不能被

77整除的數(shù)不一定就是能被7或11整除的數(shù),所以可得出程序中的if語句。注意:(i%7==0||i%11==0)兩邊必須要有小括號(hào)。2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運(yùn)行時(shí)輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。

A.w,youjing,o

B.welcome,you,jing,to

C.w,you,eeijing,u

D.w,xelcome,eeijing,u

2.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf(“m=%d\n”,m);}程序運(yùn)行后的輸出結(jié)果是()A.m=4B.m=2C.m=6D.m=5

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

A.線性結(jié)構(gòu)也能采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

B.線性結(jié)構(gòu)一定能采用順序存儲(chǔ)結(jié)構(gòu)

C.有的非線性結(jié)構(gòu)也能采用順序存儲(chǔ)結(jié)構(gòu)

D.非線性結(jié)構(gòu)一定不能采用順序存儲(chǔ)結(jié)構(gòu)

4.若有定義“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。

A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;

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

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

6.運(yùn)行下面程序段的輸出結(jié)果是().A.A.Set

B.Setup

C.Setup

D.'S''e''t'

7.若有說明語句:charc='\72'則變量c()。

A.包含1個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.說明不合法,c的值不確定

8.已知字符A的ASCII值是65,字符變量c1的值是‘A’,c2的值是‘D’,則執(zhí)行語句“printf(“%d,%d”,c1,c2-2);”的輸出結(jié)果是()。

A.65,68B.A,68C.A,BD.65,66

9.有以下定義

#include<stdio.h>

chara[10],*b=a;

不能給a數(shù)組輸入字符串的語句是

A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(B);

10.

11.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序運(yùn)行后的輸出結(jié)果是()。A.0B.1C.2D.3

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

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

13.以下程序的輸出結(jié)果是()。main(){inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};printf("%(1%d%d%d\n".a(chǎn)[O][3],a[1][2],a[2][1],a[3][0];}A.0650B.1470C.5430D.輸出值不定

14.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。A.AaB.AbC.abD.Ba

15.下列排序算法中,時(shí)間復(fù)雜度不受數(shù)據(jù)初始化狀態(tài)影響,恒為0(log2n)的是()。A.堆排序B.冒泡排序C.直接選擇排序D.快速排序

16.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的運(yùn)行結(jié)果是()。

A.abcB.28cC.abc28D.因類型不一致而出錯(cuò)

17.若要說明一個(gè)類型名STP,使得定義語句STPs;等價(jià)于Char*s;,以下選項(xiàng)中正確的是()。

A.typedefChar*s;

B.typedefChar*STP;

C.typedefSTP*Char;

D.typedef*CharSTP;

18.

19.以下敘述中正確的是______。

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

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

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

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

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

A.C程序中的#include和#define行均不是C語句

B.除逗號(hào)運(yùn)算符外,賦值運(yùn)算符的優(yōu)先級(jí)最低

C.C程序中,j++;是賦值語句

D.C程序中,+、-、*、/、%是算術(shù)運(yùn)算符,可用于整型和實(shí)型數(shù)的運(yùn)算

二、2.填空題(20題)21.若有以下定義,則使指針p指向值為35的數(shù)組元素的語句是______。

inta[10]={14,27,47,29,35,21,49,71},*p;

22.【】是數(shù)據(jù)庫設(shè)計(jì)的核心。

23.下面程序的功能是:輸出100以內(nèi)能被4整除且個(gè)位數(shù)為8的所有整數(shù),請(qǐng)?zhí)羁铡ain(){inti,j;for(i=0=();i++){j=i*10+8;if(j%4!=0)continue;printf("%d",j);}}

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

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

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

case3:a++;b++;

}

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

}

25.有如下圖所示的雙鏈表結(jié)構(gòu),請(qǐng)根據(jù)圖示完成結(jié)構(gòu)體的定義:

structaa

{intdata;

【】}node;

26.若x和a均是血型變量,則計(jì)算完x=(a=4,6*2)后的x值為______。

27.在Windows環(huán)境下,可以將窗口最小化為【】。

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

29.有以下程序:

#include<stdio.h>

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

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

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

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

#include<stdio,h>

#include<stating,h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abedefg";

fun(s,3,strlen(s));puts(s);

}

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

34.在E-R圖中,矩形表示【】。

35.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個(gè)二維數(shù)組b中。請(qǐng)?zhí)羁铡?/p>

main()

{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;

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

{for(j=0;j<3;j++)

}

}

36.在使用putchar和getchar函數(shù)處理字符時(shí),必須在程序的開頭出現(xiàn)包含頭文件的命令行是【】。

37.下列語句的輸出結(jié)果是【】。

chara=3;printf("%d,%o,%x,%u\n",a,a,a,a);

38.下面程序把從終端讀入的10個(gè)整數(shù)以二進(jìn)制方式寫入一個(gè)名為bi.dat的新文件中。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

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

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

{scanf("%d",&j);

fwrite(&j,sizeof(int),1,【】;

}

fclose(fp);

}

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

doublefun(doublex,intn)

{inti;doubley=1;

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

returny;

}

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

40.人員基本信息一般包括:身份證號(hào)、姓名、性別、年齡等。其中可以作為主關(guān)鍵字的是()。

三、1.選擇題(20題)41.若有以下定義和語句,則輸出的結(jié)果是______。charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");

A.2,MB.3,EC.2,ED.輸出結(jié)果不確定

42.設(shè)已執(zhí)行預(yù)編譯命令#include<string.h>,以下程序段的輸出結(jié)果是()。chars[]="anapple";printf("%d\n",strlen(s));

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

43.棧和隊(duì)列的共同特點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)

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

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

45.關(guān)于return語句,正確的說法是______。

A.在主函數(shù)和其他函數(shù)中均可出現(xiàn)

B.必須在每個(gè)函數(shù)中出現(xiàn)

C.可以在同一個(gè)函數(shù)中出現(xiàn)多次

D.只能在除主函數(shù)之外的函數(shù)中出現(xiàn)一次

46.對(duì)下述程序的判斷中,正確的是()。#include<stdio.h>voidmain(){char*P,s[256];p=s;while(strcmp(s,"theend")){printf("Inputthestring:");gets(s);while(*P)putchar(*p++);}}

A.此程序循環(huán)接收字符串并輸出,直到接收到字符串“theend”為止

B.此程序循環(huán)接收字符串,接收到字符串“theend”則輸出,否則程序終止

C.此程序循環(huán)接收字符串并輸出,直到接收字符串“theend”為止,但因?yàn)榇a有錯(cuò)誤,程序不能正常工作

D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串“theend”為止,輸出連接在一起的字符串

47.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=3,b=2,c=1;if(a<B)if(b<0)c=0;elsec++;printf("%d\n",C);}

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

48.有以下程序

#include<stdio.h>

#defineN5

#defineMN+1

#definef(x)(x*M)

main()

{inti1,i2;

i1=f(2);

i2=f(1+1);

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

}

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

A.1212B.117C.1111D.127

49.以下不屬于對(duì)象的基本特點(diǎn)的是()

A.分類性B.多態(tài)性C.繼承性D.封裝性

50.有以下程序:#include<stdio.h>main(){inti=1,j=2,k=3;if(i++==1&&(++j==3‖k++==3))printf("%d%d%d\n",i,j,k);}程序運(yùn)行后的輸出結(jié)果是()。

A.123B.234C.223D.233

51.計(jì)算機(jī)的軟件系統(tǒng)一般分為()

A.系統(tǒng)軟件、應(yīng)用軟件與各種字處理軟件

B.操作系統(tǒng)、用戶軟件與管理軟件

C.系統(tǒng)軟件與應(yīng)用軟件

D.操作系統(tǒng)、實(shí)時(shí)系統(tǒng)與分的系統(tǒng)

52.以下程序中,能夠通過調(diào)用函數(shù)fun,使main函數(shù)中的指針變量p指向一個(gè)合法的整型單元的是

A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}

B.main(){int*p;fun(&p);…}intfun(int**p){ints;*p=&s;)

C.#includemain(){int*p;fun(&p);…}intfun(int**p)*p=(int*)malloc(2);}

D.#includemain(){iht*p;fun(p);…}ihtfun(iht*p){p=(int*)malloc(sizeof(int));}

53.C語言提供的合法關(guān)鍵字是______。

A.swicthB.chanC.CaseD.default

54.關(guān)系表中的每一橫行稱為一個(gè)()。A.元組B.字段C.屬性D.碼

55.某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為()

A.n+1B.n-1C.2nD.n/2

56.下列關(guān)于棧的敘述中正確的是()

A.在棧中只能插入數(shù)據(jù)B.在棧中只能刪除數(shù)據(jù)C.棧是先進(jìn)先出的線性表D.棧是先進(jìn)后出的線性表

57.如下程序的輸出結(jié)果是#include<stdio.h>main(){chsrch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0'printf("%d\n",s);}

A.69825B.63825C.6385D.693825

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

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

59.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序運(yùn)行后的輸出結(jié)果是

A.2B.3C.43D.44

60.在數(shù)據(jù)管理技術(shù)發(fā)展過程中,文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的主要區(qū)別是數(shù)據(jù)庫系統(tǒng)具有

A.特定的數(shù)據(jù)模型B.數(shù)據(jù)無冗余C.數(shù)據(jù)可共享D.專門的數(shù)據(jù)管理軟件

四、選擇題(20題)61.以下程序段中的變量已正確定義。

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

for(k=1;k<;3;k++);prinff(”*”);該程序段的輸出結(jié)果是()。

A.*B.****C.**D.********

62.數(shù)據(jù)庫設(shè)計(jì)中,用E—R圖來描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫設(shè)計(jì)的()。

A.需求分析階段B.邏輯設(shè)計(jì)階段C.概念設(shè)計(jì)階段D.物理設(shè)計(jì)階段

63.

64.若有定義語句:“inta=10;doubleb=3.14;”,則表達(dá)式A+a+b值的類型是()。

A.charB.intC.doubleD.float

65.以下程序中函數(shù)f的功能是:當(dāng)na9為1時(shí),進(jìn)行由小到大排序;當(dāng)na9為0時(shí),進(jìn)行由大到小排序。

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

A.1,2,3,4,5,6,7,8,9,10,

B.3,4,5,6,7,2,1,8,9,10,

C.5,4,3,2,1,6,7,8,9,10,

D.10,9,8,7,6,5,4,3,2,1,

66.若有定義語句:

67.

68.軟件(程序.調(diào)試的目標(biāo)是()。

A.診斷和改正程序中的錯(cuò)誤

B.盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤

C.發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤

D.確定程序中錯(cuò)誤的性質(zhì)

69.軟件詳細(xì)設(shè)計(jì)生產(chǎn)的圖如右圖:該圖是()。

A.N—S圖B.PAD圖C.程序流程圖D.E—R圖

70.

71.

72.數(shù)據(jù)庫管理系統(tǒng)是()。

A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)

73.

74.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡單的變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是

A.地址傳遞B.單向值傳遞

C.由實(shí)參傳形參,再由形參傳實(shí)參D.傳遞方式由用戶指定

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

76..C語言運(yùn)算對(duì)象必須是整型的運(yùn)算符是

A.%B./C.=D.<

77.有以下程序段以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。

A.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行

B.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作

C.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作

D.for循環(huán)語句固定執(zhí)行8次

78.有以下程序

structSTU

{

charname[10];

intnum;

intScore;

};

main()

{

structSTUs[5]={{"YangSan",20041,703},

{"LiSiGuo",20042,580},

{"WangYin",20043,680},

{"SunDan",20044,550},

{"Penghua",20045,537}},*p[5],*t;

inti,j;

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

p[i]=&s[i];

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

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

if(p[i]->Score>p[j]->Score)

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

printf("%d%d\n",s[1].Score,p[1]->Score);

}

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

A.550550B.580550

C.680680D.580680

79.以下敘述中正確的是

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

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

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

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

80.若有以下定義:

chara;intb;

floatc;doubled;

則表達(dá)式a

溫馨提示

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