2021-2022學年福建省莆田市全國計算機等級考試C語言程序設計模擬考試(含答案)_第1頁
2021-2022學年福建省莆田市全國計算機等級考試C語言程序設計模擬考試(含答案)_第2頁
2021-2022學年福建省莆田市全國計算機等級考試C語言程序設計模擬考試(含答案)_第3頁
2021-2022學年福建省莆田市全國計算機等級考試C語言程序設計模擬考試(含答案)_第4頁
2021-2022學年福建省莆田市全國計算機等級考試C語言程序設計模擬考試(含答案)_第5頁
已閱讀5頁,還剩49頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

2021-2022學年福建省莆田市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

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

A.算法就是程序B.設計算法時只需要考慮數據結構的設計C.設計算法時只需要考慮結果的可靠性D.以上3種說法都不對

2.以下說法錯誤的是A.A.高級語言都是用接近人們習慣的自然語言和數學語言作為語言的表達形式

B.計算機只能處理由0和1的代碼構成的二進制指令或數據

C.C語言源程序經過C語言編譯程序編譯之后生成一個后綴為.EXE的二進制文件

D.每一種高級語言都有它對應的編譯程序

3.設某文件內排序后得到100個初始歸并段(初始順串),若使用多路歸并排序算法,且要求三趟歸并完成排序,問歸并路數最少為()

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

4.下列語句中,顯示沒有下畫線的超鏈接的語句是()。

A.a{text—decoration:none}

B.a{text—decoration:nounderline}

C.a{underline:none}

D.a{decoration:nounderline}

5.下列程序的運行結果是()。

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

6.表達式9!=10的值為()。

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

7.有以下程序:main(){intX,i;for(i=1;i<=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0)printf("%d,i)";}}輸出結果是()。A.28B.27C.42D.41

8.直接選擇排序的時間復雜度為()。(n為元素個數)

A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)

9.關于排序算法的以下說法,錯誤的是()

A.歸并排序的平均時間復雜度O(nlogn),最壞時間復雜度O(n^2)

B.堆排序平均時間復雜度O(nlogn),最壞時間復雜度O(nlogn)

C.冒泡排序平均時間復雜度O(n^2),最壞時間復雜度O(n^2)

D.快速排序的平均時間復雜度O(nlogn),最壞時間復雜度O(n^2)

10.已知數據表A中每個元素距其最終位置不遠,為節省時間,應該采用的算法是()

A.直接選擇排序B.堆排序C.快速排序D.直接插入排序

11.若希望下列的程序運行后輸出25,程序空白處的正確選項是()。

main()

{inti,j=50,a[]={7,4,10,5,8};

for()

j+=a[i];

primf("%d,j-40);

}

A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i

12.設有以下語句

charchl,ch2;scanf("%c%C",&chl,&ch2);

若要為變量chl和ch2分別輸入字符A和B,正確的輸入形式應該是()。

A.A和B之間用逗號間隔

B.A和B之間不能有任何間隔符

C.A和B之間可以用回車間隔

D.A和B之間用空格間隔

二、2.填空題(12題)13.fun函數的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大數,再求這N個最大值中最小的那個數并作為函數值返回。請填空。

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{introw,col,max,min;

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

{for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

14.以下isprime函數的功能是判斷形參a是否為素數,如果是素數,函數返回1,否則返回0。

intisprime(inta)

inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

15.在Windows環境下,可以利用單擊、雙擊、拖動這三種鼠標操作之一的【】操作實現窗口的移動。

16.下列程序的輸出結果是()。

intt(intx,inty,intcp,intdp)

{cp=x%y+y*y;

dp=x+x-y*y;

}

main()

{ima=4,b=3,c=9,d=8;

t(a,b,c,D);

printf("%d%d\n",c,D);

}

17.測試的目的是暴露錯誤,評價程序的可靠性;而______得目的是發現錯誤的位置并改正錯誤。

18.在關系模型中,把數據看成一個二維表,每一個二維表稱為一個______。

19.若有定義intm=5,y=2,則執行表達式y+=y-=m*=y后,y的值為【】。

20.算法復雜度主要包括時間復雜度和【】復雜度。

21.以下程序的運行結果是【】。

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

printf("%d\n",MAX(i,j));

}

22.以下程序中,select函數的功能是:在N行M列的二維數組中,選出一個最大值作為函數值返回,并通過形參傳回此最大值所在的行下標。請填空。

#defineN3

#defineM3

select(inta[N][M],int*n)

{inti,j,row=1,colum=1;

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

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

if(a[i][j]>a[row][colum]){row=i;colum=j;}

*n=【】;

return(【】);

}

main()

{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;

max=select(a,&n);

printf(“max=%d,line=%d\n”,max,n);

}

23.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許刪除的一端稱作()。

24.下列程序段中循環體的執行次數是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

三、3.程序設計題(10題)25.某學生的記錄由學號、8門課成績和平均分組成,學號和8門課的成績已在主函數中給出。請編寫fun()函數,它的功能是:求出該學生的平均分放在記錄的ave成員中。請自己定義正確的形參。

例如,若學生的成績是85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應當是78.875。

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

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

試題程序:

#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)//*輸出學號*/

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

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

/*輸出各科成績*/

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

/*輸出平均分*/

}

26.請編寫函數fun,其功能是:計算并輸出下列多項式的值:

例如,在主函數中從鍵盤給n輸入50后,輸出為:s=1.718282。

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

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

27.編寫函數fun,它的功能是計算下列級數和,和值由函數值返回。

例如,當n=10,x=0.3時,函數值為1.349859。

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

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

28.請編寫函數fun(),該函數的功能是:計算n門課程的平均分,計算結果作為函數值返回。

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

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

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

試題程序:

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

}

29.下列程序定義了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");

}

}

30.請編寫函數fun(),其功能是:將s所指字符串中下標為偶數的字符刪除,串中剩余字符形成的新串放在t所指數組中。

例如,當s所指字符串中的內容為ABCDEFGHIJK,則在t所指數組中的內容應是BDFHJ。

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

#include<string.h>

voidfun(char*s,chart[])

{

}

main()

chars[l00],t[l00];

clrscr();

printf("%nPleaseenterstringS:");

scanf("%s",s);

fun(s,t);

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

}

31.請編寫一個函數fun(),它的功能是計算并輸出給定整數n的所有因子(不包括1與自身)的平方和(規定n的值不大于100)。

例如:主函數從鍵盤給輸入n的值為56,則輸出為sum=1113。

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

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

試題程序:

#include<stdio.h>

longfun(intn)

{

}

main()

{

intn;

longsum;

printf("Inputn:");

scanf("%d",&n);

sum=fun(n);

printf("sum=%ld\n",sum);

}

32.請編一個函數floatfun(doubleh),函數的功能是對變量h中的值保留兩位小數,并對第三位進行四舍五入(規定h中的值為正數)。

例如:若h值為8.32433,則函數返回8.32:若h值為8.32533,則函數返回8.33。

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

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

試題程序:

#include<stdio.h>

#include<conio.h>

floatfun(floath)

{

}

main()

{

floata;

clrscr();

printf("Entera:");

scanf("%f",&a);

printf("Theoriginaldatais:");

printf("%f\n\n",a);

printf("Theresult:%f\n",fun(a));

}

33.請編寫函數fun,其功能是:計算并輸出3到n之間(含3和n)所有素數的平方根之和。

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

注意:要求n的值大于2但不大于100。部分源程序給出如下。清勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

[試題源程序]

#include<math.h>

#include<stdio.h>

doublefun(intn)

{

}

main()

{

intn;

doublesum;

printf("\n\nInputn:");

scanf("%d",&n);

sum=fun(n);

printf("\n\nsum=%f\n\n",sum);

}

34.請編寫函數fun(),該函數的功能是:將放在字符串數組中的M個字符串(每串的長度不超過N),按J頃序合并組成一個新的字符串。

例如,若字符串數組中的M個字符串為

AAAA

BBBBBBB

CC

則合并后的字符串內容應該是AAAABBBBBBBCC

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

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

試題程序:

#include<conio.h>

#defineM3

#defineN20

voidfun(chara[M][N],char*b)

{

}

main()

{

charw[M][N]={"AAAA","BBBBBBB","CC"},i;

chara[100]={"####################"};

printf("Thestring:\n");

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

puts(w[i]);

printf("\n");

fun(w,a);

printf("TheAstring:\n");

printf("%s",a);

printf("\n\n");

}

四、單選題(0題)35.if語句的基本形式是:if(表達式)語句,以下關于“表達式”值的敘述中正確的是A.必須是邏輯值B.必須是整數值C.必須是正數D.可以是任意合法的數值

五、單選題(0題)36.有以下程序:#include<stdio.h>main(){intt;scanf(“%d”,&t);if(t++<6)printf(“%d\n”,t);elseprintf(“%d\n”,t--);printf(“\n”);}執行時輸入6并按<Enter>鍵,則輸出結果是()。A.6B.8C.7D.5

六、單選題(0題)37.有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII碼值為65。程序運行后的輸出結果是A.5670B.656667C.567D.ABC

參考答案

1.D程序(program)是為實現特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。設計算法時要考慮到數據結構的設計,但是不僅僅是要考慮到數據結構的設計,還要考慮到其他的程序結構的問題。設計算法時不能只考慮結果的正確性和可靠性,還需要考慮到程序的時間冗余度等方面。所以答案選擇D。

2.C本題主要考查我們對C語言一些基礎知識的掌握情況。下面分別分析本題的四個選項。

由于高級程序設計語言具有可讀寫、可理解性好等特點,這就要求高級程序設計語言用接近人們習慣的自然語言和數學語言作為語言的表達形式,選項A的說法正確。

在計算機中,機器可以接受和處理的只能是由0和1組成的二進制代碼,用高級語言編寫的程序都需要經過編譯和連接,使其轉化為二進制代碼才能被機器執行。因此,選項B的說法正確。

C語言源程序經過C語言編譯程序編譯之后生成一個后綴為.OBJ的二進制文件(稱為目標文件);最后要由“連接程序”把此.OBJ文件與C語言提供的各種庫函數連接起來生成一個后綴為.EXE的可執行文件。因此,選項C的說法不正確。

由于高級語言編寫的程序都需要經過編譯和連接,才能被計算機執行,因此,每一種高級語言都有它對應的編譯程序,D選項的說法正確。

3.A

4.A

5.D本題考查while循環。第一次循環,y=y-1,y=2,循環條件成立,x=1,x++后值為1,x自加變成2,進入循環,a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執行下一次循環。第二次循環,x=2,y-1=1.循環條件成立,進入循環,a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執行break語句。退出循環。結果為D。

6.D

7.C只有當3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數只有42,故選擇c選鞏。

8.D

9.A

10.D

11.D解析:要想使程序輸出是25,則j-40=25,j=65,而j初值是50,所以填入for循環中的語句,使引用的數組元素累加為65-50=15即可。

12.B\nscanf輸入函數中,格式控制J必須嚴格按照函數中的要求進行輸入,在scanf('%c%c',&chl,&ch2)的格式控制語句中沒有任何字符進行間隔,所以在輸入時也不能使用任何字符進行間隔,所以答案選擇B。

\n

13.a[row][c01]>max或max<a[row][co1]max<min或min>maxa[row][c01]>max或max<a[row][co1]\r\nmax<min或min>max解析:本題有兩層for循環,函數首先定義了整型變量row、col、max和min,其中row用于外循環的循環變量,col用于內循環的循環變量,max記錄每行中的最人值,min記錄所有行最大值中的最小值。在內循環中,首先給max賦初值為每行的第0個元素值,然后從第一個開始依次與max進行比較。如果大于max則將其值賦給max,當每一行循環結束,max記錄了每一行的最大值。所以第一個空應該填a[row][co1]>max或max<a[row][co1)。退出內循環,在第一次退出內循環時,將min賦初值為第0行的max,然后在每次退出內循環時,將min和每行的max比較,如果大于max,則將max值賦min,所以第二個空應該填max<min或min>max,當退出外循環時,rain為所有行中的最大值的最小值。

14.return0或return(0)return1或return(1)return0或return(0)\r\nreturn1或return(1)解析:素數是指只能被1和其本身整除,不能被其他任何整數整除的數。根據if條件語句,若形參a對i取余等于0,則形參a可以被其他數整除,所以第一處填return0;若形參a對i取余不等于0,則形參s不可以被其他數整除,所以第二處填return1。

15.拖動拖動

16.9898解析:本題的考查點是函數的調用。本題中a,b,c,d是實參,x,y,cp,dp是形參。C語言規定,實參變量對形參變量的數據傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內存中,實參單元與形參單元是不同的單元。在調用函數時,給形參分配存儲單元,并將實參對應的值傳遞給形參,調用結束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結果是98。

17.軟件測試的目標是在精心控制的環境下執行程序,以發現程序中的錯誤,給出程序可靠性的鑒定;調試也稱排錯,它是一個與測試有聯系又有區別的概念。具體來說,測試的目的是暴露錯誤,評價程序的可靠性,而調試的目的是發現錯誤的位置,并改正錯誤。\r\n\r\n

18.關系關系解析:關系模型用;維表表示,則每個;維表代表一種關系。

19.-16-16解析:將賦值運算符右側的“表達式”的值賦給左側的變量,并且賦值運算符按照“自右而左”的結合順序,本題表達式應先算m的值為10,再運算y的值為8,最后計算y=y+(-8)=-8+(-8)=-16。

20.空間空間解析:程序在計算機上運行時所耗費的時間由程序運行時所需輸入的數據總量、對源程序進行編譯所需時間、計算機執行每條指令所需時間、程序中的指令重復執行的次數等決定。習慣上常常把語句重復執行的次數作為算法運行時間的相對量度,稱作算法的時間復雜度。算法在運行過程中需輔助存儲空間的大小稱為算法的空間復雜度。

21.99解析:本題考查宏定義與三目運算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個表達式的值,否則為b+1的值為整個表達式的值,(應注意后面的加1)。

22.rowa[row][colum]row\r\na[row][colum]解析:指針變量作為函數參數及二維數組的一個典型算法——求最大值及其下標。通過對題意的分析,在select()函數中,變量row的作用是用來記錄最大元素的行下標,colum的作用是用來記錄最大元素的列下標。程序中通過一個循環求得數組元素中最大值的行列下標,分別存放在變量row和colum中,根據題意,應該把行下標賦值給形參指針變量n指向的變量,把最大值a[row][colum]作為函數值返回。

23.隊頭隊頭解析:隊列是只允許在一端刪除,在另一端插入的順序表,在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。

24.33解析:本題考查do…while語句形式:

do循環體

while表達式

首先執行循環體語句,然后檢測循環控制條件表達式的值,若為真,則重復執行循環體語句,否則退出循環。第1次循環:b+=2,b=2,a-=2+b,a=11;第2次循環:b=4,a=5;第3次循環:b=6,a=-3,此時再判斷循環條件不滿足,退出循環。

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

26.

解析:該程序功能是計算并輸出多項式值。根據題干中給出的數列,首先推出每一項的表達式,然后再對多項式進行累加求和。

27.

解析:該程序功能是計算并輸出多項式值。根據題干中給出的數列,首先推出每一項的表達式,然后再對多項式進行累加求和。

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

29.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;++)。

30.voidfun(char*schart[]){intij=0k=strlen(s);/*k為字符串的長度*/for(i=l;i<k;i=i+2)/*將s所指字符串中下標為奇數的字符存入t所指字符串中*/t[j++]=s[ii;t[j]='\0';/*在字符申最后加上結束標志*/}voidfun(char*s,chart[])\r\n{\r\ninti,j=0,k=strlen(s);/*k為字符串的長度*/\r\nfor(i=l;i<k;i=i+2)/*將s所指字符串中下標為奇數的字符存入t所指字符串中*/\r\nt[j++]=s[ii;\r\nt[j]='\\0';/*在字符申最后加上結束標志*/\r\n}解析:本題使用了一種泳遠是奇數的循環方法,即for(i=1;i<k;i=i+2),因為開始時的值為1,當i+2循環時,此值永遠是奇數。

31.longfun(intn){inti;longs=0;for(i=2;i<=n-1;i++)/*從2~n-1中找n的所有因子*/if(n%i==0)s+=i*i;/*將所有因子求平方加*/returns;/將平方和返回*/}longfun(intn)\r\n{\r\ninti;\r\nlongs=0;\r\nfor(i=2;i<=n-1;i++)/*從2~n-1中找n的所有因子*/\r\nif(n%i==0)\r\ns+=i*i;/*將所有因子求平方加*/\r\nreturns;/將平方和返回*/\r\n}解析:本題的解題思路是用n逐個去除以2到n-1之間的所有數,如果n能被除盡,則把所得到的一個因子的平方累加到s中去。

32.floatfun(floath){longt;t=(h*1000+5)/10;/*單精度數h乘以1000后再加5相當十對h中的第三位小數進行四舍五入除以10后將其賦給一個長整型數時就把第三位小數后的數全部截去*/return(float)t/100;/*除以100保留2位小數*/floatfun(floath)\r\n{\r\nlongt;\r\nt=(h*1000+5)/10;/*單精度數h乘以1000后再加5,相當十對h中的第三位小數進行四舍五入\r\n除以10后將其賦給一個長整型數時就把第三位小數后的數全部截去*/\r\nreturn(float)t/100;/*除以100,保留2位小數*/解析:注意本題要求h的值真正發生了四舍五入,而不是為了輸出,即不能用printf(“%7.2f”,h)來直接得到結果。由于單精度數h乘以1000后再加5,此時相當于對h中的第三位小數進行四舍五入,再將其賦給一個長整型數時就把第三位小數后的數全部截去。注意在return中要將其中一個數轉成浮點型數。

33.doublefun(intn){intij=0;doubles=0;for(i=3;i<=n;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j==i)s=s+sqrt(i);}returns;}doublefun(intn)\r\n{\r\ninti,j=0;\r\ndoubles=0;\r\nfor(i=3;i<=n;i++)\r\n{\r\nfor(j=2;j<i;j++)\r\nif(i%j==0)\r\nbreak;\r\nif(j==i)\r\ns=s+sqrt(i);\r\n}\r\nreturns;\r\n}

34.voidfun(chara[M][N]char*b){intijk=0;for(i=0;i<M;i++)/*將字符串數組中的M個字符串按順序存入一個新的字符串*/for(j=0;a[i][j]!='\0';j++)b[k++]=a[i][j];b[k]='\0';/*在字符串最后加上結束標志符*/}voidfun(chara[M][N],char*b)\r\n{\r\ninti,j,k=0;\r\nfor(i=0;i<M;i++)/*將字符串數組中的M個字符串,按順序存入一個新的字符串*/\r\nfor(j=0;a[i][j]!='\\0';j++)\r\nb[k++]=a[i][j];\r\nb[k]='\\0';/*在字符串最后加上結束標志符*/\r\n}解析:本程序中for(i=0;i<M;i++)循環的作用是用于對二維數組行的控制,第2個循環的作用是從同一行中取出字符并存放到一維數組b中,語句是b[k++]=a[i][j];。

35.D

36.C后綴自增運算“t++”表示先運算,再自加。語句“if(t++<6)printf(“%d\\n”,t);elseprintf(“%d\\n”,t--);”中t的初值為6,則“t++<6”,條件為假,t自增至7,執行“printf(“%d\\n”,t--);”,此時t=7,輸出t值為7,之后進行自減操作t=6。因此輸出的結果為7。故本題答案為C選項。

37.C2021-2022學年福建省莆田市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

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

A.算法就是程序B.設計算法時只需要考慮數據結構的設計C.設計算法時只需要考慮結果的可靠性D.以上3種說法都不對

2.以下說法錯誤的是A.A.高級語言都是用接近人們習慣的自然語言和數學語言作為語言的表達形式

B.計算機只能處理由0和1的代碼構成的二進制指令或數據

C.C語言源程序經過C語言編譯程序編譯之后生成一個后綴為.EXE的二進制文件

D.每一種高級語言都有它對應的編譯程序

3.設某文件內排序后得到100個初始歸并段(初始順串),若使用多路歸并排序算法,且要求三趟歸并完成排序,問歸并路數最少為()

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

4.下列語句中,顯示沒有下畫線的超鏈接的語句是()。

A.a{text—decoration:none}

B.a{text—decoration:nounderline}

C.a{underline:none}

D.a{decoration:nounderline}

5.下列程序的運行結果是()。

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

6.表達式9!=10的值為()。

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

7.有以下程序:main(){intX,i;for(i=1;i<=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0)printf("%d,i)";}}輸出結果是()。A.28B.27C.42D.41

8.直接選擇排序的時間復雜度為()。(n為元素個數)

A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)

9.關于排序算法的以下說法,錯誤的是()

A.歸并排序的平均時間復雜度O(nlogn),最壞時間復雜度O(n^2)

B.堆排序平均時間復雜度O(nlogn),最壞時間復雜度O(nlogn)

C.冒泡排序平均時間復雜度O(n^2),最壞時間復雜度O(n^2)

D.快速排序的平均時間復雜度O(nlogn),最壞時間復雜度O(n^2)

10.已知數據表A中每個元素距其最終位置不遠,為節省時間,應該采用的算法是()

A.直接選擇排序B.堆排序C.快速排序D.直接插入排序

11.若希望下列的程序運行后輸出25,程序空白處的正確選項是()。

main()

{inti,j=50,a[]={7,4,10,5,8};

for()

j+=a[i];

primf("%d,j-40);

}

A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i

12.設有以下語句

charchl,ch2;scanf("%c%C",&chl,&ch2);

若要為變量chl和ch2分別輸入字符A和B,正確的輸入形式應該是()。

A.A和B之間用逗號間隔

B.A和B之間不能有任何間隔符

C.A和B之間可以用回車間隔

D.A和B之間用空格間隔

二、2.填空題(12題)13.fun函數的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大數,再求這N個最大值中最小的那個數并作為函數值返回。請填空。

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{introw,col,max,min;

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

{for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

14.以下isprime函數的功能是判斷形參a是否為素數,如果是素數,函數返回1,否則返回0。

intisprime(inta)

inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

15.在Windows環境下,可以利用單擊、雙擊、拖動這三種鼠標操作之一的【】操作實現窗口的移動。

16.下列程序的輸出結果是()。

intt(intx,inty,intcp,intdp)

{cp=x%y+y*y;

dp=x+x-y*y;

}

main()

{ima=4,b=3,c=9,d=8;

t(a,b,c,D);

printf("%d%d\n",c,D);

}

17.測試的目的是暴露錯誤,評價程序的可靠性;而______得目的是發現錯誤的位置并改正錯誤。

18.在關系模型中,把數據看成一個二維表,每一個二維表稱為一個______。

19.若有定義intm=5,y=2,則執行表達式y+=y-=m*=y后,y的值為【】。

20.算法復雜度主要包括時間復雜度和【】復雜度。

21.以下程序的運行結果是【】。

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

printf("%d\n",MAX(i,j));

}

22.以下程序中,select函數的功能是:在N行M列的二維數組中,選出一個最大值作為函數值返回,并通過形參傳回此最大值所在的行下標。請填空。

#defineN3

#defineM3

select(inta[N][M],int*n)

{inti,j,row=1,colum=1;

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

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

if(a[i][j]>a[row][colum]){row=i;colum=j;}

*n=【】;

return(【】);

}

main()

{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;

max=select(a,&n);

printf(“max=%d,line=%d\n”,max,n);

}

23.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許刪除的一端稱作()。

24.下列程序段中循環體的執行次數是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

三、3.程序設計題(10題)25.某學生的記錄由學號、8門課成績和平均分組成,學號和8門課的成績已在主函數中給出。請編寫fun()函數,它的功能是:求出該學生的平均分放在記錄的ave成員中。請自己定義正確的形參。

例如,若學生的成績是85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應當是78.875。

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

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

試題程序:

#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)//*輸出學號*/

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

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

/*輸出各科成績*/

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

/*輸出平均分*/

}

26.請編寫函數fun,其功能是:計算并輸出下列多項式的值:

例如,在主函數中從鍵盤給n輸入50后,輸出為:s=1.718282。

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

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

27.編寫函數fun,它的功能是計算下列級數和,和值由函數值返回。

例如,當n=10,x=0.3時,函數值為1.349859。

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

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

28.請編寫函數fun(),該函數的功能是:計算n門課程的平均分,計算結果作為函數值返回。

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

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

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

試題程序:

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

}

29.下列程序定義了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");

}

}

30.請編寫函數fun(),其功能是:將s所指字符串中下標為偶數的字符刪除,串中剩余字符形成的新串放在t所指數組中。

例如,當s所指字符串中的內容為ABCDEFGHIJK,則在t所指數組中的內容應是BDFHJ。

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

#include<string.h>

voidfun(char*s,chart[])

{

}

main()

chars[l00],t[l00];

clrscr();

printf("%nPleaseenterstringS:");

scanf("%s",s);

fun(s,t);

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

}

31.請編寫一個函數fun(),它的功能是計算并輸出給定整數n的所有因子(不包括1與自身)的平方和(規定n的值不大于100)。

例如:主函數從鍵盤給輸入n的值為56,則輸出為sum=1113。

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

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

試題程序:

#include<stdio.h>

longfun(intn)

{

}

main()

{

intn;

longsum;

printf("Inputn:");

scanf("%d",&n);

sum=fun(n);

printf("sum=%ld\n",sum);

}

32.請編一個函數floatfun(doubleh),函數的功能是對變量h中的值保留兩位小數,并對第三位進行四舍五入(規定h中的值為正數)。

例如:若h值為8.32433,則函數返回8.32:若h值為8.32533,則函數返回8.33。

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

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

試題程序:

#include<stdio.h>

#include<conio.h>

floatfun(floath)

{

}

main()

{

floata;

clrscr();

printf("Entera:");

scanf("%f",&a);

printf("Theoriginaldatais:");

printf("%f\n\n",a);

printf("Theresult:%f\n",fun(a));

}

33.請編寫函數fun,其功能是:計算并輸出3到n之間(含3和n)所有素數的平方根之和。

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

注意:要求n的值大于2但不大于100。部分源程序給出如下。清勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

[試題源程序]

#include<math.h>

#include<stdio.h>

doublefun(intn)

{

}

main()

{

intn;

doublesum;

printf("\n\nInputn:");

scanf("%d",&n);

sum=fun(n);

printf("\n\nsum=%f\n\n",sum);

}

34.請編寫函數fun(),該函數的功能是:將放在字符串數組中的M個字符串(每串的長度不超過N),按J頃序合并組成一個新的字符串。

例如,若字符串數組中的M個字符串為

AAAA

BBBBBBB

CC

則合并后的字符串內容應該是AAAABBBBBBBCC

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

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

試題程序:

#include<conio.h>

#defineM3

#defineN20

voidfun(chara[M][N],char*b)

{

}

main()

{

charw[M][N]={"AAAA","BBBBBBB","CC"},i;

chara[100]={"####################"};

printf("Thestring:\n");

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

puts(w[i]);

printf("\n");

fun(w,a);

printf("TheAstring:\n");

printf("%s",a);

printf("\n\n");

}

四、單選題(0題)35.if語句的基本形式是:if(表達式)語句,以下關于“表達式”值的敘述中正確的是A.必須是邏輯值B.必須是整數值C.必須是正數D.可以是任意合法的數值

五、單選題(0題)36.有以下程序:#include<stdio.h>main(){intt;scanf(“%d”,&t);if(t++<6)printf(“%d\n”,t);elseprintf(“%d\n”,t--);printf(“\n”);}執行時輸入6并按<Enter>鍵,則輸出結果是()。A.6B.8C.7D.5

六、單選題(0題)37.有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII碼值為65。程序運行后的輸出結果是A.5670B.656667C.567D.ABC

參考答案

1.D程序(program)是為實現特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。設計算法時要考慮到數據結構的設計,但是不僅僅是要考慮到數據結構的設計,還要考慮到其他的程序結構的問題。設計算法時不能只考慮結果的正確性和可靠性,還需要考慮到程序的時間冗余度等方面。所以答案選擇D。

2.C本題主要考查我們對C語言一些基礎知識的掌握情況。下面分別分析本題的四個選項。

由于高級程序設計語言具有可讀寫、可理解性好等特點,這就要求高級程序設計語言用接近人們習慣的自然語言和數學語言作為語言的表達形式,選項A的說法正確。

在計算機中,機器可以接受和處理的只能是由0和1組成的二進制代碼,用高級語言編寫的程序都需要經過編譯和連接,使其轉化為二進制代碼才能被機器執行。因此,選項B的說法正確。

C語言源程序經過C語言編譯程序編譯之后生成一個后綴為.OBJ的二進制文件(稱為目標文件);最后要由“連接程序”把此.OBJ文件與C語言提供的各種庫函數連接起來生成一個后綴為.EXE的可執行文件。因此,選項C的說法不正確。

由于高級語言編寫的程序都需要經過編譯和連接,才能被計算機執行,因此,每一種高級語言都有它對應的編譯程序,D選項的說法正確。

3.A

4.A

5.D本題考查while循環。第一次循環,y=y-1,y=2,循環條件成立,x=1,x++后值為1,x自加變成2,進入循環,a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執行下一次循環。第二次循環,x=2,y-1=1.循環條件成立,進入循環,a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執行break語句。退出循環。結果為D。

6.D

7.C只有當3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數只有42,故選擇c選鞏。

8.D

9.A

10.D

11.D解析:要想使程序輸出是25,則j-40=25,j=65,而j初值是50,所以填入for循環中的語句,使引用的數組元素累加為65-50=15即可。

12.B\nscanf輸入函數中,格式控制J必須嚴格按照函數中的要求進行輸入,在scanf('%c%c',&chl,&ch2)的格式控制語句中沒有任何字符進行間隔,所以在輸入時也不能使用任何字符進行間隔,所以答案選擇B。

\n

13.a[row][c01]>max或max<a[row][co1]max<min或min>maxa[row][c01]>max或max<a[row][co1]\r\nmax<min或min>max解析:本題有兩層for循環,函數首先定義了整型變量row、col、max和min,其中row用于外循環的循環變量,col用于內循環的循環變量,max記錄每行中的最人值,min記錄所有行最大值中的最小值。在內循環中,首先給max賦初值為每行的第0個元素值,然后從第一個開始依次與max進行比較。如果大于max則將其值賦給max,當每一行循環結束,max記錄了每一行的最大值。所以第一個空應該填a[row][co1]>max或max<a[row][co1)。退出內循環,在第一次退出內循環時,將min賦初值為第0行的max,然后在每次退出內循環時,將min和每行的max比較,如果大于max,則將max值賦min,所以第二個空應該填max<min或min>max,當退出外循環時,rain為所有行中的最大值的最小值。

14.return0或return(0)return1或return(1)return0或return(0)\r\nreturn1或return(1)解析:素數是指只能被1和其本身整除,不能被其他任何整數整除的數。根據if條件語句,若形參a對i取余等于0,則形參a可以被其他數整除,所以第一處填return0;若形參a對i取余不等于0,則形參s不可以被其他數整除,所以第二處填return1。

15.拖動拖動

16.9898解析:本題的考查點是函數的調用。本題中a,b,c,d是實參,x,y,cp,dp是形參。C語言規定,實參變量對形參變量的數據傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內存中,實參單元與形參單元是不同的單元。在調用函數時,給形參分配存儲單元,并將實參對應的值傳遞給形參,調用結束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結果是98。

17.軟件測試的目標是在精心控制的環境下執行程序,以發現程序中的錯誤,給出程序可靠性的鑒定;調試也稱排錯,它是一個與測試有聯系又有區別的概念。具體來說,測試的目的是暴露錯誤,評價程序的可靠性,而調試的目的是發現錯誤的位置,并改正錯誤。\r\n\r\n

18.關系關系解析:關系模型用;維表表示,則每個;維表代表一種關系。

19.-16-16解析:將賦值運算符右側的“表達式”的值賦給左側的變量,并且賦值運算符按照“自右而左”的結合順序,本題表達式應先算m的值為10,再運算y的值為8,最后計算y=y+(-8)=-8+(-8)=-16。

20.空間空間解析:程序在計算機上運行時所耗費的時間由程序運行時所需輸入的數據總量、對源程序進行編譯所需時間、計算機執行每條指令所需時間、程序中的指令重復執行的次數等決定。習慣上常常把語句重復執行的次數作為算法運行時間的相對量度,稱作算法的時間復雜度。算法在運行過程中需輔助存儲空間的大小稱為算法的空間復雜度。

21.99解析:本題考查宏定義與三目運算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個表達式的值,否則為b+1的值為整個表達式的值,(應注意后面的加1)。

22.rowa[row][colum]row\r\na[row][colum]解析:指針變量作為函數參數及二維數組的一個典型算法——求最大值及其下標。通過對題意的分析,在select()函數中,變量row的作用是用來記錄最大元素的行下標,colum的作用是用來記錄最大元素的列下標。程序中通過一個循環求得數組元素中最大值的行列下標,分別存放在變量row和colum中,根據題意,應該把行下標賦值給形參指針變量n指向的變量,把最大值a[row][colum]作為函數值返回。

23.隊頭隊頭解析:隊列是只允許在一端刪除,在另一端插入的順序表,在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。

24.33解析:本題考查do…while語句形式:

do循環體

while表達式

首先執行循環體語句,然后檢測循環控制條件表達式的值,若為真,則重復執行循環體語句,否則退出循環。第1次循環:b+=2,b=2,a-=2+b,a=11;第2次循環:b=4,a=5;第3次循環:b=6,a=-3,此時再判斷循環條件不滿足,退出循環。

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

26.

解析:該程序功能是計算并輸出多項式值。根據題干中給出的數列,首先推出每一項的表達式,然后再對多項式進行累加求和。

27.

解析:該程序功能是計算并輸出多項式值。根據題干中給出的數列,首先推出每一項的表達式,然后再對多項式進行累加求和。

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

溫馨提示

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

評論

0/150

提交評論