2021年廣東省廣州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第1頁
2021年廣東省廣州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第2頁
2021年廣東省廣州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第3頁
2021年廣東省廣州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第4頁
2021年廣東省廣州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(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)

文檔簡介

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

一、單選題(20題)1.

2.有以下程序:#include<stdio.h>main(){inty=10;while(y--);printf(“y=%d\n”,y);}程序運(yùn)行后的輸出結(jié)果是()。

A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)

3.下列不屬于過程設(shè)計(jì)工具中圖形工具的是()。

A.N—SB.PADC.程序流程圖D.PDL

4.設(shè)q1和q2是指向一個(gè)float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語句是()。

A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);

5.有以下程序:#include<stdio.h>voidswap(int*a,int*b){intt,*tp;t=*a;*a=*b;*b=t;tp=a;a=b;b=tp;printf(“%d,%d,”,*a,*b);}main(){inti=3,j=7,*p=&i,*q=&j;swap(p,q);printf(“%d,%d,%d,%d”,i,j,*p,*q);}程序運(yùn)行后的輸出結(jié)果是()。

A.3,7,3,7,3,7B.7,3,7,3,7,3C.3,7,3,7,7,3D.3,7,7,3,7,3

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

#include<stdio.h>

main()

{inta=28,b;

chars[10],*p;

p=s;

do{b=a%16;

if(b<10)*p=b+48;

else*p=b+55;

p++;a=a/5;}while(a>0);

*p=′\0′;puts(s);}

A.10B.C2C.C51D.\0

7.

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

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

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

#include<stdio.h>

voiddelch(char*s)

{inti,j;

char*a;

a=s;

for(i=0,j=0;a[i]!=′\n′;i++)

if(a[i]>=′0′&&a[i]<=′9′)

{s[j]=a[i];j++;}

s[j]=′\0′;}

main()

{char*item="a34bc";

delch(item);

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

A.abcB.34C.a34D.a34bc

10.語句:“printf("%d",(a=)&&(b=-2));”的輸出結(jié)果是()。

A.無輸出B.結(jié)果是不確定C.-1D.1

11.若f(n)=3n2+2n+1,則f(n)=()。

A.O(n2)B.O(n)C.O(2n)D.O(3n2)

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

13.設(shè)R是一個(gè)2元關(guān)系,有3個(gè)元組,S是一個(gè)3元關(guān)系,有3個(gè)元組。如T=R×S,則T的元組的個(gè)數(shù)為()。A.6B.8C.9D.12

14.

15.有以下程序段chareh;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

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

C.a,97,12k=12

D.a,97,k=12

16.

17.

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

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

19.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用直接選擇大值開始排序時(shí),第一趟掃描結(jié)果是()

A.(541,132,827,746,518,181,946,314,205,984)

B.(205,132,314,181,518,746,946,984,541,827)

C.(132,541,746,984,181,518,314,946,205,827)

D.(132,541,746,518,181,946,314,205,827,984)

20.下列敘述中正確的是:()A.C語言程序中,main()函數(shù)必須在其它函數(shù)之前,函數(shù)內(nèi)可以嵌套定義函數(shù)

B.C語言程序中,main()函數(shù)的位置沒有限制,函數(shù)內(nèi)不可以嵌套定義函數(shù)

C.C語言程序中,main()函數(shù)必須在其它函數(shù)之前,函數(shù)內(nèi)不可以嵌套定義函數(shù)

D.C語言程序中,main()函數(shù)必須在其它函數(shù)之后,函數(shù)內(nèi)可以嵌套定義函數(shù)

二、2.填空題(20題)21.以下程序的輸出是【】。

main()

{

charstr1[]=Howdoyoudo",*p=strl;

strcpy(str1+strlen(str1)\2"esshe");

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

}

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

#include<stdio,h>

#include<string,h>

main()

{charch[]="abc".,x[3][4]:inti:

for(i=0;i<3:i++)strcpy(x[i],ch):

for(i=0;i<3:i++)printf("%s",&x[i][i]);

printf("\n")

}

23.若有定義intm=5,y=2,則執(zhí)行表達(dá)式y(tǒng)+=y-=m*=y后,y的值為【】。

24.以下程序的功能是調(diào)用函數(shù)fun計(jì)算:m=1-2+3-4+…+9-10,并輸出結(jié)果。請(qǐng)?zhí)羁铡?/p>

intfun(intn)

{intm=0,f=1,i;

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

m+=i*f;

f=【】;

returnm;

}

main()

{printf("m=%d\n",【】);}

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

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

26.表達(dá)式10+'a'+1.5-0.5*'B'的結(jié)果是【】。

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

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

28.存儲(chǔ)300個(gè)16×16點(diǎn)陣的漢字信息需要【】字節(jié)。

29.若輸入字符串:(圖片),則以下while循環(huán)體將執(zhí)行【】次。

while((ch=getchar())=='e')printf("*");

30.設(shè)有如下程序段:

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

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

上述程序段的輸出結(jié)果是【】。

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

32.以下程序中函數(shù)f的功能是在數(shù)組x的n個(gè)數(shù)(假定n個(gè)數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)語第一個(gè)數(shù)兌換,把最大的數(shù)語最后一個(gè)數(shù)對(duì)換。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

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

if(x[m]>i){i=x[m];p0=m;}

elseif(x[m]<j){j=x[m];p1=m;

}

t=x[p0];x[p0]=x[n-1];x[n-1]=t;

t=x[p1];x[p1]=[11];[12]=t;

main()

{inta[10],u;

for(u=0;u<10;u++)scanf("%d",&a[u]);

f(a,10);

for(u=0;u<10;u++)printf("%d",a[u]);

printf("\n");

}

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

#include

char*ss(char*s)

{char*p,t;

P=s+1;t=*s;

while(*p){*(P-1)=*P;P++;}

*(P-1)=t;

returns;

}

main()

{char*p,str[10]="abcdefgh";

p=ss(str);

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

}

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

35.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。

36.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請(qǐng)寫出一條同一功能的賦值語句______。

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

main()

{enumern{em1=3,em2=1,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);

}

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

39.以下程序建立了一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸人數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next=NULL).

#include<stdio.h>

structlist{intdatd;structlist*next;};

【】creatlist()

{structlist*p,*q,*ph;

inta;

ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;

printf("Inputanintegernumber,enter-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{

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

p->data=a;

q->next=p;

【】=p;

scanf("%d",&a);

}

p->next='\0';

return(ph);

}

main()

{

structlisthead;

head=creatlist();

}

40.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請(qǐng)寫出fun函數(shù)的首部【】。要求形參名為b。

main()

{double[10][22];

intn;

......

fun(s);

}

三、1.選擇題(20題)41.設(shè)a和b均為int型變量,且a=6、b=11、c=3,則能使值為3的表達(dá)式是()。

A.b%(c%4)B.b%(c-a%5)C.b%a-a%5D.(b%A)-(a%4)

42.設(shè)函數(shù)fun的定義形式為voidfun(charch,floatx){…}則以下對(duì)函數(shù)fun的調(diào)用語句中,正確的是

A.fun("abc",3.0);

B.t=fun('D',16.5);

C.fun('65',2.8);

D.fun(32,32);

43.當(dāng)輸入為"quert?"時(shí),下面程序的執(zhí)行結(jié)果是#include<stdio.h>main(){charc;c=getchar();while(c!='?'){putchar(c);c=getchar();}}

A.quertB.RvfsuC.quert?D.rvfsu?

44.有以下程序段:typedefstructNODE{intnum;structNODE*nex;}OLD;以下敘述中正確的是()。

A.以上的說明形式非法B.NODE是一個(gè)結(jié)構(gòu)體類型C.OLD是一個(gè)結(jié)構(gòu)體類型D.OLD是一個(gè)結(jié)構(gòu)體變量

45.以下C程序的運(yùn)行結(jié)果為______。main(){inti=1,sum=0;loop:if(i<=10){sum+=i;i++;gotoloop;}printf("sum=%d\n",sum);}

A.sum=10B.sum=55C.sum=100D.sum=88

46.有程序段:intal,a2;Charcl,c2;scanf("%d%c%d%c",&a1,&cl,&a2,&c2);若要求a1、a2、c1、c2的值分別為10、20、A、B,正確的數(shù)據(jù)輸入()

A.10A20B<CR>B.10A20B<CR>C.10A20B<CR>D.10A20B<CR>

47.在標(biāo)準(zhǔn)C語言中,下列程序的輸出結(jié)果為______。main(){printf("%e",123.456);}

A.123.456B.123.4560C.1.23456e2D.1.234560e+002

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

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

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

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

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

49.閱讀以下程序及對(duì)程序功能的描述,其中正確的描述是#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf("%s",infile);printf("Entertheoutfilename:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){printf("cannotopeninfile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){printf("cannotopenoutfile\n");exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}

A.程序完成將磁盤文件的信息在屏幕上顯示的功能

B.程序完成將兩個(gè)磁盤文件合二為一的功能

C.程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中

D.程序完成將兩個(gè)磁盤文件合并并在屏幕上輸出

50.下面程序的輸出是______。main(){intx=3,y=6,a=0;while(x++!=y-=1)){a+=1;if(y<x)break;}printf("x=%d,a=%d\n",x,y,A);}

A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=,a=1

51.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次

52.下列敘述中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是

A.程序的效率第一,清晰第B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息

53.閱讀以下程序以及對(duì)程序功能的描述,其中正確的描述是()。#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf("%s",infile);printf("Entertheoutfilename:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){printf("cannotopeninfile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){printf("cannotopenoutfile\n");exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}

A.程序完成將磁盤文件的信息在屏幕上顯示的功能

B.程序完成將兩個(gè)磁盤文件合二為一的功能

C.程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中的功能

D.程序完成將兩個(gè)磁盤文件合并并在屏幕上輸出的功能

54.已知形成鏈表的存儲(chǔ)結(jié)構(gòu)如下圖所示,則下述類型描述中的空白處應(yīng)填______。structlink{chardata;______;}node;

A.Structlinknext

B.link*next

C.structnextlink

D.Structlink*next

55.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是

A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序易讀性

56.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是______。

A.運(yùn)行后報(bào)錯(cuò)B.66C.611D.510

57.設(shè)變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式正確的是(注:□代表空格字符)()。

A.10□X□20□Y<回車>

B.10□X20□Y<回車>

C.10□X<回車>

D.10X<回車>20□Y<回車>20Y<回車>

58.設(shè)有以下說明語句structex{intX;floaty;charz;}example;則下面的敘述中不正確的是

A.struct結(jié)構(gòu)體類型的關(guān)鍵字

B.example是結(jié)構(gòu)體類型名

C.x,y,z都是結(jié)構(gòu)體成員名

D.structex是結(jié)構(gòu)體類型名

59.以下程序中函數(shù)sort的功能是對(duì)a所指數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序:floatsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10),i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是______。

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

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

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

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

60.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){chara[]={'a','b','c','d','f','g'},*p;p=a;printf("%c\n",*p+4);}

A.aB.bC.eD.f

四、選擇題(20題)61.若二維數(shù)組a有m列,則在a[i][j]前的元素個(gè)數(shù)為()。

A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1

62.若有定義“intb[8],*p=b;”,則p+6表示()。

A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[o]的值加上6

63.

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

則由關(guān)系R和s得到關(guān)系T的操作是()。

A.自然連接B.并C.交D.差

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

A.c語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行

B.可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行

C.c語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行、

D.main的各種大小寫拼寫形式都可以作為主函數(shù)名,如MAIN,Main等

66.運(yùn)行下列程序,若從鍵盤輸入字符“a”,則輸出結(jié)果是()。

charc;

c=getchar;

if(c>=a&&c<=g)c=c+4:

elseif(c>=9&&c<=2)c=c-21:

elseprintf("inputerror!\n");

putchar(c);

A.fB.tC.eD.d

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

A.C程序在運(yùn)行過程中所有計(jì)算都以二進(jìn)制方式進(jìn)行

B.C程序在運(yùn)行過程中所有計(jì)算都以十進(jìn)制方式進(jìn)行

C.所有C程序都需要編譯鏈接無誤后才能運(yùn)行

D.C程序中字符變量存放的是字符的ASCIl碼值

68.

69.若a是數(shù)值類型,則邏輯表達(dá)式(a==1)||(a!=1)的值是()。

A.0B.1C.2D.不知道a的值,不能確定

70.(47)在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是()

A.詳細(xì)設(shè)計(jì)

B.需求分析

C.總體設(shè)計(jì)

D.編程調(diào)試

71.

72.不能實(shí)現(xiàn)函數(shù)之間數(shù)據(jù)傳遞的是()。

A.全局變量B.局部變量C.函數(shù)接口D.函數(shù)返回值

73.有以下程序

74.

75.

76.若在定義語句:

77.若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。#include#includemain{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.A.-1B.0C."abcdef"D."abdef"

78.程序中若有如下說明和定義語句

charfun(char*);

main()

{

char*s="one",a[5]={0},(*f1)()=fun,ch;

……

}

以下選項(xiàng)中對(duì)函數(shù)fun的正確調(diào)用語句是

A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);

79.下列處理中與隊(duì)列有關(guān)的是()。

A.操作系統(tǒng)中的作業(yè)調(diào)度B.執(zhí)行程序中的過程調(diào)用C.執(zhí)行程序中的循環(huán)控制D.——-X樹的遍歷

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ù)proc,該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。

例如,若二維數(shù)組中的數(shù)據(jù)為

13233343

14243444

15253545

則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。

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

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

試題程序:

#include<stdio.h>

voidproc(int(*s)[103,int*b,int*n,intrain.intnn)

{}

voidmain

{

intarr[10][10]={{33,33,33,33),{44,44,44,44},

{55,55,55,55}),i,j;

inta[l00]={o),n=o;

printf("Thematrix:\n");

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

{

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

printf("%3d",arr[i][j]):

printf("\n");

}

proc(arr,a,&n,3,4):

printf("TheAarray:\n");

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

printf("%3d",a[i]):

printf("\n\n");

}

參考答案

1.C

2.B執(zhí)行“y--”直到值為0。退出循環(huán)。由于“y--”是后綴自減運(yùn)算,先使用再自減,因此退出循環(huán)時(shí),y的值為-1。故本題答案為B選項(xiàng)。

3.D\n常用的過程設(shè)計(jì)工具有圖形工具(程序流程圖、N-S圖、PAD圖、HIPO)、表格工具(判定表)、語言工具(PDL)。

\n

4.B解析:選項(xiàng)A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項(xiàng)B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進(jìn)行賦值運(yùn)算:選項(xiàng)C)中,是兩個(gè)指針變量之間的賦值:選項(xiàng)D)中,是兩個(gè)指針型變量所指向的兩個(gè)float型數(shù)據(jù)相乘。

5.Dmain函數(shù)中,首先定義兩個(gè)整型變量i和j,初值為3和7,并將i的地址賦給p,j的地址賦給q,傳給swap函數(shù)。swap函數(shù)接收兩個(gè)整型指針變量a、b,然后使用整型變量t交換a、b所指向的值并輸出。通過指針變量的交換改變了實(shí)參i、j的值,使得i=7,j=3。指針變量tp交換a和b的值,由于a、b的值是p、q值的復(fù)制,因此這次交換只改變了形參a、b的值,對(duì)實(shí)參p、q的值沒有改變,此時(shí)指針變量a指向j,指針變量b指向i。函數(shù)最后輸出*a和*b,所以輸出3,7。由于swap函數(shù)改變了p和q指向的值,因此main函數(shù)輸出i的值為7,j的值為3,*P的值為i,*q的值為j。最終程序輸出:3,7,7,3,7,3。故本題答案為D選項(xiàng)。

6.C解析:考查用字符指針處理字符串的方法。語句'p=s;'是使指針p指向字符數(shù)組s。*p則引用了p所指位置的數(shù)組元素。通過指針來引用一維數(shù)組元素。

7.D

8.D

9.B解析:考查用指針引用字符串元素的方法。指針a通過數(shù)組元素下標(biāo)來從頭逐個(gè)地引用字符串item中的字符,判斷不是0~9之間的數(shù)字時(shí),就去掉這個(gè)字符,所以程序結(jié)束后,字符串item中就只剩下和兩個(gè)字符了。

10.D因?yàn)樵谶壿嫳磉_(dá)式中,兩邊的賦值表達(dá)式都成立,即值為1,故選擇D選項(xiàng)。

11.A

12.A

13.CC。R為n元關(guān)系,有P個(gè)元組S為m元關(guān)系,有q個(gè)元組。兩個(gè)關(guān)系笛卡兒積是一個(gè)n+m元的關(guān)系,元組個(gè)數(shù)是q×p。所以T的元組的個(gè)數(shù)為9個(gè)。

14.B

15.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號(hào)的十進(jìn)制整型數(shù)輸出,所以第一個(gè)輸出語句輸出的結(jié)果為a,97;第二個(gè)輸出語句輸出的結(jié)果為k=12。

16.D

17.D

18.B

19.A

20.B每個(gè)C程序有且只有一個(gè)主函數(shù)main,C程序總是從main函數(shù)開始執(zhí)行,main函數(shù)后面的一對(duì)圓括號(hào)不能省略,main函數(shù)可以位于程序的任意位置。函數(shù)不可以嵌套定義,但函數(shù)可以嵌套調(diào)用。

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

22.abcbccabcbcc解析:for循環(huán)用strcpy函數(shù)將字符數(shù)組ch的值'abc',分別復(fù)制給二維數(shù)組x的每一行,然后通過for循環(huán)先后打印出以x[0][0],x[1][1],x[2][2]開頭的字符串'abe','bc','c',所以輸出結(jié)果為:abcbcc。

23.-16-16解析:將賦值運(yùn)算符右側(cè)的“表達(dá)式”的值賦給左側(cè)的變量,并且賦值運(yùn)算符按照“自右而左”的結(jié)合順序,本題表達(dá)式應(yīng)先算m的值為10,再運(yùn)算y的值為8,最后計(jì)算y=y+(-8)=-8+(-8)=-16。

24.-f或f*-1或-1*f或f*(-1)或(-1)*ffun(10)-f或f*-1或-1*f或f*(-1)或(-1)*f\r\nfun(10)解析:調(diào)用fun()函數(shù)計(jì)算m的值,在主函數(shù)中的空格處應(yīng)該填調(diào)用fun()函數(shù)的語句。fun()函數(shù)有一個(gè)形參n,為每次參加計(jì)算的值的個(gè)數(shù),故在主函數(shù)中的空格處應(yīng)該填fun(10),回到fun()函數(shù),函數(shù)用到了一個(gè)for循環(huán),共循環(huán)n次,當(dāng)循環(huán)第i次的時(shí)候,m的值等于m=1-2+……+[(-1)的i-1次方]*i,所以在fun()函數(shù)的空格處應(yīng)該填使f改變符號(hào)的語句,故應(yīng)填-f或f*-1或-1*f或f*(-1)或(-1)*f。

25.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當(dāng)n=4時(shí),判斷條件不滿足,退出循環(huán)。

26.75.5

27.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個(gè)case標(biāo)號(hào)的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會(huì)轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是起語句標(biāo)號(hào)作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2:分支,最后a和b的值分別為2和1。

28.800800解析:一個(gè)16x16點(diǎn)陣的字形碼需要16x16/8=32字節(jié)的存儲(chǔ)空間,所以300個(gè)漢字信息需要9600個(gè)字節(jié)。

29.00解析:函數(shù)getchar()是從鍵盤得到用戶輸入的一個(gè)字符。用戶輸入的第1個(gè)字符是a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個(gè)循環(huán)不會(huì)被執(zhí)行。

30.16

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

32.x[0]x[0]x[0]x[0]解析:函數(shù)f()通過for循環(huán)逐個(gè)比較數(shù)組x中的元素,循環(huán)結(jié)束后,p0和p1分別表示最大值和最小值在數(shù)組中的下標(biāo)位置,然后按照題意將最大值x[p0]和數(shù)組的最后一個(gè)元素x[n-1)交換位置,再將最小值x[p1]和第一個(gè)元素(x[0])進(jìn)行交換,所以空白處應(yīng)該填入x[0]。

33.bcdefgha

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

35.交換排序交換排序解析:所謂排序是指將一個(gè)無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

36.x+=1x+=1解析:本題考查“++”,“--”運(yùn)算符?!?+”、“--”只能作用于變量,不能用于表達(dá)式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。

37.DDBBCCDDBBCC解析:c語言對(duì)枚舉的定義規(guī)定定:在枚舉中聲明的各個(gè)枚舉元素,如果沒有明確指出某個(gè)枚舉元素的值,它的上一個(gè)元素存在并有明確值的情況下,這個(gè)枚舉元素的值為其上一個(gè)元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為“DDBBCC”。

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

39.structlist*q

40.voidfun(doubleb[10][22])voidfun(doubleb[10][22])解析:本題答案:voidfun(doubleb[10][22])。

41.D選項(xiàng)D)括號(hào)內(nèi)的運(yùn)算分別是b%a=11%6=5和a%c=6%4=2,最后得到5-2=3。

42.D解析:題目中定義的函數(shù)fun()有兩個(gè)參數(shù),一個(gè)是字符型變量ch,另一個(gè)是浮點(diǎn)型變景x,函數(shù)類型是void即無返回值。選項(xiàng)A調(diào)用fun的第1個(gè)參數(shù)是字符串常量與字符變量不匹配,所以不正確。選項(xiàng)B是有返回值函數(shù)的調(diào)用形式,不正確。選項(xiàng)C的第1個(gè)參數(shù)是錯(cuò)誤的字符常量,字符常量是用單引號(hào)括起來的—個(gè)字符(是轉(zhuǎn)義字符可能有多個(gè)字符),故也不正確。選項(xiàng)D使用兩個(gè)整型常量調(diào)用fun這在C語言中是允許的。因?yàn)檎偷阶址涂梢宰詣?dòng)轉(zhuǎn)換,整型到浮點(diǎn)型也可以自動(dòng)轉(zhuǎn)換。故應(yīng)該選擇D。

43.A解析:本題考查的是字符的輸入輸出函數(shù)getchar和putchar。本題程序段實(shí)現(xiàn)的功能是:從鍵盤上逐個(gè)的輸入字符,直到遇到‘?’則結(jié)束輸入,并把除‘?’以外輸入的每個(gè)字符輸出到屏幕上。

44.C解析:typedef關(guān)鍵字用于聲明一個(gè)新的類型名代替已有的類型名。本題中如果沒有用typedef進(jìn)行定義的話,則structNODE為結(jié)構(gòu)體類型,而用typedef定義后,相當(dāng)于用OLD代表了struetNODE這一結(jié)構(gòu)體類型,故OLD為結(jié)構(gòu)體類型。

45.B

46.A

47.D

48.CC。【解析】軟件工程是指將工程化的思想應(yīng)用于軟件的開發(fā)、應(yīng)用和維護(hù)的過程,包括軟件開發(fā)技術(shù)和軟件工程管理。

49.C解析:本題中,最主要的是掌握幾個(gè)有關(guān)文件的函數(shù)的應(yīng)用。

函數(shù)名:fopen功能:打開一個(gè)文件調(diào)用方式FILE*fp;fp=fopen(文件名,使用文件方式);

函數(shù)名:feof功能:檢查文件是否結(jié)束調(diào)用方式:feof(FILE*fp);

函數(shù)名:fputc功能:把一個(gè)字符寫到磁盤文件上去調(diào)用方式:fputc(ch,fp)(ch是要輸出的字符,fp是從指定的文件讀入一個(gè)字符,該文件必須是以讀或讀寫方式打開的調(diào)用方式:ch=fgetc(fp)(ch是字符變量,fp是文件指針變量);

函數(shù)名:fclose功能:關(guān)閉一個(gè)文件調(diào)用方式:fclose(文件指針)。

50.D解析:注意的是x++中x值的引用時(shí),這里應(yīng)當(dāng)是先引用,后自加,具體執(zhí)行過程如下:

第一次while循環(huán):條件為真,執(zhí)行a=a+1=1;此時(shí),x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);

第二次while循環(huán);條件為假,此時(shí)x的值已為5,退出while循環(huán),執(zhí)行printf。

51.B解析:本題考查while語句的使用。本題考查邏輯非運(yùn)算符和不等于運(yùn)算符的區(qū)別,邏輯非運(yùn)算符'!'的優(yōu)先級(jí)大于不等于運(yùn)算符'!='的優(yōu)先級(jí)。

52.A解析:當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格是“清晰第一,效率第二”的觀點(diǎn)。結(jié)構(gòu)化程序設(shè)計(jì)思想提出之前,在程序設(shè)計(jì)中曾強(qiáng)調(diào)程序的效率,而在實(shí)際應(yīng)用中,人們更注重程序的可理解性。

53.C解析:在C程序中,如果已經(jīng)定義文件指針FILE*fp;fopen函數(shù)的功能是打開一個(gè)文件,調(diào)用方式為fp=fopen(文件名,使用文件方式);feof函數(shù)的功能是檢查文件是否結(jié)束,調(diào)用方式為feof(FILE*fp);fpute函數(shù)的功能是把一個(gè)字符寫到磁盤文件中,調(diào)用方式為fputc(ch,fp),ch是要輸出的字符,fp是指定要將該字符寫入的文件,該文件必須已經(jīng)以寫或讀寫方式打開了;fgetc函數(shù)的功能是從磁盤文件中讀入一個(gè)字符,調(diào)用方式為ch=fsetc(fp),ch是字符變量,fp是文件指針變量;fclose函數(shù)的功能是關(guān)閉一個(gè)文件,調(diào)用方式為fclose(文件指針)。

54.D解析:在單向鏈表中,由于每個(gè)結(jié)點(diǎn)需要存儲(chǔ)下一個(gè)結(jié)點(diǎn)的地址,且下一個(gè)結(jié)點(diǎn)的數(shù)據(jù)類型與前一個(gè)結(jié)點(diǎn)的數(shù)據(jù)類型完全相同,故應(yīng)為structlink*next。

55.D結(jié)構(gòu)化程序設(shè)計(jì)由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第二”,以模塊化設(shè)計(jì)為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個(gè)相互獨(dú)立的模塊,這樣使完成每一個(gè)模塊的工作變得單純而明確,為設(shè)計(jì)一些較大的軟件打下了良好的基礎(chǔ)。

由于模塊相互獨(dú)立,因此,在設(shè)計(jì)其中一個(gè)模塊時(shí),不會(huì)受到其他模塊的牽連,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊的設(shè)計(jì)。模塊的獨(dú)立性還為擴(kuò)充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因?yàn)榭梢猿浞掷矛F(xiàn)有的模塊作為積木式的擴(kuò)展。

結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用“自頂向下,逐步求精”的程序設(shè)計(jì)方法和“單入口單出口”的控制結(jié)構(gòu)。自頂向下、逐步求精的程序設(shè)計(jì)方法從問題本身開始,經(jīng)過逐步細(xì)化,將解決問題的步驟分解為由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;“單入口單出口”的思想認(rèn)為一個(gè)復(fù)雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過組合、嵌套構(gòu)成,那么這個(gè)新構(gòu)造的程序一定是一個(gè)單入口單出口的程序。據(jù)此就很容易編寫出結(jié)構(gòu)良好、易于調(diào)試的程序。

56.A解析:本題考核的知識(shí)點(diǎn)是通過指針引用數(shù)組的元素的方法.本題中首先定義了一個(gè)一維數(shù)組a并初始化,由于定義該數(shù)組的時(shí)候省略了長度,因此該數(shù)組的長度為初始化時(shí)候賦初值的個(gè)數(shù)即為12。數(shù)組名a代表數(shù)組的首地址,所以*p=a+5語句使得p指向數(shù)組的第6個(gè)元素,而在程序中定義了一個(gè)指針q并讓它指向空,實(shí)際上程序并沒有在內(nèi)存中為指針q開辟存儲(chǔ)空間,這樣給q賦值不允許的,故該程序運(yùn)行后報(bào)錯(cuò)。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

57.D解析:當(dāng)從鍵盤輸入字符,并且在格式說明中未制定寬度時(shí),輸入字符(包括空格符、回車符、Tab符)將按順序賦予各輸入項(xiàng)。也就是說,輸入字符之間沒有間隔符,所以選項(xiàng)D是正確的。

58.B解析:本題中,structex是結(jié)構(gòu)體類型名,ex-ample是結(jié)構(gòu)體變量名。

59.C解析:本題考查數(shù)組名作為函數(shù)形參的函數(shù)調(diào)用問題。數(shù)組名作函數(shù)形參是按地址傳遞,形參的改變可以傳回實(shí)參。sort函數(shù)的兩個(gè)形參中一個(gè)是數(shù)組名,sort函數(shù)的功能是對(duì)數(shù)組元素進(jìn)行由大到小的排序。主函數(shù)調(diào)用sort函數(shù)時(shí),實(shí)參為aa[3]元素的地址和整數(shù)5,即sort函數(shù)將對(duì)數(shù)組aa中的元素aa[3]、aa[4]、aa[5]、aa[6]、aa[7]5

溫馨提示

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