2021年四川省雅安市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第1頁
2021年四川省雅安市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第2頁
2021年四川省雅安市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第3頁
2021年四川省雅安市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第4頁
2021年四川省雅安市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021年四川省雅安市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳送的是______。

A.數(shù)組的長(zhǎng)度B.數(shù)組的首地址C.數(shù)組每一個(gè)元素的地址D.數(shù)組每個(gè)元素中的值

2.樹最適合用來表示()。

A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分層次關(guān)系的數(shù)據(jù)D.元素間無聯(lián)系的數(shù)據(jù)

3.如果對(duì)線性表的操作只有兩種,即刪除第一個(gè)元素,在最后一個(gè)元素的后面插入新元素,則最好使用()。

A.只有表頭指針沒有表尾指針的循環(huán)單鏈表B.只有表尾指針沒有表頭指針的循環(huán)單鏈表C.非循環(huán)雙鏈表D.循環(huán)雙鏈表

4.設(shè)無向圖G中有n個(gè)頂點(diǎn)e條邊,則其對(duì)應(yīng)的鄰接表中的表頭結(jié)點(diǎn)和邊表接點(diǎn)的個(gè)數(shù)分別為()。

A.n,eB.e,nC.2n,eD.n,2e

5.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

6.

7.

8.對(duì)于哈希函數(shù)H(key)=key%13,被稱為同義詞的關(guān)鍵字是_______

A.35和41B.23和39C.15和44D.25和51

9.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}執(zhí)行程序時(shí),給變量X輸入10,程序的輸出結(jié)果是()。A.55B.54C.65D.45

10.下列不屬于軟件工程的3個(gè)要素的是

A.工具B.過程C.方法D.環(huán)境

11.下列關(guān)于c語言用戶標(biāo)識(shí)符的敘述中正確的是()。

A.用戶標(biāo)識(shí)符中可以出現(xiàn)下劃線和中劃線(減號(hào))

B.用戶標(biāo)識(shí)符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線

C.用戶標(biāo)識(shí)符中可以出現(xiàn)下劃線,但不可以放在用戶標(biāo)識(shí)符的開頭

D.用戶標(biāo)識(shí)符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在用戶標(biāo)識(shí)符的開頭

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

A.改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值

B.函數(shù)可以返回地址值

C.可以給指針變量賦一個(gè)整數(shù)作為地址值

D.當(dāng)在程序的開頭包含文件stdi0.h時(shí),可以給指針變量賦NULL

13.下列定義數(shù)組的語句中錯(cuò)誤的是()。

A.intnum[][3]={{1,2},3,4,5,6};

B.intnum[2][4]={{1,2},{3,4},{5,6}};

C.intnum[]={1,2,3,4,5,6};

D.intnum[][4]={1,2,3,4,5,6};

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.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運(yùn)行后的輸出結(jié)果是()。

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

16.

17.設(shè)有以下定義則下面語句中錯(cuò)誤的是()。A.a++;B.b++C.c++;D.d++;

18.公司中有多個(gè)部門和多名職員,每個(gè)職員只能屬于一個(gè)部門,一個(gè)部門可以有多名職員。則實(shí)體部門和職員間的聯(lián)系是()。

A.1:m聯(lián)系B.m:n聯(lián)系C.1:1聯(lián)系D.m:1聯(lián)系

19.對(duì)兩個(gè)數(shù)組a和b進(jìn)行下列初始化:charm[]1="l234567":charn[]={1,2,3,4,5,6,7);則下列敘述正確的是()。A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長(zhǎng)度相同C.數(shù)組m比數(shù)組n長(zhǎng)1D.數(shù)組m與數(shù)組n中都存放字符串

20.下列選項(xiàng)中,不屬于數(shù)據(jù)管理員(DBA.職責(zé)的是()。

A.數(shù)據(jù)庫維護(hù)B.數(shù)據(jù)庫設(shè)計(jì)C.改善系統(tǒng)性能,提高系統(tǒng)效率D.數(shù)據(jù)類型轉(zhuǎn)換

二、2.填空題(20題)21.在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化程序設(shè)計(jì)方法。詳細(xì)設(shè)計(jì)階段所采用的是【】方法。

22.函數(shù)調(diào)用語句:“fsets(buf,n,fp);”從fp指向的文件中讀入n個(gè)字符放到buf字符數(shù)組中,函數(shù)返回值為______。

23.以下程序的輸出結(jié)果是()。#include<stdio.h>voidswap(int*a,int*B){int*t;t=a;a=b;b=c;}main(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf("%d%d\n",*p,*q);}

24.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個(gè)數(shù)中,找出最大的和最小的數(shù)據(jù),請(qǐng)?zhí)羁铡?/p>

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

25.實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少和算法的工作量大小分別稱為算法的【】。

26.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)。

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

inti=9;

printf("%o\n",i);

28.以下程序運(yùn)行后的輸出結(jié)果是______。

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

for(i=0;i<3;i++)printf("%d%d",i,fun(a));

printf("\n");

}

29.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請(qǐng)寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

30.下面程序有兩個(gè)printf語句,如果第一個(gè)printf語句輸出的是194,則第二個(gè)printf語句的輸出結(jié)果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

printf("%x\n,p+9);

}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

32.若有以下程序:

main()

{inta=4,b=3,c=5,t=0;

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

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

}

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

33.表示條件;10<x<100或x<0的C語言表達(dá)式是【】。

34.fun1函數(shù)的功能是將3個(gè)整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c3個(gè)變量中,a中放最大數(shù),fun2函數(shù)的功能是交換兩個(gè)變量中的值。補(bǔ)足所缺語句。

fun2(int*x,int*y)

{intt;

t=*x;*x=*y;*y=t;

}

fun1(int*p1,int*p2,int*p3)

{if(*p3>*p2)fun2(*P2,*p3);

if(*p1<*p3)fun2(______);

if(*p1<*p2)fun2(______);

}

main()

{inta,b,c;

scanf("%d%d%d",&a,&b,&c);

fun1(&a,&b,&c);

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

}

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

main()

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

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

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

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

}

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.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下:

1

11

121

1331

14641

其構(gòu)成規(guī)律是:

①第0列元素和主對(duì)角線元素均為1。

②其余元素為其左上方和正上方元素之和。

③數(shù)據(jù)的個(gè)數(shù)每行遞增1。

請(qǐng)將程序補(bǔ)充完整。

#defineN6

voidyanghui(intx[N][N])

{inti,j;

x[O][0]=1;

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

{x[i][0]=【】=1;

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

x[i][j]=【】;

}

)

38.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

40.以下fun函數(shù)的功能是:累加數(shù)組元素中的值。n為數(shù)組中元素的個(gè)數(shù)。累加的和放入x所指的存儲(chǔ)單元中。

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0;k<n;k++)r=【】;

【】=r;

}

三、1.選擇題(20題)41.設(shè)intb=2;,則表達(dá)式(b<<2)/(b>>1)的值是______。

A.0B.2C.4D.8

42.有以下程序:#include<stdio.h>main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%~",*p++);}程序運(yùn)行后的輸出結(jié)果是()。

A.15B.16C.12D.59

43.若有以下的說明,對(duì)初值中整數(shù)2的正確引用方式是()。staticstruct{charch;inti;doublex;}a[2][3]={{{'a',1,3,45},{'b',2,7,98},{'c',31,93}}};

A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i

44.有以下程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;執(zhí)行該程序段后,k的值是______。A.3B.2C.1D.0

45.請(qǐng)讀程序:#include<stdio.h>f(intb[],intn){inti,r;r=l;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intxa[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的輸出結(jié)果是()

A.720B.120C.24D.6

46.函數(shù)ftell(fp)的作用是()。

A.得到fp所指向文件的當(dāng)前讀寫位置B.初始化流式文件的位置指針C.移動(dòng)流式文件的位置指針D.以上答案均正確

47.下列數(shù)據(jù)中,不合法的C語言實(shí)型數(shù)據(jù)是

A.0.123B.123e3C.2.1e3.5D.789.0

48.若有定義int*p[3];,則以下敘述中正確的是______。

A.定義了一個(gè)基類型為int的指針變量p,該變量有三個(gè)指針

B.定義了一個(gè)指針數(shù)組p,該數(shù)組含有三個(gè)元素,每個(gè)元素都是基類型為int的指針

C.定義了一個(gè)名為*p的整型數(shù)組,該數(shù)組含有三個(gè)int類型元素

D.定義了一個(gè)可指向二維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個(gè)int類型元素

49.下面程序段中,輸出*的個(gè)數(shù)是char*s="\ta\018bc";for(;*s!='\0';s++)printf("*");

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

50.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。

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

51.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向一個(gè)鏈表中的三個(gè)連續(xù)結(jié)點(diǎn)。structnode{intdata;tractnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指結(jié)點(diǎn)的先后位置交換,同時(shí)要保持鏈表的連續(xù),以下錯(cuò)誤的程序段是

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

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

C.p->next=r;q->next=r->next;r->next=q;

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

52.以下能正確定義一維數(shù)組的選項(xiàng)是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

53.下列能正確定義且賦初值的語句是()。

A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

54.設(shè)x=011050,則x=x&01252的值是()。

A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

55.設(shè)有以下語句:charstr1[]="string"mstr2[8],*str3,*str4=="string";則______不是對(duì)庫函數(shù)的正確調(diào)用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

56.若變量已正確定義并賦值,以下符合C++語言語法的表達(dá)式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

57.有以下程序:main(){intk=5,n=0;while(k>0);{switch(k){default;break;case1:n+=k;case2;case3:n+=k;}k--;}printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是______。

A.0B.4C.6D.7

58.若以"a+"方式打開一個(gè)已存在的文件,則下列敘述正確的是()。

A.文件打開時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進(jìn)行添加或讀操作

B.文件打開時(shí),原有文件內(nèi)容不被刪除,只能進(jìn)行讀操作

C.文件打開時(shí),原有文件內(nèi)容被刪除,只能進(jìn)行寫操作

D.以上三種說法都不正確

59.有以下程序:voidf(intb[]){inti;for(i=2;i<6;i++)b[i]*=2;}main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;f(A);for(i=0;i<10;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.1,2,6,8,10,12,7,8,9,10,

C.1,2,3,4,10,12,14,16,9,10,

D.1,2,6,8,10,12,14,16,9,10,

60.下列程序執(zhí)行后輸出的結(jié)果是______。intd=1;fun(intp){intd=5;d+=p++;printf("%d,",D);}main(){inta=3;fun(A);d+=a++;printf("%d\n",D);}

A.8,12B.9,13C.8,4D.9,5

四、選擇題(20題)61.

62.表示關(guān)系M<=N<=P的C語言表達(dá)式為()。

A.(M<=N.AND(N<=P.

B.(M<=N.&&(N<=P.

C.(M<=N<=P.

D.(M<=N.&(N<=P.

63.

64.下面各選項(xiàng)中,均是C語言合法標(biāo)識(shí)符的選項(xiàng)組是()。

A.

B.

C.

D.

65.

66.設(shè)有定義:“char*c;”,以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的()。

A.charstr[]="string";c=str;

B.scanf(%s,c):

C.c=getchar();

D.*c="strin9";

67.軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。

A.編譯程序B.操作系統(tǒng)C.教務(wù)管理系統(tǒng)D.匯編程序

68.有以下程序

#include<stdio.h>

#include<stdlib.h>

intfun(intt)

{int*p;

p=(int*)malloc(sizeof(int));

*p=t;return*p;

}

main()

{inta;

a=fun(8);

printf("%d\n",a+fun(10));

}

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

A.0B.10

C.18D.出錯(cuò)

69.

70.在下列選項(xiàng)中,沒有構(gòu)成死循環(huán)的是

71.if語句基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。

A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值

72.下列數(shù)據(jù)結(jié)構(gòu)中屬于非線性結(jié)構(gòu)的是()。

A.隊(duì)列

B.線性表

C.二叉樹

D.棧

73.在面向?qū)ο蠓椒ㄖ校粚儆凇皩?duì)象’’基本特點(diǎn)的是()。A.一致性B.分類性C.多態(tài)性D.標(biāo)識(shí)唯一性

74.有如下程序段

structabc

{inta,b,c,s;};

main()

{structabcs[2]={{1,2,3},{4,5,6}};intt;

t=s[0].a+s[1].b;

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

}

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

A.5B.6

C.7D.8

75.下列敘述中正確的是()。A.在c程序的函數(shù)中不能定義另一個(gè)函數(shù)

B.在c程序中main函數(shù)的位置是固定的

C.C程序中所有函數(shù)之間都可以相互調(diào)用

D.每個(gè)C程序文件中都必須要有一個(gè)main函數(shù)

76.

77.若有定義:char*st=”howareyou”;,下列程序段中正確的是()。

A.

B.

C.

D.

78.有以下程序:

當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第l列開始,<;CR>;代表回車,注意:回車也是一個(gè)字符]12<;CR>;34<;CR>;則輸出結(jié)果是()。

A.12B.123C.1234D.12343

79.

80.

五、程序改錯(cuò)題(1題)81.已知一個(gè)數(shù)列從0項(xiàng)開始的前3項(xiàng)為0,0,1,以后的各項(xiàng)都是其相鄰的前3項(xiàng)之和。下列給定的程序中,函數(shù)proc的功能是:計(jì)算并輸出該數(shù)列前n項(xiàng)的和sum。n的值通過形參傳人。例如,當(dāng)n=20時(shí),程序的輸出結(jié)果應(yīng)為42762.000000。

請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。

注意:不要改動(dòng)maiil函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

doubleproc(intn)

{

doublesum,s0,s1,s2,s;

intk;

sum=1.0;

if(n<=2)

sum=0.0;

s0=0.0;

s1=0.0;

s2=1.0;

//****found****

for(k=4;k<n;k++)

}

{

s=s0+s1+s2;

sum+=S:

s0=s1;

s1=s2;

//****found****

s2=s;

returnsum;

}

voidmain

{

intn;

system("CLS");

printf("InputN=");

scanf("%d",&nJ;

printf("%f\n",proc(n));

}

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)fun,其功能是:找出一維整型數(shù)組元素中最大的值所在的下標(biāo),并通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。

主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值。index存放最大值所在元素的下標(biāo)。

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

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

試題程序:

參考答案

1.B解析:當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳送的是數(shù)組的首地址,函數(shù)中的形參可定義成以下三種形式:

①形參定義成數(shù)組;

②形參定義成可變長(zhǎng)數(shù)組:

③形參定義為指針變量。

2.C

3.B

4.A

5.AB選項(xiàng)中運(yùn)算符“%”的運(yùn)算對(duì)象為整數(shù)。C選項(xiàng)中不能將變量賦給表達(dá)式“x+n”。D選項(xiàng)中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項(xiàng)。

6.B

7.D

8.D

9.A函數(shù)intfun(intn)的功能是求1+2+…+n的值并返回。所以執(zhí)行程序時(shí),給變量x輸入10后,執(zhí)行語句“x=fun(x);”,X的值將變?yōu)?到10中10個(gè)整數(shù)的累加和,即55。

10.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制和管理。

11.B解析:在C語言中,合法的標(biāo)識(shí)符由字母,數(shù)字和下劃線組成(故選項(xiàng)A不正確),并且第一個(gè)字符必須為字母或者下劃線(故選項(xiàng)B和選項(xiàng)D不正確).所以,B選項(xiàng)為所選.

12.C指針變量的值只能是存儲(chǔ)單元地址,而不能是一個(gè)整數(shù),故選項(xiàng)C錯(cuò)誤。

13.BB選項(xiàng)中定義的數(shù)組為2行4列,而賦值時(shí)卻賦成了3行,所以錯(cuò)誤。故本題答案為B選項(xiàng)。

14.A本題考查的是數(shù)組和函數(shù)。sum()函數(shù)接收一個(gè)int型數(shù)組作參數(shù),也可以把它看作是一個(gè)int型指針,語句a[0]=a[*1)+a(比的意思就是將參數(shù)指針指向內(nèi)容的前一個(gè)元素和后一個(gè)元素的值相加放到指針?biāo)傅奈恢茫虼耍骱瘮?shù)中調(diào)用sum(&a[2]);的意思就是讓a[2]=a[1]+a[3];,所以最后輸出的結(jié)果是6。應(yīng)該選擇A。

15.AC語言中的轉(zhuǎn)義字符也是一個(gè)字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個(gè)字符。strlen遇到‘\\0’字符計(jì)數(shù)結(jié)束,因此計(jì)數(shù)為3。故本題答案為A選項(xiàng)。

16.C

17.D

18.A部門到職員是一對(duì)多的,職員到部門是多對(duì)一的,因此,實(shí)體部門和職員間的聯(lián)系是l:m聯(lián)系。

19.C在m數(shù)組中賦值的是字符串,其長(zhǎng)度為7,末尾有結(jié)束符\0,故字節(jié)數(shù)為8,而n數(shù)組中賦的是字符,其長(zhǎng)度為7,故C選項(xiàng)正確。

20.DD)【解析】數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是指對(duì)數(shù)據(jù)庫的規(guī)劃、設(shè)計(jì)、維護(hù)、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫設(shè)計(jì)。DBA的主要任務(wù)之一是數(shù)據(jù)庫設(shè)計(jì),具體地說是進(jìn)行數(shù)據(jù)模式的設(shè)計(jì);數(shù)據(jù)庫維護(hù)。DBA必須對(duì)數(shù)據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲(chǔ)等進(jìn)行實(shí)施與維護(hù);改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時(shí)監(jiān)視數(shù)據(jù)庫的運(yùn)行狀態(tài),不斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。

21.結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)解析:在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化程序設(shè)計(jì)方法。詳細(xì)設(shè)計(jì)階段所采用的是結(jié)構(gòu)化設(shè)計(jì)方法。

22.buf的首地址buf的首地址解析:考查fgets()函數(shù)的功能,fgets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:fgets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個(gè)int型變量。調(diào)用函數(shù)fgets()時(shí),最多能讀入n-1個(gè)字符,系統(tǒng)自動(dòng)在最后加字符串結(jié)束標(biāo)志,并以buf作為函數(shù)值返回。

23.3535解析:本題考查函數(shù)中形參和實(shí)參的傳遞。在C語言函數(shù)中實(shí)參和形參傳遞具有不可逆性,參數(shù)只能由實(shí)參傳向形參,而不能由形參傳向?qū)崊?,雖然swap函數(shù)的功能是實(shí)現(xiàn)兩個(gè)數(shù)的交換,但由于沒有返回值,故最終的輸出結(jié)果為35。

24.q<p+nq<p+n解析:考查對(duì)于函數(shù)的地址傳遞的掌握情況。通過地址傳遞可以在被調(diào)函數(shù)中對(duì)調(diào)用函數(shù)中的變量進(jìn)行引用。

25.空間復(fù)雜度和時(shí)間復(fù)雜度算法的復(fù)雜性是指對(duì)一個(gè)在有限步驟內(nèi)終止算法和所需存儲(chǔ)空間大小的估計(jì)。算法所需存儲(chǔ)空間大小是算法的空間復(fù)雜性,算法的計(jì)算量是算法的時(shí)間復(fù)雜性。

26.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識(shí)符(*旨針變量名)()。注:“類型標(biāo)識(shí)符”為函數(shù)返回值的類型。

27.1111解析:本題考核的知識(shí)點(diǎn)是printf()函數(shù)的輸出格式。本題中定義了一個(gè)整型變量i并賦初值為9,然后要求以八進(jìn)制輸出i的值,9的八進(jìn)制數(shù)的表示為11。

28.010111212010111212解析:本題考查的是靜態(tài)局部變量的運(yùn)用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長(zhǎng)到程序運(yùn)行結(jié)束。本題的主函數(shù)中使用一個(gè)for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒被修改過,所以三次調(diào)用的都是fun(5)。第1次調(diào)用,b=0,c=3,所以返回值為5+1+4=10;第2次調(diào)用,因?yàn)閏是靜態(tài)局部變量,它仍然保存著上次調(diào)用結(jié)束時(shí)的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調(diào)用返回的是12。所以,程序最終輸出為:010111212。

29.

30.1a61a6解析:對(duì)于指針變量的運(yùn)算,就是對(duì)地址的運(yùn)算。本題中由于指針指向的是整型變量,所以,使指針變量移動(dòng)9個(gè)位置也就是移動(dòng)18個(gè)字節(jié)。注意,本題是以十六進(jìn)制輸出的。

31.3535解析:考查swap()函數(shù)。函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。

32.503503解析:本題考查的是C語言中if語句的語句體。第一個(gè)if語句的語句體為t=a,第二個(gè)if語句的語句體為t=a。執(zhí)行第一個(gè)if語句時(shí),條件a<b不成立,所以不執(zhí)行t=a,直接執(zhí)行語句a=b和b=t得a=3、b=0,然后判斷第二個(gè)if語句的條件a<c是否成立,即判斷3<5是否成立,顯然條件成立,執(zhí)行語句t=a得t=3,接著執(zhí)行a=c;c=t得a=5、c=3,所以a=5、c=3、b=0。

33.(x>10&&x<100)||x<0

34.*p1*p3*p1*p2。*p1,*p3*p1,*p2。解析:本題考查的知識(shí)點(diǎn)有3個(gè),①指針變量作為形參,②函數(shù)的嵌套調(diào)用,③排序的基本方法。

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

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.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對(duì)角線上的元素賦值為1顯然在第一個(gè)空中應(yīng)該填入對(duì)角線上的元素即x[i][i],在第2重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對(duì)角線的元素外其他元素為其對(duì)應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個(gè)空中應(yīng)該填入x[i-1][j-1]+x[i-1][j]。

38.2525解析:#NAME?

39.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運(yùn)算方法。指針變量p首先指向字符串中的第一個(gè)字符A,執(zhí)行p=s+1后,p指向字符串中的第二個(gè)字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。

40.r+b[k]或*(b+k)+r*xr+b[k]或*(b+k)+r\r\n*x解析:r是累加的和,k是數(shù)組b的下標(biāo),因此有r=r+b[k];由于x是傳地址調(diào)用,*x是其指向存儲(chǔ)單元的內(nèi)容,要把累加的和放入x所指的單元,因此有*x=r。

41.D

42.A解析:語句p=s將指針變量p指向字符數(shù)組s,第一次輸出時(shí),由于++和*為同一優(yōu)先級(jí),而結(jié)合方向?yàn)樽杂蚁蜃?,所以?p++相于*(p++)。但又因?yàn)椤?+”在p的右側(cè),所以,先輸出*p,得到s[0]的值,然后P++,P指向s[1],故第二次輸出時(shí),輸出s[1]的值,所以輸出結(jié)果為15。

43.B解析:結(jié)構(gòu)體數(shù)組中對(duì)結(jié)構(gòu)體成員的引用要先引用到數(shù)組元素,然后像對(duì)待普通的結(jié)構(gòu)體變量一樣來對(duì)待結(jié)構(gòu)體數(shù)組元素就可以了。注意:引用結(jié)構(gòu)體變量中的數(shù)據(jù)。

44.B解析:本題考查的知識(shí)點(diǎn)是條件表達(dá)式.條件運(yùn)算符?:是C語言中唯一的三目運(yùn)算符,它的規(guī)則是先計(jì)算左邊運(yùn)算分量,如果為“真”(非0),則返回中間運(yùn)算分量的值,否則返回右邊運(yùn)算分量的值。本題中因?yàn)閍<b為“真”,所以第1個(gè)條件表達(dá)式的值為b的值2,所以k=2。然后又因?yàn)閗>c為“假’,所以第2個(gè)表達(dá)式的值為k的值2。所以本題應(yīng)該選擇B。

45.B

46.A解析:位置指針當(dāng)前值函數(shù)ftell()的基本調(diào)用格式為:ftell(fp)。

ftell()函數(shù)的參數(shù)說明:“fp”是指向文件的文件型指針。

ftell函數(shù)的功能:得到fp所指向文件的當(dāng)前讀寫位置,即位置指針的當(dāng)前值,如果函數(shù)的返回值為-1L,表示出錯(cuò)。

47.C解析:在C語言中,實(shí)數(shù)有兩種形式表示,即十進(jìn)制數(shù)形式和指數(shù)形式,在指數(shù)形式中,e3、2.le3.5、.e3、e等都是不合法的指數(shù)形式。再如123e3或123E3都代表123乘以10的3次方。注意,字母e的前面必須有數(shù)字,且e的后面必須是整數(shù)。

48.B解析:由于運(yùn)算符[]優(yōu)先級(jí)比*高,int*p[3];相當(dāng)于int*(p[3]);,表示數(shù)組p的三個(gè)元素都是指針變量,且每個(gè)元素都是基類型為int的指針。

49.C解析:本題中,格式符。表示的是八進(jìn)制無符號(hào)形式輸出整型數(shù)(不帶前導(dǎo)0),字符常量在內(nèi)存中占一個(gè)字節(jié),存放的是ACSII碼代碼值。C語言規(guī)定,所有字符常量都作為整型量來處理,在計(jì)算機(jī)內(nèi)部,其對(duì)應(yīng)的整數(shù)值就是ACSII字符集中該字符的序號(hào),即&*s中有幾個(gè)字符就輸出幾個(gè)*。

50.B

51.A解析:題目中要求將q和r所指結(jié)點(diǎn)的先后位置交換,即要求p所指結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)。選項(xiàng)A首先讓r所指向的指針的指針域指向q所指向的結(jié)點(diǎn),這樣就將r所指向的結(jié)點(diǎn)的指針域指向的結(jié)點(diǎn)丟失了。選項(xiàng)B首先q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),然后,讓p所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),最后讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),滿足要求。選項(xiàng)C首先讓p所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),然后讓q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),最后讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),滿足要求。選項(xiàng)D首先讓q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),然后,讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),最后讓P所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),滿足要求。

52.B解析:選項(xiàng)A定義數(shù)組時(shí)省略了長(zhǎng)度,而C語言中規(guī)定,只有在定義并同時(shí)進(jìn)行初始化時(shí),數(shù)組的長(zhǎng)度才可以省略,數(shù)組的長(zhǎng)度為初始化時(shí)候的成員個(gè)數(shù),故選項(xiàng)A錯(cuò)誤;在C語言中規(guī)定,數(shù)組的長(zhǎng)度必須是一個(gè)整數(shù)或整型常量表達(dá)式,故選項(xiàng)C不正確:定義時(shí)數(shù)組的長(zhǎng)度不能使用變量表示,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

53.B解析:C語言規(guī)定,可以在定義變量的同時(shí)給變量賦初值,稱為變量初始化。在選項(xiàng)A)中在給n1和n2進(jìn)行賦初值,但變量02沒有定義;在選項(xiàng)C)中定義變量f時(shí),不能在賦值表達(dá)式的右邊出現(xiàn)變量f自身,所以選項(xiàng)C)錯(cuò)誤:在選項(xiàng)D)用指數(shù)表達(dá)式的常量中,字母E后面的數(shù)應(yīng)該為整數(shù),而不應(yīng)該為小數(shù)形式。因此,選項(xiàng)B)正確。

54.A解析:本題主要考查按位與運(yùn)算,x=011050的二進(jìn)制形式為0001001000101000,01252的二進(jìn)制形式為0000001010101010,兩者相與得00000010001010000。

55.C解析:C語言中:strcpy(st1,st2);,其兩個(gè)參數(shù)均為字符指針或字符數(shù)組,選項(xiàng)C中的目的串指針str3沒有指向具體有效的存儲(chǔ)單元,故是錯(cuò)誤的調(diào)用。

56.B解析:a=b=c+2實(shí)際上相當(dāng)于a=(b=c+2),進(jìn)而可分解為兩個(gè)表達(dá)式:b=c+2和a=b。注意:選項(xiàng)A)中包含一個(gè)不合法的運(yùn)算符“:=”;選項(xiàng)C)應(yīng)改為(int)18.5%3;選項(xiàng)D)可理解為兩個(gè)表達(dá)式:a+7=c+b和a=a+7,其中第一個(gè)是錯(cuò)的,因?yàn)镃++語言規(guī)定賦值號(hào)的左邊只能是單個(gè)變量,不能是表達(dá)式或常量等。注意:C++語言賦值語句的運(yùn)用,

57.D解析:在switch語句中,若case語句后沒有break語句,則執(zhí)行完本層case后會(huì)繼續(xù)執(zhí)行后面case中的操作。k的初值為5,while條件成立,進(jìn)入switch(5),執(zhí)行default語句,退出switch,執(zhí)行k--后得4,再進(jìn)入while循環(huán),執(zhí)行switch(4),退出switch,再執(zhí)行k--后得3,繼續(xù)while循環(huán),執(zhí)行switch(3),n=n+k=3,再執(zhí)行k--后得2,進(jìn)入while循環(huán),執(zhí)行case2,再執(zhí)行n=n+k=5,然后執(zhí)行k--后得1,最后一次進(jìn)入while循環(huán),執(zhí)行case1,n=n+k=6,然后繼續(xù)執(zhí)行case2和case3后的語句,n=n+k=7,且執(zhí)行k--后得0,此時(shí)while條件不滿足,退出循環(huán),輸出n的值為7。

58.A解析:本題考查文件使用方式標(biāo)識(shí)符,以“a+”方式打開一個(gè)己存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時(shí),可以進(jìn)行追加或讀操作。

59.B解析:本題在調(diào)用函數(shù)時(shí),實(shí)參是數(shù)組名也是把數(shù)組a的首地址傳遞給形參,由條件i=2且i<6得出函數(shù)將列以a[2]開始的4個(gè)元素(3、4、5、6)進(jìn)行乘2操作,結(jié)果分別是a[2]=6、a[3]=8、a[4]=10、a[5]=12。a[0]、a[1]、a[6]、a[7]、a[8]、a[9]的值沒有發(fā)生變化。

60.C解析:本題執(zhí)行過程如下:首先調(diào)用fun函數(shù),使得實(shí)參a的值3傳遞給形參p,得到局部變量d=8,打印出局部變量d的值8;返回主函數(shù)執(zhí)行“d+=a++”,此處d為全局變量,所以d=1+3+4(由于本題是值傳遞,所以在函數(shù)run中對(duì)p值的改變并不能引起a的改變),故本題材的輸出是8,4。

61.C

62.BM<=N和N<=P是邏輯與的關(guān)系,應(yīng)使用運(yùn)算符&&。

63.D

64.B合法的標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線,用戶定義的標(biāo)識(shí)符不能與關(guān)鍵字相同。選項(xiàng)A),數(shù)字不能為第一個(gè)字母,auto為關(guān)鍵字;選項(xiàng)c)中,也是數(shù)字不能為第一個(gè)字母,else為關(guān)鍵字;選項(xiàng)D)中負(fù)號(hào)不合法。

65.D

66.A選項(xiàng)B是從鍵盤上輸入字符串,選項(xiàng)C是接收字符,選項(xiàng)D不正確。

67.C解析:軟件按功能可以分為:應(yīng)用軟件,系統(tǒng)軟件、支撐軟件(或工具軟件)。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而開發(fā)的軟件。例如,事務(wù)處理軟件、工程與科學(xué)計(jì)算軟件,實(shí)時(shí)處理軟件,嵌入式軟件,人工智能軟件等應(yīng)用性質(zhì)不同的軟件。因此選項(xiàng)C教務(wù)管理系統(tǒng)屬于應(yīng)用軟件。系統(tǒng)軟件是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用戶提供各種服務(wù)的軟件。如操作系統(tǒng),編譯程序,匯編程序,網(wǎng)絡(luò)軟件,數(shù)據(jù)庫管理系統(tǒng)等。因此選項(xiàng)A、B、D都屬于系統(tǒng)軟件。

68.C本題考查函數(shù)的調(diào)用。題目給出的程序可以分為兩個(gè)部分,一個(gè)是函數(shù)fun,另一個(gè)是主函數(shù)ma

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論