2021年河北省秦皇島市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第1頁(yè)
2021年河北省秦皇島市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第2頁(yè)
2021年河北省秦皇島市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第3頁(yè)
2021年河北省秦皇島市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第4頁(yè)
2021年河北省秦皇島市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2021年河北省秦皇島市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下敘述中正確的是()。

A.結(jié)構(gòu)體變量中的成員可以是簡(jiǎn)單變量、數(shù)組或指針變量

B.不同結(jié)構(gòu)體的成員名不能相同

C.結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類(lèi)型可以是本結(jié)構(gòu)體類(lèi)型

D.結(jié)構(gòu)體定義時(shí),類(lèi)型不同的成員項(xiàng)之間可以用逗號(hào)隔開(kāi)

2.有以下程序main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運(yùn)行后的輸出結(jié)果是______。A.2,3,3B.2,3,2C.2,3,1D.2,2,1

3.以下敘述中正確的是()。

A.用C語(yǔ)言編寫(xiě)的程序只能放在一個(gè)程序文件中

B.C語(yǔ)言程序書(shū)寫(xiě)格式嚴(yán)格,要求一行內(nèi)只能寫(xiě)一個(gè)語(yǔ)句

C.C語(yǔ)言程序中的注釋只能出現(xiàn)在程序的開(kāi)始位置和語(yǔ)句的后面

D.C語(yǔ)言程序書(shū)寫(xiě)格式自由,一個(gè)語(yǔ)句可以寫(xiě)在多行上

4.設(shè)有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正確的賦值語(yǔ)句是()

A.p=&a;B.p=data.a;C.p=&data.a,D.*p=data.a;

5.下列描述中正確的是()。

A.軟件工程只是解決軟件項(xiàng)目的管理問(wèn)題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問(wèn)題

C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開(kāi)發(fā)過(guò)程中的技術(shù)問(wèn)題

6.以下敘述中錯(cuò)誤的是A.算法正確的程序最終一定會(huì)結(jié)束

B.算法正確的程序可以有零個(gè)輸出

C.算法正確的程序可以有零個(gè)輸入

D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果

7.排序方法中,將整個(gè)無(wú)序序列分割成若干小的子序列并分別進(jìn)行插入排序的方法,稱(chēng)為_(kāi)_____。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

8.若在以下定義和賦值語(yǔ)句,則才s數(shù)組的第i行第j列(假設(shè)i,j已正確說(shuō)明并賦值)元素地址的合法引用為ints[2][3]={0},(*p)[3];p=s;

A.*(*(p+i)+j)B.*(p[i]+j)C.(p+i)+jD.(*(p+i))[j]

9.以下說(shuō)法錯(cuò)誤的是A.A.高級(jí)語(yǔ)言都是用接近人們習(xí)慣的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式

B.計(jì)算機(jī)只能處理由0和1的代碼構(gòu)成的二進(jìn)制指令或數(shù)據(jù)

C.C語(yǔ)言源程序經(jīng)過(guò)C語(yǔ)言編譯程序編譯之后生成一個(gè)后綴為.EXE的二進(jìn)制文件

D.每一種高級(jí)語(yǔ)言都有它對(duì)應(yīng)的編譯程序

10.計(jì)算機(jī)識(shí)別.存儲(chǔ)和加工處理的對(duì)象被統(tǒng)稱(chēng)為_(kāi)________

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)結(jié)構(gòu)D.數(shù)據(jù)類(lèi)型

11.下列合法的聲明語(yǔ)句是()。

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

12.下列描述中正確的是______。A.軟件工程只是解決軟件項(xiàng)目的管理問(wèn)題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問(wèn)題

C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開(kāi)發(fā)中的技術(shù)問(wèn)題

13.在順序表{2,5,7,10,14,15,18,23,35,41,52}中,用二分法查找關(guān)鍵碼12需做()次關(guān)鍵碼比較。

A.2B.3C.4D.5

14.下列敘述中錯(cuò)誤的是()。A.程序可以由多個(gè)程序文件組成

B.一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法

C.程序可以由一個(gè)或多個(gè)函數(shù)組成

D.一個(gè)C函數(shù)可以單獨(dú)作為一一個(gè)c程序文件存在

15.以下函數(shù)的時(shí)間復(fù)雜度和空間復(fù)雜度為()A.T(n)=O(2^n),S(n)=O(n)

B.T(n)=O(1),S(n)=O(1)

C.T(n)=O(2^n),S(n)=O(1)

D.T(n)=O(n),S(n)=O(n)

16.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是()。

A.4B.3C.2D.1

17.有以下程序:#includeintadd(inta,intb){return(a+b);}Main(){Intk,(*f)(),a=5,b=10;f=add;...}則以下函數(shù)調(diào)用語(yǔ)句錯(cuò)誤的是()。A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);

18.C語(yǔ)言中char類(lèi)型數(shù)據(jù)占字節(jié)數(shù)為()。

A.3B.4C.1D.2

19.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。

A.10B.40C.32D.8

20.有以下程序:#include<stdio.h>intfun{staticintx=1;x+=1;returnX;}main{inti,S=1;for(i=1;i<=S;i++)s+=fun;printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。A.11B.21C.6D.120

二、2.填空題(20題)21.下述函數(shù)用于統(tǒng)計(jì)—行字符中的單詞個(gè)數(shù),單詞之間用空格分隔。

word_num(str)

charstr[];

{int,num=O,word=O;

for(i=0;str[i]!=【】;i++)

if(【】=")wprd=0

elseif(word=O)

{

word=1:

【】;

}

return(num);

}

22.下面的程序可對(duì)指定字符串中的字符串進(jìn)行從大到小排序,請(qǐng)將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

for(i=0;i<n;i++)

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

23.軟件測(cè)試是保證軟件質(zhì)量的重要手段,而軟件測(cè)試的主要和重要的測(cè)試方法是通過(guò)測(cè)試數(shù)據(jù)和【】的設(shè)計(jì)來(lái)實(shí)現(xiàn)。

24.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請(qǐng)?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】='')flag=0;

elseif(【】){flag=1;num++}

}

return【】}

25.已知存儲(chǔ)結(jié)構(gòu)如下所示,請(qǐng)?zhí)羁铡?/p>

datanext

structlink{chardata;

【】;

}node;

26.以下程序調(diào)用函數(shù)swap將指針s和t所指單元(a和B)中的內(nèi)容交換,請(qǐng)?zhí)羁?。main(){inta=10,b=20,*s,*t;s=&a;t=&b;()printf("%d%d",a,B);}swap(int*ss,int*tt){intte;te=*ss;*ss=*tt;*tt=te;}

27.數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)中用于提供信息表示和操作手段的結(jié)構(gòu)形式。實(shí)際數(shù)據(jù)庫(kù)系統(tǒng)中所支持的數(shù)據(jù)模型主要有層次模型、網(wǎng)狀模型和【】3種。

28.數(shù)據(jù)流的類(lèi)型有______和事務(wù)型。

29.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱(chēng)為一個(gè)______。

30.以下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

printf("%s\n",p1);

}

31.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個(gè)字符開(kāi)始的n個(gè)字符,請(qǐng)?zhí)羁铡?/p>

voiddelete(chars[],inti,intn)

{intj,k,legth=0;

while(s[length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<length)

while(k<length)

s[j++]=s[k++];

s[j]='\0'

}

32.有以下程序:

voidf(inta[],inti,intj)

{intt;

if(i<j)

{t=a[i];a[i]=a[j];a[j]=t;

f(a,i+1,j-1);

}

}

main()

{inti,aa[5]={1,2,3,4,5};

f(aa,0,4);

for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");

}

執(zhí)行后的輸出結(jié)果是【】。

33.有以下程序

voidf(inty,int*x)

{y=y+*x;*X=*X+y;}

main()

{intx=2,y=4;

f(y,&x);

printf("%d%d\n",x,y);

}

執(zhí)行后輸出結(jié)果是______。

34.下面程序執(zhí)行后輸出的結(jié)果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);

}

35.下列程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

printf("%d\n",c);

}

36.下面程序的功能:輸出100以?xún)?nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù),請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,j;

for(i=0;i<10或i<=9;i++)

{j=i*10+6;

if(【】)continue;

printf("%d",j);

}

}

37.x、y、x均為int型變量,描述"x、y和z中至少有兩個(gè)為正數(shù)"的表達(dá)式是______。

38.最簡(jiǎn)單的交換排序方法是______。

39.閱讀下面語(yǔ)句,則程序的執(zhí)行結(jié)果是【】。

#include"stdio.h"

main()

{inta=-1,b=1,k;

if((++a<0)&&!(b--<=0))

printf("%d,%d\",a,b);

elseprintf("%d,%d\n",b,a);}

40.以下程序的輸出結(jié)果是()。

#include<stdio.h>

main()

{intx=27;

while(x>20&&x<30)

{x++;

if(x/3){x++;break;}

else

continue;

}

printf("%d\n",x);

}

三、1.選擇題(20題)41.結(jié)構(gòu)化分析方法是一種面向______的需求分析方法。

A.對(duì)象B.數(shù)據(jù)結(jié)構(gòu)C.控制流D.數(shù)據(jù)流

42.下列敘述中正確的是()。

A.C語(yǔ)言編譯時(shí)不檢查語(yǔ)法B.C語(yǔ)言的子程序有過(guò)程和函數(shù)兩種C.C語(yǔ)言的函數(shù)可以嵌套定義D.C語(yǔ)言的函數(shù)可以嵌套調(diào)用

43.對(duì)長(zhǎng)度為n的線(xiàn)性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。

A.125B.n/2C.nD.n+1

44.下列敘述中正確的是()。

A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間具有密切的關(guān)系

B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象都是公用的

C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間相對(duì)獨(dú)立,相互依賴(lài)性小

D.上述3種說(shuō)法都不對(duì)

45.有以下程序:#include<stdio.h>main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}{}程序運(yùn)行時(shí),從鍵盤(pán)輸入:01<回車(chē)>,程序執(zhí)行后的輸出結(jié)果是()。

A.anothernumber

B.anothernumberanother

C.anothernumber

D.numbernumber

46.以下程序的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);return(d);}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

47.在深度為5的滿(mǎn)二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為A.32B.31C.16D.15

48.在位運(yùn)算中,操作數(shù)右移一位,其結(jié)果相當(dāng)于

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)乘以4D.操作數(shù)除以4

49.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

50.設(shè)有如下定義,則以下敘述中正確的是______。int(*ptr)();

A.ptr是指向一維數(shù)組的指針變量

B.ptr是指向int型數(shù)據(jù)的指針變量

C.ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)

D.ptr是一個(gè)函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針

51.簡(jiǎn)單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

52.算法的時(shí)間復(fù)雜度是指______。

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

53.若fp是指向某文件的指針,且已讀到此文件末尾,則庫(kù)函數(shù)feof(fp)的返回值是()

A.EOFB.0C.非零值D.NULL

54.下列敘述中正確的是()。

A.線(xiàn)性鏈表中的各元素在存儲(chǔ)空間中的位置必須是連續(xù)的

B.線(xiàn)性鏈表中的表頭元素一定存儲(chǔ)在其他元素的前面

C.線(xiàn)性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,但表頭元素一定存儲(chǔ)在其他元素的前面

D.線(xiàn)性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,且各元素的存儲(chǔ)順序也是任意的

55.若有定義;intw[3][5];,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。A.*(*w+3)B.*(w+1)[4]C.*(*(w+1))D.*(&w[0][0]+1)

56.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL

57.有以下程序:main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j*2)continue;x++;}x++;}printf("x=%d\n”,x);}程序執(zhí)行后的輸出結(jié)果是()。

A.x=4B.x=8C.x=6D.x=12

58.若有以下說(shuō)明和語(yǔ)句intc[4][5],(*p)[5];p=c;能夠正確引用c數(shù)組元素的是

A.p+1B.*(p+3)C.*(p+1)+3D.*(P[0]+2)

59.利用E-R模型進(jìn)行數(shù)據(jù)庫(kù)的概念設(shè)計(jì),可以分成三步:首先設(shè)計(jì)局部E-R模型,然后把各個(gè)局部E-R模型綜合成一個(gè)全局的模型,最后對(duì)全局E-R模型進(jìn)行______,得到最終的E-R模型。

A.簡(jiǎn)化B.結(jié)構(gòu)化C.最小化D.優(yōu)化

60.若要“向文本文件尾增加數(shù)據(jù)”,在fopen函數(shù)中應(yīng)使用的文件方式是()

A.ab+B.aC.abD.a+

四、選擇題(20題)61.有以下程序#include<stdi0.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));printf(”%d\n”,m);}intf(intx){returnx*2;}程序運(yùn)行后的輸出結(jié)果是()A.8B.2C.4D.1

62.有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤(pán)輸入的數(shù)據(jù)應(yīng)該是

A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)

63.

64.以下敘述中錯(cuò)誤的是()。

A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題

B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C.C語(yǔ)言是-種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言

D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

65.

66.函數(shù)fgetc的功能是從指定文件中讀入一個(gè)字符,以下與其功能完全相同的函數(shù)是()。

A.freadB.fscanfC.fgetsD.getc

67.以下敘述中正確的是(

)。A.C語(yǔ)言中的全部數(shù)據(jù)類(lèi)型都是基本類(lèi)型B.C語(yǔ)言中的全部數(shù)據(jù)類(lèi)型都是構(gòu)造類(lèi)型C.C語(yǔ)言中的數(shù)據(jù)類(lèi)型只有兩種,即基本類(lèi)型和構(gòu)造類(lèi)型D.以上都不對(duì)

68.有以下程序:

voidmain()

{inta=1,b;

for(b=1;b<1;b++)

{if(a>=8)break;

if(a%2==1){a+5;continue;}

a-=3;

}

printf("%d\n",b);

}

程序運(yùn)行后的輸出結(jié)果是()。

A.3B.1C.5D.6

69.以下程序的輸出結(jié)果是()。

main()

{inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;

for(i=1;i<3;i++)

for(j=0;j<=i;j++)s+=a[i][j];

printf("%d\n",s);

}

A.18

B.19

C.20

D.21

70.以下選項(xiàng)中與

71.

72.設(shè)x為int型變量,則執(zhí)行以下語(yǔ)句后,x的值為()。x=10;x=x-=x-x;

A.10B.20C.40D.30

73.

74.

75.以下敘述不正確的是()。

A.在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低

B.在C程序中,APH和aph是兩個(gè)不同的變量

C.若a和b類(lèi)型相同,在計(jì)算賦值表達(dá)式a=b后,b的值將放入a中,而b的值不變

D.當(dāng)從鍵盤(pán)輸入數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型數(shù)值,對(duì)于實(shí)型變量只能輸入實(shí)型數(shù)值

76.定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9};則下面語(yǔ)句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的輸出結(jié)果是()

A.159B.147C.357D.369

77.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。

A.0304B.2050C.3344D.3040

78.若有以下程序

#include<stdio.h>

main()

{inti;

inta[]={1,3,5,7,9}

int*p=a;

for(i=0;i<4;i++)

a[i]=*p;

printf("%d,%d\n",a[2],a[4]);

}

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

A.3,9B.5,9

C.1,9D.1,1

79.

有以下函數(shù):

charfun(char*p)

{returnP;}

該函數(shù)的返回值是()。

A.無(wú)確切的值B.形參p中存放的地址值C.一個(gè)臨時(shí)存儲(chǔ)單元的地址D.形參p自身的地址值

80.有以下程序

#include<stdio.h>

#defineP24;

#defineS(x)P*x+x;

main()

{inta=2,b=2;

printf("%d\n",S(a+b));

}

程序的運(yùn)行結(jié)果是

A.程序編譯運(yùn)行時(shí)報(bào)錯(cuò),無(wú)法輸出B.54

C.96D.100

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:給一維數(shù)組arr輸人任意4個(gè)整數(shù),并按如下的規(guī)律輸出。例如,若輸入2345,則程序運(yùn)行后輸出以下矩陣:請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc(),該函數(shù)的功能是:將兩個(gè)兩位數(shù)的正整數(shù)num1,num2合并形成一個(gè)整數(shù)放在num中。合并的方式是:將num1數(shù)的十位和個(gè)位數(shù)依次放在num數(shù)的十位和千位上,num2數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上。

例如,當(dāng)num1=64,num2=18時(shí),調(diào)用到該函數(shù)后,num=4168。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

試題程序:

參考答案

1.A結(jié)構(gòu)體變量中的成員可以是簡(jiǎn)單變量、數(shù)組、指針變量或者結(jié)構(gòu)體變量,選項(xiàng)A正確;不同結(jié)構(gòu)體成員名可以相同,選項(xiàng)B錯(cuò)誤;結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類(lèi)型不能是本結(jié)構(gòu)體類(lèi)型,選項(xiàng)C錯(cuò)誤;結(jié)構(gòu)體定義時(shí),類(lèi)型不同的成員項(xiàng)之間使用分號(hào)隔開(kāi),選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。

2.C解析:x++:表示在使用x之后,使x的值加1;y++:表示在使用y之后,使y的值加1;++y:表示在使用y之前,使\u3000y的值加1。此題中執(zhí)行z=x++,是將x的值先賦給z,所以z=1,接下來(lái)x自行加1,其結(jié)果為2:執(zhí)行y++后,y=2,執(zhí)行++后,y=3;故答案選C。

3.D用C語(yǔ)言編寫(xiě)的程序可以放置于多個(gè)程序文件中,所以A選項(xiàng)錯(cuò)誤。C語(yǔ)言程序中的一行可以有多條語(yǔ)句,所以B選項(xiàng)錯(cuò)誤。C語(yǔ)言中的注釋語(yǔ)句可以與原語(yǔ)句放在一行,也可以不放在一行,所以C選項(xiàng)錯(cuò)誤。故本題答案為D選項(xiàng)。

4.C解析:data是—結(jié)構(gòu)體變量,a是它的成員,因此引用a域的正確方法是:data.a,取它的地址賦值給指針變量p的語(yǔ)句應(yīng)該是:p=&data.a。選項(xiàng)A,將a的地址直接賦給了p,而忽略了a為結(jié)構(gòu)體內(nèi)部的一個(gè)成員,而不是一單獨(dú)的變量,故選項(xiàng)A不正確;選項(xiàng)B在p=data.a表達(dá)式中右邊為一個(gè)結(jié)構(gòu)體變量的成員不是地址,而左邊為一指針應(yīng)該將一地址賦給它,故選項(xiàng)B不正確;選項(xiàng)D表達(dá)式*p=data.a是將結(jié)構(gòu)體變量中的成員a的值賦給指針p所指向的變量值,而不是使指針p指向data中的a域,故選項(xiàng)D不正確:4個(gè)選項(xiàng)中只有C正確。

5.CC?!窘馕觥寇浖こ淌侵笇⒐こ袒乃枷霊?yīng)用于軟件的開(kāi)發(fā)、應(yīng)用和維護(hù)的過(guò)程,包括軟件開(kāi)發(fā)技術(shù)和軟件工程管理。

6.B(45)B)解析:算法應(yīng)該具有下列五個(gè)特性:

①有窮性:一個(gè)算法必須在執(zhí)行有窮步之后結(jié)束。

②確定性:算法中的每一步,必須有確切的含義,在他人理解時(shí)不會(huì)產(chǎn)生二義性。

③動(dòng)態(tài)性:算法中描述的每一步操作都可以通過(guò)已有的基本操作執(zhí)行有限次實(shí)現(xiàn)。

④輸入:一個(gè)算法應(yīng)該有零個(gè)或多個(gè)輸入。

⑤輸出:一個(gè)算法應(yīng)該有一個(gè)或多個(gè)輸出。這里所說(shuō)的輸出是指與輸入有某種特定關(guān)系的量。

7.A解析:希爾排序法的基本思想是:將整個(gè)無(wú)序序列分割成若干小的子序列分別進(jìn)行插入排序。

8.A解析:p+i是數(shù)組s的第i+1行的首地址,而*(p+i)則是數(shù)組第i+1行第1列的元素的地址,*(p+i)+j則是第i+1行的第j+1列的地址,*(*(p+i)+j)引用的是數(shù)組元素s[i][j]的值。注意:通過(guò)建立一個(gè)指針數(shù)組來(lái)引用二維數(shù)組元素。

9.C本題主要考查我們對(duì)C語(yǔ)言一些基礎(chǔ)知識(shí)的掌握情況。下面分別分析本題的四個(gè)選項(xiàng)。

由于高級(jí)程序設(shè)計(jì)語(yǔ)言具有可讀寫(xiě)、可理解性好等特點(diǎn),這就要求高級(jí)程序設(shè)計(jì)語(yǔ)言用接近人們習(xí)慣的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式,選項(xiàng)A的說(shuō)法正確。

在計(jì)算機(jī)中,機(jī)器可以接受和處理的只能是由0和1組成的二進(jìn)制代碼,用高級(jí)語(yǔ)言編寫(xiě)的程序都需要經(jīng)過(guò)編譯和連接,使其轉(zhuǎn)化為二進(jìn)制代碼才能被機(jī)器執(zhí)行。因此,選項(xiàng)B的說(shuō)法正確。

C語(yǔ)言源程序經(jīng)過(guò)C語(yǔ)言編譯程序編譯之后生成一個(gè)后綴為.OBJ的二進(jìn)制文件(稱(chēng)為目標(biāo)文件);最后要由“連接程序”把此.OBJ文件與C語(yǔ)言提供的各種庫(kù)函數(shù)連接起來(lái)生成一個(gè)后綴為.EXE的可執(zhí)行文件。因此,選項(xiàng)C的說(shuō)法不正確。

由于高級(jí)語(yǔ)言編寫(xiě)的程序都需要經(jīng)過(guò)編譯和連接,才能被計(jì)算機(jī)執(zhí)行,因此,每一種高級(jí)語(yǔ)言都有它對(duì)應(yīng)的編譯程序,D選項(xiàng)的說(shuō)法正確。

10.A

11.A解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線(xiàn)組成,并且它的第一個(gè)字符必須是字母或者下劃線(xiàn)。另外C語(yǔ)言規(guī)定了一些專(zhuān)用的標(biāo)識(shí)符,它們有著固定的含義,不能更改。int就是表達(dá)變量類(lèi)型的標(biāo)識(shí)符,它不能再用做變量名和函數(shù)名,所以選項(xiàng)B)不正確。do是C語(yǔ)言的一個(gè)關(guān)鍵字,也不能再用做變量名和函數(shù)名,所以選項(xiàng)C)不正確。

12.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來(lái)解決以下問(wèn)題:軟件需求的增長(zhǎng)得不到滿(mǎn)足、軟件開(kāi)發(fā)成本和進(jìn)度無(wú)法控制、軟件質(zhì)量難以保證、軟件不可維護(hù)或維護(hù)程度低、軟件得成本不斷提高、軟件開(kāi)發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長(zhǎng)。軟件項(xiàng)目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開(kāi)發(fā)中的技術(shù)都是軟件工程需要解決的部分問(wèn)題。因此選項(xiàng)C正確。

13.B

14.B[解析]在一個(gè)C語(yǔ)言程序中可以進(jìn)行多種算法的實(shí)現(xiàn),對(duì)算法的個(gè)數(shù)沒(méi)有規(guī)定,所以B)錯(cuò)誤。

15.A

16.B解析:通過(guò)分析不難寫(xiě)出,f()函數(shù)的數(shù)學(xué)表達(dá)式為:

f(n)=1n=l;

f(n)=f(-1)+1n≠1;

在主函數(shù)中for循環(huán)執(zhí)行了兩次函數(shù)調(diào)用f(i)。第一次:i為1,調(diào)用f(1)得到返回值1,并把它加到j(luò)中,j的值為1。第二次i為2,調(diào)用f(n),根據(jù)遞歸公式可知f(2)=f(1)+1,得到返回值2并把它加到j(luò)中,j的值為3。所以最后輸出,i的值為3。

17.DD)選項(xiàng)中*f(a,b)表示調(diào)用后返回一個(gè)指向整型數(shù)據(jù)的地址指針,即該函數(shù)的返回值為指針類(lèi)型,所以不能將其賦值給整形變量k。

18.CChar類(lèi)型數(shù)據(jù)占1個(gè)字節(jié)。

19.D整型變量ch使用八進(jìn)制數(shù)020初始化,二進(jìn)制數(shù)為10000,右移一位結(jié)果為1000,使用%d輸出十進(jìn)制數(shù)為8。本題答案為D選項(xiàng)。

20.B本題考查靜態(tài)變量,C語(yǔ)言中靜態(tài)變量的生存期是從程序的開(kāi)始到結(jié)束。本題中靜態(tài)變量x,隨著每次進(jìn)入循環(huán)不斷增長(zhǎng)5次,返回的值分別為2、3、4、5、6。所以S=1+2+3+4+5+6=21,選B。

21.\0'或0或NULLstr[i]num++或num=num+1或mum+=l\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或mum+=l解析:觀察題目要求,可以知道以下幾點(diǎn):

①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后一個(gè)字符;

②str[i]代表字符串str中的第i+1個(gè)字符;

③整型變量num的值是要記錄的單詞的個(gè)數(shù)。

C語(yǔ)言中規(guī)定字和會(huì)串的最后一個(gè)字和會(huì)是一個(gè)隱含的字符串結(jié)束符“\\0”,所以在題中第一個(gè)空中應(yīng)填寫(xiě)“\\0”;題中第二個(gè)空應(yīng)填寫(xiě)“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個(gè)空中應(yīng)當(dāng)填寫(xiě)“num++”,通地變量num的加1累加到字符串中的單詞個(gè)數(shù)。

22.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)現(xiàn)過(guò)程是將相鄰兩個(gè)字符進(jìn)行比較,如果當(dāng)前字符小于下—個(gè)字符,則通過(guò)中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。

23.測(cè)試實(shí)例測(cè)試實(shí)例解析:進(jìn)行軟件測(cè)試時(shí),應(yīng)精心設(shè)計(jì)測(cè)試實(shí)例和選擇測(cè)試數(shù)據(jù),以對(duì)系統(tǒng)進(jìn)行全面測(cè)試。

24.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第13空應(yīng)填*s++;如果某個(gè)字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說(shuō)明這個(gè)字符是一個(gè)單詞的開(kāi)始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第14空應(yīng)填flag=0或*(s-1)='';最后一個(gè)空格需填寫(xiě)的是返回的單詞的個(gè)數(shù),即num。

25.strucklink*nextstrucklink*next解析:結(jié)構(gòu)體變量構(gòu)成鏈表要求結(jié)構(gòu)體中必須有一個(gè)指向該結(jié)構(gòu)體變量自身的指針用來(lái)指明鏈表的下一個(gè)結(jié)點(diǎn)。注意:結(jié)構(gòu)體變量的定義及其成員變量的引用。

26.swap(st);swap(s,t);解析:本題要在主函數(shù)中調(diào)用swap函數(shù)交換a、b的值,實(shí)現(xiàn)數(shù)據(jù)交換需要進(jìn)行地址傳遞,所以函數(shù)的形參都應(yīng)該是需要交換的數(shù)據(jù)的地址,程序中通過(guò)“s=&a;t=&b;”將指針變量s和t指向變量a、b的地址,因此,引用時(shí)直接引用指針變量s和t即可。

27.關(guān)系模型關(guān)系模型

28.變換型變換型

29.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個(gè);維表代表一種關(guān)系。

30.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組strl中去。strlen(str):測(cè)試字符串str的長(zhǎng)度,函數(shù)的值為字符串中實(shí)際長(zhǎng)度,不包括\'\\0\'在內(nèi)。本題中strlen(str1)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當(dāng)于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe

31.length++i<lengthlength++\r\ni<length解析:第—個(gè)循環(huán)極有可能是計(jì)算串的長(zhǎng)度,在i<=length時(shí)字符才被刪除,被刪除的是從第i個(gè)到第i+n或最后一個(gè)間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。

32.154321,5,4,3,2解析:第一次調(diào)用函數(shù)f后aa[0]=5、aa[4]=1;第二次調(diào)用函數(shù)f后aa[1]=4、aa[4]=2;第三次調(diào)用函數(shù)f后aa[3]=3。正確答案為1,5,4,3,2。

33.8484解析:本題考核的知識(shí)點(diǎn)是函數(shù)的調(diào)用、值傳遞和地址傳遞的區(qū)別。“值傳遞”指實(shí)參將值傳遞給形參后,實(shí)參與形參再無(wú)聯(lián)系。也就是說(shuō)對(duì)行參的改變將不影響實(shí)參;地址傳遞是指地址或數(shù)組名作為形參時(shí)的參數(shù)傳遞,這種情況下對(duì)形參的改變將對(duì)實(shí)參產(chǎn)生影響.函數(shù)f(Y*x)的作用是讓y的值加上指針x所指向變量的值,讓指針x所指向變量的值加上y的值。由于形參y是傳值的,形參x是傳地址的,故調(diào)用該函數(shù)后,作為實(shí)參的y的值將不改變,而實(shí)參x的值將改變,故最后輸出的y的值為4,而x的值為8。

34.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。

35.55解析:分析程序,當(dāng)a=3;b=4;c=5時(shí),判斷語(yǔ)句a>b不成立,所以不執(zhí)行后面的語(yǔ)句,直接執(zhí)行“printf('%d\\n',c);”語(yǔ)句,輸出c的值,輸出結(jié)果為5。

36.j%3!=0或j%3j%3!=0或j%3解析:題目要求輸出100以?xún)?nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù),且通過(guò)for循環(huán)實(shí)現(xiàn),循環(huán)體內(nèi)j=i*10+6;這也就滿(mǎn)足了個(gè)位數(shù)為6的條件,所以第1個(gè)空格填入i<10或i<=9;if語(yǔ)句中的continue說(shuō)明如果條件不成立則不輸出j,所以第2空填j%3!=0或j%3。

37.((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個(gè)為正數(shù)”,即x、y和z這3個(gè)數(shù)中必須有兩個(gè)是正數(shù),且這3個(gè)數(shù)中的哪兩個(gè)數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。

38.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法。冒泡排序是一種最簡(jiǎn)單的交換排序方法,它是通過(guò)相鄰元素之間的相互交換逐步將線(xiàn)性表變成有序。

39.101,0解析:與運(yùn)算兩邊的語(yǔ)句必須同時(shí)為真時(shí),結(jié)果才為真。當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時(shí),a,b的值已經(jīng)發(fā)生了變化。

40.2929解析:本題考查while循環(huán)和++運(yùn)算,x=27符合循環(huán)條件,執(zhí)行循環(huán)體中x++后,x=28,if條件也成立,執(zhí)行x++后退出,x的值增1,結(jié)果x=29。

41.D

42.D解析:C語(yǔ)言相對(duì)其他高級(jí)語(yǔ)言來(lái)說(shuō),放寬了語(yǔ)法檢查,因此程序設(shè)計(jì)自由度大,但并不是不檢查語(yǔ)法,C語(yǔ)言的程序是由函數(shù)構(gòu)成的。函數(shù)不能嵌套定義,但是可以嵌套調(diào)用。

43.CC?!窘馕觥繉?duì)線(xiàn)性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開(kāi)始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。

44.C本題考查對(duì)面向?qū)ο蟮睦斫?。面向?qū)ο蟮某绦蛟O(shè)計(jì)是對(duì)象模擬問(wèn)題領(lǐng)域中的實(shí)體,各對(duì)象之間相對(duì)獨(dú)立,相互依賴(lài)性小,通過(guò)消息來(lái)實(shí)現(xiàn)對(duì)象之間的相互聯(lián)系。

45.C解析:本題中沒(méi)有使用break終止switch語(yǔ)句的執(zhí)行,當(dāng)k為'0'時(shí),執(zhí)行完case'0'后的輸出后將繼續(xù)執(zhí)行case'1'后的輸出;當(dāng)k為'1'時(shí),執(zhí)行case'1'后的輸出。

46.C解析:本題要注意靜態(tài)變量d。第1次執(zhí)行fun(d),即fun(1),在函數(shù)fun里對(duì)靜態(tài)變量賦初值5,得到d=d+p=5+1=6并輸出,返回6;第2次執(zhí)行fun(a+fun(d)),即fun(3+6)=fun(9),在函數(shù)fun中直接執(zhí)行d=d+p=6+9=15并輸出,然后返回15再一次輸出。

47.C2(n-1)

=2(5-1)=16

48.B解析:右移運(yùn)算符“>>”是雙目運(yùn)算符。其功能是把“>>”左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,“>>”右邊的數(shù)指定移動(dòng)的位數(shù)。例如:設(shè)a=15,a>>2表示把000001111右移為00000011(+進(jìn)制3)。應(yīng)該說(shuō)明的是,對(duì)于有符號(hào)數(shù),在右移時(shí),符號(hào)位將隨同移動(dòng)。當(dāng)為正數(shù)時(shí),最高位補(bǔ)0,而為負(fù)數(shù)時(shí),符號(hào)位為1,最高位是補(bǔ)0或是補(bǔ)1取決于編譯系統(tǒng)的規(guī)定。TurboC和很多系統(tǒng)規(guī)定為補(bǔ)1,右移1位相當(dāng)于除以2。

49.A解析:條件表達(dá)式的形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3,所以本題條件表達(dá)式a<b?a:c<d?c:d應(yīng)該理解為a<b?a:(c<d?c:d),首先求出條件表達(dá)式c<d?c:d的值等于2,再求條件表達(dá)式a<b?a:2的值,由于a-1<b-4成立,所以上述條件表達(dá)式的值等于1。

50.C解析:“int(*ptr)();”說(shuō)明ptr是一個(gè)指向函數(shù)的指針,返回值是整型。*ptr兩邊的括號(hào)非常關(guān)鍵,表示*和ptr組合成一個(gè)指針變量,然后再和后邊的圃括號(hào)結(jié)合,表示該指針變量*ptr是一個(gè)指向函數(shù)的指針變量。如果沒(méi)有*ptr兩邊的括號(hào),“int*ptr();”表示ptr是個(gè)函數(shù),該函數(shù)返回指向整型數(shù)據(jù)的指針。

51.D解析:所謂的交換類(lèi)排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡(jiǎn)單的交換排序方法,它通過(guò)相鄰元素的交換,逐步將線(xiàn)性表變成有序。

52.C解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫(xiě)算法程序所使用的程序設(shè)計(jì)語(yǔ)言、執(zhí)行算法程序時(shí)所使用的計(jì)算的工具以及程序員的水平無(wú)關(guān)。選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤,因?yàn)樗惴ㄋ帉?xiě)的程序長(zhǎng)度往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語(yǔ)言或者不同的程序員所編寫(xiě)出的程序其長(zhǎng)度可能會(huì)大不相同。選項(xiàng)D錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來(lái)度量算法的時(shí)間復(fù)雜度。所以,本題正確答案為C。

53.C

54.D解析:性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)不連續(xù),且各結(jié)點(diǎn)在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致。性鏈表中,各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來(lái)指示的。所以,選項(xiàng)D正確。

55.B通過(guò)—維數(shù)組名或指向維數(shù)組元素的指針來(lái)引用數(shù)組元素有兩種寫(xiě)法:a[i]和*(a+i),它們是等價(jià)的。這是一種運(yùn)算符之間的等價(jià)轉(zhuǎn)換,就好像a-(b-C)等價(jià)于a-b+c一樣。知道了這種轉(zhuǎn)換,我們可以將之?dāng)U展到二維數(shù)組甚至任意維數(shù)組上來(lái)。因?yàn)閇]運(yùn)算符的結(jié)合性是從左至右的,所以w[i][j]等價(jià)于(w[i][j],此時(shí)可以先將任意一個(gè)[]運(yùn)算符轉(zhuǎn)換為指針形式為:(*(w+i)[j]或*(w[i]+j),或者同時(shí)轉(zhuǎn)換:*(*(w+i)+j)。上述幾種形式都完全等價(jià)于w[i][j]。選項(xiàng)A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正確的。選項(xiàng)B小,因?yàn)閇]運(yùn)算符的優(yōu)先級(jí)高于*運(yùn)算符,所以*(w+1)[4]等價(jià)于*((w+1)[4]等價(jià)于*(*((w+1)+4)),即*(*(w+5)+0),它等價(jià)于w[5][0],很明顯它超過(guò)數(shù)組的范圍了,故不正確。選項(xiàng)C等價(jià)于w[1][0],是下確的。選項(xiàng)D中,&w[0][0]是數(shù)組w第1個(gè)元素的地址,它等價(jià)于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以個(gè)數(shù),然后再除以這個(gè)數(shù)一樣。所以,&w[0][0]等價(jià)于*(w+0)+0。即*w。所以原式就變?yōu)?(*w+1)等價(jià)于w[0][1],這個(gè)也是合法的。綜上所述,本題應(yīng)該選擇B。

56.D解析:當(dāng)k=1時(shí),引用的是二維數(shù)組元素w[1][1],值為字符串“FGH”;當(dāng)k=2時(shí),引用的是數(shù)組元素w[2][2],即字符串“KL”;當(dāng)k=3時(shí),結(jié)束程序的執(zhí)行。注意:字符串?dāng)?shù)組的定義。

57.B解析:內(nèi)層for循環(huán)語(yǔ)句實(shí)現(xiàn)x=x+2,故外層for循環(huán)語(yǔ)句單次循環(huán)實(shí)現(xiàn)x=x+4,所以程序執(zhí)行后的輸出結(jié)果為x=8。

58.D解析:本題中定義了一個(gè)二維數(shù)組c和一個(gè)指針數(shù)組p并初始化讓它指向c,顯然此時(shí)p中的各元素為地址,選項(xiàng)A中p+1,此時(shí)其中的1代表的長(zhǎng)度是整個(gè);維數(shù)組c的長(zhǎng)度,故p+1將讓p指向c數(shù)組后面的元素,故不能引用c數(shù)組中的成員,故選項(xiàng)A錯(cuò)誤;同理選項(xiàng)B和選項(xiàng)C都不正確,選項(xiàng)D中p[0]指的是指針數(shù)組中的第一個(gè)元素的地址即c的首地址,此時(shí)的1的長(zhǎng)度代表的是數(shù)組c中一行的長(zhǎng)度,故p[0]+2代表的是第三行的首地址,而*(p[0]+2)將代表第三行的第一個(gè)元素的地址,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

59.D解析:在概念設(shè)計(jì)中,按照模塊的劃分畫(huà)出各個(gè)模塊的E-R圖,然后把這些圖合成一張E-R圖作為全局模型,最后應(yīng)該對(duì)全局E-R圖進(jìn)行優(yōu)化,看是否有重復(fù)和不合理的地方。不能只進(jìn)行簡(jiǎn)單的合并。

60.D

61.A第一次調(diào)用m=f(f(f(1))),第二次為m=f(f(2)),第三次為m=f(4),即返回值為8,選項(xiàng)A)正確。

62.D解析:本題考查的是do…while循環(huán)結(jié)構(gòu).do…while循環(huán)與while循環(huán)的區(qū)別就是,前者是先執(zhí)行循環(huán)體,后判斷循環(huán)變量,故至少會(huì)執(zhí)行一遍循環(huán)體;后者先判斷再執(zhí)行,可能循環(huán)體一次也不會(huì)執(zhí)行。本題首先讓t=1,然后在循環(huán)體中每次自減2,所以判斷循環(huán)條件的時(shí)候,t會(huì)等于-1、-3、-5…

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論