2022-2023年浙江省舟山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2022-2023年浙江省舟山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2022-2023年浙江省舟山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2022-2023年浙江省舟山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2022-2023年浙江省舟山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

2022-2023年浙江省舟山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下程序的運行結果是______。#include<stdio.h>main(){inta[]:{1,2,3,4,5,6,7,8,9,10,11,12):int*p=a+5,*q=NULL:*q=*(p+5):printf("%d%d\n",*p,*q);}

A.運行后報錯B.66C.612D.55

2.下列程序的輸出結果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}

A.22B.76C.72D.62

3.下面程序段的運行結果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

4.下列程序段輸出的字符串長度為()。printf("\\aaa\'ccc\bddd\'");

A.11B.12C.13D.17

5.設有一個二維數(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

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

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

7.以下程序擬實現(xiàn)計算s=1+2*2+3*3+…+n*n+…,直到s>1000為止。#include<stdio.h>main(){ints,n;s=1;n=1;do{n=n+1;s=s+n*n;}while(s>1000);printf(“s=%d\n”,s);}程序運行后,不能得到正確結果,以下修改方案正確的是()。

A.把“while(s>1000);”改為“while(s<=1000);”

B.把“s=1”改為“s=0”

C.把“n=1;”改為“n=0;”

D.把“n=n+1”改為“n=n*n”

8.數(shù)據(jù)處理的最小單位是()。

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項D.數(shù)據(jù)結構

9.

10.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+c-k值的類型為:

A.intB.doubleC.floatD.char

11.設二叉樹的中序序列為BCDA,前序序列為ABCD,則后序序列為()。

A.CBDAB.DCBAC.BCDAD.ACDB

12.設有如下函數(shù)定義:intfun(intk){if(k<1)return0;elseif(k==l)returnl;elsereturnfun(k-1)+1:}若執(zhí)行調用語句:“n=fun(3);”,則函數(shù)fun總共被訶用的次數(shù)是()。A.2B.3C.4D.5

13.設S為C語言的語句,計算機執(zhí)行下面算法時,算法的時間復雜度為()。A.n2B.O(nlgn)C.O(n)D.O(n2)

14.下面的哪一個保留字不能作為函數(shù)的返回類型()。

A.voidB.intC.newD.long

15.設有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯誤的是()。A.變量demo與成員d2所占的內存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

16.若以下變量均是整型,且num=sum=7;則執(zhí)行表達式sum=num++,sum++,++num后sum的值為()。

A.7B.8C.9D.10

17.若在線性表中采用折半查找法查找元素,該線性表應該()A.元素按值有序B.構采用順序存儲結C.元素按值有序且采用順序存儲結構D.元素按值有序且采用鏈式存儲結構

18.設C語言中,一個int型數(shù)據(jù)在內存中占2個字節(jié),則unsignedint型數(shù)據(jù)的取值范圍為()。

A.0~255B.0~32767C.0~65535D.0~2147483647

19.有以下定義和語句

StructWorkers

{intnum;charname[20];charc;

struct

{intday;intmonth;intyear;}s;

};

StructWorkersW,*pe;

PW=&W;

能給W中yeaR成員賦1980的語句是A.*pW.yeaR=1980;

B.W.yeaR=1980;

C.pW->yeaR=1980;

D.W.s.yeaR=1980;

20.

二、2.填空題(20題)21.在面向對象方法中,允許作用于某個對象上的操作稱為【】。

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

#include<stdio.h>

main()

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

if(x<y)

if(y<0)z=0;

elsez+=1;

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

}

23.若輸入tear、test、arj,則下列程序的運行結果為【】。

main()

{char*strl[20],*str2[20],*str3[20];

charswap();

scanf("%s",str1);

scanf("%s",str2);

scanf("%s",str3);

if(strcmp(str1,str2)>0)swap(str1,str2);

if(strcmp(str1,str3)>0)swap(str1,str3);

if(strcmp(str2,str3)>0)swap(str2,str3);

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

}

charswap(p1,p2)

char*p1,*p2;

{char*p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);

}

24.實現(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);

}

25.下面定義的結構體類型包含3個成員,其中成員變量x用來存入整型數(shù)據(jù),成員變量y用來存入實型數(shù)據(jù),成員變量next是指向自身結構體的指針。請將定義補充完整。

structstu

{intx;

【】

【】next;}

26.若有定義語句chars[100],d[100];intj=0,i==0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)

while(s[i]=【】;j++;}

d[j]=0;

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

#include<stdio.h>

main()

{inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("\n%2d,%2.1f,%2.11f",a,b,C);

}

28.數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為【】。

29.設有以下結構體類型:

structst

{charname[8];

intnum;

floats[4];

}student[50];

并且結構體數(shù)組student中的元素都已有值。若要將這些元素寫到硬盤文件fp中,請將以下fwrite語句補充完整:

fwrite(student,【】,1,fp);

30.以下程序中,主函數(shù)調用了LineMax函數(shù),實現(xiàn)在N行M列的二維數(shù)組中,找出每一行上的最大值。

請?zhí)羁铡?/p>

#defineN3

#defineM4

voidLineMax(intx[N][M])

{inti,j,P;

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

{p=0;

for(j=1;j<M;j++)

if(x[i][p]<x[i][j])【】;

printf("Themaxvalueinline%dis%d\n",i,【】);

}

main()

{intx[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};

【】;

}

31.下面程序的運行結果是______。

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]]='A'+i+321;

sub(s,7,SLZE-1);

for(i=0;i<SIZE;i++)printf("%c",s[i]);

printf("\n");}

sub(char*a,inttl,intt2)

{charCh;

while(t1<t2)

{ch=*(a+t

32.以下程序運行的結果是【】。

#include<conio.h>

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

{inti,j=0;

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

if(i%7==0‖i%11==0)

a[j++]=i;

*n=j;}

main()

{intaa[M],n,k;

clrscr();

fun(10,aa,&n);

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

if((k+1)%20==0)printf("\n");

elseprintf("%4d",aa[k]);

printf("\n");}

33.有如下程序段:

main(intargc,char*argv[])

{intn,i=0;

while(argv[1][i]!='\0')

{n=fun();i++;}

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

}

intfun()

{staticints=0;

s+=1;

returns;

}

假設程序經編譯、連接后生成可執(zhí)行文件exam,exe,若鍵入如下命令行:

examl23<回車>

則運行結果為【】。

34.設有以下程序,為使之正確運行,請在橫線中填入應包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

______

main()

{printf("\n");

try_me();

printf("\n");}

35.對軟件是否能達到用戶所期望的要求的測試稱為【】。

36.下列程序的運行結果為【】。

main()

{inta,b,c,x,y,z;

a=10;b=2;

c=!(a%b);x=!(a/b);

y=(a<b)&&(b>=0);

z=(a<b)||(b>=0);

printf("c=%d,x=%d,y=%d,z=%d\n",c,x,y,z);

}

37.下面程序的輸出是【】。

main()

{intarr[10],i,k=0;

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

arr[i=i;]

for(1;i<4;i++)

k+=arr[i]+i;

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

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

main

{

inna=b=c=5:

if(c=a+b)

printf("yes\n);

else

printf("no\n);

}

39.數(shù)據(jù)結構分為邏輯結構與存儲結構,線性鏈表屬于【】。

40.以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構成的三角形字符陣列圖形。例如,輸入整數(shù)5時(注意:n不得大于10),程序運行結果如下:

ABCDE

FGHI

JKL

MN

O

請?zhí)羁胀瓿稍摮绦颉?/p>

main()

{inti,j,n;charch='A';

scanf("%d",&n);

if(n<11)

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

{for(j=1;j<=n-i+1;j++)

{printf("%2c",ch);

【】;

}

【】;

}

}

elseprintf("nistoolarge!\n")

printf("\n"0);

}

三、1.選擇題(20題)41.已知函數(shù)fread的調用形式為fread(buffer,size,count,fp);其中buffer代表的是()。

A.存放讀入數(shù)據(jù)項的存儲區(qū)

B.一個指向所讀文件的文件指針

C.一個指針,是指向輸入數(shù)據(jù)存放在內存中的起始地址

D.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)

42.在微機中,bit的中文含義是()。

A.二進制位B.字節(jié)C.字D.雙字

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

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

44.以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。程序在編譯時出錯。main()/*Beginning*/{intr;floats;scanf("%d",&);s=*π*r*r;printf("s=%f\n",s);}出錯的原因是

A.注釋語句書寫位置錯誤

B.存放圓半徑的變量r不應該定義為整型

C.輸出語句中格式描述符非法

D.計算圓面積的賦值語句中使用了非法變量

45.設有“intx=11;”則表達式(x++*1/3)的值是______。

A.3B.4C.11D.12

46.若a是noat型變量,b是unsigned型變量,以下輸入語句中,合法的是______。

A.scanf("%6.2f%d",&a,&b);

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

C.scaaf("%f%3o",&a,&b);

D.scanf("%f%f",&a,&b);

47.要正確定義并初始化一個數(shù)組a,它含有5個元素,則正確的語句是______。

A.inta[5]=(0,0,0,0,0);

B.inta[5]={};

C.inta[]={0,0,0,0,0};

D.inta[]={5*0};

48.下面說法正確的是()。A.A.一個C程序可以有多個主函數(shù)

B.一個C語言的函數(shù)中只允許有一對花括號

C.C程序的書寫格式是自由的,一個語句可以寫在一行上,也可以寫在多行內

D.在對C程序進行編譯時,可以發(fā)現(xiàn)注釋行中的拼寫錯誤

49.有以下程序#include<string.h>main(intargc,char*argv[]){inti,len=0;for(i=1;i<argc;i++)len+=strlen(argv[i]);printf("%d\n",len);}程序編譯連接后生成的可執(zhí)行文件是exl.exe,若運行時輸入帶參數(shù)的命令行是:exlabcdefg10<回車>則運行的結果是:

A.22B.17C.12D.9

50.詳細設計的結果基本決定了最終程序的()。

A.代碼的規(guī)模B.運行速度C.質量D.可維護性

51.在軟件開發(fā)過程中,軟件結構設計是描述______。

A.數(shù)據(jù)存儲結構B.軟件體系結構C.軟件結構測試D.軟件控制過程

52.有下面程序段#include"stdio.h"#include"string.h"main(){chara[3][20]={{"china"};{"isa"},{bigcountry!"}};chark[100]={0},*p=k;inti;for(j=0;j<3;i++){p=strcat(p,a[i]);}i=strlen(p);printf("%d\n",i);}則程序段的輸出結果是

A.18B.19C.20D.21

53.下列敘述中,不正確的是

A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結構有關

B.算法的空間復雜度是指執(zhí)行這個算法所需要的內存空間

C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D.算法的時間復雜度是指執(zhí)行這個算法所需要的時間

54.下列程序的輸出結果是()。main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}

A.42B.45C.56D.60

55.對于長度為n的線性表,在最壞的情況下,下列各排序法所對應的比較次數(shù)中正確的是______。

A.冒泡排序為n/2B.冒泡排序為nC.快速排序為nD.快速排序為n(n-1)/2

56.軟件調試的目的是______。

A.發(fā)現(xiàn)錯誤B.改正錯誤C.改善軟件的性能D.挖掘軟件的潛能

57.關系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼

58.以下程序的輸出結果是

#include

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

main()

{p=(int*)malloc(sized(int));

f(p,a);

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

free(p);}

f(int*s,intp[][3])

{*s=p[1][1];}

A.1B.4C.7D.5

59.如果文件1包含文件2,文件2中要用到文件3的內容,而文件3中要用到文件4的內容,則可在文件1中用三個#include命令分別包含文件2、文件3和文件4。在下列關于這幾個文件包含順序的敘述中,正確的一條是()

A.文件4應出現(xiàn)在文件3之前,文件3應出現(xiàn)在文件2之前

B.文件2應出現(xiàn)在文件3之前,文件3應出現(xiàn)在文件4之前

C.文件3應出現(xiàn)在文件2之前,文件2應出現(xiàn)在文件4之前

D.出現(xiàn)的先后順序可以任意

60.若x和y代表整型數(shù),以下表達式中不能正確表示數(shù)學關系|x-y|<10的是()。

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<-10||!(y-x)>10

D.(x-y)*(x-y)<100

四、選擇題(20題)61.

62.有以下程序:

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

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

A.函數(shù)的返回值類型不能是結構體類型,只能是簡單類型

B.函數(shù)可以返回指向結構體變量的指針

C.可以通過指向結構體變量的指針訪問所指結構體變量的任何成員

D.只要類型相同,結構體變量之間可以整體賦值

64.

65.有兩個關系R,S如下:

由關系R通過運算得到關系s,則所使用的運算為()。

A.選擇B.插入C.投影D.連接

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

#include<stdio.h>

voidmain()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

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

67.軟件開發(fā)中需求分析的主要任務是()。

A.定義和描述目標系統(tǒng)“做什么”B.獲取需求C.給出軟件解決方案D.需求評審

68.若i和k都是int類型變量,有以下for語句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關于語句執(zhí)行情況的敘述中正確的是()。

A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構成無限循環(huán)

69.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達式是______。

A.&t[3][2]B.t[3]C.t[1]D.*t[2]

70.在位運算中,操作數(shù)每左移兩位,其結果相當于()。

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4

71.在JavaScript語言中,擁有onsubmit事件的對象是()。

A.documentB.eventC.windowD.form.

72.有以下程序:

#include<stdio.h>

#defineN3

voidfun(inta[][N],intb[])

{inti,j;

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

{b[i]=a[i][0];

for(j=i;j<N;j++)

if(b[i]<a[i][j])b[i]=a[i][j];

}

}

main()

{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;

fun(x,y);

for(i=0;i<N;i++)printf("%d,",y[i]);

printf("\n");

}

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

A.2,4,8,

B.3,6,9,

C.3,5,7,

D.1,3,5,

73.以下與存儲類別有關的四組說明符中,全部屬于靜態(tài)類的一組是()。

A.extem和static

B.auto和static

C.register和static

D.register和ex[erll

74.有以下程序

main()

{chara[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’\0’};

inti,j;

i=sizeof(a);

j=strlen(a);

printf("%d,%d\b",i,j);

}

程序運行后的輸出結果是

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

75.專門的關系運算不包括下列的()運算。

A.連接運算B.選擇運算C.投影運算D.并運算

76.

若輸入“abcdef”“abdef”,下述程序的輸出結果為()。

#include<stdio.h>

#include<string.h>

main

{intn;

chars1[20],s2[20],*p1,*p2;

scanf("%s",s1);

scanf("%S",s2);

p1=s1;

p2=s2;

n=strcmp(p1,p2);

printf("Vood\n",n);

}

A.-1B.0C."abcdef"D."abdef"

77.

78.有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(xiàn)(a++,b++));}程序運行后的輸出結果是

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

79.第

13

設有程序段

intk=10;

while(k=0)k=k-1;

則下面描述中正確的是A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的作用是:將字符串tt中的大寫字母都改為對應的小寫字母,其他字符不變。

例如,若輸入“I,anl,A,Student”,則輸出“i,am,a,student”。

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

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

試題程序:

六、程序設計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內容為“****A*BC*DEF*G****”,刪除后,字符串中的內容應當是“ABCDEFG”。注意:部分源程序給出如下。請勿改動maini)函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(chara){voidmain{chars[81];print{("Enterastring:\n");gets(s):fun(S);printf("Thestringafterdeleted:\n");puts(s);}

參考答案

1.A

2.C解析:函數(shù)slzeof(a)的功能是求出字符串a中的字符占用存儲空間的大小,由于字符數(shù)組a有長度為7,所以i=7;函數(shù)strlen(a)的功能是:求出字符串a的長度。而每個字符串都以'\\0'為字符串的結束標記,所以j的值等于2。

3.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個字符串,然后將指針變量p加3,即使其指向字符串的第四個元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個十進制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。

strcpy的調用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復制到目的地址中,這種復制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復制到目的地址字符串的后面。

strlen的調用格式是:strlen(字符串地址),其功能是返回字符串中字符的個數(shù)。

那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結果是4。因此本題正確的答案是C。

4.C解析:轉義字符有1個\\\\、2個\\'、1個\\b,普通字符有3個a、3個c、3個d,共13個字符。

5.C

6.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結點。根據(jù)前序遍歷的結果可知,a是根結點。由中序遍歷的結果dgbaechf可知,d、g、b是左子樹的結點,e、c、h、f是右子樹的結點。再由前序遍歷的結果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結果dgb可知,d、g是b左邊子樹的結點,b右邊子樹無結點。再由前序遍歷結果dg可知,d為b左子樹的根,g是以d為根的子樹的右結點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結點位置。所以可知后序遍歷的結果是D。

7.A題目中程序不能實現(xiàn)預期功能是因為while的循環(huán)條件錯誤。選項B中把“s=1;”改為s=0;”,最終的結果“s=4”,與題目原意不同。選項C中把“n=1;”,改為“n=0;”最終的結果“s=2”,與題目原意不同。選項D中把“n=n+1;”改為“n=n*n;”,最終的結果“s=2”,與題目原意不同。選項A正確地修改了while循環(huán)條件,可以得到正確結果。故本題答案為A選項。

8.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體;數(shù)據(jù)結構是指數(shù)據(jù)之間的相互關系和數(shù)據(jù)運算。故正確答案為選項C)。

9.D

10.B解析:雙目運算中兩邊運算量類型轉換規(guī)律:

運算數(shù)1運算數(shù)2轉換結果類型

短整型長整型短整型->長整型

整型長整型整型->長整型

字符型整型字符型->整型

有符號整型無符號整型有符號整型->無符號整型

整型浮點型整型->浮點型

在a/b的時候,a、b的類型不一致,根據(jù)類型轉換規(guī)則,把整型轉換成double類型,之后的加、減類似。轉化規(guī)則為char,short->int->unsigned->long->double←float。

11.B二叉樹的前序序列為ABCD,由于前序遍歷首先訪問根節(jié)點,可以確定該二叉樹的根節(jié)點是A。再由中序序列為BCDA,可知以A為根節(jié)點的該二叉樹只存在左子樹,不存在右子樹,故后序序列為DCBA。本題答案為B選項。

12.B此題考查簡單的循環(huán),當執(zhí)行n=fun(3),則函數(shù)fun執(zhí)行3次。

13.D

14.C

15.D共用體變量中的所有成員共享一段公共存儲區(qū),所有成員的首地址相同。在每一個時刻所有的成員中只有一個有效,即只有最后一個被賦值的成員有效,其余的成員無效。

16.A

17.C

18.C

19.D解析:結構體structureworkers中的成員s是結構體類型,給w中成員year賦值的語句是w.s.year=1980,故選D。

20.A

21.方法方法解析:在面向對象方法中,方法是指允許作用于某個對象上的各種操作。

22.11解析:ifelse語句的功能是:若表達式的值為真,執(zhí)行語句1,并跳過其他語句,執(zhí)行ifelse語句的下一條語句,若表達式的值為假,跳過語句1,執(zhí)行語句2,依次往下判斷。題中,x=3,y=2,第一個if語句的控制條件x<y就不滿足,又沒有與之配對的else語句,所以直接執(zhí)行printf語句,在整個過程中變量z的值都沒發(fā)生變化。

23.arjteartest

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

25.floaty;structstu*floaty;\r\nstructstu*解析:float定義變量y為實型變量。要求變量next是指向自身結構體的指針,因此變量next應該是結構體stu的指針型變量。

26.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應使用i的自增后置來實現(xiàn)。

27.1234123.512345.51234,123.5,12345.5解析:在primf()函數(shù)的格式控制符中:'%2d'表示輸出一個有符號整數(shù),如果輸出長度小于2,則左端補以空格,否則按實際長度輸出。所以本題中的a按原樣輸出為1234:'%2.1尸表示輸出一個單精度實數(shù),只輸出小數(shù)點后1位,后面若有小數(shù)則四舍五入,如果輸出長度小于2,則左端補以空格,否則按實際長度輸出。所以本題中的b四舍五入到小數(shù)點后1位再輸出為123.5;'%2.11f'除了表示輸出一個雙精度實數(shù)外,其余參數(shù)和'%2.1f'一樣。所以本題中的c四舍五入到小數(shù)點后1位再輸出為12345.5。故輸出結果是:1234,123.5,12345.5。

28.物理獨立性物理獨立性解析:數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為物理獨立性。

29.sizeof(structst)*50sizeof(structst)*50解析:fwrite函數(shù)的一般調用形式為:fwrite(buffer,size,count,fp);其中:buffer是一個指針變量,是要輸出數(shù)據(jù)的起始地址;size是要寫的字節(jié)數(shù);count是要寫多少個size字節(jié)的數(shù)據(jù)項;fp是文件指針。

30.p=jx[i][p]LineMax(x)

31.本題主要考查了字符變量可參與的運算。因為字符在計算機中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術運算等,某字符的大寫字母的ASCII碼值比它對應的小寫字母ASCII碼值小32。\r\n\r\n

32.77解析:解答本題的關鍵是要讀懂程序,要找出能被7或11整除的所有整數(shù),注意數(shù)學中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“‖”運算符,若要找能同時被7和11整除的所有整數(shù)則在if的條件中應使用“&&”運算符。

當然,如果m的值輸入50,即表達式fun(10,aa,&n);為fun(50,aa,&n);時輸入結果為:711142122283335424449。

33.66解析:本題中命令行輸入2個符號串,所以argc=2,argv[0]指向符號串'exam',argv[1]指向符號串'123',while循環(huán)的作用是計算argv[1]所指向的字符串的長度,執(zhí)行完while循環(huán)后n=3,所以n*argc=3×2=6。

34.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結尾,如果其他文件想使用這個函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進來。

35.有效性測試有效性測試

36.c=1x=Oy=Oz=1

37.1212解析:本題通過第—個for循環(huán)將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結果為12,

具體分析如下:

i+1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

38.yesyes解析:if...else構造了一種二路分支選擇,是一種最基本的選擇結構。本題中,if后面括號里的表達式為c=a+b為真(即c=1+3=4為真);所以,執(zhí)行s1,即執(zhí)行prinff('yes\\'),最后輸出yes。

39.存儲結構

40.ch++;或++ch;或ch=ch+1;或ch=1+ch;或ch+=1;priintf("\n");或putchar('\n');ch++;或++ch;或ch=ch+1;或ch=1+ch;或ch+=1;\r\npriintf('\\n');或putchar(\'\\n\');解析:因為ch被初始化為\'A\',而內循環(huán)中有—條輸出ch的語句,整個程序都沒有一條改變ch值的語句。所以,第1空應該填ch++或其它類似的表達式,以使每次輸出一個字母后ch都能變?yōu)橄乱粋€字母。內循環(huán)結束后,代表這一行已經輸出完畢,此時即將開始下一行的輸出,所以在第2空位置應該輸出一個換行符,故應填入printf('\\n');或其他等價形式。

41.C解析:數(shù)據(jù)塊讀取函數(shù)調用形式:fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說明:“buffer”是一個指針,對fread來說,它是讀入數(shù)據(jù)的存放地址。對fwrite來說,是要輸出數(shù)據(jù)的地址。“size”是要讀寫的字節(jié)數(shù):“count”是要進行讀寫多少個size字節(jié)的數(shù)據(jù)項;“fp”是指文件型指針。

42.A在微機中,信息的最小單位為二進制位,用bit來表示;8位二進制構成一個字節(jié),用Byte來表示;一個或一個以上字節(jié)可組成一個二進制表示的字,字長可以是8位、16位、32位或64位;兩個字長的字,稱為雙字。故本題正確答案是A\n【考點】科技\n學科專題(物理、化學、生物醫(yī)學、計算機)\n計算機數(shù)據(jù)存儲

43.A解析:數(shù)據(jù)流圖包括4個方面,即加工(轉換)(輸入數(shù)據(jù)經加工變換產生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體)。不包括選項中的控制流。

44.D解析:計算圓面積的賦值語句中使用了非法變量π。所以,答案為選項D)。注意:注釋語句可以出現(xiàn)在程序中的任意位置,故選項A)中的描述錯誤;圓的半徑可以是整型,也可以是實型,定義成哪種類型都不算錯,故選項B)中的描述錯誤;顯而易見,選項D)中的描述也錯誤。

45.A解析:該題主要考查兩個知識要點,x++是先引用x的值再加1,因此參與乘法運算的是x的原值11,分母11與分子3相除得3,故原式=11*1/3=3。

46.C

47.C解析:A項是錯誤的,賦值時用的是花括號而不是圓括號。B項錯在不能初始化時在花括號內為空。D項錯在不可以用表達式對數(shù)組一一賦值。C項雖然沒有直接定義數(shù)組的大小,但是初始化時只賦了5個元素的值,系統(tǒng)會自動定義數(shù)組的大小為5,這種形式是正確的。

48.C解析:本題涉及C語言基本的3個知識點:①C語言規(guī)定一個程序只允許有一個主函數(shù),一個函數(shù)內可以允許有多個花括號;②C程序的注釋部分僅僅是方便程序員閱讀,提高程序的可讀性和可移植性,它并不參與程序的編譯,所以編譯器也就不會發(fā)現(xiàn)注釋中的錯誤。

49.D解析:main()函數(shù)可以帶參數(shù),并且參數(shù)只能有兩個,第一個參數(shù)(argc)類型為整型用來記下命令行的參數(shù)個數(shù),第二個參數(shù)(argv)為一個字符型指針數(shù)組,其各個元素用來記下命令行各參數(shù)字符串的首地址。本題執(zhí)行時,argc的值為4,在循環(huán)中依次求出argv[1]、argv[2]和argv[3]指向的字符串('abcd'、'efg'和'10')的長度,并把它們加到變量len中,得到len的值9。所以最后輸出的len值為9,所以4個選項中D正確。

50.C解析:詳細設計階段的根本目標是確定應該怎樣具體的實現(xiàn)所要求的系統(tǒng),但詳細設計階段的任務還不是具體的編寫程序,而是要設計出程序的“藍圖”,以后程序員將根據(jù)這個藍圖寫出實際的程序代碼,因此,詳細設計階段的結果基本上就決定了最終的程序代碼的質量。

51.B解析:從工程管理解度來看,軟件設計分兩步完成:概要設計和詳細設計。概要設計(又稱結構設計)將軟件需求轉化為軟件體系結構、確定系統(tǒng)級接口、全局數(shù)據(jù)結構或數(shù)據(jù)庫模式。

52.B解析:字符串連接函數(shù)strcat的調用形式如下:strcat(s1,s2)。此函數(shù)用來把s2所指字符串的內容連接到s1所指的字符串后面,并自動覆蓋s1串末尾的尾標,函數(shù)返回s1的地址值。

53.D解析:算法的時間復雜度是指執(zhí)行算法所需要的計算工作量。

54.B解析:在C語言中,數(shù)組的下標默認為0,因此數(shù)組p的下標范圍為:0~7。程序循環(huán)過程為:第1次循環(huán)i=0,執(zhí)行循環(huán),并且i自加,得i=1,因此p[i]為p[1]=12,12%2=0,不執(zhí)行后面的語句;接著進行第2次循環(huán),此時i=1,小于7執(zhí)行循環(huán),并且i自加,得i=2,因此p[i]為p[2]=13,13%2=1,執(zhí)行后面的語句;這樣一直到退出循環(huán)。最后j的值為j=13+15+17=45。

55.D解析:存最壞情況下,快速排序退化為冒泡排序,冒泡排序法的基本過程參見本題的理論鏈接。冒泡排序的每個元素都要與它前面的元素相比較,因此比較次數(shù)為(n-1)+(n-2)+…+1=n(n-1)/2。

56.B解析:在對程序進行測試時會發(fā)現(xiàn)錯誤,這就要進行程序調試(排錯)。程序調試活動由三部分組成:一是錯誤定位,根據(jù)錯誤的外部表現(xiàn)形式,確定程序中出錯的位置,找出錯誤的內在原因;二是對程序進行修改,排除這個錯誤;三是進行回歸測試,防止引進新的錯誤。所以程序調試的目的就是診斷和改正程序中的錯誤。軟件調試不能改善軟件的性能,也不能挖掘軟件的潛能。

57.A解析:關系表中,每一行稱為一個元組,對應表中的一條記錄;每一列稱為表中的一個屬性,對應表中的一個字段;在二維表中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。

58.D解析:本題考查了二維數(shù)組元素引用的方法。題中用動態(tài)存儲分配函數(shù)malloc分配了一個int型數(shù)據(jù)長度大小的內存,然后指針p指向了這段內存,函數(shù)f()中對p所指向的數(shù)據(jù)進行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對應于實參a的元素5,所以輸出結果為5。

59.A

60.C解析:選項A用了一個絕對值函數(shù)abs(),故選項A正確;選項B中用了一個“&&”邏輯與,故選項B正確;選項C中,“||”左邊的式子如為真,將不再判斷其后的表達式的值,故選項C不正確;選項D為本題中數(shù)學關系式的一個等價命題,故選項D正確。所以,4個選項中選項C符合題意。

61.B

62.A外循環(huán)第一次i的值為1,內循環(huán)第一次j的初值為l,打印1*1=1;內循環(huán)第二次j的值為2,打印1$2=2;內循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內循環(huán)。外循環(huán)第二次i的值為2,內循環(huán)第一

溫馨提示

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

最新文檔

評論

0/150

提交評論