2021年貴州省銅仁地區(qū)全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第1頁(yè)
2021年貴州省銅仁地區(qū)全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第2頁(yè)
2021年貴州省銅仁地區(qū)全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第3頁(yè)
2021年貴州省銅仁地區(qū)全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第4頁(yè)
2021年貴州省銅仁地區(qū)全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(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年貴州省銅仁地區(qū)全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(12題)1.以下說(shuō)法錯(cuò)誤的是()。

A.C語(yǔ)言標(biāo)識(shí)符中可以有多個(gè)字母、數(shù)字和下劃線(xiàn)字符

B.C語(yǔ)言標(biāo)識(shí)符中下劃線(xiàn)字符可以出現(xiàn)在任意位置

C.C語(yǔ)言標(biāo)識(shí)符不能全部由數(shù)字組成

D.C語(yǔ)言標(biāo)識(shí)符必須以字母開(kāi)頭

2.有以下程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;for(;j<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i]);printf("\n");}如果從鍵盤(pán)上輸入:ab<回車(chē)>c<回車(chē)>def<回車(chē)>則輸出結(jié)果為_(kāi)_____。

A.abcdefB.abcdC.abcdD.abcdef

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

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

4.一個(gè)C語(yǔ)言程序總是從()開(kāi)始執(zhí)行:

A.主程序B.子程序C.主函數(shù)D.第一個(gè)函數(shù)

5.有種數(shù)據(jù)結(jié)構(gòu)叫跳躍列表(SkipList),它是一種基于并聯(lián)的鏈表的隨機(jī)化數(shù)據(jù)結(jié)構(gòu),其效率可比擬于二叉查找樹(shù)(對(duì)于大于數(shù)操作需要O(logn)平均時(shí)間)。它是按層建造的。底層是一個(gè)普通的有序鏈表。每個(gè)更高層都充當(dāng)下面列表的“快速跑道”,這里在層i中的元素按概率l/p出現(xiàn)在層i+1中。平均起來(lái),每個(gè)元素都在p/(p-1)個(gè)列表中出現(xiàn),而最高層的元素(通常是在跳躍列表前段的一個(gè)特殊的頭元素)在O(logpn)個(gè)列表中出現(xiàn)。調(diào)節(jié)p的大小可以在內(nèi)存消耗和時(shí)間消耗上進(jìn)行折中。試分析在該數(shù)據(jù)結(jié)構(gòu)中查找一個(gè)元素的平均時(shí)間復(fù)雜度。

A.O(logn)B.O(n)C.O(n*logn)D.以上都不正確

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

A.c語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言

B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題

C.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

7.有以下程序:#include<stdio.h>main(){chara==‘0’,b=‘A’;inti;for(i=1;i<6;i++)if(i%2==0)putchar(a+i);elseputchar(b+i);}程序運(yùn)行后的輸出結(jié)果是()。

A.A2A3BB.2B4DFC.B4CD7D.B2D4F

8.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項(xiàng)中表達(dá)式的值為11的是()。

A.*pt->yB.pt->xC.++pt->xD.(pt++)->x

9.以下不能輸出字符A的語(yǔ)句是(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)()。

A.print[("%c\n",a-32);

B.print[("%d\n",A);

C.printf("%c\n",65);

D.printf("%c\n",B-1);

10.廣義表(a,b,c,d)的表尾是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

11.若已包括頭文件且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語(yǔ)句錯(cuò)誤的是()。

A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

D.for(i=0;i<6;i++)sl[i]=s2[i]

12.

二、2.填空題(12題)13.以下程序建立了一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過(guò)鍵盤(pán)輸入,當(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();

}

14.下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁铡?/p>

#include"stdio.h"

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

15.下列程序的輸出結(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));

}

16.以下程序的功能是調(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",【】);}

17.以下程序運(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")

}

18.若x和a均是int型變量,則計(jì)算完x=(a=4,6*2)后的x值為_(kāi)_____。

19.軟件生命周期分為軟件定義期、軟件開(kāi)發(fā)期和軟件維護(hù)期,詳細(xì)設(shè)計(jì)屬于______中的一個(gè)階段。

20.按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。

21.函數(shù)fun的功能是計(jì)算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已經(jīng)正確定義變量m,a,b并賦值,要調(diào)用函數(shù)fun計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語(yǔ)句為【】。

22.數(shù)據(jù)庫(kù)保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。

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

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);}

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

main()

{charc;intn=100;

floatf=10;doublex;

x=f*=n/=(c=50);

printf("%d%f\n",n,x);

}

三、3.程序設(shè)計(jì)題(10題)25.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中,注意:分?jǐn)?shù)最高的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最高的學(xué)生的人數(shù)。

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

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

26.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過(guò)形參n傳回,平均分通過(guò)函數(shù)值返回。

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

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

27.請(qǐng)編寫(xiě)一個(gè)函數(shù)fun(),它的功能是:將ss所指字符串中所有下標(biāo)為偶數(shù)位置的字母轉(zhuǎn)換為小寫(xiě)(若該位置上不是字母,則不轉(zhuǎn)換)。

例如,若輸入ABC4efG,則應(yīng)輸出aBc4efg。

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

#include<string.h>

voidfun(char*SS)

{

}

main()

{

chartt[81];

clrscr();

printf("\nPleaseenteranstringwithin80

characters:\n");

gets(tt);

printf("\n\nAfterchanging,thestring\n

\%s",tt);

fun(tt);

printf("\nbecomes\n\%S\n",tt);

}

28.請(qǐng)編寫(xiě)函數(shù)fun(),該函數(shù)的功能是:移動(dòng)一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)從0到p(p≤n-1)的數(shù)組元素平移到數(shù)組的最后。

例如,一維數(shù)組中的原始內(nèi)容為1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值為3。移動(dòng)后,一維數(shù)組中的內(nèi)容應(yīng)為5,6,7,8,9,10,11,12,13,14,15,1,2,3,4。

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

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

試題程序:

#include<stdio.h>

#defineN80

voidfun(int*w,intp,intn)

{

}

main()

{

inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

inti,p,n=15;

printf("Theoriginaldata:\n");

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

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

printf("\n\nEnterp:");

scanf("%d",&p);

fun(a,p,n);

printf("\nThedataaftermoving:\n");

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

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

printf("\n\n");

}

29.請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。

例如,一維數(shù)組中的數(shù)據(jù)是:2223445666677899101010。

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2345678910。

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

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

30.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:把指定分?jǐn)?shù)范圍之外的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,分?jǐn)?shù)范圍之外的學(xué)生人數(shù)由函數(shù)值返回。

例如,輸入的分?jǐn)?shù)是80和89,則應(yīng)當(dāng)把分?jǐn)?shù)低于80和高于89的學(xué)生數(shù)據(jù)進(jìn)行輸出,不包含80分和89分的學(xué)生數(shù)據(jù)。主函數(shù)中把80放在low中,把89放在heigh中。

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

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

試題程序

#include<stdio.h>

#defineN16

typedefstruct

{charnum[10];

ints;

}STREC;

intfun(STREC*a,STREC*b,int1,inth)

{

}

main()

{

STRECs[N]={{“GA005”,55},{“GA003”,96},

{“GA002”,80},{“GA004”,68},{“GA001”,88},

{“GA007”,74},{“GA008”,85},{“GA006”,99},

{“GA015”,90},{“GA013”,53},{“GA012”,66},

{“GA014”,82},{“GA0ll”,73},{“GA017”,69},

{“GA018”,64},{“GA016”,86}};

STECh[N],tt;

FILE*out;

inti,j,n,low,heigh,t;

printf(“Enter2integernumberlow&heigh:”);

scanf(“%d%d”,&low,&heigh);

if(heigh<low)

{

t=heigh;

heigh=low;

low=t;

}

n=fun(S,h,low,heigh);

printf(“Thestudent'Sdataout%d--%d:\n”,low,heigh);

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

printf("%s%4d\n",h[i].num,h[i].s);

/*輸出指定分?jǐn)?shù)范圍內(nèi)的學(xué)生記錄*/

printf(“\n”);

ut=fopen(“out23.dat”,“w”);

fprintf(out,“%d\n”,n);

n=fun(s,h,70,79);

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

/*分?jǐn)?shù)在70~79之外的學(xué)生記錄按分?jǐn)?shù)從低到高排列*/

for(j=i+l;i<n;j十+)

if(h[i].s>h[j].s)

{

tt=h[i];

h[i]=h[j];

h[j]=tt;

}

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

fprintf(out,“%4d\n”,h[i].s);

fprintf(out,“\n”);

fclose(out);

}

31.請(qǐng)編寫(xiě)函數(shù)fun,其功能是:計(jì)算并輸出當(dāng)x<0.97時(shí)下列多項(xiàng)式的值,直到|Sn-Sn-2

|<0.000001為止。

例如,在主函數(shù)中從鍵盤(pán)給x輸入0.21后,輸出為:s=1.100000。

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

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

32.請(qǐng)編寫(xiě)函數(shù)fun(),其功能是:計(jì)算并輸出下列多項(xiàng)式的值。

S=1+4/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)

例如,著主函數(shù)從鍵盤(pán)給n輸入50后,則輸出為S=1.960784。

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

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

試題程序:

#include<stdio.h>

doublefun(intn)

{

}

main()

{

intn;

doubles;

printf("\nInputn:");

scanf("%d",&n);

s=fun(n);

printf("\n\ns=%f\n\n",s);

}

33.請(qǐng)編寫(xiě)函數(shù)fun(),其功能是;計(jì)算井輸出下列多項(xiàng)式值。

S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)

例如,若主函數(shù)從鍵盤(pán)給n輸入8后,則輸出為S-0.662872。

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

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

試題程序;

#include<stdio.h>

doublefun(intn)

{

}

main()

{

intn;

doubles;

printf("\nInputn:");

scanf("%d",&n);

s=fun(n);

printf("\ns=%f\n",s);

}

34.假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:使字符串中前部的*號(hào)不得多余n個(gè);若多余n個(gè),則刪除多余的*號(hào);若少于或等于n個(gè),則什么也不做,字符串中間和尾部的*號(hào)不刪除。

例如,字符串中的內(nèi)容為****A*BC*DEF*G*******,若n的值為2,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是**A*BC*DEF*G*******;若n的值為4,則字符串中的內(nèi)容仍為****A*BC*DEF*G******。n的值在主函數(shù)中輸入。在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。

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

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

試題程序:

#include<stdio.h>

#include<conio.h>

voidfun(charAa,intn)

{

}

main()

{chars[81];intn;

printf("Enterastring:\n");gets(s);

printf("Entern:");scanf("%d",&n);

fun(s,n);

printf("Thestringafterdeleted:\n");

puts(s);

}

四、單選題(0題)35.有以下程序#include<stdio.h>voidfun(int*a,int*B){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是______。A.3,5,5,3B.3,5,3,5C.5,3,3,5D.5,3,5,3

五、單選題(0題)36.算法的時(shí)間復(fù)雜度取決于()

A.問(wèn)題的規(guī)模B.待處理數(shù)據(jù)的初態(tài)C.A和B

六、單選題(0題)37.有以下程序#include<stdio.h>structst{intx,y;}data[2]={1,10,2,20};main(){structst*p=data;printf("%d,",p->y);printf("%d\n",(++p)->x);}程序的運(yùn)行結(jié)果是______。A.10,1B.20,1C.10,2D.20,2

參考答案

1.DC語(yǔ)言的合法的標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下劃線(xiàn)組成,并且第1個(gè)字符必須是字母或下劃線(xiàn)。選項(xiàng)D錯(cuò)誤。本題答案為D選項(xiàng)。

2.C解析:1.getchar():此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符。

2.putchar():此函數(shù)的作用是向終端輸出一個(gè)字符,也可以輸出控制字符。本題在輸入字符時(shí),ab和c后面的回車(chē)符分別賦給了c[2]和c[4],所以,正確答案為C。

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

4.C

5.A

6.BC語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言。結(jié)構(gòu)化程序設(shè)計(jì)是以模塊化設(shè)計(jì)為中心的,有三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。各模塊相互獨(dú)立,因而可將原來(lái)較為復(fù)雜的問(wèn)題化簡(jiǎn)為一系列簡(jiǎn)單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護(hù)性。

7.D程序首先定義字符變量a并賦初值‘0’,定義字符變量b并賦初值‘A’。然后執(zhí)行for循環(huán),當(dāng)i為偶數(shù)時(shí),輸出字符“a+i”;當(dāng)i為奇數(shù)時(shí),輸出字符“b+i”。因?yàn)閿?shù)字和字母的ASCII值都是按順序遞增的,所以本題輸出為B2D4F。故本題答案為D選項(xiàng)。

8.C解析:要計(jì)算一個(gè)復(fù)雜的表達(dá)式時(shí),首先要弄明白表達(dá)式中所有運(yùn)算符的優(yōu)先級(jí)與結(jié)合性,本題中所涉及的運(yùn)算符中,->的優(yōu)先級(jí)最高,*和++的優(yōu)先級(jí)相同,但其結(jié)合性為從右至左。所以選項(xiàng)A等價(jià)于*pt->y)也就是pt所指向的結(jié)構(gòu)體的成員指針變量y所指向的內(nèi)容。從前面的程序段不難看出,pt指向結(jié)構(gòu)體數(shù)組c的首地址,也就是指向它的第1個(gè)元素,在它的第1個(gè)元素中,指針變量y又被初始化為指向控型數(shù)組a的首地址,即指向數(shù)組a的第1個(gè)元素。故選項(xiàng)A中的表達(dá)式的值為a[0],也就是1。選項(xiàng)B中表達(dá)式的值就是c[0].x,即10。根據(jù)優(yōu)先級(jí)和結(jié)合性,選項(xiàng)C中的表達(dá)式等價(jià)于++(pt->x),由于是前綴++,所以整個(gè)表達(dá)式的值為pt->x的值加1,故為11。而選項(xiàng)D中,++是后綴形式,所以(pt++)的值還是pt的原值,即等于pt->x的值10。故應(yīng)該選擇C。

9.B在C語(yǔ)言中%d表示輸出整型數(shù)值,所以答案為B。

10.C

11.C數(shù)組名sl是代表sl數(shù)組首地址的地址常量,因?yàn)椤?”左邊不能出現(xiàn)常量,所以s1="ABCDE"的方法是錯(cuò)誤的。

12.B

13.structlist*q

14.dat""w"或"bi.dat""w+"或"bi.dat""r+"dat','w'或'bi.dat','w+'或'bi.dat','r+'解析:本題的考點(diǎn)是fopen()函數(shù),此函數(shù)的格式是fopen(文件名,使用文件方式),題目的要求是將從鍵盤(pán)讀入的文本寫(xiě)到文件中,因此選擇的打開(kāi)方式應(yīng)該是'w'(只寫(xiě))?;蛘呤亲x寫(xiě)“r+”或“w+”。

15.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-fun(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.

16.-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ù)的語(yǔ)句。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ǔ)句,故應(yīng)填-f或f*-1或-1*f或f*(-1)或(-1)*f。

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

18.1212解析:x=(表達(dá)式1,表達(dá)式2,…)的形式,結(jié)果為最后一個(gè)表達(dá)式的值:x=(a=4,6*2)=2*6=12。

19.軟件開(kāi)發(fā)軟件開(kāi)發(fā)解析:軟件生命周期分為3個(gè)時(shí)期共8個(gè)階段:軟件定義期(問(wèn)題定義、可行性研究和需求分析)、軟件開(kāi)發(fā)期(系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試)、軟件維護(hù)期(即運(yùn)行維護(hù)階段)。

20.棧棧解析:棧和隊(duì)列都是—種特殊的操作受限的線(xiàn)性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進(jìn)行插入或刪除操作,是—種“先進(jìn)后出”的線(xiàn)性表;而隊(duì)列只允許在表的—端進(jìn)行插入操作,在另—端進(jìn)行刪除操作,是—種“先進(jìn)先出”的線(xiàn)性表。

21.fun(a4)+fun(b4)-fun((a+b)3);fun(a,4)+fun(b,4)-fun((a+b),3);解析:函數(shù)fun的功能是計(jì)算x的n次方,a的4次方的調(diào)用函數(shù)為fun(a,4),b的4次方的調(diào)用函數(shù)為fun(b,4),(a+b)的3次方的調(diào)用函數(shù)為fun((a+b),3),計(jì)算m=a4+b4-(a+b)3的函數(shù)調(diào)用語(yǔ)句為:fun(a,4)+fun(b,4)-fun((a+b),3);

22.完整性控制完整性控制

23.1212解析:本題通過(guò)第一個(gè)for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過(guò)第二個(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;

24.220.000000220.000000解析:注意區(qū)分運(yùn)算符的優(yōu)先級(jí)。先是給c賦值,然后計(jì)算x=f*=n/=50,得x=f*=2,最后有x=20。x輸出是按浮點(diǎn)數(shù)的形式輸出的,小數(shù)點(diǎn)后的0不能少。

25.

解析:該程序功能是把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中。本題是關(guān)于求解結(jié)構(gòu)體中某些成員的最大值,首先將第一個(gè)值設(shè)定為最大值,并在循環(huán)中將其他所有值與該值進(jìn)行比較,求得最大值。然后將最大值與所有值進(jìn)行比較,求得所有的最大值。

26.

解析:該程序功能是把高于或等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過(guò)形參n傳回,平均分通過(guò)函數(shù)返回值返回。解題過(guò)程首先求得平均分,然后將所有成績(jī)與平均分進(jìn)行比較,如果大于或等于平均分,存入指定數(shù)組。

27.voidfun(char*ss){inti;for(i=0;ss[i]!='\0'i++)/*將ss所指字符串中所有下標(biāo)為偶數(shù)位置的字母轉(zhuǎn)換為小寫(xiě)*/if(i%2==0&&ss[i]>='A'&&ss[i]<='z')ss[i]=ss[i]+32;}voidfun(char*ss)\r\n{\r\ninti;\r\nfor(i=0;ss[i]!='\\0'i++)/*將ss所指字符串中所有下標(biāo)為偶數(shù)位置的字母轉(zhuǎn)換為小寫(xiě)*/\r\nif(i%2==0&&ss[i]>='A'&&ss[i]<='z')\r\nss[i]=ss[i]+32;\r\n}解析:從C語(yǔ)言的學(xué)習(xí)中我們知道,只要將小寫(xiě)字母減去32則轉(zhuǎn)成大寫(xiě)字母,將大寫(xiě)字母加上32則轉(zhuǎn)成小寫(xiě)字母。該程序是用if語(yǔ)句實(shí)現(xiàn)該功能轉(zhuǎn)化的。

28.voidfun(int*wintpintn){intijt;for(i=0;i<=p;i++)/*循環(huán)左移p+1次*/{t=w[0];for(j=1/j<n;j++)/*實(shí)現(xiàn)循環(huán)左移*/w[j-1]=w[j];w[j-1]=t;}}voidfun(int*w,intp,intn)\r\n{\r\ninti,j,t;\r\nfor(i=0;i<=p;i++)/*循環(huán)左移p+1次*/\r\n{t=w[0];\r\nfor(j=1/j<n;j++)/*實(shí)現(xiàn)循環(huán)左移*/\r\nw[j-1]=w[j];\r\nw[j-1]=t;\r\n}\r\n}解析:本題采用“循環(huán)左移”的算法(關(guān)于“循環(huán)左移”,我們?cè)诤竺娴脑囶}中有詳細(xì)的解釋)。和我們?cè)谇懊娣治龅纳杂胁煌氖?,一個(gè)是整型數(shù)組,一個(gè)是字符型數(shù)組。

29.

解析:該程序功能是刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。解題思路是,首先在函數(shù)中定義臨時(shí)變量指向每一個(gè)元素,然后在循環(huán)過(guò)程中將臨時(shí)值和其他元素進(jìn)行比較,如果相同,那么跳過(guò)相同字符。

30.intfun(STREC*aSTREC*bintlinth){intij=0;for(i=0;i<N;i++)if((a[i].s>=0&&a[i].s<1)||(a[i].s>h&&a[i].s<=100))/*將各分?jǐn)?shù)低于1高于h的學(xué)生記錄存于結(jié)構(gòu)體數(shù)組b中*/b[j++]=a[i];returnj;/*返回分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)*/}intfun(STREC*a,STREC*b,intl,inth)\r\n{\r\ninti,j=0;\r\nfor(i=0;i<N;i++)\r\nif((a[i].s>=0&&a[i].s<1)||(a[i].s>h&&a[i].s<=100))/*將各分?jǐn)?shù)低于1,高于h的學(xué)生記錄存于結(jié)構(gòu)體數(shù)組b中*/\r\nb[j++]=a[i];\r\nreturnj;/*返回分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)*/\r\n}解析:處理此類(lèi)分段統(tǒng)計(jì)問(wèn)題,可采用多分支選擇語(yǔ)句或條件選擇語(yǔ)句。此處采用條件選擇語(yǔ)句解答,具體見(jiàn)參考答案。使用條件選擇語(yǔ)句進(jìn)行分段統(tǒng)計(jì)時(shí)應(yīng)當(dāng)注意分段范圍。

31.

解析:該程序功能是計(jì)算并輸出當(dāng)x<0.97時(shí)題干中給出的多項(xiàng)式的值。根據(jù)題干中給出的數(shù)列,首先推出每一項(xiàng)的表達(dá)式,然后再對(duì)多項(xiàng)式進(jìn)行累加求和。

32.doublefun(intn){inti;doubles=0.0s1=0.0;for(i=1;i<=n;i++){s1=s1+i;/*求每—項(xiàng)的分母*/s=s+1.0/s1;/*求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)*/}returns;}doublefun(intn)\r\n{\r\ninti;\r\ndoubles=0.0,s1=0.0;\r\nfor(i=1;i<=n;i++)\r\n{s1=s1+i;/*求每—項(xiàng)的分母*/\r\ns=s+1.0/s1;/*求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)*/\r\n}\r\nreturns;\r\n}解析:該程序的數(shù)學(xué)思路是:在程序中輸入n后,以前n項(xiàng)的和作為分母遞加,由于s1是浮點(diǎn)類(lèi)數(shù)據(jù)所以s=s+1.0/s1;for循環(huán)的作用是每一

溫馨提示

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