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

下載本文檔

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

文檔簡(jiǎn)介

2021年山東省威海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10

2.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲(chǔ)空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)

3.以下關(guān)于C語(yǔ)言的敘述中正確的是()。

A.C語(yǔ)言中的注釋不可以?shī)A在變量名或關(guān)鍵字的中間

B.C語(yǔ)言中的變量可以在使用之前的任何位置進(jìn)行定義

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

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

4.有如下形式的函數(shù):intfun(inta[4][5],int*p[10],intn){…}調(diào)用函數(shù)之前需要對(duì)函數(shù)進(jìn)行說明,即所謂的函數(shù)向前引用說明,以下對(duì)fun函數(shù)說明正確的是()。A.intfun(intb[][5],int*r[],intm);

B.intfun(inta[4][],int*p[10],intn);

C.intfun(inta[][],int*p[],intn);

D.intfun(inta[],int*p[],intn);

5.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯(cuò)

6.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abbcdefghijkI23456789964

B.123456789964abbcdefghijk

C.123445667899abbcdefghijk

D.abbcdefghijk123445667899

7.

8.函數(shù)原形中,下列()是不必要的。

A.函數(shù)的類型B.形式參數(shù)名C.函數(shù)名D.形式參數(shù)類型

9.數(shù)組A中,每個(gè)元素的長(zhǎng)度為4個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到10,從首地址SA開始連續(xù)存放在存儲(chǔ)器內(nèi),該數(shù)組按行存放時(shí),元素A[8][5]的起始地址為()。

A.SA+292B.SA+296C.SA+300D.304

10.在定義inta[5][6];后,數(shù)組a中的第10個(gè)元素是()。(設(shè)a[0][0]為第一個(gè)元素)

A.a[2][5]B.a[2][4]C.a[1][3]D.a[1][5]

11.不帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是()。A.head=NULLB.head→next=NULLC.head→next=headD.head!=NULL

12.堆的形狀是一棵_______。

A.二叉排序樹B.滿二叉樹C.完全二叉樹D.平衡二叉樹

13.

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

A.在switch語(yǔ)句中,不一定使用break語(yǔ)句

B.break語(yǔ)句只能用于switch語(yǔ)句

C.break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用

D.在switch語(yǔ)句中必須使用default

15.有如下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=P[5];則b的值是()。

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

16.在C語(yǔ)言中,函數(shù)隱含的類型是()

A.autoB.staticC.intD.void

17.若有定義“intk=7,x=12;”,則以下表達(dá)式值為3的是()。

A.(x%=k)-(k%=5)B.x%=(k%=5)C.x%=(k-k%5)D.x%=k-k%5

18.在“文件包含,預(yù)處理語(yǔ)句的使用形式中,當(dāng)#include后面的文件名用(雙引號(hào))括時(shí),尋找被包含文件的方式是()。

A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

C.僅僅搜索源程序所在目錄

D.僅僅搜索當(dāng)前目錄

19.下列程序的輸出結(jié)果是()#include<stdio.h>main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}printf(“%d”,a);}A.19B.18C.6D.8

20.若有定義語(yǔ)句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。

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

二、2.填空題(20題)21.若有以下程序

main()

{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-21,32,-33,0}};

inti,j,s=0;

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

{for(j=0;j<4;j++)

{if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

}

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

}

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

22.數(shù)據(jù)庫(kù)技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控制。

23.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。

24.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。

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

#include<stdio.h>

main()

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

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

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

}

26.在計(jì)算機(jī)中,字符的比較是對(duì)它們的【】進(jìn)行比較。

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

main()

{unsignedshorta=65536;intb;

printfC%d\n",b=a);

}

28.有以下程序:

intf(intn)

{if(n==1)retum1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

}

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

29.程序測(cè)試分為靜態(tài)分析和動(dòng)態(tài)測(cè)試。其中【】是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

30.若輸入thistestterminal,以下程序的輸出結(jié)果為:terminaltestthis。請(qǐng)?zhí)羁铡?/p>

#defineMAXLINE20

【】

{inti;

char*pstr[3],str[3][MAXLINE];

for(i=0;i<3;++)pstr[i]=str[i];

for(i=0;i<3;i++)scanf("%s",pstr[1]);

sort(pstr);

for(i=0;i<3;i++)prntf("%s",pstr[i]);

}

sort(【】)

char*pstr[3];

{inti,j;

char*p;

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

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

if(strcmp(*(pstr+i,*(pstr+j)>0

{p=*(pstr+i);

*(pstr+i=【】;

*(pstr+j)=p;

}

31.以下程序的功能是:從鍵盤上輸入若干學(xué)生的成績(jī),統(tǒng)計(jì)計(jì)算出平均成績(jī),并輸出低于平均分的學(xué)生成績(jī),用輸入負(fù)數(shù)結(jié)束輸入。填空。

main()

{floatx[1000],sum,=0.0,avea;

intn=0,i;

printf("Entermark:"\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+=【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:"\n");

printf("ave=%f"\n",ave);

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

if(【】)frintf("%f\n",x[i]);

}

32.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計(jì)算S,計(jì)算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請(qǐng)補(bǔ)全程序。

S=1-1/3+1/5-1/7+…+1/(2n+1)

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;

}

【】=s;

}

33.下面程序把從終端讀入的文本(用#作為文本結(jié)束標(biāo)志)復(fù)制到一個(gè)名為file.txt的新文件中。補(bǔ)足所缺語(yǔ)句。

main()

{charch;

FILE*fp;

if((fp=fopen(______))=NULL)exit(0);

while((ch=getchar())!='#')

fputc(ch,fp);

______;

}

34.在關(guān)系運(yùn)算中,【】運(yùn)算是對(duì)兩個(gè)具有公共屬性的關(guān)系所進(jìn)行的運(yùn)算。

35.在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊,其中______的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果。

36.以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請(qǐng)?zhí)羁铡?/p>

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];.

for(i=0;i<9;i++)printf("%d",a[i]);

printf("");

}

37.下面程序的功能是輸出數(shù)組中最大的數(shù),由a指針指向該元素。請(qǐng)?zhí)羁铡?/p>

main()

{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11},*a,*b;

for(b=s,a=s;b-s<13;b++)

if(【】)a=b;

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

38.下面程序的輸出是【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);

}

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

main()

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

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

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

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

40.以下程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

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

for(i=0;i<3;i++)printf("%d,",a[i]);

pfintf("\n",);}

三、1.選擇題(20題)41.下面程序的輸出結(jié)果為______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}

A.xyzabcABCB.abcABCC.xyzabcD.xyzABC

42.C語(yǔ)言中的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符

A.必須為字母B.必須為下劃線C.必須為字母或下劃線D.可以是字母,數(shù)字和下劃線中任一字符

43.有以下程序:#include<stdio.h>main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%~",*p++);}程序運(yùn)行后的輸出結(jié)果是()。

A.15B.16C.12D.59

44.有以下程序

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

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

case3:a++;b++;

}

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

}

程序的運(yùn)行結(jié)果是

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

45.下列程序執(zhí)行后的輸出結(jié)果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}

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

46.設(shè)有如下定義:char*aa[2]={"abcd","ABCD"},則以下說法中正確的是()。

A.aa數(shù)組中元素的值分別是{"abcd","ABCD"};

B.aa是指針變量,它指向含有兩個(gè)數(shù)組元素的字符型一維數(shù)組

C.aa數(shù)組的兩個(gè)元素分別存放的是含有4個(gè)字符的一維字符數(shù)組的首地址

D.aa數(shù)組的兩個(gè)元素中各自存放了字符‘a(chǎn)’和‘A’的地址

47.以下程序的運(yùn)行結(jié)果是#include"stdio.h"main(){structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

A.6B.8C.10D.12

48.已知chara=15,則a,-a和!a的整型值分別為______。

A.240、-15、0B.-16、-15、0C.0、-15、240D.0、-15、0

49.設(shè)x=011050,則x=x&01252的值是()。

A.1000101000

B.1111110100011000

C.1011100010

D.1100000000101000

50.語(yǔ)句“a=2;p=&a;b=*p++;”執(zhí)行后的結(jié)果是()。

A.a=3b=3B.a=2b=2C.a=2b=1D.a=2b=3

51.設(shè)有以下語(yǔ)句:typedefstreetS{intg;charh;}T;則下面敘述中正確的是()。

A.可用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量

52.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對(duì)象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

53.有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

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

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

54.C語(yǔ)言中各種基本數(shù)據(jù)類型的存儲(chǔ)空間長(zhǎng)度排列為()。

A.char≤long≤int≤float≤double

B.double≤float≤long≤int≤char

C.char≤int≤long~float≤double

D.float≤int≤long≤char≤double

55.下列敘述中正確的是A.線性表是線性結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.線性鏈表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)

56.設(shè)有:

inta=1,b=2,c=3,d=4,m=2,n=2;

執(zhí)行(m=a>b)&&(n=c>d)后,n的值是

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

57.閱讀以下程序以及對(duì)程序功能的描述,其中正確的描述是()。#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf("%s",infile);printf("Entertheoutfilename:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){printf("cannotopeninfile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){printf("cannotopenoutfile\n");exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}

A.程序完成將磁盤文件的信息在屏幕上顯示的功能

B.程序完成將兩個(gè)磁盤文件合二為一的功能

C.程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中的功能

D.程序完成將兩個(gè)磁盤文件合并并在屏幕上輸出的功能

58.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

59.一個(gè)C語(yǔ)言程序是由()

A.一個(gè)主程序和若干子程序組成B.函數(shù)組成C.若干過程組成D.若干子程序組成

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

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

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

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

D.inta[5]="0123";

四、選擇題(20題)61.

62.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對(duì)象B.繼承C.類D.過程調(diào)用

63.

64.有如下程序段

#include"stdio.h"

main()

{intk[10];

intj;

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

scanf("%d",&k[j]);

for(j=9;j>=0;j--)

printf("%d",k[j]);}

則程序段實(shí)現(xiàn)的功能是

A.輸入10個(gè)數(shù)據(jù)的順序輸入并輸出

B.輸入10個(gè)數(shù)據(jù)的逆序存放

C.輸入10個(gè)數(shù)據(jù)的逆序輸出

D.以上敘述均錯(cuò)誤

65.若有定義語(yǔ)句:“charS[3][10],(*k)[3],*p;”,則以下賦值語(yǔ)句正確的是()。

A.p=S;B.p=k;C.p=s[0];D.k=s;

66.以下選項(xiàng)中正確的語(yǔ)句組是()。

A.char*s;8={1.BOOK!”}i

B.char*s;8=”BOOK!”;

C.charS[10];S=”BOOK!”;

D.charS[];S=”BOOK!”;

67.

68.

69.有以下程序:

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

70.

71.在軟件開發(fā)中,需求分析階段可以使用的工具是()。A.N—s圖B.DFD圖C.PAD圖D.程序流程圖

72.下列程序的輸出結(jié)果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

73.

74.

75.

76.

77.

有下列程序:

main

{intk=5:

while(--k)printf("%d",k=1);

printf("\n");

}

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

A.1B.2C.4D.死循環(huán)

78.

79.若有定義語(yǔ)句:“inta=3,b=2,c=1;”,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是()。

A.a=(b=4)=3;B.a=b=c+1:C.a=(b=4)+C;D.a=1+(b=c一4);

80.按照“先進(jìn)后出”原則組織數(shù)據(jù)的結(jié)構(gòu)是()。

A.隊(duì)列B.棧C.雙向鏈表D.二叉樹

五、程序改錯(cuò)題(1題)81.已知一個(gè)數(shù)列從0項(xiàng)開始的前3項(xiàng)為0,0,1,以后的各項(xiàng)都是其相鄰的前3項(xiàng)之和。下列給定的程序中,函數(shù)proc的功能是:計(jì)算并輸出該數(shù)列前n項(xiàng)的和sum。n的值通過形參傳人。例如,當(dāng)n=20時(shí),程序的輸出結(jié)果應(yīng)為42762.000000。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)maiil函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doubleproc(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;//****found****for(k=4;k<n;k++)}{s=s0+s1+s2;sum+=S:s0=s1;s1=s2;//****found****s2=s;returnsum;}voidmain{intn;system("CLS");printf("InputN=");scanf("%d",&nJ;printf("%f\n",proc(n));}

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編一個(gè)函數(shù)fun(char*str),該函數(shù)的功能是把字符串中的內(nèi)容逆置。例如,字符串中原有的字符串為asdfg,則調(diào)用該函數(shù)后,串中的內(nèi)容為gfdsa。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:

參考答案

1.D本題考查continue的用法,continue語(yǔ)句的作用是結(jié)束本次循環(huán),直接進(jìn)行下次循環(huán)。所以在程序中,只有當(dāng)a=10時(shí),才退出循環(huán),故選擇D選項(xiàng)。

2.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

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

4.A題干中函數(shù)的定義指出了函數(shù)名為fun,返回值的數(shù)據(jù)類型為int。函數(shù)包含3個(gè)參數(shù),第1個(gè)參數(shù)是整型的二維數(shù)組,第2個(gè)參數(shù)是整型數(shù)組,第3個(gè)參數(shù)是整型變量。在定義二維數(shù)組時(shí),必須指定第二維的長(zhǎng)度,所以選項(xiàng)B、C、D錯(cuò)誤,選項(xiàng)A正確。本題答案為A選項(xiàng)。

5.D因?yàn)樽址麛?shù)組s[]中的數(shù)組名s表示的是一個(gè)地址常量。所以語(yǔ)句“s+=2;”不能將指針在當(dāng)前位置的基礎(chǔ)上再向后移動(dòng)兩位。因而程序編譯時(shí)出錯(cuò)。

6.B程序定義數(shù)組a和b,其中a使用小寫字母和數(shù)字構(gòu)成的字符串完成初始化。第1個(gè)for循環(huán)將數(shù)組a中所有的非小寫字母字符(數(shù)字字符)自左向右存放到b數(shù)組中;第2個(gè)for循環(huán)將數(shù)組a中所有的非數(shù)字字符(小寫字母)自左向右存放到b的后續(xù)單元中,在所有字符后添加空字符,輸出b,此時(shí)b的值為:123456789964abbcdefghijk。本題答案為B選項(xiàng)。

7.B

8.A

9.B

10.C

11.A解析:在不帶頭結(jié)點(diǎn)的單鏈表head中,head指向第一個(gè)元素結(jié)點(diǎn),head=NULL表示該鏈表為空,所以答案為A。

12.C

13.D

14.Aswitch語(yǔ)句中不一定使用break語(yǔ)句,選項(xiàng)A正確;break語(yǔ)句除了用于switch語(yǔ)句,還可以用于循環(huán)語(yǔ)句中,選項(xiàng)B、C錯(cuò)誤;switch語(yǔ)句不一定需要使用default語(yǔ)句,選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。

15.C解析:p=&a[3]將指針指向數(shù)組a的第4個(gè)元素,p[5]則是數(shù)組a的第9個(gè)元素,而a[8]=9,所以b=9。

16.C

17.A選項(xiàng)A中,表達(dá)式“x%=k”結(jié)果為5,表達(dá)式“k%=5”結(jié)果為2,5-2結(jié)果為3;選項(xiàng)B中,“k%=5”結(jié)果為2,“x%=2”結(jié)果為0;選項(xiàng)C中,“k%5”結(jié)果為2,“k-k%5”結(jié)果為5,“x%5”結(jié)果為2;選項(xiàng)D中,“k%5”結(jié)果為2,“k-k%5”結(jié)果為5,x%5結(jié)果為2。故本題答案為A選項(xiàng)。

18.B#include”文件名”,預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄搜索。

19.A本題考查switch語(yǔ)句。當(dāng)i=1時(shí),執(zhí)行case1,因?yàn)闆]有遇到break語(yǔ)句,所以依次往下運(yùn)行,a=a+2=2,a=a+3=5;當(dāng)i=2時(shí),執(zhí)行case2,因?yàn)闆]有遇到break語(yǔ)句,所以依次往下運(yùn)行,a=a+2=7,a=a+3=10;當(dāng)i=3時(shí),執(zhí)行case3,a=a+1=11,因?yàn)闆]有遇到break語(yǔ)句,所以依次往下運(yùn)行,a=a+2=13,a=a+3=16;當(dāng)i=4時(shí),執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。

20.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結(jié)束符\0的長(zhǎng)度。故選A。

21.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個(gè)元素;若不是則判斷a[i][j]的值是否等于0,若等于0則退出內(nèi)層循環(huán)開始處理下一行;其他情況下,把a(bǔ)[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。

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

23.存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間。供隊(duì)列循環(huán)使用??芍?,循環(huán)隊(duì)列應(yīng)當(dāng)是物理結(jié)構(gòu)。

24.存儲(chǔ)結(jié)構(gòu)

25.1030010300解析:在scanf格式控制符中有一個(gè)“*”附加說明符,表示跳過它指定的列數(shù)。程序中'%d%*d%d'表示首先將10賦給i,然后遇%。d讀入整數(shù)但不賦給任何變量,最后將讀人的整數(shù)30賦給變量j,變量k并沒有重新賦值,仍為初始值0。所以輸出的結(jié)果為10300。

26.ASCII碼ASCII碼解析:C語(yǔ)言中,字符也可以進(jìn)行比較運(yùn)算,并且是按照其ASCII碼值進(jìn)行的。

27.00解析:對(duì)于一個(gè)unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實(shí)際為0。

28.33解析:i=1時(shí),f(1)=1,j=j+f(1)=0+1=1;i=2時(shí),f2=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此時(shí)循環(huán)結(jié)束,程序運(yùn)行后的輸出結(jié)果是3。

29.靜態(tài)分析靜態(tài)分析解析:程序測(cè)試分為靜態(tài)分析和動(dòng)態(tài)測(cè)試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

30.main()pstr*(pstr+j)

31.aasum/n或sum/(float)n或sum/(double)nx[i]<sve或!(x[i]>=sve)或sve>x[i]a\r\na\r\nsum/n或sum/(float)n或sum/(double)n\r\nx[i]<sve或!(x[i]>=sve)或sve>x[i]

32.-1或-1.0*sn-1或-1.0\r\n*sn解析:由于在對(duì)S求和時(shí),相鄰兩項(xiàng)的符號(hào)剛好相反,而在函數(shù)fun中沒有對(duì)數(shù)據(jù)進(jìn)行取反的操作,故第—空的目的是對(duì)數(shù)據(jù)進(jìn)行取反,以保證序列中相鄰兩項(xiàng)的符號(hào)不同。故第—個(gè)應(yīng)填-1或-1.0。在執(zhí)行完循環(huán)體后,要將求和結(jié)果通過指針參數(shù)的形式傳遞紿調(diào)用fun的函數(shù),故第二空應(yīng)填*sn。

33.file.txt"w"fclose(fp)。file.txt,'w'fclose(fp)。解析:向文件中寫數(shù)據(jù),并且該文件是新文件,應(yīng)當(dāng)使用文件打開方式'w',文件操作結(jié)束時(shí)要用函數(shù)fclose關(guān)閉文件,以防數(shù)據(jù)丟失。

34.自然連接自然連接解析:在關(guān)系運(yùn)算中,自然連接運(yùn)算是對(duì)兩個(gè)具有公共屬性的關(guān)系所進(jìn)行的運(yùn)算。

35.驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊解析:由于模塊通常不是獨(dú)立的程序,自己不能運(yùn)行,而需要其他模塊調(diào)用或驅(qū)動(dòng),同時(shí)被測(cè)試模塊還要去調(diào)用其他模塊,前者稱為驅(qū)動(dòng)模塊,后者稱為承接模塊。其中驅(qū)動(dòng)模塊的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是代替被測(cè)模塊,調(diào)用其他模塊。

36.對(duì)于10個(gè)數(shù),相鄰的兩個(gè)數(shù)相加取和,總共要進(jìn)行9次加法運(yùn)算,所以空14處應(yīng)填入i=1。相鄰的兩個(gè)數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應(yīng)填入x[i-1]。\r\n\r\n

37.*b>*a

38.DDBBCCDDBBCC解析:C語(yǔ)言對(duì)枚舉的定義規(guī)定:在枚舉中聲明的各個(gè)枚舉元素,如果沒有明確指出某個(gè)枚舉元素的值,它的上一個(gè)元素存在并有明確值的情況下,這個(gè)枚舉元素的值為其上一個(gè)元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為“DDBBCC”。

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

40.本題主要考查for循環(huán)語(yǔ)句的使用以及靜態(tài)局部變量的特點(diǎn)。

41.B解析:strcpy(str1,s1):作用是將字符串s1拷貝到字符數(shù)組str1中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個(gè)字符數(shù)組p1,p2,sir,strcat(p1,p2)函數(shù)的作用是將字符串?dāng)?shù)組p2接到字符串p1的后面,結(jié)果放在字符數(shù)組p1中,再通過strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。

42.C解析:C語(yǔ)言中規(guī)定,標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須是字母或下劃線,而且標(biāo)識(shí)符不能是C語(yǔ)言的關(guān)鍵字。

43.A解析:語(yǔ)句p=s將指針變量p指向字符數(shù)組s,第一次輸出時(shí),由于++和*為同一優(yōu)先級(jí),而結(jié)合方向?yàn)樽杂蚁蜃螅裕?p++相于*(p++)。但又因?yàn)椤?+”在p的右側(cè),所以,先輸出*p,得到s[0]的值,然后P++,P指向s[1],故第二次輸出時(shí),輸出s[1]的值,所以輸出結(jié)果為15。

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

45.A解析:函數(shù)的參數(shù)不僅可以是整型、實(shí)型、字符型等數(shù)據(jù),還可以是指針型。它的作用是將一個(gè)變量的地址傳遞到另一個(gè)函數(shù)中。當(dāng)數(shù)組名作參數(shù)時(shí),如果形參數(shù)組中的各元素的值發(fā)生變化,實(shí)參數(shù)組元素的值也將隨之發(fā)生變化。

46.C解析:aa數(shù)組被定義為字符型指針數(shù)組,有兩個(gè)元素,分別存放字符串'abcd'和'ABCD'的首地址。

47.A解析:在解答本題時(shí)應(yīng)該考慮兩個(gè)問題:結(jié)構(gòu)體變量的長(zhǎng)度及sizeof()求字節(jié)數(shù)的運(yùn)算符。結(jié)構(gòu)體變量的長(zhǎng)度是其內(nèi)部成員總長(zhǎng)度之和,本題中,structdate中包含year,month,day三個(gè)整型變量。一個(gè)整型變量所占的字節(jié)數(shù)為2。

48.A

49.A解析:本題主要考查按位與運(yùn)算,x=011050的二進(jìn)制形式為000100100010t000,01252的二進(jìn)制形式為0000001010101010,兩者相與得0000001000101000。

50.B解析:執(zhí)行p=&a;,將變量a的地址賦給指針變量p,運(yùn)算符*和++的優(yōu)先級(jí)相同,都具有自右向左的結(jié)合性,p++是先使用p的值再對(duì)p加1,則計(jì)算*p,即取p所指向的存儲(chǔ)單元的值2,賦值給b,再對(duì)p的值加1。輸出結(jié)果為a=2b=2。

51.B解析:可以用typedef定義新的類型名來代替已有的類型名。T是所定義的新的類型名,它代表題中定義的一個(gè)結(jié)構(gòu)體類型,這樣就可以用T定義結(jié)構(gòu)體變量了。

52.CC?!窘馕觥拷Y(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

53.B解析:在main函數(shù)中,對(duì)f(1)和f(2)的值進(jìn)行了累加。

f(1)=1

f(2)=f(1)+1=2

最后,j的值為1+2=3

54.C解析:在TurboC2.0環(huán)境中,char占1個(gè)字節(jié)、int占2個(gè)字節(jié)、long占4個(gè)字節(jié)、float占4個(gè)字節(jié)、double占8個(gè)字節(jié)。所以本題的正確答案為C。

55.A根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件:1,有且只有一根節(jié)結(jié)點(diǎn),2,每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件,則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

56.B本題考查邏輯與運(yùn)算符“&&”的使用。對(duì)于邏輯與運(yùn)算符&&來說,對(duì)象的結(jié)合方式為從左往右,只有&&左邊的值為真,才繼續(xù)右邊的運(yùn)算。題目中&&左邊的表達(dá)式為m=a>b,“>”運(yùn)算符優(yōu)先級(jí)高于“=”,故先判斷a>b,因?yàn)閍=1,b=2,所以a>b為假,于是m=0?!?&”左邊的值為假,所以不進(jìn)行右邊的運(yùn)算。n的值沒有發(fā)生改變,n=2。

57.C解析:在C程序中,如果已經(jīng)定義文件指針FILE*fp;fopen函數(shù)的功能是打開一個(gè)文件,調(diào)用方式為fp=fopen(文件名,使用文件方式);feof函數(shù)的功能是檢查文件是否結(jié)束,調(diào)用方式為feof(FILE*fp);fpute函數(shù)的功能是把一個(gè)字符寫到磁盤文件中,調(diào)用方式為fputc(ch,fp),ch是要輸出的字符,fp是指定要將該字符寫入的文件,該文件必須已經(jīng)以寫或讀寫方式打開了;fgetc函數(shù)的功能是從磁盤文件中讀入一個(gè)字符,調(diào)用方式為ch=fsetc(fp),ch是字符變量,fp是文件指針變量;fclose函數(shù)的功能是關(guān)閉一個(gè)文件,調(diào)用方式為fclose(文件指針)。

58.C算法具有的5個(gè)特性是:有窮性、確定性、可行性、有0個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。

59.B解析:C程序是由函數(shù)構(gòu)成的。一個(gè)C源程序至少包括一個(gè)main函數(shù),也可以包含一個(gè)main函數(shù)和若干個(gè)其他函數(shù)。因此,函數(shù)是C程序的基本單位,被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫(kù)函數(shù),也可以是用戶根據(jù)需要自己編制設(shè)計(jì)的函數(shù)。

60.B解析:在定義數(shù)組時(shí),如果賦給的初始值個(gè)數(shù)大于數(shù)值的長(zhǎng)度,這樣就會(huì)越界,因此選項(xiàng)A)錯(cuò)誤;選項(xiàng)C)中定義的是一個(gè)字符變量C:選項(xiàng)D)中整型數(shù)組a中只能存儲(chǔ)整型數(shù)據(jù),而不能存儲(chǔ)字符串常量“0123”。

61.B

62.D[答案]D

[考點(diǎn)]軟件工程基礎(chǔ)

[評(píng)析]

面向?qū)ο?對(duì)象+類+繼承+通過消息的通信

對(duì)象:一組屬性及其上的操作的封裝體

類:一組有相同屬性和操作的對(duì)象的集合

繼承:一個(gè)類為另一個(gè)類上的擴(kuò)充的方式,子類繼承父類,主要目的是代碼復(fù)用

消息:對(duì)象間通信的手段

D是結(jié)構(gòu)化程序設(shè)計(jì)或過程式(函數(shù)式)語(yǔ)言中的,一般的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言兼容這種方式,但不是其特征,故最佳選項(xiàng)為D

63.A

64.C在本題中,從給出的選項(xiàng)可以知道,本題程序的作用是對(duì)數(shù)組的十個(gè)元素按照一個(gè)規(guī)則進(jìn)行輸出。

在程序中,首先定義了一個(gè)大小為10的數(shù)字用來存放需要處理的十個(gè)數(shù),然后通過循環(huán)從鍵盤輸入需要被處理的十個(gè)數(shù),又通過一個(gè)循環(huán)完成對(duì)數(shù)組元素的輸出。在該循環(huán)中,當(dāng)循環(huán)變量j=9時(shí),輸出的是a[9],即數(shù)組中的最后一個(gè)元素,當(dāng)j=8時(shí),輸出的是a[8],即數(shù)組中的倒數(shù)第二個(gè)元素,以此類推,當(dāng)j=0時(shí),輸出的是a[0],即數(shù)組的第一個(gè)元素。由此我們可以看出,最后是將數(shù)組逆序輸出。與選項(xiàng)C完全一致,因此,本題的正確答案是C。

65.C答案C的意思是*P指向數(shù)組的第一個(gè)值。

66.BA選項(xiàng)去掉大括號(hào)就正確了;c選項(xiàng)和D選項(xiàng)應(yīng)在定義時(shí)賦初值。因此B選項(xiàng)正確。

67.D

68.D

69.A本題重點(diǎn)考察函數(shù)的調(diào)用,首先要了解字母對(duì)應(yīng)的ASCIl碼。例如A為65,a為97。即字母+1劂可得到下一個(gè)字母。-其次是函數(shù)形參和實(shí)參的問題,運(yùn)行過程如下:在fun(&b,a)中,}c=.a(chǎn)-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);輸出b,B,因?yàn)橹羔榗指向地址的值為b,此時(shí)b=}C=.b.;豳數(shù)返回執(zhí)行ptud(。%C,%c、n”,b,8);輸出b,A,因此A選項(xiàng)正確。

70.B

71.B在需求分析階段可以使用的工具有數(shù)據(jù)流圖(DFD),數(shù)據(jù)字典(DD),判定樹與判定表,因此本題答案為B)。

72.C本題考查do-while循環(huán),在fun函數(shù)中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實(shí)現(xiàn)的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數(shù)組賦值。在主函數(shù)中,通過調(diào)用fun函數(shù),按上面的規(guī)則對(duì)數(shù)組a重新賦值,最后輸出數(shù)組a。

73.D

74.C

75.B

76.D

77.A

\n在程序語(yǔ)句中,k的初始值為5,進(jìn)行第l次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語(yǔ)句,輸出k,此時(shí)k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時(shí),k自減1變?yōu)?,為假,退出while循環(huán)語(yǔ)句。所以程序的最后結(jié)果為1。

\n

78.B

79.A由等式的規(guī)則可知,A選項(xiàng)錯(cuò)誤。先對(duì)括號(hào)的b進(jìn)行等式運(yùn)算,得出b=4,然后計(jì)算得出a=4=3,所以會(huì)導(dǎo)致錯(cuò)誤。答案選擇A。

80.B棧是線性表的一種,其插入和刪除運(yùn)算都只在表的一端進(jìn)行。進(jìn)行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元素是最后被插入的元素,不是最后被刪除的元素,是按先進(jìn)后出的原則組織數(shù)據(jù)的。81.(1)錯(cuò)誤:for(k=4;k<n;k++)正確:for(k=4;k<=11;k++)(2)錯(cuò)誤:s2=S;正確:s2=s;)【解析】題目中要求計(jì)算數(shù)列前n項(xiàng)的和,包括第n項(xiàng),因此“for(k=4;k<n;k++)”中的“k<n”應(yīng)改為“k<=n”;根據(jù)C語(yǔ)言的語(yǔ)法規(guī)則,for循環(huán)體中的多條語(yǔ)句必須在大括號(hào)“{”和“}”之間,因此,要在語(yǔ)句s2=s;后加上)。

82.

【解析】在fun()函數(shù)中,首先求行字符串的長(zhǎng)度,然后通過循環(huán)進(jìn)行字符交換。要注意的是,如果字符串長(zhǎng)度是奇數(shù),則最中間的元素在逆置前后的位置是沒有改變的。

2021年山東省威海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10

2.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲(chǔ)空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)

3.以下關(guān)于C語(yǔ)言的敘述中正確的是()。

A.C語(yǔ)言中的注釋不可以?shī)A在變量名或關(guān)鍵字的中間

B.C語(yǔ)言中的變量可以在使用之前的任何位置進(jìn)行定義

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

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

4.有如下形式的函數(shù):intfun(inta[4][5],int*p[10],intn){…}調(diào)用函數(shù)之前需要對(duì)函數(shù)進(jìn)行說明,即所謂的函數(shù)向前引用說明,以下對(duì)fun函數(shù)說明正確的是()。A.intfun(intb[][5],int*r[],intm);

B.intfun(inta[4][],int*p[10],intn);

C.intfun(inta[][],int*p[],intn);

D.intfun(inta[],int*p[],intn);

5.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯(cuò)

6.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abbcdefghijkI23456789964

B.123456789964abbcdefghijk

C.123445667899abbcdefghijk

D.abbcdefghijk123445667899

7.

8.函數(shù)原形中,下列()是不必要的。

A.函數(shù)的類型B.形式參數(shù)名C.函數(shù)名D.形式參數(shù)類型

9.數(shù)組A中,每個(gè)元素的長(zhǎng)度為4個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到10,從首地址SA開始連續(xù)存放在存儲(chǔ)器內(nèi),該數(shù)組按行存放時(shí),元素A[8][5]的起始地址為()。

A.SA+292B.SA+296C.SA+300D.304

10.在定義inta[5][6];后,數(shù)組a中的第10個(gè)元素是()。(設(shè)a[0][0]為第一個(gè)元素)

A.a[2][5]B.a[2][4]C.a[1][3]D.a[1][5]

11.不帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是()。A.head=NULLB.head→next=NULLC.head→next=headD.head!=NULL

12.堆的形狀是一棵_______。

A.二叉排序樹B.滿二叉樹C.完全二叉樹D.平衡二叉樹

13.

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

A.在switch語(yǔ)句中,不一定使用break語(yǔ)句

B.break語(yǔ)句只能用于switch語(yǔ)句

C.break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用

D.在switch語(yǔ)句中必須使用default

15.有如下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=P[5];則b的值是()。

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

16.在C語(yǔ)言中,函數(shù)隱含的類型是()

A.autoB.staticC.intD.void

17.若有定義“intk=7,x=12;”,則以下表達(dá)式值為3的是()。

A.(x%=k)-(k%=5)B.x%=(k%=5)C.x%=(k-k%5)D.x%=k-k%5

18.在“文件包含,預(yù)處理語(yǔ)句的使用形式中,當(dāng)#include后面的文件名用(雙引號(hào))括時(shí),尋找被包含文件的方式是()。

A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

C.僅僅搜索源程序所在目錄

D.僅僅搜索當(dāng)前目錄

19.下列程序的輸出結(jié)果是()#include<stdio.h>main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}printf(“%d”,a);}A.19B.18C.6D.8

20.若有定義語(yǔ)句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。

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

二、2.填空題(20題)21.若有以下程序

main()

{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-21,32,-33,0}};

inti,j,s=0;

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

{for(j=0;j<4;j++)

{if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

}

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

}

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

22.數(shù)據(jù)庫(kù)技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控制。

23.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。

24.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。

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

#include<stdio.h>

main()

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

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

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

}

26.在計(jì)算機(jī)中,字符的比較是對(duì)它們的【】進(jìn)行比較。

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

main()

{unsignedshorta=65536;intb;

printfC%d\n",b=a);

}

28.有以下程序:

intf(intn)

{if(n==1)retum1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

}

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

29.程序測(cè)試分為靜態(tài)分析和動(dòng)態(tài)測(cè)試。其中【】是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

30.若輸入thistestterminal,以下程序的輸出結(jié)果為:terminaltestthis。請(qǐng)?zhí)羁铡?/p>

#defineMAXLINE20

【】

{inti;

char*pstr[3],str[3][MAXLINE];

for(i=0;i<3;++)pstr[i]=str[i];

for(i=0;i<3;i++)scanf("%s",pstr[1]);

sort(pstr);

for(i=0;i<3;i++)prntf("%s",pstr[i]);

}

sort(【】)

char*pstr[3];

{inti,j;

char*p;

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

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

if(strcmp(*(pstr+i,*(pstr+j)>0

{p=*(pstr+i);

*(pstr+i=【】;

*(pstr+j)=p;

}

31.以下程序的功能是:從鍵盤上輸入若干學(xué)生的成績(jī),統(tǒng)計(jì)計(jì)算出平均成績(jī),并輸出低于平均分的學(xué)生成績(jī),用輸入負(fù)數(shù)結(jié)束輸入。填空。

main()

{floatx[1000],sum,=0.0,avea;

intn=0,i;

printf("Entermark:"\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+=【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:"\n");

printf("ave=%f"\n",ave);

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

if(【】)frintf("%f\n",x[i]);

}

32.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計(jì)算S,計(jì)算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請(qǐng)補(bǔ)全程序。

S=1-1/3+1/5-1/7+…+1/(2n+1)

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;

}

【】=s;

}

33.下面程序把從終端讀入的文本(用#作為文本結(jié)束標(biāo)志)復(fù)制到一個(gè)名為file.txt的新文件中。補(bǔ)足所缺語(yǔ)句。

main()

{charch;

FILE*fp;

if((fp=fopen(______))=NULL)exit(0);

while((ch=getchar())!='#')

fputc(ch,fp);

______;

}

34.在關(guān)系運(yùn)算中,【】運(yùn)算是對(duì)兩個(gè)具有公共屬性的關(guān)系所進(jìn)行的運(yùn)算。

35.在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊,其中______的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果。

36.以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請(qǐng)?zhí)羁铡?/p>

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];.

for(i=0;i<9;i++)printf("%d",a[i]);

printf("");

}

37.下面程序的功能是輸出數(shù)組中最大的數(shù),由a指針指向該元素。請(qǐng)?zhí)羁铡?/p>

main()

{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11},*a,*b;

for(b=s,a=s;b-s<13;b++)

if(【】)a=b;

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

38.下面程序的輸出是【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);

}

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

main()

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

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

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

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

40.以下程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

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

for(i=0;i<3;i++)printf("%d,",a[i]);

pfintf("\n",);}

三、1.選擇題(20題)41.下面程序的輸出結(jié)果為______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}

A.xyzabcABCB.abcABCC.xyzabcD.xyzABC

42.C語(yǔ)言中的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符

A.必須為字母B.必須為下劃線C.必須為字母或下劃線D.可以是字母,數(shù)字和下劃線中任一字符

43.有以下程序:#include<stdio.h>main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%~",*p++);}程序運(yùn)行后的輸出結(jié)果是()。

A.15B.16C.12D.59

44.有以下程序

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

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

case3:a++;b++;

}

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

}

程序的運(yùn)行結(jié)果是

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

45.下列程序執(zhí)行后的輸出結(jié)果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}

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

46.設(shè)有如下定義:char*aa[2]={"abcd","ABCD"},則以下說法中正確的是()。

A.aa數(shù)組中元素的值分別是{"abcd","ABCD"};

B.aa是指針變量,它指向含有兩個(gè)數(shù)組元素的字符型一維數(shù)組

C.aa數(shù)組的兩個(gè)元素分別存放的是含有4個(gè)字符的一維字符數(shù)組的首地址

D.aa數(shù)組的兩個(gè)元素中各自存放了字符‘a(chǎn)’和‘A’的地址

47.以下程序的運(yùn)行結(jié)果是#include"stdio.h"main(){structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

A.6B.8C.10D.12

48.已知chara=15,則a,-a和!a的整型值分別為______。

A.240、-15、0B.-16、-15、0C.0、-15、240D.0、-15、0

49.設(shè)x=011050,則x=x&01252的值是()。

A.1000101000

B.1111110100011000

C.1011100010

D.1100000000101000

50.語(yǔ)句“a=2;p=&a;b=*p++;”執(zhí)行后的結(jié)果是()。

A.a=3b=3B.a=2b=2C.a=2b=1D.a=2b=3

51.設(shè)有以下語(yǔ)句:typedefstreetS{intg;charh;}T;則下面敘述中正確的是()。

A.可用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量

52.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對(duì)象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

53.有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

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

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

54.C語(yǔ)言中各種基本數(shù)據(jù)類型的存儲(chǔ)空間長(zhǎng)度排列為()。

A.char≤long≤int≤float≤double

B.double≤float≤long≤int≤char

C.char≤int≤long~float≤double

D.float≤int≤long≤char≤double

55.下列敘述中正確的是A.線性表是線性結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.線性鏈表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)

56.設(shè)有:

inta=1,b=2,c=3,d=4,m=2,n=2;

執(zhí)行(m=a>b)&&(n=c>d)后,n的值是

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

57.閱讀以下程序以及對(duì)程序功能的描述,其中正確的描述是()。#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf("%s",infile);printf("Entertheoutfilename:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){printf("cannotopeninfile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){printf("cannotopenoutfile\n");exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}

A.程序完成將磁盤文件的信息在屏幕上顯示的功能

B.程序完成將兩個(gè)磁盤文件合二為一的功能

C.程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中的功能

D.程序完成將兩個(gè)磁盤文件合并并在屏幕上輸出的功能

58.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

59.一個(gè)C語(yǔ)言程序是由()

A.一個(gè)主程序和若干子程序組成B.函數(shù)組成C.若干過程組成D.若干子程序組成

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

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

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

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

D.inta[5]="0123";

四、選擇題(20題)61.

62.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對(duì)象B.繼承C.類D.過程調(diào)用

63.

64.有如下程序段

#include"stdio.h"

main()

{intk[10];

intj;

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

scanf("%d",&k[j]);

for(j=9;j>=0;j--)

printf("%d",k[j]);}

則程序段實(shí)現(xiàn)的功能是

A.輸入10個(gè)數(shù)據(jù)的順序輸入并輸出

B.輸入10個(gè)數(shù)據(jù)的逆序存放

C.輸入10個(gè)數(shù)據(jù)的逆序輸出

D.以上敘述均錯(cuò)誤

65.若有定義語(yǔ)句:“charS[3][10],(*k)[3],*p;”,則以下賦值語(yǔ)句正確的是()。

A.p=S;B.p=k;C.p=s[0];D.k=s;

66.以下選項(xiàng)中正確的語(yǔ)句組是()。

A.char*s;8={1.BOOK!”}i

B.char*s;8=”BOOK!”;

C.charS[10];S=”BOOK!”;

D.charS[];S=”BOOK!”;

67.

68.

69.有以下程序:

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

70.

71.在軟件開發(fā)中,需求分析階段可以使用的工具是()。A.N—s圖B.DFD圖C.PAD圖D.程序流程圖

72.下列程序的輸出結(jié)果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

73.

74.

75.

76.

77.

有下列程序:

main

{intk=5:

while(--k)printf("%d",k=1);

printf("\n");

}

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

A.1B.2C.4D.死循環(huán)

78.

79.若有定義語(yǔ)句:“inta=3,b=2,c=1;”,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是()。

A.a=(b=4)=3;B.a=b=c+1:C.a=(b=4)+C;D.a=1+(b=c一4);

80.按照“先進(jìn)后出”原則組織數(shù)據(jù)的結(jié)構(gòu)是()。

A.隊(duì)列B.棧C.雙向鏈表D.二叉樹

五、程序改錯(cuò)題(1題)81.已知一個(gè)數(shù)列從0項(xiàng)開始的前3項(xiàng)為0,0,1,以后的各項(xiàng)都是其相鄰的前3項(xiàng)之和。下列給定的程序中,函數(shù)proc的功能是:計(jì)算并輸出該數(shù)列前n項(xiàng)的和sum。n的值通過形參傳人。例如,當(dāng)n=20時(shí),程序的輸出結(jié)果應(yīng)為42762.000000。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)maiil函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doubleproc(intn){doubl

溫馨提示

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

評(píng)論

0/150

提交評(píng)論