2022-2023年內蒙古自治區(qū)呼倫貝爾市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2022-2023年內蒙古自治區(qū)呼倫貝爾市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2022-2023年內蒙古自治區(qū)呼倫貝爾市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2022-2023年內蒙古自治區(qū)呼倫貝爾市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2022-2023年內蒙古自治區(qū)呼倫貝爾市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年內蒙古自治區(qū)呼倫貝爾市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.給出發(fā)下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為______。

A.數組x和數組y等價B.數組x和數組y的長度相同C.數組x的長度大于數組y的長度D.數組x的長度小于數組y的長度

2.設有以下說明語句

structex

{intx;floaty;charz;}example;

則下面的敘述中不正確的是

A.struct結構體類型的關鍵字

B.example是結構體類型名

C.x,y,z都是結構體成員名

D.structex是結構體類型名

3.將發(fā)送端數字脈沖信號轉換成模擬信號的過程稱為

A.鏈路傳輸B.調制C.解調D.數字信道傳輸

4.下面C程序段中count++語句執(zhí)行的次數為()A.15B.16C.31D.32

5.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化

B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化

C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化

D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化

6.有如下定義:structperson{charname[9];intage;}structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};能輸出字母M的是()

A.printf("%c\n",class[3].name);

B.printf("%c\n",class[3].name[1]);

C.printf("%c\n",class[2].name[1]);

D.printf("%c\n",class[2].name[0]);

7.程序執(zhí)行后的輸出結果是()。A.321.cbaB.123.abcC.abc,123D.1bc,a23

8.

9.合法的main函數命令參數形式是()。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

10.下列選項中不是字符常量的是()。A.A.'\v'

B.'\x2a'

C.'a'

D."\0"

11.目前以比較為基礎的內部排序方法中,其比較次數與待排序的記錄的初始排列狀態(tài)無關的是()

A.插入排序B.快速排序C.二分插入排序D.冒泡排序

12.

13.若有定義“inta[2][3],*p[3];”,則以下語句中正確的是()。

A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D.p[1]=&a;

14.數據庫的故障恢復一般是由()來執(zhí)行恢復

A.電腦用戶B.數據庫恢復機制C.數據庫管理員D.系統(tǒng)普通用戶

15.下列二維數組的說明中,不正確的是()。

A.floata[][4]={0,1,8,5,9};

B.inta[3][4]

C.#defineN5floata[N][3]

D.inta[2][9.5];

16.按照“先進先出”組織數據的數據結構是()。

A.隊列B.棧C.雙向鏈表D.二叉樹

17.下列運算符中優(yōu)先級最高的是()。

A.!B.%C.-=D.&&

18.若有如下定義,則__________是對數組元素的正確的引用。.

inta[10],*p;p=a;

A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p

19.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的運行結果是()。A.*****a*bB.a*bC.a*b****D.ab

20.軟件生命周期中所花費用最多的階段是()。

A.詳細設計B.軟件編碼C.軟件測試D.軟件維護

二、2.填空題(20題)21.對長度為10的線性表進行冒泡排序,最壞情況下需要比較的次數為【】。

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

voidfunc(intx,inty,【】z)

{*z=x+y;}

23.在先左后右的原則下,根據訪問根結點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

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

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

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

}

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

26.若要說明一個新類型名ArrInt,使得定義語句ArrIntx;等價于定義語句Intx[4][10];,正確的說明語句形式為【】。

27.表達式8/4*(int)2.5/(int)(1.25*(3.7+2.3))的值是______。

28.下列程序的輸出結果是【】。

main()

{inti;

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

{if(i>4)

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

break;}

printf("%d\n",i++);}}

29.以下程序運行后的輸出結果是【】。

main()

{

intx=0210;

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

}

30.軟件測試中路徑覆蓋測試是整個測試的基礎,它是對軟件【】進行測試。

31.下列程序的輸出結果是【】。

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

for(y=0;y<3;y++)

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

32.若有以下程序段:

intc1=1,c2=2,c3;

c3=1.0/c2*c1;

則執(zhí)行后,c3中的值是【】。

33.以下程序的輸出結果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}

34.實現(xiàn)程序可將磁盤中的一個文件復制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當于copy命令),假定文件在當前目錄下。請補全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

{printf("parametererror!\n");exit(0);}

n=fopen(argv[1],"r");

f2=fopen(argv[2],"w");

while(【】)fputc(fgetc(f1),f2);

fclose(f1);

fclose(f2);

}

35.設在主函數中有以下定義和函數調用語句,且fun函數為void類型;請寫出fun函數的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

36.若fp已正確定義為一個文件指針,d1.dat為二進制文件,請?zhí)羁?,以便為“讀”而打開此文件:

fp=fopen(【】);。

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

#include<stdio.h>

fun()

{inta=0;

a+=3;

printf("%d",A);

}

main()

{intcc;

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

fun();

printf("\n");

}

38.想通過以下輸入語句給x賦值2,給y賦值3,則輸入數據的形式應該是______。

intx,y;

scanf("x=%d,y=%d",&x,&y);

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

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

charstr口="ABCD",*p=str;

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

三、1.選擇題(20題)41.能直接與CPU交換信息的功能單元是()。

A.硬盤B.控制器C.主存儲器D.運算器

42.已知下列函數定義:fun(int*b,intc,intD){intk;for(k=0;k<c*d;k++){*b=c+d;b++;}}則調用此函數的正確寫法是(假設變量a的說明為inta[10])()。

A.fun(*a,6,14);

B.fim(&a,6,8);

C.fun(a,8,4);

D.fun((int)a,8,6);

43.下列數據結構中,屬于非線性的是()。

A.線性表B.隊列C.樹D.棧

44.下列程序的輸出結果是______。main(){intn;(n=6*4,n+6),n*2;printf("n=%d\n",n);}

A.22B.23C.24D.25

45.有以下程序:#include<stdio.h>intfun(intx,inty){if(x==y)return(x);elsereturn((x+y)/2);}main(){inta=1,b=2,c=3;printf("%d\n",fun(2*a,fun(b,C)));}程序運行后的輸出結果是()。

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

46.若有以下定義和語句,則輸出結果是______。int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);

A.10,20B.10,10C.20,10D.20,20

47.若有下面的說明和定義,則sizeof(structaa)的值是structaa{intrl;doubler2;floatr3;unionuu{charul[5];longu2[2]}ua;}mya;

A.30B.29C.24D.22

48.在下列各m的值中,能使m%3=2&&m%5=3&&m%7=2為真的是()

A.8B.23C.17D.6

49.以下程序的輸出結果是()。#include<stdio.h>intm=13;intfun(intx,inty){intm=2;return(x*y-m);}main(){inta=7,b=6;printf("%d",fun(a,B)/m);}

A.1B.3C.7D.10

50.以下正確的程序段是

A.cgarstr[20];scanf("%s",&str);

B.char*p;scanf("%s",p);

C.charstr[20];scanf("%s",&str[2])

D.charstr[20],*p=str;scanf("%s",p[2]);

51.在下列文件名表示方式中,與*E.*等效的是()

A.*.??B.?.*C.???????E.???D.*.*

52.有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-1)printf("%d,%d\n",a,b);}程序運行后的輸出結果是______。

A.6,1B.2,1C.6,0D.2,0

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

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

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

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

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

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

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

55.在單鏈表中,增加頭結點的目的是______。

A.方便運算的實現(xiàn)B.使單鏈表至少有一個結點C.標識表結點中首結點的位置D.說明單鏈表是線性表的鏈式存儲實現(xiàn)

56.下列選項中不屬于結構化程序設計方法的是()。

A.自頂向下B.逐步求精C.模塊化D.可復用

57.若有以下定義和語句()intu=010,v=Ox10,w=10;printf("%d,%d%d\n",u,v,w);則輸出結果是

A.8,16,10B.10,10,10C.8,8,10D.8,10,10

58.在數據庫系統(tǒng)中,用戶所見的數據模式為A.概念模式B.外模式C.內模式D.物理模式

59.一個棧的入棧序列是1,2,3,…,n,其輸出序列為P1,P2,P3,…,Pn,若p1=n,則pi為()。

A.iB.n=iC.n-i+1D.不確定

60.有下列程序段:intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數據應該是()。

A.任意正奇數B.任意負偶數C.任意正偶數D.任意負奇數

四、選擇題(20題)61.設有以下函數:

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

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

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

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

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

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

62.下列描述錯誤的是()。

A.繼承分為多重繼承和單繼承

B.對象之問的通信靠傳遞消息來實現(xiàn)

C.在外面看不到對象的內部特征是基于對象的“模塊獨立性好”這個特征

D.類是具有共同屬性、共同方法的對象的集合

63.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P

64.

65.

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

main

{inti=0,S=0;

for(;;)

{

if(i==3||i==5)continue;

if(i==6)break;

i++;

s+=i:

};

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

}

A.10B.13C.21D.程序陷入死循環(huán)

66.

67.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

程序的運行結果是()。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

68.

69.

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

#include<stdio.h>

main

{inti;

for(i=1;i<=10,i++)

{if((i*i>=20)&&(i*i<=100))

break;

}

printf("%d\n",i*i;

}

A.49B.36C.25D.64

70.下列關于棧的描述中錯誤的是()。

A.棧是先進先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針

71.有以下程序:

voidmain()

{inta=1,b;

for(b=1;b<1;b++)

{if(a>=8)break;

if(a%2==1){a+5;continue;}

a-=3;

}

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

}

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

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

72.c源程序中不能表示的數制是()。

A.二進制B.八進制C.十進制D.十六進制

73.下面的函數調用語句中func函數的實參個數是

func(f2(A1,A2),(A3,A4,A5),(A6,max(A7,A8)));

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

74.

有以下程序:

main

{inta=0,b=0;

a=10;/*給a賦值

b=20;給b賦值*/

printf("a+b=%d\n",a+b);//輸出計算機結果

}

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

A.a+b=10B.a+b=30C.30D.出錯

75.有以下程序:

main()

{inta[3][3],*p,i;

p=&a[1][1];

for(i=0;i<4;i++)p[i]=i+1;

printf("%d\n",a[1][2]);

}

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

A)3B)6

C)9D)2

76.

77.以下敘述中不正確的是

A.預處理命令都必須以#號開始

B.在程序中凡是以#號開始的語句行都是預處理命令行

C.宏替換不占用運行時間,只占編譯時間

D.以下定義是正確的:#definePI3.1415926;

78.

79.(16)數據流圖用于抽象描述一個軟件的邏輯模型,數據流圖由一些特定的圖符構成。下列圖符名不屬于數據流圖合法圖符的是_____。

A.控制流

B.加工

C.數據存儲

D.源和潭

80.有兩個關系R和T如下:

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

五、程序改錯題(1題)81.下列給定程序中,函數proc的功能是計算正整數m各位上數字的平方和。 例如,輸入498,則輸出應該是161。 請修改程序中的錯誤,使它能得到正確結果。 注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。 試題程序: #include<stdlib.h> #include<stdio.h> #include<conio.h> longproc(10ngm) {//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum); } voidmain {longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n)); }

六、程序設計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數fun,其功能是:刪除字符串中所有的*號。編寫函

數時,不得使用c語言提供的字符串函數。

例如,字符串中的內容為:****A*BC*DEF*G*******刪除*后字符串中的內容應當

是:ABCDEFG。

注意:部分源程序在文件PROGl.C中。

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。

參考答案

1.C

2.B解析:本題中,structex是結構體類型名,ex-ample是結構體變量名。

3.B

4.A

5.C棧是先進后出的數據結構,在對棧操作的整個過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來完成,因此本題答案為c)。

6.D

7.D[解析]字符串是一個特殊的數組,所以按照數組的規(guī)則,s1應該指向的是數組的首地址,即"abc的第一個字符的地址。s2指向的是"123"的第一個字符的地址。調用swap函數之后交換的是兩個字符串的第一個字符ai和1的內容,所以打印輸出為D)。

8.B

9.C在C語言中,main函數也可以有參數,例如,main(intar90,char*argv),argc是指字符串的指針數組,而其他幾項表達不正確。

10.Dc語言規(guī)定,一個字符常量代表ASCII碼字符集里的一個字符,在群序中用單引號括起來,以便區(qū)分。'\v'表示的是豎向跳格:'kx2a'表示的是兩位十六迸制數;'a'表示的是字符a對應的ASCII碼值。"\0"用雙引號故不正確。

11.C

12.A

13.CA選項錯誤,因為p是指向一個指針數組,而數組名相當于常量,不能重新賦值。B選項錯誤,因為p[0]是一個int指針,也就是int*,而a是一個指向指針的指針int**。C選項正確,因為p[0]是int*,a[1][2]是int,&a[1][2]是int*,類型吻合。D選項錯誤,因為a作為數組名,不能取地址,即使能取,P[1]是int*,&a是int***,類型不吻合。故本題答案為C選項。

14.CC)【解析】數據庫一旦發(fā)生故障,需要及時進行故障恢復,并由數據庫管理員負責執(zhí)行故障恢復。

15.D解析:C語言規(guī)定,對于二維數組,只可以省略第一個方括號中的常量表達式,而不能省略第二個方括號中的常量表達式:二維數組的一般定義格式是:類型說明符數組名[常量表達式][常量表達式]。

16.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進先出”的原則組織數據的。

【知識拓展】“隊列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進先出,后進后出。

17.A

18.D

19.C解析:主函數main()定義了指向字符串的指針和一個字符數組,接著調用fun(s,t)函數,進行實參向形參傳遞,函數fun()第一個while語句判斷*a中的值為“*”時繼續(xù)掃描,當遇到不是“*”時結束,接著第二個while循環(huán)語句,將*a中從“a”開始的后續(xù)所有字符都賦予*b,也就是t[80]中的內容為“a*b****”,所以此題的運行結果為選項C)。

20.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。本題中,詳細設計、軟件編碼和軟件測試都屬于軟什開發(fā)階段;維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費代價最大的一個階段.軟件工程學的一個目的就是提高軟件的可維護性,降低維護的代價。

21.4545解析:假設線性表的長度為n,則在最壞情況下,冒泡排序需要經過遍的從前往后掃描和遍的從后往前掃描,需要比較次數為。

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

23.中序中序解析:在先左后右的原則下,根據訪問根結點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。后序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結點,最后遍歷左子樹。

24.100010100010解析:先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。

25.D

26.typedefintArrInt[4][10];

27.0。0。解析:表達式中將實型常量2.5和算術表達式1.25*(3.7+2.3)的值強制轉換為整型后參與運算。

28.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結束for循環(huán)直接跳出循環(huán)體外。當i=1時,因為if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時i自加1;執(zhí)行第二次for循環(huán)時,i:3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時i自加1執(zhí)行第三次for循環(huán)時,i=5,訌語句條件滿足,所以執(zhí)行printf('%d\\n',i)輸出5,然后break語句跳出了for循環(huán)。

29.8888解析:C語言規(guī)定,以0開頭的整型常量為八進制。另外,在primf()函數中,%X表示以十六進制無符號形式輸出一個整數,且十六進制中的ABCDEF為大寫字母。本題的輸出應該是八進制210的十六進制形式。將八進制轉換為十六進制,可以先將其轉換為二進制。因為1位八進制表示3位二進制,4位二進制表示1位十六進制。(210)8=(10001000)2=(88)16,故本題輸出為880

30.結構結構解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結構進行測試。

31.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關系表達式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當y=0時,*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=2,所以z=2;當y-1時,*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=4,所以z=4;當y=2時,*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=6,所以z=6;循環(huán)結束。因此輸出z的結果為6。

32.00解析:在賦值運算中。如果表達式中變量和常量的數據類型不一致就會自動進行類型轉換。系統(tǒng)會計算1.0/c2,由于1.0是實型,所以均先轉化為雙精度型0.500000,再和c1轉化后的雙精度數相乘得0.500000。但其要賦值給整型變量c3,故要進行強制轉換,c3的值為0。

33.JD

34.3!feof(f1)3\r\n!feof(f1)解析:要實現(xiàn)文件復制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數,加上程序名本身,故argc的值至少為3,因此第一空應填3。while循環(huán)中語句fputc(fgetc(f1),(f2);的目的是將f1中的字符依次讀出并寫入到f2對應的文件中去,直至文件f1結束為止,因此第二空為!feof(f1)。

35.

36.d1.dat"rb"d1.dat,'rb'解析:打開文件的函數為fopen('文件名','mode'),其中'mode'表示文件的打開方式。如果打開的是二進制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開。'w'表示以寫方式打開,如果已存在該文件名的文件,文件中的內容將被清空。若文件名不存在,則將創(chuàng)建該文件。'a'為追加方式打開。若文件存在時,將打開這個文件并且在文件的末尾進行追加。當文件不存在,將創(chuàng)建新文件。'r+'打開一個已存在文件用于更新(可讀可寫)。\'w+'創(chuàng)建一個新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。'a+'打開用于追加,當文件不存在時,創(chuàng)建新文件,并在文件末尾進行追加(可讀可寫)。根據題意,應該填'd1.dat','rb'。

37.33333333解析:本題考查for循環(huán),for(cc=1;cc<=4;cc++)表示循環(huán)4次,a+=3表示每次a的值增加3,但是子函數中沒有將變量a定義為static類型,所以每次調用完子函數之后,變量a所做的改變都不能保存,這樣在下一次調用子函數時,a的初值仍是0,所以不管調用多少次,子函數輸出始終是3。

38.x=2y=3。x=2,y=3。解析:使用scanf函數輸入數據,普通字符必須原樣輸入,本題的普通字符為'x'、'='、','、'y'正確的輸入格式是x=2,y=3。

39.實體完整性實體完整性

40.6868解析:本題考查如何用指針引用數組元素。本題先定義了一個指向字符型數組str的指針p,指針p指向數組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d,格式輸出的,即輸出其相應ASCII碼值68。

41.C運算器和控制器都是CPU的一部分,顯然不可能是正確答案,而硬盤中的程序、數據首先要調入內存儲器中,因為它不能直接與CPU打交道。

42.C

43.C解析:線性結構,是指數據元素只有一個直接前件元素和直接后件元素。線性表是線性結構。棧和隊列是指對插入和刪除操作有特殊要求的線性表,樹是非線性結構。

44.C

45.A

46.D

47.D解析:結構體變量所占內存長度是各成員占的內存長度之和,每個成員分別占有自己的內存單元;共用體變量所占的內存長度等于最長的成員的長度。結構體變量aa中,成員r1占2個字節(jié),r2占8個字節(jié),r3占4個字節(jié),共用體ua占8個字節(jié),所以共占用2+8+4+8=22個字節(jié)。

48.B

49.B

50.C解析:scanf輸入字符串有一點要注意的是,格式控制串必須用%s。注意:gets函數和puts函數的作用。

51.C

52.B解析:本題主要考查的是C語言中的整除、求余以及邏輯值的概念。在C語言中,/號的兩邊如果都是整數的話,返回的結果也是整數,如果除不凈則舍去小數部分。%是求余運算,它的運算對象只能是整型,運算結果是兩數相除后所得的余數,當運算量為負數時,結果的符號與被除數相同。因此,執(zhí)行語句a=d/10%9;后,a=25/10%9=2%9=2。C語言中沒有專門的邏輯值,而是用整型值來代替。當整型值作邏輯值使用時,非零即表示“真”,零表示“假”,而邏輯值當整型值使用時,“真”等于1,“假”等于0。因此,執(zhí)行語句b=a&&(-1);后b=2&&(-1)=“真”&&“真”=“真”=1。所以,4個選項中選項B符合題意。

53.D【解析】算法的空間復雜度是指執(zhí)行這個算法所需要的內存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數據所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數據結構所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數,則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術,以便盡量減少不必要的額外空間。

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

55.A\nA?!窘馕觥款^結點不僅標識了表中首結點的位置,而且根據單鏈表(包含頭結點)的結構,只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結點的目的是為了便于運算的實現(xiàn)。

\n

56.D解析:20世紀70年代以來,提出了許多軟件設計方法,主要有①逐步求精:對復雜的問題,應設計一些子目標作過渡,逐步細化;②自頂向下:程序設計時應先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標。不要一開始就過多追求眾多的細節(jié),先從最上層總目標開始設計,逐步使問題具體化;⑧模塊化:一個復雜問題,肯定是由若干稍簡單的問題構成。模塊化是把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊,而可復用是面向對象程序設計的一個優(yōu)點。

57.A

58.B解析:數據庫管理系統(tǒng)的三級模式結構由外模式、模式和內模式組成。外模式也稱子模式或用戶模式,是指數據庫用戶所看到的數據結構,是用戶看到的數據視圖。模式也稱邏輯模式,是數據庫中對全體數據的邏輯結構和特性的描述,是所有用戶所見到的數據視圖的總和。內模式也稱存儲模式或物理模式,是指數據在數據庫系統(tǒng)內的存儲介質上的表示,即對數據的物理結構和存取方法的描述。根據上述介紹可知,數據庫系統(tǒng)中用戶所見到的數據模式為外模式。因此,本題的正確答案是B。

59.C解析:棧是先進后出的線性表。當p1=n,即n是最先出棧的,根據棧的運算原理,n必定是最后入棧的,那么輸入順序必定是1,2,3,…,n,則出棧的序列是n,n-1,n-2,…,1,所以答案是C。

60.D解析:因為變量t的初始值等于1,經過第一次dowhile循環(huán)中,執(zhí)行t=t-2這條語句一次,所以變量t的值為-1,判斷關系表達式t!=n是否成立,如果關系表達式成立,則執(zhí)行第二次循環(huán),再執(zhí)行t=t-2這條語句一次,所以變量t的值為-3,接著再判斷關系表達式t!=n是否成立,如果關系表達式成立,執(zhí)行第三次循環(huán),否則退出循環(huán)。由此可知,所以只要輸入變量n的值為負奇數,則一定會使t==n成立,則退出dowhile循環(huán)。

61.D函數的參數可以是指針類型。它的作用是將一個變量的地址傳送到另一個函數中。函數名代表函數的人口地址,指向

溫馨提示

  • 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

提交評論