2022年江蘇省南通市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第1頁
2022年江蘇省南通市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第2頁
2022年江蘇省南通市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第3頁
2022年江蘇省南通市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第4頁
2022年江蘇省南通市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022年江蘇省南通市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

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

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

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

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

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

3.已知一算術(shù)表達(dá)式的中綴形式為A+B*C–D/E,后綴形式為ABC*+DE/–,其前綴形式為()。

A.–A+B*C/DEB.–A+B*CD/EC.–+*ABC/DED.–+A*BC/DE

4.若有定義“inta=5,b=7;”,則表達(dá)式a%-(b%2)運(yùn)算后,a的值為()。

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

5.算法分析的目的是()。

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.研究算法中的輸入和輸出的關(guān)系C.分析算法的效率以求改進(jìn)D.分析算法的易懂性和文檔性

6.以下不正確的敘述是()。

A.在C程序中,逗號運(yùn)算符的優(yōu)先級最低

B.在C程序中,APH和aph是兩個不同的變量

C.若a和b類型相同,在執(zhí)行了賦值表達(dá)式a=b后b中的值將放人a中,而b中的值不變

D.當(dāng)從鍵盤輸入數(shù)據(jù)時,對整型變量只能輸入整型數(shù)值,對實(shí)型變量只能輸入實(shí)型數(shù)值

7.單鏈表的存儲密度()順序表的存儲密度。

A.大于B.等于C.小于D.不能確定

8.定義根節(jié)點(diǎn)深度為1,有n個元素的完全二叉樹的深度是()

A.D(n)=log2(n)

B.D(n)=1+log2(n)

C.D(n)=n+log2(n)

D.D(n)=1+n*log2(n)

9.若有定義“doublea;”,則正確的輸入語句是()。A.A.seaM("%1f",&a);B.scanf("%f",&a);

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

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

10.有以下程序:#include<stdio.h>structord{intX,y;)dt[2]={1,2,3,4};main(){structord*p=dt;printf("%d,",++(p->x));printf("%d\n",++(p->y));}程序運(yùn)行后的輸出結(jié)果是()。A.1,2B.4,1C.3,4D.2,3

11.

12.

13.若i和k都是int類型變量,有以下for語句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。

A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)

14.以下敘述中錯誤的是()。

A.在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效

B.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

C.在不同的函數(shù)中可以定義相同名字的變量

D.函數(shù)的形參是局部變量

15.下列程序段輸出的字符串長度為()。printf("\\aaa\'ccc\bddd\'");

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

16.字符(char)型數(shù)據(jù)在微內(nèi)存中的存儲形式是______。

A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼

17.以下能夠正確描述“k是大于0的偶數(shù)”的表達(dá)式是()。

A.(k>0)&&(k%2!=1)

B.(k>0)&&(k%2=0)

C.(k>0)||!(k%2)

D.(k>0)||(k%2==0)

18.

19.標(biāo)準(zhǔn)庫函數(shù)fgets(str,n,fp)的功能是()。A.從fp所指的文件中讀取長度不超過n-1的字符串存入指針str所指的內(nèi)存

B.從fp所指的文件中讀取長度為n的字符串存入指針str所指的內(nèi)存

C.從fp所指的文件中讀取n個字符串存入指針str所指的內(nèi)存

D.從fp所指的文件中讀取長度為n-1的字符串存入指針str所指的內(nèi)存

20.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

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

二、2.填空題(20題)21.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。

22.表達(dá)式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

23.若有如下程序:

main()

{intx=20;

if(x>10)printf("%d",x-=5);

if(x>15)printf("%d",x);

}

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

24.有以下程序

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'()';n2=n1*10+(ch2-'()');

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

}

程序運(yùn)行時輸入:12<回車>,執(zhí)行后輸出結(jié)果是【】。

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

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

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p-&d;

d=a;

if{strcmp(a.nalne,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%ld%s\n",d.sno,p>name};

}

27.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。

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

main()

{inta[]={31,27,20,12,6,1),*p=a;

p++;

printf("%d\n",*(p+2));

}

29.以下程序的定義語句中,x[1]的初值是[9],程序運(yùn)行后輸出的內(nèi)容是[10]。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;

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

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");

}

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

#include<stdio.h>

main()

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

p=a;p++;

printf("%d",*p);

}

31.有以下程序

intsub(intn){retnrn(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運(yùn)行時輸入:1234<回車>,程序的輸出結(jié)果是______。

32.對于一棵具有n個結(jié)點(diǎn)的樹,該樹中所有結(jié)點(diǎn)的度為【】。

33.C語言用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

34.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

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

件中,用井作為結(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);

}

36.若由以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

37.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

38.在內(nèi)存中,存儲字符'x'要占用1個字節(jié),存儲字符串"x"要占用【】個字節(jié)。

39.一般來說,算法可以用順序、選擇和______三種基本控制結(jié)構(gòu)組合而成。

40.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計(jì)測試實(shí)例的方法稱為【】。

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是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{"%$\n",s);}

A.abc+ABC=DEFdef

B.abc+abc=defdef

C.abcABCDEFdef

D.abcabcdefdef

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

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點(diǎn)有且僅有一個前件和后件

D.線性表可以是空表

43.在執(zhí)行以下程序時,如果從鍵盤上輸入ABCdef<回車>,則輸出為______。#include<stdio.h>main(){charch;while((ch=getchar())!="\n"){if(ch>='A'&&ch<='B')ch=ch+32;elseif(ch>='a'&&ch<='z')ch=ch-32;printf("%c",ch);}printf("\n");}

A.ABCdefB.abcDEFC.abcD.DEF

44.下列程序的輸出結(jié)果是()。#include<stdio.h>intf(inta,intb);main(){inti=2,p,j,k;j=i;k=++i;p=f(j,k);printf("%d",p);}intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}

A.-1B.1C.2D.編譯出錯,無法運(yùn)行

45.下面能正確進(jìn)行字符串賦值操作的語句是()

A.chars[5]={"ABCDE"}

B.chars[5]={'A','B','C','D','E'};

C.char*s;s="APCDEF"

D.char*s;scanf("%s",s);

46.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。

A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件

47.以下程序的輸出結(jié)果是______。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

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

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

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

C.a,97,12k=12

D.a,97,k=12

49.下列選項(xiàng)中,不是一個算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報

50.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。

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

51.若有說明:inta[][3]={0,0};則不正確的敘述是()。

A.數(shù)組a的每個元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

52.有定義語句:“intx,y;”,若要通過“scanf("%d,%d,&x,&y);”語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是

A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>

53.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是A.函數(shù)調(diào)用可以作為獨(dú)立的語句存在

B.函數(shù)調(diào)用可以作為一個函數(shù)的實(shí)參

C.函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中

D.函數(shù)調(diào)用可以作為一個函數(shù)的形參

54.以下程序中函數(shù)f的功能是將n個字符串按由大到小的順序進(jìn)行排序。#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+l;j<n;j++)if(strcmp(p[i],p[j])<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][lO]-{"abc","aabdfg","abbd","dcdbe","cd"};inti;f(p,5);printf("%dkn",strlen(p[0]));}程序運(yùn){亍后的輸出結(jié)果是

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

55.執(zhí)行下面的程序段后,變量k中的值為()。intk=3,s[2];s[0]=k;k=s[1]*10;

A.不定值B.33C.30D.10

56.單個用戶使用的數(shù)據(jù)視圖的描述稱為______。

A.外模式B.概念模式C.內(nèi)模式D.存儲模式

57.當(dāng)執(zhí)行下列宏定義命令后,S的值為()#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*R

A.3.1415926B.18.849556C.3D.28.2743334

58.設(shè)有以下定義和語句:charstr[20]="Program",*P;p=str;則以下敘述中正確的是()。

A.*p與str[0]中的值相等

B.str與p的類型完全相同

C.str數(shù)組的長度和p所指向的字符串長度相等

D.數(shù)組str中存放的內(nèi)容和指針變量p中存放的內(nèi)容相同

59.下列描述中正確的是()。

A.在C語言程序中預(yù)處理是指完成宏替換和文件包含指定的文件的調(diào)用

B.預(yù)處理指令只能位于C源程序文件的首部

C.預(yù)處理命令可以放在程序中的任何位置

D.預(yù)處理命令結(jié)尾需要加分號

60.目前因特網(wǎng)(Internet)尚未提供的服務(wù)是()

A.電子郵件B.文件傳送C.遠(yuǎn)程使用計(jì)算機(jī)D.電視廣播

四、選擇題(20題)61.有以下程序程序運(yùn)行后的輸出結(jié)果是()。

A.1B.16C.32D.0

62.若有定義語句:doublea,*P=&a;以下敘述中錯誤的是()。

A.定義語句中的*號是-個間址運(yùn)算符

B.定義語句中的木號是-個說明符

C.定義語句中的P只能存放double類型變量的地址

D.定義語句中,P=&a把變量a的地址作為初值賦給指針變量P

63.有以下定義和語句:

structworkers

{intnum;charname[20];charC;

struct

{intday;intmonth;intyear;)S;

};

structworkersw,*pw;

pw=&w;

能給w中year成員賦1980的語句是()。

A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980

D.w.S.year=1980;

64.

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

main

{charch[3][4]={"123","456","78"),*p[3];inti;

for(i=0;i<3;i++)p[i]=ch[i];

for(i=0;i<3;i++)printf("%s",p[i]);}

A.123456780B.123456780C.12345678D.147

65.

有以下程序段

intj;floaty;charname[50]:

scanf("%2d%f%s",&i,&.y,name):

當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。

A.55566.0B.566.0C.7777.0D.566777.0

66.一棵二叉樹共有25個結(jié)點(diǎn),其中5個是葉子結(jié)點(diǎn),則度為1的結(jié)點(diǎn)數(shù)為()。

A.16B.10C.6D.4

67.

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

main

{charw[][10]={"ABCD","EFGH","IJKL","

MNOP"),K;

for(k=1;k<3;k++)printf("%s\n",w[k]);

A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL

68.

69.

程序運(yùn)行后的輸出結(jié)果是()。A.1002,ZhangDa,1202.0

B.1002,ChangRon9。1202.0

C.1001,ChangRon9,1098.0

D.1001,ZhangDa,1098.0

70.

71.

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

A.C語言程序總是從第一個的函數(shù)開始執(zhí)行

B.在C語言程序中,要調(diào)用的函數(shù)必須在main函數(shù)中定義

C.C語言程序總是從main函數(shù)開始執(zhí)行

D.C語言程序中的main函數(shù)必須放在程序的開始部分

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

A.數(shù)據(jù)庫系統(tǒng)是一個獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題

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

D.以上三種說法都不對

74.

75.

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

#include<stdio.h>

main()

{

inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

}

A.6,1B.6,0

C.2,1D.2,0

77.有以下程序

main()

{chara[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’\0’};

inti,j;

i=sizeof(a);

j=strlen(a);

printf("%d,%d\b",i,j);

}

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

A.9,9B.8,9C.1,8D.9,8

78.若變量已正確定義,在if(W)塒ntf(”%d\n”,k);中,以下不可替代w的是()。

A.a<>b+CB.ch=getcharC.a==b+CD.a++

79.假定X和Y為double型,則表達(dá)式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

80.

五、程序改錯題(1題)81.寫出下列程序的運(yùn)行結(jié)果。

main

{intn;

For(n=3;n<=10;n++)

{if(n%6==0)break;Printf(“%d”,n);}}

六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:將str所指字符串中ASCⅡ值為偶數(shù)的字符刪除,串中剩余字符形成一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為aBcdef9789,其中字符8的ASCⅡ碼值為偶數(shù)……字符8的ASCⅡ碼值為偶數(shù)……都應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是ace979。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。

2.A\n數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)在不同位置出現(xiàn)時應(yīng)保持相同的值。

\n

3.D

4.A本題考查“%”運(yùn)算符的使用。運(yùn)算符“%”是整數(shù)除法的余數(shù)。本題中表達(dá)式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。

5.C

6.D

7.C

8.B

9.D本題考查seanf函數(shù)的調(diào)用形式:scanf(格式字符串,輸入項(xiàng)地址表)。題中定義變量a為雙精度型變量,雙精度變量的格式符為“l(fā)e”;變量的地址用取地址符“&”加變量名表示,所以選項(xiàng)D正確。

10.Dp一>x的值為1,++(p->x)作用是取p->x的值加1作為表達(dá)式的值即值為2,同理++(p->y)的值為3。所以選D。

11.A

12.A

13.D此題考查的是基本的循環(huán),答案為D。

14.A在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本復(fù)合語句塊范圍內(nèi)有效,選項(xiàng)A錯誤,其他選項(xiàng)正確。本題答案為A選項(xiàng)。

15.C解析:轉(zhuǎn)義字符有1個\\\\、2個\\'、1個\\b,普通字符有3個a、3個c、3個d,共13個字符。

16.D解析:將一個字符常量放到一個字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。

17.A判斷k大于0的表達(dá)式為“k>0”,判斷k是偶數(shù)的表達(dá)式為“k%2==0”或“k%2!=1”。兩個表達(dá)式必須都成立才能確定k是大于0的偶數(shù),則對應(yīng)的表達(dá)式為“(k>0)&&(k%2==0)”或“(k>0)&&(k%2!=1)”。故本題答案為A選項(xiàng)。

18.A

19.Afgets函數(shù)的功能是從fp所指文件中讀入n-1個字符放入以str為起始地址的空間內(nèi),讀取長度不超過n-1,讀入結(jié)束后,自動在最后添加’\\0’,選項(xiàng)A正確。本題答案為A選項(xiàng)。

20.D解析:快速排序的基本思想是,通過一趟排序?qū)⑴判蛴涗浄指畛瑟?dú)立的兩部

分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對這兩部分記錄繼

續(xù)進(jìn)行排序,以達(dá)到整個序列有序;插入排序的基本操作是指將無序序列中的各元素依

次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基本思想是:掃描整

個線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對剩

下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個或兩個以上的有序表組合

成一個新的有序表。

注意:各種排序方法實(shí)現(xiàn)過程及實(shí)現(xiàn)機(jī)制。

21.黑盒軟件測試的方法有三種:動態(tài)測試、靜態(tài)測試和正確性證明。設(shè)計(jì)測試實(shí)例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設(shè)計(jì)測試實(shí)例時,測試人員將程序看成一個“黑盒”,即不關(guān)心程序內(nèi)部是如何實(shí)現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設(shè)計(jì)的測試用例完全是根據(jù)程序的功能說明來設(shè)計(jì)的。

22.整型整型解析:上面的表達(dá)式中,通過強(qiáng)制類型轉(zhuǎn)換把最后參與運(yùn)算的數(shù)據(jù)都轉(zhuǎn)換成了int型,所以最后得到的結(jié)果也是int類型。

23.1515解析:本題首先定義了一個變量x并初始化為20。然后第一個if語句判斷x是否>10,結(jié)果為真,則執(zhí)行后面的輸出語句,輸出結(jié)果是賦值表達(dá)式X-=5的值,所以輸出15,同時x的值也變成15。第二個if語句再判斷x是否>15時條件為假,結(jié)束程序。所以程序運(yùn)行后的輸出結(jié)果是15。

24.1212解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價為與其相應(yīng)的ASCII碼的整數(shù),還可以作為整數(shù)參加運(yùn)算。在本題中,n1=h1-0'=1-0=49-48=1,n2=n1*10+(ch2-'0')=1*10+(2-0)=10+2=12。

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

26.2002Shangxian2002Shangxian解析:本題考核的知識點(diǎn)是結(jié)構(gòu)體類型的定義、賦初值以及字符串的比較。本題中首先定義一個結(jié)構(gòu)體類型STU,鎮(zhèn)結(jié)構(gòu)體由一個長度為10的字符型數(shù)組、一個long型變量和一個float型變量組成。接著在主函數(shù)中用STU定義了4個結(jié)構(gòu)體變量a、b、c、d,并且給a、b、c賦初值,然后定義?一個結(jié)構(gòu)體指針p,并讓它指向變量d。然后讓將變量a的值賦給變量d,接著通過兩個if語句比較結(jié)構(gòu)體變量a、b、c的成員name大小。第一個訂語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量較大的那個賦給結(jié)構(gòu)體變量d。比較通過函數(shù)strcmp實(shí)現(xiàn)。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。程序中第一個if語句strcmp(,)>0為真,故將b的值賦給d;第二個if語句strcmp()>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此輸出d.sn0和p->name的值為2002Shangxian

27.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。

28.1212解析:本題考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3]的值12。

29.在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中;當(dāng)i=0時,p[0]=&x[1],p[0][0]=2;當(dāng)i=1時,P[1];&x[3],p[1][0]=4;當(dāng)i=2時,p[2]=及x[5],p[2][0]=6;當(dāng)i=3時,p[3]=&x[7],p[3][0]=8,所以程序輸出的結(jié)果為2、4、6、8。\r\n\r\n

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

31.1010解析:本題程序中定義了一個函數(shù)sub(),用來計(jì)算一個整數(shù)整除10的商和余數(shù)的和。在主函數(shù)中,首先用scanf()函數(shù)讀入一個十進(jìn)制整數(shù)1234,然后對1234三次嵌套調(diào)用函數(shù)svb()。首先看最里層的調(diào)用,應(yīng)該返回的值是123+4=127;然后中間一層調(diào)用應(yīng)該返回的是12+7=19;所以最外層調(diào)用返回1+9=10。故最后輸出10。

32.n-1n-1解析:設(shè)該樹中所有結(jié)點(diǎn)的度為x,因?yàn)?,在樹的結(jié)點(diǎn)中,除了根結(jié)點(diǎn)以外,其余結(jié)點(diǎn)都有一個分支進(jìn)入,所以,n=x+1,所以x=n-1。

33.順序結(jié)構(gòu)順序結(jié)構(gòu)解析:結(jié)構(gòu)化程序有3種摹本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)(包括if語句和switch語句)和循環(huán)結(jié)構(gòu)(包括for語句、while語句、do…while語句)。

34.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

35.fopen(fname:"w")

36.*(p+5)或p[5]*(p+5)或p[5]解析:本題的考查點(diǎn)是通過指針引用數(shù)組元素。98是數(shù)組w的第5個元素(最開始的為第0個),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動指針p而引用98,可以有以下兩種方法:p[5]、*(p+5)。

37.調(diào)試調(diào)試

38.22解析:計(jì)算機(jī)存儲一個字符用1個字節(jié),存儲字符串時,每個字符用占用1個字節(jié),另在字符串的有效字符之后存儲1個字符串的結(jié)束標(biāo)記符。所以存儲字符串“X”要占用2個字節(jié),存儲字符'x'只要1個字節(jié)。注意:sizeof()函數(shù)和strlen()函數(shù)的作用。

39.循環(huán)循環(huán)解析:算法一般由順序,選擇和循環(huán)三種基本控制結(jié)構(gòu)組合而成。

40.黑箱法黑箱法

41.B解析:本題考核的知識點(diǎn)是字符型指針變量與函數(shù)的綜合應(yīng)用。本題首先定義了一個函數(shù)cchar(),有一個字符型參數(shù)ch。在函數(shù)中首先判斷該字符是否為大寫字母,如果是則把它轉(zhuǎn)換成小寫字符再賦值給cb,把ch作為函數(shù)值返回。在主函數(shù)中定義了一個字符數(shù)組s并初始化,然后定義了一個指針變量并使它指向數(shù)組s。接著通過一個while循環(huán)利用指針變量p,依次取出字符數(shù)組的字符(直到遇到字符串結(jié)束標(biāo)志['\\0'為止),并調(diào)用cchar()函數(shù),把大寫字母轉(zhuǎn)換成小寫字母,其他字符不變。最后輸出字符數(shù)組為s中的內(nèi)容,結(jié)果為“abc+abc=defdeF”。所以,4個選項(xiàng)中B為所選。

42.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點(diǎn)沒有前件,最后一個結(jié)點(diǎn)沒有后件,其他結(jié)點(diǎn)有且只有一個前件和后件,所以選項(xiàng)C.是錯誤的。

43.B

44.A解析:函數(shù)調(diào)用相當(dāng)于f(2,3),程序運(yùn)算結(jié)果為-1。

45.C

46.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點(diǎn)。

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

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

49.A解析:作為一個算法,一般應(yīng)該具有下列4個特征:(1)可行性,即考慮到實(shí)際的條件能夠達(dá)到一個滿意的結(jié)果;(2)確定性,算法中的每一個步驟都必須是有明確定義的,(3)有窮性,一個算法必須在有限的時間內(nèi)做完;(4)擁有足夠的情報。

50.D解析:調(diào)用函數(shù)func(x,y),返回x+y,即7;再調(diào)用函數(shù)func(7,z),返回7+z,即15。

51.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應(yīng)注意下列兩點(diǎn):①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定;當(dāng)初值的個數(shù)能被第二維的常量表達(dá)式的值除盡時,所得商數(shù)就是第一維的大小;當(dāng)初值的個數(shù)不能被第二維的常量表達(dá)式的值除盡時,第一維的大小等于所得商數(shù)加1。

52.A解析:本題考核的知識點(diǎn)是scanf()函數(shù)的運(yùn)用。seanf()函數(shù)有兩個參數(shù),第一個參數(shù)為輸入格式字符串,第二個參數(shù)為輸入變量地址列表,在scallf()語句中非格式字符可以作為輸入時數(shù)據(jù)的間隔,輸入時必須原樣輸入,在本題中輸入格式串為%d,%d其中“,”為非格式字符,所以輸入時必須原樣輸入。所以4個選項(xiàng)中選項(xiàng)A符合題意。

53.D解析:本題考查函數(shù)的調(diào)用。在有參函數(shù)調(diào)用中,是將主調(diào)函數(shù)的實(shí)參值傳給被調(diào)函數(shù)的形參。按函數(shù)在程序中出現(xiàn)的位置來分,有以下三種函數(shù)調(diào)用形式:

①函數(shù)調(diào)用作為一條語句。例如:fun();這時不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。故選項(xiàng)A)正確。

②函數(shù)出現(xiàn)在表達(dá)式中,這種表達(dá)式稱為函數(shù)表達(dá)式。這時要求函數(shù)帶回一個確定的值以參加表達(dá)式的運(yùn)算。例如:c=5*max(a,b);函數(shù)max是表達(dá)式的一部分,將其值乘以5后賦給c。故選項(xiàng)C)正確。

③函數(shù)調(diào)用作為一個函數(shù)的實(shí)參,例如:m=max(a,max(b,c));其中max(b,c)是一次函數(shù)調(diào)用,它的值作為max另一次調(diào)用的實(shí)參。故選項(xiàng)B)正確。

函數(shù)調(diào)用不可作為一個函數(shù)的形參,因?yàn)楹瘮?shù)調(diào)用參數(shù)的數(shù)據(jù)傳遞是單向傳遞,即實(shí)參傳給形參,不能由形參傳給實(shí)參。故選項(xiàng)D)錯誤。

54.C解析:函數(shù)strcmp(字符串1,字符串2)作用是將”字符串1”和”字符串2”進(jìn)行比較,如果“字符串1”》”字符串2”,返回一個大于0的整數(shù)值;如果“字符串1”<“字符串2”,返回一個小于0的整數(shù)值;如果”字符串1”=“字符串2”,返回0。函數(shù)strcpy(字符串?dāng)?shù)組名,字符串,[整型表達(dá)式])的作用是將“字符串”的前“整型表達(dá)式”個字符有入到指定的“字符數(shù)組”中,若省略“整型表達(dá)式”,則將整個“字符串”存入,字符數(shù)組”中.函數(shù)f()的功能是利用選擇法把一個具有n行的二維數(shù)組中按行存放的n個字符串由大到小排序。在主函數(shù)中定義了一個二維字符數(shù)組p并給它按行賦初值,然后調(diào)用f()函數(shù);把它按行從大到小排列。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串。由此可知最大的字符串為“dcdbe”,排序后存放在第一行,其首地址為P[0],在輸出語句輸出的p[0]指向的字符串長度是5。所以4個選項(xiàng)中C正確。

55.A解析:定義數(shù)組時,沒有對s[1]進(jìn)行初始化,因此s[1]的值不確定,所以k=s[1]*10的值也不確定。

56.A解析:選項(xiàng)A)正確,外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式;選項(xiàng)B)不正確,全局?jǐn)?shù)據(jù)視圖的描述稱為概念模式,即數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述;選項(xiàng)C)不正確,物理存儲數(shù)據(jù)視圖的描述稱為內(nèi)模式,即數(shù)據(jù)庫在物理存儲方面的描述;選項(xiàng)D)不正確,存儲模式即為內(nèi)模式。

57.D

58.A解析:語句p=str表示指針變量p指向str數(shù)組的首地址,即&str[0],所以*p與str[0]中的值相等,選項(xiàng)A)正確。

59.C解析:本題考查預(yù)處理命令的特點(diǎn),編譯預(yù)處理命令的特點(diǎn):①為了區(qū)別一般的語句,預(yù)處理命令行都必須以“#”號開始,結(jié)尾不加分號;②預(yù)處理命令可以放在程序中的任何位置;③在程序中凡是以“#”號開始的語句行都是預(yù)處理命令行。

60.D

61.A無符號整型變量a的值為g,二進(jìn)制表示為00001000,右移3位后為00000001,即十進(jìn)制的l,因此輸出1。

62.A在變量定義doublea,*P:&a;中,}號是一個指針運(yùn)算符,而非間址運(yùn)算符,所以A錯誤。

63.D\n結(jié)構(gòu)workers中的成員s是一個嵌套的結(jié)構(gòu)類型定義,因此在給year賦值時,要用“.”運(yùn)算在深入一層訪問到最基本的成員year,只有D項(xiàng)反映出了這一點(diǎn)。

\n

64.B

\n第一個for循環(huán)的作用是讓p指向每行的首地址,第二個for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項(xiàng)。

\n

65.B

\n變量J只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入整數(shù)都會被保存到浮點(diǎn)型變量Y中。

\n

66.A【答案】:A【知識點(diǎn)】:二叉樹的性質(zhì)

【解析】:由二叉樹的性質(zhì)3可知,度為0的結(jié)點(diǎn)數(shù)(即葉子結(jié)點(diǎn)數(shù))=度為2的結(jié)點(diǎn)數(shù)+1。題目中給出葉子結(jié)點(diǎn)數(shù)為5個,利用性質(zhì)3可計(jì)算出度為2的結(jié)點(diǎn)數(shù)為4個。在二叉樹只有三種結(jié)點(diǎn):度為0的、度為1的、度為2的,總數(shù)為25個,所以度為1的結(jié)點(diǎn)數(shù)即為25-5-4=16個,所以答案為A。

67.D

\n當(dāng)k=1時,循環(huán)成立,輸出w[l]的數(shù)組即EFGH,接著執(zhí)行k++后k為2;當(dāng)k=2時,循環(huán)成立,輸出w[2]的數(shù)組即IJKL,接著執(zhí)行k++后,k為3;當(dāng)k=3時,循環(huán)不成立,退出。

\n

68.B

69.B本題考查結(jié)構(gòu)體變量的引用以及作為函數(shù)參數(shù),題目雖然看似復(fù)雜,其實(shí)比較容易,f函數(shù)的參數(shù)是結(jié)構(gòu)體變量,然后對參數(shù)重新賦值并返回,所以該題目的答案為B選項(xiàng)。

70.A

71.B

72.C

73.B解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。

數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還心須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡(luò)系統(tǒng)軟件的支持。因此,選項(xiàng)A的說法是錯誤的。

數(shù)據(jù)庫可以看成是長期存儲在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點(diǎn)。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項(xiàng)B的說法是正確的。

通常將引入數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由五個部分組成,包括相關(guān)計(jì)算機(jī)的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關(guān)軟件和人員。

因此,選項(xiàng)C的說法是錯誤的。

因此,本題的正確答案是選項(xiàng)B。

74.D

75.D

76.C第一個表達(dá)式中,運(yùn)算的方向是從左至右,所以a的值為2;第二個表達(dá)式中,等式右邊是一個邏輯表達(dá)式,由于結(jié)果為真,所以表達(dá)式的值為1,即b為1。

77.D在本題中,程序首先定義一個字符數(shù)組,并對其進(jìn)行了初始化,在初始化的最后添加了一個字符串結(jié)束標(biāo)志,表示前面的各字符可以被當(dāng)做一個字符串操作。從這個初始化的操作我們也可以看出數(shù)組的長度為9。

然后定義兩個整型變量,分別用于保存計(jì)算結(jié)果,sizeof(a)是計(jì)算數(shù)組a所占的存儲空間字節(jié)數(shù),由于數(shù)組a是大小為9的字符型數(shù)組,那么占用的存儲空間是1′9=9個字節(jié),將結(jié)果保存至變量i中。

strlen(a)是計(jì)算數(shù)組a中字符的個數(shù),雖然數(shù)組a中有9個字符,但結(jié)合上面的分析我們可以知道,其中’\\0’是字符串結(jié)束標(biāo)志符,不能作為字符串中的字符,因此返回的結(jié)果是8,并將該結(jié)果保存至變量j中。

最后,程序執(zhí)行輸出語句,分別輸出變量i和j的值,從上面的分析我們可以知道,輸出的結(jié)果是9,8,因此本題正確答案是D。

78.A選項(xiàng)A是非法的表達(dá)式,C語言中沒有<>運(yùn)算符。

79.D本題考查C語言中變量類型的轉(zhuǎn)換。

C語言中若參與運(yùn)算的變量的數(shù)據(jù)類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換數(shù)據(jù)始終往長度增加的方向進(jìn)行,以確保精確度,如int和long運(yùn)算,則將int轉(zhuǎn)換為long再運(yùn)算,所有的浮點(diǎn)運(yùn)算都是以雙精度(double)進(jìn)行的。

題目中x、y都為double型數(shù)據(jù),而表達(dá)式3/2為兩個整型變量之間的計(jì)算,計(jì)算結(jié)果只保留整數(shù)部分,小數(shù)部分省略掉。3/2的結(jié)果為1。后面變?yōu)橛?jì)算y=x+1,這時都需要變?yōu)閐ouble型數(shù)據(jù),結(jié)果為3.000000。

80.D

81.

82.

【解析】要把字符串str中ASCⅡ碼值為偶數(shù)的字符刪除,需要判斷字符串str中每一個字符的ASCⅡ值,將ASCⅡ碼值為奇數(shù)的字符放入字符串t中,ASCⅡ碼值為偶數(shù)的字符不予處理。最后為新的字符串t加上結(jié)束符。

2022年江蘇省南通市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

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

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

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

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

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

3.已知一算術(shù)表達(dá)式的中綴形式為A+B*C–D/E,后綴形式為ABC*+DE/–,其前綴形式為()。

A.–A+B*C/DEB.–A+B*CD/EC.–+*ABC/DED.–+A*BC/DE

4.若有定義“inta=5,b=7;”,則表達(dá)式a%-(b%2)運(yùn)算后,a的值為()。

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

5.算法分析的目的是()。

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.研究算法中的輸入和輸出的關(guān)系C.分析算法的效率以求改進(jìn)D.分析算法的易懂性和文檔性

6.以下不正確的敘述是()。

A.在C程序中,逗號運(yùn)算符的優(yōu)先級最低

B.在C程序中,APH和aph是兩個不同的變量

C.若a和b類型相同,在執(zhí)行了賦值表達(dá)式a=b后b中的值將放人a中,而b中的值不變

D.當(dāng)從鍵盤輸入數(shù)據(jù)時,對整型變量只能輸入整型數(shù)值,對實(shí)型變量只能輸入實(shí)型數(shù)值

7.單鏈表的存儲密度()順序表的存儲密度。

A.大于B.等于C.小于D.不能確定

8.定義根節(jié)點(diǎn)深度為1,有n個元素的完全二叉樹的深度是()

A.D(n)=log2(n)

B.D(n)=1+log2(n)

C.D(n)=n+log2(n)

D.D(n)=1+n*log2(n)

9.若有定義“doublea;”,則正確的輸入語句是()。A.A.seaM("%1f",&a);B.scanf("%f",&a);

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

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

10.有以下程序:#include<stdio.h>structord{intX,y;)dt[2]={1,2,3,4};main(){structord*p=dt;printf("%d,",++(p->x));printf("%d\n",++(p->y));}程序運(yùn)行后的輸出結(jié)果是()。A.1,2B.4,1C.3,4D.2,3

11.

12.

13.若i和k都是int類型變量,有以下for語句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。

A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)

14.以下敘述中錯誤的是()。

A.在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效

B.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

C.在不同的函數(shù)中可以定義相同名字的變量

D.函數(shù)的形參是局部變量

15.下列程序段輸出的字符串長度為()。printf("\\aaa\'ccc\bddd\'");

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

16.字符(char)型數(shù)據(jù)在微內(nèi)存中的存儲形式是______。

A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼

17.以下能夠正確描述“k是大于0的偶數(shù)”的表達(dá)式是()。

A.(k>0)&&(k%2!=1)

B.(k>0)&&(k%2=0)

C.(k>0)||!(k%2)

D.(k>0)||(k%2==0)

18.

19.標(biāo)準(zhǔn)庫函數(shù)fgets(str,n,fp)的功能是()。A.從fp所指的文件中讀取長度不超過n-1的字符串存入指針str所指的內(nèi)存

B.從fp所指的文件中讀取長度為n的字符串存入指針str所指的內(nèi)存

C.從fp所指的文件中讀取n個字符串存入指針str所指的內(nèi)存

D.從fp所指的文件中讀取長度為n-1的字符串存入指針str所指的內(nèi)存

20.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

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

二、2.填空題(20題)21.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。

22.表達(dá)式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

23.若有如下程序:

main()

{intx=20;

if(x>10)printf("%d",x-=5);

if(x>15)printf("%d",x);

}

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

24.有以下程序

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'()';n2=n1*10+(ch2-'()');

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

}

程序運(yùn)行時輸入:12<回車>,執(zhí)行后輸出結(jié)果是【】。

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

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

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p-&d;

d=a;

if{strcmp(a.nalne,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%ld%s\n",d.sno,p>name};

}

27.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。

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

main()

{inta[]={31,27,20,12,6,1),*p=a;

p++;

printf("%d\n",*(p+2));

}

29.以下程序的定義語句中,x[1]的初值是[9],程序運(yùn)行后輸出的內(nèi)容是[10]。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;

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

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");

}

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

#include<stdio.h>

main()

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

p=a;p++;

printf("%d",*p);

}

31.有以下程序

intsub(intn){retnrn(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運(yùn)行時輸入:1234<回車>,程序的輸出結(jié)果是______。

32.對于一棵具有n個結(jié)點(diǎn)的樹,該樹中所有結(jié)點(diǎn)的度為【】。

33.C語言用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

34.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

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

件中,用井作為結(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);

}

36.若由以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

37.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

38.在內(nèi)存中,存儲字符'x'要占用1個字節(jié),存儲字符串"x"要占用【】個字節(jié)。

39.一般來說,算法可以用順序、選擇和______三種基本控制結(jié)構(gòu)組合而成。

40.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計(jì)測試實(shí)例的方法稱為【】。

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是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{"%$\n",s);}

A.abc+ABC=DEFdef

B.abc+abc=defdef

C.abcABCDEFdef

D.abcabcdefdef

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

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點(diǎn)有且僅有一個前件和后件

D.線性表可以是空表

43.在執(zhí)行以下程序時,如果從鍵盤上輸入ABCdef<回車>,則輸出為______。#include<stdio.h>main(){charch;while((ch=getchar())!="\n"){if(ch>='A'&&ch<='B')ch=ch+32;elseif(ch>='a'&&ch<='z')ch=ch-32;printf("%c",ch);}printf("\n");}

A.ABCdefB.abcDEFC.abcD.DEF

44.下列程序的輸出結(jié)果是()。#include<stdio.h>intf(inta,intb);main(){inti=2,p,j,k;j=i;k=++i;p=f(j,k);printf("%d",p);}intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}

A.-1B.1C.2D.編譯出錯,無法運(yùn)行

45.下面能正確進(jìn)行字符串賦值操作的語句是()

A.chars[5]={"ABCDE"}

B.chars[5]={'A','B','C','D','E'};

C.char*s;s="APCDEF"

D.char*s;scanf("%s",s);

46.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。

A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件

47.以下程序的輸出結(jié)果是______。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

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

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

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

C.a,97,12k=12

D.a,97,k=12

49.下列選項(xiàng)中,不是一個算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報

50.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。

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

51.若有說明:inta[][3]={0,0};則不正確的敘述是()。

A.數(shù)組a的每個元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

52.有定義語句:“intx,y;”,若要通過“scanf("%d,%d,&x,&y);”語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是

A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>

53.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是A.函數(shù)調(diào)用可以作為獨(dú)立的語句存在

B.函數(shù)調(diào)用可以作為一個函數(shù)的實(shí)參

C.函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中

D.函數(shù)調(diào)用可以作為一個函數(shù)的形參

54.以下程序中函數(shù)f的功能是將n個字符串按由大到小的順序進(jìn)行排序。#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+l;j<n;j++)if(strcmp(p[i],p[j])<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][lO]-{"abc","aabdfg","abbd","dcdbe","cd"};inti;f(p,5);printf("%dkn",strlen(p[0]));}程序運(yùn){亍后的輸出結(jié)果是

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

55.執(zhí)行下面的程序段后,變量k中的值為()。intk=3,s[2];s[0]=k;k=s[1]*10;

A.不定值B.33C.30D.10

56.單個用戶使用的數(shù)據(jù)視圖的描述稱為______。

A.外模式B.概念模式C.內(nèi)模式D.存儲模式

57.當(dāng)執(zhí)行下列宏定義命令后,S的值為()#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*R

A.3.1415926B.18.849556C.3D.28.2743334

58.設(shè)有以下定義和語句:charstr[20]="Program",*P;p=str;則以下敘述中正確的是()。

A.*p與str[0]中的值相等

B.str與p的類型完全相同

C.str數(shù)組的長度和p所指向的字符串長度相等

D.數(shù)組str中存放的內(nèi)容和指針變量p中存放的內(nèi)容相同

59.下列描述中正確的是()。

A.在C語言程序中預(yù)處理是指完成宏替換和文件包含指定的文件的調(diào)用

B.預(yù)處理指令只能位于C源程序文件的首部

C.預(yù)處理命令可以放在程序中的任何位置

D.預(yù)處理命令結(jié)尾需要加分號

60.目前因特網(wǎng)(Internet)尚未提供的服務(wù)是()

A.電子郵件B.文件傳送C.遠(yuǎn)程使用計(jì)算機(jī)D.電視廣播

四、選擇題(20題)61.有以下程序程序運(yùn)行后的輸出結(jié)果是()。

A.1B.16C.32D.0

62.若有定義語句:doublea,*P=&a;以下敘述中錯誤的是()。

A.定義語句中的*號是-個間址運(yùn)算符

B.定義語句中的木號是-個說明符

C.定義語句中的P只能存放double類型變量的地址

D.定義語句中,P=&a把變量a的地址作為初值賦給指針變量P

63.有以下定義和語句:

structworkers

{intnum;charname[20];charC;

struct

{intday;intmonth;intyear;)S;

};

structworkersw,*pw;

pw=&w;

能給w中year成員賦1980的語句是()。

A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980

D.w.S.year=1980;

64.

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

main

{charch[3][4]={"123","456","78"),*p[3];inti;

for(i=0;i<3;i++)p[i]=ch[i];

for(i=0;i<3;i++)printf("%s",p[i]);}

A.123456780B.123456780C.12345678D.147

65.

有以下程序段

intj;floaty;charname[50]:

scanf("%2d%f%s",&i,&.y,name):

當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。

A.55566.0B.566.0C.7777.0D.566777.0

66.一棵二叉樹共有25個結(jié)點(diǎn),其中5個是葉子結(jié)點(diǎn),則度為1的結(jié)點(diǎn)數(shù)為()。

A.16B.10C.6D.4

67.

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

main

{charw[][10]={"ABCD","EFGH","IJKL","

MNOP"),K;

for(k=1;k<3;k++)printf("%s\n",w[k]);

A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL

68.

69.

程序運(yùn)行后的輸出結(jié)果是()。A.1002,ZhangDa,1202.0

B.1002,ChangRon9。1202.0

C.1001,ChangRon9,1098.0

D.1001,ZhangDa,1098.0

70.

71.

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

A.C語言程序總是從第一個的函數(shù)開始執(zhí)行

B.在C語言程序中,要調(diào)用的函數(shù)必須在main函數(shù)中定義

C.C語言程序總是從main函數(shù)開始執(zhí)行

D.C語言程序中的main函數(shù)必須放在程序的開始部分

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

A.數(shù)據(jù)庫系統(tǒng)是一個獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題

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

D.以上三種說法都不對

74.

75.

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

#include<stdio.h>

main()

{

inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

}

A.6,1B.6,0

C.2,1D.2,0

77.有以下程序

main()

{chara[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’\0’};

inti,j;

i=sizeof(a);

j=strlen(a);

printf("%d,%d\b",i,j);

}

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

A.9,9B.8,9C.1,8D.9,8

78.若變量已正確定義,在if(W)塒ntf(”%d\n”,k);中,以下不可替代w的是()。

A.a<>b+CB.ch=getcharC.a==b+CD.a++

79.假定X和Y為double型,則表達(dá)式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

80.

五、程序改錯題(1題)81.寫出下列程序的運(yùn)行結(jié)果。

main

{intn;

For(n=3;n<=10;n++)

{if(n%6==0)break;Printf(“%d”,n);}}

六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:將str所指字符串中ASCⅡ值為偶數(shù)的字符刪除,串中剩余字符形成一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為aBcdef9789,其中字符8的ASCⅡ碼值為偶數(shù)……字符8的ASCⅡ碼值為偶數(shù)……都應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是ace979。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。

2.A\n數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)在不同位置出現(xiàn)時應(yīng)保持相同的值。

\n

3.D

4.A本題考查“%”運(yùn)算符的使用。運(yùn)算符“%”是整數(shù)除法的余數(shù)。本題中表達(dá)式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。

5.C

6.D

7.C

8.B

9.D本題考查seanf函數(shù)的調(diào)用形式:scanf(格式字符串,輸入項(xiàng)地址表)。題中定義變量a為雙精度型變量,雙精度變量的格式符為“l(fā)e”;變量的地址用取地址符“&”加變量名表示,所以選項(xiàng)

溫馨提示

  • 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

提交評論