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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.以下程序的主函數(shù)中調用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項中錯誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])

B.doublefun(double*a)

C.doublefun(doublea[])

D.doublefun(doublea)

2.對于C語言的函數(shù),下列敘述中正確的是()。

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

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

C.函數(shù)的定義和調用都不能嵌套

D.函數(shù)的定義和調用都可以嵌套

3.以下敘述中錯誤的是______。A.C程序必須由—個或—個以上的函數(shù)組成

B.函數(shù)調用可以作為—個獨立的語句存在

C.若函數(shù)有返回值,必須通過return語句返回

D.函數(shù)形參的值也可以傳回給對應的實參

4.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。

A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭

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

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

6.在一個元素個數(shù)為N的數(shù)組里,找到升序排在N/5位置的元素的最優(yōu)算法時間復雜度是()A.O(n)B.O(nlogn)C.O(n(logn)2)D.O(n3/2)

7.有以下程序:#include<stdio.h>#include<math.h>main(){ints;floatn,t,pai;t=1,pai=0,n=1.0,s=1;while(fabs(t)>1.0e-6){pai+=t;n+=2;s=-s;t=s/n;}printf(“total=%f\n”,pai);}程序運行所計算的是()。

A.1-1/2!+1/3!-1/5!+1/7!-…

B.1+1/3+1/5+1/7+1/9-…

C.1+1/2+1/3+1/4+1/5-…

D.1-1/3+1/5-1/7+1/9-…

8.有以下程序:

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

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

9.設有說明:charw;intx;f1oaty;doublez;則表達式w*x+z-y值的數(shù)據(jù)類型為()。

A.floatB.charC.intD.double

10.有以下程序:#include<stdio.h>main(){inta=10,b=11;if(++a==b++) printf(“T”);else printf(“F”);printf(“a=%d,b=%d\n”,a,b);}程序運行后的輸出結果是()。

A.Fa=11,b=11B.Fa=10,b=12C.Ta=10,b=11D.Ta=11,b=12

11.在C語言中,char型數(shù)據(jù)在內存中的存儲形式是()。

A.補碼B.反碼C.原碼D.ASCII碼

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

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

13.在線索化樹中,每個結點必須設置一個標志來說明它的左、右鏈指向的是樹結構信息,還是線索化信息,若0標識樹結構信息,1標識線索,對應葉結點的左右鏈域,應標識為()。

A.00B.01C.10D.11

14.如下程序的時間復雜度為(其中m>1,e>0)A.logmB.m的平方C.m的1/2方D.m的1/3方

15.

16.以下不正確的定義語句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5.3]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′\xa′,′\x8′};

17.若有以下的說明和語句,則在執(zhí)行for語句后,’(*(pt+1)+2)表示的數(shù)組元素是()。intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

18.結構化程序所要求的基本結構不包括()。

A.順序結構B.GOT0跳轉C.選擇(分支)結構D.重復(循環(huán))結構

19.軟件設計包括軟件的結構、數(shù)據(jù)接口和過程設計,其中軟件的過程設計是指()

A.模塊間的關系B.系統(tǒng)結構部件轉換成軟件的過程描述C.軟件層次結構D.軟件開發(fā)過程

20.有以下語句:intb;charc[10];,則正確的輸入語句是______。

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

二、2.填空題(20題)21.若輸入字符串:abcde↓,則以下while循環(huán)體將執(zhí)行【】次。

while((ch=getchar())=='e')printf("*");

22.寫出下列程序的輸出結果______。

main()

{intn=0;

while(n++<=1);

printf("%d,",n);

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

}

23.下面程序的功能是:計算1~10之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta,b,c,i;

a=c=0;

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

{a+=i;

【】;

c+=b;}

printf("偶數(shù)之和=%d\n",a);

printf("奇數(shù)之和=%d\n",c-11);}

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

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

}

25.以下程序的輸出結果是______。

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

}

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

26.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使相同的數(shù)只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)fun返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內容應該是:2345678910。請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

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

}

27.棧中允許進行插入和刪除的一端叫做______。

28.下列程序中的函數(shù)stropy2()實現(xiàn)字符串兩次復制,即將t所指字符串復制兩次到s所指內存空間中,合并形成一個新字符串。例如,若t所指字符串為:efgh,調用strcpy2后,s所指字符串為:efghefgh。請?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

voidstrcpy2(char*s,char*t)

{char*p=t;

while(*s++=*t++);

s=【】;

while(【】=*p++);

}

main()

{charstr1[100]="abed",str2[]="efgh";

strcpy2(str1,str2);printf("%s\n",str1);

}

29.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%x\n",p);

printf("%x\",p+9);

}

30.下列程序段的輸出結果是______。

intn='c':

switch(n++)

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

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

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

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

}

31.以下程序的定義語句中,x[1]的初值是[9],程序運行后輸出的內容是[10]。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;

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

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");

}

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

#include<stdio.h>

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

33.下面程序用來輸出結構體變量a所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>

main()

{structstu

{charx[20];floaty;}a;

printf("asize:%d\n",sizeof(【】));

}

34.下列程序執(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);

35.診斷和改正程序中錯誤的工作通常稱為【】。

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

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

37.以下程序的功能是從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

38.以下程序運行后的輸出結果是()。

main()

{charc;intn=100;

loatf=10;doublex;

x=f*=n/=(c=50);

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

}

39.若從鍵盤輸入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);

}

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

main()

{

charstr1[]="Howdoyoudo",*pl=str1;

strcpy(str1+strlen(str1)/2,"esshe");

intf("%s\n",p1);

三、1.選擇題(20題)41.有以下程序:#include<stdio,h>main(){intm=0256,n=256;printf("%o%o\n",m,n);程序運行后的輸出結果是()。

A.02560400B.0256256C.256400D.400400

42.下列有關數(shù)據(jù)庫的描述,正確的是______。

A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關系C.數(shù)據(jù)庫是一個結構化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件

43.下列關于標識符的說法中錯誤的是

A.合法的標識符是由字母、數(shù)字和下劃線組成

B.C語言的標識符中,大寫字母和小寫字母被認為是兩個不同的字符

C.C語言的標識符可以分為三類,即關鍵字、預定義標識符和用戶標識符

D.用戶標識符與關鍵字不同時,程序在執(zhí)行時將給出出錯信息

44.以下選項中非法的字符串常量是()

B.\X0\011

C.\\\t"

D.\n\007\n

45.某二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點數(shù)為()

A.n+1B.n-1C.2nD.n/2

46.以下程序的輸出結果是()main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1,k<3;k++)printf("%s\n",w[k]);}

A.ABCDFGHKL

B.ABCEFGIJM

C.EFGJKO

D.EFGHIJKL

47.某一個漢字的區(qū)位碼為(2113H),則其內碼為()

A.(2199)10B.(C1B3H)C.(C1B3)10D.(B1B3H)

48.下列程序執(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

49.設有如下關系表:

則下列操作中,正確的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

50.有下列程序:fun(intx){intp;if(x==0‖x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}執(zhí)行后輸出的結果是()。

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

51.運行以下程序后,如果從鍵盤上輸入china#<回車>,則輸了結果為______。#include<stdio.h>main(){intv1=0,v2=0;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:vi++;case'0':v2++;}printf("%d,%d\n",v1,v2);}

A.2,0B.5,0C.5,5D.2,5

52.關系模型允許定義三類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。A.A.實體完整性約束B.參照完整性約束C.域完整性約束D.用戶自定義的完整性約束

53.下列描述中,正確的一條是______。

A.關系表達式的值是一個邏輯值,即“真”或“假”,可以賦給一個邏輯變量

B.在C語言中,判斷一個量是否為:真”時,以0代表“假”,以1代表“真”.

C.設a=3、b=4、c=5,則表達式!(x=a)&&(y=b)&&0的值為0

D.一個數(shù)組的各個數(shù)組元素可屬于不同的數(shù)據(jù)類型

54.下面四個選項中,均是合法整型常量的選項是A.160-0xffff011

B.-0xcdf0la0xe

C.-01986,0120668

D.-0x48a2e50x

55.有如下說明和定義語句:structstudent{intage;charnum{8};};structstudentstu[3]={{20,"200401"},{21,"200402"),{19,"200403"}};structstudent*p=stu;以下選項中引用結構體變量成員的表達式錯誤的是()。

A.(p++)->numB.p->numC.(*p).numD.stu[3].age

56.下列敘述中正確的是()。

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結構密切相關

B.程序執(zhí)行的效率只取決于程序的控制結構

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對

57.利用fseek函數(shù)可以實現(xiàn)的操作是

A.改變文件的位置指針B.文件的順序讀寫C.文件的隨機讀寫D.以上答案均正確

58.在設計程序時,應采納的原則之—是______。

A.程序結構應有助于讀者理解B.不限制goto語句的使用C.減少或者取消注解行D.程序越短越好

59.若有說明chars1[30]="Thecity",s2[]="isbeautiful";,則在使用函數(shù)strcat(s1,s2)后,結果是()。

A.s1的內容更新為Thecityisbeautiful\0

B.s1的內容更新為isbeaut\0

C.s1的內容更新為Thecity\0isbeautiful\0

D.s1的內容更新為Thecityisbeautiful\0

60.IEEE802.3的物理層協(xié)議10BASE-T規(guī)定從網(wǎng)卡到集線器的最大距離為()

A.100mB.185mC.360mD.500m

四、選擇題(20題)61.有以下程序

62.以下選項中非法的字符常量是()。

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

63.

64.

65.有以下程序程序運行后的輸出結果是()。A.a+b=0B.a+b=30C.a+b=lOD.出錯

66.下列選項中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

67.

68.下列語句組中,正確的是()。

A.char*s;s=”O(jiān)lympic”;

B.chars[7];s=”O(jiān)lympic”;

C.char*s;s={¨Olympic”};

D.chars[7];s={"Olympic”};

69.

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

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

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

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

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

71.(38)索引屬于()

A.模式

B.內模式

C.外模式

D.概念模式

72.

73.有以下程序:

程序的運行結果是()。

A.*7

B.*3*5

C.*5

D.*2*6

74.一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員與實體計算機之間的聯(lián)系是()。

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

75.有以下程序:

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

A.12

B.15

C.16

D.20

76.(37)下面不屬于軟件設計原則的是()

A.抽象

B.模塊化

C.自底向上

D.信息隱蔽

77.有以下程序:

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

A.16B.1C.32D.0

78.面下程序段的運行結果是

charstr[]="ABC",*p=str;

printf("%d\n",*(p+3));

A.67B.0C.字符’C’的地址D.字符’C’

79.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。A.A.*p=&a;scanf("%1f”,p);

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

C.p=&a;scanf("%",*p);

D.p=&a;scanf("%1f",p);

80.

五、程序改錯題(1題)81.下列給定程序的功能是:讀入一個整數(shù)n(2<;=n<;=5000),打印它的所有為素數(shù)的因子。例如,若輸入整數(shù)1234,則應輸出2,617。請修改程序中的錯誤,使程序能得出正確的結果。注意:不要改動main()函數(shù),不能增選或刪行,也不能更改程序的結構。試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。此程序定義了N×N的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(),該函數(shù)的功能是將數(shù)組下三角元素中的值全部置成0。如a數(shù)組中的值為注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#defineN5voidfun(inta[][N]){}voidmain(){ inta[N][N],i,j; system(“CLS”); printf(“****Thearray****\n”); for(i=0;i<n;i++)<p=""></n;i++)<>/*產生一個隨機的5×5矩陣*/ { for(j=0;j<=""p=""> { a[i][j]=rand()%10; printf(“%4d”,a[i][j]); } printf(“\n”); } fun(a); printf(“TheResult\n”); for(i=0;i<n;i++)<p=""></n;i++)<> { for(j=0;j<=""p=""> printf(“%4d”,a[i][j]); printf(“\n”); }}

參考答案

1.A由題可知fun的參數(shù)為變量,而a[15]為常量,所以答案為A。

2.A

3.D解析:在調用函數(shù)時,給形參分配存儲單元,并將實參對應的值傳遞紿形參,調用結束后,形參單元彼釋放,實參單元仍保留并維持原值。因此,在執(zhí)行—個被調用函數(shù)時,形參的值如果發(fā)生改變,并不會改變主調函數(shù)的實參的值,也就是說形參的值是不傳回紿對應的實參的。

4.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭。

5.B

6.A

7.Dmain函數(shù)首先定義整型變量S,初值為1;定義float類型的n、t、Pai,其中n初值為1.0,t初值為1,pai初值為0。while循環(huán)判斷t的絕對值(fabs為求float類型值的絕對值的函數(shù))是否大于1.0×10-6,若t的絕對值大于1.0×10-6,那么,執(zhí)行語句“pai+=t;n+=2;s=-s;t=s/n;”,所以每輪循環(huán)pai累加“s/n”(其中s是上一輪s的相反數(shù),n是上一輪n累加2的值)。第1輪循環(huán)時,pai被賦值為1,s是正數(shù),所以最終pai的計算結果是:1-1/3+1/5-1/7+1/9-…。故本題答案為D選項。

8.B第一次執(zhí)行外循環(huán)i的值為1,滿足條件,判斷第一次內循環(huán),j的值為3,不滿足條件,跳出內循環(huán)。第二次執(zhí)行外循環(huán)i的值為2,同理也不滿足內循環(huán)條件,跳出內循環(huán)。第三次執(zhí)行外循環(huán)i的值為3,此時進入內循環(huán)判斷條件時,條件成立,執(zhí)行m=m%j,m的值為1,跳出內循環(huán),跳出外循環(huán)打印m的值。

9.D

10.D自增運算符是將運算對象的值增1,它有前綴形式“++a”和后綴形式“b++”。其中“++a”表示首先將a的值自增1,然后表達式“++a”的值就是自增后a的值;而“b++”表示首先將b的值作為表達式的值,然后再將b的值自增1。本題中,a的初值為10,b的初值為11,則表達式“++a==b++”,等價于“11==11”,條件為真,所以輸出“T”。if語句執(zhí)行完后,a的值為11,b的值為12,輸出“a=11,b=12”。故本題答案為D選項。

11.D解析:在C語言中,將一個字符常量放到一個字符變量中,實際并不是把該字符本身放到內存單元中,而是將與該字符相對應的ASCII碼放到存儲單元中。

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

13.D

14.A

15.D

16.B

17.C從for循環(huán)可知pt是指向行的首地址的指針變量,因此由指針的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。

18.B1966年Boehm和Jacopini證明了程序設計語言僅僅使用順序、選擇和重復三種基本控制結構就足以表達出各種其他形式結構的程序設計方法。

19.B軟件設計包括軟件的結構設計、數(shù)據(jù)接口設計和過程設計。其中軟件結構設計主要包括系統(tǒng)由哪些子系統(tǒng)構成,以及這些子系統(tǒng)之間的關系是怎樣的,并將這些內容編寫成文檔;數(shù)據(jù)接口設計的任務是為每個子系統(tǒng)設計其與其他子系統(tǒng)間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設計是指系統(tǒng)結構部件轉換成軟件的過程描述。

20.B解析:b是整型數(shù),在輸人語句中要加取地址符,而c是數(shù)組名,本身就是數(shù)組的首地址,因此不用加取地址符。

21.00解析:函數(shù)getchar()是從鍵盤得到用戶輸入的一個字符。用戶輸入的第1個字符是a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個循環(huán)不會被執(zhí)行。

22.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做:n++是先取n的當前值和1做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當前值3,然后再將n加l,即程序結束后得到n=4,但輸出的是3。

23.b=i+1b=i+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時c去掉多加的11,即為1~10之間的奇數(shù)之和。

24.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)。

25.

26.!=returnj!=returnj解析:函數(shù)fun中,變量j用于控制刪除后剩下的數(shù)中的下標,i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標,所以訂語句中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,a[i]要添加到新數(shù)組中。該算法只能用于數(shù)組已排序的題目中。

27.棧頂棧頂解析:棧是限定在表的一端進行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。

28.s-1或--s或s--*s++s-1或--s或s--\r\n*s++解析:在函數(shù)。strcpy2()中,首先將指針t保存到指針p中,然后進入第1個while()循環(huán),其循環(huán)條件為*s++=*t++,其中“*”和“++”運算符的優(yōu)先級相同,但他們的結合性為從右至左,而“=”運算符優(yōu)先級比較低,所以原表達式等價于(*s++)=(*(t++)),即將t當前所指內容復制到s當前所指地址中,然后讓s和t同時往后移動一位,整個表達式返回的是復制給s的值。所以,當t所指內容是字符串結束符'\\0',時,while循環(huán)結束,原先t所指的整個字符串也就復制到s所指的地址中去了。但是,while循環(huán)最后一次判斷也會讓s和t往后移動一位,即此時s指向了字符串結束符'\\0'的后一位。所以第2次復制字符串之前,應先將s指針往回移動一位,故前一空應該填入s-1或其他等價形式。接下來的while循環(huán)實現(xiàn)第二次復制,照抄第1次的while循環(huán)就行,故后一空應填入*s++。

29.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。

30.morningclassmorningclass解析:本題考查了兩個知識點:①“++、--”運算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當n=\'c\'時,執(zhí)行“case\'c\':”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行'case\'d\':”,輸出class,最終輸出結果為morningclass。

31.在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中;當i=0時,p[0]=&x[1],p[0][0]=2;當i=1時,P[1];&x[3],p[1][0]=4;當i=2時,p[2]=及x[5],p[2][0]=6;當i=3時,p[3]=&x[7],p[3][0]=8,所以程序輸出的結果為2、4、6、8。\r\n\r\n

32.246246解析:本題考查靜態(tài)(static)局部變量的使用。fun函數(shù)中的靜態(tài)局部變量a所占用的存儲單元在程序運行過程中始終不釋放,即當下一次調用該函數(shù)時,該變量仍然保留上一次函數(shù)調用結束時已有的值,3次調用fun函數(shù)分別得到2,4,6。

33.dd解析:d被定義為一個結構體類型變量,求結構體變量a所占存儲單元的字節(jié)數(shù)即sizeof(d)。

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

35.程序調試程序調試解析:程序調試的任務是診斷和改正程序中的錯誤。程序調試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調試主要在開發(fā)階段。

36.3131解析:在函數(shù)調用時,形參值和改變,不會改變實參的值。

37.“filea.dat”“r”“filea.dat”,“r”解析:考查對文件的操作。fopen函數(shù)的調用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內容,所以空白處應當填入'filea.dat','r'。

38.0

39.242424

40.HowdoessheHowdoesshe解析:strcpy(str1,s1):字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組str1中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實際長度,不包括‘\\0’在內。本題中strlen(strl)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當于strqoy(strl+6,'esshe');因此可得答案為Howdoesshe。

41.C解析:o格式符是以八進制形式輸出整數(shù)。此題m已是八進制數(shù)(256前面的0表示此數(shù)是八進制數(shù)),n是十進制數(shù),所以輸出時,直接輸出m的值,n的值需要轉換成八進制數(shù)400后再輸出。

42.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結構形式并存放于統(tǒng)一的存儲介質內,是多種應用數(shù)據(jù)的集成,并可被各個應用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點。

43.D解析:用戶標識符與關鍵字相同時,程序在編譯過程中將給出出錯信息。注意:選項D)應該改為用戶標識符與關鍵字相同,程序在編譯時將給出出錯信息。注意:合法的標識符第一個字符必須為字母或下劃線。

44.4

45.A解析:本題考查數(shù)據(jù)結構中二叉樹的性質。二叉樹滿足如下一條性質,即:對任意一棵二叉樹,若終端結點(即葉子結點)數(shù)為n0,而其度數(shù)為2的結點數(shù)為n2,則n0=n2+1。根據(jù)這條性質可知,若二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點數(shù)為n+1。因此,本題的正確答案是選項A。

46.D

47.B

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

49.B解析:T是R∪S的結果,關系T由屬于關系R的或者屬于關系S的元組組成。

50.C解析:因為在函數(shù)fun(intx)中,如果參數(shù)x等于0或1時,返回值3。否則p=x-fun(x-2)這是一個遞歸函數(shù),所以在主函數(shù)調用fun(7)時,其過程為:'fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2',所以最后的輸出結果為2。

51.C

52.C數(shù)據(jù)約束是用來確保數(shù)據(jù)的準確性和一致性的。常見的四種數(shù)據(jù)約束如下:

(1)實體完整性約束:規(guī)定表的每一行在表中是唯一的實體。

(2)域完整性約束:是指表中的列必須滿足某種特定的數(shù)據(jù)類型約束,其中約束又包括取值范圍、精度等規(guī)定。

(3)參照完整性約束:是指兩個表的主關鍵字和外關鍵字的數(shù)據(jù)應一致,保證了表之間數(shù)據(jù)的一致性,防止了數(shù)據(jù)丟失或無意義的數(shù)據(jù)在數(shù)據(jù)庫中擴散。

(4)用戶定義的完整性約束:不同的關系數(shù)據(jù)庫系統(tǒng)根據(jù)其應用環(huán)境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系數(shù)據(jù)庫的約束條件,它反映某一具體應用必須滿足的語義要求。

在上述四種數(shù)據(jù)約束中,不屬于關系模型定義的三種數(shù)據(jù)約束的是域完整性約束。

53.D

54.A解析:解答本題時,我們必須要明白“進制”數(shù)的表示方法。按不同的進制區(qū)分,整型常數(shù)有3種表示方法:

+進制數(shù):

如:220,-560,45900

八進制數(shù):以0開始的數(shù)數(shù)字范圍0~7.

如:06,0106,05757

+六進制數(shù):以OX或0x開始的數(shù)數(shù)字范圍0~9,a~f或A~F

如:0X0D,0XFF,0x4e,-0x48a

另外,可在整型常數(shù)后添加一個“L”或“l(fā)”字母表示該數(shù)為長整型數(shù),如22L,0773L,0Xae4l。

55.D解析:結構體變量也有地址,因此可以把它的地址賦值給一個指針變量,然后通過該指針變量來引用結構體的成員,選項A和選項B就是通過指針變量來引用結構體的成員,故選項A和選項B都正確,也可以通過結構體數(shù)組元素的成員引用,選項C和選項D屬于這種情況,而在選項D中stu[3].age不正確,因為結構體數(shù)組stu共有3個元素,其下標應該為0,1,2。所以,4個選項中選項D符合題意。

56.A本題考查程序效率。程序效率是指程序運行速度和程序占用的存儲空間。影響程序效率的因素是多方面的,包括程序的設計、使用的算法、數(shù)據(jù)的存儲結構等。在確定數(shù)據(jù)邏輯結構的基礎上,選擇一種合適的存儲結構,可以使得數(shù)據(jù)操作所花費的時間少,占用的存儲空間少,即提高程序的效率。因此,本題選項A的說法是正確的。

57.D解析:用fseek函數(shù)可以實現(xiàn)改變文件的位置指針,從而實現(xiàn)對文件的順序和隨機讀寫。

58.A解析:濫用goto語句將使程序流程無規(guī)律,可讀性差;添加的注解行有利于對程序的理解,不應減少或取消;程序的長短要依照

溫馨提示

  • 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

提交評論