2.已知二叉樹(shù)后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是
A)acbed
B)decab
C)deabc
D)cedba
3.鏈表不具有的特點(diǎn)是
A)不必事先估計(jì)存儲(chǔ)空間
B)可隨機(jī)訪問(wèn)任一元素
C)插入刪除不需要移動(dòng)元素
D)所需空間與線性表長(zhǎng)度成正比
4.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是
A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
B)分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
C)多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)
D)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
5.為了提高測(cè)試的效率,應(yīng)該
A)隨機(jī)選取測(cè)試數(shù)據(jù)
B)取一切可能的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù)
C)在完成編碼以后制定軟件的測(cè)試計(jì)劃
D)集中對(duì)付那些錯(cuò)誤群集的程序
答案 6.算法的時(shí)間復(fù)雜度是指
A)執(zhí)行算法程序所需要的時(shí)間
B)算法程序的長(zhǎng)度
C)算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)
D)算法程序中的指令條數(shù)
7.軟件生命周期中所花費(fèi)用最多的階段是
A)詳細(xì)設(shè)計(jì)
B)軟件編碼
C)軟件測(cè)試
D)軟件維護(hù)
8.數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS中用來(lái)定義模式、內(nèi)模式和外模式的語(yǔ)言為
A)C
B)Basic
C)DDL
D)DML
9.下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是
A)數(shù)據(jù)庫(kù)是一個(gè)DBF文件
B)數(shù)據(jù)庫(kù)是一個(gè)關(guān)系
C)數(shù)據(jù)庫(kù)是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合
D)數(shù)據(jù)庫(kù)是一組文件
10.下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是
A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過(guò)程
B)數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變
C)關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段
D)如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字
答案 11.以下敘述中正確的是
A)C語(yǔ)言比其他語(yǔ)言高級(jí)
B)C語(yǔ)言可以不用編譯就能被計(jì)算機(jī)識(shí)別執(zhí)行
C)C語(yǔ)言以接近英語(yǔ)國(guó)家的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式
D)C語(yǔ)言出現(xiàn)的最晚,具有其他語(yǔ)言的一切優(yōu)點(diǎn)
12.C語(yǔ)言中用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是
A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
B)if,switch,break
C)for,while,do-while
D)if,for,continue
13.C語(yǔ)言中最簡(jiǎn)單的數(shù)據(jù)類型包括
A)整型、實(shí)型、邏輯型
B)整型、實(shí)型、字符型
C)整型、字符型、邏輯型
D)字符型、實(shí)型、邏輯型
14.若變量已正確定義并賦值,以下符合C語(yǔ)言語(yǔ)法的表達(dá)式是
A)a:=b+1
B)a=b=c+2
C)int 18.5%3
D)a=a+7=c+b
15.下列可用于C語(yǔ)言用戶標(biāo)識(shí)符的一組是
A)voiddefineWORD
B)a3_b3_123Car
C)For-abcIFCase
D)2aDOsizeof
答案 16.若變量a,i已正確定義,且i已正確賦值,合法的語(yǔ)句是
A)a==1
B)++i;
C)a=a++=5;
D)a=int(i);
17.已知
int t=0;
while (t=1)
{...}
則以下敘述正確的是
A)循環(huán)控制表達(dá)式的值為0
B)循環(huán)控制表達(dá)式的值為1
C)循環(huán)控制表達(dá)式不合法
D)以上說(shuō)法都不對(duì)
18.有如下程序
main()
{
int x=1,a=0,b=0;
switch(x)
{
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
該程序的輸出結(jié)果是
A)a=2,b=1
B)a=1,b=1
C)a=1,b=0
D)a=2,b=2
19.有以下程序
main()
{ int i=1,j=1,k=2;
if((j++||k++)&& i++)
printf("%d,%d,%d\n",i,j,k);
}
執(zhí)行后輸出結(jié)果是
A)1,1,2
B)2,2,1
C)2,2,2
D)2,2,3
20.有如下程序
main()
{ int n=9;
while(n>6){n--; printf("%d",n);}
}
該程序的輸出結(jié)果是
A)987
B)876
C)8765
D)9876
答案 21.在下列選項(xiàng)中,沒(méi)有構(gòu)成死循環(huán)的是
A)int i=100;
while(1)
{ i=i0+1;
if(i>100)break;
}
B)for(;;);
C)int k=10000;
do{ k++; }while(k>10000);
D)int s=36;
while(s)--s;
22.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是
A)函數(shù)調(diào)用可以作為獨(dú)立的語(yǔ)句存在
B)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參
C)函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中
D)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參
23.有以下程序
float fun(int x,int y)
{ return(x+y);}
main()
{ int a=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));
}
程序運(yùn)行后的輸出結(jié)果是
A)編譯出錯(cuò)
B)9
C)21
D)9.0
24.若有以下調(diào)用語(yǔ)句,則不正確的fun函數(shù)的首部是
main()
{ …
int a[50],n;
…
fun(n, &a[9]);
…
}
A)void fun(int m, int x[])
B)void fun(int s, int h[41])
C)void fun(int p, int *s)
D)void fun(int n, int a)
25.設(shè)有以下說(shuō)明語(yǔ)句
struct stu
{ int a;
float b;
} stutype;
則下面的敘述不正確的是
A)struct是結(jié)構(gòu)體類型的關(guān)鍵字
B)struct stu是用戶定義的結(jié)構(gòu)體類型
C)stutype是用戶定義的結(jié)構(gòu)體類型名
D)a和b都是結(jié)構(gòu)體成員名
26.若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是
main()
{ int x,y;
scanf("%d",&x);
y=x>12?x+10:x-12;
printf("%d\n",y);
}
A)0
B)22
C)12
D)10
27.以下說(shuō)法正確的是
A)C語(yǔ)言程序總是從第一個(gè)的函數(shù)開(kāi)始執(zhí)行
B)在C語(yǔ)言程序中,要調(diào)用函數(shù)必須在main()函數(shù)中定義
C)C語(yǔ)言程序總是從main()函數(shù)開(kāi)始執(zhí)行
D)C語(yǔ)言程序中的main()函數(shù)必須放在程序的開(kāi)始部分
28.有以下程序
#define F(X,Y)(X)*(Y)
main()
{ int a=3, b=4;
printf("%d\n", F(a++, b++));
}
程序運(yùn)行后的輸出結(jié)果是
A)12
B)15
C)16
D)20
29.下列程序執(zhí)行后的輸出結(jié)果是
void func(int *a,int b[])
{ b[0]=*a+6; }
main()
{ int a,b[5]={0};
a=0; b[0]=3;
func(&a,b); printf("%d\n",b[0]);
}
A)6
B)7
C)8
D)9
30.若有下面的程序段
char s[]="china";char *p; p=s;
則下列敘述正確的是
A)s和p完全相同
B)數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等
C)s數(shù)組長(zhǎng)度和p所指向的字符串長(zhǎng)度相等
D)*p與s[0]相等
答案 31.以下程序中函數(shù)sort的功能是對(duì)a數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序
void sort(int a[],int n)
{ int i,j,t;
for(i=0;ifor(j=i+1;jif(a[i]}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=0;i<10;i++)printf("%d,",aa[i]);
printf("\n");
}
程序運(yùn)行后的輸出結(jié)果是
A)1,2,3,4,5,6,7,8,9,10,
B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7,6,5,4,9,10,
D)1,2,10,9,8,7,6,5,4,3,
32.以下程序的運(yùn)行結(jié)果是
#include "stdio.h"
main()
{ struct date
{ int year,month,day;}today;
printf("%d\n",sizeof(struct date));
}
A)6
B)8
C)10
D)12
33.若執(zhí)行下述程序時(shí),若從鍵盤輸入6和8時(shí),結(jié)果為
main()
{ int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if(as=b;
s*=s;
printf("%d",s);
}
A)36
B)64
C)48
D)以上都不對(duì)
34.下列關(guān)于C語(yǔ)言數(shù)據(jù)文件的敘述中正確的是
A)文件由ASCII碼字符序列組成,C語(yǔ)言只能讀寫(xiě)文本文件
B)文件由二進(jìn)制數(shù)據(jù)序列組成,C語(yǔ)言只能讀寫(xiě)二進(jìn)制文件
C)文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
D)文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
35.有以下程序
void ss(char *s,char t)
{ while(*s)
{ if(*s==t)*s=t-′a′+′A′;
s++;
}
}
main()
{ char str1[100]="abcddfefdbd",c=′d′;
ss(str1,c); printf("%s\n",str1);
}
程序運(yùn)行后的輸出結(jié)果是
A)ABCDDEFEDBD
B)abcDDfefDbD
C)abcAAfefAbA
D)Abcddfefdbd
答案 二、填空題(每空2分,共計(jì)30分)
1.算法的基本特征是可行性、確定性、 【1】 和擁有足夠的情報(bào)。
2.在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為 【2】 。
3.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類描述的是具有相似性質(zhì)的一組 【3】 。
4.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為 【4】 。
5.數(shù)據(jù)庫(kù)管理系統(tǒng)常見(jiàn)的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和 【5】 3種。
答案 6.下列程序的輸出結(jié)果是 【6】 。
maim ()
{ char b[]="Hello you";
b[5]=0;
printf ("%s\n",b);
}
7.以下程序的輸出結(jié)果是 【7】 。
main()
{ int a=0;
a+=(a=8);
printf("%d\n",a);
}
8.函數(shù) void fun(float *sn, int n)的功能是根據(jù)以下公式計(jì)算S,計(jì)算結(jié)果通過(guò)形參指針sn傳回;n通過(guò)形參傳入,n的值大于等于0。請(qǐng)?zhí)羁铡?
void fun( float *sn, int n)
{ float s=0.0, w, f=-1.0;
int i=0;
for(i=0; i<=n; i++)
{ f= 【8】 * f;
w=f/(2*i+1);
s+=w;
}
【9】=s;
}
9.函數(shù)fun的功能是根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個(gè)正數(shù)且要求m>n。
例如:m=12,n=8時(shí),運(yùn)行結(jié)果應(yīng)該是495.000000。請(qǐng)?jiān)陬}目的空白處填寫(xiě)適當(dāng)?shù)某绦蛘Z(yǔ)句,將該程序補(bǔ)充完整。
#include
#include
float fun (int m, int n)
{ int i;
double p=1.0;
for(i=1;i<=m;i++) 【10】 ;
for(i=1;i<=n;i++) 【11】 ;
for(i=1;i<=m-n;i++)p=p/i;
return p;
}
main ()
{ clrscr();
printf ("p=%f\n",fun (12,8));
}
10.該程序運(yùn)行的結(jié)果是 【12】 。
#include
#include
#define M 100
void fun(int m, int *a, int *n)
{ int i,j=0;
for(i=1;i<=m;i++)
if(i%7==0||i==0)
a[j++]=i;
*n=j;
}
main()
{ int aa[M],n,k;
clrscr();
fun(10,aa,&n);
for(k=0;k if((k+1) ==0)printf("\n");
else printf("M",aa[k]);
printf("\n");
}
答案 11.下列程序的功能是求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。
例如,若輸入字符串123412132,輸入字符1,則輸出3,請(qǐng)?zhí)羁铡?
#include
#include
#define M 81
int fun(char *ss, char c)
{ int i=0;
for(; 【13】 ;ss++)
if(*ss==c)i++;
return i;
}
main()
{ char a[M], ch;
clrscr();
printf("\nPlease enter a string: "); gets(a);
printf("\nPlease enter a char: "); ch=getchar();
printf("\nThe number of the char is: %d\n", fun(a,ch));
}
12.下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁铡?
#include "stdio.h"
FILE *fp;
{ char ch;
if((fp=fopen( 【14】 ))==NULL)exit(0);
while((ch=getchar( ))!=′@′)fputc (ch,fp);
fclose(fp);
}
13.設(shè)有如下宏定義
#define MYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通過(guò)宏調(diào)用實(shí)現(xiàn)變量a,b內(nèi)容交換,請(qǐng)?zhí)羁铡?
float a=5,b=16,c;
MYSWAP( 【15】 ,a,b);
選 擇 題 1 2 3 4 5 6 7 8 9 10
您的答案
正確答案 C D B D D C D C C D
選 擇 題 11 12 13 14 15 16 17 18 19 20
您的答案
正確答案 C A B B B B B A C B
選 擇 題 21 22 23 24 25 26 27 28 29 30
您的答案
正確答案 D D B D C A C A A D
選 擇 題 31 32 33 34 35 36 37 38 39 40
您的答案
正確答案 C A B D B
填 空 題 1 2 3 4 5
您的答案
正確答案 有窮性 log2n 對(duì)象 軟件生命周期 關(guān)系模型
填 空 題 6 7 8 9 10
您的答案
正確答案 Hello 16 -1 *sn p=p*i p=p/i 7
填 空 題 11 12 13 14 15
您的答案
正確答案 *ss!='\0' bi.dat,w||bi.dat,w+ c