2022年吉林省遼源市全國計算機等級考試C語言程序設計預測試題(含答案)_第1頁
2022年吉林省遼源市全國計算機等級考試C語言程序設計預測試題(含答案)_第2頁
2022年吉林省遼源市全國計算機等級考試C語言程序設計預測試題(含答案)_第3頁
2022年吉林省遼源市全國計算機等級考試C語言程序設計預測試題(含答案)_第4頁
2022年吉林省遼源市全國計算機等級考試C語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年吉林省遼源市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.軟件是指()。A.程序B.程序和文檔C.算法加數據結構D.程序、數據與相關文檔的完整集合

3.下面判斷正確的是

A.char*a="china";等價于char*a;*a="china";

B.charstr[5]={"china"};等價于charstr[]={"china"};

C.char*s="china";等價于char*s;s="china";

D.charc[4]="abc",d[4]="abc";等價于charc[4]=d[4]="abc";

4.合法的常量是()。A.‘program’B.–e8C.03xD.0xfl

5.算法的時間復雜度取決于()

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

6.在有向圖G的拓撲序列中,若頂點Vi在頂點Vj之前,則下列情形不可能出現的是()。

A.G中有弧

B.G中有一條從Vi到Vj的路徑

C.G中沒有弧

D.G中有一條從Vj到Vi的路徑

7.以下敘述錯誤的是()。

A.算術運算符中不包含“=”運算符

B.模運算符“%”是c語言基本的算術運算符

C.算術運算符中只有“*”、“/”優(yōu)先級高于關系運算符

D.自加和自減運算符只能用于變量,而不能用于常量或表達式

8.若已知一個棧的進棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。

A.IB.n-iC.n-i+1D.不確定

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

A.13579B.48579C.48549D.48999

10.廣義表((a))的表頭是(a),表尾是()。A.aB.()C.(a)D.((a))

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

B.Zhao,m,85,Sun,f,90

C.Zhao,m,85,Qian,f,95

D.Sun,f,90,Qian,f,95

12.在下列運算符中,優(yōu)先級最低的是()。A.||B.!=C.<D.+

13.有以下程序:#include<stdio.h>main(){charch=‘1’;while(ch<‘9’){printf(“%d”,ch-‘0’);ch++;}}程序運行后的輸出結果是()。

A.12345678B.01234567C.0D.1

14.為了隱藏在文本框中輸入的信息,用占位符代替顯示用戶輸入的字符,需要設置的屬性是()。

A.ValueB.ControlSoureeC.InputMaskD.PasswordChar

15.對線性表進行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲,并按關鍵碼值排好序

B.線性表以順序方式存儲,并按關鍵碼的檢索頻率排好序

C.線性表以鏈式方式存儲,并按關鍵碼值排好序

D.線性表以鏈式方式存儲,并按關鍵碼的檢索頻率排好序

16.下面的哪一個保留字不能作為函數的返回類型()。

A.voidB.intC.newD.long

17.閱讀以下程序:#include<stdio.h>main(){intcase;floatprintF;printf("請輸人2個數:");scanf("%d%fl"&case,&printF);printf("%dofof\n",case,printF);}該程序在編譯時產生錯誤,其出錯原因是()。A.定義語句出錯,case是關鍵字,不能用做用戶自定義標識符

B.定義語句出錯,printF不能用做用戶自定義標識符

C.定義語句無錯,scanf不能作為輸入函數使用

D.定義語句無錯,printf不能輸出case的值

18.對一個算法的評價,不包括()方面的內容。

A.健壯性和可讀性B.并行性C.正確性D.時空復雜度

19.以下定義語句中正確的是

A.inta=b=0;

B.charA=65+1,b='b';

C.noata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

20.若有以下說明和定義:則對函數fun的正確調用語句是()。A.(*a)(&c);B.a=a(x);C.b=*b(x);D.fun(b);

二、2.填空題(20題)21.設x、y、z均為int型變量,請寫出描述“x或y中至少有一個小于z”的表達式______。

22.若有定義語句:inta=5;,則表達式:a++的值是【】。

23.單元測試又稱模塊測試,一般采用【】測試。

24.設inta=5,b=6,表達式(++a==b--)?++a:--b的值是【】。

25.以下程序的輸出結果是______。

main()

{intx;0;

sub(&x,8,1);

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

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

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

main()

{inta=1,b=2,c=3,t=0;

if(a<B){t=a;a=b;b=t;}

if(a<C){t=a;a=c;c=t;}

printf("%d,%d,%d\n",a,b,C);

}

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

main()

{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};

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

for(j=i+1;j<3;j++)a[j][i]=0;

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

{for(j=0;j<3;j++)printf("%d",a[i][j]);

printf("\n");

}

}

28.下面程序的運行結果是【】。

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

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

fun(ihtx)

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

printf("%d",x);

}

main()

{fun(6);}

30.僅依據規(guī)格說明書描述的程序功能來設計測試實例的方法稱為【】。

31.軟件是程序、數據和【】的集合。

32.對長度為10的線性表進行冒泡排序,對壞情況下需要比較的次數為______

33.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。

34.以下函數sstrcat()的功能是實現字符串的連接,即將t所指字符串復制到s所指字符串的尾部。例如:s所指字符串為abed,t所指字符串為efgh,函數調用后s所指字符串為abodefgh。請?zhí)羁铡?/p>

#include<string.h>

voidsstrcat(char*s,char*t)

{intn;

n=strlen(s);

while(*(s+n)=【】){s++;t++;}

}

35.性結構中,第一個結點沒有前驅結點,其余每個結點有且只有【】個前驅結點;最后一個結點沒有后繼結點,其余每個結點有且只有【】個后繼結點。

36.函數pi的功能是根據以下近似公式求π值:

(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)

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

#include"math.h"

{doubles=0.0;longi;

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

return(sqrt(6*S));

}

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

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

}

38.下面的程序能求a:ab.c文件中最長行和它的位置。

#include<stdio.h>

main()

{intlin,i,j=0,k=0;

charc;

FILE*fp;

fp=(【】("a:ab.c","r");

rewind(fp);

while(fgetc(fp)!=EOF)

i=1;

【】

{i++;

j++;

if(i>=k){k=i;【】;}

}

printf("\n%d\t%d\n",k,lin);

【】;

}

39.若a是int型變量,則表達式(a=2*3,a*2),a+4的值為______。

40.排序是計算機程序設計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。

三、1.選擇題(20題)41.在計算機中,算法是指()。

A.查詢方法B.加工方法C.解題方案的準確而完整的描述D.排序方法

42.設有定義語句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次輸出x數組6個元素中的值,不能完成此操作的語句是()。

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(p+i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",(*p)++);

43.有以下程序main(){inti,s=0;for(i=1;i<l0;i+=2)s+=i+1printf("%d\n",s);}程序執(zhí)行后的輸出結果是______。

A.自然數1~9的累加和B.自然數1~10的累加和C.自然數1~9中奇數之和D.自然數1~10中偶數之和

44.下列說法不正確的是()。

A.一個C語言源程序可以由一個函數組成也可以由多個函數組成

B.main()中的“()”是函數的參數部分,括號內可為空,但括號不能省略

C.C語言程序是以函數為基本單位的

D.在C語言程序中,注釋行只能位于一條語句的后面

45.已知p為指針變量,a為數組名,i為整型變量,下列語句中,不正確的是______。

A.p=&i;B.p=a;C.p=&a[i];D.p=10;

46.閱讀下面程序,則執(zhí)行后的結果是

#include"stdio.h"

main()

{charstr[]="tomeetme",*p;

for(p=str;p<str+7;p+=2)putchar(*p);

printf("\n");}

A.tomeetmeB.tmemC.oeteD.tome

47.若變量已正確定義,下列正確的程序段是()。

A.while(ch=getchar()=='\N')putchar(ch);

B.while((ch=getchar())=='\n')putchar(ch);

C.while((ch=getchar())!='\N')putchar(ch);

D.while((ch=getchar())!='\n')putchar(ch);

48.若各選項中所用變量已正確定義,fun()函數中通過return語句返回一個函數值,下列選項中錯誤的程序是()。

A.main(){……x=fun(2,10);……}floatfun(inta,intb){……}

B.floatfun(inta,intb){……}main(){……x=fun(i,j);……}

C.floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……}

D.main(){floatfun(inti,intj);……x=fun(i,j);……}floatfun(inta,intb){……}

49.用鏈表表示線性表的優(yōu)點是()。

A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數據元素的物理順序和邏輯順序相同

50.下列選項中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

51.以下程序的輸出結果是______。main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}

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

52.下列程序的輸出結果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}

A.5,6B.5,5C.6,6D.6,5

53.設有語句“chara='72';”則變量a()。

A.包含一個字符B.包含二個字符C.包含三個字符D.說明不合法

54.下列程序的輸出結果是______。#defineA100main(){inti=0,sum=0;do{if(i=(i/2)*2)continue;sum+=i;}while(++i<A);print("%d\n",sum);}

A.2500B.2050C.4D.0

55.下列敘述中錯誤的是()。

A.在C語言中,函數中的自動變量可以賦初值,每調用一次賦一次初值

B.在C語言中,在調用函數時,實參和對應形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數形參的存儲類型是自動(auto)類型的變量

56.設有以下說明語句typedefstruct{intn;charch[8];}PER;

A.PER是結構體變量名

B.PER是結構體類型名

C.typedefstruct是結構體類型

D.struct是結構本類型名

57.以下程序的輸出結果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

58.設定義下列結構體,結構體變量p的出生年份賦值正確的語句是()。structst{intx;inty;intz;}structworker{charname[20];charsex;structstbirth;}p;

A.x=1987B.birth.x=1987;C.p.birth.x=1987;D.p.x=1987;

59.設有關系R和S,關系代數表達式為R-(R-S)表示的是

A.R∩SB.R-SC.R∪SD.R÷S

60.若程序中定義了以下函數doublemyadd(doublea,doubleb){return(a+b);}并將其放在調用語句之后,則在調用之前應該對該函數進行說明,以下選項中錯誤的說明是()A.doublemyadd(doublea,b);

B.doublemyadd(double,double);

C.doublemyadd(doubleb,doublea);

D.doublemyadd(doublex,doubley);

四、選擇題(20題)61.

62.有以下程序:

程序運行后的輸出結果是()。

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

63.

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

#include<stdio.h>

main()

{inti,S=0;

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

if(!(i%2)&&!(i%3))s+=i;

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

}

A.4B.39C.45D.6

64.有以下計算公式

若程序前面已在命令行中包含math.h文件,不能夠正確計算上述公式的程序段是()。

65.有以下程序:

#include<stdio.h>

main()

{FILE*fp;inti,a[6]={1,2,3,4,5,6};

fp=fopen("d2.dat","w+");

for=(i=o;i<6;,i++)fpintf(fp,"%d\n",a[i]);

rewind(fp);

for(i=0;i%6;i++)fscanf(fp,"%d",&a[5-i]);

fclose(fp);

for(i=0;i%6;i++)printf("%d,",a[i]);

}

程序運行后的輸出結果是()。

A.4,5,6,1,2,3,

B.1,2,3,3,2,1,

C.1,2,3,4,5,6,

D.6,5,4,3,2,1,

66.

67.下列判斷正確的是()。A.A.chara="ABCD":等價于char*a;*a="ABCD":

B.charstr[10]={"ABCD"}:等價于charstr[10];str[]={"ABCD"};

C.char*s="ABCD":等價于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD":等價于charc[5]-d[5]="ABCD";

68.耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。

A.提高耦合性降低內聚性有利于提高模塊的獨立性

B.降低耦合性提高內聚性有利于提高模塊的獨立性

C.耦合性是指一個模塊內部各個元素間彼此結合的緊密程度

D.內聚性是指模塊間互相連接的緊密程度

69.軟件設計中,有利于提高模塊獨立性的一個準則是______。A.低內聚低耦合B.低內聚高耦合C.高內聚低耦合D.高內聚高耦合

70.有以下程序:

程序運行后的輸出結果是()。

A.33B.197C.143D.28

71.(30)關系數據庫管理系統能實現的專門關系運算包括()

A.排序、索引、統計

B.選擇、投影、連接

C.關聯、更新、排序

D.顯示、打印、制表

72.已知inti=10;表達式“20-0<=i<=9”的值是()。

A.0B.1C.19D.20

73.下列選項中,能夠滿足“只要字符串sl等于字符串s2,則執(zhí)行sT”要求的是()。程序執(zhí)行后的輸出結果是()。

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

74.

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

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

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

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

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

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

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

77.

78.在以下給出的表達式中,與while(E)中的(E)不等價的表達式是()。

79.有以下程序程序的運行結果是()。

A.CDEFB.ABEFC.ABCDD.CDAB

80.以下敘述中錯誤的是()。

A.全局變量的作用域一定比局部變量的作用域范圍大

B.靜態(tài)(static)類別變量的生存期貫穿于整個程序的運行期間

C.全局變量的生存期是整個程序的運行期間

D.靜態(tài)局部變量的初值是在編譯時賦予的,在程序執(zhí)行期間不再賦予初值

五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:計算str所指字符串中含有t所指字符串的數目,并作為函數值返回。

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

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

試題程序:

六、程序設計題(1題)82.編寫函數fun(),其功能是計算:

s作為函數值返回。

在C語言中可調用log(n)函數求1n(n)。log函數的引

用說明為:doublelog(doublex)。

例如,若m的值為20,則fun()函數值為6.506583。

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

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

試題程序:

參考答案

1.A

2.D軟件是計算機系統中與硬件相互依存的另一部分,是包括程序、數據及相關文檔的完整集合。其中,程序是軟件開發(fā)人員根據用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令(語句)序列;數據是使程序能正常操縱信息的數據結構;文檔是與程序開發(fā)、維護和使用有關的圖文資料。因此本題的正確答案是D。

3.C解析:選項A)char*a;*a=“china”應改為a=china;,選項B)應該是charstr[6];D)項表述方法有錯誤。

4.D

5.C

6.D若G中有一條從Vj到Vi的路徑,則圖的拓撲序列中頂點Vj在頂點Vi之前。設G(V,E)是一個具有n個頂點的有向圖,V中頂點的序列v1,v2,…,vn稱為一個拓撲序列,當且僅當該頂點滿足下列條件:若在有向圖G中,從頂點vi在vj有一條路徑,則在拓撲序列中頂點vi必須排在頂點vj之前。

7.C

8.C

9.C本題考查do-while循環(huán),在fun函數中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實現的功能是以b[0]=b[o]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數組賦值。在主函數中,通過調用fun函數,按上面的規(guī)則對數組a重新賦值,最后輸出數組a。

10.B

11.A程序定義結構體類型STU,定義類型STU的全局變量a。main函數定義局部類型為STU變量b,并對它初始化,調用函數f。將局部變量c的各個成員值賦給a,覆蓋a的舊值,將a的新值返回并賦給b,此時a、b的各個成員值都是Sun,f,90,程序輸出:Sun,f,90,Sun,f,90。本題答案為A選項。

12.A

13.A表達式“ch-‘0’’將數字字符轉為數字。輸出的格式為%d。while循環(huán)從‘1’~‘8’,因此輸出的結果是12345678。故本題答案為A選項。

14.DD?!窘馕觥勘究虻腜asswordChar屬性用來指定文本框是顯示用戶輸入的字符還是顯示占位符,指定用做占位符的字符。

15.A解析:對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關鍵碼值的大小排好序,而不是按關鍵碼的檢索頻率排序。

16.C

17.A本題中定義了整形變量case,但case是關鍵字,關鍵字不能用做標識符。單精度printF不是關鍵字,因為標識符區(qū)分大小寫。所以A不正確。

18.B

19.B解析:本題考查變量的定義方法。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和D)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數據,不能指向指針變量b,故選項C)錯誤。

20.A題干中,函數fun接收一個整型指針參數,返回值為int類型。main函數首先定義一個函數指針a,將函數fun的地址賦給a,所以a是指向函數fun的指針,可以通過a調用函數fun。選項A中,通過a調用函數fun,可以使用(*a),接收的參數是整型變量c的地址,正確;選項B中,參數x是一個數組,錯誤;選項C中,調用b函數,由于程序沒有給出函數b的定義,因此這里調用b是錯誤的,而且函數b是沒有參數的,這里調用b的時候傳入了參數,所以C錯誤;選項D中,由于b是一個函數,不能作為整型指針變量傳給fun函數,因此D錯誤。本題答案為A選項。

21.x<z‖y<zx<z‖y<z解析:本題考查邏輯運算符和邏輯表達式。x或y中至少有一個小于z,即x<z或y<z,是“或”的關系。

22.55解析:a++的含義是在使用a值以后,使a值加1,所以a++的值為5。

23.白盒法白盒法

24.77解析:此表達式為三目運算符,++a的值為6,b--的值為6,則整個表達式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。

25.77解析:在主函數中定義了一個變量x并賦初值0,然后執(zhí)行函數調用語句,該語句的執(zhí)行過程為sub(&x,8,1)調用sub(&a,4,2),sub(&s,4,2)調用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號里的判斷為假,遞歸結束,執(zhí)行其后的。*a+=k;語句此時x=x+k=0+4+4,回推到上一層調用函數sub(Rx,4,2)中,執(zhí)行后面的語句,x=x+k=4+2=6,在回推到最上一層調用函數sub(&x,8,1)執(zhí)行后面的語句,x=x+k=6+1=7,所以最后輸出7。

26.3123,1,2解析:分析程序,第一個if語句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時a=2,b=1。第二個if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時a=3,c=2。

27.123056009123\r\n056\r\n009解析:數組a中元素的初值為:a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[12][0]=7、a[2][1]=8、a[2][2]=9。執(zhí)行第1個for循環(huán)后a[1][0]=0、a[2][0]=0、a[2][1)=0;第2個for循環(huán)的功能是將數組元素按照3行3列的格式輸出。

28.x=11x=11解析:在對無符號數的右移是高位補0。

29.136136解析:本題考查函數的遞歸調用。函數fun是遞歸函數,語句fun(6)的調用過程如下:

第1次:調用fun(6),6/2=3>0成立,調用fun(3);

第2次:調用fun(3),3/2=1>0成立,調用fun(1);

第3次:調用fun(1),1/2=0>0不成立,執(zhí)行語句printf('%d',x);,輸出1。

推出fun(3)輸出3,fun(6)輸出為6。

30.黑箱法黑箱法

31.文檔文檔解析:計算機軟件是計算機系統中與硬件相互依存的另一部分,是包括程序、數據以及相關文檔的完整集合。

32.在最壞情況下冒泡排序法需要比較的次數為n(n-1)/2。

33.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內部結構和內部特征,而只是根據程序功能導出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。

34.*t*t解析:函數中首先讓n=strlen(s),所以while循環(huán)的循環(huán)條件表達式中*(s+n)指向字符串s的結束標志'\\0'處,而該處應該等于字符串t的第1個字符,另外循環(huán)體中讓s和t指向下一個字符,即s+n和t同時被移動到下一個位置,所以該處應該填*t,即t所指內容。當t指向字符串結束標志'\\0'的時候,整個循環(huán)條件表達式的值也為0(“假”)了,循環(huán)結束。正好滿足將t所指字符串復制到s所指的字符串的尾部。

35.11

36.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表達式1+1/(2*2)+1/(3*3)+...+1(n*n)可寫為1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)

n

即:∑1÷(i×i)

i=1

對應的C語言的表達式s=s+1.0/(i*i)。注:必須要寫成1.0的形式,否則1/(i,i)返回值為其值截尾取整,即恒為0。

37.abcfgabcfg解析:本題考查的是字符數組用作函數參數。C語言中數組名可以看作該數組首地址的常量指針、因此可以直接傳遞給指針類型的參數。本題的主函數調用fun(s,3,strlen(s));后,函數中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數組s的長度-2位置,循環(huán)中讓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',所以后面的字符不會輸出)。

38.fopenwhile(fgetc(fp)!='\n')lin=jclose(fp)fopen\r\nwhile(fgetc(fp)!='\\n')\r\nlin=j\r\nclose(fp)

39.此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經給a賦值6,所以返回值a+4=6+4=10。

40.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

41.CC?!窘馕觥坑嬎銠C算法是指解題方案的準確而完整的描述,它的基本特征分別是:可行性、確定性、有窮性和擁有足夠的情報。

42.D解析:*p=x的作用是將x的首地址賦給指針變量p。選項A)正確,*(P++)中括號內的++是在P的后面,所以它先取*P的值x[0],再執(zhí)行p++;選項B)正確,p+i表示x[i]的地址,*(p+i)表示x[i]的值;選項C)中的*和++處于同一優(yōu)先級別,而結合方向為自右而左,因此*p++相當于*(p++),與選項A)相同;選項D)中的(*p)++是使*p的值+1,即x[0]的值加1,它不能實現指針的移動,每次循環(huán)只是x[0]的值在改變,而P的值并沒有改變,所以不能實現6個元素的輸出。

43.D解析:本題中s=(1+1)+(3+1)+(5+1)+(7+1)+(9+1)=2+4+6=8+10。

44.D解析:本題涉及C語言基本的3個知識點:①C語言是以函數為基本單位的,每一個函數完成相對獨立的功能,一個程序可以包括多個函數,但有且僅有一個主函數;②主函數main()的圓括號內是填寫參數的,可以沒有參數,但括號不可以省略;③程序的注釋部分應該在“/*…………*/”之間,它允許出現在程序的任何位置。

45.D解析:不能把一個整數賦給指針變量,只能將變量已分配的地址賦給指針變量。

46.B解析:存放字符串的字符數組的名字就是這個字符串的首地址。本題的功能是對字符串'tomeetme'進行選擇式輸出,從第一個字母開始,每輸出一個字符即跳過一個。

47.D解析:本題考查兩個知識點:①C語言用'\\n'這個字符常量表示換行;②函數getchar()的作用是從終端輸入一個字符,當遇到換行時結束輸入。

48.A解析:C語言規(guī)定,函數必須先定義,后調用(函數的返回值類型為int或char時除外)。在選項A)中,調用的子函數在調用后面定義,所以不正確。在選項B)、C)中,被調用函數在主調函數之前定義,再在主函數中調用,所以是正確的;在選項D)中,在主調函數中先對子函數floatfun(inti,intj)進行了定義,然后進行調用。

49.C【解析】在鏈表中因為除了存放數據元素之外,還要存放指針,所以鏈表花費的存儲空間要比順序表還要多,在插入和刪除數據元素時,只需要移動相應的記錄指針即可,在鏈表中,數據的物理結構與邏輯結構不一定相同,因為是靠指針來實現對數據的指定的,所以不能進行隨機存取。

50.B水平制表符中,'\t'表示的是橫向跳若干格;選項B中,'\039'錯誤,'\039'是八進制形式表的字符,最大數為7,但其中出現'9',','是字符逗號;選項D中,'\n'表示的是換行。

51.B解析:while的執(zhí)行過程是:先計算條件表達式的值,若成立則執(zhí)行循環(huán)體,重復上述過程,直到條件表達式的值為“假”(值為零)時,退出循環(huán),并轉下—語句去執(zhí)行。本題在輸出num的值為3之后,再判斷while的循環(huán)條件3<=2,不成立,所以不再輸出num的值,故本題的答案選B。

52.A解析:轉義字符'\\n'表示換行,'\\\\'表示反斜杠,函數strlen()是計算字符串的長度,不包括文件結束標志('\\0'),函數sizeof()統計字符串所占的字節(jié)數。

53.D解析:字符變量的值為單個字符,并用單引號包含,而本題中的單引號中是兩個字符,不是合法說明。

54.A解析:本題程序的功能是求1到99之間(包括1和99)所有奇數之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內,如果i是偶數,則執(zhí)行continue,跳過這一次循環(huán),執(zhí)行下—次循環(huán),否則求和。最后輸出的值是1到99之間(包括1和99)所育奇數之和(1+99)*50/2=2500。

55.C解析:外部變量在編譯時由系統分配永久的內存空間,所以外部變量的類型不是自動存儲類別。

56.B解析:本題考核的知識點是如何使用typedef定義新的類型。本題通過typedef在定義一個結構體類型的同時,把它自定義成類型名PER,故PER是結構體類型名。所以,4個選項中B為所選。

57.C解析:本題考查按位與“&”。因為1&1=1,0&0=0,所以任何數與自身按位與,結果仍為此數,不發(fā)生變化。

58.C解析:本題主要考查怎樣為嵌套定義的結構中的成員賦值:由于worker中的birth是一個st型的結構,在給birth賦值時,不能將birth作為一個整體,要用“.”運算再深入一層訪問到最基本的成員x、y、z。

59.A解析:R-S表示屬于R但不屬于S,R-(R-S)\ue009表示屬于R但不屬于(R-S),即相當于R∩S。

60.A解析:本題考核的知識點是函數聲明的應用。函數聲明是對所用到的函數的特征進行必要的聲明,編譯系統以函數聲明中給出的信息為依據,對調用表達式進行檢測,以保證調用表達式與函數之間的參數正確傳遞。函數聲明的一般格式為:

類型標識符函數名(類型標識符形參…);

這些信息就是函數定義中的第一行的內容。這里形參的名字是不重要的,重要的是類型標識符,函數聲明中也可以不寫形參名只寫該形參的聲明類型,但不能只寫形參名而不寫該形參的類型。本題中,選項A中doublemyadd(doublea,b),沒寫出形參b的類型,故選項A不正確。所以,4個選項中選項A符合題意。

61.C\r\n

62.A第一次調用m=f(f(f(1))),第二次為m=f(f(2)),第三次為m=f(4),即返回值為8。

63.D

\nif語句的條件是當i既是3的倍數又是2的倍數時成立,所以此程序實現的功能是將10以內既是3的倍數又是2的倍數的數相加。

\n

64.C本題重點考查的知識點是:s叫()函數。s叫()函數的作用是計算平方根,要求

溫馨提示

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

評論

0/150

提交評論