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è),還剩112頁(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.

2.有以下程序:程序運(yùn)行后的輸出結(jié)果是()。A.6B.10C.8D.4

3.

4.下面程序的輸出結(jié)果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}

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

5.廣告系統(tǒng)為了做地理位置定向,將IPV4分割為627672個(gè)區(qū)間,并標(biāo)識(shí)了地理位置信息,區(qū)間之間無(wú)重疊,用二分查找將IP地址映射到地理位置信息,請(qǐng)問(wèn)在最壞的情況下,需要查找多少次?()

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

6.

7.有n個(gè)結(jié)點(diǎn)的二叉樹(shù)鏈表共有__________個(gè)空指針域。

A.n-1B.nC.n+1D.n+2

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

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

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

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

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

9.設(shè)x為int型變量,則執(zhí)行以下語(yǔ)句后,x的值為()。x=10;x=x-=x-x;

A.10B.20C.40D.30

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

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

11.設(shè)無(wú)向圖G中有n個(gè)頂點(diǎn)e條邊,則其對(duì)應(yīng)的鄰接表中的表頭結(jié)點(diǎn)和邊表接點(diǎn)的個(gè)數(shù)分別為()。

A.n,eB.e,nC.2n,eD.n,2e

12.若有定義“intb[8],*p=b;”,則p+6表示()。

A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6

13.以下不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是()。A.while(*t=*s){t++;s++;}

B.for(i=0;t[i]=s[i];i++);

C.do{*t++:*s++;}while(*s);

D.for(i=0,j=0;t[i++]=s[j++];);

14.設(shè)在C語(yǔ)言中,float類型數(shù)據(jù)占4個(gè)字節(jié),則double類型數(shù)據(jù)占()個(gè)字節(jié)。

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

15.在inta=3,int*p=&a;中,*p的值是()

A.變量a的地址值B.無(wú)意義C.變量p的地址值D.3

16.有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的運(yùn)行結(jié)果是

A.987654321B.4321098765C.5678901234D.987651234

17.

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

A.當(dāng)對(duì)文件的讀(寫(xiě))操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

B.打開(kāi)一個(gè)已存在的文件并進(jìn)行寫(xiě)操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個(gè)程序中對(duì)文件進(jìn)行寫(xiě)操作后,必須先關(guān)閉該文件然后再打開(kāi)才能讀到第1個(gè)數(shù)據(jù)

D.C語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

19.計(jì)算機(jī)系統(tǒng)的組成是______。

A.主機(jī)、外設(shè)B.運(yùn)算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內(nèi)存儲(chǔ)器

20.設(shè)x、y、t均為血型變量,則執(zhí)行語(yǔ)句x=y=3;t=++x||++y;后,y的值為_(kāi)_____。

A.不定值B.4C.3D.1

二、2.填空題(20題)21.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下六個(gè)設(shè)計(jì)階段:需求分析階段、【】、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

22.數(shù)據(jù)管理技術(shù)發(fā)展過(guò)程經(jīng)過(guò)人工管理、文件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)三個(gè)階段,其中數(shù)據(jù)獨(dú)立性最高的階段是______。

23.若有以下程序:

main()

{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};

inti,j,s=0;

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

{for(j=0;j<4;j++)

{if(a[i][j]<0)

continue;

if(a[i][j]==0)

break;

s+=a[i][j];

}

}

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

}

執(zhí)行后的輸出結(jié)果是【】。

24.有以下程序:

#include<stclio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序運(yùn)行時(shí),如果從鍵盤(pán)輸入:Y?N?<回車>,則輸出結(jié)果為【】。

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

main()

(inta=2,b=7,c=5;

switch(a>0)

{case1:switch(b<0)

{case1:switch(");break;

case2:printf("!");break;

}

case0:switch(c==5)

{case0:printf("*");break;

case1:printf("#");break;

case2:printf("$");break;

}

default:printf("&");

}

printf("\n");

}

26.數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。

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

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

28.實(shí)體之間的聯(lián)系可以歸結(jié)為一對(duì)一的聯(lián)系,一對(duì)多的聯(lián)系與多對(duì)多的聯(lián)系。如果一個(gè)學(xué)校有許多學(xué)生,而一個(gè)學(xué)生只屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于【】的聯(lián)系。

29.\13'在內(nèi)存中占1個(gè)字節(jié),"\12"在內(nèi)存中占______個(gè)字節(jié)。

30.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大的值和它所在的下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>

#include<stdlib.h>

#include<stdio.h>

voidfun(inta[],intn,int*max,int*d)

{intI;

*max=a[0];

*d=0;

for(I=0;【】;I++)

if(*max<【】)

{*max=a[I];*d=i;}}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);}

31.下面程序輸出的結(jié)果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}

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

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

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

}

33.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長(zhǎng)度。

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;

return(num);

}

34.以下程序運(yùn)行后的輸出結(jié)果是______。

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

35.Fibonacci數(shù)列中的頭兩個(gè)數(shù)是1和1,從第3個(gè)數(shù)開(kāi)始,每個(gè)數(shù)等于前兩個(gè)數(shù)之和。下述程序計(jì)算此數(shù)列的前20個(gè)數(shù),且每行輸出5個(gè)數(shù),請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{intf,f1=1,f2=1;

inti;

printf("%6d%6d",f1,f2);

for(i=3;i<=20;i++)

{f=【】;

printf("%6d",f);

if(【】)

printf("\n");

f1=f2;

【】;

}

}

36.以下程序通過(guò)函數(shù)指針p調(diào)用函數(shù)fun,請(qǐng)?jiān)谔羁諜趦?nèi)寫(xiě)出定義變量p的語(yǔ)句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

37.數(shù)據(jù)模型按不同應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。

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

39.把數(shù)學(xué)表達(dá)式改寫(xiě)成C語(yǔ)言的表達(dá)式是【】。

40.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們之和,請(qǐng)?zhí)羁铡?/p>

#include<stdio,h>

main()

inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

prinff("sum=%d,count=%d\n",sum,count);

}

三、1.選擇題(20題)41.以下能正確定義一維數(shù)組的選項(xiàng)是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

42.以下不正確的定義語(yǔ)句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

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

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

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

43.以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i--)a[i]=1O-i;printf("%d%d%d",a[2],a[5],a[8]);}

A.258B.741C.852D.369

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

A.在C程序中,語(yǔ)句之間必須要用分號(hào)(;)分隔

B.在C程序中#include行和#define行不是C語(yǔ)句

C.程序中的注釋部分可有可無(wú),通??梢允÷?/p>

D.當(dāng)輸入數(shù)值數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型值:對(duì)于實(shí)型變量只能輸入實(shí)型值

45.有以下程序:#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2);i2=f(1+1);printf("%d%d\n",i1,i2);}程序的運(yùn)行結(jié)果是()。

A.1212B.117C.1111D.127

46.下列關(guān)于隊(duì)列的敘述中正確的是______。A.在隊(duì)列中只能插入數(shù)據(jù)B.在隊(duì)列中只能刪除數(shù)據(jù)C.隊(duì)列是先進(jìn)先出的線性表D.隊(duì)列是先進(jìn)后出的線性表

47.執(zhí)行以下程序后,test.txt文件的內(nèi)容是(若文件能正常打開(kāi))()。#include<stdio.h>main(){FILE*fp;char*s1="Fortran",*s2="Basic";if((fp=fopen("test.txt","wb"))==NULL){printf("Can'topentest.txtfile\n");exit(1);}fwrite(s1,7,1,fp);/*把從地址s1開(kāi)始的7個(gè)字符寫(xiě)到fp所指文件中*/fseek(fp,0L,SEEK_SET);/*文件位置指針移到文件開(kāi)頭*/fwrite(s2,5,1,fp);fclose(fp);}

A.BasicanB.BasicFortranC.BasicD.FortranBasic

48.在計(jì)算機(jī)中,算法是指()。

A.查詢方法B.加工方法C.解題方案的準(zhǔn)確而完整的描述D.排序方法

49.若有以下說(shuō)明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯(cuò)誤的是

A.data的每個(gè)成員起始地址都相同

B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C.程序段:data.a=5;printf(“%I'm”,data.C);輸出結(jié)果為5.000000

D.data可以作為函數(shù)的實(shí)參

50.設(shè)有輸入語(yǔ)句scanf("a=%d,b=%d,c=%d",&a,&b,&C),為使變量a的值為2,b的值為4,c的值為8,則從鍵盤(pán)輸入數(shù)據(jù)的正確形式是()。

A.1,3,2<回車>B.a=1b=3c=2<同車>C.132<回車>D.a=2,b=4,c=8<回車>

51.設(shè)x=015,則x=x^017的值是()。

A.EOFB.-1C.非零值D.0

52.下列敘述錯(cuò)誤的是()。

A.函數(shù)名是屬于用戶標(biāo)識(shí)符,需符合C語(yǔ)言對(duì)標(biāo)識(shí)符的規(guī)定

B.形參只能是變最

C.為保證程序的正常運(yùn)行,函數(shù)中定義的變量不能與其他函數(shù)中的變量同名

D.函數(shù)中定義的變量可以與其他函數(shù)中的變量同名

53.有以下程序:main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是

A.3,2,0B.3,2,-1C.4,3,1D.5.-2,-5

54.已有定義:chara[]="xyz",b[]={'x','y','z'};,下列敘述中正確的是()。

A.數(shù)組a和b的長(zhǎng)度相同B.a數(shù)組長(zhǎng)度小于b數(shù)組長(zhǎng)度C.a數(shù)組長(zhǎng)度大于b數(shù)組長(zhǎng)度D.上述說(shuō)法都不對(duì)

55.下列實(shí)體的聯(lián)系中,屬于多對(duì)多聯(lián)系的是()

A.學(xué)生與課程B.學(xué)校與校長(zhǎng)C.住院的病人與病床D.工資級(jí)別與職工

56.若有如下程序:main(){inta=6;charch=c;printf("%d\n",(a&2)&&(ch<'m'));}則程序運(yùn)行后的輸出結(jié)果是()

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

57.若變量已正確定義,有以下程序段

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

58.主程序調(diào)用findmax函數(shù)求出數(shù)組中最大元素在數(shù)組中的下標(biāo),括號(hào)中需填寫(xiě)的內(nèi)容是

#include<stdio.h>

findmax(int*s,intt,int*k)

{intp;

for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])();}

main()

{inta[10],i,k;

for(i=0;i<10;i++)scanf("%d",&a[i]);

findmax(a,10,&k);

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

A.k=pB.*k=pC.k=p-sD.*k=p-s

59.若有下列說(shuō)明,則()不是對(duì)strcpy庫(kù)函數(shù)的正確的調(diào)用。strcpy庫(kù)函數(shù)用于復(fù)制一個(gè)字符串:char*str1="abed",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";

A.strcpy(str2,str1)

B.strcpy(str3,str1)

C.strcpy(str4,str1)

D.strcpy(str5,str1)

60.有以下程序

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

}

程序的運(yùn)行結(jié)果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

四、選擇題(20題)61.

有以下程序:

#include<strintg.h>

main

{charp[20]={a,b,c,d),q[]="abc",r[]="

abcde";

strcpy(p+strlen(q),r);strcat(p,q);

printf("%d%d\n",sizeof(p),strlen(p));

}

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

A.209B.99C.2011D.1111

62.若有定義:floatx=1.5;inta=1,b=3,c--2;,則正確的switch語(yǔ)句是()。

63.有以下程序

#include<stdio.h>

voidfun(ints[])

{staticintj=0;

do

s[j]+=s[j+1];

while(++j<2);

}

main()

{

intk,a[10]={1,2,3,4,5};

for(k=1;k<3;k++)fun(a);

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

printf("%d",a[k]);

}

程序的運(yùn)行結(jié)果是

A.34756B.23445

C.35745D.12345

64.設(shè)有下列二叉樹(shù):對(duì)此二叉樹(shù)前序遍歷的結(jié)果為()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

65.

66.對(duì)如下二叉樹(shù)進(jìn)行后序遍歷的結(jié)果為()。

A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

67.

68.下列C語(yǔ)言用戶標(biāo)識(shí)符中,不屬于合法標(biāo)識(shí)符的是

A.a(chǎn)d_intB.bb_7C._dd7D.int

69.

70.有以下程序

main()

{

inta[3][2]={0},(*ptr)[2],i,j;

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

{

ptr=a+i;

scanf("%d",ptr);

ptr++;

}

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

{

for(j=0;j<2;j++)

printf("%2d",a[i][j]);

printf("\n");

}

}

若運(yùn)行時(shí)輸入:123<回車>,則輸出結(jié)果是

71.

72.有如下程序段

#include"stdio.h"

typedefstructaa

{inta;

structaa*next;

}M;

voidset(M*k,inti,int*b)

{intj,d=0;

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

{k[j-1].next=&k[j];

k[j-1].a=b[d++];

}

k[j].a=b[d];

}

main()

{Mk[5],*p;

intd[5]={23,34,45,56,67};

set(k,5,d);

p=k+1;

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

}

要輸出45,則在下畫(huà)線處應(yīng)填入的選項(xiàng)是

A.p->next->aB.++p->a

C.(*p).a(chǎn)++D.p++->a

73.

74.在軟件開(kāi)發(fā)中,需求分析階段可以使用的工具是()。

A.N—s圖B.DFD圖C.PAD圖D.程序流程圖

75.

76.若變量x,y已正確定義并賦值,以下符號(hào)C語(yǔ)言語(yǔ)法的表達(dá)式是()。

A)++x,y=x--B)x+1=y

C)x=x+10=x+yD)double(x)/10

77.以下說(shuō)法中正確的是()。

A.C語(yǔ)言程序總是從第一個(gè)的函數(shù)開(kāi)始執(zhí)行

B.在C語(yǔ)言程序中,要調(diào)用的函數(shù)必須在main函數(shù)中定義

C.C語(yǔ)言程序總是從main函數(shù)開(kāi)始執(zhí)行

D.C語(yǔ)言程序中的main函數(shù)必須放在程序的開(kāi)始部分

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

#defineMIN(x,y)(x)<(y)?(x):(y)

main()

{

inti=10,j=15,k;

k=10*MIN(i,j);

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

}

A.10B.15

C.100D.150

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

A.m=4k=5i=5k=5

B.m=4k=4i=5k=5

C.m=4k=4i=4k=5

D.m=4k=5i=4k=5

80.下列判斷正確的是()。A.A.chara="ABCD":等價(jià)于char*a;*a="ABCD":

B.charstr[10]={"ABCD"}:等價(jià)于charstr[10];str[]={"ABCD"};

C.char*s="ABCD":等價(jià)于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD":等價(jià)于charc[5]-d[5]="ABCD";

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fIm和funx的功能是:用二分法求方程的一個(gè)根,并要求絕對(duì)誤差不超過(guò)0.001。

.例如,若給m輸入一100,n輸入90,則函數(shù)求得的二個(gè)根為2.000。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)一個(gè)函數(shù)proc(),它的功能是將一個(gè)數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù)(不得調(diào)用C語(yǔ)言提供的將字符串轉(zhuǎn)為整數(shù)的函數(shù))。

例如,若輸入字符串“1234”,則函數(shù)把它轉(zhuǎn)換為整數(shù)值1234。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

試題程序:

參考答案

1.C

2.C題干中,整型指針變量Pk指向k,Pm指向m,所以右邊表達(dá)式“*pk*(*pm)”的值為“k*m”,即2*4=8;左邊表達(dá)式“*(p=&n)”先將變量n的地址賦給p,然后對(duì)p解引用,引用到n,將n的值賦為8。本題答案為C選項(xiàng)。

3.A

4.B解析:指針變量p指向數(shù)組a的第5個(gè)元素,p[3]在原指向基礎(chǔ)上移3個(gè)單位,指針變量p將指向第8個(gè)元素(下標(biāo)為7的元素),值為7。

5.D

6.B

7.C

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

9.A執(zhí)行x=x-=x-x語(yǔ)句可寫(xiě)成x=x-(x-x),可看出結(jié)果為10,故八選項(xiàng)正確。

10.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來(lái)刻畫(huà)數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲(chǔ)文件(數(shù)據(jù)源)、源和潭。

11.A

12.B指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是一個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。所以題中“P+6”指的是將指針向后移動(dòng)了6個(gè)存儲(chǔ)單元,即指向uE63,存放的是b[6]的地址。

13.C解析:C項(xiàng)復(fù)制時(shí)沒(méi)有復(fù)制結(jié)束串“\0”。

14.C

\n在C語(yǔ)言中各種數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)與機(jī)器的位數(shù)有關(guān),16位機(jī)中(也就是在標(biāo)準(zhǔn)c中),若int類型數(shù)據(jù)占2個(gè)字節(jié),則float類型數(shù)據(jù)占4個(gè)字節(jié),double類型數(shù)據(jù)占8個(gè)字節(jié)。

\n

15.D

16.C解析:函數(shù)fun(int*s,intn1,intn2)的功能是對(duì)數(shù)組s中的元素進(jìn)行首尾互相調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5.6,7,8,9,01;再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。

17.C

18.AB選項(xiàng)中,打開(kāi)一個(gè)已存在的文件并進(jìn)行寫(xiě)操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對(duì)源文件進(jìn)行追加操作等。C選項(xiàng)中,在一個(gè)程序中對(duì)文件進(jìn)行寫(xiě)操作后,不是先關(guān)閉該文件然后再打開(kāi)才能讀到第1個(gè)數(shù)據(jù),用fseek函數(shù)進(jìn)行重新定位即可。D選項(xiàng)中,C語(yǔ)言中的文件可以進(jìn)行隨機(jī)讀寫(xiě)。故本題答案為A選項(xiàng)。

19.C

20.C解析:C語(yǔ)言中在做邏輯或運(yùn)算時(shí),自左向右判斷各個(gè)參加或運(yùn)算的表達(dá)式,一旦運(yùn)算到某式的值為非零時(shí),表明整個(gè)表達(dá)式一定為真,余下的語(yǔ)句則不再進(jìn)行運(yùn)算。本題中,++x的值為真,則++y并沒(méi)有進(jìn)行運(yùn)算,所以y值不變。

21.概念設(shè)計(jì)階段概念設(shè)計(jì)階段解析:數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下六個(gè)設(shè)計(jì)階段:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段及數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段。

22.數(shù)據(jù)庫(kù)系統(tǒng)或數(shù)據(jù)庫(kù)系統(tǒng)階段或數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)階段或數(shù)據(jù)庫(kù)管理技術(shù)階段數(shù)據(jù)庫(kù)系統(tǒng)或數(shù)據(jù)庫(kù)系統(tǒng)階段或數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)階段或數(shù)據(jù)庫(kù)管理技術(shù)階段解析:在數(shù)據(jù)庫(kù)系統(tǒng)管理階段,數(shù)據(jù)是結(jié)構(gòu)化的,是面向系統(tǒng)的,數(shù)據(jù)的冗余度小,從而節(jié)省了數(shù)據(jù)的存儲(chǔ)空間,也減少了對(duì)數(shù)據(jù)的存取時(shí)間,提高了訪問(wèn)效率,避免了數(shù)據(jù)的不一致性,同時(shí)提高了數(shù)據(jù)的可擴(kuò)充性和數(shù)據(jù)應(yīng)用的靈活性;數(shù)據(jù)具有獨(dú)立性,通過(guò)系統(tǒng)提供的映象功能,使數(shù)據(jù)具有兩方面的獨(dú)立性:一是物理獨(dú)立性,二是邏輯獨(dú)立性;保證了數(shù)據(jù)的完整性、安全性和并發(fā)性-綜上所述,數(shù)據(jù)獨(dú)立性最高的階段是數(shù)據(jù)庫(kù)系統(tǒng)管理階段。

23.5858解析:for循環(huán)語(yǔ)句中continue語(yǔ)句的作用是當(dāng)數(shù)組元素值小于0時(shí),結(jié)束本次j循環(huán),break語(yǔ)句的作用是當(dāng)數(shù)組元素值等于0時(shí),結(jié)束j循環(huán),所以for循環(huán)語(yǔ)句的功能是計(jì)算數(shù)組元素a[0][0]、a[0][1]、a[2][1]和a[3][1]之和,即s=1+2+23+32=58。

24.XX解析:主函數(shù)中首先定義了一個(gè)字符型變量c,接著執(zhí)行下面while語(yǔ)句,在while循環(huán)中,首先從鍵盤(pán)上讀入一個(gè)字符Y并給賦給字符變量c,賦值表達(dá)式的值不為'?',執(zhí)行輸出語(yǔ)句,輸出字符X。接著判斷while中的循環(huán)條件,讀入一個(gè)字符'?'并賦值給c,賦值表達(dá)式的值為'?'循環(huán)條件不再滿足,退出循環(huán)。

25.#&#&解析:剛開(kāi)始時(shí),switch后面的表達(dá)式a>0為真(1),與case1匹配,然后執(zhí)行case1后面的switch語(yǔ)句,表達(dá)式b<0值為0,沒(méi)有與其匹配的語(yǔ)句,返回外層,因?yàn)橥鈱記](méi)有break語(yǔ)句,順序執(zhí)行case0后面的switch語(yǔ)句,表達(dá)式“c==5”值為1,與其后面的case1匹配,因此輸出#,遇到break返回外層,又因?yàn)橥鈱記](méi)有break語(yǔ)句,順序執(zhí)行default后的語(yǔ)句,輸出&。

26.物理獨(dú)立性物理獨(dú)立性解析:數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為物理獨(dú)立性。

27.1212解析:本題通過(guò)第一個(gè)for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過(guò)第二個(gè)for循環(huán)的三次循環(huán)累加,求出結(jié)果為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;

28.一對(duì)多一對(duì)多解析:實(shí)體之間的聯(lián)系可以歸結(jié)為一對(duì)一、一對(duì)多與多對(duì)多。如果一個(gè)學(xué)校有許多學(xué)生,而一個(gè)教師只歸屬于一個(gè)學(xué)生,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于一對(duì)多的聯(lián)系。

29.22解析:'\\13':表示八進(jìn)制數(shù)13表示的ASCII字符,是一個(gè)字符,占一個(gè)字節(jié);而”\\12”是個(gè)字符串,除了八進(jìn)制數(shù)12表示的ASCII字符占一個(gè)字節(jié)外,還有在字符串的末尾加上串結(jié)束標(biāo)志“'\\0'”,所以共有2個(gè)字節(jié)。

30.I<na[I]I<n,a[I]解析:該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它們所指向的變量時(shí),要對(duì)它們進(jìn)行指針運(yùn)算,即*號(hào)運(yùn)算。

31.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作甩域在函數(shù)級(jí)和塊級(jí)的變量,全局變量是指作用域在程序級(jí)和文件級(jí)的變量。

32.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。

33.\0'n++\\0'\r\nn++解析:第1個(gè)循環(huán)是求字符串a(chǎn)的長(zhǎng)度,并存儲(chǔ)在變量num中,循環(huán)條件要控制是否取到字符串末尾的'\\0'。第2個(gè)循環(huán)通過(guò)兩個(gè)變量num和n的改變,將b字符串連接到a字符串后面,并將新的字符串長(zhǎng)度記錄到num中。

34.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語(yǔ)言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長(zhǎng)度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實(shí)現(xiàn)的功能簡(jiǎn)單來(lái)說(shuō)就是將字符串s下標(biāo)為p+2~k范圍的字符整體復(fù)制到字符串s下標(biāo)為p~k-2的位置上。在本題中strlen(s)返回s的長(zhǎng)度7,所以復(fù)制的字符為s[5]~s[7],即'f'、'g','\\0'三個(gè)字符,復(fù)制到s[3]~s[5],故最終輸出的字符串為abcfg(因?yàn)閟[5]為'\\0',所以后面的字符不會(huì)輸出)。

35.f1+f2i%5==0f2=ff1+f2\r\ni%5==0\r\nf2=f解析:f用來(lái)保存前兩個(gè)數(shù)之和,并作為第三個(gè)數(shù),計(jì)算后把第二個(gè)數(shù)(f2)賦給f1,第三個(gè)數(shù)(f)賦給f2,再執(zhí)行for循環(huán)。

36.void(*p)();void(*p)();解析:要定義p為指向函數(shù)的指針變量,需寫(xiě)成void(*p)();,注意*p兩側(cè)的括弧不可以省略,表示P先與*結(jié)合,是指針變量,再與后面的()結(jié)合,表示此指針變量指向函數(shù),這個(gè)函數(shù)無(wú)返回值(同fun()函數(shù))。

37.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。

38.存儲(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)算。

39.(cosx)*(cosx)*(m+n)/(m-n)

40.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式為:scanf(格式控制,地址表列),因此,第一處應(yīng)該填寫(xiě)地址,由于是循環(huán)輸入,所以填&a[i]。依據(jù)題意第二處應(yīng)該填寫(xiě)a[i],以實(shí)現(xiàn)sum=sum+a[i]的求和。

41.B解析:選項(xiàng)A定義數(shù)組時(shí)省略了長(zhǎng)度,而C語(yǔ)言中規(guī)定,只有在定義并同時(shí)進(jìn)行初始化時(shí),數(shù)組的長(zhǎng)度才可以省略,數(shù)組的長(zhǎng)度為初始化時(shí)候的成員個(gè)數(shù),故選項(xiàng)A錯(cuò)誤;在C語(yǔ)言中規(guī)定,數(shù)組的長(zhǎng)度必須是一個(gè)整數(shù)或整型常量表達(dá)式,故選項(xiàng)C不正確:定義時(shí)數(shù)組的長(zhǎng)度不能使用變量表示,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

42.B解析:在一維數(shù)組中要注意的是作為下標(biāo)表達(dá)式的常量表達(dá)式的值必須是大于等于0,選項(xiàng)B)中定義有5個(gè)元素,但賦值時(shí)有6個(gè)元素,所以是錯(cuò)誤的。

43.C解析:在本題運(yùn)行時(shí)主要注意的是當(dāng)i=9時(shí),a[i]=l0-9=1;a[i]=8時(shí),a[i]=10-8=2;i=7時(shí),a[i]=10-7=3;……依此類推,直到i=O時(shí),a[i]=10-0=10;此時(shí),i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分別為8,5,2。

44.B

45.B解析:題目中第1條要替換的語(yǔ)句i1=f(2);展開(kāi)后是i1=(2*M);再展開(kāi)為i1=(2*N+1);最后展開(kāi)為i1=(2*5/1),結(jié)果使i1=11。而第2條語(yǔ)句i2=f(1+1);展開(kāi)后為i2=(1+1*M);再展開(kāi)為i2=(1+1*N+1);最后展開(kāi)為i2=(1+1*5+1),結(jié)果使i2=7。故應(yīng)該選擇B。

46.C隊(duì)列是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,選項(xiàng)A和選項(xiàng)B錯(cuò)誤。允許插入的一端稱為隊(duì)尾,允許刪除的一端稱為隊(duì)頭。在隊(duì)列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊(duì)列又稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表,它體現(xiàn)了“先來(lái)先服務(wù)”的原則,選項(xiàng)C正確,選項(xiàng)D錯(cuò)誤。

47.A

48.CC。【解析】計(jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它的基本特征分別是:可行性、確定性、有窮性和擁有足夠的情報(bào)。

49.C解析:本題考查的共用體的概念。共用體變量中的所有成員共享一段公共存儲(chǔ)區(qū),所以共用體變量所占內(nèi)存字節(jié)數(shù)與其成員中占字節(jié)數(shù)最多的那個(gè)成員相等.本題定義的共用體中成員C所占的內(nèi)存最多,因此選項(xiàng)B是正確的。由于共用體變量中的所有成員共享存儲(chǔ)空間,因此變量中的所有成員的首地址相同,選項(xiàng)A是正確的。同結(jié)構(gòu)體變量一樣,共用體類型的變量可以作為實(shí)參進(jìn)行傳遞,也可以傳送共用體變量的地址,選項(xiàng)D也是正確的。在內(nèi)存中,實(shí)數(shù)與整數(shù)的存放形式完全不一樣,共用體的成員共用的是同一塊內(nèi)存,而不是同一個(gè)數(shù)值,因此選項(xiàng)C是錯(cuò)誤的。

50.D解析:本題考查scanf函數(shù)的基本格式。若在scanf函數(shù)的格式控制字符串中插入了其他的字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置原樣輸入這些字符,我們必須把“a=”、“b=”、“c=”也輸入。

51.D解析:文件狀態(tài)檢測(cè)函數(shù)feof(fp)的功能:測(cè)試所指的文件的位置指針是否已達(dá)到文件尾,如果已到達(dá)文件尾,則函數(shù)返回非0值;否則返回0,表示文件尚未結(jié)束。

52.C解析:本題考查函數(shù)調(diào)用時(shí)參數(shù)的作用域。在函數(shù)調(diào)用時(shí),函數(shù)體內(nèi)定義的變量的作用域連函數(shù)體內(nèi),因而在不同函數(shù)體內(nèi)定義的變量可以相同,不影響各個(gè)變量的使用。

53.B解析:本題中首先定義了三個(gè)整型變量x、y和z并分別賦值為0、5和3,while循環(huán)的判定條件為z-->0&&++x<5,由于x的初值為3,所以當(dāng)z--執(zhí)行3次后,z-->0將不在成立,又由于x的初值為0,所以++x執(zhí)行5次,++x<5將不再成立,而它們兩個(gè)表達(dá)式的值為邏輯與的關(guān)系,故當(dāng)z-->0不成立時(shí)整個(gè)表達(dá)式的值為假,因此該循環(huán)共執(zhí)行了3次,即語(yǔ)句y=y-1共執(zhí)行了三次,但while循環(huán)的判定表達(dá)式卻執(zhí)行了四次,故起最后輸出的x、y、z的值分別為3,2,-1,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

54.A解析:字符數(shù)組現(xiàn))中用字符串常量“xyz”進(jìn)行初始化,字符數(shù)組a[]的長(zhǎng)度為寧符的個(gè)數(shù),所以其值為3,并不包括字符串結(jié)束標(biāo)記'\\0';字符串?dāng)?shù)組b[]用3個(gè)字符'x'、'y'、'z'來(lái)初始化,所以其字符串的長(zhǎng)度等于3。

55.AA本題考查關(guān)系數(shù)據(jù)庫(kù)中實(shí)體之間的聯(lián)系。實(shí)體之間的聯(lián)系有3種:一對(duì)一關(guān)系、一對(duì)多關(guān)系和多對(duì)多關(guān)系。一個(gè)學(xué)生可以選擇多門(mén)課程,一門(mén)課程可被多個(gè)學(xué)生選擇,所以學(xué)生與課程之間是多對(duì)多的聯(lián)系

56.A解析:表達(dá)式a&2的值為0,不必再計(jì)算表達(dá)式ch<'m',整個(gè)邏輯表達(dá)式的值為0。

57.B解析:兩個(gè)if語(yǔ)句的判斷條件都不滿足,程序只執(zhí)行了c=a這條語(yǔ)句,所以變量c的值等于3,變量b的值沒(méi)能變化,程序輸出的結(jié)果為3,5,3。所以正確答案為B)。

58.B解析:考查通過(guò)指針來(lái)引用一維數(shù)組的方法。數(shù)組元素可以通過(guò)數(shù)組首地址和下標(biāo)的方式來(lái)引用,數(shù)組元素的下標(biāo)是從0開(kāi)始的,也可以將數(shù)組首地址賦給一個(gè)指針變量,通過(guò)指針和下標(biāo)的方式來(lái)引用數(shù)組元素。通過(guò)數(shù)組的首地址引用數(shù)組元素。

59.C解析:strcpy(s1,s2)函數(shù)的功能是將字符串s2復(fù)制到字符串s1中(注意:要保證s1存儲(chǔ)區(qū)能容納下s2字符串)。

60.D解析:本題中fun函數(shù)實(shí)現(xiàn)丁字符串函數(shù)str-eat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時(shí),形參t和s分別指向了字符串ss和aa,然后通過(guò)一個(gè)while循環(huán)使t指向字符串ss的結(jié)束符的位置,第二個(gè)while循環(huán)將字符串a(chǎn)a中的字符(包括結(jié)束符'\\0')逐個(gè)復(fù)制到字符串ss的末尾處。

61.C

\n在主函數(shù)中,首先定義一個(gè)包含20個(gè)元素的字符數(shù)組P,執(zhí)行語(yǔ)句“strcpy(P+strlen(q),r);”,數(shù)組P的內(nèi)容變?yōu)閧a,b,C,a,b,c,d,e,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0),執(zhí)行語(yǔ)句“strcat(P,q);”,數(shù)組P的內(nèi)容變?yōu)?,a,b,c,a,b,C,d,P,a,b,c,\0,\0,\0,\0,\0,\0,\0,\0),函數(shù)sizeof(P)是求數(shù)組P的大小,返回20,而函數(shù)strlen(p)是計(jì)算以P所指起始地址的字符串的長(zhǎng)度,這一長(zhǎng)度不包括串尾的結(jié)束標(biāo)志0,所以函數(shù)返回11。

\n

62.AB)選項(xiàng)的“switch((int)x);”語(yǔ)句中不應(yīng)該有最后的分號(hào)。switch(exprl)中1雛Jexprl

能用浮點(diǎn)類型或lon9類型,也不能為一個(gè)字符串,因此c)錯(cuò)誤。case后面只能是常量表達(dá)式,因此D)錯(cuò)誤。

63.C在本題中,首先定義了一個(gè)fun函數(shù),函數(shù)中的形參是一個(gè)數(shù)組,該函數(shù)中首先定義了一個(gè)靜態(tài)整型變量j并賦了初值,注意,靜態(tài)變量的作用域是整個(gè)程序,而非該函數(shù)。從該函數(shù)的程序段不難看出該函數(shù)的作用是通過(guò)一個(gè)循環(huán)求形參數(shù)組中相鄰兩個(gè)元素(具體根據(jù)j確定)的和,并保存。

在主函數(shù)中,定義了一個(gè)數(shù)組并賦初值,然后用循環(huán)調(diào)用fun函數(shù)。

當(dāng)k=1時(shí),調(diào)用fun函數(shù),此時(shí)剛開(kāi)始j的值為0,那么fun函數(shù)分別計(jì)算數(shù)組a中的第一個(gè)元素與第二個(gè)元素的和與第二個(gè)元素與第三個(gè)元素的和,并分別保存為數(shù)組的第一個(gè)元素和第二個(gè)元素,結(jié)果分別為3和5。

當(dāng)k=2時(shí),調(diào)用fun函數(shù),此時(shí)j的值為2,那么fun函數(shù)只計(jì)算數(shù)組a中的第三個(gè)元素與第四個(gè)元素的和,并保存為數(shù)組的第三個(gè)元素,結(jié)果為7。

循環(huán)結(jié)束,經(jīng)過(guò)該層循環(huán)后,數(shù)組a中各元素的值分別為3、5、7、4、5,最后用循環(huán)輸出結(jié)果為35745。因此,答案選C。

64.B解析:所謂二叉樹(shù)的前序遍歷(DLR)是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這3者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù),并且,在遍歷左右子樹(shù)時(shí),上述規(guī)則同樣適用,即“根-左-右”。故該二叉樹(shù)的前序遍歷結(jié)果為“ATBZXCYP”。對(duì)于本題,若使用后序遍歷和中序遍歷的結(jié)果分別為“ZBTYCPXA”和“TZBACYXP”。

65.B

66.D所謂的后序遍歷是指,首先遍歷左子樹(shù),然后遍歷右子樹(shù),最后訪問(wèn)根結(jié)點(diǎn),并且在遍歷左、右樹(shù)時(shí),仍然先遍歷左子樹(shù),然后遍歷右子樹(shù),最后訪問(wèn)根點(diǎn)。因此,后序遍歷二叉樹(shù)的過(guò)程也是一個(gè)遞歸過(guò)程。

67.D\r\n

68.DC語(yǔ)言的標(biāo)識(shí)符主要用來(lái)表示常量、變量、函數(shù)和類型等的名字,只起到標(biāo)識(shí)作用。標(biāo)識(shí)符由數(shù)字、下畫(huà)線或英文字母構(gòu)成,可以分為三類:保留字、預(yù)定義標(biāo)識(shí)符和用戶定義標(biāo)識(shí)符。保留字是指每一個(gè)標(biāo)識(shí)符都有其特定的含義,不允許用戶把它們當(dāng)做變量名使用,如if、int、for等。預(yù)定義標(biāo)識(shí)符也是一類具有特殊含義的標(biāo)識(shí)符,它們被用做庫(kù)函數(shù)名和預(yù)編譯命令,如define、include等。用戶定義標(biāo)識(shí)符是用戶根據(jù)自己的需要定義的一類標(biāo)識(shí)符,用于標(biāo)識(shí)變量、符號(hào)常量、用戶定義函數(shù)、類型名和文件指針等。這類標(biāo)識(shí)符主要由英文字母、數(shù)字和下畫(huà)線構(gòu)成,但開(kāi)頭字符一定是字母或下畫(huà)線。

題目中選項(xiàng)A、B、C都是合法的用戶自定義標(biāo)識(shí)符,選項(xiàng)D為保留字,不屬于用戶標(biāo)識(shí)符。

69.D

70.B本題定義了一個(gè)二維數(shù)組a,并通過(guò)a[3][2]={0}將數(shù)組中的各個(gè)元素初始化為0,又定義了一個(gè)指針變量ptr,它用于指向包含2個(gè)元素的一維數(shù)組。在第一個(gè)for循環(huán)中,語(yǔ)句“ptr=a+i;”用于將指針變量ptr指向第i行的數(shù)組元素。通過(guò)兩次循環(huán),分別給二維數(shù)組a的第0行的第1個(gè)元素和第1行的第1個(gè)元素賦了值1和2,即a[0][0]=1,a[1][0]=2。

71.C

72.A在本題中,程序首先定義了一個(gè)結(jié)構(gòu)體,結(jié)構(gòu)體中有兩個(gè)成員變量,一個(gè)是整型,另一個(gè)是指向該結(jié)構(gòu)體的指針。然后程序定義了一無(wú)返回值的函數(shù)set,該函數(shù)帶有三個(gè)參數(shù),第一個(gè)是結(jié)構(gòu)體指針變量k,第二個(gè)是整型變量i,第三個(gè)是整型指針變量b。在函數(shù)體中,首先定義了兩個(gè)整型變量,然后執(zhí)行for循環(huán),從循環(huán)變量的初始值及循環(huán)結(jié)束條件我們可以知道,循環(huán)執(zhí)行的次數(shù)與形參變量i有關(guān),從循環(huán)體中我們可以看出,該循環(huán)是將結(jié)構(gòu)體數(shù)組中的前一個(gè)結(jié)構(gòu)體的指針成員指向后一個(gè)結(jié)構(gòu)體的首地址,并用數(shù)組b中的值給結(jié)構(gòu)體的成員變量a賦值。

在主函數(shù)中,定義了一個(gè)大小為5的結(jié)構(gòu)體數(shù)組k和一個(gè)結(jié)構(gòu)體指針p,然后定義了一個(gè)數(shù)組d,并給數(shù)組d進(jìn)行了初始化操作,然后調(diào)用函數(shù)set,實(shí)參分別為結(jié)構(gòu)體數(shù)組k、5和數(shù)組d,結(jié)合上面我們對(duì)set函數(shù)的分析可以知道,此時(shí)執(zhí)行set的for循環(huán),可以是結(jié)構(gòu)體數(shù)組中各結(jié)構(gòu)體變量的指針成員next指向下一個(gè)結(jié)構(gòu)體變量,并將該結(jié)構(gòu)體變量的成員a賦值為數(shù)組d的與之位置相對(duì)應(yīng)的值,如結(jié)構(gòu)體數(shù)組中第一個(gè)結(jié)構(gòu)體變量的a被賦值為數(shù)組d中的第一個(gè)元素值,即23。那么函數(shù)調(diào)用后,結(jié)構(gòu)體數(shù)組各元素的成員a的值分別為23、34、45、56、67。

函數(shù)調(diào)用后,運(yùn)行p=k+1;語(yǔ)句,該語(yǔ)句的作用是使結(jié)構(gòu)體指針變量p執(zhí)行結(jié)構(gòu)體數(shù)組k的第二個(gè)元素,然后執(zhí)行輸出語(yǔ)句,本題要填的空就在輸出語(yǔ)句中,根據(jù)題目要求,要輸出一個(gè)45的值,當(dāng)然,用數(shù)組d輸出這么一個(gè)結(jié)果很簡(jiǎn)單,為d[2],但選項(xiàng)中并沒(méi)有這項(xiàng),而是需要我們從結(jié)構(gòu)體數(shù)組中輸出這個(gè)值,從上面的分析我們知道,該值對(duì)應(yīng)結(jié)構(gòu)體數(shù)組第三個(gè)元素的成員,而當(dāng)前的p執(zhí)行第二個(gè)元素,從四個(gè)選項(xiàng)來(lái)分析,只有A選項(xiàng)能完成輸出45的任務(wù)。

B選項(xiàng)中的++p->a由于運(yùn)算符優(yōu)先級(jí)問(wèn)題,首先運(yùn)行p->a,輸出的是34,然后加1,即輸出35。

C選項(xiàng)中的(*p).a++等于((*p).a)++,這樣的結(jié)果是34++,最后的輸出結(jié)果是34。

D選項(xiàng)中的p++->a等價(jià)于(p++)->a,顯然是輸出第二個(gè)結(jié)構(gòu)體的a成員值,即34。

73.D

74.B在軟件開(kāi)發(fā)中,需求分析階段可以使用的工具有:DFD圖(數(shù)據(jù)流圖)、數(shù)據(jù)字典(DD.、判斷樹(shù)和判定表;概要設(shè)計(jì)階段可以使用的工具有:結(jié)構(gòu)圖SC(也成程序結(jié)構(gòu)圖);詳細(xì)設(shè)計(jì)階段可以使用的工具有:①圖形工具:程序流程圖、N—S、PAD(問(wèn)題分析圖)、HIP0②表格工具:判定表③語(yǔ)言工具:PDL(偽碼):測(cè)試、調(diào)試階段一般采用各種方法。因此本題的正確答案是B。

75.C\r\n

76.A賦值號(hào)的左邊不能為常量或表達(dá)式,所以B,C錯(cuò)誤,D項(xiàng)不能進(jìn)行這樣的操作。

77.C

78.B該題考查函數(shù)的宏定義及三目運(yùn)算符。其中,表達(dá)式10*MIN(i,j)利用宏展開(kāi)后為10*i<j?i:j,即100<15?10:15,其值為15,然后賦值給k。

79.B由于在main函數(shù)中,變量i=4,所以

80.Da=“ABCD”書(shū)寫(xiě)錯(cuò)誤,因?yàn)椤?”左邊不能出現(xiàn)常量;數(shù)組名S是代表S數(shù)組首地址常量,而不是變量;字符串只有在定義時(shí)維數(shù)可以省略。

81.

82.

【解析】要將數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù),首先判斷該字符串的正負(fù)號(hào)。然后將數(shù)字字符轉(zhuǎn)換為相應(yīng)的數(shù)字,將各個(gè)數(shù)字合并為整數(shù)。最后將得到的整數(shù)乘以字符串中的符號(hào)。將最后的結(jié)果返回到主函數(shù)中。

</j?i:j,即100<15?10:15,其值為15,然后賦值給k。2021-2022年江西省南昌市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.有以下程序:程序運(yùn)行后的輸出結(jié)果是()。A.6B.10C.8D.4

3.

4.下面程序的輸出結(jié)果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}

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

5.廣告系統(tǒng)為了做地理位置定向,將IPV4分割為627672個(gè)區(qū)間,并標(biāo)識(shí)了地理位置信息,區(qū)間之間無(wú)重疊,用二分查找將IP地址映射到地理位置信息,請(qǐng)問(wèn)在最壞的情況下,需要查找多少次?()

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

6.

7.有n個(gè)結(jié)點(diǎn)的二叉樹(shù)鏈表共有__________個(gè)空指針域。

A.n-1B.nC.n+1D.n+2

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

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

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

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

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

9.設(shè)x為int型變量,則執(zhí)行以下語(yǔ)句后,x的值為()。x=10;x=x-=x-x;

A.10B.20C.40D.30

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

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

11.設(shè)無(wú)向圖G中有n個(gè)頂點(diǎn)e條邊,則其對(duì)應(yīng)的鄰接表中的表頭結(jié)點(diǎn)和邊表接點(diǎn)的個(gè)數(shù)分別為()。

A.n,eB.e,nC.2n,eD.n,2e

12.若有定義“intb[8],*p=b;”,則p+6表示()。

A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6

13.以下不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是()。A.while(*t=*s){t++;s++;}

B.for(i=0;t[i]=s[i];i++);

C.do{*t++:*s++;}while(*s);

D.for(i=0,j=0;t[i++]=s[j++];);

14.設(shè)在C語(yǔ)言中,float類型數(shù)據(jù)占4個(gè)字節(jié),則double類型數(shù)據(jù)占()個(gè)字節(jié)。

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

15.在inta=3,int*p=&a;中,*p的值是()

A.變量a的地址值B.無(wú)意義C.變量p的地址值D.3

16.有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的運(yùn)行結(jié)果是

A.987654321B.4321098765C.5678901234D.987651234

17.

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

A.當(dāng)對(duì)文件的讀(寫(xiě))操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

B.打開(kāi)一個(gè)已存在的文件并進(jìn)行寫(xiě)操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個(gè)程序中對(duì)文件進(jìn)行寫(xiě)操作后,必須先關(guān)閉該文件然后再打開(kāi)才能讀到第1個(gè)數(shù)據(jù)

D.C語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

19.計(jì)算機(jī)系統(tǒng)的組成是______。

A.主機(jī)、外設(shè)B.運(yùn)算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內(nèi)存儲(chǔ)器

20.設(shè)x、y、t均為血型變量,則執(zhí)行語(yǔ)句x=y=3;t=++x||++y;后,y的值為_(kāi)_____。

A.不定值B.4C.3D.1

二、2.填空題(20題)21.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下六個(gè)設(shè)計(jì)階段:需求分析階段、【】、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

22.數(shù)據(jù)管理技術(shù)發(fā)展過(guò)程經(jīng)過(guò)人工管理、文件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)三個(gè)階段,其中數(shù)據(jù)獨(dú)立性最高的階段是______。

23.若有以下程序:

main()

{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};

inti,j,s=0;

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

{for(j=0;j<4;j++)

{if(a[i][j]<0)

continue;

if(a[i][j]==0)

break;

s+=a[i][j];

}

}

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

}

執(zhí)行后的輸出結(jié)果是【】。

24.有以下程序:

#include<stclio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序運(yùn)行時(shí),如果從鍵盤(pán)輸入:Y?N?<回車>,則輸出結(jié)果為【】。

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

main()

(inta=2,b=7,c=5;

switch(a>0)

{case1:switch(b<0)

{case1:switch(");break;

case2:printf("!");break;

}

case0:switch(c==5)

{case0:printf("*");break;

case1:printf("#");break;

case2:printf("$");break;

}

default:printf("&");

}

printf("\n");

}

26.數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。

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

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

28.實(shí)體之間的聯(lián)系可以歸結(jié)為一對(duì)一的聯(lián)系,一對(duì)多的聯(lián)系與多對(duì)多的聯(lián)系。如果一個(gè)學(xué)校有許多學(xué)生,而一個(gè)學(xué)生只屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于【】的聯(lián)系。

29.\13'在內(nèi)存中占1個(gè)字節(jié),"\12"在內(nèi)存中占______個(gè)字節(jié)。

30.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大的值和它所在的下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>

#include<stdlib.h>

#include<stdio.h>

voidfun(inta[],intn,int*max,int*d)

{intI;

*max=a[0];

*d=0;

for(I=0;【】;I++)

if(*max<【】)

{*max=a[I];*d=i;}}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);}

31.下面程序輸出的結(jié)果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}

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

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

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

}

33.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長(zhǎng)度。

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;

return(num);

}

34.以下程序運(yùn)行后的輸出結(jié)果是______。

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

35.Fibonacci數(shù)列中的頭兩個(gè)數(shù)是1和1,從第3個(gè)數(shù)開(kāi)始,每個(gè)數(shù)等于前兩個(gè)數(shù)之和。下述程序計(jì)算此數(shù)列的前20個(gè)數(shù),且每行輸出5個(gè)數(shù),請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{intf,f1=1,f2=1;

inti;

printf("%6d%6d",f1,f2);

for(i=3;i<=20;i++)

{f=【】;

printf("%6d",f);

if(【】)

printf("\n");

f1=f2;

【】;

}

}

36.以下程序通過(guò)函數(shù)指針p調(diào)用函數(shù)fun,請(qǐng)?jiān)谔羁諜趦?nèi)寫(xiě)出定義變量p的語(yǔ)句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

37.數(shù)據(jù)模型按不同應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。

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

39.把數(shù)學(xué)表達(dá)式改寫(xiě)成C語(yǔ)言的表達(dá)式是【】。

40.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們之和,請(qǐng)?zhí)羁铡?/p>

#include<stdio,h>

main()

inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

prinff("sum=%d,count=%d\n",sum,count);

}

三、1.選擇題(20題)41.以下能正確定義一維數(shù)組的選項(xiàng)是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

42.以下不正確的定義語(yǔ)句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

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

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

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

43.以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i--)a[i]=1O-i;printf("%d%d%d",a[2],a[5],a[8]);}

A.258B.741C.852D.369

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

A.在C程序中,語(yǔ)句之間必須要用分號(hào)(;)分隔

B.在C程序中#include行和#define行不是C語(yǔ)句

C.程序中的注釋部分可有可無(wú),通??梢允÷?/p>

D.當(dāng)輸入數(shù)值數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型值:對(duì)于實(shí)型變量只能輸入實(shí)型值

45.有以下程序:#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2);i2=f(1+1);printf("%d%d\n",i1,i2);}程序的運(yùn)行結(jié)果是()。

A.1212B.117C.1111D.127

46.下列關(guān)于隊(duì)列的敘述中正確的是______。A.在隊(duì)列中只能插入數(shù)據(jù)B.在隊(duì)列中只能刪除數(shù)據(jù)C.隊(duì)列是先進(jìn)先出的線性表D.隊(duì)列是先進(jìn)后出的線性表

47.執(zhí)行以下程序后,test.txt文件的內(nèi)容是(若文件能正常打開(kāi))()。#include<stdio.h>main(){FILE*fp;char*s1="Fortran",*s2="Basic";if((fp=fopen("test.txt","wb"))==NULL){printf("Can'topentest.txtfile\n");exit(1);}fwrite(s1,7,1,fp);/*把從地址s1開(kāi)始的7個(gè)字符寫(xiě)到fp所指文件中*/fseek(fp,0L,SEEK_SET);/*文件位置指針移到文件開(kāi)頭*/fwrite(s2,5,1,fp);fclose(fp);}

A.BasicanB.BasicFortranC.BasicD.FortranBasic

48.在計(jì)算機(jī)中,算法是指()。

A.查詢方法B.加工方法C.解題方案的準(zhǔn)確而完整的描述D.排序方法

49.若有以下說(shuō)明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯(cuò)誤的是

A.data的每個(gè)成員起始地址都相同

B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C.程序段:data.a=5;printf(“%I'm”,data.C);輸出結(jié)果為5.000000

D.data可以作為函數(shù)的實(shí)參

50.設(shè)有輸入語(yǔ)句scanf("a=%d,b=%d,c=%d",&a,&b,&C),為使變量a的值為2,b的值為4,c的值為8,則從鍵盤(pán)輸入數(shù)據(jù)的正確形式是()。

A.1,3,2<回車>B.a=1b=3c=2<同車>C.132<回車>D.a=2,b=4,c=8<回車>

51.設(shè)x=015,則x=x^017的值是()。

A.EOFB.-1C.非零值D.0

52.下列敘述錯(cuò)誤的是()。

A.函數(shù)名是屬于用戶標(biāo)識(shí)符,需符合C語(yǔ)言對(duì)標(biāo)識(shí)符的規(guī)定

B.形參只能是變最

C.為保證程序的正常運(yùn)行,函數(shù)中定義的變量不能與其他函數(shù)中的變量同名

D.函數(shù)中定義的變量可以與其他函數(shù)中的變量同名

53.有以下程序:main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是

A.3,2,0B.3,2,-1C.4,3,1D.5.-2,-5

54.已有定義:chara[]="xyz",b[]={'x','y','z'};,下列敘述中正確的是()。

A.數(shù)組a和b的長(zhǎng)度相同B.a數(shù)組長(zhǎng)度小于b數(shù)組長(zhǎng)度C.a數(shù)組長(zhǎng)度大于b數(shù)組長(zhǎng)度D.上述說(shuō)法都不對(duì)

55.下列實(shí)體的聯(lián)系中,屬于多對(duì)多聯(lián)系的是()

A.學(xué)生與課程B.學(xué)校與校長(zhǎng)C.住院的病人與病床D.工資級(jí)別與職工

56.若有如下程序:main(){inta=6;charch=c;printf("%d\n",(a&2)&&(ch<'m'));}則程序運(yùn)行后的輸出結(jié)果是()

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

57.若變量已正確定義,有以下程序段

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

58.主程序調(diào)用findmax函數(shù)求出數(shù)組中最大元素在數(shù)組中的下標(biāo),括號(hào)中需填寫(xiě)的內(nèi)容是

#include<stdio.h>

findmax(int*s,intt,int*k)

{intp;

for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])();}

main()

{inta[10],i,k;

for(i=0;i<10;i++)scanf("%d",&a[i]);

findmax(a,10,&k);

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

A.k=pB.*k=pC.k=p-sD.*k=p-s

59.若有下列說(shuō)明,則()不是對(duì)strcpy庫(kù)函數(shù)的正確的調(diào)用。strcpy庫(kù)函數(shù)用于復(fù)制一個(gè)字符串:char*str1="abed",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";

A.strcpy(str2,str1)

B.strcpy(str3,str1)

C.strcpy(str4,str1)

D.strcpy(str5,str1)

60.有以下程序

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

}

程序的運(yùn)行結(jié)果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

四、選擇題(20題)61.

有以下程序:

#include<strintg.h>

main

{charp[20]={a,b,c,d),q[]="abc",r[]="

abcde";

strcpy(p+strlen(q),r);strcat(p,q);

printf("%d%d\n",sizeof(p

溫馨提示

  • 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)論