一 、選擇題
(1)已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為
A)GEDHFBCA
B)DGEBHFCA
C)ABCDEFGH
D)ACBFEDHG
正確答案: B
(2)樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是
A)有且只有1
B)1或多于1
C)0或1
D)至少2
正確答案: A
(3)如果進(jìn)棧序列為e1,e2,e3,e4,則可能的出棧序列是
A)e3,e1,e4,e2
B)e2,e4,e3,e1
C)e3,e4,e1,e2
D)任意順序
正確答案: B
(4)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是
A)不限制goto語句的使用
B)減少或取消注解行
C)程序越短越好
D)程序結(jié)構(gòu)應(yīng)有助于讀者理解
正確答案: D
(5)程序設(shè)計(jì)語言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分和
A)對(duì)象成分
B)變量成分
C)語句成分
D)傳輸成分
正確答案: D
(6)下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是
A)便于用戶、開發(fā)人員進(jìn)行理解和交流
B)反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C)作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)
D)便于開發(fā)人員進(jìn)行需求分析
正確答案: D
(7)下列不屬于軟件工程的3個(gè)要素的是
A)工具
B)過程
C)方法
D)環(huán)境
正確答案: D
(8)單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為
A)外模式
B)概念模式
C)內(nèi)模式
D)存儲(chǔ)模式
正確答案: A
(9)將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成
A)屬性
B)關(guān)系
C)鍵
D)域
正確答案: B
(10)SQL語言又稱為
A)結(jié)構(gòu)化定義語言
B)結(jié)構(gòu)化控制語言
C)結(jié)構(gòu)化查詢語言
D)結(jié)構(gòu)化操縱語言
正確答案: C
(11)下列敘述中正確的是
A)C語言編譯時(shí)不檢查語法
B)C語言的子程序有過程和函數(shù)兩種
C)C語言的函數(shù)可以嵌套定義
D)C語言的函數(shù)可以嵌套調(diào)用
正確答案: D
(12)在C語言中,退格符是
A)\n
B)\t
C)\f
D)\b
正確答案: D
(13)以下敘述中正確的是
A)構(gòu)成C程序的基本單位是函數(shù)
B)可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)
C)main()函數(shù)必須放在其他函數(shù)之前
D)所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義
正確答案: A
(14)在C程序中,判邏輯值時(shí),用"非0"表示邏輯值"真", 又用"0"表示邏輯值"假"。 在求邏輯值時(shí),用()表示邏輯表達(dá)式值為"真", 又用()表示邏輯表達(dá)式值為"假"。
A)1 0
B)0 1
C)非0 非0
D)1 1
正確答案: A
(15)在C語言中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是
A)%
B)\
C)%和\
D)**
正確答案: A
(16)字符型數(shù)據(jù)在機(jī)器中是用ASCII碼表示的,字符"5"和"7"在機(jī)器中表示為
A)10100011和 01110111
B)01000101和01100011
C)00110101和00110111
D)01100101和01100111
正確答案: C
(17)若已定義:int a=25,b=14,c=19;以下三目運(yùn)算符(?:)所構(gòu)成語句的執(zhí)行后
a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結(jié)果是
A)***a=25,b=13,c=19
B)***a=26,b=14,c=19
C)### a=25,b=13,c=19
D)### a=26,b=14,c=19
正確答案: C
(18)若有定義:int a=7;float x=2.5,y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4的值是
A)2.500000
B)2.750000
C)3.500000
D)0.000000
正確答案: A
(19)下列程序段的輸出結(jié)果是:
int a=1234;
float b=123.456;
double c=12345.54321;
printf("%2d,%2.1f,%2.1f",a,b,c);
A)無輸出
B)12,123.5,12345.5
C)1234,123.5,12345.5
D)1234,123.4,1234.5
正確答案: C
(20)若運(yùn)行以下程序時(shí),從鍵盤輸入 ADescriptor(表示回車),則下面程序的運(yùn)行結(jié)果是#include
main()
{char c;
int v0=1,v1=0,v2=0;
do{switch(c=getchar())
{case ′a′:case ′A′:
case ′e′:case ′E′:
case ′i′:case ′I′:
case ′o′:case ′O′:
case ′u′:case ′U′:v1+=1;
default:v0+=1;v2+=1; }
}while(c!=′\n′);
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A)v0=7,v1=4,v2=7
B)v0=8,v1=4,v2=8
C)v0=11,v1=4,v2=11
D)v0=13,v1=4,v2=12
正確答案: D
(21)設(shè)有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
則
A)運(yùn)行程序段后輸出0
B)運(yùn)行程序段后輸出1
C)程序段中的控制表達(dá)式是非法的
D)程序段執(zhí)行無限次
正確答案: B
(22)有如下程序
main()
{ float x=2.0,y;
if(x<0.0)y=0.0;
else if(x>10.0)y=1.0/x;
else y=1.0;
printf("%f\n",y);}
該程序的輸出結(jié)果是
A)0.000000
B)0.250000
C)0.500000
D)1.000000
正確答案: D
(23)執(zhí)行下面的程序段后,變量k中的值為
int k=3, s[2];
s[0]=k; k=s[1]*10;
A)不定值
B)33
C)30
D)10
正確答案: A
(24)以下程序段的描述,正確的是
x=-1;
do
{x=x*x;}
while(!x);
A)是死循環(huán)
B)循環(huán)執(zhí)行兩次
C)循環(huán)執(zhí)行一次
D)有語法錯(cuò)誤
正確答案: C
(25)以下選項(xiàng)錯(cuò)誤的是
A)main()
{ int x,y,z;
x=0;y=x-1;
z=x+y;}
B)main()
{ int x,y,z;
x=0,y=x+1;
z=x+y;}
C)main()
{ int x;int
int y;
x=0,y=x+1;
z=x+y;}
D)main()
{ int x,y,z;
x=0;y=x+1;
z=x+y,}
正確答案: D
(26)有如下程序段
int a=14,b=15,x;
char c=′A′;
x=(a&&b)&&(c<′B′);
執(zhí)行該程序段后,x的值為
A)ture
B)false
C)0
D)1
正確答案: D
(27)下列程序執(zhí)行后的輸出結(jié)果是
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}}
void func2(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}}
main()
{ int i=0; func1(i); printf("\n");}
A)hello
B)hel
C)hlo
D)hlm
正確答案: C
(28)以下函數(shù)返回a所指數(shù)組中值所在的下標(biāo)值
fun(int *a,int n)
{ int i,j=0,p;
p=j;
for(i=j;i if(a[i]>a[p])_________;
return(p);}
在下劃線處應(yīng)填入的內(nèi)容是
A)i=p
B)a[p]=a[i]
C)p=j
D)p=I
正確答案: D
(29)下面說明不正確的是
A)char a[10]="china";
B)char a[10],*p=a;p="china"
C)char *a;a="china";
D)char a[10],*p;p=a="china"
正確答案: D
(30)以下程序的輸出結(jié)果是
#include
void prt (int *x, int *y, int *z)
{printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{int a=10,b=40,c=20;
prt (&a,&b,&c);
prt (&a,&b,&c);}
A)11,42, 31
12,22,41
B)11,41,20
12,42,20
C)11,21,40
11,21,21
D)11,41,21
12,42,22
正確答案: B
(31)若有函數(shù)內(nèi)部說明:int a[3][4];則數(shù)組a中各元素
A)可在程序的運(yùn)行階段得到初值0
B)可在程序的編譯階段得到初值0
C)不能得到確定的初值
D)可在程序的編譯或運(yùn)行階段得到初值0
正確答案: C
(32)有如下程序
main()
{ char s[]="ABCD", *p;
for(p=s+1; p 該程序的輸出結(jié)果是
A)ABCD
BCD
CD
D
B)A
B
C
D
C)B
C
D
D)BCD
CD
D
(33)下列程序執(zhí)行后的輸出結(jié)果是
main()
{ int a[3][3], *p,i;
p=&a[0][0];
for(i=1; i<9; i++)p[i]=i+1;
printf("%d\n",a[1][2]);}
A)3
B)6
C)9
D)隨機(jī)數(shù)
正確答案: B
(34)定義如下變量和數(shù)組:
int k;
int a[3][3]={9,8,7,6,5,4,3,2,1};
則下面語句的輸出結(jié)果是
for(k=0;k<3;k++)printf("%d",a[k][k]);
A)7 5 3
B)9 5 1
C)9 6 3
D)7 4 1
正確答案: B
(35)下列程序執(zhí)行后的輸出結(jié)果是
main()
{ char arr[2][4];
strcpy(arr,"you"); strcpy(arr[1],"me");
arr[0][3]=′&′;
printf("%s\n",arr);}
A)you&me
B)you
C)me
D)err
正確答案: A
(36)有以下函數(shù)
char fun(char *p)
{return p;}
該函數(shù)的返回值是
A)無確切的值
B)形參p中存放的地址值
C)一個(gè)臨時(shí)存儲(chǔ)單元的地址
D)形參p自身的地址值
正確答案: B
(37)以下正確的說法是
A)定義函數(shù)時(shí),形參的類型說明可以放在函數(shù)體內(nèi)
B)return后邊的值不能為表達(dá)式
C)如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準(zhǔn)
D)如果形參與實(shí)參類型不一致,以實(shí)參類型為準(zhǔn)
正確答案: C
(38)有以下程序
int f(int n)
{ if(n==1)return 1;
else return f(n-1)+1;}
main()
{ int i,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);}
程序運(yùn)行后的輸出結(jié)果是
A)4
B)3
C)2
D)1
正確答案: B
(39)設(shè)有如下定義:
struck sk
{ int a;
float b;
} data;
int *p;
若要使P指向data中的a域,正確的賦值語句是
A)p=&a;
B)p=data.a;
C)p=&data.a;
D)*p=data.a;
正確答案: C
(40)以下對(duì)結(jié)構(gòu)體類型變量的定義中,不正確的是
A)typedef struct aa
{ int n;
float m;
}AA;
AA tdl;
B)#define AA struct aa
AA{ int n;
float m;
} tdl;
C)struct
{ int n;
float m;
} aa;
struct aa tdl;
D)struct
{ int n;
float m;
} tdl;
正確答案: C
(41)若說明int *p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是
A)p=&n;scanf("%d",&p);
B)p=&n;scanf("%d",*p);
C)scanf("%d",n);
D)p=&n;scanf("%d",p);
正確答案: D
(42) 在下述程序中,判斷i>j共執(zhí)行的次數(shù)是
main()
{int i=0, j=10, k=2, s=0;
for (;;)
{i+=k;
if(i>j)
{printf("%d",s);
break;
}s+=i;
}
}
A)4
B)7
C)5
D)6
正確答案: D (43)以下4個(gè)選項(xiàng)中,不能看做一條語句的是
A);
B)a=5,b=2.5,c=3.6;
C)if(a<5);
D)if(b!=5)x=2;y=6;
正確答案: D
(44)在C語言中,變量的隱含存儲(chǔ)類別是
A)auto
B)static
C)extern
D)無存儲(chǔ)類別
正確答案: A
(45)若有以下程序
#include
void f(int n);
main()
{ void f(int n);
f(5);
}
void f(int n)
{ printf("%d\n",n); }
則以下敘述中不正確的是
A)若只在主函數(shù)中對(duì)函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f
B)若在主函數(shù)前對(duì)函數(shù)f進(jìn)行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)f
C)對(duì)于以上程序,編譯時(shí)系統(tǒng)會(huì)提示出錯(cuò)信息:提示對(duì)f函數(shù)重復(fù)說明
D)函數(shù)f無返回值,所以可用void將其類型定義為無返回值型
正確答案: C
(46)若有下面的說明和定義
struct test
{ int ml; char m2; float m3;
union uu {char ul[5]; int u2[2];} ua;
} myaa;
則sizeof(struct test )的值是
A)12
B)16
C)14
D)9
正確答案: A
(47)以下程序的輸出是
struct st
{ int x; int *y;} *p;
int dt[4]={ 10,20,30,40 };
struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};
main()
{ p=aa;
printf("%d\n",++(p->x));
}
A)10
B)11
C)51
D)60
正確答案: C
(48)若有運(yùn)算符<<,sizeof,^,&=,則它們按優(yōu)先級(jí)由高至低的正確排列次序是
A)sizeof,&=,<<,^
B)sizeof,<<,^,&=
C)^,<<,sizeof,&=
D)<<,^,&=,sizeof
正確答案: B
(49)函數(shù)fseek(pf, OL,SEEK_END)中的SEEK_END代表的起始點(diǎn)是
A)文件開始
B)文件末尾
C)文件當(dāng)前位置
D)以上都不對(duì)
正確答案: B
(50)有以下程序
#include
main()
{ FILE *fp; int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);
fclose(fp);
}
程序運(yùn)行后的輸出結(jié)果是
A)20 30
B)20 50
C)30 50
D)30 20
正確答案: A
二 、填空題
(1)數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于 【1】 。
正確答案: 1.(存儲(chǔ)結(jié)構(gòu))
(2)在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機(jī)制稱為 【2】 。
正確答案: 1.(繼承)
(3)耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中 【3】 反映了模塊內(nèi)各成分之間的聯(lián)系。
正確答案: 1.(內(nèi)聚)
(4)一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目"的聯(lián)系屬于 【4】 的聯(lián)系。
正確答案: 1.(一對(duì)多或1:N)
(5)數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、 【5】 、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
正確答案: 1.(數(shù)據(jù)庫概念設(shè)計(jì)階段)
(6)以下程序的運(yùn)行結(jié)果是【6】。
#define MAX (a,b)(a>b?a:b)+1
main ()
{ int i=6,j=8,k;
printf ("%d\n",MAX(i,j));
}
正確答案: 1.(9)
(7)以下程序的功能是從健盤輸入若干學(xué)生的成績,并輸出成績和最低成績,當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束。請(qǐng)?zhí)羁铡?BR> main ()
{float x,amax,amin;
scanf ("%f",&x);
amax=x;
amin=x;
while (【7】)
{if (x>amax)
amax=x;
else
if【8】
amin=x;
else scanf ("%f",&x);
}
printf ("\n amax=%f\n amin=%f\n",amax,amin);
}
正確答案: 1.(x>0) 2.(x
(8)在對(duì)文件操作的過程中,若要求文件的位置指針回到文件的開始處,應(yīng)當(dāng)調(diào)用的函數(shù)是【9】。
正確答案: 1.(rewind()或fseek())
(9)在計(jì)算機(jī)中,字符的比較是對(duì)它們的【10】進(jìn)行比較。
正確答案: 1.(ASCII碼)
(10)在內(nèi)存中,存儲(chǔ)字符′x′要占用1個(gè)字節(jié),存儲(chǔ)字符串″X″要占用【11】個(gè)字節(jié)。
正確答案: 1.(2)
(11)下列程序的輸出結(jié)果是16.00,請(qǐng)?zhí)羁铡?BR> main()
{int a=9, b=2;
float x=【12】, y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n", z );
}
正確答案: 1.(6.6)
(12)設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請(qǐng)寫出fun函數(shù)的首部【13】。要求形參名為b。
main()
{double s[10][22];
int n; ┆
┆
fun(s);
┆
}
正確答案: 1.(void fun(double b[][22]))
(13)下列程序的功能是輸入一個(gè)整數(shù),判斷是否是素?cái)?shù),若為素?cái)?shù)輸出1,否則輸出0,請(qǐng)?zhí)羁铡?BR> main()
{int i, x, y=1;
scanf("%d", &x);
for(i=2; i<=x/2; i++)
if【14】{ y=0; break;}
printf("%d\n", y);
}
正確答案: 1.((x%i==0))
(14)下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過來,請(qǐng)?zhí)羁铡?BR> #include
main()
{ int i,j,【15】;char str[]={"1234567"};
for(i=0,j=strlen(str)【16】;i {k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);
}
正確答案: 1.(k) 2.(-1)
(15)以下程序可把輸入的十進(jìn)制數(shù)以十六進(jìn)制數(shù)的形式輸出,請(qǐng)?zhí)羁铡?BR> main()
{char b[17]={"0123456789ABCDEF"};
int c[64],d,i=0,base=16;
long n;
printf("Enter a number:\n");scanf("%ld",&n);
do{c[i]=【17】;i++;n=n/base;}
while(n!=0);
printf("Transmite new base:\n");
for(--i;i>=0;--i)
{d=c[i];printf("%c",b【18】);}
printf("\n");
}
正確答案: 1.(n%base) 2.([d])
(16)若給fun函數(shù)的形參s傳送字符串:"]]6354abcc" (其中]表示空格字符),則函數(shù)的返回值是【19】。
#include
long fun(char s[])
{long n;int sign;
for(;isspace(*s);s++);
sign=(*s==′-′)?-1:1;
if(*s==′+′||*s==′-′)s++;
for(n=0;isdigit(*s);s++)n=10*n+(*s-′0′);
return sign*n;
}
正確答案: 1.(6354)
(17)設(shè)有定義"struct {int a; float b; char c;} abc, *p_abc=&abc;",則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【20】a。
正確答案: 1.(->)
(1)已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為
A)GEDHFBCA
B)DGEBHFCA
C)ABCDEFGH
D)ACBFEDHG
正確答案: B
(2)樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是
A)有且只有1
B)1或多于1
C)0或1
D)至少2
正確答案: A
(3)如果進(jìn)棧序列為e1,e2,e3,e4,則可能的出棧序列是
A)e3,e1,e4,e2
B)e2,e4,e3,e1
C)e3,e4,e1,e2
D)任意順序
正確答案: B
(4)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是
A)不限制goto語句的使用
B)減少或取消注解行
C)程序越短越好
D)程序結(jié)構(gòu)應(yīng)有助于讀者理解
正確答案: D
(5)程序設(shè)計(jì)語言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分和
A)對(duì)象成分
B)變量成分
C)語句成分
D)傳輸成分
正確答案: D
(6)下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是
A)便于用戶、開發(fā)人員進(jìn)行理解和交流
B)反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C)作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)
D)便于開發(fā)人員進(jìn)行需求分析
正確答案: D
(7)下列不屬于軟件工程的3個(gè)要素的是
A)工具
B)過程
C)方法
D)環(huán)境
正確答案: D
(8)單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為
A)外模式
B)概念模式
C)內(nèi)模式
D)存儲(chǔ)模式
正確答案: A
(9)將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成
A)屬性
B)關(guān)系
C)鍵
D)域
正確答案: B
(10)SQL語言又稱為
A)結(jié)構(gòu)化定義語言
B)結(jié)構(gòu)化控制語言
C)結(jié)構(gòu)化查詢語言
D)結(jié)構(gòu)化操縱語言
正確答案: C
(11)下列敘述中正確的是
A)C語言編譯時(shí)不檢查語法
B)C語言的子程序有過程和函數(shù)兩種
C)C語言的函數(shù)可以嵌套定義
D)C語言的函數(shù)可以嵌套調(diào)用
正確答案: D
(12)在C語言中,退格符是
A)\n
B)\t
C)\f
D)\b
正確答案: D
(13)以下敘述中正確的是
A)構(gòu)成C程序的基本單位是函數(shù)
B)可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)
C)main()函數(shù)必須放在其他函數(shù)之前
D)所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義
正確答案: A
(14)在C程序中,判邏輯值時(shí),用"非0"表示邏輯值"真", 又用"0"表示邏輯值"假"。 在求邏輯值時(shí),用()表示邏輯表達(dá)式值為"真", 又用()表示邏輯表達(dá)式值為"假"。
A)1 0
B)0 1
C)非0 非0
D)1 1
正確答案: A
(15)在C語言中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是
A)%
B)\
C)%和\
D)**
正確答案: A
(16)字符型數(shù)據(jù)在機(jī)器中是用ASCII碼表示的,字符"5"和"7"在機(jī)器中表示為
A)10100011和 01110111
B)01000101和01100011
C)00110101和00110111
D)01100101和01100111
正確答案: C
(17)若已定義:int a=25,b=14,c=19;以下三目運(yùn)算符(?:)所構(gòu)成語句的執(zhí)行后
a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結(jié)果是
A)***a=25,b=13,c=19
B)***a=26,b=14,c=19
C)### a=25,b=13,c=19
D)### a=26,b=14,c=19
正確答案: C
(18)若有定義:int a=7;float x=2.5,y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4的值是
A)2.500000
B)2.750000
C)3.500000
D)0.000000
正確答案: A
(19)下列程序段的輸出結(jié)果是:
int a=1234;
float b=123.456;
double c=12345.54321;
printf("%2d,%2.1f,%2.1f",a,b,c);
A)無輸出
B)12,123.5,12345.5
C)1234,123.5,12345.5
D)1234,123.4,1234.5
正確答案: C
(20)若運(yùn)行以下程序時(shí),從鍵盤輸入 ADescriptor
main()
{char c;
int v0=1,v1=0,v2=0;
do{switch(c=getchar())
{case ′a′:case ′A′:
case ′e′:case ′E′:
case ′i′:case ′I′:
case ′o′:case ′O′:
case ′u′:case ′U′:v1+=1;
default:v0+=1;v2+=1; }
}while(c!=′\n′);
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A)v0=7,v1=4,v2=7
B)v0=8,v1=4,v2=8
C)v0=11,v1=4,v2=11
D)v0=13,v1=4,v2=12
正確答案: D
(21)設(shè)有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
則
A)運(yùn)行程序段后輸出0
B)運(yùn)行程序段后輸出1
C)程序段中的控制表達(dá)式是非法的
D)程序段執(zhí)行無限次
正確答案: B
(22)有如下程序
main()
{ float x=2.0,y;
if(x<0.0)y=0.0;
else if(x>10.0)y=1.0/x;
else y=1.0;
printf("%f\n",y);}
該程序的輸出結(jié)果是
A)0.000000
B)0.250000
C)0.500000
D)1.000000
正確答案: D
(23)執(zhí)行下面的程序段后,變量k中的值為
int k=3, s[2];
s[0]=k; k=s[1]*10;
A)不定值
B)33
C)30
D)10
正確答案: A
(24)以下程序段的描述,正確的是
x=-1;
do
{x=x*x;}
while(!x);
A)是死循環(huán)
B)循環(huán)執(zhí)行兩次
C)循環(huán)執(zhí)行一次
D)有語法錯(cuò)誤
正確答案: C
(25)以下選項(xiàng)錯(cuò)誤的是
A)main()
{ int x,y,z;
x=0;y=x-1;
z=x+y;}
B)main()
{ int x,y,z;
x=0,y=x+1;
z=x+y;}
C)main()
{ int x;int
int y;
x=0,y=x+1;
z=x+y;}
D)main()
{ int x,y,z;
x=0;y=x+1;
z=x+y,}
正確答案: D
(26)有如下程序段
int a=14,b=15,x;
char c=′A′;
x=(a&&b)&&(c<′B′);
執(zhí)行該程序段后,x的值為
A)ture
B)false
C)0
D)1
正確答案: D
(27)下列程序執(zhí)行后的輸出結(jié)果是
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}}
void func2(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}}
main()
{ int i=0; func1(i); printf("\n");}
A)hello
B)hel
C)hlo
D)hlm
正確答案: C
(28)以下函數(shù)返回a所指數(shù)組中值所在的下標(biāo)值
fun(int *a,int n)
{ int i,j=0,p;
p=j;
for(i=j;i
return(p);}
在下劃線處應(yīng)填入的內(nèi)容是
A)i=p
B)a[p]=a[i]
C)p=j
D)p=I
正確答案: D
(29)下面說明不正確的是
A)char a[10]="china";
B)char a[10],*p=a;p="china"
C)char *a;a="china";
D)char a[10],*p;p=a="china"
正確答案: D
(30)以下程序的輸出結(jié)果是
#include
void prt (int *x, int *y, int *z)
{printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{int a=10,b=40,c=20;
prt (&a,&b,&c);
prt (&a,&b,&c);}
A)11,42, 31
12,22,41
B)11,41,20
12,42,20
C)11,21,40
11,21,21
D)11,41,21
12,42,22
正確答案: B
(31)若有函數(shù)內(nèi)部說明:int a[3][4];則數(shù)組a中各元素
A)可在程序的運(yùn)行階段得到初值0
B)可在程序的編譯階段得到初值0
C)不能得到確定的初值
D)可在程序的編譯或運(yùn)行階段得到初值0
正確答案: C
(32)有如下程序
main()
{ char s[]="ABCD", *p;
for(p=s+1; p
A)ABCD
BCD
CD
D
B)A
B
C
D
C)B
C
D
D)BCD
CD
D
(33)下列程序執(zhí)行后的輸出結(jié)果是
main()
{ int a[3][3], *p,i;
p=&a[0][0];
for(i=1; i<9; i++)p[i]=i+1;
printf("%d\n",a[1][2]);}
A)3
B)6
C)9
D)隨機(jī)數(shù)
正確答案: B
(34)定義如下變量和數(shù)組:
int k;
int a[3][3]={9,8,7,6,5,4,3,2,1};
則下面語句的輸出結(jié)果是
for(k=0;k<3;k++)printf("%d",a[k][k]);
A)7 5 3
B)9 5 1
C)9 6 3
D)7 4 1
正確答案: B
(35)下列程序執(zhí)行后的輸出結(jié)果是
main()
{ char arr[2][4];
strcpy(arr,"you"); strcpy(arr[1],"me");
arr[0][3]=′&′;
printf("%s\n",arr);}
A)you&me
B)you
C)me
D)err
正確答案: A
(36)有以下函數(shù)
char fun(char *p)
{return p;}
該函數(shù)的返回值是
A)無確切的值
B)形參p中存放的地址值
C)一個(gè)臨時(shí)存儲(chǔ)單元的地址
D)形參p自身的地址值
正確答案: B
(37)以下正確的說法是
A)定義函數(shù)時(shí),形參的類型說明可以放在函數(shù)體內(nèi)
B)return后邊的值不能為表達(dá)式
C)如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準(zhǔn)
D)如果形參與實(shí)參類型不一致,以實(shí)參類型為準(zhǔn)
正確答案: C
(38)有以下程序
int f(int n)
{ if(n==1)return 1;
else return f(n-1)+1;}
main()
{ int i,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);}
程序運(yùn)行后的輸出結(jié)果是
A)4
B)3
C)2
D)1
正確答案: B
(39)設(shè)有如下定義:
struck sk
{ int a;
float b;
} data;
int *p;
若要使P指向data中的a域,正確的賦值語句是
A)p=&a;
B)p=data.a;
C)p=&data.a;
D)*p=data.a;
正確答案: C
(40)以下對(duì)結(jié)構(gòu)體類型變量的定義中,不正確的是
A)typedef struct aa
{ int n;
float m;
}AA;
AA tdl;
B)#define AA struct aa
AA{ int n;
float m;
} tdl;
C)struct
{ int n;
float m;
} aa;
struct aa tdl;
D)struct
{ int n;
float m;
} tdl;
正確答案: C
(41)若說明int *p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是
A)p=&n;scanf("%d",&p);
B)p=&n;scanf("%d",*p);
C)scanf("%d",n);
D)p=&n;scanf("%d",p);
正確答案: D
(42) 在下述程序中,判斷i>j共執(zhí)行的次數(shù)是
main()
{int i=0, j=10, k=2, s=0;
for (;;)
{i+=k;
if(i>j)
{printf("%d",s);
break;
}s+=i;
}
}
A)4
B)7
C)5
D)6
正確答案: D (43)以下4個(gè)選項(xiàng)中,不能看做一條語句的是
A);
B)a=5,b=2.5,c=3.6;
C)if(a<5);
D)if(b!=5)x=2;y=6;
正確答案: D
(44)在C語言中,變量的隱含存儲(chǔ)類別是
A)auto
B)static
C)extern
D)無存儲(chǔ)類別
正確答案: A
(45)若有以下程序
#include
void f(int n);
main()
{ void f(int n);
f(5);
}
void f(int n)
{ printf("%d\n",n); }
則以下敘述中不正確的是
A)若只在主函數(shù)中對(duì)函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f
B)若在主函數(shù)前對(duì)函數(shù)f進(jìn)行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)f
C)對(duì)于以上程序,編譯時(shí)系統(tǒng)會(huì)提示出錯(cuò)信息:提示對(duì)f函數(shù)重復(fù)說明
D)函數(shù)f無返回值,所以可用void將其類型定義為無返回值型
正確答案: C
(46)若有下面的說明和定義
struct test
{ int ml; char m2; float m3;
union uu {char ul[5]; int u2[2];} ua;
} myaa;
則sizeof(struct test )的值是
A)12
B)16
C)14
D)9
正確答案: A
(47)以下程序的輸出是
struct st
{ int x; int *y;} *p;
int dt[4]={ 10,20,30,40 };
struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};
main()
{ p=aa;
printf("%d\n",++(p->x));
}
A)10
B)11
C)51
D)60
正確答案: C
(48)若有運(yùn)算符<<,sizeof,^,&=,則它們按優(yōu)先級(jí)由高至低的正確排列次序是
A)sizeof,&=,<<,^
B)sizeof,<<,^,&=
C)^,<<,sizeof,&=
D)<<,^,&=,sizeof
正確答案: B
(49)函數(shù)fseek(pf, OL,SEEK_END)中的SEEK_END代表的起始點(diǎn)是
A)文件開始
B)文件末尾
C)文件當(dāng)前位置
D)以上都不對(duì)
正確答案: B
(50)有以下程序
#include
main()
{ FILE *fp; int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);
fclose(fp);
}
程序運(yùn)行后的輸出結(jié)果是
A)20 30
B)20 50
C)30 50
D)30 20
正確答案: A
二 、填空題
(1)數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于 【1】 。
正確答案: 1.(存儲(chǔ)結(jié)構(gòu))
(2)在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機(jī)制稱為 【2】 。
正確答案: 1.(繼承)
(3)耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中 【3】 反映了模塊內(nèi)各成分之間的聯(lián)系。
正確答案: 1.(內(nèi)聚)
(4)一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目"的聯(lián)系屬于 【4】 的聯(lián)系。
正確答案: 1.(一對(duì)多或1:N)
(5)數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、 【5】 、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
正確答案: 1.(數(shù)據(jù)庫概念設(shè)計(jì)階段)
(6)以下程序的運(yùn)行結(jié)果是【6】。
#define MAX (a,b)(a>b?a:b)+1
main ()
{ int i=6,j=8,k;
printf ("%d\n",MAX(i,j));
}
正確答案: 1.(9)
(7)以下程序的功能是從健盤輸入若干學(xué)生的成績,并輸出成績和最低成績,當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束。請(qǐng)?zhí)羁铡?BR> main ()
{float x,amax,amin;
scanf ("%f",&x);
amax=x;
amin=x;
while (【7】)
{if (x>amax)
amax=x;
else
if【8】
amin=x;
else scanf ("%f",&x);
}
printf ("\n amax=%f\n amin=%f\n",amax,amin);
}
正確答案: 1.(x>0) 2.(x
(8)在對(duì)文件操作的過程中,若要求文件的位置指針回到文件的開始處,應(yīng)當(dāng)調(diào)用的函數(shù)是【9】。
正確答案: 1.(rewind()或fseek())
(9)在計(jì)算機(jī)中,字符的比較是對(duì)它們的【10】進(jìn)行比較。
正確答案: 1.(ASCII碼)
(10)在內(nèi)存中,存儲(chǔ)字符′x′要占用1個(gè)字節(jié),存儲(chǔ)字符串″X″要占用【11】個(gè)字節(jié)。
正確答案: 1.(2)
(11)下列程序的輸出結(jié)果是16.00,請(qǐng)?zhí)羁铡?BR> main()
{int a=9, b=2;
float x=【12】, y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n", z );
}
正確答案: 1.(6.6)
(12)設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請(qǐng)寫出fun函數(shù)的首部【13】。要求形參名為b。
main()
{double s[10][22];
int n; ┆
┆
fun(s);
┆
}
正確答案: 1.(void fun(double b[][22]))
(13)下列程序的功能是輸入一個(gè)整數(shù),判斷是否是素?cái)?shù),若為素?cái)?shù)輸出1,否則輸出0,請(qǐng)?zhí)羁铡?BR> main()
{int i, x, y=1;
scanf("%d", &x);
for(i=2; i<=x/2; i++)
if【14】{ y=0; break;}
printf("%d\n", y);
}
正確答案: 1.((x%i==0))
(14)下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過來,請(qǐng)?zhí)羁铡?BR> #include
main()
{ int i,j,【15】;char str[]={"1234567"};
for(i=0,j=strlen(str)【16】;i
printf("%s\n",str);
}
正確答案: 1.(k) 2.(-1)
(15)以下程序可把輸入的十進(jìn)制數(shù)以十六進(jìn)制數(shù)的形式輸出,請(qǐng)?zhí)羁铡?BR> main()
{char b[17]={"0123456789ABCDEF"};
int c[64],d,i=0,base=16;
long n;
printf("Enter a number:\n");scanf("%ld",&n);
do{c[i]=【17】;i++;n=n/base;}
while(n!=0);
printf("Transmite new base:\n");
for(--i;i>=0;--i)
{d=c[i];printf("%c",b【18】);}
printf("\n");
}
正確答案: 1.(n%base) 2.([d])
(16)若給fun函數(shù)的形參s傳送字符串:"]]6354abcc" (其中]表示空格字符),則函數(shù)的返回值是【19】。
#include
long fun(char s[])
{long n;int sign;
for(;isspace(*s);s++);
sign=(*s==′-′)?-1:1;
if(*s==′+′||*s==′-′)s++;
for(n=0;isdigit(*s);s++)n=10*n+(*s-′0′);
return sign*n;
}
正確答案: 1.(6354)
(17)設(shè)有定義"struct {int a; float b; char c;} abc, *p_abc=&abc;",則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【20】a。
正確答案: 1.(->)