2022年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第1頁
2022年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第2頁
2022年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第3頁
2022年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第4頁
2022年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.結(jié)構(gòu)化程序設(shè)計(jì)方法的3種基本控制結(jié)構(gòu)中不包括

A.循環(huán)結(jié)構(gòu)B.遞歸結(jié)構(gòu)C.順序結(jié)構(gòu)D.選擇結(jié)構(gòu)

2.設(shè)線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點(diǎn)p的直接后繼,則應(yīng)執(zhí)行下列()操作。

A.p->next=p->next->next;

B.p=p->nextp->next=p->next->next;

C.p->next=p->next;

D.p=p->next->next;

3.設(shè)s1="Good",s2="",s3="Bye",則s1、s2和s3連接后的結(jié)果是()。

A.GoodB.GoodByeC.GoodByeD.Bye

4.在循環(huán)雙鏈表的p所指的結(jié)點(diǎn)之前插入s所指結(jié)點(diǎn)的操作是()。A.p->prior->prior

B.p->prior->prior

C.s->prior->next=s

D.s->prior->prior=s

5.設(shè)某文件內(nèi)排序后得到100個(gè)初始?xì)w并段(初始順串),若使用多路歸并排序算法,且要求三趟歸并完成排序,問歸并路數(shù)最少為()

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

6.

若變量均已正確賦初值,則以下語句中

錯(cuò)誤的是()。

A.tl=t2;

B.t2.numl=tl.numl;

C.t2.mark=tl.Mark

D.t2.num2=tl.hum2;

7.以下關(guān)于指針的說法錯(cuò)誤的是()。

A.可以向指針中寫入任意數(shù)據(jù)

B.可以向指針?biāo)竷?nèi)存單元中寫入數(shù)據(jù)

C.指針可以指向與其基類型相同的普通變量

D.可以通過加法運(yùn)算,使指針指向下一個(gè)內(nèi)存單元

8.依次讀入數(shù)據(jù)元素序列{a,b,c,d,e,f,g}進(jìn)棧,每進(jìn)一個(gè)元素,機(jī)器可要求下一個(gè)元素進(jìn)?;驈棗#绱诉M(jìn)行,則??諘r(shí)彈出的元素構(gòu)成的序列是以下哪些序列?

A.{d,e,c,f,b,g,a}

B.{f,e,g,d,a,c,b}

C.{e,f,d,g,b,c,a}

D.{c,d,b,e,f,a,g}

9.有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:

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

A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!

10.

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

A.在switch語句中,不一定使用break語句

B.break語句只能用于switch語句

C.break語句必須與switch語句中的case配對使用

D.在switch語句中必須使用default

12.請選出正確的程序段

A.int*p;scanf("%d",p);…

B.int*s,k;*s=100;…

C.int*s,k;char*p,c;s=&k;p=&c;*p='a';…

D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;…

13.以下關(guān)于typedef的敘述錯(cuò)誤的是()。A.用tyFedef可以增加新類型

B.typedef只是將已存在的類型用一個(gè)新的名字來代表

C.用typedef可以為各種類型說明一個(gè)新名,但不能用來為變量說明一個(gè)新名

D.用typedef為類型說明一個(gè)新名,通常可以增加程序的可讀性

14.x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是

A.INPUTx、v、z;

B.scanf("%d%d%d",&x,&y,&z);

C.scanf("%d%d%d",x,y,z);

D.read("%d%d%d",&x,&y,&z);

15.下列排序方法中,()方法的比較次數(shù)與記錄的初始排列狀態(tài)無關(guān)。

A.直接插入排序B.冒泡排序C.快速排序D.直接選擇排序

16.有以下程序main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf(“%d\n”,x);}程序運(yùn)行后的輸出結(jié)果是______。A.3B.5C.-1D.-2

17.若有定義:inta,b;,通過語句scanf("%d;%d",&a,&b);,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是A.A.35B.3,5C.3;5D.35

18.下列程序的輸出結(jié)果是()。#include<stdio.h>voidp(int*x){printf("%d¨,++*x);}voidmain(){inty=3;p(&y);}A.3B.4C.2D.5

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

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

20.下面程序的輸出結(jié)果是______。#inc1ude<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)prinf("%c",*p[i]);print("\n")}

A.SOB.SPC.SPOPKD.SHOB

二、2.填空題(20題)21.下面程序的執(zhí)行結(jié)果是【】。

main()

{

inta=5,b=4,c=9;

printf("###%d",(a<C)?c*b:a*B);

}

22.軟件工程的出現(xiàn)是由于【】。

23.下面的函數(shù)strcat(str1,str2)實(shí)現(xiàn)將字符串str2拼接到字符串str1后面的功能。請?zhí)羁帐怪暾?/p>

char*strcat(str1,str2)

char*str1,*str2;

{char*t=str1;

while(【】)str1++;

while(【】);

return(t);}

24.實(shí)現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,D);

primf("%d,%d%d\n",c,D);

}

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

27.在面向?qū)ο蟪绦蛟O(shè)計(jì)中,從外面看只能看到對象有外部特征,而不知道也無須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法,這稱為對象的______。

28.下面程序的輸出結(jié)果是【】。

#defineMAX3

inta[MAX];

main()

{fun1();fun2(a);printf("\n");}

fun1()

{intk,t=0;

for(k=0;k<MAX;k++,t++)a[k]=t+t;

}

fun2(intb[])

{intk;

for(k=0;k<MAX;k++)printf("%d",*(b+k));

}

29.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getehar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

程序運(yùn)行時(shí)輸入:12<回車>,執(zhí)行后的輸出結(jié)果是【】。

30.若有下列定義和語句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

則輸出結(jié)果為______。

31.以下程序的輸出結(jié)果是【】。

main()

{charc='z';

printf("%c",c-25);}

32.下列程序的輸出結(jié)果是【】。

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

33.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類描述的是具有相似性質(zhì)的一組【】。

34.設(shè)Y是int型變量,請寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。

35.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個(gè)字符開始的n個(gè)字符,請?zhí)羁铡?/p>

voiddelete(chars[],inti,intn)

{intj,k,length=0;

whiles(length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<=length)

while(k<length)

s[j++]=s[k++];

s[j]='\0';

}

36.fseek函數(shù)的正確調(diào)用形式是【】。

37.數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

38.下列程序的輸出結(jié)果是16.00,請?zhí)羁眨?/p>

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

39.在對文件進(jìn)行操作的過程中,若要求指針的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。

40.若a的值為1,則表達(dá)式!a‖++a的值是______。

三、1.選擇題(20題)41.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯(cuò)誤的是

A.data的每個(gè)成員起始地址都相同

B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C.程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為5.000000

D.data可以作為函數(shù)的實(shí)參

42.以下正確的說法是

A.用戶若需調(diào)用標(biāo)準(zhǔn)庫函數(shù),調(diào)用前必須重新定義

B.用戶可以重新定義標(biāo)準(zhǔn)庫函數(shù),若如此,該函數(shù)將失去原有含義

C.系統(tǒng)根本不允許用戶重新定義標(biāo)準(zhǔn)庫函數(shù)

D.用戶若需調(diào)用標(biāo)準(zhǔn)庫函數(shù),調(diào)用前不必使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶源文件中,系統(tǒng)自動(dòng)調(diào)用

43.下列選項(xiàng)中正確的語句是()。

A.chars[8];s={"Beijing"};

B.char*s:s={Beijing");

C.chars[8]:s="Beijing"};

D.char*s:s="Beijing";

44.以下敘述中錯(cuò)誤的是______。A.用戶所定義的標(biāo)識符允許使用關(guān)鍵字

B.用戶所定義的標(biāo)識符應(yīng)盡量做到“見名知意”

C.用戶所定義的標(biāo)識符必須以字母或下劃線開頭

D.用戶定義的標(biāo)識符中,大、小寫字母代表不同標(biāo)識

45.設(shè)血a=12;,則執(zhí)行完語句a+=a-=a*a;后,a的值是______。

A.522B.264C.144D.-264

46.有以下程序:#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf("%d\n",i);}執(zhí)行后輸出結(jié)果是

A.28B.22C.16D.4

47.下面程序段中,輸出*的個(gè)數(shù)是char*s="\ta\018bc";for(;*s!='\0';s++)printf("*");

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

48.在C語言中,以下說法不正確的是()。

A.在C程序中,整數(shù)和實(shí)數(shù)都能被準(zhǔn)確無誤地表示出來

B.在C程序中,任何一個(gè)變量名都代表存儲器中的一個(gè)位置

C.靜態(tài)變量的生存期與整個(gè)程序的運(yùn)行期相同

D.C語言中,任何變量都必須先聲明才能進(jìn)行引用

49.設(shè)有下列二叉樹:

對此二叉樹先序遍歷的結(jié)果是

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

50.下列數(shù)據(jù)中,不合法的C語言實(shí)型數(shù)據(jù)的是()。

A.0.123B.123e3C.2.1e3.5D.789.0

51.設(shè)有數(shù)組定義:chararray[]="China";則數(shù)組array所占的空間是()。

A.4個(gè)字節(jié)B.5個(gè)字節(jié)C.6個(gè)字節(jié)D.7個(gè)字節(jié)

52.主程序調(diào)用findmax函數(shù)求出數(shù)組中最大元素在數(shù)組中的下標(biāo),()中需填寫的內(nèi)容是。#include<stdio.h>findmax(int*s,intt,int*k){intp;for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])();}main(){inta[10],i,k;for(i=0;i<10;i++)scanf("%d",&a[i]);findmax(a,10,&k);printf("%d%d\n",k,a[k]);}

A.k=pB.*k=pC.k=p-sD.*k=p-s

53.sizeof(float)是()。

A.一種函數(shù)調(diào)用B.一種函數(shù)定義C.一個(gè)浮點(diǎn)表達(dá)式D.一個(gè)整型表達(dá)式

54.分析以下程序,執(zhí)行后的輸出結(jié)果是()intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d,e,f;d=f1(a,B);d=f1(d,C);e=f2(a,B);e=f2(e,C);f=a+b+c-d-e;printf("%d,%d,%d",d,f,e);}

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

55.下列描述中,錯(cuò)誤的一條是______。

A.C語言中,二維數(shù)組或多維數(shù)組的排列順序是按行存放的

B.賦值表達(dá)式b[1][2]=a[2][3]/2*a[0][0]是正確的

C.表達(dá)式3==4>2!=5<2的值為0

D.數(shù)組名后的方括弧內(nèi)可以為常量表達(dá)式,也可以為變量

56.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性的是()。

A.線性表B.隊(duì)列C.樹D.棧

57.以下能正確定義且賦初值的語句是()。

A.intn1=n2=10;

B.charc=32;

C.floatf=f+1;

D.doublex=12.3E2.5;

58.下面程序的輸出結(jié)果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}

A.1B.2C.7D.10

59.有如下程序main(){intx=3;do{prinff("%d",x--);}while(!x);}該程序的執(zhí)行結(jié)果是_____。

A.321B.3C.不輸出任何內(nèi)容D.陷入死循環(huán)

60.以下程序段的輸出結(jié)果是______。main(){chars1[10],s2[10],s3[10];scanf("%s",s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);}輸入數(shù)據(jù)如下:(此處<CR>代表回車符)aaa<CR>bbb<CR>

A.aaabbbB.aaabbbC.aaa\0bbb\0D.aaabbb

四、選擇題(20題)61.假定所有變量均已正確說明,下列程序段運(yùn)行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

62.在下列語句中,其含義為“q是一個(gè)函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。

A.int**q;B.int(*q);C.int*q;D.int*q;

63.

64.以下選項(xiàng)中值為1的表達(dá)式是()。

A.

B.

C.

D.

65.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

66.有三個(gè)關(guān)系R、S和T如下:

則由關(guān)系R和s得到關(guān)系T的操作是()。

A.自然連接B.差C.交D.并

67.為了提高軟件的獨(dú)立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合

68.

69.

70.有以下程序:

#include<stdio.h>

voidexch(intt[])

{t[0]=t[s];}

main()

{intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;

while(i<=4){exch(&x[i]);i++;}

for(i=0;i<5;i++)printf("%dl"x[i]);

printf("\n");

}

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

A.246810

B.13579

C.12345

D.678910

71.在c語言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲類型是()。A.aut0和Iegister

B.extern和register

C.aut0和static

D.static和register

72.(59)SQL語言又稱為()

A.結(jié)構(gòu)化定義語言

B.結(jié)構(gòu)化控制語言

C.結(jié)構(gòu)化查詢語言

D.結(jié)構(gòu)化操縱語言

73.以下關(guān)于宏的敘述中正確的是()。

A.宏替換沒有數(shù)據(jù)類型限制

B.宏定義必須位于源程序中所有語句之前

C.宏名必須用大寫字母表示

D.宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間

74.

75.數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖內(nèi)容的是

A.控制流B.加工C.?dāng)?shù)據(jù)存儲D.?dāng)?shù)據(jù)流

76.

下面程序的運(yùn)行結(jié)果是()。

#inelude<stdio.h>

voiddel(char*s)

{inti,j;

char*a;

a=s:

for(i=0,j=0;a[i]!=\0;i++)

{if(a[i]>=0&&a[i]<=9)

{s[j]=a[i];

j++;

}

s[j]=\0;

}

}

main

{char*s="aa89gggh";

del(s):

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

}

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

77.

78.

79.第

11

若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

80.下面結(jié)構(gòu)體的定義語句中,錯(cuò)誤的是()。

A.structord{intx;intY;intz;}structorda;

B.structord{intx;imY;imz;};structorda;

C.structord{intx;intY;intZ;}a;

D.struct{intx;intY;intz;}a;

五、程序改錯(cuò)題(1題)81.已知一個(gè)數(shù)列從0項(xiàng)開始的前3項(xiàng)為0,0,1,以后的各項(xiàng)都是其相鄰的前3項(xiàng)之和。下列給定的程序中,函數(shù)proc的功能是:計(jì)算并輸出該數(shù)列前n項(xiàng)的和sum。n的值通過形參傳人。例如,當(dāng)n=20時(shí),程序的輸出結(jié)果應(yīng)為42762.000000。

請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。

注意:不要改動(dòng)maiil函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

doubleproc(intn)

{

doublesum,s0,s1,s2,s;

intk;

sum=1.0;

if(n<=2)

sum=0.0;

s0=0.0;

s1=0.0;

s2=1.0;

//****found****

for(k=4;k<n;k++)

}

{

s=s0+s1+s2;

sum+=S:

s0=s1;

s1=s2;

//****found****

s2=s;

returnsum;

}

voidmain

{

intn;

system("CLS");

printf("InputN=");

scanf("%d",&nJ;

printf("%f\n",proc(n));

}

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾析下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫一個(gè)函數(shù)fun(),它的功能是將ss所指字符串中所有下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫字母(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入“abc4Efg”,則應(yīng)輸出“aBc4EFg”。注意:部分源程序在文件prog1.c中。請勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.B解析:本題考查了程序的基本結(jié)構(gòu)。程序由一些基本結(jié)構(gòu)組成。任何一個(gè)大型的程序都由3種基本結(jié)構(gòu)組成,由這些基本結(jié)構(gòu)順序的構(gòu)成了一個(gè)結(jié)構(gòu)化的程序。這3種基本結(jié)構(gòu)為:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

2.A

3.C

4.D

5.A

6.C結(jié)構(gòu)體變量中的第一成員都是數(shù)組,不能直接將變量tl的成員mark數(shù)組的地址賦給另一個(gè)變量t2的成員mark數(shù)組的地址。因?yàn)榈刂范际枪潭ㄖ担荒鼙毁x值。結(jié)構(gòu)體可以進(jìn)行整體的賦值。

7.A指針變量必須區(qū)分基類型,可以向指針?biāo)竷?nèi)存單元寫入與基類型相同的數(shù)據(jù),而不能寫入任意數(shù)據(jù),選項(xiàng)A錯(cuò)誤,選項(xiàng)B正確;指針可以指向與其基類型相同的普通變量,選項(xiàng)C正確;指針是一個(gè)內(nèi)存地址,它是一個(gè)整數(shù),可以通過加法運(yùn)算,使指針指向下一個(gè)內(nèi)存單元,選項(xiàng)D正確。故本題答案為A選項(xiàng)。

8.A

9.D調(diào)用缸函數(shù)后,實(shí)參數(shù)組名sl傳給形參指針P,P也指向數(shù)組sl。m函數(shù)的功能是遍歷字符數(shù)組中的所有字符,如果某一個(gè)字符是空格并且前一個(gè)字符是小寫字母的話,就把前一個(gè)字符轉(zhuǎn)換為大寫。程序中語句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是將P[i一1]中的字符轉(zhuǎn)換為大寫。因此D選項(xiàng)正確。

10.A

11.Aswitch語句中不一定使用break語句,選項(xiàng)A正確;break語句除了用于switch語句,還可以用于循環(huán)語句中,選項(xiàng)B、C錯(cuò)誤;switch語句不一定需要使用default語句,選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。

12.C解析:本題的選項(xiàng)A)和B)犯了同樣的錯(cuò)誤,即指針變量在定義后并沒有指向具體的變量。也就是說,指針變量中沒有確定的地址值,它的值是不可預(yù)見的,所指的單元也是不可預(yù)見的,因此不能進(jìn)行賦值操作。另外,在選項(xiàng)D)中,s是int型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。

13.A用typedef沒有增加新類型,所以選擇A)。

14.B解析:scanf函數(shù)的一般格式是:

scanf(格式控制,地址表列)

該格式中,地址表列中應(yīng)是變量地址,而不是變量名。注意:調(diào)用putchar和getchar函輸出和輸入字符。

15.D

16.D本題考核的知識點(diǎn)是運(yùn)算符的優(yōu)先級。主函數(shù)中首先定義了整型變量m、n和x,并給m和n賦初值為3和4,接著執(zhí)行兩條賦值語句,第一條x=-m++等價(jià)于x=-(m++),其值即為-3,第二條x=x+8/++n等價(jià)于X=X+8/(++n),即為x=-3+8/5=-2,因此最后輸出x的值為-2。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

17.C解析:在C語言中scanf函數(shù)中輸入數(shù)據(jù)時(shí)要嚴(yán)格按照所規(guī)定的樣式輸入。

18.B本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在函數(shù)調(diào)用時(shí),形參是指向?qū)崊⒌闹羔樧兞?,則printf的執(zhí)行結(jié)果為++x;x=3,則3+1=4。

19.D本題考查C語言中變量類型的轉(zhuǎn)換。

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

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

20.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPk\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串中的第一個(gè)字符。在for循環(huán)中,i的初值為3,那么輸出的第—個(gè)字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。

21.###36

22.軟件危機(jī)的出現(xiàn)軟件危機(jī)的出現(xiàn)

23.*str1或*str1!='\0'或*str1!=0或*str1!=NUL*str1++=*str2++或*str1++=*str2*str2++*str1或*str1!='\\0'或*str1!=0或*str1!=NUL\r\n*str1++=*str2++或*str1++=*str2,*str2++解析:函數(shù)strcat(str1,str2)實(shí)現(xiàn)將字符串str2連接到字符串str1后面,所以首先要找到字符串str1的串尾,根據(jù)C語言的語法規(guī)定,一個(gè)串的串尾—定是—個(gè)隱含字符“\\0”,而在程序中,對字符串中字符的訪問是通過兩個(gè)指針變量來完成的,因此要找到字符串str1的串尾,要判斷:str1是否為“\\0”,要找到字符串str2的串尾,要判斷*str2是否為“\\0”,程序中必須以使字符串中字符逐—順序體現(xiàn),所以在題中我們應(yīng)填寫“*str1”和“*str1++=*str2++”。

24.空間復(fù)雜度和時(shí)間復(fù)雜度算法的復(fù)雜性是指對一個(gè)在有限步驟內(nèi)終止算法和所需存儲空間大小的估計(jì)。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計(jì)算量是算法的時(shí)間復(fù)雜性。

25.7979解析:因?yàn)樵谡{(diào)用子函數(shù)時(shí)進(jìn)行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實(shí)參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。

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

27.封裝性封裝性解析:對象具有下列5個(gè)基本特點(diǎn):①標(biāo)識惟一性;②分類性:③多態(tài)性;④封裝性;⑤模塊獨(dú)立性好。其中,封裝性是指從外面看只能看到對象的外部特征,對象的內(nèi)部特征即處理能力的實(shí)行和內(nèi)部狀態(tài),對外是不可見的,對象的內(nèi)部狀態(tài)只能由其自身改變。

28.024

29.1212解析:程序中的ch1與ch2為字符型變量,輸入12后,ch1得到字符'1',ch2得到字符'2'。n1=ch1-'0'將字符1,轉(zhuǎn)換為數(shù)值1,同理,n2為1*10+2=12。程序執(zhí)行后輸出十進(jìn)制整數(shù)12。

30.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實(shí)際上是要求s2字符串的長度,即是4。

31.aa解析:“z”的ASCII碼值為122,經(jīng)過c-25運(yùn)算后得97,以字符形式輸出是a。

32.66解析:條件運(yùn)算符的優(yōu)先級高于賦值運(yùn)算符,因此本題先計(jì)算關(guān)系表達(dá)式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當(dāng)y=0時(shí),*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=2,所以z=2;當(dāng)y-1時(shí),*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時(shí),*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。

33.對象對象解析:將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。

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

35.length++i<lengthlength++\r\ni<length解析:第—個(gè)循環(huán)極有可能是計(jì)算串的長度,在i<=length時(shí)字符才被刪除,被刪除的是從第i個(gè)到笫i+n或最后—個(gè)間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。

36.fseek(文件指針位移量起始點(diǎn))fseek(文件指針,位移量,起始點(diǎn))解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:

fseek(文件指針,位移量,起始點(diǎn))

“起始點(diǎn)”用0,1或2代替,其中,0代表“文件開始”;1為“當(dāng)前位置”;2為“文件末尾”。“位移量”指以“起始點(diǎn)”為基點(diǎn),向前移動(dòng)的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件的長度大于64k時(shí)不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個(gè)字母L,就表示long型。

37.概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)

解析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a(bǔ)、b,代入,得到16.0=9/2+2*x/1.1+1/2。因?yàn)閍=9,a是整型,所以9/2的值在沒有進(jìn)行類型轉(zhuǎn)換時(shí),等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

39.rewindrewind解析:庫函數(shù)rewind()的作用是使文件位置指針重新返回文件的開頭,所以本題應(yīng)該填rewind。

40.11解析:邏輯運(yùn)算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。

41.D解析:選項(xiàng)A),共用體的每個(gè)成員的起始地址都相同;選項(xiàng)B),共用體變量所占的內(nèi)存長度等于最長的成員的長度;選項(xiàng)C)因?yàn)槊總€(gè)成員的起始地址相同,所以整型數(shù)5以浮點(diǎn)型輸出時(shí)為5.000000;選項(xiàng)D)C語言規(guī)定,不能把共用體變量作為函數(shù)的參數(shù)。

42.B解析:用戶調(diào)用標(biāo)準(zhǔn)庫函數(shù)前不必重新定義,而只需使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶源文件中即可。而且,系統(tǒng)允許用戶重新定義標(biāo)準(zhǔn)庫函數(shù),但此時(shí)該函數(shù)將失去原有含義。因此,正確答案為選項(xiàng)B)。調(diào)用函數(shù)時(shí),必須要注意以下語法:

①函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致;

②實(shí)參的個(gè)數(shù)與形參的個(gè)數(shù)一致;

③函數(shù)必須先定義,后調(diào)用。如果被調(diào)用的函數(shù)的返回值為int型或char型,則被調(diào)用函數(shù)的定義也可以放在調(diào)用的位置之后。

如果在函數(shù)調(diào)用之前沒有對函數(shù)作聲明,則編譯系統(tǒng)會(huì)把第一次遇到的該函數(shù)形式作為函數(shù)的聲明,并將函數(shù)類型默認(rèn)為int型。

43.D解析:寧符數(shù)組初始化可以有兩種方式:方式一,按單個(gè)字符的方式賦初值。方式二,把一個(gè)字符串作為初值賦給字符數(shù)組。比如:charch[5]={'abc'),選項(xiàng)A屬于這種情況,但是選項(xiàng)A定義的字符數(shù)組長度為8,由于最后還要加一個(gè)“\\0”做結(jié)束標(biāo)志,所以賦給他的字符串長度應(yīng)小于等于7,所以選項(xiàng)A不正確;在給字符數(shù)組賦初值的時(shí)候,應(yīng)該用花括號“{”和“}”將字符串括起來,故選項(xiàng)C不正確。將字符型指針變量指向字符串也有兩種方法,一是在定義指針變量時(shí)就給其賦初值,比如:char*p='student'二是給指針變量賦值,比如:p='student';(p已經(jīng)被定義為字符型指針變量:),故選項(xiàng)D正確,而選項(xiàng)C中的花括號是多余的,應(yīng)該去掉,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

44.A解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個(gè)字符必須是字母或下劃線。大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符,用戶在定義標(biāo)識符時(shí)應(yīng)盡量做到“見名知意”,且不允許使用關(guān)鍵字作標(biāo)識符。

45.D

46.A解析:本題考核的知識點(diǎn)是宏定義的簡單應(yīng)用。本題中首先將所有的宏替換掉,則表達(dá)式為i=4+4*4+4/2+2*2+2,故最后輸出的i的值為28。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

47.C解析:本題中,格式符。表示的是八進(jìn)制無符號形式輸出整型數(shù)(不帶前導(dǎo)0),字符常量在內(nèi)存中占一個(gè)字節(jié),存放的是ACSII碼代碼值。C語言規(guī)定,所有字符常量都作為整型量來處理,在計(jì)算機(jī)內(nèi)部,其對應(yīng)的整數(shù)值就是ACSII字符集中該字符的序號,即&*s中有幾個(gè)字符就輸出幾個(gè)*。

48.A解析:此題考查C語言的基本概念。變量的實(shí)質(zhì)就是在內(nèi)存中占據(jù)一定的存儲單元,存儲單元里存放的是該變量的值,變量的值可以根據(jù)需要進(jìn)行修改;整數(shù)在允許的范圍內(nèi)可以準(zhǔn)確的表示出來,但不可能表示無限度的實(shí)數(shù)。

49.C解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求先序遍歷遍歷順序應(yīng)該為:訪問根結(jié)點(diǎn)->先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF。

50.C解析:在C語言中,實(shí)數(shù)有兩種表示形式。即十進(jìn)制數(shù)形式和指數(shù)形式,在指數(shù)形式中,字母e的前面必須有數(shù)字,且e的后面必須是整數(shù)。e3,2.1e3.5,e3,e等都是不合法的指數(shù)形式,而123e3或123E3都代表123乘以10的3次方。

51.C解析:在定義字符數(shù)組時(shí),可以用一個(gè)字符串作為初值,對數(shù)組進(jìn)行初始化。要注意的是,數(shù)組array的長度不是5,而是6,因?yàn)橄到y(tǒng)將自動(dòng)在字符串常量的后面加上一個(gè)'\\0',因此,題干中的初始化語句與chararray[]={'C','h','i','n','9','\\0'};等價(jià)。

52.B解析:數(shù)組元素可以通過數(shù)組首地址和下標(biāo)的方式來引用,數(shù)組元素的下標(biāo)是從0開始的,也可以將數(shù)組首地址賦給一個(gè)指針變量,通過指針和下標(biāo)的方式來引用數(shù)組元素。注意:通過數(shù)組的首地址引用數(shù)組元素。

53.D解析:sizeof(float)是c語言內(nèi)部規(guī)定的用于計(jì)算單精度型變量(float)在計(jì)算機(jī)的內(nèi)存中所占用的字節(jié)數(shù)量的函數(shù),返回一個(gè)整數(shù)值。

54.C

55.D

56.C解析:線性結(jié)構(gòu),是指數(shù)據(jù)元素只有一個(gè)直接前件元素和直接后件元素。線性表是線性結(jié)構(gòu)。棧和隊(duì)列是指對插入和刪除操作有特殊要求的線性表,樹是非線性結(jié)構(gòu)。

57.B解析:語句intn1=n2=10;中,由于變量n2未定義,所以此賦值語句錯(cuò)誤;由于賦值語句中不能存在運(yùn)算表達(dá)式,所以選項(xiàng)C)中的賦值語句錯(cuò)誤;選項(xiàng)D)中指數(shù)表示錯(cuò)誤,C語言規(guī)定,e后面的指數(shù)必須為整數(shù);選項(xiàng)B)中的32是ASCII碼的表示形式,這是c語言中字符型數(shù)據(jù)和整型數(shù)據(jù)通用的表現(xiàn),即一個(gè)字符數(shù)據(jù)可以以字符形式出現(xiàn),也可以以整數(shù)形式出現(xiàn)。

58.B解析:本題考查函數(shù)的調(diào)用。函數(shù)fun2的作用是將形參x和y的值相乘后減去3,在fun2中的變量m是一個(gè)局部變量,它的值在fun2函數(shù)內(nèi)有效;在主函數(shù)中的m指的是全局變量,其值為13,所以fun2(a,b)/m的值為(7*5-3)/13,即2。

59.B解析:本題x賦初值為3,當(dāng)執(zhí)行printf('%d',x-);時(shí),由于x-的作用是先運(yùn)算x,再將x的值減1,所以,printf輸出的x值為3,等輸出后,x的值減1變?yōu)?,繼續(xù)執(zhí)行,判斷條件!x為假,循環(huán)只被執(zhí)行一次。

60.B解析:scanf是標(biāo)準(zhǔn)輸入函數(shù),在輸入字符串a(chǎn)aa時(shí),實(shí)際的內(nèi)容為“aaa\\0”,“\\0”是由系統(tǒng)自動(dòng)加入的:gets的功能是從終端讀入一行字符,即一直讀到換行符為止,并由系統(tǒng)自動(dòng)以“/0”代替換行符。

61.B解析:本題考查ifelse語句。第一個(gè)if語句,先判斷條件,發(fā)現(xiàn)a=0,則!a成立,執(zhí)行下列的語句,x--,得x=11:第二個(gè)if語句,判斷條件,發(fā)現(xiàn)c=o,則條件不成立,執(zhí)行下列的else語句,得x=4。

62.B本題考查指針函數(shù)。其定義的基本格式為:類型說明符(*函數(shù)名)?!邦愋驼f明符”表示返回的指針值指向的數(shù)據(jù)類型。

63.D

64.B解析:‘0’代表ASCⅡ碼為48的字符,‘\\0’代表ASCⅡ碼為0的字符,‘1’代表ASCⅡ碼為49的字符,所以只有選項(xiàng)B的表達(dá)式的值為1。

65.DD?!窘馕觥棵嫦?qū)ο笤O(shè)計(jì)方法與面向過程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。其特點(diǎn)包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。

66.B關(guān)系T中的元組是R關(guān)系中有而S關(guān)系中沒有的元組的集合,所以進(jìn)行的是差的運(yùn)算。

67.D在程序設(shè)計(jì)中,各模塊間的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,以有利于提高模塊的獨(dú)立性。耦合性與內(nèi)聚性是模塊獨(dú)

溫馨提示

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

評論

0/150

提交評論