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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.有下列程序:程序執(zhí)行后的輸出結果是()。A.efg,h,z,q,bcd

B.efg,d,zyz,wbbcd

C.efgabcdsnopqhijkIxyz,h,z,q,bcd

D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd

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

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

3.下列方法中,屬于白盒法設計測試用例的方法的是()。

A.錯誤推測B.因果圖C.基本路徑測試D.邊界值分析

4.有以下程序:#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;s+=2;returns;}main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[1],*p);}程序運行后的輸出結果是()。

A.9,8,9B.7,8,7C.7,8,3D.1,2,1

5.有以下程序:

程序的運行結果是()。

A.0987654321

B.4321098765

C.5678901234

D.0987651234

6.已知一算術表達式的中綴表達式為a-(b+c/d)*e,其后綴形式為()

A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.abcd/+e*-

7.有以下程序#include<stdio.h>main(){chara[3O],b[30];scanf("%S",a);gets(b);printf("%s\n%s\\n",a,b);}程序運行時若輸入:howareyou?Iamfine<回車>則輸出結果是()。A.howareyou?Iamfine

B.howareyou?Iamfine

C.howareyou?Iamfine

D.howareyou?

8.下列關于棧的描述中錯誤的是()。

A.棧是先進先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針

9.紅黑樹中已經(jīng)有n個數(shù)據(jù),尋找某個key是否存在的時間復雜度為()

A.o(logn)B.o(n)C.o(n二次方)D.o(1)

10.串是一種特殊的線性表,其特殊性體現(xiàn)在()。

A.可以順序存儲B.數(shù)據(jù)元素是一個字符C.可以鏈式存儲D.數(shù)據(jù)元素可以是多個字符

11.設a和b均為double型變量,且a=5.5,b=2.5,則表達式(int)a+b/b的值是A.6.5B.6C.5.5D.6

12.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序運行后的輸出結果是______。

A.SunDan20044580

B.Penghua20045537

C.LiSiGUO20042580

D.SunDan20041703

13.有以下程序:

執(zhí)行后的結果是()。A.7B.3C.2D.0

14.以下敘述中正確的是

A.語句inta[8]={0};是合法的

B.語句inta[]={0};是不合法的,遺漏了數(shù)組的大小

C.語句chara[2]={"A","BII};是合法的,定義了一個包含兩個字符的數(shù)組

D.語句chara[3];a="AB";是合法的,因為數(shù)組有三個字符空間的容量,可以保存兩個字符

15.下列程序段的時間復雜度為()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)

16.設n個待排序的記錄關鍵字,則在堆排序中需要()個輔助記錄單元。

A.1B.12C.60D.15

17.以下說法正確的是()。

A.函數(shù)可以返回另一個函數(shù)的整個函數(shù)體

B.函數(shù)返回值只能是基本數(shù)據(jù)類型的數(shù)值或指針

C.函數(shù)返回值可以是一個指向函數(shù)的指針

D.函數(shù)返回值可以是一個數(shù)組,同時返回多個值

18.以下選項中能表示合法常量的是()。

A.1,200B.1.5E2.0C.‘\’D.“\007”

19.在關系數(shù)據(jù)庫中,用來表示實體間聯(lián)系的是()。

A.網(wǎng)狀結構B.樹狀結構C.屬性D.二維表

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

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

二、2.填空題(20題)21.數(shù)據(jù)結構分為邏輯結構和存儲結構,循環(huán)隊列屬于______結構。

22.以下程序運行后的輸出結果是______。

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

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

24.算法執(zhí)行過程中所需要的基本運算次數(shù)稱為算法的______。

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

#include<stdio.h>

int(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

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

t(a,b,c,d);

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

}

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0||x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

28.設有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運行后,如果從鍵盤上輸入1298,則輸出結果為

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

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

main()

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

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

31.在面向?qū)ο蠓椒ㄖ?,類的實例稱為______。

32.以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大的順序存放,n為數(shù)組中存放的數(shù)的個數(shù)。插入后數(shù)組中的個數(shù)仍然有序。請?zhí)羁?,使之完整?/p>

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

whiel(x>w[p])【】;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;

}

33.若fp已正確定義為一個文件指針,d1.dat為二進制文件,請?zhí)羁?,以便為“讀”而打開此文件:

fp=fopen(【】);。

34.與表達式a+=b等價的另一書寫形式是______。

35.在關系運算中,【】運算是對兩個具有公共屬性的關系所進行的運算。

36.下列程序中字符串中各單詞之間有一個空格,則程序的輸出結果是【】。

#include<string.h>

main()

{charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"eshe");

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

}

37.函數(shù)pi的功能是根據(jù)以下公式近似求得的:

pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

請在下面的函數(shù)中填空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

for(i=1;i<=n;i++)s=s+【】。

return(sqrt(6*s));

}

38.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

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

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);

}

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

三、1.選擇題(20題)41.下列程序的運行結果為

#include<stdio.h>

voidabc(char*str)

{inta,b;

for(a=b=0;str[a]!='\0';a++)

if(str[a]!='c')

str[b++]=str[a];

str[b]='\0';}

voidmain()

{charstr[]="abcdef";

abc(str);

printf("str[]=%s",str);}

A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab

42.以下4個選項中,不能被看作是一條語句的是______。

A.{;}B.a=0,b=0,c=0;C.if(a>O);D.if(b==0)m=1;n=2;

43.設有定義:intk=1,m=2;noatf=7;則下列選項中錯誤的表達式是()。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

44.設有下列的程序段:charstr[]="HelloWorld";char*ptr;ptr=str;執(zhí)行上面的程序段后,*(ptr+10)的值為()。

A.'\0'B.'0'C.不確定的值D.'0'的地址

45.用鏈表表示線性表的優(yōu)點是()。

A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數(shù)據(jù)元素的物理順序與邏輯順序相同

46.一個完整的C語言程序包含一個或多個函數(shù),其中唯一不可缺少的函數(shù)是()。

A.庫函數(shù)B.scanf函數(shù)C.main主函數(shù)D.printf函數(shù)

47.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

程序的運行結果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

48.C語言規(guī)定,函數(shù)返回值的類型是由()

A.return語句中的表達式類型所決定

B.調(diào)用該函數(shù)時的主調(diào)函數(shù)類型所決定

C.調(diào)用該函數(shù)時系統(tǒng)臨時決定

D.在定義該函數(shù)時所指定的函數(shù)類型決定

49.有以下程序段

charch;intk;

ch=′a′;k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

50.有以下程序:#include<stdio.h>main()inti;for(i=0;i<3;i++)switch(i)case0:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);程序運行后的輸出結果是()。

A.22111B.21021C.122D.12

51.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結果是()。

A.0,7B.7,7C.0,6D.1,6

52.若有語句:char*line[5];,以下敘述中正確的是

A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char為指針變量

B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組

C.定義line是一個指針數(shù)組,語句中的。號稱為間址運算符

D.定義line是一個指向字符型函數(shù)的指針

53.C語言結構體類型變量在程序執(zhí)行期間,()。

A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個成員駐留在內(nèi)存中

54.在數(shù)據(jù)結構中,從邏輯上可以把數(shù)據(jù)結構分為()。A.動態(tài)結構和靜態(tài)結構B.緊湊結構和非緊湊結構C.線性結構和非線性結構D.內(nèi)部結構和外部結構

55.假定建立了以下鏈表結構,指針p、q分別指向如圖所示的結點,則以下可以將q所指結點從鏈表中刪除并釋放該結點的語句組是______。

A.free(q);p->next=q->next;

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

56.索引屬于()。

A.模式B.內(nèi)模式C.外模式D.概念模式

57.設有以下說明語句:typedefstruet{intn;charch[8];}PER;則下面敘述中正確的是()。

A.PER是結構體變量名

B.PER是結構體類型名

C.typedefstruct是結構體類型

D.struct是結構體類型名

58.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結果是______。

A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

59.下列是合法的用戶自定義標識符的是()。

A._w1B.3_xyC.intD.LINE-3

60.有以下程序main(){chara='a',b;printf("%c,",++A);printf("%c\n"。b=a++);}程序運行后的輸出結果是

A.b,bB.b,cC.a,bD.a,c

四、選擇題(20題)61.下列敘述中錯誤的是()。A.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結構必須與邏輯結構一致,

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

C.數(shù)據(jù)庫設計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎上建立數(shù)據(jù)庫

D.數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持

62.

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

set(s,t)

{char*s,*t;

while((*s)&&(*t)&&(*t++==*s++));

return(*s-*t);

}A.A.求字符串的長度

B.比較兩字符串的大小

C.將字符串s復制到字符串t中

D.將字符串s連接到字符串t后

64.

65.有以下程序:

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

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

66.有以下程序:

#include<stdio.h>

intfun(intX,inty)

{if(X!=y)return((x+y)/2);

elsereturn(x);

}

main()

{inta=4,b=5,c=6;

printf("%d/n",fun(2*a,fun(b,c)));

}

程序運行后的輸入結果是()。

A.3

B.6

C.8

D.12

67.在c語言中,變量的隱含存儲類別是()。

A.autoB.staticC.externD.無存儲類別

68.

69.下列C語言用戶標識符中,不屬于合法標識符的是

A.a(chǎn)d_intB.bb_7C._dd7D.int

70.計算機的內(nèi)存儲器比外存器()

A.價格便宜B.存儲容量大C.讀寫速度快D.讀寫速度慢

71.

72.請閱讀以下程序:

上面程序的輸出結果是()。

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

73.以下程序的功能是

#include<stdio.h>

main()

{FILE*fp1;*fp2;

fp1=fopen("file1","r");

fp2=fopen("file2","w");

while(!feof(fp1))

fputc(fgetc(fp1),fp2);

fclose(fp1);

fclose(fp2);

}

A.將磁盤文件的內(nèi)容顯示在屏幕上

B.將兩個磁盤文件合為一個

C.將一個磁盤文件復制到另一個磁盤文件中

D.將兩個磁盤文件合并后送屏幕

74.

75.在下列結論中,只有一個是錯誤的,它是()。

A.C語言允許函數(shù)的遞歸調(diào)用

B.C語言中的continue語句,可以通過改變程序的結構而省略

C.有些遞歸程序是不能用非遞歸算法實現(xiàn)的

D.C語言中不允許在函數(shù)中再定義函數(shù)

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

A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出

B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變

C.當程序執(zhí)行中,數(shù)組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息

D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)

77.(15)在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()

A.概要設計

B.詳細設計

C.可行性分析

D.需求分析

78.有以下程序:

執(zhí)行程序時,給變量X輸入10,程序的輸出結果是()。

A.54B.55C.65D.45

79.有以下程序:

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

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫字母F。

請修改程序中的錯誤,使它能得到正確結果。

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

試題程序:

#include<stdio.h>

voidproc(char*str)

{

inti,j;

//****found****

for(i=j=0;str[i]一0;i++)

if(str[i]!=F)

//****found****

str[i]=str[i];

str[j]=\0;

}

voidmain

{

charstr[80];

printf("\nEnterastring:");

gets(str);

printf("Theoriginalstring:");

puts(str);

proc(str);

printf("Thestringafterdeleted:");

puts(str);

printf("\n\n");}

六、程序設計題(1題)82.…請編寫函數(shù)。fun能是:判斷形參n中的正整數(shù)是幾位數(shù)(輸入數(shù)據(jù)的位數(shù)不超過4位),并將結果通過函數(shù)值返回。例如:若輸入的數(shù)據(jù)為l23,則輸出結果為:輸入的數(shù)字是3位。注意:部分源程序存在PROGl.C中,請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所縮寫的若干語句。試題程序:

參考答案

1.A程序定義一個二維字符數(shù)組v,使用5個字符串對其初始化。對于表達式“*v”等價于“*(v+0)”,輸出的是數(shù)組v的第1個元素efg;“**(v+3)”等價于“*(*(v+3)+0)”,輸出的是數(shù)組v的第4個元素的第1個字符h;“v[4]”表示數(shù)組v的第5個元素,“v[4]+2”表示輸出從下標2開始的所有字符,即z;“v[2]”表示數(shù)組v的第3個元素,“*(v[2]+4)”表示數(shù)組v的第3個元素的下標為4的字符q;“v[1]+1”表示數(shù)組v的第2個元素從下標1開始的子字符串,即bcd。所以程序輸出:efg,h,z,q,bcd。本題答案為A選項。

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

3.CC)【解析】白盒測試方法也稱為結構測試或邏輯測試,主要方法有邏輯覆蓋測試、基本路徑測試等。

4.C在main函數(shù)中調(diào)用了f函數(shù)使形參s指向數(shù)組a。執(zhí)行“S[1]+=6”;語句,則“a[1]=8;”執(zhí)行“*s=7;”語句,則“a[0]=7”;執(zhí)行“s+=2;”語句,則s指向數(shù)組的第3個元素并返回s。調(diào)用后,函數(shù)返回值賦給指針P,則*P=3,因此輸出的結果為7,8,3。故本題答案為C選項。

5.C函數(shù)fun(int*s,intn1,intn2)的功能是對數(shù)組s中的元素進行首尾互相調(diào)換。所以在主函數(shù)中,當fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。所以正確答案為c)。

6.D

7.B此題主要考查scanf函數(shù)和gets函數(shù)的區(qū)別。答案為B。

8.B

\n棧是線性表的一種,它的特點是先進后出,并且只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,因此具有記憶作用,棧可以采用順序存儲,也可以采用鏈式存儲。

\n

9.A

10.B

11.D解析:本題考查的知識點是運算符的優(yōu)先級。在這個表達式中,優(yōu)先級最高的是(int)a,也就是對5.5取整,結果是5,其次是b/b,即2.5/2.5,結果是1.000000,最后相加結果為6.000000(表達式的最終結果為實型),所以4個選項中D正確。

12.B解析:f函數(shù)用了顯式傳地址的方式,因此主函數(shù)中的s值發(fā)生了變化。

13.C調(diào)用函數(shù)fun(7)時,由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(5);

調(diào)用函數(shù)fun(5)時,由于x的值為5,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(3);調(diào)用函數(shù)fun(3)時,由于X的值為3,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(1);調(diào)用函數(shù)fun(1)時,由于x的值為1,執(zhí)行語句“return(3);”,函數(shù)的返回值為3。

因此函數(shù)調(diào)用fun(7)等價于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函數(shù)fun(7)的返回值為2。

14.AB選項中,如給全部元素賦值,則在數(shù)組說明中,可以不給出數(shù)組元素的個數(shù);C選項中,chara[2]={"","B"};不合法,應為chara[2]={′A′,′B′};;D選項中,字符數(shù)組只能在定義的時候可以用字符串常量來初始化,但不能夠先定義字符數(shù)組,然后再用字符串常量進行賦值。因此A選項正確。

15.C

16.A

17.C函數(shù)的返回值是通過return語句返回的,返回值是一個表達式,不限于基本數(shù)據(jù)類型或指針,也可以是結構體類型等,但不能是數(shù)組,選項A、B、D錯誤;函數(shù)的返回值可以是一個指向函數(shù)的指針,選項C正確。故本題答案為C選項。

18.DA選項中整型常量應表示為1200,數(shù)字中不能包含逗號。B選項中E后面的指數(shù)必須為整數(shù)。C選項中轉(zhuǎn)義字符以“\\”開始,若要表示字符“\\”,應寫為“\\\\”。故本題答案為D選項。

19.D單一的數(shù)據(jù)結構——關系,現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系來表示。數(shù)據(jù)的邏輯結構——二維表,從用戶角度,關系模型中數(shù)據(jù)的邏輯結構是一張二維表。但是關系模型的這種簡單的數(shù)據(jù)結構能夠表達豐富的語義,描述出現(xiàn)實世界的實體以及實體間的各種關系。

20.C

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

22.*2*4*6*8**2*4*6*8*解析:程序中定義了一個字符數(shù)組a,并初始化為123456789,接著定義了一個指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個while循環(huán),此循環(huán)的作用是:當i為偶數(shù)時,將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結束,此時數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*

23.軟件開發(fā)

24.時間復雜度時間復雜度解析:算法在執(zhí)行過程中所執(zhí)行的基本運算的次數(shù),也就是執(zhí)行算法所需要的計算工作量,稱為算法的時間復雜度。

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

26.55解析:分析程序,當a=3;b=4;c=5時,判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結果為5。

27.2424解析:本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結果為4*3*2*1=24。

28.89218921

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

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

31.對象對象解析:類描述的是具有相似性質(zhì)的一組對象。例如,每本具體的書是一個對象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對象。一個具體對象稱為類的實例。

32.++pw[i-1]

33.d1.dat"rb"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ù)題意,應該填'd1.dat','rb'。

34.a=a+ba=a+b解析:a+=b與a=a+b等價,作用是把變量a的值加b后再賦給變量a。

35.自然連接自然連接解析:在關系運算中,自然連接運算是對兩個具有公共屬性的關系所進行的運算。

36.HowdoesheHowdoeshe解析:本題的關鍵在于表達式str1+strlen(str1)/2,注意“/”的用法,可得str1+13/2=str1+6。

37.0/i/i或1.0/(i*i)0/i/i或1.0/(i*i)解析:由題面中提供的計算pi的公式可知;在第i項其值為1/(i*i),考慮到運算結果為浮點數(shù),故必須要將1轉(zhuǎn)化為浮點數(shù)或采用1.0/(i*i)的形式。故本題應填1.0/(i*i)或其等效形式。

38.關系模型關系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標準接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關系模型。

39.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關系表達式(*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)結束。因此輸出z的結果為6。

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

41.A解析:本題考查了用字符指針引用字符數(shù)組中的字符及對字符的操作。函數(shù)abc()的for語句執(zhí)行過程是:從字符指針str所指向的字符數(shù)組的第一個元素開始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過程,若字符為'c'就不執(zhí)行。

42.D解析:選項D中有兩條語句。

43.C解析:在C語言中,求余運算符“%”兩邊的運算對象都應為整型數(shù)據(jù),所以需要對變量f進行強制類型轉(zhuǎn)換,正確的寫法為k%(int)f。在C語言中,邏輯運算符與賦值運算符、算術運算符、關系運算符之間從高到低的運算優(yōu)先次序是:!(邏輯“非”)、算術運算符、關系運算符、&&(邏輯“與”)、‖(邏輯“或”)、賦值運算符。根據(jù)運算符的優(yōu)先級與結合性,對于選項A),先計算k>=k的值(為真,即1),再用1對k進行賦值。對于選取項B),先計算k什的值,再對其取負數(shù)。對于選項D),先計算k>=f的值(為假,即0),再用0與m進行比較,故最終結果為0。

44.A解析:本題涉及字符數(shù)組和指針兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上'\\0',所以題中數(shù)組str有11個元素;②ptr指向數(shù)組str的首地址,ptr+10是指向str[10],*(ptr+10)是引用str[10]的值。

45.CC。【解析】數(shù)據(jù)結構是相互之間存在一種或多種特定關系的數(shù)據(jù)元素的集合?!标P系”描述的是數(shù)據(jù)元素之間的邏輯關系,因此又稱數(shù)據(jù)的邏輯結構。數(shù)據(jù)的存儲結構是指數(shù)據(jù)結構(數(shù)據(jù)的邏輯結構)在計算機中的表示,又稱物理結構。數(shù)據(jù)的存儲結構有順序存儲結構和鏈式存儲結構兩種。不同存儲結構的數(shù)據(jù)處理效率不同。由于鏈表采用鏈式存儲結構,元素的物理順序并不連續(xù),對于插入和刪除無需移動元素,很方便,當查找元素時就需要逐個元素查找,因此查找的時間相對更長。

46.C解析:一個完整的C程序有且僅有一個主函數(shù)(main()函數(shù)),主函數(shù)可以調(diào)用其他各種函數(shù),但其他函數(shù)不能調(diào)用主函數(shù),C程序從主函數(shù)開始執(zhí)行,并在主函數(shù)中結束整個程序的運行。故選項C正確。

47.D解析:本題中fun函數(shù)實現(xiàn)丁字符串函數(shù)str-eat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結束符的位置,第二個while循環(huán)將字符串a(chǎn)a中的字符(包括結束符'\\0')逐個復制到字符串ss的末尾處。

48.D

49.D解析:考查printf函數(shù)的相關知識。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和C)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b,所以正確答案為B)。輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數(shù)輸出,所以第一個輸出語句輸出的結果為a,97;第二個輸出語句輸出的結果為k=12。所以選項D)為正確答案。

50.C解析:程序中沒有使用break終止switch語句的執(zhí)行。當i:0時,執(zhí)行第一個case語句,因為它后面沒有break,所以一直到執(zhí)行完default語句結束,輸出3個0,再執(zhí)行下一循環(huán)。所以只有選項C)正確。

51.A解析:本題考查while循環(huán).y的值在while循環(huán)的控制表達式中加1,在循環(huán)體內(nèi)減1,所以總的y值不變,且控制條件++y永遠非零。當x加到7時不滿足循環(huán)條件,結束循環(huán)。

52.A解析:C語言中[]比:優(yōu)先級高,因此line先與[5]結合,形成line[5]形式,這是數(shù)組形式,它有5個元素,然后再與line前面的“*”結合,表示此數(shù)組是一個指針數(shù)組,每個數(shù)組元素都是一個基類型為char的指針變量。

53.A解析:C語言結構體類型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中。

54.C數(shù)據(jù)結構與算法:數(shù)據(jù)結構的基本概念[評析]邏輯結構反映數(shù)據(jù)元素之間的邏輯關系,線性結構表示數(shù)據(jù)元素之間一對一的關系,非線性結構表示數(shù)據(jù)元素之間一對多或多對一的關系。線性結構和非線性結構是根據(jù)數(shù)據(jù)元素之間關系的不同特性加以分類的,即是從邏輯上加以分類的。

55.B解析:選項A的錯誤在于,先已經(jīng)把q結點給釋放,無法再進行余下語句了:選項C和D的錯誤在于因為有了q=(*q).next做了賦值,則free(q)釋放了原來q后面的一個結點。

56.B解析:內(nèi)模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫物理存儲結構與物理存取方法,如數(shù)據(jù)存儲的文件結構、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應保持相同的值。

57.B解析:本題通過typedef在定義一個結構體類型的同時,把它白定義成類型名PER,故PER是結構體類型名。所以,4個選項中B為所選。

58.B解析:第一次執(zhí)行while語句時,z=3>0,然后執(zhí)行z--得z=2,執(zhí)行++x得x=1<5,條件成立,執(zhí)行y=y-1=5

-1=4;第二次執(zhí)行while語句時,z=2>0,然后執(zhí)行z--得z=1,執(zhí)行++x得x=2<5,條件成立,執(zhí)行y=y-1=4-1=3;第三次執(zhí)行while語句時,z=1>0,然后執(zhí)行z--得x=0,執(zhí)行++x得x=3<5,條件成立,執(zhí)行y=y-1=3-1=2;第四次執(zhí)行while語句時因z=0,z<0條件不成立,同時執(zhí)行c--得z=-1。即執(zhí)行完while循環(huán)后x=3、y=2、z=-1。

59.A解析:C語言規(guī)定用戶標識符由英文字母、數(shù)字和下劃線組成,且第一個字符必須是字母或下劃線,由此可見選項B),D)是錯的;此外,C語言不允許用戶將關鍵字作為標識符,而選項C)中的int是C語言的關鍵字。

60.A解析:程序中的第一個輸出語句輸出表達式++a的值,該++a是在使用a之前,先使a的值加1,即為a加1為字符b,此時a的值為b,所以第一個輸出語句輸出的值為b,第二個輸出語句中輸出的b的值,這時b的值為表達式a++的值,a++是在使用a之后(此時a的值為b,所以賦給b的值為B),使a的值加一因此第二個輸出的值也為b.所以,4個選項中選項A符合題意。

61.A解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。數(shù)據(jù)的邏輯結構,是數(shù)據(jù)間關系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關系,而不管其在計算機中的存儲方式。數(shù)據(jù)的存儲結構,又叫物理結構,是邏輯結構在計算機存儲器里的實現(xiàn)。這兩者之間沒有必然的聯(lián)系。因此,選項A的說法是錯誤的。

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

數(shù)據(jù)庫設計是在數(shù)據(jù)庫管理系統(tǒng)的支持下,按照應用的要求,設計一個結構合理、使用方便、效率較高的數(shù)據(jù)庫及其應用系統(tǒng)。數(shù)據(jù)庫設計包含兩方面的內(nèi)容:一是結構設計,也就是設計數(shù)據(jù)庫框架或數(shù)據(jù)庫結構;二是行為設計,即設計基于數(shù)據(jù)庫的各類應用程序、事務等。因此,選項C的說法是錯誤的。

數(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)軟件的支持。因此,選項D的說法是正確的。因此,本題的正確答案是選項A。

62.D\r\n

63.B在本題中,從題目給出的四個選項我們就可以知道,程序是對兩個字符串進行操作。下面將具體分析程序。

程序首先定義兩個字符型的指針變量s和t,從后面的程序中不難看出這兩個指針變量應該用來對兩個字符串進行操作處理。用循環(huán)來對字符串進行處理時,循環(huán)繼續(xù)的條件是指針變量s和指針變量t所指向的結果值不為0,且兩結果值相等。很顯然,指針變量s和指針變量t所指向的結果值不為0,說明兩字符串沒有結束,只有結束時才為0,而結果值相等說明兩字符相等,如果不等,循環(huán)則結束,此時程序?qū)⒁蠓祷夭坏仍刂g的差值,從差值的正負關系我們可以判斷出哪個元素更大。綜上所述,程序段的作用是用來比較兩字符串的大小。因此,本題正確的答案選B。

64.B

65.Cstrcpy:字符串拷貝函數(shù);strlen:求字符串長度函數(shù)(注意:不包含字符串結束標識符‘、0’);strcat:字符串連接函數(shù)。執(zhí)行完語句strcat(P,r);后,P數(shù)組中存儲的元素為a,b,c,d,a,b,C,d,8;執(zhí)行語句strcpy(P+strlen(q),q);得到的結果是將q所指向的字符串拷貝至P+strlen(q)開始的存儲位置,因為strlen的值為3,即從P+3開始存儲q中的元素。所以執(zhí)行完strcpy(P+str|en(q),q)語句后,字符數(shù)組P[20]的存儲元素為a,b,c,a,b,o;所以strlen(P)的結果為6。因此C選項正確。

66.B\n此題考查的是函數(shù)fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。

\n

67.A解析:auto變量:無static聲明的局部變量。用auto作存儲類別的聲明時,可以不寫auto,存儲類別隱含確定為auto(自動存儲類別),是動態(tài)存儲方式。大多數(shù)變量是自動變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲單元空間不釋放,局部變量保留原值,下次調(diào)用時可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?實際上,關鍵字'auto'可以省略,auto不寫則隱含確定為'自動存儲類別',屬于動態(tài)存儲方式。

68.D

69.DC語言的標識符主要用來表示常量、變量、函數(shù)和類型等的名字,只起到標識作用。標識符由數(shù)字、下畫線或英文字母構成,可以分為三類:保留字、預定義標識符和用戶定義標識符。保留字是指每一個標識符都有其特定的含義,不允許用戶把它們當做變量名使用,如if、int、for等。預定義標識符也是一類具有特殊含義的標識符,它們被用做庫函數(shù)名和預編譯命令,如define、include等。用戶定義標識符是用戶根據(jù)自己的需要定義的一類標識符,用于標識變量、符號常量、用戶定義函數(shù)、類型名和文件指針等。這類標識符主要由英文字母、數(shù)字和下畫線構成,但開頭字符一定是字母或下畫線。

題目中選項A、B、C都是合法的用戶自定義標識符,選項D為保留字,不屬于用戶標識符。

70.C

71.C

72.A考查switch語句的使用。switch語句的執(zhí)行過程為:進入switch結構后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為人口,執(zhí)行switch結構中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行default后面的語句。

73.C本題主要考查文件的操作。在本題的程序中,首先定義了兩個文件指針fp1和fp2,然后用指針fp1指向一個以讀方式打開的文件file1,用指針fp2指向一個以寫方式打開的文件file1,接著執(zhí)行while循環(huán),循環(huán)的結束條件是(!feof(fp1))為假,即feof(fp1)為真,表示對文件fp1的操作讀取到結束符,因此,循環(huán)結束的條件是對文件file1的讀取結束,循環(huán)體語句fputc(fgetc(fp1),fp2);中用到了fgetc和fputc函數(shù),C語言提供這兩個函數(shù)對文本文件進行字符的讀寫操作。fgetc(fp1)函數(shù)的作用是從輸入流fp1的當前位置返回一個字符,并將文件指針指示器移到下一個字符處;fputc(ch,fp2)函數(shù)的作用是將字符ch的值寫入所指定的流文件的當前位置處,并將文件指針后移一位。

根據(jù)上面的分析,可以知道循環(huán)結束后,即將指針fp1指向的文件復制到指針fp2指向的文件中,然后關閉兩個操作的文件。因此,本題程序的作用是將一個磁盤文件復制到另一個磁盤文件中,本題正確答案選C。

74.C

75.CC語言不僅可以遞歸調(diào)用,還可以對自己進行遞歸調(diào)用,但是,不允許在函數(shù)中再次定義函數(shù),c語言中的coutinue語句,可以通過改變其結構來實現(xiàn)。

76.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進行整體引用,因此選項A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項B是對的。C語言程序在運行過程中,系統(tǒng)不自動檢驗數(shù)組元素的下標是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。

77.D注:即第一個階段

78.B本程序考察的是函數(shù)的遞歸調(diào)用,在調(diào)用一個函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸調(diào)用,執(zhí)行結果為l+2+3+4+5+6+7+8+9+10=55.

79.A外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為l,打印1*1=1;內(nèi)循環(huán)第二次j的值為2,打印1$2=2;內(nèi)循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內(nèi)循環(huán)。

80.C

81.(1)錯誤:for(i=j=0;str[i]!=0;i++)

\n正確:for(i=j=0;str[i]!=\0;i++)

\n(2)錯誤:str[j]=str[i];

\n正確:str[i++]=str[i];

\n【解析】根據(jù)題目中的要求,從字符串str中刪除所有大寫字母F,需要檢查字符串str中的每一個字符,直到字符串結束,因此,“for(i=j=0;str[i]!=0;i++)”應改為“for(i=J=0;str[i]!=0;i++)”;將每一個不是F的字符放入原來的字符串中,形成新的字符串,因此,“str[j]=str[i];”應改為“str[j++]=str[i];”。

\n

82.

【考點分析】主要考察考生對循環(huán)跳出的條件的理解,以及理解取數(shù)字位數(shù)的方法?!窘忸}思路】通過對指定的多位數(shù)每次除以10,去掉最后一位,直到為0結束,使用臨時變量來統(tǒng)計一個多位數(shù)的位數(shù)。2021年安徽省淮北市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有下列程序:程序執(zhí)行后的輸出結果是()。A.efg,h,z,q,bcd

B.efg,d,zyz,wbbcd

C.efgabcdsnopqhijkIxyz,h,z,q,bcd

D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd

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

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

3.下列方法中,屬于白盒法設計測試用例的方法的是()。

A.錯誤推測B.因果圖C.基本路徑測試D.邊界值分析

4.有以下程序:#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;s+=2;returns;}main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[1],*p);}程序運行后的輸出結果是()。

A.9,8,9B.7,8,7C.7,8,3D.1,2,1

5.有以下程序:

程序的運行結果是()。

A.0987654321

B.4321098765

C.5678901234

D.0987651234

6.已知一算術表達式的中綴表達式為a-(b+c/d)*e,其后綴形式為()

A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.abcd/+e*-

7.有以下程序#include<stdio.h>main(){chara[3O],b[30];scanf("%S",a);gets(b);printf("%s\n%s\\n",a,b);}程序運行時若輸入:howareyou?Iamfine<回車>則輸出結果是()。A.howareyou?Iamfine

B.howareyou?Iamfine

C.howareyou?Iamfine

D.howareyou?

8.下列關于棧的描述中錯誤的是()。

A.棧是先進先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針

9.紅黑樹中已經(jīng)有n個數(shù)據(jù),尋找某個key是否存在的時間復雜度為()

A.o(logn)B.o(n)C.o(n二次方)D.o(1)

10.串是一種特殊的線性表,其特殊性體現(xiàn)在()。

A.可以順序存儲B.數(shù)據(jù)元素是一個字符C.可以鏈式存儲D.數(shù)據(jù)元素可以是多個字符

11.設a和b均為double型變量,且a=5.5,b=2.5,則表達式(int)a+b/b的值是A.6.5B.6C.5.5D.6

12.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序運行后的輸出結果是______。

A.SunDan20044580

B.Penghua20045537

C.LiSiGUO20042580

D.SunDan20041703

13.有以下程序:

執(zhí)行后的結果是()。A.7B.3C.2D.0

14.以下敘述中正確的是

A.語句inta[8]={0};是合法的

B.語句inta[]={0};是不合法的,遺漏了數(shù)組的大小

C.語句chara[2]={"A","BII};是合法的,定義了一個包含兩個字符的數(shù)組

D.語句chara[3];a="AB";是合法的,因為數(shù)組有三個字符空間的容量,可以保存兩個字符

15.下列程序段的時間復雜度為()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)

16.設n個待排序的記錄關鍵字,則在堆排序中需要()個輔助記錄單元。

A.1B.12C.60D.15

17.以下說法正確的是()。

A.函數(shù)可以返回另一個函數(shù)的整個函數(shù)體

B.函數(shù)返回值只能是基本數(shù)據(jù)類型的數(shù)值或指針

C.函數(shù)返回值可以是一個指向函數(shù)的指針

D.函數(shù)返回值可以是一個數(shù)組,同時返回多個值

18.以下選項中能表示合法常量的是()。

A.1,200B.1.5E2.0C.‘\’D.“\007”

19.在關系數(shù)據(jù)庫中,用來表示實體間聯(lián)系的是()。

A.網(wǎng)狀結構B.樹狀結構C.屬性D.二維表

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

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

二、2.填空題(20題)21.數(shù)據(jù)結構分為邏輯結構和存儲結構,循環(huán)隊列屬于______結構。

22.以下程序運行后的輸出結果是______。

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

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

24.算法執(zhí)行過程中所需要的基本運算次數(shù)稱為算法的______。

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

#include<stdio.h>

int(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

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

t(a,b,c,d);

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

}

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0||x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

28.設有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運行后,如果從鍵盤上輸入1298,則輸出結果為

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

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

main()

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

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

31.在面向?qū)ο蠓椒ㄖ?,類的實例稱為______。

32.以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大的順序存放,n為數(shù)組中存放的數(shù)的個數(shù)。插入后數(shù)組中的個數(shù)仍然有序。請?zhí)羁?,使之完整?/p>

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

whiel(x>w[p])【】;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;

}

33.若fp已正確定義為一個文件指針,d1.dat為二進制文件,請?zhí)羁眨员銥椤白x”而打開此文件:

fp=fopen(【】);。

34.與表達式a+=b等價的另一書寫形式是______。

35.在關系運算中,【】運算是對兩個具有公共屬性的關系所進行的運算。

36.下列程序中字符串中各單詞之間有一個空格,則程序的輸出結果是【】。

#include<string.h>

main()

{charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"eshe");

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

}

37.函數(shù)pi的功能是根據(jù)以下公式近似求得的:

pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

請在下面的函數(shù)中填空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

for(i=1;i<=n;i++)s=s+【】。

return(sqrt(6*s));

}

38.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

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

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);

}

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

三、1.選擇題(20題)41.下列程序的運行結果為

#include<stdio.h>

voidabc(char*str)

{inta,b;

for(a=b=0;str[a]!='\0';a++)

if(str[a]!='c')

str[b++]=str[a];

str[b]='\0';}

voidmain()

{charstr[]="abcdef";

abc(str);

printf("str[]=%s",str);}

A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab

42.以下4個選項中,不能被看作是一條語句的是______。

A.{;}B.a=0,b=0,c=0;C.if(a>O);D.if(b==0)m=1;n=2;

43.設有定義:intk=1,m=2;noatf=7;則下列選項中錯誤的表達式是()。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

44.設有下列的程序段:charstr[]="HelloWorld";char*ptr;ptr=str;執(zhí)行上面的程序段后,*(ptr+10)的值為()。

A.'\0'B.'0'C.不確定的值D.'0'的地址

45.用鏈表表示線性表的優(yōu)點是()。

A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數(shù)據(jù)元素的物理順序與邏輯順序相同

46.一個完整的C語言程序包含一個或多個函數(shù),其中唯一不可缺少的函數(shù)是()。

A.庫函數(shù)B.scanf函數(shù)C.main主函數(shù)D.printf函數(shù)

47.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

程序的運行結果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

48.C語言規(guī)定,函數(shù)返回值的類型是由()

A.return語句中的表達式類型所決定

B.調(diào)用該函數(shù)時的主調(diào)函數(shù)類型所決定

C.調(diào)用該函數(shù)時系統(tǒng)臨時決定

D.在定義該函數(shù)時所指定的函數(shù)類型決定

49.有以下程序段

charch;intk;

ch=′a′;k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

50.有以下程序:#include<stdio.h>main()inti;for(i=0;i<3;i++)switch(i)case0:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);程序運行后的輸出結果是()。

A.22111B.21021C.122D.12

51.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結果是()。

A.0,7B.7,7C.0,6D.1,6

52.若有語句:char*line[5];,以下敘述中正確的是

A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char為指針變量

B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組

C.定義line是一個指針數(shù)組,語句中的。號稱為間址運算符

D.定義line是一個指向字符型函數(shù)的指針

53.C語言結構體類型變量在程序執(zhí)行期間,()。

A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個成員駐留在內(nèi)存中

54.在數(shù)據(jù)結構中,從邏輯上可以把數(shù)據(jù)結構分為()。A.動態(tài)結構和靜態(tài)結構B.緊湊結構和非緊湊結構C.線性結構和非線性結構D.內(nèi)部結構和外部結構

55.假定建立了以下鏈表結構,指針p、q分別指向如圖所示的結點,則以下可以將q所指結點從鏈表中刪除并釋放該結點的語句組是______。

A.free(q);p->next=q->next;

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

56.索引屬于()。

A.模式B.內(nèi)模式C.外模式D.概念模式

57.設有以下說明語句:typedefstruet{intn;charch[8];}PER;則下面敘述中正確的是()。

A.PER是結構體變量名

B.PER是結構體類型名

C.typedefstruct是結構體類型

D.struct是結構體類型名

58.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結果是______。

A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

59.下列是合法的用戶自定義標識符的是()。

A._w1B.3_xyC.intD.LINE-3

60.有以下程序main(){chara='a',b;printf("%c,",++A);printf("%c\n"。b=a++);}程序運行后的輸出結果是

A.b,bB.b,cC.a,bD.a,c

四、選擇題(20題)61.下列敘述中錯誤的是()。A.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結構必須與邏輯結構一致,

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

C.數(shù)據(jù)庫設計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎上建立數(shù)據(jù)庫

D.數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持

62.

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

set(s,t)

{char*s,*t;

while((*s)&&(*t)&&(*t++==*s++));

return(*s-*t);

}A.A.求字符串的長度

B.比較兩字符串的大小

C.將字符串s復制到字符串t中

D.將字符串s連接到字符串t后

64.

65.有以下程序:

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

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

66.有以下程序:

#include<stdio.h>

intfun(intX,inty)

{if(X!=y)return((x+y)/2);

elsereturn(x);

}

main()

{inta=4,b=5,c=6;

printf("%d/n",fun(2*a,fun(b,c)));

}

程序運行后的輸入結果是()。

A.3

B.6

C.8

D.12

67.在c語言中,變量的隱含存儲類別是()。

A.autoB.staticC.externD.無存儲類別

68.

69.下列C語言用戶標識符中,不屬于合法標識符的是

A.a(chǎn)d_intB.bb_7C._dd7D.int

70.計算機的內(nèi)存儲器比外存器()

A.價格便宜B.存儲容量大C.讀寫速度快D.讀寫速度慢

71.

72.請閱讀以下程序:

上面程序

溫馨提示

  • 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

提交評論