2021-2022年浙江省湖州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第1頁(yè)
2021-2022年浙江省湖州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第2頁(yè)
2021-2022年浙江省湖州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第3頁(yè)
2021-2022年浙江省湖州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第4頁(yè)
2021-2022年浙江省湖州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩109頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2021-2022年浙江省湖州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abcdefghijklmnopq

B.afgebcdhnopqmijklhnopqmijkl

C.efgabcdmnopqhijkl

D.mijklhnopqebcdafg

2.在最壞情況下比較次數(shù)相同的是()。A.冒泡排序與快速排序B.簡(jiǎn)單插入排序與希爾排序C.簡(jiǎn)單選擇排序與堆排序D.快速排序與希爾排序

3.定義int*swap()指的是______。

A.—個(gè)返回整型值的函數(shù)swap()

B.一個(gè)返回指向整型值指針的函swap()

C.一個(gè)指向函數(shù)swap()的指針,函數(shù)返回一個(gè)整型值

D.以上說(shuō)法均錯(cuò)

4.將兩個(gè)字符串連接起來(lái)組成一個(gè)字符串時(shí),選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

5.設(shè)R是一個(gè)二元關(guān)系,S是一個(gè)三元關(guān)系,則下列運(yùn)算中正確的是()。

A.R-SB.R×SC.R∩SD.R∪S

6.

讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一個(gè)文件指針,指向待讀取的文件

B.一個(gè)整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個(gè)內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址

D.一個(gè)內(nèi)存塊的字節(jié)數(shù)

7.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Sun,f,90,Sun,f,90

B.Zhao,m,85,Sun,f,90

C.Zhao,m,85,Qian,f,95

D.Sun,f,90,Qian,f,95

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

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

9.有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并

10.若變量已正確定義,有下列程序段:inta=3,b=5,c=7;if(a>B)a=b;c=a;if(c!=A)c=b;printf("%d,%d,%d\n",a,b,C);其輸出結(jié)果是()。A.程序段有語(yǔ)法錯(cuò)B.3,5,3C.3,5,5D.3,5,7

11.現(xiàn)有如下定義語(yǔ)句int*p,s[20],i;p=s;表示數(shù)組元素s[i]的表達(dá)式不正確的是

A.*(s+i)B.*(p+i)C.*(s=s+i)D.*(p=p+i)

12.設(shè)"char**s;",以下正確的表達(dá)式是()。

A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';

13.對(duì)線性表進(jìn)行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼值排好序

D.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼的檢索頻率排好序

14.下面關(guān)于圖的存儲(chǔ)的敘述中正確的是()。

A.用鄰接表法存儲(chǔ)圖,占用的存儲(chǔ)空間大小只與圖中邊數(shù)有關(guān),而與頂點(diǎn)個(gè)數(shù)無(wú)關(guān)

B.用鄰接表法存儲(chǔ)圖,占用的存儲(chǔ)空間大小與圖中邊數(shù)和頂點(diǎn)個(gè)數(shù)都有關(guān)

C.用鄰接矩陣法存儲(chǔ)圖,占用的存儲(chǔ)空間大小與圖中頂點(diǎn)個(gè)數(shù)和邊數(shù)無(wú)關(guān)

D.用鄰接矩陣存儲(chǔ)圖,占用的存儲(chǔ)空間大小只與圖中邊數(shù)有關(guān),而與頂點(diǎn)個(gè)數(shù)無(wú)關(guān)

15.有以下程序:#includeMain(){charc1.c2;.c1='A'+'8'-'4';c2='A'+'8'-'5';.printf("%c,%d\n",,c1.c2);}已知字母A的ASCI碼為65.程序運(yùn)行后的輸出結(jié)果是()。A.E.68B.D.69C.E,DD.輸出無(wú)定值

16.

17.以下敘述中錯(cuò)誤的是()。

A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡(jiǎn)單類型

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

C.可以通過(guò)指向結(jié)構(gòu)體變量的指針訪問(wèn)所指結(jié)構(gòu)體變量的任何成員

D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值

18.

19.對(duì)兩個(gè)數(shù)組a和b進(jìn)行下列初始化:charm[]1="l234567":charn[]={1,2,3,4,5,6,7);則下列敘述正確的是()。A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長(zhǎng)度相同C.數(shù)組m比數(shù)組n長(zhǎng)1D.數(shù)組m與數(shù)組n中都存放字符串

20.

二、2.填空題(20題)21.以下程序的功能是【】。

main()

{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};

intsum=0,i;

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

if(num[i]>0)

sum=num[i]+sum;

printf("sum=%6d",sum);

}

22.下面程序的功能是用來(lái)統(tǒng)計(jì)文件中字符個(gè)數(shù)。請(qǐng)?zhí)羁铡?/p>

#include"stdio.h"

main()

{longcount=OL;

FILE*fp=【】("text.dat","r");

if(fp==0)

{printf("Openerror\n");

exit(0);

}

while(【】)

{

fgetc(fp);

count++;

}

fclise(fp);

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

}

23.下列程序的輸出結(jié)果是______。

main()

{inta[]={31,27,20,12,6,1},*p=a;

p++;

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

}

24.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>

main()

{

inti,j,【】;charstr[]={"1234567");

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

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

}

25.以下程序的輸出結(jié)果是【】。

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

26.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值。請(qǐng)?zhí)羁铡?/p>

#include<stdio,h>

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

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

prinff("\n");

}

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

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

{x=ar[i][0];'

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

【】=x;

}

}

27.下列程序的運(yùn)行結(jié)果是______。

main()

{ints=0,i=1;

while(s<=10)

{S=S+i*i;

i++;

b

}

printf("%d",--i);

}

28.實(shí)現(xiàn)程序可將磁盤(pán)中的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請(qǐng)補(bǔ)全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

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

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

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

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

fclose(f1);

fclose(f2);

}

29.下列程序的輸出結(jié)果是______。

main()

{inti,sum;

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

sum+=i;

primf("%d",sum);

}

30.以下程序的功能是計(jì)算:s=1+12+123+1234+12345。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

intt=0.s=0,i:

for(i=1;i<=5;i++){t=i+【】;s=s+t;}

prinff("s=%d\n".s);}

31.在軟件維護(hù)時(shí),對(duì)測(cè)試階段未發(fā)現(xiàn)的錯(cuò)誤進(jìn)行測(cè)試、診斷、定位、糾錯(cuò)直至回歸測(cè)試的過(guò)程稱為【】。

32.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及列數(shù)據(jù)的操作運(yùn)算。

33.在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個(gè)二維表稱為一個(gè)【】。

34.有以下程序main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是

35.數(shù)據(jù)的物理結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的【】。

36.軟件測(cè)試是保證軟件質(zhì)量的重要手段,而軟件測(cè)試的主要和重要的測(cè)試方法是通過(guò)測(cè)試數(shù)據(jù)和【】的設(shè)計(jì)來(lái)實(shí)現(xiàn)。

37.關(guān)系數(shù)據(jù)庫(kù)的關(guān)系演算語(yǔ)言是以【】為基礎(chǔ)的DML語(yǔ)言。

38.以下fun函數(shù)的功能是:累加數(shù)組元素中的值,n為數(shù)組中元素的個(gè)數(shù),累加的和值放入x所指的存儲(chǔ)單元中。請(qǐng)?zhí)羁铡?/p>

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0,k<n;k++)r=【】;

【】=r;

}

39.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara='A';

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

40.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)______。

三、1.選擇題(20題)41.已知一個(gè)文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{charnumber[100];intage;floatp[6];};定義一個(gè)數(shù)組:structanumber[10];假定文件已正確打開(kāi),不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。

A.fread(b,sizeof(structA),10,fp);

B.for(i=0;i<10;i++)fread(b[i],sizeof(structA),1,fp);

C.for(i=0;i<10;i++)fread(b+i,sizeof(structA),1,fp);

D.for(i=0;i<5;i+=2)fread(b+i,sezeof(structA),2,fp);

42.設(shè)有以下語(yǔ)句:inta=1,b=2,c;c=a∧(b<<2);執(zhí)行后,c的值為()。

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

43.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再?gòu)?fù)制到字符串str3之后

C.將字符串str2復(fù)制到字符串str1中后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串str1復(fù)制到字符串str3中

44.執(zhí)行語(yǔ)句for(i=1;i++<4;);后變量i的值是______。

A.3B.4C.5D.不定

45.以下程序的輸出結(jié)果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}

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

46.若要顯示或打印漢字將用到漢字編碼中的()

A.輸入碼B.字型碼C.機(jī)內(nèi)碼D.交換碼

47.若以"a+"方式打開(kāi)一個(gè)已存在的文件,則下列敘述正確的是()。

A.文件打開(kāi)時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進(jìn)行添加或讀操作

B.文件打開(kāi)時(shí),原有文件內(nèi)容不被刪除,只能進(jìn)行讀操作

C.文件打開(kāi)時(shí),原有文件內(nèi)容被刪除,只能進(jìn)行寫(xiě)操作

D.以上三種說(shuō)法都不正確

48.現(xiàn)有如下程序段

#include"stdio.h"

#include"string.h"

main()

{chara[]="acfijk";/*這里是有序的字符序列*/

charb[]="befijklqswz";/*這里是有序的字符序列*/

charc[80],*p;

inti=0,j=0,k=0;

while(a[i]!=′\0′&&b[j]!=′\0′)

{if(a[i]<b[j])c[k++]=a[i++];

elseif(a[i]>b[j])c[k++]=b[j++];

else{c[k++]=b[j++];

i++;}}

while(a[i]==′\0′&&b[j]!=′\0′)

c[k++]=b[j++];

while(a[i]!=′\0′&&b[j]==′\0′)

c[k++]=a[i++];

c[k]=′\0′;

puts(c);}

則輸出結(jié)果是

A.acfijkbefijklqswz

B.abceffiijjkklqswz

C.befijklqswzacfijk

D.abcefijklqswz

49.下面的關(guān)鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。

A.gotoB.breakC.returnD.continue

50.某片軟盤(pán)上已染有病毒,為防止該病毒傳染計(jì)算機(jī)系統(tǒng),正確的措施是______。

A.刪除軟盤(pán)上的所有文件即刪除了病毒B.將該軟盤(pán)進(jìn)行寫(xiě)保護(hù)C.將軟盤(pán)放一段時(shí)間后再用D.將該軟盤(pán)重新格式化

51.下列關(guān)系運(yùn)算的敘述中,正確的是()。A.A.投影、選擇、連接是從二維表行的方向進(jìn)行的運(yùn)算

B.并、交、差是從二維表的列的方向來(lái)進(jìn)行運(yùn)算

C.投影、選擇、連接是從二維表列的方向進(jìn)行的運(yùn)算

D.以上3種說(shuō)法都不對(duì)

52.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}執(zhí)行后的輸出結(jié)果是______。

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

53.有以F程序#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是

A.741B.963C.852D.875421

54.以下程序中函數(shù)f的功能是將n個(gè)字符串按由大到小的順序進(jìn)行排序。#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+l;j<n;j++)if(strcmp(p[i],p[j])<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][lO]-{"abc","aabdfg","abbd","dcdbe","cd"};inti;f(p,5);printf("%dkn",strlen(p[0]));}程序運(yùn){亍后的輸出結(jié)果是

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

55.以下程序的運(yùn)行結(jié)果是

#defineMAX(A,B)(A)>(B)?(A):(B)

#definePRINT(Y)printf("Y=%d\t",Y)

main()

{inta=1,b=2,c=3,d=4,t;

t=MAX(a+b,c+d);

PRINT(t);}

A.Y=3B.存在語(yǔ)法錯(cuò)誤C.Y=7D.Y=0

56.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2;intfunc(int*a){b+=*a;returnb;}main(){inta=1,t=2;t+=func(&a);printf("%d\n",t);}

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

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

A.在賦值表達(dá)式中,賦值號(hào)的左邊既可以是變量,也可以是任意表達(dá)式

B.實(shí)型變量中允許存放整型數(shù)

C.若a和b類型相同,在執(zhí)行了賦值a=b后,b中的值將放入a中,但b中的值不變

D.在C程序中,求余運(yùn)算符“%”兩邊的類型相同時(shí)才能進(jìn)行運(yùn)算

58.下面程序的輸出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8

59.對(duì)下述程序的判斷中,正確的是()。#include<stdio.h>voidmain(){char*P,s[256];p=s;while(strcmp(s,"theend")){printf("Inputthestring:");gets(s);while(*P)putchar(*p++);}}

A.此程序循環(huán)接收字符串并輸出,直到接收到字符串“theend”為止

B.此程序循環(huán)接收字符串,接收到字符串“theend”則輸出,否則程序終止

C.此程序循環(huán)接收字符串并輸出,直到接收字符串“theend”為止,但因?yàn)榇a有錯(cuò)誤,程序不能正常工作

D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串“theend”為止,輸出連接在一起的字符串

60.假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點(diǎn),則以下可以將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語(yǔ)句組是______。

A.free(q);p->next=q->next;

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

四、選擇題(20題)61.

62.設(shè)有如下程序段:

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

A.輸出值為2004

B.輸出值為2008

C.運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息

D.輸出語(yǔ)句中格式說(shuō)明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),不能正確輸出

63.在深度為5的滿二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為A.32B.31C.16D.15

64.在c語(yǔ)言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。A.aut0和Iegister

B.extern和register

C.aut0和static

D.static和register

65.若有定義語(yǔ)句:inta[4][10],*P,*q[4];且0<=i<4,則錯(cuò)誤的賦值是()。

A.P=aB.q[i]=a[i]C.p=a[i]D.p=&a[2][1]

66.

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

A.在C語(yǔ)言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量

68.若有說(shuō)明:inta[3][4]={0};,則下面正確的敘述是

A.只初始化了第一個(gè)元素,即a[0][0]可得到初值0

B.此初始化語(yǔ)句不正確

C.?dāng)?shù)組a中各元素都可得到初值,但其值不一定為0

D.?dāng)?shù)組a中每個(gè)元素均可得到初值0

69.以下能定義為用戶標(biāo)識(shí)符的是()。

A.printfB.charC._8abcD.Void

70.

71.有以下程序:

#include<stdio.h>

inta=1,b=2:

voidfunl(inta,intb)

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

voidfun2()

{a=3;b=4;}

main()

{funl(5,6);fun2();

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

}

程序運(yùn)行后的輸出結(jié)果是()。

A.1256

B.5634

C.5612

D.3456

72.

73.以下程序段中的變量已正確定義

74.

75.

76.第

1

若有運(yùn)算符<<,sizeof,^,&=,則它們按優(yōu)先級(jí)由高至低的正確排列次序是

A.sizeof,&=,<<,^

B.sizeof,<<,^,&=

C.^,<<,sizeof,&=

D.<<,^,&=,sizeof

77.若有說(shuō)明:inti,j=7,*p=&i;,則與i=j;等價(jià)的語(yǔ)句是()。

A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

78.

79.

80.

設(shè)有定義的語(yǔ)句:“charc1=92,c2=92;”,則以下表達(dá)式中的值為零的是()。

A.c1^c2B.c1&c2C.~c2D.c1E.c2

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:在字符串的最前端加入m個(gè)*號(hào),形成新串,并且覆蓋原串。例如,用戶輸入字符串a(chǎn)bcd(以Enter鍵結(jié)束),然后輸入m值為3,則結(jié)果為***abcd。注意:字符串的長(zhǎng)度最長(zhǎng)允許為79。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫(xiě)函數(shù)fun(),其功能是將M行N列的二維數(shù)組中的數(shù)據(jù),按列的順序依次存放到一維數(shù)組中,將一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>voidfun(int(*s)[10],int*b,int*n,intmm,intnn){}main(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf(“Thematrix:\n”);for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%3d”,w[i][j]);printf(“\n”);}fun(w,a,&n,3,4);printf(“TheAarray:\n”);for(i=0;i<n;i++)<p=""></n;i++)<>printf(“%3d”,a[i]);}

參考答案

1.B程序首先定義二維字符數(shù)組v,使用4個(gè)字符串初始化,另外定義字符指針數(shù)組P。通過(guò)第1個(gè)for循環(huán),將v的4個(gè)字符串的首地址賦給p。第2for循環(huán)通過(guò)兩層內(nèi)嵌循環(huán)將p中元素指向的字符串首字母進(jìn)行排序交換。規(guī)則是將指向的字符串的首字母字符按照字母表中的順序排序后交換。注意,這里交換的是首字母,而不是整個(gè)字符串,所以程序輸出:afgebcdhnopqmijkl。本題答案為B選項(xiàng)。

2.A冒泡排序、快速排序、簡(jiǎn)單插入排序、簡(jiǎn)單選擇排序在最壞情況下比較次數(shù)均為n(n-1)/2,堆排序在最壞情況下比較次數(shù)為nlog2n,希爾排序在最壞情況下需要比較的次數(shù)是nr(1﹤r﹤2)。本題答案為A選項(xiàng)。

3.B解析:—個(gè)函數(shù)可以帶回—個(gè)整型值、字符值、實(shí)型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號(hào)和*號(hào),由于()優(yōu)先級(jí)高于*。故它是—個(gè)返回整型指針的函數(shù)。

4.C將兩個(gè)字符串連接起來(lái)組成一個(gè)字符串,選用strcat函數(shù)來(lái)連接。

5.BB?!窘馕觥筷P(guān)系的交(∩)、并(∪)和差(-)運(yùn)算要求兩個(gè)關(guān)系是同元的,顯然作為二元的R和三元的S只能做笛卡兒積運(yùn)算。

6.Cfread函數(shù)中的參數(shù)buffer是內(nèi)存塊的首地址,輸入的數(shù)據(jù)存入此內(nèi)存塊中。

7.A程序定義結(jié)構(gòu)體類型STU,定義類型STU的全局變量a。main函數(shù)定義局部類型為STU變量b,并對(duì)它初始化,調(diào)用函數(shù)f。將局部變量c的各個(gè)成員值賦給a,覆蓋a的舊值,將a的新值返回并賦給b,此時(shí)a、b的各個(gè)成員值都是Sun,f,90,程序輸出:Sun,f,90,Sun,f,90。本題答案為A選項(xiàng)。

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

表示邏輯條件。

9.C由圖所知,其中,C中只有一個(gè)屬性,是除操作。

10.B解析:本題考查的是程序結(jié)構(gòu)設(shè)計(jì)中if語(yǔ)句的應(yīng)用,當(dāng)if判斷條件成立時(shí)就執(zhí)行其后的相關(guān)語(yǔ)句,否則不執(zhí)行,本題中第一個(gè)if條件不成立,故不執(zhí)行“a=b”,接著執(zhí)行“c=a”,此時(shí)第二個(gè)if條件也不成立,故不執(zhí)行其后語(yǔ)句,最終c的值為3。

11.C解析:當(dāng)p指向s數(shù)組的首地址時(shí),表示數(shù)組元素s[i]的表達(dá)式應(yīng)當(dāng)有:①s[i],②,(s+i),③*(p+i),④p[i]四種形式。選項(xiàng)C)錯(cuò)誤的原因是,數(shù)組的地址是不可變的,指針的地址是可以變的。

12.B

13.A解析:對(duì)線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲(chǔ)的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。

14.B

15.A[解析]本題目中字符變量c1是字符A的ASCII碼加上4.即69所對(duì)應(yīng)的字符E。字符變量c2是字符'A'的ASCII碼加上3.即68所對(duì)應(yīng)的字符D'。但是打印輸出時(shí),c1以%c的格式輸出,所以是E,c2以%d的格式輸出,所以是68.

16.D

17.A函數(shù)返回值類型可以是簡(jiǎn)單類型和結(jié)構(gòu)體類型。

18.D

19.C在m數(shù)組中賦值的是字符串,其長(zhǎng)度為7,末尾有結(jié)束符\0,故字節(jié)數(shù)為8,而n數(shù)組中賦的是字符,其長(zhǎng)度為7,故C選項(xiàng)正確。

20.C

21.計(jì)算數(shù)組num中大于零的數(shù)據(jù)之和計(jì)算數(shù)組num中大于零的數(shù)據(jù)之和

22.fopen!feof(fp)fopen\r\n!feof(fp)解析:第一空從右邊的括號(hào)中可以看出,這里應(yīng)該填入一個(gè)fopen,整條語(yǔ)句用來(lái)打開(kāi)一個(gè)名為text.dat的文件。第二空是一個(gè)while循環(huán)的循環(huán)條件表達(dá)式,循環(huán)體每次讀取一個(gè)字符,并讓count增1,所以循環(huán)條件應(yīng)該是“如果文件還沒(méi)結(jié)束”,故應(yīng)該填!feof(fp)。

23.1212解析:本題簽考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個(gè)指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過(guò)p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3)的值12。

24.k-1k\r\n-1解析:程序山使用了整型變量i、j、k,使用前應(yīng)先聲明,因此第1個(gè)空應(yīng)填變量k。i和j作為下標(biāo)的值,i被賦初值為0,j應(yīng)為下標(biāo)的最大值,下標(biāo)的最大值為數(shù)組的長(zhǎng)度減1。

25.SOSO解析:考查用指針引用字符串?dāng)?shù)組中元素的方法。題中需要注意兩個(gè)問(wèn)題:一是for循環(huán)的修正表達(dá)式共執(zhí)行兩次'i--'操作;二是*p[i]是對(duì)某個(gè)字符的引用。

26.br[i]或*(br+i)br[i]或*(br+i)解析:程序中的數(shù)組a是一個(gè)3行4列的二維數(shù)組,一維數(shù)組b用于存放每行的最大數(shù)。在函數(shù)fun中,通過(guò)二重for循環(huán)求每行的最大數(shù),外層for循環(huán)用于控制行數(shù),內(nèi)層for循環(huán)用于控制列數(shù),當(dāng)外層循環(huán)執(zhí)行一次時(shí),內(nèi)層循環(huán)則從一行的4個(gè)數(shù)中找出最大數(shù)x,然后將最大值x賦給數(shù)組br,故空格處應(yīng)填br[i]或*(br+i)。

27.33解析:分析程序運(yùn)行過(guò)程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,輸出結(jié)果為3。

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

29.無(wú)定值無(wú)定值解析:for(i=l;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒(méi)有初始化,并不知道sum的初值是多少,所以結(jié)果無(wú)定值。

30.t*10t*10解析:程序中變量,用于存放表達(dá)式1+12+123+1234+12345之和,變量t用于存放其表達(dá)式的各項(xiàng)。當(dāng)i=1時(shí),要使t=1;i=2時(shí),t=12;i=3時(shí),t=123;依此類推。每一次的t值是用上一次的t乘以10再加上此次的i的值,所以本題答案為t*10。

31.校正性維護(hù)校正性維護(hù)

32.存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu)解析:數(shù)據(jù)結(jié)構(gòu)包括3個(gè)方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)及對(duì)數(shù)據(jù)的操作運(yùn)算。

33.關(guān)系關(guān)系解析:在數(shù)據(jù)庫(kù)中,一個(gè)表就是一個(gè)關(guān)系。一個(gè)關(guān)系的邏輯結(jié)構(gòu)就是一張二維表。

34.C

35.內(nèi)模式或物理模式或存儲(chǔ)模式內(nèi)模式或物理模式或存儲(chǔ)模式解析:一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)庫(kù)內(nèi)部的表示方法。例如,記錄的存儲(chǔ)方式是順序存儲(chǔ)、索引按照什么方式組織;數(shù)據(jù)是否壓縮存儲(chǔ),是否加密等。

36.測(cè)試實(shí)例測(cè)試實(shí)例解析:進(jìn)行軟件測(cè)試時(shí),應(yīng)精心設(shè)計(jì)測(cè)試實(shí)例和選擇測(cè)試數(shù)據(jù),以對(duì)系統(tǒng)進(jìn)行全面測(cè)試。

37.謂詞演算謂詞演算

38.r+b[k]*x

39.NN解析:函數(shù)說(shuō)明語(yǔ)句中的類型名必須與函數(shù)返回值的類型一致。本題實(shí)現(xiàn)的是在字符“A”的ASCII碼值上加上一個(gè)常數(shù),使之變成另一個(gè)ASCII碼值,從而輸出字符。

40.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個(gè);維表代表一種關(guān)系。

41.B

42.D解析:先算括號(hào)內(nèi)的表達(dá)式,即先對(duì)b進(jìn)行左移運(yùn)算:b的二進(jìn)制為00000010,左移后變?yōu)?0001000,然后再與a進(jìn)行異或運(yùn)算(參與運(yùn)算的兩個(gè)對(duì)應(yīng)位相同,則為0,相異則為1),結(jié)果為00001001,換算成十進(jìn)制數(shù)結(jié)果為9。對(duì)于左移運(yùn)算也可直接用此規(guī)則:左移1位相當(dāng)于該數(shù)乘以2,左移2位相當(dāng)于該數(shù)乘以22=4,依此類推。

43.C解析:strcat(s1,s2)是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復(fù)制給s1字符串,要保證s1能容納下連接或復(fù)制后的字符串。

44.C解析:for語(yǔ)句中的表達(dá)式可以部分或全部省略,但兩個(gè)“;”不能省略,若3個(gè)表達(dá)式均省略,會(huì)因?yàn)槿鄙贄l件判斷,導(dǎo)致循環(huán)無(wú)限執(zhí)行,而形成死循環(huán)。本題中當(dāng)i的值為5的時(shí)候,循環(huán)終止。

45.A解析:該題考查的是遞歸函數(shù)的調(diào)用,題中讀fun函數(shù)進(jìn)行了遞歸調(diào)用,第1次調(diào)用:fun(3)n=3s=3-fun(2);第二次調(diào)用時(shí):fun(2)n=2s=2返回第一次調(diào)用后,s=3-2=1。

46.B

47.A解析:本題考查文件使用方式標(biāo)識(shí)符,以“a+”方式打開(kāi)一個(gè)己存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時(shí),可以進(jìn)行追加或讀操作。

48.D解析:這個(gè)題目的功能是實(shí)現(xiàn)兩個(gè)有序字符串,合并成一個(gè)新的有序的字符串。

49.B解析:在C語(yǔ)言中,可以用break語(yǔ)句和continue語(yǔ)句跳出本層循環(huán)和結(jié)束本次循環(huán)。goto語(yǔ)句可跳出多層循環(huán),如果在函數(shù)的循環(huán)體內(nèi)使用return語(yǔ)句,就會(huì)直接結(jié)束循環(huán)返回函數(shù)值。

50.D解析:軟盤(pán)中有病毒,有可能打開(kāi)軟盤(pán)就會(huì)感染機(jī)器,因此最好的辦法是直接格式化。

51.C解析:在關(guān)系模型的數(shù)據(jù)語(yǔ)言中,一般除了運(yùn)用常規(guī)的集合運(yùn)算(并、交、差、笛卡爾積等),還定義了一些專門(mén)的關(guān)系運(yùn)算,如投影、選擇、連接等。前者是將關(guān)系(即二維表)看成是元組的集合,這些運(yùn)算主要是從二維表的行的方向來(lái)進(jìn)行運(yùn)算的。后者是從二維表的列的方向來(lái)進(jìn)行運(yùn)算的。

52.A解析:本題中p[4]='cd',所以strlen(p[4])=2。

53.C解析:本題考查變量的自加“++”和自減“--”問(wèn)題。當(dāng)y的值為9、6或3時(shí),if語(yǔ)句的條件成立,執(zhí)行輸出語(yǔ)句,輸出表達(dá)式--y的值,y的自減要先于輸出語(yǔ)句執(zhí)行,故輸出結(jié)果為852。

54.C解析:函數(shù)strcmp(字符串1,字符串2)作用是將”字符串1”和”字符串2”進(jìn)行比較,如果“字符串1”》”字符串2”,返回一個(gè)大于0的整數(shù)值;如果“字符串1”<“字符串2”,返回一個(gè)小于0的整數(shù)值;如果”字符串1”=“字符串2”,返回0。函數(shù)strcpy(字符串?dāng)?shù)組名,字符串,[整型表達(dá)式])的作用是將“字符串”的前“整型表達(dá)式”個(gè)字符有入到指定的“字符數(shù)組”中,若省略“整型表達(dá)式”,則將整個(gè)“字符串”存入,字符數(shù)組”中.函數(shù)f()的功能是利用選擇法把一個(gè)具有n行的二維數(shù)組中按行存放的n個(gè)字符串由大到小排序。在主函數(shù)中定義了一個(gè)二維字符數(shù)組p并給它按行賦初值,然后調(diào)用f()函數(shù);把它按行從大到小排列。字符串比較大小的標(biāo)準(zhǔn)是從第一個(gè)字符開(kāi)始依次向右比較,遇到某一個(gè)字符大,該字符所在的字符串就是較大的字符串。由此可知最大的字符串為“dcdbe”,排序后存放在第一行,其首地址為P[0],在輸出語(yǔ)句輸出的p[0]指向的字符串長(zhǎng)度是5。所以4個(gè)選項(xiàng)中C正確。

55.C解析:考查帶參數(shù)的宏替換。宏替換不像函數(shù)調(diào)用要進(jìn)行參數(shù)值的計(jì)算、傳遞等,而只是簡(jiǎn)單按照原格式進(jìn)行字符串的替換。

56.B解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在執(zhí)行函數(shù)func時(shí),由于全局定義了一個(gè)變量b,所以在函數(shù)體中執(zhí)行時(shí)b=2+1=3,最終t=2+3=5。

57.B解析:選項(xiàng)A),在賦值表達(dá)式中,賦值號(hào)的左邊只能是變量或者是代表某個(gè)存儲(chǔ)單元的表達(dá)式,不能是任意表達(dá)式。

在判斷選項(xiàng)B)時(shí)首先應(yīng)該建立這桿的概念,整型變量中只能存放整型數(shù),實(shí)型變量中能存放實(shí)型數(shù),也能存放整型數(shù)。

選項(xiàng)C),執(zhí)行表達(dá)式a=b后,將把變量b存儲(chǔ)單元中的值賦給變量a,從而覆蓋a中原有的值,但b中原有的值并不改變。

選項(xiàng)D),在C程序中,求余運(yùn)算符“%”兩邊的類型均為整型數(shù)據(jù)。

58.C解析:當(dāng)switch后面括弧內(nèi)的表達(dá)式的值與某一個(gè)case后面的常量的表達(dá)式的值相等時(shí),就執(zhí)行此case后面的語(yǔ)句,若所有的case中的常量表達(dá)式的值都沒(méi)有與表達(dá)式的值匹配的,就執(zhí)行default后面的語(yǔ)句。

59.A解析:strcmp(str1,str2)是比較字符串str1和sir2,當(dāng)兩字符串相等時(shí),返回值為0,不相等時(shí)返回值為非0;所以此段程序的功能是在未接收到字符串“theend”時(shí),讀入字符并輸出。

60.B解析:選項(xiàng)A的錯(cuò)誤在于,先已經(jīng)把q結(jié)點(diǎn)給釋放,無(wú)法再進(jìn)行余下語(yǔ)句了:選項(xiàng)C和D的錯(cuò)誤在于因?yàn)橛辛藂=(*q).next做了賦值,則free(q)釋放了原來(lái)q后面的一個(gè)結(jié)點(diǎn)。

61.D

62.B(x,y)考查逗號(hào)表達(dá)式,逗號(hào)運(yùn)算符的結(jié)合性為從左到右,因此,最后一個(gè)表達(dá)式的值就是此逗號(hào)表達(dá)式的值,因此選項(xiàng)B)正確。

63.C2(n-1)

=2(5-1)=16

64.Aaut0:函數(shù)中的局部變量動(dòng)態(tài)地分配存儲(chǔ)空間,數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)存儲(chǔ)區(qū)中,在調(diào)用該函數(shù)時(shí)系統(tǒng)會(huì)給它們分配存儲(chǔ)空間,在函數(shù)調(diào)用結(jié)束時(shí)就自動(dòng)釋放這些存儲(chǔ)空間。register:為了提高效率。c語(yǔ)言允許將局部變量的值放在cPu中的寄存器中,這種變量叫“寄存器變量”,只有局部自動(dòng)變量和形式參數(shù)可以作為寄存器變量。extern:外部變量(全局變量)是在函數(shù)的外部定義的,它的作用域?yàn)閺淖兞慷x處開(kāi)始,到本程序文件的末尾。如果外部變量不在文件的開(kāi)頭定義,其有效的作用范圍只限于定義處到文件末尾。static:靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元,在程序整個(gè)運(yùn)行期間都不釋放。根據(jù)以上分析可知,故本題答案為A)。

65.A二維數(shù)組名是指向指針的指針,所以a和q都為指向指針的指針,而P為指向int類型的指針。所以選項(xiàng)A)是將一個(gè)指向int類型的指針用來(lái)指向一個(gè)指針的指針,顯然是錯(cuò)誤的。其他幾個(gè)選項(xiàng)都是正確的賦值,其中選項(xiàng)D)是用&返回整數(shù)的地址,然后賦值給P。

66.B

67.B解析:編譯時(shí),編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時(shí),編譯系統(tǒng)根據(jù)需要要臨時(shí)分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。

68.D二維數(shù)組進(jìn)行初始化時(shí)可以按照分段進(jìn)行賦值,將每一行看成一段,每一段的個(gè)數(shù)為列數(shù)。也可以按行連續(xù)賦值,不用分段,將所有的數(shù)值寫(xiě)成一行,系統(tǒng)會(huì)在數(shù)組每一行的元素個(gè)數(shù)與列數(shù)相同時(shí),從下一行開(kāi)始繼續(xù)賦值。也可以對(duì)部分?jǐn)?shù)組賦初值,未賦初值的元素自動(dòng)取0。題目中可以看成是對(duì)數(shù)組按行進(jìn)行連續(xù)賦值,并且只給出了第一行第一列的數(shù)值0,對(duì)于未賦值的元素,系統(tǒng)自動(dòng)取0,故整個(gè)數(shù)組中的每個(gè)元素都可以取初值0。

69.B用戶自定義標(biāo)識(shí)符不能與關(guān)鍵字相同。但可以與庫(kù)函數(shù)名相同,只是一般不建議用戶這么做。

70.C

71.B\nFunl是輸出局部變量的值,fun2是把全局變量的值改成3和4,所以輸出的結(jié)果是5634。

\n

72.A

73.A由于內(nèi)層循環(huán)for(k=1;k<3;k++)后面直接跟了空語(yǔ)句“;”,因此在循環(huán)內(nèi)部什么操作也不做,執(zhí)行完內(nèi)層循環(huán)后執(zhí)行打印語(yǔ)句,所以打印了一個(gè)“*,’故本題答案A)。

74.C

75.B

76.B本題主要考查運(yùn)算符的優(yōu)先級(jí)。在C語(yǔ)言中包含算術(shù)運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符等。這些運(yùn)算符的優(yōu)先級(jí)和結(jié)合方式在我們的教材《30天通過(guò)計(jì)算機(jī)等級(jí)考試:二級(jí)C語(yǔ)言》中可以查閱到。題目中給出運(yùn)算符優(yōu)先級(jí)從高到低依次為sizeof、<<、^、&=。因此本題的答案選B。

77.B

78.C

79.A

80.A

\n當(dāng)值相同時(shí)按位異或,則為0,按位或與按位與時(shí)仍不變,負(fù)數(shù)也為非0。

\n

81.(1)錯(cuò)誤:str=P;

正確:p=str;

(2)錯(cuò)誤:i++;

正確:i++;p++;

(3)錯(cuò)誤:a[i]=0;

正確:a[i]=ˊ\0ˊ;

【解析】由函數(shù)proc()可知,變量p是指向字符串的指針,其初始化應(yīng)為字符串首地址,因此,“str=p;”應(yīng)改為“p=str;”;將P指向的字符串中的每一個(gè)字符插在m個(gè)*之后,并存放在字符串?dāng)?shù)組a中,因此,“i++;”應(yīng)改為“i++;p++;”;操作完成后要為字符串?dāng)?shù)組添加結(jié)束符,因此“a[i]=0;”應(yīng)改為“a[i]=ˊ\0ˊ;”。

82.voidfun(int(*s)[10],int*b,int*n,intmm,intnn){inti,j;for(j=0;j<nn;j++)/*將二維數(shù)組中的數(shù)據(jù)按列的順序依次存入一維數(shù)組中*/for(i=0;i<=""p="">{b[*n]=*(*(s+i)+j);*n=*n+1;/*通過(guò)指針?lè)祷卦貍€(gè)數(shù)*/}}題目要求實(shí)現(xiàn)將二維數(shù)組元素存入一維數(shù)組。使用for循環(huán)語(yǔ)句來(lái)控制二維數(shù)組元素的下標(biāo),同時(shí)使用指針變量配合操作??梢杂脙蓚€(gè)循環(huán)來(lái)處理問(wèn)題,由于是按列的順序取出,因此第1個(gè)循環(huán)用于控制列下標(biāo),第2個(gè)循環(huán)用于控制行下標(biāo)。2021-2022年浙江省湖州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abcdefghijklmnopq

B.afgebcdhnopqmijklhnopqmijkl

C.efgabcdmnopqhijkl

D.mijklhnopqebcdafg

2.在最壞情況下比較次數(shù)相同的是()。A.冒泡排序與快速排序B.簡(jiǎn)單插入排序與希爾排序C.簡(jiǎn)單選擇排序與堆排序D.快速排序與希爾排序

3.定義int*swap()指的是______。

A.—個(gè)返回整型值的函數(shù)swap()

B.一個(gè)返回指向整型值指針的函swap()

C.一個(gè)指向函數(shù)swap()的指針,函數(shù)返回一個(gè)整型值

D.以上說(shuō)法均錯(cuò)

4.將兩個(gè)字符串連接起來(lái)組成一個(gè)字符串時(shí),選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

5.設(shè)R是一個(gè)二元關(guān)系,S是一個(gè)三元關(guān)系,則下列運(yùn)算中正確的是()。

A.R-SB.R×SC.R∩SD.R∪S

6.

讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一個(gè)文件指針,指向待讀取的文件

B.一個(gè)整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個(gè)內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址

D.一個(gè)內(nèi)存塊的字節(jié)數(shù)

7.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Sun,f,90,Sun,f,90

B.Zhao,m,85,Sun,f,90

C.Zhao,m,85,Qian,f,95

D.Sun,f,90,Qian,f,95

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

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

9.有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并

10.若變量已正確定義,有下列程序段:inta=3,b=5,c=7;if(a>B)a=b;c=a;if(c!=A)c=b;printf("%d,%d,%d\n",a,b,C);其輸出結(jié)果是()。A.程序段有語(yǔ)法錯(cuò)B.3,5,3C.3,5,5D.3,5,7

11.現(xiàn)有如下定義語(yǔ)句int*p,s[20],i;p=s;表示數(shù)組元素s[i]的表達(dá)式不正確的是

A.*(s+i)B.*(p+i)C.*(s=s+i)D.*(p=p+i)

12.設(shè)"char**s;",以下正確的表達(dá)式是()。

A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';

13.對(duì)線性表進(jìn)行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼值排好序

D.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼的檢索頻率排好序

14.下面關(guān)于圖的存儲(chǔ)的敘述中正確的是()。

A.用鄰接表法存儲(chǔ)圖,占用的存儲(chǔ)空間大小只與圖中邊數(shù)有關(guān),而與頂點(diǎn)個(gè)數(shù)無(wú)關(guān)

B.用鄰接表法存儲(chǔ)圖,占用的存儲(chǔ)空間大小與圖中邊數(shù)和頂點(diǎn)個(gè)數(shù)都有關(guān)

C.用鄰接矩陣法存儲(chǔ)圖,占用的存儲(chǔ)空間大小與圖中頂點(diǎn)個(gè)數(shù)和邊數(shù)無(wú)關(guān)

D.用鄰接矩陣存儲(chǔ)圖,占用的存儲(chǔ)空間大小只與圖中邊數(shù)有關(guān),而與頂點(diǎn)個(gè)數(shù)無(wú)關(guān)

15.有以下程序:#includeMain(){charc1.c2;.c1='A'+'8'-'4';c2='A'+'8'-'5';.printf("%c,%d\n",,c1.c2);}已知字母A的ASCI碼為65.程序運(yùn)行后的輸出結(jié)果是()。A.E.68B.D.69C.E,DD.輸出無(wú)定值

16.

17.以下敘述中錯(cuò)誤的是()。

A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡(jiǎn)單類型

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

C.可以通過(guò)指向結(jié)構(gòu)體變量的指針訪問(wèn)所指結(jié)構(gòu)體變量的任何成員

D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值

18.

19.對(duì)兩個(gè)數(shù)組a和b進(jìn)行下列初始化:charm[]1="l234567":charn[]={1,2,3,4,5,6,7);則下列敘述正確的是()。A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長(zhǎng)度相同C.數(shù)組m比數(shù)組n長(zhǎng)1D.數(shù)組m與數(shù)組n中都存放字符串

20.

二、2.填空題(20題)21.以下程序的功能是【】。

main()

{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};

intsum=0,i;

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

if(num[i]>0)

sum=num[i]+sum;

printf("sum=%6d",sum);

}

22.下面程序的功能是用來(lái)統(tǒng)計(jì)文件中字符個(gè)數(shù)。請(qǐng)?zhí)羁铡?/p>

#include"stdio.h"

main()

{longcount=OL;

FILE*fp=【】("text.dat","r");

if(fp==0)

{printf("Openerror\n");

exit(0);

}

while(【】)

{

fgetc(fp);

count++;

}

fclise(fp);

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

}

23.下列程序的輸出結(jié)果是______。

main()

{inta[]={31,27,20,12,6,1},*p=a;

p++;

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

}

24.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>

main()

{

inti,j,【】;charstr[]={"1234567");

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

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

}

25.以下程序的輸出結(jié)果是【】。

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

26.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值。請(qǐng)?zhí)羁铡?/p>

#include<stdio,h>

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

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

prinff("\n");

}

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

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

{x=ar[i][0];'

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

【】=x;

}

}

27.下列程序的運(yùn)行結(jié)果是______。

main()

{ints=0,i=1;

while(s<=10)

{S=S+i*i;

i++;

b

}

printf("%d",--i);

}

28.實(shí)現(xiàn)程序可將磁盤(pán)中的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請(qǐng)補(bǔ)全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

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

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

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

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

fclose(f1);

fclose(f2);

}

29.下列程序的輸出結(jié)果是______。

main()

{inti,sum;

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

sum+=i;

primf("%d",sum);

}

30.以下程序的功能是計(jì)算:s=1+12+123+1234+12345。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

intt=0.s=0,i:

for(i=1;i<=5;i++){t=i+【】;s=s+t;}

prinff("s=%d\n".s);}

31.在軟件維護(hù)時(shí),對(duì)測(cè)試階段未發(fā)現(xiàn)的錯(cuò)誤進(jìn)行測(cè)試、診斷、定位、糾錯(cuò)直至回歸測(cè)試的過(guò)程稱為【】。

32.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及列數(shù)據(jù)的操作運(yùn)算。

33.在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個(gè)二維表稱為一個(gè)【】。

34.有以下程序main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是

35.數(shù)據(jù)的物理結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的【】。

36.軟件測(cè)試是保證軟件質(zhì)量的重要手段,而軟件測(cè)試的主要和重要的測(cè)試方法是通過(guò)測(cè)試數(shù)據(jù)和【】的設(shè)計(jì)來(lái)實(shí)現(xiàn)。

37.關(guān)系數(shù)據(jù)庫(kù)的關(guān)系演算語(yǔ)言是以【】為基礎(chǔ)的DML語(yǔ)言。

38.以下fun函數(shù)的功能是:累加數(shù)組元素中的值,n為數(shù)組中元素的個(gè)數(shù),累加的和值放入x所指的存儲(chǔ)單元中。請(qǐng)?zhí)羁铡?/p>

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0,k<n;k++)r=【】;

【】=r;

}

39.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara='A';

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

40.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)______。

三、1.選擇題(20題)41.已知一個(gè)文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{charnumber[100];intage;floatp[6];};定義一個(gè)數(shù)組:structanumber[10];假定文件已正確打開(kāi),不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。

A.fread(b,sizeof(structA),10,fp);

B.for(i=0;i<10;i++)fread(b[i],sizeof(structA),1,fp);

C.for(i=0;i<10;i++)fread(b+i,sizeof(structA),1,fp);

D.for(i=0;i<5;i+=2)fread(b+i,sezeof(structA),2,fp);

42.設(shè)有以下語(yǔ)句:inta=1,b=2,c;c=a∧(b<<2);執(zhí)行后,c的值為()。

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

43.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再?gòu)?fù)制到字符串str3之后

C.將字符串str2復(fù)制到字符串str1中后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串str1復(fù)制到字符串str3中

44.執(zhí)行語(yǔ)句for(i=1;i++<4;);后變量i的值是______。

A.3B.4C.5D.不定

45.以下程序的輸出結(jié)果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}

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

46.若要顯示或打印漢字將用到漢字編碼中的()

A.輸入碼B.字型碼C.機(jī)內(nèi)碼D.交換碼

47.若以"a+"方式打開(kāi)一個(gè)已存在的文件,則下列敘述正確的是()。

A.文件打開(kāi)時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進(jìn)行添加或讀操作

B.文件打開(kāi)時(shí),原有文件內(nèi)容不被刪除,只能進(jìn)行讀操作

C.文件打開(kāi)時(shí),原有文件內(nèi)容被刪除,只能進(jìn)行寫(xiě)操作

D.以上三種說(shuō)法都不正確

48.現(xiàn)有如下程序段

#include"stdio.h"

#include"string.h"

main()

{chara[]="acfijk";/*這里是有序的字符序列*/

charb[]="befijklqswz";/*這里是有序的字符序列*/

charc[80],*p;

inti=0,j=0,k=0;

while(a[i]!=′\0′&&b[j]!=′\0′)

{if(a[i]<b[j])c[k++]=a[i++];

elseif(a[i]>b[j])c[k++]=b[j++];

else{c[k++]=b[j++];

i++;}}

while(a[i]==′\0′&&b[j]!=′\0′)

c[k++]=b[j++];

while(a[i]!=′\0′&&b[j]==′\0′)

c[k++]=a[i++];

c[k]=′\0′;

puts(c);}

則輸出結(jié)果是

A.acfijkbefijklqswz

B.abceffiijjkklqswz

C.befijklqswzacfijk

D.abcefijklqswz

49.下面的關(guān)鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。

A.gotoB.breakC.returnD.continue

50.某片軟盤(pán)上已染有病毒,為防止該病毒傳染計(jì)算機(jī)系統(tǒng),正確的措施是______。

A.刪除軟盤(pán)上的所有文件即刪除了病毒B.將該軟盤(pán)進(jìn)行寫(xiě)保護(hù)C.將軟盤(pán)放一段時(shí)間后再用D.將該軟盤(pán)重新格式化

51.下列關(guān)系運(yùn)算的敘述中,正確的是()。A.A.投影、選擇、連接是從二維表行的方向進(jìn)行的運(yùn)算

B.并、交、差是從二維表的列的方向來(lái)進(jìn)行運(yùn)算

C.投影、選擇、連接是從二維表列的方向進(jìn)行的運(yùn)算

D.以上3種說(shuō)法都不對(duì)

52.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}執(zhí)行后的輸出結(jié)果是______。

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

53.有以F程序#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是

A.741B.963C.852D.875421

54.以下程序中函數(shù)f的功能是將n個(gè)字符串按由大到小的順序進(jìn)行排序。#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+l;j<n;j++)if(strcmp(p[i],p[j])<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][lO]-{"abc","aabdfg","abbd","dcdbe","cd"};inti;f(p,5);printf("%dkn",strlen(p[0]));}程序運(yùn){亍后的輸出結(jié)果是

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

55.以下程序的運(yùn)行結(jié)果是

#defineMAX(A,B)(A)>(B)?(A):(B)

#definePRINT(Y)printf("Y=%d\t",Y)

main()

{inta=1,b=2,c=3,d=4,t;

t=MAX(a+b,c+d);

PRINT(t);}

A.Y=3B.存在語(yǔ)法錯(cuò)誤C.Y=7D.Y=0

56.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2;intfunc(int*a){b+=*a;returnb;}main(){inta=1,t=2;t+=func(&a);printf("%d\n",t);}

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

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

A.在賦值表達(dá)式中,賦值號(hào)的左邊既可以是變量,也可以是任意表達(dá)式

B.實(shí)型變量中允許存放整型數(shù)

C.若a和b類型相同,在執(zhí)行了賦值a=b后,b中的值將放入a中,但b中的值不變

D.在C程序中,求余運(yùn)算符“%”兩邊的類型相同時(shí)才能進(jìn)行運(yùn)算

58.下面程序的輸出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8

59.對(duì)下述程序的判斷中,正確的是()。#include<stdio.h>voidmain(){char*P,s[256];p=s;while(strcmp(s,"theend")){printf("Inputthestring:");gets(s);while(*P)putchar(*p++);}}

A.此程序循環(huán)接收字符串并輸出,直到接收到字符串“theend”為止

B.此程序循環(huán)接收字符串,接收到字符串“theend”則輸出,否則程序終止

C.此程序循環(huán)接收字符串并輸出,直到接收字符串“theend”為止,但因?yàn)榇a有錯(cuò)誤,程序不能正常工作

D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串“theend”為止,輸出連接在一起的字符串

60.假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點(diǎn),則以下可以將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語(yǔ)句組是______。

A.free(q);p->next=q->next;

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

四、選擇題(20題)61.

62.設(shè)有如下程序段:

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

A.輸出值為2004

B.輸出值為2008

C.運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息

D.輸出語(yǔ)句中格式說(shuō)明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),不能正確輸出

63.在深度為5的滿二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為A.32B.31C.16D.15

64.在c語(yǔ)言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。A.aut0和Iegister

B.extern和register

C.aut0和static

D.static和register

65.若有定義語(yǔ)句:inta[4][10],*P,*q[4];且0<=i<4,則錯(cuò)誤的賦值是()。

A.P=aB.q[i]=a[i]C.p=a[i]D.p=&a[2][1]

66.

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

A.在C語(yǔ)言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量

68.若有說(shuō)明:inta[3][4]={0};,則下面正確的敘述是

A.只初始化了第一個(gè)元素,即a[0][0]可得到初值0

B.此初始化語(yǔ)句不正確

C.?dāng)?shù)組a中各元素都可得到初值,但其值不一定為0

D.?dāng)?shù)組a中每個(gè)元素均可得到初值0

69.以下能定義為用戶標(biāo)識(shí)符的是()。

A.printfB.charC._8abcD.Void

70.

71.有以下程序:

#include<stdio.h>

inta=1,b=2:

voidfunl(inta,intb)

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

voidfun2()

{a=3;b=4;}

main()

{funl(5,6);fun2();

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

}

程序運(yùn)行后的輸出結(jié)果是()。

A.1256

B.5634

C.5612

D.3456

72.

73.以下程序段中的變量已正確定義

74.

75.

76.第

1

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論