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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為()。

A.CB.BasicC.DDLD.DML

2.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

3.當一個函數(shù)無返回值時,定義它的函數(shù)類型應是()。

A.voidB.intC.任意D.無

4.數(shù)據(jù)庫系統(tǒng)的核心是()。

A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員

5.

6.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序運行后的輸出結(jié)果是()。A.0B.1C.2D.3

7.以下說法錯誤的是()。

A.散列法存儲的思想是由關鍵字值決定數(shù)據(jù)的存儲地址

B.散列表的結(jié)點中只包含數(shù)據(jù)元素自身的信息,不包含指針

C.負載因子是散列表的一個重要參數(shù),它反映了散列表的飽滿程度

D.散列表的查找效率主要取決于散列表構造時選取的散列函數(shù)和處理沖突的方法

8.對于順序存儲的線性表,訪問結(jié)點和增加、刪除結(jié)點的時間復雜度為()。

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

9.有定義語句:inta=1,b=2,c=3,x;,則以下選項中各程序段執(zhí)行后,x的值不為3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;

B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

10.將發(fā)送端數(shù)字脈沖信號轉(zhuǎn)換成模擬信號的過程稱為

A.鏈路傳輸B.調(diào)制C.解調(diào)D.數(shù)字信道傳輸

11.設R是一個2元關系,有3個元組,S是一個3元關系,有3個元組。如T=R×S,則T的元組的個數(shù)為()。A.6B.8C.9D.12

12.設有以下語句:charstr1[]="string"mstr2[8],*str3,*str4=="string";則______不是對庫函數(shù)的正確調(diào)用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

13.

14.

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

A.為了建立一個關系,首先要構造數(shù)據(jù)的邏輯關系

B.表示關系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項

C.一個關系的屬性名表稱為關系模式

D.一個關系可以包括多個二維表

16.下列程序的運行結(jié)果是()。

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

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

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

18.若有定義“intb[8],*p=b;”,則p+6表示()。

A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6

19.下列敘述中錯誤的是()。

A.用戶定義的函數(shù)中可以沒有return語句

B.用戶定義的函數(shù)中可以有多個return語句,以便調(diào)用一次返回多個函數(shù)值

C.用戶定義的函數(shù)中若沒有return語句,則應當定義函數(shù)為void類型

D.函數(shù)的return語句中可以沒有表達式

20.設有定義“intx[2][3];”,則以下選項中不能表示數(shù)組元素x[0][1]的是()。

A.*(*x+1)B.*(*(x+1)C.(*x)[1]D.*(&x[0][0]+1)

二、2.填空題(20題)21.數(shù)據(jù)庫技術的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。

22.結(jié)構化設計主要分為系統(tǒng)設計和模塊設計,【】的任務是決定系統(tǒng)的模塊結(jié)構。

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

main()

{inta=0;

a+-(a=8);

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

}

24.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體集“項目主管”與實體集“項目”的聯(lián)系屬于【】的聯(lián)系。

25.在關系模型中,把數(shù)據(jù)看成是二維表,每一個二維表稱為一個【】。

26.計算圓的周長、面積和球體積。

#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",【】);

}

27.以下函數(shù)sstrcat()的功能是實現(xiàn)字符串的連接,即將t所指字符串復制到s所指字符串的尾部。例如:s所指字符串為abed,t所指字符串為efgh,函數(shù)調(diào)用后s所指字符串為abodefgh。請?zhí)羁铡?/p>

#include<string.h>

voidsstrcat(char*s,char*t)

{intn;

n=strlen(s);

while(*(s+n)=【】){s++;t++;}

}

28.以下函數(shù)的功能是計算s=1+1/2!+1/3!+…+1/n!,請?zhí)羁铡?/p>

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k

s=s+fac;

}

}

29.數(shù)據(jù)模型按不同的應用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

30.設有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEF<CR>QTHRG<CR>,則程

序的輸出結(jié)果是______。

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

32.常用的軟件結(jié)構設計工具是結(jié)構圖(SC),也稱程序結(jié)構圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

33.【】是數(shù)據(jù)庫設計的核心。

34.性結(jié)構中,隊列的操作順序是先進先出,而棧的操作順序是______。

35.以下說明語句中,【】是結(jié)構體類型名。

typedefstruct

{intn;

charch[8];

}PER;

36.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

37.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END)fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

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

main()

{int=0;

while(n++<=1);

printf("%d,",n);

printf("%d",n++);

}

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

structstu

{intx;

【】

【】next;}

40.該程序運行的結(jié)果是【】。

#include<stdio.h>

main()

{unionEXANPLE

{struct

{

intx;

inty;

}in;

inta;

intb;

}e;

e.a=1;

e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf("\n%d,%d",e.in.x,e.in.y);

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

}

三、1.選擇題(20題)41.需求分析階段的任務是確定()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能

42.數(shù)據(jù)庫系統(tǒng)可分為三級模式,下列選項中不屬于數(shù)據(jù)庫三級模式的是

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

43.以下選項中非法的表達式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

44.若有下面的說明和定義:unionun{chars[10];longd[3];}ua;struetstd{charc[10];doubled;inta;unionunvb;}a;則printf("%d\n",sizeof(structstd)+sizeof(unionun));輸出的值為______。

A.34B.52C.54D.64

45.若有說明:int*p,m=5,n;以下正確的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

46.有以下程序:#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若從鍵盤輸入:abcdef<回車>,則輸出結(jié)果是()。

A.defdefB.abcdefC.abedD.dd

47.語句int(*ptr)()的含義是()。

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.a‖(b+b)&&(c-a)

48.有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序運行的結(jié)果是()。

A.234B.432C.23D.4534554334344523

49.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的輸出結(jié)果是()。

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

50.下列句子中,正確的C語言賦值語句是()

A.n++;B.a=b=88C.t=int(x+y);D.a=100,b=200

51.下列程序的輸出結(jié)果是()。#include<stdio.h>f(intA){intb=0;staticintc=4;a=c++;b++;return(A);}main(){inta=2,i,c;for(i=0;i<2;i++)c=f(a++);printf("%d\n",C);}

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

52.下列程序的輸出結(jié)果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}

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

53.若輸入60和13,以下程序的輸出結(jié)果是()#defineSURPLUS(a,b)((a)%(b))main(){inta,b;scanf("%d,%d",&a,&b);printf("%d\n",SURPLUS(a,b));}

A.60B.13C.73D.8

54.棧通常采用的兩種存儲結(jié)構是()。

A.順序存儲結(jié)構和鏈式存儲結(jié)構B.散列方式和索引方式C.鏈表存儲結(jié)構和數(shù)組D.線性存儲結(jié)構和非線性存儲結(jié)構

55.數(shù)據(jù)的存儲結(jié)構是指()。

A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結(jié)構在計算機中的表示

56.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

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

A.調(diào)用函數(shù)時,實參可以是表達式

B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元

C.調(diào)用函數(shù)時,將實參的值復制給形參,使實參變量和形參變量在數(shù)值上相等

D.調(diào)用函數(shù)時,實參與形參的類型必須一致

58.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為()A.A.log2nB.n/2C.nD.n+l

59.若有說明語句:intx=3,y=4,z=5;,則下面的表達式中,值為0的是______。

A.x&&y

B.x<=y(tǒng)

C.x||++y&&y-z

D.!(x<y&&!z||1)

60.對如下二叉樹進行后序遍歷的結(jié)果為()。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

四、選擇題(20題)61.

62.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關系B.數(shù)據(jù)流C.控制流D.調(diào)用關系

63.執(zhí)行語句X=(a=10,b=a--.后,x、a、b的值依次為()。

A.10,10,9

B.10,9,9

C.9,10,9

D.10,9,10

64.(30)關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括()

A.排序、索引、統(tǒng)計

B.選擇、投影、連接

C.關聯(lián)、更新、排序

D.顯示、打印、制表

65.以下是正確C語言實型常量的是()。

A..e—1B.e一1C.一1eD.1e一1

66.若有說明,double*m,n;則能通過sCanf語句正確給輸入項讀人數(shù)據(jù)的程序段是()。

A.*m=&n;scanf("%lf",m);

B.m=(double*)malloc(10);scanf("%f",m);

C.m=&n;scanf("%lf",n);

D.m=&n;scanf("%le",m);

67.以下函數(shù)實現(xiàn)按每行8個輸出W所指數(shù)組中的數(shù)據(jù):

在橫線處應填人的語句是()。

A.if(i/8==0)printf(”\n”);

B.if(i/8==O)continue;

C.if(i%8==0)prinff(’’\n”);

D.if(i%8==0)continue;

68.下列關于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量

B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量

C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量

D.它們的運算對象可以是char型變量、int型變量和float型變量

69.

70.以下描述中正確的是()。

A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復合語句

B.do-while循環(huán)由do開始,用while結(jié)束,在while(表達式.后面不能寫分號

C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進行判斷

D.do-while循環(huán)中,根據(jù)情況可以省略while

71.

72.若文件指針fp已正確指向文件,ch為字符型變量,以下不能把字符輸出到文件中的語句是()。

A.fget(f0,ch);

B.foutc(ch,fo);

C.fprinff(fp,”%c”,ch);

D.fwrite(&ch,sizeof(ch),1,fp);

73.在滿足實體完整性約束的條件下()。

A.一個關系中廊該有一個或多個候選關鍵字

B.一個關系中只能有一個候選關鍵字

C.一個關系中必須有多個候選關鍵字

D.一個關系中可以沒有候選關鍵字

74.

75.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P

76.設有定義:intk=0;以下選項的四個表達式中與其他三個表達式的值不相同的是()。

A.++kB.k+=1C.k++D.k+1

77.有以下程序

structSTU

{

charname[10];

intnum;

intScore;

};

main()

{

structSTUs[5]={{"YangSan",20041,703},

{"LiSiGuo",20042,580},

{"WangYin",20043,680},

{"SunDan",20044,550},

{"Penghua",20045,537}},*p[5],*t;

inti,j;

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

p[i]=&s[i];

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

for(j=i+1;j<5;j++)

if(p[i]->Score>p[j]->Score)

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

printf("%d%d\n",s[1].Score,p[1]->Score);

}

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

A.550550B.580550

C.680680D.580680

78.以下語句中存在語法錯誤的是()。

79.程序調(diào)試的任務是()。

A.設計測試用例B.驗證程序的正確性C.發(fā)現(xiàn)程序中的錯誤D.診斷和改正程序中的錯誤

80.

有以下程序

#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

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:用遞歸算法計算斐波拉契數(shù)列中第n項的值。從第l項起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項的斐波拉契數(shù)值為l3。請改正程序中的錯誤,使它能得出正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構!試題程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}六、程序設計題(1題)82.使用VC++2010打開考生文件析下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每列中值最大的元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的元素已在主函數(shù)中給出。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){}voidmain(){ intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; intp[N],i,j,k; ystem(“CLS”); printf(“Theoriginaldatais:\n”); for(i=0;i<=""p=""> { for(j=0;j<=""p=""> printf(“%6d”,t[i][j]); printf(“\n”n); } fun(t,p); printf(“\nTheresultis:\n”); for(k=0;k<n;k++)<p=""></n;k++)<> printf(“%4d”,p[k]); printf(“\n”);}

參考答案

1.C解析:選項A)、選項B)顯然不合題意。數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL)負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構建;數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML)負責數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作。

2.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。

3.A

4.B解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是負責數(shù)據(jù)庫的建立、使用和維護的軟件。數(shù)據(jù)庫管理系統(tǒng)建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應用程序的執(zhí)行,最終都必須通過數(shù)據(jù)庫管理系統(tǒng)。另外,數(shù)據(jù)庫管理系統(tǒng)還承擔著數(shù)據(jù)庫的安全保護工作,按照數(shù)據(jù)庫管理員所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。

5.D

6.D

7.B

8.C

9.C解析:選項A),B)考查了多分支結(jié)構的用法,選項A)中的程序段執(zhí)行時,c<a,b<a條件均不成立,故執(zhí)行else后的語句,x值為3;選項B)中a<3條件成立,執(zhí)行x=3;而選項C),D)是單分支結(jié)構的用法,選項C)中程序段執(zhí)行時,a<3條件成立,x=3,但條件a<2也成立,此時執(zhí)行x=2,下一個條件不成立,不再執(zhí)行其后的語句。

10.B

11.CC。R為n元關系,有P個元組S為m元關系,有q個元組。兩個關系笛卡兒積是一個n+m元的關系,元組個數(shù)是q×p。所以T的元組的個數(shù)為9個。

12.C解析:C語言中:strcpy(st1,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項C中的目的串指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。

13.C

14.C

15.C解析:在格式化模型中,要事先根據(jù)應用的需要,確定數(shù)據(jù)之間的邏輯關系,即先對數(shù)據(jù)進行結(jié)構化。在關系模型中,不需要事先構造數(shù)據(jù)的邏輯關系,只要將數(shù)據(jù)按照一定的關系存入計算機,也就是建立關系。所以選項A錯誤。對于一個表示關系的二維表,其最基本的要求是表中元組的每一個分量必須是不可分的數(shù)據(jù)項,即不允許表中再有表。所以,選項B、D說法是錯誤的。一個關系的屬性名表稱為關系模式,也就是二維表的表框架,相當于記錄型。因此,選項C說法正確。

16.D本題考查while循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,x++后值為1,x自加變成2,進入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1.循環(huán)條件成立,進入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執(zhí)行break語句。退出循環(huán)。結(jié)果為D。

17.C

18.B指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中“P+6”指的是將指針向后移動了6個存儲單元,即指向uE63,存放的是b[6]的地址。

19.B函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。函數(shù)中允許有多個return語句,但每次只能調(diào)用一個return語句,因此只能返回一個函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為void。故本題答案為B選項。

20.B選項A中*x等價于x[0],*x+1等價于x[0]+1,*(x[0]+1)等價于x[0][1],正確;選項B中,*(x+1)等價于x[1],*(*(x+1))等價于x[1][0],錯誤;選項C中,*x等價于x[0],(*x)[1]等價于x[0][1],正確;選項D中,&x[0][0]等價于x[0],&[0][0]+1等價于x[0]+1,*(x[0]+1)等價于x[0][1],正確。故本題答案為B選項。

21.共享性共享性解析:數(shù)據(jù)庫技術的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨立性,數(shù)據(jù)統(tǒng)一管理與控制。

22.系統(tǒng)設計系統(tǒng)設計解析:結(jié)構化設計主要分為系統(tǒng)設計和模塊設計。系統(tǒng)設計決定系統(tǒng)的模塊結(jié)構,模塊設計具體考慮每個模塊內(nèi)部的算法、模塊輸入、輸出及模塊功能。

23.1616解析:在程序中首先將8賦值給變量a,然后在進行復合賦值運算。即a=a+a=8+8=16,所以該空格處應該填16。

24.一對多一對多解析:實體集“項目主管”與實體集“項目”的聯(lián)系屬于一對多的聯(lián)系。

25.關系關系解析:在數(shù)據(jù)庫中,一個表就是一個關系。一個關系的邏輯結(jié)構就是一張二維表。

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

27.*t*t解析:函數(shù)中首先讓n=strlen(s),所以while循環(huán)的循環(huán)條件表達式中*(s+n)指向字符串s的結(jié)束標志'\\0'處,而該處應該等于字符串t的第1個字符,另外循環(huán)體中讓s和t指向下一個字符,即s+n和t同時被移動到下一個位置,所以該處應該填*t,即t所指內(nèi)容。當t指向字符串結(jié)束標志'\\0'的時候,整個循環(huán)條件表達式的值也為0(“假”)了,循環(huán)結(jié)束。正好滿足將t所指字符串復制到s所指的字符串的尾部。

28.k=k*ik=k*i解析:本題中通過for循環(huán)求s表達式中每一項的和,表達式“fac=fac/k;”求的是每一項的值,所以k的值應為n!,在求n!的時候,可以用上次循環(huán)階乘的值乘i,就可以直接得此次n!,故本題填k=k*i。

29.概念概念

30.QTHRGQTHRG解析:函數(shù)strcmp(t,s)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。函數(shù)strcpy(t,s)的功能是,把字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指存儲空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指存儲空間中,然后輸出字符數(shù)組t。

31.軟件開發(fā)

32.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

33.數(shù)據(jù)模型數(shù)據(jù)模型

34.先進后出先進后出解析:隊列和棧都是線性結(jié)構,但是不同之處在于隊列的操作順序是先進先出,而棧的操作順序是先進后出。

35.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構體類型,此時,也可以用PER來定義變量。

36.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。

37.fopenfopen解析:C語言中的文件分為:ASCII文件與二進制文件。文件在使用前打開,使用后要關閉。打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen('文件名','使用文件方式');關閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp),其中fp為文件指針。

38.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做;n++是先取n的當前值和I做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=0<=1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3。退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當前值3,然后再將n加1,即程序結(jié)束后得到n=4,但輸出的是3。

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

40.4844

41.D解析:結(jié)構化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書

評析,需求分析是軟件定義時期的最后一個階段,它的基本任務就是詳細調(diào)查現(xiàn)實世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎上確定新系統(tǒng)的功能.選項A)軟件開發(fā)方法是在總體設計階段完成的任務;選項B)軟件開發(fā)工具是在實現(xiàn)階段需完成的任務:選項C)軟件開發(fā)費用是在可行性研究階段需完成的任務。

42.A解析:數(shù)據(jù)庫的三級模式是指概念模式、內(nèi)模式和外模式,其中外模式又叫子模式,內(nèi)模式又叫物理模式.所以本題答案為A。

43.D解析:選項A)在C語言中是一個合法的關系表達式,但它并不代表數(shù)學式o<=x<100。計算0<=x<100時,從左到右結(jié)合,先計算0<=x,其結(jié)果只能是0或1,然后再比較0<100或1<100。根據(jù)運算符的優(yōu)先級,選項B)先判斷j==0是否成立,其結(jié)果只能是0或1,然后再將0或1賦給i。選項C)中,(char)(65+3)為類型強制轉(zhuǎn)換,將整數(shù)型數(shù)據(jù)轉(zhuǎn)換為字符型。選項D)是將一個數(shù)據(jù)賦給一個表達式,等號左邊不合要求,所以錯誤。

44.B解析:結(jié)構體中的每個成員分別占用獨立的存儲空間,因此它所占的內(nèi)存字節(jié)數(shù)是其成員所占字節(jié)數(shù)的總和;共用體變量所占內(nèi)存字節(jié)數(shù)與其成員中占字節(jié)數(shù)最多的那個成員相等。

45.D解析:“&”是求址運算符,“*”是指變量說明符。選項A)、B)應改為scanf('%d',p);選項C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險,建議不使用。

46.A解析:本題首先定義兩個字符型指針變量p和q,通過malloc()函數(shù)申請20個字符的存儲空間,并把它的首地址賦給p,在把p的值賦給q,p和q指向同一個存儲區(qū)。在scanf()語句中讀取字符串到p和q指向的字符串,先把“abc”讀取到p指向的存儲區(qū)中,第一個空格是結(jié)束標記,第二個空格是分隔符,再把“def”存放到q指向的存儲區(qū),把原先的內(nèi)容覆蓋。所以p和q指向的存儲區(qū)中內(nèi)容是“def”,所以最后輸出的def,def所以4個選項中A正確。

47.A解析:在選項A)中,因為!a=0,所以關系表達式!a==1的值為0,又因為邏輯與運算符“&&”兩邊的表達式只要一個等于零,則整個表達式為零,所以選項A)正確。在選項B)中,關系表達式a<b為真,表達式(a<b)&&!c為假,而表達式(a<b)&&!c‖1為真,所以整個表達式的值為真。選項C)中,a&&b的結(jié)果為真。在選項D)中,a‖(b+b)&&(c-a)的結(jié)果為真。

48.D解析:本題主要考查for循環(huán)語句的嵌套。外層主循環(huán)執(zhí)行了3次,嵌套的循環(huán)語句每輪執(zhí)行2次,每次輸出i+j的值,推出嵌套循環(huán)語句后換行。

49.A解析:本題考查了continue和break語句用在循環(huán)語句中的作用。break語句的作用是結(jié)束本層循環(huán),而continue語句的作用是結(jié)束本次循環(huán)直接進入到下次循環(huán)。

50.A

51.D解析:本題考查靜態(tài)變量的使用方法和for循環(huán)。在函數(shù)調(diào)用時,static變量在函數(shù)調(diào)用結(jié)束后所作的所有變化均不保持,所以當i=1時,第2次進入f函數(shù)時c=5,所以最終main函數(shù)中c的值為5。

52.C解析:帶參數(shù)的宏定義命令行形式如下:

#define宏名(形參表)替換文本

在編譯的時候編譯預處理程序用“替換文本”來替換宏,即M(n,m)被替換為n%m,之后計算,將計算的結(jié)果賦給a。注意,宏替換是在編譯時由預處理程序完成的,宏替換不占用運行的時間,而函數(shù)調(diào)用是在程序運行時進行的,在函數(shù)的調(diào)用過程中需要占用一系列的處理時間。

53.D

54.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結(jié)構是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。注意:這3種運算方法在各種存儲結(jié)構中的應用。

55.D數(shù)據(jù)的邏輯結(jié)構是指數(shù)據(jù)元素之間的邏輯關系的數(shù)據(jù)結(jié)構。數(shù)據(jù)的存儲結(jié)構則是數(shù)據(jù)的邏輯結(jié)構在計算機中的物理實現(xiàn),有時也稱作數(shù)據(jù)的物理結(jié)構。兩者的區(qū)別是數(shù)據(jù)的邏輯結(jié)構只涉及到數(shù)據(jù)之間抽象的數(shù)學關系。存儲結(jié)構則涉及到如何在計算機中通過對數(shù)據(jù)的物理存儲進行組織來表達數(shù)據(jù)元素之間的邏輯關系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達線性表中數(shù)據(jù)的前后件關系;在線性表的鏈式存儲中是通過指針域構成的邏輯鏈條來表達數(shù)據(jù)的前后件關系。一般的,一種數(shù)據(jù)的邏輯結(jié)構對應的物理實現(xiàn),即數(shù)據(jù)的存儲結(jié)構不止一種。因此選項D正確。

56.C答案C

解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù)。

57.B

\n本題考查函數(shù)調(diào)用的基本概念。調(diào)用函數(shù)時,實參的形式可以是具體的數(shù)值,也可以是表達式。實參將數(shù)值或表達式的值傳遞給形參,因而兩者的類型必須保持一致;形參在運算過程中會發(fā)生改變,但不一定會影響到實參值,所以可知兩者不共用內(nèi)存單元。

\n

58.C對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為n,平均比較次數(shù)為n/2、對長度為n的線性表進行二分法查找,在最壞情況下所需要的比較次數(shù)為logan。因此選項C正確。

59.D解析:x&&y值為1,x<=y(tǒng)值為1,x||++y&&y-z值為1,!(x<y&&!z||1=值為0。

60.D解析:后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,道先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點。

61.A

62.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線段表示圖元關系。在模塊之間用帶有箭頭的線段表示調(diào)用關系。構成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

63.D表達式a一一的值為10,a的值遞減為9,所以b=10,x的值為逗號表達式的值,x=10。因此x=10,a=9.b=10。

64.B

65.D所謂常量是指在程序運行過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。實型常量有兩種表示形式:十進制小數(shù)形式、指數(shù)形式。指數(shù)形式中e后面的指數(shù)必須是整數(shù),階碼標志e之前需要有數(shù)字,由此可知選項A,B,C錯誤。答案為D選項

66.D解析:選項A,*m=&n錯誤。選項B,輸入

double型,要用%lf或%le,否則數(shù)據(jù)不能正常輸入。

選項C,n是變量,不是指針,scanf("%if",n)錯誤。

67.C要按照每行8個輸出數(shù)據(jù)的話,橫線處語句的功能應該為:當i是8的倍數(shù)時(即i%8==0),輸出一個換行符。因此C選項正確。

68.D本題主要考查自加與自減運算符。在C語言中,自加與自減運算符具有以下性質(zhì):

(1)自加運算符“++”和自減運算符“--”的運算本身是一種賦值運算,其結(jié)果是使運算對象的值增1或減1。

(2)++、--運算符是單目運算符,運算對象可以是整型變量或字符型變量,也可以是實型變量,但不能是常量和表達式。

(3)自加、自減運算符無論是作為前綴還是后綴運算符,對于變量而言,其效果相同,但作為表達式來說,其值不同。

(4)++和--運算符的結(jié)合方向是“自右向左”。

(5)不要在一個表達式中對同一個變量進行多次自增或自減運算。可以知道本題正確的答案是D。

69.C

70.C解析:do-while語句的一般形式為:do循環(huán)體語句while(表達式);,其中循環(huán)體語句可以是復合型語句,但必須用花括號括起來。while后必須要有分號作為語句的結(jié)束,在do-while循環(huán)中,不可以省略while。

71.A

72.A函數(shù)fgete()從文件讀入一個字符到指定變量。函數(shù)fputc()將指定字符寫入審文件中,函數(shù)fprinff(),fwrite()均是寫入文件操作函數(shù)。因此選項B,c。D錯誤。答案為A選項。

73.A實體完整性約束要求關系的主鍵中屬性值不能為空值,因此本題答案為A)。

74.B

75.D

76.A解析:因為“intk=0;”,所以B)、C)、D)三個選項的表達式的值都等于1,而A)選項的表達式的值等于0。這是因為“k++”這個表達式先進行取k值的運算,然后是k值自加1。故本題答案為A)。

77.B本題實際上是按成員變量Score的值進行由小到大的排序,程序執(zhí)行后,數(shù)組p[5]中各元素分別為:

{{'Penghua',20045,537},

{'SunDan',20044,550},

{'LiSiGuo',20042,580},

{'WangYin',20043,680},

{'YangSan',20041,703}}

所以,p[1]->Score=550,s[1].Score=580。故本題答案為B。

78.A數(shù)組定義后,不能對數(shù)組整體賦值,ss是二維數(shù)組,因為ss[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用“strcpy(ss[1],"right”);”的形式,而選項A)中對二維數(shù)組中的第“l(fā)”維(相當于一個一維數(shù)組)賦值,是不可以的。選項B)和D)是在定義時對數(shù)組同時進行初始化,這是可以的。選項c)中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個元素,這是可以的。故本題答案為A)。

79.D程序調(diào)試的任務是診斷和改正程序中的錯誤。

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

81.(1)錯誤:switch(g);正確:switch(g)(2)錯誤:casel:case2:returnl;正確:casel;case2:returnl;【解析】此題考查C語言的語法規(guī)則,switch(表達式)后不應該帶有“;”,case語句常量后應該是“:”。switch語句的一般形式如下:switch(表達式){case常量表達式1:語句1;case常量表達式2:語句2;case常量表達式n:語句i;default:語句n+1;}

82.voidfun(inttt[M][N],intpp[N]){ inti,j,max; for(j=0;j<=""p=""> { max=tt[0][j]; /*假設各列中的第1個元素值最大*/ for(i=0;i<=""p=""> if(tt[i][1]>max)/*如果各列中的其他元素值比最大值大,則將這個值更大的元素看作當前該列中值最大的元素*/ max=tt[i][j]; pp[j]=max; /*將各列的最大值依次放入pp數(shù)組中*/ }}本題函數(shù)fun()的功能是求出二維數(shù)組中每列值最大的元素。首先,假設各列中的第1個元素值最大,然后利用行下標的移動來依次取得各列中其他元素的值,并與假設的最大值進行比較,如果遇到更大的,則把這個值更大的元素看作當前該列中值最大的元素,繼續(xù)與該列中的其他元素進行比較。2021年山東省濰坊市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為()。

A.CB.BasicC.DDLD.DML

2.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

3.當一個函數(shù)無返回值時,定義它的函數(shù)類型應是()。

A.voidB.intC.任意D.無

4.數(shù)據(jù)庫系統(tǒng)的核心是()。

A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員

5.

6.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序運行后的輸出結(jié)果是()。A.0B.1C.2D.3

7.以下說法錯誤的是()。

A.散列法存儲的思想是由關鍵字值決定數(shù)據(jù)的存儲地址

B.散列表的結(jié)點中只包含數(shù)據(jù)元素自身的信息,不包含指針

C.負載因子是散列表的一個重要參數(shù),它反映了散列表的飽滿程度

D.散列表的查找效率主要取決于散列表構造時選取的散列函數(shù)和處理沖突的方法

8.對于順序存儲的線性表,訪問結(jié)點和增加、刪除結(jié)點的時間復雜度為()。

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

9.有定義語句:inta=1,b=2,c=3,x;,則以下選項中各程序段執(zhí)行后,x的值不為3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;

B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

10.將發(fā)送端數(shù)字脈沖信號轉(zhuǎn)換成模擬信號的過程稱為

A.鏈路傳輸B.調(diào)制C.解調(diào)D.數(shù)字信道傳輸

11.設R是一個2元關系,有3個元組,S是一個3元關系,有3個元組。如T=R×S,則T的元組的個數(shù)為()。A.6B.8C.9D.12

12.設有以下語句:charstr1[]="string"mstr2[8],*str3,*str4=="string";則______不是對庫函數(shù)的正確調(diào)用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

13.

14.

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

A.為了建立一個關系,首先要構造數(shù)據(jù)的邏輯關系

B.表示關系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項

C.一個關系的屬性名表稱為關系模式

D.一個關系可以包括多個二維表

16.下列程序的運行結(jié)果是()。

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

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

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

18.若有定義“intb[8],*p=b;”,則p+6表示()。

A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6

19.下列敘述中錯誤的是()。

A.用戶定義的函數(shù)中可以沒有return語句

B.用戶定義的函數(shù)中可以有多個return語句,以便調(diào)用一次返回多個函數(shù)值

C.用戶定義的函數(shù)中若沒有return語句,則應當定義函數(shù)為void類型

D.函數(shù)的return語句中可以沒有表達式

20.設有定義“intx[2][3];”,則以下選項中不能表示數(shù)組元素x[0][1]的是()。

A.*(*x+1)B.*(*(x+1)C.(*x)[1]D.*(&x[0][0]+1)

二、2.填空題(20題)21.數(shù)據(jù)庫技術的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。

22.結(jié)構化設計主要分為系統(tǒng)設計和模塊設計,【】的任務是決定系統(tǒng)的模塊結(jié)構。

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

main()

{inta=0;

a+-(a=8);

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

}

24.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體集“項目主管”與實體集“項目”的聯(lián)系屬于【】的聯(lián)系。

25.在關系模型中,把數(shù)據(jù)看成是二維表,每一個二維表稱為一個【】。

26.計算圓的周長、面積和球體積。

#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",【】);

}

27.以下函數(shù)sstrcat()的功能是實現(xiàn)字符串的連接,即將t所指字符串復制到s所指字符串的尾部。例如:s所指字符串為abed,t所指字符串為efgh,函數(shù)調(diào)用后s所指字符串為abodefgh。請?zhí)羁铡?/p>

#include<string.h>

voidsstrcat(char*s,char*t)

{intn;

n=strlen(s);

while(*(s+n)=【】){s++;t++;}

}

28.以下函數(shù)的功能是計算s=1+1/2!+1/3!+…+1/n!,請?zhí)羁铡?/p>

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k

s=s+fac;

}

}

29.數(shù)據(jù)模型按不同的應用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

30.設有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEF<CR>QTHRG<CR>,則程

序的輸出結(jié)果是______。

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

32.常用的軟件結(jié)構設計工具是結(jié)構圖(SC),也稱程序結(jié)構圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

33.【】是數(shù)據(jù)庫設計的核心。

34.性結(jié)構中,隊列的操作順序是先進先出,而棧的操作順序是______。

35.以下說明語句中,【】是結(jié)構體類型名。

typedefstruct

{intn;

charch[8];

}PER;

36.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

37.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END)fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

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

main()

{int=0;

while(n++<=1);

printf("%d,",n);

printf("%d",n++);

}

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

structstu

{intx;

【】

【】next;}

40.該程序運行的結(jié)果是【】。

#include<stdio.h>

main()

{unionEXANPLE

{struct

{

intx;

inty;

}in;

inta;

intb;

}e;

e.a=1;

e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf("\n%d,%d",e.in.x,e.in.y);

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

}

三、1.選擇題(20題)41.需求分析階段的任務是確定()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能

42.數(shù)據(jù)庫系統(tǒng)可分為三級模式,下列選項中不屬于數(shù)據(jù)庫三級模式的是

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

43.以下選項中非法的表達式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

44.若有下面的說明和定義:unionun{chars[10];longd[3];}ua;struetstd{charc[10];doubled;inta;unionunvb;}a;則printf("%d\n",sizeof(structstd)+sizeof(unionun));輸出的值為______。

A.34B.52C.54D.64

45.若有說明:int*p,m=5,n;以下正確的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

46.有以下程序:#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若從鍵盤輸入:abcdef<回車>,則輸出結(jié)果是()。

A.defdefB.abcdefC.abedD.dd

47.語句int(*ptr)()的含義是()。

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.a‖(b+b)&&(c-a)

48.有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序運行的結(jié)果是()。

A.234B.432C.23D.4534554334344523

49.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的輸出結(jié)果是()。

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

50.下列句子中,正確的C語言賦值語句是()

A.n++;B.a=b=88C.t=int(x+y);D.a=100,b=200

51.下列程序的輸出結(jié)果是()。#include<stdio.h>f(intA){intb=0;staticintc=4;a=c++;b++;return(A);}main(){inta=2,i,c;for(i=0;i<2;i++)c=f(a++);printf("%d\n",C);}

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

52.下列程序的輸出結(jié)果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}

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

53.若輸入60和13,以下程序的輸出結(jié)果是()#defineSURPLUS(a,b)((a)%(b))main(){inta,b;scanf("%d,%d",&a,&b);printf("%d\n",SURPLUS(a,b));}

A.60B.13C.73D.8

54.棧通常采用的兩種存儲結(jié)構是()。

A.順序存儲結(jié)構和鏈式存儲結(jié)構B.散列方式和索引方式C.鏈表存儲結(jié)構和數(shù)組D.線性存儲結(jié)構和非線性存儲結(jié)構

55.數(shù)據(jù)的存儲結(jié)構是指()。

A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結(jié)構在計算機中的表示

56.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

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

A.調(diào)用函數(shù)時,實參可以是表達式

B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元

C.調(diào)用函數(shù)時,將實參的值復制給形參,使實參變量和形參變量在數(shù)值上相等

D.調(diào)用函數(shù)時,實參與形參的類型必須一致

58.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為()A.A.log2nB.n/2C.nD.n+l

59.若有說明語句:intx=3,y=4,z=5;,則下面的表達式中,值為0的是______。

A.x&&y

B.x<=y(tǒng)

C.x||++y&&y-z

D.!(x<y&&!z||1)

60.對如下二叉樹進行后序遍歷的結(jié)果為()。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

四、選擇題(20題)61.

62.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關系B.數(shù)據(jù)流C.控制流D.調(diào)用關系

63.執(zhí)行語句X=(a=10,b=a--.后,x、a、b的值依次為()。

A.10,10,9

B.10,9,9

C.9,10,9

D.10,9,10

64.(30)關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括()

A.排序、索引、統(tǒng)計

B.選擇、投影、連接

C.關聯(lián)、更新、排序

D.顯示、打印、制表

65.以下是正確C語言實型常量的是()。

A..e—1B.e一1C.一1eD.1e一1

66.若有說明,double*m,n;則能通過sCanf語句正確給輸入項讀人數(shù)據(jù)的程序段是()。

A.*m=&n;scanf("%lf",m);

B.m=(double*)malloc(10);scanf("%f",m);

C.m=&n;scanf("%lf",n);

D.m=&n;scanf("%le",m);

67.以下函數(shù)實現(xiàn)按每行8個輸出W所指數(shù)組中的數(shù)據(jù):

在橫線處應填人的語句是()。

A.if(i/8==0)printf(”\n”);

B.if(i/8==O)continue;

C.if(i%8==0)prinff(’’\n”);

D.if(i%8==0)continue;

68.下列關于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量

B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量

C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量

D.它們的運算對象可以是char型變量、int型變量和float型變量

69.

70.以下描述中正確的是()。

A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復合語句

B.do-while循環(huán)由do開始,用while結(jié)束,在while(表達式.后面不能寫分號

C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進行判斷

D.do-while循環(huán)中,根據(jù)情況可以省略while

71.

72.若文件指針fp已正確指向文件,ch為字符型變量,以下不能把字符輸出到文件中的語句是()。

A.fget(f0,ch);

B.foutc(ch,fo);

C.fprinff(fp,”%c”,ch);

D.fwrite(&ch,sizeof(ch),1,fp);

73.在滿足實體完整性約束的條件下()。

A.一個關系中廊該有一個或多個候選關鍵字

B.一個關系中只能有一個候選關鍵字

C.一個關系中必須有多個候選關鍵字

D.一個關系中可以沒有候選關鍵字

74.

75.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P

76.設有定義:intk=0;以下選項的四個表達式中與其他三個表達式的值不相同的是()。

A.++kB.k+=1C.k++D.k+1

77.有以下程序

structSTU

{

charname[10];

intnum;

intScore;

};

main()

{

structSTUs[5]={{"YangSan",20041,703},

{"LiSiGuo",20042,580},

{"WangYin",20043,680},

{"SunDan",20044,550},

{"Penghua",20045,537}},*p[5],*t;

inti,j;

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

p[i]=&s[i];

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

for(j=i+1;j<5;j++)

if(p[i]->Score>p[j]->Score)

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

printf("%d%d\n",s[1].Score,p[1]->Score);

}

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

A.550550B.580550

C.680680D.580680

78.以下語句中存在語法錯誤的是()。

79.程序調(diào)試的任務是()。

A.設計測試用例B.驗證程序的正確性C.發(fā)現(xiàn)程序中的錯誤D.診斷和改正程序中的錯誤

80.

有以下程序

#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

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:用遞歸算法計算斐波拉契數(shù)列中第n項的值。從第l項起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項的斐波拉契數(shù)值為l3。請改正程序中的錯誤,使它能得出正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構!試題程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf(

溫馨提示

  • 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

提交評論