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è),還剩99頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(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ì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

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

A.在C語(yǔ)言中,預(yù)處理命令行都以“#”開(kāi)頭

B.預(yù)處理命令行必須位于c源程序的起始位置

C.#include<stdi0.h>必須放在C程序的開(kāi)頭

D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能

2.在面向?qū)ο笤O(shè)計(jì)中,對(duì)象有很多基本特點(diǎn),其中“從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部對(duì)外是不可見(jiàn)的。”這一性質(zhì)指的是對(duì)象的

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

3.有以下程序:#include<stdio.h>intfun(int*a,int*b,intn){inti=0,j=0,sum=0;for(;i<n;i++){sum+=a[i];if((i+1)%2==0){b[j++]=sum;sum=0;}}returnj;}main(){inta[8]={1,0,2,3,5,4,2,1},b[8],k,i;k=fun(a,b,8);for(i=0;i<k;i++)printf(“%d”,b[i]);}程序的運(yùn)行結(jié)果是()。

A.0242B.1593C.1351D.286

4.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是()。A.>>2B.|248C.&0248D.<<1

5.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234

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

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

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

A.在函數(shù)外部定義的變量在所有函數(shù)中都有效

B.在函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)使用

C.函數(shù)中的形參屬于局部變量

D.在不同的函數(shù)中可以使用相同名字的變量

8.以下選項(xiàng)中關(guān)于C語(yǔ)言常量的敘述錯(cuò)誤的是()。

A.所謂常量,是指在程序運(yùn)行過(guò)程中,其值不能被改變的量

B.常量分為整型常量、實(shí)型常量、字符常量和字符串常量

C.常量可分為數(shù)值型常量和非數(shù)值常量

D.經(jīng)常被使用的變量可以定義成常量

9.有以下程序:#include<stdio.h>main(){inta=7;while(a--);print[("%d\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A.-1B.0C.1D.7

10.以下選項(xiàng)中與“(!a==0)”的邏輯值不等價(jià)的表達(dá)式是()。

A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)

11.有以下程序:#include<stdio.h>main(){intx=10,y=11,z=12;if(y<z)x=y;y=z;z=x;printf(“x=%dy=%dz=%d\n”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。

A.x=11y=12z=11

B.x=10y=10z=10

C.x=11y=11z=10

D.x=10y=10z=12

12.在一個(gè)被調(diào)用函數(shù)中,關(guān)于return語(yǔ)句使用的描述,()是錯(cuò)誤的。

A.被調(diào)用函數(shù)中可以不用return語(yǔ)句

B.被調(diào)用函數(shù)中可以使用多個(gè)return語(yǔ)句

C.被調(diào)用函數(shù)中,如果有返回值,就一定要有return語(yǔ)句

D.被調(diào)用函數(shù)中,一個(gè)return語(yǔ)句可以返回多個(gè)值給調(diào)用函數(shù)

13.下述程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if(i*i>=20)(i*i<=lOO))break;}printf("%d\n",i*i);}A.49B.36C.25D.64

14.有三個(gè)關(guān)系R、s和T如下:

由關(guān)系R和s通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。

A.并B.自然連接C.笛卡爾積D.交

15.采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類(lèi)似于二叉樹(shù)的()。

A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷

16.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),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.18B.19C.20D.21

17.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.efg,h,z,q,bcd

B.efg,d,zyz,wbbcd

C.efgabcdsnopqhijkIxyz,h,z,q,bcd

D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd

18.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的運(yùn)行結(jié)果是()。A.852B.963C.741D.875421

19.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達(dá)式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

20.已知10個(gè)元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序樹(shù),查找值為62的結(jié)點(diǎn)所需比較次數(shù)為()

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

二、2.填空題(20題)21.由25人圍坐成圓圈,先從任意一人出發(fā)用1到25順時(shí)針依次編號(hào),然后從1號(hào)開(kāi)始順時(shí)針報(bào)數(shù)(1、2、3…),凡報(bào)5的倍數(shù)者出圈,剩下者繼續(xù)報(bào)數(shù),求出最后出圈者的編號(hào)。

#include<stdio.h>

【】

{inta[26],j,n,count;

for(j=1;j<=25;j++)a[j]=j(luò);

j=1;count=0;n=【】;

do

{if(a[j]!=0)

{n++;

if(n%5==0)

{【】;

if(count==24)printf("%d\n",j);

count++;

}

}

j++;

if(j>25)j=1;

}

while(【】);

}

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

23.設(shè)有定義:floatx=123.4567;,則執(zhí)行以下語(yǔ)句后的輸出結(jié)果是()。printf("%f\n",(int)(x*100+0.5)/100.0);

24.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

25.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除—個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。

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

voidswap(intx,inty)

{intt;

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

}

main()

{inta=3,b=4;

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

}

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

main()

{inta=177;

printf(“%o\n”,A);

}

28.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為_(kāi)_____。

29.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

31.下面程序執(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);

}

32.有以下程序:

fun(inta,intb)

{if(a>b)return(a);

elsereturn(b);

}

main()

{intx=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

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

}

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

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

main()

{charc='z';

printf("%c",c-25);}

34.在程序設(shè)計(jì)階段應(yīng)該采取【】和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語(yǔ)言寫(xiě)成程序。

35.以下程序的功能是計(jì)算:s=1+12+123+1234+12345。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

intt=0.s=0,i:

for(i=1;i<=5;i++){t=i+【】;s=s+t;}

prinff("s=%d\n".s);}

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

#include<stdio.h>

intfun(intx)

{intp;

if(x==0‖x==1)

return3;

else

p=x-fun(x-2);

returnp;

}

voidmain()

{printf("\n%d",fun(11));

37.測(cè)試用例包括輸入值集和【】值集。

38.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大的值和它所在的下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>

#include<stdlib.h>

#include<stdio.h>

voidfun(inta[],intn,int*max,int*d)

{intI;

*max=a[0];

*d=0;

for(I=0;【】;I++)

if(*max<【】)

{*max=a[I];*d=i;}}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);}

39.若有以下程序:

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é)果是【】。

40.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序運(yùn)行時(shí),如果從鍵盤(pán)輸入:A,B,<CR>,則輸出結(jié)果為_(kāi)_____。

三、1.選擇題(20題)41.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}該程序中的for循環(huán)執(zhí)行的次數(shù)是______。

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

42.有下列二叉樹(shù),

對(duì)此二叉樹(shù)前序遍歷的結(jié)果為()。

A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI

43.以下程序的輸出結(jié)果是()。main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:C):(B));}

A.5B.4C.6D.不確定

44.以下程序運(yùn)行后的輸出結(jié)果是______。main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}

A.1000B.10010C.110D.10100

45.下列程序的輸出結(jié)果是()。#inelude<stdio.h>main(){inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);}

A.4B.22C.24D.46

46.以下程序的輸出結(jié)果是typedefunion{longx[2]inty[4];charz[8];}MYTYPE;MYTYPEthem;main(){printf("%d\n",sizeof(them));}

A.32B.16C.8D.24

47.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是

A.startB.endC.startendD.endrt

48.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

49.有以下程序main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)‖(m=a<b);printf("%d,%d\n",k,m);}程序運(yùn)行后的輸出結(jié)果是

A.0,0B.0,1C.1,0D.1,1

50.若在fopen函數(shù)中使用文件的方式是"wb+",該方式的含義是()

A.為讀/寫(xiě)打開(kāi)一個(gè)文本文件

B.為輸出打開(kāi)一個(gè)文本文件

C.為讀/寫(xiě)建立一個(gè)新的文本文件

D.為讀/寫(xiě)建立一個(gè)新的二進(jìn)制文件

51.利用fseek函數(shù)可實(shí)現(xiàn)的操作是()。

A.實(shí)現(xiàn)文件的順序讀寫(xiě)B(tài).改變文件的位置指針C.實(shí)現(xiàn)文件的隨機(jī)讀寫(xiě)D.以上答案均正確

52.以下程序的結(jié)果是()

main()

{unsignedinta=3,b=10;

printf("%d\n",a<<2|b>>1);

}

A.1B.5C.12D.13

53.以下程序的輸出結(jié)果是______。longfum(intn){longs;if(n==||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}

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

54.設(shè)計(jì)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)屬于()。

A.需求分析B.概念設(shè)計(jì)C.邏輯設(shè)計(jì)D.物理設(shè)計(jì)

55.函數(shù)rewind的作用是

A.使文件位置指針重新返回文件的開(kāi)始位置

B.將文件位置指針指向文件中所要求的特定位置

C.使文件位置指針指向文件的末尾

D.使文件位置指針自動(dòng)移至下一個(gè)字符位置

56.對(duì)關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱(chēng)為()

A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算

57.下列程序的輸出結(jié)果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}

A.非法B.a[4]的地址C.5D.3

58.以下程序(程序左邊的數(shù)字為附加的行號(hào))______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}

A.沒(méi)有錯(cuò)B.第1行有錯(cuò)C.第6行有錯(cuò)D.第7行有錯(cuò)

59.若x是整型變量,pb是基類(lèi)型為整型的指針變量,則正確的賦值表達(dá)式是______。

A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x

60.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項(xiàng)中正確的賦值語(yǔ)句是()。

A.p=1;B.*q=2;C.q=p;D.*p=5;

四、選擇題(20題)61.

設(shè)有以下定義和語(yǔ)句:

charstr[2O]="Program",*P:

p=str:

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

A.*p與stf[0]的值相等

B.str與P的類(lèi)型完全相同

C.str數(shù)組長(zhǎng)度和P所指向的字符串長(zhǎng)度相等

D.數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同

62.執(zhí)行下述程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0

63.

64.

65.

66.(VC++)若有以下定義,則對(duì)b數(shù)組元素正確的引用是

intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]

67.若已建立如下圖所示的單向鏈表結(jié)構(gòu):在該鏈表結(jié)構(gòu)中,指針p、s分別指向圖中所示結(jié)點(diǎn),則不能將s所指的結(jié)點(diǎn)插入到鏈表末尾仍構(gòu)成單向鏈表的語(yǔ)句組是A.p=p->next;s->next=p;p->next=s;

B.p=p->next;s->next=p->next;p->next=s;

C.s->next=NULL;p=p->next;p->next=s;

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

68.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程

C.軟件的開(kāi)發(fā)過(guò)程

D.軟件的運(yùn)行維護(hù)過(guò)程

69.

70.

71.

72.當(dāng)變量c的值不為2、4、6時(shí),值也為”真”的表達(dá)式是()。

A.

B.

C.

D.

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

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

74.

有下列程序:

#include<stdio.h>

main

{inta=6,b=7,m=1;

switch(a%2)

{case0:m++;break;

case1:m++;

switch(b%2)

{default:m++;

case0:m++;break;

}

}

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

}

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

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

75.已知大寫(xiě):字母A的ASCIl碼是65,小寫(xiě)字母a的ASCIl碼是97。以下不能將變量c中的大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母的語(yǔ)句是()。

76.

77.源程序的文檔不包括()。

A.符合號(hào)名的命名要有實(shí)際意義B.正確的文檔形式C.良好的視覺(jué)組織D.正確的程序注釋

78.“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是()。

A.一對(duì)一B.多對(duì)一C.一對(duì)多D.多對(duì)多

79.

80.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。

A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性

B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性

C.耦合性是指-個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度

D.內(nèi)聚性是指模塊間互相連接的緊密程度

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫(xiě)字母F。

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

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

試題程序:

#include<stdio.h>

voidproc(char*str)

{

inti,j;

//****found****

for(i=j=0;str[i]一0;i++)

if(str[i]!=F)

//****found****

str[i]=str[i];

str[j]=\0;

}

voidmain

{

charstr[80];

printf("\nEnterastring:");

gets(str);

printf("Theoriginalstring:");

puts(str);

proc(str);

printf("Thestringafterdeleted:");

puts(str);

printf("\n\n");}

六、程序設(shè)計(jì)題(1題)82.某學(xué)生的記錄由學(xué)號(hào)、8門(mén)課成績(jī)和平均分組成,學(xué)號(hào)和8門(mén)課的成績(jī)已在主函數(shù)中給出。請(qǐng)編寫(xiě)proc()函數(shù),它的功能是:求出該學(xué)生的平均分并放在記錄的ave成員中。請(qǐng)自己定義正確的形參。例如,若學(xué)生的成績(jī)是65.5,75,88,90,90.5,66,64.5,89.5,則他的平均分應(yīng)當(dāng)是78.625。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.A預(yù)處理命令是以“#”號(hào)開(kāi)頭的命令,它們不是C語(yǔ)言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書(shū)寫(xiě),一般在源文件的最前面書(shū)寫(xiě),但不是必須在起始位置書(shū)寫(xiě),所以B、c錯(cuò)誤。C語(yǔ)言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D錯(cuò)誤。

2.D解析:從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),指的是對(duì)象的封裝性。

3.B程序中,fun函數(shù)的功能是接收兩個(gè)數(shù)組a、b,以及數(shù)組a的元素個(gè)數(shù)n,然后通過(guò)for循環(huán)將數(shù)組a中下標(biāo)為偶數(shù)的元素與后面相鄰的下標(biāo)為奇數(shù)的元素兩兩相加,賦給數(shù)組b中下標(biāo)為j的元素,最后返回?cái)?shù)組b的個(gè)數(shù)。所以main函數(shù)中,通過(guò)調(diào)用fun函數(shù),將數(shù)組a的元素兩兩相加,得到數(shù)組b的各個(gè)元素,再通過(guò)for循環(huán)輸出,結(jié)果為:1593。故本題答案為B選項(xiàng)。

4.D124的2進(jìn)制值為1111100,要輸出為248即124*2,則2進(jìn)制值為11111000,即右移l位,所以選D。

5.D

6.Dif語(yǔ)句中的表達(dá)式可以是任意合法的數(shù)值,如常量、變量表達(dá)式。故本題答案為D選項(xiàng)。

7.A全局變量有效范圍是從定義的位置開(kāi)始到所在源文件的結(jié)束,在這區(qū)域內(nèi)的函數(shù)才可以調(diào)用,如果在定義函數(shù)之后,定義的變量,該變量不能被之前的函數(shù)訪問(wèn)所以A選項(xiàng)說(shuō)法錯(cuò)誤,答案為A選項(xiàng)。

8.D此題考查的是常量和變量的定義,常量不是經(jīng)常使用的變量,而是一個(gè)確定的數(shù)值,所以答案選擇D。

9.A此題考查a--和--a之間的區(qū)別,當(dāng)while(a--)為真循環(huán)執(zhí)行,a--是執(zhí)行再減1,所以答案選擇A。

10.A運(yùn)算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級(jí)高于“==”,選項(xiàng)A等價(jià)于“(!a)==0”。如果a不等于0,則表達(dá)式為真,否則表達(dá)式為假。故本題答案為A選項(xiàng)。

11.Aif條件為真,執(zhí)行“x=y;”,此時(shí)x=11,y=11,z=12;再執(zhí)行“y=z;z=x;”,此時(shí)y=12,z=11,即x=11,y=12,z=11。故本題答案為A選項(xiàng)。

12.D

13.C當(dāng)if執(zhí)行到第一個(gè)滿(mǎn)足(i*i>=20)(i*i<=100)這個(gè)條件的i出現(xiàn)時(shí),通過(guò)break語(yǔ)句跳出循環(huán),執(zhí)行下面的prinlf語(yǔ)句。

14.D關(guān)系R與s經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。

15.A

16.A循環(huán)的作用是求行下標(biāo)從1到2列下標(biāo)從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。

17.A程序定義一個(gè)二維字符數(shù)組v,使用5個(gè)字符串對(duì)其初始化。對(duì)于表達(dá)式“*v”等價(jià)于“*(v+0)”,輸出的是數(shù)組v的第1個(gè)元素efg;“**(v+3)”等價(jià)于“*(*(v+3)+0)”,輸出的是數(shù)組v的第4個(gè)元素的第1個(gè)字符h;“v[4]”表示數(shù)組v的第5個(gè)元素,“v[4]+2”表示輸出從下標(biāo)2開(kāi)始的所有字符,即z;“v[2]”表示數(shù)組v的第3個(gè)元素,“*(v[2]+4)”表示數(shù)組v的第3個(gè)元素的下標(biāo)為4的字符q;“v[1]+1”表示數(shù)組v的第2個(gè)元素從下標(biāo)1開(kāi)始的子字符串,即bcd。所以程序輸出:efg,h,z,q,bcd。本題答案為A選項(xiàng)。

18.A答疑:[解析]第一次for循環(huán),y的值為9.y%3的值為0.滿(mǎn)足條件打印-y,即先減一-后打印,所以打印8;第二次for循環(huán),y的值為7.y%3的值為1.不執(zhí)行打印語(yǔ)句;第三次for循環(huán),y的值為6.y%3的值為0.滿(mǎn)足條件打印--y,即先減-后打印,所以打印5;第四次for循環(huán),y的值為4.不滿(mǎn)足條件,不執(zhí)行打印語(yǔ)句;第五次for循環(huán),y的值為3.滿(mǎn)足條件,打印輸出2;第六次for循環(huán),y的值為1.不滿(mǎn)足條件,不執(zhí)行打印語(yǔ)句。

19.C數(shù)組的下標(biāo)是從0開(kāi)始的,A中越界,行下標(biāo)和列下標(biāo)都不能越界;B中,雖然是個(gè)地址,但是也同樣越界了;選項(xiàng)C中表示的是第一個(gè)的首地址;選項(xiàng)D表示的為其元素的值,并不是地址。

20.B

21.main()0a[j]=0count<25

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

23.460000

24.格式化模型格式化模型解析:層次模型與網(wǎng)狀模型屬于格式化模型。

25.n/2n/2解析:刪除—個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2:所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。

26.43344334解析:函數(shù)的參數(shù)傳遞形參的改變不會(huì)影響實(shí)參的值。調(diào)用函數(shù)swap(x,y)時(shí),將x,y進(jìn)行交換再輸出,輸出為43,但主函數(shù)中的a、b值并沒(méi)有改變,最后輸出a、b的值,為34。

27.261261解析:在控制格式符中“o”代表的是將數(shù)據(jù)按八進(jìn)制數(shù)輸出,十進(jìn)制數(shù)的177代表的八進(jìn)制數(shù)是261。

28.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語(yǔ)言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。

29.軟件開(kāi)發(fā)

30.21

31.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。

32.1212解析:函數(shù)fun的功能是求兩個(gè)數(shù)當(dāng)中的最大值。語(yǔ)句r=fun(fun(x,y),2*z)的執(zhí)行過(guò)程為:首先計(jì)算fun(x,y),因x=3、y=8,所以結(jié)果為8;然后計(jì)算fun(8,2,*z),即計(jì)算fun(8,12),所以r=12。

33.aa解析:“z”的ASCII碼值為122,經(jīng)過(guò)c-25運(yùn)算后得97,以字符形式輸出是a。

34.自頂而下自頂而下

35.t*10t*10解析:程序中變量,用于存放表達(dá)式1+12+123+1234+12345之和,變量t用于存放其表達(dá)式的各項(xiàng)。當(dāng)i=1時(shí),要使t=1;i=2時(shí),t=12;i=3時(shí),t=123;依此類(lèi)推。每一次的t值是用上一次的t乘以10再加上此次的i的值,所以本題答案為t*10。

36.44解析:本題考查函數(shù)的遞歸調(diào)用。在主函數(shù)中第1次調(diào)用子函數(shù)是調(diào)用的fun(11),返回11-fun(9):第2次調(diào)用子函數(shù)是調(diào)用的fun(9),返回9-tim(7);第3次調(diào)用子函數(shù)是調(diào)用的fun(7),返回7-fun(5);第4次調(diào)用子函數(shù)是調(diào)用的fun(5),返回5-fun(3);第5次調(diào)用子函數(shù)是調(diào)用的fun(3),返回3-fun(1);第6次調(diào)用子函數(shù)是調(diào)用的fun(1),返回3??偟姆祷刂凳牵?1-(9-(7-(5-(3-3))))=4。

37.輸出輸出解析:測(cè)試用例曲測(cè)試輸入數(shù)據(jù)(輸入值集)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果(輸出值集)兩部分組成。

38.I<na[I]I<n,a[I]解析:該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它們所指向的變量時(shí),要對(duì)它們進(jìn)行指針運(yùn)算,即*號(hào)運(yùn)算。

39.503503解析:先判斷表達(dá)式a<b為假,不執(zhí)行t=a,但執(zhí)行“a=b;b=t;”,a的值為3,b的值為0。再判斷表達(dá)式a<C,值為真,所以執(zhí)行后面的3條語(yǔ)句“t=a;a=c;c=t”,結(jié)果a的值為5,c的值為3,所以最后輸出的結(jié)果為5、0和3。

40.BB解析:因?yàn)閏是字符類(lèi)型變量,它只能接收一個(gè)字符,所以c=A,字符型變量在參與算術(shù)運(yùn)算的時(shí)候是用其相應(yīng)的ASCII碼參與運(yùn)算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。

41.B解析:該題目測(cè)試考生對(duì)宏替換的理解。這是一種簡(jiǎn)單的情況:不帶參數(shù)的宏。關(guān)鍵要注意在對(duì)2*M+1進(jìn)行宏替換時(shí),要將宏名M原封不動(dòng)地代進(jìn)去,得到NUM的形式為2*N+1+1(千萬(wàn)不要隨意給N+1加上小括號(hào),使NUM變?yōu)?。(N+1)+1,這就是宏名和變量名之間的區(qū)別),在將N代進(jìn)去,得到NUM的值為6。

42.C解析:對(duì)二叉樹(shù)的前序遍歷是指先訪問(wèn)根結(jié)點(diǎn),然后訪問(wèn)左子樹(shù),最后訪問(wèn)右子樹(shù),并且,在訪問(wèn)左、右子樹(shù)時(shí),先訪問(wèn)根結(jié)點(diǎn),再依次訪問(wèn)其左、右子樹(shù)。

43.C解析:本題考核的知識(shí)點(diǎn)是條件表達(dá)式的使用.在C語(yǔ)言中問(wèn)號(hào)表達(dá)式(如:a>c?a:c;)的計(jì)算規(guī)則為:如果a>c為真,那么表達(dá)式的值為a的值;否則表達(dá)式的值為C的值。本題中的printf()函數(shù)中的輸出表達(dá)式,首先計(jì)算括號(hào)內(nèi)的條件表達(dá)式,它的值為6(a>c?a:c中a>c即5>6為假故該表達(dá)式的值為c的值即為6),然后再計(jì)算外面表達(dá)式(等價(jià)于a>b?6:b)的值,同理可得該表達(dá)式的值為6,將值6賦值給d,因此最后輸出該表達(dá)式的值為6,所以,4個(gè)選項(xiàng)中C為所選。

44.B

45.C解析:指針變量p指向數(shù)組a的首地址,并把指針變量p的地址賦給指向指針的指針變量k。第一個(gè)printf函數(shù)輸出2,第二個(gè)printf函數(shù)輸出4。

46.C解析:共用體所占存儲(chǔ)空間的大小是所有成員所占存儲(chǔ)單元的和;共用體變量所占存儲(chǔ)單元的大小是所有成員中占據(jù)存儲(chǔ)空間最大的成員所占存儲(chǔ)空間的大小。本題中字符數(shù)組成員z占8個(gè)字節(jié)的長(zhǎng)度,長(zhǎng)度最長(zhǎng),所以共用體變量them用sizeof計(jì)算長(zhǎng)度為8。

47.B解析:本題主要考查的是打開(kāi)文件函數(shù)fopen().題目開(kāi)始定義了一個(gè)函數(shù),該函數(shù)有兩個(gè)字符指針型參數(shù),其作用分別用來(lái)傳入文件名和文件內(nèi)容。函數(shù)首先定義一個(gè)文件指針印,然后使用fopen()函數(shù)打開(kāi)參數(shù)fn所指定的文件。本題的關(guān)鍵就在于fopen()函數(shù)的第2個(gè)參數(shù),這個(gè)參數(shù)指定了文件打開(kāi)的方式。'w'表示為寫(xiě)而打開(kāi)一個(gè)文本文件,如果文件不存在,則新建一個(gè)文件,否則將清空原有文件。接下來(lái)函數(shù)使用fputs()函數(shù)將參數(shù)str中的內(nèi)容寫(xiě)入文件,最后調(diào)用fclose()函數(shù)關(guān)閉文件。在主函數(shù)中兩次調(diào)用該函數(shù),但寫(xiě)入的是同一個(gè)文件,故只有最后一次寫(xiě)入有效。所以應(yīng)該選擇B。

48.C解析:本題考查按位與“&”。因?yàn)?&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。

49.C解析:在“||”運(yùn)算中當(dāng)其左邊的表達(dá)式為真,右邊的表達(dá)式將不再執(zhí)行。主函數(shù)中,“||”左邊的表達(dá)式k=(n=b>A),“2>1”為真,所以n被賦值為1,接著k被賦值1,即“||”運(yùn)算符左邊表達(dá)式為真,此時(shí)不再計(jì)算“||”右邊的表達(dá)式,因此m的值沒(méi)有被改變?nèi)詾?,最后的輸出結(jié)果1,0。

50.D

51.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實(shí)現(xiàn)文件的順序讀寫(xiě);③輔助實(shí)現(xiàn)文件的隨機(jī)讀寫(xiě)。

52.D

53.A解析:這是一個(gè)遞歸函數(shù)。遞歸的結(jié)束條件是,n=1或者n=2。按照程序順序,即可得出本題結(jié)果為1。

54.DD?!窘馕觥课锢碓O(shè)計(jì)階段主要解決選擇文件存儲(chǔ)結(jié)構(gòu)和確定文件存取方法的問(wèn)題。物理設(shè)計(jì)階段包括:選擇存儲(chǔ)結(jié)構(gòu)、確定存取方法、選擇存取路徑、確定數(shù)據(jù)的存放位置。

55.A解析:函數(shù)rewind的功能是將文件指針重新指向一個(gè)流的開(kāi)頭。用法如下:

intrewind(FILE*stream);并且無(wú)返值。

56.AA)【解析】關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,新關(guān)系中包含兩個(gè)關(guān)系中的所有元組。

57.C解析:本題中char*p=a+5;即相當(dāng)于p=&a[5],而--p,是先要減1,則printf語(yǔ)句要輸出的值就是a[4]。

58.B解析:字符串復(fù)制函數(shù)strcpy包含在頭文件string.h中,因此,程序中的第1行文件包含命令是錯(cuò)誤的。

59.A解析:選項(xiàng)A將變量x的地址賦紿指針變量pb,使pb指向x‘選項(xiàng)B是烙x的值當(dāng)作地址賦給指針pb,pb指向一個(gè)地址等于x值的內(nèi)存單元;選項(xiàng)c將x的地址賦給指針pb指向的地址等于x的內(nèi)存單元。

60.D解析:選項(xiàng)A),B),C)的指針賦值表達(dá)方式都不正確,*p=5表達(dá)整數(shù)5放到指針p所指向的存儲(chǔ)單元中。注意:通過(guò)指針引用一個(gè)存儲(chǔ)單。

61.A

\n本題中的str為一個(gè)字符型數(shù)組,P為字符型指針變量,其指向str的首地址,*P的值為strE03中的字符,其類(lèi)型、長(zhǎng)度不同,但字符第一個(gè)相同,故答案選擇A。

\n

62.D本題j=要是考查帶參數(shù)的宏的定義,過(guò)程如下:inta=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。

63.A

64.B

65.B

66.D這是二維數(shù)組,所以A錯(cuò)\r\n數(shù)組是從0開(kāi)始,所以第一個(gè)不能有2,第二個(gè)不能有3.所以B,C錯(cuò)。

67.A在選項(xiàng)A中,s的確已插到了鏈表的末尾,但它的next并沒(méi)有為NULL,而是指向了它的直接前趨p,這樣它就不是一個(gè)單向鏈表(單向鏈表最后一個(gè)結(jié)點(diǎn)的next指針一定是一個(gè)NULL)。

68.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱(chēng)為軟件生命周期。也就是說(shuō),軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。

69.D

70.A

71.C

72.B滿(mǎn)足表達(dá)式,(C>=2&&c<=6)的整型變量C的值是2,3,4,5,6。當(dāng)變量C的值不為2,4,6時(shí),其值只能為3或5,所以表達(dá)式C!=3和C!=5中至少有一個(gè)為真,即不論C為何值,表達(dá)式B)都為”真”。

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

74.B

\n本題考查switch語(yǔ)句及break的用法。第一個(gè)switch語(yǔ)句,因?yàn)閍=6.a(chǎn)%2=0,所以執(zhí)行“case0,m++;”,將m加1,遇到break語(yǔ)句跳出switch語(yǔ)句,結(jié)束循環(huán)。不執(zhí)行下面的switch。

\n

75.A大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母,即加上32,A)選項(xiàng)不是累加32,所以選擇A)

76.D

77.B本題主要考查源程序的定義:①符號(hào)名應(yīng)具有一定實(shí)際的含義;②正確的程序注釋?zhuān)虎哿己玫囊曈X(jué)組織。

78.D商品與顧客兩個(gè)實(shí)體集之間的買(mǎi)與被買(mǎi)聯(lián)系是多對(duì)多的,因?yàn)橐环N商品可以被多個(gè)顧客購(gòu)買(mǎi),而一個(gè)顧客也可以買(mǎi)多個(gè)商品。

79.B

80.B模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A錯(cuò)誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素問(wèn)彼此結(jié)合

的緊密程度,所以c與D錯(cuò)誤。

81.(1)錯(cuò)誤:for(i=j=0;str[i]!=0;i++)

\n正確:for(i=j=0;str[i]!=\0;i++)

\n(2)錯(cuò)誤:str[j]=str[i];

\n正確:str[i++]=str[i];

\n【解析】根據(jù)題目中的要求,從字符串str中刪除所有大寫(xiě)字母F,需要檢查字符串str中的每一個(gè)字符,直到字符串結(jié)束,因此,“for(i=j=0;str[i]!=0;i++)”應(yīng)改為“for(i=J=0;str[i]!=0;i++)”;將每一個(gè)不是F的字符放入原來(lái)的字符串中,形成新的字符串,因此,“str[j]=str[i];”應(yīng)改為“str[j++]=str[i];”。

\n

82.

【解析】要求該學(xué)生的平均成績(jī),首先要求出其各科成績(jī)之和,然后求出其平均成績(jī)并放在成員變量ave中。

2021年遼寧省丹東市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

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

A.在C語(yǔ)言中,預(yù)處理命令行都以“#”開(kāi)頭

B.預(yù)處理命令行必須位于c源程序的起始位置

C.#include<stdi0.h>必須放在C程序的開(kāi)頭

D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能

2.在面向?qū)ο笤O(shè)計(jì)中,對(duì)象有很多基本特點(diǎn),其中“從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部對(duì)外是不可見(jiàn)的?!边@一性質(zhì)指的是對(duì)象的

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

3.有以下程序:#include<stdio.h>intfun(int*a,int*b,intn){inti=0,j=0,sum=0;for(;i<n;i++){sum+=a[i];if((i+1)%2==0){b[j++]=sum;sum=0;}}returnj;}main(){inta[8]={1,0,2,3,5,4,2,1},b[8],k,i;k=fun(a,b,8);for(i=0;i<k;i++)printf(“%d”,b[i]);}程序的運(yùn)行結(jié)果是()。

A.0242B.1593C.1351D.286

4.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是()。A.>>2B.|248C.&0248D.<<1

5.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234

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

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

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

A.在函數(shù)外部定義的變量在所有函數(shù)中都有效

B.在函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)使用

C.函數(shù)中的形參屬于局部變量

D.在不同的函數(shù)中可以使用相同名字的變量

8.以下選項(xiàng)中關(guān)于C語(yǔ)言常量的敘述錯(cuò)誤的是()。

A.所謂常量,是指在程序運(yùn)行過(guò)程中,其值不能被改變的量

B.常量分為整型常量、實(shí)型常量、字符常量和字符串常量

C.常量可分為數(shù)值型常量和非數(shù)值常量

D.經(jīng)常被使用的變量可以定義成常量

9.有以下程序:#include<stdio.h>main(){inta=7;while(a--);print[("%d\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A.-1B.0C.1D.7

10.以下選項(xiàng)中與“(!a==0)”的邏輯值不等價(jià)的表達(dá)式是()。

A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)

11.有以下程序:#include<stdio.h>main(){intx=10,y=11,z=12;if(y<z)x=y;y=z;z=x;printf(“x=%dy=%dz=%d\n”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。

A.x=11y=12z=11

B.x=10y=10z=10

C.x=11y=11z=10

D.x=10y=10z=12

12.在一個(gè)被調(diào)用函數(shù)中,關(guān)于return語(yǔ)句使用的描述,()是錯(cuò)誤的。

A.被調(diào)用函數(shù)中可以不用return語(yǔ)句

B.被調(diào)用函數(shù)中可以使用多個(gè)return語(yǔ)句

C.被調(diào)用函數(shù)中,如果有返回值,就一定要有return語(yǔ)句

D.被調(diào)用函數(shù)中,一個(gè)return語(yǔ)句可以返回多個(gè)值給調(diào)用函數(shù)

13.下述程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if(i*i>=20)(i*i<=lOO))break;}printf("%d\n",i*i);}A.49B.36C.25D.64

14.有三個(gè)關(guān)系R、s和T如下:

由關(guān)系R和s通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。

A.并B.自然連接C.笛卡爾積D.交

15.采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類(lèi)似于二叉樹(shù)的()。

A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷

16.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),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.18B.19C.20D.21

17.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.efg,h,z,q,bcd

B.efg,d,zyz,wbbcd

C.efgabcdsnopqhijkIxyz,h,z,q,bcd

D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd

18.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的運(yùn)行結(jié)果是()。A.852B.963C.741D.875421

19.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達(dá)式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

20.已知10個(gè)元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序樹(shù),查找值為62的結(jié)點(diǎn)所需比較次數(shù)為()

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

二、2.填空題(20題)21.由25人圍坐成圓圈,先從任意一人出發(fā)用1到25順時(shí)針依次編號(hào),然后從1號(hào)開(kāi)始順時(shí)針報(bào)數(shù)(1、2、3…),凡報(bào)5的倍數(shù)者出圈,剩下者繼續(xù)報(bào)數(shù),求出最后出圈者的編號(hào)。

#include<stdio.h>

【】

{inta[26],j,n,count;

for(j=1;j<=25;j++)a[j]=j(luò);

j=1;count=0;n=【】;

do

{if(a[j]!=0)

{n++;

if(n%5==0)

{【】;

if(count==24)printf("%d\n",j);

count++;

}

}

j++;

if(j>25)j=1;

}

while(【】);

}

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

23.設(shè)有定義:floatx=123.4567;,則執(zhí)行以下語(yǔ)句后的輸出結(jié)果是()。printf("%f\n",(int)(x*100+0.5)/100.0);

24.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

25.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除—個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。

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

voidswap(intx,inty)

{intt;

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

}

main()

{inta=3,b=4;

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

}

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

main()

{inta=177;

printf(“%o\n”,A);

}

28.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為_(kāi)_____。

29.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

31.下面程序執(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);

}

32.有以下程序:

fun(inta,intb)

{if(a>b)return(a);

elsereturn(b);

}

main()

{intx=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

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

}

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

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

main()

{charc='z';

printf("%c",c-25);}

34.在程序設(shè)計(jì)階段應(yīng)該采取【】和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語(yǔ)言寫(xiě)成程序。

35.以下程序的功能是計(jì)算:s=1+12+123+1234+12345。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

intt=0.s=0,i:

for(i=1;i<=5;i++){t=i+【】;s=s+t;}

prinff("s=%d\n".s);}

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

#include<stdio.h>

intfun(intx)

{intp;

if(x==0‖x==1)

return3;

else

p=x-fun(x-2);

returnp;

}

voidmain()

{printf("\n%d",fun(11));

37.測(cè)試用例包括輸入值集和【】值集。

38.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大的值和它所在的下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>

#include<stdlib.h>

#include<stdio.h>

voidfun(inta[],intn,int*max,int*d)

{intI;

*max=a[0];

*d=0;

for(I=0;【】;I++)

if(*max<【】)

{*max=a[I];*d=i;}}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);}

39.若有以下程序:

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é)果是【】。

40.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序運(yùn)行時(shí),如果從鍵盤(pán)輸入:A,B,<CR>,則輸出結(jié)果為_(kāi)_____。

三、1.選擇題(20題)41.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}該程序中的for循環(huán)執(zhí)行的次數(shù)是______。

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

42.有下列二叉樹(shù),

對(duì)此二叉樹(shù)前序遍歷的結(jié)果為()。

A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI

43.以下程序的輸出結(jié)果是()。main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:C):(B));}

A.5B.4C.6D.不確定

44.以下程序運(yùn)行后的輸出結(jié)果是______。main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}

A.1000B.10010C.110D.10100

45.下列程序的輸出結(jié)果是()。#inelude<stdio.h>main(){inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);}

A.4B.22C.24D.46

46.以下程序的輸出結(jié)果是typedefunion{longx[2]inty[4];charz[8];}MYTYPE;MYTYPEthem;main(){printf("%d\n",sizeof(them));}

A.32B.16C.8D.24

47.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是

A.startB.endC.startendD.endrt

48.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

49.有以下程序main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)‖(m=a<b);printf("%d,%d\n",k,m);}程序運(yùn)行后的輸出結(jié)果是

A.0,0B.0,1C.1,0D.1,1

50.若在fopen函數(shù)中使用文件的方式是"wb+",該方式的含義是()

A.為讀/寫(xiě)打開(kāi)一個(gè)文本文件

B.為輸出打開(kāi)一個(gè)文本文件

C.為讀/寫(xiě)建立一個(gè)新的文本文件

D.為讀/寫(xiě)建立一個(gè)新的二進(jìn)制文件

51.利用fseek函數(shù)可實(shí)現(xiàn)的操作是()。

A.實(shí)現(xiàn)文件的順序讀寫(xiě)B(tài).改變文件的位置指針C.實(shí)現(xiàn)文件的隨機(jī)讀寫(xiě)D.以上答案均正確

52.以下程序的結(jié)果是()

main()

{unsignedinta=3,b=10;

printf("%d\n",a<<2|b>>1);

}

A.1B.5C.12D.13

53.以下程序的輸出結(jié)果是______。longfum(intn){longs;if(n==||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}

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

54.設(shè)計(jì)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)屬于()。

A.需求分析B.概念設(shè)計(jì)C.邏輯設(shè)計(jì)D.物理設(shè)計(jì)

55.函數(shù)rewind的作用是

A.使文件位置指針重新返回文件的開(kāi)始位置

B.將文件位置指針指向文件中所要求的特定位置

C.使文件位置指針指向文件的末尾

D.使文件位置指針自動(dòng)移至下一個(gè)字符位置

56.對(duì)關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱(chēng)為()

A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算

57.下列程序的輸出結(jié)果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}

A.非法B.a[4]的地址C.5D.3

58.以下程序(程序左邊的數(shù)字為附加的行號(hào))______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}

A.沒(méi)有錯(cuò)B.第1行有錯(cuò)C.第6行有錯(cuò)D.第7行有錯(cuò)

59.若x是整型變量,pb是基類(lèi)型為整型的指針變量,則正確的賦值表達(dá)式是______。

A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x

60.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項(xiàng)中正確的賦值語(yǔ)句是()。

A.p=1;B.*q=2;C.q=p;D.*p=5;

四、選擇題(20題)61.

設(shè)有以下定義和語(yǔ)句:

charstr[2O]="Program",*P:

p=str:

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

A.*p與stf[0]的值相等

B.str與P的類(lèi)型完全相同

C.str數(shù)組長(zhǎng)度和P所指向的字符串長(zhǎng)度相等

D.數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同

62.執(zhí)行下述程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0

63.

64.

65.

66.(VC++)若有以下定義,則對(duì)b數(shù)組元素正確的引用是

intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]

67.若已建立如下圖所示的單向鏈表結(jié)構(gòu):在該鏈表結(jié)構(gòu)中,指針p、s分別指向圖中所示結(jié)點(diǎn),則不能將s所指的結(jié)點(diǎn)插入到鏈表末尾仍構(gòu)成單向鏈表的語(yǔ)句組是A.p=p->next;s->next=p;p->next=s;

B.p=p->next;s->next=p->next;p->next=s;

C.s->next=NULL;p=p->next;p->next=s;

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

68.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程

C.軟件的開(kāi)發(fā)過(guò)程

D.軟件的運(yùn)行維護(hù)過(guò)程

69.

70.

71.

72.當(dāng)變量c的值不為2、4、6時(shí),值也為”真”的表達(dá)式是()。

A.

B.

C.

D.

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

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

74.

有下列程序:

#include<stdio.h>

main

{inta=6,b=7,m=1;

switch(a%2)

{case0:m++;break;

case1:m++;

switch(b%2)

{default:m++;

case0:m++;break;

}

}

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

}

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

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

75.已知大寫(xiě):字母A的ASCIl碼是65,小寫(xiě)字母a的ASCIl碼是97。以下不能將變量c中的大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母的語(yǔ)句是()。

76.

77.源程序的文檔不包括()。

A.符合號(hào)名的命名要有實(shí)際意義B.正確的文檔形式C.良好的視覺(jué)組織D.正確的程序注釋

78.“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是()。

A.一對(duì)一B.多對(duì)一C.一對(duì)多D.多對(duì)多

79.

80.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。

A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性

B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性

C.耦合性是指-個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度

D.內(nèi)聚性是指模塊間互相連接的緊密程度

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫(xiě)字母F。

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

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

試題程序:

#include<stdio.h>

voidproc(char*str)

{

inti,j;

//****found****

for(i=j=0;str[i]一0;i++)

if(str[i]!=F)

//****found****

str[i]=str[i];

str[j]=\0;

}

voidmain

{

charstr[80];

printf("\nEnterastring:");

gets(str);

printf("Theoriginalstring:");

puts(str);

proc(str);

printf("Thestringafterdeleted:");

puts(str);

printf("\n\n");}

六、程序設(shè)計(jì)題(1題)82.某學(xué)生的記錄由學(xué)號(hào)、8門(mén)課成績(jī)和平均分組成,學(xué)號(hào)和8門(mén)課的成績(jī)已在主函數(shù)中給出。請(qǐng)編寫(xiě)proc()函數(shù),它的功能是:求出該學(xué)生的平均分并放在記錄的ave成員中。請(qǐng)自己定義正確的形參。例如,若學(xué)生的成績(jī)是65.5,75,88,90,90.5,66,64.5,89.5,則他的平均分應(yīng)當(dāng)是78.625。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.A預(yù)處理命令是以“#”號(hào)開(kāi)頭的命令,它們不是C語(yǔ)言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書(shū)寫(xiě),一般在源文件的最前面書(shū)寫(xiě),但不是必須在起始位置書(shū)寫(xiě),所以B、c錯(cuò)誤。C語(yǔ)言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D錯(cuò)誤。

2.D解析:從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),指的是對(duì)象的封裝性。

3.B程序中,fun函數(shù)的功能是接收兩個(gè)數(shù)組a、b,以及數(shù)組a的元素個(gè)數(shù)n,然后通過(guò)for循環(huán)將數(shù)組a中下標(biāo)為偶數(shù)的元素與后面相鄰的下標(biāo)為奇數(shù)的元素兩兩相加,賦給數(shù)組b中下標(biāo)為j的元素,最后返回?cái)?shù)組b的個(gè)數(shù)。所以main函數(shù)中,通過(guò)調(diào)用fun函數(shù),將數(shù)組a的元素兩兩相加,得到數(shù)組b的各個(gè)元素,再通過(guò)for循環(huán)輸出,結(jié)果為:1593。故本題答案為B選項(xiàng)。

4.D124的2進(jìn)制值為1111100,要輸出為248即124*2,則2進(jìn)制值為11111000,即右移l位,所以選D。

5.D

6.Dif語(yǔ)句中的表達(dá)式可以是任意合法的數(shù)值,如常量、變量表達(dá)式。故本題答案為D選項(xiàng)。

7.A全局變量有效范圍是從定義的位置開(kāi)始到所在源文件的結(jié)束,在這區(qū)域內(nèi)的函數(shù)才可以調(diào)用,如果在定義函數(shù)之后,定義的變量,該變量不能被之前的函數(shù)訪問(wèn)所以A選項(xiàng)說(shuō)法錯(cuò)誤,答案為A選項(xiàng)。

8.D此題考查的是常量和變量的定義,常量不是經(jīng)常使用的變量,而是一個(gè)確定的數(shù)值,所以答案選擇D。

9.A此題考查a--和--a之間的區(qū)別,當(dāng)while(a--)為真循環(huán)執(zhí)行,a--是執(zhí)行再減1,所以答案選擇A。

10.A運(yùn)算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級(jí)高于“==”,選項(xiàng)A等價(jià)于“(!a)==0”。如果a不等于0,則表達(dá)式為真,否則表達(dá)式為假。故本題答案為A選項(xiàng)。

11.Aif條件為真,執(zhí)行“x=y;”,此時(shí)x=11,y=11,z=12;再執(zhí)行“y=z;z=x;”,此時(shí)y=12,z=11,即x=11,y=12,z=11。故本題答案為A選項(xiàng)。

12.D

13.C當(dāng)if執(zhí)行到第一個(gè)滿(mǎn)足(i*i>=20)(i*i<=100)這個(gè)條件的i出現(xiàn)時(shí),通過(guò)break語(yǔ)句跳出循環(huán),執(zhí)行下面的prinlf語(yǔ)句。

14.D關(guān)系R與s經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。

15.A

16.A循環(huán)的作用是求行下標(biāo)從1到2列下標(biāo)從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。

17.A程序定義一個(gè)二維字符數(shù)組v,使用5個(gè)字符串對(duì)其初始化。對(duì)于表達(dá)式“*v”等價(jià)于“*(v+0)”,輸出的是數(shù)組v的第1個(gè)元素efg;“**(v+3)”等價(jià)于“*(*(v+3)+0)”,輸出的是數(shù)組v的第4個(gè)元素的第1個(gè)字符h;“v[4]”表示數(shù)組v的

溫馨提示

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