2022年江蘇省南京市全國計算機等級考試C語言程序設計測試卷一(含答案)_第1頁
2022年江蘇省南京市全國計算機等級考試C語言程序設計測試卷一(含答案)_第2頁
2022年江蘇省南京市全國計算機等級考試C語言程序設計測試卷一(含答案)_第3頁
2022年江蘇省南京市全國計算機等級考試C語言程序設計測試卷一(含答案)_第4頁
2022年江蘇省南京市全國計算機等級考試C語言程序設計測試卷一(含答案)_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

2022年江蘇省南京市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.假設以行序為主序存儲二維數組array[100][100],設每個數據元素占2個存儲單元,基地址為10,下標從0開始,則元素array[5][5]的地址為()。

A.808B.818C.1010D.1020

2.下面程序中算法的時間復雜度是()A.O(n)B.O(n^2)C.O(logn)D.O(n*logn)

3.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環的結束條件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

4.以下程序的輸出結果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

5.設有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

6.以下一維數組a正確的定義是()

A.inta(5)B.intn=5,a[n]C.inta[SZ]其中SZ為符號常量D.inta{5}

7.已知字符A的ASCII值是65,字符變量c1的值是‘A’,c2的值是‘D’,則執行語句“printf(“%d,%d”,c1,c2-2);”的輸出結果是()。

A.65,68B.A,68C.A,BD.65,66

8.有以下程序:

運行時,若輸入123450<;回車>;,則輸出結果是()。

A.66656B.6566456C.66666D.6666656

9.設有序順序表中有n個數據元素,則利用二分查找法查找數據元素X的最多比較次數不超過()。A.log2+1

B.log2(n-1)

C.log2n

D.log2(n+1)

10.以下關于結構化程序設計的敘述中正確的是()。

A.結構化程序使用goto語句會很便捷

B.在c語言中,程序的模塊化是利用函數實現的

C.一個結構化程序必須同時由順序、分支、循環三種結構組成

D.由三種基本結構構成的程序只能解決小規模的問題

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

A.C程序由函數和過程組成B.C程序由主函數組成C.C程序由函數組成D.C程序中,主函數必須放在其他函數之前

12.一個序列中有10000個元素,若只想得到其中前10個最小元素,最好采用_______方法

A.快速排序B.堆排序C.插入排序D.二路歸并排序

13.設x、y、z、t均為int型變量,則執行以下語句后,t的值是()x=y=z=l;t=++x||++y&&++z;

A.不定值B.2C.1D.0

14.下列代碼的復雜度是多少?如果多于1個答案正確,選擇最小的那個。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)

15.在結構化方法中,軟件功能分解屬于下列軟件開發中的階段是______。

A.詳細設計B.需求分析C.總體設計D.編程調試

16.設有條件表達式:(EXP)?i++;j--,則以下表達式中(EXP)完全等價的是()。

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

17.

18.計算機算法指的是()。

A.計算方法B.排序方法C.解決問題的有限運算序列D.調度方法

19.以下程序的輸出結果是()。main(){inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}A.18B.19C.20D.21

20.

二、2.填空題(20題)21.函數調用語句:“fgets(buf,n,fp);”從中指向的文件中讀入n個字符放到buf字符數組中,函數返回值為______。

22.最簡單的交換排序方法是______。

23.若有定義:intk;,以下程序段的輸出結果是______。for(k=2;k<6;k++,k++)printf("##%d",k);

24.按"先進后出"原則組織數據的數據結構是【】。

25.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執行b=!c&&a;后b的值為【】。

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

main()

{char*k="aeiou";

for(;*k;k++)printf("%c",*k);

}

27.以下程序的功能是輸出如下形式的方陣:

13141516

9101112

5678

1234

請填空。

#include<stdio.h>

main()

{inti,j,x;

for(j=4;j【】;j--)

{for(i=1;i<=4;i++)

[x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

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

#include<stdio.h>

main()

{inta,b,c;

a=25;b=025;e=0x25;

prinff("%d%d%d\n",a,h,c);

}

29.實現程序可將磁盤中的一個文件復制到另一個文件中,兩個文件的文件名在可執行命令的命令行中(相當于copy命令),假定文件在當前目錄下。請補全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

{printf("parametererror!\n");exit(0);}

f1=fopen(argv[1],"r");

f2=fopen(argv[2],"w");

while(【】)fputc(fgetc(f1),f2);

fclose(f1);

fclose(f2);

}

30.軟件定義時期主要包括______和需求分析兩個階段。

31.以下程序運行后的輸出結果是()。

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<C)t=a;a=c;c=t;

if(a<c&&b<C)t=b;b=a;a=t;

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

}

32.關系模型的數據操作即是建立在關系上的數據操作,一般有【】、增加、刪除和修改四種操作。

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

#include<stdio.h>

main()

{intx=3,y=2,z=1;

if(x<y)

if(y<0)z=0;

elsez+=1;

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

}

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

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

}

}

35.下面程序的輸出是【】。

main()

{intarr[10],i,k=0;

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

arr[i]=i;

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

k+=arr[i]+i;

printf("%d\n"k);}

36.函數fun的返回值是【】

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')mm++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

37.已知字符'A'的ASCII碼為65,以下程序運行后的輸出結果是【】。

#include<stdio.h>

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

38.在先左后右的原貝嚇,根據訪問根結點的次序,二叉樹的遍歷可以分為三種:前序遍歷、【】遍歷和后序遍歷。

39.以下程序的輸出結果是()。#include<stdio.h>voidmain(){intf,f1,f2,i;f1=0;f2=1;printf("%d%d",f1,f2);for(i=3;i<=5;i++){f=-f1+f2,printf("%d",f);f2=f1;f1=f;}printf("\n");}

40.設有下列宏定義:#defineA2

#defineBA+3

則執行賦值語句;t=B*2;t為int型變量后的值是______。

三、1.選擇題(20題)41.線性結構中的一個結點代表一個數據元素,通常要求同一線性結構的所有結點所代表的數據元素具有相同的特點,這意味著______。

A.每個結點所代表的數據元素都一樣

B.每個結點所代表的數據元素包含的數據項的個數要相等

C.不僅數據元素所包含的數據項的個數要相同,而且對應數據項的類型要一致

D.結點所代表的數據元素有同一特點

42.以下程序執行后,sum的值是______。main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}

A.15B.14C.不確定D.0

43.設有下列定義:structsk{intm;floatx;}data,*q;若要使q指向data中的m域,正確的賦值語句是()。

A.q=&data.m;

B.*q=data.m;

C.q=(structsk*)&data.m;

D.q=(structsk*)data.m;

44.在執行以下程序時,如果從鍵盤上輸入ABCdef<回車>,則輸出為______。#include<stdio.h>main(){charch;while((ch=getchar())!="\n"){if(ch>='A'&&ch<='B')ch=ch+32;elseif(ch>='a'&&ch<='z')ch=ch-32;printf("%c",ch);}printf("\n");}

A.ABCdefB.abcDEFC.abcD.DEF

45.樹是結點的集合,它的根結點數目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

46.下列關于單目運算符++,--的敘述中正確的是

A.它們的運算對象可以是任何變量和常量

B.它們的運算對象可以是char型變量和血型變量,但不能是float型變量

C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量

D.它們的運算對象可以是char型變量、int型變量和float型變量

47.在C語言中,int,char和short三種類型數據在內存中所占用的字節數

A.由用戶自己定義B.均為2個字節C.是任意的D.由所用機器的機器字長決定

48.以下敘述中錯誤的是A.計算機不能直接執行用C語言編寫的源程序

B.C程序經C編譯程序編譯后,生成后綴為.obj的文件是一個二進制文件

C.后綴為.obj的文件,經連接程序生成后綴為.exe的文件是一個二進制文件

D.后綴為.obj和.exe的二進制文件都可以直接運行

49.下面說明不正確的是()。

A.chara[10]="china";

B.chara[10],*p=a;p="chiua";

C.char*a;a="china";

D.chara[10],*p;p=a="china";

50.請讀程序:#include<stdio.h>main(){inta=5,b=7,c=9;pintf("%d,%d,"a,b,C);printf("%d,%d",a,D);}上面程序的輸出結果是_______。

A.5,7,9,5,7B.5,7,5,7C.5,7,不定7,9D.5,7,5,7,不定

51.假定建立了以下鏈表結構,指針p、q分別指向如圖所示的結點,則以下可以將q所指結點從鏈表中刪除并釋放該結點的語句組是______。

A.free(q);p->next=q->next;

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

52.在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和數據庫系統階段。其中數據獨立性最高的階段是()。

A.數據庫系統B.文件系統C.人工管理D.數據項管理

53.設有以下語句:inta=1,b=2,c;c=a∧(b<<2);執行后,c的值為()。

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

54.按照“先進先出”組織數據的數據結構是()。

A.隊列B.棧C.雙向鏈表D.二叉樹

55.在面向對象中,一個對象請求另一個對象為其服務的方式是通過發送

A.調用語句B.命令C.口令D.消息

56.有下列程序:fun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}執行后的輸出結果是()。

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

57.若已定義x和y為double類型,則表達式“x=1,y=x+3/2”的值是()。

A.1B.2C.2D.2.5

58.有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i-){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序運行的結果是()。

A.234B.432C.23D.4534554334344523

59.指出下面不正確的賦值語句

A.a++;B.a==b;C.a+=b;D.a=1,b=1;

60.結構化程序設計的核心和基礎是()。

A.結構化分析方法B.結構化設計方法C.結構化設計理論D.結構化編程方法

四、選擇題(20題)61.有以下程序:

#include<stdio.h>

#include!(string.h>

voidfun(char*w,intm)

{charS,*pl,*p2;

p1=w;p2=w+m-;

while(pl<p2){s=*pl;*p1=*p2;*p2=s;pl++;p2-;}

}

main()

{chara[]="l23456";

fun(a,strlen(a));puts(a);

}

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

A.654321

B.116611

C.161616

D.l23456

62.有以下程序:

程序的運行結果是()。

A.0987654321

B.4321098765

C.5678901234

D.0987651234

63.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關系B.數據流C.控制流D.調用關系

64.

65.有以下程序:

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

A.12B.14C.1234D.123456

66.

67.在黑盒測試方法中,設計測試用例的主要根據是()。

A.程序內部邏輯B.程序外部功能C.程序數據結構D.程序流程圖

68.設有以下程序段:

structMP3

{charname[20];

charcolor;

floatprice;

}std,*ptr;

ptr=&std:

若要引用結構體變量std中的color成員,寫法錯誤的是()。

A.std.color

B.ptr->color

C.std->color

D.(*ptr)color

69.有以下說明和定義語句

structstudent

{

intage;charnum[8];

};

structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};

structstudent*p=stu;

以下選項中引用結構體變量成員的表達式錯誤的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].age

70.瀏覽器中用于負責向用戶顯示數據的是()。

A.WWWB.IP地址C.HTMLD.DNS

71.第

42

下面說明不正確的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*p;p=a="china"

72.有以下程序:

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

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

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

A.排序、索引、統計B.選擇、投影、連接C.關聯、更新、排序D.顯示、打印、制表

74.

75.

數字字符0的ASCII值為48,運行以下程序的輸出結果是()。

main

(chara=1,b=2;

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

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

76.將E—R圖轉換為關系模式時,實體和聯系都可以表示為()。

A.屬性B.鍵C.關系D.域

77.

78.下列字符串是標識符的是()。

A.aaB.a-classC.intD.LINE1

79.

80.

五、程序改錯題(1題)81.寫出下列程序的運行結果。

main

{intn;

For(n=3;n<=10;n++)

{if(n%6==0)break;Printf(“%d”,n);}}

六、程序設計題(1題)82.請編寫函數proc(),其功能是:將str所指字符串中除了下標為奇數、同時ASCⅡ值為偶數的字符外,其余的全部刪除,串中剩余字符所形成的一個新串放在t所指的數組中。例如,若str所指字符串中的內容為edB2A4Dsdg,其中字符A的ASCⅡ碼值為奇數,因此應當刪除;其中字符B的ASCⅡ碼值為偶數,但在數組中的下標為偶數,因此也應當刪除;而字符2的ASCⅡ碼值為偶數,所在數組中的下標為奇數,因此不應當刪除。依此類推,最后t所指的數組中的內容應是d24。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C

2.C

3.D解析:本題考查的知識點是do-while循環結構循環執行條件的判斷.使用do-while語句必須注意以下幾點:

先執行語句,后判斷表達式。所以,無論一開始表達式的值為“真”還是“假”,循環體中的語句至少執行一次,這一點與while不同,

如果do-while語句循環體部分是由多個語句組成,則必須用花括號括起來,使其形成復合語句。

C語言中的do—while語句是在表達式“真”時重復執行循環體。

在本題中,循環執行判斷條件為while后面括號里的表達式即p!=12345&&n<3(意思為p不等于12345且n小于3)是否為“真”,由此可得循環結束的條件為:p大于12345或者p小于12345又或者n大于等于3。選項A的意思是:p的值不等于12345并且n的小于3和while后面括號里的表達式等價是循環執行的條件而不是循環結束的條件,所以選項A不正確;選項B的意思是:p的值等于12345并且n的值大于3,不是循環結束的條件一個子集,所以選項B不正確;選項C的意思是:p的值不等于12345或者n的值小于3前一半是結束條件的子集,后一部分不是結束條件,所以選項C不正確;選項D描述的意思是:p的值等于12345或者你的大于等于3是結束條件的子集,所以選項D滿足題意。所以4個選項中D正確。

4.C解析:#define宏名的有效范圍為定義命令之后到本源文件結束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。

5.D解析:本題考核的知識點是指針變量定義和賦值語句的基本應用。在使用一個指針變量之前,先要用聲明語句對其進行定義,在定義了一個指針變量之后,系統就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關指針的運算符:&運算符,為取地址運算符,*運算符是指針運算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項A中將常量1賦給指針p不正確;選項B也是將常量2賦給*p,故選項B不正確;選項C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項中選項D符合題意。

6.C

7.D輸出時以%d整型格式輸出,所以輸出字符變量c1的值為65,c2-2的值為68-2,即66。故本題答案為D選項。

8.Bswitch語句的執行流程是:首先計算switch后面圓括號中表達式的值,然后用此值依次與各個case的常量表達式比較,若圓括號中表達式的值與某個e·*后面的常量表達式的值相等,就執行此ca*后面的語句,執行后遇break語句就退出switch語句;若圓括號中表達式的值與所有ca$e后面的常量表達式都不等,則執行default后面前語句。然后退出。所以輸入l時打印65,輸入2時打印6,輸入3時打印64,輸入4時打印5,輸入5時打印6。

9.A

10.B濫用90t0語句將使程序的流程毫無規律,可讀性差,對于初學者來說盡量不要使用,所以A錯誤。—個結構化程序可以包含順序、分支、循環結構中的一種或多種,所以C錯誤。由三種基本結構構成的程序可以解決任何復雜的問題,所以D錯誤。

11.C

12.B

13.C

14.D

15.C解析:軟件系統結構的總體設計包括:基于功能層次結構建立系統、按功能劃分成模塊的層次結構、確定每個模塊的功能、建立與已確定的軟件需求的對應關系、確定模塊間的調用關系和模塊間的接口、評估模塊劃分的質量等方面。詳細設計的任務是:在使用程序設計語言編制程序以前,對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節,并給予清晰的表達。需求分析是指用戶對目標軟件系統在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發現需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發進度需求等。編程調試的任務是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發生在總體設計階段。

16.B解析:條件表達式的形式為:“表達式1?表達式2:表達式3”。其含義為:當“表達式1”的值為非零時,求出“表達式2”的值,此時“表達式2”的值就是整個條件表達式的值;當“表達式1”的值為零時,求出“表達式3”的值,此時“表達式3”的值就是整個條件表達式的值。對于本題來說,當表達式EXP為非0值時條件成立,即執行語句i++;當EXP等于0時,執行語句j--;這等同于條件表達式“(EXP!=0)?i++:i++;”。

17.D

18.C

19.A循環的作用是求行下標從l到2列下標從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。

20.C

21.buf的首地址buf的首地址解析:考查fsets()函數的功能,f8ets()函數用來從文件中讀入字符串。調用格式為:f8ets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個int型變量。調用函數fsets()時,最多能讀入n-1個字符,系統自動在最后加字符串結束標志,并以buf作為函數值返回。

22.冒泡排序冒泡排序解析:交換排序是指借助數據元素之間的互相交換進行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。

23.本題主要考查for循環語句。for循環的增量表達式為逗號表達式,相當于k+=2;,即每次循環后k增加2。第一次循環時,k=2,因此輸出##2;第二次循環時k=4,輸出##4。此后k=6,不滿足循環條件。\r\n\r\n

24.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數據的數據結構是棧;按'先進先出'原則組織數據的數據結構是隊列。

25.11解析:字符空格的ASCII碼不為0,所以本題中表達式\ue008!c\ue009的值為0,b=0&&1的結果顯然為0。

26.aeiou

27.>=1或>0i>=1或>0\r\ni解析:程序的外層for循環控制輸出數據的行數,故第一處填“>=1”或“>0”;內層循環控制每行輸出的個數。在內層for循環中,語句x=(j-1)*4+______;用于控制輸出方陣中的具體數據,由于這些數據與其所在的行、列(j,i)具有x=(j-1)*4+i的關系,故第二處填i。

28.252137252137解析:程序中變量a、b、c分別為十進制、八進制、十六進制的數25,按%d格式輸出,a的輸出值為25;b=025轉換為十進制數(b=2*8+5=16+5=21)輸出;c=0x25轉換為十進制數(c=2*16+5=32+5=37)輸出。輸出結果為252137。

29.3!feof(f1)3\r\n!feof(f1)解析:要實現文件復制,需要指定源文件及目的文件,因此在命令行下執行程序時至少要指定兩個參數,加上程序名本身,故argc的值至少為3,因此第一空應填3。while循環中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應的文件中去,直至文件f1結束為止,因此第二空為!feof(f1)。

30.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設計、實現、測試、交付使用及維護等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發階段:設計、實現和測試;③軟件運行維護階段:交付使用和維護。

31.45994599解析:a、b、c的初值為3、4、5,t的初值為99,if語句的條件“b<a&&b<c”為假,不執行“t=a;”,但緊隨其后的“a=c;c=t;”與此if語句無關,仍被執行。此時a的值為5,b的值仍是4,c的值為99。再執行第二個if語句,由于此時“a<c&&b<c”為真,執行“t=b;”,緊隨其后的“b=a;a=t;”與此if語句無關,也被執行。此時a的值為4,b的值是5,c的值為99。因此輸出結果是:4599。

32.查詢查詢解析:關系模型的數據操作即是建立在關系上的數據操作,一般有查詢、增加、刪除和修改四種操作。數據查詢是指用戶可以查詢關系數據庫中的數據,它包括一個關系內的查詢以及多個關系間的查詢。數據刪除的基本單位是一個關系內的元組,它的功能是將指定關系內的指定元組刪除。數據增加僅對一個關系而言,在指定關系中插入一個或多個元組。數據修改是在一個關系中修改指定的元組和屬性。

33.11解析:ifelse語句的功能是:若表達式的值為真,執行語句1,并跳過其他語句,執行ifelse語句的下一條語句,若表達式的值為假,跳過語句1,執行語句2,依次往下判斷。題中,x=3,y=2,第一個if語句的控制條件x<y就不滿足,又沒有與之配對的else語句,所以直接執行printf語句,在整個過程中變量z的值都沒發生變化。

34.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。執行第1個for循環后a[1][0]=0、a[2][0]=0、a[2][1)=0;第2個for循環的功能是將數組元素按照3行3列的格式輸出。

35.1212解析:本題通過第一個for循坪將數組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環的三次循環累加,求出結果為12,具體分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

36.字符串a和b的長度之和字符串a和b的長度之和解析:本題首先通過第一個while循環計算字符串a的長度,再通過第二個循環,將字符串a和b相連,最后返回連接后的總長度。

37.67G67G解析:由于\'5\'-\'3\'=2,所以a=\'A\'+\'5\'-\'3\'=\'C\',按'%d'格式輸出\'C\'的ASCII碼為67;同理,\'6\'-\'2\'=4,b=a+\'6\'-\'2\'=\'C\'+4=\'G\',按'%c'格式輸出為\'G\'。

38.中序中序解析:在先左后右的原則下,根據訪問根結點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前療遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。后序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然先遍歷右子樹,然后訪問根結點,最后遍歷左子樹。

39.0111201112解析:在主函數中定義了整型變量f1和f2,并把其值賦為0和1,在屏幕上輸出。然后在第一次運行for循環語句時,變量f的值等于1,把其值輸出,把變量f1的值0賦給變量f2,變量f的值1賦給n,在執行第二次for循環語句時,變量f的值等于1,把此值輸出。然后再把變量f1的值1賦給變量f2,變量f的值1賦給f1,在執行第三次for循環語句時,變量f的值等于2,把此值輸出。所以程序運行后的結果為01112。

40.88解析:本題考查帶參數的宏定義及相關運算.運算過程為:t=B*2=A+3*2=2+3*2=8。

41.C

42.C解析:變量sum在使用時未賦初值,所以無法確定sum最終的值。

43.C解析:利用強制類型轉換(structsk*),把整數型地址&data.m轉換成結構體變量指針賦給結構體指針變量q。

44.B

45.A樹形結構是一類重要的非線性數據結構。樹是n(n≥0)個結點的集合,對應任意一棵非空樹,它具有以下幾點重要的性質。

①有且僅有一個特定的稱為根的結點。

②當n>1時,其余結點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。

因此,本題的正確答案有且只有一個。

46.D解析:利用Release命令可以將表單從內存中釋放,Refresh是刷新表單,Hide是隱藏表單,此兩個命令都不可以釋放表單,Delete的用法是錯誤的。

47.D解析:C語言中,常用的數據類型有int,char,float,double等,但C標準沒有具體規定以上各類數據所占內存字節數,只要求long型數據長度不短于int型,short型不長于int型,具體如何實現,由各計算機系統自行決定。

48.D解析:一個C語言的源程序(后綴名為.c)在經過編譯器編譯后,先生成一個匯編語言程序,然后由編譯程序再將匯編語言程序翻譯成機器指令程序,即目標程序(后綴名為.obj),目標程序不可以直接運行,它要和庫函數或其它目標程序連接成可執行文件(后綴名為.exe)后方可運行。故本題答案為D)。

49.D解析:C語言中操作一個字符串常量的方法有:

①把字符串常量存放在一個字符數組之中。

②用字符指針指向字符串,然后通過字符指針來訪問字符串存儲區域。

當字符串常量在表達式中出現時,根據數組的類型轉換規則,它被轉換成字符指針。

本題選項D)錯誤的關鍵是對數組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。

50.D解析:printf函數按格式控制符的個數輸出表列中對應的數據,若輸出表列的個數大于格式控制符個數,則輸出與格式控制符對應的輸出表列的數據,輸出表列中多的則省略;若格式控制符個數大于輸出表列的個數,則輸出與格式控制符對應的輸出表列的數據,格式控制符多的部分輸出的數據是隨機的。

51.B解析:選項A的錯誤在于,先已經把q結點給釋放,無法再進行余下語句了:選項C和D的錯誤在于因為有了q=(*q).next做了賦值,則free(q)釋放了原來q后面的一個結點。

52.A在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和數據庫系統階段。其中數據獨立性最高的階段是數據庫系統這一階段。數據庫系統階段用數據模型來表示復雜的數據,有較高的數據獨立性。數據庫系統為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數據庫,也可以用程序方式來操作。數據庫管理系統提供了數據控制功能。

53.D解析:先算括號內的表達式,即先對b進行左移運算:b的二進制為00000010,左移后變為00001000,然后再與a進行異或運算(參與運算的兩個對應位相同,則為0,相異則為1),結果為00001001,換算成十進制數結果為9。對于左移運算也可直接用此規則:左移1位相當于該數乘以2,左移2位相當于該數乘以22=4,依此類推。

54.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進先出”的原則組織數據的。

【知識拓展】“隊列”和“棧”都是一種特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進先出,后進后出。

55.D解析:面向對象的世界是通過對象與對象間彼此的相互合作來推動的,一個對象與另一個對象通過發送消息彼此交換信息,請求對方執行某一處理或回答某一要求的信息。

56.C解析:因為在函數fun(intx)中,如果參數x等于0或1時,返回值3。否則p=x-fun(x-2)這是一個遞歸函數,所以在主函數調用fun(7)時,其過程為:fun(7)=7-fun(5)=7-(5-fun(3))-7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2,所以最后的輸出結果為2。

57.C解析:在表達式中3/2是一個整型表達式,它的運算結果應該為整型,值為1。當變量x與其相加時轉換為雙精度實型即y=1.000000+1.000000=2.000000。所以,4個選項中選項C符合題意。

58.D解析:本題主要考查for循環語句的嵌套。外層主循環執行了3次,嵌套的循環語句每輪執行2次,每次輸出i+j的值,推出嵌套循環語句后換行。

59.B解析:本題考核的知識點是賦值語句的正確使用。C語言中賦值語句是由賦值表達式加“;”構成的.賦值表達式的形式為:變量:表達式;。選項A中a++相當于a+1,是賦值語句;選項C和選項D也是賦值語句.只有選項B不是,因為選項B中“==”符號是等于的意思,并不是賦值運算符,所以,4個選項中B符合題意。

60.CC。【解析】結構化程序設計的核心和基礎是結構化設計理論,其中包括:結構化分析方法、結構化設計方法和結構化編程方法。

61.A\n此題是需要將a[]中的數值倒過來進行輸出,所以答案為A。

\n

62.C函數fun(int*s,intn1,in

溫馨提示

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

評論

0/150

提交評論