2021年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第1頁
2021年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第2頁
2021年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第3頁
2021年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第4頁
2021年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.帶有頭節(jié)點(diǎn)的單向鏈表head,其3個(gè)數(shù)據(jù)節(jié)點(diǎn)A、B、C的連接關(guān)系如下圖所示:節(jié)點(diǎn)類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點(diǎn),在不改變P指向的前提下,以下選項(xiàng)中不能訪問C節(jié)點(diǎn)數(shù)據(jù)成員dt的表達(dá)式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

3.需求分析的主要任務(wù)是()。

A.確定軟件系統(tǒng)的功能B.確定軟件開發(fā)方法C.確定軟件開發(fā)工具D.確定軟件開發(fā)入員

4.下列關(guān)于數(shù)據(jù)庫設(shè)計(jì)的敘述中,正確的是()。

A.在需求分析階段建立數(shù)據(jù)字典

B.在概念設(shè)計(jì)階段建立數(shù)據(jù)字典

C.在邏輯設(shè)計(jì)階段建立數(shù)據(jù)字典

D.在物理設(shè)計(jì)階段建立數(shù)據(jù)字典

5.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.17,17,49,49B.17,29,49,49C.29,29,49,49D.49,49,49,49

6.下列不正確的轉(zhuǎn)義字符是()。

A.'\\'B.'\t'C.'\n\D.'088'

7.向一個(gè)棧頂指針為HS的鏈?zhǔn)綏V胁迦胍粋€(gè)s所指的結(jié)點(diǎn)時(shí),則執(zhí)行()。

A.HS->next=s

B.S->next=HS->nextHS->next=s

C.s->next=HSHS=s

D.S->next=HSHS=HS->next

8.如果定義“班級(jí)”關(guān)系如下:班級(jí)(班級(jí)號(hào),總?cè)霐?shù),所屬學(xué)院,班級(jí)學(xué)生)則使它不滿足第一范式的屬性是()。

A.班級(jí)號(hào)B.班級(jí)學(xué)生C.總?cè)霐?shù)D.所屬學(xué)院

9.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf(“*”);該程序段的輸出結(jié)果是()。

A.*B.****C.**D.********

10.設(shè)有序順序表中有n個(gè)數(shù)據(jù)元素,則利用二分查找法查找數(shù)據(jù)元素X的最多比較次數(shù)不超過()。A.log2+1

B.log2(n-1)

C.log2n

D.log2(n+1)

11.定義如下變量和數(shù)組:inti;intx[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};則下面語句的輸出結(jié)果是()。A.15913B.161116C.471013D.481216

12.設(shè)有定義inta=2,b=3,c=4;,則以下選項(xiàng)中值為0的表達(dá)式是______。A.(!a==1&&(!b==0)

B.(a<b)&&!c||1

C.a&&b

D.a||(b+b)&&(c-a)

13.堆的形狀是一棵_______。

A.二叉排序樹B.滿二叉樹C.完全二叉樹D.平衡二叉樹

14.

15.

16.若有定義語句:“inta=3,b=2,c=1;”,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是()。

A.a=(b=4)=3;B.a=b=c+1:C.a=(b=4)+C;D.a=1+(b=c一4);

17.遞歸式的先序遍歷一個(gè)n節(jié)點(diǎn),深度為d的二叉樹,則需要??臻g的大小為()

A.O(logn)B.O(nlogn)C.O(n)D.O(d)

18.無向圖中一個(gè)頂點(diǎn)的度是指圖中與該頂點(diǎn)相鄰接的頂點(diǎn)數(shù)。若無向圖G中的頂點(diǎn)數(shù)為n,邊數(shù)為e,則所有頂點(diǎn)的度數(shù)之和為()

A.n*eB.n+eC.2nD.2e

19.命令“DIRA:*.*/W”的功能是()

A.寬行顯示A盤當(dāng)前目錄的所有文件

B.寬行顯示A盤所有目錄的所有文件

C.寬行顯示A盤的所有目錄

D.顯示A盤中的文件名,每滿一屏后停頓一下

20.已知一算術(shù)表達(dá)式的中綴表達(dá)式為a-(b+c/d)*e,其后綴形式為()

A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.abcd/+e*-

二、2.填空題(20題)21.以下程序運(yùn)行后的輸出結(jié)果是______。

structNODE

{inthum;structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

p=S;q=p->next;r=q->next;

sum+=q=>next->num;sum+=r->next->next->num;

22.已有定義如下:

structnode

{intdata;

structnode*next;

}*p;

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

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

23.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計(jì)算s,計(jì)算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請(qǐng)?zhí)羁铡?/p>

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;}

【】=s;}

24.下述函數(shù)用于統(tǒng)計(jì)一行字符中的單詞個(gè)數(shù),單詞之問用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

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

if【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

25.下面程序的運(yùn)行結(jié)果是【】。

#include<stdio.h>

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

else

if(n>=2)|m:fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

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

26.若有如下結(jié)構(gòu)體說明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請(qǐng)?zhí)羁?,以完成?duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。

【】t[20]

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

#definePOWER(x)((x)*(x))

main()

{inti=1;

primtf("%d,%d",POWER(i++),i);

}

28.以卜函數(shù)sstrcat()的功能是實(shí)現(xiàn)寧符串的連接,即將t所指字符串復(fù)制到s所指字符串的尾部。例如:s所指字符串為abcd,t所指字符申為efgh,函數(shù)調(diào)用后s所指字符串為abcdefgh。請(qǐng)?zhí)羁铡?/p>

#include<string.h>

voidsstrcat(char*s,char*t)

{intn;

n=strlen(s);

while(*(s+n)=){s++;t++;}

}

29.下列語句能循環(huán)______次。

ints=12;

while(s);

--s;

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

main()

{intarr[10],i,k=0;

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

arr[i]=i;

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

k+=arr[i]+i;

printf("%d\n"k);}

31.若有程序:

main()

{inti,j;

scanf('i=%d,j=%d";&i,&j);

printf("i=%d,j=%d\n",i,j);

}

要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入上【】。

32.實(shí)現(xiàn)程序可將磁盤中的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請(qǐng)補(bǔ)全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

{printf("parametererror!\n");exit(0);}

f1=fopen(argv[1],"r");

f2=fopen(argv[2],"w");

while(【】)fputc(fgetc(f1),f2);

fclose(f1);

fclose(f2);

}

33.以下說明語句中,【】是結(jié)構(gòu)體類型名。

typedefstruct

{intn;

charch[8];

}PER;

34.軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。

35.在關(guān)系數(shù)據(jù)庫中,將數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為______。

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

voidswap(int*a,int*B)

{

int*t;

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

}

main()

{

intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

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

}

37.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請(qǐng)?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號(hào)表達(dá)式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

38.下面的程序?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;}

39.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運(yùn)行時(shí)輸入:1234<回車>,程序的輸出結(jié)果是【】。

40.有以下程序:

intf(intn)

{if(n=1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

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

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

}

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

三、1.選擇題(20題)41.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}

A.64B.8C.56D.0

42.若有定義:inta[4][10];,則以下選項(xiàng)中對(duì)數(shù)組元素a[i][j]引用錯(cuò)誤的是______。(0<=i<4,0<=j<10)

A.*(&a[0][0]+10*i+j)B.*(a+i)+jC.*(*(a+i)+j)D.*(a[i]+j)

43.能正確表示邏輯關(guān)系""a≥10或a≤0"",的C語言表達(dá)式是_____。

A.a>=10ora<=0

B.a>=0|a<=10

C.a>=10&&a<=0

D.a>=10||a<=10

44.以下程序的輸出結(jié)果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}

A.650B.1470C.5430D.輸出值不定

45.有以下說明和定義語句structstudent{intage;charnum{8};};structstudentstu[3]={{20,“200401”},{21,“200402”),{19,“200403”}};structstudent*p=stu;以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯(cuò)誤的是A.(p++)->numB.p->numC.(*p).numD.stu[3].age

46.下面不屬于軟件工程3個(gè)要素的是()。

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

47.在單鏈表中,增加頭結(jié)點(diǎn)的目的是______。

A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)

48.下列選項(xiàng)中不是字符常量的是()。

A.'\v'B.'\x2a'C.'a'D."\0"

49.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖牵ǎ?/p>

A.多態(tài)性B.標(biāo)識(shí)惟一性C.封裝性D.耦合性

50.以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤的,其錯(cuò)誤原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}

A.*p表示的是指針變量p的地址

B.*p表示的是變量a的值,而不是變量a的地址

C.*p表示的是指針變量p的值

D.*p只能用來說明p是一個(gè)指針變量

51.C語言中,可用于說明函數(shù)的是()

A.auto或staticB.extern或autoC.static或externD.auto或register

52.以下程序的輸出結(jié)果是#include<stdio.h>inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n”,*p);free(p);}f(int*s,intp[][3]){*s=p[1][1];}

A.1B.4C.7D.5

53.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不確定D.bcdef

54.有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("D1v.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.2030B.2050C.3050D.3020

55.下面程序的輸出結(jié)果是()。main(){inti=1,p;p=f(i,++i);printf("%d",p);}intf(inta,intb){intC;if(a>b)C=1;elseif(a==b)C=0;elseC==-1;return(C);}

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

56.若要說明x是整型變量,p為指向x的整型指針變量,則正確的說明是______。

A.ihtx,*p=&x;

B.intx,p=&x;

C.intx,*p=*x;

D.int*p=&x,x;

57.

執(zhí)行下列程序中的輸出語句后,a的值是()。

main

{inta;

printf("%d\n",(a=2*3,a*5,a+7));

}

A.17B.37C.6D.13

58.下列說法中不正確的是()。

A.指針是一個(gè)變量B.指針中存放的是數(shù)值C.指針可以進(jìn)行加、減等算術(shù)運(yùn)算D.指針變量占用存儲(chǔ)空間

59.下列程序的輸出結(jié)果是_____。intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%\d\n",r);}

A.12B.13C.14D.15

60.軟件詳細(xì)設(shè)計(jì)的主要仟?jiǎng)?wù)是確定每個(gè)模塊的

A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程

四、選擇題(20題)61.

62.有以下程序:

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

A.10,64B.10,10C.64,10D.64,64

63.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是()。

A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項(xiàng)管理

64.

65.

66.

67.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。

A.7B.8C.9D.10

68.(32)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()

A.數(shù)據(jù)所占的存儲(chǔ)空間量

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

D.存儲(chǔ)在外存中的數(shù)據(jù)

69.

70.

71.

72.下列敘述中錯(cuò)誤的是()。

A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)

B.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)

C.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)

D.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的

73.

74.

75.

下列程序的運(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

76.以下選項(xiàng)中,不合法的C語言用戶標(biāo)識(shí)符是()。A.a-一bB.AaBeC.a_bD.一1

77.兩個(gè)或兩個(gè)以上模塊之間聯(lián)系的緊密程度稱為()。

A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性

78.模塊獨(dú)立性是軟件模塊化所提出的要求,衡量模塊獨(dú)立性的一般度量標(biāo)準(zhǔn)是

A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機(jī)制和控制方法

79.有以下程序

voidfunc(int*a,intb[])

{b[0]=*a+6;}

main()

{inta,b[5]={0};

a=0;b[0]=3;

func(&a,b);

rintf("%d\n",b[0]);

}

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

A.6B.7

C.8D.9

80.有以下程序程序執(zhí)行后的輸出結(jié)果是()。

A.y=-IB.y=oC.y=lD.while構(gòu)成無限循環(huán).

五、程序改錯(cuò)題(1題)81.下列給定程序、中,函數(shù)proc()的功能是:先將字符串s中的字符按順序存放到t中,然后把s中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時(shí),則t中的字符串應(yīng)為WXYZWXYZ。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.學(xué)生的記錄由學(xué)號(hào)和成績組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)proc(),它的功能是:函數(shù)返回指定學(xué)號(hào)的學(xué)生數(shù)據(jù),指定的序號(hào)在主函數(shù)中輸入。若沒找到指定的學(xué)號(hào),在結(jié)構(gòu)體變量中給學(xué)號(hào)置空串,給成績置-1,作為函數(shù)值返回(用于字符串比較的函數(shù)是strcmp)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:

參考答案

1.C

2.Alink結(jié)構(gòu)體中的next是鏈表中下一個(gè)節(jié)點(diǎn)的地址。由于p當(dāng)前指向節(jié)點(diǎn)A,因此p->next是B的地址。p->next->next是C的地址,訪問C的節(jié)點(diǎn)數(shù)據(jù)成員dt可以使用C的地址訪問,即p->next->next->dt,選項(xiàng)B正確?;蛘呤褂媒庖谩?”運(yùn)算符:(*p)表示節(jié)點(diǎn)A,(*p).next表示B的地址,*((*p).next)表示節(jié)點(diǎn)B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示節(jié)點(diǎn)C,所以C的數(shù)據(jù)成員dt可以表示為(*((*(*p).next).next)).dt,因?yàn)椤?”運(yùn)算符優(yōu)先級(jí)高于“*”運(yùn)算符,所以也可以寫為(*(*(*p).next).next).dt,選項(xiàng)C正確。同理,也可以既使用指針運(yùn)算符,又使用解引用運(yùn)算符來訪問C的節(jié)點(diǎn)數(shù)據(jù)成員dt,即(*(p->next->next)).dt,選項(xiàng)D正確。選項(xiàng)A中,*p表示A節(jié)點(diǎn),(*p).next表示節(jié)點(diǎn)B的地址,由于“->”運(yùn)算符的優(yōu)先級(jí)高于“*”運(yùn)算符,因此先執(zhí)行“->”,即表達(dá)式(*p).next->next->dt引用了C節(jié)點(diǎn)的數(shù)據(jù)成員dt,然后再執(zhí)行解引用運(yùn)算“*”,這是錯(cuò)誤的。故本題答案為A選項(xiàng)。

3.A需求分析是軟件開發(fā)之前必須要做的準(zhǔn)備工作之一。需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。故需求分析的主要任務(wù)是確定軟件系統(tǒng)的功能。本題答案為A選項(xiàng)。

4.A數(shù)據(jù)字典是在需求分析階段建立,在數(shù)據(jù)庫設(shè)計(jì)過程中不斷修改、充實(shí)和完善的。故答案為A選項(xiàng)。

5.B對(duì)于題干中的宏,替換如下:S1(a+b,a+b),&+1>)等價(jià)于a+b*a+b,即2+5*2+5,等于17;S1(a+b,b+a),等價(jià)于a+b*b+a,即2+5*5+2,等于29;S2(a+b,a+b)等價(jià)于(a+b)*(a+b),即(2+5)*(2+5),等于49;S2(a+b,b+a)等價(jià)于(a+b)*(b+a),即(2+5)*(5+2),等于49。本題答案為B選項(xiàng)。

6.D解析:'\\\\'是反斜線轉(zhuǎn)義字符;'\\t'是水平跳格轉(zhuǎn)義字符;'\\n'是換行轉(zhuǎn)義字符;C語言中沒有規(guī)定'088'為轉(zhuǎn)義字符。

7.C

8.B對(duì)于關(guān)系模式,若其中的每個(gè)屬性都已不能再分為簡單項(xiàng),則它屬于第一范式模式。題目中“班級(jí)”關(guān)系的“班級(jí)學(xué)生”屬性,還可以進(jìn)行再分,如學(xué)號(hào)、姓名、性別、出生日期等,因此不滿足第一范式。本題答案為B選項(xiàng)。

9.AC語言中,分號(hào)為一條語句的結(jié)束。因此“for(i=0;i<4;i++,i++)for(k=1;k<3;k++);”是完整的語句,“printf(“*”);”是獨(dú)立語句,不屬于for循環(huán)。最后執(zhí)行printf語句輸出“*”。故本題答案為A選項(xiàng)。

10.A

11.C

12.A解析:選項(xiàng)A中(!a==1)&&(!b==0)→(!2==1)&&(!b==0)→(0==1)&&(!b==0)→0&&(!b==0)→0(&&右邊表達(dá)式(!b==0)被“短路”):選項(xiàng)B中(a<b)&&!c||1→(2<3)&&!4||1→1&&0||1→0||1→1;選項(xiàng)C中a&&b→2&&3→1;選項(xiàng)Da||b+b)&&(c-a)→2||(b+b)&&(c-a)→1(||右邊表達(dá)式(b+b)&&(c-a)被“短路”)。所以本題選A。

13.C

14.A

15.C

16.A由等式的規(guī)則可知,A選項(xiàng)錯(cuò)誤。先對(duì)括號(hào)的b進(jìn)行等式運(yùn)算,得出b=4,然后計(jì)算得出a=4=3,所以會(huì)導(dǎo)致錯(cuò)誤。答案選擇A。

17.D

18.D

19.A

20.D

21.解析:程序通過語句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”將結(jié)構(gòu)體變量s中各結(jié)點(diǎn)連接成了一個(gè)循環(huán)鏈表,即最后一個(gè)結(jié)點(diǎn)的指針域指向了頭結(jié)點(diǎn),整個(gè)鏈表形成了一個(gè)環(huán),并通過語句“p=s;q=p->next;r=q->next;”將結(jié)構(gòu)體指針變量p、q、r指向了各結(jié)點(diǎn)。

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

23.=-1*sn=-1\r\n*sn解析:C語言中實(shí)參變量和形參變量的數(shù)據(jù)傳遞是單向的“值傳遞”方式。指針變量作函數(shù)也要遵循這一規(guī)則。調(diào)用函數(shù)不可能改變實(shí)參指針變量的值,但可以改變實(shí)參指針變量所指變量的值。

24.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點(diǎn):①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后一個(gè)字符;②str[i]代表字符串str中的第i+1個(gè)字符;③整型變量num的值是要記錄的單詞的個(gè)數(shù)。C語言中規(guī)定字符串的最后一個(gè)字符是一個(gè)隱含的字符串結(jié)束符“\\0”,所以在題中第一個(gè)空中應(yīng)填寫“\\0”;題中第二個(gè)空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個(gè)空中應(yīng)當(dāng)填寫“num++”,通過變量num的加1累加得到字符串中的單詞個(gè)數(shù)。

25.1111解析:main函數(shù)調(diào)用fun函數(shù)時(shí),將10賦給n,形參數(shù)組t與實(shí)參數(shù)組a共用一段內(nèi)存空間。執(zhí)行if-else語句時(shí),n=10,所以執(zhí)行else子句。由于n>=2成立,執(zhí)行m=fun(t[0],9),遞歸調(diào)用fun函數(shù),m=fun(t[0],8),m=fun(t[0],7),…,m=fun(t[0],2),m=fun(t[0],1),當(dāng)n=1時(shí)滿足if(n=1)的條件,執(zhí)行return語句,返回?cái)?shù)組首地址指向的值t[0],所以答案為11。

26.strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結(jié)構(gòu)體類型的定義:

struct結(jié)構(gòu)體類型名

{

成員項(xiàng)表;

};

定義結(jié)構(gòu)體變量的的形式為:

struct結(jié)構(gòu)體類型名變量1,變量2,...?

其中變量包括;一般變量、指針變量、數(shù)組變量等。

27.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。

28.*t*t解析:函數(shù)中首先讓n=stxlen(s)所以while循環(huán)的循環(huán)條件表達(dá)式中*(s+n)指向字符串s的結(jié)束標(biāo)志'0',處,而該處應(yīng)該等于字符串t的第1個(gè)字符,另外循環(huán)體中讓s和t指向下一個(gè)字符,即s+n和t同時(shí)被移動(dòng)到下一個(gè)位置,所以該處應(yīng)該填*t,即t所指內(nèi)容.當(dāng)t指向字符串結(jié)束標(biāo)志'\\0'的時(shí)候,整個(gè)循環(huán)條件表達(dá)式的值也為0(“假”)了,循環(huán)結(jié)束.正好滿足將t所指字符串復(fù)制到s所指的字符串的尾部。

29.無限無限解析:分析程序“while(s)”語句后面有一個(gè)“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。

30.1212解析:本題通過第一個(gè)for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個(gè)for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,具體分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

31.i=10j=20i=10,j=20解析:該函數(shù)的第一個(gè)參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對(duì)應(yīng)要輸入的變量,所以本題中應(yīng)該原樣輸入i=,j=,后面分別給變量10和20,故空格處應(yīng)該填入i=10,j=20。

32.3!feof(f1)3\r\n!feof(f1)解析:要實(shí)現(xiàn)文件復(fù)制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時(shí)至少要指定兩個(gè)參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應(yīng)填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對(duì)應(yīng)的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。

33.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個(gè)結(jié)構(gòu)體類型,此時(shí),也可以用PER來定義變量。

34.完善性軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對(duì)軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。

35.關(guān)系或關(guān)系表關(guān)系或關(guān)系表解析:在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)關(guān)系.表中的每一列稱為一個(gè)屬性,相當(dāng)于記錄中的一個(gè)數(shù)據(jù)項(xiàng),對(duì)屬性的命名稱為屬性名,表中的一行稱為一個(gè)元組,相當(dāng)于記錄值。

36.3535解析:在主函數(shù)中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用“swap(p,q)”,把p和q中的地址值傳給了形參指針變量a和b,a和b分別指向7實(shí)參x和y。在函數(shù)swap()中交換了指針變量a和b的值,并沒有交換a和b指向的實(shí)參的值,所以函數(shù)調(diào)用返回后x和y依舊是原來的值。

37.s[i++]s[i++]解析:本題中為了能實(shí)現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實(shí)現(xiàn)。

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

39.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

40.33解析:i=1時(shí),f(1)=1,j=j+f(1)=0+1=1;i=2時(shí),f(2)=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此時(shí)循環(huán)結(jié)束,程序運(yùn)行后的輸出結(jié)果是3。

41.C解析:如果沒有指明函數(shù)值類型,則默認(rèn)函數(shù)返回值的類型為int型。注意:順序程序結(jié)構(gòu)的執(zhí)行過程。

42.B解析:本題中選項(xiàng)B是錯(cuò)誤的引用,*(a+i)+j只代表了a[i][j]的地址。

43.D解析:C語言中的“或”關(guān)系用“||”表示,其他相關(guān)邏輯運(yùn)算符“與”用“&&”表示;運(yùn)算符“非”用“!”來表示。

44.A解析:對(duì)未給出初始值的整數(shù)數(shù)組元素,被默認(rèn)初始化為零。

45.D本題考核的知識(shí)點(diǎn)是結(jié)構(gòu)體數(shù)組元素成員的引用。結(jié)構(gòu)體變量也有地址,因此可以把它的地址賦值給一個(gè)指針變量,然后通過該指針變量來引用結(jié)構(gòu)體的成員,選項(xiàng)A和選項(xiàng)B就是通過指針變量來引用結(jié)構(gòu)體的成員,故選項(xiàng)A和選項(xiàng)B都正確,也可以通過結(jié)構(gòu)體數(shù)組元素的成員引用,選項(xiàng)C和選項(xiàng)D屬于這種情況,而在選項(xiàng)D中stu[3].age不正確,因?yàn)榻Y(jié)構(gòu)體數(shù)組stu共有三個(gè)元素,其下標(biāo)應(yīng)該為0,1,2.所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

46.D解析:軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具是指支持軟件的開發(fā)、管理、文檔生成;過程是支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理。環(huán)境不屬于軟件工程的3個(gè)要素之一。本題的正確答案為D。

47.A\nA?!窘馕觥款^結(jié)點(diǎn)不僅標(biāo)識(shí)了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個(gè)鏈表,因此增加頭結(jié)點(diǎn)的目的是為了便于運(yùn)算的實(shí)現(xiàn)。

\n

48.Dc語言規(guī)定,一個(gè)字符常量代表ASCII碼字符集里的一個(gè)字符,在群序中用單引號(hào)括起來,以便區(qū)分。'\v'表示的是豎向跳格:'kx2a'表示的是兩位十六迸制數(shù);'a'表示的是字符a對(duì)應(yīng)的ASCII碼值。"\0"用雙引號(hào)故不正確。

49.DD)【解析】面向?qū)ο笤O(shè)計(jì)方法與面向過程設(shè)計(jì)方法有本質(zhì)不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。其特點(diǎn)包括:標(biāo)識(shí)惟一性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性好。

50.B在本題中,題目告訴我們程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤的,要求我們找出其錯(cuò)誤的原因,這是一類錯(cuò)誤原因分析題。

在本題程序中,首先定義兩個(gè)整型指針變量p和q,然后定義兩個(gè)整型變量a和b,讓指針變量p執(zhí)行變量a,接著輸出提示語句“請(qǐng)輸入a”,執(zhí)行格式輸入語句scanf,由于輸入語句的輸入列表中給出的應(yīng)該是輸入的地址,即存放輸入數(shù)據(jù)的存儲(chǔ)地址,但在本題的輸入語句中給出的是*p,這表示一個(gè)數(shù)值,而非地址。因此,無法完成數(shù)據(jù)的輸入,若要完成輸入,可以將*p改為p。

根據(jù)上面的分析,我們可以知道本題程序出錯(cuò)的原因是*p表示的是變量a的值,而不是變量a的地址。因此本題正確答案選B。

51.C

52.D解析:本題考查了二維數(shù)組元素引用的方法。題中用動(dòng)態(tài)存儲(chǔ)分配函數(shù)malloc分配了一個(gè)int型數(shù)據(jù)長度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f()中對(duì)p所指向的數(shù)據(jù)進(jìn)行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對(duì)應(yīng)于實(shí)參a的元素5,所以輸出結(jié)果為5。

53.C解析:字符串少一個(gè)結(jié)束標(biāo)志,所以輸出的結(jié)果不確定。

54.A

55.B解析:執(zhí)行“p=f(i,++i):”后i的值為2,所以a和b的值都為2,則c=0,選項(xiàng)B正確。

56.A解析:整型指針變量p指向整型變量x,顯然是先定義x,后定義p。定義p時(shí),必須在指針變量名前加*(否則,p只是不同整型變量),取變量x的地址,要用取地址符&。

57.C解析:本題考查逗號(hào)表達(dá)式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。

58.B解析:指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是—個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。

59.D

60.A解析:從軟件開發(fā)的工程化觀點(diǎn)來看,在使用程序設(shè)計(jì)語言編制程序以前,需要對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計(jì)的任務(wù)就是要決定各個(gè)模塊的實(shí)現(xiàn)算法,并精確表達(dá)出這些算法。

61.A

62.A本題考查宏定義的用法,宏定義只是做個(gè)簡單的替換,所以本題中執(zhí)行f(a+1)=a+1}a+1}a+1=3}a+1=10,f((a+1))=(a+1)$(a+1)}(a+1)=64,所以答案為A選項(xiàng)。

63.A在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是數(shù)據(jù)庫系統(tǒng)這一階段。數(shù)據(jù)庫系統(tǒng)階段用數(shù)據(jù)模型來表示復(fù)雜的數(shù)據(jù),有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式來操作。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。

64.C

65.C

66.D

67.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結(jié)束符\0的長度。故選A。

68.B

69.D

70.B

71.

溫馨提示

  • 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)論