




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年廣東省汕頭市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.某二叉樹的前序和后序序列正好相反,則該二叉樹一定是_____的二叉樹
A.空或者只有一個結點B.高度等于其結點數C.任一結點無左孩子D.任一結點無右孩子
2.C語言中,要求參加運算的數必須是整數的運算符是()。
A./B.!C.%D.==
3.
4.
5.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序運行后的輸出結果是()。A.0B.1C.2D.3
6.A[N][N]是對稱矩陣,將下面三角(包括對角線)以行序存儲到一維數組T[N(N+1)/2]中,則對任一上三角元素a[i][j]對應T[k]的下標k是()。
A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1
7.
8.若有如下函數定義:doublefun(intx,inty){return(x+y);}return語句中表達式值的類型與說明的類型不一致,則以下敘述中正確的是()。
A.運行時出錯B.函數返回的值為int型C.編譯出錯D.函數返回的值為double型
9.有以下程序:#include<stdio.h>intf(intm){staticintn=0;n+=m;returnn;}main(){intn=0;printf("%d,"f(++n));printf("%d\n",f(n++));}程序運行后的輸出結果是()。A.1,2B.1,1C.2,3D.3,3
10.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf(“*”);程序段的運行結果是()。
A.**B.****C.*D.********
11.以下說法錯誤的是()。
A.C語言中的常量是指在程序運行過程中經常被用到的變量
B.C語言中的常量是指在程序運行過程中其值不能被改變的量
C.C語言中的常量可以用一個符號名來代表
D.C語言中的常量可以用宏來定義
12.按照“先進后出”原則組織數據的結構是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
13.設有定義:intk=1,m=2;noatf=7;則下列選項中錯誤的表達式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
14.已知一個大小為n的整型數組,現求該數組的全部連續(xù)子數組的元素之和的最大值,最優(yōu)算法的時間復雜度是()如:a[4]={2,-1,3,-4},它的全部連續(xù)子數組為{2,-1,3,-4,[2,-1],[-1,3],[3,-4],[2,-1,3],[-1,3,-4],[2,-1,3,-4]},它們的元素之和為{2,-1,3,-4,1,2,-1,4,-2,0},其中的最大值為4。
A.O(logN)B.O(N)C.O(N*logN)D.O(N^2)
15.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序運行時在第1列開始輸入ab@并按<Enter>鍵,則運行結果是()。
A.7,1B.3,2C.0,5D.5,0
16.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
17.計算機算法必須具備輸入、輸出和()等5個特性。
A.可行性、可移植性和可擴充性B.可行性、確定性和有窮性C.確定性、有窮性和穩(wěn)定性D.易讀性、穩(wěn)定性和安全性
18.對包含N個元素的散列表進行檢索,平均檢索長度________
A.為o(log2N)B.為o(N)C.不直接依賴于ND.上述三者都不是
19.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10
20.fgetc函數的作用是從指定文件讀入—個字符,該文件的打開方式必須是______。
A.只讀B.追加C.讀或讀寫D.以上均正確
二、2.填空題(20題)21.以下條件表達式可計算:1+|a|的值,請?zhí)羁铡>=0?[6]:[7]
22.函數fun的功能是計算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數中已正確定義m、a、b變量并賦值,并調用fun函數計算:m=a4+b4-(a+b)3。實現這一計算的函數調用語句為【】。
23.在數據庫的概念結構設計中,常用的描述工具是【】。
24.結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。
25.以下程序將數組a的4個元素和數組b的6個元素寫到名為lett.dat的二進制文件中,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
main()
{FILE*fp;
chara[5]="1234",b[7]="abcedf";
if((fp=fopen("【】","wb"))==NULL)exit(0);
fwrite(a,sizeof(char),4,fp);
fwrite(b,【】,1,fp);
fclose(fp);
}
26.若變量n中的值為24,則prnt函數共輸出【】行。
voidprnt(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if!(i%5))printf("\n");
}
printf("\n");
}
27.有以下程序,若運行時從鍵盤輸入:18,11<回車>,則程序的輸出結果是【】。
main()
{inta,b;
printf("Entera,b:");scanf("%d,%d",&a,&b);
while(a!=b)
{while(a>b)a-=b;
while(b>a)b-=a;
}
printf("%3d%3d\n",a,b);
}
28.有以下語句段
intn1=10,n2=20;
printf("【】",n1,n2);
要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>
n1=10
n2=20
29.當調用函數時,實參是一個數組名,則向函數傳遞的是【】。
30.下面fun函數的功能是將形參x的值轉換成二進制數,所得二進制數的每一位數放在數組中返回,二進制數的最低位放在下標為0的元素中,其他依此類推。請?zhí)羁铡?/p>
Fun(intx,intb[])
{intk=0,r;
do
{r=x%2;
()=r;
x/=2;
}while(x);
}
31.C語言中用______表示邏輯值為“真”,用數字“0”表示邏輯值為“假”。
32.在面向對象的設計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。
33.下面程序的功能是:將字符數組a中下標值為偶數的元素從小到大排列,其他元素不變。
#include<stdio.h>
#include<string.h>
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}
34.fun函數的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大數,再求這N個最大值中的最小的那個數作為函數值返回。請?zhí)羁誣_____。
#include<stdio.h>
#defineN100
intfun(int(*a)[N])
{
introw,col,max,min;
for(row=0;row<N;row++)
for(max=a[row][0],col=1;col<N;col++)
if()max=a[row][col];
if(row==0)min=max;
elseif()min=max;
returnmin;
}
35.在深度為5的完全二叉樹中,度為2的結點數最多為【】。
36.本程序用冒泡法對數組a[]的元素從大到小排序,請在程序空白處填空。voidbubble(inta[],intn){inti,j,max,temp;max=n-1;do{j=0;for(i=0;i<max;i++)if(a[i]<a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;j=i;}max=j;}while(());}
37.以下函數把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>
strcen(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!=【】)num++;
while(b[n]){*(a+num)=b[n];num++;【】;}
return(num);
}
38.數據結構分為線性結構和非線性結構,線性表、棧和隊列都屬于【】。
39.類是一個支持集成的抽象數據類型,而對象是類的【】。
40.近年來形成了軟件開發(fā)的多種模式,大致有3種類型:基于瀑布模型的結構化生命周期方法、基于動態(tài)定義需求的【】方法和基于結構的面向對象的軟件開發(fā)方法。
三、1.選擇題(20題)41.相對于數據庫系統(tǒng),文件系統(tǒng)的主要缺陷有數據關聯(lián)差、數據不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
42.以下敘述中正確的是
A.程序應盡可能短
B.為了編程的方便,應當根據編程人員的意圖使程序的流程隨意轉移
C.雖然注釋會占用較大篇幅,但程序中還是應有盡可能詳細的注釋
D.在TURBOC環(huán)境下,運行的程序就是源程序
43.微機顯示器一般有兩組引線,它們是()
A.電源線與信號線B.電源線與控制線C.電源線與地線D.控制線與地線
44.設棧S初始狀態(tài)為空。元素a、b、c、d、e、f依次通過棧S,若出棧的順序為c、f、e、d、b、a,則棧S的容量至少應該為()。
A.6B.5C.4D.3
45.以下敘述中錯誤的是A.gets函數用于從終端讀入字符串
B.getchar函數用于從磁盤文件讀入字符
C.fputs函數用于把字符串輸出到文件
D.fwrite函數用于以二進制形式輸出數據到文件
46.軟件是指()。A.程序B.程序和文檔C.算法加數據結構D.程序、數據與相關文檔的完整集合
47.設a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式為()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
48.有以下程序:voidswap(char*x,char*y){chart;t=*x,*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結果是()。
A.123,abcB.abc,123C.1bc,a23D.321,cba
49.以下各選項均為說明一種新的類型名,其中正確的是()。
A.typedefv1int;
B.typedefv1=int;
C.typedefintv1;
D.typedefv1=int;
50.下列關于棧的描述中,正確的是()
A.在棧中只能插入元素B.在棧中只能刪除元素C.只能在一端插入或刪除元素D.只能在一端插入元素,而在另一端刪除元素
51.在數據庫設計的4個階段;為關系模式選擇存取方法應該在
A.需求分析階段B.概念設計階段C.邏輯設計階段D.物理設計階段
52.若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達式中值為5的是()。
A.(p++)->mB.*(p++)->mC.(*p).mD.*(++p)->m
53.以下程序的輸出結果是_________。#include<stdio.h#defineFUDGE(y)2.84+y#definePR(A)printf("%d",(int)(A))#definePRINT1(A)PR(A);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*X);}
A.11B.12C.13D.15
54.下列程序的輸出結果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}
A.-8B.14C.0D.-24
55.下面的程序ASCⅡ。main(){intx=3,y=0,z=0;if(x==y+z)printf("****");elseprintf("####");}
A.有語法錯誤不能通過編譯B.輸出****C.可以通過編譯,但是不能通過連接,因而不能運行D.輸出####
56.數據庫設計的四個階段是:需求分析、概念設計、邏輯設計和______。A.編碼設計B.測試階段C.運行階段D.物理設計
57.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結果是______。main(){intn;scanf("%d:",&n);if(n++<10)printf("%d\n",n);elseprintf%d\n",n--);}
A.11B.10C.9D.8
58.以下程序的輸出結果是()。main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:C):(B));}
A.5B.4C.6D.不確定
59.若有如下程序:sub(inta,intb,intc){c=a+b;return(c);}main(){intx=3,y=4,z=6;sub(x,y,z);printf('%d”,z);}則程序運行后的輸出結果是()。
A.3B.6C.7D.4
60.下列關于隊列的敘述中正確的是______。A.在隊列中只能插入數據B.在隊列中只能刪除數據C.隊列是先進先出的線性表D.隊列是先進后出的線性表
四、選擇題(20題)61.在深度為7的滿二叉樹中,葉子結點的個數為______。A.32B.31C.64D.63
62.
63.
有以下程序:
main
{intk=5;
while(--k)printf("%d",k-=3);
printf("\n");
}
執(zhí)行后的輸出結果是()。
A.1B.2C.4D.死循環(huán)
64.若想定義int型變量a,b,c,d并都賦值為1,以下寫法中錯誤的是()。
A.inta=b=c=d=1;
B.inta=1,b=1,c=1,d=1;
C.inta,b,c,d;a=b=c=d=1;
D.inta,b,c,d=1;a=b=c=d;
65.有以下程序:
運行時,若輸入123450<;回車>;,則輸出結果是()。
A.66656B.6566456C.66666D.6666656
66.設有定義"doublea[10],*s=a;",以下能夠代表數組元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
67.有以下程序:
若想通過鍵盤輸入,使得al的值為12,a2的值為34,cl的值為字符a,c2的值為字符b,程序運行后的輸出結果是:l2,a,34,b。則正確的輸入格式是(以下-代表空格,<;CR>;代表回車)()。
A.12-a34-b<CR>
B.12-a-34-b<CR>
C.12,a,34,b<CR>
D.12a34b<CR>
68.
69.下列選項中不合法的十六進制數是()。A."0"xff
B."0"X11
C."0"x1g
D."0"Xabc
70.以下選項中,合法的一組c語言數值常量是()。
A.12.0Xa234.5e0
B.028.5e…30xf
C.1774el.50abe
D.0x8A10,0003.e5
71.
72.
73.有以下程序:
#include<stdio.h>
main()
{chara[5][10]={"one","tw0","three","four","five"};
inti,j;
chart:、
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(a[i][O]>a[j][0])
{t=a[i][O];a[i][O]=a[j][O];a[j][O]=t;)
puts(a[1]);
}
程序運行后的輸出結果是()。
A.fwo
B.fix
C.two
D.owo
74.
下述程序的輸出結果是()。
#include<stdio.h>
voidmain
{intb[6]={2,4,6,8,10,12);
int*p=b,**q=&p;
printf("%d,",*(p++));
printf("%d,",**q);
}
A.4,4B.2,2C.4,5D.2,4
75.在下列選項中,沒有構成死循環(huán)的是
76.下列條件語句中,輸出結果與其他語句不同的是()。
A.if(a)printf("%dn",x);elseprint[("%d\n",y)
B.if(a=0)pritf("%dn",y);elseprint[("%d\n",x)
C.if(a!一0)printf("%dn",x);elseprint[("%a\n",y)
D.if(a=O)print[("%dn",x);elseprintf("%d\n",y)
77.
78.
79.
80.
五、程序改錯題(1題)81.下列給定程序中,函數fun()的功能是:實現兩個變量值的交換,規(guī)定不允許增加語句和表達式。例如,變量a中的值原為8,b中的值原為3,程序運行后,a中的值為3,b中的值為8。請改正程序中的錯誤,使它得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構!試題程序:
六、程序設計題(1題)82.編寫函數fun,其功能是:將所有大于1小于整數m的非素數存人XX所指數組中,非素數的個數通過k返回。
例如,若輸入17,則應輸出:46891012141516。注意:部分源程序在文件PROGl.C中。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
參考答案
1.B
2.C
3.A
4.B
5.D
6.B
7.B
8.D題干中“x+y”是整型,函數的返回值是double類型,由于整型可以自動轉換成double類型,因此函數值返回時自動轉換成double類型。故本題答案為D選項。
9.A解析:static變量用于局部變量中有記憶功能和全局生存期。函數中的靜態(tài)變量的特點是每次調用函數,靜態(tài)變量的值是上次調用完該函數后的靜態(tài)變量值,所以在此題中,第一調用函數,返回1,此時函數中的靜態(tài)變量n的值為l,所以第二次調用函數時,返回值為2。
10.C因為內層循環(huán)“for(k=1;k<3;k++)”后面直接跟了空語句“;”,所以在循環(huán)內部什么操作也不做,跳出外層循環(huán)后執(zhí)行printf語句,輸出一個“*”。故本題答案為C選項。
11.AC語言中的常量是指在程序運行過程中其值不能被改變的量,它可以用宏來定義,用一個符號名來代表。選項A錯誤,選項B、C、D正確。本題答案為A選項。
12.B棧是線性表的一種,其插入和刪除運算都只在表的一端進行。進行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元素是最后被插入的元素,不是最后被刪除的元素,是按先進后出的原則組織數據的。
13.C解析:在C語言中,求余運算符“%”兩邊的運算對象都應為整型數據,所以需要對變量f進行強制類型轉換,正確的寫法為k%(int)f。在C語言中,邏輯運算符與賦值運算符、算術運算符、關系運算符之間從高到低的運算優(yōu)先次序是:!(邏輯“非”)、算術運算符、關系運算符、&&(邏輯“與”)、‖(邏輯“或”)、賦值運算符。根據運算符的優(yōu)先級與結合性,對于選項A),先計算k>=k的值(為真,即1),再用1對k進行賦值。對于選取項B),先計算k什的值,再對其取負數。對于選項D),先計算k>=f的值(為假,即0),再用0與m進行比較,故最終結果為0。
14.B
15.Dfun函數接收兩個整型指針變量a、b。for循環(huán)判斷a、b指向的值大小和getchar讀入的字符是否為“@”來決定循環(huán)是否執(zhí)行。循環(huán)體內對a、b指向的值各自自增1、自減1。main函數定義并初始化實參i的值為0,實參j的值為5,調用函數fun,傳入i、j的地址。所以形參a指向i,形參b指向j,*a的值為0,*b的值為5,*a<*b為真,執(zhí)行循環(huán)體;*a的值為1,*b的值為4,*a<*b為真,執(zhí)行循環(huán)體;*a的值為2,*b的值為3,*a<*b為真,執(zhí)行循環(huán)體;*a的值為3,*b的值為2,*a<*b為假,getchar讀入字符“a”,執(zhí)行循環(huán)體;*a的值為4,*b的值為1,*a<*b為假,getchar讀入字符“b”,執(zhí)行循環(huán)體;*a的值為5,*b的值為0,*a<*b為假,getchar讀入字符“@”,fun函數執(zhí)行完畢,main函數輸出5,0。故本題答案為D選項。
16.B解析:本題考查的知識點是變量賦初值.選項A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達式,但因前面沒有定義過n2,所以編譯會報錯“n2未定義”,故不正確。選項B使用一個整數初始化一個字符變量是正確的,因為字符變量中保存的本來就是整數(某字符的ASCII碼值)。選項C定義的初始值表達式中出現了它自身,某些編譯器能通過編譯,但f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項D的初始值是一個非法常量,因為實型常量指數形式的指數部分必須為整數,這里的2.5非法。
17.B
18.C
19.D本題考查continue的用法,continue語句的作用是結束本次循環(huán),直接進行下次循環(huán)。所以在程序中,只有當a=10時,才退出循環(huán),故選擇D選項。
20.D解析:fgetc函數是指從指定的文件讀入—個字符,該文件必須是以讀或讀寫方式打開的。fgetc函數的調用形式為:ch=fgetc(fp);。
21.
22.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數fun(x,n)的作用是求xn,因此a4應該調用函數fun(a,4),b4應該調用函數fun(b,4),(a+b)3應該調用函數fun(a+b,3),所以題目中的數學表達式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。
23.E-R圖E-R圖解析:E-R圖是設計概念模型的有力工具。
24.模塊化模塊化
25.lett.dat6*sizeof(char)lett.dat6*sizeof(char)解析:本題主要考查函數fwrite(char*pt,unsignedsize,unsignedn,FILE*fp),把pt所指向的n*size個字節(jié)輸出到fp所指定的文件中。
26.55解析:本題的關鍵在于if(!(i%5))printf('\\n),這句,即如果i可被5整除時,則換行。i值為24,可以被5整除4次,并余4,因此,prnt函數共輸出5行,最后一行有4個數。
27.1111解析:首先,程序通過scanf()函數將18和11分別讀入到變量a和b中。然后,因為a!=b為真,進入外層while循環(huán)。此時a>b為真,執(zhí)行a-=b;,a的值變?yōu)?8-11=7:接下來b>a也為真,執(zhí)行b-=a;,b的值變?yōu)?1-7=4。此時a!=b還是為真,第2次進入外層循環(huán)。a>b為真,執(zhí)行a-=b;,a的值變?yōu)?-4=3。b>a為真,執(zhí)行b-=a;,b的值變?yōu)?-3=1接下來a!=b為真第3次進入外層循環(huán)。a>b為真,執(zhí)行a-=b,a的值變?yōu)?-1=2。b>a為假,不執(zhí)行b-=a;;然后第4次進入外層循環(huán),a>b為真,執(zhí)行a-=b,a的值變?yōu)?-1=1。b>a為假,不執(zhí)行b-=a;此時a和b均為1了,a!=b條件為假,外層循環(huán)結束。故本題輸出的結果是11。
28.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函數有兩種參數:格式控制參數和輸出項參數,其中格式控制參數由兩種成分組成:格式說明和普通字符,普通字符將被簡單地復制顯示,格式說明項將引起一個輸出參數項的轉換與顯示,它是由“%”引出并以一個類型描述符結束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數,所以格式說明項為%d,也可以在%與d之間加上域寬,另外還要在每行輸出結束時加轉義字符\\n進行換行。所以,應填寫n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。
29.數組的首地址數組的首地址解析:在函數中,可以通過指針變量來引用調用函數中對應的數組元素,此操作是通過傳遞數組的首地址來實現的。
30.b[k++]b[k++]解析:本題的考查點是do-while語句。形參x默認為十進制,要想將一個十進制的數轉換成二進制,可以使用整除求余法,題中的程序段也表明了將使用這種方法,將一個十進制的數轉換成二進制要用這個十進制數不斷的整除2,將每次的余數記錄下來,直至無法再除,此時,整除得到的第一個元素即為二進制數的最低位,其余依次類推,所以在程序段中的橫線處,應當填寫“b[k++]”。
31.非0非0解析:邏輯運算中,非0表示邏輯“真”,用。表示邏輯“假”。
32.消息消息解析:在面向對象技術中,主要用到對象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來請求對象執(zhí)行某一處理或回答某些信息的要求。
33.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]
34.a[iow][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[iow][col]max<min或min>maX或max<=min或min>=maxa[iow][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[iow][col]\r\nmax<min或min>maX或max<=min或min>=max解析:本題有兩層for循環(huán),主函數中定義了整型變量iow、col、max和min,其中row用來存放外循環(huán)中的循環(huán)次數,col用來存放內循環(huán)中的次數,max記錄每行中的最大值;min記錄所有行中最大值中的最小值。在內循環(huán)中,首先給max賦初值為每行的第0列元素值,然后從第一列開始依次與max進行比較。如果大于max則將其值賦給max,當每一行循環(huán)結束,max記錄了每一行的最大值。所以第一個空應該填a[row][col]>max或a[row][col]=max.退出內循環(huán),在第一次退出內循環(huán)時,將min賦初值為第0行的max,然后在每次退出內循環(huán)時,將min和每行的max比較,如果大于max,則將max值賦min,所以第二個空應該填max<min或min>max,當退出外循環(huán)時,min為所有行中的最大值的最小值。
35.1515解析:在深度為5的完全二叉樹中,度為2的結點數最多的是深度為5的滿二叉樹。在深度為5的滿二叉樹中,前4層中所有結點的度為2。即在深度為5的完全二叉樹中,度為2的結點數最多相當于深度為4的滿二叉樹中的結點數。深度為4的滿二叉樹中的結點數為24(上標)-1=15。
36.max>0max>0解析:本題是典型的冒泡排序題,每一次for循環(huán)將從數組a中找出剩下數中的最大的值放在這些數的最前端,若數組a中有n個數,則完成數組排序共需n-1次循環(huán)。令max=n-1,每次循環(huán)后i值增1,i<max條件不足,即n-1次循環(huán)后,此時i=j=max=0,循環(huán)結束。
37.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1
38.線性結構線性結構解析:本題考查了數據結構的基本概念。與棧類似,隊列也是線性表,可以采用鏈式存儲結構,所以帶鏈的隊列屬于線性結構。
39.實例將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。所以,類是對象的抽象,對象則是其對應類的一個實例。
40.原型化原型化
41.D解析:文件系統(tǒng)所管理的數據文件基本上是分散的、相互獨立的,因此相對于數據庫系統(tǒng),以此為基礎的數據處理存在3個缺點,數據冗余大、數據的不一致性、程序與數據的相互依賴(簡稱為數據依賴)。注意:文件系統(tǒng)和數據庫系統(tǒng)各自的特點,人工管理階段及數據庫系統(tǒng)三代的特點。
42.C解析:本題主要考查了C程序編譯、運行等基本概念。選項A)、C)程序的長度沒有什么限制,所以不正確;選項B)程序應該遵循結構化程序設計的理念,不能使程序流程任意的轉移,這樣不利于程序的理解和執(zhí)行;選項D)運行的程序是經過編譯后的二進制文件,而不是源程序。
43.A
44.B解析:根據題中給定的條件,可做如下模擬操作:
①元素a、b、c進棧,棧中有3個元素,分別為a、b、c;
②元素c出棧后,元素d、e、f進棧,棧中有5個元素,分別為a、b、d、e、f;
③元素f、e、d、a、b出棧,棧為空。可以看出,進棧的順序為a、b、c、d、e、f,出棧的順序為c、f、e、d、b、a,滿足題中所提出的要求。
在每一次進棧操作后,棧中最多有3個元素,因此,為了順利完成這些操作,棧的容量應至少為5。本題答案為B。
45.B其中B選項的getchar函數用于從終端讀入字符。故本題答案為B選項。
46.D軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數據及相關文檔的完整集合。其中,程序是軟件開發(fā)人員根據用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令(語句)序列;數據是使程序能正常操縱信息的數據結構;文檔是與程序開發(fā)、維護和使用有關的圖文資料。因此本題的正確答案是D。
47.D
48.C解析:首先看swap()函數,函數中定義了一個臨時字符變量t,然后將形參指針x所指內容存入t,再將形參指針y所指內容存入到x所指內容中,最后將臨時變量t的內容存入到y(tǒng)所指內容中。所以該函數實現的是:交換兩個字符指針所指向的內容。在主函數中,首先定義了兩個字符指針s1和s2,同時用字符串'abc'和'123”來初始化它們,此時它們指向的是兩個字符串的第1個字符。所以,在調用完swap()函數后,彼此交換了兩個字符串的第1個字符,最后輸出結果為1bc,a23。故應該選擇C。
49.C解析:使用typedef定義新類型名的一般格式是:typedef<舊類型名><新類型名>。選項A,int是C語言中已經有的類型名,不能再被定義成其他類型名,故不正確:選項B的格式不正確;選項C是將v1定義成int型,正確;選項D格式不正確。所以,應該選擇C。
50.C\nC)【解析】棧實際也是線性表,只不過是一種特殊的線性表。棧是只能在表的~端進行插入和刪除運算的線性表,通常稱插入、刪除的這一端為棧頂另一端為棧底。當表中沒有元素時稱為空棧。棧頂元素總是最后被插入的元素,從而也是最先被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。
\n
51.D解析:需求分析階段是分析用戶的需求,顯然不屬于這個階段,由此可以排除選項A。概念設計是將需求分析得到的用戶需求抽象為信息結構及概念模型的過程,涉及不到數據的存取。邏輯設計是在概念設計的基礎上將E—R圖轉換成數據庫管理系統(tǒng)的邏輯數據模型表示的邏輯模式,也不涉及存取問題。
52.D
53.B解析:在程序中如果有帶實參的宏,則按#define命令行中指定的字符串從左到右進行置換,如果串中包含宏中的形參,則將程序語句中相應的實參代替形參。將實參帶入已經定義的宏中,可以得出答案為“12”。
54.D解析:表達式a+=a-=a*a看起來復雜,其實將它分成兩個表達式來計算就簡單了:①第一個表達式(a-=a*a)=(a=a-a*a=-12);②第二個表達式(a+=a-=a*a)=(a=a+a=-24)。
55.D解析:對于printf()函數,若有格式控制字符,則在格式控制字符的位置輸出變量i的值;否則,直接輸出雙引號內的內容。
56.DD)【解析】數據庫設計目前一段采用生命周期法.即將整個數據庫應用系統(tǒng)的開分解成目標獨立的若干階段,它們是:需要分析階段、概念設計階段、邏輯設計階段、物理設計階段、編碼階段、測試階段、運行階段、進一步修改階段。在數據庫設計中采用上面幾個階段中的前四個階段,并且重點以數據結構和模型設計為主線。
57.B解析:程序的功能是從鍵盤輸入一個整數,然后執(zhí)行if語句的條件表達式n++<10。表達式n++<10,先執(zhí)行n<10,后對n加1。程序中從鍵盤輸入的n值為9,9<10,判斷的條件為真,然后n加1,即n的值變?yōu)?0,程序執(zhí)行后面的printf語句輸出n的值為10,所以,選項B正確。
58.C解析:本題考核的知識點是條件表達式的使用.在C語言中問號表達式(如:a>c?a:c;)的計算規(guī)則為:如果a>c為真,那么表達式的值為a的值;否則表達式的值為C的值。本題中的printf()函數中的輸出表達式,首先計算括號內的條件表達式,它的值為6(a>c?a:c中a>c即5>6為假故該表達式的值為c的值即為6),然后再計算外面表達式(等價于a>b?6:b)的值,同理可得該表達式的值為6,將值6賦值給d,因此最后輸出該表達式的值為6,所以,4個選項中C為所選。
59.B解析:本題定義了——個子函數sub(),因為sub()的形參為int型變量,而不是指針,即為傳值調用,所以sub()函數不會改變實參x、y、z的值,故最后輸出結果為6,應該選擇B。
60.C隊列是指允許在一端進行插入、而在另一端進行刪除的線性表,選項A和選項B錯誤。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊列又稱為“先進先出”或“后進后出”的線性表,它體現了“先來先服務”的原則,選項C正確,選項D錯誤。
61.C在滿二叉樹中每層的結點數都達到最大值,而且葉子結點全部出現在最底層。第l層(根結點所在的層)有20個結點,第2層有21個結點,……第n層有2n-1個結點。在深度為7的滿二叉樹中,第7層有27-l=64個結點(全部是葉子結點)、在深度為7的滿二叉樹中,共有27—1=127個結點、因此本題的正確答案是C
62.A
63.A解析:因為在while循環(huán)的循環(huán)條件中,一運算符是前綴形式,所以表達式—k的值是k自減之后的值。程序開始時,將k的值初始化為5,然后進入while循環(huán),因為—k的值為4(非零),所以執(zhí)行循環(huán)體輸出k-=3的值1,此時k的值也變?yōu)?。第2次執(zhí)行循環(huán)條件,—k的值為0,所以循環(huán)結束。因此最后輸出的結果是1,故應該選擇A。
64.AC語言中賦值運算符的結合方向是從右向左的,變量先定義后使用。“inta=b=c=d=1;”,本條語句首先執(zhí)行賦值運算“d=1”,由于變量d并未定義,故編譯不通過,提示沒有定義標識符b、c、d,A選項錯誤。故本題答案為A選項。
65.Bswitch語句的執(zhí)行流程是:首先計算switch后面圓括號中表達式的值,然后用此值依次與各個case的常量表達式比較,若圓括號中表達式的值與某個e·*后面的常量表達式的值相等,就執(zhí)行此ca*后面的語句,執(zhí)行后遇break語句就退出switch語句;若圓括號中表達式的值與所有ca$e后面的常量表達式都不等,則執(zhí)行default后面前語句。然后退出。所以輸入l時打印65,輸入2時打印6,輸入3時打印64,輸入4時打印5,輸入5時打印6。
66.B\n用帶下標的指針變量引用一維數組元素若有以下定義和語句:“int*P,s[10],i;P=s}”,且o≤i<10,可以用&.s[i]、s+i和p+i三種表達式來表示s[i]的地址。同時可以用s[
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年二級造價師檢測試題
- 遺傳學在醫(yī)學教育中的定位與角色演變
- 中藥企業(yè)經營管理方案
- 涂料生產線項目可行性研究報告(模板)
- 2025至2030年中國珠寶管理系統(tǒng)行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國泡棉膠行業(yè)投資前景及策略咨詢報告
- 生物制藥企業(yè)經營管理方案
- 山東省棗莊市2020-2021學年高二上學期期中考試生物試題(掃描版)(原卷版)
- 供熱管網提升改造項目可行性研究報告
- 南京中醫(yī)藥大學碩士研究生答辯申請資格審核表
- 稅收政策與社會公平分配問題探討-洞察分析
- 2025屆安徽省合肥市重點中學中考二模生物試題含解析
- 森林生態(tài)旅游與康養(yǎng)基礎知識單選題100道及答案
- DB33T 2239-2020 經顱磁刺激戒毒康復應用管理規(guī)范
- 2025年陜西鋅業(yè)有限公司招聘筆試參考題庫含答案解析
- 露營地自然災害應急預案
- 醫(yī)療損害責任民法典
- 品管圈PDCA大賽作品-普外科提高腹腔鏡術后24小時內腸道通氣率醫(yī)院品質管理案例
- 智能交通信號控制系統(tǒng)維護方案
- 專項04 工藝流程圖題
- DB14∕T 1049.4-2021 山西省用水定額 第4部分:居民生活用水定額
評論
0/150
提交評論