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

下載本文檔

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

文檔簡介

2021年陜西省渭南市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下關(guān)于typedef的敘述錯誤的是()。A.用tyFedef可以增加新類型

B.typedef只是將已存在的類型用一個新的名字來代表

C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名

D.用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性

2.

3.依次讀入數(shù)據(jù)元素序列{a,b,c,d,e,f,g}進棧,元素進?;虺鰲m樞蚴俏粗模铝行蛄兄?,不可能成為??諘r彈出的元素構(gòu)成序列的有()

A.{d,e,c,f,b,g,a}

B.{f,e,g,d,a,c,b}

C.{e,f,d,g,c,b,a}

D.{c,d,b,e,f,a,g}

4.第

3

已知:intc[3][4];則對數(shù)組元素引用正確的是

A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表達都錯誤

5.設(shè)變量已正確定義并賦值,下列表達式中正確的是()。

A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

6.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達式的值為11的是()。

A.*pt->yB.pt->xC.++pt->xD.(pt++)->x

7.若整型變量a、b、c、d中的值依次為2、2、3、4,則條件表達式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4

8.

9.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運行時輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。

A.w,youjing,o

B.welcome,you,jing,to

C.w,you,eeijing,u

D.w,xelcome,eeijing,u

10.用二進制來編碼字符串“abcdabaa”,需要能夠根據(jù)編碼,解碼回原來的字符串,最少需要()長的二進制字符串

A.12B.14C.18D.24

11.數(shù)據(jù)表A中有10000個元素,如果僅要求求出其中最大的10個元素,則采用()最節(jié)省時間。

A.堆排序B.希爾排序C.快速排序D.希爾排序

12.計算機算法指的是()。

A.計算方法B.排序方法C.解決問題的有限運算序列D.調(diào)度方法

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

A.在C語言中,可以使用動態(tài)內(nèi)存分配技術(shù)定義元素個數(shù)可變的數(shù)組

B.在c語言中,數(shù)組元素的個數(shù)可以不確定,允許隨機變動

C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致

D.在C語言中,定義一個數(shù)組后.就確定了它所容納的元素的個數(shù)

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

void*fun();

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

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

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

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

15.有以下程序:

程序運行后的輸出結(jié)果是()。A.4B.2C.3D.1

16.若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;則與上述程序段功能等價的賦值語句是()。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

17.有以下程序:#include<stdio,h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運行時輸入:a<回車>后,以下敘述正確的是()。

A.變量c1被賦予字符a,c2被賦予回車符

B.程序?qū)⒌却脩糨斎氲诙€字符

C.變量c1被賦予字符a,c2中仍是原有字符2

D.變量c1被賦予字符a,c2中將無確定值

18.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)

19.

20.下列對于軟件測試的描述中正確的是()。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運行結(jié)果正確

C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

二、2.填空題(20題)21.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型,請寫出fun函數(shù)的首部【】。要求形參名為b。

main()

{doubles[10][22];

intn;

fun(s);

}

22.有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結(jié)點b連接到結(jié)點a之后的語句是【】。

structnode

{chardata;

structnode*next;}a,b

23.派生類對基類繼承控制訪問有三種。派生類可以定義其基類中不具備的【】。

24.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intn,s;

printf("Enteranumber:");scanf("%d",&n);

printf("Output:");

do

{s=n%10;printf("%d",s);【】;

}while(n!=0);

printf("\n");

}

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

main()

{imti,sum;

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

sum+=i;

printf("%d",sum);

}

26.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)g,結(jié)果是______。

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

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=ii;i++)

switch(i/10)

{case0:m++;n++;break;

case10:n++;break;

default:k++;n++;

}

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

}

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

29.以下程序運行后輸入3,abcde<回車>,則輸出結(jié)果是【】。

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(S);

for(i=1;i<=n;i++)move(s,z);

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

}

30.若有如下程序:

voidsub()

{staticintx=6;

x/=2;printf("%d",x);}

main()

{intm;

for(m=0;m<=2;m++)sub();}

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

31.已知字母A的ASCⅡ碼為65。以下程序運行后的輸出結(jié)果是()。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

a='A'+'5'-'3';b=a+'6'-'2';

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

}

32.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

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

}

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

}

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

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

33.有以下程序段,且變量已正確定義和賦值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

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

請?zhí)羁?使下面程序段的功能與之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

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

34.以下程序運行后的輸出結(jié)果是______。

#include<strlng.h>

main()

{

charch[]="abc",x[3][4];inti;

for(i=0;i<3;i++)strcpy(x[i],ch);

for(i=0;i<3;i++)printf("%s",&x[i][i]);

printf("\n");

35.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。

36.【】是一種信息隱蔽技術(shù),目的在于將對象的使用者和對象的設(shè)計者分開。

37.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

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

if(s[i]!='c')

s[j]='\0';

puts(s);

}

38.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fo(i=0;str[i]!=【】;i++)

if(【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

39.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用【】對其中的圖形元素進行確切解釋。

40.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

三、1.選擇題(20題)41.有如下程序段:inta=14,b=15,x,charc='A';x=(a&&B)&&(c<'B');執(zhí)行該程序段后,x的值為()

A.1B.0C.FALSED.TRUE

42.下列選項中錯誤的說明語句是

A.chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};

B.chara[]={"toyou\0"};

C.chara[]="toyou\0";

D.chara[]=′toyou\0′;

43.有以下程序main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序運行后輸出結(jié)果是

A.44B.33C.34D.43

44.有以下函數(shù)定義:intfun(doublea,doubleB){returna*b;}若以下選項中所用變量都已正確定義并賦值,錯誤的函數(shù)調(diào)用是()。

A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(x,y)x,y);

D.fun(x,y);

45.下列的程序用來輸出兩個字符串前7個字符中對應(yīng)相等的字符及其位置號,程序空白處應(yīng)該填寫的是()。

#include<stdio.h>

main()

{chars1[]="chinese",s2[]="japnese";

inti;

for(i=0;sl1[i]!='\0'&&s2[i]!='\0';i++)

if(s1[i]==s2[i]&&i<7)

______,

}

A.putchar(s2[i]);putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

46.以下敘述中錯誤的是

A.gets函數(shù)用于從終端讀入字符串

B.getehar函數(shù)用于從磁盤文件讀入字符

C.fputs函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件

47.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()

48.若有下面的程序段:chars[]="china";char*p;p=s;則下列敘述正確的是

A.s和p完全相同

B.數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等

C.s數(shù)組長度和p所指向的字符串長度相等

D.*p與s[0]相等

49.有以下程序#definef(x)(x'x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}程序運行后的輸出結(jié)果是

A.64,28B.4,4C.4,3D.64,64

50.若在某函數(shù)內(nèi)部有定義:inta[3][4];則數(shù)組a中各元素()。

A.可在程序的運行階段得到初值0

B.可在程序的編譯階段得到初值0

C.不能得到確定的初值

D.可在程序的編譯或運行階段得到初值0

51.有以下的程序#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}程序執(zhí)行后,文件test.t中的內(nèi)容是()

A.hello,B.newworldhello,C.newworldD.hello,rld

52.在C語言中,合法的字符常量是()

A.'\084'B.'\x43'C.'ab'D.'\0'

53.算法的空間復(fù)雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間

54.假定當(dāng)前盤符下有兩個如下文本文件:

文件名a1.txta2.txt

內(nèi)容123#321#

則下面程序段執(zhí)行后的結(jié)果為

#include"stdio.h"

voidfc(FILE*p)

{charc;

while((c=fgetc(p))!=′#′)putchar(c);}

main()

{FILE*fp;

fp=fopen("a1.txt","r");

fc(fp);

fclose(fp);

fp=fopen("a2.txt","r");

fc(fp);

fclose(fp);

putchar('\n');}

A.123321B.123C.321D.以上答案都不正確

55.請選出以下程序的輸出結(jié)果_______。#include<stdio.h>sub(int*s,inty){staticintt=3,y=s[t];t-;}main(){inta[]={1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}

A.1234B.4321C.0D.4444

56.有下列函數(shù)定義:fun(floath){printf("%f,%f\n",h,h*h);}該函數(shù)的類型是()。

A.27B.6C.25D.30

57.若定義函數(shù)int*func(),則函數(shù)func的返回值為()。

A.一個實數(shù)B.一個指向整型變量的指針C.一個指向整型函數(shù)的指針D.一個整型函數(shù)的入口地址

58.在計算機中,算法是指()。

A.查詢方法B.加工方法C.解題方案的準(zhǔn)確而完整的描述D.排序方法

59.有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()。

A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ

60.若變量已正確定義,下列正確的程序段是()。

A.while(ch=getchar()=='\N')putchar(ch);

B.while((ch=getchar())=='\n')putchar(ch);

C.while((ch=getchar())!='\N')putchar(ch);

D.while((ch=getchar())!='\n')putchar(ch);

四、選擇題(20題)61.以下程序運行后的輸出結(jié)果是()。

A.2011B.99C.209D.1111

62.

63.有以下程序

#include<stdio.h>

main()

{intx=1,y=2,z=3;

if(x>y)

if(y<z)printf("%d",++z);

elseprintf("%d",++y);

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

}

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

A.A.331

B.41

C.2

D.1

64.已知字符'A'的ASCⅡ代碼值是65,字符變量c1的直是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。

A.A.A,BB.A,68C.65,66D.65,68

65.以下數(shù)組定義中錯誤的是()。

66.

67.

68.定義無符號整數(shù)類為UInt,下面可以作為類UInt實例化值的是()。

A.-369B.369C.0.369D.整數(shù)集合11,2,3,4,51

69.有兩個關(guān)系R和T如下:

則由關(guān)系R得到關(guān)系T的操作是()。A.選擇B.投影C.交D.并

70.

71.若變量均已正確定義并賦值,以下合法的c語言賦值語句是()。A.x---y=--5;B.x--n%2.5;C.x+n=i;D.x=5--4+1;

72.(5)下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)

A.對象

B.繼承

C.類

D.過程調(diào)用

73.有以下程序:

#include<stdio.h>

main()

{char*s="[2]34";intk=0,a=0;

whil(s[k+1]!=\0)

{k++;

if(k%2=o){a=a+(s[k]-0+1);continue;}

a=a+(s[k]-0);

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

}

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

A.k=6a=11B.k=3a=14C.k=4a=12D.k=5a=15

74.設(shè)x=015,則x=x^017的值是()。A.00001111B.11111101C.00000010D.11000000

75.

若變量e為char類型,能正確判斷出C為小寫字母的表達式是()。A.a<=c<=ZB.c>=a.(c<=Z)C.(a<=c)and(z>c)D.(c>=a)&&(c<=Z)

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

77.

78.

79.已定義以下函數(shù)

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,當(dāng)n為l0時,函數(shù)值應(yīng)為22.550361。f(x)函數(shù)定義如下:請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),用來求出數(shù)組中值最大的元素在數(shù)組中的下標(biāo)并將其存放在k所指向的存儲單元中。例如,輸入如下整數(shù):876675896101301401980431451777則輸出結(jié)果為6,980。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.A用typedef沒有增加新類型,所以選擇A)。

2.A

3.B

4.C

5.A運算符“%”的左右兩個操作數(shù)均應(yīng)為整數(shù),所以B選項與D選項錯誤。C選項中不能將“x+z”的值賦給表達式“y*5”,所以C選項錯誤。故本題答案為A選項。

6.C解析:要計算一個復(fù)雜的表達式時,首先要弄明白表達式中所有運算符的優(yōu)先級與結(jié)合性,本題中所涉及的運算符中,->的優(yōu)先級最高,*和++的優(yōu)先級相同,但其結(jié)合性為從右至左。所以選項A等價于*pt->y)也就是pt所指向的結(jié)構(gòu)體的成員指針變量y所指向的內(nèi)容。從前面的程序段不難看出,pt指向結(jié)構(gòu)體數(shù)組c的首地址,也就是指向它的第1個元素,在它的第1個元素中,指針變量y又被初始化為指向控型數(shù)組a的首地址,即指向數(shù)組a的第1個元素。故選項A中的表達式的值為a[0],也就是1。選項B中表達式的值就是c[0].x,即10。根據(jù)優(yōu)先級和結(jié)合性,選項C中的表達式等價于++(pt->x),由于是前綴++,所以整個表達式的值為pt->x的值加1,故為11。而選項D中,++是后綴形式,所以(pt++)的值還是pt的原值,即等于pt->x的值10。故應(yīng)該選擇C。

7.C本題考查三目運算符a<b?a:c<d?c:d也可寫成a<b?a:(c<d?c:d),所以根據(jù)優(yōu)先級,先算括號內(nèi)的,c小于d為真取C的值,再看a小于b為假,所以取C的值。

8.D

9.A題干中,定義一個二維字符數(shù)組v。然后通過for循環(huán),輸入4個字符串welcome、you、to、beijing,將其分別存放在v的4個元素中。數(shù)組v是存放4個字符串的二維數(shù)組;“**v”表示第1個字符串的第一個字符“w”;“*(v+1)”指向第2個字符串“you”;“v[3]+3”指向第4個字符串的第3個字符開始后的整個字符串“jing”;“*(v[2]+1)”表示第3個宇符串的第2個字符“o”。故本題答案為A選項。

10.B

11.B

12.C

13.D在C語言中,數(shù)組元素的個數(shù)是確定的,不允許隨機變動,數(shù)組定義好后,它所能容納的元素的個數(shù)也就確定了,并且同一個數(shù)組中所有元素都是同一類型。

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

15.D條件表達式形式:表達式1?表達式2:表達式3。當(dāng)表達式1的值為非零值時,整個表達式的值是表達式2的值;當(dāng)表達式1的值為零值時,整個表達式的值是表達式3的值。題干中的表達式是嵌套的條件表達式w﹤x?w:z﹤y?z:x,等價于w﹤x?w:(z﹤y?z:x)。由于w取值為4,x取值為3,所以w﹤x的值為零值,整個表達式的值為z﹤y?z:x,z取值為1,y取值為2,所以z﹤y的值為非零值,整個表達式的值為z的值1。本題答案為D選項。

16.B解析:本題考核的知識點是for循環(huán)次數(shù)的計算.本程序中for循環(huán)的次數(shù)為c-1+1共循環(huán)了c次,而每循環(huán)一次s的值加1,所以s的值為s+c.而最開始s的值為a,故4個選項中選項B符合題意.

17.A解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符,且只能接受一個字符(回車符也是一個字符)。故本題中變量c1被賦予字符a,c2被賦予回車符。

18.A本題考查邏輯與運算“&&”與邏輯或運算“||”。在選項A中,因為!a=0,所以關(guān)系表達式!a=1為0,又因為邏輯與運算符“&&”兩邊的表達式只要一個等于零,則整個表達式為零,所以選項A正確。在選項8中,關(guān)系表達式a<b為真,表達式(a<b)&&!C為假,而表達式(a<b)&&!||1為真,所以整個表達式的值為真。選項C中,a&&b的結(jié)果為真。在選項D中,a||(b+b)&&(C-a)的結(jié)果為真。

19.B

20.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。

21.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中為了表示函數(shù)調(diào)用“不帶回值”,可以用“void”定義函數(shù)為“無類型”(或稱“空類型”),這樣系統(tǒng)就保證不使函數(shù)帶回任何值。當(dāng)二維數(shù)組作為形參時,二維數(shù)組的第一維可以省略。

22.a.next=aba.next=ab解析:選項A)中,指針變量q保存的就是變量b的地址,選項B)中的p是指針變量,應(yīng)該是p->next=&b;在選項D)中,用*運算符取出結(jié)構(gòu)體變量,并且保存的就是b的地址。

23.數(shù)據(jù)和操作數(shù)據(jù)和操作

24.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。

25.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是Sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值.

26.-1-1解析:strcmp(s1,s2)函數(shù)的作用是:對字符數(shù)組s2和字符數(shù)組s1進行比較。如果s1<s2,則返回負(fù)數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。

27.132132解析:本題for循環(huán)語句的執(zhí)行過程為:

第一次循環(huán):i=9,9/10=0,執(zhí)行m++、n++得m=1、n=1、k=0;

第二次循環(huán):i=10,10/10=1,執(zhí)行k++、n++得m=1、n=2、k=1;

第三次循環(huán):i=11,11/10=1,執(zhí)行k++、n++得m=1、n=3、k=2;

即執(zhí)行完for循環(huán)后m=1、n=3、k=2。

28.1對多(或1:N)1對多(或1:N)

29.cdeabcdeab解析:本題move()函數(shù)的作用,是將形參s仕所指地址的連續(xù)n位循環(huán)右移1位,即讓str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函數(shù)中用了一個for循環(huán)調(diào)用move()函數(shù),共循環(huán)3次,所以數(shù)組s被循環(huán)右移了3位,故最后輸出的值為cdeab。

30.310

31.67G67G解析:根據(jù)題意,a=‘A’+‘5’-‘3’=65+2=67,b=67+4=71,71即為字母G的ASCⅡ碼值。程序要求按十進制形式輸出a,按字符形式輸出b,所以結(jié)果為67G。

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

33.k<=nk++k<=n,k++解析:本題要求將一個for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句'k++;'\ue009。

34.abcbccabcbcc解析:strcpy()函數(shù)有兩個字符指針參數(shù),功能是將第2個參數(shù)所指的字符串(包括字符串結(jié)束標(biāo)志\'\\0\')復(fù)制到第1個參數(shù)所指的內(nèi)存地址中.題目程序中使用?兩個for循環(huán),都是讓i從0遞增到2循環(huán)3次。第1個循環(huán)將字符數(shù)組ch中的字符串'abe'復(fù)制到;維數(shù)組x[3][4]的每1行,笫2個for循環(huán)每次輸出x[i][j]中的字符串,即三次分別輸出從x[0][0]、x[1][1]、x[2][2]開始的字符串的內(nèi)容。故三次分別輸出abc、bc、c,結(jié)果為abcbcc。

35.非線性結(jié)構(gòu)非線性結(jié)構(gòu)

36.封裝封裝解析:面向?qū)ο蠹夹g(shù)中包括以下幾個基本概念,即對象、類、方法、消息、繼承和封裝,其中封裝是一種信息隱蔽技術(shù),目的在于將對象的使用者對象的和設(shè)計者分開。

37.S[j++]=s[i]S[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當(dāng)前值;如果不相同,則將當(dāng)前值賦予數(shù)組指定位置,并通過j++將下標(biāo)加1,指向下一元素要存儲的位置。

38.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:

①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后—個字符;

②str[i]代表字符串str中的第i+1個字符;

③整型變量num的值是要記錄的單詞的個數(shù)。

C語言中規(guī)定字符串的最后一個字符是一個隱含的字符串結(jié)束符“\\0”,所以在題中第—個空中應(yīng)填寫“\\0”;題中第二個空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個空中應(yīng)當(dāng)填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數(shù)。

39.數(shù)據(jù)字典或DD數(shù)據(jù)字典或DD解析:數(shù)據(jù)流圖用來對系統(tǒng)的功能需求進行建模,它可以用少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。數(shù)據(jù)詞典(DataDictionary,DD)用于對數(shù)據(jù)流圖中出現(xiàn)的所有成分給出定義,它使數(shù)據(jù)流圖上的數(shù)據(jù)流名字、加工名字和數(shù)據(jù)存儲名字具有確切的解釋。

40.11解析:字符空格的ASCII碼不為0,所以本題中表達式\ue008!c\ue009的值為0,b=0&&1的結(jié)果顯然為0。

41.A解析:a=14,b=15,第一個&&兩側(cè)均為非零值。c='A',表達式c<'B'的值為真即1,第二個&&兩側(cè)也均為非零值。表達式(a&&b)&&(c<'B')的值為1,賦值給變量x。

42.D解析:通過賦初值的方式給一維數(shù)組賦字符串,可以用給一般數(shù)組賦初值的相同方式給一維字符數(shù)組賦字符串,也可以在賦值時直接賦字符串常量。選項B)和C)后面的'\\0'是多余的,在C語言中,系統(tǒng)會自動在字符串的結(jié)尾處加上一個字符'\\0'作為串的結(jié)束標(biāo)記。

43.C解析:本題考查的是字符數(shù)組的初始化。字符數(shù)組即可以用{初始化列裹}來初始化,也可以用一個字符串常量來初始化。但字符串常量系統(tǒng)會自動為其添加結(jié)束標(biāo)記'\\0',故比實際長度要多一位,所以本題輸出為34,應(yīng)該選擇C。

44.C

45.C解析:putchar(s)的功能是把字符s輸出到標(biāo)準(zhǔn)輸出設(shè)備:puts(s1)是把s1指向的字符串輸出到標(biāo)準(zhǔn)輸出設(shè)備。

46.B

47.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時,讀入才開始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個字符,并把它作為函數(shù)值返回。

48.D解析:字符型指針變量p中存放的是'china'的首地址,所以選項A)和B)錯誤。e數(shù)組長度為6,而p所指向的字符串長度為5,二者不相等,排除選項C)。

49.C解析:本題考查的是帶參數(shù)的宏。宏替換與函數(shù)調(diào)用不同,前者是字面上的,在編譯期間完成,后者是內(nèi)容上的,在運行期間才進行。題目中第1條要替換的語句i1=(8)/f(4);展開后是i1=(8*)/(4*4);結(jié)果使i1=4.而第2條語句i2=f(4+4)/f(2+2);展開后為i2=(4+4*4+4)/(2+2*2+2);結(jié)果使i2=24/8=3。故應(yīng)該選擇C。

50.C解析:在函數(shù)內(nèi)部定義的存儲類型為auto的變量或數(shù)組,如果沒有進行初始化,就不能得到確定值。

51.A

52.B

53.D解析:算法的復(fù)雜度主要包括算法的時間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

54.A解析:本題的功能是順序的讀兩個文本文件,依次輸出。當(dāng)打開文件時出現(xiàn)錯誤,fopen函數(shù)將返回NULL。

55.C解析:x作為函數(shù)sub()的實參時,函數(shù)對x值的改變沒有返回主函數(shù),并不能使得x的值變化,所以在打印時,x的值是始終不變的,即為0。

56.A解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)reverse將數(shù)組b進行了逆置,此時的b[10]={10,9,8,7,6,5,4,3,2,1},后面for語句的功能是將b中的前3個數(shù)累加,將結(jié)果放在s中,最后將s輸出,結(jié)果s=10+9+8=27。

57.B解析:本題考考查的是指針函數(shù)。指針函數(shù)定義的基本格式為:類型說明符*函數(shù)名()。其中,“類型說明符”表示返回的指針。值所指向的數(shù)據(jù)類型。

58.CC。【解析】計算機算法是指解題方案的準(zhǔn)確而完整的描述,它的基本特征分別是:可行性、確定性、有窮性和擁有足夠的情報。

59.B對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。在遍歷左、右子樹時,注意依舊按照“左子樹一根結(jié)點一右子樹”的順序。本題的遍歷順序是這樣的:①首先訪問左予樹:BDEY;②在左子樹BDEY中,也按中序遍歷,先訪問左子樹DY;在左子樹DY中,也按中序遍歷,先訪問左子樹,左子樹沒有,則訪問根結(jié)點D,然后訪問右子樹Y;③接著訪問根B,再訪問右子樹E;④訪問左子樹BDEY后,接著訪問根結(jié)點A,接著訪問右子樹CFXZ;⑤右子樹CFXZ的訪問順序同理可得:FCZX。

60.D解析:本題考查兩個知識點:①C語言用'\\n'這個字符常量表示換行;②函數(shù)getchar()的

溫馨提示

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

評論

0/150

提交評論