版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年山西省朔州市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.以下合法的字符型常量是A.B.C.D.
3.一個關(guān)系中屬性個數(shù)為1時,稱此關(guān)系為()。
A.對應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系
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));}程序運行后的輸出結(jié)果是()。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.一個算法的空間復(fù)雜度打,則其時間復(fù)雜度也必定大
B.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定小
C.一個算法的時間復(fù)雜度大,則其空間復(fù)雜度也必定小
D.算法的時間復(fù)雜度與空間復(fù)雜度沒有直接相關(guān)
7.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。
A.數(shù)組x和數(shù)組y等價B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度
8.具有20個結(jié)點的二叉樹,其深度最多為_______。
A.4B.5C.6D.20
9.以下說法不正確的是
A.C程序中必須有一個main()函數(shù),C程序是從main()函數(shù)的第1條語句開始執(zhí)行的。
B.非主函數(shù)都是在執(zhí)行主函數(shù)時,通過函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的。
C.C程序中的main()函數(shù)必須放在程序的開始位置。
D.C程序中的main()函數(shù)位置可以任意指定。
10.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
11.遞歸式的先序遍歷一個n節(jié)點,深度為d的二叉樹,則需要??臻g的大小為()
A.O(logn)B.O(nlogn)C.O(n)D.O(d)
12.在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
13.
14.在一個C程序中
A.main函數(shù)必須出現(xiàn)在所有函數(shù)之前
B.main函數(shù)可以在任何地方出現(xiàn)
C.main函數(shù)必須出現(xiàn)在所有函數(shù)之后
D.main函數(shù)必須出現(xiàn)在固定位置
15.深度為5的二叉樹至多有C個結(jié)點。
A.16B.32C.31D.10
16.
17.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}
A.abcdeB.aC.不確定D.bcdef
18.設(shè)有定義的語句:“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.以下程序的功能是調(diào)用函數(shù)fun計算:m=1-2+3-4+…+9-10,并輸出結(jié)果。請?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.設(shè)Y是int型變量,請寫出判斷Y為奇數(shù)的關(guān)系表達式【】。
23.以下程序由終端鍵盤輸入一個文件名,然后把從終端鍵盤輸入的字符依次存放到該文件中,用#作為結(jié)束輸入的標志,請?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,則輸入數(shù)據(jù)的形式應(yīng)該是______。
intx,y;
scanf("x=%d,y=%d",&x,&y);
25.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
26.假定變量x為int類型,請以最簡單的形式寫出與邏輯表達式!x等價的C語言關(guān)系表達式【】。
27.對長度為8的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為()。
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í)行后的輸出結(jié)果是【】。
29.軟件的【】設(shè)計又稱為總體結(jié)構(gòu)設(shè)計,其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。
30.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
31.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longfl;
myf=【】("test.t","rb”);
fseek(myf,()SEEK_END);fl+ftell(myf);
fclose(myf);
printf("%ld\n",fl);
32.以下程序運行后輸出結(jié)果是【】。
#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.設(shè)一棵完全二叉樹共有700個結(jié)點,則在該二叉樹中有【】個葉子結(jié)點。
34.函數(shù)pi的功能是根據(jù)以下近似公式求π值:
請在下面的函數(shù)中填空,完成求π的功能。
#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.數(shù)據(jù)庫保護分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
38.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【】。
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<回車>,程序的輸出結(jié)果是【】。
40.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過對象的______性來實現(xiàn)的。
三、1.選擇題(20題)41.以下不構(gòu)成無限循環(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);}程序運行后的輸出結(jié)果是()。
A.4B.3C.2D.1
43.按照“先進先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
44.假定以下程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入:PROGABCDEFGHIJKL<回車>,則輸出結(jié)果為main(intargc,char*argv0[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}
A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH
45.下列程序的輸出結(jié)果是()。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í)行后的輸出結(jié)果是()。
A.自然數(shù)1~9的累加和B.自然數(shù)1~10的累加和C.自然數(shù)1~9中奇數(shù)之和D.自然數(shù)1~10中偶數(shù)之和
47.算法的有窮性是指A.算法程序的運行時間是有限的
B.算法程序所處理的數(shù)據(jù)量是有限的
C.算法程序的長度是有限的
D.算法只能被有限的用戶使用
48.以下選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達式是
A.x%2==1B.x/2C.x%21=0D.x%2==0
49.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。
A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值
50.以下選項中合法的用戶標識符是A.longB._2TestC.3DmaxD.A.dat
51.已經(jīng)定義ch為字符型變量,以下賦值表達式中錯誤的是______。
A.ch='\'B.ch=62+3C.ch=NULLD.ch='\xaa'
52.函數(shù)重載是指
A.兩個或兩個以上的函數(shù)取相同的函數(shù)名,但形參的個數(shù)或類型不同
B.兩個以上的函數(shù)取相同的名字和具有相同的參數(shù)個數(shù),但形參的類型可以不同
C.兩個以上的函數(shù)名字不問,但形參的個數(shù)或類別相同
D.兩個以上的函數(shù)取相同的函數(shù)名,并且函數(shù)的返回類型相同
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.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
59.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
60.下列敘述中,錯誤的是()
A.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)
B.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)
C.數(shù)據(jù)的存儲結(jié)構(gòu)在計算機中所占的空間不一定是連續(xù)的
D.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)
四、選擇題(20題)61.
62.下列關(guān)于數(shù)據(jù)庫設(shè)計的敘述中,正確的是()。
A.在需求分析階段建立數(shù)據(jù)字典
B.在概念設(shè)計階段建立數(shù)據(jù)字典
C.在邏輯設(shè)計階段建立數(shù)據(jù)字典
D.在物理設(shè)計階段建立數(shù)據(jù)字典
63.已有定義:chara[]="xyz",b[]={′x′,′y′,′z′};,以下敘述中正確的是()。
A)數(shù)組a和b的長度相同B)a數(shù)組長度小于b數(shù)組長度
C)a數(shù)組長度大于b數(shù)組長度D)上述說法都不對
64.
下列程序的輸出的結(jié)果是()。
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.若有以下程序段:
輸出結(jié)果是()。
A.2B.4C.8D.16
66.以下函數(shù)實現(xiàn)按每行8個輸出w所指數(shù)組中的數(shù)據(jù)
67.有以下程序段:
程序運行后的輸出結(jié)果是()。
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";",則在使用函數(shù)stoat(s1,s2)后,結(jié)果是()。A.A.s1的內(nèi)容更新為abcdefghiB.s1的內(nèi)容更新為defghi\0
C.s1的內(nèi)容更新勾defghiabc\0
D.s1的內(nèi)容更新為abcdefghi\0
69.以下敘述中正確的是______。A.預(yù)處理命令行必須位于源文件的開頭
B.在源文件的一行上可以有多條預(yù)處理命令
C.宏名必須用大寫字母表示
D.宏替換不占用程序的運行時間
70.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
71.以下是if語句的基本形式:
if(表達式.語句
其中“表達式”()。
A.必須是邏輯表達式B.必須是關(guān)系表達式C.必須是邏輯表達式或關(guān)系表達式D.可以是任意合法的表達式
72.已知intx=(1,2,3,4);變量x的值是()。
A.1B.2C.3D.4
73.有以下程序:
程序運行后的輸出結(jié)果是()。
A.22B.76C.72D.62
74.以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯誤的是()。
A.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型
B.若要保存帶有多位小數(shù)的數(shù)據(jù),可使用雙精度類型
C.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型
D.整數(shù)類型表示的自然數(shù)是準確無誤差的
75.有以下程序:
#include<stdio.h>
main
{intx=4,y;
do
{y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的輸出結(jié)果是()。A.A.xyyxB.yyyyC.yyxxD.yxyx
76.
77.
A.*P=*q;B.P=q;C.*P=&nl;D.P=*q;
78.軟件的()設(shè)計又稱總體結(jié)構(gòu)設(shè)計,其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。
A.概要B.抽象C.邏輯D.規(guī)劃
79.以下關(guān)于typedef的敘述錯誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代替
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性
80.以下敘述中錯誤的是()。
A.c語言是一種結(jié)構(gòu)化程序設(shè)計語言
B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
C.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計算str所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun(),其功能是刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為“****A*BC*DEF*G*******”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)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進制數(shù)所代表的字符;形式“\\xhh”表示1到2位16進制數(shù)所代表的字符。在本題中‘\\x13’表示回車符,是一個字符常量;‘\\081’用\u30008進制數(shù)所代表的字符,但形式不正確,因為8進制數(shù)所表示的字符中不會出現(xiàn)數(shù)字“8”;‘65’不是一個字符,而是一個+進制數(shù)字;“\\n”是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。
3.C解析:在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個具有N個屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點。
4.Asizeof是運算符,計算數(shù)組、指針、類型、對象、函數(shù)等所占的字節(jié)大小。strlen(*char)是函數(shù),參數(shù)必須是字符型指針(char*)。該函數(shù)的功能是:返回字符串的長度,不包括字符串結(jié)束標識?!皊izeof(a)”是求數(shù)組a所占空間的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就結(jié)束,“strlen(a)”=4。“strier(b)”是指針指向的字符串長度,“sizeof(b)”是指針的大小?!皊trlen(c)”是字符串的長度,“sizeof(c)”是數(shù)組的長度。因此,輸出結(jié)果是4,5,2,4,1,3,。故本題答案為A選項。
5.C→的運算優(yōu)先級比++高,此時,pt→x=10,執(zhí)行自加運算后為11。
6.D
7.C解析:在C語言中,字符串以'\\0'作為結(jié)束符,因此數(shù)組x的長度為7+1=8,而數(shù)組y的長度等于7。
8.D
9.C解析:本題考核的知識點是main()函數(shù)的作用,以及main()函數(shù)在程序中出現(xiàn)的位置。一個完整的C語言程序有且僅有一個主函數(shù)(main()函數(shù))。程序總從main()函數(shù)的第一條語句開始執(zhí)行,到main()函數(shù)的最后一條語句結(jié)束,其他函數(shù)都是在執(zhí)行main()函數(shù)時,通過函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的。C語言規(guī)定,main()函數(shù)在程序中的位置是任意的,故選項c不正確。所以,4個選項中C符合題意。
10.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。
11.D
12.A解析:在C語言中,動態(tài)存儲區(qū)域中存放的變量在使用時才分配內(nèi)存空間,函數(shù)調(diào)用時返回的地址和自動類局部變量等存放在動態(tài)存儲區(qū)域中。auto變量和register變量都屬于自動類局部變量,因此選項A正確。static說明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲中占據(jù)著永久的存儲單元,直至程序運行結(jié)束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個程序運行期間都占用內(nèi)存空間。
13.A
14.B解析:一個完整的C語言程序有且僅有一個主函數(shù)(main()函數(shù))。程序總從main()函數(shù)的第一條語句開始執(zhí)行,到main()函數(shù)的最后一條語句結(jié)束,其他函數(shù)都是在執(zhí)行main()函數(shù)時,通過函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的。C語言規(guī)定,main()函數(shù)在程序中的位置是任意的,故選項A、選項C和選項D均不正確。所以,B選項為所選。
15.C
16.D
17.C解析:字符串少一個結(jié)束標志,所以輸出的結(jié)果不確定。
18.A當(dāng)值相同時按位異或,則為0,按位或與按位與時仍不變,負數(shù)也為非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)解析:調(diào)用fun()函數(shù)計算m的值,在主函數(shù)中的空格處應(yīng)該填調(diào)用fun()函數(shù)的語句。fun()函數(shù)有一個形參n,為每次參加計算的值的個數(shù),故在主函數(shù)中的空格處應(yīng)該填fun(10),回到fun()函數(shù),函數(shù)用到了一個for循環(huán),共循環(huán)n次,當(dāng)循環(huán)第i次的時候,m的值等于m=1-2+……+[(-1)的i-1次方]*i,所以在fun()函數(shù)的空格處應(yīng)該填使f改變符號的語句,故應(yīng)填-f或f*-1或-1*f或f*(-1)或(-1)*f。
22.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。
23.fopen(fname"w")chfopen(fname,'w')\r\nch解析:數(shù)組fname用來存放終端輸入的一個文件的文件名;文件使用方式'w'是為寫而打開文本文件。若文件不存在,系統(tǒng)將用在fopen調(diào)用中以指定的文件名建立一個新文件;若存在,則覆蓋原有內(nèi)容;fputs(ch,fp)的功能是將字符ch寫到文件指針fp所指的文件中去。
24.x=2y=3。x=2,y=3。解析:使用scanf函數(shù)輸入數(shù)據(jù),普通字符必須原樣輸入,本題的普通字符為'x'、'='、','、'y'正確的輸入格式是x=2,y=3。
25.時間時間解析:算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
26.x==0
27.2828解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2;簡單插入排序所需要的比較次數(shù)為n(n-1)/2;希爾排序所需要的比較次數(shù)為O(n1.5);堆排序所需要的比較次數(shù)為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文件與二進制文件。文件在使用前打開,使用后要關(guān)閉。
打開文件的函數(shù)為:fopen(),調(diào)用形式為:fP=fopen(”文件名”,”使用文件方式”);
關(guān)閉文件的函數(shù)為:folose(),調(diào)用形式為:foclose(fp);其中fp為文件指針。
32.43344334解析:程序?qū)⒆兞縜,b的值傳給函數(shù)swap的形參x,y,并在函數(shù)中對x,y的值進行交換,所以在函數(shù)swap中輸出x,y的值4,3,由于c程序的函數(shù)是僧傳遞,實參a,b的值不會隨形參x,y的改變而改變,所以在主函數(shù)中輸出的a,b的值為3,4。
33.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結(jié)點。因此,設(shè)一棵完全二叉樹具有n個結(jié)點,若n為偶數(shù),則在該二叉樹中有n/2個葉子結(jié)點以及n/2-1個度為2的結(jié)點,還有1個是度為1的結(jié)點:若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結(jié)點以及[n/2]個度為2的結(jié)點,沒有度為1的結(jié)點。本題中,完全二叉樹共有700個結(jié)點,700是偶數(shù),所以,在該二叉樹中有350個葉子結(jié)點以及349個度為2的結(jié)點,還有1個是度為1的結(jié)點。所以,本題的正確答案為350。
34.(double)1/(i*i)或10/(i*i)(double)1/(i*i)或1,0/(i*i)解析:本題考查數(shù)據(jù)類型的轉(zhuǎn)換。由題意s=1+1/(2*2)/1/(3*3)+…+1/(n*n),它的循環(huán)體為s=s+1/(i*i),由于s為double型數(shù)據(jù),所以要將1/(i*i)的值轉(zhuǎn)換為double類型。
35.00解析:n%=2等價于n=n%2,結(jié)果為1:x%=1等價于x=x%1,結(jié)果為0。
36.調(diào)試調(diào)試
37.完整性控制完整性控制
38.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時應(yīng)輸入與這些字符相同的字符。所以此題中輸入數(shù)據(jù)的形式是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,條件為真,構(gòu)成無限循環(huán)。選項C中while(n);語句循環(huán)體為空,n的值在循環(huán)中一直保持不變,構(gòu)成無限循環(huán)。選項D中,i=1,for語句中條件判斷語句為空,永遠為真,構(gòu)成無限循環(huán)。
42.B解析:通過分析不難寫出,f()函數(shù)的數(shù)學(xué)表達式為:
f(n)=1n=l;
f(n)=f(-1)+1n≠1;
在主函數(shù)中for循環(huán)執(zhí)行了兩次函數(shù)調(diào)用f(i)。第一次:i為1,調(diào)用f(1)得到返回值1,并把它加到j(luò)中,j的值為1。第二次i為2,調(diào)用f(n),根據(jù)遞歸公式可知f(2)=f(1)+1,得到返回值2并把它加到j(luò)中,j的值為3。所以最后輸出,i的值為3。
43.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進先出”的原則組織數(shù)據(jù)的。
【知識拓展】“隊列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進先出,后進后出。
44.D解析:本題中,argc表示參數(shù)的個數(shù),應(yīng)為3,argv是一個指向字符串的指針數(shù)組,指針數(shù)組argv中的元素argv[0]指向字符串'PROG',元素argv[1]指向字符串“ABCDEFGH”,argv[2]指向字符串“IJKL”。在while循環(huán)條件中,先進行自減運算,再執(zhí)行相應(yīng)的printf語句。
45.B解析:算術(shù)運行符“/”、“%”的優(yōu)先級處于同一級,并且兩者的結(jié)合性都是從左到右。所以算術(shù)表達式運算過程為:a=25/10%9=2%9=2:當(dāng)邏輯運算符“&&”兩邊的值都是非零時,邏輯表達式的值才為真(即為1)。所以b=2&&(-1)=1。
46.D解析:本題考核的知識點是for循環(huán)語句和復(fù)合賦值+=運算符的應(yīng)用。本題中,i賦初值為1,并對其每次進行加2操作,即i每次均為1~10之間的奇數(shù),s+=i+1,即s=s+i+1,相當(dāng)于s等于原來的s每次加上1~10之間的偶數(shù),直到i<10不成立.當(dāng)i=1時,s=0+1+1=2;當(dāng)i=3時,s=2+3+1=2+4;當(dāng)i=5時,s=2+4+5+1=2+4+6;當(dāng)i=7時,s=2+4+6+7+1=2+4+6+8;當(dāng)i=9時,s=2+4+6+8+9+1=2+4+6+8+10;當(dāng)i=11時,i<10不成立,結(jié)束循環(huán)。所以,4個選項中選項D符合題意。
47.A算法的有窮性,是指算法必須能在有限的時間內(nèi)做完,即算法必須能在執(zhí)行有限個步驟之后終止。
48.D解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項A)、C)中表達式的結(jié)果為真,不為0;對于選項B)來說,x除以2的商不會等于0;選項D)中表達式的結(jié)果為假,即等于0。
49.B解析:由函數(shù)intfun(int*p){return*p;}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。
50.B解析:本題考查C語言標識符的命名.在C語言中,合法的標識符由字母,數(shù)字和下劃線組成,并且第一個字符必須為字母或者下劃線,long為C語言的保留字,不能作為用戶標識符,故選頃A錯誤.3Draax開頭的第一個為數(shù)字,而C語言規(guī)定,第一個字符必須為字母或者下劃線,故選項C錯誤;A.dat中的字符“.”不符合C語言中用戶標識符只能由字母、數(shù)字和下劃線組成的規(guī)定,故選項D錯誤.只有迭項B正確。
51.A解析:反斜杠字符“\\”賦給字符,應(yīng)該寫成ch='\\\\',所以A是錯誤的。
52.A解析:函數(shù)重載指的是兩個或兩個以上的函數(shù)具有相同的函數(shù)名,但形參的個數(shù)或類型不同。程序中通過判斷主調(diào)函數(shù)傳過來的參數(shù)的個數(shù)和類型,來決定選擇調(diào)用哪個具體的函數(shù)。
53.C解析:考查位運算的運算原理。<<為左移運算符,運算符的左邊是移位對象;右邊是整型表達式,代表左移的位數(shù),左移時,右端(低位)補0;左端(高位)移出的部分舍棄。
54.B解析:C語言規(guī)定標識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,所以排除C和D。C語言坯規(guī)定標識符不能為C語言的關(guān)鍵字,從而選項A(void是關(guān)鍵字)是錯誤的。
55.A解析:對任何一棵二叉樹T,如果其葉子節(jié)點數(shù)為n0,度為2的節(jié)點數(shù)為n2,則n0=n2+1,即葉子節(jié)點數(shù)總是比度為2的節(jié)點數(shù)多1。
56.B解析:C語言規(guī)定標識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,所以排除C和D。C語言還規(guī)定標識符不能為C語言的關(guān)鍵字,從而選項A(void是關(guān)鍵字)是錯誤的。
57.B解析:先計算關(guān)系表達式a<b=2<3為真(表達式為真時,如果變量為int型變量則真用1表示,假用0表示),即a=1。
58.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。
59.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。
60.B解析:數(shù)據(jù)處理是計算機應(yīng)用的重要領(lǐng)域,在實際數(shù)據(jù)處理時,被處理的各數(shù)據(jù)元素總是被存放在計算機的存儲空間中,并且各數(shù)據(jù)元素在計算機存儲空間中的位置關(guān)系與它們的邏輯關(guān)系不一定是相同的,一般也不可能相同。數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。一般來說,數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序、鏈接、索引等存儲結(jié)構(gòu)。而采用不同的存儲結(jié)構(gòu),其數(shù)據(jù)處理的效率也是不同的。
61.C
62.A數(shù)據(jù)字典是在需求分析階段建立,在數(shù)據(jù)庫設(shè)計過程中不斷修改、充實和完善的。故答案為A選項。
63.C數(shù)組a占4個字節(jié),數(shù)組b占3個字節(jié)。所以數(shù)組a長度大于b長度。
64.C
\n根據(jù)賦值運算的類型轉(zhuǎn)換規(guī)則,先將double型的常量l.2轉(zhuǎn)換為int型,因為x的類型是int,則X的值為1;執(zhí)行語句y=(K+3.8)/5.0時,即先將整型變量X的值1轉(zhuǎn)換為double型1.0,然后3.8相加得4.8,進行除法運算4.8/5.0結(jié)果為0.即變量y的值為0,d*Y的值也為0,故選C選項。
\n
65.B9用二進制表示為1001,右移1位后為0100,即十進制4。
66.A當(dāng)i為8的倍數(shù)時,輸出一個回車符,只有A)符合題意。
67.B本題中a>b的條件不滿足,所以不執(zhí)行逗號表達式a=b,b=c;的操作,而是執(zhí)行c=a操作,即c的值勾10。
68.Dstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串的末尾,要保證s1有足夠的空間容納下連接后的字符串。
69.D本題主要考查宏的一些基本概念。通常,預(yù)處理命令位于源文件的開頭,但不一定必須位于開頭,也可以寫在函數(shù)與函數(shù)之間;由于預(yù)處理命令的末尾不加分號,不以分號來區(qū)分一條宏命令,所以,不能在一行上寫多條預(yù)處理命令,只能寫一條,否則,系統(tǒng)處理時就會把它當(dāng)做一條命令處理;宏名一般習(xí)慣用大寫字母表示,以便與變量名相區(qū)別,這只是習(xí)慣用法,并不是C語言中有這樣的規(guī)定,宏的定義可用小寫字母;C語言中,宏的替換是在程序編譯時進行,不占用程序運行的時間,故本題答案為D。
70.D冒泡排序(BubbleSort)的基本概念是:依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個和第2個數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。至此第一趟結(jié)束,將最大的數(shù)放到了最后。在第二趟:仍從第一對數(shù)開始比較(因為可能由于第2個數(shù)和第3個數(shù)的交換,使得第1個數(shù)不再小于第2個數(shù)),將小數(shù)放前,大數(shù)放后,一直比較到倒數(shù)第二個數(shù)(倒數(shù)第一的位置上已經(jīng)是最大的),第二趟結(jié)束,在倒數(shù)第二的位置上得到一
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版工程項目造價編制與咨詢合同3篇
- 2024幼兒園食堂蔬菜品質(zhì)溯源采購合同3篇
- 2025年度辦公樓綠色運維管理合同2篇
- 2024年高端餐飲廚師聘用與宴會策劃服務(wù)合同3篇
- 2024年貸款延期協(xié)議書范本
- 2024年高效條碼打印機銷售協(xié)議范本版B版
- 2024年限量版水泥磚銷售協(xié)議樣式版B版
- 2024年股東責(zé)任分配協(xié)議:明確權(quán)責(zé)邊界
- 2024年秋季文化節(jié)慶典活動策劃及現(xiàn)場實施合同3篇
- 2024年污水處理設(shè)備研發(fā)、生產(chǎn)、安裝全流程服務(wù)合同3篇
- 美人蕉銹病病情調(diào)查報告
- 手工鎢極氬弧焊焊接工藝指導(dǎo)書
- 分級護理細化標準[資料]
- 北師大七年級上數(shù)學(xué)易錯題(共8頁)
- 板式換熱器計算
- 最新大學(xué)毛概期末考試重點總結(jié)
- 事故隱患排查治理統(tǒng)計分析制度
- 供應(yīng)商供方履約評價表(參考模板)
- 雜物電梯維護保養(yǎng)施工方案(共37頁)
- 徒步行軍pt課件
- 國家電網(wǎng)公司電網(wǎng)設(shè)備缺陷管理規(guī)定國網(wǎng)(運檢3)(文號國家電網(wǎng)企管
評論
0/150
提交評論