2021年江蘇省蘇州市全國計算機等級考試C語言程序設計_第1頁
2021年江蘇省蘇州市全國計算機等級考試C語言程序設計_第2頁
2021年江蘇省蘇州市全國計算機等級考試C語言程序設計_第3頁
2021年江蘇省蘇州市全國計算機等級考試C語言程序設計_第4頁
2021年江蘇省蘇州市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩105頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2021年江蘇省蘇州市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.將兩個字符串連接起來組成一個字符串時,選用()函數。A.strlen()B.strcpy()C.strcat()D.strcmp()

2.若有定義“intx,y;”,并已正確給變量賦值,則以下選項中與表達式“(x-y)?(x++):(y++)”中的條件表達式“(x-y)”等價的是()。

A.(x-y<0||x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y==0)

3.下列程序段的時間復雜度為()。A.O(n)B.O(log2n)C.O(n3)D.O(n2)

4.下面程序運行的結果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

5.

6.有以下程序:#include<stdio.h>main(){inta=-2,b=0;while(a++++b);printf("%d,%d\n",a,b);}程序運行后的輸出結果是()。A.1,3B.0,2C.0,3D.1,2

7.輸入序列為(A,B,C,D),不可能得到的輸出序列是______.

A.(A,B,C,D)B.(D,C,B,A)C.(A,C,D,B)D.(C,A,B,D)

8.

9.以下程序的輸出結果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}

A.abe+ABC=DEFdef

B.abc+abe=defdef

C.abcaABCDEFdef

D.abcabcdefdef

10.設森林F對應的二叉樹為B,它有m個結點,B的根為p,p的右子樹的結點個數為n,森林F中第一棵樹的結點的個數是()。

A.m-nB.m-n-1C.n+1D.不能確定

11.數據庫DB、數據庫系統(tǒng)DBS、數據庫管理系統(tǒng)DBMS之間的關系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關系

12.每次從無序表中挑選出一個最小或最大元素,把它交換到有序表的一端,此種排序方法叫做()排序。

A.插入B.堆C.快速D.歸并排序

13.設已包含頭文件<string.h>,下列程序段的運行結果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

14.

15.

下列程序的輸出結果是()。

#include<stdio.h>

main

{inta=0,i;

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

{switch(i)

{case0:

case3:a+=1;

case1;

case2:a+=2;

default:a+=3;

}

}

printf("%d",a);

}

A.19B.1C.6D.8

16.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序的運行結果是()。

A.55B.50C.45D.60

17.

18.相對于數據庫系統(tǒng),文件系統(tǒng)的主要缺陷有數據關聯(lián)差、數據不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

19.有以下程序#include<stdio.h>#include<string.h>main(){chara[10]=”abcd”;printf("%d,%d\n",strlen(a),sizeof(a));}程序運行后的輸出結果是()。A.7,4B.4,10C.8,8D.10,10

20.將10階對稱矩陣壓縮存儲到一維數組A中,則數組A的長度最少為()

A.100B.40C.55D.80

二、2.填空題(20題)21.表達式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數據類型為______。

22.以下程序運行后的輸出結果是【】。

main()

{

intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

23.以下程序通過函數SunFun求這里f(x)=x2+1,由F函數實現(xiàn)。請?zhí)羁铡?/p>

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{return(【】);}

24.結構化分析方法是面向______進行分析的方法。

25.有如圖所示的雙鏈表結構,請根據圖示完成結構體的定義:

structaa

{intdata;

【】}node;

26.下列程序的運行結果是______。

#include<stdio.h>

func(a,b)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=5,m=3,p;

p=fune(k,m);

printf("%d",p);

p=func(k,m);

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

}

27.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結果是______。

#definePI3.14159;printf("PI=%f",PI);

28.自盒測試方法重視【】的度量。

29.設有下列的程序段:

charstr[]="Hello";

char*ptr;

ptr=-str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

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

31.若有下列定義和語句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

則輸出結果為______。

32.以下程序的功能是將字符串s中的數字字符放入d數組中,最后輸出d中的字符串。

例如,輸入字符串:abc123edf456gh,執(zhí)行程序后輸出:123456。請?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

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

34.下面程序的運行結果是()。#include<stdio.h>#defineSIZE12main(){chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+32;sub(s,5,SIZE-1);for(i=0;i<SIZE;i++)printf("%c",s[i]);printf("\n");}sub(char*a,intt1,intt2){charch;while(t1<t2){ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}

35.下面程序執(zhí)行后輸出的結果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

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

}

36.數據獨立性分為邏輯獨立性與物理獨立性。當數據的存儲結構改變時,其邏輯結構可以不變,所以,基于邏輯結構的應用程序不必修改,稱為【】。

37.下列循環(huán)的循環(huán)次數是______。

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

38.下列程序的功能是:求出ss所指字符串中指定字符的個數,并返回此值。例如,若輸入字符串123412132,輸入字符1,則輸出3,請?zhí)羁铡?include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charC){inti=0;for(;();ss++)if(*ss==C)i++;returni;}main(){chara[M],ch;printf("\nPleaseenterastring:");gets(A);printf("\nPleaseenterachar:");ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));}

39.衡量軟件的模塊獨立性使用耦合性和內聚性兩個定性的度量標準,其中()是度量一個模塊功能強度的一個相對指標。

40.下列程序的輸出結果是______。

#defineP(A)printf("%d,",(int)(A))

#definePRINT(A)P(A);printf("theend")

main()

{inti,a=0;

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

PRINT(a+i);

printf("\n");

}

三、1.選擇題(20題)41.以下程序段的輸出結果為()。staticchara[]="programme";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);

A.programmeB.pormC.有語法錯誤D.prog

42.在C語言中,形參的默認存儲類型是______。

A.autoB.registerC.staticD.extern

43.設有定義:intk=1,m=2;floatf=7;則下列選項中錯誤的表達式是()。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

44.算法的時間復雜度是指______。

A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數D.算法程序中的指令條數

45.以下正確的說法是()。

A.定義函數時,形參的類型說明可以放在函數體內

B.return后邊的值不能為表達式

C.如果函數值的類型與返回值類型不一致,以函數值類型為準

D.如果彩參與實參類型不一致,以實參類型為準

46.有三個關系R、s和T如下:

由關系R和s通過運算得到關系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

47.若有定義:inta[3][4],()不能表示數組元素a[1][1]。

A.*(a[1]+1)B.*(&a[1][1])C.(*(a+1))[1]D.*(a+5)

48.以下程序的輸出結果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d\n",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}

A.11B.12C.13D.15

49.若要說明一個類型名STP,使得定義語句STPs;等價于char*s;,以下選項中正確的是A.typedefSTPchar*s;

B.typedef*charSTP;

C.typedefSTP*char;

D.typedefchar*STP;

50.下列選項中不符合良好程序設計風格的是A.源程序要文檔化B.數據說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設計要保證高耦合、高內聚

51.以下4個選項中,不能看作一條語句的是

A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;

52.有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-1)printf("%d,%d\n",a,b);}程序運行后的輸出結果是______。

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

53.模塊獨立性是軟件模塊化所提出的要求,衡量模塊獨立性的度量標準則是模塊的

A.抽象和信息隱蔽B.局部化和封裝化C.內聚性和耦合性D.激活機制和控制方法

54.在數據結構中,從邏輯上可以把數據結構分為()。A.動態(tài)結構和靜態(tài)結構B.緊湊結構和非緊湊結構C.線性結構和非線性結構D.內部結構和外部結構

55.一個漢字的機內碼在計算機內部需用2個字節(jié)存儲,每個字節(jié)的最高位是()

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

56.以下程序運行后,輸出結果是#definePT5.5#defineS(x)PT*x*x#include<stdio.h>main(){inta=1,b=2;printf("%4.1f\n",S(a+b));}

A.49.5B.9.5C.22D.45

57.有以下程序:#include<stdio.h>intfun(chars[]){intn=0;while(*s<='9'&&*s>='0'){n=10*n+*s-'0';s++;}return(n);}main(){chars[10]={'6','1','*','4','*','9','*','0','*'};printf("%d\n",fun(s));}程序的運行結果是()。

A.9B.61490C.61D.5

58.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數為()。

A.log2nB.n/2C.nD.n+1

59.以下關于long、int和short類型數據占用內存大小的敘述中正確的是(),

A.均占4個字節(jié)B.根據數據的大小來決定所占內存的字節(jié)數C.由用戶自己定義D.由C語言編譯系統(tǒng)決定

60.有以下程序:#include<stdio.h>structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042};c=b;}voidf2(structSTU*c){structSTUb={"SanDan",2044};*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043};f1(a);f2(&b);printf("%d%d\n",a.num,b.hum);}執(zhí)行后的輸出結果是()。

A.20412044B.20412043C.20422044D.20422043

四、選擇題(20題)61.

62.右兩個關系R和S如下:

則由關系R得到關系S的操作是()。A.自然連接B.并C.選擇D.投影

63.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+C—k值的類型為:()。

A.intB.doubleC.floatD.char

64.某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是A.10B.8C.6D.4

65.有兩個關系R和S如下:

則由關系R得到S的操作是()。

A.投影B.交C.選擇D.并

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

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

67.若有以下定義:

chara;intb;

floatc;doubled;

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

68.

有如下程序:

#include<stdio.h>

main

{FILE*fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abe");

fclose(fp1);

}

若文本文件f1.txt中原有內容為:good。則運行以上程序后文件f1.txt中的內容為()。

A.goodabcB.abcdC.abcD.abcgood

69.下列敘述中錯誤的是()。

A.列表框和組合框都有List屬性

B.列表框有Selected屬性,而組合框沒有

C.列表框和組合框都有Style屬性

D.組合框有Text屬性,而列表框沒有

70.設有定義:

71.

72.設有如下三個關系表

下列操作中正確的是()。

A.T=RnSB.T=RUSC.T=R×SD.T=R/S

73.

74.有以下程序

voidfun(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);

}

輸出結果是

A.10,20,30B.30,20,10

C.456,567,678D.678,567,456

75.有以下程序:

main

{chara='a',b;

printf("%c,",++a);

printf("%c\n",b=a++):

)

程序運行后的輸出結果是()。A.A.b,bB.b,cC.a,bD.a,c

76.有以下程序:

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

A.1,1,2,0B.0,0,0,3C.編譯有錯D.0,1,2,0

77.以下程序的輸出結果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

78.

79.(38)索引屬于()

A.模式

B.內模式

C.外模式

D.概念模式

80.以下不能輸出字符A的語句是()。(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)

五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:給定n個實數,輸出平均值,并統(tǒng)計平均值以上(含平均值)的實數個數。

例如,n=8時,輸入90.009,179.623,167.575,100.051,6.092,154.986,12.432,45.765,所得平均值為94.566635,在平均值以上的實數個數應為4。

請修改程序中的錯誤,使它能得出正確的結果。

注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。

試題程序:

六、程序設計題(1題)82.請編寫函數proc(),該函數的功能是:將兩個兩位數的正整數num1,num2合并形成一個整數放在num中。合并的方式是:將num1數的十位和個位數依次放在num數的十位和千位上,num2數的十位和個位數依次放在c數的百位和個位上。

例如,當num1=64,num2=18時,調用到該函數后,num=4168。

注意:部分源程序給出如下。

請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。

試題程序:

參考答案

1.C將兩個字符串連接起來組成一個字符串,選用strcat函數來連接。

2.A條件表達式“x=表達式1?表達式2:表達式3”的含義是:先求解表達式1,若其值不為0(真),則求解表達式2,將表達式2的值賦給x;若表達式1的值為0(假),則求解表達式3,將表達式3的值賦給X。本題中與條件表達式“(x-y)”等價的是“(x-y<0||lx-y>0)”。故本題答案為A選項。

3.A

4.C解析:表達式“x+=-z---y”等價于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。

5.D

6.D輸出的結果是:-1,1\r\n0,2\r\n1,2

7.D

8.A

9.B解析:字符數組元素作函數參數是單向的值傳遞。函數cchar的功能是將大寫字母轉換為小寫字母。主函數中while循環(huán)語句的條件是判斷指針p當前指向的字符是否為空,若不為空,則調用函數cchar,即主函數中通過循環(huán)語句將字符串'ABC+abc=defDEF'中的大寫字母全部轉換為小寫字母,因此printf的輸出結果為選項B。

10.A

11.C(10)C)解析:DB即數據庫(Database),是統(tǒng)一管理的相關數據的集合;DBMS即數據庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數據管理軟件,為用戶或應用程序提供訪問DB的方法;DBS即數據庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數據庫(數據)、數據庫管理系統(tǒng)(軟件)、數據庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。

12.B

13.A解析:頭文件<string.h>是字符串處理函數對應的頭文件,要想調用C語言的庫函數時,都要在程序中嵌入該函數對應的頭文件,否則無法使用庫函數。

strcpy(s1,s2)把s2中的字符串復制到s1中,所以結果就為s2的長度。

14.A

15.A

\n本題考查switch語句。當i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當i=4時,執(zhí)行default,a=a+3=19,結束循環(huán)。

16.D靜態(tài)變量是始終存在的,當函數變量退出后,靜態(tài)變量會保存數據,再次調用該函數時,以前的靜態(tài)變量值仍然保留著。fun(a,5)的值是15,再次調用后sum=15,所以fun(b,4)=45,s=45+15=60。故本題答案為D選項。

17.A

18.D解析:文件系統(tǒng)所管理的數據文件基本上是分散的、相互獨立的,因此相對于數據庫系統(tǒng),以此為基礎的數據處理存在3個缺點,數據冗余大、數據的不一致性、程序與數據的相互依賴(簡稱為數據依賴)。注意:文件系統(tǒng)和數據庫系統(tǒng)各自的特點,人工管理階段及數據庫系統(tǒng)三代的特點。

19.Bstrlen是求字符串的長度,結果為4,sizeof是求數組的長度,而數據在定義時已給出長度為10。

20.C

21.整型整型解析:上面的表達式中,通過強制類型轉換把最后參與運算的數據都轉換成了int型,所以最后得到的結果也是int類型。

22.33解析:條件表達式的一般形式為;表達式1?表達式2:表達式3條件運算符的執(zhí)行順序:先求解表達式1,若為非0(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值;若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。30/3=10>0,所以執(zhí)行p/10,結果為3。

23.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:題目中要求從x=0開始將f(x)的值累加起來,直到x=10。在SunFun()函數中用了一個for循環(huán),每循環(huán)一次將f(x)累加到s中,所以在本題的第一個空格處我們應該填x,然后x+1,共循環(huán)10次。F()函數的功能應該是求數學表達式f(x)的值,所以其返回值應該為x*x+1。

24.數據流數據流解析:結構化分析方法的實質是著眼于數據流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數據流圖和數據字典為主要工具,建立系統(tǒng)的邏輯模型。

25.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結構體對鏈表的定義。

26.11231123解析:在主函數中第一次調用func子函數時,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因為在于函數中將m和i定義成了static類型,所以在于函數中對m和i進行的改變在下一次調用子函數時能進行保存,所以第二次調用于函數時,m=11,i=3,則i=i+m+1=15,m=i+a+b=15+5+3=23。

27.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進行替換的。

28.測試覆蓋率測試覆蓋率解析:白盒測試又稱為結構測試。白盒測試作為對結構的測試,要求對被測程序的各種結構特性進行測試,這種情況被稱為覆蓋,故白盒測試又稱為“基于覆蓋的測試”。白盒測試方法重視測試覆蓋率的度量,力求提高覆蓋率,從而找出被測程序的錯誤。

29.'\0''\\0'解析:本題涉及字符數組和指針的兩個知識點:①在c語言中,字符型數組在存放字符串時會自動在末尾加上字符串結束標識符'\\0',所以題中數組str有6個元素。②ptr指向數組s仕的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

30.完整性控制完整性控制

31.44解析:strcpy(s1,s2)函數的作用是將字符串s2中的內容拷貝到字符串s1中的內容覆蓋。strlen()函數是求字符串的長度。本題實際上是要求s2字符串的長度,即是4。

32.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根據題意和程序可知要填空的內容是:將字符申s中的數字字符放入d數組的條件。

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

34.abcdelkjihgfabcdelkjihgf解析:本題先給字符型數組s的12個元素賦值a到1的12個字母,函數sub(shar*a,intt1,intt2)的功能是將數組a的從第t1+1個元素到t2+1個元素進行逆置,在主函數中調用sub(s,5,SIZE-1)函數,是將數組s的第6個元素到第12個元素進行逆置,其他元素位置不變。

35.22解析:本題變量m既是外部變量(值是13),又是fun函數的局部變量(值為3)。函數fun(x*y-m)的值為7*5-3=32,在main函數中,fun(a,b)/m中的m應取外部變量的值13,因此輸出2。

36.物理獨立性物理獨立性解析:邏輯獨立性是指,由于數據的局部邏輯結構與總體邏輯結構之間也由系統(tǒng)提供映像,使得當總體邏輯結構改變時,其局部邏輯結構叮以不變,從而根據局部邏輯結構編寫的應用程序也可以不必修改。物理獨立性是指,由于數據的存儲結構與邏輯結構之間山系統(tǒng)提供映像,使得當數據的存儲結構改變時,其邏輯結構可以不變,所以,基于邏輯結構的應用程序不必修改。

37.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環(huán)。

38.*ss!='\0'*ss!='\\0'解析:本題考查的是指針的應用。題目要求求出字符串ss中指定字符的個數。分析整個程序,空缺處是檢驗指針ss是否指向了字符串的末尾,如沒有,即執(zhí)行下面語句,判斷指針ss指向的字符是否字符c,若是,i自加1;所以空缺處填入*ss!='\\0',作為循環(huán)終止的條件。

39.內聚性內聚性解析:模塊的獨立程度是評價設計好壞的重要度量標準。衡量軟件的模塊獨立性使用耦合性和內聚性兩個定性的度量標準。內聚性是度量一個模塊功能強度的一個相對指標,耦合性則用來度量模塊之間的相互聯(lián)系程度。

40.1234theend1,2,3,4,theend解析:本題考查帶參數的宏的定義。第1次循環(huán),i=1時,調用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時,調用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時,調用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時,調用PRINT(4),P(4)輸出4,theend。

41.B解析:本程序首先定義了靜態(tài)字符數組a,然后將指針p指向數組a的首地址,第一次for循環(huán),p=a,p指向數組的第一個元素,*p是取指針p所指地址的內容,輸出p;第二次for循環(huán),p=p+2,則p指向數組的第三個元素,*p是取指針p所指地址的內容,輸出o;第三次for循環(huán),p=p+2,則p指向數組的第5個元素,*p是取指針p所指地址的內容,輸出r;第四次for循環(huán),p=p+2,則p指向數組的第7個元素,*p是取指針p所指地址的內容,輸出m;結束循環(huán)。

42.A解析:如果定義變量時沒有聲明變量的存儲類型,則默認為auto型。

43.C解析:在C語言中,求余運算符“%”兩邊的運算對象都應為整型數據,所以需要對變量f進行強制類型轉換,正確的寫法為k%(int)f。在C語言中,邏輯運算符與賦值運算符、算術運算符、關系運算符之間從高到低的運算優(yōu)先次序是:!(邏輯“非”)、算術運算符、關系運算符、&&(邏輯“與”)、||(邏輯“或”)、賦值運算符。根據運算符的優(yōu)先級與結合性,對于選項A),先計算k>=k的值(為真,即1),再用1對k進行賦值。對于選取項B),先計算k++的值,再對其取負數。對于選項D),先計算k>=f的值(為假,即0),再用0與出進行比較,故最終結果為0。

44.C解析:算法的時間復雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復雜度時,應該與編寫算法程序所使用的程序設計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設計語言以及程序員的水平有關,同一個算法,用不同的程序設計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據一個算法所編制出的程序之中,其指令條數往往與程序設計語言以及程序員的水平有關,不能用算法程序中的指令條數來度量算法的時間復雜度。所以,本題正確答案為C。

45.C解析:定義函數時,形參的類型說明放在形參表列內說明,或放在函數定義的第二行,函數體花括號“{”之前,所以選項A)錯;return后面的值可以是一個表達式,選項B)錯;實參與形參的類型應相同或賦值兼容,如果實參為整型而形參為實型,或者相反,則按不同類型數值的賦值規(guī)則進行轉換,以形參類型為準,選項D)錯。

46.D關系R與s經交運算后所得到的關系是由那些既在R內又在S內的共有元組組成的,記為RnS。

47.D

48.B解析:在程序中如果有帶實參的宏,則按#define命令行中指定的字符串從左到右進行置換,如果串中包含宏中的形參,則將程序語句中相應的實參代替形參。將實參帶入已經定義的宏中,可以得出答案為“12”。

49.D解析:指針類型的自定義的形式如下:typedef類型說明符*用戶類型名。不難看出只有選項D是正確的定義形式。所以,D選項為所選。

50.D解析:編程風格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護性。更直接地說,風格就是意味著要按照規(guī)則進行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當的標識符、適當的注解和程序的視覺組織等。(2)數據說明。出于閱讀理解和維護的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個說明語句的說明符后,數據名應按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運行效率,但goto語句的使用會破壞程序的結構特性。因此,除非確實需要,否則最好不使用goto語句。因此,本題的正確答案是D。

51.D解析:C語言的語句都用“;”結束。如果只有一個分號,稱為“空語句”。用一對花括號把若干語句括起來構成一個語句組,稱為“復合語句”,在語法上視為一條語句。因此選項A是一條語句。選項B是逗號表達式加分號構成的語句。選項C是一條if語句,該語句的if子句是一條空語句。選項D中“if(b==0)m=1;n=2;”是兩個表達式語句。所以,4個選項中選項D符合題意。

52.B解析:本題主要考查的是C語言中的整除、求余以及邏輯值的概念。在C語言中,/號的兩邊如果都是整數的話,返回的結果也是整數,如果除不凈則舍去小數部分。%是求余運算,它的運算對象只能是整型,運算結果是兩數相除后所得的余數,當運算量為負數時,結果的符號與被除數相同。因此,執(zhí)行語句a=d/10%9;后,a=25/10%9=2%9=2。C語言中沒有專門的邏輯值,而是用整型值來代替。當整型值作邏輯值使用時,非零即表示“真”,零表示“假”,而邏輯值當整型值使用時,“真”等于1,“假”等于0。因此,執(zhí)行語句b=a&&(-1);后b=2&&(-1)=“真”&&“真”=“真”=1。所以,4個選項中選項B符合題意。

53.C解析:模塊的獨立程序是評價設計好壞的重要度量標準。衡量軟件的模塊獨立性使用耦合性和內聚性這兩個定性的度量標準。

54.C數據結構與算法:數據結構的基本概念[評析]邏輯結構反映數據元素之間的邏輯關系,線性結構表示數據元素之間一對一的關系,非線性結構表示數據元素之間一對多或多對一的關系。線性結構和非線性結構是根據數據元素之間關系的不同特性加以分類的,即是從邏輯上加以分類的。

55.D

56.A解析:宏替換用“#define宏名宏體”的形式來定義。在進行編譯預處理時,將把程序中宏定義之后的所有宏名用宏體替換。宏雖然可以帶參數,但宏替換過程中不像函數那樣要進行參數值的計算、傳遞及結果返回等操作;宏替換只是簡單的字符替換,不進行計算。因而本題中的S(a+b)進行宏替換后為PT*1+2*1+2=5.5*1+2*1+2=9.5。注意:帶參數的宏定義。

57.C解析:題目fun()函數中while循環(huán)的意思是:判斷s所指內容是否為數字字符,如果是數字字符,則計算表達式n=10*n+*s-'0';。其中*s-'0'的作用是將相應的數字字符轉換為數值,例如字符'8'減去字符'0'后,得到的結果就是數值8了。n=10*n+的作用是將累計變量n中原來內容乘以10,然后再加上剛轉換的數字字符的數值,例如原來n的值為1,*s現(xiàn)在的內容為'2',那么執(zhí)行了n=10*n+*s-'0';語句后,n的值變?yōu)?2,如果接下來再來一個'8'字符,執(zhí)行n=10*n+*s-'O';語句后,n的值就是128了。故不難看出fun()函數的作用是“將數字字符串轉換為相應的十進制數值,碰到非數字字符時結束”。從主函數中定義的字符數組s的初始化內容可以看出,fun()函數返回值應該是61。故應該選擇C。

58.C本題考查的是順序查找。在進行順序查找過程中,如果線性表中的第一個元素就是被查找元素,則只需做一次比較就查找成功,查找效率最高;但如果被查找的元素是線性表中的最后一個元素,或者被查找的元素根本就不在線性表中,則為了查找這個元素需要與線性表中所有的元素進行比較,這是順序查找的最壞情況。所以對長度為n的線性表進行順序查找,在最壞情況下需要比較n次。故本題答案為C。

59.D解析:在C語言的標準中,short占2個字節(jié)、long占4個字節(jié),但int的大小和編譯系統(tǒng)相關。例如在Turbo\u3000C\u30002.0中,int占2個字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個字節(jié)。故本題應該選擇D。

60.A解析:f2函數傳遞的是變量的地址,可以實現(xiàn)數據的交換,而f1函數傳遞的是值,調用完f1函數后,c的值改變了,但main函數中的a值并未改變。

61.B

62.C選擇:是在數據表中給予一定的條件進行篩選數據。投影:是把表中的某幾個屬性的數據選擇出來。連接:有自然連接、外連接,內連接等,連接主要用于多表之間的數據查詢。并:與數學中的并是一樣的。兩張表進行并操作,要求它們的屬性個數相同并且需要相容。

63.B雙目運算中兩邊運算量類型轉換規(guī)律:

運算數1\t\t\t\r\n\t\t\t\t\t運算數2\t\t\t\t\r\n\t\t\t\t\t轉換結果類型\t\t\t\t\r\n\t\t\t\t\t短整型\t\t\t\t\r\n\t\t\t\t\t長整型\t\t\t\t\r\n\t\t\t\t\t短整型一>長整型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t長整型\t\t\t\t\r\n\t\t\t\t\t整型一>長整型\t\t\t\t\r\n\t\t\t\t\t字符型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t字符型一>整型\t\t\t\t\r\n\t\t\t\t\t有符號整型\t\t\t\t\r\n\t\t\t\t\t無符號整型\t\t\t\t\r\n\t\t\t\t\t有符號整型一>無符號整型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t浮點型\t\t\t\t\r\n\t\t\t\t\t整型一>浮點型\t\t\t\t\r\n\t在a/b的時候,a,b的類型不一致,根據類型轉換規(guī)則,把整型轉換成double類型,之后的加、減類似。轉化規(guī)則為char,short一>int->unsigned->long->double←float。

64.C根據二叉樹的性質,在任意二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。

65.C四個選項中選擇和投影都是對單個表進行運算,其結果都是一個關系。但只有選擇運算是選取滿足條件的元組,由題圖可知,由關系R得到關系S的操作是選擇運算。

66.Amalloc函數動態(tài)分配一個整型的內存空間,然后把函數返回的地址用(ints)強制類型轉換為整型指針,再把它賦給a,b,c,即讓指針變量a,h,’c都指向剛申請的內存空間。因此只有最后一個賦值語句*c=3的值保留在了該空間內,因為a,b,c三個指針變量均指向該空間,所以打印該空間內的數值均為3,選項A)正確。

67.D在表達式a*b+d-c中,double的類型最高,C語言中,由低類型自動向高類型轉換,所以最后的結果一定是double型。

68.C

\n當用“w”打開時,已存在一個以該文件名命名的文件,則在打開時將該文件刪除,再重新建立一個新文件,因此當輸入時原來的內容已被覆蓋,所以只有后輸入的內容,故選擇C選項。

\n

69.BB?!窘馕觥拷M合框和列表框都沒有selected屬性。

70.A選項B)、D)中if語句后都是一條復合語句,選項c)中if語句后都是一條語句。選項A)之后有3條語句,所以答案選擇A)。

71.A

72.C\n對于兩個關系的合并操作可以用笛卡爾積表示。設有n元關系R和in元關系s,它們分別有P和q個元組,則R與S的笛卡兒積記為R×S它是一個m+n元關系,元組個數是P×q由題意可得,關系T是由關系R與關系s進行笛卡爾積運算得到的。

\n

73.D

74.A本題考查函數中變量的作用范圍,在主函數中給變量x、y、z賦值,然后將其作為實參傳遞給了函數fun(),雖然在函數fun()中改變了這三個變量的值,但只是同名的局部變量,不影響函數中變量的值。所以,在調用函數fun()結束后,主函數三個變量的值未改變,即形參值的改變不能影響實參值。

75.A++a與a++的區(qū)別是前者先自加再運算,后者是先運算后自加。

76.C本題中ff(a=1)b=1;與elsed=3;之間多了語句c=2;所以會出現(xiàn)else語句的位置錯誤的編譯失敗提示。

77.C在“r=P;p=q;q=r;”三個語句是表示P與q交換,經過交換后P指向b的地址,q指向a的地址,因此最后輸出為8,7,7,8,故選擇C選項。

78.C

79.B

80.BB選項輸出的格式為%d,即為整型格式,所以輸出字符A的ASCI1碼值65,而不是字符A。由于大寫字母比與其對應的小寫字母的ASCI1碼值小32,所以A正確。字符A的ASCI1碼值就是65,所以以%C格式輸出可以輸出字符A,所以c正確。由于字符A的ASCI1碼值比字符B的小1,所以D正確。

81.錯誤:缺{

正確:加{

【解析】根據C語言語法規(guī)則,函數體中的所有語句應包含在符號{和)之間。因此.應在函數proc()的函數后面加上符號{。

82.

【解析】要算出變量num的值,首先需要得到變量num1和hum2個位和十位上的數字。然后將在千位上的數字乘以1000,百位上的數字乘以100,十位上的數字乘以10,各位上的數字乘以1,就能得到要求的hum。

2021年江蘇省蘇州市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.將兩個字符串連接起來組成一個字符串時,選用()函數。A.strlen()B.strcpy()C.strcat()D.strcmp()

2.若有定義“intx,y;”,并已正確給變量賦值,則以下選項中與表達式“(x-y)?(x++):(y++)”中的條件表達式“(x-y)”等價的是()。

A.(x-y<0||x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y==0)

3.下列程序段的時間復雜度為()。A.O(n)B.O(log2n)C.O(n3)D.O(n2)

4.下面程序運行的結果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

5.

6.有以下程序:#include<stdio.h>main(){inta=-2,b=0;while(a++++b);printf("%d,%d\n",a,b);}程序運行后的輸出結果是()。A.1,3B.0,2C.0,3D.1,2

7.輸入序列為(A,B,C,D),不可能得到的輸出序列是______.

A.(A,B,C,D)B.(D,C,B,A)C.(A,C,D,B)D.(C,A,B,D)

8.

9.以下程序的輸出結果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}

A.abe+ABC=DEFdef

B.abc+abe=defdef

C.abcaABCDEFdef

D.abcabcdefdef

10.設森林F對應的二叉樹為B,它有m個結點,B的根為p,p的右子樹的結點個數為n,森林F中第一棵樹的結點的個數是()。

A.m-nB.m-n-1C.n+1D.不能確定

11.數據庫DB、數據庫系統(tǒng)DBS、數據庫管理系統(tǒng)DBMS之間的關系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關系

12.每次從無序表中挑選出一個最小或最大元素,把它交換到有序表的一端,此種排序方法叫做()排序。

A.插入B.堆C.快速D.歸并排序

13.設已包含頭文件<string.h>,下列程序段的運行結果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

14.

15.

下列程序的輸出結果是()。

#include<stdio.h>

main

{inta=0,i;

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

{switch(i)

{case0:

case3:a+=1;

case1;

case2:a+=2;

default:a+=3;

}

}

printf("%d",a);

}

A.19B.1C.6D.8

16.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序的運行結果是()。

A.55B.50C.45D.60

17.

18.相對于數據庫系統(tǒng),文件系統(tǒng)的主要缺陷有數據關聯(lián)差、數據不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

19.有以下程序#include<stdio.h>#include<string.h>main(){chara[10]=”abcd”;printf("%d,%d\n",strlen(a),sizeof(a));}程序運行后的輸出結果是()。A.7,4B.4,10C.8,8D.10,10

20.將10階對稱矩陣壓縮存儲到一維數組A中,則數組A的長度最少為()

A.100B.40C.55D.80

二、2.填空題(20題)21.表達式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數據類型為______。

22.以下程序運行后的輸出結果是【】。

main()

{

intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

23.以下程序通過函數SunFun求這里f(x)=x2+1,由F函數實現(xiàn)。請?zhí)羁铡?/p>

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{return(【】);}

24.結構化分析方法是面向______進行分析的方法。

25.有如圖所示的雙鏈表結構,請根據圖示完成結構體的定義:

structaa

{intdata;

【】}node;

26.下列程序的運行結果是______。

#include<stdio.h>

func(a,b)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=5,m=3,p;

p=fune(k,m);

printf("%d",p);

p=func(k,m);

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

}

27.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結果是______。

#definePI3.14159;printf("PI=%f",PI);

28.自盒測試方法重視【】的度量。

29.設有下列的程序段:

charstr[]="Hello";

char*ptr;

ptr=-str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

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

31.若有下列定義和語句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

則輸出結果為______。

32.以下程序的功能是將字符串s中的數字字符放入d數組中,最后輸出d中的字符串。

例如,輸入字符串:abc123edf456gh,執(zhí)行程序后輸出:123456。請?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

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

34.下面程序的運行結果是()。#include<stdio.h>#defineSIZE12main(){chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+32;sub(s,5,SIZE-1);for(i=0;i<SIZE;i++)printf("%c",s[i]);printf("\n");}sub(char*a,intt1,intt2){charch;while(t1<t2){ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}

35.下面程序執(zhí)行后輸出的結果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

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

}

36.數據獨立性分為邏輯獨立性與物理獨立性。當數據的存儲結構改變時,其邏輯結構可以不變,所以,基于邏輯結構的應用程序不必修改,稱為【】。

37.下列循環(huán)的循環(huán)次數是______。

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

38.下列程序的功能是:求出ss所指字符串中指定字符的個數,并返回此值。例如,若輸入字符串123412132,輸入字符1,則輸出3,請?zhí)羁铡?include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charC){inti=0;for(;();ss++)if(*ss==C)i++;returni;}main(){chara[M],ch;printf("\nPleaseenterastring:");gets(A);printf("\nPleaseenterachar:");ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));}

39.衡量軟件的模塊獨立性使用耦合性和內聚性兩個定性的度量標準,其中()是度量一個模塊功能強度的一個相對指標。

40.下列程序的輸出結果是______。

#defineP(A)printf("%d,",(int)(A))

#definePRINT(A)P(A);printf("theend")

main()

{inti,a=0;

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

PRINT(a+i);

printf("\n");

}

三、1.選擇題(20題)41.以下程序段的輸出結果為()。staticchara[]="programme";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);

A.programmeB.pormC.有語法錯誤D.prog

42.在C語言中,形參的默認存儲類型是______。

A.autoB.registerC.staticD.extern

43.設有定義:intk=1,m=2;floatf=7;則下列選項中錯誤的表達式是()。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

44.算法的時間復雜度是指______。

A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數D.算法程序中的指令條數

45.以下正確的說法是()。

A.定義函數時,形參的類型說明可以放在函數體內

B.return后邊的值不能為表達式

C.如果函數值的類型與返回值類型不一致,以函數值類型為準

D.如果彩參與實參類型不一致,以實參類型為準

46.有三個關系R、s和T如下:

由關系R和s通過運算得到關系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

47.若有定義:inta[3][4],()不能表示數組元素a[1][1]。

A.*(a[1]+1)B.*(&a[1][1])C.(*(a+1))[1]D.*(a+5)

48.以下程序的輸出結果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d\n",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}

A.11B.12C.13D.15

49.若要說明一個類型名STP,使得定義語句STPs;等價于char*s;,以下選項中正確的是A.typedefSTPchar*s;

B.typedef*charSTP;

C.typedefSTP*char;

D.typedefchar*STP;

50.下列選項中不符合良好程序設計風格的是A.源程序要文檔化B.數據說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設計要保證高耦合、高內聚

51.以下4個選項中,不能看作一條語句的是

A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;

52.有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-1)printf("%d,%d\n",a,b);}程序運行后的輸出結果是______。

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

53.模塊獨立性是軟件模塊化所提出的要求,衡量模塊獨立性的度量標準則是模塊的

A.抽象和信息隱蔽B.局部化和封裝化C.內聚性和耦合性D.激活機制和控制方法

54.在數據結構中,從邏輯上可以把數據結構分為()。A.動態(tài)結構和靜態(tài)結構B.緊湊結構和非緊湊結構C.線性結構和非線性結構D.內部結構和外部結構

55.一個漢字的機內碼在計算機內部需用2個字節(jié)存儲,每個字節(jié)的最高位是()

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

56.以下程序運行后,輸出結果是#definePT5.5#defineS(x)PT*x*x#include<stdio.h>main(){inta=1,b=2;printf("%4.1f\n",S(a+b));}

A.49.5B.9.5C.22D.45

57.有以下程序:#include<stdio.h>intfun(chars[]){intn=0;while(*s<='9'&&*s>='0'){n=10*n+*s-'0';s++;}return(n);}main(){chars[10]={'6','1','*','4','*','9','*','0','*'};printf("%d\n",fun(s));}程序的運行結果是()。

A.9B.61490C.61D.5

58.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數為()。

A.log2nB.n/2C.nD.n+1

59.以下關于long、int和short類型數據占用內存大小的敘述中正確的是(),

A.均占4個字節(jié)B.根據數據的大小來決定所占內存的字節(jié)數C.由用戶自己定義D.由C語言編譯系統(tǒng)決定

60.有以下程序:#include<stdio.h>structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042};c=b;}voidf2(structSTU*c){structSTUb={"SanDan",2044};*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043};f1(a);f2(&b);printf("%d%d\n",a.num,b.hum);}執(zhí)行后的輸出結果是()。

A.20412044B.20412043C.20422044D.20422043

四、選擇題(20題)61.

62.右兩個關系R和S如下:

則由關系R得到關系S的操作是()。A.自然連接B.并C.選擇D.投影

63.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+C—k值的類型為:()。

A.intB.doubleC.floatD.char

64.某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是A.10B.8C.6D.4

65.有兩個關系R和S如下:

則由關系R得到S的操作是()。

A.投影B.交C.選擇D.并

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

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

67.若有以下定義:

chara;intb;

floatc;doubled;

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

68.

有如下程序:

#include<stdio.h>

main

{FILE*fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abe");

fclose(fp1);

}

若文本文件f1.txt中原有內容為:good。則運行以上程序后文件f1.txt中的內容為()。

A.goodabcB.abcdC.abcD.abcgood

69.下列敘述中錯誤的是()。

A.列表框和組合框都有List屬性

B.列表框有Selected屬性,而組合框沒有

C.列表框和組合框都有Style屬性

D.組合框有Text屬性,而列表框沒有

70.設有定義:

71.

72.設有如下三個關系表

下列操作中正確的是()。

A.T=RnSB.T=RUSC.T=R×SD.T=R/S

73.

74.有以下程序

voidfun(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);

}

輸出結果是

A.10,20,30B.30,20,10

C.456,567,678D.678,567,456

75.有以下程序:

main

{chara='a',b;

printf("%c,",++a);

printf("%c\n",b=a++):

)

程序運行后的輸出結果是()。A.A.b,bB.b,cC.a,bD.a,c

76.有以下程序:

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

A.1,1,2,0B.0,0,0,3C.編譯有錯D.0,1,2,0

77.以下程序的輸出結果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

78.

79.(38)索引屬于()

A.模式

B.內模式

C.外模式

D.概念模式

80.以下不能輸出字符A的語句是()。(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)

五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:給定n個實數,輸出平均值,并統(tǒng)計平均值以上(含平均值)的實數個數。

例如,n=8時,輸入90.009,179.623,167.575,100.051,6.092,154.986,12.432,45.765,所得平均值為94.566635,在平均值以上的實數個數應為4。

請修改程序中的錯誤,使它能得出正確的結果。

注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。

試題程序:

六、程序設計題(1題)82.請編寫函數proc(),該函數的功能是:將兩個兩位數的正整數num1,num2合并形成一個整數放在num中。合并的方式是:將num1數的十位和個位數依次放在num數的十位和千位上,num2數的十位和個位數依次放在c數的百位和個位上。

例如,當num1=64,num2=18時,調用到該函數后,num=4168。

注意:部分源程序給出如下。

請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。

試題程序:

參考答案

1.C將兩個字符串連接起來組成一個字符串,選用strcat函數來連接。

2.A條件表達式“x=表達式1?表達式2:表達式3”的含義是:先求解表達式1,若其值不為0(真),則求解表達式2,將表達式2的值賦給x;若表達式1的值為0(假),則求解表達式3,將表達式3的值賦給X。本題中與條件表達式“(x-y)”等價的是“(x-y<0||lx-y>0)”。故本題答案為A選項。

3.A

4.C解析:表達式“x+=-z---y”等價于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。

5.D

6.D輸出的結果是:-1,1\r\n0,2\r\n1,2

7.D

8.A

9.B解析:字符數組元素作函

溫馨提示

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

評論

0/150

提交評論