




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023年內(nèi)蒙古自治區(qū)呼和浩特市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.表達(dá)式9!=10的值為()。
A.非零值B.trueC.0D.1
2.
3.在定義inta[3][2]以后,對a的引用正確的是()
A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]
4.有以下程序:#include<stdio.h>main(){inta=123456,b;while(a){b=a%10;a/=10;switch(b){default:printf(“%d”,b++);case1:case2:printf(“%d”,b++);break;case3:printf(“%d”,b++);break;case4:printf(“%d”,b++);}}}程序運(yùn)行后的輸出結(jié)果是()。
A.76654321B.12345667C.67564321D.654321
5.若有定義:int*p[3];,則以下敘述中正確的是()。
A.定義了一個(gè)基類型為int的指針變量p,該變量具有三個(gè)指針
B.定義了一個(gè)指針數(shù)組p,該數(shù)組含有三個(gè)元素,每個(gè)元素都是基類型為int的指針
C.定義了一個(gè)名為*p的整型數(shù)組,該數(shù)組含有三個(gè)int類型元素
D.定義了一個(gè)可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個(gè)int類型元素
6.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i+j;}}printf("m=%d\n",m);}程序運(yùn)行后的輸出結(jié)果是()。A.m=6B.m=2C.m=4D.m=3
7.下列變量聲明合法的是()。
A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=OxfdaL;
D.float2
8.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯(cuò)誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同
B.變量demo中各成員的地址相同
C.變量demo和各成員的地址相同
D.若給demo.d1賦99后,demo.d2中的值是99.0
9.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序運(yùn)行后的輸出結(jié)果是()。
A.10,One*Dream!
B.9,One*Dream!
C.9,One*World
D.10,One*World
10.定義根節(jié)點(diǎn)深度為1,有n個(gè)元素的完全二叉樹的深度是()
A.D(n)=log2(n)
B.D(n)=1+log2(n)
C.D(n)=n+log2(n)
D.D(n)=1+n*log2(n)
11.
12.已知二叉樹后序遍歷序列是dabeC,中序遍歷序列是debaC,它的前序遍歷序列是()。
A.aChedB.deCabC.deabeD.Cedba
13.下列敘述中正確的是()。
A.算法就是程序B.設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C.設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D.以上3種說法都不對
14.有以下程序:main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d,%d\n",x,y,z);程序運(yùn)行后的輸出結(jié)果是()。
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
15.有以下程序:程序運(yùn)行后的輸出結(jié)果是()。A.6B.10C.8D.4
16.設(shè)有宏定義“#defineIsDIV(k,n)((k%n==1)?1:0)”,且變量m已正確定義并賦值,則宏調(diào)用“IsDIV(m,5)&&IsDIV(m,7)”為真時(shí)所要表達(dá)的是()。
A.判斷m是否能被5和7整除
B.判斷m被5和7整除是否都余1
C.判斷m被5或者7整除是否余1
D.判斷m是否能被5或者7整除
17.若有定義語句:“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。A.1.9B.1C.2D.2.4
18.有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(“%d”,k-=3);printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.4D.死循環(huán)
19.計(jì)算機(jī)高級語言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的事()。
A.C語言程序僅可以編譯執(zhí)行B.C語言程序僅可以解釋執(zhí)行C.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說法都不對
20.以下敘述中錯(cuò)誤的是()。
A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型
B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針
C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員
D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值
二、2.填空題(20題)21.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個(gè)字符開始的n個(gè)字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=0;
whiles(length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';
}
22.在進(jìn)行模塊測試時(shí),要為每個(gè)被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
23.人員基本信息一般包括:身份證號、姓名、性別、年齡等。其中可以作為主關(guān)鍵字的是()。
24.數(shù)據(jù)庫技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控。
25.以下程序把從終端讀入的20個(gè)整數(shù)以二進(jìn)制方式寫到一個(gè)名為d.dat的新文件中,請?zhí)羁铡?/p>
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if((fp=fopen(【】,"wb"))==NULL)exit(0);
for(i=0;i<20;i++)
{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}
fclose(fp);
}
26.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-b,a+b));
printf("%d\n",a-b?a-b:a+b);
}
27.以下函數(shù)fun的功能是返回str所指字符中中以形參c中字符開頭的后續(xù)字符串的首地址,例如:str所指字符串為“Hello!”,c中的字符為'e',則函數(shù)返回字符串"ello!"的首地址。若str所指字符串為空中或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁铡?/p>
char*fun(char*str,charc)
{intn=0;char*p=str;
if(p!=NULL)
while(P[n]!=c&&p[n]!='\0')n++;
if(p[n]=='\0')retumNULL;
return(【】);
}
28.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置未AT,例如:
請?zhí)羁?/p>
#defineN4
voidrotate(inta[][])
{inti,j,t;
for(i=0;i<N;i++)
for(j=0;【】;j++)
{t=a[i][j];【】;a[j][i]=t;}
}
29.下列程序的輸出結(jié)果是【】。
voidfun(int*n)
{while((*n))
printf("%d",(*n)--);
}
main()
{inta=10;
fun(&a);
}
30.某二叉樹中度為2的結(jié)點(diǎn)有n個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
31.數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)具有較高獨(dú)立性,數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和【】兩個(gè)含義。
32.假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為【】。
33.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{inta,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d%d%d\n",a,b,c);
}
34.在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為______。
35.對于圖書管理數(shù)據(jù)庫,將圖書表中"人民郵電出版社"的圖書的單價(jià)漲價(jià)5%。請對下面的SQL語句填空:UPDATE圖書【】WHERE出版單位="人民郵電出版社"
36.以下程序運(yùn)行后輸入3,abcde<回車>,則輸出結(jié)果是【】。
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(S);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
37.已知字符'A'的ASCII碼值為65,以下語句的輸出結(jié)果是【】。
charch='B';
printf("%c%d\n",ch,ch);
38.下列程序的輸出結(jié)果是______。
#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");
}
39.下列程序的功能是輸入一個(gè)整數(shù),判斷其是否是素?cái)?shù),若為素?cái)?shù)則輸出1,否則輸出0。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti,x,y=1;
scanf("%d",&x);
for(i=2;i<=x/2;i++)
if【】{y=0;break;}
printf("%d\n",y);
}
40.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-h,a+b));
printf("%d\n",a-b?a-b:a+b);
}
三、1.選擇題(20題)41.以下程序運(yùn)行后,輸出結(jié)果是
#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
42.有以下程序main(){char*s[]={"one","two","three"},*P;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}執(zhí)行后輸出結(jié)果是
A.n,twoB.t,oneC.w,oneD.o,two
43.以下程序的輸出結(jié)果是______。structHAR{intx,y;structHAR*p;}h[2];main(){h[0],x=1;h[0].y=2;h[1]x=3;h[1].y=4;h[0].p、&h[1];h[1]..p=h;printf("%d%d\n",(h[0].p)->x,(h[1].p)->y;}
A.12B.23C.14D.32
44.下面程序的運(yùn)行結(jié)果是______。main(){charch[7]={"65ab21"};inti,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+-2)s=10*s+ch[i]-'0';printf("%d\n",s)'}
A.12ba56B.652C.6D.62
45.下面程序段的輸出結(jié)果是()。charstr[]="ABC",*p=str;Printf("%d\n",*(p+3));
A.67B.0C.字符'C'的地址D.字符'C'
46.運(yùn)行以下程序后,如果從鍵盤上輸入6514<回車>,則輸出結(jié)果為______。main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}
A.m=3B.m=2C.m=1D.m=0
47.若有以下定義和語句,則輸出結(jié)果是______。int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);
A.10,20B.10,10C.20,10D.20,20
48.定義int*swap()的是_______。
A.一個(gè)返回整型值的函數(shù)swap()
B.一個(gè)返回指向整型值指針的函數(shù)swap()
C.一個(gè)指向函數(shù)swap()的指針,函數(shù)返回一個(gè)整型值
D.以上說法均錯(cuò)
49.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。
A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)
50.算法中的每一個(gè)步驟都必須是有明確意義的,不允許有模棱兩可的解釋,也不允許有多義性,這個(gè)性質(zhì)稱為
A.可行性B.有窮性C.正確性D.確定性
51.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()。
A.scanf("%d",pa);
B.scanf("%d",a);
C.scanf("%d",&pa);
D.scanf("%d",*pa);
52.當(dāng)說明一個(gè)結(jié)構(gòu)體變量時(shí)系統(tǒng)分配給它的內(nèi)存是()。
A.各成員所需要內(nèi)存量的總和
B.結(jié)構(gòu)中第一個(gè)成員所需的內(nèi)存量
C.成員中占內(nèi)存最大者所需的容量
D.結(jié)構(gòu)中最后一個(gè)成員所需要的內(nèi)存量
53.下列實(shí)體的聯(lián)系中,屬于多對多聯(lián)系的是()
A.學(xué)生與課程B.學(xué)校與校長C.住院的病人與病床D.工資級別與職工
54.以下語句定義正確的是()。
A.inta[1][4]={1,2,3,4,5};
B.floata[3][1]={{1},{2},{3}};
C.longa[2][3]={{1},{1,2},{1,2,3},{0,0}};
D.doublea[][3]={0};
55.有以下程序
#include
main()
{charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde';
strcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序運(yùn)行后的輸出結(jié)果是
A.9B.6C.11D.7
56.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2;intfunc(int*a){b+=*a;returnb;}main(){inta=1,t=2;t+=func(&a);printf("%d\n",t);}
A.4B.5C.6D.8
57.下列敘述中錯(cuò)誤的是()。
A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)
B.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)
C.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)
D.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的
58.有以下程序voidfun{int*a,inti,intj){intt;if(i<j)t=a[i];a[i]=a[j];a[j]=t;fun(a,++i,--j);}main(){inta[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}執(zhí)行后輸出結(jié)果是
A.654321B.432156C.456123D.123456
59.下面程序的運(yùn)行結(jié)果是include<stdio.h>main(){inta=28,b;chars[10],*p;p=s;do{b=a%16;if(b<10)*p=b+48;else*p=b+55;p++;a=a/5;}while(a>0);*p='\0';puts(s);}
A.10B.C2C.C51D.\0
60.二進(jìn)制數(shù)1110111.11轉(zhuǎn)換成十進(jìn)制數(shù)是()。
A.119.375B.119.75C.119.125D.119.3
四、選擇題(20題)61.
62.有以下程序:
#include<stdio.h>
voidfunc(intn)
{staticintnum=1);
num=num+n;printf("%d",num);
}
main()
{funo(3);func(4);printf("n");}
程序運(yùn)行后的輸出結(jié)果是()。
A.48B.34C.35D.45
63.
64.(67)數(shù)據(jù)處理的最小單位是()
A.數(shù)據(jù)
B.數(shù)據(jù)元素
C.數(shù)據(jù)項(xiàng)
D.數(shù)據(jù)結(jié)構(gòu)
65.
66.下列敘述中正確的是()。
A.棧是“先進(jìn)先出”的線性表
B.隊(duì)列是“先進(jìn)后出”的線性表
C.循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定的
D.循環(huán)隊(duì)列中隊(duì)頭指針是固定不變的
67.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.let=4B.m=2C.m=6D.m=5
68.以下選項(xiàng)中,合法的一組c語言數(shù)值常量是()。
A.12.0Xa234.5e0
B.028.5e…30xf
C.1774el.50abe
D.0x8A10,0003.e5
69.已定義c為字符型常量,則下列語句中正確的是()。
A)c=′97′B)c="97"
C)c=97D)c="a"
70.
下面for語句的循環(huán)次數(shù)為()。
for(x=1,y=0;(y!=19)&&(x<6);x++);
A.是無限循環(huán)B.循環(huán)次數(shù)小定C.最多執(zhí)行6次D.最多執(zhí)行5次
71.
72.
有以下程序:
#include<stdio.h>
main
{intx=4,y;
do
{y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的輸出結(jié)果是()。
A.xyyxB.yyyyC.yyxxD.yxyx
73.以下不能將a所指字符串正確復(fù)制到所指存儲(chǔ)空間的是()。
74.當(dāng)把以下四個(gè)表達(dá)式用作if語句的控制表達(dá)式時(shí),有一個(gè)選項(xiàng)與表達(dá)式(k%2)!=0含義相同,這個(gè)選項(xiàng)是()。
A.k%2==0B.k%2==1C.!k%2==1D.都不同
75.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。
A.可封裝B.自頂向下C.模塊化D.逐步求精
76.
77.
78.有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(xiàn)(a++,b++));}程序運(yùn)行后的輸出結(jié)果是
A.12B.15C.16D.20
79.有兩個(gè)關(guān)系R和T如下:
則由關(guān)系R得到關(guān)系T的操作是()。A.選擇B.投影C.交D.并
80.作為信息處理熱點(diǎn)技術(shù)之一的“多媒體技術(shù)”中的媒體,強(qiáng)調(diào)的是()。
A.存儲(chǔ)媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個(gè)字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。例如,輸入opdye,則應(yīng)輸出deopy。請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include%string.h>#include%stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charC;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j4-+)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=C;}}voidmain{charst/[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\nknBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%S",str);}
六、程序設(shè)計(jì)題(1題)82.編寫fun()函數(shù),它的功能是:利用以下所示的簡單迭代方法求方程cos(y)-y=0的一個(gè)實(shí)根。
yn+1=cos(yn)
迭代步驟如下:
(1)取y1初值為0.0;
(2)y0=y1,把y1的值賦給y0;
(3)y1=cos(y0),求出一個(gè)新的y1;
(4)若y0=y1的絕對值小于0.000001,則執(zhí)行步驟
(5),否則執(zhí)行步驟(2);
(5)所求y1就是方程COS(y)-y=0的一個(gè)實(shí)根,作為函數(shù)值返回。
程序?qū)⑤敵鼋Y(jié)果Result=0.739085。
請勿改動(dòng)main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。
部分源程序給出如下。
試題程序:
參考答案
1.D
2.D
3.D
4.C程序中變量a的初值為123456,while循環(huán)的終止條件是a為0。循環(huán)開始將a的最后一位數(shù)字賦給b,a除以10后(丟棄最后一位)重新賦給a。在循環(huán)過程中,變量a和b的取值分別為:124566、123455、12344、1233、122、11。循環(huán)體中,執(zhí)行switch(b)語句,當(dāng)b的數(shù)值不等于1、2、3、4時(shí),首先執(zhí)行default語句,輸出b并將b自增1,再執(zhí)行case1、case2語句,輸出自增后的b值;當(dāng)b的數(shù)值等于1、2、3、4時(shí),只執(zhí)行case語句,輸出b的值。綜上,當(dāng)b為6、5時(shí),分別輸出67、56;當(dāng)b為4、3、2、1時(shí),分別輸出4、3、2、1。最終程序輸出結(jié)果為67564321。故本題答案為C選項(xiàng)。
5.B解析:當(dāng)一個(gè)數(shù)組中的元素均為指針類型數(shù)據(jù)時(shí),該數(shù)組就稱為指針數(shù)組。int*p[3]表示此數(shù)組是指針類型的,每個(gè)數(shù)組元素(指針變量)都是指向一個(gè)整型的指針變量。
6.A本題考查了多重for循環(huán)。當(dāng)(i*j)>3時(shí),跳出循環(huán),本題中i=1,j=3,i*J后值為3,所以執(zhí)行下邊語句:m*=i+j,也可寫成m=m*i+j,這時(shí)要注意優(yōu)先級,所以m的值為6。
7.A解析:解答本題需了解3個(gè)知識點(diǎn):①標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線;②do是C語言中的一個(gè)關(guān)鍵字,不能再用做變量名和函數(shù)名;③C語言規(guī)定,指數(shù)形式的實(shí)型常量e或E后面的指數(shù)必須是整數(shù)。
8.D共用體變量中的所有成員共享一段公共存儲(chǔ)區(qū),所有成員的首地址相同。在每一個(gè)時(shí)刻所有的成員中只有一個(gè)有效,即只有最后一個(gè)被賦值的成員有效,其余的成員無效。
9.A函數(shù)“strlen(char*s)”;計(jì)算字符串s的長度,不包括‘\\0’在內(nèi)。p指向數(shù)組的第2個(gè)元素,因此“Strien(P)=10”,并輸出“one*Dream!”。故本題答案為A選項(xiàng)。
10.B
11.D
12.D二叉樹的遍歷有3種:前序、中序和后序。①前序遍歷訪問根結(jié)點(diǎn),然后按左右順序遍歷子結(jié)點(diǎn);②中序首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹;③后序遍歷首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。本題根據(jù)后序和中序遍歷的結(jié)果可以得出二叉樹的結(jié)構(gòu),然后再對其進(jìn)行前序遍歷,正確答案選項(xiàng)為D。
13.D程序(program)是為實(shí)現(xiàn)特定目標(biāo)或解決特定問題而用計(jì)算機(jī)語言編寫的命令序列的集合。設(shè)計(jì)算法時(shí)要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),但是不僅僅是要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),還要考慮到其他的程序結(jié)構(gòu)的問題。設(shè)計(jì)算法時(shí)不能只考慮結(jié)果的正確性和可靠性,還需要考慮到程序的時(shí)間冗余度等方面。所以答案選擇D。
14.C解析:z=x++是先把x的值1賦給z,所以z=1,然后再把x加1賦給x,x=2,++y后y又加1,所以y=3。
15.C題干中,整型指針變量Pk指向k,Pm指向m,所以右邊表達(dá)式“*pk*(*pm)”的值為“k*m”,即2*4=8;左邊表達(dá)式“*(p=&n)”先將變量n的地址賦給p,然后對p解引用,引用到n,將n的值賦為8。本題答案為C選項(xiàng)。
16.B邏輯與運(yùn)算兩邊運(yùn)算對象的值都為真時(shí),結(jié)果才為真。所以需要m能被5和7整除都余1。故本題答案為B選項(xiàng)。
17.B此題考查除法運(yùn)算,根據(jù)先乘除后加減,有括號先算括號的原則,先計(jì)算x/y,即l2/8=1,所以z=0.9+1=1.9。但是Z是整型的,轉(zhuǎn)化一下取整除部分,結(jié)果Z=1
18.A“--k”是先自減再使用,所以第1次判斷條件即while(4),條件為真輸出k的值,k=4-3,結(jié)果為1;第2次判斷條件即while(0),條件為假,結(jié)束循環(huán),輸出回車換行符。故本題答案為A選項(xiàng)。
19.A解釋執(zhí)行是計(jì)算機(jī)語言的一種執(zhí)行方式。由解釋器現(xiàn)場解釋執(zhí)行,不生成目標(biāo)程序。如BASIC便是解釋執(zhí)行。一般解釋執(zhí)行效率較低,低于編譯執(zhí)行。而C程序是經(jīng)過編譯生成目標(biāo)文件然后執(zhí)行的,所以C程序是編譯執(zhí)行。
20.A函數(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。
21.length++i<lengthlength++\r\ni<length解析:第—個(gè)循環(huán)極有可能是計(jì)算串的長度,在i<=length時(shí)字符才被刪除,被刪除的是從第i個(gè)到笫i+n或最后—個(gè)間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。
22.驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊解析:在進(jìn)行模塊測試時(shí),要為每個(gè)被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊)。其中,驅(qū)動(dòng)模塊相當(dāng)于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實(shí)際測試結(jié)果。承接模塊通常用于代替被測試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個(gè)模擬子程序,不必將子模塊的所有功能帶入。
23.身份證號身份證號解析:主關(guān)鍵字是表中區(qū)別不同記錄的標(biāo)識,在該表中只有身份證號能具有這個(gè)作用,所以用其作為主關(guān)鍵字。
24.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點(diǎn)有以下幾個(gè)方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨(dú)立性,數(shù)據(jù)統(tǒng)一管理與控制。
25."bi.dat"fp'bi.dat'\r\nfp解析:要向文件bi.dat中寫數(shù)據(jù),所以要打開文件bi.dat。fp是指向文件bi.dat的指針,是將數(shù)據(jù)寫入fp指向的文件中去。
26.11371,13,7解析:本題考查3個(gè)知識點(diǎn):①余數(shù)的計(jì)算,題中的a=10,b=3,a%b=1;②(表達(dá)式1,表達(dá)式2)形式的結(jié)果為最后一個(gè)表達(dá)式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13;③條件運(yùn)算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結(jié)果為7。
27.str+n或p+nstr+n或p+n解析:此題主要是將形參c中的字符與str中的字符相比較,返回以形參c中字符開頭的后續(xù)字符串,函數(shù)fun中的變量n用于記錄形參c中字符在str字符串中的位置,故返回的結(jié)果用str+n或p+n表示。
28.j<=ia[i][j]=a[j][i]j<=i\r\na[i][j]=a[j][i]解析:將矩陣轉(zhuǎn)置就是將行列互換,所以第一處應(yīng)填j<=i,第二處應(yīng)填a[i][j]=a[j][i]。
29.1.09877e+010
30.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為0的結(jié)點(diǎn)多一個(gè)。
31.邏輯獨(dú)立性邏輯獨(dú)立性解析:數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。數(shù)據(jù)獨(dú)立性一般分為物理獨(dú)立性與邏輯獨(dú)立性兩個(gè)含義。注意:在人工管理階段,文件系統(tǒng)階段和數(shù)據(jù)庫管理階段中數(shù)據(jù)獨(dú)立性的特點(diǎn)。
32.n(n-1)/2
33.1020010200解析:本題考查算術(shù)運(yùn)算符,關(guān)系運(yùn)算符和邏輯運(yùn)算符的使用和優(yōu)先級關(guān)系。程序中,a=10,b=20,c=(10%20<1)||(10/20>1)=(10<1)||(0>1)=0||0=0。
34.對象對象解析:類描述的是具有相似性質(zhì)的一組對象。例如,每本具體的書是一個(gè)對象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對象。一個(gè)具體對象稱為類的實(shí)例。
35.SET單價(jià)=單價(jià)*1.05SET單價(jià)=單價(jià)*1.05解析:更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個(gè)或多個(gè)屬性值。UPDATE短語之后指定更新數(shù)據(jù)所屬的表,將新的屬性值或表達(dá)式賦值給對應(yīng)的屬性名(SET單價(jià)=單價(jià)*1.05),并置于SET短語之后。要求對人民郵電出版社的圖書漲5%,需要用WHERE短語對元組進(jìn)行限制,即對符合條件的元組進(jìn)行更新。
36.cdeabcdeab解析:本題move()函數(shù)的作用,是將形參s仕所指地址的連續(xù)n位循環(huán)右移1位,即讓str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函數(shù)中用了一個(gè)for循環(huán)調(diào)用move()函數(shù),共循環(huán)3次,所以數(shù)組s被循環(huán)右移了3位,故最后輸出的值為cdeab。
37.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。
38.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時(shí),調(diào)用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時(shí),調(diào)用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時(shí),調(diào)用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時(shí),調(diào)用PRINT(4),P(4)輸出4,theend。
39.(x%i==0)(x%i==0)解析:為判數(shù)x是否是素?cái)?shù),預(yù)置變量y的值為1(x可能是素?cái)?shù)),然后用2至x/2的整數(shù)i測試對x的整除性,若x能被其中的某個(gè)整數(shù)整除,則x是合數(shù),置y的值為0(即x不是素?cái)?shù)),結(jié)束循環(huán)測試;若循環(huán)中i都不能整除x,則x為素?cái)?shù)。一般可用求余運(yùn)算x%i是否等于0來判定i能否整除x,所以程序中的空格處可填(x%i==0)。
40.11371,13,7解析:本題考查3個(gè)知識點(diǎn):①余數(shù)的計(jì)算,題中的a=10,b=3,a%b=1:②(表達(dá)式1,表達(dá)式2)形式的結(jié)果為最后一個(gè)表達(dá)式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13;③條件運(yùn)算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結(jié)果為7。
41.A解析:考查宏替換的使用。宏替換用'#define宏名宏體'的形式來定義。在進(jìn)行編譯預(yù)處理時(shí),將把程序中宏定義之后的所有宏名用宏體替換。宏雖然可以帶參數(shù),但宏替換過程中不像函數(shù)那樣要進(jìn)行參數(shù)值的計(jì)算、傳遞及結(jié)果返回等操作;宏替換只是簡單的字符替換,不進(jìn)行計(jì)算,因而本題中的S(a+b)進(jìn)行宏替換后為PT*1+2*1+2=5.5*1+2*1+2=9.5。
42.C解析:本題考核的知識點(diǎn)是指針數(shù)組。本崽首先定義了一個(gè)有3個(gè)元素的指針數(shù)組s,并遭過賦值使s[0]指向字符串“one”s[1]指向字符串“two”,s[2]指向字符串“three”,然后通過賦值語句“p=s[1]”,使p指向了字符串“two”,故”(p+1)”就是字符“w”。所以,C選項(xiàng)為所選。
43.D解析:本題中是一個(gè)含有兩個(gè)結(jié)點(diǎn)的循環(huán)鏈表。
C語言中結(jié)構(gòu)體的定義為:
struct結(jié)構(gòu)體類型名
{
成員項(xiàng)表;
};
44.C
45.B解析:本題考查指向字符串的指針變量。指針變量p指向的應(yīng)該是該字符串中的首地址,p+3指向的是字符串結(jié)束標(biāo)志'\\0'的地址,因而*(p+3)的值為0。
46.C解析:分析程序可知,該程序?qū)崿F(xiàn)的功能是對數(shù)m,n求其最大公約數(shù)。在本題中m與n的值分別為65與14,其最大公約數(shù)為1,故其輸出結(jié)果為m=1。
47.D
48.B解析:一個(gè)函數(shù)可以帶回一個(gè)整型值、字符值、實(shí)型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是一個(gè)返回整型指針的函數(shù)。
49.B解析:本題中有一個(gè)陷阱,很多考生會(huì)根據(jù)程序的書寫格式來判斷:while循環(huán)的循環(huán)體為printf('y=%d\\n',y);語句。其實(shí)while的循環(huán)體是一條空語句,即y--后面的那個(gè)分號就是while的循環(huán)體。所以本題只要弄清楚表達(dá)式y(tǒng)--何時(shí)為“假”,即等于0,就能得出結(jié)果了。因?yàn)?-運(yùn)算符是后綴形式,所以表達(dá)式y(tǒng)--的值是y自減之前的值,即y等于。時(shí),表達(dá)式y(tǒng)--就等于0了。但此時(shí)的y還要被減1,所以循環(huán)結(jié)束后,y的值為-1。故應(yīng)該選擇B。
50.D解析:算法中的每一個(gè)步驟都必須是有明確意義的,不允許有多義性。算法的這個(gè)性質(zhì)即為算法的確定性。
51.A解析:scanf函數(shù)是格式輸入函數(shù),用于輸入任何類型的多個(gè)數(shù)據(jù)。該函數(shù)的一般形式為:scanf(格式控制,地址列表),其中“格式控制”是用雙引號括起來的字符串,“地址列表”是由若干個(gè)地址組成的表列,可以是變量的地址,或字符串的首地址。題目中可以作為地址列表項(xiàng)的有pa和&a。所以,選項(xiàng)A)正確。
52.A解析:本題主要考查結(jié)構(gòu)體的內(nèi)存使用:對結(jié)構(gòu)體而言,結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個(gè)結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個(gè)成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個(gè)成員相互獨(dú)立。
53.AA本題考查關(guān)系數(shù)據(jù)庫中實(shí)體之間的聯(lián)系。實(shí)體之間的聯(lián)系有3種:一對一關(guān)系、一對多關(guān)系和多對多關(guān)系。一個(gè)學(xué)生可以選擇多門課程,一門課程可被多個(gè)學(xué)生選擇,所以學(xué)生與課程之間是多對多的聯(lián)系
54.D
55.B解析:strcpy()函數(shù)的功能是將字符串q復(fù)制到從p13]位置開始的存儲(chǔ)單元,同時(shí)復(fù)制字符串結(jié)束標(biāo)志'\\0'到p[6]中。函數(shù)strlen()返回的是字符串中不包括'\\0'在內(nèi)的實(shí)際長度,敢本題答案為B)。
56.B解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在執(zhí)行函數(shù)func時(shí),由于全局定義了一個(gè)變量b,所以在函數(shù)體中執(zhí)行時(shí)b=2+1=3,最終t=2+3=5。
57.B解析:一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等,選項(xiàng)A和選項(xiàng)D正確。采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率不同,因此,在進(jìn)行數(shù)據(jù)處理時(shí),選擇合適的存儲(chǔ)結(jié)構(gòu)是很重要的,選項(xiàng)C正確,選項(xiàng)B錯(cuò)誤,應(yīng)為本題正確答案。
58.A解析:本題考核的知識點(diǎn)是指針變量作為函數(shù)的參數(shù)和遞歸函數(shù)的簡單使用。函數(shù)fun()中有3個(gè)參數(shù),參數(shù)a為一個(gè)指針變量,接收的實(shí)參可以是數(shù)組名,參數(shù)i和j分別表示數(shù)組元素的下標(biāo),當(dāng)下標(biāo)i小于下標(biāo)j時(shí),a[i]和a[j]交換,然后對自身進(jìn)行調(diào)用,可見這是一個(gè)遞歸函數(shù)。其實(shí)現(xiàn)的功能是把數(shù)組a,從下標(biāo)為i的元素到下標(biāo)為i的元素之間的所有元素反序存放。在主函數(shù)中調(diào)用fun()函數(shù),把a(bǔ)數(shù)組從a[0}到a[5]之間的所有元素反序存放,最后輸出從a[0]到a[5]的值,因此輸出的值為6、5、4、3,2、1,所以,A選項(xiàng)為所選。
59.C解析:語句“p=s;”是使指針p指向字符數(shù)組s。*p則引用了p所指位置的數(shù)組元素。注意:通過指針來引用一維數(shù)組元素。
60.B
61.B
62.A\n第一調(diào)用func函數(shù)時(shí)輸出4,第二次調(diào)用func函數(shù)時(shí)num的值并不會(huì)釋放,仍然是上次修改后的值4,第二次調(diào)用結(jié)果為8,所以輸出結(jié)果是48。
\n
63.D
64.C注:數(shù)據(jù)項(xiàng)不可再分割
65.C
66.C棧是“先進(jìn)后出”的線性表;隊(duì)列是“先進(jìn)先出”的線性表;在循環(huán)隊(duì)列結(jié)構(gòu)中,每進(jìn)行一次入隊(duì)運(yùn)算,隊(duì)尾指針就加1,每進(jìn)行一次出隊(duì)運(yùn)算,隊(duì)頭指針就加1,隊(duì)頭指針和隊(duì)尾指針一起反映了隊(duì)列中元素的動(dòng)態(tài)變化情況。
67.C第一次外循環(huán)i的值為l,第一次內(nèi)循環(huán)j的值為3,不滿足條件執(zhí)行in}=i}j即m的值為3;第二次j的值為2,不滿足條件執(zhí)行m·=i*j,即m的值為6;第三次j的值為1,不滿足條件執(zhí)行nl*=i*j,即m的值仍為6。第二次外循環(huán)i的值為2,j的值為3,滿足條件,執(zhí)行break語句,跳出循環(huán)。
68.AC語言中八進(jìn)制整型常量的開頭是數(shù)字0,十六進(jìn)制整型常量的數(shù)字開頭是Ox。C語言中的實(shí)型常量有兩種表示形式:小數(shù)形式,小數(shù)形式表示的實(shí)型常量必須要有小數(shù)點(diǎn);指數(shù)形式,以“e”或“E",后跟一個(gè)整數(shù)來表示以l0為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B選項(xiàng)中028錯(cuò)誤,八透割中沒有數(shù)字8。c選項(xiàng)中4el.5中e后面的指數(shù)不是整數(shù):D選項(xiàng)中3.e5小數(shù)點(diǎn)后面缺少數(shù)字。
69.C字符常量用一對單引號括起來,而且單引號之內(nèi)只能有一個(gè)字符。
70.D
\n本題考查for循環(huán)的使用。根據(jù)條件考慮x的取值變化,x從1取到5,可以循環(huán)5次,但并不知道y是如何變化的,有可能出現(xiàn)y=19提前跳出循環(huán)的情況,所以是最多執(zhí)行5次。
\n
71.A
72.C
\n本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結(jié)束循環(huán)。所以B正確。
\n
73.Ado{*t++=*s++;}while(*s);,不能因?yàn)楫?dāng)*s=’\0。時(shí),while(*s)跳出循環(huán),這樣字符串結(jié)束標(biāo)志’\0’沒有復(fù)制給*t,造成*t不完整。注意,*t++=}s++是先執(zhí)行t=*s,然后才進(jìn)行t=t+1,s=s+1。選項(xiàng)B)、c)、D)都能將’、0’復(fù)制過去。
74.BA選項(xiàng)說的是偶數(shù),B選項(xiàng)求的是奇數(shù),C選項(xiàng)求的是偶數(shù),而題目求的是奇數(shù)。
75.AA?!窘馕觥拷Y(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐步求精、模塊化、限制使用goto語句等。
76.A
77.B
78.A解析:此題考查的是編譯預(yù)處理命令以及自加運(yùn)算符。F(a++,b++)先取a和b的值,參加運(yùn)算,再把a(bǔ)和b的值分別加1,所以F(a++,b++)=F(3,4)=3*4=12。
79.A
80.D媒體分為感覺媒體、表示媒體、存儲(chǔ)媒體、傳輸媒體和表現(xiàn)媒體五種,“多媒體技術(shù)”中的媒體強(qiáng)調(diào)的是感覺媒體。
81.(1)錯(cuò)誤:intproc(charstr[])正確:voidproc(charstr[])(2)錯(cuò)誤:str[j]=str[i++];正確:str[j]=str[i];【解析】由主函數(shù)中的函數(shù)調(diào)用可知,函數(shù)proc沒有返回值。因此,“intproc(charstr[])”應(yīng)改為“voidproc(charstr[])”;由函數(shù)proc可知,if語句塊完成將字符串str中的第i個(gè)元素與第j個(gè)元素相交換。因此,“str[j]=str[i++];”應(yīng)改為“str[j]=str[i];”。
82.
【解析】進(jìn)入fun()函數(shù),根據(jù)題中給出的求解步驟,首先y1初值為0.0;若y0-yl的絕對值大于0.000001就循環(huán)進(jìn)行迭代,即“y0-yl;yl-cos(yO);”,直到滿足題目中的要求,返回y1,即實(shí)根。本題考查了do-while用法。
2022-2023年內(nèi)蒙古自治區(qū)呼和浩特市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.表達(dá)式9!=10的值為()。
A.非零值B.trueC.0D.1
2.
3.在定義inta[3][2]以后,對a的引用正確的是()
A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]
4.有以下程序:#include<stdio.h>main(){inta=123456,b;while(a){b=a%10;a/=10;switch(b){default:printf(“%d”,b++);case1:case2:printf(“%d”,b++);break;case3:printf(“%d”,b++);break;case4:printf(“%d”,b++);}}}程序運(yùn)行后的輸出結(jié)果是()。
A.76654321B.12345667C.67564321D.654321
5.若有定義:int*p[3];,則以下敘述中正確的是()。
A.定義了一個(gè)基類型為int的指針變量p,該變量具有三個(gè)指針
B.定義了一個(gè)指針數(shù)組p,該數(shù)組含有三個(gè)元素,每個(gè)元素都是基類型為int的指針
C.定義了一個(gè)名為*p的整型數(shù)組,該數(shù)組含有三個(gè)int類型元素
D.定義了一個(gè)可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個(gè)int類型元素
6.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i+j;}}printf("m=%d\n",m);}程序運(yùn)行后的輸出結(jié)果是()。A.m=6B.m=2C.m=4D.m=3
7.下列變量聲明合法的是()。
A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=OxfdaL;
D.float2
8.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯(cuò)誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同
B.變量demo中各成員的地址相同
C.變量demo和各成員的地址相同
D.若給demo.d1賦99后,demo.d2中的值是99.0
9.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序運(yùn)行后的輸出結(jié)果是()。
A.10,One*Dream!
B.9,One*Dream!
C.9,One*World
D.10,One*World
10.定義根節(jié)點(diǎn)深度為1,有n個(gè)元素的完全二叉樹的深度是()
A.D(n)=log2(n)
B.D(n)=1+log2(n)
C.D(n)=n+log2(n)
D.D(n)=1+n*log2(n)
11.
12.已知二叉樹后序遍歷序列是dabeC,中序遍歷序列是debaC,它的前序遍歷序列是()。
A.aChedB.deCabC.deabeD.Cedba
13.下列敘述中正確的是()。
A.算法就是程序B.設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C.設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D.以上3種說法都不對
14.有以下程序:main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d,%d\n",x,y,z);程序運(yùn)行后的輸出結(jié)果是()。
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
15.有以下程序:程序運(yùn)行后的輸出結(jié)果是()。A.6B.10C.8D.4
16.設(shè)有宏定義“#defineIsDIV(k,n)((k%n==1)?1:0)”,且變量m已正確定義并賦值,則宏調(diào)用“IsDIV(m,5)&&IsDIV(m,7)”為真時(shí)所要表達(dá)的是()。
A.判斷m是否能被5和7整除
B.判斷m被5和7整除是否都余1
C.判斷m被5或者7整除是否余1
D.判斷m是否能被5或者7整除
17.若有定義語句:“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。A.1.9B.1C.2D.2.4
18.有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(“%d”,k-=3);printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.4D.死循環(huán)
19.計(jì)算機(jī)高級語言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的事()。
A.C語言程序僅可以編譯執(zhí)行B.C語言程序僅可以解釋執(zhí)行C.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說法都不對
20.以下敘述中錯(cuò)誤的是()。
A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型
B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針
C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員
D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值
二、2.填空題(20題)21.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個(gè)字符開始的n個(gè)字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=0;
whiles(length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';
}
22.在進(jìn)行模塊測試時(shí),要為每個(gè)被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
23.人員基本信息一般包括:身份證號、姓名、性別、年齡等。其中可以作為主關(guān)鍵字的是()。
24.數(shù)據(jù)庫技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控。
25.以下程序把從終端讀入的20個(gè)整數(shù)以二進(jìn)制方式寫到一個(gè)名為d.dat的新文件中,請?zhí)羁铡?/p>
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if((fp=fopen(【】,"wb"))==NULL)exit(0);
for(i=0;i<20;i++)
{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}
fclose(fp);
}
26.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-b,a+b));
printf("%d\n",a-b?a-b:a+b);
}
27.以下函數(shù)fun的功能是返回str所指字符中中以形參c中字符開頭的后續(xù)字符串的首地址,例如:str所指字符串為“Hello!”,c中的字符為'e',則函數(shù)返回字符串"ello!"的首地址。若str所指字符串為空中或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁铡?/p>
char*fun(char*str,charc)
{intn=0;char*p=str;
if(p!=NULL)
while(P[n]!=c&&p[n]!='\0')n++;
if(p[n]=='\0')retumNULL;
return(【】);
}
28.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置未AT,例如:
請?zhí)羁?/p>
#defineN4
voidrotate(inta[][])
{inti,j,t;
for(i=0;i<N;i++)
for(j=0;【】;j++)
{t=a[i][j];【】;a[j][i]=t;}
}
29.下列程序的輸出結(jié)果是【】。
voidfun(int*n)
{while((*n))
printf("%d",(*n)--);
}
main()
{inta=10;
fun(&a);
}
30.某二叉樹中度為2的結(jié)點(diǎn)有n個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
31.數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)具有較高獨(dú)立性,數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和【】兩個(gè)含義。
32.假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為【】。
33.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{inta,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d%d%d\n",a,b,c);
}
34.在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為______。
35.對于圖書管理數(shù)據(jù)庫,將圖書表中"人民郵電出版社"的圖書的單價(jià)漲價(jià)5%。請對下面的SQL語句填空:UPDATE圖書【】WHERE出版單位="人民郵電出版社"
36.以下程序運(yùn)行后輸入3,abcde<回車>,則輸出結(jié)果是【】。
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(S);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
37.已知字符'A'的ASCII碼值為65,以下語句的輸出結(jié)果是【】。
charch='B';
printf("%c%d\n",ch,ch);
38.下列程序的輸出結(jié)果是______。
#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");
}
39.下列程序的功能是輸入一個(gè)整數(shù),判斷其是否是素?cái)?shù),若為素?cái)?shù)則輸出1,否則輸出0。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti,x,y=1;
scanf("%d",&x);
for(i=2;i<=x/2;i++)
if【】{y=0;break;}
printf("%d\n",y);
}
40.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-h,a+b));
printf("%d\n",a-b?a-b:a+b);
}
三、1.選擇題(20題)41.以下程序運(yùn)行后,輸出結(jié)果是
#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
42.有以下程序main(){char*s[]={"one","two","three"},*P;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}執(zhí)行后輸出結(jié)果是
A.n,twoB.t,oneC.w,oneD.o,two
43.以下程序的輸出結(jié)果是______。structHAR{intx,y;structHAR*p;}h[2];main(){h[0],x=1;h[0].y=2;h[1]x=3;h[1].y=4;h[0].p、&h[1];h[1]..p=h;printf("%d%d\n",(h[0].p)->x,(h[1].p)->y;}
A.12B.23C.14D.32
44.下面程序的運(yùn)行結(jié)果是______。main(){charch[7]={"65ab21"};inti,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+-2)s=10*s+ch[i]-'0';printf("%d\n",s)'}
A.12ba56B.652C.6D.62
45.下面程序段的輸出結(jié)果是()。charstr[]="ABC",*p=str;Printf("%d\n",*(p+3));
A.67B.0C.字符'C'的地址D.字符'C'
46.運(yùn)行以下程序后,如果從鍵盤上輸入6514<回車>,則輸出結(jié)果為______。main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}
A.m=3B.m=2C.m=1D.m=0
47.若有以下定義和語句,則輸出結(jié)果是______。int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);
A.10,20B.10,10C.20,10D.20,20
48.定義int*swap()的是_______。
A.一個(gè)返回整型值的函數(shù)swap()
B.一個(gè)返回指向整型值指針的函數(shù)swap()
C.一個(gè)指向函數(shù)swap()的指針,函數(shù)返回一個(gè)整型值
D.以上說法均錯(cuò)
49.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。
A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)
50.算法中的每一個(gè)步驟都必須是有明確意義的,不允許有模棱兩可的解釋,也不允許有多義性,這個(gè)性質(zhì)稱為
A.可行性B.有窮性C.正確性D.確定性
51.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()。
A.scanf("%d",pa);
B.scanf("%d",a);
C.scanf("%d",&pa);
D.scanf("%d",*pa);
52.當(dāng)說明一個(gè)結(jié)構(gòu)體變量時(shí)系統(tǒng)分配給它的內(nèi)存是()。
A.各成員所需要內(nèi)存量的總和
B.結(jié)構(gòu)中第一個(gè)成員所需的內(nèi)存量
C.成員中占內(nèi)存最大者所需的容量
D.結(jié)構(gòu)中最后一個(gè)成員所需要的內(nèi)存量
53.下列實(shí)體的聯(lián)系中,屬于多對多聯(lián)系的是()
A.學(xué)生與課程B.學(xué)校與校長C.住院的病人與病床D.工資級別與職工
54.以下語句定義正確的是()。
A.inta[1][4]={1,2,3,4,5};
B.floata[3][1]={{1},{2},{3}};
C.longa[2][3]={{1},{1,2},{1,2,3},{0,0}};
D.doublea[][3]={0};
55.有以下程序
#include
main()
{charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde';
strcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序運(yùn)行后的輸出結(jié)果是
A.9B.6C.11D.7
56.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2;intfunc(int*a){b+=*a;returnb;}main(){inta=1,t=2;t+=func(&a);printf("%d\n",t);}
A.4B.5C.6D.8
57.下列敘述中錯(cuò)誤的是()。
A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)
B.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)
C.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)
D.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的
58.有以下程序voidfun{int*a,inti,intj){intt;if(i<j)t=a[i];a[i]=a[j];a[j]=t;fun(a,++i,--j);}main(){inta[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}執(zhí)行后輸出結(jié)果是
A.654321B.432156C.456123D.123456
59.下面程序的運(yùn)行結(jié)果是include<stdio.h>main(){inta=28,b;chars[10],*p;p=s;do{b=a%16;if(b<10)*p=b+48;else*p=b+55;p++;a=a/5;}while(a>0);*p='\0';puts(s);}
A.10B.C2C.C51D.\0
60.二進(jìn)制數(shù)1110111.11轉(zhuǎn)換成十進(jìn)制數(shù)是()。
A.119.375B.119.75C.119.125D.119.3
四、選擇題(20題)61.
62.有以下程序:
#include<stdio.h>
voidfunc(intn)
{staticintnum=1);
num=num+n;printf("%d",num);
}
main()
{funo(3);func(4);printf("n");}
程序運(yùn)行后的輸出結(jié)果是()。
A.48B.34C.35D.45
63.
64.(67)數(shù)據(jù)處理的最小單位是()
A.數(shù)據(jù)
B.數(shù)據(jù)元素
C.數(shù)據(jù)項(xiàng)
D.數(shù)據(jù)結(jié)構(gòu)
65.
66.下列敘述中正確的是()。
A.棧是“先進(jìn)先出”的線性表
B.隊(duì)列是“先進(jìn)后出”的線性表
C.循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定的
D.循環(huán)隊(duì)列中隊(duì)頭指針是固定不變的
67.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.let=4B.m=2C.m=6D.m=5
68.以下選項(xiàng)中,合法的一組c語言數(shù)值常量是()。
A.12.0Xa234.5e0
B.028.5e…30xf
C.1774el.50abe
D.0x8A10,0003.e5
69.已定義c為字符型常量,則下列語句中正確的是()。
A)c=′97′B)c="97"
C)c=97D)c="a"
70.
下面for語句的循環(huán)次數(shù)為()。
for(x=1,y=0;(y!=19)&&(x<6);x++);
A.是無限循環(huán)B.循環(huán)次數(shù)小定C.最多執(zhí)行6次D.最多執(zhí)行5次
71.
72.
有以下程序:
#include<stdio.h>
main
{intx=4,y;
do
{y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的輸出結(jié)果是()。
A.xyyxB.yyyyC.yyxxD.yxyx
73.以下不能將a所指字符串正確復(fù)制到所指存儲(chǔ)空間的是()。
74.當(dāng)把以下四個(gè)表達(dá)式用作if語句的控制表達(dá)式時(shí),有一個(gè)選項(xiàng)與表達(dá)式(k%2)!=0含義相同,這個(gè)選項(xiàng)是()。
A.k%2==0B.k%2==1C.!k%2==1D.都不同
75.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。
A.可封裝B.自頂向下C.模塊化D.逐步求精
76.
77.
78.有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(xiàn)(a++,b++));}程序運(yùn)行后的輸出結(jié)果是
A.12B.15C.16D.20
79.有兩個(gè)關(guān)系R和T如下:
則由關(guān)系R得到關(guān)系T的操作是()。A.選擇B.投影C.交D.并
80.作為信息處理熱點(diǎn)技術(shù)之一的“多媒體技術(shù)”中的媒體,強(qiáng)調(diào)的是()。
A.存儲(chǔ)媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個(gè)字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。例如,輸入opdye,則應(yīng)輸出deopy。請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include%string.h>#include%stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charC;unsignedi,j;for(i=0;i<strl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 挖掘機(jī)平整地面施工方案
- 錨固樁施工方案
- 惠州市潤根電器有限公司 AC 電源線及插頭的生產(chǎn)建設(shè)項(xiàng)目環(huán)評報(bào)告表
- 初中半期考答案數(shù)學(xué)試卷
- 仿玉石樓梯扶手施工方案
- 小學(xué)校園內(nèi)管網(wǎng)施工方案
- 房建地下連續(xù)梁施工方案
- 別墅的專項(xiàng)施工方案
- 農(nóng)田排水降水施工方案
- 黃桃高產(chǎn)栽培技術(shù)的高效應(yīng)用及科學(xué)推廣措施分析
- DBJ∕T 15-104-2015 預(yù)拌砂漿混凝土及制品企業(yè)試驗(yàn)室管理規(guī)范
- 裝配式建筑疊合板安裝技術(shù)交底
- 2022年HTD-8M同步帶輪尺寸表
- 皮帶滾筒數(shù)據(jù)標(biāo)準(zhǔn)
- 腳手架操作平臺(tái)計(jì)算書
- 內(nèi)科學(xué)第八版循環(huán)系統(tǒng)教學(xué)大綱
- 煤礦供電系統(tǒng)及供電安全講座方案課件
- 綠色建筑及材料分析及案列
- 實(shí)用中西醫(yī)結(jié)合診斷治療學(xué)
- 幕墻工程技術(shù)標(biāo)范本
- 《施工方案封面》
評論
0/150
提交評論