2022-2023年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第1頁
2022-2023年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第2頁
2022-2023年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第3頁
2022-2023年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第4頁
2022-2023年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022-2023年甘肅省蘭州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長(zhǎng)度大于5,則輸出按方式()。

A.從左起輸出該字串,右補(bǔ)空格B.按原字符長(zhǎng)從左向右全部輸出C.右對(duì)齊輸出該字串,左補(bǔ)空格D.輸出錯(cuò)誤信息

2.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環(huán)的結(jié)束條件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

3.以下選項(xiàng)中關(guān)于C語言算術(shù)表達(dá)式的敘述中錯(cuò)誤的是()。

A.可以通過使用圓括號(hào)來改變算術(shù)表達(dá)式中某些算術(shù)運(yùn)算符的計(jì)算優(yōu)先級(jí)

B.C語言采用的是人們熟悉的四則運(yùn)算規(guī)則,即先乘除后加減

C.算術(shù)表達(dá)式中,運(yùn)算符兩側(cè)類型不同時(shí),將進(jìn)行類型之間的轉(zhuǎn)換

D.C語言僅提供了“+”“-”“*”“/”這4個(gè)基本算術(shù)運(yùn)算符

4.在n個(gè)結(jié)點(diǎn)的線性表的數(shù)組實(shí)現(xiàn)中,算法的時(shí)間復(fù)雜度是O(1)的操作是()。

A.訪問第i(1<=i<=n)個(gè)結(jié)點(diǎn)和求第i個(gè)結(jié)點(diǎn)的直接前驅(qū)(1<i<=n)

B.在第i(1<=i<=n)個(gè)結(jié)點(diǎn)后插入一個(gè)新結(jié)點(diǎn)

C.刪除第i(1<=i<=n)個(gè)結(jié)點(diǎn)

D.以上都不對(duì)

5.有以下程序main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運(yùn)行后的輸出結(jié)果是______。A.2,3,3B.2,3,2C.2,3,1D.2,2,1

6.稀疏矩陣一般的壓縮存儲(chǔ)方式有兩種,即()。

A.二維數(shù)組和三維數(shù)組B.三元組和散列C.三元組和十字鏈表D.散列和十字鏈表

7.依次讀入數(shù)據(jù)元素序列{a,b,c,d,e,f,g}進(jìn)棧,元素進(jìn)棧或出棧順序是未知的,下列序列中,不可能成為??諘r(shí)彈出的元素構(gòu)成序列的有()

A.{d,e,c,f,b,g,a}

B.{f,e,g,d,a,c,b}

C.{e,f,d,g,c,b,a}

D.{c,d,b,e,f,a,g}

8.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.10C.6D.死循環(huán),不能確定次數(shù)

9.具有20個(gè)結(jié)點(diǎn)的二叉樹,其深度最多為_______。

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

10.

11.表達(dá)式“(int)((double)9/2)-9%2”的值是()。

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

12.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡(jiǎn)單的任務(wù)

13.下列關(guān)于線性鏈表的描述中正確的是()。

A.存儲(chǔ)空間不一定連續(xù),且各元素的存儲(chǔ)順序是任意的

B.存儲(chǔ)空間不一定連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

C.存儲(chǔ)空間必須連續(xù),且各前件元素一定存儲(chǔ)在后件元素的前面

D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的

14.有如下定義#defineD2intx=5;floaty=3.83;charC='D';則下面選項(xiàng)中錯(cuò)誤的是

A.x++;B.y++;C.c++;D.D++;

15.

16.設(shè)S為一個(gè)長(zhǎng)度為n的字符串,其中的字符各不相同,則S中的互異的非平凡子串(非空且不同于S本身)的個(gè)數(shù)為()。

A.2n-1B.n2C.(n2/2)+(n/2)D.(n2/2)+(n/2)-1

17.

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

A.'\t'B.'\039'C.','D.'\n'

19.下列關(guān)于棧的描述中錯(cuò)誤的是()。A.棧是先進(jìn)后出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對(duì)棧的插入與刪除操作中,不需要改變棧底指針

20.以下選項(xiàng)中,值為1的表達(dá)式是()。

A.1-‘0’B.1-‘\0’C.‘1’-0D.‘\0’-‘0’

二、2.填空題(20題)21.以下程序中給指針p分配三個(gè)double型動(dòng)態(tài)內(nèi)存單元,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{dOuble*p;

p=(double*)malloc();

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

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

23.下列程序段是從鍵盤輸入的字符中統(tǒng)計(jì)小寫字母的個(gè)數(shù),用換行符結(jié)束循環(huán)。請(qǐng)?zhí)羁铡?/p>

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

24.對(duì)于長(zhǎng)度為n的線性表,若進(jìn)行順序查找,時(shí)間復(fù)雜性為【】;若進(jìn)行二分查找,則時(shí)間復(fù)雜性為【】。

25.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)。

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

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

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

for(i=0;i<3;i++)printf("%d,",a[i]);

printf("\n");}

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

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

28.若輸入Ihaveatest.#,則以下程序的運(yùn)行結(jié)果為【】。

#include<stdio.h>

main()

{FILE*fp;

charstr[100],filename[10];

inti=0;

if((fp=fopen("test","w"))==NULL)

{printf("cannotopenthefile!\n");

exit(0);

}

getchar();

gets(str);

while(str[i]!='#')

{if(str[i]>='a'&&str[i]<='z')

str[i]=str[i]-32;

fputc(str[i],fp);

i++;

}

fclose(fp);

fp=fopen("test","r");

fgets(str,strlen(str)+1,fp);

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

fclose(fp);

}

29.軟件測(cè)試中路徑覆蓋測(cè)試是整個(gè)測(cè)試的基礎(chǔ),它是對(duì)軟件【】進(jìn)行測(cè)試。

30.若有如下程序:

voidsub()

{staticintx=6;

x/=2;printf("%d",x);}

main()

{intm;

for(m=0;m<=2;m++)sub();}

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

31.下列語句使指針p指向一個(gè)double類型的動(dòng)態(tài)存儲(chǔ)單元。

p=【】malloc(sizeof(double));

32.下面程序的功能是實(shí)現(xiàn)變量x、y內(nèi)容交換,請(qǐng)?zhí)羁铡?/p>

#defineEXCHANGE(a,b,c){a=b;b=c;c=a;}

main()

{intx=10,y=8,z;

【】

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

33.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目"的聯(lián)系屬于【】的聯(lián)系。

34.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

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

35.下列程序的運(yùn)行結(jié)果為【】。

main()

{

intx,y,z;

X=12;

y=012;

z=0l2;

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

}

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

main()

{inta=0;

a+=(a=8);

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

}

37.在一棵二叉樹上第6層的結(jié)點(diǎn)個(gè)數(shù)最多是【】。

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

main()

{inta=1,b=2;

a=a+b;b=a-b;a=a-b;

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

}

39.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。

40.在printf格式字符中,以帶符號(hào)的十進(jìn)制形式輸出整數(shù)的格式字符是【】;以八進(jìn)制無符號(hào)形式輸出整數(shù)的格式字符是【】;以十六進(jìn)制無符號(hào)形式輸出整數(shù)的格式字符是【】;以十進(jìn)制無符號(hào)形式輸出整數(shù)的格式字符是【】。

三、1.選擇題(20題)41.有以下程序#include<string.h>main(intarge,char*argv[]){inti,len=0;for(i=1;i<arge;i++)len+=strlen(argv[i]);printf(“%d\n”,len);}程序編譯連接后生成的可執(zhí)行文件是exl.exe,若運(yùn)行時(shí)輸入帶參數(shù)的命令行是:exlabcdefg10<回車>則運(yùn)行的結(jié)果是

A.22B.17C.12D.9

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

A.輸入項(xiàng)可以是一個(gè)實(shí)型常量,如scanf("%f",3.5);

B.只有格式控制,沒有輸入項(xiàng),也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf("a=%d,b=%d");

C.當(dāng)輸入一個(gè)實(shí)型數(shù)據(jù)時(shí),格式控制部分可以規(guī)定小數(shù)點(diǎn)后的位數(shù),例如:scanf("%4.2f",&f)

D.當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量地址,例如:scanf(“%f",&f);

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

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

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

44.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序輸出結(jié)果是______。

A.0B.0.25C.0.5D.1

45.以下符合C語言語法的實(shí)型常量是

A.1.2E0.5B.3.14159EC.5.00E-03D.E15

46.若有如下程序:structstudent{charname[10];floatscore[3];}stu[3]={{"lili",75,90,90},{"liudan",90,85,75};{"guoli",85,85,70}};main(){inti;floatsum=0,aver;for(i=0;i<3;i++)sum=sum+stu[i].score[1];aver=sum/i;printf("%6.2f\n",aver);}則程序運(yùn)行后的輸出結(jié)果是()

A.83.33B.85C.86D.86.67

47.設(shè)有如下程序#include<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n",**k);}上述程序的輸出結(jié)果是_______。

A.運(yùn)行錯(cuò)誤B.100C.i的地址D.j的地址

48.判斷char型變量cl是否為大寫字母的正確表達(dá)式是

A.′A′<=cl<=′Z′

B.(cl>=A)&&(cl<=Z)

C.(′A′>=cl)||(′Z′<=cl)

D.(cl>=′A′)&&(cl<=′Z′)

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

A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)必定一一對(duì)應(yīng)

B.由于計(jì)算機(jī)存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一定是線性結(jié)構(gòu)

C.程序設(shè)計(jì)語言小的數(shù)組.般是順序存儲(chǔ)結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)構(gòu)

D.以上3種說法都不對(duì)

50.以下程序的輸出結(jié)果是______。main(){charstr[12]={'s','t','r','i','n','g'};printf("%d/n",strlen(str));}

A.6B.7C.11D.12

51.若有如下程序:main(){intx=3,y=4,z;z=(x+(y-=X*X));printf("%d,%d\n",y,z);}則程序執(zhí)行后的輸出結(jié)果是()。

A.-4,2B.-5,-2C.-5,-1D.4,-2

52.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k/m)/SQR(k+m);printf("%d\n",A);}

A.16B.2C.9D.1

53.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"}*p=str;printf("%\n",strlen(p+20));}程序運(yùn)行后的輸出結(jié)果是

A.0B.5C.7D.20

54.下列選項(xiàng)中錯(cuò)誤的說明語句是

A.chara[]={'t''o','y','o','u','\0'};

B.chara[]={"toyou\0"};

C.chara[]="toyou\O";

D.chara[]='toyou\0';

55.設(shè)q1和q2是指向一個(gè)int型一維數(shù)組的指針變最,k為float型變量,下列小能正確執(zhí)行的語句是()。

A.k=*q1*(*q2);B.q1=k;C.q1=q2;D.k=*q1+*q2;

56.可在C程序中用作用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是A.and2007

B.Date_y-m-d

C.HiDr.Tom

D.caseBigl

57.有以下程序

voidf(int*q)

{inti=0;

for(;i<5;i++)(*q)++;

}

main()

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

f(a);

for(i=0;i<5;i++)printf("%d,",a[i]);

}

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

A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,

58.下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。

A.軟件測(cè)試B.概要設(shè)計(jì)C.軟件維護(hù)D.詳細(xì)設(shè)計(jì)

59.若有說明inta[][3]={1,2,3,4,5,6,7,8,9),則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無確定值

60.sizeof(char)是()。

A.一種函數(shù)調(diào)用B.一個(gè)整型表達(dá)式C.一個(gè)字符型表達(dá)式D.一個(gè)不合法的表達(dá)式

四、選擇題(20題)61.

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

A.

B.

C.

D.

63.下列描述錯(cuò)誤的是()。

A.繼承分為多重繼承和單繼承

B.對(duì)象之問的通信靠傳遞消息來實(shí)現(xiàn)

C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征

D.類是具有共同屬性、共同方法的對(duì)象的集合

64.有以下程序:

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

A.1,1,2,0B.0,0,0,3C.編譯有錯(cuò)D.0,1,2,0

65.有以下程序

structst

{intx;

int*y;

}*p;

intdt[4]={1,2,3,4};

structstaa[4]={10,&dt[0],20,&dt[1],30,&dt[2],40,&dt[3]};

main()

{p=aa;

printf("%d\n",++p->x);

printf("%d\n",(++p)->x);

printf("%d\n",++(*p->y));

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

66.下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高

67.設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時(shí),若從鍵盤輸入876543.0<回車>,a和b的值分別是()。A.A.876和543.000000B.87和6.000000

C.87和6543.000000

D.76和543.000000

68.在最壞情況下,堆排序的時(shí)間復(fù)雜度是()。

A.0(1902n)B.O(n1092n)C.o(n2)D.0(n1.5)

69.

70.

71.

72.HTTP協(xié)議的內(nèi)容協(xié)商消息頭包括()。

i.內(nèi)容協(xié)商消息頭ii.緩存控制消息頭

iii.條件控制消息頭iv.服務(wù)器狀態(tài)消息頭

A.i和iiB.i、ii和iiiC.ii和iiiD.iii和iv

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

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

A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC

74.有以下程序:

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

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

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

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

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

75.

76.面向?qū)ο蠓椒ㄖ校^承是指()。

A.一組對(duì)象所具有的相似性質(zhì)B.一個(gè)對(duì)象具有另一個(gè)對(duì)象的性質(zhì)C.各對(duì)象之間的共同性質(zhì)D.類之間共享屬性和操作的機(jī)制

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

A.m=4k=5i=5k=5

B.m=4k=4i=5k=5

C.m=4k=4i=4k=5

D.m=4k=5i=4k=5

78.(28)在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是()

A.數(shù)據(jù)庫系統(tǒng)

B.文件系統(tǒng)

C.人工管理

D.數(shù)據(jù)項(xiàng)管理

79.待排序的關(guān)鍵碼序列為15,20,9,30,67,65,45,90,要按關(guān)鍵碼值遞增的順序排序,采取簡(jiǎn)單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個(gè)位置。

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

80.讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一個(gè)文件指針,指向待讀取的文件

B.一個(gè)整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個(gè)內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址

D.一個(gè)內(nèi)存塊的字節(jié)數(shù)

五、程序改錯(cuò)題(1題)81.給定程序中,函數(shù)fun的功能是:首先把b所指字符串中的字符按逆序存放,然后將a所指字符串中的字符和b所指字符串中的字符:按排列的順序交叉合并到C所指數(shù)組中,過長(zhǎng)的剩余字符接在C所指的數(shù)組的尾部。例如,當(dāng)a.所指字符串中的內(nèi)容為“abcdef9”,b所指字符串中的內(nèi)容為“1234”時(shí),c所指數(shù)組中的內(nèi)容應(yīng)“a4b3c2dlef9”;而當(dāng)a所指字符串中的內(nèi)容為“1234”,b所指字符串的內(nèi)容為“abcdef9”時(shí),c所指數(shù)組中的內(nèi)容應(yīng)該為“l(fā)g2f3e4dcba”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),其功能是:將str所指字符串中下標(biāo)為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。例如,當(dāng)str所指字符串中的內(nèi)容為ABCDEFGHIJK(輸入完成以空格、Tab或者Enter鍵加任意非空格、Tab或者Enter鍵的一個(gè)字符作為輸入結(jié)束標(biāo)志),則在t所指數(shù)組中的內(nèi)容應(yīng)是BDFHJ。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.D解析:本題考查的知識(shí)點(diǎn)是do-while循環(huán)結(jié)構(gòu)循環(huán)執(zhí)行條件的判斷.使用do-while語句必須注意以下幾點(diǎn):

先執(zhí)行語句,后判斷表達(dá)式。所以,無論一開始表達(dá)式的值為“真”還是“假”,循環(huán)體中的語句至少執(zhí)行一次,這一點(diǎn)與while不同,

如果do-while語句循環(huán)體部分是由多個(gè)語句組成,則必須用花括號(hào)括起來,使其形成復(fù)合語句。

C語言中的do—while語句是在表達(dá)式“真”時(shí)重復(fù)執(zhí)行循環(huán)體。

在本題中,循環(huán)執(zhí)行判斷條件為while后面括號(hào)里的表達(dá)式即p!=12345&&n<3(意思為p不等于12345且n小于3)是否為“真”,由此可得循環(huán)結(jié)束的條件為:p大于12345或者p小于12345又或者n大于等于3。選項(xiàng)A的意思是:p的值不等于12345并且n的小于3和while后面括號(hào)里的表達(dá)式等價(jià)是循環(huán)執(zhí)行的條件而不是循環(huán)結(jié)束的條件,所以選項(xiàng)A不正確;選項(xiàng)B的意思是:p的值等于12345并且n的值大于3,不是循環(huán)結(jié)束的條件一個(gè)子集,所以選項(xiàng)B不正確;選項(xiàng)C的意思是:p的值不等于12345或者n的值小于3前一半是結(jié)束條件的子集,后一部分不是結(jié)束條件,所以選項(xiàng)C不正確;選項(xiàng)D描述的意思是:p的值等于12345或者你的大于等于3是結(jié)束條件的子集,所以選項(xiàng)D滿足題意。所以4個(gè)選項(xiàng)中D正確。

3.DC語言的算術(shù)運(yùn)算符是有優(yōu)先級(jí)的。圓括號(hào)可以改變算術(shù)表達(dá)式中某些算術(shù)運(yùn)算符的優(yōu)先級(jí),選項(xiàng)A正確;算術(shù)運(yùn)算符中,乘除運(yùn)算符的優(yōu)先級(jí)比加減運(yùn)算符的優(yōu)先級(jí)高,C語言采用的是四則運(yùn)算規(guī)則,選項(xiàng)B正確;算術(shù)表達(dá)式中,運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類型不同時(shí),將進(jìn)行隱式類型轉(zhuǎn)換,選項(xiàng)C正確;C語言中基本的算術(shù)運(yùn)算符除了“+”“-”“*”“/”之外,還有“%”,即求余運(yùn)算符,選項(xiàng)D錯(cuò)誤。故本題答案為D選項(xiàng)。

4.A

5.C解析:x++:表示在使用x之后,使x的值加1;y++:表示在使用y之后,使y的值加1;++y:表示在使用y之前,使\u3000y的值加1。此題中執(zhí)行z=x++,是將x的值先賦給z,所以z=1,接下來x自行加1,其結(jié)果為2:執(zhí)行y++后,y=2,執(zhí)行++后,y=3;故答案選C。

6.C

7.B

8.D解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用,當(dāng)break出現(xiàn)在switch語句體內(nèi)時(shí),其作用只是跳出該switch語句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語句體內(nèi)時(shí),則在執(zhí)行break后,跳出本層循環(huán)體.而continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)的條件判定。本程序中,變量i的初始值為0,判斷while后面括號(hào)內(nèi)表達(dá)式的值為真,執(zhí)行循環(huán)體內(nèi)的if語句,判斷if后面括號(hào)內(nèi)表達(dá)式的值為真,執(zhí)行“continue;”語句.因continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)的條件判斷,所以i的值未發(fā)生變化,循環(huán)條件仍然為真,if語句也仍然成立,因此循環(huán)將無止境地進(jìn)行下去。所以,4個(gè)選項(xiàng)中D為所選。

9.D

10.D

11.B先將int型數(shù)據(jù)9強(qiáng)制轉(zhuǎn)換成double型,然后除以2,得到的結(jié)果與double型保持一致,即4.5;然后將4.5強(qiáng)制轉(zhuǎn)換成int型數(shù)據(jù)4,再計(jì)算9%2的值為1;最后計(jì)算4-1的值為3。故本題答案為B選項(xiàng)。

12.A解析:C程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本的結(jié)構(gòu)組成,這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù)。

13.A解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中的結(jié)點(diǎn)空間是動(dòng)態(tài)生成的,它們?cè)趦?nèi)存中的地址可能是連續(xù)的,也可能是不連續(xù)的。

14.D解析:C語言中++運(yùn)算符的對(duì)象可以是整型、實(shí)型和字符型,但不可是常量,本題中D為常量。

15.D

16.D

17.B

18.B水平制表符中,'\t'表示的是橫向跳若干格;選項(xiàng)B中,'\039'錯(cuò)誤,'\039'是八進(jìn)制形式表的字符,最大數(shù)為7,但其中出現(xiàn)'9',','是字符逗號(hào);選項(xiàng)D中,'\n'表示的是換行。

19.B棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,它們的操作特點(diǎn)是先進(jìn)后出,因此具有記憶作用。??梢圆捎庙樞虼鎯?chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)。

20.B字符‘\\0’為空值,其ASCII值為0,所以B選項(xiàng)的值為1。字符‘0’的ASCII值為48,所以A、C、D選項(xiàng)的值均不為1。故本題答案為B選項(xiàng)。

21.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識(shí)點(diǎn)是malloc()函數(shù).該函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請(qǐng)n個(gè)字符的存儲(chǔ)單元,并返回該存儲(chǔ)區(qū)的首地址,實(shí)際調(diào)用的時(shí)候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址.所以在此空格處應(yīng)該填寫3*sizeof(double)或size(double)*3或其他等價(jià)的表達(dá)式。

22.參照完整性參照完整性

23.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。

24.O(n)O(log2n)

25.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識(shí)符(*旨針變量名)()。注:“類型標(biāo)識(shí)符”為函數(shù)返回值的類型。

26.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點(diǎn)。

27.考查ifelse語句,n=4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。\r\n\r\n

28.IHAVEATEST.

29.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測(cè)試是白盒測(cè)試方法中的—種,它要求對(duì)程序中的每條路徑最少檢查一次,目的是對(duì)軟件的結(jié)構(gòu)進(jìn)行測(cè)試。

30.310

31.(double*)

32.EXCHANGE(zxy)或EXCHANGE(zxy);EXCHANGE(z,x,y)或EXCHANGE(z,x,y);

33.一對(duì)多(或1∶N)一對(duì)多(或1∶N)解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,即一對(duì)一(1∶1)的聯(lián)系、一對(duì)多(1∶N)或多對(duì)一(N∶1)的聯(lián)系和多對(duì)多(N∶N)的聯(lián)系。

34.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因?yàn)閤不大于y,所以執(zhí)行printf('%d\\n',z);語句。

35.12101812,10,18解析:本題定義了3個(gè)整型變量x、y、z,并分別用十進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù)為它們賦值。然后以十進(jìn)制整型輸出這3個(gè)變量。八進(jìn)制數(shù)012的十進(jìn)制表示為10,十六進(jìn)制數(shù)0x12的十進(jìn)制表示為18。此外輸出函數(shù)格式控制中的“,”原樣輸出。

36.1616解析:在程序中首先將8賦值給變量a,然后在進(jìn)行復(fù)合賦值運(yùn)算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。

37.3232解析:根據(jù)二叉樹的性質(zhì),在二叉樹的第k層上,最多有2的k-1次方個(gè)結(jié)點(diǎn)。所以,第6層的結(jié)點(diǎn)數(shù)最多為32。

38.21

39.252H252H解析:要解答本題,首先要明白在對(duì)指針進(jìn)行加,減運(yùn)算時(shí),數(shù)字“1”不是十進(jìn)制數(shù)的“1”,而是指“1”個(gè)存儲(chǔ)單元長(zhǎng)度。1個(gè)存儲(chǔ)單元長(zhǎng)度占存儲(chǔ)空間的多少,應(yīng)該視具體情況而定,如果存儲(chǔ)單元的基類型是血型,則移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移2個(gè)字節(jié);如果存儲(chǔ)單元基類型是float型,則移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。

40.d0xu

41.D解析:main()函數(shù)可以帶參數(shù),并且參數(shù)只能有兩個(gè),第一個(gè)參數(shù)(arge)類型為整型用來記下命令行的參數(shù)個(gè)數(shù),第二個(gè)參數(shù)(argv)為一個(gè)字符型指針數(shù)組,其各個(gè)元素用來記下命令行各參數(shù)字符串的首地址。本題執(zhí)行時(shí),arge的值為4,在循環(huán)中依次求出algv[l]、argv[2]和argv[3]指向的字符串(“abcd”、“efg”和“10”)的長(zhǎng)度,并把它們加到變量len中,得到len的值9。所以最后輸出的len值為9。

42.D

43.D解析:本題主要是考查帶參數(shù)的宏定義及其相關(guān)運(yùn)算。本題中宏運(yùn)算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

44.C解析:本題考查的是if...else語句的使用。x=2.0,符合第二個(gè)IF語句的條件x<10.0,所以執(zhí)行y=1.0/x語句,即y=1.0/2.0=0.500000。

45.C解析:在C語言中,可以用指數(shù)形式將實(shí)型常量表示為數(shù)值和指數(shù)兩部分,數(shù)值部分不能為空,指數(shù)部分只能為整數(shù)表示。選項(xiàng)A中1.2和0.5都不是整數(shù),故選項(xiàng)A不正確;選項(xiàng)B中3.14159也不是整數(shù),故選項(xiàng)B不正確;選項(xiàng)D中數(shù)值部分不能為空,故選項(xiàng)D也不正確。所以,4介選項(xiàng)中選項(xiàng)C符合題意。

46.D

47.B解析:j=&i,j的值就是i的地址,*j=100,將j的地址賦給k,這時(shí)*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結(jié)果應(yīng)當(dāng)為100。

48.D解析:本題考查字母大小寫的判斷。字符型數(shù)據(jù)在計(jì)算機(jī)內(nèi)部是以ASCII碼存儲(chǔ)的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的。大寫字母A到Z是從65到90,所以只要變量c1大于A并且小于Z就能保證其為大寫字母。

49.D解析:一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)不一定一一對(duì)應(yīng),選項(xiàng)A錯(cuò)誤。計(jì)算機(jī)的存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),但一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),如線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不一定是線性結(jié)構(gòu),因此選項(xiàng)B錯(cuò)誤。數(shù)組一般是順序存儲(chǔ)結(jié)構(gòu),但利用利用數(shù)組也能處理非線性結(jié)構(gòu)。選項(xiàng)C錯(cuò)誤。由此可知,只有選項(xiàng)D的說法正確。

50.A解析:在C語言中,字符串的長(zhǎng)度是其首字符到NULL(不含)字符的總字符個(gè)數(shù)。本題定義字符數(shù)組str的同時(shí),對(duì)第7個(gè)元素,由系統(tǒng)自動(dòng)添加上“\\0”,故字符串的長(zhǎng)度為6。

51.B解析:因?yàn)閤的初始值為3,所以x*x=9,而y的初始值為4,所以y-=9后,y為-5,z=(x+(y-=x*x))=3+(-5)=-2。故程序執(zhí)行后的輸出結(jié)果是-5,-2,選項(xiàng)B正確。

52.B解析:C語言在預(yù)編譯時(shí)遇到帶實(shí)參的宏名,則按命令行中指定的字符串從左到右進(jìn)行置換。在做這題時(shí),也不妨運(yùn)用置換法。得到a/=k+m*k+m/k+m*k+m=16/7=2。注:a為整型,所以在做除法,自動(dòng)取整。

53.C解析:本題考核的知識(shí)點(diǎn)是二維數(shù)組的初始化及庫函數(shù)strlen()的應(yīng)用。主函數(shù)中定義了一個(gè)二維字符數(shù)組并初始化,初始化后的結(jié)果為str[0]='Hello',str[1]='Beijing',然后定義一個(gè)字符指針變量p并讓它指向數(shù)組的首地址,即指向str[0],而在C語言中無論是一維還是多維數(shù)組,其元素在內(nèi)存中都是順序存放的,故p+20后指針指向str[1],所以strlen(P+20);返回的是str[1]中的字符串的長(zhǎng)度,即Beijing的長(zhǎng)度為7,所以最后輸出的值為7,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

54.D解析:通過賦初值的方式給一維數(shù)組賦字符串,可以用給一般數(shù)組賦初值的相同方式給一維字符數(shù)組賦字符串,也可以在賦值時(shí)直接賦字符串常量。選項(xiàng)B)和C)后面的'\\0'是多余的,在C語言中,系統(tǒng)會(huì)自動(dòng)在字符串的結(jié)尾處加上一個(gè)字符'\\0'作為串的結(jié)束標(biāo)記。

55.B

56.A解析:在C語言中,合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下畫線3種字符組成,且第一個(gè)字符必須為字母或下畫線。C語言的標(biāo)識(shí)符可以分為關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶標(biāo)識(shí)符。選項(xiàng)B)和C)中的橫線以及點(diǎn)都不合法,選項(xiàng)D)中的case為C語言關(guān)鍵字。

57.B解析:調(diào)用函數(shù)f()時(shí),將數(shù)組a的地址傳遞給了指針q,此時(shí)q指向的就是數(shù)組a的第一個(gè)元素a[0]。在5次循環(huán)過程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為'6,2,3,4,5'。

58.C解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分為若干個(gè)階段。軟件定義時(shí)期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個(gè)階段。軟件開發(fā)時(shí)期是具體設(shè)計(jì)和實(shí)現(xiàn)在前一時(shí)期定義的軟件,它通常由下面五個(gè)階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫代碼、組裝測(cè)試和確認(rèn)測(cè)試。軟件維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當(dāng)軟件在使用過程中發(fā)現(xiàn)錯(cuò)誤時(shí)應(yīng)加以改正;當(dāng)環(huán)境改變時(shí)應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當(dāng)用戶有新要求時(shí)應(yīng)該及時(shí)改進(jìn)軟件,以滿足用戶的新要求。根據(jù)上述對(duì)軟件生命周期的介紹,可知選項(xiàng)C中的軟件維護(hù)不是軟件生命周期開發(fā)階段的任務(wù)。因此,本題的正確答案是C。

59.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小:②當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),第一維的大小等于所得商數(shù)加1。

60.B解析:sizeof(char)是一個(gè)C語言的關(guān)鍵字,它不是函數(shù)調(diào)用。sizeof的功能是計(jì)算出運(yùn)算對(duì)象在計(jì)算機(jī)的內(nèi)存中所占用的字節(jié)數(shù)量,該表達(dá)式的返回值是一個(gè)整數(shù),而不是一個(gè)字

溫馨提示

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

評(píng)論

0/150

提交評(píng)論