2021年吉林省白城市全國計算機(jī)等級考試C語言程序設(shè)計_第1頁
2021年吉林省白城市全國計算機(jī)等級考試C語言程序設(shè)計_第2頁
2021年吉林省白城市全國計算機(jī)等級考試C語言程序設(shè)計_第3頁
2021年吉林省白城市全國計算機(jī)等級考試C語言程序設(shè)計_第4頁
2021年吉林省白城市全國計算機(jī)等級考試C語言程序設(shè)計_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年吉林省白城市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的運行結(jié)果為248,應(yīng)在下劃線處填入的是()。A.>>2B.|248C.&0248D.<<1

2.a、b、c、d變量均為float類型且已正確賦值,下列選項中與數(shù)學(xué)式子“2ab/(5cd)”等價的C語言表達(dá)式是()。

A.2/5*a/c*d/b

B.a/(5*c*d)*(2*b)

C.2*a*b/5*c*d

D.2/5*a*d*(1/c*d)

3.數(shù)組A[0...4,-1...-3,5...7]中含有的元素個數(shù)是()。A.A.55B.45C.36D.16

4.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

5.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。

A.學(xué)生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)

6.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

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

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

8.在含有n個項點有e條邊的無向圖的鄰接矩陣中,零元素的個數(shù)為________。

A.eB.2e9C.n2-eD.n2-2e

9.下列排序方法中,()方法的比較次數(shù)與記錄的初始排列狀態(tài)無關(guān)。

A.直接插入排序B.冒泡排序C.快速排序D.直接選擇排序

10.為了隱藏在文本框中輸入的信息,用占位符代替顯示用戶輸入的字符,需要設(shè)置的屬性是()。

A.ValueB.ControlSoureeC.InputMaskD.PasswordChar

11.

12.當(dāng)用戶要求輸入的字符串中含有空格時,應(yīng)使用的輸入函數(shù)是()。

A.scanfB.getcharC.getsD.getc

13.有以下程序程序運行后的輸出結(jié)果是()。

A.21B.11C.20D.10

14.下面不能正確表示a*b/(c*d)的表達(dá)式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

15.數(shù)據(jù)庫是______的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),可被各個應(yīng)用程序所共享。

A.視圖B.消息C.數(shù)據(jù)D.關(guān)系

16.下而程序的輸出結(jié)果是()。

A)32

B)26

C)24

D)4

17.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運行后,若從鍵盤輸入(從第1列開始)

123<回車>

45678<回車>

則輸出結(jié)果是

A.1267B.1256C.1278D.1245

18.以下程序的輸出結(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);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,21

D.11,41,2112,42,22

19.數(shù)據(jù)結(jié)構(gòu)通常是研究數(shù)據(jù)的及它們之間的聯(lián)系______。A.存儲和邏輯結(jié)構(gòu)B.存儲和抽象C.理想和抽象D.理想與邏輯

20.

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

#definePOWER(x)((x)*(x))

main()

{inti=1;

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

}

22.以下程序運行后的輸出結(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);

}

23.長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

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

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

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

}

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

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

}

26.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。

27.下列程序執(zhí)行后輸出的結(jié)果是【】。

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

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

29.在C語言中(以16位PC機(jī)為例),一個float型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為4;一個double型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為【】。

30.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

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

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+m

main()

{

inti=2,j=3;

printf("%d\n",MCRB(j,MCRA(i)));

}

32.若有如下程序:

main()

{intx=4,y=1;

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

sub(inti,intj)

{staticinta=0;

intb=2;

a+=i+b;

b+=j(luò)+a;}

則程序運行后的輸出結(jié)果是【】。

33.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為為算法的【】。

34.以下程序由終端鍵盤輸入一個文件名,然后把從終端鍵盤輸入的字符依次放到該文

件中,用井作為結(jié)束輸入的標(biāo)志。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if((fp=【】)==NULL)

{printf("Cannotope\n");exit(O);}

printf("Enterdata\n");

while((ch=getchar())!='#')

fputc(【】,fp);

fclose(fp);

}

35.下列程序的功能是計算1~100的整數(shù)的累加和。

main()

{inti,sum=【】;

i=1;

for(【】)

{sum+=i;

i++;

}

printf("sum=%d\n",【】);

}

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

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

37.下列程序的功能是計算數(shù)的階乘。

main()

{ihti,n;

nlongnp;

scanf("%d",&n);

np=【】;

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

【】;

printf("n=%dn!=%ld\n",n,np);

}

38.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。

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

40.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*fl)int(*12)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】

三、1.選擇題(20題)41.假定當(dāng)前盤符下有兩個如下文本文件:文件名a1.txta2.txt內(nèi)容123#321#則下面程序段執(zhí)行后的結(jié)果為#include"stdio.h"voidfc(FILE*p){charc;while((c=fgetc(p))!='#')putchar(c);}main(){FILE*fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar('\n');}

A.123321B.123C.321D.以上答案都不正確

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

A.C語言的源程序不必通過編譯就可以直接運行

B.C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令

C.C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運行

D.C語言中的函數(shù)不可以單獨進(jìn)行編譯

43.在微機(jī)中,微處理器的主要功能是()

A.算術(shù)邏輯運算B.算術(shù)運算C.存儲程序和數(shù)據(jù)D.算術(shù)邏輯運算及全機(jī)的控制

44.以下數(shù)據(jù)結(jié)構(gòu)中屬于線性數(shù)據(jù)結(jié)構(gòu)的是

A.集合B.線性表C.二叉樹D.圖

45.在說明語句:int*f();中,標(biāo)識符f代表的是

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

B.一個用于指向一維數(shù)組的行指針

C.一個用于指向函數(shù)的指針變量

D.一個返回值為指針型的函數(shù)名

46.為了提高測試的效率,應(yīng)該()。

A.隨機(jī)選取測試數(shù)據(jù)

B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)

C.在完成編碼以后制定軟件的測試計劃

D.集中對付那些錯誤群集的程序

47.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

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

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

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

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

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

49.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達(dá)式是

A.kk>=′A′&&kk<=′Z′

B.!(kk>=′A′||kk<=′Z′)

C.(kk+32)>=′a′&&(kk+32)<=′Z′

D.isalpha(kk)&&(kk<91)

50.若有下列說明和語句,已知int型數(shù)據(jù)占2個字節(jié),則下列語句的輸出結(jié)果是()。

stmctst

{chara[15];

intb;

doublec;

};

printf("%d",sizeof(structst));

A.15B.8C.25D.2

51.對于下面的程序#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti:charstring[20],sb[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[21));printf("%s\n",string);}若運行時依次輸入abcd、abba和abc三個字符串,則輸出結(jié)果為______。

A.abcdB.abbaC.abcD.abca

52.執(zhí)行以下程序后,a,b的值分別為main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

53.不能把字符串"Hello!"賦給數(shù)組b的語句是______。

A.charb[10]={'H','e','l','l','o','!'};

B.charb[10]={'h','e','l','l','o','!'};

C.charb[10];strcpy(b,"Hello!");

D.charb[10]="Hello!";

54.有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(1(--x));}程序的輸出結(jié)果是()。

A.1B.20C.1-4D.死循環(huán)

55.設(shè)p1和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則下列不能正確執(zhí)行的語句是_______。

A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);

56.下面程序的輸出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}

A.k=11,k=12,k=11

B.k=11,k=13,k=13

C.k=11,k=013,k=0xb

D.k=11,k=13,k=B

57.以下不能正確計算代數(shù)式sm2()值的C語言表達(dá)式是

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)

58.下列4個關(guān)于C語言的結(jié)論中錯誤的是()。

A.可以用do…while語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

B.可以用for語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

C.可以用while語句實現(xiàn)的循環(huán)一定可以用for語句實現(xiàn)

D.do…while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同

59.程序設(shè)計語言的基本成分是數(shù)據(jù)成分、運算成分、控制成分和()。

A.對象成分B.變量成分C.語句成分D.傳輸成分

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

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

四、選擇題(20題)61.

有下列程序:

main

{inti,s=0,t[]={1,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

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

A.循環(huán)隊列是隊列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)

B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)

C.循環(huán)隊列是非線性結(jié)構(gòu)

D.循環(huán)隊列是一種邏輯結(jié)構(gòu)

63.

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

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

A.自然連接B.并C.交D.差

65.下面敘述中,正確的是

A.C語言編譯時不檢查語法B.C語言的子程序有過程和函數(shù)兩種

C.C語言的函數(shù)可以嵌套定義D.C語言的函數(shù)可以嵌套調(diào)用

66.某循環(huán)隊列的存儲空間為Q(1:m),初始狀態(tài)為front=rear=m。現(xiàn)經(jīng)過一系列的入隊操作和退隊操作后,front=m一1,real"=m,則該循環(huán)隊列中的元素個數(shù)為()。

A.m一1B.1C.mD.0

67.有以下程序

main()

{inta,b,d=5;

a=d*10%8;b=a&&(-1);

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

}

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

A.10,1B.2,1

C.10,0D.2,0

68.設(shè)有下列二叉樹:

對此二叉樹中序遍歷的結(jié)果為()。

A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC

69.

70.

71.下面程序的輸出結(jié)果是()。

#include<stdio.h>

main()

{inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};

inti,j,n;

n=9;

i=n/5;

j=n-i*5-1;

printf("a[%d][%d]=%d\n",i,j,a[i][j]);

}

執(zhí)行后輸出結(jié)果是()。A.A.a[1][3]=6

B.a[1][3]=-3

C.a[1][3]=2

D.不確定

72.main(intargc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}假定以上程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入PROGABCDEFGHIJKL,則輸出結(jié)果為______。

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

73.若有定義和語句:

int*(*pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,**PP);

則輸出結(jié)果是()。A.A.20,10B.20,20C.10,20D.10,10

74.有以下程序:

當(dāng)運行時輸入:a<回車>后,以下敘述正確的是()。

A.變量c1被賦予字符a,c2被賦予回車符

B.程序?qū)⒌却脩糨斎氲?個字符

C.變量c1被賦予字符a,c2中仍是原有字符2

D.變量c1被賦予字符a,c2中將無確定值

75.

76.

77.

數(shù)字字符0的ASCII值為48,運行以下程序的輸出結(jié)果是()。

main

(chara=1,b=2;

printf("%C,",b++);printf("%d\n",b—a);}

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

78.

79.程序流程圖(PFD.中的菱形代表的是()。

A.數(shù)據(jù)流B.控制流C.加工步驟D.邏輯條件

80.

五、程序改錯題(1題)81.假如整數(shù)數(shù)列中的數(shù)不重復(fù),并存放在數(shù)組中。下列給定的程序中,函數(shù)proc()的功能是:刪除數(shù)列中值為x的元素。n中存放的是數(shù)列中元素的個數(shù)。請修改程序中的錯誤,使它能夠得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的記錄已放入主函數(shù)的結(jié)構(gòu)體數(shù)組s中。請編寫函數(shù)fun(),其功能是把指定分?jǐn)?shù)范圍內(nèi)的學(xué)生記錄存放在b所指的數(shù)組中,分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)由函數(shù)值返回。如輸入的分?jǐn)?shù)是60、69,則應(yīng)當(dāng)把分?jǐn)?shù)在60~69的學(xué)生記錄輸出,包含60分和69分的學(xué)生記錄。主函數(shù)中把60放在low中,把69放在high中。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN16typedefstruct{ charnum[10]; ints;}STREC;intfun(STREC*a,STREC*b,intl,inth)voidmain(){ STRECs[N]={{“GA005”,85},{“GA003”,76},{“GA002”,69},{“GA004”,85},{“GA001”,96},{“GA007”,72},{“GA008”,64},{“GA006”,87},{“GA015”,85},{“GA013”,94},{“GA012”,64},{“GA014”,91},{“GA011”,90},{“GA017”,64},{“GA018”,64},{“GA016”,72}}; STRECh[N]; inti,n,low,high,t; printf(“Enter2integernumberlow&high:”); scanf(“%d%d”,&low,&high); if(high<low) {t=high;high=low;low=t;} n=fun(s,h,low,high); printf(“Thestudent’sdatabetween%d--%d:\n”,low,high); for(i=0;i<=""p=""> printf(“%s%4d\n”,h[i].num,h[i].s); printf(“\n”);}

參考答案

1.D124的2進(jìn)制值為1111100,要輸出為248即124*2,則2進(jìn)制值為11111000,即右移l位,所以選D。

2.B解析:選項A和選項D中首先計算2/5,因為兩個計算分量都是整型,所以結(jié)果為2,與實際運算不符;選項B中因為乘除法滿足交換律,所以2*b放前面和放后面都是一樣的,所以滿足題目要求;選項C中的表達(dá)式等價于2abcd/5,所以不滿足題目要求。故應(yīng)該選擇B。

3.A

4.B

\n本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進(jìn)入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。

\n

5.A

6.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因為題中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.0。

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

8.D

9.D

10.DD。【解析】本框的PasswordChar屬性用來指定文本框是顯示用戶輸入的字符還是顯示占位符,指定用做占位符的字符。

11.B

12.C解析:C語言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認(rèn)將輸入的空格字符作為分割符,所以空格不會被輸入,故可排除scanf。getc的作用是從文件中輸入一個字符,故也不可取。gets函數(shù)可以輸入一整行作為一個字符串,其中也包括空格字符,故應(yīng)該選擇C。

13.A聲明data是結(jié)構(gòu)S的數(shù)組。初始化時data[0].a(chǎn)=10;data[0].b:104);data[1].a(chǎn)=20;data[1].b=200。主函數(shù)中p=data[1];即p.a(chǎn)=data[1].a(chǎn);p.b=data[11.b;執(zhí)行語句prinff(”%dkn”,++(p.A));打印輸出時p.a(chǎn)先增l再打印。即p.a(chǎn)=data[1].a(chǎn)=20,先增1等于21,因此程序運行結(jié)果是21。

14.A

15.C解析:數(shù)據(jù)庫是數(shù)據(jù)的集合,其中的數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構(gòu)造復(fù)雜的數(shù)據(jù)結(jié)構(gòu),以建立數(shù)據(jù)之間的內(nèi)在聯(lián)系與復(fù)雜的關(guān)系-故答案為C。

16.C本題考查的是聯(lián)合所占的存儲空間。sizeof(t)=sizeof(douhle)*3=8*3=24。聯(lián)合體所占的存儲空間取決于所占空間最大的成員所占的空間。

17.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。

18.B解析:考查指針作為參數(shù)的函數(shù)調(diào)用。盡管C語言以傳值方式進(jìn)行函數(shù)調(diào)用,但也可以通過傳遞指針的值(變量的地址)來達(dá)到修改實參變量值的目的,這是此題主要說明的問題。另外,應(yīng)注意表達(dá)式\ue008*(z++)\ue009的值是*z,其后的z++在程序中無實際作用。函數(shù)調(diào)用時,由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次調(diào)用函數(shù)時,*x=a=10,*y=b=40,*z=c=20輸出結(jié)果為11,41,20,至此,已經(jīng)可以肯定選項B)是正確的。在第一次輸出后,a=11,b=41,c=20,第二次輸出為:12,42,20。

19.A

20.A

21.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。

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

23.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

24.a=2b=3a=2,b=3解析:分析程序,程序從x=1語句開始執(zhí)行,之后執(zhí)行第一個switch語句,switch(x)=switch(1),所以執(zhí)行case1,case1語句中包含一個復(fù)合switch語句:這時執(zhí)行第二個switch語句,此時y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個switch語句,則整個case1的復(fù)合語句執(zhí)行完畢,由于在這個case1的后面沒有break語句使其退出第一個switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a,b各加1,得到a=2,b=3。

25.101091101091解析:for(表達(dá)式1;表達(dá)式2:表達(dá)式3)語句的功能是:首先計算表達(dá)式1的值,然后檢測表達(dá)式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達(dá)式3的值。然后再檢測表達(dá)式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán):第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

26.參照完整性參照完整性

27.77解析:在程序執(zhí)行時,static變量僅初始化一次,下次使用時將使用上次保存的值。

28.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。

\'\\t\'f是轉(zhuǎn)義字符,代表橫向跳若干格:'\\'是轉(zhuǎn)義字符,代表雙引號;\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;’僅AB,是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。

5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。

29.88解析:在一般系統(tǒng)中,一個float型數(shù)據(jù)在內(nèi)存中占4個字節(jié)(32位),一個double型數(shù)據(jù)占8個字節(jié)。

30.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

31.1616解析:首先用j和MCRA(i)替換MCRB(n,m)中的參數(shù)n和m,變成2*MCRA(j)+MCRA(i),再用j和i替換MCRA(m)中的參數(shù)m,變成2*2*j+2*i=2*2*3+2*2=16。

32.19

33.空間復(fù)雜度和時間復(fù)雜度空間復(fù)雜度和時間復(fù)雜度解析:算法的復(fù)雜性是指對—個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計算量是算法的時間復(fù)雜性。

34.fopen(fname:"w")

35.0;sum<=100;sum

36.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關(guān)系表達(dá)式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當(dāng)y=0時,*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個條件表達(dá)式的值為*(ptr+y)=2,所以z=2;當(dāng)y-1時,*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個條件表達(dá)式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時,*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個條件表達(dá)式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。

37.1np*=i或np=np*i1\r\nnp*=i或np=np*i

38.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。

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

40.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參n與C分別是兩個指向函數(shù)的指針。在f中執(zhí)行nf2(x),實際上是執(zhí)行了fo(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為2^3-2^2=4。

41.A解析:本題的功能是順序的讀兩個文本文件;依次輸出。當(dāng)打開文件時出現(xiàn)錯誤,fopen函數(shù)將返回NULL。

42.B解析:本題考核的知識點是C程序從編寫到生成可執(zhí)行文件的步驟。C語言采用編譯方式將源程序轉(zhuǎn)換為二進(jìn)制的目標(biāo)代碼,編寫好一個C程序到完成運行一般經(jīng)過以下幾個步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進(jìn)制的目標(biāo)代碼,經(jīng)編譯后的得到的二進(jìn)制代碼還不能直接執(zhí)行,因為每一個模塊往往是單獨編譯的,必須把經(jīng)過編譯的各個模塊的目標(biāo)代碼與系統(tǒng)提供的標(biāo)準(zhǔn)模塊連接后才能運行;連接,將各模塊的二進(jìn)制目標(biāo)代碼與系統(tǒng)標(biāo)準(zhǔn)模塊經(jīng)連接處理后,得到具有絕對地址的可執(zhí)行文件,它是計算機(jī)能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個經(jīng)過編譯和連接的可執(zhí)行的目標(biāo)文件。由以上定義可知,選項A、C、D均不正確。所以,4個選項中選項B符合題意。

43.D

44.B解析:所謂的線性結(jié)構(gòu):如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件,即

1)有且只有一個根結(jié)點;

2)每一個結(jié)點最多有一個前件,也最多有一個后件。同時滿足兩個條件的只有線性表,而其他三種數(shù)據(jù)結(jié)構(gòu)的結(jié)點可能存在多個前件或后件,所以不是線性結(jié)構(gòu)。

45.D解析:帶回指針值的函數(shù),其一般定義形式為:

類型標(biāo)識符*函數(shù)名(參數(shù)表);

例如;int*f(x,y);

其中,f是函數(shù)名,調(diào)用它以后能得到一個指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運算符和()運算符,而()優(yōu)先級高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個函數(shù)前面有一個*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。

46.D本題主要考查軟件的測試。軟件測試的主要目的體現(xiàn)在下面幾個方面。

(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。

(2)一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。

(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。

軟件測試的效率是指利用更少的成本創(chuàng)造更多的價值,提供軟件測試效率的方法有很多,如制定一個合理的詳細(xì)的測試計劃,了解測試項目的業(yè)務(wù)需求,集中對付那些錯誤群集的程序等。而選項A所描述的隨機(jī)選取測試數(shù)據(jù)是不能保證提高測試效率的,選項B描述的取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)顯然不能提高測試效率,反而使工作量加大,降低測試效率。

47.AB選項中運算符“%”的運算對象為整數(shù)。C選項中不能將變量賦給表達(dá)式“x+n”。D選項中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項。

48.C

49.B解析:C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在'A'和'Z'之間就可以了,選項A)和C)符合要求。函數(shù)isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65到90,所以如果一個字母的ASCII碼小于91,那么就能確定它是大寫字母。

50.C解析:本題主要考查結(jié)構(gòu)體的內(nèi)存使用:對結(jié)構(gòu)體而言,結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個成員相互獨立。題中intb占2個字節(jié),chara[15]占15個字節(jié),doublec占8個字節(jié),所以共25個字節(jié)。

51.B解析:本題自定義函數(shù)scrnp()的作用是比較字符串s1和s2的大小,如果s1<s2,函數(shù)返回s1的值,否則返回s2的值。若運行時依次輸入abcd、abba和abc三個字符串,執(zhí)打strcpy(string,scmp(str[0],str[1]));后,string的值為abba,再執(zhí)行strcpy(string,scmp(string,str[2]));,由于scmp(string,str[2])返回string的值abba,再拷貝到字符串?dāng)?shù)組string中,所以本題輸出abba。

52.C解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;聲明整型變量a,b,k,m和指針p1,p2,并分別將4和6賦給k和m,將k和m的地址賦給P1和p2;a=p1==&m;等價于a=(p1==&m);將p1是否等于地址m的值(0)賦給變量a,b=(*p1)/(*p2)+7;該句的含義是將后面表達(dá)式的的值7賦給變量b。

53.B解析:在C語言中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符,因此,“hello!”和“Hello!”是兩個不同的字符串。

54.C解析:本題考查do…while循環(huán)。①執(zhí)行printf語句,x=x-4=1,輸出1,判斷while循環(huán)的控制條件,--x=0,則(!(-x))非零,循環(huán)條件成立,執(zhí)行下一次循環(huán);②執(zhí)行printf語句,x=x-4=-4,輸出-4,判斷while循環(huán)的控制條件,--x=-5,則(!(--x))為零,循環(huán)條件不成立,結(jié)束循環(huán)。

55.B解析:指針變量中只存放地址(指針),不要將—個整型量(或任何其他非地址類型的數(shù)據(jù))賦給—個指針變量,所以B是不正確的。

56.D解析:在C語言格式字符的輸出中,“%d”是以帶符號的十進(jìn)制形式輸出整數(shù);“%60”是以8進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符o);“%x”是以16進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符Ox)。

57.A解析:當(dāng)運算符“/”的左右兩邊運算分量都是整數(shù)的時候,運算結(jié)果也是一個整數(shù),如果除不凈則舍去小數(shù)部分。若兩個運算分量有一個是實數(shù),才會返回真正除法上的實數(shù)結(jié)果。選項A中傳遞給sin()函數(shù)的參數(shù)表達(dá)式1/2計算出來的結(jié)果為整數(shù)0,所以不能正確計算出題目要求的值,而其余選項中,除號兩邊都至少有一個運算分量是實數(shù),故應(yīng)該選擇A。

58.D解析:本題考查幾個循環(huán)語句的關(guān)系。①do…while語句、while語句、for語句所實現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次。

59.D解析:程序設(shè)計語言是用于書寫計算機(jī)程序的語言,其基本成分有以下4種,數(shù)據(jù)成分:用來描述程序中的數(shù)據(jù)。運算成分:描述程序中所需的運算??刂瞥煞?用來構(gòu)造程序的邏輯控制結(jié)構(gòu)。傳輸成分:定義數(shù)據(jù)傳輸成分,如輸入/輸出語言。

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

61.C

\n在for循環(huán)語句中自變量i從0開始,每次自加2,執(zhí)行s+=*(t+i)語句,因為C語言規(guī)定數(shù)組名做表達(dá)式相當(dāng)于數(shù)組的首地址,也就是第一個元素的地址。因此,*(t+i)代表數(shù)組的第i+1個元素。所以程序運行的結(jié)果是1+3+5+7+9=25,即變量S的值等于25。

\n

62.B本題主要考查循環(huán)隊列的概念,循環(huán)隊列作為隊列的一種也應(yīng)該是線性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而循環(huán)隊列是一種順序存儲結(jié)構(gòu)的隊列。

63.D

64.D關(guān)系T中的元組是關(guān)系R中有面關(guān)系s中沒有的元組的集合,即從關(guān)系R中除去與關(guān)系s中相同元組后得到的關(guān)系T。所以做的是差運算。

65.D本題主要考查我們對C語言一些基礎(chǔ)知識的掌握情況。下面分別分析本題的四個選項。

C語言程序在編譯時的主要任務(wù)就是檢查程序的語法是否符合規(guī)定,因此選項A的描述不正確。

一個程序一般都是從主函數(shù)開始運行,之后主程序調(diào)用的其他程序段叫子程序。由于C語言的程序段都是以函數(shù)形式存在的,所以除了主程序main()函數(shù)以外,其他程序中出現(xiàn)的子程序都是函數(shù),而非過程。因此,選項B的描述不正確。

在C語言中,函數(shù)是不允許被定義在其他函數(shù)里面的,即嵌套定義的。因此,選項C的描述是錯誤的。

在C語言中,函數(shù)不能嵌套定義,但可以嵌套調(diào)用和遞歸調(diào)用。嵌套調(diào)用是指一個函數(shù)在執(zhí)行過程中,調(diào)用了另一個函數(shù),而被調(diào)函數(shù)在執(zhí)行時,還可以調(diào)用其他函數(shù)。因此,本題正確的答案選D。

66.B循環(huán)隊列長度為m,由初始狀態(tài)為front=real'=ITl可知此時循環(huán)隊列為空。入隊運算時,首先隊尾指針(rear)進(jìn)1(即rear+I),然后在lear指針指向的位置插入新元素。特別的,當(dāng)隊尾指針lear=m+1時,置l'ear=1。退隊運算時,排頭指針(front)進(jìn)1(即front+1),然后刪除front指針指向的位置上的元素,當(dāng)排頭指針front=m+1時,置front=1。從排頭指針front指向的后一個位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素,則該循環(huán)隊列中的元素個數(shù)為m一(m一1)=1。故選擇B選項。

67.B本題考查不同運算符的使用。

題目中給出的程序要求將變量a、b的值輸出,其中a=d*10%8,這里考查乘法運算符“*”和求余運算符“%”的優(yōu)先級與結(jié)合方式?!?”與“%”的優(yōu)先級相同,結(jié)合方式為從左往右,即先計算d*10,最后得到的結(jié)果為a=2。變量b=a&&(-1),“&&”運算符為邏輯與運算符,只有該運算符的左右兩邊都為真時,該邏輯運算才為真。運算符左邊a=2,右邊為(-1),都不為0,故該邏輯運算的值為1,即b=1。輸出的結(jié)果為2,1。

68.D前序遍歷:ABDECF\n中序:DBEAFC\n后序:DEBFCA

69.C

70.B

71.Bn=9,i=n/5=1;j=9-1*5-1=3,輸出為a[1][3]=-3

72.C解析:本題主函數(shù)帶有兩個參數(shù),一個int型變量argc,另一個是char型的一維一級指針數(shù)組argv。當(dāng)主函數(shù)被執(zhí)行時,系統(tǒng)自動將根據(jù)命令行的情況,分別給主函數(shù)的兩個參數(shù)賦值。Argc中存放命令行中命令字和參數(shù)的總和的個數(shù),argv用來存放命令行中命令字和所有參數(shù)的字符串的,并規(guī)定avgv[0]存放命令字字符串,argv[1]用來存放第一個參數(shù)的字符串,argv[2]用來存放第2個參數(shù)的字符串,依此類推。題中argc的值是2,執(zhí)行完--argc后為1,輸出argv[1],此數(shù)組存在第一個參數(shù)的字符串ABCDEFGHIJKL。

73.D本題考查指針變量的賦值。**PP是定義一個指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內(nèi)存空間的內(nèi)容,即b的值。

74.A本題考查的是輸入輸出函數(shù)。函數(shù)get.char的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符,且只能接受一個字符(回車符也算是一個字符)。故本題中變量cl被賦予字符a,c2被賦予回車符。

75.D

76.D

77.C

\nb++是先用表達(dá)式的值然后自增l,因此表達(dá)式值為2,b為3;b-a=3-1=2,因此最后輸出的結(jié)果為2,2,前一個為字符2,后一個為數(shù)字2。

\n

78.A

79.D程序流程圖是軟件設(shè)計過程中常用的圖形描述工具之一。構(gòu)成程序流程圖的最基本符號有:“→”或“↓”表示控制流,“口”表示加工步驟,“

”表示邏輯條件。

80.C

81.錯誤:arr[i+1]=arr[i];

正確:arr[i]=arr[i+1];

【解析】題目中要求刪除數(shù)列中值為x的元素,需要將數(shù)列中的每一個元素與指定數(shù)值x相比較。如果比較結(jié)果為第i個元素與x相等,則把第i個位置以后的元素前移一個位置,因此,“arr[i+1]=arr[i];”應(yīng)改為“arr[i]=arr[i+1]”。

82.intfun(STREC*a,STREC*b,intl,inth){ inti,j=0; for(i=0;i<=""p=""> if(a[i].s>=l&&a[i].s<=h)/*將分?jǐn)?shù)高于l,低于h的學(xué)生記錄存入結(jié)構(gòu)體數(shù)組b中*/ b[j++]=a[i]; returnj; /*返回分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)*/}本題使用循環(huán)判斷結(jié)構(gòu)實現(xiàn)題目要求。循環(huán)語句用于遍歷結(jié)構(gòu)體數(shù)組;條件語句用于判斷當(dāng)前元素是否符合條件,若符合條件則將其存入結(jié)構(gòu)體數(shù)組b中。變量j為數(shù)組b元素下標(biāo),最后變量j+1為學(xué)生人數(shù),作為函數(shù)值返回。2021年吉林省白城市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的運行結(jié)果為248,應(yīng)在下劃線處填入的是()。A.>>2B.|248C.&0248D.<<1

2.a、b、c、d變量均為float類型且已正確賦值,下列選項中與數(shù)學(xué)式子“2ab/(5cd)”等價的C語言表達(dá)式是()。

A.2/5*a/c*d/b

B.a/(5*c*d)*(2*b)

C.2*a*b/5*c*d

D.2/5*a*d*(1/c*d)

3.數(shù)組A[0...4,-1...-3,5...7]中含有的元素個數(shù)是()。A.A.55B.45C.36D.16

4.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

5.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。

A.學(xué)生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)

6.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

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

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

8.在含有n個項點有e條邊的無向圖的鄰接矩陣中,零元素的個數(shù)為________。

A.eB.2e9C.n2-eD.n2-2e

9.下列排序方法中,()方法的比較次數(shù)與記錄的初始排列狀態(tài)無關(guān)。

A.直接插入排序B.冒泡排序C.快速排序D.直接選擇排序

10.為了隱藏在文本框中輸入的信息,用占位符代替顯示用戶輸入的字符,需要設(shè)置的屬性是()。

A.ValueB.ControlSoureeC.InputMaskD.PasswordChar

11.

12.當(dāng)用戶要求輸入的字符串中含有空格時,應(yīng)使用的輸入函數(shù)是()。

A.scanfB.getcharC.getsD.getc

13.有以下程序程序運行后的輸出結(jié)果是()。

A.21B.11C.20D.10

14.下面不能正確表示a*b/(c*d)的表達(dá)式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

15.數(shù)據(jù)庫是______的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),可被各個應(yīng)用程序所共享。

A.視圖B.消息C.數(shù)據(jù)D.關(guān)系

16.下而程序的輸出結(jié)果是()。

A)32

B)26

C)24

D)4

17.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運行后,若從鍵盤輸入(從第1列開始)

123<回車>

45678<回車>

則輸出結(jié)果是

A.1267B.1256C.1278D.1245

18.以下程序的輸出結(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);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,21

D.11,41,2112,42,22

19.數(shù)據(jù)結(jié)構(gòu)通常是研究數(shù)據(jù)的及它們之間的聯(lián)系______。A.存儲和邏輯結(jié)構(gòu)B.存儲和抽象C.理想和抽象D.理想與邏輯

20.

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

#definePOWER(x)((x)*(x))

main()

{inti=1;

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

}

22.以下程序運行后的輸出結(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);

}

23.長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

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

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

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

}

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

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

}

26.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。

27.下列程序執(zhí)行后輸出的結(jié)果是【】。

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

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

29.在C語言中(以16位PC機(jī)為例),一個float型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為4;一個double型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為【】。

30.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

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

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+m

main()

{

inti=2,j=3;

printf("%d\n",MCRB(j,MCRA(i)));

}

32.若有如下程序:

main()

{intx=4,y=1;

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

sub(inti,intj)

{staticinta=0;

intb=2;

a+=i+b;

b+=j(luò)+a;}

則程序運行后的輸出結(jié)果是【】。

33.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為為算法的【】。

34.以下程序由終端鍵盤輸入一個文件名,然后把從終端鍵盤輸入的字符依次放到該文

件中,用井作為結(jié)束輸入的標(biāo)志。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if((fp=【】)==NULL)

{printf("Cannotope\n");exit(O);}

printf("Enterdata\n");

while((ch=getchar())!='#')

fputc(【】,fp);

fclose(fp);

}

35.下列程序的功能是計算1~100的整數(shù)的累加和。

main()

{inti,sum=【】;

i=1;

for(【】)

{sum+=i;

i++;

}

printf("sum=%d\n",【】);

}

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

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

37.下列程序的功能是計算數(shù)的階乘。

main()

{ihti,n;

nlongnp;

scanf("%d",&n);

np=【】;

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

【】;

printf("n=%dn!=%ld\n",n,np);

}

38.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。

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

40.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*fl)int(*12)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】

三、1.選擇題(20題)41.假定當(dāng)前盤符下有兩個如下文本文件:文件名a1.txta2.txt內(nèi)容123#321#則下面程序段執(zhí)行后的結(jié)果為#include"stdio.h"voidfc(FILE*p){charc;while((c=fgetc(p))!='#')putchar(c);}main(){FILE*fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar('\n');}

A.123321B.123C.321D.以上答案都不正確

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

A.C語言的源程序不必通過編譯就可以直接運行

B.C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令

C.C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運行

D.C語言中的函數(shù)不可以單獨進(jìn)行編譯

43.在微機(jī)中,微處理器的主要功能是()

A.算術(shù)邏輯運算B.算術(shù)運算C.存儲程序和數(shù)據(jù)D.算術(shù)邏輯運算及全機(jī)的控制

44.以下數(shù)據(jù)結(jié)構(gòu)中屬于線性數(shù)據(jù)結(jié)構(gòu)的是

A.集合B.線性表C.二叉樹D.圖

45.在說明語句:int*f();中,標(biāo)識符f代表的是

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

B.一個用于指向一維數(shù)組的行指針

C.一個用于指向函數(shù)的指針變量

D.一個返回值為指針型的函數(shù)名

46.為了提高測試的效率,應(yīng)該()。

A.隨機(jī)選取測試數(shù)據(jù)

B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)

C.在完成編碼以后制定軟件的測試計劃

D.集中對付那些錯誤群集的程序

47.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

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

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

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

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

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

49.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達(dá)式是

A.kk>=′A′&&kk<=′Z′

B.!(kk>=′A′||kk<=′Z′)

C.(kk+32)>=′a′&&(kk+32)<=′Z′

D.isalpha(kk)&&(kk<91)

50.若有下列說明和語句,已知int型數(shù)據(jù)占2個字節(jié),則下列語句的輸出結(jié)果是()。

stmctst

{chara[15];

intb;

doublec;

};

printf("%d",sizeof(structst));

A.15B.8C.25D.2

51.對于下面的程序#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti:charstring[20],sb[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[21));printf("%s\n",string);}若運行時依次輸入abcd、abba和abc三個字符串,則輸出結(jié)果為______。

A.abcdB.abbaC.abcD.abca

52.執(zhí)行以下程序后,a,b的值分別為main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

53.不能把字符串"Hello!"賦給數(shù)組b的語句是______。

A.charb[10]={'H','e','l','l','o','!'};

B.charb[10]={'h','e','l','l','o','!'};

C.charb[10];strcpy(b,"Hello!");

D.charb[10]="Hello!";

54.有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(1(--x));}程序的輸出結(jié)果是()。

A.1B.20C.1-4D.死循環(huán)

55.設(shè)p1和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則下列不能正確執(zhí)行的語句是_______。

A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);

56.下面程序的輸出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}

A.k=11,k=12,k=11

B.k=11,k=13,k=13

C.k=11,k=013,k=0xb

D.k=11,k=13,k=B

57.以下不能正確計算代數(shù)式sm2()值的C語言表達(dá)式是

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)

58.下列4個關(guān)于C語言的結(jié)論中錯誤的是()。

A.可以用do…while語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

B.可以用for語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

C.可以用while語句實現(xiàn)的循環(huán)一定可以用for語句實現(xiàn)

D.do…while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同

59.程序設(shè)計語言的基本成分是數(shù)據(jù)成分、運算成分、控制成分和()。

A.對象成分B.變量成分C.語句成分D.傳輸成分

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

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

四、選擇題(20題)61.

有下列程序:

main

{inti,s=0,t[]={1,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

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

A.循環(huán)隊列是隊列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)

B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)

C.循環(huán)隊列是非線性結(jié)構(gòu)

D.循環(huán)隊列是一種邏輯結(jié)構(gòu)

63.

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

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

A.自然連接B.并C.交D.差

65.下面敘述中,正確的是

A.C語言編譯時不檢查語法B.C語言的子程序有過程和函數(shù)兩種

C.C語言的函數(shù)可以嵌套定義D.C語言的函數(shù)可以嵌套調(diào)用

66.某循環(huán)隊列的存儲空間為Q(1:m),初始狀態(tài)為front=rear=m?,F(xiàn)經(jīng)過一系列的入隊操作和退隊操作后,front=m一1,real"=m,則該循環(huán)隊列中的元素個數(shù)為()。

A.m一1B.1C.mD.0

67.有以下程序

main()

{inta,b,d=5;

a=d*10%8;b=a&&(-1);

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

}

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

A.10,1B.2,1

C.10,0D.2,0

68.設(shè)有下列二叉樹:

對此二叉樹中序遍歷的結(jié)果為()。

A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC

69.

70.

71.下面程序的輸出結(jié)果是()。

#include<stdio.h>

main()

{inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};

inti,j,n;

n=9;

i=n/5;

j=n-i*5-1;

printf("a[%d][%d]=%d\n",i,j,a[i][j]);

}

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論