版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2022年甘肅省天水市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)
2.判斷字符串s1是否大于字符串s2,應(yīng)該使用()。
A.if(strcmp(s1,s2)<0)
B.if(s1>s2)
C.if(strcmp(s2,s1)<0)
D.if(strcmp(s1,s2))
3.以下能正確定義一維數(shù)組的選項是()。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
4.索引屬于()。
A.模式B.內(nèi)模式C.外模式D.概念模式
5.對于移動平均算法,是計算某變量之前n個數(shù)值的算術(shù)平均,正確的說法是()
A.空間復(fù)雜度是O(1)B.空間復(fù)雜度是O(n)C.空間復(fù)雜度是O(logn)D.空間復(fù)雜度是O(nlogn)
6.帶有頭節(jié)點的單向鏈表head,其3個數(shù)據(jù)節(jié)點A、B、C的連接關(guān)系如下圖所示:節(jié)點類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點,在不改變P指向的前提下,以下選項中不能訪問C節(jié)點數(shù)據(jù)成員dt的表達(dá)式是()。A.*(*p).next->next->dt
B.p->next->next->dt
C.(*(*(*p).next).next).dt
D.(*(p->next->next)).dt
7.
有如下程序:
main()
{intn[5]={0,0,0},i,k=2;
for(i=0;i&printf("%d\n",n[k]););
}
該程序的輸出結(jié)果是()。
A.不確定的值B.2C.1D.0
8.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
9.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%5.of\n",a);}doublef(doublex){returnx*x+1;}程序運行后的輸出結(jié)果是()。A.503B.401C.500D.1404
10.以下哪種操作最適合先進行排序處理()
A.找最大、最小值B.計算算術(shù)平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值
11.設(shè)有數(shù)組A[i][j],數(shù)組的每個元素長度為3字節(jié),i的值為8,j的值為10,數(shù)組從內(nèi)存首地址BA開始順序存放,下標(biāo)從0開始,當(dāng)以列為主序存放時,元素A[5][8]的存儲首地址為()。
A.BA+141B.BA+180C.BA+222D.BA+225
12.程序段:intx=12;doub1ey=3.141593;printf("%d%8.6f"x,y);的輸出結(jié)果是______。A.123.141593B.123.141593C.12,3.141593D.123,1415930
13.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結(jié)果是()。
A.3B.13C.1D.0
14.p指向線性鏈表中某一結(jié)點,則在線性鏈表的表尾插入結(jié)點s的語句序列是()。
A.while(p->next!=NULL)p=p->next;p->next=s;s->next=NULL;
B.while(p!=NULL)p=p->next;p->next=s;s->next=NULL;
C.while(p->next!=NULL)p=p->next;s->next=p;p->next=NULL;
D.while(p!=NULL)p=p->next->next;p->next=s;s->next=p->next;
15.在所有的排序方法中,關(guān)鍵字比較的次數(shù)與記錄的初始排列次序無關(guān)的是()。
A.希爾排序B.冒泡排序C.直接插入排序D.直接選擇排序
16.下列二叉排序樹中查找效率最高的是()
A.平衡二叉樹B.二叉查找樹C.沒有左子樹的二叉排序樹D.沒有右子樹的二叉排序樹
17.數(shù)據(jù)庫的故障恢復(fù)一般是由()來執(zhí)行恢復(fù)
A.電腦用戶B.數(shù)據(jù)庫恢復(fù)機制C.數(shù)據(jù)庫管理員D.系統(tǒng)普通用戶
18.有三個關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并
19.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序輸出為()。
A.編譯有錯B.0,0,0,3C.1,1,2,0D.0,1,2,0
20.對包含N個元素的散列表進行檢索,平均檢索長度________
A.為o(log2N)B.為o(N)C.不直接依賴于ND.上述三者都不是
二、2.填空題(20題)21.以下函數(shù)用來求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲單元中。請?zhí)羁铡?/p>
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
【】
if(s[*k]<s[i])*k=i;
return【】;}
main()
{inta[10]={876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);}
22.下列程序段的輸出結(jié)果是______。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':printf("good");break;
case'c':printf("morning");
case'd':printf("class");
}
23.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。
24.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于[]。
25.以下程序的運行結(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");}
26.下列程序的輸出結(jié)果是【】。
intt(intx,inty,ntcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
27.數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)具有較高獨立性,數(shù)據(jù)獨立性包括物理獨立性和【】兩個含義。
28."print("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。
29.“printf("%d\n",strlen("\t\"023\xABC\n");”語句的輸出結(jié)果是______。
30.以下程序的運行結(jié)果是()。
main()
(inta=2,b=7,c=5;
switch(a>0)
{case1:switch(b<0)
{case1:switch(");break;
case2:printf("!");break;
}
case0:switch(c==5)
{case0:printf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
31.已定義charch=′$′;inti=1,j;,執(zhí)行j!=ch&&i++以后,i的值為【】。
32.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。
33.以下函數(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]!='\O')n++;
if(p[n]='\0')returnNULL;
return(【】);
}
34.在關(guān)系模型中,二維表的行稱為______。
35.以下程序的運行結(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=%51d\n",k);}
36.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對象。
37.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。
38.設(shè)y為血型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
39.以下程序的運行結(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);}
40.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許刪除的一端稱作()。
三、1.選擇題(20題)41.下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++i<A);printf("%d\n",sum);}
A.2500B.2050C.4D.0
42.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序運行后的輸出結(jié)果是
A.2B.3C.43D.44
43.C語言中最簡單的數(shù)據(jù)類型包括()。
A.整型、實型、邏輯型B.整型、實型、字符型C.整型、字符型、邏輯型D.字符型、實型、邏輯型
44.有以下程序:main(){intm[][3]={1,4,7,2,5,8,3,6,9);inti,j,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}執(zhí)行后輸出結(jié)果是______。
A.456B.258C.369D.789
45.下面程序的執(zhí)行結(jié)果為______。main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d",a);}
A.7B.8C.9D.10
46.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運行該程序的輸出結(jié)果是______。
A.34B.42C.43D.33
47.有以下程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%c\n,c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結(jié)果是()。
A.1267B.1256C.1278D.1245
48.下列程序的運行結(jié)果為()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!='\0';i++)if(str[i]!='a')str[j++]=str[i];str[j]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]%s",str);}
A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab
49.以下程序的輸出結(jié)果是main(){charx=040;printf("%o\n",x<<1);}
A.100B.80C.64D.32
50.有一函數(shù)以下程序段中不能根據(jù)x值正確計算出y值的是
A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;
B.y=0;if(x>0)y=1;elseif(x<0)y=-1;
C.y=0;if(x>=0)if(x>0)y=1;elsey=-1;
D.if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;
51.字符串"\\\"ABCDEF\"\\"的長度是()。
A.15B.10C.7D.8
52.若有定義"int*p[3];",則以下敘述中下確的是
A.定義了一個基類型為int的指針變量p,該變量具有三個指針
B.定義了一個指針數(shù)組p,該數(shù)組含有三個元素,每個元素都是基類犁為int的指針
C.定義了一個名為*p的整型數(shù)組,該數(shù)組含有三個int類型元素
D.定義了一個可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個int類型元素
53.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.選擇排序C.快速排序D.歸并排序
54.以下4個選項中,不能看成一條語句的是
A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;
55.設(shè)有如下說明typedefstruct{intn;charc;doublex;}STD;則以下選項中,能正確定義結(jié)構(gòu)體數(shù)組并賦初值的語句是
A.STDtt[2]={{l,'A',62},{2,'B',75}};
B.STDtt[2]={1,"A",62,2,"B",75};
C.streetn[2]={{1,'A'},{2,'B'}};
D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};
56.C語言規(guī)定,在一個C程序中,main()函數(shù)的位置()。
A.必須在系統(tǒng)調(diào)用的庫函數(shù)之后B.必須在程序的開始C.必須在程序的最后D.可以在任意位置
57.以下合法的十六進制數(shù)是()。
A.0xB.0x4deC.0x1hD.oX77
58.有以下函數(shù)定義:voidfun(intn,doublex){......}若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun正確調(diào)用語句是______。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfun(n,x);
59.有如下程序段
inta=14,b=15,x;
charc=′A′;
x=(a&&b)&&(c<′B′);
執(zhí)行該程序段后,x的值為
A.trueB.falseC.0D.1
60.假定int類型變量占用兩個字節(jié),有定義:intx[10]={0,2,4};,則數(shù)組x在內(nèi)存中占字節(jié)數(shù)是
A.3B.6C.10D.20
四、選擇題(20題)61.
62.運行下列程序,若從鍵盤輸入字符“a”,則輸出結(jié)果是()。
charc;
c=getchar;
if(c>=a&&c<=g)c=c+4:
elseif(c>=9&&c<=2)c=c-21:
elseprintf("inputerror!\n");
putchar(c);
A.fB.tC.eD.d
63.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化
64.函數(shù)ftell(fp)的作用是()。
A.得到fp所指向文件的當(dāng)前讀寫位置B.初始化流式文件的位置指針C.移動流式文件的位置指針D.以上答案均正確
65.設(shè)有宏定義:
66.以下敘述中錯誤的是()。A.算法正確的程序可以有零個輸出
B.算法正確的程序最終一定會結(jié)束
C.算法正確的程序可以有零個輸入
D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果
67.第
42
題
若有說明語句
chara[]="Itismine";
char*p="Itismine";
則以下不正確的敘述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串時,字符串的長度不受限制
C.p變量中存放的地址值可以改變
D.a中只能存放10個字符
68.
69.
70.有以下程序
main()
{
inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)
printf("%d,",*p);
}
程序運行后的輸出結(jié)果是
A.1,2,3,4,5,6,7,8,9,0,B.2,3,4,5,6,7,8,9,10,1,
C.0,1,2,3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,
71.
72.
有以下程序
#include<stdio.h>
inta=1;
intf(intc)
{staticinta=2:
c=c+1:
return(a++)+C;
}
main
(inti,k=0;
for(i=0;i<2;i++){inta=3;k+=f(a);}
k+=a:
printf("%d\n",k);
}
程序運行結(jié)果是()。
A.14B.15C.16D.17
73.有以下程序:
程序運行后的輸出結(jié)果是()。
A.0304B.2050C.3344D.3040
74.
下列程序執(zhí)行后的輸出結(jié)果是()。
main
{intx=f;printf("%c\n",A+(x-a+1));}
A.GB.HC.ID.J
75.
76.若有下的定義:"intt[3][2];",能正確表示t數(shù)組元素地址的表達(dá)式是()。
A.&t[3][2]
B.t[3]
C.t[l]
D.t[2][2]
77.以下敘述中錯誤的是()。
A.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個整數(shù)作為地址值.
D.當(dāng)在程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL
78.
有以下程序:
main
{inti,n=0:
for(i=2;i<5;i++)
{do
{if(i%3)continue:
n++:
}while(!i);
n++:
}
printf("n=%d\n",n);
}
程序執(zhí)行后輸出結(jié)果是()。
A.n=5B.n=2C.n=3D.n=4
79.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
80.若函數(shù)中有定義語句:inta;,則()。
A.系統(tǒng)將自動給a賦初值為0B.系統(tǒng)將自動給a賦初值一lC.這時a中的值無意義D.這時a中無任何值
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:應(yīng)用遞歸算法求某數(shù)a的平方根。求平方根的迭代公式如下:
x1=(xO+a/xO)/2
例如,3的平方根為1.732051。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i<m;i++)18{for(j=0;j<n;j++)19printf("%6d",aa[i][j]);20printf("\n");21}22y=fun(aa);23printf("\nThesum:%d\nM,y);24printf("\n");25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%d",y);28fclose(wf)29/******************/30}
參考答案
1.A解析:C程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本的結(jié)構(gòu)組成,這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù)。
2.C解析:本題考查字符串比較函數(shù)strcmp()。調(diào)用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當(dāng)str1<str2時,返回值為負(fù)數(shù);當(dāng)str1=str2時,返回0;當(dāng)str1>str2,返回值為正數(shù)(注意:不能使用關(guān)系運算符比較兩個字符串的大小)。
3.B解析:選項A)定義的是長度為5的數(shù)組元素,但初值有6個元素,所以錯誤;選項C)不符合數(shù)組定義形式,數(shù)組名后應(yīng)加上“[];選項D)的類型說明符錯誤,應(yīng)改為char;選項B)中的0,1,2,3,4,5分別表示對應(yīng)字符的ASCII碼,所以正確。
4.B解析:內(nèi)模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。
5.A
6.Alink結(jié)構(gòu)體中的next是鏈表中下一個節(jié)點的地址。由于p當(dāng)前指向節(jié)點A,因此p->next是B的地址。p->next->next是C的地址,訪問C的節(jié)點數(shù)據(jù)成員dt可以使用C的地址訪問,即p->next->next->dt,選項B正確?;蛘呤褂媒庖谩?”運算符:(*p)表示節(jié)點A,(*p).next表示B的地址,*((*p).next)表示節(jié)點B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示節(jié)點C,所以C的數(shù)據(jù)成員dt可以表示為(*((*(*p).next).next)).dt,因為“.”運算符優(yōu)先級高于“*”運算符,所以也可以寫為(*(*(*p).next).next).dt,選項C正確。同理,也可以既使用指針運算符,又使用解引用運算符來訪問C的節(jié)點數(shù)據(jù)成員dt,即(*(p->next->next)).dt,選項D正確。選項A中,*p表示A節(jié)點,(*p).next表示節(jié)點B的地址,由于“->”運算符的優(yōu)先級高于“*”運算符,因此先執(zhí)行“->”,即表達(dá)式(*p).next->next->dt引用了C節(jié)點的數(shù)據(jù)成員dt,然后再執(zhí)行解引用運算“*”,這是錯誤的。故本題答案為A選項。
7.D
\n本題for循環(huán)中,當(dāng)i=0時,判斷條件i&printf('%d\n',n[k]),此時i的值是0,輸出n[k]的值也為0,0&0結(jié)果還是0,條件不成立,退出循環(huán)。所以最后輸出結(jié)果為0。
\n
8.A解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個存儲單元,且此存儲單元為2個字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
9.A此題是一個簡單的函數(shù)調(diào)用,當(dāng)i=0并且i<30,執(zhí)行i+=10,并且調(diào)用函數(shù)f,所以當(dāng)i=0時,結(jié)果為1,當(dāng)i=10時,結(jié)果為101,當(dāng)i=20時,結(jié)果為401,所以a=1+101+401=503。
10.C
11.A
12.A解析:在printf函數(shù)常用的格式說明中,每個格式說明都必須用“%”開頭,以—個格式字符作為結(jié)束,在此之間可以根據(jù)需要插入“寬度說明”、左對齊符號“-”、前導(dǎo)零符號“0”等。本題中用到了d和f,d代表輸出符號的十進制整型數(shù),f代表以帶小數(shù)點的數(shù)學(xué)形式輸出浮點數(shù)(單精度和雙精度數(shù))。對于float和double類型的實數(shù),可以用“n1.n2”的形式來指定輸出寬度(n1和n2分別代表—個整常數(shù)),其中n1指定輸出數(shù)據(jù)的寬度(包括小數(shù)點),n2指定小數(shù)點后小數(shù)位的位數(shù),由于輸出格式是以緊湊格式輸出,因此選項A是正確的。
13.AC語言中的轉(zhuǎn)義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數(shù)結(jié)束,因此計數(shù)為3。故本題答案為A選項。
14.A
15.D
16.A
17.CC)【解析】數(shù)據(jù)庫一旦發(fā)生故障,需要及時進行故障恢復(fù),并由數(shù)據(jù)庫管理員負(fù)責(zé)執(zhí)行故障恢復(fù)。
18.C由圖所知,其中,C中只有一個屬性,是除操作。
19.AC語言中規(guī)定else總是和之前與其最近的且不帶else的if配對。題目中,“if(a=1)b=1;c=2;”默認(rèn)省略了else,導(dǎo)致下一句else沒有匹配語句。故本題答案為A選項。
20.C
21.for(I=0;I<t;I++)0for(I=0;I<t;I++),0解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運算,此外,一開始應(yīng)使*k的值為數(shù)組中的某一下標(biāo)值,即*k=0。
22.morningclassmorningclass解析:本題考查了兩個知識點:①“++,--”運算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當(dāng)n='c'時,執(zhí)行“case'c'”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結(jié)果為morningclass。
23.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。
24.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊列也是線性表,也町以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。
25.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。
26.5656解析:本題中a,b,c,d是實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。
27.邏輯獨立性邏輯獨立性解析:數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序。數(shù)據(jù)獨立性一般分為物理獨立性與邏輯獨立性兩個含義。注意:在人工管理階段,文件系統(tǒng)階段和數(shù)據(jù)庫管理階段中數(shù)據(jù)獨立性的特點。
28.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志,\'\\0\'。
\'\\t\',是轉(zhuǎn)義字符,代表橫向跳若干格;\'\\\''是轉(zhuǎn)義字符,代表雙引號;\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符:\'\\xAB\'是以兩位十六進制數(shù)AB表示的ASCII碼字符,只代表一個字符:\'\\n\'是轉(zhuǎn)義字符,代表回車換行?!?/p>
5個子符常量各代表一個字符,再加上字母C,所以返回的長度是6。
29.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。
\'\\t\'f是轉(zhuǎn)義字符,代表橫向跳若干格:'\\'是轉(zhuǎn)義字符,代表雙引號;\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;’僅AB,是以兩位十六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。
5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。
30.#&#&解析:剛開始時,switch后面的表達(dá)式a>0為真(1),與case1匹配,然后執(zhí)行case1后面的switch語句,表達(dá)式b<0值為0,沒有與其匹配的語句,返回外層,因為外層沒有break語句,順序執(zhí)行case0后面的switch語句,表達(dá)式“c==5”值為1,與其后面的case1匹配,因此輸出#,遇到break返回外層,又因為外層沒有break語句,順序執(zhí)行default后的語句,輸出&。
31.11解析:在執(zhí)行邏輯表達(dá)式'j=!ch&&i++'時,首先判斷j=!ch的值,因為'ch=\'$\''不為0,所以'j=!ch=0',編譯系統(tǒng)便不再計算表達(dá)式'i++'的值,i的值不變,仍為1。
32.非0非0解析:邏輯運算中,非0表示邏輯“真”,用。表示邏輯“假”。
33.&P(n)或p+n&P(n)或p+n解析:因為n被初始化為0、p被初始化指向str所指字符串的首地址,所以while循環(huán)的功能是從str所指字符串的第1個字符開始比較,若等于c或等于字符串結(jié)束符'\\0'就跳出循環(huán)。故循環(huán)結(jié)束后,若p[n]為'\\0',則證明str所指字符串不包含c中的字符,應(yīng)該返回NULL,否則應(yīng)該返回p[n]的地址值。返回NULL在第2條if語句中已經(jīng)實現(xiàn),所以我們應(yīng)該填入的表達(dá)式為p[n]的地址值,即&p[n]或p+n。
34.元組元組解析:在關(guān)系型數(shù)據(jù)庫中,用二維表來表示關(guān)系,二維表的表名即關(guān)系名,二維表的行稱為關(guān)系的元組,二維表的列,稱為關(guān)系的屬性。
35.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。
36.類類解析:在面向?qū)ο蠓椒ㄖ校惷枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。
37.77解析:此表達(dá)式為三目運算符,++a的值為6,b--的值為6,則整個表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。
38.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。
39.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。
40.隊頭隊頭解析:隊列是只允許在一端刪除,在另一端插入的順序表,在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。
41.A解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內(nèi),如果i是偶數(shù),則執(zhí)行continue,跳過這一次循環(huán),執(zhí)行下—次循環(huán),否則求和和。最后輸出的值是1到99之間(包括1和99)所有奇數(shù)之和(1+99)*50/2=2500。
42.A解析:本題考核的知識點是if-else語句的程序分析。我們首先看程序中if-else的匹配,由于C語言中規(guī)定else總是與最近的if搭配,因此程序中else與第二個訂搭配,即該if-else語句為第一個if語句的執(zhí)行部分,接著判斷第一個if后面括號里的表達(dá)式的值“a>b”為假('3>4'為假),因此不執(zhí)行后面if-else語句,程序?qū)?zhí)行下面的輸出語句輸出d,而d一直未被改變故為原來的值2,所以,4個選項中選項A符合題意。
43.B解析:選項A)中包含一個不合法的運算符“:=”;選項C)應(yīng)改為(int)18.5%3;選項D)可理解為兩個表達(dá)式:a+7=c+b和a=a+7,因為C語言規(guī)定賦值號的左邊只能是單個變量,不能是表達(dá)式或常量等,所以a+7=c+b是錯的。因此,正確答案是選項B),它相當(dāng)于a=(b=c+2),可分解為兩個表達(dá)式:b=c+2和a=b。
44.C解析:數(shù)組m初始化后結(jié)果為:m[0][0]=1、m[0][1]=4、m[0][2]=7、m[1][0]=2、m[1][1]=5、m[1][2]=8、m[2][0]=3、m[2][1]=6、m[2][2]=9。for循環(huán)語句的作用是輸出數(shù)組元素m[2][0]、m[2][1]和m[2][2],所以輸出結(jié)果為:369。
45.B解析:本題考查循環(huán)輔助控制語句break和continue,建議讀者用本書采用的列表法分析本題。
46.D解析:逗號表達(dá)式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。
47.D解析:在題目中,程序執(zhí)行到scanf()函數(shù)時,會暫停等待用戶輸入4個字符,按題意輸入123<回車>后,字符1~3被分別輸入到c1~c3中,而c4會得到一個換行符'\\n'。然后執(zhí)行第1個getchar()函數(shù),由于前面的scanf()函數(shù)讀完了緩沖區(qū)中的所有字符,所以此時程序會又暫停等待用戶輸入,按題意輸入45678<回車>后,緩沖區(qū)第1個字符'4'被讀入并賦給c5,第2個getchar()函數(shù)會讀入緩沖區(qū)第2個字符'5'。所以最后依次輸出c1、c2、c5、c6的值后,屏幕上的結(jié)果是1245。故應(yīng)該選擇D。
48.A解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。通過函數(shù)abc的執(zhí)行,將字符串中的字母a去掉,保留剩下的。由于是通過指針調(diào)用,所以改變字符串的結(jié)果。
49.A解析:本題考核的知識點是位運算符的應(yīng)用.首先將八進制040轉(zhuǎn)換成二進制數(shù)000100000,在將此;進制數(shù)左移一位為001000000,輸出時轉(zhuǎn)換成八進制數(shù)100。所以,4個選項中A為所選。
50.C解析:首先檢查if與else的配對,然后再分析各分支實現(xiàn)的功能。選項A描述的意思是:在x>=0情況下,則y為1,否則,在x=0時,y為0,剩下的x<0時,y為-1,滿足本題中函數(shù)的要求;選項B描述的意思時:初始化y的值為0,在x>0時,給y重新賦值為1,否則,在x<0時,給y重新賦值為-1,滿足本題中函數(shù)的要求;選項C描述的意思是:在x>=0情況下,如果x>0,則y為1,否則即“x==0”時,y為-1;剩下的x<0時,y為0??梢姶鸢窩實現(xiàn)的結(jié)果不是給定的表達(dá)式。選項D中描述的意思是:在x>=0的情況下,如果x>=0,就給y賦值為1,否則就給y賦值為0,在不是x>=0的其他情況下,就給y賦值為-1,滿足本題中函數(shù)的要求。
51.B解析:本題涉及字符串最基本的兩個概念:①字符串的長度是指字符串中字符的個數(shù),但不包括字符串結(jié)束符;②以反斜杠“\\”開頭的特殊字符序列,意思是把反斜杠后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\\”連同后面的字符為一個長度。
52.B解析:本題考核的知識點是指針數(shù)組的定義。指針數(shù)組也是一種數(shù)組,所有有關(guān)的概念都適用于它。但它與普通的數(shù)組又有區(qū)別,它的數(shù)組元素是指針類型,只能用來存放地址。其格式為:存儲類型數(shù)據(jù)類型*指針數(shù)組名[長度1],其含義為:定義了一個長度1的數(shù)組,其中數(shù)組元素為相應(yīng)存儲類型的指針,對比定義可知,選項A、c和D都不正確,所以,4個選項中選項B符合題意。
53.A解析:以下幾種算法的時間復(fù)雜度分別為:冒泡排序(n2);選擇排序(n2);快速排序(nlog2n);歸并排序(nlog2n)。當(dāng)排序元素序列基本有序的情況下,冒泡排序的交換次數(shù)為0,只是順序掃描數(shù)據(jù)而已,所以其效率是最高的。
54.D解析:選項D)為兩條語句。
55.A解析:本題定義了一個結(jié)構(gòu)體類型并自定義類型名為STD,用戶自定義類型后,就可以利用它進行變量與數(shù)組的定義。定義的方法,與C語言中其他類型的定義完全—樣,定義結(jié)構(gòu)型數(shù)組并賦初值時,每個元素用一對“{”和“}“括起來,字符型元素用”'”括起來。
56.D解析:每個C程序有且只有一個主函數(shù)(main),且程序必須從main()函數(shù)開始執(zhí)行,而且main()函數(shù)可以放在程序中的任意位置。
57.B解析:考查十六進制數(shù)的表示方法。十六進制數(shù)以0x開頭,后面跟著若干位1f的數(shù),所以正確答案為B)。整形常量、實型常量和字符型常量的合法性判斷。
58.C解析:函數(shù)調(diào)用的一般形式為:函數(shù)名(實參表列);,實參與形參的個數(shù)應(yīng)相等,類型應(yīng)一致,在調(diào)用函數(shù)時,不要指定其返回類型,對于返回類型為void的函數(shù),不能作為賦值表達(dá)式的組成部分,所以選C。
59.D解析:在C語言中,邏輯運算符有4個,它們分別是:!(邏輯非)、邏輯或)、&&(邏輯與)、^(異或)。在位運算里面還有&(位與)、|(位或)的運算。本題考查邏輯與運算符的用法,在表達(dá)式x=(a&&b)&&(c<'B');中,先判斷a&&b條件,邏輯與條件的兩邊都要保證為1,即a和b都成立,當(dāng)然c<'B'是成立的,顯然,該表達(dá)式的值為1。
60.D解析:x數(shù)組共有10個元素,在花括弧內(nèi)只提供3個初值,這表示只給前面的3個成員賦值,后7個元素的值為0,所以,一共有20個字節(jié)。
61.B
62.C
\ngetchar函數(shù)是讀取鍵盤的輸入函數(shù),本題中輸入字母“a”,則c=a,判斷if條件,發(fā)現(xiàn)a>=a&&a<=g成立,則執(zhí)行下列語句:C=C+4,C得到的字符的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符。
63.C棧是先進后出的數(shù)據(jù)結(jié)構(gòu),在對棧操作的整個過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來完成,因此本題答案為c)。
64.A解析:位置指針當(dāng)前值函數(shù)ftell()的基本調(diào)用格式為:ftell(fp)。
ftell()函數(shù)的參數(shù)說明:“fp”是指向文件的文件型指針。
ftell函數(shù)的功能:得到fp所指向文件的當(dāng)前讀寫位置,即位置指針的當(dāng)前值,如果函數(shù)的返回值為-1L,表示出錯。
65.AIsDIV(k,n)判斷k被n整除是否余l(xiāng),所以IsDIV(m,5)&&IsDIV(m,7)就是判斷m被5和7整除是否都余l(xiāng)。
66.A算法有零個或多個輸入,有一個或多個輸出,所以A)錯誤。
67.D在C程序中,可以用字符數(shù)組存放一個字符串,然后輸出該字符串,也可以用字符指針指向一個字符串。
題目中用字符數(shù)組a[]來存放字符串'Itismine',a為數(shù)組名,表示首元素的地址,即字母I的地址。a+1表示數(shù)組中第二個元素t的地址,選項A正確。當(dāng)用字符串指針指向字符串時,只是將字符串的第一個元素的地址賦給指針,當(dāng)該指針指向其他字符串時,只需將該字符串的第一個元素地址賦給這個指針即可,和字符串的長度沒有關(guān)系,選項B也是正確的。指針變量的值為元素的地址,和元素具體的值沒有關(guān)系,當(dāng)指針指向不同的元素時,存放的地址也會發(fā)生改變,故選項C是正確的。數(shù)組a初始化時沒有指定數(shù)組長度,系統(tǒng)自動根據(jù)初值個數(shù)確定數(shù)組長度,題目中只是將10個有效字符存放到數(shù)組中,不能說明這個數(shù)組只能存放10個字符。
68.C
69.A
70.A在本題中,程序首先定義了一個一維數(shù)組a,并賦了初值,數(shù)組a中元素的個數(shù)為10個,另外,程序定義了一個同類型的指針變量p。然后用一個for循環(huán)用指針變量p對數(shù)組進行操作。在循環(huán)開始前,將指針變量指向數(shù)組的開始位置,即指向數(shù)組的第一個元素。
第一次循環(huán)時,指針變量p指向的是數(shù)組第一個元素,輸出該元素應(yīng)該為1;然后指針變量自加1,即將指針變量后移一位,使其指向數(shù)組的第二個元素,開始第二次循環(huán),此時,指針變量指向數(shù)組第二個元素,輸出該元素為2,然后指針變量自加1。同樣,利用指針變量p可以輸出數(shù)組中后面的元素,直到輸出最后一個元素。因此,最后的輸出結(jié)果是1,2,3,4,5,6,7,8,9,0,。
71.B
72.A
\n在主函數(shù)中,k的初值為0,首先調(diào)用函數(shù)f(3),返回值為6,k的值變?yōu)?,而函數(shù)intfun(intc)中的局部靜態(tài)變量a等于3。第二次調(diào)用函數(shù)f(3)時,返回值為7,所以k=6+7=13。退出循環(huán)語句,k再加上全局變量a的值l,其最終的值為14。
\n
73.D第一次循環(huán)i為0,i%2為o,執(zhí)行switch(a[O]%2)中的ca∞0語句后內(nèi)容即a[0]++,a[0]的值變成3;第二次循環(huán)i的值為l,i%2為1,執(zhí)行ca∞1:a[i]=0;所以a[1]的值變成0;第三次循環(huán)i的值為2,i%2為0,執(zhí)行switch(a[2]%2)中的ca∞1語句后的內(nèi)容a[2]一一,8[2]的值變成4;第四次循環(huán)i的值為3,i%2為1,執(zhí)行casel:a[i]=0;所以a[3]的值變成0。
74.D
\n因為x=f,所以寫成A+(x-a+1)=A+(f-a+1)=A+6=J,故選擇D選項。
\n
75.A
76.C\n數(shù)組的下標(biāo)是從0開始的,A中越界,行下標(biāo)和列下標(biāo)都不能越界;B中,雖然是個地址,但是也同樣越界了;選項c中表示的是第一個的首地址;選項D表示的為其元素的值,并不是地址。
\n
77.C解析:函數(shù)形參和實參分別占用不同的內(nèi)存單元,改變形參的值不會影響對應(yīng)實參的值,選項A)正確。指針類型的函數(shù)可以返回地址值,選項B)正確。在文件stdio.h中,NULL被定義為void型的指針,選項D)也正確。指針變量的值只能是存儲單元地址,而不能是一個整數(shù),選項C)錯誤。
78.D
\ncontinue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。
\n
79.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。
80.C用int方法定義變量時,編譯器僅為變量開辟存儲單元,并沒有在存儲單元中放任何值,此時變量中的值是無確定的,稱變量值”無意義”。因此,本題正確答案為c。81.(1)錯誤:proc(doublea,doublexO)
正確:doubleproc(doublea,doublexO)
(2)錯誤:if(1abs(xl-xO)>0.00001)
正確:if(fabs(x1-xO)>=0.00001)
【解析】由主函數(shù)中的proc函數(shù)調(diào)用可知。函數(shù)proc應(yīng)該有一個double型的返回值。因此,“proc(doublea,doublexO)”應(yīng)改為“doubleproc(doublea,doublexO)”;由double型數(shù)據(jù)的精確值可知,“if(fabs(xl-xO)>0.00001)”應(yīng)改為“if(1abs(xl-xO)>=0.00001)”。
82.1intfun(inta[M][N])2{3inti,j,sum=0;4for(i=0;i<m;i++)5for(j=0;j<n;j++)6if(i==o||i==M-1||j==0||j==N-1)/*只要下標(biāo)中有一個為?;騇-1或N-1,則它一定是周邊元素*/7sum=sum+a[i][j];/*將周邊元素相加*/8returnsum;9}本題采用逐一判斷的方式求數(shù)組周邊元素和。二維數(shù)組周邊元素的規(guī)律是,其兩個下標(biāo)中一定有一個是0或M-1或N-1。程序中循環(huán)語句用來控制數(shù)組的行和列,條件語句用來判斷數(shù)組元素是否為周邊元素。</n;j++)</m;i++)</n;j++)</m;i++)2022年甘肅省天水市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)
2.判斷字符串s1是否大于字符串s2,應(yīng)該使用()。
A.if(strcmp(s1,s2)<0)
B.if(s1>s2)
C.if(strcmp(s2,s1)<0)
D.if(strcmp(s1,s2))
3.以下能正確定義一維數(shù)組的選項是()。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
4.索引屬于()。
A.模式B.內(nèi)模式C.外模式D.概念模式
5.對于移動平均算法,是計算某變量之前n個數(shù)值的算術(shù)平均,正確的說法是()
A.空間復(fù)雜度是O(1)B.空間復(fù)雜度是O(n)C.空間復(fù)雜度是O(logn)D.空間復(fù)雜度是O(nlogn)
6.帶有頭節(jié)點的單向鏈表head,其3個數(shù)據(jù)節(jié)點A、B、C的連接關(guān)系如下圖所示:節(jié)點類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點,在不改變P指向的前提下,以下選項中不能訪問C節(jié)點數(shù)據(jù)成員dt的表達(dá)式是()。A.*(*p).next->next->dt
B.p->next->next->dt
C.(*(*(*p).next).next).dt
D.(*(p->next->next)).dt
7.
有如下程序:
main()
{intn[5]={0,0,0},i,k=2;
for(i=0;i&printf("%d\n",n[k]););
}
該程序的輸出結(jié)果是()。
A.不確定的值B.2C.1D.0
8.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
9.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%5.of\n",a);}doublef(doublex){returnx*x+1;}程序運行后的輸出結(jié)果是()。A.503B.401C.500D.1404
10.以下哪種操作最適合先進行排序處理()
A.找最大、最小值B.計算算術(shù)平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值
11.設(shè)有數(shù)組A[i][j],數(shù)組的每個元素長度為3字節(jié),i的值為8,j的值為10,數(shù)組從內(nèi)存首地址BA開始順序存放,下標(biāo)從0開始,當(dāng)以列為主序存放時,元素A[5][8]的存儲首地址為()。
A.BA+141B.BA+180C.BA+222D.BA+225
12.程序段:intx=12;doub1ey=3.141593;printf("%d%8.6f"x,y);的輸出結(jié)果是______。A.123.141593B.123.141593C.12,3.141593D.123,1415930
13.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結(jié)果是()。
A.3B.13C.1D.0
14.p指向線性鏈表中某一結(jié)點,則在線性鏈表的表尾插入結(jié)點s的語句序列是()。
A.while(p->next!=NULL)p=p->next;p->next=s;s->next=NULL;
B.while(p!=NULL)p=p->next;p->next=s;s->next=NULL;
C.while(p->next!=NULL)p=p->next;s->next=p;p->next=NULL;
D.while(p!=NULL)p=p->next->next;p->next=s;s->next=p->next;
15.在所有的排序方法中,關(guān)鍵字比較的次數(shù)與記錄的初始排列次序無關(guān)的是()。
A.希爾排序B.冒泡排序C.直接插入排序D.直接選擇排序
16.下列二叉排序樹中查找效率最高的是()
A.平衡二叉樹B.二叉查找樹C.沒有左子樹的二叉排序樹D.沒有右子樹的二叉排序樹
17.數(shù)據(jù)庫的故障恢復(fù)一般是由()來執(zhí)行恢復(fù)
A.電腦用戶B.數(shù)據(jù)庫恢復(fù)機制C.數(shù)據(jù)庫管理員D.系統(tǒng)普通用戶
18.有三個關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并
19.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序輸出為()。
A.編譯有錯B.0,0,0,3C.1,1,2,0D.0,1,2,0
20.對包含N個元素的散列表進行檢索,平均檢索長度________
A.為o(log2N)B.為o(N)C.不直接依賴于ND.上述三者都不是
二、2.填空題(20題)21.以下函數(shù)用來求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲單元中。請?zhí)羁铡?/p>
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
【】
if(s[*k]<s[i])*k=i;
return【】;}
main()
{inta[10]={876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);}
22.下列程序段的輸出結(jié)果是______。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':printf("good");break;
case'c':printf("morning");
case'd':printf("class");
}
23.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。
24.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于[]。
25.以下程序的運行結(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");}
26.下列程序的輸出結(jié)果是【】。
intt(intx,inty,ntcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
27.數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)具有較高獨立性,數(shù)據(jù)獨立性包括物理獨立性和【】兩個含義。
28."print("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。
29.“printf("%d\n",strlen("\t\"023\xABC\n");”語句的輸出結(jié)果是______。
30.以下程序的運行結(jié)果是()。
main()
(inta=2,b=7,c=5;
switch(a>0)
{case1:switch(b<0)
{case1:switch(");break;
case2:printf("!");break;
}
case0:switch(c==5)
{case0:printf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
31.已定義charch=′$′;inti=1,j;,執(zhí)行j!=ch&&i++以后,i的值為【】。
32.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。
33.以下函數(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]!='\O')n++;
if(p[n]='\0')returnNULL;
return(【】);
}
34.在關(guān)系模型中,二維表的行稱為______。
35.以下程序的運行結(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=%51d\n",k);}
36.在面向?qū)ο蠓椒ㄖ校尽棵枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。
37.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。
38.設(shè)y為血型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
39.以下程序的運行結(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);}
40.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許刪除的一端稱作()。
三、1.選擇題(20題)41.下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++i<A);printf("%d\n",sum);}
A.2500B.2050C.4D.0
42.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序運行后的輸出結(jié)果是
A.2B.3C.43D.44
43.C語言中最簡單的數(shù)據(jù)類型包括()。
A.整型、實型、邏輯型B.整型、實型、字符型C.整型、字符型、邏輯型D.字符型、實型、邏輯型
44.有以下程序:main(){intm[][3]={1,4,7,2,5,8,3,6,9);inti,j,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}執(zhí)行后輸出結(jié)果是______。
A.456B.258C.369D.789
45.下面程序的執(zhí)行結(jié)果為______。main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d",a);}
A.7B.8C.9D.10
46.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運行該程序的輸出結(jié)果是______。
A.34B.42C.43D.33
47.有以下程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%c\n,c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結(jié)果是()。
A.1267B.1256C.1278D.1245
48.下列程序的運行結(jié)果為()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!='\0';i++)if(str[i]!='a')str[j++]=str[i];str[j]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]%s",str);}
A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab
49.以下程序的輸出結(jié)果是main(){charx=040;printf("%o\n",x<<1);}
A.100B.80C.64D.32
50.有一函數(shù)以下程序段中不能根據(jù)x值正確計算出y值的是
A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;
B.y=0;if(x>0)y=1;elseif(x<0)y=-1;
C.y=0;if(x>=0)if(x>0)y=1;elsey=-1;
D.if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;
51.字符串"\\\"ABCDEF\"\\"的長度是()。
A.15B.10C.7D.8
52.若有定義"int*p[3];",則以下敘述中下確的是
A.定義了一個基類型為int的指針變量p,該變量具有三個指針
B.定義了一個指針數(shù)組p,該數(shù)組含有三個元素,每個元素都是基類犁為int的指針
C.定義了一個名為*p的整型數(shù)組,該數(shù)組含有三個int類型元素
D.定義了一個可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個int類型元素
53.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.選擇排序C.快速排序D.歸并排序
54.以下4個選項中,不能看成一條語句的是
A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;
55.設(shè)有如下說明typedefstruct{intn;charc;doublex;}STD;則以下選項中,能正確定義結(jié)構(gòu)體數(shù)組并賦初值的語句是
A.STDtt[2]={{l,'A',62},{2,'B',75}};
B.STDtt[2]={1,"A",62,2,"B",75};
C.streetn[2]={{1,'A'},{2,'B'}};
D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};
56.C語言規(guī)定,在一個C程序中,main()函數(shù)的位置()。
A.必須在系統(tǒng)調(diào)用的庫函數(shù)之后B.必須在程序的開始C.必須在程序的最后D.可以在任意位置
57.以下合法的十六進制數(shù)是()。
A.0xB.0x4deC.0x1hD.oX77
58.有以下函數(shù)定義:voidfun(intn,doublex){......}若以下選項中的變量都已正確定
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度新型公寓托管出租合同范本3篇
- 二零二五年度智能廣告牌匾技術(shù)研發(fā)與應(yīng)用合同3篇
- 2025年度校園體育設(shè)施租賃管理服務(wù)合同3篇
- 二零二五年度服務(wù)貿(mào)易統(tǒng)計與分析合同3篇
- 二零二五年份白酒行業(yè)創(chuàng)新技術(shù)研發(fā)與應(yīng)用合同3篇
- 二零二五年度化妝品店會員折扣合同3篇
- 英語ai課程設(shè)計
- 通源課程設(shè)計哪個簡單
- 二零二五年度智慧教育項目技術(shù)服務(wù)費合同模板3篇
- 二零二五年度歷史文化名城保護建設(shè)項目合同補充條款3篇
- GJB9001C版標(biāo)準(zhǔn)培訓(xùn)課件
- 船舶防火與滅火(課件)
- 七、監(jiān)理工作重點、難點分析及對策
- 面膜中藍(lán)銅肽經(jīng)皮滲透性和改善皮膚衰老作用研究
- 湖北省荊州市八縣市2023-2024學(xué)年高一上學(xué)期1月期末考試 化學(xué) 含解析
- 專題05 說明文閱讀(必考題型梳理)50題-2023-2024學(xué)年八年級語文下學(xué)期期中專題復(fù)習(xí)(上海專用)(解析版)
- 《水文化概論》全套教學(xué)課件
- 2023年四川省公務(wù)員錄用考試《行測》真題卷及答案解析
- 社區(qū)共享菜園建設(shè)方案及實施計劃
- 光伏業(yè)務(wù)合同范例
- 華北理工大學(xué)《高等代數(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
評論
0/150
提交評論