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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

2022年江蘇省徐州市全國計算機等級考試C語言程序設(shè)計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.設(shè)有定義“Charp[]={‘1’,‘2’,‘3’},*q=p;”,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

2.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

3.若一組記錄的排序碼為(46,79,56,38,40,84),則利用快速排序的方法,以第一個記錄為基準得到的一次劃分結(jié)果為()

A.38,40,46,56,79,84

B.40,38,46,79,56,84

C.40,38,46,56,79,84

D.40,38,46,84,56,79

4.有下列程序:fun(intX,inty){return(x+y);)main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9

5.以下程序的輸出結(jié)果是

#include<stdio.h>

voidprt(int*x,int*y,int*z)

{printf("%d,%d,%d\n",++*x,++*y,*(z++));}

main()

{inta=10,b=40,c=20;

prt(&a,&b,&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,21

D.11,41,2112,42,22

6.排序方法中,從未排序序列中依次取出元素與已排序序列中的元素進行比較,將其放入已排序序列的正確位置上的方法,稱為()。

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

7.向一個棧頂指針為H的鏈棧中執(zhí)行出棧運算時,需執(zhí)行()。

A.p=H;H=H->link;free(p);

B.H=H->link;free(H);

C.p=H;H->link=H->link->link;free(p);

D.p=H;H=H->link;

8.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745

9.有以下程序

#include<stdio.h>

main()

{inta=1,b=0;

if(--a)b++;

elseif(a==0)b+=2;

elseb+=3:

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

}

程序運行后的輸出結(jié)果是A.A.0B.1C.2D.3

10.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()

A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計

11.

12.若有定義“inta=5,b=7;”,則表達式a%-(b%2)運算后,a的值為()。

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

13.設(shè)a和b均為double型變量,且a=5.5,b=2.5,則表達式(int)a+b/b的值是A.6.5B.6C.5.5D.6

14.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運行后,若從鍵盤輸入(從第1列開始)

123<回車>

45678<回車>

則輸出結(jié)果是A.A.1267B.1256C.1278D.1245

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

A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語言中,在調(diào)用函數(shù)時,實參和對應(yīng)形參在類型上只需賦值兼容

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

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

16.程序中已構(gòu)成如下不帶頭節(jié)點的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表節(jié)點,指針變量s總是作為指針指向鏈表的第1個節(jié)點。若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;該程序段實現(xiàn)的功能是()。

A.刪除尾節(jié)點B.使尾節(jié)點成為首節(jié)點C.刪除首節(jié)點D.使首節(jié)點成為尾節(jié)點

17.執(zhí)行下述程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0

18.

19.有如下程序:main{inta=2,b=-1.c=2;if(a<0)if(b<0)c=0;elsec++;printf("%d\n",c);}該程序的輸出結(jié)果是()。A.0B.1C.2D.3

20.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10

二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是【】。

main()

{

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

char,p1,*p2;

intk;

p1=a,p2=b;

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

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

}

22.下面程序

main()

{inti,j,m,n;

i=5;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

運行后,i,j,m,n的值分別是_______。

23.模式/內(nèi)模式映射為數(shù)據(jù)庫提供了【】數(shù)據(jù)獨立性。

24.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【】。

intb,c;floata;

scanf("%f,%d,c=%d",&a,&b,&c)

25.以下程序的運行結(jié)果是【】。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

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

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

printf("\n");}

26.以下程序段用于構(gòu)成一個簡單的單向鏈表。請?zhí)羁铡?/p>

struetSTRU

{intx,y;

floatrate;

【】p;

}a,b;

a.x=0;a.y=0;a.rate=0;a.p=&b;

b.x=0;b.y=0;b.rate=0;b.p=NULL;

27.下面程序的功能是:計算1~10之間奇數(shù)和及偶數(shù)之和。

#include<stdio.h>

main()

{inta,b,c,i;

a=c=O;

for(i=O;i<=10;i+=2)

{a+=i;

【】;

c+=b;

}

printf("偶數(shù)之和=%d\n",a);

printf("奇數(shù)之和=%d\n",c-11);

}

28.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

29.以下程序運行后的輸出結(jié)果是______。

main()

{

charm;

m='B'+32;

printf("%e\n",m);

}

30.若有如下定義:

int[]={11,24,56,19,29,39),*t=s;

則不移動指針t,且通過指針t引用數(shù)組中值為29的元素的表達式是【】。

31.下列程序的運行結(jié)果是______。

#include<stdio.h>

longfunc(intx)

{longp;

if(x==O‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

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

}

32.【】是一種信息隱蔽技術(shù),目的在于將對象的使用者和對象的設(shè)計者分開。

33.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

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

main()

{

intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

35.軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預防性維護。

36.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。

37.算法執(zhí)行過程中所需要的基本運算次數(shù)稱為算法的______。

38.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請將語句補充完整。

scanf("%d",【】);

printf("%d\n",【】);

39.軟件工程研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和【】。

40.以下程序中select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標。請?zhí)羁铡?/p>

#defineN3

#defineM3

select{inta[N][M],int*n;

{inti,j,row=l,eolum=l;

for(i=0;i<N;i++

forj=0;j<M;j++)

if(a[i][j]>a[row][colum]){row=i;colum=j:}

*n=______;

return______;

}

main()

{inta[N][M]={9,11,23.6,1,15,9,17,20},max,nj

max=select(a,&n);

printf("max=%d,line=%d\n",max.n;

}

三、1.選擇題(20題)41.設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則運算后,n的值為______。

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

42.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循______等完整性規(guī)則。

A.實體完整性和參照完整性

B.參照完整性和用戶定義的完整性

C.實體完整性和用戶定義的完整性

D.實體完整性、參照完整性和用戶定義的完整性

43.語句"printf("a\bhow\'are\'y\\\bou\n");"的輸出結(jié)果是()。

A.a\bhow\'are\'y\\bou

B.a\bhow\'are\'y\bou

C.how'are'you

D.ahow'are'y\bou

44.有以下程序:#include<stdio.h>ihtfun(ihtn,int*p){intf1,f2;if(n==1||,n==2)*p=1;else{fun(n-1,&f1);fun(n-2,&f2);*p=f1+f2;}}main(){ints;fun(3,&s);printf("%d\n",s);}程序的運行結(jié)果是______。

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

45.有以下程序:#include<stdio.h>main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);prinff("%d\n",s);

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

46.關(guān)于下面的程序,正確的說法是()。inta,i=1;while(i<=0){scanf("%d",&a);i++;if(a>1)continue;printf("%d",a);}

A.當a>1時什么也不輸出B.將輸出1個正整數(shù)C.當a<=1時整個循環(huán)結(jié)束D.運行后無任何結(jié)果

47.下列二維數(shù)組初始化語句中,不正確的是()。

A.intb[][2]={1,2,3,4,5,6,7};

B.intb[3][5]={0,0,0};

C.intb[][4]={{1,2},{3,4,5),{6}};

D.intb[3][2]={(1,2),(3,4),(5,6)};

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

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

49.下列描述正確的是()。

A.C語句能嵌套定義函數(shù),但不可以嵌套調(diào)用函數(shù)

B.C語句不能嵌套定義函數(shù),也不可以嵌套調(diào)用函數(shù)

C.C語句能嵌套定義函數(shù),也可以嵌套調(diào)用函數(shù)

D.C語句不能嵌套定義函數(shù),但可以嵌套調(diào)用函數(shù)

50.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項中正確的賦值語句是()。

A.p=1;B.*q=2;C.q=p;D.*p=5;

51.若a是noat型變量,b是unsigned型變量,以下輸入語句中,合法的是______。

A.scanf("%6.2f%d",&a,&b);

B.scanf("%f%n",&a,&b);

C.scaaf("%f%3o",&a,&b);

D.scanf("%f%f",&a,&b);

52.表達式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8

53.若有語句:char*line[5];以下敘述中正確的是()。

A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量

B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組

C.定義line是一個指針數(shù)組,語句中的.號稱為求地址運算符

D.定義line是一個指向字符型函數(shù)的指針

54.下列不屬于軟件工程三要素的是

A.工具B.過程C.方法D.環(huán)境

55.有定義語句:"inta=1,b=2,c=3,x;",則以下選項中各程序段執(zhí)行后,x的值不為3

A.if(c<a)x=1;elseif(b<a)x=2:elsex=3;

B.if(a<3)x=3:elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<l)x=1;

D.if(a<b)x=b;if(b<c)x=cif(c<a)x=a;

56.有以下程序main(){inta=15,b=21,m=0;switCh(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf("%d\n",m);程序運行后的輸出結(jié)果是

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

57.若有說明inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是______。

A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

58.下面不屬于軟件設(shè)計原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

59.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,41

D.11,41,2112,42,22

60.表達式0x130x17的值是()。

A.0x04B.0x13C.0xE8D.0x17

四、選擇題(20題)61.

62.有以下程序:

程序的運行結(jié)果是()。

A.10,1B.20,1C.10,2D.20,2

63.有以下程序段:

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

A.以上的說明形式非法

B.NODE是一個結(jié)構(gòu)體類型

C.OLD是一個結(jié)構(gòu)體類型

D.OLD是一個結(jié)構(gòu)體變量

64.若變量已正確定義并賦值,下面符合C語言要求的表達式是

A.a(chǎn):=b+1B.a(chǎn)=b=c+2C.int18.5%3D.a(chǎn)=a+7=c+b

65.

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

main

{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7)

if(p[i]%2)j+=p[i];

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

}

A.42B.45C.56D.60

66.

有以下程序:

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main

{char*s1="abe",*s2="123":

swap(s1,s2);

printf("%s,%s\n",s1,s2);

}

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

A.123,abeB.abc.123C.1bc,a23D.321,cba

67.

68.以下選項中關(guān)于C語言常量的敘述錯誤的是()。

A.經(jīng)常被陡用的變量可以定義成常量

B.常量分為整型常量、實型常量、字符常量和字符串常量

C.常量可分為數(shù)值型常量和非數(shù)值型常量

D.所謂常量,是指在程序運行過程中,其值不能被改變的量

69.

70.軟件工程出現(xiàn)的原因是

A.程序設(shè)計方法學的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機的出現(xiàn)D.計算機的發(fā)展

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

A.一20B.一l2C.0D.10

72.

73.有以下程序:

#include<stdio.h>

intfun

{staticintx=1;

x+=1;returnX;

}

main

{inti,S=1;

for(i=1;i<=S;i++)s+=fun;

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

}

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

A.11B.21C.6D.120

74.

75.視圖設(shè)計一般有3種設(shè)計次序,下列不屬于視圖設(shè)計次序的是()。

A.自頂而下B.由內(nèi)向外C.由外向內(nèi)D.自底向上

76.

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

main

{inta[3][3],*p,i};

p=&a[0][0];

for(i=p;i<9;i++)p[i]=i+1;

printf("%d\n",a[1][2]);

}

A.3B.6C.9D.隨機數(shù)

77.判斷char型變量cl是否為大寫字母的正確表達式是

A.’A’<=cl<=’Z’B.(cl>=A)&&(cl<=Z)

C.(’A’>=cl)||(’Z’<=cl)D.(cl>=’A’)&&(cl<=’Z’)

78.設(shè)有定義:

79.閱讀以下程序該程序在編譯時產(chǎn)生錯誤,其出錯原因是()。

A.定義語句出錯,case是關(guān)鍵字,不能用作用戶自定義標識符

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

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

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

80.在軟件設(shè)計中,不屬于過程設(shè)計工具的是()。

A.PDLB.DFD圖C.PAD圖D.N—S圖

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將m(1≤m≤10)個字符串連接起來,組成一個新串,放入pt所指字符串中,例如,把2個字符串a(chǎn)bc、CD串聯(lián)起來,結(jié)果是abcCD。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項小于0.0005時停止迭代)。

程序運行后,若輸入精度

0.0005,則程序應(yīng)輸出為3.14…

注意:部分源程序在文件PROGl.C中。

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

參考答案

1.A根據(jù)題目中的定義可知,“sizeof(p)”計算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占的字節(jié)數(shù)。故本題答案為A選項。

2.B

\n本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進行第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。

\n

3.C

4.C函數(shù)fun(intx,inty)的功能是返回x+Y的值。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號表達式“a++,b++,a+b”的值等于5,表達式c++的值為3,調(diào)用于函數(shù)的表達式為“fun(5,3);”,其返回值等于8。

5.B解析:考查指針作為參數(shù)的函數(shù)調(diào)用。盡管C語言以傳值方式進行函數(shù)調(diào)用,但也可以通過傳遞指針的值(變量的地址)來達到修改實參變量值的目的,這是此題主要說明的問題。另外,應(yīng)注意表達式\ue008*(z++)\ue009的值是*z,其后的z++在程序中無實際作用。函數(shù)調(diào)用時,由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次調(diào)用函數(shù)時,*x=a=10,*y=b=40,*z=c=20輸出結(jié)果為11,41,20,至此,已經(jīng)可以肯定選項B)是正確的。在第一次輸出后,a=11,b=41,c=20,第二次輸出為:12,42,20。

6.C

7.A

8.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。

9.C解析:本題考察運算符和選擇語句,執(zhí)行到if語句時,--a為0,所以不會執(zhí)行后面的語句,但是會執(zhí)行elseif后面的語句,所以執(zhí)行后,b=2,選項C)正確。

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

11.D

12.A本題考查“%”運算符的使用。運算符“%”是整數(shù)除法的余數(shù)。本題中表達式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。

13.D解析:本題考查的知識點是運算符的優(yōu)先級。在這個表達式中,優(yōu)先級最高的是(int)a,也就是對5.5取整,結(jié)果是5,其次是b/b,即2.5/2.5,結(jié)果是1.000000,最后相加結(jié)果為6.000000(表達式的最終結(jié)果為實型),所以4個選項中D正確。

14.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf(“%c%c\\n”,c5,c6)輸出45。

15.C解析:外部變量在編譯時由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動存儲類別。

16.D程序中,指針s指向了它的下一個節(jié)點。題目中說明了s總是指向鏈表的第1個節(jié)點。然后while循環(huán)找到鏈表的最后一個元素,最后一個元素指向了之前鏈表的頭節(jié)點,之前頭節(jié)點指向了空節(jié)點。所以本題實現(xiàn)的是使首節(jié)點成為尾節(jié)點。故本題答案為D選項。

17.D本題j=要是考查帶參數(shù)的宏的定義,過程如下:inta=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。

18.D

19.Celse與離它最近的if構(gòu)成if…else語句,而當a為2時,第一個if語句不成立,因此什么也不做,即c的值仍然為2,故選擇C選項。

20.D本題考查continue的用法,continue語句的作用是結(jié)束本次循環(huán),直接進行下次循環(huán)。所以在程序中,只有當a=10時,才退出循環(huán),故選擇D選項。

21.gaegae解析:本題定義了兩個字符串數(shù)組a[],b[],字符型指針變量p1和p2,且分別指向字符串數(shù)組a和b,抽打for循環(huán),當if(*(p1+k)==*(p2+k))條件為真,執(zhí)行輸出*(p1+k)對應(yīng)的字符。即當k=0時,*(p1+k)對應(yīng)的字符串數(shù)組a中的字符L,*(p2+k)對應(yīng)的字符串數(shù)組b中字符P,因此if(*(p1+k)==*(p2+k))條件為假,不執(zhí)行printf語句,依此類推,將字符串數(shù)組a和b中對應(yīng)位置上的字符——比較,如果對應(yīng)位置上的字符相同,則輸出該字符。

22.611610。6,11,6,10。解析:本題考查自加的前置和后置的區(qū)別。

23.物理物理

24.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時應(yīng)輸入與這些字符相同的字符。所以此題中輸入數(shù)據(jù)的形式是5.04,c=3。

25.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

26.structSTRU*

27.b=i+1

28.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。

29.bb解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,另外,字符數(shù)據(jù)還可以作為整數(shù)參加運算。格式控制參數(shù)中的格式字符用以指定輸出項的數(shù)據(jù)類型和輸出格式,輸出字符與其對應(yīng)的輸出項的類型要一致。本題中,“B”的ASCII碼為98,字符類型m的ASCII為(98+32=130),所以最后輸出為b。

30.*(t+4)*(t+4)解析:本題定義了指針變量t,并用數(shù)組s的首地址給它賦初值。t+4代表數(shù)組第6個元素的地址,*(t+4)是取得該地址中的值即29,而此時并沒有移動指針t。

31.本題考查函數(shù)的循環(huán)調(diào)用。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),則輸出結(jié)果為4*3*2*1=24。\r\n\r\n

32.封裝封裝解析:面向?qū)ο蠹夹g(shù)中包括以下幾個基本概念,即對象、類、方法、消息、繼承和封裝,其中封裝是一種信息隱蔽技術(shù),目的在于將對象的使用者對象的和設(shè)計者分開。

33.存儲結(jié)構(gòu)

34.33解析:條件表達式的一般形式為;表達式1?表達式2:表達式3條件運算符的執(zhí)行順序:先求解表達式1,若為非0(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值;若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。30/3=10>0,所以執(zhí)行p/10,結(jié)果為3。

35.完善性軟件維護活動包括以下幾類:改正性維護,適應(yīng)性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

36.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和x這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。

37.時間復雜度時間復雜度解析:算法在執(zhí)行過程中所執(zhí)行的基本運算的次數(shù),也就是執(zhí)行算法所需要的計算工作量,稱為算法的時間復雜度。

38.k*kk\r\n*k解析:scanf()函數(shù)有兩個參數(shù),第一個參數(shù)是格式控制部分(格式控制部分是字符串,主要由%號和格式字符組成)第二個參數(shù)是一地址列表(地址列表是由多個地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個空位于scanf()函數(shù)的第二個參數(shù)處,所以,第一個空應(yīng)該填地址k。printf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時原樣輸出)第二個參數(shù)為一輸出表達式表(輸出表達式表是由若干個需要計算和輸出的表達式組成的,表達式之間用逗號分隔開)。而第二個空位于printf()函數(shù)的第二個參數(shù)處,所以應(yīng)該填*k。

39.軟件工程管理軟件工程管理解析:軟件工程足指,采用工程的概念、原理、技術(shù)和方法指導軟件的開發(fā)與維護:軟件工程學的主要研究對象包括軟件開發(fā)與維護的技術(shù)、方法、工具和管理等方面。即軟件工程研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。

40.rowa[row][colum]row\r\na[row][colum]解析:通過對題意的分析,在select()函數(shù)中,變量row的作用是用來記錄最大元素的行下標,column的作用是用來記錄最大元素的列下標。程序中通過一個循環(huán)求得數(shù)組元素中最大值的行列下標,分別存放在變量row和colmnn中,根據(jù)題意,應(yīng)該把行下標賦值給形參指針變量n指向的變量,把最大值a[row][columa]作為函數(shù)值返回。

41.A解析:C語言中比較表式的運算結(jié)果為0或1。0代表不成立,1表示成立。

42.D解析:關(guān)系模型中包括關(guān)系的數(shù)據(jù)結(jié)構(gòu)、關(guān)系的操縱和關(guān)系中的數(shù)據(jù)約束。關(guān)系完整性約束即數(shù)據(jù)完整性,包括實體完整性、參照完整性和用戶自定義完整性。

43.C解析:“\\b”格式符表示退格,功能是將它后面的字母把它前曲的字母覆蓋,導致“\\b”格式符前面的字母不能輸出;“\\'”格式符表示輸出單引號字符:“\\\\”格式符表示輸出反斜線字符。

44.A解析:本題考查的重點是理解遞歸函數(shù)。fun()為遞歸函數(shù),遞歸結(jié)束條件時n為1或2,從而fun(3,&s)得fun(2,&s)+fun(1,&s)=1+1=2,因此選項A是正確的。

45.C解析:程序中的*(t+i)相當于t[i]。由于for循環(huán)變量的增量為2,因此i分別取值0,2,4,6,8,因為t[0]=1,t[2]=3,t[4]=5,t[6]=7,t[8]=9,對其進行求和運算,結(jié)果為25。

46.D解析:本題開始定義了一個int型整數(shù)i,并初始化為1,而while語句的循環(huán)條件是i<=0,故從一開始就不滿足條件,不會執(zhí)行任何代碼直接結(jié)束。所以應(yīng)該選擇D。

47.D解析:在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0:C語言規(guī)定,對于二維數(shù)組,只可以省略第1個方括號中的常量表達式,而不能省略第2個方括號中的常量表達式;賦的初值不能多于事先定義好的數(shù)組元素個數(shù)。選項D)賦值表達式中對每一維的元素賦初值應(yīng)用{},而不是()。

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

49.D解析:C語句不能嵌套定義函數(shù),但可以嵌套調(diào)用函數(shù)。

50.D解析:選項A),B),C)的指針賦值表達方式都不正確,*p=5表達整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個存儲單。

51.C

52.D解析:*、/和%的優(yōu)先級要高于+和—,同級別的運算符從左至右運算。所以本題首先計算5/2和5%2,雖然我們都知道5/2的結(jié)果應(yīng)該是2.5,但C語言中規(guī)定了兩個整數(shù)相除的結(jié)果為整數(shù),而且是截尾取整,所以5/2的結(jié)果是2;5%2表示的是5除以2所得的余數(shù),其結(jié)果為1。計算完后,表達式變?yōu)?.6-2+1.2+1,從左至右計算不難得出結(jié)果為3.8,故應(yīng)該選擇D。

53.A解析:由于運算符[]優(yōu)先級比*高,所以line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量。

54.D解析:軟件工程三要素是方法、工具和過程。

55.C解析:本題考核的知識點是if-else語句的程序分析。

選項A首先判斷if語句條件中表達式的值“3<1”為假,然后執(zhí)行最近的else后面的語句,該else后面又為if-else語句,在這個if-else語句中首先判斷該if語句條件中表達式的值“2<1”為假,程序執(zhí)行其最近的else后面的語句,將3賦值給x。

選項B中首先判斷if語句條件中表達式的值“1<3”為真,然后執(zhí)行最近的else后面的語句“x=3”,后面的else不再執(zhí)行,最后x的值為3。

選項C中,首先選執(zhí)行第一條if,由于“1<3”為真,執(zhí)行此if后面的語句“x=3”,接著執(zhí)行第二條if語句,由于“1<2”為真,執(zhí)行此if后面的語句“x=2”,接著執(zhí)行第三條語句,由于“1<1”為假,后面的語句不執(zhí)行,所以最后的x值為2不為3。

選項D中,首先選執(zhí)行第一條if語句,由于“a<b”為真,執(zhí)行此if后面的語句“x=b”;接著執(zhí)行第二條if語句,由于“b<c”,為真,執(zhí)行此if后面的語句“x=c”,接著執(zhí)行第三條if語句,由于“c<a”為假,后面的語句不執(zhí)行,所以最后的x值為c即為3.所以,4個選項中選項c符合題意。

56.A解析:在switch語句中break語句的作用是退出分支語句,若沒有break語句則一直向下執(zhí)行。本題中首先計算switch后面括號里的表達式a%3,印15%3為0;執(zhí)行case0:后面的語句m++;m自加1,即m為1遇到break語句;然后跳出switch語句,所以最后輸出的m的值為1,所以選項A正確。

57.B解析:指針是—種用來存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因為“&”和“*”兩個運算符的優(yōu)先級相同,按自右而左的方向結(jié)合,所以*&j運算選進行&j運算,得j的地址,再進行*運算,取所得地址里面的值,故*&j與j等價。

58.C解析:軟件設(shè)計遵循軟件工程的基本目標和原則,建立了適用于在軟件設(shè)計中應(yīng)該遵循的基本原理和與軟件設(shè)計有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細節(jié)。②模塊是指可以單獨命名且可編址的元素。如高級語言中的過程、函數(shù)、子程序等。③信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。因此,本題的正確答案是C。

59.B解析:由于實參傳送的是變量的地址,所以對形參指針所指向的單元內(nèi)容的改變,即對實參內(nèi)容的改變。

60.A解析:運算符“^”是按位異或運算符,其運算規(guī)則是:參與運算的兩個二進制數(shù),若相對應(yīng)的二進制位上的數(shù)相同,則該位的結(jié)果為0;否則該位的結(jié)果為1。可得:0x130x17=1001110111=0x04

61.B

62.C數(shù)組名的值即為數(shù)組首地址,所以P->y可得第一個元素的y值,(++P)→x可得第二個元素的X值。

63.C本題考查的是結(jié)構(gòu)體的定義。typedef關(guān)鍵字用于聲明一個新的類型名代替已有的類型名。本題中如果沒有用typedef進行定義,則struetNODE為結(jié)構(gòu)體類型,現(xiàn)在用typedef定義后,相當于用0LD代表了struetNODE這一結(jié)構(gòu)體類型,故0LD為結(jié)構(gòu)體類型。

64.B本題考查C語言表達式的語法。A選項中“:=”不是C語言中的運算符。C選項中int是定義一個整型變量,后面不能夠跟算術(shù)表達式。D選項錯誤地使用了賦值運算符“=”,賦值運算符只能將一個數(shù)據(jù)賦給一個變量,而不能夠?qū)Ρ磉_式進行賦值。題目中a=a+7或a=c+d都是正確的表達式,a+7=c+d是錯誤的。

6

溫馨提示

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

評論

0/150

提交評論