2021-2022年湖北省黃岡市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第1頁
2021-2022年湖北省黃岡市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第2頁
2021-2022年湖北省黃岡市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第3頁
2021-2022年湖北省黃岡市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第4頁
2021-2022年湖北省黃岡市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年湖北省黃岡市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下敘述中不正確的是()。

A.在一個函數(shù)中,可以有多條return語句

B.函數(shù)的定義不能嵌套,但函數(shù)的調(diào)用可以嵌套

C.函數(shù)必須有返回值

D.不同的函數(shù)中可以使用相同名字的變量

2.以下程序的輸出結(jié)果是().A.A.0B.29C.31D.無定值

3.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。A.需求分析階段B.概念設(shè)計階段C.邏輯設(shè)計階段D.物理設(shè)計階段

4.下列選項中,不屬于數(shù)據(jù)管理員(DBA.職責的是()。

A.數(shù)據(jù)庫維護B.數(shù)據(jù)庫設(shè)計C.改善系統(tǒng)性能,提高系統(tǒng)效率D.數(shù)據(jù)類型轉(zhuǎn)換

5.下列敘述中正確的是()。

A.測試工作必須由程序編制者自己完成

B.測試用例和調(diào)試用例必須一致

C.一個程序經(jīng)調(diào)試改正錯誤后,一般不必再進行測試

D.上述三種說法都不對

6.設(shè)有以下說明語句

structex

{intx;floaty;charz;}example;

則下面的敘述中不正確的是

A.struct結(jié)構(gòu)體類型的關(guān)鍵字

B.example是結(jié)構(gòu)體類型名

C.x,y,z都是結(jié)構(gòu)體成員名

D.structex是結(jié)構(gòu)體類型名

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

#include<stdio.h>

intb=2;

intfunc(int*A)

{b+=*a;retumb;}

main()

{inta=1,t=2;

t+=func(&A);

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

}

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

8.如果某圖的鄰接矩陣是對角線元素均為零的上三角矩陣,則此圖是_______

A.有向完全圖B.連通圖C.強連通圖D.有向無環(huán)圖

9.在一個雙向鏈表中,q的前一個節(jié)點為p,q的后一個節(jié)點為n,刪除q所指向節(jié)點,則執(zhí)行()

A.deleteq;

B.q->prev->next=q->prev;q->next->prev=q->next;deleteq;

C.q->prev=p->next;p->next=p->prev;deleteq;

D.q->next=q->prev->next;q->prev=q->next->prev;deleteq;

E.q->prev->next=q->next;q->next->prev=q->prev;deleteq;

F.p->prev->next=p->next;p->next->prev=p->prev;deleteq->next;

10.有3個節(jié)點的二叉樹可能有()種。

A.12B.13C.5D.15

11.表示關(guān)系a≤b≤c的C語言表達式為()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

12.若變量已正確定義,在“if(W)Printf(“%d\n”,k);”中,以下不可替代W的是()。

A.a<>b+cB.ch=getchar()C.a==b+cD.a++

13.以下非法的賦值語句是

A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;

14.下列選項中與“if(a==1)a=b;elsea++;”語句功能不同的switch語句是()。

A.switch(a==1){ case0:a=b;break; case1:a++;}

B.switch(a){ case1:a=b;break; default:a++;}

C.switch(a){ default:a++;break; case1:a=b;}

D.switch(a==1){ case1:a=b;break; case0:a++;}

15.當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是______。

A.數(shù)組的長度B.數(shù)組的首地址C.數(shù)組每一個元素的地址D.數(shù)組每個元素中的值

16.信息隱蔽的概念與下述哪一種概念直接相關(guān)?

A.軟件結(jié)構(gòu)定義B.模塊獨立性C.模塊類型的劃分D.模塊耦合度

17.程序運行后的輸出結(jié)果是()。A.0304.B.2050C.3344D.3040

18.有下列程序:main{intk=5,n=0;while(k>0){switch(k){dcfault:break;case1:n=n+k;case2:case3:n+=k;}k--;}printf("%d\n".n);}程序運行后的輸出結(jié)果足()。A.0B.4C.6D.7

19.

20.

二、2.填空題(20題)21.以下程序的功能是從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出該字符串。請?zhí)羁铡?/p>

main()

{charstr[81],*sptr;

inti;

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

{str[i]=getchar();

if(str[i]=='\n')break;

}

str[i]=【】;

sptr=str1

while(*sptr)putchar(*sptr【】);

}

22.設(shè)y是int型變量,請寫出y為奇數(shù)的關(guān)系表達式【】。

23.以下程序把從終端讀入的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);

}

24.若fp已正確定義為—‘個文件指針,d1.dd為二進制文件,請?zhí)羁?,以便為“讀”而打開此文件:fp=fopen(______);。

25.下列程序的輸出結(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);

}

26.設(shè)有如下宏定義

#defineMYSWAP(z,x,y){z=x;x=Y;Y=z;}

以下程序段通過宏調(diào)用實現(xiàn)變量a、b內(nèi)容的交換,請?zhí)羁铡?/p>

floata=5,b=16,c;

MYSWAP(【】,a,b);

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

main()

{chara[]="ABCDEFG";

char*cp=&a[7];

while(--cp>&a[0])putchar(*cp);

}

28.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdatc

{intday;

intmouth;

intyear:

union{intshare1;

floatshare2:

}share;

}a;

29.有以下語句段

intnl=10,n2=20;

printf("______",n1,n2);

要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>

n1=10

n2=20

30.在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化程序設(shè)計方法。詳細設(shè)計階段所采用的是【】方法。

31.一名學生只能住一間宿舍,一間宿舍可住多名學生,則實體“宿舍”與實體“學生”的聯(lián)系屬于()的聯(lián)系。

32.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

33.以下程序運行后的輸出結(jié)果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}

34.閱讀程序,填空補充程序。

#define【】30

main()

{【】;

num=10;

total=num*PRICE;

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

}

35.以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(注意:n不得大于10),程序運行結(jié)果如下:

ABCDE

FGHI

JKL

MN

O

請?zhí)羁胀瓿稍摮绦颉?/p>

main()

{inti,j,n;charch='A';

scanf("%d",&n);

if(n<11)

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

{for(j=1;j<=n-i+1;j++)

{printf("%2c",ch);

【】;

}

【】;

}

}

elseprintf("nistoolarge!\n")

printf("\n"0);

}

36.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當字符串是回文時,函數(shù)返回字符串:yes!,否則函數(shù)返回字符串:no!,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda。請?zhí)羁铡?/p>

#include<string.h>

char*huiwen(char*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=【】;

for(i=0;i<=strlen(str)/2;i++)

if(*p1++!=*p2--){t=1;bteak;}

if(【】)return("yes!");

elsereturn("no!");

}

main()

{charsb[50];

printf("Input:");scanf("%s",str);

ptintf("%s\n",【】);

}

37.定義inta=5,b;,則執(zhí)行表達式b=++a*--a之后,變量b的值為【】。

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

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

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

}

39.通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為【】。

40.以下程序的功能是將字符串s中的數(shù)字字符放人d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串a(chǎn)bc123edf456gh,執(zhí)行程序后輸出123456。請?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;)

d[j]='\0';

puts(D);

}

三、1.選擇題(20題)41.下面函數(shù)的功能是char*fun(char*strl,char*str2){while((*strl)&&(*str2++=*strl++));returnstr2;}

A.求字符串的長度

B.比較兩個字符串的大小

C.將字符串str1復制到字符串str2中

D.將字符串str1接續(xù)到字符串str2中

42.有以下程序:#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2);i2=f(1+1);printf("%d%d",i1,i2);}程序的運行結(jié)果是()。

A.1212B.117C.1111D.127

43.有以下程序:#include<stdio.h>#include"string.h"voidfun(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bee","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運行結(jié)果是()。

A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

44.若x為int類型變量,則執(zhí)行以下程序段后的x值是______。x=6;x+=x-=x*x;

A.36B.-60C.60D.-24

45.有以下說明和定義語句:structstudent{intage;charnum[8];};structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};stractstudent*p=stu;以下選項中引用結(jié)構(gòu)體變量成員的表達錯誤的是()。

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

46.若有下面的說明這定義:structtest{intm1;charm2;floatm3;unionuu{charu1[5];intu2[2];}ua;}myaa;則sizeof(structtest)的值是

A.12B.16C.14D.9

47.C語言可執(zhí)行程序的開始執(zhí)行點是()

A.程序中第一條可執(zhí)行語言B.程序中第一個函數(shù)C.程序中的main函數(shù)D.包含文件中的第一個函數(shù)

48.閱讀下面程序,則程序段的功能是

#include"stdio.h"

main()

{intc[]={23,1,56,234,7,0,34},i,j,t;

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

{t=c[i];j=i-1;

while(j>=0&&t>c[j])

{c[j+1]=c[j];j--;}

c[j+1]=t;}

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

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

putchar(′\n′);}

A.對數(shù)組元素的升序排列B.對數(shù)組元素的降序排列C.對數(shù)組元素的倒序排列D.對數(shù)組元素的隨機排列

49.有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(1(--x));}程序的輸出結(jié)果是()。

A.1B.20C.1-4D.死循環(huán)

50.若已包括頭文件<stdio.h>和<string.h>,運行下列程序段時輸出結(jié)果是()。inti=0;chars1[10]="ABCD",s2[10]="EFG";strcat(s1,s2);while(s2[i++]!='\0')s2[i]=s1[i];puts(s2);

A.ABCB.ABCDEFC.EBCDEFGD.CBD

51.設(shè)有說明int(*ptr)[M];其中的標識符ptr是______。

A.M個指向整型變量的指針

B.指向M個整型變量的函數(shù)指針

C.一個指向具有M個整型元素的一維數(shù)組的指針

D.具有M個指針元素的一維指針數(shù)組,每個元素都只能指向整型變量

52.若指針p已正確定義,要使p指向兩個連續(xù)的整型動態(tài)存儲單元,不正確的語句是______。

A.p=2*(int*)malloc(sizeof(int));

B.p=(int*)mallet(2*sizeof(int));

C.p=(int*)malloc(2*2);

D.p=(int*)calloc(2,sizeof(int));

53.若有程序段:intc1=1,c2=2,c3;c3=1.0/c2*cl;則執(zhí)行后,c3中的值是()

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

54.下面程序的輸出結(jié)果是()main(){intx=10,y=3;printf("%d\n",y=x/y);}

A.0B.1C.3D.不確定的值

55.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inta=2,c=5;printf("a=%%d,b=%%d\n",a,c);}

A.a=%2,b=%5B.a=2,b=5C.a=%%d,%%dD.a=%d,b=%d

56.下列敘述中不正確的是()。

A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動變量實質(zhì)上是一個函數(shù)內(nèi)部的局部變量

57.若有以下定義;chara;intb;floatc;doubled;則表達式“a*b+d-c”值的類型為()

A.floatB.intC.charD.double

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

A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)

B.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)

C.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)

D.數(shù)據(jù)的存儲結(jié)構(gòu)在計算機中所占的空間不一定是連續(xù)的

59.在C語言中,合法的字符常量是______。

A.'\081B.'\x43'C.'ab'D.\0

60.若有定義floata=25,b,*p=&b;,則下列對賦值語句*p=a;和p=&a;的正確解釋為()。

A.兩個語句都是將變量a的值賦予變量p

B.*p=a是使p指向變量a,而p=&a是將變量a的值賦予變量指針p

C.*p=a是將變量a的值賦予變量b,而p=&a是使p指向變量a

D.兩個語句都是使p指向變量a

四、選擇題(20題)61.運行下面程序時,從鍵盤輸入字母H,則輸出結(jié)果是()。

A.

B.

C.

D.

62.下列字符串不屬于標識符的是()

A.sumB.averageC.day_nightD.M,D.JOHN

63.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其輸出結(jié)果是()。A.1B.30C.1-2D.死循環(huán)

64.

65.若有定義intx'y;并已正確給變量賦值。則以下選項中與表達式(x-y)?(x++):(y++)中的條件表達式(x_y)等價的是()。

A.(x-y011x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y=o)

66.以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()。

A.結(jié)構(gòu)化程序使用goto語句會很便捷

B.在c語言中,程序的模塊化是利用函數(shù)實現(xiàn)的

C.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成

D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題

67.

68.

69.有以下程序:

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

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

70.(30)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括()

A.排序、索引、統(tǒng)計

B.選擇、投影、連接

C.關(guān)聯(lián)、更新、排序

D.顯示、打印、制表

71.有如下程序:

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

A.0.000000B.0.250000C.0.500000D.1.000000

72.下列函數(shù)的功能是()

73.

74.某二叉樹共有7個結(jié)點,其中葉子結(jié)點只有l(wèi)個,則該二叉樹的深度為(假設(shè)根結(jié)點在第1層)()。

A.3B.4C.6D.7

75.設(shè)變量已正確定義,則下列能正確計算f=n!的程序段是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

76.以下敘述中錯誤的是()。

A.c語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令

B.c程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進制機器指令文件

C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個文本文件中

D.c語言源程序經(jīng)編譯后生成后綴為.obj的目標程序

77.有以下程序:

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

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

78.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的三個連續(xù)節(jié)點。structnode{intdata;structnode*next;}*P,*q,*r;現(xiàn)要將q所指節(jié)點從鏈表中刪除,同時要保持鏈表的連續(xù),

以下不能完成指定操作的語句是()。

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

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

C.p->next=r;

D.p=q->next;

79.

80.有以下程序,其輸出結(jié)果是()。

voidmain()

{

floarx=1;

inty;

x++;

y=x+1;

printf("x=%d,y=%f",x,y);

}

A.x=2,y=3

B.x=2,y=3.0

C.x=2.0,y=3

D.x=0,y=0.000000

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求S的值。設(shè)例如,當k為20時,函數(shù)的值應(yīng)為1.551759。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:計算并輸出

例如,若主函數(shù)從鍵盤給n輸入10后,則輸出為S=104.478749。

注意:部分源程序給出如下。

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

試題程序:

參考答案

1.C

2.C

3.CE-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計出表,所以屬于邏輯設(shè)計階段。

4.DD)【解析】數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是指對數(shù)據(jù)庫的規(guī)劃、設(shè)計、維護、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫設(shè)計。DBA的主要任務(wù)之一是數(shù)據(jù)庫設(shè)計,具體地說是進行數(shù)據(jù)模式的設(shè)計;數(shù)據(jù)庫維護。DBA必須對數(shù)據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復、數(shù)據(jù)定期轉(zhuǎn)儲等進行實施與維護;改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時監(jiān)視數(shù)據(jù)庫的運行狀態(tài),不斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。

5.D解析:測試不是為了證明程序是正確的,而是在設(shè)想程序有錯誤的前提下進行的,其目的是設(shè)法暴露程序中的錯誤和缺陷,一般應(yīng)當避免由開發(fā)者測試自己的程序,因此,選項A錯誤;測試是為了發(fā)現(xiàn)程序錯誤,不能證明程序的正確性,調(diào)試主要是推斷錯誤的原因,從而進一步改正錯誤,調(diào)試用例與測試用例可以一致,也可以不一致,選項B錯誤;測試發(fā)現(xiàn)錯誤后,可進行調(diào)試并改正錯誤:經(jīng)過調(diào)試后的程序還需進行回歸測試,以檢查調(diào)試的效果,同時也可防止在調(diào)試過程中引進新的錯誤,選項C錯誤。

6.B解析:本題中,structex是結(jié)構(gòu)體類型名,ex-ample是結(jié)構(gòu)體變量名。

7.B解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在執(zhí)行函數(shù)func時,由于全局定義了一個變量b,所以在函數(shù)體中執(zhí)行時b=2+1=3,最終t=2+3=5。

8.D

9.E

10.C

11.A解析:本題考查邏輯與運算符&&。在C語言中使用運算符“&&”連接兩個表達式,也可以表示邏輯與運算符。在C語言中不允許出現(xiàn)a<=b<=c這種格式。

12.A選項A是非法的表達式,C語言中沒有“<>”運算符。故本題答案為A選項。

13.C解析:本題考查的知識點是賦值語句的基本知識。在表達式的運算中,雙目賦值運算符的格式為“變量二表達式”,單目運算符一般形式為“運算符表達式”或“表達式運算符”。常量和表達式是不能被賦值的。選項A為復合表達式,首先計算(i=2,++i)的值,然后賦值給n,故選項A正確;選項B為簡單自加運算,故選項B正確;選項C在表達式++(i+1);中,(i+1)不是變量,該表達式的值為常量,而在++運算中,其運算對象必須為變量,故選項C錯誤;選項D中為復合賦值表達式,正確.所以應(yīng)當選擇C。

14.A題干中,if語句的含義是:如果a的值為1,將b的值賦給a,否則將a的值自增1。選項A中,“switch(a==1)”中表達式“a==1”的結(jié)果如果為真,即1,則從case1開始執(zhí)行“a++”;如果“a==1”的結(jié)果為假,即為0,則從case0開始執(zhí)行“a=b”,所以與題干含義執(zhí)行操作相反的是選項A中的語句。故本題答案為A選項。

15.B解析:當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是數(shù)組的首地址,函數(shù)中的形參可定義成以下三種形式:

①形參定義成數(shù)組;

②形參定義成可變長數(shù)組:

③形參定義為指針變量。

16.B解析:采用信息隱蔽的目的就是為了確保每個模塊的獨立性。

17.D[解析]第一次循環(huán)溈0.i%2為0.執(zhí)行switch(a[0]%62)中的case0語句后內(nèi)容即a[0]++,a[0]的值變成3;第二次循環(huán)的值為1.i%62為1.執(zhí)行case1:a[]=0;所以a[1]的值變成0;第三次循環(huán)的值為2.i%62為0.執(zhí)行switch([2]%62)中的case1語句后的內(nèi)容a[2]--,a[2]的值變成4;第四次循環(huán)的值為3.i%2為1.執(zhí)行case1:ai]=0;所以a[3]的值變成0.

18.D本題主要考查while循環(huán)語句和switchcase語句的使用方法。其執(zhí)行步驟為:k=5時,跳出switch語句,然后k自減1;當k=4時,跳出switch語句,然后k自減1;當k=3時,n=13+k=0+3=3,跳出switch語句,然后k自減1;當k=2時n=n+k=3+2=5,跳出switch語句,然后k自減l;當k=1時,case1:n=n+k一5+1=6,沒有break繼續(xù)執(zhí)行CaSe3;n=n+k=6+1=7,跳出switch語句,然后k自減1;當k=0時,退出循環(huán),所以輸出結(jié)果為7。

19.D

20.A

21.\0'++

22.(y%2)==1或(y%2)!=0(y%2)==1或(y%2)!=0

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

24.d1.dat""rb"或"d1.dat""r+b”或"d1.dat""rb+"d1.dat','rb'或'd1.dat','r+b”或'd1.dat','rb+'解析:本題考查的知識點是二進制文件的打開方式。打開文件的函數(shù)為fopen('文件名''mode'),其中'mode'表示文件的打開方式.如果打開的是二進制文件,其mode字符串可以是:'rb''wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開。'w'表示以寫方式打開,如果已有在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件.'a'為追加方式打開。若文件存在時,將打開這個文件并且在文件的末尾進行追加.當文件不存在,將創(chuàng)建新文件。'r='打開一個已有在文件用于更新(可讀可寫)。'w+'創(chuàng)建一個新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。'a+'打開用于追加,當文件不存在時,創(chuàng)建新文件,并在文件末尾進行追加(可讀可寫)。根據(jù)題意,應(yīng)該填'd1.dat','rb'或其他等價的表達法。

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

26.cc解析:本題關(guān)鍵在考生是不是了解宏的基本運用,在使用宏的時候明顯少了—個實參。在定義宏的時候變量z是用來做中間變量的,題目中缺的變量就是一個中間變量c。

27.GFEDCB。GFEDCB。解析:開始指針cp指向字符串結(jié)束標志,在循環(huán)中,cp依次向前移動,當打印出第二個字符后,cp指向第一個字符,循環(huán)判斷條件不滿足,退出循環(huán),因此,只打印出第一個字符以后的字符的逆序列。

28.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(A)的值是2+2+2+4=10。

29.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d×nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d×nn2=%2d解析:printf函數(shù)有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù),其中格式控制參數(shù)由兩種成分組成;格式說明和普通字符,普通字符將被簡單地復制顯示,格式說明項將引起一個輸出參數(shù)項的轉(zhuǎn)換與顯示,它是由“%”引出并以一個類型描述符結(jié)束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數(shù),所以格式說明項為%d,也可以在%與d之間加上域?qū)挘硗膺€要在每行輸出結(jié)束時加轉(zhuǎn)義字符\\n進行換行。所以,應(yīng)填寫n1=%d\\nn2=%d\\n,n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d。

30.結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化設(shè)計解析:在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化程序設(shè)計方法。詳細設(shè)計階段所采用的是結(jié)構(gòu)化設(shè)計方法。

31.一對多一對多解析:在現(xiàn)實世界中事物間的關(guān)聯(lián)稱為聯(lián)系。在概念世界中聯(lián)系反映了實體集間的一定關(guān)系。兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,分別是一對一,一對多和多對多,依據(jù)題意,一名學生只能住一間宿舍,一間宿舍可住多名學生,所以實體“宿舍”與實體“學生”的聯(lián)系屬于一對多的聯(lián)系。

32.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應(yīng)用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

33.6262解析:本題考查的是宏定義。帶參數(shù)的宏定義是按#indefine命令行中指定的字符串從左到右進行轉(zhuǎn)換。本題中替換的式子為:6+8*6+8,代入i,j的值得到62。

34.PRICEintnumtotaltotalnumPRICE\r\nintnum,total\r\ntotal,num解析:程序中出現(xiàn)了變量num,total以及宏P(guān)RICE,因此應(yīng)在相應(yīng)位置說明它們。

35.ch++;或++ch;或ch=ch+1;或ch=1+ch;或ch+=1;priintf("\n");或putchar('\n');ch++;或++ch;或ch=ch+1;或ch=1+ch;或ch+=1;\r\npriintf('\\n');或putchar(\'\\n\');解析:因為ch被初始化為\'A\',而內(nèi)循環(huán)中有—條輸出ch的語句,整個程序都沒有一條改變ch值的語句。所以,第1空應(yīng)該填ch++或其它類似的表達式,以使每次輸出一個字母后ch都能變?yōu)橄乱粋€字母。內(nèi)循環(huán)結(jié)束后,代表這一行已經(jīng)輸出完畢,此時即將開始下一行的輸出,所以在第2空位置應(yīng)該輸出一個換行符,故應(yīng)填入printf('\\n');或其他等價形式。

36.str+strlen(p1)-1或str+strlen(str)-1或str-1+strlen(str)或str-1+strlen(p1)t==0或!t或t=='\0'huiwen(str)str+strlen(p1)-1或str+strlen(str)-1或str-1+strlen(str)或str-1+strlen(p1)\r\nt==0或!t或t=='\\0'\r\nhuiwen(str)解析:函數(shù)huiwen中開始定義了兩個字符指針p1和p2,并讓p1指向sb的開始位置,所以p2應(yīng)該指向str的尾部,即&str[strlen(str)-1]或?qū)懗蓅tr+strlen(str)-1或者其他等價形式。然后使用一個循環(huán),循環(huán)str的長度的一半次數(shù),比較p1和p2的內(nèi)容,并分別遞增和遞減這兩個指針。若有不同,則讓標志t為1,并跳出循環(huán)。所以最后一個if語句應(yīng)該為判斷標志t是否為1,即應(yīng)該填t==0或者其它等價形式。在主函數(shù)中,應(yīng)該輸出huiwen()函數(shù)的返回結(jié)果,即最后一空應(yīng)該填huiwen(str)。

37.2525解析:#NAME?

38.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個元素輸出到文件fp中兩次,共10個字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個字節(jié)的數(shù)據(jù)到數(shù)組a中,此時數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結(jié)果為“1,2,3,0,0,1,2,3,0,0”。

39.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用以及維護等活動。

40.s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57解析:根據(jù)題意,if語句的條件應(yīng)當是判斷數(shù)組元素s[i]是否為數(shù)字,故正確答案為:s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57,其中48是字符0的ASCII碼值,57是字符9的ASCII碼值。

41.C解析:while語句的一般形式為:while(表達式)語句;其中表達式是循環(huán)條件,語句為循環(huán)體,while語句的語義是:計算表達式的值,當值為真(非0)時,執(zhí)行循環(huán)體語句。本題中邏輯與符號連接的表達式值為真,*str2++=*strl++語句是將strl的內(nèi)容逐個復制到str2字符串。

42.B解析:根據(jù)define的定義,可得f(2)=2*5+1=11,f(1+1)=1+1*5+17。

43.A

44.B

45.D解析:結(jié)構(gòu)體變量的引用有三種形式:結(jié)構(gòu)體變量.成員名;(*p).成員名;P->,成員名。所以選項A),B),C)都是正確的。

46.A解析:本題考核的知識點是結(jié)構(gòu)體變量的存儲空間。結(jié)構(gòu)體所占用的存儲空間是其所有成員占用的存儲空間之和,而共用體所占用的存儲空間是成員中占用存儲空間最大者的空間,共用體類型uu是結(jié)構(gòu)體的成員,它所占的內(nèi)存長度為最大成員的長度,即字符型數(shù)組u1的長度,即1×5=5。每個整型數(shù)據(jù)占用2個字節(jié),每個字符型數(shù)據(jù)占用一個字節(jié),單精度型數(shù)據(jù)占4個字節(jié),myaa為結(jié)構(gòu)體變量,它所占的存儲空間為各個成員所占存儲空間的之和,即2+1+4+5=12。所以,4個選項中A為所選。

47.C

48.B解析:讀懂兩個循環(huán)的關(guān)系,是解這個題目的關(guān)鍵,本題的第一個for循環(huán)的作用是實現(xiàn)對數(shù)組元素的遍歷,第二個循環(huán)的作用是排序。while(j>=0&&t>c[j]),這個語句是控制排序的關(guān)鍵語句,它即實現(xiàn)了比較兩個元素大小的作用,又實現(xiàn)了元素向后移動的作用,不斷地把大的數(shù)據(jù)向前移動,直到找到一個比它小的,或到數(shù)據(jù)的上界為止。

49.C解析:本題考查do…while循環(huán)。①執(zhí)行printf語句,x=x-4=1,輸出1,判斷while循環(huán)的控制條件,--x=0,則(!(-x))非零,循環(huán)條件成立,執(zhí)行下一次循環(huán);②執(zhí)行printf語句,x=x-4=-4,輸出-4,判斷while循環(huán)的控制條件,--x=-5,則(!(--x))為零,循環(huán)條件不成立,結(jié)束循環(huán)。

50.C解析:strcat(s1,s2)把s2連接到s1的后面,s1=ABCDEFG,執(zhí)行while(s2[i++]!='\\0')后i的值變?yōu)?,往后執(zhí)行s2[i]=s1[i]時是從把s1的第二位給s2的第二位開始,把s1賦給s2。

51.C解析:(*pd)[M]中,由于一對圓括號的存在,所以*首先與prt結(jié)合,說明ptr是一個指針變量,然后與[M]結(jié)合,說明prt的基類型是一個包含M個int型元素的數(shù)組。

52.A解析:本題考查malloc函數(shù)和calloc函數(shù)的應(yīng)用。C語言中庫函數(shù)malloc和calloc的功能都是向系統(tǒng)申請分配內(nèi)存空間。其中函數(shù)malloc的調(diào)用為:malloc(size),其中size是一個無符號整數(shù),表示向系統(tǒng)申請多大的存儲空間;calloc(n,size)表示向系統(tǒng)申請n個大小為size的存儲空間。新標準C提供的malloc和calloc函數(shù)的類型規(guī)定為void*類型,使用時根據(jù)需要進行強制類型轉(zhuǎn)換。選項B、C、D都能滿足p指向兩個連續(xù)的整型存儲單元的要求,其中(int*)表示強制類型轉(zhuǎn)換。

53.A

54.C

55.D

56.B解析:編譯時,編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運行中,當局部變量所在的函數(shù)被調(diào)用時,編譯系統(tǒng)根據(jù)需要要臨時分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。

57.D解析:參加運算的數(shù)據(jù)類型不同,要轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)類型,double在數(shù)據(jù)類型轉(zhuǎn)換中的級別最高,其他數(shù)據(jù)類型都要轉(zhuǎn)化為double,因此表達式值的類型為double。

58.B解析:一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序、鏈接、索引等,選項A和選項D正確。采用不同的存儲結(jié)構(gòu),其數(shù)據(jù)處理的效率不同,因此,在進行數(shù)據(jù)處理時,選擇合適的存儲結(jié)構(gòu)是很重要的,選項C正確,選項B錯誤,應(yīng)為本題正確答案。

59.B解析:選項A錯在表示轉(zhuǎn)義字符的三位八進制數(shù)中不能出現(xiàn)8,選項C錯在字符串要用雙引號括起,選項D錯在單個字符應(yīng)用單引號括起。選項B表示用兩位16進制數(shù)代表轉(zhuǎn)義字符。

60.C解析:“p”是指針變量,指向一個地址:“*p”,為p指針所指向地址的內(nèi)容。

61.C參考答案

62.D

63.C本題考查do-while循環(huán),先執(zhí)行d0輸出的x的值為1,接著執(zhí)行while語句,此時--x的值為0,x也為0,而非0為1,循環(huán)成立,接著執(zhí)行do輸出X值為-2,執(zhí)行--x后,表達式為-2,而!(--x)為0,退出循環(huán)。

64.D

65.A條件表達式:X----表達式l?表達式2:表達式3的含義是:先求解表達式1,若其值為非0(真),則求解表達式2,將表達式2的值賦給x,若表達式1的值為o(假),則求解表達式3,將表達式3的值賦給x。在本題中與表達式(x_y)等價的是(x—y<011x—y>0),A選項正確。

66.B濫用90t0語句將

溫馨提示

  • 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

提交評論