2021年安徽省滁州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第1頁(yè)
2021年安徽省滁州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第2頁(yè)
2021年安徽省滁州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第3頁(yè)
2021年安徽省滁州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第4頁(yè)
2021年安徽省滁州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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ì)重點(diǎn)匯總測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.十進(jìn)制數(shù)124轉(zhuǎn)換成二進(jìn)制數(shù)是()

A.111l010B.1111100C.1011111D.1111011

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

A.在一個(gè)函數(shù)中,可以有多條return語(yǔ)句

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

C.函數(shù)必須有返回值

D.不同的函數(shù)中可以使用相同名字的變量

3.

4.有下列程序:

程序執(zhí)行后的輸出結(jié)果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7

5.需求分析的主要任務(wù)是()。

A.確定軟件系統(tǒng)的功能B.確定軟件開(kāi)發(fā)方法C.確定軟件開(kāi)發(fā)工具D.確定軟件開(kāi)發(fā)入員

6.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無(wú)限次

7.閱讀以下程序:#include<stdio.h>main(){intcase;floatprintF;printf("請(qǐng)輸人2個(gè)數(shù):");scanf("%d%fl"&case,&printF);printf("%dofof\n",case,printF);}該程序在編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是()。A.定義語(yǔ)句出錯(cuò),case是關(guān)鍵字,不能用做用戶自定義標(biāo)識(shí)符

B.定義語(yǔ)句出錯(cuò),printF不能用做用戶自定義標(biāo)識(shí)符

C.定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用

D.定義語(yǔ)句無(wú)錯(cuò),printf不能輸出case的值

8.可用作C語(yǔ)言用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof

9.判斷有向圖是否存在回路,利用()方法最佳。

A.求關(guān)鍵路徑B.求最短路徑C.拓?fù)渑判駾.廣度優(yōu)先遍歷

10.

11.

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

A.表達(dá)式“sizeof(FILE*)==sizeof(int*)”的值為真

B.文件指針的值是一個(gè)整數(shù),它的值一定小于文件字節(jié)數(shù)

C.文件指針的值是所指文件的當(dāng)前讀取位置

D.使用fscanf函數(shù)可以向任意類型的文件中寫入任意數(shù)量的字符

13.以下哪種操作最適合先進(jìn)行排序處理()

A.找最大、最小值B.計(jì)算算術(shù)平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值

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

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

15.有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是______。

A.startB.endC.startendD.endrt

16.有以下程序(注:字符a的ASCII值為97):#include<stdio.h>main(){char*s={“abc”};do{printf(“%d”,*s%10);++s;}while(*s);}程序的運(yùn)行結(jié)果是()。

A.789B.abcC.7890D.979899

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

#inelude<stdio.h>

voiddel(char*s)

{inti,j;

char*a;

a=s:

for(i=0,j=0;a[i]!='\0';i++)

{if(a[i]>='0'&&a[i]<='9')

{s[j]=a[i];

j++;

}

s[j]='\0';

}

}

main

{char*s="aa89gggh";

del(s):

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

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

18.對(duì)長(zhǎng)度為n的無(wú)序線性表進(jìn)行順序查找,則查找成功、不成功時(shí)的平均數(shù)據(jù)比較次數(shù)分別為()。

A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1

19.

20.有以下程序:#include<stdio.h>main(){chars[]="012xy\O8s34f4w2‘;inti;n=0;,for(i=0;s[i]!=0;i++)if(s[i]>=0s[i]<=9)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是()。A.0B.3C.7D.8

二、2.填空題(20題)21.下列程序執(zhí)行后輸出的結(jié)果是【】。

f(inta)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

22.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。

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

#include<stdio.h>

main()

{inta,b,c;

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

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

24.二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲(chǔ)結(jié)構(gòu)必須是______。

25.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見(jiàn)的排序方法有插入排序、【】和選擇排序等。

26.請(qǐng)讀程序片段:

inta=17;

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

以上程序片段的輸出結(jié)果是【】。

27.以下程序可把輸入的十進(jìn)制數(shù)以十六進(jìn)制數(shù)的形式輸出,請(qǐng)?zhí)羁铡?/p>

#inelude<stdio.h>

main()

{eharb[17]={"0123456789ABCDEF"};

intc[64],d,i=0,base=16;

longn;

printf("Enteranumber:\n");

seanf("%ld",&n);

do{c[i]=【】;i++;n=n/base;}

while(n!=0);

printf("Transmitenewbase:\n");

for(--i;i>=0;--i)

{d=c[i];printf("%c",b【】);}

printf("\n");

}

28.若已知a=10,b=20,則表達(dá)式!a<b的值為【】。

29.以下函數(shù)的功能是刪除字符串s中的所有數(shù)字字符。請(qǐng)?zhí)羁铡?/p>

vioddele(char*s)

{intn=0,i;

for(i=0;s[i];i++)

if(______)

s[n++];s[i];

s[n]=______;

}

30.數(shù)據(jù)庫(kù)保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。

31.函數(shù)fun的功能是使一個(gè)字符串按逆序存放。請(qǐng)?zhí)羁铡?/p>

voidfun(charstr[])

{charm;inti,j;

for(i=0,j=strlen(str);i<【】;i++,j--)

{m=str[i];

str[i]=【】;

str[j-1]=m;

}

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

}

32.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標(biāo),并將最大值和其下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>

#include<stdlib.h>

#include<sldio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];*d=0;

for(i=0;【】;i++)

if(*max<【】)

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max.&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

33.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請(qǐng)?zhí)羁铡?/p>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

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

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

{

main()

{intaa[3]={1,2.3},s;

s=f(&aa[0],3);

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

}

35.以下程序調(diào)用invert函數(shù)按逆序重新放置a數(shù)組元素的值。a數(shù)組中的值在main函數(shù)中讀入。

#include<stdio.h>

#defineN10

invert(s,i,j)

int*s,i,j;

{intt;

if(i<j)

{t=*(s+i);

*(s+i)=(s+j);

*(s+j)=t;

invert(s,【】,j-1);

}

}

main()

{

inta[N],i;

for(i=0;i<N;i++)scanf("%d",a+【】);

invert(a,0,N-1);

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

printf("\n")

}

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

intn='c':

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("moming");

case'd':printf("class");

}

37.以下isprime函數(shù)的功能是判斷形參a是否為素?cái)?shù),是素?cái)?shù),函數(shù)返回1,否則返回0。請(qǐng)?zhí)羁铡?/p>

intisprime(inta)

for(i=2;i<=a/2;i++)

if(a%i==0)[8];

[9];

38.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序運(yùn)行后的輸出結(jié)果是()。

39.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(i);}

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

doublesub(doublex,doubley,doublez)

{y-=1.0;

z=z+x;

returnz;

}

main()

{doublea=2.5,b=9.0;

printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));

}

三、1.選擇題(20題)41.在下列字符序列中,不可用做C語(yǔ)言標(biāo)識(shí)符的是()

A.student___numB.classC.#88D.month___12

42.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,p;p=f(a,b);printf("%d",p);}intf(a,b){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}

A.-1B.0C.1D.2

43.在執(zhí)行完下列的C語(yǔ)句段之后,則B的值是()。Chara="A";intb;B=((34&&56)&&(a<'b'));

A.int類型B.float類型C.void類型D.函數(shù)無(wú)類型說(shuō)明,定義有錯(cuò)

44.以下程序的運(yùn)行結(jié)果是#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti=10,j=15,kk=10*MIN(i,j);printf("%d\n",k);}

A.10B.15C.100D.150

45.字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲(chǔ)形式是______。

A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼

46.若a、b、c、d都是int型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語(yǔ)句是()。

A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);

47.下面程序段的執(zhí)行結(jié)果是()。intx=10;for(;x;x--){if(x%3)continue;printf("%d",x);}

A.875421B.963C.741D.852

48.若要求從鍵盤讀入含有窄格字符的字符串,應(yīng)使用函數(shù)()。

A.getc()B.gets()C.getchar()D.scanf()

49.若變量已正確定義,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其輸出結(jié)果是

A.程序段有語(yǔ)法錯(cuò)B.3,5,3C.3,5,5D.3,5,7

50.設(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

51.請(qǐng)選出下面正確的程序段()。

A.int*s;scanf("%d",s);┆

B.int*s,k;*s=100;┆

C.int*s,k;char*p,c;s=&k;p=&c;*p='a';┆

D.int*s,k;char*p,c;s=&k;p=&c;s=p;*s=1;┆

52.以下不能正確計(jì)算代數(shù)式sin2()值的C語(yǔ)言表達(dá)式是()。

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)

53.軟件工程的出現(xiàn)是由于()。A.A.程序設(shè)計(jì)方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計(jì)算機(jī)的發(fā)展

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

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

55.下列正確的實(shí)型常量是()。

A.E3.4B.-12345C.2.2eO.8D.4

56.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL

57.可以在C語(yǔ)言中用做用戶標(biāo)識(shí)符的是______。

A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG

58.sizeof(float)是______。

A.一種函數(shù)調(diào)用B.一個(gè)雙精度型表達(dá)式C.一個(gè)整型表達(dá)式D.一個(gè)不合法的表達(dá)式

59.若變量已正確定義并賦值,下面符合C語(yǔ)言的表達(dá)式是_____。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

60.有以下程序main()intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);程序運(yùn)行后的輸出結(jié)果是

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

四、選擇題(20題)61.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}

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

62.以下選項(xiàng)中可用做C程序合法實(shí)數(shù)的是()。

A..leOB.3.0e0.2C.E9D.9.12E

63.以下選項(xiàng)中非法的字符常量是()。

A.\101B.\65C.\xffD.\019

64.第

15

非空的循環(huán)單鏈表head的尾結(jié)點(diǎn)(由p所指向),滿足

A.p->next==NULLB.p==NULLC.p->next=headD.p=head

65.

66.(59)SQL語(yǔ)言又稱為()

A.結(jié)構(gòu)化定義語(yǔ)言

B.結(jié)構(gòu)化控制語(yǔ)言

C.結(jié)構(gòu)化查詢語(yǔ)言

D.結(jié)構(gòu)化操縱語(yǔ)言

67.

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

A.預(yù)處理命令行必須位于C源程序的起始位置

B.在C語(yǔ)言中,預(yù)處理命令行都以“#”開(kāi)頭

C.每個(gè)C程序必須在開(kāi)頭包含預(yù)處理命令行:#include<stdio.h>

D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能

68.

69.有以下程序

70.以下選項(xiàng)中關(guān)于C語(yǔ)言常量的敘述錯(cuò)誤的是()。

A.經(jīng)常被陡用的變量可以定義成常量

B.常量分為整型常量、實(shí)型常量、字符常量和字符串常量

C.常量可分為數(shù)值型常量和非數(shù)值型常量

D.所謂常量,是指在程序運(yùn)行過(guò)程中,其值不能被改變的量

71.有以下程序:

voidmain()

{inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{defaule:m++;

case0:m++;break;

}

}

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

}

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

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

72.下列敘述中正確的是()。A.順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)空間一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的

B.順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)

C.順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表

D.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間

73.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯(cuò)誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

74.

75.輸出語(yǔ)句:prinff(”%d\n”,ll+011);的輸出結(jié)果是()。

A.20B.22C.022D.021

76.若intk=8;則執(zhí)行下列程序后,變量k的正確結(jié)果是

main()

{intk=8;

switch(k)

{case9:k+=1;

case10:k+=1;

default:k+=1;

case11:k+=1;break;

}

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

}

A.12B.1

C.10D.9

77.

78.下列關(guān)于C語(yǔ)言的敘述錯(cuò)誤的是()。

A)大寫字母和小寫字母的意義相同

B)不同類型的變量可以在一個(gè)表達(dá)式中

C)在賦值表達(dá)式中等號(hào)(=)左邊的變量和右邊的值可以是不同類型

D)同一個(gè)運(yùn)算符號(hào)在不同的場(chǎng)合可以有不同的含義

79.第

11

若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:通過(guò)某種方式實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定不允許增加語(yǔ)句和表達(dá)式。例如變量num1中的值原為2,num2中的值原為1,程序運(yùn)行后,num1中的值為l,num2中的值為2。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)proc,它的功能是:將字符串中的前導(dǎo)*號(hào)全部刪除,中間和后面的*號(hào)不刪除。 例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。 注意:部分源程序給出如下。 請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫的若干語(yǔ)句。 試題程序: #include<stdio.h=:{> #include<conio.h> woidproc(char*str) { } voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}

參考答案

1.B

2.C

3.D

4.C程序定義兩個(gè)整型變量i、j,初值為3,7。另外,定義兩個(gè)整型指針變量p、q,其中p指向i,q指向j。將i、j的地址傳給swap函數(shù)。在swap函數(shù)中,a指向i,b指向j。通過(guò)臨時(shí)變量t交換a和b指向的值,此時(shí)a指向的實(shí)參i、b指向的實(shí)參j的值發(fā)生了交換。即a指向i的值為7,b指向j的值為3;再通過(guò)臨時(shí)變量tp交換a和b的指針值,使得a指向j,b指向i。所以swap中輸出a指向的值為3(j),b指向的值為7(i);swap函數(shù)調(diào)用結(jié)束后,輸出p和q指向的值,即i、j的值為7、3。所以程序輸出:3,7,7,3。本題答案為C選項(xiàng)。

5.A需求分析是軟件開(kāi)發(fā)之前必須要做的準(zhǔn)備工作之一。需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。故需求分析的主要任務(wù)是確定軟件系統(tǒng)的功能。本題答案為A選項(xiàng)。

6.B解析:本題考查while語(yǔ)句的使用。本題考查邏輯非運(yùn)算符和不等于運(yùn)算符的區(qū)別,邏輯非運(yùn)算符'!'的優(yōu)先級(jí)大于不等于運(yùn)算符'!='的優(yōu)先級(jí)。

7.A本題中定義了整形變量case,但case是關(guān)鍵字,關(guān)鍵字不能用做標(biāo)識(shí)符。單精度printF不是關(guān)鍵字,因?yàn)闃?biāo)識(shí)符區(qū)分大小寫。所以A不正確。

8.B

9.C

10.C

11.B

12.A“sizeof(FILE*)=4”,因?yàn)椤癴ile*”為指針,指針變量占用字節(jié)數(shù)為4,所以“sizeof(int*)=4”,選項(xiàng)A正確。文件指針的值是地址,是一個(gè)十六進(jìn)制數(shù),它的值不一定小于文件字節(jié)數(shù),因此選項(xiàng)B錯(cuò)誤。文件指針是所指文件的當(dāng)前讀取位置,而不是文件指針的值,因此選項(xiàng)C錯(cuò)誤?!癷ntfscanf(FILE*Stream,constchar*format,[argument...]);”,fScanf函數(shù)可以向任意類型的文件寫入任意數(shù)量的數(shù)據(jù)(不能超過(guò)系統(tǒng)的緩沖區(qū)),寫文件先寫入緩沖區(qū),最后一起寫入文件,因此選項(xiàng)D錯(cuò)誤。故本題答案為A選項(xiàng)。

13.C

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

15.B

16.A因?yàn)樾懽址鸻、b、c的ASCII值分別為97、98、99。在dowhile循環(huán)語(yǔ)句中,每次對(duì)字符的ASCII值取余數(shù)并輸出,所以分別輸出7、8、9。故本題答案為A選項(xiàng)。

17.D本題中del(char*s)函數(shù)實(shí)現(xiàn)的功能是:逐個(gè)讀入S數(shù)組中的字符,如果遇到數(shù)字,則將數(shù)字存在s中,遇到非數(shù)字字符則跳過(guò)。所以最后輸出的應(yīng)該是字符串S中所有的數(shù)字的個(gè)數(shù)。

18.C

19.B

20.B考查簡(jiǎn)單的C程序數(shù)組和循環(huán)。for循環(huán)是指i=0,如果s/[3]!=0,則i自動(dòng)加1。if循環(huán)指的是s[i]中的元素大于等于0且小于等于9,則n加l,所以答案為B。

21.77解析:在程序執(zhí)行時(shí),static變量?jī)H初始化一次,下次使用時(shí)將使用上次保存的值。

22.邏輯關(guān)系邏輯關(guān)系

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

24.順序存儲(chǔ)(順序方式存儲(chǔ))順序存儲(chǔ)(順序方式存儲(chǔ))解析:二分法查找對(duì)表的要求是有序的順序表,即第一要求是數(shù)據(jù)元素有序,第二要求是按順序方式存儲(chǔ)。

25.交換排序交換排序解析:常見(jiàn)的排序方法有插入排序(包括簡(jiǎn)單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡(jiǎn)單選擇排序和堆排序等)。注意:常見(jiàn)的排序方法及其作用機(jī)制和區(qū)別。

26.1721

27.n%base[d]n%base[d]解析:程序中的字符數(shù)組b存儲(chǔ)了十六進(jìn)制16個(gè)數(shù)字的字符,整型數(shù)組c用于存儲(chǔ)轉(zhuǎn)換的十六進(jìn)制數(shù)的各位數(shù)值。將整數(shù)n轉(zhuǎn)換成它的各位十六進(jìn)制數(shù)值,需采用除以16取余的方法,即求n除以16的余,得到它的十六進(jìn)制的末位數(shù),接著將n除以16,在n不等于0的情況下循環(huán),順序求出n的十六進(jìn)制的倒數(shù)第一、第二、第三位數(shù)等。程序中變量base已預(yù)置16,所以在第一處填n%base。當(dāng)n的十六進(jìn)制數(shù)的倒數(shù)第一、第二、第三位等依次存放于數(shù)組c中后,就從最高位至最低位,參照數(shù)組c[i]的內(nèi)容d(以其內(nèi)容為下標(biāo)),取十六進(jìn)制數(shù)字符表中的字符b[d)輸出,所以在第二處填[d]。

28.11解析:計(jì)算表達(dá)式!a<b,先計(jì)算!a,因a的值為10,!a的值為0,而關(guān)系表達(dá)式0<20為真,所以表達(dá)式!a<b的值為1。

29.s[i]<'0'‖s[i]>9或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))isdigit(s[i])==0或s[i]>'9'‖s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'!(*(s+i)<='9'&&*(s+i)>='0'或iss[i]<'0'‖s[i]>9,或\r\n!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))\r\nisdigit(s[i])==0或s[i]>'9'‖s[i>'0'或\r\n!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或\r\n!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或\r\n*(s+i)>='9'&&*(s+i)<='0'\r\n!(*(s+i)<='9'&&*(s+i)>='0'或is解析:本題考核的知識(shí)點(diǎn)是字符指針變量作為函數(shù)的參數(shù)以及與字符串有關(guān)的算法。從一個(gè)字符串中刪除某字符的方法是從字符串的第一個(gè)字符開(kāi)始一一判斷該字符是否是要?jiǎng)h除的字符,若不是則把它放到結(jié)果字符串中,若是則不放入結(jié)果字符串中。本題的第一個(gè)空應(yīng)判斷a[i]是否為數(shù)字字符,只有在不是數(shù)字字符的情況下才存入結(jié)果字符串,所以應(yīng)填入s[i]<'0'‖s[i]>'9'。最后應(yīng)在結(jié)果字符串的末尾填上字符串結(jié)束標(biāo)志“\\0”。

30.完整性控制完整性控制

31.strlen(str)/2str[j-1]

32.i<na[i]i<na[i]解析:在main函數(shù)中,randomize是為了生成隨機(jī)種子,以便在使用rand函數(shù)時(shí)產(chǎn)生不同的數(shù)。通過(guò)循環(huán)用rand函數(shù)產(chǎn)生10個(gè)隨機(jī)數(shù)。在fun函數(shù)中,要在n個(gè)數(shù)中找最大值,所以第一處填寫i<n,每次將當(dāng)前最大值與數(shù)組中的某元素比較,第二處填寫a[i]。

33.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標(biāo),需先預(yù)設(shè)1個(gè)臨時(shí)最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時(shí)最大元素更大時(shí),就用當(dāng)前元素的下標(biāo)更新臨時(shí)最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時(shí)最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查是從首元素開(kāi)始順序向后繼元素考查。程序中,存儲(chǔ)臨時(shí)最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時(shí)最大元素s[k)更大時(shí),應(yīng)該用p更新k。所以在空框處應(yīng)填入代碼“k=p;”。

34.66解析:經(jīng)過(guò)分析將遞歸函數(shù)寫成其數(shù)學(xué)表達(dá)式如下:

f(&a,n)=a[0]+f(&a[1],n-1)n>1

f(&a,n)=a[0]n=1

本題中定義了一個(gè)長(zhǎng)度為3的數(shù)組aa并初始化。接著調(diào)用遞歸函數(shù)f,由上面的數(shù)學(xué)表達(dá)式以計(jì)算其返回值s=1+2+3=6,所以空格處應(yīng)該填6。

35.i+1i

36.morningclassmorningclass解析:本題考查了兩個(gè)知識(shí)點(diǎn):①“++、--”運(yùn)算后綴形式是先使用變量原來(lái)的值,使用完后再使其增1或減1;②在switch語(yǔ)句中,當(dāng)n=\'c\'時(shí),執(zhí)行“case\'c\':”,輸出morning;因?yàn)榇司渲袥](méi)有break語(yǔ)句,因此接著執(zhí)行'case\'d\':”,輸出class,最終輸出結(jié)果為morningclass。

37.如果a能被i整除,則a是素?cái)?shù),返回值為0。如果a不能被i整除,則a不是素?cái)?shù),返回值為1。

38.98

39.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過(guò)程中,可以用*(str+i)來(lái)訪問(wèn)字符串中的第i個(gè)元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。

40.functionrunningresultis:9.0

41.C

42.A解析:本題考查ifelse語(yǔ)句。在intf(a,b)中:第一個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a>b條件不成立,則執(zhí)行與其配對(duì)的else語(yǔ)句;第二個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a==b條件不成立,則執(zhí)行與其配對(duì)的else語(yǔ)句,c=-1。

43.A解析:本題考查默認(rèn)函數(shù)的函數(shù)值的類型。在函數(shù)定義時(shí),由于函數(shù)沒(méi)有說(shuō)明其類型,系統(tǒng)默認(rèn)一律自動(dòng)按整型處理,因此,函數(shù)的類型為int類型。

44.B解析:該題考查函數(shù)的宏定義及三目運(yùn)算符。其中表達(dá)式10,MIN(i,j)利用宏展開(kāi)后為:10*<j?i:j,即100<15?10:15,其值為15,然后賦值給k。

45.D解析:將—個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲(chǔ)單元中。

46.A解析:C語(yǔ)言規(guī)定,賦值號(hào)的右邊可以是一個(gè)賦值表達(dá)式.因此選項(xiàng)C)、選項(xiàng)D)正確:在選項(xiàng)B)中,a++是一個(gè)自加1的表達(dá)式,a被重新賦值,因此它是一個(gè)合法的賦值表達(dá)式:選項(xiàng)A)中,a+d是一個(gè)算術(shù)表達(dá)式,雖然最后有一個(gè)分號(hào),但這個(gè)表達(dá)式中沒(méi)有賦值操作,因此它不是一條賦值語(yǔ)句。

47.B解析:本題的for循環(huán)省略了第一個(gè)表達(dá)式,即for沒(méi)有任何初始化動(dòng)作;第二個(gè)表達(dá)式x的意思是只要x非0,則循環(huán)繼續(xù);第三個(gè)表達(dá)式讓x在每次循環(huán)結(jié)束時(shí)減1。x初始為10,然后進(jìn)入循環(huán)體,判斷x是否能被3整除,不能整除則執(zhí)行continue;語(yǔ)句進(jìn)入下一次循環(huán),能整除則輸出x。故最終輸出的結(jié)果為從10遞減到1之中能被3整除的數(shù)9、6和3。所以正確答案是B。

48.B解析:scanf()語(yǔ)句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf()函數(shù)不能輸入空格;getchar()函數(shù)用于輸入字符,其調(diào)用形式為:ch=getchar(),getchar()函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開(kāi)始執(zhí)行。gets()函數(shù)的調(diào)用形式為:gets(str_adr),其中str_adr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。ge

49.B解析:本題考查if條件語(yǔ)句。a=3,b=5,因此a>b條件不成立,c=a=3。此時(shí)c!=a條件不成立,不執(zhí)行c=b;語(yǔ)句,c的值仍然為5。結(jié)果a=3,b=5,c=3。

50.B解析:本題考查邏輯與運(yùn)算的運(yùn)算規(guī)則。其規(guī)則是:當(dāng)運(yùn)算符前后兩個(gè)條件表達(dá)式都滿足時(shí),其最終結(jié)果才為真。當(dāng)發(fā)現(xiàn)第一個(gè)表達(dá)式的值為假后,計(jì)算機(jī)將不再執(zhí)行后面表達(dá)式的運(yùn)算。

本題中,由于前一個(gè)表達(dá)式的值為“假”,所以,后面的表達(dá)式不再進(jìn)行運(yùn)算,因而n的值保持不變,仍為2。

51.C解析:本題的選項(xiàng)A)和B)犯了一個(gè)同樣的錯(cuò)誤,即指針變量s定義后并沒(méi)有指向具體的變量。也就是說(shuō),s中沒(méi)有確定的地址值,它的值是不可預(yù)見(jiàn)的,所指向的單元也是不可預(yù)見(jiàn)的,因此不能進(jìn)行賦值操作。另外,在選項(xiàng)D)中,s是int型指針變量,p是char型指針變量,指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。

52.A解析:A中sin(1/2)是0,因?yàn)?和2都是整數(shù),“/”在這里是整除。

53.C解析:軟件工程的基本概念。軟件工程概念的出現(xiàn)源自于軟件危機(jī)。為了消除軟件危機(jī),通過(guò)認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識(shí)到軟件工程是使計(jì)算機(jī)軟件走向工程科學(xué)的途徑,逐步形成了軟件工程的概念。

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

55.B解析:實(shí)型常量有兩種書(shū)寫形式:①小數(shù)形式,它由符號(hào)、整數(shù)部分、小數(shù)點(diǎn)及小數(shù)部分組成;②指數(shù)形式,由十進(jìn)制小數(shù)形式加上指數(shù)部分組成,其形式為十進(jìn)制小數(shù)e指數(shù)或十進(jìn)制小數(shù)E指數(shù)。注:e或E后面的指數(shù)必須是整數(shù),并且在e或E的前面必須有數(shù)字。本題中,選項(xiàng)A)中E的前面沒(méi)有數(shù)字,因此錯(cuò)誤。選項(xiàng)C)中0.8不是整數(shù),因此錯(cuò)誤。選項(xiàng)D)中4是整型常量而不是實(shí)型常量。

56.D解析:當(dāng)k=1時(shí),引用的是二維數(shù)組元素w[1][1],值為字符串“FGH”;當(dāng)k=2時(shí),引用的是數(shù)組元素w[2][2],即字符串“KL”;當(dāng)k=3時(shí),結(jié)束程序的執(zhí)行。注意:字符串?dāng)?shù)組的定義。

57.B解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線。另外還需要注意的是關(guān)鍵字不能作標(biāo)識(shí)符。選項(xiàng)A中void,C中for都為關(guān)鍵字,D中2c以字母開(kāi)頭。

58.C解析:sizeof(float)返回float型變量所占存儲(chǔ)單元的字節(jié)數(shù)。

59.B解析:選項(xiàng)A和C一望而知其錯(cuò);對(duì)于表達(dá)式a=a+7=c+b(答案D),是先執(zhí)行賦值表達(dá)式a+7=c+b,再把這個(gè)表達(dá)式的值賦給a,顯然,表達(dá)式a+7=c+b非法,因?yàn)橘x值表達(dá)式的左側(cè)不能為常量或表達(dá)式。

60.C解析:本題考核的知識(shí)點(diǎn)是for語(yǔ)句和continue語(yǔ)句的綜合應(yīng)用。在本程序的for循環(huán)中,用到了一個(gè)continue語(yǔ)句,continue語(yǔ)句的作用是停止本次循環(huán),即不執(zhí)行循環(huán)體內(nèi)continue語(yǔ)句后面的其他語(yǔ)句,繼續(xù)下次循環(huán)的條件判斷。首先在for循環(huán)中n自加1(值變?yōu)?),然后執(zhí)行后面的if語(yǔ)句,由于if語(yǔ)句后面括號(hào)的表達(dá)式(1%3!=0)的值為真,程序執(zhí)行continue語(yǔ)句,回到for循環(huán)的開(kāi)始部分,并且判斷for循環(huán)中的條件表達(dá)式(n<k)為真,重復(fù)執(zhí)行“n++;”語(yǔ)句,如此循環(huán)直到n=3時(shí),if語(yǔ)句判定條件中表達(dá)式(3%3!0)的值為假,程序執(zhí)行if語(yǔ)句后面的“k--”語(yǔ)句,此時(shí)k的值為3,不滿足“n<k”,退出for循環(huán)。故最后的k和n的值為3和3,選項(xiàng)C符合題意。

61.A本題考查函數(shù)值的類型。在函數(shù)調(diào)用時(shí),盡管Y的類型是float.x的類型是double,但是因?yàn)楹瘮?shù)定義時(shí)沒(méi)有指定類型說(shuō)明,系統(tǒng)默認(rèn)函數(shù)值的類型為int型,所以計(jì)算后Y的類型是int型。

62.AC語(yǔ)言中實(shí)數(shù)的指數(shù)計(jì)數(shù)表示格式為字母e或者E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。所以選項(xiàng)A正確。

63.D在選項(xiàng)中,\\019,以0開(kāi)頭的數(shù)都為八進(jìn)制數(shù),而八進(jìn)制的表示數(shù)字是0~7,所以答案選擇D。

64.C循環(huán)鏈表是另一種形式的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。表中最后一個(gè)結(jié)點(diǎn)的指針域指向頭結(jié)點(diǎn),整個(gè)鏈表形成一個(gè)環(huán)。這種循環(huán)鏈表的好處是從任意結(jié)點(diǎn)開(kāi)始都可以找到其他結(jié)點(diǎn)。

循環(huán)鏈表的操作和線性鏈表基本一致,差別僅在于鏈表最后

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論