




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年山東省聊城市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.二進制數(shù)1110111.11轉(zhuǎn)換成十進制數(shù)是()。
A.119.375B.119.75C.119.125D.119.3
3.在位運算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
4.
5.棧的特點是B,隊列的特點是()。
A.先進先出B.先進后出
6.
7.靜態(tài)鏈表中指針表示的是()。
A.內(nèi)存地址B.數(shù)組下標(biāo)C.下一元素地址D.左、右孩子地址
8.在堆棧中存取數(shù)據(jù)的原則是。A.先進先出B.后進先出C.先進后出D.隨意進出
9.
10.在所有的排序方法中,關(guān)鍵字比較的次數(shù)與記錄的初始排列次序無關(guān)的是()。
A.希爾排序B.冒泡排序C.直接插入排序D.直接選擇排序
11.以下選項中合法的C語言常量是()。
A.‘C-STR’B.2014.1C.”\1.0D.2EK
12.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l
13.程序中頭文件typel.h的內(nèi)容是:#defineN5#defineM1N*3程序如下:#include“typel.h”#defineM2N*2main(){inti;i=M1+M2;Printf(“%d\n”,0;}程序編譯后運行的輸出結(jié)果是:
A.10B.20C.25D.30
14.設(shè)有100個元素,用折半查找法進行查找時,最大比較次數(shù)是_____。
A.25B.50C.10D.7
15.眾所周知數(shù)據(jù)結(jié)構(gòu)中非常基本的樹結(jié)構(gòu)包括二叉查找樹(BST)。當(dāng)我們把如下序列:10,5,19,4,13,7,6,3,1按順序建立一棵BST時,樹的最大深度是?(令根節(jié)點深度為0,不執(zhí)行平衡二叉樹操作)()
A.5B.4C.3D.2
16.下列選項中合法的賦值語句是()。
A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);
17.若有如下函數(shù)定義:doublefun(intx,inty){return(x+y);}return語句中表達(dá)式值的類型與說明的類型不一致,則以下敘述中正確的是()。
A.運行時出錯B.函數(shù)返回的值為int型C.編譯出錯D.函數(shù)返回的值為double型
18.以下選項中與“if(a==l)a=b;elsea++;”語句功能不同的switch語句是()。
A.switch(a){casel:a=b;break;default:a++;}
B.switch(a==l){case0:a=b;break;casel:a++;}
C.switch(a){default:a++;break;casel:a=b;}
D.switch(a==l){casel:a=b;break;case0:a++;}
19.下列敘述中錯誤的是()。
A.用戶定義的函數(shù)中可以沒有return語句
B.用戶定義的函數(shù)中可以有多個return語句,以便調(diào)用一次返回多個函數(shù)值
C.用戶定義的函數(shù)中若沒有return語句,則應(yīng)當(dāng)定義函數(shù)為void類型
D.函數(shù)的return語句中可以沒有表達(dá)式
20.有以下程序段當(dāng)執(zhí)行上述程序段,從鍵盤上輸A,555667777123后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
二、2.填空題(20題)21.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。
22.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于[]。
23.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
unsignedfun6(unslgnednum)
{unsignedk=1;
do{k*=mum%10;num/=10;}
while(num);
returnk;
}
main()
{unsignedn=26;
printf("%d\n",fan6(n));
}
24.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達(dá)式為:______。
25.軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為()。
26.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
27.二叉樹的遍歷可以分為三種:前序遍歷、()遍歷和后序遍歷。
28.下列程序的輸出結(jié)果是______。
main()
{inti,sum;
for(i=1;i<7;i++)
sum+=i;
printf("%d",sum);
}
29.若有定義語句:inta=5;,則表達(dá)式:a++的值是【】。
30.下列程序段的輸出結(jié)果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
31.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
32.下面程序的功能是調(diào)用sub函數(shù)計算數(shù)組a中字符串的長度,請?zhí)羁铡?/p>
sub(chars[])
{intn;
for(n=0;【】n++);
return【】;
}
main()
{char*a;intk;
gets(a);
【】
printf("%d",k);
33.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結(jié)束本次循環(huán),然后進行循環(huán)的條件判定。
34.以下定義的結(jié)構(gòu)體類型擬包括兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義比沖完整
structnode
{intinfo;
______link;};
35.下面程序的功能是實現(xiàn)變量x、y內(nèi)容交換,請?zhí)羁铡?/p>
#defineEXCHANGE(a,b,c){a=b;b=c;c=a;}
main()
{intx=10,y=8,z;
【】
printf("%d,%d",x,y);}
36.設(shè)x和y均為int型變量,且x=1,y=2,則表達(dá)式2.0+y/x的值為【】。
37.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
38.有以下程序段,且變量已正確定義和賦值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
請?zhí)羁?,使下面程序段的功能與之完全相同
S=1.0;k=1;
while([8]){s=s+1.0/(k*(k+1));[9];}
printf("s=%f\n\n",s);
39.存儲300個16×16點陣的漢字信息需要【】字節(jié)。
40.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
三、1.選擇題(20題)41.設(shè)定義下列結(jié)構(gòu)體,結(jié)構(gòu)體變量p的出生年份賦值正確的語句是()。stmctst{intx;inty;intz;}structworker{charname[20];charsex;structstbirth;}p;
A.x=1987B.birth.x=1987;C.p.birth.x=1987;D.p.x=1987;
42.有下列程序:fun(intx,inty){return(x+y);}main(){inta=1,b=2,c=3,sum;sm=fun((a++,b++,a+B),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。
A.6B.7C.8D.9
43.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。
A.x=y*5=x+z
B.int(15.8%5.
C.x=y+z+5,++y
D.x=25%5.0
44.設(shè)有如下三個關(guān)系表:
下列操作中正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
45.下列敘述中正確的是()。
A.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大
B.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小
C.一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小
D.上述三種說法都不對
46.執(zhí)行以下的程序段后,m的值是______。inta[2][3]={{(1,2,3),{4,5,6}}intm,*p;p=aa[0][0];m=p[4];
A.4B.5C.3D.不確定
47.字符串"\\\"ABCDEF\"\\"的長度是()。
A.15B.10C.7D.8
48.以下程序的輸出結(jié)果是main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf(“%d\n”,A);}
A.31B.13C.10D.20
49.閱讀下面程序,則執(zhí)行后的結(jié)果為#include"stdio.h"longfun(intn){if(n>2)return(fun(n-1)+fun(n-2));elsereturn(2);}main(){printf("%ld\n",fun(5));}
A.10B.15C.20D.以上3個答案都不正確
50.屬于C語言中合法的常量是______。
A.1.52eB.±100C.'x'D.xt'y'
51.若已知a=10,b=20,則表達(dá)式!a<b的值為______。
A.10B.1C.20D.30
52.表示“在使用x之后,使x的值加1”的正確方式是()
A.++xB.x++C.+xD.+x+
53.以下程序運行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
54.有以下程序
main()
{inti,s=1;
for(i=1;i<50;i++)
if(!(i%5)&&!(i%3))s+=i;
printf("%d\n",s);}
程序的輸出結(jié)果是
A.409B.277C.1D.91
55.以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。程序在編譯時出錯。main()/*Beginning*/{intr;floats;scanf("%d",&);s=*π*r*r;printf("s=%f\n",s);}出錯的原因是
A.注釋語句書寫位置錯誤
B.存放圓半徑的變量r不應(yīng)該定義為整型
C.輸出語句中格式描述符非法
D.計算圓面積的賦值語句中使用了非法變量
56.在計算機系統(tǒng)中,一個字長的二進制位數(shù)為______。
A.8B.16C.32D.由CPU型號決定
57.對下述程序的判斷中,正確的是#include<stdio.h>voidmain(){char*p,s[128];p=S;while(strcmp(s,"End")){printf("Inputastring:");gets(s);while(*p)putchar(*p++);}}
A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止
B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止
C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因為代碼有錯誤,程序不能正常工作
D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串
58.在微機中,應(yīng)用最普遍的字符編碼是()
A.BCD碼B.ASCII碼C.漢字騙碼D.補碼
59.已有定義int(*q)(),指針q可以()。
A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型
60.設(shè)intx=1,y=1;表達(dá)式(|x‖--y)的值是()。
A.0B.1C.2D.-1
四、選擇題(20題)61.
62.
63.
64.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。
A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0
65.
下列程序執(zhí)行后的輸出結(jié)果是()。
main
{charx=0xFFFF;printf("%d\n",x--);}
A.-32767B.FFFEC.1D.32768
66.設(shè)變量均已正確定義,若要通過;語句為變螢a1和a2賦數(shù)值l0和20,為變量cl和c2賦字符x和Yd以下所示的輸入形式中正確的是(注:口代表空格字符)
67.有以下程序程序運行后的輸出結(jié)果是()。
A.123456B.14C.1234D.12
68.
69.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的運行結(jié)果是
A.A.331
B.41
C.2
D.1
70.設(shè)a=l,b=2,c=3,d=4,則表達(dá)式:“a<b?a:b<b?a:c<d?a:d”的結(jié)果為()。A.A.4B.3C.2D.1
71.若有定義:“int*P,x=0,*p,p=&x;”,則語句“printf("%d\n",*p);”的輸出結(jié)果是()。
A.隨機值B.0C.x的地址D.P的地址
72.有以下程序:
程序運行后的輸出結(jié)果是()。
A.4,5,6,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,1,2,3,
D.6,5,4,3,2,1,
73.下列程序的輸出結(jié)果是()。
char*p1="abcd",*p2="ABCD",str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A.xyabcABB.abcABzC.ABabczD.xycdBCD
74.若有定義語句:inta[2][3],*p[3];,則以下語句中正確的是()。
A.p=a;B.p[0]=a;C.p[o]=&a[1][2];D.p[1]=&a;
75.
76.有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運行后的輸出結(jié)果是______。
A.22B.76C.72D.62
77.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。
A.帶鏈隊列B.循環(huán)隊列C.帶鏈棧D.二叉樹
78.有以下程序
79.有以下程序:
程序運行后的輸出結(jié)果是()。
A.a=2,b=2B.a=2,b=1C.a=1,b=1D.a=1,b=0
80.軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(工具軟件)。下面屬于應(yīng)用軟件的是().
A.編譯程序B.操作系統(tǒng)C.教務(wù)管理系統(tǒng)D.匯編程序
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將長整型數(shù)中為偶數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為87653142時,t中的數(shù)為8642。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:計算并輸出
例如,若主函數(shù)從鍵盤給n輸入10后,則輸出為S=104.478749。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。
試題程序:
參考答案
1.B
2.B
3.A左移運算符“<<”是雙目運算符,其功能是把“<<”左邊的運算數(shù)的各二進位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。例如,a<<4是把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位后為00110000(十進制48)。
4.B
5.A
6.C
7.C
8.C
9.C
10.D
11.B所謂常量,是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項A是字符串,需要使用雙引號;選項C不是合法的常量形式;選項D為實型常量中的指數(shù)形式,但指數(shù)形式e(E)之前必須是數(shù)字,之后必須為整數(shù)。故本題答案為B選項。
12.B本題考查按位異或的用法。按位異或運算的規(guī)則是:兩個運算數(shù)的相應(yīng)二進制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進制為00000010,a=1的二進制為00000001,a=a^b一00000011,轉(zhuǎn)化為十進制后為3,b=b^a=00000010^00000011=00000001,即1。
13.C解析:編譯預(yù)處理時,用“typel.h”中的內(nèi)容替代命令#include“typel.h”。表達(dá)式“i=M1+M2”經(jīng)過宏替換為“i=5*3+5*2”即i=25,所以最后輸出的i的值為25。
14.D
15.B
16.D解析:選項A)是一個合法的賦值表達(dá)式,但結(jié)尾沒加分號,所以它不是一個賦值語句;選項B)是一個逗號表達(dá)式,也因為結(jié)尾沒有加分號而不是合法的賦值語句,選項C)是一個算術(shù)表達(dá)式,雖然有分號,但這個表達(dá)式?jīng)]有賦值操作,因此,也不是一條賦值語句。
17.D題干中“x+y”是整型,函數(shù)的返回值是double類型,由于整型可以自動轉(zhuǎn)換成double類型,因此函數(shù)值返回時自動轉(zhuǎn)換成double類型。故本題答案為D選項。
18.B題中當(dāng)a的值為l時,關(guān)系表達(dá)式a==l的值為真,即1,因此程序?qū)⑻D(zhuǎn)到easel執(zhí)行a++操作,與題干程序剛好相反。
19.B函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。函數(shù)中允許有多個return語句,但每次只能調(diào)用一個return語句,因此只能返回一個函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為void。故本題答案為B選項。
20.A本題考查的是格式輸)ki$i數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中,其中的格式命令可以說明最大域?qū)?。在百分?%)與格式碼之間的整數(shù)用于限制從對應(yīng)域讀入的最大字符數(shù)。因此j的值為55,y的值為566.0,字符數(shù)組nanle的值為7777123。故本題答案為A)。
21.概念(或概念級)概念(或概念級)
22.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊列也是線性表,也町以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。
23.1212解析:循環(huán)語句中,表達(dá)式num%10是取num的個位。循環(huán)直至num為0結(jié)束,這是逐一求出num+進制表示的各位數(shù)字,并累乘于變量k中。函數(shù)最后返回k,所以程序輸出12。
24.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。
25.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。在國家標(biāo)準(zhǔn)“計算機軟件開發(fā)規(guī)范”中,把軟件生命周期劃分為8個階段,即可行性研究與計劃、需求分析、概要設(shè)計、詳細(xì)設(shè)計、實現(xiàn)、綜合測試、確認(rèn)測試、使用與維護,對每個階段,都明確規(guī)定了該階段的任務(wù)、實施方法、實施步驟和完成標(biāo)志,其中特別規(guī)定了每個階段需要產(chǎn)生的文檔。
26.存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。
27.中序中序解析:二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根
28.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值。
29.55解析:a++的含義是在使用a值以后,使a值加1,所以a++的值為5。
30.HelloHello解析:字符串中,數(shù)值0或符號'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結(jié)束標(biāo)志。因此,只輸出前五個字符,即Hello。
31.存儲結(jié)構(gòu)
32.s[n]!='\0';或s[n];nk=sub(a);s[n]!='\\0';或s[n];\r\nn\r\nk=sub(a);解析:函數(shù)sub()通過for循環(huán)計算字符串的長度,當(dāng)字符串沒有結(jié)束時循環(huán),因此判斷循環(huán)與否的條件是看字符串是否結(jié)束。故第1空應(yīng)該填寫s[n];或其他等價表達(dá)式。循環(huán)結(jié)束返回字符串長度值,循環(huán)變量n中累計了循環(huán)的次數(shù)即字符串的長度,故第2空應(yīng)該填n。主函數(shù)中的空白處應(yīng)該是一條調(diào)用函數(shù)sub()的語句,將字符串的首地址作為實參傳遞給形參,并將返回值賦值給變量k。故第3空應(yīng)該填k=sub(a);。
33.continuecontinue解析:continue語句只是結(jié)束本次循環(huán),然后進行循環(huán)的條件判定。break語句是終止整個循環(huán)的執(zhí)行,不再進行條件判定。
34.解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*,即定義一個指向自身的結(jié)構(gòu)體指針。
35.EXCHANGE(zxy)或EXCHANGE(zxy);EXCHANGE(z,x,y)或EXCHANGE(z,x,y);
36.4.0或44.0或4
37.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念模型進一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。
38.本題要求將一個for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句“k++”。\r\n\r\n
39.800800解析:一個16x16點陣的字形碼需要16x16/8=32字節(jié)的存儲空間,所以300個漢字信息需要9600個字節(jié)。
40.調(diào)試調(diào)試
41.C解析:本題主要考查怎樣為嵌套定義的結(jié)構(gòu)中的成員賦值:由于worker中的birth是一個st型的結(jié)構(gòu),在給birth賦值時,不能將birth作為一個整體,要用“.”運算再深入一層訪問到最基本的成員x、y\\z。
42.C解析:函數(shù)fun(intx,inty)的功能是返回兩個整型數(shù)據(jù)的和。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用于函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等8。所以變量sum的值等于8。
43.C解析:求余運算符'%'兩邊的運算對象必須是整型,而選項B)和D)中'%'兩邊的運算對象有浮點整數(shù)據(jù),所以選項B)和D)是錯誤的表達(dá)式。在選項A)中賦值表達(dá)式的兩邊出現(xiàn)相同的變量x,也是錯誤的。選項C)是一個逗號表達(dá)式,所以正確答案為C)。
44.C解析:本題考查數(shù)據(jù)庫的關(guān)系代數(shù)運算。R表中只有一個域名A,有兩個記錄(也叫元組),分別是m和n;S表中有兩個域名,分別是B和C,其所對應(yīng)的記錄分別為1和3。注意觀察表T,它是由R的第一個記錄依次與S的所有記錄組合,然后再由R的第二個記錄與S的所有記錄組合,形成的一個新表。上述運算恰恰符合關(guān)系代數(shù)的笛卡兒積運算規(guī)則。關(guān)系代數(shù)中,笛卡兒積運算用“×”來表示。因此,上述運算可以表示為T=R×S。因此,本題的正確答案為C。
45.D解析:時間復(fù)雜度是指一個算法執(zhí)行時間的相對度量;空間復(fù)雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執(zhí)行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數(shù)據(jù),又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復(fù)雜度和空間復(fù)雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。因此,選項A、B、C的說法都是錯誤的。故本題的正確答案是D。
46.B解析:程序中定義了一個指向整型變量的指針變量,并對其賦值為二維整型數(shù)組a的首元素的地址。p[4]等價于*(p+4),即二維數(shù)組a中第四個元素的值,而a是一個2*3的二維數(shù)組,其第四個元素為a[1][1],即5。
47.B解析:本題涉及字符串最基本的兩個概念:①字符串的長度是指字符串中字符的個數(shù),但不包括字符串結(jié)束符;②以反斜杠“\\”開頭的特殊字符序列,意思是把反斜杠后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\\”連同后面的字符為一個長度。
48.A解析:switch語句的執(zhí)行過程是:在switch后面的表達(dá)式的值和case后面常量表達(dá)式的值吻合時,就執(zhí)行該case分支的語句。如果在該語句的后面沒有break語句,則按順序繼續(xù)執(zhí)行下一個case分支,直到遇到break語句或switch多分支語句結(jié)束,在switch語句中,break語句的作用是使流程跳出switch結(jié)構(gòu),終止switch語句的執(zhí)行。在本題中,因為每個case語句后面都沒有break語句,所以,第一輪循環(huán)(i==1)執(zhí)行過后a的值為8,第2輪(i==2)執(zhí)行過后a的值為16,第3輪(i==3)執(zhí)行過后a的值為26,第4輪(i==4)執(zhí)行過后a的值為31,然后執(zhí)行“i++”語句,這時循環(huán)條件為假,循環(huán)結(jié)束。
49.A解析:這是使用遞歸算法求著名的菲波拉奇數(shù)列,并要熟悉函數(shù)的遞歸方法的調(diào)用。
50.C解析:實數(shù)的指數(shù)形式中,e后面必須有一個整數(shù),所以A錯;B項錯在無~13這種形式的數(shù);字符串常量是用雙引號括起來的字符序列,所以D項錯誤。
51.B解析:!的優(yōu)先級高于<,!a的值為0,0<b顯然成立,該表達(dá)式的值為1。
52.B
53.C解析:靜態(tài)局部變量在編譯時賦初值,即只賦初值一次,在程序運行時它已有初值。以后每次調(diào)用時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值,而對自動變量賦初值,不是在編譯時進行的,而在函數(shù)調(diào)用時進行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時,d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。
54.D解析:本題是計算50之內(nèi)的自然數(shù)相加之和,題中if語句括號中的條件表達(dá)式!(i%5)&&!(i%3)表明只有能同時被5和3整除的數(shù)才符合相加的條件,1~49之間滿足這個條件的只有,15、30和45,因為s的初始值為1,所以s=1+15+30+45=91。
55.D解析:計算圓面積的賦值語句中使用了非法變量π。所以,答案為選項D)。注意:注釋語句可以出現(xiàn)在程序中的任意位置,故選項A)中的描述錯誤;圓的半徑可以是整型,也可以是實型,定義成哪種類型都不算錯,故選項B)中的描述錯誤;顯而易見,選項D)中的描述也錯誤。
56.D解析:字長是指微機能直接處理二進制信息的位數(shù),由CPU的類型和型號決定。
57.B解析:此題考查了字符串輸入函數(shù)gets和字符串比較函數(shù)strcmp,另外還有字符輸出函數(shù)putchar。gets從標(biāo)準(zhǔn)輸入設(shè)備中讀入全部字符,包括空格,直到遇到回車符為止。strcmp是字符串比較函數(shù),即strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0;如果宇符串1,字符串2,則函數(shù)值為一正整數(shù);如果字符串1<字符串2,則函數(shù)值為一負(fù)整數(shù)。putchar(c)函數(shù)將字符c輸出到標(biāo)準(zhǔn)輸出設(shè)備上。
58.B
59.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標(biāo)識符(*指針變量名)()。其中,“類型標(biāo)識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。
60.A解析:當(dāng)邏輯或運算符兩邊的運算對象至少有一個為1時,整個邏輯表達(dá)式的值是1;如果兩邊的運算對象都為0,則整個邏輯表達(dá)式的值為0。題中!x=0,--y=0,所以整個表達(dá)式的值是0。
61.B
62.C
63.C
64.A?B)與D)選項中取模運算符%的左右兩個操作數(shù)均應(yīng)為整數(shù),所以B)、D)錯誤。C)選項中不能將x+z的值賦給表達(dá)式y(tǒng)*5,所以C)錯誤。
65.C
\n因為x=0xFFFF=11111111,因此當(dāng)以整型形式輸出時對應(yīng)的數(shù)為一1。
\n
66.A本題考查的知識點是數(shù)據(jù)輸入。scanf函數(shù)是C語言提供的標(biāo)準(zhǔn)輸入函數(shù),作用是接收在終端設(shè)備(或系統(tǒng)隱含指定的輸入設(shè)備)上輸入的數(shù)據(jù)。scanf()函數(shù)的一般形式為:scanf(格式控制,輸入項表);本題中的格式控制字符串是“%d%c%d%c”,其中%d表示要輸入的是整數(shù);%c則表示輸入的是字符,且各控制符之間無任何分隔字符,故要求輸入的數(shù)據(jù)之間也不能分開(若要求連續(xù)輸入的都是數(shù)據(jù)類型,則必須以空格等空白字符分隔每個數(shù)據(jù),因為系統(tǒng)不知道應(yīng)該如何去分隔這一系列數(shù)據(jù))。而選項B)、C)、D)在l0和x之間均插入空格,所以不正確。
67.A將有6個元素的整型數(shù)組分兩行輸出到一個文件中,因為輸出的都是數(shù)字并且每行都沒有分隔符,所以當(dāng)再對其進行讀取操作時,每一行都會被認(rèn)為是一個完整的數(shù),而換行符則作為它們的分隔符。
68.A
69.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或為“假”時執(zhí)行指定的動作,由if引導(dǎo)條件為“真”時執(zhí)行的操作;由else引導(dǎo)條件為“假”時執(zhí)行的操作。else語句要與上面最近的if語句進行匹配,如果要嵌套調(diào)用if-else語句,需要將嵌套部分用{}括起來,避免程序報錯。題目中給出了一個if語句和一個if-else語句,if-else語句為第一個if語句的子語句。首先執(zhí)行外層if語句,執(zhí)行條件為x>y,由于x=1,y=2
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國集線器行業(yè)前景規(guī)劃及投資潛力分析報告
- 2025-2030年中國鑄造扣件市場發(fā)展現(xiàn)狀及前景趨勢分析報告
- 2025-2030年中國蠔油醬行業(yè)需求規(guī)模及發(fā)展趨勢預(yù)測報告
- 2025-2030年中國草柳編制工藝品市場運營狀況及投資規(guī)劃研究報告
- 2025-2030年中國自動支票打字機專用色帶行業(yè)運行態(tài)勢及發(fā)展戰(zhàn)略分析報告
- 2025-2030年中國羥丙基甲基纖維素行業(yè)十三五規(guī)劃與發(fā)展策略分析報告
- 2025-2030年中國純棉內(nèi)衣市場運營狀況及發(fā)展前景分析報告
- 2025-2030年中國科技地產(chǎn)行業(yè)競爭現(xiàn)狀及投資戰(zhàn)略研究報告
- 2025-2030年中國硫酸氧釩行業(yè)風(fēng)險評估規(guī)劃研究報告
- 2025-2030年中國真空凍干蔬菜行業(yè)運行狀況及發(fā)展趨勢預(yù)測報告
- EIM Book 1 Unit 7 Learning languages單元知識要點
- 呼吸系統(tǒng)疾病與麻醉(薛張剛)
- WOMAC骨性關(guān)節(jié)炎指數(shù)評分表
- 年處理量48萬噸重整裝置芳烴精餾的工藝設(shè)計-二甲苯塔
- CRPS電源設(shè)計向?qū)?CRPS Design Guide r-2017
- 16防沖工題庫題庫(238道)
- SH/T 1627.1-1996工業(yè)用乙腈
- GB/T 5534-2008動植物油脂皂化值的測定
- GB/T 3452.2-2007液壓氣動用O形橡膠密封圈第2部分:外觀質(zhì)量檢驗規(guī)范
- GB/T 30797-2014食品用洗滌劑試驗方法總砷的測定
- GB/T 20057-2012滾動軸承圓柱滾子軸承平擋圈和套圈無擋邊端倒角尺寸
評論
0/150
提交評論