2021-2022學年四川省資陽市全國計算機等級考試C語言程序設計真題(含答案)_第1頁
2021-2022學年四川省資陽市全國計算機等級考試C語言程序設計真題(含答案)_第2頁
2021-2022學年四川省資陽市全國計算機等級考試C語言程序設計真題(含答案)_第3頁
2021-2022學年四川省資陽市全國計算機等級考試C語言程序設計真題(含答案)_第4頁
2021-2022學年四川省資陽市全國計算機等級考試C語言程序設計真題(含答案)_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2021-2022學年四川省資陽市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(12題)1.表達式9!=10的值為()。

A.非零值B.trueC.0D.1

2.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

3.設二叉樹的中序序列為BCDA,前序序列為ABCD,則后序序列為()。

A.CBDAB.DCBAC.BCDAD.ACDB

4.有以下程序:#include<stdio.h>main(){inta[]={10,20,30,40},*p=a,j;for(i=0;i<=3;i++){a[i]=*P;p++;}printf("oAd\n",a[2]);}程序運行后的輸出結果是()。A.30B.40C.10D.20

5.

6.對于下述說明,不能使變量p->b的值增1的表達式是______。structexm{inta;intb;floatc}*p;

A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++

7.設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1

8.若運行以下程序時,從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運行結果是

#include<stdio.h>

main()

{charc;

intv0=1,v1=0,v2=0;

do{switch(c=getchar())

{case′a′:case′A′:

case′e′:case′E′:

case′i′:case′I′:

case′o′:case′O′:

case′u′:case′U′:v1+=1;

default:v0+=1;v2+=1;}}while(c!='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=13,v1=4,v2=12

9.

10.下列定義數組的語句中錯誤的是()。

A.intnum[][3]={{1,2},3,4,5,6};

B.intnum[2][4]={{1,2},{3,4},{5,6}};

C.intnum[]={1,2,3,4,5,6};

D.intnum[][4]={1,2,3,4,5,6};

11.設二叉排序樹中有n個結點,則二叉排序樹的平均查找長度為()。A.O(1)

B.O(log2n)

C.O(n)

D.(n2)

12.若有語句“typedefstructS{intg;charh;}T;”,則下列敘述中正確的是()。

A.可用S定義結構體變量B.可用T定義結構體變量C.S是struct類型的變量D.T是structS類型的變量

二、2.填空題(12題)13.以下程序的功能是將字符串s中所有小寫字母'a'刪去,請填空。

#include<stdio.h>

main()

{chars[]="absuWWUDJFKFLaaakdK";

inti,j;

for(i=j=0;s[i]!='\0';i++)

if()

s[j++]=s[i];

s[j]='\0';

printf("%s",s);

}

14.設i,j,k均是int型變量,則執行以下for循環后,k的值為【】。

for(i=0,j=10;i<=j;i++,j--)

k=i+j;

15.mystrlen函數的功能是計算str所指字符串的長度,并作為函數值返回。請填空。

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

16.一棵二叉樹第6層(根結點為第一層)的結點最多為______個。

17.數據結構分為線性結構和非線性結構,線性表、棧和隊列都屬于【】。

18.以下程序運行后的輸出結果是______。

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

19.在數據庫理論中,數據庫總體邏輯結構的改變,如修改數據模式、增加新的數據類型、改變數據間聯系等,不需要相應修改應用程序,稱為______。

20.將以下程序寫成三目運算表達式是【】。

if(a>b)max=a;

elsemax=b;

21.當m=1,n=2,a=3,b=2,c=4時,執行d=(m=a!=B)&&(n=b>C)后,m的值為()。

22.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請填空以實現拷貝。(注:不使用逗號表達式)

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

d[j]=0;

23.以下程序運行后的輸出結果是【】。

#include<stdio.h>

main()

{intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

24.以下程序的輸出結果是()。

#include<stdio.h>

voidfun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(3);printf("\n");

}

三、3.程序設計題(10題)25.請編寫函數fun(),該函數的功能是:將s所指字符串中ASCII值為偶數的字符刪除,串中剩余字符形成一個新串放在t所指的數組中。

例如,若s所指字符串中的內容為ABCDEFGl2345,其中字符B的ASCⅡ碼值為偶數、…、字符2的ASCⅡ碼值為偶數、…,都應當刪除,其他依次類推。最后t所指的數組中的內容應是ACEGl35。

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

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

試題程序;

#include<stdio.h>

#include<string.h>

#include<conio.h>

voidfun(char*s,chart[])

{

}

main()

{

chars[100],t[100];

clrscr();

printf(,\nPleaseenterstringS:");

scanf("%s",s);

fun(s,t);

printf("\nTheresultis:%s\n",t);

}

26.編寫函數intfun(intlim,intaa[MAX]),該函數的功能是求出小于或等于lim的所有素數并放在aa數組中,該函數返回所求出的素數的個數。

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

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

#defineMAX100

intfun(intlim,intse[MAX])

{

}

main()

{

intlimit,i,sum;

intaa[MAX];

clrscr();

printf("輸入一個整數");

scanf("%d",&limit);

sum=fun(limit,aa);

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

{

if(i%10==0&&i!=0)/*每行輸出10個數*/

printf("\n");

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

}

}

27.下列程序定義了N×N的二維數組,并在主函數中自動賦值。請編寫函數fun(inta[][N],intn),該函數的功能是:使數字右上半三角元素中的值乘以m。

例如,若m的值為2,a數組中的值為

a=19

27

則返回主程序后a數組的值應為

218

214

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

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

#defineN5

intfun(inta[][N],intm)

{

}

main()

{

inta[N][N],m,i,j;

clrscr();

printf{"*****Thearray*****\n");

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

/*輸出一個隨機的5×5矩陣*/

{for(j=0;j<N;j++)

{a[i][j]=rand()%20;

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

}

printf("\n");

}

do

m=rand()%10;

while(m>=3);/*產生一個上于3的隨機數*/

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

fun(a,m);

printf("THERESULT\n");

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

{for(j=0;j<N;j++)

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

printf("\n");

}

}

28.請編寫函數fun(),其功能是:將所有大于1小于整數m的素數存入xx所指數組中,素數的個數通過k傳回。

例如,輸入25,則應輸出23571113171923。

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

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(intm,int*k,intxx[])

{

}

main()

{

intm,n,zz[100];

clrscr();

printf("/nPleaseenteranintegernumberbetween10and100:");

scanf("%d",&n);

fun(n,&m,zz);

printf("\n\nThereare%dprimenumbers

lessthan%d:",m,n);

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

printf("\n%4d",zz[n]);

}

29.請編寫函數fun(),其功能是:將所有大于1小于整數m的非素數存入xx所指數組中,非素數的個數通過k傳回。

例如,輸入17,則應輸出46891012141516。

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

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(intm,int*k,intxx[])

{

}

main()

{

intm,n,zz[100];

clrscr();

printf("\nPleaseenteranintegernumber

between10and100:");

scanf("%d",&n);

fun(n,&m,zz);

printf("\n\nThereare%dnon-prime

numberslessthan%d:",m,n);

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

printf("\n%4d",zz[n]);

}

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

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

7111421X283335424449

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

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

試題程序:

#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個數*/

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

printf("\n");

}

else

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

printf("\n");

}

31.假定輸入的字符串中只包含字母和*號。請編寫函數fun(),它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。

例如,若字符串中的內容為****A*BC*DEF*G*******,刪除后,字符串中的內容則應當是A*BC*DEF*G*******。

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

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

試題程序;

#include<stdio.h>

#include<conio.h>

voidfun(char*a)

{

}

main()

{

chars[81];

printf("Enterastring:\n");

gets(s);

fun(s);

printf("Thestringafterdeleted:\n");

puts(s);

}

32.請編寫一個函數fun,其功能是:將ss所指字符串中所有下標為奇數位置上的字母轉換為大寫(若該位置上不是字母,則不轉換)。

例如,若輸入“abc4EFg”,則應輸出“aBc4EFg”。

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

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。

33.學生的記錄由學號和成績組成,N名學生的數據已在主函數中放入結構體數組s中,請編寫函數fun(),它的功能是:函數返回指定學號的學生數據,指定的序號在主函數中輸入。若沒找到指定的學號,在結構體變量中給學號置空串,給成績置-1,作為函數值返回(用于字符串比較的函數是strcmp)。

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

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

試題程序:

#include<stdio.h>

#inctude<stdlib.h>

#defineN16

typedefstruct

{charnum[10];

ints;

}STREC;

STRECfun(STREC*a,char*b)

{

}

main()

{

STRECs[N]={{"GA005",85},{"GA003",76},

{"GA002",69},{"GA004",85},{"GA001",91},

{"GA007",72},{"GA008",64},{"GA006",87},

{"GA015",85},{"GA013",91},{"GA012",64},

{"GA014",91},{"GA011",77},{"GA017",64},

{"GA018",64},{"GA016",72}};

STRECh;

charre[10];

inti,n;

FILE*out;

printf("Theoriginaldata:\n");

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

{if(i%4==0)

printf("In");

/*每行輸出4個學生記錄*/

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

}

printf("\n\nEnterthenumber:");

gets(m);

h=fun(s,m);

printf("Thedata:");

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

printf("\n");

out=fopen("out80.dat","w");

h=fun(s,"GA013");

fprintf(out,"%s%4d\n",h.num,h.s);

fclose(out);

}

34.請編寫函數fun,函數的功能是:將大于形參m且緊靠m的k個素數存入xx所指的數組中。例如,若輸入17,5,則應輸出:19,23,29,3l,37。

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

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花插號中填入你編寫的若干語句。

四、單選題(0題)35.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。

A.a==lB.++iC.a=a++=5D.a=int(i)

五、單選題(0題)36.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}

A.將磁盤文件的內容顯示在屏幕上

B.將兩個磁盤文件合為一個

C.將一個磁盤文件復制到另一個磁盤文件中

D.將兩個磁盤文件合并后送屏幕

六、單選題(0題)37.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。

A.數組x和數組y等價B.數組x和數組y的長度相同C.數組x的長度大于數組y的長度D.數組x的長度小于數組y的長度

參考答案

1.D

2.D解析:文件狀態檢測函數feof(fp)的功能是:測試所指的文件的位置指針是否已達到文件尾,如果已到達文件尾,則函數返回非。值;否則返回0,表示文件尚未結束。

3.B二叉樹的前序序列為ABCD,由于前序遍歷首先訪問根節點,可以確定該二叉樹的根節點是A。再由中序序列為BCDA,可知以A為根節點的該二叉樹只存在左子樹,不存在右子樹,故后序序列為DCBA。本題答案為B選項。

4.AFor循環結束后,數組a的值并沒有變化,由于數組是由0開始,所以a[2]的值是30。

5.D

6.D解析:p->b應作為一個整體看待,++p->b和p->b++都使變量b增1,++(p++)->b先使b增1,再使p后移,D中表達式的含義是使p+1所指結構體變量中的成員b的值增1。

7.D本題考查邏輯運算符的使用。當“&&”的兩個運算對象都是邏輯1時,表達式返回值才是1;“||”的兩個運算對象至少有一個是邏輯1時,表達式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。

8.D解析:本題考查switch語句的掌握。必須撐握以下內容:首先應該明白switch語句的語法格式:

switch語句的語法格式為:

switch(表達式)

{

case常量表達式1:語句組1;

case常量表達式2:語句組2;

case常量表達式n:語句組n;

default:語句組n+1;

}

另外,以下幾點關于switch語句的重點:

①系統在執行時計算開關表達式的值;②根據所得的值在各個case標號表達式中尋找匹配,直到發現與表達式匹配的標號(本例中匹配的是case\'B\':);\ue008③找\ue009到匹配后執行后面相應的語句表,順序往下執行;④如果無相匹配的標號,若存在default標號,則執行該語句標號后面的語句表n+1;當不存在default標號時,不執行switch中的任何一個語句表。

一般而言,在多分支結構中總會出現'意外'的情況,這時均可歸入default程序段,作統一的處理。default標號是可選性的,不必每次都有,視需要而定。switch語句中還可以包含switch語句,形成switch的嵌套。

9.C

10.BB選項中定義的數組為2行4列,而賦值時卻賦成了3行,所以錯誤。故本題答案為B選項。

11.B

12.BT為結構體類型名,可以用來定義結構體變量。故本題答案為B選項。

13.s[i]!='a's[i]!='a'解析:本題是要將字符串s中所有小寫字母'a'刪去,所以if語句的判斷條件應該是字符串s中的字符和字符'a'不相同的時候,就把它仍然存在原來的數組中,若是和字符'a'相同,就不再保存它。

14.10

15.str[i]或str+iistr[i]或str+i\r\ni

16.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結點。第6層的結點數最多是26-1=32。注意區別“二叉樹的結點最多數”和“某一層的結點最多數”。前者的計算是深度為m的二叉樹最多有2m-1個結點。

17.線性結構線性結構解析:本題考查了數據結構的基本概念。與棧類似,隊列也是線性表,可以采用鏈式存儲結構,所以帶鏈的隊列屬于線性結構。

18.abcfgabcfg解析:本題考查的是字符數組用作函數參數。C語言中數組名可以看作該數組首地址的常量指針、因此可以直接傳遞給指針類型的參數。本題的主函數調用fun(s,3,strlen(s));后,函數中for循環就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數組s的長度-2位置,循環中讓s[i]=s[i+2],所以函數fun()實現的功能簡單來說就是將字符串s下標為p+2~k范圍的字符整體復制到字符串s下標為p~k-2的位置上。在本題中strlen(s)返回s的長度7,所以復制的字符為s[5]~s[7],即'f'、'g','\\0'三個字符,復制到s[3]~s[5],故最終輸出的字符串為abcfg(因為s[5]為'\\0',所以后面的字符不會輸出)。

19.邏輯獨立性邏輯獨立性解析:數據庫總體邏輯結構改變,而不需要相應修改應用程序叫做邏輯獨立性。

20.max=(a>b)?a:b;max=(a>b)?a:b;解析:本題考查三目運算符的用法,條件運算符要求有三個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式1?表達式2:表達式3所以,我們可以寫成(a,b)?a:b,它是一個“條件表達式”。執行順序是:如果(a>b)條件為真,則條件表達式取值a,否則取值b。注意:逗號表達式的執行原理。

21.11解析:①“sizeof'、“%”、“>”、“<<”、“*=”,運算符的優先級順序為:“*=”→“>”→“<<”→“%”→“sizeof”;②位運算的優先級順序為:“~”→“<<”→“>>”→“&”→“^”。(b=2)>(c=4)不成立,邏輯為假,所以n=0;(a=3)!=(b=2)成立,邏輯為真,所以m=1。

22.s[i++]s[i++]解析:本題中為了能實現字符串的拷貝,需要使字符數組s從頭到尾依次遍歷其所有元素。本題應使用i的自增后置來實現。

23.2424解析:本題關鍵是while循環。

當i=0時,滿足條件:i<7&&11%2==1,執行j=0+11=11,i++,i為1;

當i=1時,滿足條件:i<7&&13%2=1,執行j=11+13=24,i++,i為2;

當i=2時,不滿足條件:i<7&&14%2==1,循環結束。輸出j的值24。

24.1313解析:函數fun是一個遞歸函數。執行fun(3);,x=3,x/2=1>0,又調用f(1),此時,x=1,x/2=0,不滿足繼續遞歸調用的條件,輸出1,返回到fun(3)中,輸出3。所以本題的輸出結果為13。

25.voidfun(char*schart[]){inti=0;for(;*s!='\0';s++)/*找出ASCII值為奇數的字符依次存入數組t中*/if(*s%2==1)t[i++]=*s;t[i]='\0';/*在字符串的末尾口上串結束符*/}voidfun(char*s,chart[])\r\n{\r\ninti=0;\r\nfor(;*s!='\\0';s++)/*找出ASCII值為奇數的字符依次存入數組t中*/\r\nif(*s%2==1)\r\nt[i++]=*s;\r\nt[i]='\\0';/*在字符串的末尾口上串結束符*/\r\n}解析:要刪除ASCH值為偶數的字符,也就是要留下ASCH值為奇數的字符,由于最終是要求求出剩余字符(BPASCⅡ值為奇數)形成的新串,所以本題程序的算法是從原字符串的頭到尾掃描并找出ASCⅡ值為奇數的字符依次存入數組沖。此外,還要注意數組t的下標變化和下標的初值(初值必須為0,即i=0),t[i++]州的作用是先使用t[i]然后再使自增1。任何字符串的末尾都要有串結束符。這種算法在很多題中都要用到,學習者可以舉一反三地找一些其他相關習題練習一下。

26.intfun(intlimintaa[MAX]){intijk=0;for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素數*/{for(j=2;j<i;j++)if(i%j==0)break;if(j>=i)aa[k++]=i;;/*將求出的素數放入數組aa中*/}returnk;/*返回所求出的素數的個數*/}intfun(intlim,intaa[MAX])\r\n{\r\ninti,j,k=0;\r\nfor(i=2;i<=lim;i++)/*求出小于或等于lim的全部素數*/\r\n{for(j=2;j<i;j++)\r\nif(i%j==0)break;\r\nif(j>=i)\r\naa[k++]=i;;/*將求出的素數放入數組aa中*/\r\n}\r\nreturnk;/*返回所求出的素數的個數*/\r\n}解析:在做這道題時,我們只需掌握素數的基本算法就可以了,一般表示素數的方法如下:

for(j=2;j<i;j++)

if(i%j==0)break;

if(j>=i)

27.intfun(inta[][N]intm){intij;for(i=0;i<N;i++)for(j=i;j<N;j++)a[i][j]=a[i][j]*m;/*右上半三角元素中的值乘以m*/}intfun(inta[][N],intm)\r\n{\r\ninti,j;\r\nfor(i=0;i<N;i++)\r\nfor(j=i;j<N;j++)\r\na[i][j]=a[i][j]*m;/*右上半三角元素中的值乘以m*/\r\n}解析:本題考查表示右上關三角元素的算法。行下標肯定是從0到N-1,而列下標要根據行下標來定,當到第i行時列下標要從第i列開始,所以我們在編寫程序時,第2個for()中有j=i(不是1);若要表示左下半三角元素時,行下標也是從0到N-1,列下標也是從0開始,但當到第i行時列只到i。所以要把上述的第2個for()改成for(j=0;j<=i;++)。

28.voidfun(intmint*kintXX[]){intijtn=0;for(i=2;i<m;i++)/*找出大于1小于整數m的素數*/{t=l;for(j=2;j<i;j++)if(i%j==0){t=0;break;}if(t==1)xx[n++]=i;}*k=n;/*返回素數的個數*/}voidfun(intm,int*k,intXX[])\r\n{\r\ninti,j,t,n=0;\r\nfor(i=2;i<m;i++)/*找出大于1小于整數m的素數*/\r\n{\r\nt=l;\r\nfor(j=2;j<i;j++)\r\nif(i%j==0)\r\n{\r\nt=0;\r\nbreak;\r\n}\r\nif(t==1)\r\nxx[n++]=i;\r\n}\r\n*k=n;/*返回素數的個數*/\r\n}解析:這道題是考查一個數是不是素數,只要掌握了判斷素數的方法,問題便能順利解決,請以此題為例,掌握判斷素數的方法。

29.voidfun(intmint*kintxx[]){intijn=0;for(i=4;i<m;i++)/*找出大于1小于整數m的非素數*/{for(j=2;j<i;j++)if{i%j==0)break;if(j<i)xx[n++]=i;}*k=n;/*反回非素數的個數*/}voidfun(intm,int*k,intxx[])\r\n{\r\ninti,j,n=0;\r\nfor(i=4;i<m;i++)/*找出大于1小于整數m的非素數*/\r\n{for(j=2;j<i;j++)\r\nif{i%j==0)break;\r\nif(j<i)xx[n++]=i;\r\n}\r\n*k=n;/*反回非素數的個數*/\r\n}解析:這道題是考查一個數是不是素數的簡單延伸,只要掌握了判斷素數的方法,問題便能順利解決,請學習者以此題為例,搞清判斷素數的方法。

30.voidfun(intmint*aint*n){intij=0;for(i=1;i<=m;i++)if(i%7==0||i%11==0)/*求出1到m(含m)之內能被7或11整除的所有整數放在數組a中*/a[j++]=i;*n=j;/*返回這些數的個數*/}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)之內能被7或11整除的所有整數放在數組a中*/\r\na[j++]=i;\r\n*n=j;/*返回這些數的個數*/\r\n}解析:本題要找出能被7或11整除的所有整數,注意數學中的“或”和C語言中的“或”的區別,但在此處,if條件語句中用了“||”運算符,若要找能同時被7和11整除的所有整數則在if()中應用“&&”運算符。

31.voidfun(char*a){char*p=a;while(*P==‘+’)p++;/*指針p指向字符串第一個字母*/for(;*p!=‘\0’;p++a++)*a=*p;/*從第—個字母開始其后的字符都放入指針a所指的字符串中*/*a=‘\0’;/*在字符串最后加上結束標記符*/}voidfun(char*a)\r\n{\r\nchar*p=a;\r\nwhile(*P==‘+’)p++;/*指針p指向字符串第一個字母*/\r\nfor(;*p!=‘\\0’;p++,a++)\r\n*a=*p;/*從第—個字母開始,其后的字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論