




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年山西省朔州市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.以下合法的字符型常量是A.B.C.D.
3.一個關系中屬性個數為1時,稱此關系為()。
A.對應關系B.單一關系C.一元關系D.二元關系
4.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序運行后的輸出結果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3
5.有以下程序段:
以下選項中表達式的值為11的是()。
A.
B.
C.
D.
6.下列敘述中正確的是()
A.一個算法的空間復雜度打,則其時間復雜度也必定大
B.一個算法的空間復雜度大,則其時間復雜度也必定小
C.一個算法的時間復雜度大,則其空間復雜度也必定小
D.算法的時間復雜度與空間復雜度沒有直接相關
7.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。
A.數組x和數組y等價B.數組x和數組y的長度相同C.數組x的長度大于數組y的長度D.數組x的長度小于數組y的長度
8.具有20個結點的二叉樹,其深度最多為_______。
A.4B.5C.6D.20
9.以下說法不正確的是
A.C程序中必須有一個main()函數,C程序是從main()函數的第1條語句開始執(zhí)行的。
B.非主函數都是在執(zhí)行主函數時,通過函數調用或嵌套調用而得以執(zhí)行的。
C.C程序中的main()函數必須放在程序的開始位置。
D.C程序中的main()函數位置可以任意指定。
10.設x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
11.遞歸式的先序遍歷一個n節(jié)點,深度為d的二叉樹,則需要棧空間的大小為()
A.O(logn)B.O(nlogn)C.O(n)D.O(d)
12.在C語言中,只有在使用時才占用內存單元的變量,其存儲類型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
13.
14.在一個C程序中
A.main函數必須出現(xiàn)在所有函數之前
B.main函數可以在任何地方出現(xiàn)
C.main函數必須出現(xiàn)在所有函數之后
D.main函數必須出現(xiàn)在固定位置
15.深度為5的二叉樹至多有C個結點。
A.16B.32C.31D.10
16.
17.下面程序的輸出結果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}
A.abcdeB.aC.不確定D.bcdef
18.設有定義的語句:“charc1=92,c2=92;”,則以下表達式中的值為零的是()。
A.c1^c2B.c1&c2C.~c2D.c1|c2
19.
20.在以下給出的表達式中,與“while(E)”中的“(E)”不等價的表達式是()。
A.(E>0||E<0)B.(E==0)C.(!E==0)D.(E!=0)
二、2.填空題(20題)21.以下程序的功能是調用函數fun計算:m=1-2+3-4+…+9-10,并輸出結果。請?zhí)羁铡?/p>
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
m+=i*f;
f=【】;
returnm;
}
main()
{printf("m=%d\n",【】);}
22.設Y是int型變量,請寫出判斷Y為奇數的關系表達式【】。
23.以下程序由終端鍵盤輸入一個文件名,然后把從終端鍵盤輸入的字符依次存放到該文件中,用#作為結束輸入的標志,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
charch,fname[10];
printf("Inputthenam\n");
gets(fname);
if((fp=【】==NULL)
{printf("Cannotopen\n");exit(0);}
printf("Enterdata\n");
while(ch=getchar()!='#')
fputc(【】,fp);
fclose(fp);
}
24.想通過以下輸入語句給x賦值2,給y賦值3,則輸入數據的形式應該是______。
intx,y;
scanf("x=%d,y=%d",&x,&y);
25.算法的復雜度主要包括【】復雜度和空間復雜度。
26.假定變量x為int類型,請以最簡單的形式寫出與邏輯表達式!x等價的C語言關系表達式【】。
27.對長度為8的線性表進行冒泡排序,最壞情況下需要比較的次數為()。
28.有以下程序:
#include<stdio.h>
main()
{intn=0,m=1,x=2;
if(!n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
執(zhí)行后的輸出結果是【】。
29.軟件的【】設計又稱為總體結構設計,其主要任務是建立軟件系統(tǒng)的總體結構。
30.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
31.以下程序段打開文件后,先利用fseek函數將文件位置指針定位在文件末尾,然后調用ftell函數返回當前文件的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longfl;
myf=【】("test.t","rb”);
fseek(myf,()SEEK_END);fl+ftell(myf);
fclose(myf);
printf("%ld\n",fl);
32.以下程序運行后輸出結果是【】。
#include<stdio,h>
voidswap(y)
{intt;
t=x;x=y;y=t:printf("%d%d",x,y);
}
main()
{ihta=3,b=4:
swap(a,b);prinff("%d%d",a,b);
}
33.設一棵完全二叉樹共有700個結點,則在該二叉樹中有【】個葉子結點。
34.函數pi的功能是根據以下近似公式求π值:
請在下面的函數中填空,完成求π的功能。
#include<math.h>
doublepi(longn)
{doubles=0.0;
longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*s));
}
35.若x和n均是int型變量,且x=12,n=5,則執(zhí)行y=x%=(n%=2)表達式后y的值為()。
36.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
37.數據庫保護分為:安全性控制、______、并發(fā)性控制和數據的恢復。
38.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數據的形式應該是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
39.有以下程序:
intsub(intn){return(n/10+n%10);}
main()
{intx,y;
scanf("%d",&x);
y=sub(sub(sub(x)));
printf("%d\n",y);
}
若運行時輸入:1234<回車>,程序的輸出結果是【】。
40.在面向對象方法中,信息隱蔽是通過對象的______性來實現(xiàn)的。
三、1.選擇題(20題)41.以下不構成無限循環(huán)的語句或者語句組是()。
A.n=0;
B.n=0;do{++n;}while(n<=0);while(1){n++}
C.n=10;
D.for(n=0,i=1;;i++)n+=i;while(n);{n--;)
42.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序運行后的輸出結果是()。
A.4B.3C.2D.1
43.按照“先進先出”組織數據的數據結構是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
44.假定以下程序經編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入:PROGABCDEFGHIJKL<回車>,則輸出結果為main(intargc,char*argv0[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}
A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH
45.下列程序的輸出結果是()。main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
46.有以下程序:main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序執(zhí)行后的輸出結果是()。
A.自然數1~9的累加和B.自然數1~10的累加和C.自然數1~9中奇數之和D.自然數1~10中偶數之和
47.算法的有窮性是指A.算法程序的運行時間是有限的
B.算法程序所處理的數據量是有限的
C.算法程序的長度是有限的
D.算法只能被有限的用戶使用
48.以下選項中,當x為大于1的奇數時,值為0的表達式是
A.x%2==1B.x/2C.x%21=0D.x%2==0
49.已定義下列函數:intfun(int*p){return*p;)fun函數返回值是()。
A.不確定的值B.一個整數C.形參p中存放的值D.形參p的地址值
50.以下選項中合法的用戶標識符是A.longB._2TestC.3DmaxD.A.dat
51.已經定義ch為字符型變量,以下賦值表達式中錯誤的是______。
A.ch='\'B.ch=62+3C.ch=NULLD.ch='\xaa'
52.函數重載是指
A.兩個或兩個以上的函數取相同的函數名,但形參的個數或類型不同
B.兩個以上的函數取相同的名字和具有相同的參數個數,但形參的類型可以不同
C.兩個以上的函數名字不問,但形參的個數或類別相同
D.兩個以上的函數取相同的函數名,并且函數的返回類型相同
53.下面程序段的輸出為()。
#include"stdio.h"
main
{
printf("%d\n",12<<2);
}
A.0B.47C.48D.24
54.下列司用于C語言用戶標識符的一組是______。
A.voiddefineWORD
B.a3_b3_123Car
C.For_abcIFCase
D.2aDOsizeof
55.某二叉樹中有n個度為2的節(jié)點,則該二叉樹中的葉子節(jié)點為()。
A.n+1B.n-1C.2nD.n/2
56.下列司用于C語言用戶標識符的—組是______。
A.voiddefineWORD
B.a3_b3_123Car
C.For-abcIFCase
D.2aDOsizeof
57.已知inta=2,b=3;則執(zhí)行表達式a=a<b后,變量a的值為()。
A.0B.1C.2D.3
58.若有下列說明和語句,則對結構體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
59.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
60.下列敘述中,錯誤的是()
A.數據的存儲結構與數據處理的效率密切相關
B.數據的存儲結構與數據處理的效率無關
C.數據的存儲結構在計算機中所占的空間不一定是連續(xù)的
D.一種數據的邏輯結構可以有多種存儲結構
四、選擇題(20題)61.
62.下列關于數據庫設計的敘述中,正確的是()。
A.在需求分析階段建立數據字典
B.在概念設計階段建立數據字典
C.在邏輯設計階段建立數據字典
D.在物理設計階段建立數據字典
63.已有定義:chara[]="xyz",b[]={′x′,′y′,′z′};,以下敘述中正確的是()。
A)數組a和b的長度相同B)a數組長度小于b數組長度
C)a數組長度大于b數組長度D)上述說法都不對
64.
下列程序的輸出的結果是()。
main
{doubled=3.2;intx,Y;
x=1.2;v=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
65.若有以下程序段:
輸出結果是()。
A.2B.4C.8D.16
66.以下函數實現(xiàn)按每行8個輸出w所指數組中的數據
67.有以下程序段:
程序運行后的輸出結果是()。
A.a=10b=50C=30
B.a=10b=50c=10
C.a=10b=30c=10
D.a=50b=30c:50
68.若有說明“chars1[30]="abc",s2[]="defghi";",則在使用函數stoat(s1,s2)后,結果是()。A.A.s1的內容更新為abcdefghiB.s1的內容更新為defghi\0
C.s1的內容更新勾defghiabc\0
D.s1的內容更新為abcdefghi\0
69.以下敘述中正確的是______。A.預處理命令行必須位于源文件的開頭
B.在源文件的一行上可以有多條預處理命令
C.宏名必須用大寫字母表示
D.宏替換不占用程序的運行時間
70.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
71.以下是if語句的基本形式:
if(表達式.語句
其中“表達式”()。
A.必須是邏輯表達式B.必須是關系表達式C.必須是邏輯表達式或關系表達式D.可以是任意合法的表達式
72.已知intx=(1,2,3,4);變量x的值是()。
A.1B.2C.3D.4
73.有以下程序:
程序運行后的輸出結果是()。
A.22B.76C.72D.62
74.以下關于C語言數據類型使用的敘述中錯誤的是()。
A.若要處理如“人員信息”等含有不同類型的相關數據,應自定義結構體類型
B.若要保存帶有多位小數的數據,可使用雙精度類型
C.若只處理“真”和“假”兩種邏輯值,應使用邏輯類型
D.整數類型表示的自然數是準確無誤差的
75.有以下程序:
#include<stdio.h>
main
{intx=4,y;
do
{y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的輸出結果是()。A.A.xyyxB.yyyyC.yyxxD.yxyx
76.
77.
A.*P=*q;B.P=q;C.*P=&nl;D.P=*q;
78.軟件的()設計又稱總體結構設計,其主要任務是建立軟件系統(tǒng)的總體結構。
A.概要B.抽象C.邏輯D.規(guī)劃
79.以下關于typedef的敘述錯誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代替
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性
80.以下敘述中錯誤的是()。
A.c語言是一種結構化程序設計語言
B.使用三種基本結構構成的程序只能解決簡單問題
C.結構化程序設計提倡模塊化的設計方法
D.結構化程序由順序、分支、循環(huán)三種基本結構組成
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:計算str所指字符串中含有t所指字符串的數目,并作為函數值返回。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。編寫函數fun(),其功能是刪除字符串中所有的*號。編寫函數時,不得使用C語言提供的字符串函數。例如,字符串中的內容為“****A*BC*DEF*G*******”,刪除后,字符串中的內容應當是“ABCDEFG”。注意:部分源程序給出如下。請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(char*a){}voidmain(){ chars[81]; printf(“Enterastring:\n”); gets(s); fun(s); printf(“Thestringafterdeleted:\n”); puts(s);}
參考答案
1.C
2.A解析:C語言的字符常量是用單引號(即撇號)括起來的一個字符。除此之外,在C語言中還允許用以一個“\\”開頭的字符序列來表示字符常量。其中,形式“\\ddd”表示1到3位8進制數所代表的字符;形式“\\xhh”表示1到2位16進制數所代表的字符。在本題中‘\\x13’表示回車符,是一個字符常量;‘\\081’用\u30008進制數所代表的字符,但形式不正確,因為8進制數所表示的字符中不會出現(xiàn)數字“8”;‘65’不是一個字符,而是一個+進制數字;“\\n”是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。
3.C解析:在關系模型數據庫中,基本結構是二維表,這種二維表稱為關系。關系的列稱為屬性,一個具有N個屬性的關系稱為N元關系。注意:各種關系查詢語言與過程性語言和非過程性語言的關系,過程性語言的特點。
4.Asizeof是運算符,計算數組、指針、類型、對象、函數等所占的字節(jié)大小。strlen(*char)是函數,參數必須是字符型指針(char*)。該函數的功能是:返回字符串的長度,不包括字符串結束標識。“sizeof(a)”是求數組a所占空間的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就結束,“strlen(a)”=4。“strier(b)”是指針指向的字符串長度,“sizeof(b)”是指針的大小。“strlen(c)”是字符串的長度,“sizeof(c)”是數組的長度。因此,輸出結果是4,5,2,4,1,3,。故本題答案為A選項。
5.C→的運算優(yōu)先級比++高,此時,pt→x=10,執(zhí)行自加運算后為11。
6.D
7.C解析:在C語言中,字符串以'\\0'作為結束符,因此數組x的長度為7+1=8,而數組y的長度等于7。
8.D
9.C解析:本題考核的知識點是main()函數的作用,以及main()函數在程序中出現(xiàn)的位置。一個完整的C語言程序有且僅有一個主函數(main()函數)。程序總從main()函數的第一條語句開始執(zhí)行,到main()函數的最后一條語句結束,其他函數都是在執(zhí)行main()函數時,通過函數調用或嵌套調用而得以執(zhí)行的。C語言規(guī)定,main()函數在程序中的位置是任意的,故選項c不正確。所以,4個選項中C符合題意。
10.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。
11.D
12.A解析:在C語言中,動態(tài)存儲區(qū)域中存放的變量在使用時才分配內存空間,函數調用時返回的地址和自動類局部變量等存放在動態(tài)存儲區(qū)域中。auto變量和register變量都屬于自動類局部變量,因此選項A正確。static說明的變量為靜態(tài)變量,靜態(tài)變量在內存的靜態(tài)存儲中占據著永久的存儲單元,直至程序運行結束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個程序運行期間都占用內存空間。
13.A
14.B解析:一個完整的C語言程序有且僅有一個主函數(main()函數)。程序總從main()函數的第一條語句開始執(zhí)行,到main()函數的最后一條語句結束,其他函數都是在執(zhí)行main()函數時,通過函數調用或嵌套調用而得以執(zhí)行的。C語言規(guī)定,main()函數在程序中的位置是任意的,故選項A、選項C和選項D均不正確。所以,B選項為所選。
15.C
16.D
17.C解析:字符串少一個結束標志,所以輸出的結果不確定。
18.A當值相同時按位異或,則為0,按位或與按位與時仍不變,負數也為非0。
19.A
20.Bwhile語句中條件表達式E的值不為0即真,認為滿足條件。這與B選項中表達式的含義正好相反。故本題答案為B選項。
21.-f或f*-1或-1*f或f*(-1)或(-1)*ffun(10)-f或f*-1或-1*f或f*(-1)或(-1)*f\r\nfun(10)解析:調用fun()函數計算m的值,在主函數中的空格處應該填調用fun()函數的語句。fun()函數有一個形參n,為每次參加計算的值的個數,故在主函數中的空格處應該填fun(10),回到fun()函數,函數用到了一個for循環(huán),共循環(huán)n次,當循環(huán)第i次的時候,m的值等于m=1-2+……+[(-1)的i-1次方]*i,所以在fun()函數的空格處應該填使f改變符號的語句,故應填-f或f*-1或-1*f或f*(-1)或(-1)*f。
22.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數可以用變量與2取模,判斷結果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。
23.fopen(fname"w")chfopen(fname,'w')\r\nch解析:數組fname用來存放終端輸入的一個文件的文件名;文件使用方式'w'是為寫而打開文本文件。若文件不存在,系統(tǒng)將用在fopen調用中以指定的文件名建立一個新文件;若存在,則覆蓋原有內容;fputs(ch,fp)的功能是將字符ch寫到文件指針fp所指的文件中去。
24.x=2y=3。x=2,y=3。解析:使用scanf函數輸入數據,普通字符必須原樣輸入,本題的普通字符為'x'、'='、','、'y'正確的輸入格式是x=2,y=3。
25.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內存空間。
26.x==0
27.2828解析:在最壞情況下,冒泡排序所需要的比較次數為n(n-1)/2;簡單插入排序所需要的比較次數為n(n-1)/2;希爾排序所需要的比較次數為O(n1.5);堆排序所需要的比較次數為O(nlog2n)。
28.-4-4解析:因為n=0,所以!n為真,執(zhí)行x-=1;得到x=x=2-1=1;m=1為真,執(zhí)行x-=2;得到x=x-2=1-2=-1;x=-1為真,執(zhí)行x-=3;得到x=x-3=-1-3=-4。
29.概要概要
30.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
31.fopenfopen解析:C語言中的文件分為:ASCII文件與二進制文件。文件在使用前打開,使用后要關閉。
打開文件的函數為:fopen(),調用形式為:fP=fopen(”文件名”,”使用文件方式”);
關閉文件的函數為:folose(),調用形式為:foclose(fp);其中fp為文件指針。
32.43344334解析:程序將變量a,b的值傳給函數swap的形參x,y,并在函數中對x,y的值進行交換,所以在函數swap中輸出x,y的值4,3,由于c程序的函數是僧傳遞,實參a,b的值不會隨形參x,y的改變而改變,所以在主函數中輸出的a,b的值為3,4。
33.350350解析:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。在根據完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結點。因此,設一棵完全二叉樹具有n個結點,若n為偶數,則在該二叉樹中有n/2個葉子結點以及n/2-1個度為2的結點,還有1個是度為1的結點:若n為奇數,則在該二叉樹中有[n/2]+1個葉子結點以及[n/2]個度為2的結點,沒有度為1的結點。本題中,完全二叉樹共有700個結點,700是偶數,所以,在該二叉樹中有350個葉子結點以及349個度為2的結點,還有1個是度為1的結點。所以,本題的正確答案為350。
34.(double)1/(i*i)或10/(i*i)(double)1/(i*i)或1,0/(i*i)解析:本題考查數據類型的轉換。由題意s=1+1/(2*2)/1/(3*3)+…+1/(n*n),它的循環(huán)體為s=s+1/(i*i),由于s為double型數據,所以要將1/(i*i)的值轉換為double類型。
35.00解析:n%=2等價于n=n%2,結果為1:x%=1等價于x=x%1,結果為0。
36.調試調試
37.完整性控制完整性控制
38.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數據時應輸入與這些字符相同的字符。所以此題中輸入數據的形式是5.04,c=3。
39.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。
40.封裝封裝
41.A解析:本題主要考查各種循環(huán)語句的掌握情況。選項A中為dowhile循環(huán)語句,首先執(zhí)行do后面的語句++n;得n=1,while條件表達式為假,退出循環(huán)。選項B中,while條件表達式的值始終為1,條件為真,構成無限循環(huán)。選項C中while(n);語句循環(huán)體為空,n的值在循環(huán)中一直保持不變,構成無限循環(huán)。選項D中,i=1,for語句中條件判斷語句為空,永遠為真,構成無限循環(huán)。
42.B解析:通過分析不難寫出,f()函數的數學表達式為:
f(n)=1n=l;
f(n)=f(-1)+1n≠1;
在主函數中for循環(huán)執(zhí)行了兩次函數調用f(i)。第一次:i為1,調用f(1)得到返回值1,并把它加到j中,j的值為1。第二次i為2,調用f(n),根據遞歸公式可知f(2)=f(1)+1,得到返回值2并把它加到j中,j的值為3。所以最后輸出,i的值為3。
43.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進先出”的原則組織數據的。
【知識拓展】“隊列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進先出,后進后出。
44.D解析:本題中,argc表示參數的個數,應為3,argv是一個指向字符串的指針數組,指針數組argv中的元素argv[0]指向字符串'PROG',元素argv[1]指向字符串“ABCDEFGH”,argv[2]指向字符串“IJKL”。在while循環(huán)條件中,先進行自減運算,再執(zhí)行相應的printf語句。
45.B解析:算術運行符“/”、“%”的優(yōu)先級處于同一級,并且兩者的結合性都是從左到右。所以算術表達式運算過程為:a=25/10%9=2%9=2:當邏輯運算符“&&”兩邊的值都是非零時,邏輯表達式的值才為真(即為1)。所以b=2&&(-1)=1。
46.D解析:本題考核的知識點是for循環(huán)語句和復合賦值+=運算符的應用。本題中,i賦初值為1,并對其每次進行加2操作,即i每次均為1~10之間的奇數,s+=i+1,即s=s+i+1,相當于s等于原來的s每次加上1~10之間的偶數,直到i<10不成立.當i=1時,s=0+1+1=2;當i=3時,s=2+3+1=2+4;當i=5時,s=2+4+5+1=2+4+6;當i=7時,s=2+4+6+7+1=2+4+6+8;當i=9時,s=2+4+6+8+9+1=2+4+6+8+10;當i=11時,i<10不成立,結束循環(huán)。所以,4個選項中選項D符合題意。
47.A算法的有窮性,是指算法必須能在有限的時間內做完,即算法必須能在執(zhí)行有限個步驟之后終止。
48.D解析:因為x的值為大于1的奇數,所以x除以2的余數等于1,因此,選項A)、C)中表達式的結果為真,不為0;對于選項B)來說,x除以2的商不會等于0;選項D)中表達式的結果為假,即等于0。
49.B解析:由函數intfun(int*p){return*p;}的定義可知,返回值為整型指針變量p所指向的數據。
50.B解析:本題考查C語言標識符的命名.在C語言中,合法的標識符由字母,數字和下劃線組成,并且第一個字符必須為字母或者下劃線,long為C語言的保留字,不能作為用戶標識符,故選頃A錯誤.3Draax開頭的第一個為數字,而C語言規(guī)定,第一個字符必須為字母或者下劃線,故選項C錯誤;A.dat中的字符“.”不符合C語言中用戶標識符只能由字母、數字和下劃線組成的規(guī)定,故選項D錯誤.只有迭項B正確。
51.A解析:反斜杠字符“\\”賦給字符,應該寫成ch='\\\\',所以A是錯誤的。
52.A解析:函數重載指的是兩個或兩個以上的函數具有相同的函數名,但形參的個數或類型不同。程序中通過判斷主調函數傳過來的參數的個數和類型,來決定選擇調用哪個具體的函數。
53.C解析:考查位運算的運算原理。<<為左移運算符,運算符的左邊是移位對象;右邊是整型表達式,代表左移的位數,左移時,右端(低位)補0;左端(高位)移出的部分舍棄。
54.B解析:C語言規(guī)定標識符只能由字母、數字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,所以排除C和D。C語言坯規(guī)定標識符不能為C語言的關鍵字,從而選項A(void是關鍵字)是錯誤的。
55.A解析:對任何一棵二叉樹T,如果其葉子節(jié)點數為n0,度為2的節(jié)點數為n2,則n0=n2+1,即葉子節(jié)點數總是比度為2的節(jié)點數多1。
56.B解析:C語言規(guī)定標識符只能由字母、數字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,所以排除C和D。C語言還規(guī)定標識符不能為C語言的關鍵字,從而選項A(void是關鍵字)是錯誤的。
57.B解析:先計算關系表達式a<b=2<3為真(表達式為真時,如果變量為int型變量則真用1表示,假用0表示),即a=1。
58.B解析:本題主要考查結構指針:p=&st,訪問結構體的成員,可以通過結構變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。
59.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結點。根據前序遍歷的結果可知,a是根結點。由中序遍歷的結果dgbaechf可知,d、g、b是左子樹的結點,e、c、h、f是右子樹的結點。再由前序遍歷的結果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結果dgb可知,d、g是b左邊子樹的結點,b右邊子樹無結點。再由前序遍歷結果dg可知,d為b左子樹的根,g是以d為根的子樹的右結點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結點位置。所以可知后序遍歷的結果是D。
60.B解析:數據處理是計算機應用的重要領域,在實際數據處理時,被處理的各數據元素總是被存放在計算機的存儲空間中,并且各數據元素在計算機存儲空間中的位置關系與它們的邏輯關系不一定是相同的,一般也不可能相同。數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的存儲結構(也稱數據的物理結構)。一般來說,數據的邏輯結構根據需要可以表示成多種存儲結構,常用的存儲結構有順序、鏈接、索引等存儲結構。而采用不同的存儲結構,其數據處理的效率也是不同的。
61.C
62.A數據字典是在需求分析階段建立,在數據庫設計過程中不斷修改、充實和完善的。故答案為A選項。
63.C數組a占4個字節(jié),數組b占3個字節(jié)。所以數組a長度大于b長度。
64.C
\n根據賦值運算的類型轉換規(guī)則,先將double型的常量l.2轉換為int型,因為x的類型是int,則X的值為1;執(zhí)行語句y=(K+3.8)/5.0時,即先將整型變量X的值1轉換為double型1.0,然后3.8相加得4.8,進行除法運算4.8/5.0結果為0.即變量y的值為0,d*Y的值也為0,故選C選項。
\n
65.B9用二進制表示為1001,右移1位后為0100,即十進制4。
66.A當i為8的倍數時,輸出一個回車符,只有A)符合題意。
67.B本題中a>b的條件不滿足,所以不執(zhí)行逗號表達式a=b,b=c;的操作,而是執(zhí)行c=a操作,即c的值勾10。
68.Dstrcat(s1,s2)函數的功能是把s2字符串連接到s1字符串的末尾,要保證s1有足夠的空間容納下連接后的字符串。
69.D本題主要考查宏的一些基本概念。通常,預處理命令位于源文件的開頭,但不一定必須位于開頭,也可以寫在函數與函數之間;由于預處理命令的末尾不加分號,不以分號來區(qū)分一條宏命令,所以,不能在一行上寫多條預處理命令,只能寫一條,否則,系統(tǒng)處理時就會把它當做一條命令處理;宏名一般習慣用大寫字母表示,以便與變量名相區(qū)別,這只是習慣用法,并不是C語言中有這樣的規(guī)定,宏的定義可用小寫字母;C語言中,宏的替換是在程序編譯時進行,不占用程序運行的時間,故本題答案為D。
70.D冒泡排序(BubbleSort)的基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在后面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放后。然后比較第2個數和第3個數,將小數放前,大數放后,如此繼續(xù),直至比較最后兩個數,將小數放前,大數放后。至此第一趟結束,將最大的數放到了最后。在第二趟:仍從第一對數開始比較(因為可能由于第2個數和第3個數的交換,使得第1個數不再小于第2個數),將小數放前,大數放后,一直比較到倒數第二個數(倒數第一的位置上已經是最大的),第二趟結束,在倒數第二的位置上得到一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 淺析趣味性教學方法在小學數學中的應用
- 貨代業(yè)務工作總結
- 小兒圍手術期氣道管理策略
- 2025年納他霉素食品防腐劑合作協(xié)議書
- 河流沉積物重金屬形態(tài)的分布特征及其影響因素
- 網吧網咖企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 2025年大型工程基礎穩(wěn)定性勘探及檢測設備合作協(xié)議書
- 機器人眼部追蹤電機行業(yè)跨境出海戰(zhàn)略研究報告
- 醫(yī)療衛(wèi)生材料及用品專門零售企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 智慧醫(yī)院可行性研究報告
- 直播運營實戰(zhàn):淘寶直播運營課件
- ??怂箍等鴺藴y量儀的使用課件
- 防洪堤工程施工質量保證體系
- 高血壓臨床路徑
- 《新媒體營銷》全套教學教案
- 消防維修合同范本
- (完整版)質量目標細化分解方案-橋梁工程
- 擺線針輪減速機型號及其對照表選型表
- 工程EPC總承包采購方案說明
- 用戶水表(水費)過戶協(xié)議
評論
0/150
提交評論