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

下載本文檔

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

文檔簡介

2021-2022年湖北省襄樊市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序#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

2.第

24

下面程序段的運行結果是

char*p="abcdefgh";

p+=3;

printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

3.下列一維數(shù)組初始化語句中,正確且與語句floata[]={0,3,8,0,9};等價的是().

A.floata[6]={0,3,8,0,9};

B.floata[4]={0,3,8,0,9};

C.floata[7]={0,3,8,0,9};

D.floata[5]={0,3,8,0,9};

4.廣義表(a,b,c,d)的表尾是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

5.對于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應為()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF

6.

7.若串S=,software,其子串的數(shù)目是()。

A.8B.37C.36D.9

8.下列不可用于C語言用戶標識符的是A.A.j2_KEY

B.char

C._g_

D.Double

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

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

10.可以作為Windows外殼程序的是()

A.程序管理器B.文件管理C.程序管理器和文件管理器D.主群組

11.設有定義:“char*c;”,以下選項中能夠使字符型指針c正確指向一個字符串的()。

A.charstr[]="string";c=str;

B.scanf(%s,c):

C.c=getchar();

D.*c="strin9";

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

13.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

14.已定義以下函數(shù)fun(char*p2,char*p1){while((*p2=*p1)!='0'){P1++;p2++;}}函數(shù)的功能是

A.將p1所指字符串復制到p2所指內(nèi)存空間

B.將P1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針所指字符串進行比較

D.檢查P1和p2兩個指針所指字符串中是否有'\0'

15.

16.采用深度優(yōu)先搜索或拓撲排序算法可以判斷出一個有向圖中是否有環(huán)(回路)()

A.對B.錯

17.在位運算中,操作數(shù)每左移兩位,其結果相當于()。

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4

18.對于下述程序,在方式串分別采用“wt”和“wb”運行時,兩次生成的文件TEST的長度是#include<stdio.h>voidmain(){FILE*fp=fopen("TEST",);fputc('A',fp);fputc('\n',fp);fputc('B',fp);fputc('\n',fp);fputc('C',fp);fclose(fp);}

A.7字節(jié)、7字節(jié)B.7字節(jié)、5字節(jié)C.5字節(jié)、7字節(jié)D.5字節(jié)、5字節(jié)

19.以下選項中不能用作C語言程序合法常量的是()。

A.123B.‘\123’C.1,234D.“\x7D”

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

A.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效

B.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

C.在不同的函數(shù)中可以定義相同名字的變量

D.函數(shù)的形參是局部變量

二、2.填空題(20題)21.調(diào)用C語言標準庫函數(shù)時要求用【】命令。

22.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

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

#defineP(A)printf("%d",A)

main()

{intj,a[]={1,2,3,4,5,6,7),i=5;

for(j=3;j>1;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

24.下列程序運行后的輸出結果是______。

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

25.設有以下定義

stnctss

{intinfo;sEruc5ss*link;}x.y,z;

且已建立如下圖所示鏈表結構:

請寫出刪除結點y的賦值語句______。

26.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%x\n",p);

printf("%x\",p+9);

}

27.在數(shù)據(jù)結構中,順序存儲結構的數(shù)據(jù)元素所占的存儲空間是______的。

28.以下函數(shù)用于求出一個2×4矩陣中的最大元素值。

max_value(arr)

intarr[][4];

{

inti,j,max;

max=arr[O][0];

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

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

if(【】>max)max=【】;

return(max);

}

29.以下函數(shù)的功能是刪除字符串s中的所有數(shù)字字符。請?zhí)羁铡?/p>

voiddele(char*s)

{

intn=0,i;

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

if(【】)

s[n++]=s[i];

s[n]=【】;

}

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

31.軟件工程研究的內(nèi)容主要包括:【】技術和軟件工程管理。

32.在面向?qū)ο蠓椒ㄖ?,對象之間進行通信的構造稱為()。

33.若有定義:intk;,以下程序段的輸出結果是______。for(k=2;k<6;k++,k++)printf("##%d",k);

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

#defineP(a)printf("%d",a)

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>l;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

35.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

37.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對象。

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

#include<stdio.h>

main()

{inta=2,b=-1,c=2;

if(a<b)

if(b<0)c=0;

elsec++;

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

}

39.下面程序的功能是輸出數(shù)組s中最大元素的下標,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

}

40.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。

三、1.選擇題(20題)41.有以下程序

#include<stdlib.h>

structNODE

{intnum;stmctNODE*next;};

main()

{structNODE*p,*q,*r;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(structNODE*)malloc(sizeof(structNODE));

p->num=10;q->num=20;r->num=30;

p->next=q;q->next=r;

printf(“%d\n”,p->num+q->next->num);

}

程序運行后的輸出結果是

A.10B.20C.30D.40

42.請讀程序片段:inti=65536;printf("%d”\n”,i;上面程序片段的輸出結果是()

A.65536B.0C.有語法錯誤,無輸出結果D.-l

43.C語言結構體類型變量在程序運行期間

A.TC環(huán)境在內(nèi)存中僅僅開辟一個存放結構體變量地址的單元

B.所有的成員一直駐留在內(nèi)存中

C.只有最開始的成員駐留在內(nèi)存中

D.部分成員駐留在內(nèi)存中

44.下列存儲器中,存取速度最快的是()。

A.軟盤B.硬盤C.光盤D.內(nèi)存

45.下面各選項中,均是C語言合法標識符的選項組是

A.33weautoB._23me_3ewC._433e_elseD.ER-DF32

46.在下面的語句中,賦值語句錯誤的是_______。

A.a=(b=(c=2,d=3));B.i++;C.a=a/b=2;D.a=a<a+1;

47.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序運行后的輸出結果是______。

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

48.有以下程序:maln(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結果是()。

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

49.設有以下定義和語句,輸出的結果是(用small模式編譯,指針變量2個字節(jié))______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));

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

50.結構化程序由三種基本結構組成,三種基本結構組成的算法A.可以完成任何復雜的任務B.只能完成部分復雜的任務C.只能完成符合結構化的任務D.只能完成一些簡單的任務

51.在軟件測試設計中,軟件測試的主要目的是

A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.盡可能多地發(fā)現(xiàn)軟件中的錯誤

52.閱讀下列程序段,則程序的輸出結果為#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

53.下列數(shù)據(jù)結構中具有記憶功能的是()。

A.隊列B.循環(huán)隊列C.棧D.順序表

54.有以下程序:int*flint*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}執(zhí)行后輸出結果是()。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

55.已知inta=1,b=3則a^b的值為

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

56.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運行后,文件t1.dat中的內(nèi)容是

A.startB.endC.startendD.endrt

57.以下程序的輸出結果是()#include<stdlib.h>inta[3][3]={1,2,3,4,5,6,7,8,9},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n",*p);}f(int*s,intp[][3]){*s=p[1][1];}

A.1B.4C.7D.5

58.計算機硬件組成中,CPU包含______。

A.控制器和存儲器B.控制器和運算器C.控制器、運算器和存儲器D.內(nèi)存儲器和外存儲器

59.若有說明:inta[][3]={0,0};則不正確的敘述是()。

A.數(shù)組a的每個元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

60.若有定義inta[5],*p=a;則正確引用數(shù)組元素的是()。

A.*&a[5]B.*a+2C.*(p+5)D.*(a+2)

四、選擇題(20題)61.瀏覽器中用于負責向用戶顯示數(shù)據(jù)的是()。

A.WWWB.IP地址C.HTMLD.DNS

62.以下能正確定義一維數(shù)組的選項是()。

A.

B.

C.

D.

63.有如下程序

main()

{

inta=2,b=-1,c=2;

if(a<b)c=1;

if(b<0)c=0;

elsec++;

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

}

該程序的輸出結果是

A.0B.1

C.2D.3

64.

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

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

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

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

65.以下關于邏輯運算符兩側運算對象的敘述中正確的是()。

A.可以是任意合法的表達式B.只能是整數(shù)0或非0整數(shù)C.可以是結構體類型的數(shù)據(jù)D.只能是整數(shù)O或l

66.

67.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化

B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化

C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化

D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化

68.下列程序段的輸出結果是

inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("%2d,%2.1f,%2.1f",a,b,c);

A.無輸出B.12,123.5,12345.5

C.1234,123.5,12345.5D.1234,123.4,12345.5

69.有以下程序運行時,‘若輸入l23450<回車>,則輸出結果是()。

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

70.為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,通常也把這種圖稱為()。

A.PAD圖B.N—S圖C.結構圖D.數(shù)據(jù)流圖

71.

72.針對簡單程序設計,以下敘述的實施步驟順序正確的是()。

A.確定算法和數(shù)據(jù)結構、編碼、調(diào)試、整理文檔

B.編碼、確定算法和數(shù)據(jù)結構、調(diào)試、整理文檔

C.整理文檔、確定算法和數(shù)據(jù)結構、編碼、調(diào)試

D.確定算法和數(shù)據(jù)結構、調(diào)試、編碼、整理文檔

73.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。

A.控制流B.事件驅(qū)動C.模塊調(diào)用D.數(shù)據(jù)流

74.已知大寫字母A的ASCIl碼值是65,小寫字母a的ASCIl碼值是97。以下不能將變量C中的大寫字母轉(zhuǎn)換為對應小寫字母的語句是()。

A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"

75.一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA

76.軟件需求規(guī)格說明書的作用不包括()。

A.軟件設計的依據(jù)B.軟件可行性研究的依據(jù)C.軟件驗收的依據(jù)D.用戶與開發(fā)人員對軟件要做什么的共同理解

77.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

當運行程序時,輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

78.以下不能正確定義二維數(shù)組的選項是()。

A.

B.

C.

D.

79.

表示關系X<=Y<=Z的C語言表達式為()。

A.(X<=Y)&&(Y<=Z)

B.(X<=Y)AND(Y<=Z)

C.(X<=Y<=Z)

D.(X<一Y)&(Y<一Z)

80.有以下程序:

程序的運行結果是()。

A.0B.9C.6D.8

五、程序改錯題(1題)81.給定程序MODll.C中,函數(shù)fun的功能是:在有n名學生,2門課成績的結構體數(shù)組std中,計算出第l門課程的平均分,作為函數(shù)值返回。例如,主函數(shù)中給出了4名學生的數(shù)據(jù),則程序運行的結果為:第l門課程的平均分是:76.125000請改正函數(shù)fun中指定部位的錯誤,使它能得出正確的結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將ss所指字符串中所有下標為奇數(shù)的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入“abc4EFg”,則應輸出“aBc4EFg”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*ss){}voidmain(void){ chartt[51]; printf(“\nPleaseenterancharacterstringwithin50characters:\n”); gets(tt); printf(“\n\nAfterchanging,thestring\n%s”,tt); fun(tt); printf(“\nbecomes\n%s”,tt);}

參考答案

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

2.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個字符串,然后將指針變量p加3,即使其指向字符串的第四個元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個十進制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。

strcpy的調(diào)用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復制到目的地址中,這種復制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復制到目的地址字符串的后面。

strlen的調(diào)用格式是:strlen(字符串地址),其功能是返回字符串中字符的個數(shù)。

那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結果是4。因此本題正確的答案是C。

3.D

4.C

5.D

6.B

7.B

8.B本題主要考查標識符的命名規(guī)則。選項A是合法的用戶標識符,它符合命名的規(guī)則;選項B不是一個合法的用戶標識符,因為它是系統(tǒng)中定義了的關鍵字;選項C是一個合法的標識符;選項D可能也會有很多人認為它不是一個合法的標識符,認為它是關鍵字,但事實上它不是一個關鍵字,因為C語言中嚴格區(qū)分大小寫,因此,它不是雙精度關鍵字“double”,所以它是一個合法的用戶標識符。

9.D

10.C

11.A選項B是從鍵盤上輸入字符串,選項C是接收字符,選項D不正確。

12.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)。

13.D解析:本題考查指向字符串指針的運算方法。執(zhí)行p=s+1后,指針變量p就指向字符串中的第二個字符“B”,然后輸出字符串“BCD”并換行;下面繼續(xù)執(zhí)行循環(huán)語句,指針變量p指向下一個字符“C”,輸出字符串“CD”,最后一次循環(huán),p指向字符“D”,輸出字符串“D”。

14.A解析:fun()函數(shù)中聲明了兩個字符串指針作為形參,在其函數(shù)體中用了一個while循環(huán),首先while括號內(nèi)表達式*p2=*p1是將p1所指的內(nèi)容賦值到P2所指的存儲空間中,然后再判斷是否為'\\0',表達式的值為真時,執(zhí)行循環(huán)體,指針p1和指針P2分別下移一位,當p1指向字符'\\0'時,表達式的值為假,循環(huán)結束,故此函數(shù)的功能是將p1所指字符串復制到p2所指內(nèi)存空間中。

15.C

16.A

17.D解析:本題主要考查左移、右移對數(shù)據(jù)值的影響,左移n位相當于乘以2的n次冪,右移n位相當于除以2的n次冪。

18.B解析:以“wt”方式寫入的是字符文件,轉(zhuǎn)義字符\'\\n\'被看作兩個字符來處理。而'wb'方式寫入的是二進制文件,轉(zhuǎn)義字符\'\\n\'是一個字符。故正確答案為選項B)。

19.CC選項中不能含有逗號,所以“1,234”不能用作C語言程序的合法常量。B選項表示的是八進制的常量,D選項表示的是十六進制的常量。故本題答案為C選項。

20.A在一個函數(shù)內(nèi)的復合語句中定義的變量在本復合語句塊范圍內(nèi)有效,選項A錯誤,其他選項正確。本題答案為A選項。

21.includeinclude解析:include命令可調(diào)用標準的C語言庫函數(shù),可以用一對尖括號或一對雙引號將“.h”文件括起來,在include前面要加“#”。

22.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

23.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時,j=3,i=5。因為switch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時,j=2,i=4,因為switch(2),所以執(zhí)行case2,調(diào)用P(a[i++])-P(a[4])=P(5),輸出5,之后i自加等于5。

24.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

25.x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;解析:本題考核的知識點是鏈表中結點的刪除。要刪除結點y,只需要讓結點x的指針域指向y結點的指針域所指向的后續(xù)結點就可,因此只需把結點2的地址賦給x的指針域就可以了即讓結點x的指針域指向結點2。而結點z得地址保存在節(jié)點y的指針域中,因此只需把節(jié)點y的指針城賦值給節(jié)點x的指針域即可。

26.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。

27.連續(xù)連續(xù)解析:順序存儲結構具有兩個特點:1)數(shù)據(jù)元素所占空間是連續(xù)的;2)數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的。

28.j<4arr[i][j]arr[i][j]j<4\r\narr[i][j]\r\narr[i][j]解析:2*4矩陣實際上就是一個二維數(shù)組,結合本題應為arr[2][4],所以在第一個循環(huán)中應當填寫“4”;第二個橫線處是要判斷當前的數(shù)組元素值是否大于max,所以應填寫arr[i][j];第三個橫線處是要將當前大于max的數(shù)組元素的值賦給變量max,所以應當填寫“arr[i][j]”。

29.s[i]<'0'||s[i]>'9'或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))或isdigit(s[i])==0或s[i]>'9'||s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'||*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'或!(*(s+i)<='9'&&*(s+i)>='0'或isdigis[i]<'0'||s[i]>'9'或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))或isdigit(s[i])==0或s[i]>'9'||s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'||*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'或!(*(s+i)<='9'&&*(s+i)>='0'或isdigi解析:從一個字符串中刪除某字符的力‘法是從字符串的第一個字符開始一一判斷該字符是否是要被刪除,若不是則把它放到結果字符串中,若是則不放入結果字符串中。本題的第一個空應判斷s[i]是否為數(shù)字字符,只有在不是數(shù)字字符的情況下才存入結果字符串,所以應填入s[i]<'0'||s[i]>'9'。最后應在結果字符串的末尾填上字符串結束標志\\0。

30.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。

31.軟件開發(fā)

32.消息消息解析:對象之間進行通信的構造叫做消息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

33.本題主要考查for循環(huán)語句。for循環(huán)的增量表達式為逗號表達式,相當于k+=2;,即每次循環(huán)后k增加2。第一次循環(huán)時,k=2,因此輸出##2;第二次循環(huán)時k=4,輸出##4。此后k=6,不滿足循環(huán)條件。\r\n\r\n

34.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時,j=3,i-5,因為switch(3),所以執(zhí)行case3,調(diào)用P(a[-i)=p(a[4])=P(5),輸出5;第二次循環(huán)時,j=2,i=4,因為switch(2),所以執(zhí)行case2,調(diào)用P(s[i++])=P(a[4])=P(5),輸出5,之后i的n等于5。

35.從定義到本源文件結束從定義到本源文件結束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結束。

36.指針P指向數(shù)組a的首地址,執(zhí)行語句p++;后p指向數(shù)組a的第2個元素的地址,即a[1]的地址,因此*p=a[1]=4。\r\n\r\n

37.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似屬性與操作的一組對象。

38.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結束。在這個程序中a、b、c的值沒做任何改變。

39.k=p;k=p;解析:要找數(shù)組中最大元素的下標,首先預設數(shù)組首元素下標為臨時最大元素的下標,從首元素開始順序向后繼元素逐一比較,當發(fā)現(xiàn)當前元素比臨時最大元素更大時,就用當前元素的下標更新臨時最大元素下標,直至比較了數(shù)組的全部元素后,臨時最大元素下標就是數(shù)組中最大元素的下標。程序中,變量k用于存儲臨時最大元素下標,變量p控制順序比較的循環(huán)變量。當發(fā)現(xiàn)當前元素s[p]比臨時最大元素s[k]更大時,用p更新k。所以在下劃線處應填入代碼“k=p;”。

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

41.D解析:主函數(shù)中首先定義了三個結構體指針變量p,q,r。然后調(diào)用內(nèi)存分配函數(shù)分別為其分配地址空間,程序中變量q->num的值為20,指針變量q->next指向指針變量r,r->num的值為30,所以變量q->next->num的值為30,因此,表達式q->num+q->next->num的值為20+30=50。

42.B

43.B解析:結構體類型的變量在程序運行期間要作為一個整體占用連續(xù)的內(nèi)存單元。

44.D\nD【解析】存儲器中.存取速度最快的是內(nèi)存。

\n

45.B解析:合法的標識符是由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線,用戶定義的標識符不能與關鍵字相同。選項A),數(shù)字不能為第一個字母,auto為關鍵字;選項C)中,也是數(shù)字不能為第一個字母,else為關鍵字;選項D)中負號不合法。

46.C解析:①C語言中的賦值號“=”是—個運算符;②賦值語句是由賦值表達式加上一個分號構成。賦值表達式的左側不能為常量或表達式。

47.A解析:本題中定義一個全局變量a和一個局部變量a。局部變量和全局變量的不同在于,局部變量的存儲單元都是在進入這些局部變量所在的函數(shù)體(或復合語句)時生成,退出其所在的函數(shù)體(或復合語句)時消失,而全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域從變量定義的位置開始,到整個源文件結束為止。若全局變量和某一函數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽,在該函數(shù)內(nèi),起作用的將是局部變量,與同名的全局變量不發(fā)生任何關系。在程序中首先定義了變量s并賦值為0,接著在嵌套的復合語句{}中定義了變量a并賦初值為5,接著執(zhí)行語句s+=a+a;在這條語句中a加1,但表達式a++還是原來的值,故s=s+5,s為5,程序執(zhí)行到外層,此時{}內(nèi)定義的變量a不再有效,此時的變量a為{}之前定義的且初值為3,接著執(zhí)行{}后面的語句s+=a++;相當于執(zhí)行語句s=s+(++);即s=5+3,最后值為8,所以最后輸出的s值為8。所以4個選項中A正確。

48.C解析:通過for循環(huán)語句s=*(t+0)+*(t+2)+*(t+4)+*(t+6)+*(t+8)=1+3+5+7+9=25。

49.D解析:sizeof函數(shù)計算已知類型所占的字節(jié)數(shù)。結構體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。指針變量占2個字節(jié),所以cat和*next各占2個字節(jié);double型占8個字節(jié),故too共占12個字節(jié)。

50.A解析:C程序由順序結構、選擇結構和循環(huán)結構三種基本的結構組成,這三種結構可以組成任何復雜的C程序,即可以完成任何復雜的任務。

51.D解析:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。

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

53.C解析:由棧的定義可知,棧是先進后出(或后進先出)的線性表,因此,棧具有記憶功能。

54.B解析:本題定義了一個返回值為指針的函數(shù)f(),此函數(shù)有兩個指針型的形參x和y,該函數(shù)的功能,是返回x和y指向的變量中值較小的那個指針變量。主函數(shù)中定義了兩個指針變量p和q,并讓它們指向了變量a和b,調(diào)用函數(shù)f(),返回指向的變量值較小的指針變量,r的值為指針變量p的值(變量a的地址),因此最后輸出的*p、*q和*r的值是7,8和7。所以,B選項為所選。

55.C解析:^是按位異或運算,如果對應位不同則結果為1,相同則為0。

56.B解析:本題主要考查的是打開文件函數(shù)fopen().題目開始定義了一個函數(shù),該函數(shù)有兩個字符指針型參數(shù),其作用分別用來傳入文件名和文件內(nèi)容。函數(shù)首先定義一個文件指針印,然后使用fopen()函數(shù)打開參數(shù)fn所指定的文件。本題的關鍵就在于fopen()函數(shù)的第2個參數(shù),這個參數(shù)指定了文件打開的方式。'w'表示為寫而打開一個文本文件,如果文件不存在,則新建一個文件,否則將清空原有文件。接下來函數(shù)使用fputs()函數(shù)將參數(shù)str中的內(nèi)容寫入文件,最后調(diào)用fclose()函數(shù)關閉文件。在主函數(shù)中兩次調(diào)用該函數(shù),但寫入的是同一個文件,故只有最后一次寫入有效。所以應該選擇B。

57.D

58.B

59.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應注意下列兩點:①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定;當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大??;當初值的個數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

60.D

61.C

62.B解析:選項A中定義的是5個數(shù)組元素,但賦值的時候賦的是6個元素,所以出錯;選項C不符合數(shù)組定義形式,數(shù)組名后應加上“[]”;選項D的類型說明符錯誤,如果用char定義就對了;選項B中的0,1,2,3,4,5分別表示對應字符的\u3000ASCII碼,所以選項B是正確的。

63.A本題主要考查if結構的應用。在程序中,首先定義三個整型變量a,b,c,并分別賦初值為2,-1,2,然后執(zhí)行第一條if語句,由于變量a的值大于變量b的值,a<b為假,那么接著執(zhí)行第二條if語句,由于變量b的值小于0,b<0為真,則執(zhí)行c=0,這時跳過else結構,輸出結果為0。

提醒注意:if與else結構具有就近結合的原則。本題中的else結構與第二個if語句結合,而不是與第一個if語句結合。

64.C解析:逗號表達式的求解步驟是先求解表達式1,然后依次求解表達式2,直到表達式N的值。整個逗號表達式的值就是最后一個表達式N的值。

表達式(x=3*y,x+1)中,第一個表達式x=3*y=3*5=15;第二個表達式x+1=16,但沒有給x或y賦值,所以x還是等于15;第3個表達式x-1=15-1=14,所以y的值為14。

65.Ac語言的邏輯運算符比較特別,它的操作數(shù)沒有明確的數(shù)據(jù)類型,可以是仨意合法的表達式,因此選擇A)。

66.B

67.C棧是先進后出的數(shù)據(jù)結構,在對棧操作的整個過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來完成,因此本題答案為c)。

68.C本題主要考查C語言的輸出格式。在本題程序中,分別給出了三個不同類型的變量并賦初值。三個變量中,一個為整型,一個為單精度型,一個為雙精度型,然后用一條輸出語句將它們輸出,輸出的格式分別為%2d,%2.1f,%2.1f。

%2d表示輸出位數(shù)為兩位的整型數(shù)據(jù),但很顯然,題目中給出的數(shù)據(jù)不只兩位,那么需要按其實際位數(shù)輸出,因此,最后輸出變量a的結果為1234。

%2.1f表述輸出位數(shù)為兩位的實型數(shù)據(jù),并保留一位小數(shù)位,同樣,題目中給出的數(shù)據(jù)不只兩位,那么需要按其實際位數(shù)輸出。這里需要注意,因為小數(shù)位很多,只輸出一位時需要對其進行四舍五入操作。因此,最后輸出變量b的結果為1234.5;輸出變量C的結果為12345.5。

69.A第一次循環(huán)輸出65;然后s接收到2,第二次循環(huán)輸出6;。接收到3,第三次循環(huán)輸出64;接收到4,第四次循環(huán)輸出5;接收到5,第五次循環(huán)輸出6;接收到0,結束循環(huán),所以答案為A):

70.BN-S圖的定義;在使用過程中,人們發(fā)現(xiàn)流程線不一定是必需的,為此,人們設計了一種新的流程圖,它把整個程序?qū)懺谝粋€大框圖內(nèi),這個大框圖由若干個小的基本框圖構成,這種流程圖簡稱N-S圖

71.C

72.A\nC語言中程序中的步驟實現(xiàn)為:先確定程序中的算法和數(shù)據(jù)結構,然后進行程序的編碼,再進行對程序的調(diào)試,最后進行文檔的整理和記錄。使用這種步驟可以方便程序的編寫以及在完成后提高代碼的重用性。

\n

73.D解析:數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要的圖形元素與說明如下:

加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。

數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名。

存儲文件(數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。

源,潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體。

74.A根據(jù)題意可知,小寫字母比與之對應的大寫字母的ASCⅡ碼大32。A選項中字符A加上c表示的大寫字符再對字母個數(shù)26取余,本身這個表達式?jīng)]有任何含義,所以選擇A選項。

75.B棧是先進后出的原則組織數(shù)據(jù),所以人棧最早的最后出棧,所以選擇B。

76.B《軟件可行性分析報告》是軟件可行性研究的依據(jù)。

77.A在本題中,程序首先定義一個返回類型為整型的函數(shù)fun,該函數(shù)帶有一個指針型的形參變量str,從主函數(shù)中對其調(diào)用時傳遞的參數(shù)我們可以知道,該指針指向的是一個數(shù)組,在該函數(shù)體中,首先定義兩個整型變量,然后執(zhí)行循環(huán),循環(huán)變量i的初始值為0,循環(huán)結束的條件是str[i]!=’\\0’,表示取到的數(shù)組元素是字符串結束標識,即字符串中的字符被處理完,在循環(huán)體中,首先執(zhí)行條件判斷語句if(str[i]!=’’),如果結果為真,說明取到的當前字符不是空字符,這時執(zhí)行str[j++]=str[i],即將非空格字符保存到數(shù)組中;如果為假,說明取到了空格字符,此時不保存,而接著執(zhí)行下次循環(huán)跳過空格字符。循環(huán)結束后執(zhí)行str[j]=’\\0’;,即保存字符結束標識符,用來標識字符串結束。通過上面的這些分析,我們可以知道函數(shù)fun的作用是去掉字符數(shù)組中的空格字符。

在主函數(shù)中,首先定義了一個大小為81的字符數(shù)組,然后調(diào)用函數(shù)clrscr()清除輸入文本窗口,接著輸出一條提示語句,執(zhí)行gets(str);語句,該語句的作用是從鍵盤輸入一個字符串到str數(shù)組,碰到換行符結束。然后調(diào)用函數(shù)fun,其實參為str。通過上面對函數(shù)fun作用的分析我們可以知道,調(diào)用函數(shù)后輸入字符串中的空格符都被刪除了,最后得到的字符串為asdafaaz67。

程序最后執(zhí)行輸出語句,輸出字符數(shù)組str中的字符串,因此,程序最終的輸出結果是asdafaaz67,本題答案選A。

78.D本題的考查點是二維數(shù)組的定義和初始化。

選項A)定義的數(shù)組中各元素實際上是這樣的:

1,0

2.O

選項B)定義的數(shù)組中各元素實際上是這樣的:

1,2

3.4

選項c)定義的數(shù)組中各元素實際上是這樣的:

1,0

2.3

選項D)錯在省略了第2維的長度。C中在對數(shù)組進行初始化時,如果對全部元素都賦初值(即提供全部初始數(shù)據(jù)),則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省。

79.A

\n題中X<=Y<=Z的意思為X<=Y并且Y<=Z,在c語言中,要表示“且”的關系,應用“與”邏輯運算符,即“&&”,故選擇A選項。

\n

80.C函數(shù)intf(intx)是一個遞歸函數(shù)調(diào)用,

81.(1)doublesum改為doublesunl=0.0;(2)for(i=0;i<2;i*)改為細(i=0;i<2;i++)改為for(i_0;i82.voidfun(char*ss){ inti; for(i=0;ss[i]!=‘\0’;i++)/*將ss所指字符串中所有下標為奇數(shù)的字母轉(zhuǎn)換為大寫字母*/ if(i%2==1&&ss[i]>=‘a(chǎn)’&&ss[i]<=‘z’) ss[i]=ss[i]-32;}將指定字符串中奇數(shù)位置的字母轉(zhuǎn)換為大寫字母,首先需要判斷奇數(shù)位置,再判斷該位置字符是不是小寫字母,如果是小寫字母,則將小寫字母轉(zhuǎn)換為大寫字母。字母大小寫轉(zhuǎn)換操作中,只要將小寫字母的ASCII值減去32即可轉(zhuǎn)換為大寫字母。2021-2022年湖北省襄樊市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序#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

2.第

24

下面程序段的運行結果是

char*p="abcdefgh";

p+=3;

printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

3.下列一維數(shù)組初始化語句中,正確且與語句floata[]={0,3,8,0,9};等價的是().

A.floata[6]={0,3,8,0,9};

B.floata[4]={0,3,8,0,9};

C.floata[7]={0,3,8,0,9};

D.floata[5]={0,3,8,0,9};

4.廣義表(a,b,c,d)的表尾是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

5.對于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應為()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF

6.

7.若串S=,software,其子串的數(shù)目是()。

A.8B.37C.36D.9

8.下列不可用于C語言用戶標識符的是A.A.j2_KEY

B.char

C._g_

D.Double

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

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

10.可以作為Windows外殼程序的是()

A.程序管理器B.文件管理C.程序管理器和文件管理器D.主群組

11.設有定義:“char*c;”,以下選項中能夠使字符型指針c正確指向一個字符串的()。

A.charstr[]="string";c=str;

B.scanf(%s,c):

C.c=getchar();

D.*c="strin9";

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

13.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

14.已定義以下函數(shù)fun(char*p2,char*p1){while((*p2=*p1)!='0'){P1++;p2++;}}函數(shù)的功能是

A.將p1所指字符串復制到p2所指內(nèi)存空間

B.將P1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針所指字符串進行比較

D.檢查P1和p2兩個指針所指字符串中是否有'\0'

15.

16.采用深度優(yōu)先搜索或拓撲排序算法可以判斷出一個有向圖中是否有環(huán)(回路)()

A.對B.錯

17.在位運算中,操作數(shù)每左移兩位,其結果相當于()。

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4

18.對于下述程序,在方式串分別采用“wt”和“wb”運行時,兩次生成的文件TEST的長度是#include<stdio.h>voidmain(){FILE*fp=fopen("TEST",);fputc('A',fp);fputc('\n',fp);fputc('B',fp);fputc('\n',fp);fputc('C',fp);fclose(fp);}

A.7字節(jié)、7字節(jié)B.7字節(jié)、5字節(jié)C.5字節(jié)、7字節(jié)D.5字節(jié)、5字節(jié)

19.以下選項中不能用作C語言程序合法常量的是()。

A.123B.‘\123’C.1,234D.“\x7D”

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

A.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效

B.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

C.在不同的函數(shù)中可以定義相同名字的變量

D.函數(shù)的形參是局部變量

二、2.填空題(20題)21.調(diào)用C語言標準庫函數(shù)時要求用【】命令。

22.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

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

#defineP(A)printf("%d",A)

main()

{intj,a[]={1,2,3,4,5,6,7),i=5;

for(j=3;j>1;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

24.下列程序運行后的輸出結果是______。

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

25.設有以下定義

stnctss

{intinfo;sEruc5ss*link;}x.y,z;

且已建立如下圖所示鏈表結構:

請寫出刪除結點y的賦值語句______。

26.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%x\n",p);

printf("%x\",p+9);

}

27.在數(shù)據(jù)結構中,順序存儲結構的數(shù)據(jù)元素所占的存儲空間是______的。

28.以下函數(shù)用于求出一個2×4矩陣中的最大元素值。

max_value(arr)

intarr[][4];

{

inti,j,max;

max=arr[O][0];

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

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

if(【】>max)max=【】;

return(max);

}

29.以下函數(shù)的功能是刪除字符串s中的所有數(shù)字字符。請?zhí)羁铡?/p>

voiddele(char*s)

{

intn=0,i;

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

if(【】)

s[n++]=s[i];

s[n]=【】;

}

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

31.軟件工程研究的內(nèi)容主要包括:【】技術和軟件工程管理。

32.在面向?qū)ο蠓椒ㄖ校瑢ο笾g進行通信的構造稱為()。

33.若有定義:intk;,以下程序段的輸出結果是______。for(k=2;k<6;k++,k++)printf("##%d",k);

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

#defineP(a)printf("%d",a)

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>l;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

35.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

37.在面向?qū)ο蠓椒ㄖ校尽棵枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。

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

#include<stdio.h>

main()

{inta=2,b=-1,c=2;

if(a<b)

if(b<0)c=0;

elsec++;

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

}

39.下面程序的功能是輸出數(shù)組s中最大元素的下標,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

}

40.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。

三、1.選擇題(20題)41.有以下程序

#include<stdlib.h>

structNODE

{intnum;stmctNODE*next;};

main()

{structNODE*p,*q,*r;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(structNODE*)malloc(sizeof(structNODE));

p->num=10;q->num=20;r->num=30;

p->next=q;q->next=r;

printf(“%d\n”,p->num+q->next->num);

}

程序運行后的輸出結果是

A.10B.20C.30D.40

42.請讀程序片段:inti=65536;printf("%d”\n”,i;上面程序片段的輸出結果是()

A.65536B.0C.有語法錯誤,無輸出結果D.-l

43.C語言結構體類型變量在程序運行期間

A.TC環(huán)境在內(nèi)存中僅僅開辟一個存放結構體變量地址的單元

B.所有的成員一直駐留在內(nèi)存中

C.只有最開始的成員駐留在內(nèi)存中

D.部分成員駐留在內(nèi)存中

44.下列存儲器中,存取速度最快的是()。

A.軟盤B.硬盤C.光盤D.內(nèi)存

45.下面各選項中,均是C語言合法標識符的選項組是

A.33weautoB._23me_3ewC._433e_elseD.ER-DF32

46.在下面的語句中,賦值語句錯誤的是_______。

A.a=(b=(c=2,d=3));B.i++;C.a=a/b=2;D.a=a<a+1;

47.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序運行后的輸出結果是______。

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

48.有以下程序:maln(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結果是()。

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

49.設有以下定義和語句,輸出的結果是(用small模式編譯,指針變量2個字節(jié))______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));

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

50.結構化程序由三種基本結構組成,三種基本結構組成的算法A.可以完成任何復雜的任務B.只能完成部分復雜的任務C.只能完成符合結構化的任務D.只能完成一些簡單的任務

51.在軟件測試設計中,軟件測試的主要目的是

A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.盡可能多地發(fā)現(xiàn)軟件中的錯誤

52.閱讀下列程序段,則程序的輸出結果為#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

53.下列數(shù)據(jù)結構中具有記憶功能的是()。

A.隊列B.循環(huán)隊列C.棧D.順序表

54.有以下程序:int*flint*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}執(zhí)行后輸出結果是()。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

55.已知inta=1,b=3則a^b的值為

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

56.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運行后,文件t1.dat中的內(nèi)容是

A.startB.endC.startendD.endrt

57.以下程序的輸出結果是()#include<stdlib.h>inta[3][3]={1,2,3,4,5,6,7,8,9},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n",*p);}f(int*s,intp[][3]){*s=p[1][1];}

A.1B.4C.7D.5

58.計算機硬件組成中,CPU包含______。

A.控制器和存儲器B.控制器和運算器C.控制器、運算器和存儲器D.內(nèi)存儲器和外存儲器

59.若有說明:inta[][3]={0,0};則不正確的敘述是()。

A.數(shù)組a的每個元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

60.若有定義inta[5],*p=a;則正確引用數(shù)組元素的是()。

A.*&a[5]B.*a+2C.*(p+5)D.*(a+2)

四、選擇題(20題)61.瀏覽器中用于負責向用戶顯示數(shù)據(jù)的是()。

A.WWWB.IP地址C.HTMLD.DNS

62.以下能正確定義一維數(shù)組的選項是()。

A.

B.

C.

D.

63.有如下程序

main()

{

inta=2,b=-1,c=2;

if(a<b)c=1;

if(b<0)c=0;

elsec++;

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

}

該程序的輸出結果是

A.0B.1

C.2D.3

64.

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

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

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

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

65.以下關于邏輯運算符兩側運算對象的敘述中正確的是()。

A.可以是任意合法的表達式B.只能是整數(shù)0或非0整數(shù)C.可以是結構體類型的數(shù)據(jù)D.只能是整數(shù)O或l

66.

67.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化

B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化

C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化

D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化

68.下列程序段的輸出結果是

inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("%2d,%2.1f,%2.1f",a,b,c);

A.無輸出B.12,123.5,12345.5

C.1234,123.5,12345.5D.1234,123.4,12345.5

69.有以下程序運行時,‘若輸入l23450<回車>,則輸出結果是()。

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

70.為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,通常也把這種圖稱為()。

A.PAD圖B.N—S圖C.結構圖D.數(shù)據(jù)流圖

71.

72.針對簡單程序設計,以下敘述的實施步驟順序正確的是()。

A.確定算法和數(shù)據(jù)結構、編碼、調(diào)試、整理文檔

B.編碼、確定算法和數(shù)據(jù)結構、調(diào)試、整理文檔

C.整理文檔、確定算法和數(shù)據(jù)結構、編碼、調(diào)試

D.確定算法和數(shù)據(jù)結構、調(diào)試、編碼、整理文檔

73.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。

A.控制流B.事件驅(qū)動C.模塊調(diào)用D.數(shù)據(jù)流

74.已知大寫字母A的ASCIl碼值是65,小寫字母a的ASCIl碼值是97。以下不能將變量C中的大寫字母轉(zhuǎn)換為對應小寫字母的語句是()。

A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"

75.一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA

76.軟件需求規(guī)格說明書的作用不包括()。

A.軟件設計的依據(jù)B.軟件可行性研究的依據(jù)C.軟件驗收的依據(jù)D.用戶與開發(fā)人員對軟件要做什么的共同理解

77.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

當運行程序時,輸入asdafaaz67<回車>,則輸出是A.A.asdafa

溫馨提示

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

評論

0/150

提交評論