2021-2022年甘肅省嘉峪關市全國計算機等級考試C語言程序設計_第1頁
2021-2022年甘肅省嘉峪關市全國計算機等級考試C語言程序設計_第2頁
2021-2022年甘肅省嘉峪關市全國計算機等級考試C語言程序設計_第3頁
2021-2022年甘肅省嘉峪關市全國計算機等級考試C語言程序設計_第4頁
2021-2022年甘肅省嘉峪關市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年甘肅省嘉峪關市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.按照“先進先出”組織數(shù)據(jù)的數(shù)據(jù)結構是()。

A.隊列B.棧C.雙向鏈表D.二叉樹

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

A.35B.3,5C.3;5D.35

3.以下關于C語言的敘述中正確的是()。

A.C語言中的注釋不可以夾在變量名或關鍵字的中間

B.C語言中的變量可以在使用之前的任何位置進行定義

C.在C語言算術表達式的書寫中,運算符兩側的運算數(shù)類型必須一致

D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示

4.以下選項中,當x為大于1的奇數(shù)時,值為0的表達式是A.x%2==1B.x/2C.x%2!=0D.x%2==0

5.算法的空間復雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法所需要的存儲空間

6.若x=10010111,則表達式(3+(int)(x))&(~3)的運算結果是()。

A.10011000B.10001100C.10101000D.10110000

7.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長度大于5,則輸出按方式()。

A.從左起輸出該字串,右補空格B.按原字符長從左向右全部輸出C.右對齊輸出該字串,左補空格D.輸出錯誤信息

8.

9.若要求在if后一對圓括號中表示a不等于0的關系,則能正確表示這一關系的表達式為()

A.a<>0B.!aC.a=0D.a

10.若某表最常用的操作是在最后一個結點之后插入一個結點或刪除最后一個結點,則采用()存儲方式最節(jié)省運算時間。

A.單鏈表B.給出表頭指針的單循環(huán)鏈表C.雙鏈表D.帶頭結點的雙循環(huán)鏈表

11.下列字符數(shù)組初始化語句中,不正確的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

C.charc[]={a,b,c,d);

D.charc[]={"ffgoodmorning"};

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

A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的共享問題

C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)

D.以上三種說法都不對

13.在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細設計B.需求分析C.總體設計D.編程調試

14.以下是if語句的基本形式:

if(表達式.語句

其中“表達式”()。

A.必須是邏輯表達式B.必須是關系表達式C.必須是邏輯表達式或關系表達式D.可以是任意合法的表達式

15.有以下程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;for(;j<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i]);printf("\n");}如果從鍵盤上輸入:ab<回車>c<回車>def<回車>則輸出結果為______。

A.abcdefB.abcdC.abcdD.abcdef

16.軟件生命周期中的活動不包括()

A.軟件維護B.市場調研C.軟件測試D.需求分析

17.C語言函數(shù)中未指定存儲類的變量,其隱含類別是()

A.autoB.staticC.registerD.void

18.在KMP算法中,已知模式串為ADABCADADA,請寫出模式串的next數(shù)組值()

A.0,1,1,2,1,1,2,3,4,3

B.1,2,3,2,1,1,2,4,4,3

C.0,1,1,1,2,1,2,3,4,3

D.2,1,1,2,1,1,2,3,3,4

19.在以下的敘述中,正確的是()。

A.線性表的順序存儲結構優(yōu)于鏈表存儲結構

B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表

C.棧的操作方式是先進先出

D.隊列的操作方式是先進后出

20.計算機算法指的是()。

A.計算方法B.排序方法C.解決問題的有限運算序列D.調度方法

二、2.填空題(20題)21.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。

22.[]的任務是診斷和改正程序中的錯誤。

23.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。

wordnum(str)

charstr[];

{inti,num=0,word=0;

for(i=0;str[i]!=【】;i++)

if(【】==)word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

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

charstr[]="ABCD",*p=str;

printf("%d\n",*(p+3));

25.在先左后右的原則下,根據(jù)訪問根結點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

27.以下程序的功能是根據(jù)輸入的“y”(“Y”)與“n”(“N”),在屏幕上分別顯示出“ThisisYES.”與“ThisisNO.”??瞻滋幮枰钊氲膬热菔?/p>

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES.\n");

case'n':

case'N':Printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnte

28.fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大數(shù),再求這N個最大值中最小的那個數(shù)并作為函數(shù)值返回。請?zhí)羁铡?/p>

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{introw,col,max,min;

for(row=0;row<N;row++)

{for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

29.按照邏輯結構分類,結構可以分為線性結構和非線性結構,棧屬于______。

30.度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為______。

31.本程序用改進冒泡法對數(shù)組a[n]的元素從小到大排序,請在程序空白處填空。

voidbubble(inta[],intn)

{intj,k,jmax,temp;

jmax=【】;

do{

k=0;

for(j=0;j<jmax;j++)

if(a[j]>a[j+1])

{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;

jmax=k;

}while(jmax>0);}

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

structdate

{intday;

intmouth;

intyear,

union{intshare1;

floatshare2;

}share;

}a;

33.若有以下程序

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í)行后輸出結果是______。

34.數(shù)據(jù)結構分為邏輯結構和存儲結構,循環(huán)隊列屬于______結構。

35.以下程序中給指針p分配3個double型動態(tài)內存單元,請?zhí)羁铡?/p>

#include<stdllb.h>

main()

{double*p;

p=(double*)malloc(【】);

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

36.設x和y均為int型變量,且x=1,y=2,則表達式2.0+y/x的值為【】。

37.下列程序的輸出結果是【】。

#definePR(a)printf("%d\t",(int)(a))

#definePRINT(a)PR(a);printf("ok!")

main()

{inti,a=1;

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

PRINT(a+i);

printf("\n");}

38.E-mail地址由用戶名和域名兩部分組成,這兩部分的分隔符為【】。

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

#include<stdio,h>

main()

{inta,b,c;

a=10;b:20;c=(a%b<1)‖(a/b>1);

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

}

40.結構化分析方法是面向______進行分析的方法。

三、1.選擇題(20題)41.以下程序的輸出結果是#include<stdio.h>main(){unionun{inti;longk;charc;};structbyte{inta;longb;unionunc;}r;printf("%d\n",sizeof(r));}

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

42.位運算071∧052的八進制值是()

A.52B.23C.17D.71

43.C語言中while和do-while循環(huán)的主要區(qū)別是

A.do-while的循環(huán)體至少無條件執(zhí)行一次

B.while的循環(huán)控制條件比do-while的循環(huán)控制條件更嚴格

C.do-while允許從外部轉到循環(huán)體內

D.do-while的循環(huán)體不能是復合語句

44.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的長度B.求字符串存放的位置C.比較兩個字符串的大小D.將字符串x連接到字符串y后面

45.下列數(shù)據(jù)結構中能應用二分查找的是()。

A.有序線性鏈表B.有序順序表C.順序存儲的棧D.順序存儲的隊列

46.若變量已正確定義,要求通過scanf("%c%d%c%d",&c1,&a,&c2,&B)語句給變量a和b分別賦32和45,給變量c1和c2分別賦字符A和B;下列選項中數(shù)據(jù)從第1列開始輸入,正確的輸入形式是()。

A.A32<CR>B45<CR>B.A45<CR>B32<CR>C.A32B45<CR>D.A32B45<CR>

47.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

48.設inti=10,j=11,k=12,x=0;執(zhí)行語句:if(i>5)if(j>100)if(k>11)X=3;elsex=4;elsex=5;后x的值是()。

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

49.有以下程序

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

程序的運行結果是

A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1

50.數(shù)據(jù)結構作為計算機的一門學科,主要研究數(shù)據(jù)的邏輯結構、對各種數(shù)據(jù)結構進行的運算,以及()。A.A.數(shù)據(jù)的存儲結構B.計算方法C.數(shù)據(jù)映象D.邏輯存儲

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

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

52.請讀程序:#include<stdio.h>main(){inta=5,b=7,c=9;pintf("%d,%d,"a,b,C);printf("%d,%d",a,D);}上面程序的輸出結果是_______。

A.5,7,9,5,7B.5,7,5,7C.5,7,不定7,9D.5,7,5,7,不定

53.下面程序輸出的結果是()。#include<stdio.h>main(){char*a="1234";fun(a);printf("\n");}fun(char*s){chart;if(*s){t=*S++;fun(s);}elsereturn;if(t!='\0')putchar(t);}

A.1234B.4321C.1324D.4231

54.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

A.便于用戶,開發(fā)人員進行理解和交流

B.反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù)

C.作為確認測試和驗收的依據(jù)

D.便于開發(fā)人員進行需求分析

55.若有如下定義:ints[3]則下面表達式中不能代表數(shù)組元素s[1]的地址的是()

A.&s[1]B.&s[0]+1C.s+1D.s++

56.以下數(shù)組定義中錯誤的是()。

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6}};

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

D.intx[2][3]={1,2,3,4,5,6};

57.以下4個程序中,完全正確的是

A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}

B.#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}

C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}

D.include<stdio.h>main(){/*programming*/printf("programming!\n");}

58.TurboC將對以下程序______。main(){intx,y;y=creat(&x):printf("%d\n",y);}creat(inta){returna++;}

A.編譯時會給出出錯信息

B.順利進行編譯、連接、執(zhí)行,不報任何錯誤

C.順利通過編譯、連接,但不能執(zhí)行

D.順利通過編譯,但連接出錯

59.有以下程序: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

60.關于return語句,正確的說法是______。

A.在主函數(shù)和其他函數(shù)中均可出現(xiàn)

B.必須在每個函數(shù)中出現(xiàn)

C.可以在同一個函數(shù)中出現(xiàn)多次

D.只能在除主函數(shù)之外的函數(shù)中出現(xiàn)一次

四、選擇題(20題)61.有以下程序:

voidfunl(char*p)

{char*q;

q=P;

while(*q!='\O')

{(*q)++;q++;}

}

main

{chara[]={"Program"),*P;

p=&a[3];funl(p);

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

}

程序執(zhí)行后的輸出結果是()。A.A.ProhsbnB.PrphsbnC.ProgsbnD.Program

62.開發(fā)大型軟件時,產(chǎn)生困難的根本原因是()

A.大系統(tǒng)的復雜性B.人員知識不足C.客觀世界千變萬化D.時間緊、任務重

63.軟件(程序.調試的目標是()。

A.診斷和改正程序中的錯誤

B.盡可能多地發(fā)現(xiàn)程序中的錯誤

C.發(fā)現(xiàn)并改正程序中的所有錯誤

D.確定程序中錯誤的性質

64.下面不屬于軟件設計階段任務的是()。

A.制訂軟件確認測試計劃B.數(shù)據(jù)庫設計C.軟件總體設計D.算法設計

65.

66.耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。

A.提高耦合性降低內聚性有利于提高模塊的獨立性

B.降低耦合性提高內聚性有利于提高模塊的獨立性

C.耦合性是指一個模塊內部各個元素間彼此結合的緊密程度

D.內聚性是指模塊間互相連接的緊密程度

67.

68.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

69.在C程序中有如下語句:char*func(intx,inty);它是()。

A.對函數(shù)func的定義。B.對函數(shù)func的調用。C.對函數(shù)func的原型說明。D.不合法的

70.

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

A.對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為n

B.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為n/2

C.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為log2n

D.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為nlog2n

72.一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員與實體計算機之間的聯(lián)系是()。

A.一對一B.一對多C.多對多D.多對一

73.

74.下列程序的輸出結果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8

75.

76.

77.

78.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結果是______。A.21,43B.43,21C.43,00D.21,00

79.

有以下程序

#include<stdio.h>

inta=1;

intf(intc)

{staticinta=2:

c=c+1:

return(a++)+C;

}

main

(inti,k=0;

for(i=0;i<2;i++){inta=3;k+=f(a);}

k+=a:

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

}

程序運行結果是()。

A.14B.15C.16D.17

80.HTTP協(xié)議的GET請求方法可以獲取()類型的數(shù)據(jù)。

A.HTML文檔B.圖片C.視頻D.以上都可以

五、程序改錯題(1題)81.下列給定程序中函數(shù)proc()的功能是:將長整型數(shù)中為偶數(shù)的數(shù)依次逆向取出,構成一個新數(shù)放在t中。高位在低位,低位在高位。例如,當s中的數(shù)為12345678時,則t中的數(shù)為8642。

請修改函數(shù)proc()中的錯誤,使它能得出正確的結果。

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

試題程序:

六、程序設計題(1題)82.學生的記錄由學號和成績組成,M名學生的數(shù)據(jù)已在主函數(shù)中放人結構體數(shù)組stu中。請編寫函數(shù)proc(),它的功能是:函數(shù)返回指定成績的學生數(shù)據(jù),指定的成績在主函數(shù)中輸入。若沒找到指定的成績,在結構體變量中給學號置空串,給成績置-1,作為函數(shù)值返回。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。試題程序:

參考答案

1.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進先出”的原則組織數(shù)據(jù)的。

【知識拓展】“隊列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進先出,后進后出。

2.C輸入數(shù)據(jù)的格式必須與seanf()的格式控制串完全匹配,所以輸入時必須在3和5之間輸入“;”。

3.B解析:C語言中注釋可以放在任何位置,選項A錯誤;C語言中的變量只要在使用之前定義即可,位置可以是使用前的任何位置,故選項B正確;C語言中兩側數(shù)據(jù)類型可以不一致,系統(tǒng)可進行強制類型轉換,選項C錯誤;C語言數(shù)值常量中不允許存在空格,選項D錯誤。

4.D解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項A)、C)中表達式的結果為真,不為0;對于選項B)來說,x除以2的商不會等于0;選項D)中表達式的結果為假,即等于0。

5.D解析:算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂算法的時間復雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度一般是指執(zhí)行這個算法所需要的內存空間。

6.A解析:本題主要考查運算表達式的運算。3+(int)(x)的結果是10011010,~3的結果是11111100,二者邏輯與得10011000。

7.B

8.D

9.D

10.D

11.A本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②℃語言中沒有字符串變量,只能用字符數(shù)組來存儲字符串。

12.B解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。

數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還心須有其他相關軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡系統(tǒng)軟件的支持。因此,選項A的說法是錯誤的。

數(shù)據(jù)庫可以看成是長期存儲在計算機內的、大量的、有結構的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。

通常將引入數(shù)據(jù)庫技術的計算機系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由五個部分組成,包括相關計算機的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關軟件和人員。

因此,選項C的說法是錯誤的。

因此,本題的正確答案是選項B。

13.C解析:軟件系統(tǒng)結構的總體設計包括:基于功能層次結構建立系統(tǒng)、按功能劃分成模塊的層次結構、確定每個模塊的功能、建立與已確定的軟件需求的對應關系、確定模塊間的調用關系和模塊間的接口、評估模塊劃分的質量等方面。詳細設計的任務是:在使用程序設計語言編制程序以前,對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。需求分析是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進度需求等。編程調試的任務是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設計階段。

14.D解析:本題主要考查關于if語句的說明,if后面圓括號中的表達式,可是任意合法的C語言表達式(如:邏輯表達式、關系表達式、算術表達式、賦值表達式等),也可以是任意類型的數(shù)據(jù)(如:整型、實型、字符型、指針型等。)

15.C解析:1.getchar():此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設備)輸入一個字符。

2.putchar():此函數(shù)的作用是向終端輸出一個字符,也可以輸出控制字符。本題在輸入字符時,ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。

16.B【答案】:B

【知識點】:軟件生命周期

【解析】:一個軟件產(chǎn)品或軟件系統(tǒng)要經(jīng)歷孕育、誕生、成長、成熟、衰亡等階段,一般稱為軟件生命周期。它把整個軟件生存周期劃分為若干階段,使得每個階段有明確的任務,使規(guī)模大,結構復雜和管理復雜的軟件開發(fā)變的容易控制和管理。通常,軟件生存周期包括可行性分析與開發(fā)項計劃、需求分析、設計(概要設計和詳細設計)、編碼、測試、維護等活動,可以將這些活動以適當?shù)姆绞椒峙涞讲煌碾A段去完成。故選B。

17.A

18.A

19.B

20.C

21.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內存。然后將分配好的內存塊的首地址作為void*(未知類型指針)返回.故標準的調用形式應該寫成:

p(double*)malloc(sizeof(double));

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

23.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:

①for循環(huán)的結束條件應當是:str[i]已是字符串的最后一個字符;

②str[i]代表字符串sb中的第i+1個字符:

③整型變量num的值是要記錄的單詞的個數(shù)。

C語言中規(guī)定字符串的最后一個字符是一個隱含的字符串結束符“\\0”,所以在題中第一個空中應填寫“\\0”;題中第二個空應填寫“str[i]”,以判斷當前位置的字符是否為空格;題中第二個空中應當填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數(shù)。

24.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d”格式輸出的,即輸出其相應ASCII碼值68。

25.中序中序解析:在先左后右的原則下,根據(jù)訪問根結點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。后序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結點,最后遍歷左子樹。

26.14

27.

28.a[row][c01]>max或max<a[row][co1]max<min或min>maxa[row][c01]>max或max<a[row][co1]\r\nmax<min或min>max解析:本題有兩層for循環(huán),函數(shù)首先定義了整型變量row、col、max和min,其中row用于外循環(huán)的循環(huán)變量,col用于內循環(huán)的循環(huán)變量,max記錄每行中的最人值,min記錄所有行最大值中的最小值。在內循環(huán)中,首先給max賦初值為每行的第0個元素值,然后從第一個開始依次與max進行比較。如果大于max則將其值賦給max,當每一行循環(huán)結束,max記錄了每一行的最大值。所以第一個空應該填a[row][co1]>max或max<a[row][co1)。退出內循環(huán),在第一次退出內循環(huán)時,將min賦初值為第0行的max,然后在每次退出內循環(huán)時,將min和每行的max比較,如果大于max,則將max值賦min,所以第二個空應該填max<min或min>max,當退出外循環(huán)時,rain為所有行中的最大值的最小值。

29.線性結構線性結構解析:數(shù)據(jù)的邏輯結構是指數(shù)據(jù)元素之間的邏輯關系,分為線性結構和非線性結構。常見的線性結構有線性表、棧和隊列等,常見的非線性結構有樹、二叉樹等。

30.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。

31.n-1jn-1\r\nj解析:此題采用了do…while循環(huán)內嵌for循環(huán)的雙層循環(huán)結構來實現(xiàn)了數(shù)組元素的排序。數(shù)組元素通過首地址和數(shù)組下標的方式來引用的。

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

33.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。

34.存儲或物理或存儲結構或物理結構存儲或物理或存儲結構或物理結構解析:數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構(也稱數(shù)據(jù)的物理結構)。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用??芍?,循環(huán)隊列應當是物理結構。

35.3*sizeof(double)3*sizeof(double)解析:malloc(size)函數(shù)用于申請動態(tài)存儲空間,故應填3個double型變量在內存中所占的字節(jié)數(shù)。while循環(huán)的功能把字符從第二個元素開始左移一位,并將原第一個元素賦給最后一個元素。

36.4.0或44.0或4

37.123ok!123ok!解析:本題主要考查了printf函數(shù)用在了宏替換中。宏替換不是函數(shù)調用,只是一種簡單的字符替代。所以本題中PRINT(a+i)展開為:printf(“%d\\t”,(int)(a+i)),當i=0時,輸出1;當i=1時,輸出2;當i=2時;輸出3;for循環(huán)結束后輸出ok!。

38.@

39.1020010200解析:程序中(a%b<1)||(a/b>1)的運算順序為先算括號→算術運算符→關系運算符→邏輯運算符。首先計算a%b=10,a/b=0,因為a%b<1為假(0),a/b>1也為假(0),所以整個表達式的結果為假(0),最后輸出a,b,c的值為10200。

40.數(shù)據(jù)流數(shù)據(jù)流解析:結構化分析方法的實質是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

41.A解析:本題主要考查了結構體和共用體數(shù)據(jù)的存儲形式。共用體的一個特點是所有數(shù)據(jù)成員共用一段存儲單元,而結構體每個數(shù)據(jù)成員都單獨占據(jù)一段存儲單元。共用體所占存儲單元的大小由長度最長的數(shù)據(jù)成員的長度決定。題中共用體變量c占據(jù)4個字節(jié)的長度,結構體r所占存儲空間的大小為int(2個字節(jié))+long(4個字節(jié))+共用體c(4個字節(jié))=10個字節(jié),所以答案為A)。

42.C

43.A解析:while是先判斷條件再執(zhí)行語句;do-while則是先執(zhí)行依次語句再判斷條件從而決定是否繼續(xù)再執(zhí)行循環(huán)體中的語句,這正是二者主要區(qū)別。注意:3種循環(huán)結構的比較。

44.A解析:在函數(shù)體內定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。

45.B解析:二分查找的具體過程為:將x與線性表的中間項進行比較,若中間項的值等于x,則說明查到,查找結束:若x小于中間項的值,則性表的前半部分(即中間項以前的部分)以相同的方法進行查找:若x大于中間項的值,則性表的后半部分(即中間項以后的部分)以相同的方法進行查找。這個過程一直進行到查找成功或子表長度為0(說明線性表中沒有這個元素)為止。由此可知,有序線性表/頃序存儲時才能采用二分查找。所以,本題的正確答案為B。

46.D解析:本題考查scanf函數(shù)的基本格式。當需要從鍵盤上輸入數(shù)據(jù)時,輸入的數(shù)值之間需要有間隔符(空格符號、制表符號、回車符號),間隔符號的使用數(shù)量不限。直到按下回車鍵,scanf函數(shù)才會接受從鍵盤輸入的數(shù)據(jù)。

47.C解析:帶參數(shù)宏的格式為:#define標識符(形參表)形參表達式。其功能是:在預處理程序中將程序中出現(xiàn)的所有帶實參的宏名,展開成由實參組成的表達式。

48.D解析:首先判斷i>5,表達式的值為真,再判斷j>100,表達式的值為假,執(zhí)行x=5。因此只有選項D正確。

49.D解析:本題考查switch語句,首先,x=1符合條件case1,執(zhí)行switch(y)語句,y=0符合case0語句,執(zhí)行a++并跳出switch(y)語句,此時a=1。因為case1語句后面沒有break語句,所以向后執(zhí)行case2語句,執(zhí)行a++,b++,然后跳出switch(x),得a=2,b=1。

50.A解析:數(shù)據(jù)結構作為計算機的一門學科,主要研究和討論以下三個方面的問題:①數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關系,即數(shù)據(jù)的邏輯結構;②在對數(shù)據(jù)進行處理時,各數(shù)據(jù)元素在計算機中的存儲關系,即數(shù)據(jù)的存儲結構;③對各種數(shù)據(jù)結構進行的運算。

51.A解析:本題考核的知識點是宏定義的簡單應用。本題中首先將所有的宏替換掉,則表達式為i=4+4*4+4/2+2*2+2,故最后輸出的i的值為28。所以,4個選項中選項A符合題意。

52.D解析:printf函數(shù)按格式控制符的個數(shù)輸出表列中對應的數(shù)據(jù),若輸出表列的個數(shù)大于格式控制符個數(shù),則輸出與格式控制符對應的輸出表列的數(shù)據(jù),輸出表列中多的則省略;若格式控制符個數(shù)大于輸出表列的個數(shù),則輸出與格式控制符對應的輸出表列的數(shù)據(jù),格式控制符多的部分輸出的數(shù)據(jù)是隨機的。

53.B解析:本題的fun()函數(shù)是用遞歸法實現(xiàn)逆序輸出一個字符串。函數(shù)中首先定義一個局部變量t,然后s所指的內容是否為字符串結束符,不是的話將s所指的內容賦給t,同時使s后移一位,然后遞歸調用fun(s)。到這條語句為止是遞歸過程,即接下來連續(xù)遞歸調用fun(s)都只會執(zhí)行到這一半,直到回朔條件(s所指內容是字符串結束符)出現(xiàn),fun()函數(shù)連續(xù)返回,判斷t不等于0的話,就輸出t,所以輸入的字符串被逆序輸出,故本題的正確答案應該是B。

54.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù);③作為確認測試和驗收的依據(jù)。

55.D

56.B解析:二維數(shù)組的初始化有以下幾種形式:①分行進行初始化;②不分行進行初始化;③部分數(shù)組元素進行初始化;④省略第一維的定義,不省略第二維的定義。選頃B)等號右邊分了3行,大于等號左邊數(shù)組的行數(shù)2。

57.B解析:選項A)main();的分號是錯誤的,不能有分號;選項C)的注釋語句多了兩個*號;選項D)include前面沒有#。

58.B解析:本題傳送的實參是變量x的存儲地址,但程序會把它當做實際傳遞的值來處理,不會報錯。

59.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。

60.C

61.A本題中使用了函數(shù)的調用,由{unl函數(shù)中的while循環(huán)可知,循環(huán)的作用是為了把q所指向的內容增加l,而從主函數(shù)傳到函數(shù)時是從下標為3開始傳,因此當調用函數(shù)執(zhí)行完后,傳過去的字符串為'hsbn',前面不變。

62.A開發(fā)大型軟件時,產(chǎn)生困難的原因有很多,如需求難以捕捉、員工水平有限、工作安排不太合理、進度控制難以把握、系統(tǒng)開發(fā)時間有限等元素,但這些都不是根本的原因,根本的原因是大系統(tǒng)的復雜性。

63.A\n軟件測試與軟件調試是兩個不同的概念:軟件測試的目的是發(fā)現(xiàn)錯誤,而軟件調試的目的是發(fā)現(xiàn)錯誤或導致程序失效的原因,并修改程序以修正錯誤,調試是測試之后的活動。

\n

64.A軟件設計階段的主要任務包括丙個:一是進行軟件系統(tǒng)的可行性分析,確定軟件系統(tǒng)的建設是否值得,能否建成。二是進行軟件的系統(tǒng)分析,了解用戶的需求,定義應用功能,詳細估算開發(fā)成本和開發(fā)周期。

65.B

66.B模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。一般較優(yōu)秀的軟件設計,應盡量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性,所以A錯誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內聚性是指一個模塊內部各個元素間彼此結合的緊密程度,所以C與D錯誤。故答案為B選項。

67.C

68.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因為題中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.0。

69.C

70.A

71.C\n\tC?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序表,對于長度為n的有序線性表,最壞情況只需比較log2n次。

72.C因為一個人可以操作多個計算機,而一臺計算機又可以被多個人使用,所以兩個實體之間是多對多的關系。

73.C

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

75.B

76.D

77.A

78.A結構體和共用體;在“聯(lián)合”中,各成員共享一段內存空間,一個聯(lián)合變量的長度等于各成員中最長的長度。應該說明的是,這里所謂的共享不是指把多個成員同時裝入一個聯(lián)合變量內,而是指該聯(lián)合變量可被賦予任一成員值,但每次只能賦一種值,賦入新值則沖去舊值

79.A

\n在主函數(shù)中,k的初值為0,首先調用函數(shù)f(3),返回值為6,k的值變?yōu)?,而函數(shù)intfun(intc)中的局部靜態(tài)變量a等于3。第二次調用函數(shù)f(3)時,返回值為7,所以k=6+7=13。退出循環(huán)語句,k再加上全局變量a的值l,其最終的值為14。

\n

80.D81.(1)錯誤:if(d%2!=0)

正確:if(d%2==0)

(2)錯誤:t=d*s1+t;

正確:*t=d*s1+*t;

【解析】題目要求長整型數(shù)中每一位上為偶數(shù)的數(shù)依次逆向取出,構成一個新數(shù)放在t中。首先要判斷每一位上的數(shù)是否為偶數(shù),因此“if(d%2!=0)”應改為“if(d%2==0)”;變量t是一個指針變量,其是直接運算操作的內存地址,因此“t=d*sl+t;”應改為“*t=d*s1+*t;”。

82.

【解析】要返回指定成績的學生數(shù)據(jù),首先應該將所有學生的成績與指定成績相比較。如果有學生的成績與指定成績相等,則將該學生的記錄返回給主函數(shù),否則將學號置成空串,成績置一l返回給主函數(shù)。

2021-2022年甘肅省嘉峪關市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.按照“先進先出”組織數(shù)據(jù)的數(shù)據(jù)結構是()。

A.隊列B.棧C.雙向鏈表D.二叉樹

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

A.35B.3,5C.3;5D.35

3.以下關于C語言的敘述中正確的是()。

A.C語言中的注釋不可以夾在變量名或關鍵字的中間

B.C語言中的變量可以在使用之前的任何位置進行定義

C.在C語言算術表達式的書寫中,運算符兩側的運算數(shù)類型必須一致

D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示

4.以下選項中,當x為大于1的奇數(shù)時,值為0的表達式是A.x%2==1B.x/2C.x%2!=0D.x%2==0

5.算法的空間復雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法所需要的存儲空間

6.若x=10010111,則表達式(3+(int)(x))&(~3)的運算結果是()。

A.10011000B.10001100C.10101000D.10110000

7.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長度大于5,則輸出按方式()。

A.從左起輸出該字串,右補空格B.按原字符長從左向右全部輸出C.右對齊輸出該字串,左補空格D.輸出錯誤信息

8.

9.若要求在if后一對圓括號中表示a不等于0的關系,則能正確表示這一關系的表達式為()

A.a<>0B.!aC.a=0D.a

10.若某表最常用的操作是在最后一個結點之后插入一個結點或刪除最后一個結點,則采用()存儲方式最節(jié)省運算時間。

A.單鏈表B.給出表頭指針的單循環(huán)鏈表C.雙鏈表D.帶頭結點的雙循環(huán)鏈表

11.下列字符數(shù)組初始化語句中,不正確的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

C.charc[]={a,b,c,d);

D.charc[]={"ffgoodmorning"};

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

A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的共享問題

C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)

D.以上三種說法都不對

13.在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細設計B.需求分析C.總體設計D.編程調試

14.以下是if語句的基本形式:

if(表達式.語句

其中“表達式”()。

A.必須是邏輯表達式B.必須是關系表達式C.必須是邏輯表達式或關系表達式D.可以是任意合法的表達式

15.有以下程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;for(;j<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i]);printf("\n");}如果從鍵盤上輸入:ab<回車>c<回車>def<回車>則輸出結果為______。

A.abcdefB.abcdC.abcdD.abcdef

16.軟件生命周期中的活動不包括()

A.軟件維護B.市場調研C.軟件測試D.需求分析

17.C語言函數(shù)中未指定存儲類的變量,其隱含類別是()

A.autoB.staticC.registerD.void

18.在KMP算法中,已知模式串為ADABCADADA,請寫出模式串的next數(shù)組值()

A.0,1,1,2,1,1,2,3,4,3

B.1,2,3,2,1,1,2,4,4,3

C.0,1,1,1,2,1,2,3,4,3

D.2,1,1,2,1,1,2,3,3,4

19.在以下的敘述中,正確的是()。

A.線性表的順序存儲結構優(yōu)于鏈表存儲結構

B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表

C.棧的操作方式是先進先出

D.隊列的操作方式是先進后出

20.計算機算法指的是()。

A.計算方法B.排序方法C.解決問題的有限運算序列D.調度方法

二、2.填空題(20題)21.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。

22.[]的任務是診斷和改正程序中的錯誤。

23.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。

wordnum(str)

charstr[];

{inti,num=0,word=0;

for(i=0;str[i]!=【】;i++)

if(【】==)word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

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

charstr[]="ABCD",*p=str;

printf("%d\n",*(p+3));

25.在先左后右的原則下,根據(jù)訪問根結點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

27.以下程序的功能是根據(jù)輸入的“y”(“Y”)與“n”(“N”),在屏幕上分別顯示出“ThisisYES.”與“ThisisNO.”??瞻滋幮枰钊氲膬热菔?/p>

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES.\n");

case'n':

case'N':Printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnte

28.fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大數(shù),再求這N個最大值中最小的那個數(shù)并作為函數(shù)值返回。請?zhí)羁铡?/p>

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{introw,col,max,min;

for(row=0;row<N;row++)

{for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

29.按照邏輯結構分類,結構可以分為線性結構和非線性結構,棧屬于______。

30.度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為______。

31.本程序用改進冒泡法對數(shù)組a[n]的元素從小到大排序,請在程序空白處填空。

voidbubble(inta[],intn)

{intj,k,jmax,temp;

jmax=【】;

do{

k=0;

for(j=0;j<jmax;j++)

if(a[j]>a[j+1])

{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;

jmax=k;

}while(jmax>0);}

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

structdate

{intday;

intmouth;

intyear,

union{intshare1;

floatshare2;

}share;

}a;

33.若有以下程序

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í)行后輸出結果是______。

34.數(shù)據(jù)結構分為邏輯結構和存儲結構,循環(huán)隊列屬于______結構。

35.以下程序中給指針p分配3個double型動態(tài)內存單元,請?zhí)羁铡?/p>

#include<stdllb.h>

main()

{double*p;

p=(double*)malloc(【】);

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

36.設x和y均為int型變量,且x=1,y=2,則表達式2.0+y/x的值為【】。

37.下列程序的輸出結果是【】。

#definePR(a)printf("%d\t",(int)(a))

#definePRINT(a)PR(a);printf("ok!")

main()

{inti,a=1;

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

PRINT(a+i);

printf("\n");}

38.E-mail地址由用戶名和域名兩部分組成,這兩部分的分隔符為【】。

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

#include<stdio,h>

main()

{inta,b,c;

a=10;b:20;c=(a%b<1)‖(a/b>1);

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

}

40.結構化分析方法是面向______進行分析的方法。

三、1.選擇題(20題)41.以下程序的輸出結果是#include<stdio.h>main(){unionun{inti;longk;charc;};structbyte{inta;longb;unionunc;}r;printf("%d\n",sizeof(r));}

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

42.位運算071∧052的八進制值是()

A.52B.23C.17D.71

43.C語言中while和do-while循環(huán)的主要區(qū)別是

A.do-while的循環(huán)體至少無條件執(zhí)行一次

B.while的循環(huán)控制條件比do-while的循環(huán)控制條件更嚴格

C.do-while允許從外部轉到循環(huán)體內

D.do-while的循環(huán)體不能是復合語句

44.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的長度B.求字符串存放的位置C.比較兩個字符串的大小D.將字符串x連接到字符串y后面

45.下列數(shù)據(jù)結構中能應用二分查找的是()。

A.有序線性鏈表B.有序順序表C.順序存儲的棧D.順序存儲的隊列

46.若變量已正確定義,要求通過scanf("%c%d%c%d",&c1,&a,&c2,&B)語句給變量a和b分別賦32和45,給變量c1和c2分別賦字符A和B;下列選項中數(shù)據(jù)從第1列開始輸入,正確的輸入形式是()。

A.A32<CR>B45<CR>B.A45<CR>B32<CR>C.A32B45<CR>D.A32B45<CR>

47.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

48.設inti=10,j=11,k=12,x=0;執(zhí)行語句:if(i>5)if(j>100)if(k>11)X=3;elsex=4;elsex=5;后x的值是()。

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

49.有以下程序

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

程序的運行結果是

A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1

50.數(shù)據(jù)結構作為計算機的一門學科,主要研究數(shù)據(jù)的邏輯結構、對各種數(shù)據(jù)結構進行的運算,以及()。A.A.數(shù)據(jù)的存儲結構B.計算方法C.數(shù)據(jù)映象D.邏輯存儲

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

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

52.請讀程序:#include<stdio.h>main(){inta=5,b=7,c=9;pintf("%d,%d,"a,b,C);printf("%d,%d",a,D);}上面程序的輸出結果是_______。

A.5,7,9,5,7B.5,7,5,7C.5,7,不定7,9D.5,7,5,7,不定

53.下面程序輸出的結果是()。#include<stdio.h>main(){char*a="1234";fun(a);printf("\n");}fun(char*s){chart;if(*s){t=*S++;fun(s);}elsereturn;if(t!='\0')putchar(t);}

A.1234B.4321C.1324D.4231

54.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

A.便于用戶,開發(fā)人員進行理解和交流

B.反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù)

C.作為確認測試和驗收的依據(jù)

D.便于開發(fā)人員進行需求分析

55.若有如下定義:ints[3]則下面表達式中不能代表數(shù)組元素s[1]的地址的是()

A.&s[1]B.&s[0]+1C.s+1D.s++

56.以下數(shù)組定義中錯誤的是()。

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6}};

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

D.intx[2][3]={1,2,3,4,5,6};

57.以下4個程序中,完全正確的是

A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}

B.#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}

C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}

D.include<stdio.h>main(){/*programming*/printf("programming!\n");}

58.TurboC將對以下程序______。main(){intx,y;y=creat(&x):printf("%d\n",y);}creat(inta){returna++;}

A.編譯時會給出出錯信息

B.順利進行編譯、連接、執(zhí)行,不報任何錯誤

C.順利通過編譯、連接,但不能執(zhí)行

D.順利通過編譯,但連接出錯

59.有以下程序: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

60.關于return語句,正確的說法是______。

A.在主函數(shù)和其他函數(shù)中均可出現(xiàn)

B.必須在每個函數(shù)中出現(xiàn)

C.可以在同一個函數(shù)中出現(xiàn)多次

D.只能在除主函數(shù)之外的函數(shù)中出現(xiàn)一次

四、選擇題(20題)61.有以下程序:

voidfunl(char*p)

{char*q;

q=P;

while(*q!='\O')

{(*q)++;q++;}

}

main

{chara[]={"Program"),*P;

p=&a[3];funl(p);

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

}

程序執(zhí)行后的輸出結果是()。A.A.ProhsbnB.PrphsbnC.ProgsbnD.Program

62.開發(fā)大型軟件時,產(chǎn)生困難的根本原因是()

A.大系統(tǒng)的復雜性B.人員知識不足C.客觀世界千變萬化D.時間緊、任務重

63.軟件(程序.調試的目標是()。

A.診斷和改正程序中的錯誤

B.盡可能多地發(fā)現(xiàn)程序中的錯誤

C.發(fā)現(xiàn)并改正程序中的所有錯誤

D.確定程序中錯誤的性質

64.下面不屬于軟件設計階段任務的是()。

A.制訂軟件確認測試計劃B.數(shù)據(jù)庫設計C.軟件總體設計D.算法設計

65.

66.耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。

A.提高耦合性降低內聚性有利于提高模塊的獨立性

B.降低耦合性提高內聚性有利于提高模塊的獨立性

C.耦合性是指一個模塊內部各個元素間彼此結合的緊密程度

D.內聚性是指模塊間互相連接的緊密程度

67.

68.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

69.在C程序中有如下語句:char*func(intx,inty);它是()。

A.對函數(shù)func的定義。B.對函數(shù)func的調用。C.對函數(shù)func的原型說明。D.不合法的

70.

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

A.對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為n

B.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為n/2

C.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為log2n

D.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為nlog2n

72.一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員與實體計算機之間的聯(lián)系是()。

A.一對一B.一對多C.多對多D.多對一

73.

74.下列程序的輸出結果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8

75.

76.

77.

78.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結果是______。A.21,43B.43,21C.43,00D.21,00

79.

有以下程序

#include<stdio.h>

inta=1;

intf(intc)

{staticinta=2:

c=c+1:

return(a++)+C;

}

main

(inti,k=0;

for(i=0;i<2;i++){inta=3;k+=f(a);}

k+=a:

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

}

程序運行結果是()。

A.14B.15C.16D.17

80.HTTP協(xié)議的GET請求方法可以獲取()類型的數(shù)據(jù)。

A.HTML文檔B.圖片C.視頻D.以上都可以

五、程序改錯題(1題)81.下列給定程序中函數(shù)proc()的功能是:將長整型數(shù)中為偶數(shù)的數(shù)依次逆向取出,構成一個新數(shù)放在t中。高位在低位,低位在高位。例如,當s中的數(shù)為12345678時,則t中的數(shù)為8642。

請修改函數(shù)proc()中的錯誤,使它能得出正確的結果。

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

試題程序:

六、程序設計題(1題)82.學生的記錄由學號和成績組成,M名學生的數(shù)據(jù)已在主函數(shù)中放人結構體數(shù)組stu中。請

溫馨提示

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

最新文檔

評論

0/150

提交評論