2021年江西省宜春市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題一卷(含答案)_第1頁
2021年江西省宜春市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題一卷(含答案)_第2頁
2021年江西省宜春市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題一卷(含答案)_第3頁
2021年江西省宜春市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題一卷(含答案)_第4頁
2021年江西省宜春市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題一卷(含答案)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021年江西省宜春市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題一卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(12題)1.設(shè)已有定義“floatx;”,則下列對(duì)指針變量P進(jìn)行定義且賦初值的語句中正確的是()。

A.int*p=(float)x;

B.float*p=&x;

C.floatp=&x;

D.float*p=1024;

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

A.在C語言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動(dòng)存儲(chǔ)類別

D.在C語言中,函數(shù)形參的存儲(chǔ)類型是自動(dòng)(auto)類型的變量

3.一個(gè)二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[1][2]的值為()。

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

4.設(shè)有定義語句:doublex=123.456;則語句printf(“%6.2f,%3.0f\n”,x,x);的輸出結(jié)果是()。

A.123.46,123.0B.123.45,123C.123.46,123D.123.45,123.

5.在一個(gè)長(zhǎng)度為n(n>1)的單鏈表上,設(shè)有頭和尾兩個(gè)指針,執(zhí)行()操作與鏈表的長(zhǎng)度有關(guān)。

A.刪除單鏈表中的第一個(gè)元素

B.刪除單鏈表中的最后一個(gè)元素

C.在單鏈表第一個(gè)元素前插入一個(gè)新元素

D.在單鏈表最后一個(gè)元素后插入一個(gè)新元素

6.有以下函數(shù)char*fun(char*p){returnp;}該函數(shù)的返回值是______。

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

7.以下敘述正確的是

A.continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

B.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句

C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同

D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語句

8.

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

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

10.

11.設(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

12.下列敘述中正確的是()。

A.可以用關(guān)系運(yùn)算符比較字符串的大小

B.空字符串不占用內(nèi)存,其內(nèi)存空間大小是0

C.兩個(gè)連續(xù)的單引號(hào)是合法的字符常量

D.兩個(gè)連續(xù)的雙引號(hào)是合法的字符串常量

二、2.填空題(12題)13.【】是數(shù)據(jù)庫設(shè)計(jì)的核心。

14.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

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

intf(inta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

}

main()

{intaa[5]={1,2,3,4,5),s;

s=f(aa,5);printf("%d\n",s);

}

16.下面的程序可對(duì)指定字符串中的字符串進(jìn)行從大到小排序,請(qǐng)將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

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

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

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

18.下面程序的運(yùn)行結(jié)果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}

19.【】是從二維表列的方向進(jìn)行的運(yùn)算。

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

main()

{inti,sum;

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

sum+=i;

printf("%d",sum);

}

21.設(shè)二進(jìn)制數(shù)A是00101101,若想通過異或運(yùn)算ab使A的高4位取反,低4位不變,則二進(jìn)制數(shù)B應(yīng)是【】。

22.對(duì)于軟件測(cè)試,從是否需要執(zhí)行被測(cè)軟件的角度,可以分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。代碼檢查屬于______測(cè)試。

23.以下程序的運(yùn)行結(jié)果是()。#defineS(x)x*xmain(){intk=1;while(k<=4){printf("%d,",S(k));k++;}

24.在計(jì)算機(jī)中,字符的比較是對(duì)它們的【】進(jìn)行比較。

三、3.程序設(shè)計(jì)題(10題)25.請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:比較兩個(gè)字符串的長(zhǎng)度,(不得調(diào)用C語言提供的求字符串長(zhǎng)度的函數(shù)),函數(shù)返回較長(zhǎng)的字符串。若兩個(gè)字符串長(zhǎng)度相同,則返回第一個(gè)字符串。

例如,輸入beijingshah曲aj(為回車鍵),函數(shù)將返回shanghai。

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

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

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

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

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

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

試題程序:

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

}

27.請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是:計(jì)算n門課程的平均分,計(jì)算結(jié)果作為函數(shù)值返回。

例如x有5門課程的成績(jī)是90.5,72,80,61.5,55,則函數(shù)的值為71.80。

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

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

試題程序:

#include<stdio.h>

floatfun(float*a,intn)

{

}

main()

{

floatscore[30]=(90.5,72,80,61.5,55},

aver;

aver=fun(score,5);

printf("\nAveragescoreis:%5.2f

\n",aver);

}

28.請(qǐng)編寫一個(gè)函數(shù)fun(),它的功能是:求出1到m(含m)之內(nèi)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個(gè)數(shù)。

例如,若傳給m的值為50,則程序輸出:

7111421X283335424449

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

{

}

main()

{

intaa[M],n,k;

clrscr();

fun(50,aa,&n);

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

if((k+1)%20==0)/*每行輸出20個(gè)數(shù)*/

{printf("%4d",aa[k]);

printf("\n");

}

else

printf("%4d",aa[k]);

printf("\n");

}

29.請(qǐng)編寫一個(gè)函數(shù)voidfun(char*tt,intpp[]),統(tǒng)計(jì)在tt字符串中“a”到“z”26個(gè)字母各自出現(xiàn)的次數(shù),并依次放在pp所指數(shù)組中。

例如:當(dāng)輸入字符串a(chǎn)bcdefghabcdeabc后,程序的輸出結(jié)果應(yīng)該是:33322110000000000000000000

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(char*tt,intpp[])

{

}

main()

{

charaa[1000];

intbb[26],k,n;

clrscr();

printf("\nPleaseenteracharstring:");

scanf("%s",aa);

fun(aa,bb);

for(k=0;k<26;k++)

printf("%d",bb[k]);

printf("\n");

}

30.某學(xué)生的記錄由學(xué)號(hào)、8門課成績(jī)和平均分組成,學(xué)號(hào)和8門課的成績(jī)已在主函數(shù)中給出。請(qǐng)編寫fun()函數(shù),它的功能是:求出該學(xué)生的平均分放在記錄的ave成員中。請(qǐng)自己定義正確的形參。

例如,若學(xué)生的成績(jī)是85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應(yīng)當(dāng)是78.875。

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

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

試題程序:

#include<stdio.h>

#defineN8

typedefstruct

{charnum[10];

doubles[N];

doubleave;

}STREC;

voidfun()

{

}

main()

{

STRECs={"GA005",85.5,76,69.5,85,91,72,64.5,87.5);

inti;

fun(&s);

printf("The%s'sstudentdata:\n",s.num)//*輸出學(xué)號(hào)*/

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

printf("%4.1f\n",s.s[i]);

/*輸出各科成績(jī)*/

printf("\nave=%7.3f\n",s.ave);

/*輸出平均分*/

}

31.請(qǐng)編寫函數(shù)fun,其功能是:計(jì)算并輸出3到n之間(含3和n)所有素?cái)?shù)的平方根之和。

例如,在主函數(shù)中從鍵盤給n輸入100后,輸出為:sum=148.874270。

注意:要求n的值大于2但不大于100。部分源程序在文件PROGl.C中。

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

32.請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是:統(tǒng)計(jì)一行字符串中單詞的個(gè)數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間有若干個(gè)空格隔開,一行的開始沒有空格。

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

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

試題程序:

#include<string.h>

#include<stdio,h>

#defineN80

intfun(char*s)

{

}

main()

{

charline[N];

intnum=0;

printf("Enterastring:\n");

gets(line);

num=fun(line);

printf("Thenumberofwordis:%d\n\n",

num);

}

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

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

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

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

34.請(qǐng)編寫函數(shù)fun(),它的功能是:求出1到1000之內(nèi)能被5或13整除、但不能同時(shí)被5和13整除的所有整數(shù)并將它們放在9所指的數(shù)組中,通過n返回這些數(shù)的個(gè)數(shù)。

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(int*a,int*n)

{

}

main()

{

intaa[1000],n,k;

clrscr();

fun(aa,an);

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

if((k+1)%10==0)

{

printf("%5d",aa[k]);

printf("\n");/*—行寫10個(gè)數(shù)*/

}

else

printf("%5d",aa[k]);

}

四、單選題(0題)35.下述程序的輸出結(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

五、單選題(0題)36.堆排序是一種()排序。

A.插入B.選擇C.交換D.歸并

六、單選題(0題)37.以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A.x%2==1B.x/2C.x%2!=0D.x%2==0

參考答案

1.B指針是用來存放地址的變量,定義指針變量的形式為:類型名*指針變量名。賦值時(shí)應(yīng)將某個(gè)變量地址,如選項(xiàng)B中變量x的地址&x賦給指針變量。故本題答案為B選項(xiàng)。

2.C解析:外部變量在編譯時(shí)由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動(dòng)存儲(chǔ)類別。

3.C

4.C對(duì)于double類型的實(shí)數(shù),可以在printf函數(shù)的格式化字符串中使用”n1.n2”的形式來指定輸出寬度(n1和n2分別代表一個(gè)整常數(shù))。其中n1指定輸出數(shù)據(jù)的寬度(包括小數(shù)點(diǎn)),n2指定小數(shù)點(diǎn)后小數(shù)位的位數(shù),n2也稱為精度。當(dāng)輸出數(shù)據(jù)的小數(shù)位多于n2位時(shí),截取右邊多余的小數(shù),并對(duì)截取部分的第1位小數(shù)做四舍五入處理;當(dāng)輸出數(shù)據(jù)的小數(shù)位少于n2時(shí),在小數(shù)的最右邊補(bǔ)0,使得輸出數(shù)據(jù)的小數(shù)部分寬度為n2;如果指定“n1.0”格式,則不輸出小數(shù)點(diǎn)和小數(shù)部分。題干中,%6.2f表示輸出6位寬度,2位小數(shù),所以被截取的小數(shù)位為0.006,進(jìn)行四舍五入,結(jié)果為123.46;%3.0f表示輸出3位寬度,0位小數(shù),結(jié)果為123。故本題答案為C選項(xiàng)。

5.B

6.B解析:p本身就是一個(gè)字符型指針變量,返回p也就是返回變量p中存放的地址值。

7.B解析:continue是結(jié)束本次循環(huán),直接進(jìn)入到下次循環(huán)中,break用于循環(huán)語句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語句除了goto語句,exit,return等語句也能直接跳出多層循環(huán)。注意:continue和break語句在while語句中的作用。

8.D

9.B解析:指針變量p指向數(shù)組a的第5個(gè)元素,p[3]在原指向基礎(chǔ)上移3個(gè)單位,指針變量p將指向第8個(gè)元素(下標(biāo)為7的元素),值為7。

10.C

11.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è)。

12.D比較兩個(gè)字符串大小用函數(shù)strcomp(S,t),空字符串有結(jié)束符,所以也要占用字節(jié),兩個(gè)雙引號(hào)表示的是空字符串。

13.數(shù)據(jù)模型數(shù)據(jù)模型

14.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴(kuò)充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

15.1515解析:通過遞歸調(diào)用f函數(shù)實(shí)現(xiàn)了數(shù)組各元素之和,即a[4]+a[2]+a[1]+a[0]=15。

16.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)現(xiàn)過程是將相鄰兩個(gè)字符進(jìn)行比較,如果當(dāng)前字符小于下—個(gè)字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。

17.16

18.11

19.投影投影解析:在關(guān)系模型的數(shù)據(jù)語言中,一般除了運(yùn)用常規(guī)的集合運(yùn)算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關(guān)系運(yùn)算,如投影、選擇、連接等。投影是從二維表的列方向上進(jìn)行的運(yùn)算。

20.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值。

21.1111000011110000解析:按位異或運(yùn)算的一個(gè)重要應(yīng)用是讓某個(gè)整型變量的二進(jìn)制位取反,0變成1,而1變成0。這只要設(shè)計(jì)這樣一個(gè)位串信息,讓要變反的位為1,不要改變的位為0,用這個(gè)位串信息與整型變量按位加就能得到希望的結(jié)果。要使字節(jié)的高4位取反,低4位不變,則需要位串信息是11110000。

22.靜態(tài)靜態(tài)解析:靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析,代碼質(zhì)量度量等。靜態(tài)測(cè)試不實(shí)際運(yùn)行軟件。

23.149161,4,9,16,解析:分析程序執(zhí)行過程,第1次循環(huán),k=1時(shí),此時(shí)s(1)=1*1=1,然后k的值加1;第2次循環(huán),k=2時(shí),s(2)=2*2=4,然后k的值加1;第3次循環(huán),k=3時(shí),s(3)=3*3=9,然后k的值加1;第4次循環(huán),k=4時(shí),s(4)=4*4=16,然后k的值加1;當(dāng)k=5時(shí),條件不滿足,退出循環(huán)。

24.ASCII碼ASCII碼解析:C語言中,字符也可以進(jìn)行比較運(yùn)算,并且是按照其ASCII碼值進(jìn)行的。

25.

解析:該程序功能是比較兩個(gè)字符串的長(zhǎng)度。解題過程是首先分別求得兩個(gè)字符串的長(zhǎng)度,然后對(duì)這兩個(gè)值進(jìn)行判斷,實(shí)現(xiàn)兩個(gè)字符串長(zhǎng)度的比較。

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

27.floatfun(float*aintn){floatav=0.0;inti;for(i=0;iav=av+a[i];/*求分?jǐn)?shù)的總和*/return(av/n);/*返回平均值*/}floatfun(float*a,intn)\r\n{\r\nfloatav=0.0;\r\ninti;\r\nfor(i=0;iav=av+a[i];/*求分?jǐn)?shù)的總和*/\r\nreturn(av/n);/*返回平均值*/\r\n}解析:我們先按數(shù)學(xué)的思路來計(jì)算平均分:總分除以人數(shù)即可得到平均分,其實(shí)用C語言的指針來實(shí)現(xiàn)該問題,也不難。當(dāng)指針變量指向一個(gè)數(shù)組時(shí),用該指針變量引用數(shù)組元素時(shí),引用方式與數(shù)組的引用方式相同。如本題中a指向了score,所以通過a引用score中的元素時(shí)可以用下標(biāo)法,也可以用指針運(yùn)算法,a[i]和*(a+i)具有相同的作用。下標(biāo)運(yùn)算實(shí)際上是從當(dāng)前地址開始往后取出地址中的第幾個(gè)元素,當(dāng)前地址下標(biāo)為0。例如:若有intcc[10],*P=cc+5;,即p指向了cc的第5號(hào)元素,則p[0]的作用是取出從當(dāng)前地址(即p所指地址)開始的第0號(hào)元素,它與cc[5]相同:p[3]的作用是取出從當(dāng)前地址(即p所指地址)開始往后的第3號(hào)元素,它與cc[8]相同:p[-2]的作用是取出從當(dāng)前地址開始往前的第2號(hào)元素,它與cc[3]相同,但不提倡使用“負(fù)”的F標(biāo)。

28.voidfun(intmint*aint*n){intij=0;for(i=1;i<=m;i++)if(i%7==0||i%11==0)/*求出1到m(含m)之內(nèi)能被7或11整除的所有整數(shù)放在數(shù)組a中*/a[j++]=i;*n=j;/*返回這些數(shù)的個(gè)數(shù)*/}voidfun(intm,int*a,int*n)\r\n{\r\ninti,j=0;\r\nfor(i=1;i<=m;i++)\r\nif(i%7==0||i%11==0)/*求出1到m(含m)之內(nèi)能被7或11整除的所有整數(shù)放在數(shù)組a中*/\r\na[j++]=i;\r\n*n=j;/*返回這些數(shù)的個(gè)數(shù)*/\r\n}解析:本題要找出能被7或11整除的所有整數(shù),注意數(shù)學(xué)中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“||”運(yùn)算符,若要找能同時(shí)被7和11整除的所有整數(shù)則在if()中應(yīng)用“&&”運(yùn)算符。

29.voidfun(char*ttintpp[]){inti;fori=0;i<26;i++)pp[i]=0;/*初始化pp數(shù)組各元素為0*/for(;*tt!='\0';tt++)if(*tt>='a'&&*tt<='z')pp[*tt-'a']++;/*將tt字符串中'a'到'z'26個(gè)字母各自出現(xiàn)的次數(shù)依次放在pp數(shù)組中任一個(gè)小寫字母減去'a'后所得結(jié)果正好是它對(duì)應(yīng)的下標(biāo)*/}voidfun(char*tt,intpp[])\r\n{\r\ninti;\r\nfori=0;i<26;i++)\r\npp[i]=0;/*初始化pp數(shù)組各元素為0*/\r\nfor(;*tt!='\\0';tt++)\r\nif(*tt>='a'&&*tt<='z')\r\npp[*tt-'a']++;/*將tt字符串中'a'到'z'26個(gè)字母各自出現(xiàn)的次數(shù),依次放在pp數(shù)組中,任一個(gè)小寫字\r\n母減去'a'后所得結(jié)果正好是它對(duì)應(yīng)的下標(biāo)*/\r\n}解析:第1個(gè)循環(huán)的作用是初始化數(shù)組pp,未經(jīng)賦值變量的量為一個(gè)不確定數(shù)字。由于它要將'a'到'z'26個(gè)字母的個(gè)數(shù)依次放到數(shù)組pp中。即'a'的個(gè)數(shù)存于pp[0]中,'b'的個(gè)數(shù)存于pp[1]中,'c'的個(gè)數(shù)存于pp[2]中,…,依次類推。而'a'-'a'的值正好為0,'b'-'a'的值為1,'c'-'a'的值為2,…,依此類推。即任一個(gè)小寫字母減去'a'后所得結(jié)果正好是它對(duì)應(yīng)的下標(biāo),所以就有了pp[*tt-'a']++。但*tt必須是小寫字母即if()不應(yīng)省略。

30.voidfun(STREC*p){inti;p->ave=0.0;for(i=0;i<N;i++)p->ave=p->ave+p->s[i];/*求各門成績(jī)的總和*/p->ave=p->ave/N;/*求平均分*/}voidfun(STREC*p)\r\n{\r\ninti;\r\np->ave=0.0;\r\nfor(i=0;i<N;i++)\r\np->ave=p->ave+p->s[i];/*求各門成績(jī)的總和*/\r\np->ave=p->ave/N;/*求平均分*/\r\n}解析:本題考查自己定義形參的相關(guān)知識(shí)點(diǎn),程序流程是這樣的,在fun()函數(shù)中求出平均分后,返回到主函數(shù)時(shí)平均分也要帶回,所以只能定義一個(gè)指針類型的形參STREC*p,此時(shí),引用成員的方式可以是用指向運(yùn)算符即p->ave和p->s[i],當(dāng)然,也可用(*p).ave和(*p).s[i]。

31.

解析:函數(shù)fun的功能是計(jì)算并輸出3到n之間(含3和n)所有素?cái)?shù)的平方根之和,首先根據(jù)題干中的要求找出3到n之間的素?cái)?shù),并求出素?cái)?shù)的平方根,然后求得這些平方根的和。

32.intfun(char*s){intij=0;for(i=0;s

溫馨提示

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