版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
二級C語言筆試379(總分100,做題時間90分鐘)一、選擇題1.
語句“printf("a\bhow\'are\'y\\\bou\n");”的輸出結(jié)果是(
)。A
a\bhow\'are\'y\\bouB
a\bhow\'are\'y\bouC
how'are'youD
ahow'are'y\bou
分值:2答案:C[解析]“\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆蓋,導(dǎo)致“\b'’
格式符前面的字母不能輸出;“\'”格式符表示輸出單引號字符;“\\”格式符表示輸出反斜線字符。2.
下列程序中c的二進(jìn)制值是(
)。
chara=2,b=4,C;
c=a^b>>2;A
00000011B
00010100C
00011100D
00011000
分值:2答案:A[解析]本題主要考查按位異或和右移運(yùn)算。b=4的二進(jìn)制為00000100,b>>2后為00000001,a=2的二進(jìn)制為00000010,兩者異或?yàn)?0000011。3.
下列描述中正確的是(
)。A
軟件工程只是解決軟件項(xiàng)目的管理問題B
軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題C
軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則D
軟件工程只是解決軟件開發(fā)過程中的技術(shù)問題
分值:2答案:C[解析]軟件工程是指將工程化的思想應(yīng)用于軟件的開發(fā)、應(yīng)用和維護(hù)的過程,包括軟件開發(fā)技術(shù)和軟件工程管理。4.
兩次運(yùn)行下列的程序,如果從鍵盤上分別輸入3和1,則輸出結(jié)果是(
)。
main()
{
intx;
scanf("%d",&x);
if(x++>2)printf("%d",x);
elseprintf("%d\n",x--);
}A
4和2B
4和1C
4和0D
3和1
分值:2答案:A[解析]本題考查ifelse語句。首先scanf函數(shù)通過鍵盤讀入x的值。,當(dāng)x=3時,第一個if語句,先判斷條件,取x的值3和2比較,然后將x的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出x的值4。當(dāng)x=1時,第一個if語句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變?yōu)?),發(fā)現(xiàn)條件不成立,執(zhí)行下列的else語句,先輸出x的值2,再將x的值減1。5.
下列合法的字符型常量是(
)。A
'\x13'B
'\081'C
'65'D
"\n"
分值:2答案:A[解析]C語言的字符常量是用單引號(')括起來的一個字符,也可以用以一個“\”開頭的字符序列來表示字符常量。其中形式\ddd表示1到3位8進(jìn)制數(shù)所代表的字符;形式\xhh表示1到2位16進(jìn)制數(shù)所代表的字符。在本題中'\x13'表示回車符,是一個字符常量;而'\081'用8進(jìn)制數(shù)所代表的字符形式不正確,因?yàn)?進(jìn)制數(shù)所表示的字符中不會出現(xiàn)數(shù)字“8”;'65'單引號(即撇號)括起來的不是一個字符,而是一個+進(jìn)制數(shù)字:"\n"是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。6.
下列程序段的運(yùn)行結(jié)果是(
)。
#include<stdio.h>
voidmain()
{
charstr[]="ABC",*p=str;
printf("%d\n",*(p+3));
}A
67B
0C
字符'C'的地址D
字符'C'
分值:2答案:B[解析]先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],又因?yàn)樽址蛿?shù)組在存放字符串時會自動在末尾加上'\0',所以*(p+3)=0。7.
下列程序的輸出結(jié)果是(
)。
#include<stdio.h>
main()
{
stmctst
{
inty,x,z;
};
union
{
longi;
intj;
chark;
}un;
printf("%d,%d\n",sizeof(stmctst),sizeof(un));
}A
6,2B
6,4C
8,4D
8,6
分值:2答案:B[解析]本題主要考查結(jié)構(gòu)體和聯(lián)合內(nèi)存使用的區(qū)別:結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個成員相互獨(dú)立;聯(lián)合所占用的內(nèi)存空間為最長的成員所占用的空間。8.
下列說法不正確的是(
)。A
C程序是以函數(shù)為基本單位的,整個程序由函數(shù)組成B
C語言程序的一條語句可以寫在不同的行上C
C程序的注釋行對程序的運(yùn)行功能不起任何作用,所以注釋應(yīng)該盡可能少寫D
C程序的每個語句都以分號結(jié)束
分值:2答案:C[解析]本題涉及C語言基本的3個知識點(diǎn):①C語言的源程序是由函數(shù)構(gòu)成的,函數(shù)是其基本單位,每一個函數(shù)完成相對獨(dú)立的功能,其中只能包括一個主函數(shù);②C語言規(guī)定每個語句以分號結(jié)束,其書寫格式是自由的,一條語句可以寫在不同的行上,或者一行也可以寫多條語句;⑧注釋行雖然對程序的運(yùn)行不起作用,但是它可以方便程序員閱讀,提高程序的可讀性和可移植性,所以書寫注釋行還是很有必要的。9.
下列程序的運(yùn)行結(jié)果是(
)。
#include<stdio.h>
#include<string.h>
main()
{
char*s1="abDuj";
char*s2="ABdUG";
intt;
t=strcmp(s1,s2);
printf("%d",t);
}A
正數(shù)B
負(fù)數(shù)C
零D
不確定的值
分值:2答案:A[解析]本題考查字符串比較函數(shù)和兩個字符串比較的原則兩個知識點(diǎn):①原則是依次比較兩個字符串同一位置的一對字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大。②strcmp(s1,s2)的返回值,當(dāng)str1<str2時,返回值<0:當(dāng)str1=str2時,返回值為0;當(dāng)str1>str2,返回值>0。10.
設(shè)有下列定義:
structsk
{
intm;
floatx;
}data,*q;
若要使q指向data中的m域,正確的賦值語句是(
)。A
q=&datm;B
*q=datm;C
q=(structsk*)&datm;D
q=(structsk*)datm;
分值:2答案:C[解析]利用強(qiáng)制類型轉(zhuǎn)換(streetsk*),把整數(shù)型地址&data.m轉(zhuǎn)換成結(jié)構(gòu)體變量指針賦給結(jié)構(gòu)體指針變量q。11.
下列4個關(guān)于C語言的結(jié)論中錯誤的是(
)。A
可以用do…while語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)B
可以用for語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)C
可以用while語句實(shí)現(xiàn)的循環(huán)一定可以用for語句實(shí)現(xiàn)D
do…while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同
分值:2答案:D[解析]本題考查幾個循環(huán)語句的關(guān)系。①do…while語句、while語句、for語句所實(shí)現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次。12.
待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第(
)個位置。A
3B
5C
7D
9
分值:2答案:B[解析]快速排序的基本思想是:從表中選取一個元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線性表分割成兩部分(兩個子表),此元素插入到其分界線的位置處。然后分別對兩個子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。13.
分值:2答案:C[解析]帶參數(shù)宏的格式為:#define標(biāo)識符(形參表)形參表達(dá)式。其功能是:預(yù)處理程序?qū)⒊绦蛑谐霈F(xiàn)的所有帶實(shí)參的宏名,展開成由實(shí)參組成的表達(dá)式。14.
數(shù)據(jù)庫系統(tǒng)的核心是(
)。A
數(shù)據(jù)模型B
數(shù)據(jù)庫管理系統(tǒng)C
數(shù)據(jù)庫D
數(shù)據(jù)庫管理員
分值:2答案:B[解析]數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、硬件平臺(硬件)、軟件平臺5個部分構(gòu)成。其中數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,它負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等工作。15.
棧和隊列的共同點(diǎn)是(
)。A
都是先進(jìn)先出B
都是先進(jìn)后出C
只允許在端點(diǎn)處插入和刪除元素D
沒有共同特點(diǎn)
分值:2答案:C[解析]棧和隊列都是操作受限制的線性表,只允許在端點(diǎn)插入和刪除。不同點(diǎn)是:棧只允許在表的一端進(jìn)行插入和刪除操作,而隊列允許在表的一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。16.
下列程序段的輸出結(jié)果為(
)。
#include<stdio.h>
main()
{
staticchara[]="language";
char*p;
p=a;
for(p=a;p<a+8;p+=2)
putchar(*p);
}A
languageB
lnugC
有語法錯誤D
lang
分值:2答案:B[解析]本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。
第1次for循環(huán),p=a,p指向數(shù)組的第1個元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。17.
下列二維數(shù)組初始化語句中,不正確的是(
)。A
intb[][2]={1,2,3,4,5,6,7};B
intb[3][5]={0,0,0};C
intb[][4]={{1,2},{3,4,5},{6}};D
intb[3][2]={(1,2),(3,4),(5,6)};
分值:2答案:D[解析]在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0;C語言規(guī)定,對于二維數(shù)組,只可以省略第1個方括號中的常量表達(dá)式,而不能省略第2個方括號中的常量表達(dá)式:賦的初值不能多于事先定義好的數(shù)組元素個數(shù)。選項(xiàng)D)賦值表達(dá)式中對每一維的元素賦初值應(yīng)用{},而不是()。18.
源程序的文檔化不包括(
)。A
符號名的命名要有實(shí)際意義B
正確的文檔形式C
良好的視覺組織D
正確的程序注釋
分值:2答案:B[解析]源程序的文檔化主要包括3點(diǎn):①符號名應(yīng)具有一定實(shí)際的含義,便于理解程序功能;②正確的程序注釋;⑧良好的視覺組織(利用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦?。19.
下列程序的運(yùn)行結(jié)果是(
)。
main()
{
inta=-5,b=1,c=1;
intx=0,y=2,z=0;
if(c>0)x=x+y;
if(a<=0)
{
if(b>0)
if(c<=0)y=x-y;
}
elseif(c>0)y=x-y;
elsez=y;
printf("%d,%d,%d\n",x,y,z);
}A
2,2,0B
2,2,2C
0,2,0D
2,0,2
分值:2答案:A[解析]本題考查ifelse語句的使用。
先判斷第1個if語句,因?yàn)閏=1>0,所以x=x+y=0+2=2。第1個if語句,因?yàn)閍=-5<0,所以進(jìn)入下列的復(fù)合語句。經(jīng)判斷發(fā)現(xiàn),復(fù)合語句中第2個汀語句的條件均不滿足,不執(zhí)行任何語句退出,在這個過程中y和x的值沒有發(fā)生變化。20.
數(shù)據(jù)的存儲結(jié)構(gòu)是指(
)。A
數(shù)據(jù)所占的存儲空間B
數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式C
數(shù)據(jù)在計算機(jī)中的順序存儲方式D
存儲在計算機(jī)外存中的數(shù)據(jù)
分值:2答案:B[解析]數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。21.
若有說明inta[][3]={0,0};,則不正確的敘述是(
)。A
數(shù)組a的每個元素的初值都是0B
數(shù)組a的第一維大小為1C
數(shù)組a的行數(shù)為1D
只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
分值:2答案:D[解析]本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應(yīng)注意下列兩點(diǎn):①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定:當(dāng)初值的個數(shù)能被第二維的常量表達(dá)式的值除盡時,所得商數(shù)就是第一維的大小;當(dāng)初值的個數(shù)不能被第二維的常量表達(dá)式的值除盡時,第一維的大?。核蒙虜?shù)+1。22.
已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是(
)。A
scanf("%3d,%3d,%3d",&i,Aj,&;B
scanf("%d,%d,%d",&i,&j,&;C
scanf("%d%d%d",&i,&J,&;D
scanf("i=%d,j=%d,k=%d",&i,&j,&;
分值:2答案:B[解析]scanf函數(shù)的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。
若在格式符中插入了其他字符,則在輸入時要求按一一對應(yīng)的位置原樣輸入這些字符,其中的逗號也必須輸入。23.
下列敘述中正確的是(
)。A
算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)B
算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)C
算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止D
以上三種描述都不對
分值:2答案:C[解析]算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)。算法的空間復(fù)雜度是指算法執(zhí)行過程中所需的存儲空間。24.
若變量已正確定義,下列正確的程序段是(
)。A
while(ch=getchar()=='\N')putchar(c;B
while((ch=getchar())=='\n')putchar(c;C
while((ch=getchar())!='\N')putchar(c;D
while((ch=getchar())!='\n')putchar(c;
分值:2答案:D[解析]本題考查兩個知識點(diǎn):①C語言用'\n'這個字符常量表示換行:②getchar函數(shù)的作用是從終端輸入一個字符,當(dāng)遇到換行時結(jié)束輸入。25.
下列程序的輸出結(jié)果是(
)。
#include<stdio.h>
intfun(intx)
{
inta;
if(x==0‖x==1)
return3;
else
a=x-fun(x-2);
returna;
}
voidmain()
{
printf("%d",fun(7));
}A
2B
8C
9D
5
分值:2答案:A[解析]本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→fun(5):a=5-0=5→fun(7):a=7-5=2,最后的計算結(jié)果為2。26.
若w、x、y、z、m均為int型變量,則執(zhí)行下列的語句后m的值是(
)。
w=2,x=3,y=4,z=5;
m=(w<x)?W:x:
m=(m<z)?m:Z;
m=(m<y)?m:y;A
2B
3C
5D
4
分值:2答案:A[解析]條件表達(dá)式“a?b:c”的含義是:當(dāng)a為真時,其值等于表達(dá)式b的值,當(dāng)a為假時,其值等于表達(dá)式c的值。
表達(dá)式運(yùn)算過程:第1個表達(dá)式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個表達(dá)式:m=2<z=5為真,所以返回m的值,即m=2;第3個表達(dá)式:w=2<y<4為真,所以返回m的值,即m=2。27.
有下列函數(shù)定義:
intfun(doublea,doubleB)
{returna*b;}
若下列選項(xiàng)中所用變量都已正確定義并賦值,錯誤的函數(shù)調(diào)用是(
)。A
if(fun(x,){……}B
z=fun(fun(x,,fun(x,);C
z=fun(fun(x,x,;D
fun(x,;
分值:2答案:C[解析]本題考查函數(shù)調(diào)用時的參數(shù)傳遞。C項(xiàng)中第一個參數(shù)的表達(dá)式不正確,因此不能得到正確的結(jié)果。28.
下列標(biāo)識符不是關(guān)鍵字的是(
)。A
breakB
charC
SwitchD
return
分值:2答案:C[解析]break、char、return、switch都是C語言中的關(guān)鍵字,Switch不是。因?yàn)镃語言區(qū)分字母的大小寫。29.
標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是(
)。A
從文件file中讀取長度為n的字符串存入字符數(shù)組s中B
從文件file中讀取長度不超過n-1個字符的字符串放到字符數(shù)組s中C
從文件file中讀取n個字符串存入字符數(shù)組s中D
從文件file中讀取長度為n-1個字符的字符串存入字符數(shù)組s中
分值:2答案:B[解析]字符串輸入函數(shù)fgets()的調(diào)用形式為:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“s”可以是一個字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個數(shù);“fp”是指向該文件的文件型指針。
fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個字符的字符串,并將該字符串放到字符數(shù)組s中;讀入字符串后會自動在字符串末尾加入“'\0'”結(jié)束符,表示字符串結(jié)束。30.
下列敘述中正確的是(
)。A
break語句只能用于switch語句體中B
continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)C
break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)D
在循環(huán)體內(nèi)使用break語句和continue語句的作用相同
分值:2答案:C[解析]只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。當(dāng)break出現(xiàn)在循環(huán)體的switch語句體內(nèi)時,其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設(shè)置break語句,滿足某種條件則跳出本層循環(huán)體。31.
下列程序的運(yùn)行結(jié)果是(
)。
#include<stdio.h>
voidfun(int*s,int*p)
{
staticintt=3;
*p=s[t];
t--;
}
voidmain()
{
inta[]={2,3,4,5},k;
intx;
for(k=0;k<4;k++)
{
fun(a,&x);
printf("%d,",x);
}
}A
5,4,3,2B
2,3,4,5,C
2,2,2,2,D
5,5,5,5,
分值:1答案:A[解析]分析fun函數(shù)程序段,可知fun函數(shù)要實(shí)現(xiàn)的功能是將s中第(t+1)個元素以前的元素逆置賦給數(shù)組p。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)組x,最后輸出x數(shù)組。32.
下列選項(xiàng)中不合法的+六進(jìn)制數(shù)是(
)。A
OxffB
OXllC
OxlgD
OXabc
分值:1答案:C[解析]+六進(jìn)制是以“0x”或“0X”開頭的字符串,字符串中只能含有0~9這10個數(shù)字和a、b、c、d、s、f這6個字母。33.
分值:1答案:D[解析]由題意可知,小寫字符a和大寫字符A的ASCⅡ代碼相差為32,所以選項(xiàng)C)能將大寫字符c的ASCⅡ代碼轉(zhuǎn)換為小寫字符c的ASCⅡ代碼:選項(xiàng)A)和C)左側(cè)的表達(dá)式都是大寫字符c與大寫字符A的差與'a'的ASCⅡ代碼的和就是小寫字符c的ASCⅡ代碼。而選項(xiàng)D)中應(yīng)該是加上'a',而不是減去'a'。34.
對長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為(
)。A
125B
n/2C
nD
n+1
分值:1答案:C[解析]對線性表進(jìn)行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。35.
有下列函數(shù):
intfun(char*S)
{char*t=s;
while(*t++);
return(t-s);
}
該函數(shù)的功能是(
)。A
比較兩個字符串的大小B
計算s所指字符串占用內(nèi)存字節(jié)的個數(shù)C
計算s所指字符串的長度D
將s所指字符串復(fù)制到字符串t中
分值:1答案:C[解析]在函數(shù)fun(char*s)中,首先用字符指針變量t指向s,而循環(huán)語句while(*t++);的功能是使指針變量t指向字符串變量s的末尾,這時退出循環(huán),因而語句return(t-s);返回的就是字符串s所指字符串的長度。36.
下列程序的執(zhí)行結(jié)果是(
)。
#include<stdio.h>
main()
{
inta,b,c;
a=b=2;
c=(a++)-1;printf("%d,%d",a,c);
c+=-a+++(++b);printf("%d,%d",a,c);
}A
3,14,1B
3,14,2C
2,04,1D
2,14,1
分值:1答案:A[解析]本題主要考查自加運(yùn)算符(++、--)的使用。①前綴變量“++i、--i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達(dá)式的值參與運(yùn)算;②后綴變量“i++、i--”,先使用此時的表達(dá)式的值參與運(yùn)算,在使用i之后,再使i的值加1或者減1。
本題中計算表達(dá)式c=(a++)-1時先使用a的值進(jìn)行計算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此語句后a的值是3;表達(dá)式c+=-a+++(++b)等價于c=c+(-a++)+(++b),
c=1+(-3)+3=1,
此時a=4,b=3。37.
為了提高軟件模塊的獨(dú)立性,模塊之間最好是(
)。A
控制耦合B
公共耦合C
內(nèi)容耦合D
數(shù)據(jù)耦合
分值:1答案:D[解析]耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn),是互相關(guān)聯(lián)的。在程序設(shè)計中,各模塊間的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合,有利于提高模塊的獨(dú)立性。38.
有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為(
)。
A
ABCDEFB
BDAECFC
ABDCEFD
ABCDFE
分值:1答案:B[解析]對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。在遍歷左、右子樹時,注意依舊按照“左子樹一根結(jié)點(diǎn)一右子樹”的順序。39.
在C語言中,函數(shù)返回值的類型最終取決于(
)。A
函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型B
return語句中表達(dá)式值的類型C
調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實(shí)參類型D
函數(shù)定義時形參的類型
分值:1答案:A[解析]在C語言中,應(yīng)當(dāng)在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認(rèn)按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型一致。如果函數(shù)值的類型和return語句中的表達(dá)式類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)自動進(jìn)行轉(zhuǎn)換。即函數(shù)類型決定返回值的類型。40.
判斷字符串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))
分值:1答案: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)系運(yùn)算符比較兩個字符串的大小)。二、填空題1.
在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。
分值:2答案:前后件關(guān)系[解析]在數(shù)據(jù)存儲結(jié)構(gòu)中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關(guān)系,對于順序存儲的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲空間的位置來實(shí)現(xiàn)的,而對于鏈?zhǔn)酱鎯碚f,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實(shí)現(xiàn)的。2.
按照“先進(jìn)先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。
分值:2答案:隊列[解析]隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進(jìn)先出的原則組織數(shù)據(jù)的。3.
深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個數(shù)為______。
分值:2答案:16
[解析]滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。4.
在面向?qū)ο蟮姆椒ㄖ?,______描述的是具有相似屬性與操作的一組對象。
分值:2答案:類[解析]在面向?qū)ο蟮姆椒ㄖ?,把具有相同屬性和方法的對象稱為類,類是對象的抽象,對象是類的實(shí)例。5.
Jackson方法是一種面向______的結(jié)構(gòu)化方法。
分值:2答案:數(shù)據(jù)結(jié)構(gòu)[解析]Jackson方法是一種結(jié)構(gòu)化分析方法,它是一種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。6.
若a是血型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。
分值:2答案:12[解析]本題考查逗號表達(dá)式的運(yùn)算規(guī)則。逗號表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個表達(dá)式的結(jié)果取最后一個子表達(dá)式的值。
本題中首先計算逗號表達(dá)式中的第1個表達(dá)式a=2*3=6,然后計算第2個表達(dá)式a*2,這時整個表達(dá)式的值為12,但要注意,因?yàn)榈?個表達(dá)式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個表達(dá)式a+6=12,所以整個表達(dá)式最后的值為12。7.
表達(dá)式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。
分值:2答案:整型[解析]上面的表達(dá)式中,通過強(qiáng)制類型轉(zhuǎn)換把最后參與運(yùn)算的數(shù)據(jù)都轉(zhuǎn)換成了int型,所以最后得到的結(jié)果也是int類型。8.
下列程序段的輸出結(jié)果是______。
intn='C';
switch(n++)
{
default:printf("error");break;
case'a':printf("good");break;
case'C':printf("moming");
case'd':printf("class");
}
分值:2答案:morningclass[解析]本題考查了兩個知識點(diǎn):①“++、--”運(yùn)算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當(dāng)n='c'時,執(zhí)行“case'c':”,輸出morning;因?yàn)榇司渲袥]有break語句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結(jié)果為morningclass。9.
寫出下列程序的輸出結(jié)果______。
main()
{
intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
分值:2答案:3,3[解析]本題在while(n++<=1”語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做;n++是先取n的當(dāng)前值和1做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=0<=1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件a++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3。退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加1,即程序結(jié)束后得到n=4,但輸出的是3。10.
下列程序的功能是對輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{
charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
分值:2答案:(c=getchar())!='\n'[解析]分析題目可知,程序中運(yùn)用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\n'。11.
下列程序輸出的結(jié)果是______。
intm=17;
intfun(intx,inty)
{
intm=3;
return(X*y-m);
}
main()
{
inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
分值:2答案:1[解析]本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。
本程序首先定義了一個全局變量m=17,m=17的作用域在整個程序內(nèi)。在fun函數(shù)內(nèi)部定義了一個局部變量m=3,m=3的作用域僅在fun函數(shù)內(nèi)部,通過fun函數(shù)返回兩個形參的積再減m。在主函數(shù)中,輸出fun(a,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年甲乙雙方關(guān)于城市綜合體建設(shè)項(xiàng)目合作合同
- 五年級數(shù)學(xué)(小數(shù)四則混合運(yùn)算)計算題專項(xiàng)練習(xí)及答案匯編
- 2025年度城市綜合體土地使用權(quán)轉(zhuǎn)讓居間服務(wù)協(xié)議3篇
- 2025年度合同臺賬自動提醒系統(tǒng)安裝與調(diào)試服務(wù)合同3篇
- 2025名義法人免責(zé)協(xié)議書:能源管理優(yōu)化合作協(xié)議
- 2025年度購物中心商鋪拆墻施工與室內(nèi)外照明設(shè)計合同2篇
- 2025年度航空航天裝備公司借款協(xié)議書版2篇
- 2025年度二零二五年度綠色果園土地承包與可持續(xù)發(fā)展協(xié)議3篇
- 2025年度海洋工程鋼筋材料供應(yīng)及安裝服務(wù)合同3篇
- 2025年度二零二五年度廣告宣傳勞務(wù)合同3篇
- 2024版短視頻IP打造與授權(quán)運(yùn)營合作協(xié)議3篇
- 小學(xué)生防詐騙安全教育內(nèi)容
- 人工智能技術(shù)賦能多模態(tài)大學(xué)英語閱讀教學(xué)模式的探究
- 2023-2024學(xué)年浙江省寧波市鄞州區(qū)多校統(tǒng)編版六年級上冊期末考試語文試卷
- 裝修逾期索賠合同范例
- 云南省昆明市盤龍區(qū)2023-2024學(xué)年三年級上學(xué)期語文期末試卷
- 2024年貴州省六盤水市公開招聘警務(wù)輔助人員(輔警)筆試經(jīng)典練習(xí)卷(B)含答案
- 2024年醫(yī)院女工委工作計劃(6篇)
- 期末測試卷-2024-2025學(xué)年外研版(一起)英語六年級上冊(含答案含聽力原文無音頻)
- 人教版2025九年級道德與法治中考備考復(fù)習(xí)計劃
- 2024年度技術(shù)咨詢合同:某科技公司與某政府機(jī)構(gòu)關(guān)于技術(shù)咨詢服務(wù)的協(xié)議(2024版)2篇
評論
0/150
提交評論