為大家收集整理了《2013計(jì)算機(jī)二級(jí)C語(yǔ)言完整預(yù)測(cè)試題及答案一》供大家參考,希望對(duì)大家有所幫助?。?!
一、選擇題(每題2分,共計(jì)70分)
1.數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及
A)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
B)計(jì)算方法
C)數(shù)據(jù)映象
D)邏輯存儲(chǔ)
2.串的長(zhǎng)度是
A)串中不同字符的個(gè)數(shù)
B)串中不同字母的個(gè)數(shù)
C)串中所含字符的個(gè)數(shù)且字符個(gè)數(shù)大于零
D)串中所含字符的個(gè)數(shù)
3.在計(jì)算機(jī)中,算法是指
A)加工方法
B)解題方案的準(zhǔn)確而完整的描述
C)排序方法
D)查詢方法
4.以下不屬于對(duì)象的基本特點(diǎn)的是
A)分類性
B)多態(tài)性
C)繼承性
D)封裝性
5.開(kāi)發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱作
A)軟件投機(jī)
B)軟件危機(jī)
C)軟件工程
D)軟件產(chǎn)生
6.下面不屬于軟件設(shè)計(jì)原則的是
A)抽象
B)模塊化
C)自底向上
D)信息隱蔽
7.開(kāi)發(fā)大型軟件時(shí),產(chǎn)生困難的根本原因是
A)大系統(tǒng)的復(fù)雜性
B)人員知識(shí)不足
C)客觀世界千變?nèi)f化
D)時(shí)間緊、任務(wù)重
8.下列SQL語(yǔ)句中,用于修改表結(jié)構(gòu)的是
A)ALTER
B)CREATE
C)UPDATE
D)INSERT
9.數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)之間的關(guān)系是
A)數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)
B)數(shù)據(jù)庫(kù)系統(tǒng)包括數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)管理系統(tǒng)
C)數(shù)據(jù)庫(kù)管理系統(tǒng)包括數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)系統(tǒng)
D)3者沒(méi)有明顯的包含關(guān)系
10.關(guān)系模型允許定義3類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是
A)實(shí)體完整性約束
B)參照完整性約束
C)域完整性約束
D)用戶自定義的完整性約束
11.下列用于printf函數(shù)的控制字符常量中,代表"豎向跳格"的轉(zhuǎn)義字符常量是
A)\b
B)\t
C)\v
D)\f
12.以下程序的輸出結(jié)果是
main()
{ int a=21,b=11;
printf("%d\n",--a+b,--b+a);
}
A)30
B)31
C)32
D)33
13.設(shè)變量n為float類型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是
A)n=(n*100+0.5)/100.0
B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0
D)n=(n/100+0.5)*100.0
14.設(shè)x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中,值為0的表達(dá)式是
A)x&&y
B)x<=y
C)x||++y&&y-z
D)!(x
15.若變量已正確說(shuō)明為int類型,要通過(guò)語(yǔ)句scanf("%d %d %d ",&a,&b,&c);給a賦值3,b賦值5,c賦值8,不正確的輸入形式是
A)3<回車>
5<回車>
8<回車>
B)3,5,8<回車>
C)3<回車>
58<回車>
D)35<回車>
8<回車>
49 != return j
16.設(shè)有程序段
int k=10;
while(k=0)k=k-1;
則下面描述中正確的是
A)while循環(huán)執(zhí)行10次
B)循環(huán)是無(wú)限循環(huán)
C)循環(huán)體語(yǔ)句一次也不執(zhí)行
D)循環(huán)體語(yǔ)句執(zhí)行一次
17.對(duì)表達(dá)式for(表達(dá)式1; ;表達(dá)式3)可理解為
A)for(表達(dá)式1;0;表達(dá)式3)
B)for(表達(dá)式1;1;表達(dá)式3)
C)for(表達(dá)式1;表達(dá)式1;表達(dá)式3)
D)for(表達(dá)式1;表達(dá)式3;表達(dá)式3)
18.以下程序的輸出結(jié)果是
main()
{ int a,i;a=0;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
} printf("%d\n",a);
}
A)31
B)13
C)10
D)20
19.若有如下語(yǔ)句
int x=3;
do{ printf("%d\n",x-=2);}
while(!(--x));
則上面程序段
A)輸出的是1
B)輸出的是1和-2
C)輸出的是3和0
D)是死循環(huán)
20.下面程序的功能是將從鍵盤輸入的一對(duì)數(shù),由小到大排序輸出,當(dāng)輸入一對(duì)相等數(shù)時(shí)結(jié)束循環(huán),在劃線處應(yīng)填入的語(yǔ)句是
#include
main()
{ int a,b,t;
scanf("%d%d",&a,&b);
while()
{ f(a>b)
{ =a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);
}
}
A)!a=b
B)a!=b
C)a==b
D)a=b
21.有以下程序
void fun(int a,int b,int c)
{a=456,b=567,c=678;}
main()
{ int x=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",x,y,z);
}
輸出結(jié)果是
A)30,20,10
B)10,20,30
C)456,567,678
D)678,567,456
22.若有說(shuō)明:int a[][4]={0,0};則下面不正確的敘述是
A)數(shù)組a的每個(gè)元素都可得到初值0
B)二維數(shù)組a的第一維大小為1
C)當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小
D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到確定的初值
23.有以下程序
main()
{ char a[]={ ′a′,′b′,′c′,′d′, ′e′, ′f′, ′g′,′h′,′\0′}; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d,%d\b",i,j);
}
程序運(yùn)行后的輸出結(jié)果是
A)9,9
B)8,9
C)1,8
D)9,8
24.已知學(xué)生記錄描述為
struct student
{ int no;
char name[20],sex;
struct
{ int year,month,day;
} birth;
};
struct student s;
設(shè)變量s中的“生日”是“1984年11月12日”,對(duì)“birth”正確賦值的程序段是
A)year=1984;month=11;day=12;
B)s.year=1984;s.month=11;s.day=12;
C)birth.year=1984;birth.month=11;birth.day=12;
D)s.birth.year=1984;s.birth.month=11;s.birth.day=12;
25.以下程序的運(yùn)行結(jié)果是
#define MIN(x,y)(x)<(y)?(x):(y)
main()
{ int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)10
B)15
C)100
D)150
49 != return j
26.有如下程序
int func(int a,int b)
{ return(a+b);}
main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r);
}
該程序的輸出的結(jié)果是
A)12
B)13
C)14
D)15
27.設(shè)有以下說(shuō)明語(yǔ)句
typedef struct
{ int n;
char ch[8];
} PER;
則下面敘述中正確的是
A)PER 是結(jié)構(gòu)體變量名
B)PER是結(jié)構(gòu)體類型名
C)typedef struct 是結(jié)構(gòu)體類型
D)struct 是結(jié)構(gòu)體類型名
28.有如下定義
struct person{char name[9];int age;};
struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};
根據(jù)上述定義,能輸出字母M的語(yǔ)句是
A)printf("%c\n",class[3].name);
B)printf("%c\n",class[3].name[1]);
C)printf("%c\n",class[2].name[1]);
D)printf("%c\n",class[2].name[0]);
29.以下程序執(zhí)行后a的值是
main()
{ int x,y=252,i=386,*m=&y,*z=&i;
x=(z==y);
printf("%d",x);
}
A)252
B)1
C)0
D)運(yùn)行時(shí)出錯(cuò),x無(wú)定值
30.閱讀下列程序,當(dāng)運(yùn)行函數(shù)時(shí),輸入asd af aa z67,則輸出為
#include
#include
#include
int fun (char *str)
{ int i,j=0;
for(i=0;str[i]!=′\0′;i++)
if(str[i]!=′ ′)str[j++]=str[i];
str[j]= ′\0′;
}
main()
{
char str[81];
int n;
clrscr();
printf("Input a string : ");
gets(str);
puts(str);
fun(str);
printf("%s\n",str);
}
A)asdafaaz67
B)asd af aa z67
C)asd
D)z67
31.下列程序的輸出結(jié)果是
struct abc
{ int a, b, c, s;};
main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
A)5
B)6
C)7
D)8
32.若有定義: char *st= "how are you "; 下列程序段中正確的是
A)char a[11], *p; strcpy(p=a+1,&st[4]);
B)char a[11]; strcpy(++a, st);
C)char a[11]; strcpy(a, st);
D)char a[], *p; strcpy(p=&a[1],st+2);
33.下列程序的運(yùn)行結(jié)果是
void fun(int *a, int *b)
{ int *k;
k=a; a=b; b=k;
}
A)6 3
B)3 6
C)編譯出錯(cuò)
D)0 0
34.請(qǐng)選出正確的程序段
A)int *p;
scanf("%d",p);
…
B)int *s, k;
*s=100;
…
C)int *s, k;
char *p, c;
s=&k;
p=&c;
*p=′a′;
…
D)int *s, k;
char *p, e;
s=&k;
p=&c;
s=p;
*s=1;
…
35.若有下面的說(shuō)明和定義,則sizeof(struct aa)的值是
struct aa
{ int r1; double r2; float r3;
union uu{char u1[5];long u2[2];}ua;
} mya;
A)30
B)29
C)24
D)22
49 != return j
二、填空題(每空2分,共計(jì)30分)
1.長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為 【1】 。
2.用樹(shù)型結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為 【2】 。
3.類是一個(gè)支持集成的抽象數(shù)據(jù)類型,而對(duì)象是類的 【3】 。
4.數(shù)據(jù)流圖的類型有 【4】 和事務(wù)型。
5.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu)、存取方式等)改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的 【5】 。
6.以下程序運(yùn)行結(jié)果是 【6】 。
long fib (int g)
{ switch (g)
{ case 0∶return 0;
case 1∶case2∶return 1;
}
return (fib(g-1)+fib(g-2));
}
main ()
{ long k;
k=fib (5);
printf ("k=%(d\n)",k);
}
7.以下程序段中,錯(cuò)誤的行號(hào)是 【7】 。
① #include
② main ()
③ { char str [14];str []={" I love China"};
④ printf ("%s",str);
⑤ }
8.將以下程序?qū)懗扇窟\(yùn)算表達(dá)式是 【8】 。
if(a>b)max=a;
else max=b;
9.設(shè)x和y均為int型變量,且x=1,y=2,則表達(dá)式double(1+x/y)的值為 【9】 。
10.下面程序的功能是輸出數(shù)組s中元素的下標(biāo),請(qǐng)?zhí)羁铡?BR> main()
{ int k, p,s[]={1, -9, 7, 2, -10, 3};
for(p =0, k =p; p< 6; p++)
if(s[p]>s[k]) 【10】
printf("%d\n", k);
}
11.設(shè)有以下定義和語(yǔ)句,則*(*(p+2)+1)的值為 【11】 。
int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2];
p=a;
12.下面程序的運(yùn)行結(jié)果是 【12】 。
#define N 10
#define s(x) x*x
#define f(x) (x*x)
main()
{ int i1,i2;
i1=1000/s(N); i2=1000/f(N);
printf("%d %d\n",i1,i2);
}
13.以下程序的輸出結(jié)果是 【13】 。
unsigned fun6(unsigned num)
{ unsigned k=1;
do{k *=num;num/=10;} while (num);
return k;
}
main()
{ unsigned n=26;
printf("%d\n", fun6(n));
}
14.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
例如,若一維數(shù)組中的數(shù)據(jù)是2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。刪除后,數(shù)組中的內(nèi)容應(yīng)該是2 3 4 5 6 7 8 9 10。請(qǐng)?zhí)羁铡?BR> #include
#define N 80
int fun(int a[], int n)
{ int i,j=1;
for(i=1;i
if(a[j-1] 【14】 a[i])
a[j++]=a[i];
【15】;
}
main()
{ int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19;
printf("The original data :\n");
for(i=0; i
for(i=0; i
}
49 != return j
1 A 2 D 3 B 4 C 5 B 6 C 7 A 8 A 9 B 10 C
11 C 12 A 13 B 14 D 15 B 16 C 17 B 18 A 19 B 20 B
21 B 22 D 23 D 24 D 25 B 26 D 27 B 28 D 29 C 30 A
31 B 32 A 33 B 34 C 35 D
36 n/2
37 層次模型
38 實(shí)例
39 變換型
40 物理獨(dú)立性
41 k=5
42 3行
43 max=(a>b)?a:b;
44 1.000000
45 k=p
46 60
47 1000 10
48 12
49 != return j
一、選擇題(每題2分,共計(jì)70分)
1.數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及
A)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
B)計(jì)算方法
C)數(shù)據(jù)映象
D)邏輯存儲(chǔ)
2.串的長(zhǎng)度是
A)串中不同字符的個(gè)數(shù)
B)串中不同字母的個(gè)數(shù)
C)串中所含字符的個(gè)數(shù)且字符個(gè)數(shù)大于零
D)串中所含字符的個(gè)數(shù)
3.在計(jì)算機(jī)中,算法是指
A)加工方法
B)解題方案的準(zhǔn)確而完整的描述
C)排序方法
D)查詢方法
4.以下不屬于對(duì)象的基本特點(diǎn)的是
A)分類性
B)多態(tài)性
C)繼承性
D)封裝性
5.開(kāi)發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱作
A)軟件投機(jī)
B)軟件危機(jī)
C)軟件工程
D)軟件產(chǎn)生
6.下面不屬于軟件設(shè)計(jì)原則的是
A)抽象
B)模塊化
C)自底向上
D)信息隱蔽
7.開(kāi)發(fā)大型軟件時(shí),產(chǎn)生困難的根本原因是
A)大系統(tǒng)的復(fù)雜性
B)人員知識(shí)不足
C)客觀世界千變?nèi)f化
D)時(shí)間緊、任務(wù)重
8.下列SQL語(yǔ)句中,用于修改表結(jié)構(gòu)的是
A)ALTER
B)CREATE
C)UPDATE
D)INSERT
9.數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)之間的關(guān)系是
A)數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)
B)數(shù)據(jù)庫(kù)系統(tǒng)包括數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)管理系統(tǒng)
C)數(shù)據(jù)庫(kù)管理系統(tǒng)包括數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)系統(tǒng)
D)3者沒(méi)有明顯的包含關(guān)系
10.關(guān)系模型允許定義3類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是
A)實(shí)體完整性約束
B)參照完整性約束
C)域完整性約束
D)用戶自定義的完整性約束
11.下列用于printf函數(shù)的控制字符常量中,代表"豎向跳格"的轉(zhuǎn)義字符常量是
A)\b
B)\t
C)\v
D)\f
12.以下程序的輸出結(jié)果是
main()
{ int a=21,b=11;
printf("%d\n",--a+b,--b+a);
}
A)30
B)31
C)32
D)33
13.設(shè)變量n為float類型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是
A)n=(n*100+0.5)/100.0
B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0
D)n=(n/100+0.5)*100.0
14.設(shè)x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中,值為0的表達(dá)式是
A)x&&y
B)x<=y
C)x||++y&&y-z
D)!(x
15.若變量已正確說(shuō)明為int類型,要通過(guò)語(yǔ)句scanf("%d %d %d ",&a,&b,&c);給a賦值3,b賦值5,c賦值8,不正確的輸入形式是
A)3<回車>
5<回車>
8<回車>
B)3,5,8<回車>
C)3<回車>
58<回車>
D)35<回車>
8<回車>
49 != return j
16.設(shè)有程序段
int k=10;
while(k=0)k=k-1;
則下面描述中正確的是
A)while循環(huán)執(zhí)行10次
B)循環(huán)是無(wú)限循環(huán)
C)循環(huán)體語(yǔ)句一次也不執(zhí)行
D)循環(huán)體語(yǔ)句執(zhí)行一次
17.對(duì)表達(dá)式for(表達(dá)式1; ;表達(dá)式3)可理解為
A)for(表達(dá)式1;0;表達(dá)式3)
B)for(表達(dá)式1;1;表達(dá)式3)
C)for(表達(dá)式1;表達(dá)式1;表達(dá)式3)
D)for(表達(dá)式1;表達(dá)式3;表達(dá)式3)
18.以下程序的輸出結(jié)果是
main()
{ int a,i;a=0;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
} printf("%d\n",a);
}
A)31
B)13
C)10
D)20
19.若有如下語(yǔ)句
int x=3;
do{ printf("%d\n",x-=2);}
while(!(--x));
則上面程序段
A)輸出的是1
B)輸出的是1和-2
C)輸出的是3和0
D)是死循環(huán)
20.下面程序的功能是將從鍵盤輸入的一對(duì)數(shù),由小到大排序輸出,當(dāng)輸入一對(duì)相等數(shù)時(shí)結(jié)束循環(huán),在劃線處應(yīng)填入的語(yǔ)句是
#include
main()
{ int a,b,t;
scanf("%d%d",&a,&b);
while()
{ f(a>b)
{ =a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);
}
}
A)!a=b
B)a!=b
C)a==b
D)a=b
21.有以下程序
void fun(int a,int b,int c)
{a=456,b=567,c=678;}
main()
{ int x=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",x,y,z);
}
輸出結(jié)果是
A)30,20,10
B)10,20,30
C)456,567,678
D)678,567,456
22.若有說(shuō)明:int a[][4]={0,0};則下面不正確的敘述是
A)數(shù)組a的每個(gè)元素都可得到初值0
B)二維數(shù)組a的第一維大小為1
C)當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小
D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到確定的初值
23.有以下程序
main()
{ char a[]={ ′a′,′b′,′c′,′d′, ′e′, ′f′, ′g′,′h′,′\0′}; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d,%d\b",i,j);
}
程序運(yùn)行后的輸出結(jié)果是
A)9,9
B)8,9
C)1,8
D)9,8
24.已知學(xué)生記錄描述為
struct student
{ int no;
char name[20],sex;
struct
{ int year,month,day;
} birth;
};
struct student s;
設(shè)變量s中的“生日”是“1984年11月12日”,對(duì)“birth”正確賦值的程序段是
A)year=1984;month=11;day=12;
B)s.year=1984;s.month=11;s.day=12;
C)birth.year=1984;birth.month=11;birth.day=12;
D)s.birth.year=1984;s.birth.month=11;s.birth.day=12;
25.以下程序的運(yùn)行結(jié)果是
#define MIN(x,y)(x)<(y)?(x):(y)
main()
{ int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)10
B)15
C)100
D)150
49 != return j
26.有如下程序
int func(int a,int b)
{ return(a+b);}
main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r);
}
該程序的輸出的結(jié)果是
A)12
B)13
C)14
D)15
27.設(shè)有以下說(shuō)明語(yǔ)句
typedef struct
{ int n;
char ch[8];
} PER;
則下面敘述中正確的是
A)PER 是結(jié)構(gòu)體變量名
B)PER是結(jié)構(gòu)體類型名
C)typedef struct 是結(jié)構(gòu)體類型
D)struct 是結(jié)構(gòu)體類型名
28.有如下定義
struct person{char name[9];int age;};
struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};
根據(jù)上述定義,能輸出字母M的語(yǔ)句是
A)printf("%c\n",class[3].name);
B)printf("%c\n",class[3].name[1]);
C)printf("%c\n",class[2].name[1]);
D)printf("%c\n",class[2].name[0]);
29.以下程序執(zhí)行后a的值是
main()
{ int x,y=252,i=386,*m=&y,*z=&i;
x=(z==y);
printf("%d",x);
}
A)252
B)1
C)0
D)運(yùn)行時(shí)出錯(cuò),x無(wú)定值
30.閱讀下列程序,當(dāng)運(yùn)行函數(shù)時(shí),輸入asd af aa z67,則輸出為
#include
#include
#include
int fun (char *str)
{ int i,j=0;
for(i=0;str[i]!=′\0′;i++)
if(str[i]!=′ ′)str[j++]=str[i];
str[j]= ′\0′;
}
main()
{
char str[81];
int n;
clrscr();
printf("Input a string : ");
gets(str);
puts(str);
fun(str);
printf("%s\n",str);
}
A)asdafaaz67
B)asd af aa z67
C)asd
D)z67
31.下列程序的輸出結(jié)果是
struct abc
{ int a, b, c, s;};
main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
A)5
B)6
C)7
D)8
32.若有定義: char *st= "how are you "; 下列程序段中正確的是
A)char a[11], *p; strcpy(p=a+1,&st[4]);
B)char a[11]; strcpy(++a, st);
C)char a[11]; strcpy(a, st);
D)char a[], *p; strcpy(p=&a[1],st+2);
33.下列程序的運(yùn)行結(jié)果是
void fun(int *a, int *b)
{ int *k;
k=a; a=b; b=k;
}
A)6 3
B)3 6
C)編譯出錯(cuò)
D)0 0
34.請(qǐng)選出正確的程序段
A)int *p;
scanf("%d",p);
…
B)int *s, k;
*s=100;
…
C)int *s, k;
char *p, c;
s=&k;
p=&c;
*p=′a′;
…
D)int *s, k;
char *p, e;
s=&k;
p=&c;
s=p;
*s=1;
…
35.若有下面的說(shuō)明和定義,則sizeof(struct aa)的值是
struct aa
{ int r1; double r2; float r3;
union uu{char u1[5];long u2[2];}ua;
} mya;
A)30
B)29
C)24
D)22
49 != return j
二、填空題(每空2分,共計(jì)30分)
1.長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為 【1】 。
2.用樹(shù)型結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為 【2】 。
3.類是一個(gè)支持集成的抽象數(shù)據(jù)類型,而對(duì)象是類的 【3】 。
4.數(shù)據(jù)流圖的類型有 【4】 和事務(wù)型。
5.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu)、存取方式等)改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的 【5】 。
6.以下程序運(yùn)行結(jié)果是 【6】 。
long fib (int g)
{ switch (g)
{ case 0∶return 0;
case 1∶case2∶return 1;
}
return (fib(g-1)+fib(g-2));
}
main ()
{ long k;
k=fib (5);
printf ("k=%(d\n)",k);
}
7.以下程序段中,錯(cuò)誤的行號(hào)是 【7】 。
① #include
② main ()
③ { char str [14];str []={" I love China"};
④ printf ("%s",str);
⑤ }
8.將以下程序?qū)懗扇窟\(yùn)算表達(dá)式是 【8】 。
if(a>b)max=a;
else max=b;
9.設(shè)x和y均為int型變量,且x=1,y=2,則表達(dá)式double(1+x/y)的值為 【9】 。
10.下面程序的功能是輸出數(shù)組s中元素的下標(biāo),請(qǐng)?zhí)羁铡?BR> main()
{ int k, p,s[]={1, -9, 7, 2, -10, 3};
for(p =0, k =p; p< 6; p++)
if(s[p]>s[k]) 【10】
printf("%d\n", k);
}
11.設(shè)有以下定義和語(yǔ)句,則*(*(p+2)+1)的值為 【11】 。
int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2];
p=a;
12.下面程序的運(yùn)行結(jié)果是 【12】 。
#define N 10
#define s(x) x*x
#define f(x) (x*x)
main()
{ int i1,i2;
i1=1000/s(N); i2=1000/f(N);
printf("%d %d\n",i1,i2);
}
13.以下程序的輸出結(jié)果是 【13】 。
unsigned fun6(unsigned num)
{ unsigned k=1;
do{k *=num;num/=10;} while (num);
return k;
}
main()
{ unsigned n=26;
printf("%d\n", fun6(n));
}
14.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
例如,若一維數(shù)組中的數(shù)據(jù)是2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。刪除后,數(shù)組中的內(nèi)容應(yīng)該是2 3 4 5 6 7 8 9 10。請(qǐng)?zhí)羁铡?BR> #include
#define N 80
int fun(int a[], int n)
{ int i,j=1;
for(i=1;i
if(a[j-1] 【14】 a[i])
a[j++]=a[i];
【15】;
}
main()
{ int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19;
printf("The original data :\n");
for(i=0; i
for(i=0; i
}
49 != return j
1 A 2 D 3 B 4 C 5 B 6 C 7 A 8 A 9 B 10 C
11 C 12 A 13 B 14 D 15 B 16 C 17 B 18 A 19 B 20 B
21 B 22 D 23 D 24 D 25 B 26 D 27 B 28 D 29 C 30 A
31 B 32 A 33 B 34 C 35 D
36 n/2
37 層次模型
38 實(shí)例
39 變換型
40 物理獨(dú)立性
41 k=5
42 3行
43 max=(a>b)?a:b;
44 1.000000
45 k=p
46 60
47 1000 10
48 12
49 != return j