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

下載本文檔

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

文檔簡介

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

一、單選題(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.數據的存儲結構是指()。

A.數據所占的存儲空間

B.數據的邏輯結構在計算機中的存放形式

C.數據在計算機中的順序存儲方式

D.存儲在計算機外存中的數據

3.以下關于C語言的敘述中正確的是()。

A.C語言中的注釋不可以夾在變量名或關鍵字的中間

B.C語言中的變量可以在使用之前的任何位置進行定義

C.在C語言算術表達式的書寫中,運算符兩側的運算數類型必須一致

D.C語言的數值常量中夾帶空格不影響常量值的正確表示

4.有如下形式的函數:intfun(inta[4][5],int*p[10],intn){…}調用函數之前需要對函數進行說明,即所謂的函數向前引用說明,以下對fun函數說明正確的是()。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í)行后的結果是()。A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯

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

B.123456789964abbcdefghijk

C.123445667899abbcdefghijk

D.abbcdefghijk123445667899

7.

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

A.函數的類型B.形式參數名C.函數名D.形式參數類型

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

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

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

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

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

12.堆的形狀是一棵_______。

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

13.

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

A.在switch語句中,不一定使用break語句

B.break語句只能用于switch語句

C.break語句必須與switch語句中的case配對使用

D.在switch語句中必須使用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語言中,函數隱含的類型是()

A.autoB.staticC.intD.void

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

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

18.在“文件包含,預處理語句的使用形式中,當#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是()。

A.直接按系統設定的標準方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統設定的標準方式搜索

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

D.僅僅搜索當前目錄

19.下列程序的輸出結果是()#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.若有定義語句:“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í)行后輸出結果是【】。

22.數據庫技術的主要特點為數據的集成性、數據的高【】和低冗余性、數據獨立性和數據統一管理與控制。

23.數據結構分為邏輯結構和存儲結構,循環(huán)隊列屬于______結構。

24.數據結構分為邏輯結構與存儲結構,線性鏈表屬于【】。

25.以下程序運行時,若從鍵盤輸入:102030<回車>,輸出的結果是【】。

#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.在計算機中,字符的比較是對它們的【】進行比較。

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

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

}

程序運行后的輸出結果是【】。

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

30.若輸入thistestterminal,以下程序的輸出結果為:terminaltestthis。請?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.以下程序的功能是:從鍵盤上輸入若干學生的成績,統計計算出平均成績,并輸出低于平均分的學生成績,用輸入負數結束輸入。填空。

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.函數voidfun(float*sn,intn)的功能是:根據以下公式計算S,計算結果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請補全程序。

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.下面程序把從終端讀入的文本(用#作為文本結束標志)復制到一個名為file.txt的新文件中。補足所缺語句。

main()

{charch;

FILE*fp;

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

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

fputc(ch,fp);

______;

}

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

35.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅動模塊和承接模塊,其中______的作用是將測試數據傳送給被測試的模塊,并顯示被測試模塊所產生的結果。

36.以下程序的功能是:求出數組x中各相鄰兩個元素的和依次存放到a數組中,然后輸出。請?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.下面程序的功能是輸出數組中最大的數,由a指針指向該元素。請?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í)行后輸出的結果是【】。

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.以下程序的運行結果是______。

#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.下面程序的輸出結果為______。#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語言中的標識符只能由字母、數字和下劃線3種字符組成,且第一個字符

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

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

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

}

程序的運行結果是

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

45.下列程序執(zhí)行后的輸出結果是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.設有如下定義:char*aa[2]={"abcd","ABCD"},則以下說法中正確的是()。

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

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

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

D.aa數組的兩個元素中各自存放了字符‘a’和‘A’的地址

47.以下程序的運行結果是#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.設x=011050,則x=x&01252的值是()。

A.1000101000

B.1111110100011000

C.1011100010

D.1100000000101000

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

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

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

A.可用S定義結構體變量B.可以用T定義結構體變量C.S是struct類型的變量D.T是structS類型的變量

52.結構化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法

A.對象B.數據結構C.數據流D.目標

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

程序運行后的輸出結果是

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

54.C語言中各種基本數據類型的存儲空間長度排列為()。

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.線性表是線性結構B.棧與隊列是非線性結構C.線性鏈表是非線性結構D.二叉樹是線性結構

56.設有:

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.閱讀以下程序以及對程序功能的描述,其中正確的描述是()。#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.程序完成將兩個磁盤文件合二為一的功能

C.程序完成將一個磁盤文件復制到另一個磁盤文件中的功能

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

58.以下敘述中正確的是

A.用C程序實現的算法必須要有輸入和輸出操作

B.用C程序實現的算法可以沒有輸出但必須要有輸入

C.用C程序實現的算法可以沒有輸入但必須要有輸出

D.用C程序實現的算法可以既沒有輸入也沒有輸出

59.一個C語言程序是由()

A.一個主程序和若干子程序組成B.函數組成C.若干過程組成D.若干子程序組成

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

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.下面概念中,不屬于面向對象方法的是()。A.對象B.繼承C.類D.過程調用

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

則程序段實現的功能是

A.輸入10個數據的順序輸入并輸出

B.輸入10個數據的逆序存放

C.輸入10個數據的逆序輸出

D.以上敘述均錯誤

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

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

66.以下選項中正確的語句組是()。

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

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

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

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

67.

68.

69.有以下程序:

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

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.下列程序的輸出結果是()。#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í)行后的輸出結果是()。

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

78.

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

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

80.按照“先進后出”原則組織數據的結構是()。

A.隊列B.棧C.雙向鏈表D.二叉樹

五、程序改錯題(1題)81.已知一個數列從0項開始的前3項為0,0,1,以后的各項都是其相鄰的前3項之和。下列給定的程序中,函數proc的功能是:計算并輸出該數列前n項的和sum。n的值通過形參傳人。例如,當n=20時,程序的輸出結果應為42762.000000。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動maiil函數,不得增行或刪行,也不得更改程序的結構。試題程序:#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));}

六、程序設計題(1題)82.請編一個函數fun(char*str),該函數的功能是把字符串中的內容逆置。例如,字符串中原有的字符串為asdfg,則調用該函數后,串中的內容為gfdsa。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

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

2.B解析:數據的存儲結構,又稱為數據的物理結構,是數據的邏輯結構在計算機中的存放形式,數據的存儲結構有順序結構、鏈式結構、散列結構和索引結構等。

3.B解析:C語言中注釋可以放在任何位置,選項A錯誤;C語言中的變量只要在使用之前定義即可,位置可以是使用前的任何位置,故選項B正確;C語言中兩側數據類型可以不一致,系統可進行強制類型轉換,選項C錯誤;C語言數值常量中不允許存在空格,選項D錯誤。

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

5.D因為字符數組s[]中的數組名s表示的是一個地址常量。所以語句“s+=2;”不能將指針在當前位置的基礎上再向后移動兩位。因而程序編譯時出錯。

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

7.B

8.A

9.B

10.C

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

12.C

13.D

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

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

16.C

17.A選項A中,表達式“x%=k”結果為5,表達式“k%=5”結果為2,5-2結果為3;選項B中,“k%=5”結果為2,“x%=2”結果為0;選項C中,“k%5”結果為2,“k-k%5”結果為5,“x%5”結果為2;選項D中,“k%5”結果為2,“k-k%5”結果為5,x%5結果為2。故本題答案為A選項。

18.B#include”文件名”,預處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統指定的標準目錄搜索。

19.A本題考查switch語句。當i=1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,a=a+2=2,a=a+3=5;當i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下運行,a=a+2=7,a=a+3=10;當i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a=a+2=13,a=a+3=16;當i=4時,執(zhí)行default,a=a+3=19,結束循環(huán)。

20.A"\0"表示空字符,strlen函數求得的是不包括字符串結束符\0的長度。故選A。

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

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

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

24.存儲結構

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

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

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

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

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

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解析:由于在對S求和時,相鄰兩項的符號剛好相反,而在函數fun中沒有對數據進行取反的操作,故第—空的目的是對數據進行取反,以保證序列中相鄰兩項的符號不同。故第—個應填-1或-1.0。在執(zhí)行完循環(huán)體后,要將求和結果通過指針參數的形式傳遞紿調用fun的函數,故第二空應填*sn。

33.file.txt"w"fclose(fp)。file.txt,'w'fclose(fp)。解析:向文件中寫數據,并且該文件是新文件,應當使用文件打開方式'w',文件操作結束時要用函數fclose關閉文件,以防數據丟失。

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

35.驅動模塊驅動模塊解析:由于模塊通常不是獨立的程序,自己不能運行,而需要其他模塊調用或驅動,同時被測試模塊還要去調用其他模塊,前者稱為驅動模塊,后者稱為承接模塊。其中驅動模塊的作用是將測試數據傳送給被測試的模塊,并顯示被測試模塊所產生的結果;承接模塊的作用是代替被測模塊,調用其他模塊。

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

37.*b>*a

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

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

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

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

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

43.A解析:語句p=s將指針變量p指向字符數組s,第一次輸出時,由于++和*為同一優(yōu)先級,而結合方向為自右向左,所以,*p++相于*(p++)。但又因為“++”在p的右側,所以,先輸出*p,得到s[0]的值,然后P++,P指向s[1],故第二次輸出時,輸出s[1]的值,所以輸出結果為15。

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

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

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

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

48.A

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

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

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

52.CC?!窘馕觥拷Y構化分析方法是面向數據流進行需求分析的方法,采用自頂向下、逐層分解,建立系統的處理流程,以數據流圖和數據字典為主要工具,建立系統的邏輯模型。

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

f(1)=1

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

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

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

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

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

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

58.C算法具有的5個特性是:有窮性、確定性、可行性、有0個或多個輸入、有一個或多個輸出。所以說,用C程序實現的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。

59.B解析:C程序是由函數構成的。一個C源程序至少包括一個main函數,也可以包含一個main函數和若干個其他函數。因此,函數是C程序的基本單位,被調用的函數可以是系統提供的庫函數,也可以是用戶根據需要自己編制設計的函數。

60.B解析:在定義數組時,如果賦給的初始值個數大于數值的長度,這樣就會越界,因此選項A)錯誤;選項C)中定義的是一個字符變量C:選項D)中整型數組a中只能存儲整型數據,而不能存儲字符串常量“0123”。

61.B

62.D[答案]D

[考點]軟件工程基礎

[評析]

面向對象=對象+類+繼承+通過消息的通信

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

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

繼承:一個類為另一個類上的擴充的方式,子類繼承父類,主要目的是代碼復用

消息:對象間通信的手段

D是結構化程序設計或過程式(函數式)語言中的,一般的面向對象程序設計語言兼容這種方式,但不是其特征,故最佳選項為D

63.A

64.C在本題中,從給出的選項可以知道,本題程序的作用是對數組的十個元素按照一個規(guī)則進行輸出。

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

65.C答案C的意思是*P指向數組的第一個值。

66.BA選項去掉大括號就正確了;c選項和D選項應在定義時賦初值。因此B選項正確。

67.D

68.D

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

70.B

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

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

73.D

74.C

75.B

76.D

77.A

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

\n

78.B

79.A由等式的規(guī)則可知,A選項錯誤。先對括號的b進行等式運算,得出b=4,然后計算得出a=4=3,所以會導致錯誤。答案選擇A。

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

82.

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

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

一、單選題(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.數據的存儲結構是指()。

A.數據所占的存儲空間

B.數據的邏輯結構在計算機中的存放形式

C.數據在計算機中的順序存儲方式

D.存儲在計算機外存中的數據

3.以下關于C語言的敘述中正確的是()。

A.C語言中的注釋不可以夾在變量名或關鍵字的中間

B.C語言中的變量可以在使用之前的任何位置進行定義

C.在C語言算術表達式的書寫中,運算符兩側的運算數類型必須一致

D.C語言的數值常量中夾帶空格不影響常量值的正確表示

4.有如下形式的函數:intfun(inta[4][5],int*p[10],intn){…}調用函數之前需要對函數進行說明,即所謂的函數向前引用說明,以下對fun函數說明正確的是()。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í)行后的結果是()。A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯

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

B.123456789964abbcdefghijk

C.123445667899abbcdefghijk

D.abbcdefghijk123445667899

7.

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

A.函數的類型B.形式參數名C.函數名D.形式參數類型

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

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

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

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

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

12.堆的形狀是一棵_______。

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

13.

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

A.在switch語句中,不一定使用break語句

B.break語句只能用于switch語句

C.break語句必須與switch語句中的case配對使用

D.在switch語句中必須使用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語言中,函數隱含的類型是()

A.autoB.staticC.intD.void

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

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

18.在“文件包含,預處理語句的使用形式中,當#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是()。

A.直接按系統設定的標準方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統設定的標準方式搜索

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

D.僅僅搜索當前目錄

19.下列程序的輸出結果是()#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.若有定義語句:“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í)行后輸出結果是【】。

22.數據庫技術的主要特點為數據的集成性、數據的高【】和低冗余性、數據獨立性和數據統一管理與控制。

23.數據結構分為邏輯結構和存儲結構,循環(huán)隊列屬于______結構。

24.數據結構分為邏輯結構與存儲結構,線性鏈表屬于【】。

25.以下程序運行時,若從鍵盤輸入:102030<回車>,輸出的結果是【】。

#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.在計算機中,字符的比較是對它們的【】進行比較。

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

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

}

程序運行后的輸出結果是【】。

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

30.若輸入thistestterminal,以下程序的輸出結果為:terminaltestthis。請?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.以下程序的功能是:從鍵盤上輸入若干學生的成績,統計計算出平均成績,并輸出低于平均分的學生成績,用輸入負數結束輸入。填空。

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.函數voidfun(float*sn,intn)的功能是:根據以下公式計算S,計算結果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請補全程序。

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.下面程序把從終端讀入的文本(用#作為文本結束標志)復制到一個名為file.txt的新文件中。補足所缺語句。

main()

{charch;

FILE*fp;

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

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

fputc(ch,fp);

______;

}

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

35.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅動模塊和承接模塊,其中______的作用是將測試數據傳送給被測試的模塊,并顯示被測試模塊所產生的結果。

36.以下程序的功能是:求出數組x中各相鄰兩個元素的和依次存放到a數組中,然后輸出。請?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.下面程序的功能是輸出數組中最大的數,由a指針指向該元素。請?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í)行后輸出的結果是【】。

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.以下程序的運行結果是______。

#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.下面程序的輸出結果為______。#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語言中的標識符只能由字母、數字和下劃線3種字符組成,且第一個字符

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

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

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

}

程序的運行結果是

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

45.下列程序執(zhí)行后的輸出結果是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.設有如下定義:char*aa[2]={"abcd","ABCD"},則以下說法中正確的是()。

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

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

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

D.aa數組的兩個元素中各自存放了字符‘a’和‘A’的地址

47.以下程序的運行結果是#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.設x=011050,則x=x&01252的值是()。

A.1000101000

B.1111110100011000

C.1011100010

D.1100000000101000

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

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

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

A.可用S定義結構體變量B.可以用T定義結構體變量C.S是struct類型的變量D.T是structS類型的變量

52.結構化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法

A.對象B.數據結構C.數據流D.目標

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

程序運行后的輸出結果是

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

54.C語言中各種基本數據類型的存儲空間長度排列為()。

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.線性表是線性結構B.棧與隊列是非線性結構C.線性鏈表是非線性結構D.二叉樹是線性結構

56.設有:

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.閱讀以下程序以及對程序功能的描述,其中正確的描述是()。#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.程序完成將兩個磁盤文件合二為一的功能

C.程序完成將一個磁盤文件復制到另一個磁盤文件中的功能

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

58.以下敘述中正確的是

A.用C程序實現的算法必須要有輸入和輸出操作

B.用C程序實現的算法可以沒有輸出但必須要有輸入

C.用C程序實現的算法可以沒有輸入但必須要有輸出

D.用C程序實現的算法可以既沒有輸入也沒有輸出

59.一個C語言程序是由()

A.一個主程序和若干子程序組成B.函數組成C.若干過程組成D.若干子程序組成

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

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.下面概念中,不屬于面向對象方法的是()。A.對象B.繼承C.類D.過程調用

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

則程序段實現的功能是

A.輸入10個數據的順序輸入并輸出

B.輸入10個數據的逆序存放

C.輸入10個數據的逆序輸出

D.以上敘述均錯誤

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

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

66.以下選項中正確的語句組是()。

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

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

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

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

67.

68.

69.有以下程序:

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

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.下列程序的輸出結果是()。#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í)行后的輸出結果是()。

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

78.

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

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

80.按照“先進后出”原則組織數據的結構是()。

A.隊列B.棧C.雙向鏈表D.二叉樹

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

溫馨提示

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

評論

0/150

提交評論