2022年山東省聊城市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第1頁
2022年山東省聊城市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第2頁
2022年山東省聊城市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第3頁
2022年山東省聊城市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第4頁
2022年山東省聊城市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022年山東省聊城市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________一、單選題(20題)1.下列代碼的復(fù)雜度是多少?如果多于1個答案正確,選擇最小的那個。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)

2.二維數(shù)組A的每個元素是由6個字符組成的串,其行下標(biāo)i=0,1,…,8,列下標(biāo)j=1,2,…,10。若A按行先存儲,元素A[8][5]的起始地址與當(dāng)A按列先存儲時的元素()的起始地址相同。設(shè)每個字符占一個字節(jié)。

A.A[8][5]B.A[3][10]C.A[5][8]D.A[0][9]

3.

4.若變量已正確定義為int型,要通過語句“scanf(“%d,%d,%d”,&a,&b,&c);”將a賦值為1、將b賦值為2、將c賦值為3,以下輸入形式中錯誤的是(注:□代表一個空格符)()。

A.1,2,3<Enter>

B.□□□1,2,3<Enter>

C.1,□□□2,□□□3<Enter>

D.1□2□3<Enter>

5.有以下程序:#include<stdio.h>intf(intx):main{intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;)程序運(yùn)行后的輸出結(jié)果是()。A.1B.2C.4D.8

6.成功的測試是指A.A.運(yùn)行測試實(shí)例后未發(fā)現(xiàn)錯誤

B.發(fā)現(xiàn)程序的錯誤

C.證明程序正確

D.軟件產(chǎn)生

7.下列關(guān)系模型中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個數(shù)多于原來關(guān)系中屬性個數(shù)的是

A.選擇B.連接C.投影D.并

8.以下有4組用戶標(biāo)識符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

9.已知廣義表:A=(a,b),B=(A,A),C=(a,(b,A),B),tail(head(tail(C)))的運(yùn)算結(jié)果是()。

A.(a)B.AC.aD.(A)

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

A.算術(shù)運(yùn)算符中不包含“=”運(yùn)算符

B.模運(yùn)算符“%”是c語言基本的算術(shù)運(yùn)算符

C.算術(shù)運(yùn)算符中只有“*”、“/”優(yōu)先級高于關(guān)系運(yùn)算符

D.自加和自減運(yùn)算符只能用于變量,而不能用于常量或表達(dá)式

11.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運(yùn)行時輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。

A.w,youjing,o

B.welcome,you,jing,to

C.w,you,eeijing,u

D.w,xelcome,eeijing,u

12.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數(shù)調(diào)用語句是()。

A.strcat(strcat(s1,s2),s3);

B.strcat(s3,strcat(s1,s2);

C.strcat(s3,strcat(s2,s1);

D.strcat(strcat(s2,s1),s3);

13.下列SQL語句中,用于修改表結(jié)構(gòu)的命令式是A.A.Alter

B.Create

C.Update

D.Insert

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

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

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

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

D.上述三種說法都不對

15.

16.當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

17.有以下程序:#include<stdio.h>main(){chara==‘0’,b=‘A’;inti;for(i=1;i<6;i++)if(i%2==0)putchar(a+i);elseputchar(b+i);}程序運(yùn)行后的輸出結(jié)果是()。

A.A2A3BB.2B4DFC.B4CD7D.B2D4F

18.下列二維數(shù)組的說明中,不正確的是()。

A.floata[][4]={0,1,8,5,9};

B.inta[3][4]

C.#defineN5floata[N][3]

D.inta[2][9.5];

19.對于n個元素,下列哪種操作時間復(fù)雜度不是O(nlogn)()

A.凸包計(jì)算B.LC搜索C.有序序列數(shù)字查找D.基于比較的排序

20.

二、2.填空題(20題)21.判定表和判定樹是以圖文形式描述數(shù)據(jù)流圖的【】

22.以下程序運(yùn)行后的輸出結(jié)果是【】。

#include<stdio,h>

main()

{chara[]="Language",b[]:"Programe";

char*pl,*p2;intk;

p1=a;p2=b;

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

if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));

}

23.以下程序運(yùn)行時若從鍵盤輸入:102030<回車>。輸出結(jié)果是【】。

#include<stdio.h>

main()

{

inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);

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

}

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

main()

{inta[]={31,27,20,12,6,1),*p=a;

p++;

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

}

25.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。

charch='B';

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

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

#include<string.h>

main()

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

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

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

}

27.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)分別是順序、選擇和______。

28.下面程序的運(yùn)行結(jié)果是【】。

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

29.若變量n中的值為24,則prnt函數(shù)共輸出【】行。

voidprnt(intn,intaa[])

{inti;

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

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

if!(i%5))printf("\n");

}

printf("\n");

}

30.計(jì)算圓的周長、面積和球體積。

#definePI3.1415926

#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R

main()

{floatr,l,s,v;

printf("inputaradus:");

scanf("%f",&r);

CIRCLE(r,l,s,v);

printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);

}

31.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計(jì)測試實(shí)例的方法稱為【】。

32.在對文件進(jìn)行操作的過程中,若要求指針的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

34.在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。

35.某二叉樹中度為2的結(jié)點(diǎn)有n個,則該二叉樹中有【】個葉子結(jié)點(diǎn)。

36.在使用putchar和getchar函數(shù)處理字符時,必須在程序的開頭出現(xiàn)包含頭文件的命令行是【】。

37.數(shù)據(jù)庫的邏輯模型設(shè)計(jì)階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。

38.數(shù)據(jù)庫設(shè)計(jì)分為以下6個設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

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

main()

{

intp[7]=(11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

40.以下函數(shù)的功能是計(jì)算請?zhí)羁铡?/p>

doublefun(intn)

{doubles=0.0,fac=1.0;inti;

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

{fac=fac【】;

s=s+fac;

}

returns;

}

三、1.選擇題(20題)41.C語言中各種基本數(shù)據(jù)類型的存儲空間長度排列為()

A.char≤long≤int≤float≤double

B.double≤float≤long≤int≤char

C.char≤int≤long≤float≤double

D.float≤int≤long≤char≤double

42.下列程序的運(yùn)行結(jié)果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}

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

43.下列說法正確的是()。

A.一個C程序可以有多個主函數(shù)

B.一個C語言的函數(shù)中只允許有一對花括號

C.C程序的書寫格式是自由的,一個語句可以寫在一行上,也可以寫在多行內(nèi)

D.在對C程序進(jìn)行編譯時,可以發(fā)現(xiàn)注釋行中的拼寫錯誤

44.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

45.fseek函數(shù)是C語言系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù),其實(shí)現(xiàn)的具體操作是______。

A.實(shí)現(xiàn)文件的順序讀寫B(tài).實(shí)現(xiàn)文件的隨機(jī)讀寫C.改變文件的位置指針D.以上答案均不正確

46.已定義c為字符型變量,則下列語句中正確的是()。

A.c='97'B.c="97"C.c=97D.c="a"

47.有以下程序:#include<stdio,h>main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是()。

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

48.有以下程序:main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是______。

A.42B.45C.56D.60

49.有以下程序:voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(A);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。

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

50.下列能正確定義且賦初值的語句是()。

A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

51.以下能正確定義一維數(shù)組的選項(xiàng)是

A.inta[5]={0,1,2,3,4,5}

B.chara[]={'0','1','2','3','4','5','\0'};

C.chara={'A','B','C'};

D.inta[5]="0123";

52.下面程序運(yùn)行后的輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}

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

53.在C語言程序中,下列說法正確的是()。

A.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套

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

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

D.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套

54.fseek函數(shù)的正確調(diào)用形式是()。

A.fseek(文件指針,起始點(diǎn),位移量)

B.fseek(文件指針,位移量,起始點(diǎn))

C.fseek(位移量,起始點(diǎn),文件指針)

D.fseek(起始點(diǎn),位移量,文件指針)

55.棧和隊(duì)列的共同點(diǎn)是()。

A.都是先進(jìn)后出B.都是先進(jìn)先出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)

56.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){intb[6]={2,4,6,8,10,12};int*p--b,**q=&p;printf("%d",*(p++));printf("%d",**q);}

A.*p=&a;scanf("%1f",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%1f",*p);

D.p=&a;scanf("%1f",p);

57.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不確定D.bcdef

58.下列程序是用來判斷數(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.7,431B.6C.980D.6,980

59.下述對C語言字符數(shù)組的描述中錯誤的是()

A.字符數(shù)組可以存放字符串

B.字符數(shù)組中的字符串可以整體輸入、輸出

C.可以在賦值語句中通過賦值運(yùn)算符“=”對字符數(shù)組整體賦值

D.不可以用關(guān)系運(yùn)算符對字符數(shù)組中的字符串進(jìn)行比較

60.下列程序運(yùn)行后,輸出結(jié)果是______。func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}

A.8,15B.8,16C.8,17D.8,8

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

intx=10,y=10;

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

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

62.若有下面說明和定義:

structtest

{intm1;charm2;floatm3;

unionuu(charu1[5];intu2[2];)ua;

}myaa;

則sizeof(structtest)的值是()。

A)20B)16

C)14D)9

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

A.1B.7C.9D.13

64.若有定義語句:inta[21[3],*P[3];則以下語句中正確的是()。

A.p:a;B.p[0]=a;C.p[O]=&a[1][2];D.1a[1]=&a;

65.

66.

67.有以下程序:

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

A.0B.3C.7D.8

68.

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

A.將a所指字符串賦給b所指空間

B.使指針b指向a所指字符串

C.將a所指字符串和b所指字符串進(jìn)行比較

D.檢查a和b所指字符串中是否有‘、O’

70.

有以下程序:

main

{inti,j;

for(j=10;j<11;j++)

{for(i=9;i<j;i++)

if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結(jié)果是()。

A.11B.10C.9D.1011

71.有三個關(guān)系R、S和T如下:

則由關(guān)系R和S得到關(guān)系T的操作是()。

A.自然連接B.交C.投影D.并

72.有以下程序:

注意:字母a的ASCIl碼值為97,程序運(yùn)行后的輸出結(jié)果是()。

A.dB.goC.godD.good

73.(50)數(shù)據(jù)庫概念設(shè)計(jì)的過程中,視圖設(shè)計(jì)一般有三種設(shè)計(jì)次序,以下各項(xiàng)中不對的是()

A.自頂向下

B.由底向上

C.由內(nèi)向外

D.由整體到局部

74.

75.

76.下列關(guān)于C語言文件的敘述中正確的是()。

A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件

B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

D.文件由字符序列組成,其類型只能是文本文件

77.設(shè)有下列二叉樹:對此二叉樹前序遍歷的結(jié)果為()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

78.以下選項(xiàng)中,與k=n++完全等價的表達(dá)式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

79.以下選項(xiàng)錯誤的是

80.

程序運(yùn)行后的輸出結(jié)果是()。A.1002,ZhangDa,1202.0

B.1002,ChangRon9。1202.0

C.1001,ChangRon9,1098.0

D.1001,ZhangDa,1098.0

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,當(dāng)n為l0時,函數(shù)值應(yīng)為22.550361。f(x)函數(shù)定義如下:請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.有N個學(xué)生,每個學(xué)生的信息包括學(xué)號、性別、姓名、四門課的成績,從鍵盤上輸入N個學(xué)生的信息,要求輸出總平均成績最高的學(xué)生信息,包括學(xué)號、性別、姓名和平均成績。

參考答案

1.D

2.A

3.D

4.D在輸入整數(shù)或?qū)崝?shù)這類數(shù)值型數(shù)據(jù)時,輸入數(shù)據(jù)之間必須用空格、回車符、制表符等間隔符隔開,間隔符個數(shù)不限。scanf的格式控制字符串也可以使用其他非空白字符,如本題中的逗號,但在輸入時必須輸入這些字符,以保證匹配,所以逗號必須輸入。故本題答案為D選項(xiàng)。

5.D本題考查函數(shù)返回值作參數(shù),最初n=1,f(n)=f(1)=2,將f(n)的結(jié)果代入第二個f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

6.B軟件測試的目的主要有以下幾個方面。

(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。

(2)一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。

(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。

另外,即使經(jīng)過了最嚴(yán)格的測試,可能仍然還有沒被發(fā)現(xiàn)的錯誤藏在程序中,測試只是找出程序中的錯誤,不能證明程序中沒有錯誤。

7.B解析:本題主要考查關(guān)系模型中幾種運(yùn)算的特征。經(jīng)過選擇或投影運(yùn)算得到的新關(guān)系的屬性個數(shù)最多不會超過原關(guān)系中的屬性個數(shù)。經(jīng)過連接運(yùn)算得到的新關(guān)系最多不少于原關(guān)系中屬性的個數(shù)。故選項(xiàng)B正確。

8.C解析:選項(xiàng)A中for和case為C語言中的保留字,不能作為用戶標(biāo)志符,故A錯誤。選項(xiàng)B中的4d其開頭的第一個為數(shù)字,而在C語言中規(guī)定,第一個字符必須為字母或者下劃線,故B錯誤;選項(xiàng)D中void為C語言中的保留字,不能作為用戶標(biāo)志符,故D錯誤。所以,4個選項(xiàng)中選項(xiàng)C符合題意。

9.D

10.C

11.A題干中,定義一個二維字符數(shù)組v。然后通過for循環(huán),輸入4個字符串welcome、you、to、beijing,將其分別存放在v的4個元素中。數(shù)組v是存放4個字符串的二維數(shù)組;“**v”表示第1個字符串的第一個字符“w”;“*(v+1)”指向第2個字符串“you”;“v[3]+3”指向第4個字符串的第3個字符開始后的整個字符串“jing”;“*(v[2]+1)”表示第3個宇符串的第2個字符“o”。故本題答案為A選項(xiàng)。

12.Bstrcat函數(shù)是字符串連接函數(shù),調(diào)用形式為strcat(s1,s2)。其功能是將s2指向的字符串的內(nèi)容連接到s1指向的存儲空間中,并返回s1的地址。由題意可知,新串首地址為s3,所以s3應(yīng)該是第一參數(shù),選項(xiàng)A、D錯誤。同理,新串中除了S3所指的字符串,剩下的字符串為“nameaddress”,即首地址為s1,所以調(diào)用strcat函數(shù),s1是第一參數(shù)。所以正確的函數(shù)調(diào)用語句為“strcat(s3,strcat(s1,s2))”。故本題答案為B選項(xiàng)。

13.A本題主要考查SQL中一些基本的命令。SQL常用的語句包括:Select、Insert、Update、Delete、Create、Alter和Drop等。

在SQL語言中使用率最高的是Select,這個命令的作用是從表中查找出滿足條件的記錄。

Insert命令的作用是對數(shù)據(jù)表進(jìn)行插入操作。

Update命令的作用是對數(shù)據(jù)表進(jìn)行更新操作。

Delete命令的作用是對數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行刪除操作。

Create命令的作用是創(chuàng)建數(shù)據(jù)表。

Alter命令的作用是修改表的結(jié)構(gòu)。

Drop命令的作用是用來刪除表,它與Delete的區(qū)別是進(jìn)行Drop操作后,數(shù)據(jù)表不存在了,而進(jìn)行Delete操作后,數(shù)據(jù)表還在,只是數(shù)據(jù)被刪除了。

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

15.B

16.A

17.D程序首先定義字符變量a并賦初值‘0’,定義字符變量b并賦初值‘A’。然后執(zhí)行for循環(huán),當(dāng)i為偶數(shù)時,輸出字符“a+i”;當(dāng)i為奇數(shù)時,輸出字符“b+i”。因?yàn)閿?shù)字和字母的ASCII值都是按順序遞增的,所以本題輸出為B2D4F。故本題答案為D選項(xiàng)。

18.D解析:C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達(dá)式,而不能省略第二個方括號中的常量表達(dá)式:二維數(shù)組的一般定義格式是:類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]。

19.C

20.B

21.判定樹、判定表判定樹、判定表

22.gaegae解析:本題考查字符指針變量與字符數(shù)組。for循環(huán)語句共循環(huán)8次:

①當(dāng)k=0時,*(Pl+0)='L',*(p2+0)='P',L!=P,沒有輸出。

②當(dāng)k=1時,*(p1+1)='a',*(p2+1)='r',a!=r,沒有輸出。

③當(dāng)k=2時,*(p1+2)='n',*(p2+2)='o',n!=o,沒有輸出。

④當(dāng)k=3時,*(P1+3)='g',*(p2+3)='g',g==g,所以輸出g。

⑤當(dāng)k=4時,*(p1+4)='u',*(P2+4)='r',u!=r,沒有輸出。

⑥當(dāng)k=5時,*(p1+5)='a',*(p2+5)='a',a==a,所以輸出a。

⑦當(dāng)k=6時,*(p1+6)='g',*(p2+6)='m',g!=m,沒有輸出。

⑧當(dāng)k=7時,*(p1+7)='e',*(p2+7)='e',e==e,輸出e。

⑨當(dāng)k=8時結(jié)束循環(huán),輸出結(jié)果為:gae。

23.1030010300解析:本題的scanf()函數(shù)要求用戶輸入三個十進(jìn)制整數(shù),但只接受第一和第三個到函數(shù)的第二和第三個參數(shù)所指的內(nèi)存地址中。所以本題的輸出為:10300。

24.1212解析:本題考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3]的值12。

25.B66B66解析:printf函數(shù)的功能是按照指定的格式,在標(biāo)準(zhǔn)輸出設(shè)備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項(xiàng)參數(shù)。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進(jìn)制整數(shù)格式輸出ch,B的ACSII碼值為66,即在計(jì)算機(jī)中B的十進(jìn)制整數(shù)格式是66。所以,輸出為B66。

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

27.重復(fù)(循環(huán))重復(fù)(循環(huán))解析:結(jié)構(gòu)化程序設(shè)計(jì)包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。

28.1-21,-2解析:題中外層while循環(huán)的循環(huán)條件是y--!=-1,即y>=0;內(nèi)層do…while循環(huán)的循環(huán)條件是y--即y-->0,y>=1。注意:break和continue語句在循體中的作用。

29.55解析:本題的關(guān)鍵在于if(!(i%5))printf('\\n),這句,即如果i可被5整除時,則換行。i值為24,可以被5整除4次,并余4,因此,prnt函數(shù)共輸出5行,最后一行有4個數(shù)。

30.CIRCLE(RLSV)S=PI*R*Rr1sv

31.黑箱法黑箱法

32.rewindrewind解析:庫函數(shù)rewind()的作用是使文件位置指針重新返回文件的開頭,所以本題應(yīng)該填rewind。

33.21

34.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲結(jié)構(gòu)中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關(guān)系,對于順序存儲的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲空間的位置來實(shí)現(xiàn)的,而對于鏈?zhǔn)酱鎯碚f,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實(shí)現(xiàn)的。

35.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為0的結(jié)點(diǎn)多一個。

36.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函數(shù)時,必須在程序的開頭出現(xiàn)包含頭文件#include'stdio.h'的命令行。putchar的函數(shù)調(diào)用形式為:putchar(字符變量或字符常量);getchar函數(shù)的調(diào)用形式為:變量=getchar();getchar后的一對圓括號內(nèi)沒有參數(shù),但這一對圓括號不可少。

37.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計(jì)的任務(wù)是將概念模型進(jìn)一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計(jì)的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。

38.概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)

39.2424解析:本題程序定義了一維數(shù)組p,有七個數(shù)組元素,整型變量i,j初值分別為0,當(dāng)while的條件表達(dá)式(i<7&&p[i]%2=1)的值為真時,執(zhí)行語句j+=p[i++];,如:當(dāng)i=0時,i<7為真,p[i]%2=11%2=1,表達(dá)式(p[i]%2=1)的值為真,所以接個表達(dá)式(i<7&&p[i]%2=1的值為真,執(zhí)行j=j+p[i++]=0+11=11,i=1;,依此類推可以得出答案24。

40./i或*(1.O/i)或/(double)i/i或*(1.O/i)或/(double)i解析:主函數(shù)中首先定義了兩個double型的變量s和fac,并給它們賦初值為0.0和1.0,在函數(shù)中s和fac的作用是存放和以及要加到的那一項(xiàng)的值。通過分析可知,第i項(xiàng)的值可以由第i-1項(xiàng)的值得到,即第i項(xiàng)是第i-1項(xiàng)的值除以i。可見橫線處應(yīng)添“/i”或與它等價的表達(dá)式。

41.C

42.D解析:本題考查while循環(huán)。第一次循環(huán),先拿x的值和(y-1)比較,此時x=1,y-1=2,循環(huán)條件成立,比較完將x的值加1,此時x=2,進(jìn)入循環(huán),a=a+1=1,判斷if語句的控制條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),先拿x的值和(y-1)比較,此時x=2,y-1=1,循環(huán)條件成立,比較完將x的值加1,此時x=3,進(jìn)入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執(zhí)行break語句退出循環(huán)。

43.C解析:本題涉及C語言基本的3個知識點(diǎn):①C語言規(guī)定一個程序只允許有一個主函數(shù),一個函數(shù)內(nèi)可以允許有多個花括號;②C語言的標(biāo)識符是由字母、數(shù)字、下劃線組成的,可以是大寫字母,而且標(biāo)識符區(qū)分字母的大小寫;③C程序的注釋部分僅僅是方便程序員閱讀,提高程序的可讀性和可移植性,它并不參與程序的編譯,所以編譯器也就不會發(fā)現(xiàn)注釋行中的錯誤。

44.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認(rèn),則默認(rèn)為int。函數(shù)中如果有“retum(表達(dá)式):”語句,表達(dá)式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實(shí)際情況是把表達(dá)式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。

45.C解析:fseek函數(shù)的原形為intfseek(FILE*fp,longoffset,intbase);函數(shù)的功能是將fp所指向的位置指針移到以base所指位置為基準(zhǔn)、以offset為位移量的位置。可見,fseek是改變文件的位置指針。

46.C解析:本題考核的知識點(diǎn)是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項(xiàng)B和選項(xiàng)D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項(xiàng)B和選項(xiàng)D不正確。因?yàn)樵贑語言中,字符常量在存儲時,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項(xiàng)C正確.而選項(xiàng)A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項(xiàng)A不正確,所以,4個選項(xiàng)中選項(xiàng)C符合題意。

47.D解析:在程序中,當(dāng)L的值為5和4時,case都沒有與其匹配的值,所以執(zhí)行default語句;當(dāng)k=3時,執(zhí)行n+=k;得n=3;當(dāng)L=2時,執(zhí)行case2:然后順序執(zhí)行case3:n+=k;得n=5;當(dāng)k=1時,執(zhí)行case1:n+=k;得n=6,然后順序執(zhí)行case2:和case3:n+=k;使得n=7。

48.A解析:本題考查while語句和if語句的嵌套,程序段實(shí)現(xiàn)的功能是將p[1]至p[7]中的奇數(shù)相加求和并輸出,j=13+15+17=45。

49.B解析:題目中定義了一個指針變量作為函數(shù)f()的參數(shù)。主函數(shù)main()中調(diào)用f()函數(shù),當(dāng)i=0時,執(zhí)行語句“(*q)++;”,此處*q就代表數(shù)組a[0]的地址,也即將q進(jìn)行加1操作;當(dāng)i=1時,q仍指向數(shù)組元素a[0]的地址,因?yàn)樵诤瘮?shù)f()中并未對指針變量q做任何變動,即*q仍代表數(shù)組元素a[0]的值,所以此次(*q)++即為2+1,a[0]的值變?yōu)?;直到i=4時,執(zhí)行(*q)++后a[0]的值變?yōu)?,最后輸出數(shù)組a的結(jié)果為6、2、3、4、5。

50.B解析:C語言規(guī)定,可以在定義變量的同時給變量賦初值,稱為變量初始化。在選項(xiàng)A)中在給n1和n2進(jìn)行賦初值,但變量02沒有定義;在選項(xiàng)C)中定義變量f時,不能在賦值表達(dá)式的右邊出現(xiàn)變量f自身,所以選項(xiàng)C)錯誤:在選項(xiàng)D)用指數(shù)表達(dá)式的常量中,字母E后面的數(shù)應(yīng)該為整數(shù),而不應(yīng)該為小數(shù)形式。因此,選項(xiàng)B)正確。

51.B解析:選項(xiàng)A)中,定義的初值個數(shù)大于數(shù)組的長度;選項(xiàng)C)中,數(shù)組名后少了中括號;選項(xiàng)D)中,整型數(shù)組不能賦予字符串。

52.C解析:本題a[2][3]定義為一個具有兩行三列的元素的數(shù)組,malloc()函數(shù)的作用是開辟了一個長度為sizeof(int)的內(nèi)存區(qū),p為指向整型數(shù)據(jù)的指針變量,程序調(diào)用fut()函數(shù),將第一行第一列對應(yīng)的元素值賦給**s,由于數(shù)組中第一行第一列對應(yīng)的元素為9,所以本題輸出值9。

53.B解析:本題考查函數(shù)調(diào)用的基本概念。因?yàn)楹瘮?shù)的結(jié)果是個未知量,而函數(shù)定義時不能使用未知量,所以函數(shù)定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。

54.B解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:

fseek(文件指針,位移量,起始點(diǎn))

“起始點(diǎn)”用0,1或2代替,0代表“文件開始”,1為“當(dāng)前位置”,2為“文件末尾”。

“位移量”指以“起始點(diǎn)”為基點(diǎn),向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件長度大于64k時不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字末尾加一個字母L表示long型。

55.C棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種“先進(jìn)先出”的線性表:本題答案為C)。

56.D解析:double*p,a;語句表示定義了一個指向雙精度型的指針變量p和雙精度型變量a,而語句p=&a表示將變量a的地址賦給指針變量p;scanf('%1f',p)表示用鍵盤輸入的數(shù)賦給指針變量p所指向的地址單元中。scanf()函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f(或%1e)。否則,數(shù)據(jù)不能正確輸入。所以選項(xiàng)D)為正確答案。

57.C解析:字符串少一個結(jié)束標(biāo)志,所以輸出的結(jié)果不確定。

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

59.C

60.C

61.D

62.Asizeof求在存儲單元中所占字節(jié)數(shù)。

63.C1題中用動態(tài)存儲分配函數(shù)mMloc分配了一個int型數(shù)據(jù)長度大1小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f中對P所指1向的數(shù)據(jù)進(jìn)行了賦值,P[1][1]為二維數(shù)組第二行第二列的元素,對應(yīng)于實(shí)參a的元素9,所以輸出結(jié)果為9。

64.CA選項(xiàng)錯誤,因?yàn)镻是指向一個指針數(shù)組,作為數(shù)組名,不能指向別的地方。B選項(xiàng)錯誤,因?yàn)镻[0]是一個int指針,也就是int-;而a是一個指向指針的指針in‘}}。c選項(xiàng)正確,因?yàn)閜[O]是一個int},a[1][2]是int,&a[1][2]是int+,類型吻合。D選項(xiàng)錯誤,因?yàn)閍作為數(shù)組名,不能取地址。即使能取,P[1]是int·,&a是int+t;,類型不對。因此C選項(xiàng)正確。

65.D

66.D

67.B本題中遇到“\”字符循環(huán)結(jié)束,所以只統(tǒng)計(jì)“\”之前的數(shù)字字符,所以為3。

68.C

69.AWhile循環(huán)條件為:(_h=}a)f-‘、0’,執(zhí)行時先把指針a所指向的字符賦給指針b所在內(nèi)存單元,如果該字符不是結(jié)束標(biāo)識‘\0’,執(zhí)行循環(huán)體a++;b++;,指針a.b分別指向下一個字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在內(nèi)存單元,直到遇到結(jié)束標(biāo)識為止。因此A選項(xiàng)正確。

70.B

\n本題考多循環(huán)的使用,當(dāng)j=10,i=9時,循環(huán)成立,第一個if條件為假,第二個if條件i==j-1成立,則輸出j的值為10,接者執(zhí)行i++后,i為10;當(dāng)i為10,for循環(huán)不成立,退出內(nèi)層循環(huán),此時執(zhí)行j++后,j為11,循環(huán)不成立,退出循環(huán)。

\n

71.A解析:結(jié)構(gòu)化程序的概念首先是從以往編程過程中無限制地使用轉(zhuǎn)移語句而提出的。轉(zhuǎn)移語句可以使程序的控制流程強(qiáng)制性地轉(zhuǎn)向程序的任一處,在傳統(tǒng)流程圖中,就是用上節(jié)我們提到的“很隨意”的流程線來描述這種轉(zhuǎn)移功能。如果一個程序中多處出現(xiàn)這種轉(zhuǎn)移情況,將會導(dǎo)致程序流程無序可尋,程序結(jié)構(gòu)雜亂無章,這樣的程序是令人難以理解和接受的,并且容易出錯。尤其是在實(shí)際軟件產(chǎn)品的開發(fā)中,更多的追求軟件的可讀性和可修改性,象這種結(jié)構(gòu)和風(fēng)格的程序是不允許出現(xiàn)的。

72.Afun函數(shù)的功能是輸出字符串中ASCII碼能被2整除的字符,g的ASCIl碼為l03,0的ASCIl碼為111,d的ASCIl碼為l00,只有d滿足。因此,本題答案為A)。

73.D

74.D

75.C

76.C文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件。故本題答案為C選項(xiàng)。

77.B解析:所謂二叉樹的前序遍歷(DLR)是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這3者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹,并且,在遍歷左右子樹時,上述規(guī)則同樣適用,即“根-左-右”。故該二叉樹的前序遍歷結(jié)果為“ATBZXCYP”。對于本題,若使用后序遍歷和中序遍歷的結(jié)果分別為“ZBTYCPXA”和“TZBACYXP”。

78.A解析:在本題中k=n++,為后綴運(yùn)算。根據(jù)其運(yùn)算規(guī)則,首先n先加一,但n++表達(dá)式的值依然n原來的值,即k的值沒有改變。選項(xiàng)A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個表達(dá)式和本題中表達(dá)式等價:選項(xiàng)B中先n加1,然后將n加1后的值賦給k,k變化了比原來的值大1,所以這個表達(dá)式和本題中表達(dá)式不等價:選項(xiàng)C中先計(jì)算表達(dá)式左邊的表達(dá)式++=N的值,執(zhí)行++n后,左邊的表達(dá)式的值為n的值加1,然后將n+1后的值賦給k,所以這個表達(dá)式和本題中的表達(dá)式不等價;選項(xiàng)D中表達(dá)式展開為k=k+(n+1),k的值發(fā)生了變化,所以這個表達(dá)式和本題中的表達(dá)式不等價。所以4個選項(xiàng)中A正確。

79.D在選項(xiàng)A中的語句沒有一條是錯誤的。選項(xiàng)B和C中有一個逗號表達(dá)式,選項(xiàng)B中是x=0,y=x+1;,在選項(xiàng)C中是y=x+1,z=x+y;。所以,B和C中也沒有錯誤。選項(xiàng)D中的最后一條語句是以逗號結(jié)束的,而C語言中不能用逗號作為一個語句的結(jié)束標(biāo)志,每一條語句最后應(yīng)該是分號,所以,D選項(xiàng)中的程序是錯誤的。

80.B本題考查結(jié)構(gòu)體變量的引用以及作為函數(shù)參數(shù),題目雖然看似復(fù)雜,其實(shí)比較容易,f函數(shù)的參數(shù)是結(jié)構(gòu)體變量,然后對參數(shù)重新賦值并返回,所以該題目的答案為B選項(xiàng)。

81.(1)錯誤:f(doublex)

正確:doublef(doublex)

(2)錯誤:returns

正確:returns;

【解析】由函數(shù)proe()中的函數(shù)調(diào)用以及函數(shù)f中的re-turn語句,可知函數(shù)f的返回值類型為double,因此,“f(doublex)”應(yīng)改為“doublef(doublex)”;根據(jù)C語言語法規(guī)則,每一條語句都必須以分號結(jié)束,因此,應(yīng)在語句“re-turns”后加上分號。

82.\n#include'stdio.h'

\n#defineN3

\nstructstudent

\n{longstu_num;charsex;

\ncharname[15];intscore[4];

\nfloataverage;};

\nmain

\n{intI,j,index;floatsum,max;

\nstructstudentstuarr[N];

\nfor(I=0;I{printf('pleaseinput%dstudentinformation:\\n',I+1);

\nscanf('%ld,%c,%s',&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I].name);

\nfor(j=0;j<4;j++)

\nscanf('%d',&stuarr[I].score[j]);}

\nfor(I=0;I{sum=0.0;

\nfor(j=0;j<4;j++)

\nsum+=stuarr[I].score[j];

\nstuarr[I].a(chǎn)verage=sum/4.0;}

\nmax=stuarr[0].a(chǎn)verage;

\nindex=0;

\nfor(I=1;Iif(stuarr[I].a(chǎn)verage>max)

\n{max=stuarr[I].a(chǎn)verage;

\nindex=I;}

\nprintf('總平均成績最高的學(xué)生信息是學(xué)號=%ld,性別=%c,姓名=%s,平均成績=%4.1f\\n',stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].a(chǎn)verage);

\n}\n2022年山東省聊城市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________一、單選題(20題)1.下列代碼的復(fù)雜度是多少?如果多于1個答案正確,選擇最小的那個。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)

2.二維數(shù)組A的每個元素是由6個字符組成的串,其行下標(biāo)i=0,1,…,8,列下標(biāo)j=1,2,…,10。若A按行先存儲,元素A[8][5]的起始地址與當(dāng)A按列先存儲時的元素()的起始地址相同。設(shè)每個字符占一個字節(jié)。

A.A[8][5]B.A[3][10]C.A[5][8]D.A[0][9]

3.

4.若變量已正確定義為int型,要通過語句“scanf(“%d,%d,%d”,&a,&b,&c);”將a賦值為1、將b賦值為2、將c賦值為3,以下輸入形式中錯誤的是(注:□代表一個空格符)()。

A.1,2,3<Enter>

B.□□□1,2,3<Enter>

C.1,□□□2,□□□3<Enter>

D.1□2□3<Enter>

5.有以下程序:#include<stdio.h>intf(intx):main{intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;)程序運(yùn)行后的輸出結(jié)果是()。A.1B.2C.4D.8

6.成功的測試是指A.A.運(yùn)行測試實(shí)例后未發(fā)現(xiàn)錯誤

B.發(fā)現(xiàn)程序的錯誤

C.證明程序正確

D.軟件產(chǎn)生

7.下列關(guān)系模型中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個數(shù)多于原來關(guān)系中屬性個數(shù)的是

A.選擇B.連接C.投影D.并

8.以下有4組用戶標(biāo)識符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

9.已知廣義表:A=(a,b),B=(A,A),C=(a,(b,A),B),tail(head(tail(C)))的運(yùn)算結(jié)果是()。

A.(a)B.AC.aD.(A)

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

A.算術(shù)運(yùn)算符中不包含“=”運(yùn)算符

B.模運(yùn)算符“%”是c語言基本的算術(shù)運(yùn)算符

C.算術(shù)運(yùn)算符中只有“*”、“/”優(yōu)先級高于關(guān)系運(yùn)算符

D.自加和自減運(yùn)算符只能用于變量,而不能用于常量或表達(dá)式

11.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運(yùn)行時輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。

A.w,youjing,o

B.welcome,you,jing,to

C.w,you,eeijing,u

D.w,xelcome,eeijing,u

12.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數(shù)調(diào)用語句是()。

A.strcat(strcat(s1,s2),s3);

B.strcat(s3,strcat(s1,s2);

C.strcat(s3,strcat(s2,s1);

D.strcat(strcat(s2,s1),s3);

13.下列SQL語句中,用于修改表結(jié)構(gòu)的命令式是A.A.Alter

B.Create

C.Update

D.Insert

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

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

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

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

D.上述三種說法都不對

15.

16.當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

17.有以下程序:#include<stdio.h>main(){chara==‘0’,b=‘A’;inti;for(i=1;i<6;i++)if(i%2==0)putchar(a+i);elseputchar(b+i);}程序運(yùn)行后的輸出結(jié)果是()。

A.A2A3BB.2B4DFC.B4CD7D.B2D4F

18.下列二維數(shù)組的說明中,不正確的是()。

A.floata[][4]={0,1,8,5,9};

B.inta[3][4]

C.#defineN5floata[N][3]

D.inta[2][9.5];

19.對于n個元素,下列哪種操作時間復(fù)雜度不是O(nlogn)()

A.凸包計(jì)算B.LC搜索C.有序序列數(shù)字查找D.基于比較的排序

20.

二、2.填空題(20題)21.判定表和判定樹是以圖文形式描述數(shù)據(jù)流圖的【】

22.以下程序運(yùn)行后的輸出結(jié)果是【】。

#include<stdio,h>

main()

{chara[]="Language",b[]:"Programe";

char*pl,*p2;intk;

p1=a;p2=b;

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

if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));

}

23.以下程序運(yùn)行時若從鍵盤輸入:102030<回車>。輸出結(jié)果是【】。

#include<stdio.h>

main()

{

inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);

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

}

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

main()

{inta[]={31,27,20,12,6,1),*p=a;

p++;

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

}

25.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。

charch='B';

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

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

#include<string.h>

main()

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

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

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

}

27.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)分別是順序、選擇和______。

28.下面程序的運(yùn)行結(jié)果是【】。

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

29.若變量n中的值為24,則prnt函數(shù)共輸出【】行。

voidprnt(intn,intaa[])

{inti;

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

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

if!(i%5))printf("\n");

}

printf("\n");

}

30.計(jì)算圓的周長、面積和球體積。

#definePI3.1415926

#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R

main()

{floatr,l,s,v;

printf("inputaradus:");

scanf("%f",&r);

CIRCLE(r,l,s,v);

printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);

}

31.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計(jì)測試實(shí)例的方法稱為【】。

32.在對文件進(jìn)行操作的過程中,若要求指針的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

34.在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。

35.某二叉樹中度為2的結(jié)點(diǎn)有n個,則該二叉樹中有【】個葉子結(jié)點(diǎn)。

36.在使用putchar和getchar函數(shù)處理字符時,必須在程序的開頭出現(xiàn)包含頭文件的命令行是【】。

37.數(shù)據(jù)庫的邏輯模型設(shè)計(jì)階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。

38.數(shù)據(jù)庫設(shè)計(jì)分為以下6個設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

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

main()

{

intp[7]=(11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

40.以下函數(shù)的功能是計(jì)算請?zhí)羁铡?/p>

doublefun(intn)

{doubles=0.0,fac=1.0;inti;

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

{fac=fac【】;

s=s+fac;

}

returns;

}

三、1.選擇題(20題)41.C語言中各種基本數(shù)據(jù)類型的存儲空間長度排列為()

A.char≤long≤int≤float≤double

B.double≤float≤long≤int≤char

C.char≤int≤long≤float≤double

D.float≤int≤long≤char≤double

42.下列程序的運(yùn)行結(jié)果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}

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

43.下列說法正確的是()。

A.一個C程序可以有多個主函數(shù)

B.一個C語言的函數(shù)中只允許有一對花括號

C.C程序的書寫格式是自由的,一個語句可以寫在一行上,也可以寫在多行內(nèi)

D.在對C程序進(jìn)行編譯時,可以發(fā)現(xiàn)注釋行中的拼寫錯誤

44.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

45.fseek函數(shù)是C語言系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù),其實(shí)現(xiàn)的具體操作是______。

A.實(shí)現(xiàn)文件的順序讀寫B(tài).實(shí)現(xiàn)文件的隨機(jī)讀寫C.改變文件的位置指針D.以上答案均不正確

46.已定義c為字符型變量,則下列語句中正確的是()。

A.c='97'B.c="97"C.c=97D.c="a"

47.有以下程序:#include<stdio,h>main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是()。

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

48.有以下程序:main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是______。

A.42B.45C.56D.60

49.有以下程序:voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(A);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。

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

50.下列能正確定義且賦初值的語句是()。

A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

51.以下能正確定義一維數(shù)組的選項(xiàng)是

A.inta[5]={0,1,2,3,4,5}

B.chara[]={'0','1','2','3','4','5','\0'};

C.chara={'A','B','C'};

D.inta[5]="0123";

52.下面程序運(yùn)行后的輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}

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

53.在C語言程序中,下列說法正確的是()。

A.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套

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

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

D.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套

54.fseek函數(shù)的正確調(diào)用形式是()。

A.fseek(文件指針,起始點(diǎn),位移量)

B.fseek(文件指針,位移量,起始點(diǎn))

C.fseek(位移量,起始點(diǎn),文件指針)

D.fseek(起始點(diǎn),位移量,文件指針)

55.棧和隊(duì)列的共同點(diǎn)是()。

A.都是先進(jìn)后出B.都是先進(jìn)先出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)

56.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){intb[6]={2,4,6,8,10,12};int*p--b,**q=&p;printf("%d",*(p++));printf("%d",**q);}

A.*p=&a;scanf("%1f",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%1f",*p);

D.p=&a;scanf("%1f",p);

57.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不確定D.bcdef

58.下列程序是用來判斷數(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.7,431B.6C.980D.6,980

59.下述對C語言字符數(shù)組的描述中錯誤的是()

A.字符數(shù)組可以存放字符串

B.字符數(shù)組中的字符串可以整體輸入、輸出

C.可以在賦值語句中通過賦值運(yùn)算符“=”對字符數(shù)組整體賦值

D.不可以用關(guān)系運(yùn)算符對字符數(shù)組中的字符串進(jìn)行比較

60.下列程序運(yùn)行后,輸出結(jié)果是______。func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}

A.8,15B.8,16C.8,17D.8,8

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

intx=10,y=10;

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

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

62.若有下面說明和定義:

structtest

{intm1;charm2;floatm3;

unionuu(charu1[5];intu2[2];)ua;

}myaa;

則sizeof(structtest)的值是()。

A)20B)16

C)14D)9

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

A.1B.7C.9D.13

64.若有定義語句:inta[21[3],*P[3];則以下語句中正確的是()。

A.p:a;B.p[0]=a;C.p[O]=&a[1][2];D.1a[1]=&a;

65.

66.

67.有以下程序:

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

A.0B.3C.7D.8

68.

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

A.將a所指字符串賦給b所指空間

B.使指針b指向a所指字符串

C.將a所指字符串和b所指字符串進(jìn)行比較

D.檢查a和b所指字符串中是否有‘、O’

70.

有以下程序:

main

{inti,j;

for(j=10;j<11;j++)

{for(i=9;i<j;i++)

if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結(jié)果是()。

A.11B.10C.9D.1011

71.有三個關(guān)系R、S和T如下:

則由關(guān)系R和S得到關(guān)系T的操作是()。

A.自然連接B.交C.投影D.并

72.有以下程序:

注意:字母a的ASCIl碼值為97,程序運(yùn)行后的輸出結(jié)果是()。

A.dB.goC.godD.good

73.(50)數(shù)據(jù)庫概念設(shè)計(jì)的過程中,視圖設(shè)計(jì)一般有三種設(shè)計(jì)次序,以下各項(xiàng)中不對的是()

A.自頂向下

B.由底向上

C.由內(nèi)向外

D.由整體到局部

74.

75.

76.下列關(guān)于C語言文件的敘述中正確的是()。

A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件

B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

D.文件由字符序列組成,其類型只能是文本文件

77.設(shè)有下列二叉樹:對此二叉樹前序遍歷的結(jié)果為()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

78.以下選項(xiàng)中,與k=n++完全等價的表達(dá)式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

79.以下選項(xiàng)錯誤的是

80.

程序運(yùn)行后的輸出結(jié)果是()。A.1002,ZhangDa,1202.0

B.1002,ChangRon9。1202.0

C.1001,ChangRon9,1098.0

D.1001,ZhangDa,1098.0

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,當(dāng)n為l0時,函數(shù)值應(yīng)為22.550361。f(x)函數(shù)定義如下:請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.有N個學(xué)生,每個學(xué)生的信息包括學(xué)號、性別、姓名、四門課的成績,從鍵盤上輸入N個學(xué)生的信息,要求輸出總平均成績最高的學(xué)生信息,包括學(xué)號、性別、姓名和平均成績。

參考答案

1.D

2.A

3.D

4.D在輸入整數(shù)或?qū)崝?shù)這類數(shù)值型數(shù)據(jù)時,輸入數(shù)據(jù)之間必須用空格、回車符、制表符等間隔符隔開,間隔符個數(shù)不限。scanf的格式控制字符串也可以使用其他非空白字符,如本題中的逗號,但在輸入時必須輸入這些字符,以保證匹配,所以逗號必須輸入。故本題答案為D選項(xiàng)。

溫馨提示

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

評論

0/150

提交評論