2021年內蒙古自治區(qū)烏海市全國計算機等級考試C語言程序設計測試卷(含答案)_第1頁
2021年內蒙古自治區(qū)烏海市全國計算機等級考試C語言程序設計測試卷(含答案)_第2頁
2021年內蒙古自治區(qū)烏海市全國計算機等級考試C語言程序設計測試卷(含答案)_第3頁
2021年內蒙古自治區(qū)烏海市全國計算機等級考試C語言程序設計測試卷(含答案)_第4頁
2021年內蒙古自治區(qū)烏海市全國計算機等級考試C語言程序設計測試卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年內蒙古自治區(qū)烏海市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序

#include<stdio.h>

intf(intx);

main()

{intn=1,m;

m=f(f(f(n)));printf(”%d\n”,m);

}

intf(intx)

{returnx*2;}

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

2.如果以鏈表作為棧的存儲結構,則入棧操作時()。

A.必須判別棧是否滿B.必須判別棧是否為空C.必須判別棧元素類型D.可不做任何判斷

3.用鄰接矩陣A表示有向圖G的存儲結構,則有向圖G中頂點i的出度為()。

A.第i行非0元素的個數(shù)之和B.第i列非0元素的個數(shù)之和C.第i行0元素的個數(shù)之和D.第i列0元素的個數(shù)之和

4.輸入序列為ABC,輸出為CBA時,經(jīng)過的棧操作為()。

A.push,pop,push,pop,push,pop

B.push,push,push,pop,pop,pop

C.push,push,pop,pop,push,pop

D.push,pop,push,push,pop,pop

5.有以下程序:

程序運行后的輸出結果是()。A.34B.55C.10D.18

6.

7.為了避免在嵌套的條件語句ifelse中產(chǎn)生二義性,C語言規(guī)定,else子句總是與()配對。

A.縮排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if

8.有以下程序:main(){chara[]={‘a(chǎn)',‘b',‘c',‘d',‘e',‘f',‘g',‘h',‘\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\n",i,j);}程序運行后的輸出結果是A.9,9B.8,9C.1,8D.9,8

9.執(zhí)行以下程序后,a,b的值分別為main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

10.在下列關系運算中,不改變關系表中的屬性個數(shù)但能減少元組個數(shù)的是A.并B.交C.投影D.笛卡兒乘積

11.設有定義語句

則以下敘述正確的是().

A.f是指向函數(shù)的指針變量,該函數(shù)具有_個int類型的形參

B.f是基類型為int的指針變量

C.f是指向int類型一維數(shù)組的指針變量

D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址

12.以下程序的運行結果是()。#include<stdio.h>main(){st,uctdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

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

13.需求分析階段的任務是確定()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能

14.運行下列程序,若從鍵盤輸入字符“a”,則輸出結果是()。

charc;

c=getchar;

if(c>=a&&c<=g)c=c+4:

elseif(c>=9&&c<=2)c=c-21:

elseprintf("inputerror!\n");

putchar(c);

A.fB.tC.eD.d

15.C語言中標準庫函數(shù)fputs(str,fp)的功能是()。

A.從str指向的文件中讀一個字符串存入fp指向的內存

B.把str所指的字符串輸出到fp所指的文件中

C.從fp指向的文件中讀一個字符串存入str指向的內存

D.把fp指向的內存中的一個字符串輸出到str指向的文件

16.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。

A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:

17.若有"doublea;",則正確的輸入語句是()。

A.scanf("%1f",a);

B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

18.以下選項中,合法的一組C語苦數(shù)值常量是()。

A.28.5e-3-0xf

B.12OXa234.5

C.1774c1.5Oabc

D.0x8A10,0003.e5

19.有以下程序:#include<stdio.h>main(){intx=10,y=11,z=12;if(y<z)x=y;y=z;z=x;printf(“x=%dy=%dz=%d\n”,x,y,z);}程序運行后的輸出結果是()。

A.x=11y=12z=11

B.x=10y=10z=10

C.x=11y=11z=10

D.x=10y=10z=12

20.

二、2.填空題(20題)21.以下程序運行后的輸出結果是【】。

main()

{chara[]="Language",b[]="Pragrame";

char*p1,*p2;intk;

p1=a;p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k))

printf("%c",*(p1+k));

}

22.在最壞情況下,冒泡排序所需要的比較次數(shù)為【】。

23.設有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

24.下面能正確進行字符串賦值操作的是

25.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。

26.對一組記錄{54,38,96,23,15,72,60,45,83}進行直接插入排序時,當插入第5個記錄到有序表時,尋找插入位置需比較【】次。

27.設有以下定義和語句,則*(*(p+2)+1)的值【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

28.有以下語句段

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>

n1=10

n2=20

29.下面程序的功能是輸出數(shù)組s中最大元素的下標,請?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);}

30.設y是int型,請寫出y為奇數(shù)的關系表達式【】。

31.以下程序運行后的輸出結果是______。

inta=5;

fun(intB)

{staticinta=10;

a+=b++;

printf("%d",A);

}

main()

{intc=20;

fun(C),

a+=C++;

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

}

32.下面函數(shù)用來求出兩個整數(shù)之和,并通過形參傳回兩數(shù)相加之和值。請?zhí)羁铡?/p>

intadd(intx,inty,【】,)

{【】=x+y;}

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

main()

{inti,a[10];

a[0]=a[1]=1;

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

a[i]=a[i-2]+a[i-1];

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

{if(i%2==0)printf("\n");

printf("%d",a[i]);

}

}

34.執(zhí)行以下for語句后,變量i的值是【】。

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

35.軟件測試的方法有動態(tài)測試、靜態(tài)測試和【】13種。

36.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

37.在關系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個二維表稱為【】。

38.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結束本次循環(huán),然后進行循環(huán)的條件判定。

39.表達式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

三、1.選擇題(20題)41.以下程序運行后,輸出結果是#definePT5.5#defineS(x)PT*x*x#include<stdio.h>main(){inta=1,b=2;printf("%4.1f\n",s(a+b));}

A.49.5B.9.5C.22D.45.0

42.有以下程序:#include<stdio.h>ihtfun(ihtn,int*p){intf1,f2;if(n==1||,n==2)*p=1;else{fun(n-1,&f1);fun(n-2,&f2);*p=f1+f2;}}main(){ints;fun(3,&s);printf("%d\n",s);}程序的運行結果是______。

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

43.下列正確的變量聲明是()

A.intm;n;k;

B.unsignedintm,n,k;

C.doubleintm,n,k;

D.intm,n,k

44.下列選項中非法的表達式是________。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

45.有以下程序:main(){chara,b,c,*d;a='\';b='\xbc';c='\0xab';d="\017";printf("%c%c%c\n",a,b,c,*d);}編譯時出現(xiàn)錯誤,以下敘述中正確的是()。

A.程序中只有“a='\';”語句不正確

B.“b='\xbc';”語句不正確

C.“d="\0127";”語句不正確

D.“a='\';”和“c='\0xab';”語句都不正確

46.以下程序輸出的結果為______。main(){char*dlpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char*p;inti;p=alpha;for(i=0;i<4;iff)printf("%s",p[i])}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

47.設變量x和y均已正確定義并賦值,以下if語句中,在編譯時將產(chǎn)生錯誤信息的是()。

A.if(x++);

B.if(x>y&&y!=0);

C.if(x>y)x--elsey++;

D.if(y<0){;}elsex++;

48.設有定義下列:inta=1,b=2,c=3,d=4,m=2,n=2;則表達式(m=a>b)&&(n=c>d)運算后,n的值是()。

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

49.有下列程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4;n+=2;k--;break;}printf("%d",n);}while(k>0&&n<5);}程序運行后的輸出結果是()。

A.235B.235C.2356D.2356

50.執(zhí)行下列語句的結果為______。i=3;printf("%d,",++i);printf("%d",i++);

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

51.設有變量說明int(*ptr[m]);其中的標識符ptr是()。

A.m個指向整型變量的指針

B.指向m個整型變量的函數(shù)指針

C.一個指向具有m個整型元素的一維數(shù)組的指針

D.具有m個指針元素的一維指數(shù)組,每個元素都只能指向整型變量

52.以下程序運行后的輸出結果是______。main(){inta=1,b=2,c=3;if(c=a)printf("%d\n",c);elseprintf("%d\n",b);}

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

53.以下選項中,不能作為合法常量的是

A.1.234e04B.1.234e0.4C.1.23E+4D.1.234e0

54.在下列選項中,______不是一個算法一般應該具有的基本特征。

A.確定性B.可行性C.無窮性D.擁有足夠的情報

55.一個C語言的源程序中,______。

A.必須有一個主函數(shù)B.可以有多個主函數(shù)C.必須有主函數(shù)和其他函數(shù)D.可以沒有主函數(shù)

56.有以下程序main(){chars[]="Yse\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運行后的輸出結果是(選項D中的第一行是空行)

A.n/NoYes/NoB./NoYesC.n/Noyes/NoD./NoYes

57.下列程序輸出的結果是()。

main()

{inta;

a=-4+4*5-6;printf("d",a);

a=4+4%5-6;printf("%d",a);

a=-3+4%6/5;printf("%d",a);

a=(7+6)%5/2;printf("%d",a);

}

A.102-31B.10-221C.11-221D.10221

58.以下程序運行后的輸出結果是______。main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}

A.1000B.10010C.110D.10100

59.若有定義inta[9],*p=a;則p+5表示

A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5

60.以下描述中正確的是()。

A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內不能使用復合語句

B.do-while循環(huán)由do開始,用while結束,在while(表達式.后面不能寫分號

C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進行判斷

D.do-while循環(huán)中,根據(jù)情況可以省略while

四、選擇題(20題)61.一名教師可講授多門課程,一門課程可由多名教師講授。則實體教師和課程間的聯(lián)系是()。

A.1:l聯(lián)系B.1:m聯(lián)系C.m:l聯(lián)系D.m:n聯(lián)系

62.下列關于棧的敘述中,正確的是()。

A.棧底元素一定是最后入棧的元素B.棧操作遵循先進后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對

63.有如下程序

#include"stdio.h"

fun(inta,intb)

{ints;

s=a*(b/4);

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

main()

{inta=16,b=10;

fun(a,b);

}

該程序的輸出結果是

A.16B.32

C.40D.80

64.有如下程序段

voidfun(int*a,int*b)

{int*k;

k=a;a=b;b=k;

}

main()

{inta=3,b=6,*x=&a,*y=&b;

fun(x,y);

printf("%d%d",a,b);

}

程序運行后輸出的結果是A.A.63

B.36

C.編譯出錯

D.00

65.下面程序的輸出結果是()。

#inclde<stdio.h>

#defineSUB(X,Y)(X)*Y

main()

{inta=3,b=4;

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

}

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

66.設有以下函數(shù):

voidfun(intn,char}s){……}

則下面對函數(shù)指針的定義和賦值均正確的是()。

A.void(*pf)(int,char);pf=&fun;

B.void+pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char*);pf=fun;

67.以下程序中函數(shù)f的功能是:當na9為1時,進行由小到大排序;當fla9為oN。進行由大到小排序。程序運行后的輸出結果是()

68.數(shù)據(jù)庫關系模型中可以有三類完整性約束,下列選項中不屬于三類完整性約束的是()。

A.實體完整性規(guī)則B.參照完整性規(guī)則C.對象完整性規(guī)則D.用戶自定義完整性規(guī)則

69.

70.已定義c為字符型常量,則下列語句中正確的是()。

A)c=′97′B)c="97"

C)c=97D)c="a"

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

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

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

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

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

72.

73.

74.以下符合c語言語法的實型常量是()。

A.8E一2B.3)14)159EC.E14D.2)2E0)5

75.

76.

77.若有以下程序段:

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

A.16B.8C.4D.2

78.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

79.有三個關系R、S和T如下:

則由關系R和S得到關系T的操作是()。

A.自然連接B.交C.投影D.并

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將str所指字符串中的字母轉換為按字母序列的后續(xù)字母(但Z轉化為A,z轉化為a),其他字符不變。

請修改函數(shù)proc()中的錯誤,使它能得出正確的結果。

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

試題程序:

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

參考答案

1.D解析:本題考查函數(shù)返回值作參數(shù),最初n=1,f(n)=f(1)=2,將f(n)的結果代入第二個f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

2.D

3.A

4.B

5.D題干中,函數(shù)fun的功能是通過遞歸,將數(shù)組a中下標為0~n-1位置的元素累加,作為函數(shù)返回值返回。main函數(shù)調用fun時,傳入的a+2作為數(shù)組參數(shù),傳入n的值是4,所以函數(shù)返回值是元素a[2]、a[3]、a[4]、a[5]的和,程序輸出18。本題答案為D選項。

6.D

7.B解析:本題考查ifelse語句。C語言規(guī)定,else總是與它前面的最近的if配對。

8.D解析:sizeof(\u3000)函數(shù)返回字符串所占字節(jié)數(shù),strlen函數(shù)返回字符串的長度,其中'\\0'是一個轉義字符,

9.C解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;聲明整型變量a,b,k,m和指針p1,p2,并分別將4和6賦給k和m,將k和m的地址賦給P1和p2;a=p1==&m;等價于a=(p1==&m);將p1是否等于地址m的值(0)賦給變量a,b=(*p1)/(*p2)+7;該句的含義是將后面表達式的的值7賦給變量b。

10.B并運算的含義是:假設有一個“在校學生信息表”,它包括這樣一些字段:學號、姓名、性別、出生日期、籍貫、聯(lián)系電話,這個表的關系模式可以表示為:校學生信息表(學號,姓名,性別,出生日期,籍貫,聯(lián)系電話)。還有一個“新生信息表(學號,姓名,性別,出生日期,籍貫,聯(lián)系電話)”。若要將9月份進校的新生信息加入到“在校學生信息表”中,這樣進行的就是并運算。并運算不會改變表的字段(又叫屬性)個數(shù),但是會增加記錄(又叫元組)個數(shù)。交運算的含義是:兩個表(要求結構要一模一樣)進行交運算取兩個表中相同的記錄構成一個新表,交運算不會改變表的字段個數(shù),但是一般會減少記錄個數(shù)。投影運算的含義是:從在“校學生信息表(學號,姓名,性別,出生日期,籍貫,聯(lián)系電話)”中選取學生的“姓名”和“聯(lián)系電話”這兩個字段,可以構成一個“學生聯(lián)系表(姓名,聯(lián)系電話)”,這就是一個投影運算,所以投影運算一般會減少字段(又叫屬性)的個數(shù)。笛卡兒乘積又叫稱乘運算,設有n元關系R和m元關系s,他們分別有P、q個元組,則關系R和關系s的笛卡兒積表示為R×S,該關系是一個n+m元關系,元組個數(shù)是PXq。因此本題的正確答案是B。\r\n

11.A

12.A解析:結構體變量的長度是其內部成員總長度之和,在本題中,structdate中包含year,month,day三個整型變量。通常一個整型變量占2個字節(jié),因此,用sizeof求得該結構體變量的長度為6個字節(jié)。

13.D解析:結構化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書

評析,需求分析是軟件定義時期的最后一個階段,它的基本任務就是詳細調查現(xiàn)實世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎上確定新系統(tǒng)的功能.選項A)軟件開發(fā)方法是在總體設計階段完成的任務;選項B)軟件開發(fā)工具是在實現(xiàn)階段需完成的任務:選項C)軟件開發(fā)費用是在可行性研究階段需完成的任務。

14.C

\ngetchar函數(shù)是讀取鍵盤的輸入函數(shù),本題中輸入字母“a”,則c=a,判斷if條件,發(fā)現(xiàn)a>=a&&a<=g成立,則執(zhí)行下列語句:C=C+4,C得到的字符的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符。

15.B函數(shù)fputs(str,fp)的功能是把str所指的字符串輸出到fp所指的文件中。故本題答案為B選項。

16.DD選項中將字符串常量…aa賦給字符變量a是錯誤的。

17.D解析:函數(shù)scanf()的調用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。本題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。

18.B

19.Aif條件為真,執(zhí)行“x=y;”,此時x=11,y=11,z=12;再執(zhí)行“y=z;z=x;”,此時y=12,z=11,即x=11,y=12,z=11。故本題答案為A選項。

20.B

21.gaegae解析:主函數(shù)中定義了字符數(shù)組a和b,其初值分別為Language和Programe,然后定義了兩個指針變量p1和p2,并讓它們指向a和b。通過分析可知下面的for循環(huán)中,每循環(huán)一次就將p1+k和p2+k所指向的字符進行比較,如果相等,輸出該字符,循環(huán)共執(zhí)行8次,顯然Language和Programe中只有字符gae相等,所以最后轄出為gae。

22.n(n-1)/2n(n-1)/2解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2。

23.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結束標識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

24.C

25.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算,這種情況稱為“上溢”。

26.11解析:直接插入排序是在已排好序的序列中用順序查找法查找插入位置。第5個記錄是15,15和23比較,就知道15應放在原23放的位置,23及其以后的記錄后移。

27.6060解析:*(*(p+2)+1)相當于訪問的是a[2][1]的值。*(p[2]+1)、p[2][1]以及(*(p+2))[1]表達的含義都是a[2][1]的值。

28.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函數(shù)有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù),其中格式控制參數(shù)由兩種成分組成:格式說明和普通字符,普通字符將被簡單地復制顯示,格式說明項將引起一個輸出參數(shù)項的轉換與顯示,它是由“%”引出并以一個類型描述符結束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數(shù),所以格式說明項為%d,也可以在%與d之間加上域寬,另外還要在每行輸出結束時加轉義字符\\n進行換行。所以,應填寫n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。

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

30.y%2==1y%2==1解析:由關系運算符組成的表達式稱為關系表達式。判斷2除y的余數(shù)是否為1,即可判斷y是否為奇數(shù)。

31.30253025解析:本題考核的知識點是變量的存儲屬性和算術運算的應用。本題涉及了自動變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個外部變量a,它是一個全局變量,即作用域是從定義的位置開始到本文件的結束;靜態(tài)變量的存儲空間在程序的整個運行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個一個靜態(tài)變量a,此靜態(tài)變量a是個靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動進行的,auto是自動變量的存儲類別標識符,如果省略auto,系統(tǒng)隱含認為此變量為auto,本題中main()中intc=20定義了一個自動變量c,此自動變量c是個靜態(tài)的局部變量.算術運算中a+=b++相當于a=a+b,b=b+1.所以,在第一個ptine('%d',a)中a=a+b=10+20=30,第二個printf('%d',a)中a=a+c=5+20=25,即輸出3025。

32.int*p*p或p[0]int*p\r\n*p或p[0]

33.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)組中前面兩項的和賦值給數(shù)組當前元素,得到a的值應為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個的形式輸出。

34.7

35.正確性測試正確性測試

36.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

37.關系或一個關系關系或一個關系解析:在關系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,而一個二維表就是一個關系。

38.continuecontinue解析:continue語句只是結束本次循環(huán),然后進行循環(huán)的條件判定。break語句是終止整個循環(huán)的執(zhí)行,不再進行條件判定。

39.整型整型解析:上面的表達式中,通過強制類型轉換把最后參與運算的數(shù)據(jù)都轉換成了int型,所以最后得到的結果也是int類型。

40.99解析:本題要輸出的結果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個字符,\'\\n\'是1個字符,'012'又是3個字符,最后的\'\\1\'和\'\\\\\'都是1個字符。所以最終字符串的長度應該是3+1+3+1+1=9。故本題應該填9。

41.A

42.A解析:本題考查的重點是理解遞歸函數(shù)。fun()為遞歸函數(shù),遞歸結束條件時n為1或2,從而fun(3,&s)得fun(2,&s)+fun(1,&s)=1+1=2,因此選項A是正確的。

43.B

44.D解析:賦值表達式的左側不能為常量或表達式,所以D是非法的表達式。

45.D解析:語句a=\'\\\'是錯誤的,因為\\是轉義字符,應該用\\\\來表示,語句“B=\'\\xbc\';”是正確的,它是將一個用十六進制表示的轉義字符賦給一個字符型變量;語句“c=\\0xab;”是錯誤的,反斜線后的十六進制只可由小寫x開頭,不能用0x。語句“d='\\0127';”是正確的,可以給字符型指針變量賦一個字符串常量,其作用是讓該指針變量指向該字符串常量。所以,D選項為所選。

46.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個字符串。

47.C

48.C解析:在邏輯與&&運算中,如果第一個操作數(shù)為假,則結果是假,后面的操作數(shù)不參與運算,本題中因為第一個操作數(shù)(m=a>b)為假,所以第二個操作數(shù)(n=c>d)不參加運算,因此n的值不變。

49.B解析:因為變量的初始值分別為k=5,n=0,所以程序第1次進入循環(huán)時,執(zhí)行default語句,輸出0,k減1:這時n=0,k=4,程序進行第2次循環(huán),執(zhí)行case4:這個分支,結果是n=2,k=3,打印出2;這時n=2,k=3,程序進行第3次循環(huán),執(zhí)行case3:這個分支,結果是n=3,k=2,打印出3;這時n=3,k=2,程序然后進行第4次循環(huán),執(zhí)行case2:case4:這個分支,結果是n=5,k=1,打印出5,這時因為n=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運行結束。所以在屏幕上打印出的結果是0235。

50.D

51.C解析:指針數(shù)組是指數(shù)組中的元素是指針類型的數(shù)據(jù),本題中的數(shù)組元素指針指向的是整型數(shù)據(jù)。注意:通過帶下標的指針變量引用一維數(shù)組元素。

52.B解析:根據(jù)if條件,語句c=a的值為1,因此輸出c值為3。

53.B解析:C語言的語法規(guī)定,字母e(E)之前必須有數(shù)字,且e(E)后面的指數(shù)必須是整數(shù),而選項B)中,e(E)后面的指數(shù)是小數(shù),所以不合法。

54.C解析:作為一個算法,一般應具有以下幾個基本特征。①可行性②確定性③有窮性④擁有足夠的情報

55.A

56.B解析:主函數(shù)中定義了一個字符數(shù)組,并賦初值,一個字符串指針變量ps并讓它指向s。程序中p+4的地址為數(shù)組第5個元素的地址,而調用put(str_adr)函數(shù)時,將從sb_adr這一地址開始,依次輸出存儲單元中的字符,遇到第一個“\\0”時結束輸出,并自動輸出一個換行符。所以put(p+4)將輸出n/No,put(s)將從a第一個元素開始輸出到第3個元素結束(因為執(zhí)行*(p+4)=0語句后s中的第5個元素的值為0,而s中的第4個元素為“\\”,puts將遇到“\\0”,結束輸出),即輸出yes。

57.A解析:本題考查%和/運算符的使用。如果兩個數(shù)不能整除,只取結果的整數(shù)部分,小數(shù)部分全部舍去。運算符“%”要求兩個運算對象都為整型,其結果是整數(shù)除法的余數(shù)。表達式:a=-4+4*5-6=-4+20-6=10;表達式:a=4+4%5-6=4+4-6=2:表達式:a=-3+4%6/5=-3+0=-3:表達式:a=(7+6)%5/2=13%5/2=1。

58.B

59.B解析:本題考查了通過指針來引用一維數(shù)組元素的方法。題中*p=a;這一賦值語句是指針p指向了數(shù)組a的首地址,p+5是指針p向后移動了5個int類型的存儲單元,所以p+5指向了數(shù)組元素a[5]。

60.C解析:do-while語句的一般形式為:do循環(huán)體語句while(表達式);,其中循環(huán)體語句可以是復合型語句,但必須用花括號括起來。while后必須要有分號作為語句的結束,在do-while循環(huán)中,不可以省略while。

61.D因為一名教師可講授多門課程,而一門課程又能由多名教師講授,所以教師和課程之間是多對多的關系,可以表示為m:n,選擇D)。

62.B棧是先進后出,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。

63.B題目給出的程序分為兩個部分:主函數(shù)main和函數(shù)fun。main函數(shù)給出了整型變量a,b的初始值,并將整型變量a,b作為fun的實參。fun函數(shù)的功能是計算s的值并輸出。對于整型變量,運算符“/”的作用是求出兩個數(shù)除法所得商的整數(shù)部分。s=a*(b/4),a的初始值為16,b的初始值為10,b/4的結果為2,a*2得32。

64.B在本題中,程序首先定義了一個無返回值的函數(shù)fun,該函數(shù)帶有兩個整型的指針形參變量,在函數(shù)體中,首先定

溫馨提示

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

評論

0/150

提交評論