2021年遼寧省錦州市全國計算機等級考試C語言程序設計_第1頁
2021年遼寧省錦州市全國計算機等級考試C語言程序設計_第2頁
2021年遼寧省錦州市全國計算機等級考試C語言程序設計_第3頁
2021年遼寧省錦州市全國計算機等級考試C語言程序設計_第4頁
2021年遼寧省錦州市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩103頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年遼寧省錦州市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.簡單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

2.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

3.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序運行后的輸出結果是()。

A.18,34,100B.24,34,92C.24,34,100D.18,34,92

4.以下敘述中,不正確的是()。

A.使用staticfloata定義的外部變量存放在內存中的靜態(tài)存儲區(qū)

B.使用floatb定義的外部變量存放在內存中的動態(tài)存儲區(qū)

C.使用staticfloatc定義的內部變量存放在內存中的靜態(tài)存儲區(qū)

D.使用floatd定義的內部變量存放在內存中的動態(tài)存儲區(qū)

5.有以下程序

#include<stdio.h>

intfun(intx,inty)

{if(x==y)return(x);

elsereturn((x+y)/2);

}

main()

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

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

}

程序運行后的輸出結果是A.3B.6C.8D.12

6.對于“if(表達式)語句”,以下敘述正確的是()。

A.“表達式”不能是變量

B.“表達式”的值只能是整數(shù)值

C.“表達式”可以是常量

D.“表達式”中不可以出現(xiàn)字符型變量的比較

7.有如下程序段:

inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B'):

執(zhí)行該程序后,x的值為()。A.A.trueB.falseC.0D.1

8.對于移動平均算法,是計算某變量之前n個數(shù)值的算術平均,正確的說法是()

A.空間復雜度是O(1)B.空間復雜度是O(n)C.空間復雜度是O(logn)D.空間復雜度是O(nlogn)

9.若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);執(zhí)行后輸出結果是A.0X0B.0x0C.0D.0XABC

10.

11.下列程序的輸出結果是()。#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

12.設x,y,t均為int型變量,執(zhí)行語句:

x=y=3;

t=++x||++y;

完成后,y的值為A.A.不確定B.4C.3D.1

13.

14.sizeof(float)是()。A.一個雙精度型表達式B.一個整型表達式C.一種函數(shù)調用D.一個不合法的表達式

15.軟件生命周期是指()。A.軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程

B.軟件從需求分析、設計、實現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運行維護過程

16.已知一個有序表為(15,19,30,33,49,50,65,88,93,126,164),當二分查找值為126的元素時,檢索成功需進行的比較次數(shù)為()。

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

17.下列有關圖的遍歷說法中,不正確的是()

A.圖的遍歷必須用遞歸實現(xiàn)

B.基本遍歷算法兩種:深度遍歷和廣度遍歷

C.有向圖和無向圖都可以進行遍歷操作

D.圖的遍歷算法可以執(zhí)行在有回路的圖上

18.

19.

20.有以下程序:#include<stdio.h>,main(){intS;scanf("%d",&s);while(s>O){switch(s){casel:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:("%d",s+1);break;}scanf("%d",&s);}}運行時,若輸入123450<回車>,由輸出結果是()。A.6566456B.66656C.66666D.6666656

二、2.填空題(20題)21.在關系運算中,【】運算是在給定關系的某些域上進行的運算。

22.對于圖書管理數(shù)據庫,將圖書表中“人民郵電出版社”的圖書的單價漲價5%。請對下面的SQL語句填空:UPDATE圖書______WHERE出版單位="人民郵電出版社"

23.在面向對象方法中,【】描述的是具有相似屬性與操作的一組對象。

24.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的______的集合。

25.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。

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.已知函數(shù)isaplha(ch)的功能是判斷變量ch是否是字母,若是,則該數(shù)值為1,否則為0。下面程序執(zhí)行后的輸出結果是()。

#include<ctype.h>

#include<string.h>

voidfun(chars[])

{inti,j;

for(i=0,j=0;s[i];i++)

s[j]='\0';

}

main()

{charss[80]="goodmorning";

fun(ss);

printf("%s",ss);

}

28.診斷和改正程序中錯誤的工作通常稱為【】。

29.十進制數(shù)111用八位二進制數(shù)表示為【】。

30.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組b。請?zhí)羁铡?/p>

#include<stdioh>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

for(i;0;i<9;i++)

{if(i%4==0)primf("\n");

printf("%3d",b[i];

}

}

31.以下程序的運行結果是______。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%51d\n",k);}

32.若有以下程序

intf(intx,inty)

{return(y-x)*x;}

main()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

ptintf("%d\n",D);

執(zhí)行后輸出結果是______。

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

chara=3;printf("%d,%o,%x,%u\n",a,a,a,a);

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

#include<stdio,h>fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

inti,a=5;

for(i=0;i<3;i++)prinff("%d%d",i,fun(a));

printf("\n");

}

35.若從鍵盤輸入58,則以下程序輸出的結果是______。

main{)

{inta;

scanf("%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

}

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

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

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

main()

{intp[7]{11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

38.將代數(shù)式轉換成程序設計中的表達式為【】。

39.匯編程序和編譯程序翻譯的目標程序需經【】連接成可執(zhí)行的程序。

40.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)

while(s[i])(d[j]=【】;j++;}

d[j]=0;

三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dar","w+");for(i=1;i<6;i++){fprintf(fp,"%d",i);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運行后的輸出結果是()。

A.00B.12345C.14D.12

42.設有定義語句:charc1=92,c2=92;,則以下表達式中值為零的是()。

A.c1c2

B.c1&c2C.~c2D.c1|c2

43.若int類型數(shù)據占兩個字節(jié),則下列語句intk=-1;printf("%d,%u\n",k,k);的輸出為()

A.-1,-1B.-132,767C.-132,768D.-165,535

44.______是構成C語言程序的基本單位。

A.函數(shù)B.過程C.子程序D.子例程

45.數(shù)據庫設計包括兩個方面的設計內容,它們是()

A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計

46.下列有關數(shù)據庫的描述,正確的是

A.數(shù)據處理是將信息轉化為數(shù)據的過程

B.數(shù)據的物理獨立性是指當數(shù)據的邏輯結構改變時,數(shù)據的存儲結構不變

C.關系中的每一列稱為元組,一個元組就是一個字段

D.如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵宇,則稱其為本關系的外關鍵字

47.下列字符串是用戶自定義標識符的是______。

A._w1B.3_xyC.intD.LINE-3

48.下面程序段中的循環(huán)體的執(zhí)行次數(shù)是()。for(i=4;i<0;i--)for(j=1;j<=4;j++)sum=sum+j;

A.4B.0C.12D.16

49.有以下程序:main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后的輸出結果是______。

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

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

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

51.以下敘述中,正確的是______。

A.do…while語句構成的循環(huán)不能用其他語句構成的循環(huán)來代替

B.do…while語句構成的循環(huán)只能用break語句退出

C.用do…while語句構成的循環(huán),在while后的表達式為非零時結束循環(huán)

D.用do…while語句構成的循環(huán),在while后的表達式為零時結束循環(huán)

52.設有定義:charp[]={'1','2','3'},*q=p;,以下不能計算出一個char型數(shù)據所占字節(jié)數(shù)的表達式是

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

53.數(shù)據結構中,與所使用的計算機無關的是數(shù)據的()

A.存儲結構B.物理結構C.邏輯結構D.線性結構

54.有以下程序:#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}程序的輸出結果是()。

A.13B.14C.208D.209

55.閱讀下列程序段,則程序的輸出結果為#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}

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

56.有如下程序段:inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為()。

A.tureB.假C.0D.1

57.fgetc函數(shù)的作用是從指定文件讀入—個字符,該文件的打開方式必須是______。

A.只讀B.追加C.讀或讀寫D.以上均正確

58.在長度為64的有序線性表中進行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7

59.有以下程序structs{intx,y;}data[2]={10,100,20,200};main()structs*p=data;printf("%d\n",++(p->x));程序運行后的輸出結果是

A.10B.11C.20D.21

60.若有如下程序段:structstudent{intnum;floatscore;}stu[3]={{10,85},{60,58},{32,23}};main(){structstudent*t;t=stu;}則下面表達式中值為58的是()。

A.(*t).numB.*(t++)->numC.(*++t)scoreD.(++t)->score

四、選擇題(20題)61.以下選項中,能用作數(shù)據常量的是()。

A.115LB.0118C.1.5elD.0115

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

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

63.

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

#include<stdio.h>

#defineS(X)X*X

voidmain

{inta=9,k=3,m=2;

a/=S(k+m)/S(k+m):

printf("%d",a);

}

A.1B.4C.9D.0

64.設A為存放(短)整型的一維數(shù)組,如果A的首地址為P,那么A中第i個元素的地址為()。

A.P+i*2B.P+(i-1)*2C.P+(i-1)D.P+i

65.以下不能正確表示代數(shù)式4cd/ab的C語言表達式縣().

A.4*c*d/a/bB.c*d/a/b*4C.c/a/b*d*4D.4*c*d/a*b

66.有以下程序

67.

68.表達式'5'-'1'的值是()。A.A.整數(shù)4B.字符4C.表達式不合法D.字符6

69.軟件生命周期是指()。A.軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程

B.軟件從需求分析、設計、實現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運行維護過程

70.假定X和Y為double型,則表達式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

71.(38)索引屬于()

A.模式

B.內模式

C.外模式

D.概念模式

72.軟件生命周期可分為定義階段、開發(fā)階段和維護階段。詳細設計屬于()。

A.定義階段B.開發(fā)階段C.維護階段D.上述三個階段

73.

74.有以下程序:

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

A.6,4,3,2,1

B.6,5,4,3,2

C.5,4,3,2,1

D.10,4,3,2,l

75.讀取二進制文件的函數(shù)調用形式為:fread(buffer,size,Count,fp);,其中buffed

代表的是()。

A.一個內存塊的首地址,代表讀入數(shù)據存放的地址

B.一個整型變量,代表待讀取的數(shù)據的字節(jié)數(shù)

C.一個文件指針,指向待讀取的文件

D.一個內存塊的字節(jié)數(shù)

76.

有以下程序:

#include<stdio.h>

main

{intx=4,y;

do

{y=x;

if(!y)printf("x");

else

printf("y"):

x--;

}while(x);

}

程序的輸出結果是()。

A.xyyxB.yyyyC.yyxxD.yxyx

77.以下選項中敘述錯誤的是()。

A.C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調用一次函數(shù),賦一次初值

B.在同一函數(shù)中,各復合語句內可以定義變量,其作用域僅限本復合語句內

C.C程序函數(shù)中定義的自動變量,系統(tǒng)不自動賦確定的初值

D.C程序函數(shù)的性能不可以說明為static型變量

78.若有定義語句:

79.若以下選項中的變量已正確定義,則正確的賦值語句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

80.軟件開發(fā)中需求分析的主要任務是()。

A.定義和描述目標系統(tǒng)“做什么”B.獲取需求C.給出軟件解決方案D.需求評審

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫字母F。

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

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

試題程序:

#include<stdio.h>

voidproc(char*str)

{

inti,j;

//****found****

for(i=j=0;str[i]一0;i++)

if(str[i]!=F)

//****found****

str[i]=str[i];

str[j]=\0;

}

voidmain

{

charstr[80];

printf("\nEnterastring:");

gets(str);

printf("Theoriginalstring:");

puts(str);

proc(str);

printf("Thestringafterdeleted:");

puts(str);

printf("\n\n");}

六、程序設計題(1題)82.請編寫函數(shù)proc(),它的功能是計算:s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5在C語言中可調用log(n)函數(shù)求1n(n)。例如,若n1的值為30,則proc()函數(shù)值為8.640500。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D解析:所謂的交換類排序方法是指借助數(shù)據元素之間的互相交換進行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。

2.A當x為1時,執(zhí)行case1,a自加等于1,因為case1后沒有break,接著執(zhí)行case2,此時a的值為2,b自加為1,故選擇A選項。

3.D程序中S1和S2都是宏定義。S1(a+b)宏展開后的表達式為4*a+b+4*(a+b),即4*1+2+4*(1+2),結果為18;S2(a,b)宏展開后的表達式為4*(a)*(b)+b*a,即4*(1)*(2)+2*1,結果為10;S1(3)宏展開后的表達式為4*3+4*(3),結果為24;32(3+a,b+3)宏展開后的表達式為4*(3+a)*(b+3)+b+3*3+a,即4*(3+1)*(2+3)+2+3*3+1,結果為92。最終輸出:18,34,92。故本題答案為D選項。

4.B

5.B

6.CC語言中沒有規(guī)定“if(表達式)語句”中的“表達式”的形式,其可以是任意合法的表達式。故本題答案為C選項。

7.D在C語言中,當表達式成立時用l表示,不成立時用0表示,即x=(a&&b)&&(c<'B')=(14&&15)&&('A'<'B')=1&&1=1,故選擇D選項。

8.A

9.C解析:格式字符x或x是以十六進制無符號形式輸出整型數(shù)(不帶前導0x或OX)。對于x用abc輸出,X用ABC輸出。

10.D

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

12.Ct=++x或++y,當++x不為0的時候,即++x為真,則不需要再繼續(xù)判斷++y,那么y就不再執(zhí)行自加,因此y=3.

13.A

14.B該函數(shù)用于數(shù)據類型和變量。注意:sizeof操作符不能用于函數(shù)、不完全類型或位字段。不完全類型指具有未知存儲大小的數(shù)據類型,如未知存儲大小的數(shù)組類型、void類型等。

15.A通常,將軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生命周期。

16.C

17.A

18.D

19.D

20.A根據題意,當s=1時,輸出65;當s=2時,輸出6;當S=3時,則輸出64;當S=4時,輸出5;當s=5時,輸出6;當s=0時,程序直接退出。所以最后答案為6566456,A選項正確。

21.投影投影解析:在關系運算中,投影運算是在給定關系的某些域上進行的運算。

22.更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個或多個屬性值。UPDATE短語之后指定更新數(shù)據所屬的表,將新的屬性值或表達式賦值給對應的屬性名(SET單價=單價*1.05),并置于SET短語之后。要求對人民郵電出版社的圖書漲5%,需要用WHERE短語對元組進行限制,即對符合條件的元組進行更新。\r\n\r\n

23.類類解析:在面向對象方法中,類描述的是具有相似屬性與操作的一組對象。

24.軟件工具軟件工具解析:軟件開發(fā)環(huán)境是各類軟件開發(fā)工具的集合體。

25.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關系,年號能被400整除即y%400==0,與前兩項是或的關系。

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.goodmorninggoodmorning解析:子函數(shù)fun(chars[])的作用是將字符數(shù)組s中除去字母以外的所有其他字符都去掉,然后將字母仍按原來的順序存在數(shù)組s中。在主函數(shù)中調用fun(ss),是將“goodmorning”中所有的非字母去掉,在這里就是去掉空格,然后輸出ss。

28.程序調試程序調試解析:程序調試的任務是診斷和改正程序中的錯誤。程序調試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調試主要在開發(fā)階段。

29.11011111101111解析:本題通過除2取余法即可求出十進制數(shù)111所對應的二進制數(shù)1101111。

30.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i]小即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。

31.k=5k=5解析:本題主要考查了函數(shù)的遞歸調用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結果。

32.99解析:在主函數(shù)中函數(shù)f(f(3,4),f(3,5))的返回值賦給d。函數(shù)的第一個參數(shù)為f(3,4)的返回值,函數(shù)f(9,4)返回值為(4-3)*3=3,f(3,5)返回值為(5-3)*3=6,那么函數(shù)f(f(3,4),f(3,5))等價于函數(shù)f(3,6)其返回值為(6-3)*3=9。因此d被賦值為9;所以輸出9。

33.31371f3131,37,1f,31解析:此題考查了printf函數(shù)的格式字符,題中d是以十進制形式輸出,o是以八進制形式輸出,x是以十六進制形式輸出,u以不帶符號的十進制數(shù)輸出。

34.1011121210111212解析:用static關鍵字聲明的變量稱為靜態(tài)局部變量。靜態(tài)局部變量只在編譯時賦一次初值,以后再次調用函數(shù)時不再重新賦初值,而是保留上次函數(shù)調用結束時的值。程序中的變量c為靜態(tài)變量,當再次調用fun函數(shù)時,變量c不再被賦初值,變量c的值為上次調用fun函數(shù)時所保留下來的值,具體在程序運行過程中的體現(xiàn)如下:

當i=0時,第一次調用fun(5),這時a=5,b=0,c=3,執(zhí)行b++,c++,得到b=1,c=4,則a+b+c=10,返回主函數(shù)輸出010;當i=1時,第二次調用fun(5),這時a=5,b=0,c=4,執(zhí)行b++,c++,得到b=1,c=5,則a+b+c=11,返回主函數(shù)輸出111;當i=2時,第三次調用fun(5),這時a=5,b=0,c=5,執(zhí)行b++,c++,得到b=1,c=6,則a+b+c=12,返回主函數(shù)輸出212;當i=3時,循環(huán)結束,所以輸出結果為:010111212。

35.585858585858解析:在程序中,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個if語句,因為,a=58>50,執(zhí)行第一個訂語句后面的輸出語句,輸出58;接著執(zhí)行第二個if語句,因為,a=58>4O,執(zhí)行第二個if語句后面的輸出語句,輸出58;接著執(zhí)行第三個if語句,因為,a=58>30,執(zhí)行第三個if語句后面的輸出語句,輸出58,所以最后的輸出為585858。

36.86518651解析:主程序中,第一次循環(huán)時,i=0,調用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調用sb(s,x)子函數(shù),因為將n定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序實際上是將數(shù)組s逆序輸出。

37.2424解析:本題主函數(shù)中首先定義了一個長度為7的數(shù)組,然后用一個while循環(huán)引用數(shù)組的元素,當i大于7或者p[i]為偶數(shù)時,循環(huán)結束。顯然當i=2時,p[2]=14為偶數(shù)時,循環(huán)結束,此時j的值為j=p[0]+p[1]=24。

38.SQRT(x2+y2)/(a+b)

39.裝配程序裝配程序

40.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素.本題應使用i的自增后置來實現(xiàn)。

41.D解析:程序首先定義了一個文件指針fp,并使用fopen()函數(shù)以“w+”方式新建一個可讀寫文件“data.dat”。然后使用一個for循環(huán),循環(huán)變量i從1遞增到5,在循環(huán)體中每次寫入循環(huán)變量i的值和4個空格,當i能被3整除的時候寫入一個換行符。所以循環(huán)結束時,文件中的內容應該為:

123

45

接下來程序使用rewind()函數(shù),將文件的讀寫指針調回起始位置。并調用fscanf()函數(shù)從文件中讀取兩個整數(shù)到變量k和n。所以最終輸出應該為:12。故本題選D。

42.A解析:選項A為異或運算符,如果參加運算的兩個位相同,結果為0,否則為1。顯然選項A中參加運算的c1和c2相同,故其值為0。選項B為位與運算,如果參加運算的兩位都為1,則結果為1,否則結果為0,選項B中參加運算的c1和c2都為真,所以該結果為1。選項C為取反運算,用來對一個二進制取反,顯然c2取反后不為0,選項D為位或運算,參加運算的兩位只要有一個為1,那么運算結果為1,顯然參加運算的c1和c2都不為0,故運算結果不為0。所以,4個選項中選項A符合題意。

43.D

44.A解析:C程序是由函數(shù)構成的?!獋€C源程序至少包含—個main函數(shù),也可以包含—個main函數(shù)和若干個其他函數(shù),因此,函數(shù)是C程序的基本單位。

45.A解析:模式設計和內模式設計是概念設計的兩種方法。物理設計是根據特定的計算機系統(tǒng),對數(shù)據的存儲結構和存取方法進行設計,從而實現(xiàn)從邏輯結構到物理結構的轉換。從系統(tǒng)開發(fā)的角度來看,結構特性設計和行為特性-設計是數(shù)據庫應用系統(tǒng)所具有的兩個特性。結構特性的設計,設計各級數(shù)據庫模式(靜態(tài)特性):行為特性的設計,改變實體及其特性,決定數(shù)據庫系統(tǒng)的功能(動態(tài)特性)。

46.D解析:數(shù)據處理是指將數(shù)據轉換成信息的過程,故選項A)敘述錯誤;數(shù)據的物理獨立性是指數(shù)據的物理結構的改變,不會影響數(shù)據庫的邏輯結構,故選項B)敘述錯誤;關系中的行稱為元組,對應存儲文件中的記錄,關系中的列稱為屬性,對應存儲文件中的字段,故選項C)敘述錯誤。

47.A解析:標識符是由字母或下劃線打頭,由字母、數(shù)字、下劃線組成的字符串,包括關鍵字、編譯預處理命令和用戶自定義標識符3種,選項B、D不是合法的標識符,選項C是關鍵字。

48.B解析:本題是一個雙重循環(huán),而外循環(huán)的循環(huán)條件i<O在剛開始的時候就不滿足(i的初值為4),所以循環(huán)體一次也不會執(zhí)行。故應該選擇B。

49.C解析:本題考查“邏輯或”運算的特例。本題中if語句的條件表達式為(j++||k++)&&i++,首先計算表達式(j++||k++)的值,++運算符位于右側,因此先取j、k當前值進行運算,因j=1,所以表達式(j++||k++)的值為真,k++表達式不再執(zhí)行,故執(zhí)行完表達式(j++||k++)&&i++后,j=2、k=2、i=2。

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

51.D

52.A解析:在本題中,p和q同為指向字符類型數(shù)據的指針。*q和p[0]同為字符型數(shù)據。選項B)、C)和D)都符合題目的要求;選項A)計算得出的是指針類型數(shù)據所占的內存字節(jié)數(shù)。

53.Cc)【解析】數(shù)據的邏輯結構反映的是數(shù)據元素之間的邏輯關系,與使用的計算機無關。

54.A解析:本題中,首先定義了一個共用體pw,其中有兩個域:整型變量i和字符數(shù)組ch,因為共用體中的域是共享內存空間的,又數(shù)組的元素有低到高存儲:ch[0]在低字節(jié),ch[1]在高字節(jié)。整型變量i占兩個字節(jié),高位與ch[1]共用存儲空間,低位與ch[0]共用存儲空間,而高位ch[1]的值為0,所以輸出的成員變量i的值就是ch[0]的值13。

55.A解析:帶參數(shù)的宏定義命令行形式如下:#define宏名(形參表)替換文本。首先進行M的宏替換,之后再進行N的宏替換,替換后的表達式為(a)*(b)/(C)。

56.D解析:本題考查邏輯與運算符的用法,在表達式x=(a&&b)&&(c<'B')中,先判斷a&&b,邏輯與條件的兩邊都為真,而c<'B'是成立的,所以該表達式的值為1。

57.D解析:fgetc函數(shù)是指從指定的文件讀入—個字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調用形式為:ch=fgetc(fp);。

58.B解析:在長度為64的有序線性表中,其中的64個數(shù)據元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進行順序查找,最壞的情況就是查找的數(shù)據元素不性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據和線性表的第一個數(shù)據元素進行比較,若相等,則查找成功,否則,繼續(xù)進行比較,即和線性表的第二個數(shù)據元素進行比較。同樣,若相等,則查找成功,否則,繼續(xù)進行比較。依次類推,直到性表中查找到該數(shù)據或查找到線性表的最后一個元素,算法才結束。因此,在長度為64的有序線性表十進行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為選項B。

59.B解析:本題中定義了一個結構體數(shù)組data[2]并初始化,主函數(shù)中定義了一個結構體類型指針變量并讓它指向data的首地址,由于p指向第一個元素的地址,所以p->x相當于data[0].x即為10,所以++(p->x)后的值為11.所以,4個選項中選項B符合題意。

60.D解析:本題是以結構體指針的方式防問結構體數(shù)組中的元素。main()函數(shù)之前聲明了一個結構體,并在聲明同時定義了一個全局結構體數(shù)組stu[3]。主函數(shù)中,第一行定義了一個該結構體的指針t,然后讓t指向stu,即t指向的是數(shù)組stu的第一個元素。選項A提取的是數(shù)組第一個元素的num成員,值為10,不符合題意。選項B使用了一個后綴自增運算符,使t指向第二個元素,但t++表達式返回的還是第一個元素的指針,故結果與選項A相同,不符合題意,選項C語法錯誤編譯不會通過。故應該選擇D。

61.A

62.A按照從鍵盤輸入的數(shù)據可以判斷字符1賦給了變量a,字符2賦給了變量b,字符<cR>即回車賦給了變量e,字符3賦給了變量d。因此打印輸出的結果為選項A)。

63.D

\n本題主要考查帶參數(shù)的宏定義,過程如下:由于定義為define(x)x*x沒有括號優(yōu)先級,所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

\n

64.B

65.Dc語言中算術運算符的結合性均為自左向右。選項D中表達式計算結果是4cdb/a,和題目要求的代數(shù)式不一致,因此選項D不能正確表示題目所給代數(shù)式的內容。

66.A第一次循環(huán)i值為3,j值分別為l和2,所以輸出為4和5;第二次循環(huán)i值為2,j值分別為l和2,所以輸出為3和4;第三次循環(huán)i值為l,j值分別為l和2,所以輸出為2和3,答案選擇A)。

67.C

68.A在c語言中,字符都是變?yōu)槠鋵腁SCII碼值來參加算術運算的,但字符間的相對位置關系還是不變的,字符5和字符1的ASCII碼值相差仍是4。

69.A通常,將軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生命周期。

70.D本題考查C語言中變量類型的轉換。

C語言中若參與運算的變量的數(shù)據類型不同,則先轉換成同一類型,然后進行運算。轉換數(shù)據始終往長度增加的方向進行,以確保精確度,如int和long運算,則將int轉換為long再運算,所有的浮點運算都是以雙精度(double)進行的。

題目中x、y都為double型數(shù)據,而表達式3/2為兩個整型變量之間的計算,計算結果只保留整數(shù)部分,小數(shù)部分省略掉。3/2的結果為1。后面變?yōu)橛嬎銀=x+1,這時都需要變?yōu)閐ouble型數(shù)據,結果為3.000000。

71.B

72.B解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護三個階段組成。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)階段由5個階段組成:概要設計、詳細設計、編寫代碼、組裝測試和確認測試。軟件維護時期的主要任務是使軟件持久地滿足用戶的需要。選項B正確。

73.B

74.D表達式(*q)++先取出q所指對象的值,再對該值遞增,計算中q的值不變。所以f函數(shù)的功能是將指針q所指的數(shù)加5。函數(shù)調用f(a);相當于將數(shù)組a的第一個元素加5,操作后a[5]={10,4,3,2,1}。

75.Afread(void*buffer,sizet_size,sizet__count,F(xiàn)ILE*stream);功能是從一個文件流中讀數(shù)據,讀取countl"元素,每個元素disize個字節(jié),如果調用成功返回count。buffer:用于接收數(shù)據的內存地址,大小至少是size*count個字節(jié);size:單個元素的大小,單位是字節(jié);count:元素的個數(shù),每個元素占size個字節(jié);streaili:輸入流。故本題答案為A)。

76.C

\n本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結束循環(huán)。所以B正確。

\n

77.A靜態(tài)變量不是每調用一次就賦一次初值,而是將需要定義許多相同的具有相同屬性的值時,使用靜態(tài)變量來節(jié)省空間,所以A選項錯誤。

78.A++優(yōu)先級高于*,*p++值為year下一個變量的值(如果有的話),不能滿足題意,所以選擇A)

79.C解析:賦值的一般形式為:變量名:表達式;,賦值的方向為由右向左,即將:右側表達式的值賦給:左側的變量,執(zhí)行步驟是先計算再賦值。選項A中運算符%的運算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。

80.A需求分析階段的工作可以分為4個方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求的過程,是描述“做什么”的軟件開發(fā)階段。故選A選項。

81.(1)錯誤:for(i=j=0;str[i]!=0;i++)

\n正確:for(i=j=0;str[i]!=\0;i++)

\n(2)錯誤:str[j]=str[i];

\n正確:str[i++]=str[i];

\n【解析】根據題目中的要求,從字符串str中刪除所有大寫字母F,需要檢查字符串str中的每一個字符,直到字符串結束,因此,“for(i=j=0;str[i]!=0;i++)”應改為“for(i=J=0;str[i]!=0;i++)”;將每一個不是F的字符放入原來的字符串中,形成新的字符串,因此,“str[j]=str[i];”應改為“str[j++]=str[i];”。

\n

82.

【解析】由題目中所給表達式可知,表達式的值為m項表達式的和然后開平方??梢允紫韧ㄟ^m次循環(huán)求得m項表達式的和,然后將其和開平方并返回到主函數(shù)當中。

2021年遼寧省錦州市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.簡單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

2.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

3.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序運行后的輸出結果是()。

A.18,34,100B.24,34,92C.24,34,100D.18,34,92

4.以下敘述中,不正確的是()。

A.使用staticfloata定義的外部變量存放在內存中的靜態(tài)存儲區(qū)

B.使用floatb定義的外部變量存放在內存中的動態(tài)存儲區(qū)

C.使用staticfloatc定義的內部變量存放在內存中的靜態(tài)存儲區(qū)

D.使用floatd定義的內部變量存放在內存中的動態(tài)存儲區(qū)

5.有以下程序

#include<stdio.h>

intfun(intx,inty)

{if(x==y)return(x);

elsereturn((x+y)/2);

}

main()

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

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

}

程序運行后的輸出結果是A.3B.6C.8D.12

6.對于“if(表達式)語句”,以下敘述正確的是()。

A.“表達式”不能是變量

B.“表達式”的值只能是整數(shù)值

C.“表達式”可以是常量

D.“表達式”中不可以出現(xiàn)字符型變量的比較

7.有如下程序段:

inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B'):

執(zhí)行該程序后,x的值為()。A.A.trueB.falseC.0D.1

8.對于移動平均算法,是計算某變量之前n個數(shù)值的算術平均,正確的說法是()

A.空間復雜度是O(1)B.空間復雜度是O(n)C.空間復雜度是O(logn)D.空間復雜度是O(nlogn)

9.若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);執(zhí)行后輸出結果是A.0X0B.0x0C.0D.0XABC

10.

11.下列程序的輸出結果是()。#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

12.設x,y,t均為int型變量,執(zhí)行語句:

x=y=3;

t=++x||++y;

完成后,y的值為A.A.不確定B.4C.3D.1

13.

14.sizeof(float)是()。A.一個雙精度型表達式B.一個整型表達式C.一種函數(shù)調用D.一個不合法的表達式

15.軟件生命周期是指()。A.軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程

B.軟件從需求分析、設計、實現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運行維護過程

16.已知一個有序表為(15,19,30,33,49,50,65,88,93,126,164),當二分查找值為126的元素時,檢索成功需進行的比較次數(shù)為()。

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

17.下列有關圖的遍歷說法中,不正確的是()

A.圖的遍歷必須用遞歸實現(xiàn)

B.基本遍歷算法兩種:深度遍歷和廣度遍歷

C.有向圖和無向圖都可以進行遍歷操作

D.圖的遍歷算法可以執(zhí)行在有回路的圖上

18.

19.

20.有以下程序:#include<stdio.h>,main(){intS;scanf("%d",&s);while(s>O){switch(s){casel:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:("%d",s+1);break;}scanf("%d",&s);}}運行時,若輸入123450<回車>,由輸出結果是()。A.6566456B.66656C.66666D.6666656

二、2.填空題(20題)21.在關系運算中,【】運算是在給定關系的某些域上進行的運算。

22.對于圖書管理數(shù)據庫,將圖書表中“人民郵電出版社”的圖書的單價漲價5%。請對下面的SQL語句填空:UPDATE圖書______WHERE出版單位="人民郵電出版社"

23.在面向對象方法中,【】描述的是具有相似屬性與操作的一組對象。

24.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的______的集合。

25.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。

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.已知函數(shù)isaplha(ch)的功能是判斷變量ch是否是字母,若是,則該數(shù)值為1,否則為0。下面程序執(zhí)行后的輸出結果是()。

#include<ctype.h>

#include<string.h>

voidfun(chars[])

{inti,j;

for(i=0,j=0;s[i];i++)

s[j]='\0';

}

main()

{charss[80]="goodmorning";

fun(ss);

printf("%s",ss);

}

28.診斷和改正程序中錯誤的工作通常稱為【】。

29.十進制數(shù)111用八位二進制數(shù)表示為【】。

30.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組b。請?zhí)羁铡?/p>

#include<stdioh>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

for(i;0;i<9;i++)

{if(i%4==0)primf("\n");

printf("%3d",b[i];

}

}

31.以下程序的運行結果是______。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%51d\n",k);}

32.若有以下程序

intf(intx,inty)

{return(y-x)*x;}

main()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

ptintf("%d\n",D);

執(zhí)行后輸出結果是______。

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

chara=3;printf("%d,%o,%x,%u\n",a,a,a,a);

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

#include<stdio,h>fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

inti,a=5;

for(i=0;i<3;i++)prinff("%d%d",i,fun(a));

printf("\n");

}

35.若從鍵盤輸入58,則以下程序輸出的結果是______。

main{)

{inta;

scanf("%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

}

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

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

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

main()

{intp[7]{11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

38.將代數(shù)式轉換成程序設計中的表達式為【】。

39.匯編程序和編譯程序翻譯的目標程序需經【】連接成可執(zhí)行的程序。

40.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)

while(s[i])(d[j]=【】;j++;}

d[j]=0;

三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dar","w+");for(i=1;i<6;i++){fprintf(fp,"%d",i);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運行后的輸出結果是()。

A.00B.12345C.14D.12

42.設有定義語句:charc1=92,c2=92;,則以下表達式中值為零的是()。

A.c1c2

B.c1&c2C.~c2D.c1|c2

43.若int類型數(shù)據占兩個字節(jié),則下列語句intk=-1;printf("%d,%u\n",k,k);的輸出為()

A.-1,-1B.-132,767C.-132,768D.-165,535

44.______是構成C語言程序的基本單位。

A.函數(shù)B.過程C.子程序D.子例程

45.數(shù)據庫設計包括兩個方面的設計內容,它們是()

A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計

46.下列有關數(shù)據庫的描述,正確的是

A.數(shù)據處理是將信息轉化為數(shù)據的過程

B.數(shù)據的物理獨立性是指當數(shù)據的邏輯結構改變時,數(shù)據的存儲結構不變

C.關系中的每一列稱為元組,一個元組就是一個字段

D.如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵宇,則稱其為本關系的外關鍵字

47.下列字符串是用戶自定義標識符的是______。

A._w1B.3_xyC.intD.LINE-3

48.下面程序段中的循環(huán)體的執(zhí)行次數(shù)是()。for(i=4;i<0;i--)for(j=1;j<=4;j++)sum=sum+j;

A.4B.0C.12D.16

49.有以下程序:main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后的輸出結果是______。

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

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

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

51.以下敘述中,正確的是______。

A.do…while語句構成的循環(huán)不能用其他語句構成的循環(huán)來代替

B.do…while語句構成的循環(huán)只能用break語句退出

C.用do…while語句構成的循環(huán),在while后的表達式為非零時結束循環(huán)

D.用do…while語句構成的循環(huán),在while后的表達式為零時結束循環(huán)

52.設有定義:charp[]={'1','2','3'},*q=p;,以下不能計算出一個char型數(shù)據所占字節(jié)數(shù)的表達式是

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

53.數(shù)據結構中,與所使用的計算機無關的是數(shù)據的()

A.存儲結構B.物理結構C.邏輯結構D.線性結構

54.有以下程序:#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}程序的輸出結果是()。

A.13B.14C.208D.209

55.閱讀下列程序段,則程序的輸出結果為#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}

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

56.有如下程序段:inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為()。

A.tureB.假C.0D.1

57.fgetc函數(shù)的作用是從指定文件讀入—個字符,該文件的打開方式必須是______。

A.只讀B.追加C.讀或讀寫D.以上均正確

58.在長度為64的有序線性表中進行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7

59.有以下程序structs{intx,y;}data[2]={10,100,20,200};main()structs*p=data;printf("%d\n",++(p->x));程序運行后的輸出結果是

A.10B.11C.20D.21

60.若有如下程序段:structstudent{intnum;floatscore;}stu[3]={{10,85},{60,58},{32,23}};main(){structstudent*t;t=stu;}則下面表達式中值為58的是()。

A.(*t).numB.*(t++)->numC.(*++t)scoreD.(++t)->score

四、選擇題(20題)61.以下選項中,能用作數(shù)據常量的是()。

A.115LB.0118C.1.5elD.0115

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

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

63.

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

#include<stdio.h>

#defineS(X)X*X

voidmain

{inta=9,k=3,m=2;

a/=S(k+m)/S(k+m):

printf("%d",a);

}

A.1B.4C.9D.0

64.設A為存放(短)整型的一維數(shù)組,如果A的首地址為P,那么A中第i個元素的地址為()。

A.P+i*2B.P+(i-1)*2C.P+(i-1)D.P+i

65.以下不能正確表示代數(shù)式4cd/ab的C語言表達式縣().

A.4*c*d/a/bB.c*d/a/b*4C.c/a/b*d*4D.4*c*d/a*b

66.有以下程序

67.

68.表達式'5'-'1'的值是()。A.A.整數(shù)4B.字符4C.表達式不合法D.字符6

69.軟件生命周期是指()。A.軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程

B.軟件從需求分析、設計、實現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運行維護過程

70.假定X和Y為double型,則表達式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

71.(38)索引屬于()

A.模式

B.內模式

C.外模式

D.概念模式

72.軟件生命周期可分為定義階段、開發(fā)階段和維護階段。詳細設計屬于()。

A.定義階段B.開發(fā)階段C.維護階段D.上述三個階段

73.

74.有以下程序:

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

A.6,4,3,2,1

B.6,5,4,3,2

C.5,4,3,2,1

D.10,4,3,2,l

75.讀取二進制文件的函數(shù)調用形式為:fread(buffer,size,Count,fp);,其中buffed

代表的是()。

A.一個內存塊的首地址,代表讀入數(shù)據存放的地址

B.一個整型變量,代表待讀取的數(shù)據的字節(jié)數(shù)

C.一個文件指針,指向待讀取的文件

D.一個內存塊的字節(jié)數(shù)

76.

有以下程序:

#include<stdio.h>

main

{intx=4,y;

do

{y=x;

if(!y)printf("x");

else

printf("y"):

x--;

}while(x);

}

程序的輸出結果是()。

A.xyyxB.yyyyC.yyxxD.yxyx

77.以下選項中敘述錯誤的是()。

A.C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調用一次函數(shù),賦一次初值

B.在同一函數(shù)中,各復合語句內可以定義變量,其作用域僅限本復合語句內

C.C程序函數(shù)中定義的自動變量,系統(tǒng)不自動賦確定的初值

D.C程序函數(shù)的性能不可以說明為static型變量

78.若有定義語句:

79.若以下選項中的變量已正確定義,則正確的賦值語句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

80.軟件開發(fā)中需求分析的主要任務是()。

A.定義和描述目標系統(tǒng)“做什么”B.獲取需求C.給出軟件解決方案D.需求評審

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫字母F。

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

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

試題程序:

#include<stdio.h>

voidproc(char*str)

{

inti,j;

//****found****

for(i=j=0;str[i]一0;i++)

if(str[i]!=F)

//****found****

str[i]=str[i];

str[j]=\0;

}

voidmain

{

charstr[80];

printf("\nEnterastring:");

gets(str);

printf("Theoriginalstring:");

puts(str);

proc(str);

printf("Thestringafterdeleted:");

puts(str);

printf("\n\n");}

六、程序設計題(1題)82.請編寫函數(shù)proc(),它的功能是計算:s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5在C語言中可調用log(n)函數(shù)求1n(n)。例如,若n1的值為30,則proc()函數(shù)值為8.640500。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D解析:所謂的交換類排序方法是指借助數(shù)據元素之間的互相交換進行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。

2.A當x為1時,執(zhí)行case1,a自加等于1,因為case1后沒有break,接著執(zhí)行case2,此時a的值為2,b自加為1,故選擇A選項。

3.D程序中S1和S2都是宏定義。S1(a+b)宏展開后的表達式為4*a+b+4*(a+b),即4*1+2+4*(1+2),結果為18;S2(a,b)宏展開后的表達式為4*(a)*(b)+b*a,即4*(1)*(2)+2*1,結果為10;S1(3)宏展開后的表達式為4*3+4*(3),結果為24;32(3+a,b+3)宏展開后的表達式為4*(3+a)*(b+3)+b+3*3+a,即4*(3+1)*(2+3)+2+3*3+1,結果為92。最終輸出:18,34,92。故本題答案為D選項。

4.B

5.B

6.CC語言中沒有規(guī)定“if(表達式)語句”中的“表達式”的形式,其可以是任意合法的表達式。故本題答案為C選項。

7.D在C語言中,當表達式成立時用l表示,不成立時用0表示,即x=(a&&b)&&(c<'B')=(14&&15)&&('A'<'B')=1&&1=1,故選擇D選項。

8.A

9.C解析:格式字符x或x是以十六進制無符號形式輸出整型數(shù)(不帶前導0x或OX)。對于x用abc輸出,X用ABC輸出。

10.D

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

1

溫馨提示

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

評論

0/150

提交評論