2022-2023年江蘇省揚州市全國計算機等級考試C語言程序設計_第1頁
2022-2023年江蘇省揚州市全國計算機等級考試C語言程序設計_第2頁
2022-2023年江蘇省揚州市全國計算機等級考試C語言程序設計_第3頁
2022-2023年江蘇省揚州市全國計算機等級考試C語言程序設計_第4頁
2022-2023年江蘇省揚州市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年江蘇省揚州市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.已知A=10,B=20,下類表達式正確的是()。

A.C=(A++)*(--B)=200

B.A-=30

C.C=(A++)+(B--)=30

D.C=(++A)*(--B)=210

2.已知有如下結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有P=&data,則對data的成員a引用正確的是()。A.(*p).data.a(chǎn)B.(*p).a(chǎn);C.p->data.a(chǎn)D.p.data.a(chǎn)

3.以下程序的輸出結(jié)果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0

4.有以下程序:

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

A.1,2,6,24,120,B.1,2,3,4,5,C.1,1,1,1,1,D.1,2,4,6,8,

5.表示關系a≤b≤c的C語言表達式為()。

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

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

C.(a<=b<=C)

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

6.設變量n為f1oat類型,m為int類型,則以下能實現(xiàn)將n中的數(shù)值保留小數(shù)點后兩位,第三位進行四舍五人運算的表達式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

7.以下正確的字符常量是()。A.'\089'B.'\012'C.'\0XAB'D.'\0xab'

8.下面是有關C語言字符數(shù)組的描述,其中錯誤的是()。

A.不可以用賦值語句給字符數(shù)組名賦字符串

B.可以用輸入語句把字符串整體輸入給字符數(shù)組

C.字符數(shù)組中的內(nèi)容不一定是字符串

D.字符數(shù)組只能存放字符串

9.

10.下列程序段的時間復雜度為()。A.O(3n)B.O(n)C.O(n2)D.O(log3n)

11.以下能正確定義一維數(shù)組的選項是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

12.

13.以下選項中合法的c語言常量是()。

A.,C—STR’B.2014.1C.”\l.0D.2EK

14.設有定義:floata=2,b=4,h=3;以下c語言表達式中與代數(shù)式(a+B)h計算結(jié)果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

15.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

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

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

16.若要用函數(shù)fopen打開一個新的二進制文件,該文件要既能讀也能寫,則應以哪種方式打開文件()。

A.wbB.wb+C.rb+D.rb

17.鏈表不具有的特點是()。

A.插入、刪除不需要移動元素B.可隨機訪問任一元素C.不必事先估計存儲空間D.所需空間與線性長度成正比

18.

19.設長度為n的鏈隊列用單循環(huán)鏈表表示,若只設頭指針,則入隊操作的時間復雜度為_______。

A.O(1)B.O(log2n)C.O(n)D.O(n2)

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

#include<stdio.h>

main()

{iuta=2,b=3,p;

p=f(a,B)

printf("%d",p);

}

intf(a,b)

{intc;

if(a>B)c=1;

e1Seif(a==B)c=0;

else(3=-1;

return(C);

}

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

二、2.填空題(20題)21.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于______的聯(lián)系。

22.若有語句:

inti=-19,j=i%4;

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

則輸出結(jié)果是【】。

23.若變量n中的值為24,則print函數(shù)共輸出【】行,最后一行有【】個數(shù)。

voidprint(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if(!(i%5))

printf("\n");

}

printf("\n");

}

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

main()

{intx=0;

sub(&x,8,1);

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

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

25.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。

例如,輸入字符串:abc123edf456gh,執(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);

}

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

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p-&d;

d=a;

if{strcmp(a.nalne,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%ld%s\n",d.sno,p>name};

}

27.當運行以下程序時,輸入abcd,程序的輸出結(jié)果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

28.已知存儲結(jié)構(gòu)如下所示,請?zhí)羁铡?/p>

datanext

structlink{chardata;

【】;

}node;

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

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

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

break;}

s+=i;}}

30.有以下程序

main()

{intn=0,m+1,X=2;

if(!n)X-=l;

if(m)X-=2;

if(X)X-=3;

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

}

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

31.需求分析的最終結(jié)果是產(chǎn)生【】。

32.下面定義的結(jié)構(gòu)體類型包含3個成員,其中成員變量x用來存入整型數(shù)據(jù),成員變量y用來存入實型數(shù)據(jù),成員變量next是指向自身結(jié)構(gòu)體的指針。請將定義補充完整。

structstu

{intx;

【】

【】next;}

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

#include<stdio.h>

main()

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

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

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

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

word_num(str)

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

if(【】='')word=0;

【】;

}

return(num);

}

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

}

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

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

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

38.下面的程序可列指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

39.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達式是【】。

40.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*f1)(),int(*f2)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】。

三、1.選擇題(20題)41.SQL語言又稱為______。

A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言

42.下面程序的輸出結(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

43.以下程序輸出的結(jié)果是_______。main(){inta=65535;printf("%d%u",a,A);}

A.-1-1B.6553565535C.-165535D.65535-1

44.下列程序是用來判斷數(shù)組中特定元素的位置所在的。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

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

if(s[*k]<s[i])*k=i;

returns[*k];}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

如果輸入如下整數(shù):876675896101301401980431451777

則輸出結(jié)果為

A.7,431B.6C.980D.6,980

45.在設計程序時,應采納的原則之一是()。

A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結(jié)構(gòu)應有助于讀者理解

46.有以下程序:structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042);c=b;}voidf2(structSTU*c){structSTUb={"SunDan",2044);*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043);f1(a);f2(&b);printf("%d%d\n",a.num,b.num);}執(zhí)行后輸出結(jié)果是()。

A.20412044B.20412043C.20422044D.20422043

47.以下選項中合法的實型常數(shù)是

A.5E2.0B.E-3C.2.00E+00D.1.3E

48.在下列敘述中,正確的一條是______。

A.如果形參發(fā)生改變,不會改變主調(diào)函數(shù)的實參值

B.在C語言中,函數(shù)可以遞歸調(diào)用或遞歸定義

C.數(shù)組名作函數(shù)參數(shù)時,也采用“值傳送”方式

D.預處理時,宏名用字符串代替,并檢查語法正確與否

49.設有說明:inta=1,b=0;,則執(zhí)行以下語句的輸出結(jié)果是______。switch(a){case1:switch(b){case0:printf("**0**\n");break;case1:printf("**1*\n");break;}case2:printf("**2**\n");break;}

A.**0**B.**0****2**C.**0****1****2**D.switch語句中存在語法錯誤

50.有以下程序:voidfun(char*a,char*b){a=b;(*a)++;)main(){charc1='A',c2='a',*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c%c\n",c1,c2);}程序運行后的輸出結(jié)果是______。

A.AbB.aaC.AaD.Bb

51.

對兩個數(shù)組a和b進行下列初始化:

charm[]="1234567";

charn[]={1,2,3,4,5,6,7};

則下列敘述正確的是()。

A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串

52.算法的空間復雜度是指

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

53.有以下程序:#include<stdio.h>main(){unsignedinta;intb=-1;a=b;printf("%u",a);程序運行后的輸出結(jié)果是()。

A.-1B.65535C.32767D.-32768

54.若變量a是int類型,并執(zhí)行了語句:a='A'+1.6;則正確的敘述是

A.a的值是字符CB.a的值是浮點型C.不允許字符型和浮點型相加D.a的值是字符'A'的ASCII值加上1。

55.結(jié)構(gòu)化程序設計主要強調(diào)的是

A.程序的規(guī)模B.程序的效率C.程序設計語言的先進性D.程序易讀性

56.若有以下定義和語句,則輸出結(jié)果是(口代表空格)______。chars[10];s="abcd";printf("%s\n",s);

A.輸出abcdB.輸出aC.輸出abcd口口口口口D.編譯不通過

57.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

A.插入排序B.選擇排序C.快速排序D.歸并排序

58.下面能正確進行字符串賦值操作的語句是______。

A.chars[5]={"ABCDE"}:

B.chars[5]={'A'、'B'、'c'、'D'、'E'};

C.char*s;s="ABCDEF";

D.char*s;scanf("%s",s):

59.在C程序中,可將整型數(shù)以二進制形式存放到文件中的函數(shù)是______。

A.fprint函數(shù)B.fread函數(shù)C.fwrite函數(shù)D.fputc函數(shù)

60.在數(shù)據(jù)管理技術的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是()。

A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項管理

四、選擇題(20題)61.讀出以下語句的輸出結(jié)果是()。

intx=10,y=10;

printf(“%d%d\n”,x--,--y);

A.1010B.99C.910D.109

62.設變量X和y均已正確定義并賦值。以下if語句中,在編譯時將產(chǎn)生錯誤信息的是()。A.if(x++);

B.if(x>y&&y!=0);

C.if(x>y)x--elsey++;

D.if(y<0){;}elsex++;

63.若變量x、Y已正確定義并賦值,以下符合C語言語法的表達式是()。

A.++x,y=x-B.x+1=yC.x=x+10=x+yD.double(x/10)

64.函數(shù)fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點是()。

A.文件開始B.文件末尾C.文件當前位置D.以上都不對

65.下列能正確進行字符串賦值的是()。A.A.chars[5]={”ABCI)E”);

B.chars[5]={'A','B','C','D','E'};

C.char*s;s="ABCDE";

D.char*s;printf("%S",s);

66.設有以下函數(shù):

A.

B.

C.

D.

67.

68.

69.

70.

有以下程序:

voidfun(char*a,char*b)

{a=b;(*a)++;}

main

{charc1=A,c2=a,*p1,*p2;

p1=&c1;p2=*c2;fun(p1,p2);

printf("%C%c\n",c1,c2);

}

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

A.AbB.aaC.AaD.Bb

71.有下列程序:、

fun(intX,inty){return(x+y);)

main()

{inta=1,b=2,c=3,sum;

sum=fun((a++,b++,a+b),c++);

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

}

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

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

72.

73.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。

A.可行性分析報告B.軟件需求規(guī)格說明書C.概要設計說明書D.集成測試計劃

74.

75.關系模型允許定義三類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。A.A.實體完整性約束B.參照完整性約束C.域完整性約束D.用戶自定義的完整性約束

76.軟件設計中衡量模塊獨立性的度量標準是()。

A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機制和控制方法

77.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。

A.軟件需求規(guī)格說明書B.數(shù)據(jù)庫說明書C.集成測試計劃D.概要設計說明書

78.有三個關系R、S和T如下:

其中關系T由關系R和s通過某種操作得到,該操作為()。

A.選擇B.投影C.交D.井

79.有以下程序:

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

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

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

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

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

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

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

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:判斷字符ch是否與sir所指字符串中的某個字符相同;若相同,則什么也不做,若不同,則將其插在串的最后。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設計題(1題)82.請編寫一個函數(shù)proc(),它的功能是:比較2個字符串的長度(不得調(diào)用C語言中求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若2個字符串長度相等,則返回第1個字符串。例如,若輸入jiangxi<;Enter>;beijing<;Enter>;則函數(shù)返回jiangxi。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C

2.B本題主要考查結(jié)構(gòu)指針:P=&data,訪問結(jié)構(gòu)體的成員。它可以通過結(jié)構(gòu)變量訪問,即data,可以用等價的指針形式:(*p).a(chǎn)和P->a來訪問結(jié)構(gòu)體變量中的成員。

3.D因為a是結(jié)構(gòu)體變量,最后一次輸入的值為結(jié)構(gòu)體中的值,即a中的任何一個值都為0。

4.Astatic靜態(tài)變量只在聲明時初始化一次。mul()累乘,第一次init=1,init}=val,第二次init=1,val=2,第三次init=2,val=3,第四次init=6,val=4,第五層init=24,val=5,因此結(jié)果為l,2,6,24,120。故答案為A選項。

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

6.B

7.B題目中的選項都以轉(zhuǎn)義字符“\\”開頭,“\\ddd”表示3位八進制數(shù)代表的一個ASCII字符,“\\xhh”表示2位十六進制數(shù)代表的一個ASCII字符。選項A中“089”是不合法的八進制數(shù),錯誤;選項C、D中“\\0X”或“\\0x”不合法,錯誤;選項B表示八進制數(shù)012代表的ASCII字符,正確。本題答案為B選項。

8.D\n用來存放字符量的數(shù)組稱為字符數(shù)組。字符數(shù)組也可以是二維或多維數(shù)組,對一個字符數(shù)組,如果不作初始化賦值,則必須說明數(shù)組長度,還可用printf函數(shù)和scarlf函數(shù)一次性輸出/輸入一個字符數(shù)組中的字符串,而不必使用循環(huán)語句逐個地輸入/輸出每個字符。通常用一個字符數(shù)組來存放一個字符串。所以D選項不正確。

\n

9.D

10.D

11.B解析:選項A定義數(shù)組時省略了長度,而C語言中規(guī)定,只有在定義并同時進行初始化時,數(shù)組的長度才可以省略,數(shù)組的長度為初始化時候的成員個數(shù),故選項A錯誤;在C語言中規(guī)定,數(shù)組的長度必須是一個整數(shù)或整型常量表達式,故選項C不正確:定義時數(shù)組的長度不能使用變量表示,故選項D不正確,所以,4個選項中選項B符合題意。

12.B

13.B所謂常量是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項A是字符串,但使用單引號,錯誤,選項c,D,為實型常量中指數(shù)形式,但指數(shù)形式e(E)之前必須是數(shù)字,之后必須為整數(shù),錯誤。故答案為B選項。

14.B解析:選項B中由于1和2都是整型,其1/2的運算結(jié)果為0,故整個表達式的值為0,所以它的結(jié)果和題目中要求的代數(shù)式的討算結(jié)果不相符,所以,4個選項中選項B符合題意。

15.Cf函數(shù)的功能是對形參a的各個成員用結(jié)構(gòu)體變量b的各個成員進行賦值后,然后返回變量a。

16.B解析:本題考查文件使用方式標識符。方式“wb”為輸出打開一個二進制文件;方式“wb+”為讀寫建立一個新的二進制文件;方式“rb+”為讀寫打開一個二進制文件:方式“rb”為輸入打開一個二進制文件。

17.BB選項的特點是順序存儲結(jié)構(gòu)的特點,即數(shù)組的特點。

18.B

19.C

20.A解析:本題考查ifelse語句。在intf(a,B)中:第一個if語句,先判斷條件,發(fā)現(xiàn)a>b條件不成立,則執(zhí)行與其配對的else語句:第二個if語句,先判斷條件,發(fā)現(xiàn)a==b條件不成立,則執(zhí)行與其配對的else語句,c=-1。

21.1對多(或1:N)1對多(或1:N)

22.-3-3解析:%運算符是求兩個數(shù)相除的余數(shù),其結(jié)果與被除數(shù)的符號一致,本題中“-19%4”的值為“-3”。

23.54

24.77解析:在主函數(shù)中定義了一個變量x并賦初值0,然后執(zhí)行函數(shù)調(diào)用語句,該語句的執(zhí)行過程為sub(&x,8,1)調(diào)用sub(&a,4,2),sub(&a,4,2)調(diào)用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號里的判斷為假,遞歸結(jié)束,執(zhí)行其后的*a+=k;語句此時x=x+k=0+4=4,回推到上一層調(diào)用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語句,x=x+k=4+2=6,在回推到最上一層調(diào)用函數(shù)sub(&x,8,1)執(zhí)行后面的語句,x=x+k=6+1=7,所以最后輸出7。

25.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根據(jù)題意和程序可知要填空的內(nèi)容是:將字符申s中的數(shù)字字符放入d數(shù)組的條件。

26.2002Shangxian2002Shangxian解析:本題考核的知識點是結(jié)構(gòu)體類型的定義、賦初值以及字符串的比較。本題中首先定義一個結(jié)構(gòu)體類型STU,鎮(zhèn)結(jié)構(gòu)體由一個長度為10的字符型數(shù)組、一個long型變量和一個float型變量組成。接著在主函數(shù)中用STU定義了4個結(jié)構(gòu)體變量a、b、c、d,并且給a、b、c賦初值,然后定義?一個結(jié)構(gòu)體指針p,并讓它指向變量d。然后讓將變量a的值賦給變量d,接著通過兩個if語句比較結(jié)構(gòu)體變量a、b、c的成員name大小。第一個訂語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量較大的那個賦給結(jié)構(gòu)體變量d。比較通過函數(shù)strcmp實現(xiàn)。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標準是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。程序中第一個if語句strcmp(,)>0為真,故將b的值賦給d;第二個if語句strcmp()>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此輸出d.sn0和p->name的值為2002Shangxian

27.a*b*c*d*a*b*c*d*解析:字符處理函數(shù)strlen()測試字符串常量的長度,不包括‘\\0’在內(nèi)。因此,函數(shù)insert()實現(xiàn)了將字符數(shù)組中每個非‘\\0’的字符后插入字符‘*’的功能。故輸出結(jié)果是a*b*c*d*。

28.strucklink*nextstrucklink*next解析:結(jié)構(gòu)體變量構(gòu)成鏈表要求結(jié)構(gòu)體中必須有一個指向該結(jié)構(gòu)體變量自身的指針用來指明鏈表的下一個結(jié)點。注意:結(jié)構(gòu)體變量的定義及其成員變量的引用。

29.3030解析:考查for循環(huán)的使用。題目中for(;;)表示:for循環(huán)的初始化表達式,條件表達式和修正表達式都省略了,表示進行for循環(huán)和for循環(huán)的終止都沒有限制。

30.-4-4解析:if-else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu),if(條件)S1(if分結(jié)構(gòu))elseS2(else分結(jié)構(gòu)),它的工作過程是:先對條件表達式進行判斷,若為真(成立,值為非零),就執(zhí)行if分結(jié)構(gòu)(S1);否則(不成立,值為0),就執(zhí)行else分結(jié)構(gòu)(S2)。本題中,n=O,可以判斷(!n)為真,執(zhí)行“x=x-1=2-1=1;m=1”,可以判斷(m)為真,執(zhí)行“x=x-2=1-2=-1;”進而可以判斷(x)為真,執(zhí)行x=x-3=-1-3=-4。所以,最后輸出為-4。

31.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗證性、一致性、可理解性、可修改性和可追蹤性等。

32.floaty;structstu*floaty;\r\nstructstu*解析:float定義變量y為實型變量。要求變量next是指向自身結(jié)構(gòu)體的指針,因此變量next應該是結(jié)構(gòu)體stu的指針型變量。

33.3030解析:當i=0時,s=0+a[0][0]+a[0][2]=10;i=1時,s=10+a[1][1]+a[1][1]=18;i=2時,s=18+a[2][2]+a[2][0]=30。

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

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

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

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

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

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

36.軟件危機的出現(xiàn)軟件危機的出現(xiàn)

37.1212解析:本題的第—個for循環(huán)用于紿數(shù)組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。

38.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進行比較,如果當前字符小于下一個字符,則通過中間變量temp將字符兩兩交換,所以第一空應填:str[i],第二空應填:str[i+l]。最終打印輸出得到的字符串str,所以第三空應填:'%s',str。

39.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整數(shù)x的絕對值大于5,則x大于5或x小于5,用C語言表示即為:x>5||x<-5或者x<-5||x>5。故本題答案為;x>5||x<-5或者x<-5||x>5。

40.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為23-22=4。

41.CC?!窘馕觥縎QL語言的全稱為StructuredQueryLanguage,它是一種介于關系代數(shù)與關系演算之間的結(jié)構(gòu)化查詢語言,是一種面向數(shù)據(jù)庫的通用數(shù)據(jù)處理語言規(guī)范。它包含數(shù)據(jù)查詢語言、數(shù)據(jù)操縱語言、數(shù)據(jù)定義語言和數(shù)據(jù)控制語言4個部分。

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

43.C解析:printf函數(shù)中不同類型的數(shù)據(jù)用不同的格式字符,其中%d是按整型數(shù)據(jù)的實際長度輸出十進制整數(shù)。變量a=65535以%d格式輸出時溢出輸出值為該數(shù)的補碼值,即-1:%u用來輸出unsigned型數(shù)據(jù),無符號整型變量的數(shù)值范圍為0~65535,所以變量a=65535以%u格式輸出的值為65535。

44.D解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運算。此外,一開始應知道*k的值為數(shù)組中的某一下標值,即*k=0,本函數(shù)的功能是找出數(shù)組中的最大元素的位置及最大元素的值。

45.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項A)不選;注解行有利于對程序的理解,不應減少或取消,選項B)也不選;程序的長短要依照實際情況而論,而不是越短越好,選項C)也不選。

46.A解析:本題中首先定義了一個結(jié)構(gòu)體類型STU,它由一個字符數(shù)組和一個整形變量hum組成。然后定義兩個函數(shù)f1和f2。其中f1是值傳遞的,f2是地址傳遞的。主函數(shù)中定義兩個結(jié)構(gòu)體變量a和b并分別賦初值,接著調(diào)用函數(shù)f1(a),由于函數(shù)n是值傳遞,故執(zhí)行該函數(shù)后并沒有改變a的值,再接著調(diào)用函數(shù)f2(&b),由于該函數(shù)是地址傳遞,執(zhí)行該函數(shù)后將使變量b的值為{'SunDan',2044},故函數(shù)最后輸出a.num和b.num的值為2041和2044。所以,4個選項中選項A符合題意。

47.C解析:在C語言中,實數(shù)有兩種表示形式:十進制數(shù)形式與指數(shù)形式。

1)一般形式的實數(shù):小數(shù)形式的實數(shù)由整數(shù)部分、小數(shù)點和小數(shù)部分組成(必須要有小數(shù)點)。

2)指數(shù)形式的小數(shù):指數(shù)形式的實數(shù)由尾數(shù)部分、e(E)和指數(shù)部分組成(字母e或E的前后必須要有數(shù)字,且其后面的指數(shù)必須為整數(shù))。選項A中,5E2.0中E后面的2.0不是整數(shù);選項B中,E前面沒有數(shù)字;選項D中,E后面沒有數(shù)字。

48.A

49.B解析:本題是switch-case語句的嵌套使用,外層switch語句的第一個分支(嵌套switch語句)執(zhí)行完后,沒有break;語句,將繼續(xù)執(zhí)行第二個分支。

50.A解析:本題中函數(shù)fun的形參是指針變量,因此實參與形參之間是地址傳遞,即形參的改變可以影響實參。main函數(shù)中p1指向c1,p2指向c2,函數(shù)調(diào)用語句fun(p1,p2)的功能是將p2所指存儲單元的內(nèi)容的值加1,即將c2的值加1得c2='b',故printf函數(shù)的輸出結(jié)果為Ab。

51.C解析:本題考查字符數(shù)組和字符串賦值給數(shù)組的一些區(qū)別。語句“charm[]='1234567';”定義了一個字符型數(shù)組并進行了初始化,C語言規(guī)定,在字符串的末尾自動加上串結(jié)束標記\'\\0\',因此數(shù)組m的長度是8;而數(shù)組n是按照字符方式對數(shù)組進行初始化,系統(tǒng)不會自動加上串結(jié)束標記\'\\0\',因此數(shù)組n的長度是7。

52.D解析:算法的空間復雜度一般是指這個算法執(zhí)行時所需要的內(nèi)存空間,其中包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行旱災程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)行過程的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。

53.B解析:不同類型的對象進行混合運算時,需要進行數(shù)據(jù)的類型轉(zhuǎn)換,其轉(zhuǎn)換方向為int→unsigned→long→double。本題程序中的變量b為int型,需要轉(zhuǎn)換為unsigned型。int型變量的數(shù)值范圍為-32768~32767,最高位為符號位,而unsigned所表示的數(shù)的范圍為0~65535,它的最高位為數(shù)值位。由于內(nèi)存中是以補碼形式存儲數(shù)據(jù)的,所以整型數(shù)-1在內(nèi)存中表示為16個1,最高位的1表示符號為負,將它轉(zhuǎn)換為unsigned類型,即將原符號位的1看成數(shù)值,所以得到16個數(shù)值1,即65535。

54.D解析:在C語言中規(guī)定允許不同類型的量進行運算,但在運算時需轉(zhuǎn)換成高級的類型進行運算。在表達式中有字符型和實型參加運算時,統(tǒng)一轉(zhuǎn)換為實型再運算,當運算結(jié)果存入變量時再轉(zhuǎn)換為該變量的類型。

55.D結(jié)構(gòu)化程序設計由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第二”,以模塊化設計為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨立的模塊,這樣使完成每一個模塊的工作變得單純而明確,為設計一些較大的軟件打下了良好的基礎。

由于模塊相互獨立,因此,在設計其中一個模塊時,不會受到其他模塊的牽連,因而可將原來較為復雜的問題化簡為一系列簡單模塊的設計。模塊的獨立性還為擴充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因為可以充分利用現(xiàn)有的模塊作為積木式的擴展。

結(jié)構(gòu)化程序設計的基本思想是采用“自頂向下,逐步求精”的程序設計方法和“單入口單出口”的控制結(jié)構(gòu)。自頂向下、逐步求精的程序設計方法從問題本身開始,經(jīng)過逐步細化,將解決問題的步驟分解為由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;“單入口單出口”的思想認為一個復雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過組合、嵌套構(gòu)成,那么這個新構(gòu)造的程序一定是一個單入口單出口的程序。據(jù)此就很容易編寫出結(jié)構(gòu)良好、易于調(diào)試的程序。

56.D

57.D解析:快速排序的基本思想是,通過一趟排序?qū)⑴判蛴涗浄指畛瑟毩⒌膬刹?/p>

分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小,再分別對這兩部分記錄繼

續(xù)進行排序,以達到整個序列有序;插入排序的基本操作是指將無序序列中的各元素依

次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基本思想是:掃描整

個線性表,從中選出最小的元素,將它交換到表的最前面(這是它應有的位置),然后對剩

下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個或兩個以上的有序表組合

成一個新的有序表。

注意:各種排序方法實現(xiàn)過程及實現(xiàn)機制。

58.C

59.C

60.A在數(shù)據(jù)管理技術的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是數(shù)據(jù)庫系統(tǒng)這一階段。數(shù)據(jù)庫系統(tǒng)階段用數(shù)據(jù)模型來表示復雜的數(shù)據(jù),有較高的數(shù)據(jù)獨立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式來操作。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。

61.D

62.C本題考查的是if語句。if是c語言關鍵字,表達式兩側(cè)的圓括號不可少,最后是一條語句或是用花括號括起來的一組語句。選項A)和B)是在表達式后跟了一條空語句,選項D)是在表達式后跟了一組空語句,選項C)中x一一是表達式而不是語句,所以在編譯時會出現(xiàn)錯誤信息,在X一一后面加上”;”號就對了。

63.A賦值表達式左邊必須是一個變量,而選項B)、c)中賦值號左邊都是表達式,選項D)進行強制類型轉(zhuǎn)換時,應寫為(double)x/10。

64.B解析:SEEK_END代表的是文件末尾,SEEK_SET代表的是文件的開始,SEEK_CUR代表的是文件當前位置。

65.C選項A、B的空間不夠;字符串存儲要有結(jié)束符'\0',且要占用一個空間,printf用來輸出字符,不能輸入字符串。

66.A函數(shù)指針的定義形式是:數(shù)據(jù)類型標識符(*指針變量名)。void(*pf)定義了一個沒有返回值的函數(shù)指針pf,在給函數(shù)指針變量賦值時,只需給出函數(shù)名而不必給出參數(shù)。所以給pf賦值時,只把函數(shù)名fun賦給pf即可。所以正確答案為選項A)。

67.D

68.D

69.D

70.A

\n函數(shù)fun的作用是將指針a指向指針b的內(nèi)容,然后將該內(nèi)容加1。執(zhí)行語句“fun(p1,p2);”后,pl和p2指向的地址并未改變,只是將p2指向的存儲單元的值增加l。所以,答案是A。

\n

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

\n

72.D

73.BA項錯誤,可行性分析階段產(chǎn)生可行性分析報告。C項錯誤,概要設計說明書是總體設計階段產(chǎn)生的文檔。D項錯誤,集成測試計劃是在概要設計階段編寫的文檔。B項正確,需求規(guī)格說明書是后續(xù)工作如設計、編碼等需要的重要參考文檔。

74.C

75.C數(shù)據(jù)約束是用來確保數(shù)據(jù)的準確性和一致性的。常見的四種數(shù)據(jù)約束如下:

(1)實體完整性約束:規(guī)定表的每一行在表中是唯一的實體。

(2)域完整性約束:是指表中的列必須滿足某種特定的數(shù)據(jù)類型約束,其中約束又包括取值范圍、精度等規(guī)定。

(3)參照完整性約束:是指兩個表的主關鍵字和外關鍵字的數(shù)據(jù)應一致,保證了表之間數(shù)據(jù)的一致性,防止了數(shù)據(jù)丟失或無意義的數(shù)據(jù)在數(shù)據(jù)庫中擴散。

(4)用戶定義的完整性約束:不同的關系數(shù)據(jù)庫系統(tǒng)根據(jù)其應用環(huán)境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系數(shù)據(jù)庫的約束條件,它反映某一具體應用必須滿足的語義要求。

在上述四種數(shù)據(jù)約束中,不屬于關系模型定義的三種數(shù)據(jù)約束的是域完整性約束。

76.C耦合性與內(nèi)聚性是模塊獨立與否的兩個定性標準,耦合與內(nèi)聚是相互關聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內(nèi)蒙、低耦合,即減弱模塊之間的耦合性而提高模塊內(nèi)的內(nèi)聚性,這樣有利于提高模塊的獨立性。

77.A軟件需求規(guī)格說明書是需求分析階段最后的成果,它是作為需求分析的一部分而制定的可交付文檔。概要設計說明書、數(shù)據(jù)庫說明書、集成測試計劃都是概要設計階段需要編寫的文檔。

78.D關系T中包含了關系R與s中的所有元組,所以進行的是并的運算。

79.B該題目考查函數(shù)參數(shù)傳遞以及if條件語句。當變量b為0時,將a的值返回給主調(diào)函數(shù),因此a進行兩次自減l后,將其值返回并輸出。

80.C“P”是指針變量,指向一個地址:“*P”為P指針所指向地址的內(nèi)容“&”是取變量地址。

81.

【解析】形參的個數(shù)和類型由調(diào)用該函數(shù)的實參的個數(shù)和類型決定,由main()函數(shù)中調(diào)用的函數(shù)proc()可知,“voidproc(charstr,charch)”應改為“voidproc(char*str,charch)”;將字符串中的每一個字符與給定字符相比較,當字符串結(jié)束或者字符串中有與給定字符相同的字符時結(jié)束。如果到字符串的最后一個字符仍沒找到與給定字符相同的字符,將給定字符插在字符串的最后,因此,“if(*str==ch)”應改為“if(*str==ˊ\0ˊ)”;最后還要為字符串添加一個結(jié)束符,因此“str[1]=ˊ0ˊ;”應改為“str[1]=ˊ\0ˊ”。

82.

【解析】題目中要求不能用C語言中提供的求字符串長度的函數(shù),可以通過移動字符串指針來計算字符串的長度。定義2個變量分別存放2個字符串的長度,最后比較2個字符串的長度,返回相對較長的那一個字符串。

2022-2023年江蘇省揚州市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.已知A=10,B=20,下類表達式正確的是()。

A.C=(A++)*(--B)=200

B.A-=30

C.C=(A++)+(B--)=30

D.C=(++A)*(--B)=210

2.已知有如下結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有P=&data,則對data的成員a引用正確的是()。A.(*p).data.a(chǎn)B.(*p).a(chǎn);C.p->data.a(chǎn)D.p.data.a(chǎn)

3.以下程序的輸出結(jié)果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0

4.有以下程序:

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

A.1,2,6,24,120,B.1,2,3,4,5,C.1,1,1,1,1,D.1,2,4,6,8,

5.表示關系a≤b≤c的C語言表達式為()。

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

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

C.(a<=b<=C)

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

6.設變量n為f1oat類型,m為int類型,則以下能實現(xiàn)將n中的數(shù)值保留小數(shù)點后兩位,第三位進行四舍五人運算的表達式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

7.以下正確的字符常量是()。A.'\089'B.'\012'C.'\0XAB'D.'\0xab'

8.下面是有關C語言字符數(shù)組的描述,其中錯誤的是()。

A.不可以用賦值語句給字符數(shù)組名賦字符串

B.可以用輸入語句把字符串整體輸入給字符數(shù)組

C.字符數(shù)組中的內(nèi)容不一定是字符串

D.字符數(shù)組只能存放字符串

9.

10.下列程序段的時間復雜度為()。A.O(3n)B.O(n)C.O(n2)D.O(log3n)

11.以下能正確定義一維數(shù)組的選項是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

12.

13.以下選項中合法的c語言常量是()。

A.,C—STR’B.2014.1C.”\l.0D.2EK

14.設有定義:floata=2,b=4,h=3;以下c語言表達式中與代數(shù)式(a+B)h計算結(jié)果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

15.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

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

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

16.若要用函數(shù)fopen打開一個新的二進制文件,該文件要既能讀也能寫,則應以哪種方式打開文件()。

A.wbB.wb+C.rb+D.rb

17.鏈表不具有的特點是()。

A.插入、刪除不需要移動元素B.可隨機訪問任一元素C.不必事先估計存儲空間D.所需空間與線性長度成正比

18.

19.設長度為n的鏈隊列用單循環(huán)鏈表表示,若只設頭指針,則入隊操作的時間復雜度為_______。

A.O(1)B.O(log2n)C.O(n)D.O(n2)

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

#include<stdio.h>

main()

{iuta=2,b=3,p;

p=f(a,B)

printf("%d",p);

}

intf(a,b)

{intc;

if(a>B)c=1;

e1Seif(a==B)c=0;

else(3=-1;

return(C);

}

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

二、2.填空題(20題)21.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于______的聯(lián)系。

22.若有語句:

inti=-19,j=i%4;

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

則輸出結(jié)果是【】。

23.若變量n中的值為24,則print函數(shù)共輸出【】行,最后一行有【】個數(shù)。

voidprint(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if(!(i%5))

printf("\n");

}

printf("\n");

}

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

main()

{intx=0;

sub(&x,8,1);

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

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

25.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。

例如,輸入字符串:abc123edf456gh,執(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);

}

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

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p-&d;

d=a;

if{strcmp(a.nalne,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%ld%s\n",d.sno,p>name};

}

27.當運行以下程序時,輸入abcd,程序的輸出結(jié)果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

28.已知存儲結(jié)構(gòu)如下所示,請?zhí)羁铡?/p>

datanext

structlink{chardata;

【】;

}node;

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

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

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

break;}

s+=i;}}

30.有以下程序

main()

{intn=0,m+1,X=2;

if(!n)X-=l;

if(m)X-=2;

if(X)X-=3;

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

}

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

31.需求分析的最終結(jié)果是產(chǎn)生【】。

32.下面定義的結(jié)構(gòu)體類型包含3個成員,其中成員變量x用來存入整型數(shù)據(jù),成員變量y用來存入實型數(shù)據(jù),成員變量next是指向自身結(jié)構(gòu)體的指針。請將定義補充完整。

structstu

{intx;

【】

【】next;}

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

#include<stdio.h>

main()

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

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

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

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

word_num(str)

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

if(【】='')word=0;

【】;

}

return(num);

}

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

}

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

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

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

38.下面的程序可列指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

39.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達式是【】。

40.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*f1)(),int(*f2)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】。

三、1.選擇題(20題)41.SQL語言又稱為______。

A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言

42.下面程序的輸出結(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

43.以下程序輸出的結(jié)果是_______。main(){inta=65535;printf("%d%u",a,A);}

A.-1-1B.6553565535C.-165535D.65535-1

44.下列程序是用來判斷數(shù)組中特定元素的位置所在的。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

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

if(s[*k]<s[i])*k=i;

returns[*k];}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

如果輸入如下整數(shù):876675896101301401980431451777

則輸出結(jié)果為

A.7,431B.6C.980D.6,980

45.在設計程序時,應采納的原則之一是()。

A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結(jié)構(gòu)應有助于讀者理解

46.有以下程序:structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042);c=b;}voidf2(structSTU*c){structSTUb={"SunDan",2044);*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043);f1(a);f2(&b);printf("%d%d\n",a.num,b.num);}執(zhí)行后輸出結(jié)果是()。

A.20412044B.20412043C.20422044D.20422043

47.以下選項中合法的實型常數(shù)是

A.5E2.0B.E-3C.2.00E+00D.1.3E

48.在下列敘述中,正確的一條是______。

A.如果形參發(fā)生改變,不會改變主調(diào)函數(shù)的實參值

B.在C語言中,函數(shù)可以遞歸調(diào)用或遞歸定義

C.數(shù)組名作函數(shù)參數(shù)時,也采用“值傳送”方式

D.預處理時,宏名用字符串代替,并檢查語法正確與否

49.設有說明:inta=1,b=0;,則執(zhí)行以下語句的輸出結(jié)果是______。switch(a){case1:switch(b){case0:printf("**0**\n");break;case1:printf("**1*\n");break;}case2:printf("**2**\n");break;}

A.**0**B.**0****2**C.**0****1****2**D.switch語句中存在語法錯誤

50.有以下程序:voidfun(char*a,char*b){a=b;(*a)++;)main(){charc1='A',c2='a',*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c%c\n",c1,c2);}程序運行后的輸出結(jié)果是______。

A.AbB.aaC.AaD.Bb

51.

對兩個數(shù)組a和b進行下列初始化:

charm[]="1234567";

charn[]={1,2,3,4,5,6,7};

則下列敘述正確的是()。

A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串

52.算法的空間復雜度是指

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

53.有以下程序:#include<stdio.h>main(){unsignedinta;intb=-1;a=b;printf("%u",a);程序運行后的輸出結(jié)果是()。

A.-1B.65535C.32767D.-32768

54.若變量a是int類型,并執(zhí)行了語句:a='A'+1.6;則正確的敘述是

A.a的值是字符CB.a的值是浮點型C.不允許字符型和浮點型相加D.a的值是字符'A'的ASCII值加上1。

55.結(jié)構(gòu)化程序設計主要強調(diào)的是

A.程序的規(guī)模B.程序的效率C.程序設計語言的先進性D.程序易讀性

56.若有以下定義和語句,則輸出結(jié)果是(口代表空格)______。chars[10];s="abcd";printf("%s\n",s);

A.輸出abcdB.輸出aC.輸出abcd口口口口口D.編譯不通過

57.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

A.插入排序B.選擇排序C.快速排序D.歸并排序

58.下面能正確進行字符串賦值操作的語句是______。

A.chars[5]={"ABCDE"}:

B.chars[5]={'A'、'B'、'c'、'D'、'E'};

C.char*s;s="ABCDEF";

D.char*s;scanf("%s",s):

59.在C程序中,可將整型數(shù)以二進制形式存放到文件中的函數(shù)是______。

A.fprint函數(shù)B.fread函數(shù)C.fwrite函數(shù)D.fputc函數(shù)

60.在數(shù)據(jù)管理技術的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是()。

A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項管理

四、選擇題(20題)61.讀出以下語句的輸出結(jié)果是()。

intx=10,y=10;

printf(“%d%d\n”,x--,--y);

A.1010B.99C.910D.109

62.設變量X和y均已正確定義并賦值。以下if語句中,在編譯時將產(chǎn)生錯誤信息的是()。A.if(x++);

B.if(x>y&&y!=0);

C.if(x>y)x--elsey++;

D.if(y<0){;}elsex++;

63.若變量x、Y已正確定義并賦值,以下符合C語言語法的表達式是()。

A.++x,y=x-B.x+1=yC.x=x+10=x+yD.double(x/10)

64.函數(shù)fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點是()。

A.文件開始B.文件末尾C.文件當前位置D.以上都不對

65.下列能正確進行字符串賦值的是()。A.A.chars[5]={”ABCI)E”);

B.chars[5]={'A','B','C','D','E'};

C.char*s;s="ABCDE";

D.char*s;printf("%S",s);

66.設有以下函數(shù):

A.

B.

C.

D.

67.

68.

69.

70.

有以下程序:

voidfun(char*a,char*b)

{a=b;(*a)++;}

main

{charc1=A,c2=a,*p1,*p2;

p1=&c1;p2=*c2;fun(p1,p2);

printf("%C%c\n",c1,c2);

}

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

A.AbB.aaC.AaD.Bb

71.有

溫馨提示

  • 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

提交評論