網(wǎng)站首頁
分類導(dǎo)航
試題中心
下載中心
英語學(xué)習(xí)
繽紛校園
考試論壇
網(wǎng)站留言
客服中心
 2005年NCRE考前密卷及解析-選擇第21-40題
【字體:
2005年NCRE考前密卷及解析-選擇第21-40題
http://1glr.cn 來源:Chinaitlab 點擊: 更新:2005-7-11

 (21)以下程序的輸出結(jié)果是________。

main()
{ int a=-l,b=l,k;
if((++a<0)&&!(b--<=0))
printf("%d %d\n",a,b);
else
printf("%d %d\n”,b,a);
}

A)-l l B)0 1
C)1 0 D)0 0

(21)C

知識點:if條件的判斷

評析:邏輯運算符的優(yōu)先次序如下:!(非)→&&(與)→||(或),但本題需特別注意的是短路的概念:對于&&運算符,其兩邊表達式的值只要有一邊為假,則整個與運算表達式的值即為假,系統(tǒng)在執(zhí)行時,先運算&&左邊的表達式,若為假,則系統(tǒng)不會再判斷&&運算符右邊的表達式了,直接運用短路原理得整個與運算表達式的值為0。由于++a是先運算后使用,b--是先使用后運算。所以本題在執(zhí)行++a后,a值為0,不滿足條件,所以a為l,根據(jù)短路原理,b仍為0,接下去執(zhí)行else語句,輸出l 0。

(22)以下選項中,能定義s為合法的結(jié)構(gòu)體變量的是________。

A) typedef struct abc
{ double a;
char b[10];
}s;

B ) struct
{ double a;
char b[10];
}s;

C) struct ABC
{ double a;
char b[10];
}
ABC s;

D ) typedef ABC
{ double a;
char b[10];
}
ABC s:

(22)B

知識點:結(jié)構(gòu)體變量的定義

評析:定義一個結(jié)構(gòu)體類型的變量,可采用三種方法:

①先定義結(jié)構(gòu)體類型,再定義變量名;
②在定義類型的同時定義變量;
③直接定義結(jié)構(gòu)類型變量,即不出現(xiàn)結(jié)構(gòu)體名。
選項B符合第三種定義方法。

(23)請讀程序:

#include<stdio.h>
#include<string.h>
main()
{
char*sl="AbCdEf",*s2="aB";
s1++;s2++;
printf("%d\n",strcmp(s1,s2));
}

上面程序的輸出結(jié)果是_______。

A)正數(shù) B)負數(shù) C)零 D)不確定的值

(23)A

知識點:字符串比較函數(shù)strcmp()的應(yīng)用

評析:strcmp(X1,X2)是串比較函數(shù),當(dāng)X1>X2時返回值為正數(shù),當(dāng)X1<X2時返回值為負數(shù),當(dāng)XI=X2時返回值為零。

本題中“sl”、“s2”分別表示這兩個串中第一個字符的地址,s1++和s2++是將指針指向串的第二個字符,則*sl為“bCdEf',,*s2為“B”。而在字符串比較中。大小的確定是由各個字符串相應(yīng)位置字符的ASCII碼值的大小決定的!癇”的ASCII碼值為66,”b”的ASCII碼值為98,所以sl>s2,返回值為正數(shù)。

(24)請讀程序:

#include<stdio.h>
func(int a,int b){
int c:
c=a+b:
return C:
}
main(){
int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
}

上面程序的輸出結(jié)果是________。

A)11 B)20 C)2l D)31

(24)C

知識點:自增、自減運算

評析:函數(shù)func()的作用是返回兩個形參的和,第一個形參是x、y分別自減和自增后的和,其中(x--,y++,x+y)是一個逗號表達式,它的值應(yīng)該等于x+y,所以整個表達式(x--,y++,x+y)的值為13,而第二個形參的值為8(根據(jù)語法規(guī)則,應(yīng)當(dāng)先使用,后自增),所以fune()的返回值為13+8=21。

(25)請讀程序:

#include<stdio.h>
main()
{
int a,b;
for(a=1,b=l;a<=100;a++){
if(b>=20)break;
if(b%3==1){b+=3;continue;}
b_=5:
}
printf("%d\n",a);
}

上面程序的輸出結(jié)果是________。

A)7 B)8 C)9 D)10

(25)B

知識點:break語句和continue語句

評析:break語句的作用是用于跳出循環(huán)體,繼續(xù)執(zhí)行循環(huán)體下面的語句;而continue語句的作用是用于跳出本次循環(huán),即跳過循環(huán)體中尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循環(huán)的判定!埃ァ笔乔笥噙\算符,執(zhí)行第一次循環(huán)時,條件(b%3==1)為真,b=4,繼續(xù)下一次循環(huán),如此反復(fù),當(dāng)b=22時,條件(b>=20)為假,跳出循環(huán),此時共循環(huán)8次,即a=8。

(26)請讀程序片段(字符串內(nèi)沒有空格字符):

printf("%d\n",strlen("ATS\n0l2\l\\"));

上面程序片段的輸出結(jié)果是_______。

A)l1 B)10 C)9 D)8

(26)C

知識點:字符串的長度

評析:這個語句的目的是輸出“ATS\n012\1\\”這個串的長度,在串中“\\”代表一個“\”,為了和printf()函數(shù)中的轉(zhuǎn)義字符區(qū)分開來,在語法上使用了兩個反斜杠代替了一個反斜杠,所以它僅僅為一個字符,而”\l”代表數(shù)字l,也占一個字符,“\n”是回車換行符,也占一個字符,加上A、T、s、0、1、2,一共是9個字符。

(27)請選出可用作C語言用戶標識符的一組標識符_______。

A)Void B)a3_b3 C)For D)2a
define _123 _abc DO
WORD IF case sizeof

(27)B

知識點:C語言的標識符

評析:c語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。
選項A中的void和define都和c語言的關(guān)鍵字重名,不合法;

選項C中的case和c語言的關(guān)鍵字重名,不合法;

選項D中的2a是數(shù)字打頭而且sizeof和c語言的關(guān)鍵字重名,不合法。

(28)請選出以下程序的輸出結(jié)果_______。

#include<stdio_h>
sub(int*s,int y)
{ static int t=3;
y=s[t];t--;
}
main()
{ int a[]={1,2,3,4},i,x=0;
for(i=0;i<4;i++){
sub(a,x);printf("%d",x);}
printf("\n");
}

A)1234 B)432l C)0000 D)4444

(28)C

知識點:函數(shù)的形參和實參的關(guān)系

評析:x作為函數(shù)sub()的實參時,函數(shù)對x值的改變沒有返回主函數(shù),并不能使得x的值變化,所以在打印時,x的值是始終不變的,即為O。

(29)若有以下說明和語句,請選出哪個是對c數(shù)組元素的正確引用_______。

int c[4][5],(*cp)[5];
cp=c;
A)cp+l B)*(cp+3) C)*(cp+1)+3 D)*(*cp+2)

(29)D

知識點:數(shù)組元素的引用

評析:cp=c這個語句是將數(shù)組第0行的地址賦給了cp。cp+l使指針指向二維數(shù)組c的第一行;*(cp+3)是數(shù)組c的第三行的第0列的地址值;+(cp+1)+3是數(shù)組c的第一行第三列的地址值。

(30)設(shè)有以下語句

char a=3,b=6,c;
c=a^b<<2:
則c的二進制值是_______。

A)00011011 B)00010100 C)000ll 100 D)00011000

(30)A

知識點:位運算

評析: “<<”是c語言中規(guī)定的左移運算符,例如,a=a<<2,這個語句即是將a的二進制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘以2,左移兩位相當(dāng)于該數(shù)乘以2的2次方;,^是異或運算符,所以,c的二進制值應(yīng)為0001101l。

(31)設(shè)有

static char str[]="Beijing";

則執(zhí)行

printf("%d\n",strlen(strcpy(str, "China")));

后的輸出結(jié)果為_______。

A)5 B)7 C)12 D)14

(31)A

知識點:字符串的長度

評析:在執(zhí)行printf()函數(shù)前,數(shù)組str的長度是7,但是當(dāng)使用strcpy()函數(shù)將新的值賦給str后,strlen()函數(shù)返回的應(yīng)當(dāng)是現(xiàn)在的str字符串的字符個數(shù),即是5。

(32)以下程序的輸出結(jié)果是_______。

#include<stdio.h>
main()
{ int i;
for(i=1;i<5;i++){
if(i%2)printf("*");
else continue;
printf("#");
}
print"$\n");
}

A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$

(32)C

知識點:if語句的判斷

評析:當(dāng)i不可以整除2時打印”*”,然后打印“#”,不能整除2則執(zhí)行continue,跳過printf(“#”);語句,結(jié)束本次循環(huán),返回到循環(huán)的起始點。當(dāng)循環(huán)結(jié)束后,打印“$”。

(33)有以下程序

#include<stdio.h>
main()
{ int c;
while((c=getchar())!=‘\n’){
switch(C-‘2’){
case O:case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default:putchar(c十2);break;}
}
}

從第一列開始輸入以下數(shù)據(jù),↙代表一個回車符。
2473↙

程序的輸出結(jié)果是_______。

A)668977 B)668966 C)66778777 D)6688766

(33)A

知識點:switch()語句

評析:getchar()函數(shù)是從鍵盤接受一個字符輸入;當(dāng)用戶鍵入的字符不是回車符時,會進入一個多分支選擇語句,根據(jù)表達式c-‘2’的值進行分支選擇:putchar()是在屏幕上打印一個字符,最后的結(jié)果應(yīng)當(dāng)為668977。

(34)以下程序的輸出結(jié)果是________。

main()
{ int w=5;fun(w);printf("\n");}
fun(int k)
{ if(k>O) fun(k_1);
printf("%d",k);
}

A)5 4 3 2 l B)0 1 2 3 4 5
C)1 2 3 4 5 D)5 4 3 2 1 0

(34)B

知識點:函數(shù)的遞歸調(diào)用

評析:函數(shù)的遞歸調(diào)用就是在調(diào)用一個函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身。fun函數(shù)共被調(diào)用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(O)。其中fun(5)是main函數(shù)調(diào)用的,其余是在fun函數(shù)中調(diào)用的。

(35)若fp是指向某文件的指針,且已讀到此文件的末尾,則函數(shù)feof(f1))的返回值是_________ 。

A)EOF B)0 C)非零值 D)NULL

(35)C

知識點:文件結(jié)束符的返回值

評析:函數(shù)feof是用來判斷文件是否已讀到末尾,如果己讀到末尾則返回非零值,否則返回O。

(36)算法的時間復(fù)雜度是指_______。

A)執(zhí)行算法程序所需要的時間
B)算法程序的長度
C)算法執(zhí)行過程中所需要的基本運算次數(shù)
D)算法程序中的指令條數(shù)

(36)C

知識點:算法復(fù)雜度的概念和意義(時問復(fù)雜度與空間復(fù)雜度)

評析:所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。為了能夠比較客觀地反映出一個算法的效率,在度量一個算法的工作量時,不僅應(yīng)該與所使用的計算機、程序設(shè)計語言以及程序編制者無關(guān),而且還應(yīng)該與算法實現(xiàn)過程中的許多細節(jié)無關(guān)。為此,可以用算法在執(zhí)行過程中所需基本運算的執(zhí)行次數(shù)來度量算法的工作量。

(37)下列敘述中正確的是_______。

A)線性表是線性結(jié)構(gòu) B)棧與隊列是非線性結(jié)構(gòu)
C)線性鏈表是非線性結(jié)構(gòu) D)二叉樹是線性結(jié)構(gòu)

(37)A

知識點:線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念

評析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間相關(guān)聯(lián)關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件: (1)有且只有一個根結(jié)點; (2)每一個結(jié)點最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

(38)下面關(guān)于完全二叉樹的敘述中,錯誤的是_______。

A)除了最后一層外,每一層上的結(jié)點數(shù)均達到最大值
B)可能缺少若干個左右葉子結(jié)點
C)完全二叉樹一般不是滿二叉樹
D)具有結(jié)點的完全二叉樹的深度為[log2n]+l

(38)B

知識點:二叉樹的定義及其存儲結(jié)構(gòu)

評析:這里考察完全二又樹與滿二叉樹的定義及二叉樹的性質(zhì)。滿二叉樹指除最后一層外每一層上所有結(jié)點都有兩個子結(jié)點的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點數(shù)均達到最大值,在最后一層上只缺少右邊的若干子結(jié)點(葉子結(jié)點)的二叉樹。因此選項A是正確的,而選項B是錯誤的。由定義可知,滿二叉樹肯定是完全二又樹,而完全二又樹一般不是滿二叉樹,因此選項c是正確的敘述。選項D即二又樹性質(zhì)(5),也是正確的。

(39)結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是_______。

A)程序的規(guī)模 B)程序的易讀性
C)程序的執(zhí)行效率 D)程序的可移植性

(39)B

知識點:結(jié)構(gòu)化程序設(shè)計

評析:結(jié)構(gòu)化程序設(shè)計主要強調(diào)的足結(jié)構(gòu)化程序清晰易讀,可理解性好,程序員能夠進行逐步求精、程序證明和測試.以保證程序的正確性。

(40)在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是_______。

A)概要設(shè)計 B)詳細設(shè)計 C)可行性分析 D)需求分析

(40)D

知識點:軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發(fā)環(huán)境

評析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。軟件生命周期的主要活動階段為:

① 可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實施計劃。

②需求分析。對待開發(fā)軟件提出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能。編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。

③軟件設(shè)計。系統(tǒng)設(shè)計人員和程序設(shè)計人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。

④軟件實現(xiàn)。把軟件設(shè)計轉(zhuǎn)換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。

⑤軟件測試。在設(shè)計測試用例的基礎(chǔ)上,檢驗軟件的各個組成部分。編寫測試分析報告。

⑥運行和維護。將已交付的軟件投入運行,并存運行使用中不斷地維護,根據(jù)新提出的需求進行必要而且可能的擴充和刪改。

文章錄入:ak47    責(zé)任編輯:Exam8.com  
 版權(quán)聲明
   如果本網(wǎng)站所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本網(wǎng)內(nèi)容,請注明出處。
 發(fā)表評論
關(guān)于本站 網(wǎng)站聲明 廣告服務(wù)  聯(lián)系方式  付款方式  站內(nèi)導(dǎo)航  客服中心  友情鏈接   
Copyright © 2004-2006 考試吧 (Exam8.com) All Rights Reserved 
中國科學(xué)院研究生院中關(guān)村園區(qū)(北京市海淀區(qū))