2021年湖北省黃石市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第1頁(yè)
2021年湖北省黃石市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第2頁(yè)
2021年湖北省黃石市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第3頁(yè)
2021年湖北省黃石市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第4頁(yè)
2021年湖北省黃石市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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ì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十進(jìn)制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果是()。A.因變量類型與格式描述符的類型不匹配輸出無(wú)定值

B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

2.C語(yǔ)言的基本單位是()。

A.函數(shù)B.過(guò)程C.子程序D.子函數(shù)

3.棧和隊(duì)列的共同點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒(méi)有共同特點(diǎn)

4.有以下程序:#include<stdio.h>main(){charb[]=“happynewyear”,k;for(k=0;b[k];k++) printf(“%c”,b[k]-‘a(chǎn)’+‘A’);}程序運(yùn)行后的輸出結(jié)果是()。

A.hAppynewyeArB.HappynewyearC.HAPPYNEWYEARD.HaPPYNEWYEaR

5.若串S=,software,其子串的數(shù)目是()。

A.8B.37C.36D.9

6.有下面程序段#include"stdio.h"#include"string.h"main(){chara[3][20]={{"china"};{"isa"},{bigcountry!"}};chark[100]={0},*p=k;inti;for(j=0;j<3;i++){p=strcat(p,a[i]);}i=strlen(p);printf("%d\n",i);}則程序段的輸出結(jié)果是

A.18B.19C.20D.21

7.若有定義int(*pt)[3];,則下列說(shuō)法正確的是A.定義了基類型為int的三個(gè)指針變量

B.定義了基類型為int的具有三個(gè)元素的指針數(shù)組pt

C.定義了一個(gè)名為*pt、具有三個(gè)元素的整型數(shù)組

D.定義了一個(gè)名為pt的指針變量,它可以指向每行有三個(gè)整數(shù)元素的二維數(shù)組

8.數(shù)組A[0...4,-1...-3,5...7]中含有的元素個(gè)數(shù)是()。A.A.55B.45C.36D.16

9.已知inta=2,b=3;則執(zhí)行表達(dá)式a=a<b后,變量a的值為()。

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

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

A.當(dāng)對(duì)文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

B.打開一個(gè)已存在的文件并進(jìn)行寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個(gè)程序中對(duì)文件進(jìn)行寫操作后,必須先關(guān)閉該文件然后再打開才能讀到第1個(gè)數(shù)據(jù)

D.C語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

11.下列關(guān)于棧的描述中錯(cuò)誤的是()。

A.棧是先進(jìn)先出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對(duì)棧的插入刪除操作中,不需要改變棧底指針

12.以下()不是隊(duì)列的基本運(yùn)算

A.從隊(duì)尾插入一個(gè)新元素B.從隊(duì)列中刪除第i個(gè)元素C.判斷一個(gè)隊(duì)列是否為空D.讀取隊(duì)頭元素的值

13.下列定義數(shù)組的語(yǔ)句中,正確的是()。A.#defineN10?intx[N];

B.intN=10;int[N];

C.intx0..10];

D.Intx[];.

14.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運(yùn)行后的輸出結(jié)果是()。

A.6B.7C.5D.8

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

A.字符型數(shù)組中可能存放字符串。

B.可以對(duì)字符型數(shù)組進(jìn)行整體輸入、輸出。

C.可以對(duì)整型數(shù)組進(jìn)行整體輸入、輸出。

D.不能在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符“=”對(duì)字符型數(shù)組進(jìn)行整體賦值。

16.人們提出了用______的原理來(lái)設(shè)計(jì)軟件,這就是軟件工程學(xué)誕生的基礎(chǔ)。

A.計(jì)算機(jī)科學(xué)B.數(shù)學(xué)C.工程學(xué)D.運(yùn)籌學(xué)

17.設(shè)x,y,t均為int型變量,執(zhí)行語(yǔ)句:

x=y=3;

t=++x||++y;

完成后,y的值為A.A.不確定B.4C.3D.1

18.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長(zhǎng)度大于5,則輸出按方式()。

A.從左起輸出該字串,右補(bǔ)空格B.按原字符長(zhǎng)從左向右全部輸出C.右對(duì)齊輸出該字串,左補(bǔ)空格D.輸出錯(cuò)誤信息

19.

20.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}執(zhí)行后的輸出結(jié)果是______。

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

二、2.填空題(20題)21.在最壞情況下,堆排序需要比較的次數(shù)為()。

22.若a=1,b=2,則表達(dá)式!(x=A)‖(y=B)&&0的值是______。

23.瀑布模型將軟件生存周期劃分為【】、開發(fā)和運(yùn)行3個(gè)階段。

24.閱讀程序,填空補(bǔ)充程序。

#define【】30

main()

{【】;

num=10;

total=num*PRICE;

printf("total=%d,num=%d\n",【】);

}

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

#include<stdio.h>

main()

{inti;

for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n");

}

26.已有定義如下:

structnode

{intdata;

structnode*next;

}*p;

以下語(yǔ)句調(diào)用malloc函數(shù),使指針p指向一個(gè)具有structnode類型的動(dòng)態(tài)存儲(chǔ)空間。請(qǐng)?zhí)羁铡?/p>

p=(structnode*)malloc(【】);

27.\13'在內(nèi)存中占1個(gè)字節(jié),"\12"在內(nèi)存中占______個(gè)字節(jié)。

28.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>

#include<string.h>

main()

{inti,j,【】;charstr[]={"1234567"};

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

printf("%s\n",str);}

29.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>

main()

{

inti,j,【】;charstr[]={"1234567");

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

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

}

30.下列程序的輸出結(jié)果是______。

main()

{inta=2,b=4,c=6;

int*p1=&a,*p2,&b,*p;

*(p=&c)=*p1*(*p2);

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

}

31.類是一個(gè)支持集成的抽象數(shù)據(jù)類型,而對(duì)象是類的【】。

32.軟件是程序、數(shù)據(jù)和【】的集合。

33.若從鍵盤輸入24,則以下程序輸出的結(jié)果是()。

#include<stdio.h>

main()

{inta;

scanf("%d",&A);

if(a>20)printf("%d",A);

if(a>10)printf("%d",A);

if(a>5)printf("%d",A);

}

34.下面程序的輸出結(jié)果是______。

main()

{staticchara[]="language",b[]="program";

char*ptrl=a,*ptr2=b;

intk

for(k=0;k<7;k++)

if(*(ptrl+k)==*(ptr2+k))

printf("%c",*(ptr1+k));}

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

fun(intx,inty,intz)

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

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

36.fun函數(shù)的功能是:首先對(duì)a所指的N行N列的矩陣,找出各行中的最大數(shù),再求這N個(gè)最大值中最小的那個(gè)數(shù)并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{introw,col,max,min;

for(row=0;row<N;row++)

{for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

37.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

38.函數(shù)count(head)統(tǒng)計(jì)鏈表的結(jié)點(diǎn)個(gè)數(shù),head為表頭指針,閱讀程序,要求將整個(gè)if語(yǔ)句改成while循環(huán)控制結(jié)構(gòu),其形式為【】。

#include<stdio.h>

intcount(NODE*head)

{intn=0;

if(head!=NULL)

do

{n++;

head=head->next;

}while(head!=NULL);

returnn;}

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

main()

{inta[10]={10,20,30,40,50,60,70,80,90,100},*p;

p=a+2;printf("%d\n',(p+2)[3]);

}

40.設(shè)Y是int型變量,請(qǐng)寫出判斷Y為奇數(shù)的關(guān)系表達(dá)【】。

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是

main()

{inta,i;a=0;

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

{switch(i)

{case0:

case3:a+=2;

case1:

case2:a+=3;

default:a+=5;}

}printf("%d\n",a);}

A.31B.13C.10D.20

42.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過(guò)程中可以出棧,則下列不可能的一個(gè)出棧序列是______。

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

43.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無(wú)關(guān)的是數(shù)據(jù)的()。A.存儲(chǔ)結(jié)構(gòu)B.物理結(jié)構(gòu)C.邏輯結(jié)構(gòu)D.物理和存儲(chǔ)結(jié)構(gòu)

44.

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

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

printf("x=%d,y=%d",x,y);

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

45.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是______。

A.'a'<=c<'z'

B.(c>='a')||(c<='z')

C.('a'<'c')and('z'>=C)

D.(c>='a')&&(c<='z')

46.下面能正確進(jìn)行字符串賦值操作的語(yǔ)句是______。

A.chars[5]={"ABCDE"}:

B.chars[5]={'A'、'B'、'c'、'D'、'E'};

C.char*s;s="ABCDEF";

D.char*s;scanf("%s",s):

47.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

48.若要求從鍵盤讀人含有空格字符的字符串,應(yīng)該使用函數(shù)()。

A.getc()B.gets()C.getchar()D.scanf()

49.下面不屬于軟件設(shè)計(jì)原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

50.軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()

A.定義、開發(fā)、運(yùn)行維護(hù)

B.設(shè)計(jì)階段、編程階段、測(cè)試階段

C.總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試

D.需求分析、功能定義、系統(tǒng)設(shè)計(jì)

51.下面是對(duì)宏定義的描述,不正確的是______。

A.宏不存在類型問(wèn)題,宏名無(wú)類型,它的參數(shù)也無(wú)類型

B.宏替換不占用運(yùn)行時(shí)間

C.宏替換時(shí)先求出實(shí)參表達(dá)式的值,然后代入形參運(yùn)算求值

D.宏替換只不過(guò)是字符替代而已

52.設(shè)有定義語(yǔ)句int(*f)(int);,則以下敘述正確的是()。

A.f是基類型為int的指針變量

B.f是指向函數(shù)的指針變量,該函數(shù)具有一個(gè)int類型的形參

C.f是指向int類型一維數(shù)組的指針變量

D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址

53.假設(shè)線性表的長(zhǎng)度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為``

A.log2n

B.n2

C.O(n1.5)

D.n(n-1)/2

54.以下程序執(zhí)行后sum的值是()。

A.15

B.14

C.不確定

D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}

55.執(zhí)行下面的語(yǔ)句后,表達(dá)式*(p[0]+1)+**(q+2)的值為______。inta[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;

A.8B.7C.6D.5

56.若有以下說(shuō)明和語(yǔ)句:structst{intn;char*ch;};structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;則值為6的表達(dá)式是______。

A.p++->nB.p->n++C.(*p).n++D.++p->n

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

A.構(gòu)成C程序的基本單位是函數(shù)

B.可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)

C.main()函數(shù)必須放在其他函數(shù)之前

D.所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義

58.在“文件包含”預(yù)處理語(yǔ)句的使用形式中,當(dāng)#include后面的文件名用<>(尖括號(hào))括起時(shí),尋找被包含文件的方式是()。

A.僅僅搜索當(dāng)前目錄

B.僅僅搜索源程序所在目錄

C.在標(biāo)準(zhǔn)目錄下查找指定的文件

D.先在源程序所在目錄搜索,如查找不到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄查找

59.下面函數(shù)的功能是char*fun(char*strl,char*str2){while((*strl)&&(*str2++=*strl++));returnstr2;}

A.求字符串的長(zhǎng)度

B.比較兩個(gè)字符串的大小

C.將字符串str1復(fù)制到字符串str2中

D.將字符串str1接續(xù)到字符串str2中

60.若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

四、選擇題(20題)61.在面向?qū)ο蠓椒ㄖ校?)描述的是具有相似屬性與操作的一組對(duì)象。

A.屬性B.事件C.方法D.類

62.

63.第

42

下面說(shuō)明不正確的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*p;p=a="china"

64.

65.下列關(guān)于棧的描述中錯(cuò)誤的是()。

A.棧是先進(jìn)先出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對(duì)棧的插入刪除操作中,不需要改變棧底指針

66.若i、j已定義成int型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。

for(i=6;i>0;i--)

for(j=0;j<4;j++){…}A.A.20B.24C.25D.30

67.已知inta,b;doublec;,則以下語(yǔ)句中錯(cuò)誤的函數(shù)調(diào)用是

A.scanf("%d,%x,%lf",&a,&b,&c);B.scanf("%d,%d,%le",&a,&b,&c);

C.scanf("%o,%x,%o",&a,&b,&c);D.scanf("%d,%o,%e",&a,&b,&c);

68.按照c語(yǔ)言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是()。A.連接符B.大寫字母C.數(shù)字字符D.下劃線

69.

70.

71.有以下程序:

#include<stdio.h>

main()

{inta=0,b=0,c=0;

c=(a=a=5);(a=b,b+=4);

printf("%d,%d,%d\n",a,bc);

}

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

A.0,4,5B.4,4,5C.4,4,4D.0,0,0

72.設(shè)有以下程序段:

structMP3

{charname[20];

charcolor;

floatprice;

}std,*ptr;

ptr=&std:

若要引用結(jié)構(gòu)體變量std中的color成員,寫法錯(cuò)誤的是()。

A.std.color

B.ptr->color

C.std->color

D.(*ptr)color

73.合法的main函數(shù)命令參數(shù)形式是()。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

74.

75.

現(xiàn)有以下結(jié)構(gòu)體說(shuō)明和變量定義,如圖所示,指針p、q、r分別指定一個(gè)鏈表中連續(xù)的3個(gè)結(jié)點(diǎn)。

structnode

{bardata;

structnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指結(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語(yǔ)句是()。

A.q->next=r->next;P>next=r;r->next=q;

B.q->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;P->next=r:

D.q->next=q;P->next=r;q->next=r->next;

76.

有以下程序:

main

{intx=102,y=012;

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

}

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

A.10,01B.02,12C.102,10D.02,10

77.

78.

79.數(shù)據(jù)庫(kù)的故障恢復(fù)一般是由

A.?dāng)?shù)據(jù)流圖完成的B.?dāng)?shù)據(jù)字典完成的C.DBA完成的D.PAD圖完成

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:計(jì)算整數(shù)n的階乘。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存人xx所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過(guò)k返回。

例如,若輸入l7,則應(yīng)輸出:46891012141516。

注意:部分源程序在文件PROGl.C中。

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

參考答案

1.D解析:在用基本輸出函數(shù)printf時(shí),格式說(shuō)明與輸出項(xiàng)的個(gè)數(shù)應(yīng)該相同。如果格式說(shuō)明的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),多余的輸出項(xiàng)不予輸出;如果格式說(shuō)明個(gè)數(shù)多于輸出項(xiàng)個(gè)數(shù),則對(duì)于多余的格式項(xiàng)輸出不定值或0。

2.AA?!窘馕觥緾語(yǔ)言是函數(shù)式的語(yǔ)言。它的基本組成單位是函數(shù),在C語(yǔ)言中任何程序都是由一個(gè)或者多個(gè)函數(shù)組成的。

3.C解析:棧和隊(duì)列都是操作受限制的線性表,只允許在端點(diǎn)插入和刪除。不同點(diǎn)是:棧只允許在表的一端進(jìn)行插入和刪除操作,而隊(duì)列允許在表的一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。

4.C程序定義一個(gè)字符數(shù)組b,并使用字符串“happynewyeai”進(jìn)行初始化。然后通過(guò)for循環(huán),遍歷字符數(shù)組b中的每個(gè)字符,再將b中的字符元素修改為大寫字母。程序輸出:HAPPYNEWYEAR。故本題答案為C選項(xiàng)。

5.B

6.B解析:字符串連接函數(shù)strcat的調(diào)用形式如下:strcat(s1,s2)。此函數(shù)用來(lái)把s2所指字符串的內(nèi)容連接到s1所指的字符串后面,并自動(dòng)覆蓋s1串末尾的尾標(biāo),函數(shù)返回s1的地址值。

7.D解析:定義了一個(gè)指向一維數(shù)組的指針,該一維數(shù)組具有三個(gè)int型元素,按照C語(yǔ)言中二維數(shù)組的定義知,二維數(shù)組先按照行排列,再按照列排列,故選D。

8.A

9.B解析:先計(jì)算關(guān)系表達(dá)式a<b=2<3為真(表達(dá)式為真時(shí),如果變量為int型變量則真用1表示,假用0表示),即a=1。

10.AB選項(xiàng)中,打開一個(gè)已存在的文件并進(jìn)行寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對(duì)源文件進(jìn)行追加操作等。C選項(xiàng)中,在一個(gè)程序中對(duì)文件進(jìn)行寫操作后,不是先關(guān)閉該文件然后再打開才能讀到第1個(gè)數(shù)據(jù),用fseek函數(shù)進(jìn)行重新定位即可。D選項(xiàng)中,C語(yǔ)言中的文件可以進(jìn)行隨機(jī)讀寫。故本題答案為A選項(xiàng)。

11.B

\n棧是線性表的一種,它的特點(diǎn)是先進(jìn)后出,并且只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,因此具有記憶作用,棧可以采用順序存儲(chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)。

\n

12.B

13.A數(shù)組說(shuō)明的一般形式為:類型說(shuō)明符數(shù)組名[常量表達(dá)式]。B)中N是變量,不能用變量定義數(shù)組長(zhǎng)度。C)選項(xiàng)中數(shù)組長(zhǎng)度是非法的一串?dāng)?shù)字。定義數(shù)組時(shí)必須為其指明長(zhǎng)度,D)選項(xiàng)中數(shù)組長(zhǎng)度為空,所以非法。

14.A解析:在主函數(shù)main()中,語(yǔ)句“sum(&a[2]);”把數(shù)組元素a[0]的地址傳遞給了sun函數(shù)的形參a[],使得sum函數(shù)中的“(a+0)”為主函數(shù)中a[2]的地址,所以a[-1]的值為主函數(shù)中a[1]的值;a[1]的值為主函數(shù)中a[3]的伉,故函數(shù)sum中a[0]=2+4=6,由于此函數(shù)中的a是指向主函數(shù)中的a[2],所以a[2]的值為6。

15.C

16.C

17.Ct=++x或++y,當(dāng)++x不為0的時(shí)候,即++x為真,則不需要再繼續(xù)判斷++y,那么y就不再執(zhí)行自加,因此y=3.

18.B

19.C

20.A解析:本題中p[4]='cd',所以strlen(p[4])=2。

21.O(nlog2n)

22.00解析:根據(jù)運(yùn)算符的運(yùn)算順序可知,該表達(dá)式最后運(yùn)算的是與(&&)運(yùn)算,而任何表達(dá)式與“0”進(jìn)行“與”運(yùn)算,結(jié)果都為0。

23.計(jì)劃計(jì)劃解析:瀑布模型是B.W.Boehm于1976年提出的。它將軟件生存周期劃分為計(jì)劃、開發(fā)、運(yùn)行3個(gè)時(shí)期,每個(gè)時(shí)期又分為若干個(gè)階段。

24.PRICEintnumtotaltotalnumPRICE\r\nintnum,total\r\ntotal,num解析:程序中出現(xiàn)了變量num,total以及宏P(guān)RICE,因此應(yīng)在相應(yīng)位置說(shuō)明它們。

25.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當(dāng)其變?yōu)椤癵”時(shí),循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個(gè)字符。表達(dá)式“i-'a'+'A'”即表示輸出i對(duì)應(yīng)的大寫字母,結(jié)果為ACE。

26.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是開辟一個(gè)長(zhǎng)度為sizeof(struetnode)的內(nèi)存區(qū)。(structnode*)的作用是使malloc返回的指針轉(zhuǎn)換為指向structnode類型數(shù)據(jù)的指針。

27.22解析:'\\13':表示八進(jìn)制數(shù)13表示的ASCII字符,是一個(gè)字符,占一個(gè)字節(jié);而”\\12”是個(gè)字符串,除了八進(jìn)制數(shù)12表示的ASCII字符占一個(gè)字節(jié)外,還有在字符串的末尾加上串結(jié)束標(biāo)志“'\\0'”,所以共有2個(gè)字節(jié)。

28.k-1k,-1解析:顛倒一個(gè)字符串中的字符,就是首尾對(duì)應(yīng)的元素兩兩交換。簡(jiǎn)單地可用兩個(gè)游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個(gè)變量值為下標(biāo)的元素str[i]和str[j]。開始時(shí),i的值為0,j的值為字符串末元素的下標(biāo)(字符串長(zhǎng)度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長(zhǎng)度減1,所以在第二個(gè)空框處應(yīng)填入-1。程序?yàn)榱私粨Qstr[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個(gè)空框處應(yīng)填入k。

29.k-1k\r\n-1解析:程序山使用了整型變量i、j、k,使用前應(yīng)先聲明,因此第1個(gè)空應(yīng)填變量k。i和j作為下標(biāo)的值,i被賦初值為0,j應(yīng)為下標(biāo)的最大值,下標(biāo)的最大值為數(shù)組的長(zhǎng)度減1。

30.本程序定義了3個(gè)指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達(dá)式*p1*(*p2)的值是8。在賦值語(yǔ)句的左邊是*(p=&c),即使指針p指向了變量c,因而*(p)代表了c的存儲(chǔ)單元,賦值語(yǔ)句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。\r\n\r\n

31.實(shí)例將屬性、操作相似的對(duì)象歸為類,也就是說(shuō),類是具有共同屬性、共同方法的對(duì)象的集合。所以,類是對(duì)象的抽象,對(duì)象則是其對(duì)應(yīng)類的一個(gè)實(shí)例。

32.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

33.242424

34.

35.3131解析:在函數(shù)調(diào)用時(shí),形參值和改變,不會(huì)改變實(shí)參的值。

36.a[row][c01]>max或max<a[row][co1]max<min或min>maxa[row][c01]>max或max<a[row][co1]\r\nmax<min或min>max解析:本題有兩層for循環(huán),函數(shù)首先定義了整型變量row、col、max和min,其中row用于外循環(huán)的循環(huán)變量,col用于內(nèi)循環(huán)的循環(huán)變量,max記錄每行中的最人值,min記錄所有行最大值中的最小值。在內(nèi)循環(huán)中,首先給max賦初值為每行的第0個(gè)元素值,然后從第一個(gè)開始依次與max進(jìn)行比較。如果大于max則將其值賦給max,當(dāng)每一行循環(huán)結(jié)束,max記錄了每一行的最大值。所以第一個(gè)空應(yīng)該填a[row][co1]>max或max<a[row][co1)。退出內(nèi)循環(huán),在第一次退出內(nèi)循環(huán)時(shí),將min賦初值為第0行的max,然后在每次退出內(nèi)循環(huán)時(shí),將min和每行的max比較,如果大于max,則將max值賦min,所以第二個(gè)空應(yīng)該填max<min或min>max,當(dāng)退出外循環(huán)時(shí),rain為所有行中的最大值的最小值。

37.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。

38.while(p!=NULL){n++;head=head→next;}while(p!=NULL){n++;head=head→next;}解析:do…while循環(huán)轉(zhuǎn)化為while循環(huán),循環(huán)體執(zhí)行的內(nèi)容應(yīng)該是一致的,不同的是do…while結(jié)構(gòu)是先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)條件是否滿足,而while循環(huán)則是先判斷循環(huán)條件是否滿足,滿足則執(zhí)行循環(huán)體。所以do…while循環(huán)結(jié)構(gòu)若想轉(zhuǎn)換為while循環(huán)結(jié)構(gòu),必須在do…while循環(huán)之前先對(duì)循環(huán)條件進(jìn)行一個(gè)判斷,即此題中的if(head!=NULL)。注意:3種循環(huán)結(jié)構(gòu)的比較。

39.80。80。解析:p=a+2使指針p指向數(shù)組a的第三個(gè)元素,即a[2],(p+2)[3]使p再移動(dòng)5個(gè)單位,則指向了數(shù)組元素a[7],它的值為80。

40.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或不為0。本題具體做法如下:Y%2=1或Y%2!=0。

41.A解析:本題考查用于多分支選擇的switch語(yǔ)句,其一般形式為:

switch(表達(dá)式)

{

case常量表達(dá)式1:語(yǔ)句1;

case常量表達(dá)式2:語(yǔ)句2;

case常量表達(dá)式n:語(yǔ)句n;

default:語(yǔ)句n+1;

}

其語(yǔ)義是:計(jì)算表達(dá)式的值,并逐個(gè)與其后的常量表達(dá)式值進(jìn)行比較,當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),即執(zhí)行其后的語(yǔ)句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語(yǔ)句;如表達(dá)式的值與所有case后的常量表達(dá)式均不相等時(shí),則執(zhí)行default后的語(yǔ)句。

42.C解析:棧是一種后進(jìn)先出表,選項(xiàng)C中,先出棧的是3,說(shuō)明此時(shí)棧內(nèi)必然有1,2,由于1先于2進(jìn)淺,所以1不可能在2之前出棧,故選項(xiàng)C這種出棧序列是不可能的。

43.C數(shù)據(jù)結(jié)構(gòu)概念一般包括3個(gè)方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu))及數(shù)據(jù)上的運(yùn)算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,即數(shù)據(jù)元素之間的前后件關(guān)系,而不管它在計(jì)算機(jī)中的存儲(chǔ)表示形式。

44.C解析:逗號(hào)表達(dá)式的求解步驟是先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式N的值。整個(gè)逗號(hào)表達(dá)式的值就是最后一個(gè)表達(dá)式N的值。

表達(dá)式(x=3*y,x+1)中,第一個(gè)表達(dá)式x=3*y=3*5=15;第二個(gè)表達(dá)式x+1=16,但沒(méi)有給x或y賦值,所以x還是等于15;第3個(gè)表達(dá)式x-1=15-1=14,所以y的值為14。

45.D

46.C

47.D解析:本題中首先定義一個(gè)字符數(shù)組s,并將字符串'ABCD'存到數(shù)組s中,定義了一個(gè)字符指針變量p,在接下來(lái)for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向s[1],所以此時(shí)輸出的p所指字符串的值為BCD,第二次循環(huán)p指向s[2],此時(shí)輸出p所指的字符串的值為CD,第三次循環(huán)p指向s[3],此時(shí)輸出的p所指的字符串的值為D。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

48.B解析:gete()函數(shù)是從文件指針指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回;getchar()函數(shù)是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符,getc()和getehar()都不能讀字符串(可以與循環(huán)語(yǔ)句結(jié)合輸入一個(gè)字符串);seanf()函數(shù)不能輸入帶空格的字符串;gets()函數(shù)可以從鍵盤讀入空格字符。

49.C解析:軟件設(shè)計(jì)遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和與軟件設(shè)計(jì)有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來(lái)而不考慮其他細(xì)節(jié)。②模塊是指可以單獨(dú)命名且可編址的元素。如高級(jí)語(yǔ)言中的過(guò)程、函數(shù)、子程序等。③信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過(guò)程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊來(lái)說(shuō)是不能訪問(wèn)的。④模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。因此,本題的正確答案是C。

50.A解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。

51.C解析:宏替換實(shí)質(zhì)上就是字符替代,它不可能進(jìn)行計(jì)算,故C錯(cuò)誤。帶參數(shù)的宏與函數(shù)相比,宏在程序編譯之前已經(jīng)將代碼替換到程序內(nèi),執(zhí)行時(shí)不會(huì)產(chǎn)生類似于函數(shù)調(diào)用的問(wèn)題,可以說(shuō)不占用運(yùn)行時(shí)間。

52.B本題考查的是指向函數(shù)的指針。語(yǔ)句“int(*f)(int);”是對(duì)一個(gè)函數(shù)的聲明,其中f是指向該函數(shù)的指針,該函數(shù)有一個(gè)整型的參數(shù),函數(shù)返回值類型為整型。故答案選B)。

53.D解析:假設(shè)線性表的長(zhǎng)度為n,則在最壞情況下,冒泡排序要經(jīng)過(guò)n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。

54.C解析:C語(yǔ)言中,如果對(duì)定義的變量沒(méi)有賦初值,那么在后面使用時(shí),變量的值是不確定的。所以,本程序中,沒(méi)有對(duì)sum賦初值,它的值不確定。在執(zhí)行了for循環(huán)語(yǔ)句后,sum的值也不確定的,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

55.D解析:p為指針數(shù)組,其元素分別為指向數(shù)組a的4個(gè)元素的指針。q為指向指針的指針變量,其初值為指針數(shù)組p的首地址。所以:表達(dá)式*(p[0]+1)+**(q+2)=*(a+3+1)+**(p+2)即是*(a+4)+*(a+1)=a[5]+a[2]=1+4=5。

56.D解析:根據(jù)結(jié)構(gòu)變量的存儲(chǔ)特點(diǎn),p+1意味著增加地址值為結(jié)構(gòu)體數(shù)組a的一個(gè)元素所占的字節(jié)數(shù),即p++使p由a[0]指向a[1]起始地址。本題++p->n得到p指向的結(jié)構(gòu)體變量中成員n的值使之加1。因?yàn)閜指向數(shù)組a起始地址,p->n的值為5,再掏打自加1運(yùn)行,結(jié)果為6。

57.A解析:本題綜合考查C語(yǔ)言的概念部分,關(guān)于C語(yǔ)言,我們應(yīng)該了解以下必須要掌握的基礎(chǔ)知識(shí):

①C程序是由函數(shù)構(gòu)成的。

②一個(gè)函數(shù)由兩部分組成:函數(shù)的首部和函數(shù)體。

③一個(gè)C程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)的整個(gè)程序中的位置如何(main函數(shù)可以放在程序最開始,也可以放在程序最后,或?qū)懺谝恍┖瘮?shù)之前,在另一些函數(shù)之后)。

④C程序在書寫上,表現(xiàn)形式比較自由,一行內(nèi)可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以分寫在幾行上。每個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào)。

⑤C程序本身沒(méi)有輸入輸出語(yǔ)句。輸入和輸出的操作是由庫(kù)函數(shù)scanf和printf等函數(shù)來(lái)完成。

⑥可以用/*……*/對(duì)C語(yǔ)言的程序的任何部分作注釋。

58.C解析:本題考查文件包含的知識(shí)點(diǎn):格式1:#include(文件名),預(yù)處理程序在標(biāo)準(zhǔn)目錄下查找指定的文件;格式2:#include“文件名”,預(yù)處理程序首先在引用被包含文件的源文件所在的目錄中尋找指定的文件,如查找不到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄查找。

59.C解析:while語(yǔ)句的一般形式為:while(表達(dá)式)語(yǔ)句;其中表達(dá)式是循環(huán)條件,語(yǔ)句為循環(huán)體,while語(yǔ)句的語(yǔ)義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí),執(zhí)行循環(huán)體語(yǔ)句。本題中邏輯與符號(hào)連接的表達(dá)式值為真,*str2++=*strl++語(yǔ)句是將strl的內(nèi)容逐個(gè)復(fù)制到str2字符串。

60.A解析:本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語(yǔ)言不允許用賦值表達(dá)式對(duì)字符數(shù)組賦值,如下面的語(yǔ)句就是非法的:strl=“China”,如果想把“China”這5個(gè)字符放到數(shù)組strl中,除了逐個(gè)地輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個(gè)字符串復(fù)制到一字符數(shù)組中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企圖用以下語(yǔ)句來(lái)實(shí)行賦值(將str2的值傳給strl):strl=str2;不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。

strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)

其中,需要注意的是,字符數(shù)組1的長(zhǎng)度不應(yīng)小于字符串2的長(zhǎng)度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(strl),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。

61.D解析:類(calss)描述的是具有相似屬性與操作的一組對(duì)象,而一個(gè)具體對(duì)象則是其對(duì)應(yīng)類的一個(gè)實(shí)例。

62.A

63.DC語(yǔ)言中操作一個(gè)字符串常量的方法有:①把字符串常量存放在一個(gè)字符數(shù)組中;②用字符指針指向字符串,然后通過(guò)字符指針來(lái)訪問(wèn)字符串存儲(chǔ)區(qū)域。當(dāng)字符串常量在表達(dá)式中出現(xiàn)時(shí),根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則,它被轉(zhuǎn)換成字符指針。本題D項(xiàng)中錯(cuò)誤的關(guān)鍵是對(duì)數(shù)組初始化時(shí),可以在變量定義時(shí)整體賦初值,但不能在賦值語(yǔ)句中整體賦值。

64.A

65.B

\n棧是線性表的一種,它的特點(diǎn)是先進(jìn)后出,并且只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,因此具有記憶作用,??梢圆捎庙樞虼鎯?chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)。

\n

66.B本題考查for循環(huán)的使用。對(duì)于第1個(gè)for循環(huán),任何一個(gè)i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時(shí)不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時(shí)退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語(yǔ)句執(zhí)行6次,第二條for語(yǔ)句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。

67.C本題主要考查格式輸入函數(shù)scanf。此函數(shù)一般的輸入形式是scanf(格式控制,地址表列);。函數(shù)“格式控制”的含義同printf函數(shù),以%開始,以一個(gè)格式字符結(jié)束,中間可以插入附加的字符。常用的格式字

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論