2022-2023年山西省臨汾市全國計算機等級考試C語言程序設計真題(含答案)_第1頁
2022-2023年山西省臨汾市全國計算機等級考試C語言程序設計真題(含答案)_第2頁
2022-2023年山西省臨汾市全國計算機等級考試C語言程序設計真題(含答案)_第3頁
2022-2023年山西省臨汾市全國計算機等級考試C語言程序設計真題(含答案)_第4頁
2022-2023年山西省臨汾市全國計算機等級考試C語言程序設計真題(含答案)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年山西省臨汾市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列程序的運行結果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

2.有以下程序:#include<stdio.h>voidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=“acc”,aa[10]=“bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序的運行結果是()。

A.acc,bbxxyy

B.accbbxxyy,bbxxyy

C.accxxyy,bbxxyy

D.accxyy,bbxxyy

3.對一個有A,B,C,D隨機組成的序列進行哈夫曼編碼,據(jù)統(tǒng)計,各個元素的概率分別為:P(A)=0.4,P(B)=0.35,P(C)=0.2,P(D)=0.05,請問該編碼的平均期望編碼長度為()bits。

A.1.45B.1.74C.1.85D.1.92

4.若有定義“inta,b;”,通過語句“scanf(“%d;%d,”&a,&b)能把整數(shù)3賦給變量a、5賦給變量b的輸入數(shù)據(jù)是()。

A.35B.3,5C.3;5D.35

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

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

B.在C語言中,預處理命令行都以“#”開頭

C.每個C程序必須在開頭包含預處理命令行:#include

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

6.執(zhí)行下面的程序段后,變量k中的值為()。intk=3,s[2];s[0]=k;k=s[1]*10;

A.不定值B.33C.30D.10

7.表達式9!=10的值為()。

A.非零值B.trueC.0D.1

8.在多媒體計算機系統(tǒng)中,不能用以存儲多媒體信息的是A.光纜B.軟盤C.硬盤D.光盤

9.設有一個二維數(shù)組A[m][n],假設A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個元素占一個空間,問A[3][3](10)存放在什么位置()(腳注(10)表示用10進制表示)。

A.688B.678C.692D.696

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

A.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效

B.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

C.在不同的函數(shù)中可以定義相同名字的變量

D.函數(shù)的形參是局部變量

11.下面函數(shù)的功能是()intfunl(char*X){char*y=X;whar(*y++);return(y-x-1);}

A.求字符串的長度B.比較兩個字符串的大小C.將字符串x復制到字符串y中D.將字符串x連接到字符串y后面

12.有以下程序

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

}

程序的運行結果是

A.A.331

B.41

C.2

D.1

13.設數(shù)據(jù)結構A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},則數(shù)據(jù)結構A是()。

A.線性結構B.樹形結構C.圖狀結構D.集合

14.下列程序的輸出結果是()main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf(“%d,%d,%d\n”,x,y,z);}A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

15.以下選項中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

16.有以下程序:#include<stdio.h>voidsub(doublea,double*pb);intmain(){doublex,y;scanf(“%lf%lf”,&x,&y);sub(x,&y);printf(“x=%fy=%f\n”,x,y);}voidsub(doublea,double*pb){a=a-*pb;*pb=*pb-a;}程序運行時輸入10.23.5并按<Enter>鍵,則輸出結果為()。

A.x=10.200000y=-3.200000

B.x=6.700000y=-13.700000

C.x=7.000000y=-3.500000

D.x=13.400000y=-7.000000

17.

18.具有20個結點的二叉樹,其深度最多為_______。

A.4B.5C.6D.20

19.深度為5的二叉樹至多有C個結點。

A.16B.32C.31D.10

20.若有定義“floata=25,b,*p=&b;”,則下列對賦值語句“*p=a;”和“p=&a;”的正確解釋為()。

A.兩個語句都是將變量a的值賦予變量P

B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P

C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a

D.兩個語句都是使P指向變量a

二、2.填空題(20題)21.有以下程序段:

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

b=p[5];

b中的值是【】。

22.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運行時輸入:1234<回車>,程序的輸出結果是【】。

23.軟件測試方法中,黑盒測試法和白盒測試法是常用的方法,其中黑盒測試法主要是用于測試【】。

24.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組b。請?zhí)羁铡?/p>

#include<stdioh>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

for(i;0;i<9;i++)

{if(i%4==0)primf("\n");

printf("%3d",b[i];

}

}

25.下面程序的運行結果是【】。

#include<stdio.h>

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

26.面向對象的模型中,最基本的概念是對象和______。

27.函數(shù)sstrcmp()的功能是對兩個字符串進行比較。當s所指字符串和t所指字符串相等時,返回值為0;當s所指字符串大于t所指字符串時,返回值大于0;當s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp())。請?zhí)羁铡?/p>

#include<stdio.h>

intsstrcmp(char*s,char*t)

{

while(*s&&*t&&*s==【】)

{s++;t++;}

rerurn【】;

}

28.在關系模型中,若屬性A是關系R的主碼,屬性A的取值不能為空,稱為約束。

29.若變量x、y已定義為int類型且X的值為33,y的值為3,請將輸出語句printf((),x/y);補充完整,使其輸出的計算結果形式為:x/y=11。

30.有以下程序:

voidfun(int*a,inti,intj)

{intt;

if(i<j)

{t=a[i];a[i]=a[j];a[j]=t;

i++;j--;

fun(a,i,j);

}

}

main()

{intx[]=(2,6,1,8),i;

fun(x,0,3);

for(i=0;i<4;i++)printf("%2d",x[i]);

}

程序運行后的輸出結果是【】。

31.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應該是【】。

intb,c;floata;

scanf("%f,%d,c=%d",&a,&b,&c)

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

intmystrlen(char*str)

{inti;

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

return(【】);

}

33.若a的值為1,則表達式!a‖++a的值是______。

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

structst

{charname[20];doublescore;

};

main()

{structststudent;

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

}

35.在數(shù)據(jù)的存儲結構中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。

36.實體之間的聯(lián)系可以歸結為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個學校有許多學生,而一個學生只歸屬于一個學校,則實體集學校與實體集學生之間的聯(lián)系屬于【】的聯(lián)系。

37.下面程序有兩個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\n,p+9);

}

38.設有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

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

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

voidfunc(intx,inty,【】z)

{*z=x+y;}

40.【】是從二維表列的方向進行的運算。

三、1.選擇題(20題)41.有以下程序#include<stdio.h>intf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}main(){intz;z=f(3);printf("%d\n",z);}程序的運行結果是

A.0B.9C.6D.8

42.若有定義:intx=0,*p=&x;則語句printf("%d\n",*p);的輸出結果是()。

A.隨機值B.0C.x的地址D.p的地址

43.以下程序的功能是()#include<stdio.h>main(){FILE*fp1;*fp2;fp1=fopen("filel","r");fp2=fopen("file2","w");while(!feof(fp1))fputc(fgetc(fp1),fp2);fclose(fp1);fclose(fp2);}

A.將磁盤文件的內(nèi)容顯示在屏幕上

B.將兩個磁盤文件合為一個

C.將一個磁盤文件復制到另一個磁盤文件中

D.將兩個磁盤文件合并后送屏幕

44.下列程序中c的二過值是()。chara=2,b=4,c;c=a^b>>2;

A.11B.10100C.11100D.11000

45.有以下程序:main(){inti=10,j=1;printf("%d,%d\n",i--,++j);}執(zhí)行后輸出結果是()。

A.9,2B.10,2C.9,1D.10,1

46.有如下程序:main(){intn=9;while(n>6){n--;printf("%d",n);}}該程序的輸出結果是

A.987B.876C.8765D.9876

47.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為()。

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

48.在函數(shù)scanf的格式控制中,格式說明的類型與輸入項的類型應該對應匹配。如果類型不匹配,系統(tǒng)將()。

A.不予接收B.并不給出出錯信息,但不能得到正確的數(shù)據(jù)C.能接收到正確輸入D.給出出錯信息,不予接收輸入

49.下列關于字符串的說法中錯誤的是

A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符′\0′作為字符串結束標志

B.′\0′作為標志占用存儲空間,計入串的實際長度

C.在表示字符串常量的時候不需要人為在其末尾加入′\0′

D.在C語言中,字符串常量隱含處理成以′\0′結尾

50.運行以下程序后,如果從鍵盤上輸入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

51.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);程序執(zhí)行后的輸出結果是()。

A.45B.50C.60D.55

52.下列程序的輸出結果是______。main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d,%d",x--,y);}

A.10192B.9876C.10990D.101091

53.不是面向對象程序設計的可維護性的優(yōu)點的是()

A.用面向對象的方法開發(fā)的軟件穩(wěn)定性比較好B.易于移植C.易于和調(diào)試D.用面向對象的方法開發(fā)的軟件比較容易理解

54.若定義了以下函數(shù):voidf(…){…*p=(double*)malloc(10*sizeof(double));…}p是該函數(shù)的形參,要求通過p把動態(tài)分配存儲單位的地址傳回主調(diào)函數(shù),則形參p的正確定義應當是()

A.double*pB.float**pC.double**pD.float*p

55.以下與函數(shù)fseek(fp,OL,SEEK_SET)有相同作用的是______。A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

56.C語言源程序名的后綴是A..exeB..CC..objD..cp

57.在C語言中,不正確的int類型的常數(shù)是______。

A.32768B.0C.37D.0xAF

58.若有程序:fun(inta,intB){staticintc=0;c+=a+b;returnc;}main(){intx=5,y=3,z=7,rr=fun((y,x+y),z);r=fun(x,y);printf("%d\n",r);}上面程序的輸出結果是_______。

A.23B.15C.19D.18

59.下列程序的執(zhí)行結果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a+++(++b);printf("%d,%d",a,c);}

A.3,14,1B.3,14,2C.2,04,1D.2,14,1

60.有以下程序main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sized(a);j=stden(a);printf(“%d,%d\n”,i,j);}程序運行后的輸出結果是

A.9,9B.8,9C.1,8D.9,8

四、選擇題(20題)61.在學生管理的關系數(shù)據(jù)庫中,存取一個學生信息的數(shù)據(jù)單位是()。

A.文件B.數(shù)據(jù)庫C.字段D.記錄

62.

63.以下關于結構化程序設計的敘述中正確的是()。

A.一個結構化程序必須同時由順序、分支、循環(huán)三種結構組成

B.結構化程序使用goto語句會很便捷

C.在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的

D.由三種基本結構構成的程序只能解決小規(guī)模的問題

64.有以下程序:

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

A.120B.11C.6D.21

65.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關系B.數(shù)據(jù)流C.控制流D.調(diào)用關系

66.

67.若有定義:“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。

A.a=a++,i++;

B.i=(a+k)<=(i+k);

C.i=a%11;

D.i=!a;

68.

69.以下程序的輸出結果是()。

A.678910

B.13579

C.12345

D.62345

70.下列用于printf函數(shù)的控制字符常量中,代表“豎向跳格”的轉義字符常量是()。

A.\bB.\tC.\vD.\f

71.下面的函數(shù)調(diào)用語句中func函數(shù)的實參個數(shù)是()。func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))

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

72.

73.

74.以下程序的功能是

#include<stdio.h>

main()

{FILE*fp1;*fp2;

fp1=fopen("file1","r");

fp2=fopen("file2","w");

while(!feof(fp1))

fputc(fgetc(fp1),fp2);

fclose(fp1);

fclose(fp2);

}

A.將磁盤文件的內(nèi)容顯示在屏幕上

B.將兩個磁盤文件合為一個

C.將一個磁盤文件復制到另一個磁盤文件中

D.將兩個磁盤文件合并后送屏幕

75.(33)有以下程序段

inti,n;

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

{n=rand()%5;

switch(n)

{case1:

case3:printf("%d\n",n);break;

case2:

case4:printf("%d\n",n);continue;

case0:exit(0);

}

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

}

以下關于程序段執(zhí)行情況的敘述,正確的是

A)for循環(huán)語句固定執(zhí)行8次

B)當產(chǎn)生的隨機數(shù)n為4時結束循環(huán)操作

C)當產(chǎn)生的隨機數(shù)n為1和2時不做任何操作

D)當產(chǎn)生的隨機數(shù)n為0時結束程序運行

76.

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

A.在面向對象的程序設計中,各個對象之間具有密切的關系

B.在面向對象的程序設計中,各個對象都是公用的

C.在面向對象的程序設中,各個對象之間相對獨立,相互依賴性小

D.上述3種說法都不對

78.以下對一維數(shù)組c進行正確的定義初始化的語句是

A.intc[10]=0;B.intc[10]={0}*10;

C.intc[1]={0,0,0,0,0,0,0};D.intc[10]={0};

79.下面概念中,不屬于面向對象方法的是()。A.對象B.繼承C.類D.過程調(diào)用

80.下列語句中,正確地執(zhí)行當i等于5時執(zhí)行一些語句的條件語句是()。

A.if(i==5)B.ifi=5thenC.ifi=5D.ifi==5then

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:將tt所指字符串中的小寫字母全部改為對應的大寫字母,其他字符不變。

例如,若輸入“Ab,cD”,則輸出“AB,CD”。

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

注意:部分源程序在文件MODIl.C中,不得增行或刪行,也不得更改程序的結構!

六、程序設計題(1題)82.編寫函數(shù)fun(),其功能是:求SS所指字符串中指定字符的個數(shù),并返回此值。例如,若輸入字符串“123412132”,輸入字符為“1”,則輸出3。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入編寫的若干語句。試題程序:

參考答案

1.B解析:本題考查帶參數(shù)的宏的定義及相關運算:S=m+n+m+n*k=1+2+1+2*3=10。

2.B在函數(shù)fun中,前一個while循環(huán)的作用是,如果形參指針t所指內(nèi)容不為0,則讓t增1,直到它指向0;后一個while循環(huán)的作用是,將s所指內(nèi)容賦給t所指地址,然后兩者同時增1,直到賦給t的內(nèi)容為0。由此可見,函數(shù)fun的作用就是將形參s所指字符串連接到形參t所指字符串末尾,相當于庫函數(shù)strcat。主函數(shù)中使用fun將數(shù)組aa中的字符串連接到數(shù)組ss中原有字符串之后,所以執(zhí)行完后,ss中的字符串為“accbbxxyy”。程序最后輸出的結果是accbbxxyy,bbxxyy。故本題答案為B選項。

3.C

4.C輸入數(shù)據(jù)的格式必須與scanf的格式控制字符串完全匹配。函數(shù)中非格式字符需要原樣輸入,所以輸入時必須在3和5之間輸入“;”。故本題答案為C選項。

5.B本題是對基本知識點的理解,預處理命令行的位置沒有規(guī)定,只是習慣寫在起始位置而已,當需要時才用#include<stdio.h>頭文件,預處理的作用就是實現(xiàn)宏定義和條件編譯。

6.A解析:定義數(shù)組時,沒有對s[1]進行初始化,因此s[1]的值不確定,所以k=s[1]*10的值也不確定。

7.D

8.A解析:光纜是傳輸多媒體信息的通道,不能用以存儲多媒體信息。

9.C

10.A在一個函數(shù)內(nèi)的復合語句中定義的變量在本復合語句塊范圍內(nèi)有效,選項A錯誤,其他選項正確。本題答案為A選項。

11.A

12.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或為“假”時執(zhí)行指定的動作,由if引導條件為“真”時執(zhí)行的操作;由else引導條件為“假”時執(zhí)行的操作。else語句要與上面最近的if語句進行匹配,如果要嵌套調(diào)用if-else語句,需要將嵌套部分用{}括起來,避免程序報錯。題目中給出了一個if語句和一個if-else語句,if-else語句為第一個if語句的子語句。首先執(zhí)行外層if語句,執(zhí)行條件為x>y,由于x=1,y=2,故該條件為假,不執(zhí)行if的子語句,直接執(zhí)行語句printf("%d\\n",x++);,該語句先輸出x的值,然后進行x++操作。x的初始值為1,輸出結果為1。

13.A

14.B解析:本題的執(zhí)行過程是:

在While循環(huán)中,

比較xyz

第—次:3>0&&1<5142

第二次:2>0&&2<5231

第三次:1>0&&3<5320

判斷條件“z-->0”不成立,也不執(zhí)行“i+=2”語句,循環(huán)結束,因此,輸出結果為3,2,-1。

15.C解析:C語言中字符常量是以單引號括起來的單個字符,或為以“\\”與三位八進制數(shù)值或兩位十六進制數(shù)值代替單個字符。

16.Asub函數(shù)接收兩個參數(shù):double類型變量a,double指針變量pb。首先將a與pb指向的變量值相減,結果存放在a中;然后再將pb指向的變量值與a的新值相減,結果存放在pb指向的內(nèi)存空間中。sub函數(shù)不會修改實參x的值,但會修改實參y的值。當輸入10.23.5時,實參x的值為10.2,y的值為3.5,執(zhí)行sub函數(shù)后,x的值不變,y的值變成-3.2。故本題答案為A選項。

17.D

18.D

19.C

20.C“P”是指針變量,指向一個地址:“*P”為P指針所指向地址的內(nèi)容“&”是取變量地址。

21.99解析:p是一個指針變量,指向數(shù)組a的元素a[3],所以b=p[5]=a[5+3]=a[8]=9。

22.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

23.軟件外部功能軟件外部功能

24.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i]小即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。

25.1-21,-2解析:考查嵌套的循環(huán)結構。題中外層while循環(huán)的循環(huán)條件是\ue008y--!=-1\ue009,即y>=0;內(nèi)層do厀hile循環(huán)的循環(huán)條件是y--,即y-->0,y>=1。

26.類類

27.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應的字符相等則接著比較下一個字符,一直到兩個字符串中對應字符不等,或者有一個為“\\0”,此對應字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為“\\0”,且*s和*t相同,第一處應填“*t”或其他等價形式。根據(jù)題意可知第二處應填“*s-*t”或其等價形式。

28.實體完整性實體完整性

29.x/y=%dx/y=%d解析:本題考查prinff語句的輸出格式。printf()函數(shù)是格式化輸出函數(shù),一般用于向標準輸出設備按規(guī)定格式輸出信息。在編寫程序時經(jīng)常會用到此函數(shù)。printf()函數(shù)的調(diào)用格式為:printf('<格式化字符串>”,<參最表>)其中,格式化字符串包括兩部分內(nèi)容。一部分足正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以“%”開始,后跟一個或幾個規(guī)定字符,用來確定輸出內(nèi)容格式。參量表是需要輸出的一系列參數(shù),其個數(shù)必須與格式化字符串所說明的輸出參數(shù)個數(shù)一樣多,各參數(shù)之間用“,”分開,且順序一一

30.81628162解析:第一次調(diào)用函數(shù)fun時,x[0]=2、xL1]=6、x[2]=1、x[3]=8,執(zhí)行完函數(shù)fun后,x[0]與x[3]的值互換,即x[0]=8、x[1]=6、x[2]=1、x[3]=2;第二次調(diào)用函數(shù)fun時,i=1、j=2,故將x[1]與x[2]的值互換,即得x[0]=8、x[1]=1、x[2]=6、x[3]=2。

31.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時應輸入與這些字符相同的字符。所以此題中輸入數(shù)據(jù)的形式是5.04,c=3。

32.str[i]或str+iistr[i]或str+i\r\ni

33.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結果為1。

34.structst或studentstructst或student

35.前后件關系前后件關系解析:在數(shù)據(jù)存儲結構中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關系,對于順序存儲的數(shù)據(jù)結構,前后件之間的關系,是通過存儲空間的位置來實現(xiàn)的,而對于鏈式存儲來說,數(shù)據(jù)元素之間的前后件關系是通過指針來實現(xiàn)的。

36.—對多—對多解析:實體之間的聯(lián)系可以歸結為一對一、一對多與多對多。如果一個學校有許多學生,而一個教師只歸屬于一個學生,則實體集學校與實體集學生之間的聯(lián)系屬于一對多的聯(lián)系。

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

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

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

40.投影投影解析:在關系模型的數(shù)據(jù)語言中,一般除了運用常規(guī)的集合運算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關系運算,如投影、選擇、連接等。投影是從二維表的列方向上進行的運算。

41.C解析:函數(shù)intf(intx)是一個遞歸函數(shù)調(diào)用,當x的值等于0或1時,函數(shù)值等于3,其他情況下y=x2-f(x-2),所以在主函數(shù)中執(zhí)行語句z=f(3)時,y=3*3-f(3-2)=9-f(1)=9-3=6。

42.B解析:本題考查的是指針的運用。語句intx=O,*p=&x;定義7一個int型變量x并初始化為0,同時還定義了一個int型指針p指向變量x。語句ptintf('%d\\n',*p);是按十進制整數(shù)格式輸出指針p所指向的內(nèi)容,即x的值0。故本題應該選擇B。

43.C

44.A解析:本題主要考查按位異或和右移運算。b=4的二進制為00000100,b>>2后為00000001,a=2的二進制為00000010,兩者異或為00000011。

45.B解析:++、--運算符在變量之前是先使變量的值加1或減1,然后再使用變量的值;如果在變量之后則先使用變量之前的值,再把變量的值加1或減1。顯然,程序中表達式i--的值為10,++j的值為2,所以最后輸出的值為10和2,故B選項為所選。

46.B解析:該題目應該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時的輸出結果來決定哪一項是正確的。第一次進入循環(huán)時,n的值是9,循環(huán)體內(nèi),先經(jīng)過n--運算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時,n的值應該為7,所以最后一次執(zhí)行循環(huán)時,輸出為6,由此可以排除選項C)。

47.CC?!窘馕觥繉€性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關鍵字進行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。

48.B解析:在scanf函數(shù)的格式控制中,格式說明的類型與輸入項的類型必須一一對應匹配,如不匹配將導致數(shù)據(jù)輸入出現(xiàn)錯誤,但是系統(tǒng)并不報錯。

49.B解析:'\\0'作為標志占用存儲空間,但是不計入串的實際長度。當給一個字符型指針賦值時,賦給這個指針的是這個字符串的地址。

50.C

51.C解析:靜態(tài)變量是在編譯時賦初值的,即只賦初值一次,在程序運行時它已有初值,以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結束時的值。在main函數(shù)中調(diào)用fun(a,5),執(zhí)行for循環(huán)得到sum=0+a[0]+a[1]+a[2]+a[3]+a[4]=15;然后調(diào)用fun(b,4),因為sum為靜態(tài)變量,再次調(diào)用時sum保留上次函數(shù)調(diào)用結束時的值,所以sum:15+b[0]+b[1]+b[2]+b[3]=45;返回sum的值,main函數(shù)中輸出的s=15+45=60。

52.D

53.B

54.C

55.D解析:feof函數(shù)的功能是判斷文件指針是否已指到了文件末尾,是則返回非零值,否則返回零;ftell函數(shù)的功能是得到流式文件中文件指針的當前位置,用相對于文件開頭的位移量來表示;fgetc函數(shù)的功能是從指定文件讀人一個字符;rewind函數(shù)的功能是使文件指針重新返回文件的開頭。fseek函數(shù)用于改變文件的位置指針,調(diào)用形式為:fseek(文件類型指針,位移量,起始點),“起始點”取值0(SEEK_SET)、1(SEEK_CUR)、2(SEEK_END)分別表示文件開始、文件當前位置、文件末尾。“位移量”是以“起始點”為基點,向前移動的字節(jié)數(shù)。函數(shù)fseek(fp,OL,SEEK_SET)的作用是將位置指針移到文件頭,所以選項D)正確。

56.B解析:C語言源程序的后綴為.c;經(jīng)過編譯得到的目標程序文件的后綴為.obj;再將目標程序文件鏈接后得到可執(zhí)行文件的后綴為.exe。故本題應該選擇B。

57.A解析:C語言中int類型的常數(shù)的范圍是:-32768~32767。C整常數(shù)可用三種形式表示:十進制整數(shù),八進制整數(shù),十六進制整數(shù)。選項A超出范圍,不正確。

58.A解析:static聲明的外部變量只限于被本文件引用,而不能被其他文件引用。用static來聲明一個變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。調(diào)用第一個fun,其兩個實參的值為(3,5+3)與7即8與7,在函數(shù)fun執(zhí)行結束返回15。第二次調(diào)用fun時,由于static為靜態(tài)類型,其值保留,執(zhí)行fun(5,3)后,其返回值為23,故選A。

59.A解析:本題主要考查自加運算符(++、--)的使用。①前綴變量“++i、--i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達式的值參與運算;②后綴變量“i++、i--”,先使用此時的表達式的值參與運算,在使用i之后,再使i的值加1或者減1。本題中計算表達式c=(a++)-1時先使用a的值進行計算,結果為c=2-1=1,然后將a的值加1,即執(zhí)行完此語句后a的值是3;表達式c+=-a+++(++b)等價于c=c+(-a++)+(++b),c=1+(-3)+3=1,此時a=4,b=3。

60.D解析:本題中首先定義了字符數(shù)組a,由于它的長度省略,所以其長度由初值個數(shù)確定,為9。接著將sizeof()函數(shù)返回的值賦給i(sizeof()函數(shù)的作用是返回運算對象占用的字符數(shù)),所以i值為9;然后將strlen()函數(shù)的返回值賦給j(strlen()函數(shù)的作用是返回字符串的長度,不包括字符串的結束標記'\\0'),所以j值為8,所以最后輸出的i,j的值為9,8。

61.D解析:在關系數(shù)據(jù)表中,行稱為元組,對應存儲文件中的記錄,列稱為屬性,對應存儲文件中的字段,所以本題答案為D。

62.C

63.C解析:結構化程序設計是指將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨立的模塊,與具體的語句結構無關。Goto語句的濫用會導致程序的可讀性降低。三種基本結構構成的程序依然可以解決大規(guī)模的問題,只是不利于復用。

64.Dfun函數(shù)中的變量X為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時仍可以保留上次調(diào)用時的值。也就是說,如果多次調(diào)用fun函數(shù),x的定義只在第一次調(diào)用時有效,從第二次調(diào)用開始,x的定義相當于不存在,直接使用上次X的值。fun函數(shù)被調(diào)用了5次,每次調(diào)用后的返回值累加到s上。5次調(diào)用后,x的值為6,8的值為1+2+3+4+5+6=21。因此D選項正確。

65.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線段表示圖元關系。在模塊之間用帶有箭頭的線段表示調(diào)用關系。構成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

66.B

67.D

68.B

69.Achange函數(shù)的功能是將數(shù)組中的第6個元素值賦給第l個元素。第一次調(diào)用后,x[0]=x[5]=6。第二次調(diào)用實際是以x的第2個元素作為數(shù)組首元素,所以調(diào)用結束時x[1]=x[6]=7。后三次調(diào)用分別將x[2]、x[3]、x[4]賦值為8、9、10。

70.C本題考查C語言轉義字符的含義。我們歸類了常用的轉義字符及其含義,如下,根據(jù)這些不難選出正確答案

轉義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁、\\反斜線符、“\”\′單引號符、\\ddd1~3位八進制數(shù)所代表的字

溫馨提示

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

最新文檔

評論

0/150

提交評論