2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.一個無向連連通圖的生成樹是含有該連通圖的全部項點的_______。

A.極小連通子圖B.極小子圖C.極大連通子圖D.極大子圖

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

A.局部變量說明為static存儲類,其生存期將得到延長

B.全局變量說明為static存儲類,其作用域將被擴大

C.任何存儲類的變量在未賦初值時,其值都是不確定的

D.形參可以使用的存儲類說明符與局部變量完全相同

3.有以下程序:

程序執(zhí)行后的輸出結果是()。

A.45B.20C.25D.36

4.下列選項中,當X為大于1的奇數時,值為0的表達式是()。

A.x%2==0B.x/2C.x%2!=0D.x%2==1

5.以下選項中可作為C語言合法常量的是_____。A.-80B.-080C.-8e1.0D.-80.Oe

6.下面程序的運行結果是()。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}

A.-1B.1C.8D.0

7.有以下程序:#include<stdio.h>main(){chara[5][10]={“China”,“beijing”,“very”,“welcome”,“you”};char*p[5];inti;for(i=3;i<5;i++){p[i]=*(a+i);printf(“%s”,p[i]);printf(“%c”,*p[i]);}}程序運行后的輸出結果是()。

A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy

8.設有定義:structcomplex{intreal,unreal;}data1={1,8},data2;則下列賦值語句中錯誤的是()。

A.data2=(2,6);

B.data2=data1;

C.data2.real=data1.real;

D.data2.real=data1.unreal;

9.當執(zhí)行下面的程序時,如果輸入ABC,則輸出結果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

10.數據在計算機存儲器內表示時,如果元素在存儲器中的相對位置能反映數據元素之間的邏輯關系,則稱這種存儲結構為()。

A.存儲結構B.邏輯結構C.順序存儲結構D.鏈式存儲結構

11.有下列程序:程序執(zhí)行后的輸出結果是()。A.eeaabmmnhhirrstu

B.efgabcdmnopqhijkIrstuvwxyz

C.efgacdmopqhjkIrvwxyz

D.eefgaabcdmmnopqhhijkIrrstuvwxyz

12.紅黑樹中已經有n個數據,尋找某個key是否存在的時間復雜度為()

A.o(logn)B.o(n)C.o(n二次方)D.o(1)

13.函數調用:strcat(strcpy(str1,str2),str3)的功能是______。

A.將串str1復制到串str2中后再連接到串str3之后

B.將串str1連接到串str2之后再復制到串str3之后

C.將串str2復制到串str1中后再將串sir3連接到串str1之后

D.將串str2連接到串str1之后再將串str1復制到串str3中

14.已知i,j,k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1,j的值為2,k的值為3,以下選項中正確的輸入語句是A.scanf("%2d%2d%2d",&i,&j,&k);

B.scanf("%d%d%d",&i,&j,&k);

C.scanf("%d,%d,%d",&i,&j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

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

A.一個邏輯數據結構只能有一種存儲結構

B.邏輯結構屬于線性結構,存儲結構屬于非線性結構

C.一個邏輯數據結構可以有多種存儲結構,且各種存諸結構不影響數據處理的效率

D.一個邏輯數據結構可以有多種存儲結構,且各種存諸結構影響數據處理的效率

16.下面描述中,符合結構化程序設計風格的是()。

A.使用順序、選擇和重復(循環(huán).三種基本控制結構表示程序的控制邏輯

B.模塊只有一個入口,可以有多個出口

C.注重提高程序的執(zhí)行效率

D.不使用goto語句

17.設有函數說明語句:intfun(int,int);以及函數指針定義語句:int(*f)(int,int);若要使函數指針指向函數fun的入口地址,以下選項中正確的是()。

A.f=fun();B.*f=fun;C.f=fun;D.*f=fun();

18.程序運行后的輸出結果是()。A.10B.11C.20D.21

19.第

17

若有條件表達式(exp)?a++:b--,則以下表達式中能完全等價于表達式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

20.以下關于注釋的敘述中錯誤的是()。

A.注釋的邊界符號“/”和“*”之間不允許加入空格

B.C語言允許注釋出現在程序中任意合適的地方

C.注釋的內容僅用于閱讀,對程序的運行不起作用

D.注釋的邊界符號“/*”和“*/”必須成對出現且可以嵌套

二、2.填空題(20題)21.函數pi的功能是根據以下公式近似求得的:

pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

請在下面的函數中填空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

for(i=1;i<=n;i++)s=s+【】。

return(sqrt(6*s));

}

22.以下程序中用戶由鍵盤輸入一個文件名,然后輸入一串字符(用#結束輸入)存放到此文件中,形成文本文件,并將字符的個數寫到文件的尾部。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;

charch,fname[32];intcount=0;

printf(”Inputthefilename:");

scanf("%s",fname);

if((fp=fopen(【】,"w+"))==NULL)

{printf("Can'topenfile:%s\n",fname);exit(0);}

printf("Enterdata:\n");

while((ch=getchar())!='#')

{fputc(ch,fp);count++;}

fprintf(【】,"\n%d\n",count);

fclose(fp);

}

23.若有如下程序:

sub(int*y)

{while(--(*y));

printf("%d",(*y)--);}

main()

{intx=10;

sub(&x);

}

則程序運行后的輸出結果是【】。

24.下面程序的功能是:輸出100以內能被3整除且個位數為9的所有整數,清填空。main(){inti,j;for(i=0;();i++){j=i*10+9;if(j%3!=0)continue;printf("%d",j);}}

25.關鍵字ASC和DESC分別表示【】的含義。

26.與結構化需求分析方法相對應的是【】方法。

27.在數據的存儲結構中,不僅需要存儲各數據元素的信息,還要存放各元素之間______的信息。

28.對數組中的元素值進行排序。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[]={2,4,15,3,17,5,8,23,9,7,11,13,}i,j,k;

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

for(i=k;i<12;i++)

if(a[i]>【】)

{j=a[i];

a[i]=【】;

【】=j;}

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

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

printf("\n");

}

29.執(zhí)行以下程序后的輸出結果是()。

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",A);

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

#include<stdio.h>

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{case0:m++;n++;break;

case10:n++;break;

default:k++;n++;

}

printf("%d%d%d\n",m,n,k);

}

31.在軟件開發(fā)中,結構化方法包括結構化分析方法、結構化設計方法和結構化程序設計方法。詳細設計階段所采用的是【】方法。

32.買來一張新盤后,在存入文件前,必須進行【】處理。

33.下列語句的輸出結果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

34.以下程序的功能是:通過函數func輸入字符并統(tǒng)計輸入字符的個數。輸入時用字符作為輸入結束標志。請?zhí)羁铡?include<stdio.h>long();/*函數說明語句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}

35.以下函數rotate的功能是:將a所指N行N列的二維數組中的最后一行放到b所指二維數組的第0列中,把a所指二維數組中的第0行放到b所指二維數組的最后一列中,b所指二維數組中其他數據不變。

#defineN4

voidrotade(inta[][N],intb[][N])

{intI,j;

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

{b[I][N-1]=【】;【】=a[N-1][I];}}

36.若有定義inta[4][4]={1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

37.若fp已正確定義為—‘個文件指針,d1.dd為二進制文件,請?zhí)羁?,以便為“讀”而打開此文件:fp=fopen(______);。

38.數據模型按不同的應用層次分為三種類型,它們是______數據模型、邏輯數據模型和物理數據模型。

39.下列程序的輸出結果是______。

main()

{inta=2,b=4,c=6;

int*p1=&a,*p2=&b,*p;

*(p=&c)=*p1*(*p2);

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

}

40.以下程序段用以統(tǒng)計鏈表中元素的個數。其中first指向鏈表第一個結點,count用來統(tǒng)計結點個數。請?zhí)羁铡?/p>

structlink

{chardata;

structlink*next;

}

structlink*p,*first;

|

intcount=0;

p=first;

while(【】)

{

【】;

p=【】;

}

三、1.選擇題(20題)41.下列敘述中正確的是()。A.一個邏輯數據結構只能有一種存儲結構

B.邏輯結構屬于線性結構,存儲結構屬于非線性結構

C.一個邏輯數據結構可以有多種存儲結構,且各種存儲結構不影響數據處理的效率

D.一個邏輯數據結構可以有多種存儲結構,且各種存儲結構影響數據處理的效率

42.C語言中最簡單的數據類型包括()。

A.整型、實型、邏輯型B.整型、實型、字符型C.整型、字符型、邏輯型D.字符型、實型、邏輯型

43.下列語句組中,不正確的是()。

A.char*s;s="Olympic";

B.chars[]="Olympic";

C.char*s;s={"Olympic"};

D.chars[]={"Olympic"};

44.下面程序的輸出結果是()。chars()="ABCD",*p;main(){for(p=s;p<s+4;p++)printf("%s\n",p);)

A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA

45.運行以下程序后,如果從鍵盤上輸入6514<回車>,則輸出結果為______。main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}

A.m=3B.m=2C.m=1D.m=0

46.在C語言中,形參的默認存儲類型是______。

A.autoB.registerC.staticD.extern

47.以下選項中可作為C語言合法常量的是

A.-80B.-080C.-8e1.0D.-80.0e

48.設有定義:intnl=0,n2,*p=&n2,*q=&n1;,下列賦值語句中與n2=n1;語句等價的是()。

A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

49.下列程序的輸出結果是()。#include<stdio.h>main(){charch[2][5]={"1234","5678"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0',j+=2){s=p[i][j]-'0';printf("%d",s);)}

A.6357B.6135C.1357D.691357

50.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達式是

A.kk>=′A′&&kk<=′Z′

B.!(kk>=′A′||kk<=′Z′)

C.(kk+32)>=′a′&&(kk+32)<=′Z′

D.isalpha(kk)&&(kk<91)

51.下列有關格式輸入函數scanf的敘述中正確的是()

A.輸入項可以是C語言中規(guī)定的任何變量,并且在任何變量前必須加地址符號“&”

B.可以只有格式控制項,沒有地址列表項

C.在輸入數據時,必須規(guī)定精度。如:scanf("%4.2f",&d);

D.當輸入數據時,必須指明變量地址

52.以下選項中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

53.為了避免嵌套的if-else的二義性,C語言鋇定:else與______配對。

A.縮排位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if

54.以下程序調用findmax函數求數組中值最大的元素在數組中的下標,請選擇填空:#include<stdio.h>findmax(int*s,intt,int*k){intp;for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])________;}main(){inta[10],i,k;for(i=0;i<10;i++)scanf("%d",&a[i]);findmax(a,10,&k);printf("%d,%d\n",k,a[k]);}

A.k=pB.*k=p-sC.k=p-sD.*k=p

55.若t為doudle類型,表達式t=1,t+5,t++的值是()

A.1B.6C.2D.1

56.結構化程序設計的3種基本結構是()。

A.過程、子程序和分程序B.順序、選擇和重復C.遞歸、堆棧和隊列D.調用、返回和轉移

57.有以下程序#include<stdio.h>main(){int*p,j;p=NULLp=fun();for(j=0;j<4;j+){printf("%d",*p);p++;}}int*fun(){inta[4],k;for(k=0;k<4;k++)a[k]=k;return(A);}程序運行后的輸出結果是()

A.程序有錯不能運行B.輸出4個NULLC.輸出0123D.輸出1111

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

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

59.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}執(zhí)行后輸出結果是

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

60.下面程序的輸出結果是()。#include<stdio.h>intx=1;voidmain(){intx=2;printf("%d,",x);if(x==1){intx=4;printf("%d,",x++);}printf("%d",x++);}

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

四、選擇題(20題)61.

62.下面敘述中,正確的是

A.C語言編譯時不檢查語法B.C語言的子程序有過程和函數兩種

C.C語言的函數可以嵌套定義D.C語言的函數可以嵌套調用

63.

64.有以下程序當執(zhí)行程序時,按下列方式輸入數據(從第l列開始,<CR>代表回車,注意;回車也是--+qz符)12<CR>34<CR>則輸出結果是()。

A.123B.12C.1234D.1234

65.下列敘述中正確的是()。A.循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結構

B.在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況

C.在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況

D.循環(huán)隊列中元素的個數是由隊頭指針和隊尾指針共同決定

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

A)C程序中的#include和#define行均是C語句,只是語法不同

B)除賦值運算符外,逗號運算符的優(yōu)先級最低

C)C程序中,j++;是賦值語句

D)C程序中,+、-、*、/、%號是算數運算符,可用于整型和實型數的運算

67.

68.

69.以下所列的C語言常量中,錯誤的是()。

A.0xFFB.1.2e0.5C.2LD.‘72’

70.設有如下說明

typedefstruct

{intn;

charc;

doublex;

}STD;

則以下選項中,能正確定義結構體數組并賦初值的語句是

A.STDtt[2]={{1,’A’,62},{2,’B’,75}};B.STDtt[2]={1,"A",62,2,"B",75};

C.structtt[2]={{1,’A’},{2,’B’}};D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};

71.

則以下選項中錯誤的表達式是()。

A.

B.

C.

D.

72.

73.

74.有以下計算公式

75.

76.

77.以下選項中,與k=n++完全等價的表達式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

78.以下選項中正確的語句組是()。

A.char*s;8={1.BOOK!”}i

B.char*s;8=”BOOK!”;

C.charS[10];S=”BOOK!”;

D.charS[];S=”BOOK!”;

79.

80.

五、程序改錯題(1題)81.下列給定程序中,函數proc的功能是根據整型形參n,計算如下公式的值:

Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)

例如,n中的值為l0,則應輸出0.817962。

請修改程序中的錯誤,使它能得到正確結果。

注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdiOh>

doubleproc(intn)

{

doubley=1.0;

//****found****

intJ=1;.

inti;

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

{

j=-l*j;//****found****

y+=1/(i*i);

}

return(y);

}

voidmain

{

intn=10:

system("CLS"):

printf("\nTheresultis%1f\n",proc(n));

}

六、程序設計題(1題)82.下列程序定義了M×M的二維數組,并在主函數中賦值。請編寫函數proc(),函數的功能是:求出數組周邊元素的平均值并作為函數值返回給主函數中的s。例如,若a數組中的值為:21098則返回主程序后,s的值為3.750000。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A

2.A解析:局部變量在執(zhí)行到它所在的程序塊時產生,執(zhí)行完時被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運行結束,故選項A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結束,故選項B不正確:未賦初值的局部變量的初值是隨機的,故選項C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項D不正確。所以,4個選項中選項A符合題意。

3.C統(tǒng)計1~9九個數中的奇數和,此題重點考察指向數組的指針。c語言規(guī)定數組名代表數組的首地址,也就是第一個元素的地址。因此*(t+i)代表數組的第i+1個元素。程序運行的結果是l+3+5+7+9=25。1

4.A算術運算符的優(yōu)先級高于關系運算符的優(yōu)先級。所以當x為大于1的奇數時,A選項的值為假,即0。B選項的值為不定值,但絕對不是0。C選項的值為真,即1。0選項的值為真,即1。故本題答案為A選項。

5.A解析:C語言的常量分為整型常量、實型常量和字符型常量。選項A屬于實型常量中的十進制小數形式的表示法,是合法的。

6.D解析:本題考查“++”和“--”運算符,運算符“++”是操作數加1,而“--”則是操作數減1。在do-while循環(huán)中,首先執(zhí)行y--,再執(zhí)行--y。當y=2時,執(zhí)行y--,y的值變?yōu)?,--y使y值變?yōu)?,循環(huán)結束。執(zhí)行輸出時,先輸出y的值0,然后執(zhí)行y--,使y的值變?yōu)?1。

7.Dmain函數定義一個二維字符數組a,它包含5個字符串,每個字符串存放在一個長度為10的一維數組中。指針數組P包含5個字符指針元素。for循環(huán)中,每次將*(a+i)賦給P[i],再輸出P[i]和*P[i]。由于*(a+i)等價于a[i],因此每次都是將下標為i的字符串首地址賦給p[i],再輸出該字符串和該字符串的首字符。i=3時,輸出字符串“welcome”和首字符“w”;i=4時,輸出字符串“you”和首字符“y”。綜上,輸出結果為welcomewyouy。故本題答案為D選項。

8.AA選項中的語句可以在聲明變量的同時為data2賦值,賦值語句應寫作“data2={2,6};”。故本題答案為A選項。

9.A

10.C

11.C程序定義一個二維字符數組a,使用5個字符串對其初始化。另外定義字符指針數組P。for循環(huán)中,每次將數組a當前下標為i的字符串首地址賦給P[i],再求得P[i]的長度賦給len,第1個printf輸出p[i]字符串的首字母,第2個printf輸出p[i]字符串下標從len/2開始的子字符串。當下標i=0時輸出efg;當下標i=l時輸出acd;當下標i=2時輸出mopq;當下標i=3時輸出hjkl;當下標i=4時輸出rvwxyz。所以程序輸出:efgacdmopqhjklrvwxyz。本題答案為C選項。

12.A

13.C解析:題目中所給函數的功能是;先用函數strcpy把參數串str2復制到參數串str1中去,然后用函數strcat把參數串str3連接到經過修改后的參數串str1后,因此選項C正確。

14.C

15.D數據的存儲結構是指數據的邏輯結構在計算機存儲空間中的存放形式,一種數據結構可以根據需要采用不同的存儲結構,用的存儲結構有順序和鏈式結構。用不同的存儲結構,其處理的效率是不同的。

16.A解析:結構化程序設計方法的四條原則是:①自頂向下;②逐步求精;③模塊化;④限制使用goto語句。“自頂向下”是指在程序設計時,先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標?!爸鸩角缶笔侵笇碗s問題應設計一些子目標作過渡,逐步細節(jié)化?!澳K化”是指一個復雜問題由若干稍簡單的問題構成;解決這個復雜問題的程序,也應由若干稍簡單問題的小程序組成。

17.CC語言中,函數名也是一個指針,是函數的人口地址。使函數指針f指向函數fun的入口地址,直接將函數名fun賦給指針f即可。故本題答案為C選項。

18.D[解析]聲明data是結構S數組。初始化data[0].a=10;data[O]b=100;data[1].a=20;data[]b=200.主函數中p=data[1];即p.a=data[1].a;p.b=data[1].b;執(zhí)行語句prit("%odn",++(pa);打印輸出時p.a先增1再打印。p.a=data\u3000\u3000[1].a=20.先增1等于21.

19.B解析:條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式17表達式2:表達式3其求解順序是:先求解表達式1,若為非O(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。并且注意++、--的用法。

20.D在編寫程序時可以在程序中加入注釋。在添加注釋時,注釋內容必須放在符號“/*”和“*/”之間,“/*”和“*/”必須成對出現,“/*”與“*/”之間不可以有空格,選項A正確;注釋可以用英文,可以用中文,可以出現在程序中任意合適的地方,選項B正確;注釋部分只適用于閱讀,對程序的運行不起作用,選項C正確;使用“/*”和“*/”的注釋之間不可再嵌套“/*”和“*/”,選項D錯誤。故本題答案為D選項。

21.0/i/i或1.0/(i*i)0/i/i或1.0/(i*i)解析:由題面中提供的計算pi的公式可知;在第i項其值為1/(i*i),考慮到運算結果為浮點數,故必須要將1轉化為浮點數或采用1.0/(i*i)的形式。故本題應填1.0/(i*i)或其等效形式。

22.fnamefpfname\r\nfp解析:fopen()函數實現打開文件的功能,通常的調用方式為:FILE*fp;fp=fopen(文件名,使用文件方式),因此,第一個橫線處要求填寫要打開文件的名字fname。fprintf()函數的—般調用方式為:fprintf(文件指針,格式字符串,輸出表列),所以第二個橫線處應填寫fp。

23.00解析:while循環(huán)的條件為即當*y非零時執(zhí)行循環(huán),-(*y)先對*y的值減1,再使用*y的值,不再執(zhí)行while循環(huán)時最后*y的值為0,輸出函數中的(*y)--,是先使用*y的值再對*y減1,就是先輸出0。

24.i<10i<10解析:分析程序,當(i=0,1,2,…)時,“j=i*10+9”語句的運行結果是(9,39,69,99)個位數為9的所有整數;題中要求是100以內的整數,所以i<10;“if(j%3!=0)continue;”語句的功能是當條件不能被3整除時,繼續(xù)循環(huán)不執(zhí)行操作,直到能被3整除時輸出該數,即輸出的數滿足條件100以內能被3整除且個位數為9。

25.升序排列和降序排列升序排列和降序排列解析:ASC表示升序排列,DESC表示降序排列,多用在索引定義和SELECT語句中的ORDER子句中。

26.結構化設計結構化設計解析:與結構化需求分析方法相對應的是結構化設計方法。結構化設計就是采用最佳的可能方法設計系統(tǒng)的各個組成部分以及各個成分之間的內部聯系的技術。

27.前后件關系前后件關系解析:在數據存儲結構中,除了要存儲數據,還要存儲數據的前后件關系,對于順序存儲的數據結構,前后件之間的關系,是通過存儲空間的位置來實現的,而對于鏈式存儲來說,數據元素之間的前后件關系是通過指針來實現的。

28.a[k]a[k]a[k]

29.a=14a=14解析:在“逗號表達式(表達式1,表達式2)”中,其運算方法是先求表達式1的值,然后求表達式2的值,整個逗號表達式的值是表達式2的值。首先3*5=15,a=10,a+4=14,最后輸出的運算結果為14。

30.132132解析:在程序中,i從9開始循環(huán),當i=9時,執(zhí)行case0后的語句m++;n++;此時m=1,n=1,然后執(zhí)行break,跳出循環(huán);當i=10時,執(zhí)行detault后的語句k++;n++;此時k=1,n=2;當i=11時,再執(zhí)行default后的語句,k=2,n=3。此時,m=1,n=3,k=2。輸出結果為132。

31.結構化設計結構化設計解析:在軟件開發(fā)中,結構化方法包括結構化分析方法、結構化設計方法和結構化程序設計方法。詳細設計階段所采用的是結構化設計方法。

32.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)

33.aaaaAAAAAaaaaAAAAA解析:函數strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數組sp末尾的\'\\0\'。

34.tunc()m++tunc()m++解析:第一空白處,在C語言中如果子函數在主函數之后定義,就要對其進行說明,說明的形式為:“函數類型名函數名”。所以此處填寫func()。第二空白處,整型變量m表示輸入字符的個數,所以每輸入一個字符,變量m的值就加1。所以此處填寫m++。

35.a[0][I]b[I][0]a[0][I],b[I][0]解析:b[i][N-1]=a[0][i]實現把a所指二維數組中的第0行放到b所指二維數組的最后一列中,\ue008b[I][0]=a[N-1][I]實現將a所指N行N列的二維數組中的最后一行放到b所指二維數組中的第0列。

36.二維數組可以看成是按矩陣形式排列的,題目中給二維數組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數組,其數組名分別為a[O]、a[1]、a[2]、a[3],這4個一維數組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。\r\n\r\n

37.d1.dat""rb"或"d1.dat""r+b”或"d1.dat""rb+"d1.dat','rb'或'd1.dat','r+b”或'd1.dat','rb+'解析:本題考查的知識點是二進制文件的打開方式。打開文件的函數為fopen('文件名''mode'),其中'mode'表示文件的打開方式.如果打開的是二進制文件,其mode字符串可以是:'rb''wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開。'w'表示以寫方式打開,如果已有在該文件名的文件,文件中的內容將被清空。若文件名不存在,則將創(chuàng)建該文件.'a'為追加方式打開。若文件存在時,將打開這個文件并且在文件的末尾進行追加.當文件不存在,將創(chuàng)建新文件。'r='打開一個已有在文件用于更新(可讀可寫)。'w+'創(chuàng)建一個新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。'a+'打開用于追加,當文件不存在時,創(chuàng)建新文件,并在文件末尾進行追加(可讀可寫)。根據題意,應該填'd1.dat','rb'或其他等價的表達法。

38.概念概念

39.88解析:本程序定義了3個指針變量p1、p2、p,并且將,、b的地址分別賦給P1、p2,則*p1=a=2,*p2=b=4,所以表達式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(p)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數8賦給了變量c。

40.p!=NULLcount++(*p).next

41.DD)【解析】數據的存儲結構是指數據的邏輯結構在計算機存儲空間中的存放形式,一種數據結構可以根據需要采用不同的存儲結構,常用的存儲結構有順序和鏈式結構。采用不同的存儲結構,其處理的效率是不同的。

42.B解析:選項A)中包含一個不合法的運算符“:=”;選項C)應改為(int)18.5%3;選項D)可理解為兩個表達式:a+7=c+b和a=a+7,因為C語言規(guī)定賦值號的左邊只能是單個變量,不能是表達式或常量等,所以a+7=c+b是錯的。因此,正確答案是選項B),它相當于a=(b=c+2),可分解為兩個表達式:b=c+2和a=b。

43.C

44.A解析:p為指針型變量。第一次循環(huán),p=s,p的值為字符數組s的首地址,輸出字符串'ABCD'。p++,第二次循環(huán),p的值為字符數組s的首地址加1,輸出字符串'BCD'。p++,第三次循環(huán),p的值為字符數組s的首地址加2,輸出字符串'CD'。p++,第4次循環(huán),p的值為字符數組s的首地址加3,輸出字符串\'D'。

45.C解析:分析程序可知,該程序實現的功能是對數m,n求其最大公約數。在本題中m與n的值分別為65與14,其最大公約數為1,故其輸出結果為m=1。

46.A解析:如果定義變量時沒有聲明變量的存儲類型,則默認為auto型。

47.A解析:C語言的常量分為整型常量、實型常量和字符型常量。本題中包含整型常量和實型常量。選項B)以0打頭,應該屬于八進制整數,而八進制整數只能用數字0~7表示,所以選項B)不合法;選項C)和D)從形式上看屬于實型常量,但對于指數形式的實型常量,e(或E)之前必須有數字,且e后面的指數必須為整數,所以選項C)和D)都不合法;選項A)屬于實型常量中正確的十進制小數形式。

48.A解析:在定義指針變量p和q時,分別把變量n2和n1的地址賦給了指針變量p和q,所以*p和*q中內容就分別是變量n2和n1的值,所以語句*p=*q與語句n2=n1等價。因此選項A正確。

49.C解析:本題先將指針p指向二維數組ch[2][5],相當于p[0]='1234',p[1]='5678',通過雙重for循環(huán),是要將p中的字符隔一個輸出一個,通過s=p[i][j]-\'0\'這條語句是將所要輸出的字符轉換成相應的十進制數。

50.B解析:C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在'A'和'Z'之間就可以了,選項A)和C)符合要求。函數isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65到90,所以如果一個字母的ASCII碼小于91,那么就能確定它是大寫字母。

51.D解析:如果是指針型變量或數組名,則變量前不加地址符號&,所以選項A的說法有誤。必須有地址列表項才能實現正確輸入,所以選項B的說法有誤。在輸入數據時,不可以指定實型數據的精度,所以選項C的說法有誤。只有選項D的說法正確。

52.C解析:C語言中字符常量是以單引號括起來的單個字符,或為以“\\”與三位八進制數值或兩位十六進制數值代替單個字符。

53.B解析:在if語句中又包含一個或多個if語句稱為if語句的嵌套。應當注意if與else的配對關系,在C語言中,從量內層開始,else總是與它上面最近的(未曾配對的)if配對。

54.D解析:k是—個指針,它的值是—個地址,要通過它為主函數的變量改變數據,必須使用*p,邊樣就可以把—個下標數賦給p指針指向的那個內存單元,所以橫線處應填入*k=p。

55.C

56.BB?!窘馕觥砍绦虻娜N基本控制結構包括:順序、選擇和重復(循環(huán)),這三種結構就足以表達出各種其他形式的結構。

57.A

58.B解析:選項A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項B)中,float型數據和指針型數據之間不能進行賦值運算:選項C)中,是兩個指針變量之間的賦值:選項D)中,是兩個指針型變量所指向的兩個float型數據相乘。

59.A解析:在C語言中所謂函數的遞歸是在指在調用一個函數的過程中,又出現了直接或間接地調用該函數本身,直接調用該函數本身的稱為函數遞歸,而間接調用該函數稱為函數的間接遞歸調用.由程序可以看出函數f(a,i,j)為一遞歸函數,其功能是i

60.A解析:雖然全局變量的作用域是整個程序,但如果某個函數或語句塊中又聲明了同名的局部變量,則全局變量被屏蔽,在該函數或語句塊中所用到的該變量都是那個同名的局部變量。所以,本題程序第二行定義的全局變量intx=1;可完全忽略,故程序輸出結果為2,2,故應該選擇A。

61.B

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

C語言程序在編譯時的主要任務就是檢查程序的語法是否符合規(guī)定,因此選項A的描述不正確。

一個程序一般都是從主函數開始運行,之后主程序調用的其他程序段叫子程序。由于C語言的程序段都是以函數形式存在的,所以除了主程序main()函數以外,其他程序中出現的子程序

溫馨提示

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

評論

0/150

提交評論