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

下載本文檔

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

文檔簡介

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

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

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

2.二維數(shù)組A的元素都是6個(gè)字符組成的串,行下標(biāo)i的范圍從0到8,列下標(biāo)j的范圈從1到10,則存放A至少需要()個(gè)字節(jié)。

A.90B.180C.240D.270

3.對含有16個(gè)元素的有序表進(jìn)行二分查找,關(guān)鍵字比較次數(shù)最多是()

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

4.以下選項(xiàng)中的表達(dá)式調(diào)用庫函數(shù)依次求-4.5的絕對值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調(diào)用是()

A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)

5.若定義了函數(shù)double*function(),則函數(shù)function的返回值為()。

A.實(shí)數(shù)型B.實(shí)數(shù)的地址C.指向函數(shù)的指針D.函數(shù)的地址

6.有以下程序:#include<stdio.h>voidfunc(intn){inti;for(i=0;i<=n;i++)printf("*"):printf("#");}main(){func(3);printf("????");func(4);printf("n\");程序運(yùn)行后的輸出結(jié)果()。A.****#????***#

B.***#????****#

C.**#????****#

D.****#????*****#

7.已知小寫母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結(jié)果是_______。main(){unsignedinta=32,b=66;printf("%c\n",a|B);}

A.66B.98C.bD.B

8.對于C語言的函數(shù),下列敘述中正確的是()。

A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套

B.函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套

C.函數(shù)的定義和調(diào)用都不能嵌套

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

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

A.改變函數(shù)形參的值,不會改變對應(yīng)實(shí)參的值

B.函數(shù)可以返回地址值

C.可以給指針變量賦一個(gè)整數(shù)作為地址值

D.當(dāng)在程序的開頭包含文件stdi0.h時(shí),可以給指針變量賦NULL

10.設(shè)棧S的初始狀態(tài)為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。

A.e1、e2、e3、e4、e5

B.e5、e4、e3、e2、e1

C.e2、e4、e3、e5、e1

D.e3、e4、e1、e2、e5

11.

12.設(shè)有一個(gè)10階的對稱矩陣A,采用壓縮存儲方式,以行序?yàn)橹鞔鎯Γ琣1,1為第一個(gè)元素,其存儲地址為1,每個(gè)元素占1個(gè)地址空間,則a8,5的地址為()。

A.13B.33C.18D.40

13.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系

14.在Windows環(huán)境下,單擊當(dāng)前窗口中的按鈕“”,其功能是A.將當(dāng)前應(yīng)用程序轉(zhuǎn)為后臺運(yùn)行

B.退出Windows后再關(guān)機(jī)

C.終止當(dāng)前應(yīng)用程序的運(yùn)行

D.退出Windows后重新啟動計(jì)算機(jī)

15.有以下程序:#include<stdio.h>main(){intt;scanf(“%d”,&t);if(t++<6)printf(“%d\n”,t);elseprintf(“%d\n”,t--);printf(“\n”);}執(zhí)行時(shí)輸入6并按<Enter>鍵,則輸出結(jié)果是()。A.6B.8C.7D.5

16.已知字母a的ASCII碼為十進(jìn)制數(shù)97,下面程序的輸出結(jié)果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}

A.輸出無定值B.d,eC.e,fD.g,d

17.以下敘述中,不正確的是()。

A.使用staticfloata定義的外部變量存放在內(nèi)存中的靜態(tài)存儲區(qū)

B.使用floatb定義的外部變量存放在內(nèi)存中的動態(tài)存儲區(qū)

C.使用staticfloatc定義的內(nèi)部變量存放在內(nèi)存中的靜態(tài)存儲區(qū)

D.使用floatd定義的內(nèi)部變量存放在內(nèi)存中的動態(tài)存儲區(qū)

18.以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A.x%2==1B.x/2C.x%2!=0D.x%2==0

19.對于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應(yīng)為()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF

20.有以下程序:#include<stdio.h>main(){inti,j=0;chara[]=“ab123c4d56ef7gh89”;for(i=0;a[i];i++)if(a[i]>=‘0’&&a[i]<=‘9’)a[j++]=a[i];a[j]=‘\0’;printf(“%s”,a);}程序運(yùn)行后的輸出結(jié)果是()。

A.123456789abcdefgh

B.abcdefgh

C.123456789

D.1234567896ef7gh89

二、2.填空題(20題)21.表示“整數(shù)x的絕對值大于5”時(shí)值為“假”的C語言表達(dá)式是______。

22.若有以下程序:

main()

{chara;

a='H'-'A'+'0';

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

}

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

23.對下列二叉樹進(jìn)行中序遍歷的結(jié)果為【】。

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

#include<stdio,h>

#include<string,h>

main()

{charch[]="abc".,x[3][4]:inti:

for(i=0;i<3:i++)strcpy(x[i],ch):

for(i=0;i<3:i++)printf("%s",&x[i][i]);

printf("\n")

}

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

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

26.設(shè)有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運(yùn)行后,如果從鍵盤上輸入1298,則輸出結(jié)果為

27.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個(gè)數(shù)中,找出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;______;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

28.設(shè)x和y均為int型變量,且x=1,y=2,則表達(dá)式2.0+y/x的值為【】。

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

30.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(i);}

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

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

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%5ld\n",k);}

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

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

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

}

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

35.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。

36.數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

37.若有定義inta[4][4]={1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

38.數(shù)據(jù)流圖的類型有【】和事務(wù)型。

39.下面的程序可對指定字符串中的字符串進(jìn)行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n-->1)

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

if(str[i]<str[i+l])

{temp=【】;

str[i]=str[i+l];

【】=temp;

}

printf(【】);

}

40.在程序設(shè)計(jì)階段應(yīng)該采取______和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,繼而用某種程序設(shè)計(jì)語言寫成程序。

三、1.選擇題(20題)41.若變量都已正確說明,則以下程序段()。#include<stdio.h>main(){inta=8;intb=6;printf(a>b?"&&&a=%d":"!!!b=%d",a,B);}

A.輸出為:&&&a=8

B.輸出為:!!!b=8

C.輸出為:&&&a=8!!!b=6

D.全部錯(cuò)誤

42.下列程序的輸出結(jié)果是()。#include<stdio.h>voidp(int*x){printf("%d",++*x);}voidmain(){inty=3;p(&y);}

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

43.下面程序的功能是將從鍵盤輸入的兩個(gè)數(shù)由小到大排序輸出,當(dāng)輸入一對相等數(shù)時(shí)結(jié)束循環(huán)。請選擇填空。#include<stdio.h>main(){inta,b,t;scanf("%d%d",&a,&b);while(______)}if(a>b){t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}}

A.!a=bB.a!=bC.a==bD.a=b

44.有以下程序:main(){charstr[]="xyz",*ps=str;while(*ps)ps++;for(ps--;ps-str>=0;ps--)puts(ps);}執(zhí)行后輸出結(jié)果是()。

A.yzxyZB.zyzC.zyzD.xxyxyzxyz

45.語句“a=2;p=&a;b=*p++;”執(zhí)行后的結(jié)果是()。

A.a=3b=3B.a=2b=2C.a=2b=1D.a=2b=3

46.設(shè)有下列定義:structsk{intm;floatx;}data,*q;若要使q指向data中的m域,正確的賦值語句是()。

A.q=&data.m;

B.q=data.m;

C.q=(structsk*)&data.m;

D.q=(structsk*)data.m;

47.設(shè)有如下三個(gè)關(guān)系表:

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

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

48.下列對于軟件測試的描述中正確的是()。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運(yùn)行結(jié)果正確

C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

49.簡單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

50.已知字母A的ASCⅡ碼為十進(jìn)制數(shù)65,下面程序的輸出結(jié)果是()main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}

A.67,DB.B,CC.C,DD.不確定的值

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

main

{

doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

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

}

A.3B.3.2C.0D.3.07

52.下列程序執(zhí)行后的輸出結(jié)果是()。#include<stdio.h>voidfunc1(inti);voidfunc2(inti);charst[]="hello,friend!";voidfuncl(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;funcl(i);}}main(){inti=0;funcl(i);printf("\n");}

A.helloB.helC.hloD.hlm

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

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

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

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

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

54.下列敘述中錯(cuò)誤的是()。

A.計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程序

B.C程序經(jīng)C編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件

C.后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件

D.后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行

55.下面程序的輸出結(jié)果是______。unsignedfun(unsignednum){unsignedk-I;do{k*=num%10;num/=10;}while(num);retum(k);}main(){unsignedn=26;printf("%d\n",fun(n));}

A.0B.4C.12D.無限次循環(huán)

56.下列程序的輸出結(jié)果是

#include"stdio.h"

main()

{inti,a=0,b=0;

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

{if(i%2==0)

{a++;

continue;}

b++;}

printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

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

A.swicthB.cherC.CaseD.default

58.設(shè)有以下說明和定義:typedefunion{longi;intk[5];charc;}DATE;structdate{intcat;DATEcow;doubledog;}too;DATEmax;則下列語句的執(zhí)行結(jié)果是______。printf("%d",sizeof(structdate)+sizeof(max));

A.26B.30C.18D.8

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

A.'\t'B.'\17'C.\nD.'\xaa'

60.下列關(guān)系運(yùn)算中,能使經(jīng)運(yùn)算后得到的新關(guān)系中元組個(gè)數(shù)少于原來關(guān)系中元組個(gè)數(shù)的是()。

A.選擇B.投影C.連接D.并

四、選擇題(20題)61.第

42

下面說明不正確的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*p;p=a="china"

62.

63.

64.

65.三種基本結(jié)構(gòu)中,能簡化大量程序代碼的是()。

A.順序結(jié)構(gòu)B.分支結(jié)構(gòu)C.選擇結(jié)構(gòu)D.重復(fù)結(jié)構(gòu)

66.以下選項(xiàng)中,不能作為合法常量的是()。

A.1.234e05B.1.234e+5C.1.234e0.5D.1.234e0

67.

68.分布式數(shù)據(jù)庫系統(tǒng)不具有的特點(diǎn)是

A.?dāng)?shù)據(jù)的物理分布性和邏輯整體性B.位置透明性和復(fù)制透明性

C.事物管理的集中性D.?dāng)?shù)據(jù)冗余

69.

70.

71.設(shè)有定義:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若變量均已正確賦初值,則以下語句中錯(cuò)誤的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

72.

73.

74.對字符數(shù)組s賦值,不合法的一個(gè)是()。

A.chars[]="Beijing"

B.chars[20]={"Beijing"}

C.chars[20];s="Beijing"

D.chars[20]={’B,’e’,’i’,’j’,’i’,’n’,’g’}

75.下列選項(xiàng)中不是字符常量的是()。

A.'\v'B.'\x2a'C.'a'D."\0"

76.

77.有以下程序程序運(yùn)托舌的輸出結(jié)果是()。

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

78.下面敘述中正確的是(

)。A.全局變量的作用域一定比局部變量的作用域范圍大B.靜態(tài)類型變量的生存期貫穿于整個(gè)程序的運(yùn)行期間C.函數(shù)的形參都屬于全局變量D.未在定義語句中賦值的auto變量和static變量的初值都是隨機(jī)值

79.若變量x,y已正確定義并賦值,以下符號C語言語法的表達(dá)式是()。

A)++x,y=x--B)x+1=y

C)x=x+10=x+yD)double(x)/10

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將m(1≤m≤10)個(gè)字符串反著連接起來,組成一個(gè)新串,放入pt所指字符串中,例如,把“ab、cd、ef9”3個(gè)字符串反著串連起來,結(jié)果是efgcdab。

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

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

試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個(gè)數(shù),并返回此值。

例如,若輸入字符串123412132,輸入字符為l,則輸出3。

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

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

參考答案

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

2.A

3.C

4.C

5.B

6.D本題考查簡單的for循環(huán),func(3)由于i是從0開始,所以會輸出四個(gè)“*”和一個(gè)“#”,然后打印四個(gè)“?”func(4),會輸出五個(gè)“*”和一個(gè)“#”,所以答案選擇D。

7.C解析:位運(yùn)算符“|”的作用是按位或,即兩個(gè)二進(jìn)制數(shù)的相應(yīng)位中只要有一個(gè)為1,該位的結(jié)果值為1。最后以字符型輸出,98對應(yīng)的字符“b”

8.A

9.C指針變量的值只能是存儲單元地址,而不能是一個(gè)整數(shù),故選項(xiàng)C錯(cuò)誤。

10.D解析:棧是僅在表頭和表尾進(jìn)行插入和刪除元素操作的線性表,其特點(diǎn)是“先進(jìn)后出”。本題中,進(jìn)棧的過程中可以出棧。選項(xiàng)D中,如果第一個(gè)出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因?yàn)閑1先入棧,故e1應(yīng)在e2后出棧,所以選項(xiàng)D是不可能的出棧順序。

11.C

12.B

13.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

14.C解析:在Windows環(huán)境下,單擊當(dāng)前窗口中的按鈕“x”,其功能是終止當(dāng)前應(yīng)用程序的運(yùn)行,關(guān)閉當(dāng)前窗口。

15.C后綴自增運(yùn)算“t++”表示先運(yùn)算,再自加。語句“if(t++<6)printf(“%d\\n”,t);elseprintf(“%d\\n”,t--);”中t的初值為6,則“t++<6”,條件為假,t自增至7,執(zhí)行“printf(“%d\\n”,t--);”,此時(shí)t=7,輸出t值為7,之后進(jìn)行自減操作t=6。因此輸出的結(jié)果為7。故本題答案為C選項(xiàng)。

16.D解析:C語言規(guī)定,所有字符常量都可以化為整型常量來處理,因而字符常量也可以參與算術(shù)運(yùn)算。注:字符常量參與算術(shù)運(yùn)算時(shí),其實(shí)是使用其對應(yīng)的ASCII碼值進(jìn)行計(jì)算。本題中,'a'對應(yīng)的ASCII碼值是97。題中雖然沒有給'6'和'0'的ASCII碼值,但應(yīng)該知道'6'-'0'是將字符'6'轉(zhuǎn)換成整數(shù)6的表達(dá)式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型輸出分別是g和d。

17.B

18.D解析:因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項(xiàng)A)、C)中表達(dá)式的結(jié)果為真,不為0;對于選項(xiàng)B)來說,x除以2的商不會等于0;選項(xiàng)D)中表達(dá)式的結(jié)果為假,即等于0。

19.D

20.C題干中定義了字符數(shù)組a,它包含數(shù)字字符和字母字符。通過for循環(huán),將a中所有的數(shù)字字符前移,舍去其他字符,并在數(shù)字字符后添加字符串結(jié)束符‘\\0’,for循環(huán)結(jié)束后,字符串a(chǎn)的值為:123456789。故本題答案為C選項(xiàng)。

21.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對值大于5”時(shí)值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。

22.77解析:本題考查英文字母ASCII碼值的概念。字符參與運(yùn)算的值是其對應(yīng)的ASCII碼,字符H的ASCII碼為72,A的ASCII碼為65,0的ASCII碼為48,所以a=72-65+48=55,ASCII碼值為55的字符是7。

23.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當(dāng)二叉樹的根不為空時(shí),依次執(zhí)行如下3個(gè)操作:①按中序遍歷左子樹。②訪問根結(jié)點(diǎn)。③技中序遍歷右子樹。根據(jù)遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點(diǎn)A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結(jié)點(diǎn)B,然后訪問結(jié)點(diǎn)D,因?yàn)榻Y(jié)點(diǎn)D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點(diǎn)F的左子樹。然后訪問根結(jié)點(diǎn)F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結(jié)點(diǎn)E,然后訪問結(jié)點(diǎn)E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點(diǎn)G,最后訪問G的右子樹P。以上就把整個(gè)二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此,劃線處應(yīng)填入“ACBDFEHGP”。

24.abcbccabcbcc解析:for循環(huán)用strcpy函數(shù)將字符數(shù)組ch的值'abc',分別復(fù)制給二維數(shù)組x的每一行,然后通過for循環(huán)先后打印出以x[0][0],x[1][1],x[2][2]開頭的字符串'abe','bc','c',所以輸出結(jié)果為:abcbcc。

25.246

26.89218921

27.

28.4.0或44.0或4

29.順序結(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語句)。

30.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個(gè)元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。

31.99解析:本題要輸出的結(jié)果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個(gè)字符,\'\\n\'是1個(gè)字符,'012'又是3個(gè)字符,最后的\'\\1\'和\'\\\\\'都是1個(gè)字符。所以最終字符串的長度應(yīng)該是3+1+3+1+1=9。故本題應(yīng)該填9。

32.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。

33.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個(gè)元素輸出到文件fp中兩次,共10個(gè)字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個(gè)字節(jié)的數(shù)據(jù)到數(shù)組a中,此時(shí)數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結(jié)果為“1,2,3,0,0,1,2,3,0,0”。

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

35.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個(gè)表達(dá)式前面有一個(gè)邏輯運(yùn)算符!,表示反操作,所以整個(gè)語句的值應(yīng)當(dāng)為false,即為0。

36.概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)

37.二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[O]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有4個(gè)元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。\r\n\r\n

38.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。

39.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)過程是將相鄰兩個(gè)字符進(jìn)行比較,如果當(dāng)前字符小于下一個(gè)字符,則通過中間變量temp將字符兩兩交換,所以第—空應(yīng)填:str[i],第二空應(yīng)填str[i+1]最終打印輸出得到的字符串str,所以第三空應(yīng)填'%s',str。

40.自頂向下自頂向下解析:在程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,后考慮細(xì)節(jié),逐步使問題具體化,對復(fù)雜的問題,應(yīng)該設(shè)計(jì)一些子目標(biāo)作為過渡,上述方法概括為:自頂向下,逐步細(xì)化。

41.A

42.B解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在函數(shù)調(diào)用時(shí),形參是指向?qū)崊⒌闹羔樧兞?,則printf的執(zhí)行結(jié)果為3+1=4。

43.B解析:根據(jù)本題提出的條件可知,控制循環(huán)的表達(dá)式應(yīng)該是所輸入的兩數(shù)互不相等(相等時(shí)結(jié)束循環(huán)),也即只有滿足這一條件時(shí),才對兩數(shù)進(jìn)行排序輸出操作,由此得出循環(huán)的控制表達(dá)式應(yīng)該為a!=b。

44.C解析:執(zhí)行while循環(huán),使指針變量ps指向字符串“xyz”的字符串結(jié)束標(biāo)志,然后執(zhí)行for循環(huán),先執(zhí)行“ps--”,使ps指向字符“z”,故puts(ps)輸出結(jié)果為“z”:再次執(zhí)行“ps--”,使ps指向字符“y”,故puts(ps)輸出結(jié)果為“yz”:再次執(zhí)行“ps--”,使ps指向字符'x',故puts(ps)輸出結(jié)果為“xyz”,退出循環(huán)。所以,C選項(xiàng)正確。

45.B解析:執(zhí)行p=&a;,將變量a的地址賦給指針變量p,運(yùn)算符*和++的優(yōu)先級相同,都具有自右向左的結(jié)合性,p++是先使用p的值再對p加1,則計(jì)算*p,即取p所指向的存儲單元的值2,賦值給b,再對p的值加1。輸出結(jié)果為a=2b=2。

46.C解析:利用強(qiáng)制類型轉(zhuǎn)換(structsk*),把整數(shù)型地址&data.m轉(zhuǎn)換成結(jié)構(gòu)體變量指針賦給結(jié)構(gòu)體指針變量q。

47.C解析:本題考查數(shù)據(jù)庫的關(guān)系代數(shù)運(yùn)算。R表中只有一個(gè)域名A,有兩個(gè)記錄(也叫元組),分別是m和n;S表中有兩個(gè)域名,分別是B和C,其所對應(yīng)的記錄分別為1和3。注意觀察表T,它是由R的第一個(gè)記錄依次與S的所有記錄組合,然后再由R的第二個(gè)記錄與S的所有記錄組合,形成的一個(gè)新表。上述運(yùn)算恰恰符合關(guān)系代數(shù)的笛卡兒積運(yùn)算規(guī)則。關(guān)系代數(shù)中,笛卡兒積運(yùn)算用“×”來表示。因此,上述運(yùn)算可以表示為T=R×S。因此,本題的正確答案為C。

48.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;一個(gè)好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的用例;一個(gè)成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤。本題答案為C。

49.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。

50.A

51.C解析:本題中,程序先執(zhí)行語句x=1.2;,根據(jù)賦值運(yùn)算的類型轉(zhuǎn)換規(guī)則,先將double型的常量1.2轉(zhuǎn)換為int型,即取整為1,然后將1賦值給變量x。接下來執(zhí)行語句y=(x+3.8)/5.0;根據(jù)運(yùn)算符的優(yōu)先級,先計(jì)算小括號內(nèi),再計(jì)算除法,最后執(zhí)行賦值運(yùn)算。小括號內(nèi)的運(yùn)算過程:先將整型變量x的值1轉(zhuǎn)換為double型1.0,然后與3.8進(jìn)行加法運(yùn)算,得到中間結(jié)果4.8。接著進(jìn)行除法運(yùn)算4.8/5.0,其結(jié)果小于1.0,這里沒有必要計(jì)算出精確值,因?yàn)榻又M(jìn)行賦值運(yùn)算,賦值號左邊的變量y的類型為整型,于是對這個(gè)小于1.0的中間結(jié)果進(jìn)行取整,結(jié)果為0,于是變量y的值為0,d*y的值也為0。注意:格式輸出語句printf的使用。

52.C解析:本題首先調(diào)用函數(shù)funcl(0),輸出st[0]=h,i值變?yōu)?,再調(diào)用函數(shù)func2(2),輸出st[2]=1,此時(shí)i<3,執(zhí)行i+=2,i值變?yōu)?,然后再調(diào)用函數(shù)funcl(4),輸出st[4]=o,此時(shí)i值大于3,函數(shù)調(diào)用結(jié)束。因此,輸出結(jié)果為hlo。

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

54.D

55.C解析:本題定義了一個(gè)fun函數(shù),用于num求和,具體執(zhí)行過程如下:

num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;

num=2:k=k*(num%10)=6*(2%10),所以k=12;num=num/10=0:

num=0:while條件不成立,所以返回k的值12。

56.B解析:continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)條件的判定。當(dāng)能被2整除時(shí),a就會增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結(jié)尾,進(jìn)行i++,判斷循環(huán)條件。

57.D

58.B

59.C解析:C語言中字符常量是以單引號括起來的單個(gè)字符,或

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論