2021年江西省鷹潭市全國計算機等級考試C語言程序設計測試卷一(含答案)_第1頁
2021年江西省鷹潭市全國計算機等級考試C語言程序設計測試卷一(含答案)_第2頁
2021年江西省鷹潭市全國計算機等級考試C語言程序設計測試卷一(含答案)_第3頁
2021年江西省鷹潭市全國計算機等級考試C語言程序設計測試卷一(含答案)_第4頁
2021年江西省鷹潭市全國計算機等級考試C語言程序設計測試卷一(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年江西省鷹潭市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列敘述中正確的是()。A.一個邏輯數(shù)據結構只能有一種存儲結構

B.邏輯結構屬于線性結構,存儲結構屬于非線性結構

C.一個邏輯數(shù)據結構可以有多種存儲結構,且各種存儲結構不影響數(shù)據處理的效率

D.一個邏輯數(shù)據結構可以有多種存儲結構,且各種存儲結構影響數(shù)據處理的效率

2.程序中對fun函數(shù)有如下說明

void*fun();

此說明的含義是:A.fun了數(shù)無返回值

B.fun函數(shù)的返回值可以是任意的數(shù)據類型

C.fun函數(shù)的返回值是無值型的指針類型

D.指針fun指向一個函數(shù),該函數(shù)無返回值

3.在一個具有n個結點的有序單鏈表中插入一個新結點并仍然保持有序的時間復雜度是()。

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

4.下面程序的運行結果是()。#include"stdio.h"main(){inti;for(i=1;i<=5;i++){if(i%2)printf("*");elseprintf("#");}}

A.*#*#*B.#*#*#*C.*#*#D.#*#*

5.

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

A.非零的數(shù)值型常量有正值和負值的區(qū)分

B.常量是在程序運行過程中值不能被改變的量

C.定義符號常量必須用類型名來設定常量的類型

D.用符號名表示的常量叫符號常量

7.軟件測試的目的是()。

A.評估軟件可靠性B.發(fā)現(xiàn)并改正程序中的錯誤C.改正程序中的錯誤D.發(fā)現(xiàn)程序中的錯誤

8.在循環(huán)隊列中,若front與rear分別表示對頭元素和隊尾元素的位置,則判斷循環(huán)隊列空的條件是()。

A.front==rear+1B.rear==front+1C.front==rearD.front==0

9.對線性表進行折半查找時,必須要求線性表()。

A.順序方式存儲B.鏈式方式存儲C.以順序方式存儲,且結點按關鍵字有序排列D.以鏈式方式存儲,且結點按關鍵字有序排列

10.有以下程序段:charname[20】;intnum;scanf("name=%Snum=%d",name,&num);當執(zhí)行上述程序段,并從鍵盤輸入:name=Lilimum=1001<回車>后,name的值為()。A.LiliB.name=LiliC.Lilinum=D.name=Lilinum=1001

11.有以下程序:#include<stdio.h>main(){charch=‘1’;while(ch<‘9’){printf(“%d”,ch-‘0’);ch++;}}程序運行后的輸出結果是()。

A.12345678B.01234567C.0D.1

12.

13.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。

A.p+1B.a+1C.a++D.++p

14.以下選項中能表示合法常量的是()。

A.1,200B.1.5E2.0C.‘\’D.“\007”

15.C語言的邏輯表達式在特定情況下會產生“短路”現(xiàn)象。若有邏輯表達式“x++&&y++,”則以下敘述中正確的是()。

A.若x的值為0,則“y++”操作被“短路”,y值不變

B.若x的值為1,則“y++”操作被“短路”,y值不變

C.若y的值為0,則“&&”運算被“短路”,y值不變

D.若y或x的值為0,則表達式值為0,“x++”和“y++”均不執(zhí)行

16.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運行的結果是()。A.1,2,3,4,5,6,7,8,9,0,

B.0,9,8,7,6,5,1,2,3,4,

C.0,9,8,7,6,5,4,3,2,1,

D.1,2,3,4,9,8,7,6,5,0,

17.若希望下列的程序運行后輸出25,程序空白處的正確選項是()。main{intid=50,a[]=(7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i

18.一個順序棧一旦聲明,其占用空間的大小()。

A.已固定B.可以變動C.不能固定D.動態(tài)變化

19.假設在程序中a、b、c均被定義成整型,所賦的值都大于1,則下列能正確表示代數(shù)式1/abc的表達式是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c

20.在供應關系中,實體供應商和實體零件之間的聯(lián)系是()。

A.多對多B.一對一C.多對一D.一對多

二、2.填空題(20題)21.以下程序中給指針p分配三個double型動態(tài)內存單元,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{dOuble*p;

p=(double*)malloc();

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

22.若輸入2、2,則下列程序的運行結果為【】。

main()

{inti,j,(*p)[4],

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

p=a;

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

printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));

}

23.數(shù)據結構包括數(shù)據的邏輯結構、數(shù)據的【】以及對數(shù)據的操作運算。

24.有以下定義和語句,則sizeof(a.share)的值是()。

structdate

{unsignedintday;

unsignedintmouth;

unsignedintyear;

union{intshare1;

floatshare2;

}share;

}a;

25.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結果傳回,請?zhí)羁铡?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;}

26.在軟件開發(fā)中,結構化方法包括結構化分析方法、結構化設計方法和結構化程序設計方法??尚行匝芯侩A段采用的是【】。

27.用十六進制給存儲器中的字節(jié)地址進行編號,其地址編號從0000到FFFF,則該存儲器容量是【】。

28.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。

29.設inta=5,b=6,表達式(++a==b--)?++a:--b的值是【】。

30.下列程序的運行結果是______。

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

31.若從鍵盤輸入24,則以下程序輸出的結果是()。

#include<stdio.h>

main()

{inta;

scanf("%d",&A);

if(a>20)printf("%d",A);

if(a>10)printf("%d",A);

if(a>5)printf("%d",A);

}

32.以下程序將兩個數(shù)從小到大輸出。請?zhí)羁铡?/p>

{floata,b,【】;

scanf(,【】&a,&b);

if(a>b)

{t=a;

【】;

b=t;

printf("%5.2f%5.2f\n",a,b);

}

33.若已定義inta[10],i;以下fun函數(shù)的功能是,在第一個循環(huán)中給前10個數(shù)組元素依次賦1,2,3,4,5,6,7,8,9,10;在第二個循環(huán)中使a數(shù)組前10個元素中的值對稱拆疊,變成1,2,3,4,5,5,4,3,2,1。請?zhí)羁铡?/p>

fun(inta[])

{inti;

for(i=1;i<=10;i++)【】=i;

for(i=0;i<5;i++)【】=a[i];

}

34.下列程序的運行結果是______。

#definePOWER(x)((x)*(x))

main()

{inti=1;

printf("%d,%d",POWER(i++),i);

}

35.設一棵完全二叉樹共有700個結點,則在該二叉樹中有【】個葉子結點。

36.最簡單的交換排序方法是______。

37.下列語句使指針p指向一個double類型的動態(tài)存儲單元。

p=【】malloc(sizeof(double));

38.以下程序從終端讀入數(shù)據到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和,請?zhí)羁铡?/p>

#include<stdio,h>

main()

inti,a[20],sum,count;

sum=count=0;

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

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

{if(a[i]>0)

{count++;

sum+=【】;

}

prinff("sum=%d,count=%d\n",sum,count);

}

39.問題處理方案的正確而完整的描述稱為______。

40.設a、b、c為整數(shù),且a=2、b=3、c=4,則執(zhí)行完語句a*=18+(b++)-(++c);后,a的值是【】。

三、1.選擇題(20題)41.以下選項中可作為C語言合法常量的是______。

A.-80B.-80C.-8e1.0D.-80.0e

42.語句:printf("%d\n",12&012);的輸出結果是()。

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

43.在下列敘述中,錯誤的是()。

A.C語言中,二維數(shù)組或多維數(shù)組是按行存放的

B.賦值表達式b[1][2]=a[2][3]是正確的

C.chara[1];a[0]='A'與inta[1];a[0]='A'等價

D.數(shù)組名后的方括號內可以為常量表達式,也可以為變量

44.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

45.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是______。

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

46.以下函數(shù)的功能是:通過鍵盤輸入數(shù)據,為數(shù)組中的所有元素賦值。#defineN10voidartin(intx[N]){inti=0;while(i<N)scanf("%d",);}在下劃線處應填入的是()。

A.x+iB.&x[i+1]C.x+(i++)D.&x[++i]

47.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);retumy-x-1;}

A.求字符串的長度B.求字符串存放的位置C.比較兩個字符串的大小D.將字符串x連接到字符串y后面

48.有三個關系R、S和T如下:由關系R和s通過運算得到關系T,則所使用的運算為()。

A.并B.自然連接C.笛卡兒積D.交

49.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序的輸出結果是

A.0B.0.25C.0.5D.1

50.有以下程序段:intk=0;while(k=1)k++;while循環(huán)執(zhí)行的次數(shù)是______。

A.無限次B.有語法錯,不能執(zhí)行C.一次也不執(zhí)行D.執(zhí)行1次

51.結構化程序設計的三種結構是()。

A.順序結構、選擇結構、轉移結構

B.分支結構、等價結構、循環(huán)結構

C.多分支結構、賦值結構、等價結構

D.順序結構、選擇結構、循環(huán)結構

52.有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen(“d1.dat”,“w”);fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”,j);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d%d”,&k,&n);printf(“%d%d\n”,k,n);fclose(fp);}程序運行后的輸出結果是

A.2030B.2050C.3050D.3020

53.閱讀下列程序,當運行函數(shù)時,輸入asdafaaz67,則輸出為#include<stdio.h>#include<ctype.h>#include<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')str[j++]=str[i];str[j]='\0';}main(){charstr[81];

A.asdafaaz67B.asdafaa267C.asdD.z67

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

A.對象B.數(shù)據結構C.數(shù)據流D.目標

55.若有以下程序:#include<stdio.h>voidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf("%d\n",n);}則以下敘述中不正確的是()。

A.若只在主函數(shù)中對函數(shù)f進行說明,則只能在主函數(shù)中正確調用函數(shù)f

B.若在主函數(shù)前對函數(shù)f進行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調用函數(shù)f

C.對于以上程序,編譯時系統(tǒng)會提示出錯信息:對f函數(shù)重復說明

D.函數(shù)f無返回值,所以可用void將其類型定義為無返回值型

56.對下述程序的判斷中,正確的是

#include<stdio.h>

voidmain()

{char*p,s[128];

p=s;

while(strcmp(s,"End"))

{printf("Inputastring:");gets(s);

while(*p)

putchar(*p++);}}

A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止

B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止

C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因為代碼有錯誤,程序不能正常工作

D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串

57.已知i、j、k為血型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scan("%d,%d,%d",&i,&j,&k);

C.scan("%do/od%d",&i,及j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

58.字長為32位的計算機是指()

A.該計算機中的CPU有32個寄器

B.該計算機能夠處理的最大數(shù)不超過232

C.該計算機每秒鐘所能執(zhí)行的指令條數(shù)為32MIPS

D.該計算機中的CPU可以相同時處理32位的二進制數(shù)

59.結構化程序設計主要強調的是()。

A.程序的規(guī)模B.程序的效率C.程序設計語言的先進性D.程序的易讀性

60.若程序執(zhí)行時的輸入數(shù)據是"2473",則下述程序的輸出結果是

#include<stdio.h>

voidmain()

{intcs;

while((cs=getchar())!=;'\n')

{switch(cs-'2')

{case0

case1:putchar(cs+4);

case2:putchar(cs+4);

break;

case3:putchar(cs+3);default:putchar(cs+2);}}}

A.668977B.668966C.6677877D.6688766

四、選擇題(20題)61.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6

62.有以下程序

63.

64.

65.

66.有以下程序

voidfunc(int*a,intb[])

{b[0]=*a+6;}

main()

{inta,b[5]={0};

a=0;b[0]=3;

func(&a,b);

rintf("%d\n",b[0]);

}

程序的運行結果是

A.6B.7

C.8D.9

67.

68.設有定義:

69.

70.下列敘述中正確的是()。A.在c程序的函數(shù)中不能定義另一個函數(shù)

B.在c程序中main函數(shù)的位置是固定的

C.C程序中所有函數(shù)之間都可以相互調用

D.每個C程序文件中都必須要有一個main函數(shù)

71.設a=l,b=2,c=3,d=4,則表達式:“a<b?a:b<b?a:c<d?a:d”的結果為()。A.A.4B.3C.2D.1

72.

73.以下語句的輸出結果是()。

inta=-1,b=4,k;

k=(++a<0)!(b--<=0);

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

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

74.某循環(huán)隊列的存儲空間為Q(4:m),初始狀態(tài)為front=lea/"=m?,F(xiàn)經過一系列的人隊操作和退隊操作后,front=m,r6ar=m一1,則該循環(huán)隊列中的元素個數(shù)為()。

A.m一1B.mC.1D.0

75.

76.有以下函數(shù)

fun(char*a,char*b)

{

while((*a!=’\0’)&&(*b!=’\0’)&&(*a==*b))

{

a++;b++;

}

return(*a-*b);

}

該函數(shù)的功能是

A.計算a和b所指字符串的長度之差

B.將b所指字符串連接到a所指字符串中

C.將b所指字符串連接到a所指字符串后面

D.比較a和b所指字符串的大小

77.有如下程序:

該程序的輸出結果是()。

A.0.000000B.0.250000C.0.500000D.1.000000

78.sizeof(float)是

A.一個雙精度表達式B.一個整型表達式

C.一種函數(shù)調用D.一個不合法的表達式

79.下面對C語言的描述中,正確的是

A.函數(shù)一定有返回值,否則無法使用函數(shù)

B.C語言函數(shù)既可以嵌套定義又可以遞歸調用

C.在C語言中,調用函數(shù)時,只能將實參的值傳遞給形參

D.C語言程序中有調用關系的所有函數(shù)都必須放在同一源程序文件中

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進行排序。插入法的基本方法是:先對字符串中的頭兩個元素進行排序,然后把第3個字符插入前兩個字符中,插入后前3個字符依然有序;再把第4個字符插入前三個字符中,待排序的字符串已

在主函數(shù)中賦予。

請修改程序中的錯誤,使它能得出正確的結果。

注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。

試題程序:

#include<strin9.h>

#include<stdi0.h>

#defineM80

voidproc(char*arr)

{inti,j,n;charch;

n=strlen(arr):

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

//****found****

{c=arr[i];

j=i-1;

while((j>=o)&&(ch<arr[j]))

{

arr[j+1]=arr[j];

j--;

}

arr[j+1]=ch;

}

}

voidmain

{

chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";

printf("Theoriginalstring:%s\n",a);

proc(a);

printf("Thestringaftersortin9:

%s\n\n",a);

}

六、程序設計題(1題)82.請編寫函數(shù)proc(),對長度為9個字符的字符串,除首、尾字符外,將其余7個字符按ASCⅡ碼值降序排列。例如,原來的字符串為HabcdefA,則排序后輸出為HfedcbaA。注意:部分源程序給出如下。請勿改動main()和其他函數(shù)中的任何內容,僅在函數(shù)proc()中填入所編寫的若干語句。試題程序:

參考答案

1.DD)【解析】數(shù)據的存儲結構是指數(shù)據的邏輯結構在計算機存儲空間中的存放形式,一種數(shù)據結構可以根據需要采用不同的存儲結構,常用的存儲結構有順序和鏈式結構。采用不同的存儲結構,其處理的效率是不同的。

2.D解析:返回指針的函數(shù)定義為:返回值類型,函數(shù)名(\u3000\u3000),而指向函數(shù)的指針定義為:返回值類型(*變量名)(\u3000\u3000)。本題中函數(shù)fun返回一個無類型的指針。

3.B

4.A解析:分析程序呵知.程序循環(huán)5次,然后利用if語句決定每次循環(huán)時輸出的字符。當i為奇數(shù)時,i%2=1,if(i%2)為真,輸出“*”;當i為偶數(shù)時,i%2=0,if(i%2)為假,執(zhí)行else語句,輸出“#”,所以當i取1、3、5值時輸出“*”,當i取2、4值時輸出“#”。

5.C

6.C在C語言中,可以用一個標識符來表示一個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:#define標識符常量。

7.D軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,測試要以查找錯誤為中心,而不是為了演示軟件的正確功能,也不是為了評估軟件或改正錯誤,因此本題答案為D)。

8.C

9.C

10.A考查簡單的C程序。由題可知,程序中輸入name的值為Lili,所以輸出的必定是Lili,答案選擇A。

11.A表達式“ch-‘0’’將數(shù)字字符轉為數(shù)字。輸出的格式為%d。while循環(huán)從‘1’~‘8’,因此輸出的結果是12345678。故本題答案為A選項。

12.C

13.C

14.DA選項中整型常量應表示為1200,數(shù)字中不能包含逗號。B選項中E后面的指數(shù)必須為整數(shù)。C選項中轉義字符以“\\”開始,若要表示字符“\\”,應寫為“\\\\”。故本題答案為D選項。

15.A題干中,“x++&&y++”屬于邏輯與表達式。僅當“x++”和“y++”的結果為真,整個邏輯表達式的結果才為真,否則整個表達式的結果為假。當“x++”的結果為0時,“y”就會被短路,即不再執(zhí)行“y++”表達式,整個表達式的結果為假。所以當x的值為0時,“x”的結果也是0,“y”操作被“短路”,y值不變。故本題答案為A選項。

16.Dfun函數(shù)的功能是對數(shù)組a[]的元素從大到小進行排序。

17.D要想使程序輸出25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)的語句,使引用的數(shù)組元素累加65-50=15即可,D選項中,i下標從0開始,i=2指向第3個數(shù)50+a[2]=50+10=60,繼續(xù)循環(huán)60+a[3]=60+5=65,此時i=4跳出,循環(huán)結束。

18.A

19.D

20.A一家供應商可提供多種零件,一種零件也可被多家供應商提供。所以實體供應商和實體零件之間的聯(lián)系是多對多。本題答案為A選項。

21.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識點是malloc()函數(shù).該函數(shù)的調用格式是“malloc(n)”,作用是申請n個字符的存儲單元,并返回該存儲區(qū)的首地址,實際調用的時候可在前面加上“(類型說明符*)”,以轉換成需要的類型的地址.所以在此空格處應該填寫3*sizeof(double)或size(double)*3或其他等價的表達式。

22.a[22]=11

23.存儲結構數(shù)據結構包括3個方面,即數(shù)據的邏輯結構、數(shù)據的存儲結構及對數(shù)據的操作運算。

24.4

25.int*int*解析:從題中代碼可知:z應該是一個整型指針,因此應填int*。

26.結構化分析方法結構化分析方法解析:結構化分析方法主要用于系統(tǒng)分析階段;結構化設計方法主要用于系統(tǒng)設計階段;結構化程序設計方法主要用于編碼階段??尚行匝芯繉儆谙到y(tǒng)分析階段,因此,可行性研究階段采用的是結構化分析方法。

27.64KB

28.88解析:fabs函數(shù)功能是求x的絕對值,計算結果為double型。pow功能是計算x的y次方的值,計算結果同樣為double型。所以本題表達式相當于2.0的3.0次方,結果為8.000000。

29.77解析:此表達式為三目運算符,++a的值為6,b--的值為6,則整個表達式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。

30.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當n=4時,判斷條件不滿足,退出循環(huán)。

31.242424

32.t"%f%f"a=b

33.a[i-1]或a[-1+i]a[9-i]或a[-i+9]a[i-1]或a[-1+i]\r\na[9-i]或a[-i+9]

34.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。

35.350350解析:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。在根據完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結點。因此,設一棵完全二叉樹具有n個結點,若n為偶數(shù),則在該二叉樹中有n/2個葉子結點以及n/2-1個度為2的結點,還有1個是度為1的結點:若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結點以及[n/2]個度為2的結點,沒有度為1的結點。本題中,完全二叉樹共有700個結點,700是偶數(shù),所以,在該二叉樹中有350個葉子結點以及349個度為2的結點,還有1個是度為1的結點。所以,本題的正確答案為350。

36.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據元素之間的互相交換進行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。

37.(double*)

38.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式為:scanf(格式控制,地址表列),因此,第一處應該填寫地址,由于是循環(huán)輸入,所以填&a[i]。依據題意第二處應該填寫a[i],以實現(xiàn)sum=sum+a[i]的求和。

39.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。

40.3232解析:b++是先使用b的值參加運算,再對b加1。++c是先對c加1,再使用c的值參加運算。a*=18+(b++)-(++c)等價于a=a*(18+(b++)-(++c))則a=2*(18+3-5)=32。

41.A解析:選項B中,以0開頭表示是一個八進制數(shù),而八進制數(shù)的取值范圍是0~7,所以-080是不合法的;選項C和D中,e后面的指數(shù)必須是整數(shù),所以也不合法。

42.B解析:位運算12&012即1100&1010,結果是1000,轉化成十進制數(shù)是8,所以,輸出結果是8。

43.D解析:本題考查數(shù)組的4個知識點:①C語言中,二維數(shù)組或多維數(shù)組元素排列的順序是按行存放;②不同數(shù)組的元素之間可以相互賦值;③字符型數(shù)組中存放的是字符,int型數(shù)組中存放的是字符對應的ASCII碼值,雖然在計算機內部字符常量都是作為蹩型量來處理的,其對應的整數(shù)值就是ASCII碼值,但兩者并不完全等價;④數(shù)組名后的方括號內可以為常量,也可以為常量表達式,但不可以為變量。

44.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經講過了,比如數(shù)組元素a[0],可以用表達式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達式,(p+9)來引用。因此,當指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。

45.D解析:通常,引用一個數(shù)組元素可以用下標法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標是從0開始的。

46.C解析:根據scanf()的定義,應該在空白處填入一地址值,又因為要為數(shù)組中所有元素賦值,故空白處填入的表達式應使i每次增1,選項A和B不會使i增1,所以不正確。選項D在第一次執(zhí)行時i先自增為1,所以輸入的第一個數(shù)據被存到x[l]中,而第N次執(zhí)行時會將數(shù)據輸入到x[N],這個地址已經超過數(shù)組x的范圍,屬于越界行為,所以也不正確。故正確答案為C。

47.A解析:在函數(shù)體內定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。

48.D自然連接是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在結果中把重復的屬性列去掉,因此B錯誤。笛卡兒積是用R集合中的元素為第一元素,s集合中的元素為第二元素構成的有序對,因此C錯誤。根據關系T可以很明顯地看出是從關系R與是系s中取得相同的關系組,所以使用的是交運算,選擇D。

49.C解析:該題目測驗考生對if…elseif結構的理解,比較簡單。x的值滿足x<10.0的關系,所以程序將執(zhí)行y=1.0/x;語句,y的值應該等于0.5。最后,用printf函數(shù)輸出時,%f的輸出格式為小數(shù)點后保留6位。

50.A解析:注意本題有個陷阱,馬虎的考生將紛紛落馬。本來、while中的表達式應為k==1,而本題卻為k=1,是賦值表達式而不是邏輯表達式。因此,編譯器將其值一直認為是1,因此表達式一直為真,陷入無限次的循環(huán)。

51.D結構化程序設計以模塊化設計為中心,采用自頂向下、逐步求精的程序設計方法。任何算法功能都可以通過由程序模塊組成的三種基本程序結構的組合:順序結構、選擇結構和循環(huán)結構來實現(xiàn)。

52.A解析:本題首先以創(chuàng)建方式打開文件“d1.dar”,兩次調用fprintf()把i和j的值寫到文件“d1.dat”中,文件“d1.dar的內容為20〈回車〉30〈回車〉后把該文件關閉再以讀的方式打開,文件位置指針指向文件頭,在通過fscard()函數(shù)從中讀取兩個整數(shù)到k和n中,由于格式符無間隔,因此輸入數(shù)據可以用回車隔開,故輸入的k值為20,n的值為30。

53.A解析:本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對于刪除字符的操作都是采用“留下”字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動,每走到一個字符都判斷其是否為空格,若不是空格(注意在if()的單引號之間有一個空格),則將其保存str[j]中。注意j的下標變化、初值及最后加串結束符'\\0'。

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

55.C解析:f函數(shù)沒有重復說明,在main函數(shù)中是對f函數(shù)聲明,在main函數(shù)外則是對f函數(shù)的定義。

56.B解析:此題考查了字符串輸入函數(shù)gets和字符串比較函數(shù)strcmp,另外還有字符輸出函數(shù)putchar。gets從標準輸入設備中讀入全部字符,包括空格,直到遇到回車符為止。strcmp是字符串比較函數(shù),即strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0;如果字符串1>字符串2,則函數(shù)值為一正整數(shù);如果字符串1<字符串2,則函數(shù)值為一負整數(shù)。putchar(c)函數(shù)將字符c輸出到標準輸出設備上。

57.B解析:函數(shù)scan()的調用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符:“輸入項地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時要求按一一對應的位置原樣輸入這些字符,其中的逗號也必須輸入。

58.D

59.D解析:程序不僅是編寫完就結束了,為了測試和維護程序,往往還有其他人閱讀和跟蹤程序,因此程序設計的風格應該強調簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。

60.A解析:本題主要考查switch語句的使用方法。switch語句的執(zhí)行過程為:進入switch結構后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為入口,執(zhí)行switch結構中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行default后面的語句。

61.B本題考查自加(++)、自減(--)運算符的使用?!?+x,--x”,在變量x前使用,先使X的值加1或者減1,再使用此時的表達式的值參與運算;“x++,x--”,先把使用X的值參與運算,在使用X之后,再使x的值加1或者減1。對于表達式--x=4,y++=4,兩者相等,--x=y++為真,所以a=x=4,執(zhí)行完此語句后y的值是5。第2個表達式b=++x,x的值先加1,然后賦給b,即b=x+1=5;第一個表達式c=y=5。故B正確。

62.A函數(shù)fun的功能是返回字符串數(shù)組.,各個字符串第一個字母是T的個數(shù),str數(shù)組里有2個,所以選擇A)。

63.C

64.D

65.D

66.A本題考查數(shù)組作為函數(shù)形參與實參的使用。題目給出的程序分為兩個部分,一個是函數(shù)func,該函數(shù)有兩個形參,一個為整型的指針a,一個為整型的數(shù)組b[],這里的b只是一個形參數(shù)組名,與main函數(shù)中的數(shù)組b沒有關系。為了區(qū)別,將func函數(shù)中的數(shù)組b用b’表示。func函數(shù)實現(xiàn)的功能是將指針a所指向的整型值*a與6相加,并將結果放入數(shù)組b’[0]處。main函數(shù)首先對整型數(shù)據a和數(shù)組b進行初始化,初始化后a的值為0,數(shù)組b中第一個值b[0]=3。初始化結束后,對函數(shù)func進行調用。應當注意,調用函數(shù)func時,是將數(shù)組b的數(shù)組名作為函數(shù)的實參。這樣調用的結果就是沒有把數(shù)組元素的值傳遞給形參數(shù)組,而是把實參數(shù)組的起始地址傳遞給形參,b和b’共占有同一段內存,這樣形參數(shù)組中的值發(fā)生變化也將導致實參數(shù)組中的值發(fā)生變化。題目中雖然main函數(shù)初始化使得b[0]=3,但是在調用func函數(shù)的過程中,作為該函數(shù)形參的數(shù)組b’有b’[0]=*a+6=6,故main函數(shù)中的實參數(shù)組b[0]值也發(fā)生改變,變?yōu)?。

67.A

68.A選項中可以在聲明變量的同時為data2賦值,但是“data2=(2,6);”應寫作

“d2={2,61;’',因此選擇A)。

69.D

70.A在C語言中函數(shù)不能嵌套定義,所以選擇A)。

71.D在三目運算符中,優(yōu)先級相同,按從右到左的結合性計算,a<b?a:(c<d?a

溫馨提示

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

評論

0/150

提交評論