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

下載本文檔

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

文檔簡介

2022-2023年吉林省遼源市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________一、單選題(20題)1.

2.下列函數(shù)的功能是()。voidfun(char*a,char*b){while((*b=*a)!=‘\0’){a++;b++;}}

A.將a所指字符串賦給b所指空間

B.使指針b指向a所指字符串

C.將a所指字符串和b所指字符串進行比較

D.檢查a和b所指字符串中是否有‘\0’

3.

4.下面程序段的運行結果是

charstr[]="ABC",*p=str;

printf("%d\n",*(p+3));

A.67B.0C.字符′C′的地址D.字符′C′

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

A.xYB.x<=YC.x‖y+zy-zD.!((x

6.以下選項中是非轉義字符的是()。

A.‘\d’B.‘\t’C.‘\b’D.‘\r’

7.遞歸式的先序遍歷一個n節(jié)點,深度為d的二叉樹,則需要??臻g的大小為()

A.O(logn)B.O(nlogn)C.O(n)D.O(d)

8.設有向無環(huán)圖G中的有向邊集合E={<1,2>,<2,3>,<3,4>,<1,4>},則下列屬于該有向圖G的一種拓撲排序序列的是()。

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

9.下列程序的輸出結果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}

A.6,2B.6,4C.8,4D.8,6

10.以下選項中,合法的一組C語苦數(shù)值常量是()。

A.28.5e-3-0xf

B.12OXa234.5

C.1774c1.5Oabc

D.0x8A10,0003.e5

11.設有以下宏定義:#defineN3#defineY(n)((N+1)*n)則執(zhí)行以下語句后,z的值為______。z=2*(N+Y(5+1));A.出錯B.42C.48D.54

12.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱為______。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

13.下列SQL語句中,用于修改表結構的命令式是A.A.Alter

B.Create

C.Update

D.Insert

14.一個二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[1][2]的值為()。

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

15.有以下程序#include<stdio.h>main(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf(“%d\n”,m);}程序的運行結果是()A.1B.0C.2D.3

16.有以下程序:#include<stdio.h>main(){inta=-2,b=0;while(a++++b);printf("%d,%d\n",a,b);}程序運行后的輸出結果是()。A.1,3B.0,2C.0,3D.1,2

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

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

18.在執(zhí)行()操作時,需要使用隊列做輔助存儲空間。

A.查找哈希(Hash)表B.深度優(yōu)先搜索網(wǎng)C.前序(根)遍歷二叉樹D.廣度優(yōu)先搜索網(wǎng)

19.若x、y、z、m均為int型變量,則執(zhí)行下面語句后m的值是()m=1;x=2;y=3;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<y)?m:z;

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

20.甲乙兩個聰明人上街,撿到一張10塊錢的購物卡,兩人就想出一個辦法來分配這張卡。兩個分別將自己出的價格寫在紙上,然后看誰出的價高就給誰,并且那個出價高的人要把出的錢給對方?,F(xiàn)在甲有6塊錢,乙有8塊錢,甲乙雙方都知道對方當前有多少錢并且都希望自己收益高于對方。問最后誰獲得的錢多()

A.甲多B.乙多C.一樣多D.有可能出現(xiàn)有人賠錢的情況

二、2.填空題(20題)21.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內容應該是:

2345678910。

請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

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

}

22.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結構是______。

23.下列程序的功能是輸入一個整數(shù),判斷其是否是素數(shù),若為素數(shù)則輸出1,否則輸出0。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,x,y=1;

scanf("%d",&x);

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

if【】{y=0;break;}

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

}

24.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指內存空間中,形成一個新字符串s。

請?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

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

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(strl,str2);

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

}

25.設Y是int型變量,請寫出判斷Y為奇數(shù)的關系表達式【】。

26.計算圓的周長、面積和球體積。

#definePI3.1415926

#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R

main()

{floatr,l,s,v;

printf("inputaradus:");

scanf("%f",&r);

CIRCLE(r,l,s,v);

printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);

}

27.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標,并將最大值和其下標通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標。請?zhí)羁铡?/p>

#include<stdlib.h>

#include<sldio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];*d=0;

for(i=0;【】;i++)

if(*max<【】)

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max.&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

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

29.以下程序把從終端讀入的20個整數(shù)以二進制方式寫到一個名為d.dat的新文件中,請?zhí)羁铡?/p>

#include<stdio.h>

FILE*fp;

main()

{inti,j;

if((fp=fopen(【】,"wb"))==NULL)exit(0);

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

{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}

fclose(fp);

}

30.數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為【】。

31.以下程序的輸出結果是【】。

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

32.函數(shù)fun的功能是計算xn

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,而且調用fun函數(shù)計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調用語句為【】。

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

#include<stdio,h>

main()

{chara[]="Language",b[]:"Programe";

char*pl,*p2;intk;

p1=a;p2=b;

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

if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));

}

34.若fp已正確定義為一個文件指針,d1.dat為二進制文件,請?zhí)羁?,以便為“讀”而打開此文件:

fp=fopen(【】);。

35.若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

36.下列程序的運行結果是______。

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0||x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

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

main()

{

inti,n[]={0,0,0,0,0};

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

n[i]=n[i-1]*2+1;

printf("%d",n[i]);

}

}

38.若x和n均是int型變量,且x=12,n=5,則執(zhí)行y=x%=(n%=2)表達式后y的值為()。

39.數(shù)據(jù)結構分為線性結構和非線性結構,帶鏈的隊列屬于[]。

40.以下程序的功能是輸出字符串。請?zhí)羁铡?/p>

main()

{char*a[]={"Pascal","Clanguage","dbase","Cobol"};

char【】;

intj=0;

p=a;

for(;j<4;j++)

print{("%s\n",*【】);

}

三、1.選擇題(20題)41.若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達式中值為5的是()。

A.(p++)->mB.*(p++)->mC.(*p).mD.*(++p)->m

42.對以下程序段的描述,正確的是()。x=-1;do{x=x*x;}while(!x);

A.是死循環(huán)B.循環(huán)執(zhí)行兩次C.循環(huán)執(zhí)行一次D.有語法錯誤

43.有以下程序

#include<stdio.h>

main0

{inty=9;

for(;y>0;y--)

if(y%3==0)printf("%d",--y);

}

程序的運行結果是

A.741B.963C.852D.875421

44.設有下列二叉樹:

對此二叉樹中序遍歷的結果為______。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

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

A.在同一C程序文件中,不同函數(shù)中可以使用名字相同的變量

B.在main()函數(shù)體內定義的變量是全局變量

C.形參是局部變量,函數(shù)調用完成即失去意義

D.若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內不起作用

46.若有以下說明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為6的表達式是_______。

A.*p+6B.*(p+6)C.*p+=5D.p+5

47.以下程序的輸出結果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}

A.650B.1470C.5430D.輸出值不定

48.以下所列的各函數(shù)首部中,正確的是______。

A.voidplay(Var:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

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

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

50.以下程序中函數(shù)reverse的功能是對a所指數(shù)組中的內容進行逆置。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-1];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序運行后的輸出結果是______。

A.22B.10C.34D.30

51.函數(shù)調用strcat(strcpy(str1,str2),str3)的功能是()。

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

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

C.將字符串str2復制到字符串str1后再將字符串str3連接到字符串str1之后

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

52.以下說法不正確的是

A.C程序中必須有一個main()函數(shù),C程序是從main()函數(shù)的第1條語句開始執(zhí)行的。

B.非主函數(shù)都是在執(zhí)行主函數(shù)時,通過函數(shù)調用或嵌套調用而得以執(zhí)行的。

C.C程序中的main()函數(shù)必須放在程序的開始位置。

D.C程序中的main()函數(shù)位置可以任意指定。

53.執(zhí)行以下程序段的輸出結果是()。intm=0x12,n=0x12;m=m-n;printf("%X\n",m);

A.0X0B.0X12C.0x0D.0

54.下列合法的聲明語句是()。

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

55.在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()

A.連接碼B.關系碼C.外碼D.候選碼

56.設定義下列結構體,結構體變量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;

57.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序運行后的輸出結果是______。

A.運行后報錯B.66C.611D.510

58.若x和y代表整型數(shù),以下表達式中不能正確表示數(shù)學關系|x-y|<10的是

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<=10||!(y-x)>10

D.(x-y)*(x-y)<100

59.需求分析階段的任務是確定()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能

60.在結構化設計方法中,生成的結構圖(SC)中,帶有箭頭的連線表示______。A.A.模塊之間的調用關系B.程序的組成成分C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向

四、選擇題(20題)61.算法的有窮性是指()。

A.算法程序的運行時問是有限的。

B.算法程序所處理的數(shù)據(jù)量是有限的

C.算法程序的長度是有限的

D.算法只能被有限的用戶使用

62.若有定義語句“inta,b;doubleX;”,則下列選項中沒有錯誤的是()。

A.switch(X%2){case0:a++;break;casel:b++;break;default:a++;b++;}

B.switch((int)x/2.O){case0:a++;break;casel:b++;break;default:a++;b++;}

C.switch((int)X%2){case0:a++;break;casel:b++;break;default:a++;b++;}

D.switch((int)(x)%2){case0.0:a++;break;casel.0:b++;break;default:a++;b++;}

63.

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

#include<stdio.h>

main

{inta=2,b=3,c=4:

if(a<b)

if(b<0)C=0:

elsec++;

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

}

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

64.

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

A.321678B.876543C.1098765D.345678

66.

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

#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

67.有以下程序:

#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.30

B.40

C.10

D.20

68.

有以下程序:

intfun(intn)

{if(n==l)returnl;

elsereturn(n+fun(n一1)):

}

main

{intx;

scanf("%d",&x);x=fun(x);printf("%d\n",

x):

}

執(zhí)行程序時,給變量X輸入10,程序的輸出結果是()。

A.55B.54C.65D.45

69.

70.

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

A.3,5,3,5B.3,5,5,3C.5,3,3,5D.5,3,5,3

72.有以下程序已知字母A的ASCIl碼為65,程序運行后的輸出結果是()。

A.E。68B.D,69C.E,DD.輸出無定值

73.

74.變量a中的數(shù)據(jù)用二進制表示的形式是01011101,變量b中的數(shù)據(jù)用二進制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運算是()。

A.

B.

C.ab

D.a<<b

75.

76.(36)下列工具中屬于需求分析常用工具的是()

A.PAD

B.PFD

C.N-S

D.DFD

77.在結構化方法中,軟件功能分別屬于下列軟件開發(fā)中的(

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

78.數(shù)據(jù)庫設計中反映用戶對數(shù)據(jù)要求的模式是()。

A.內模式B.概念模式C.外模式D.設計模式

79.有以下程序

main()

{

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

printf("%d\n",x/y&~z);

}

程序運行后的輸出結果是

A.3B.2

C.1D.0

80.有以下程序:

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

A.0B.一1C.1D.7

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是計算正整數(shù)m各位上數(shù)字的平方和。例如,輸入498,則輸出應該是161。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}

六、程序設計題(1題)82.編程將文件read.txt中的字符讀出顯示到屏幕上。

參考答案

1.D

2.A題目的fun函數(shù)內,while循環(huán)條件為“(*b=*a)!=‘\\0’”,執(zhí)行時先把指針a所指向的字符賦給指針b所在的內存單元。如果該字符不是結束標識‘\\0’,執(zhí)行循環(huán)體“a++;b++;”,指針a、b分別指向下一個字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在的內存單元,直到遇到結束標識為止。故本題答案為A選項。

3.D

4.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應該是該字符串中的首地址,p+3指向的是字符串結束標志'\\0'的地址,因而*(p+3)的值為0。

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

6.AC語言中,轉義字符又稱反斜線字符,這些字符常量總是以一個反斜線開頭后加一個特定的字符。題干中,‘\\t’表示橫向跳若干格,‘\\b’表示退格符,‘\\r’表示回車符,選項B、C、D正確,選項A錯誤。故本題答案為A選項。

7.D

8.A

9.B解析:本題主要考查結構體和聯(lián)合內存使用的區(qū)別:結構中不同的成員分別使用不同的內存空間,一個結構所占內存空間的大小是結構中每個成員所占內存空間大小的總和,結構中每個成員相互獨立;聯(lián)合所占用的內存空間為最長的成員所占用的空間。

10.B

11.D

12.A解析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。

13.A本題主要考查SQL中一些基本的命令。SQL常用的語句包括:Select、Insert、Update、Delete、Create、Alter和Drop等。

在SQL語言中使用率最高的是Select,這個命令的作用是從表中查找出滿足條件的記錄。

Insert命令的作用是對數(shù)據(jù)表進行插入操作。

Update命令的作用是對數(shù)據(jù)表進行更新操作。

Delete命令的作用是對數(shù)據(jù)表中的數(shù)據(jù)進行刪除操作。

Create命令的作用是創(chuàng)建數(shù)據(jù)表。

Alter命令的作用是修改表的結構。

Drop命令的作用是用來刪除表,它與Delete的區(qū)別是進行Drop操作后,數(shù)據(jù)表不存在了,而進行Delete操作后,數(shù)據(jù)表還在,只是數(shù)據(jù)被刪除了。

14.C

15.A雖為嵌套的for循環(huán),但“m=m%j”只執(zhí)行1次,即當i=3時,內層循環(huán)條件成立,m=55%3=1,故選A。

16.D輸出的結果是:-1,1\r\n0,2\r\n1,2

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

18.D

19.A解析:?:運算符首先執(zhí)行?之前的表達式,如果表達式的值為真,則返回?和:之間的表達式的值,否則返回:之后的表達式的值。本題中m比x和y都要小,所以,3個表達式都沒有改變m的值,故應該選擇A。

20.C

21.!=returnj!=,returnj解析:本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標,i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標,所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留到新數(shù)組中。注本題中i、j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。

22.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設置了一個頭結點,因此在任何情況下,循環(huán)鏈表中至少有一個結點存在,從而使空表與非空表的運算統(tǒng)一。

23.(x%i==0)(x%i==0)解析:為判數(shù)x是否是素數(shù),預置變量y的值為1(x可能是素數(shù)),然后用2至x/2的整數(shù)i測試對x的整除性,若x能被其中的某個整數(shù)整除,則x是合數(shù),置y的值為0(即x不是素數(shù)),結束循環(huán)測試;若循環(huán)中i都不能整除x,則x為素數(shù)。一般可用求余運算x%i是否等于0來判定i能否整除x,所以程序中的空格處可填(x%i==0)。

24.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個字符型數(shù)組strl和str2,并且給str2賦初值“abc&fgh”,接著調用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1。在函數(shù)sstrcpy(*s,*t)中,用了一個while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲空間,然后指針s和指針t都下移到下一個元素。所以空格處應該填*t++或*(t++)。

25.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

26.CIRCLE(RLSV)S=PI*R*Rr1sv

27.i<na[i]i<na[i]解析:在main函數(shù)中,randomize是為了生成隨機種子,以便在使用rand函數(shù)時產(chǎn)生不同的數(shù)。通過循環(huán)用rand函數(shù)產(chǎn)生10個隨機數(shù)。在fun函數(shù)中,要在n個數(shù)中找最大值,所以第一處填寫i<n,每次將當前最大值與數(shù)組中的某元素比較,第二處填寫a[i]。

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

29."bi.dat"fp'bi.dat'\r\nfp解析:要向文件bi.dat中寫數(shù)據(jù),所以要打開文件bi.dat。fp是指向文件bi.dat的指針,是將數(shù)據(jù)寫入fp指向的文件中去。

30.物理獨立性物理獨立性解析:數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為物理獨立性。

31.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當y能被3整除時輸出表達式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結束循環(huán)。所以程序輸出852。

32.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求x的n次方,因此a的4次方應該調用函數(shù)fun(a,4),b的4次方應該調用函數(shù)fun(b,4),a+b的3次方應該調用函數(shù)fun(a+b,3),所以題目中的數(shù)學表達式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

33.gaegae解析:本題考查字符指針變量與字符數(shù)組。for循環(huán)語句共循環(huán)8次:

①當k=0時,*(Pl+0)='L',*(p2+0)='P',L!=P,沒有輸出。

②當k=1時,*(p1+1)='a',*(p2+1)='r',a!=r,沒有輸出。

③當k=2時,*(p1+2)='n',*(p2+2)='o',n!=o,沒有輸出。

④當k=3時,*(P1+3)='g',*(p2+3)='g',g==g,所以輸出g。

⑤當k=4時,*(p1+4)='u',*(P2+4)='r',u!=r,沒有輸出。

⑥當k=5時,*(p1+5)='a',*(p2+5)='a',a==a,所以輸出a。

⑦當k=6時,*(p1+6)='g',*(p2+6)='m',g!=m,沒有輸出。

⑧當k=7時,*(p1+7)='e',*(p2+7)='e',e==e,輸出e。

⑨當k=8時結束循環(huán),輸出結果為:gae。

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

35.33解析:這里:b-5=4,a-=4之后a的值為6,并把它賦給c。此時b的值并未被改變。在第2個表達式中,也只有賦值表達式b=3改變了b的值。所以兩行語句執(zhí)行完畢,b的值應該為3。

36.2424解析:本題考查函數(shù)的循環(huán)調用。p=x*func(x-1),當x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結果為4*3*2*1=24。

37.1371513715解析:本題中,定義了一個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,pnntf函數(shù)輸出1,然后i的值加1,比較i<4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。

38.00解析:n%=2等價于n=n%2,結果為1:x%=1等價于x=x%1,結果為0。

39.線性結構線性結構解析:與棧類似,隊列也是線性表,也町以采用鏈式存儲結構。

40.**p(p+i)

41.D

42.C解析:do-while語句的執(zhí)行過程是:首先執(zhí)行循環(huán)體語句,再判斷表達式值的真假。在本題中,表達式的值為假,因此循環(huán)體只執(zhí)行一次。

43.C解析:本題考察變量的自加'++'和自減'--'問題。當y的值為9、6或3時,if語句的條件成立,執(zhí)行輸出語句,輸出表達式--y的值,y的自減要先于輸出語句執(zhí)行,故輸出結果為852。

44.B解析:所謂中序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹;并且在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。

45.B解析:本題考查函數(shù)調用時變量的作用域。形參是局部變量,函數(shù)調用完就失去意義了,所以在同一個C程序文件中,不同的函數(shù)體中可以使用名字相同的局部變量。注意:在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量,全局變量可以為本文件中其他函數(shù)所共用。它的有效范圍為:從定義變量的位置開始到本源文件結束.

46.C解析:選項A,*p+6,其值等于1+6=7;選項B,*(p+6),其值等于a[6]=7;選項C,*p+=5,其值等于*p=*p+5=1+5=6;選項D,p+5是個地址值。

47.A解析:對未給出初始值的整數(shù)數(shù)組元素,被默認初始化為零。

48.C解析:C語言中函數(shù)首部中的各參數(shù)必須分開單獨定義,因此選項C才是正確的。而選項A和D是其他語言的函數(shù)定義方式。

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

50.A解析:主函數(shù)調用reverse時。實參為b和8,即reverse函數(shù)的功能是將數(shù)組b中的前8個元素逆置,其余元素不變。因此函數(shù)調用結束后數(shù)組b的內容為:8、7,6、5、4、3、2、1、9、10。main函數(shù)中for循環(huán)語句的功能是求b[6]元素到b[9]元素的和,即s=b[6]+b[7]+b[8]+b[9]=2+1+9+10=22,因此printf語句的輸出結果是22。

51.C解析:strcat(s1,s2)是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復制給s1字符串,要保證s1能容納下連接或復制后的字符串。

52.C解析:本題考核的知識點是main()函數(shù)的作用,以及main()函數(shù)在程序中出現(xiàn)的位置。一個完整的C語言程序有且僅有一個主函數(shù)(main()函數(shù))。程序總從main()函數(shù)的第一條語句開始執(zhí)行,到main()函數(shù)的最后一條語句結束,其他函數(shù)都是在執(zhí)行main()函數(shù)時,通過函數(shù)調用或嵌套調用而得以執(zhí)行的。C語言規(guī)定,main()函數(shù)在程序中的位置是任意的,故選項c不正確。所以,4個選項中C符合題意。

53.D解析:格式字符X或x是以十六進制無符號形式輸出整型數(shù)(注:輸出時不顯示前導0x或0X)。

54.A解析:C語言規(guī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。另外C語言規(guī)定了一些專用的標識符,它們有著固定的含義,不能更改。int就是表達變量類型的標識符,它不能再用做變量名和函數(shù)名,所以選項B)不正確。do是C語言的一個關鍵字,也不能再用做變量名和函數(shù)名,所以選項C)不正確。

55.DD)【解析】在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。

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

57.A解析:本題考核的知識點是通過指針引用數(shù)組的元素的方法.本題中首先定義了一個一維數(shù)組a并初始化,由于定義該數(shù)組的時候省略了長度,因此該數(shù)組的長度為初始化時候賦初值的個數(shù)即為12。數(shù)組名a代表數(shù)組的首地址,所以*p=a+5語句使得p指向數(shù)組的第6個元素,而在程序中定義了一個指針q并讓它指向空,實際上程序并沒有在內存中為指針q開辟存儲空間,這樣給q賦值不允許的,故該程序運行后報錯。所以,4個選項中選項A符合題意。

58.C解析:本題考核的知識點是關系運算和邏輯運算的混合應用。選項A用了一個絕對值函數(shù)abs(),故選項A正確:選項B中用了一個“&&”邏輯與,故選項B正確:選項C中,“||”左邊的式子如為真,將不再判斷其后的表達式的值,故選項C不正確;選項D為本題中數(shù)學關系式的一個等價命題,故選項D正確.所以,4個選項中選項C符合題意。

59.D解析:結構化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書

評析,需求分析是軟件定義時期的最后一個階段,它的基本任務就是詳細調查現(xiàn)實世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎上確定新系統(tǒng)的功能.選項A)軟件開發(fā)方法是在總體設計階段完成的任務;選項B)軟件開發(fā)工具是在實現(xiàn)階段需完成的任務:選項C)軟件開發(fā)費用是在可行性研究階段需完成的任務。

60.A解析:讓考生對常用的軟件結構設計工具要有較深入的了解。常用的軟件結構設計工具是結構圖(SC-structureChart),也稱程序結構圖。其中,矩形內用于注明模塊的功能和名字;箭頭表示模塊間的調用關系,帶實心圓的箭頭表示傳遞的是控制信息,帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。注意:根據(jù)結構圖設計思想,了解結構圖構成的基本形式。

61.A算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算后即可完成。有窮性是指算法程序的運行時間是有限的。

62.CC語言中,switch語句中的表達式和case表達式都不能是浮點類型。所以選C。

63.C

\n本題考查if…else語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,則執(zhí)行第二個if語句,再判斷條件,發(fā)現(xiàn)b<0條件不成立,則執(zhí)行與其配對的else語句c++,c自加1,得c=5。

\n

64.C

65.A本題中,函數(shù)fun()的功能是將數(shù)組k中前5個元素倒序,因此返回后數(shù)組k中的元素排列是5…432,l,6,7,8,9,10。程序打印輸,hqk[21到k[71元素的值,flP321678,所以選擇A)。

66.D

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

\n

67.A\nFor循環(huán)結束后,數(shù)組a的值并沒有變化,由于數(shù)組是由0開始,所以a[2]的值是30。

\n

68.A

\n函數(shù)intfun(intn)的功能是求1+2+…+n的值并返回。所以執(zhí)行程序時,給變量x輸入10后,執(zhí)行語句“x=fun(x);”,X的值將變?yōu)?到10中10個整數(shù)的累加和,即55。

\n

69.D

70.D

71.Af函數(shù)交換局部變量a和b指針變量里的值,main調用并不改變參數(shù)的值,所以答案選擇A)。

72.A題中字符變量C:1是字符‘A’的ASCIl碼加上4,gll69所對應的字符‘E’。字符變Jibe2是字符‘A’的ASCIl碼加上3,即68所對應的字符‘D’。但是打印輸出時,Cl以%。的格式輸出,因此是E,C2以%d的格式輸出,因此是68。故本題答案為A。

73.B

74.A本題考查的是位運算的知識,對于任何二進制數(shù),和l進行異或運算會讓其取反,而和0進行異或運算不會產(chǎn)生任何變化。

75.B

76.D

77.C總體設計過程通常由兩個主要階段組成:系統(tǒng)設計,確定系統(tǒng)的具體實現(xiàn)方案;結構設計,確定軟件結構。為確定軟件結構,首先需要從實現(xiàn)角度把復雜的功能進~步分解。分析員結合算法描述仔細分析數(shù)據(jù)流圖中的每個處理,如果一個處理的功能過分復雜,必須把它的功能適當?shù)胤纸獬梢幌盗斜容^簡單的功能。

78.C數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結構的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以選擇C。內模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結構與物理存取方法。

79.D&是“按位與”運算符,參加運算的兩個運算量的相應位都為1,則該位的結果值為1,否則為0。~是“取反”運算符,用來對一個二進制數(shù)按位取反,即將0變1,1變0。本題x/y&~z,x/y的值為1,~z的值為0,所以進行&運算后,整個表達式的值為0。

80.Ba一一的含義是先用后減l,所以當a的值為0時,跳出循環(huán),但是仍要執(zhí)行a一一,g的值變?yōu)橐?。

81.(1)錯誤:longsum=1;正確:longsum=0;(2)錯誤:while(m)正確:while(m);【解析】由函數(shù)proc可知,變量sum中存放正整數(shù)m的各位上數(shù)字的平方和,其初始化為0。因此,“l(fā)ongsum=1;”應改為“l(fā)ongsum=0;”。按照C語言的語法規(guī)則,語句都以分號結束,應在do-while語句最后加上分號。因此,“while(m)”應改為“while(m);”。

82.\n#include'stdio.h'

\nmain

\n{intc;

\nFILE*fp;

\nfp=open('read.txt','r');

\nc=fgetc(fp);

\nwhile(c!=\\n)

\n{putchar(c);

\nc=fgetcr(fp);

\n}}

\nfclose;}\n2022-2023年吉林省遼源市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________一、單選題(20題)1.

2.下列函數(shù)的功能是()。voidfun(char*a,char*b){while((*b=*a)!=‘\0’){a++;b++;}}

A.將a所指字符串賦給b所指空間

B.使指針b指向a所指字符串

C.將a所指字符串和b所指字符串進行比較

D.檢查a和b所指字符串中是否有‘\0’

3.

4.下面程序段的運行結果是

charstr[]="ABC",*p=str;

printf("%d\n",*(p+3));

A.67B.0C.字符′C′的地址D.字符′C′

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

A.xYB.x<=YC.x‖y+zy-zD.!((x

6.以下選項中是非轉義字符的是()。

A.‘\d’B.‘\t’C.‘\b’D.‘\r’

7.遞歸式的先序遍歷一個n節(jié)點,深度為d的二叉樹,則需要??臻g的大小為()

A.O(logn)B.O(nlogn)C.O(n)D.O(d)

8.設有向無環(huán)圖G中的有向邊集合E={<1,2>,<2,3>,<3,4>,<1,4>},則下列屬于該有向圖G的一種拓撲排序序列的是()。

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

9.下列程序的輸出結果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}

A.6,2B.6,4C.8,4D.8,6

10.以下選項中,合法的一組C語苦數(shù)值常量是()。

A.28.5e-3-0xf

B.12OXa234.5

C.1774c1.5Oabc

D.0x8A10,0003.e5

11.設有以下宏定義:#defineN3#defineY(n)((N+1)*n)則執(zhí)行以下語句后,z的值為______。z=2*(N+Y(5+1));A.出錯B.42C.48D.54

12.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱為______。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

13.下列SQL語句中,用于修改表結構的命令式是A.A.Alter

B.Create

C.Update

D.Insert

14.一個二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[1][2]的值為()。

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

15.有以下程序#include<stdio.h>main(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf(“%d\n”,m);}程序的運行結果是()A.1B.0C.2D.3

16.有以下程序:#include<stdio.h>main(){inta=-2,b=0;while(a++++b);printf("%d,%d\n",a,b);}程序運行后的輸出結果是()。A.1,3B.0,2C.0,3D.1,2

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

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

18.在執(zhí)行()操作時,需要使用隊列做輔助存儲空間。

A.查找哈希(Hash)表B.深度優(yōu)先搜索網(wǎng)C.前序(根)遍歷二叉樹D.廣度優(yōu)先搜索網(wǎng)

19.若x、y、z、m均為int型變量,則執(zhí)行下面語句后m的值是()m=1;x=2;y=3;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<y)?m:z;

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

20.甲乙兩個聰明人上街,撿到一張10塊錢的購物卡,兩人就想出一個辦法來分配這張卡。兩個分別將自己出的價格寫在紙上,然后看誰出的價高就給誰,并且那個出價高的人要把出的錢給對方。現(xiàn)在甲有6塊錢,乙有8塊錢,甲乙雙方都知道對方當前有多少錢并且都希望自己收益高于對方。問最后誰獲得的錢多()

A.甲多B.乙多C.一樣多D.有可能出現(xiàn)有人賠錢的情況

二、2.填空題(20題)21.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內容應該是:

2345678910。

請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

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

}

22.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結構是______。

23.下列程序的功能是輸入一個整數(shù),判斷其是否是素數(shù),若為素數(shù)則輸出1,否則輸出0。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,x,y=1;

scanf("%d",&x);

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

if【】{y=0;break;}

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

}

24.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指內存空間中,形成一個新字符串s。

請?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

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

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(strl,str2);

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

}

25.設Y是int型變量,請寫出判斷Y為奇數(shù)的關系表達式【】。

26.計算圓的周長、面積和球體積。

#definePI3.1415926

#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R

main()

{floatr,l,s,v;

printf("inputaradus:");

scanf("%f",&r);

CIRCLE(r,l,s,v);

printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);

}

27.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標,并將最大值和其下標通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標。請?zhí)羁铡?/p>

#include<stdlib.h>

#include<sldio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];*d=0;

for(i=0;【】;i++)

if(*max<【】)

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max.&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

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

29.以下程序把從終端讀入的20個整數(shù)以二進制方式寫到一個名為d.dat的新文件中,請?zhí)羁铡?/p>

#include<stdio.h>

FILE*fp;

main()

{inti,j;

if((fp=fopen(【】,"wb"))==NULL)exit(0);

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

{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}

fclose(fp);

}

30.數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為【】。

31.以下程序的輸出結果是【】。

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

32.函數(shù)fun的功能是計算xn

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,而且調用fun函數(shù)計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調用語句為【】。

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

#include<stdio,h>

main()

{chara[]="Language",b[]:"Programe";

char*pl,*p2;intk;

p1=a;p2=b;

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

if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));

}

34.若fp已正確定義為一個文件指針,d1.dat為二進制文件,請?zhí)羁?,以便為“讀”而打開此文件:

fp=fopen(【】);。

35.若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

36.下列程序的運行結果是______。

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0||x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

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

main()

{

inti,n[]={0,0,0,0,0};

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

n[i]=n[i-1]*2+1;

printf("%d",n[i]);

}

}

38.若x和n均是int型變量,且x=12,n=5,則執(zhí)行y=x%=(n%=2)表達式后y的值為()。

39.數(shù)據(jù)結構分為線性結構和非線性結構,帶鏈的隊列屬于[]。

40.以下程序的功能是輸出字符串。請?zhí)羁铡?/p>

main()

{char*a[]={"Pascal","Clanguage","dbase","Cobol"};

char【】;

intj=0;

p=a;

for(;j<4;j++)

print{("%s\n",*【】);

}

三、1.選擇題(20題)41.若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達式中值為5的是()。

A.(p++)->mB.*(p++)->mC.(*p).mD.*(++p)->m

42.對以下程序段的描述,正確的是()。x=-1;do{x=x*x;}while(!x);

A.是死循環(huán)B.循環(huán)執(zhí)行兩次C.循環(huán)執(zhí)行一次D.有語法錯誤

43.有以下程序

#include<stdio.h>

main0

{inty=9;

for(;y>0;y--)

if(y%3==0)printf("%d",--y);

}

程序的運行結果是

A.741B.963C.852D.875421

44.設有下列二叉樹:

對此二叉樹中序遍歷的結果為______。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

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

A.在同一C程序文件中,不同函數(shù)中可以使用名字相同的變量

B.在main()函數(shù)體內定義的變量是全局變量

C.形參是局部變量,函數(shù)調用完成即失去意義

D.若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內不起作用

46.若有以下說明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為6的表達式是_______。

A.*p+6B.*(p+6)C.*p+=5D.p+5

47.以下程序的輸出結果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}

A.650B.1470C.5430D.輸出值不定

48.以下所列的各函數(shù)首部中,正確的是______。

A.voidplay(Var:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

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

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

50.以下程序中函數(shù)reverse的功能是對a所指數(shù)組中的內容進行逆置。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-1];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序運行后的輸出結果是______。

A.22B.10C.34D.30

51.函數(shù)調用strcat(strcpy(str1,str2),str3)的功能是()。

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

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

C.將字符串str2復制到字符串str1后再將字符串str3連接到字符串str1之后

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

52.以下說法不正確的是

A.C程序中必須有一個main()函數(shù),C程序是從main()函數(shù)的第1條語句開始執(zhí)行的。

B.非主函數(shù)都是在執(zhí)行主函數(shù)時,通過函數(shù)調用或嵌套調用而得以執(zhí)行的。

C.C程序中的main()函數(shù)必須放在程序的開始位置。

D.C程序中的main()函數(shù)位置可以任意指定。

53.執(zhí)行以下程序段的輸出結果是()。intm=0x12,n=0x12;m=m-n;printf("%X\n",m);

A.0X0B.0X12C.0x0D.0

54.下列合法的聲明語句是()。

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

55.在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()

A.連接碼B.關系碼C.外碼D.候選碼

56.設定義下列結構體,結構體變量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;

57.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序運行后的輸出結果是______。

A.運行后報錯B.66C.611D.510

58.若x和y代表整型數(shù),以下表達式中不能正確表示數(shù)學關系|x-y|<10的是

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<=10||!(y-x)>10

D.(x-y)*(x-y)<100

59.需求分析階段的任務是確定()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能

60.在結構化設計方法中,生成的結構圖(SC)中,帶有箭頭的連線表示______。A.A.模塊之間的調用關系B.程序的組成成分C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向

四、選擇題(20題)61.算法的有窮性是指()。

A.算法程序的運行時問是有限的。

B.算法程序所處理的數(shù)據(jù)量是有限的

C.算法程序的長度是有限的

D.算法只能被有限的用戶使用

62.若有定義語句“inta,b;doubleX;”,則下列選項中沒有錯誤的是()。

A.switch(X%2){case0:a++;break;casel:b++;break;default:a++;b++;}

B.switch((int)x/2.O){case0:a++;break;casel:b++;break;default:a++;b++;}

C.switch((int)X%2){case0:a++;break;casel:b++;break;default:a++;b++;}

D.switch((int)(x)%2){case0.0:a++;break;casel.0:b++;break;default:a++;b++;}

63.

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

#include<stdio.h>

main

{inta=2,b=3,c=4:

if(a<b)

if(b<0)C=0:

elsec++;

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

}

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

64.

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

A.321678B.876543C.1098765D.345678

66.

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

#include<stdio.h

溫馨提示

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

評論

0/150

提交評論