2021年河南省平頂山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第1頁
2021年河南省平頂山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第2頁
2021年河南省平頂山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第3頁
2021年河南省平頂山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第4頁
2021年河南省平頂山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年河南省平頂山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

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

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

2.設(shè)變量n為f1oat類型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五人運(yùn)算的表達(dá)式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

3.對于棧操作數(shù)據(jù)的原則是()。

A.先進(jìn)先出B.后進(jìn)先出C.后進(jìn)后出D.不分順序

4.下列函數(shù)的功能是()。voidfun(char*a,char*b){while((*b=*a)!=‘\0’){a++;b++;}}

A.將a所指字符串賦給b所指空間

B.使指針b指向a所指字符串

C.將a所指字符串和b所指字符串進(jìn)行比較

D.檢查a和b所指字符串中是否有‘\0’

5.

6.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

7.下述哪一個是順序存儲結(jié)構(gòu)的優(yōu)點(diǎn)()。

A.存儲密度大B.插入運(yùn)算方便C.刪除運(yùn)算方便D.可方便地用于各種邏輯結(jié)構(gòu)的存儲表示

8.當(dāng)一個函數(shù)無返回值時,定義它的函數(shù)類型應(yīng)是()。

A.voidB.intC.任意D.無

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

10.有以下程序:#include<stdio.h>voidswap(int*a,int*b){intt,*tp;t=*a;*a=*b;*b=t;tp=a;a=b;b=tp;printf(“%d,%d,”,*a,*b);}main(){inti=3,j=7,*p=&i,*q=&j;swap(p,q);printf(“%d,%d,%d,%d”,i,j,*p,*q);}程序運(yùn)行后的輸出結(jié)果是()。

A.3,7,3,7,3,7B.7,3,7,3,7,3C.3,7,3,7,7,3D.3,7,7,3,7,3

11.下列關(guān)于信息系統(tǒng)的敘述中,錯誤的是()。

A.廣播電視是一種雙向的、點(diǎn)到多點(diǎn)的信息交互系自

B.網(wǎng)絡(luò)聊天是一種雙向的,以信息交互為主要目的系統(tǒng)

C.電話是一種雙向的、點(diǎn)對點(diǎn)的、以信息交互為主要的的系統(tǒng)

D.雷達(dá)是一種以感測和識別為主要目的的系統(tǒng)

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

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

13.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次

14.有以下程序:#include<stdio.h>main(){char*p=“6938”;inti,s=0;for(i=3;i>=0;i--)s=10*s+p[i]-‘0’;printf(“%d\n”,s);}程序運(yùn)行后的輸出結(jié)果是()。

A.8396B.6938C.3869D.3689

15.設(shè)x,y,t均為int型變量,執(zhí)行語句:

x=y=3;

t=++x||++y;

完成后,y的值為A.A.不確定B.4C.3D.1

16.函數(shù)fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點(diǎn)是()。

A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對

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

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

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

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

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

18.設(shè)有定義intn=0,*p=&n,**q=&p;,則下列選項中正確的賦值語句是

A.p=1;B.*q=2;C.q=p;D.*p=5;

19.下列4個關(guān)于C語言的結(jié)論中錯誤的是()。

A.可以用do…while語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)

B.可以用for語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)

C.可以用while語句實(shí)現(xiàn)的循環(huán)一定可以用for語句實(shí)現(xiàn)

D.do…while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同

20.以下針對相應(yīng)語句的注釋中,說法錯誤的是()。

A.int*pt[2];/*pt是一個指針數(shù)組名*/

B.int(*pt)[2];/*pt是一維數(shù)組名*/

C.int(*pt)();/*pt是指向函數(shù)的指針*/

D.int*pt();/*pt是一個函數(shù)名*/

二、2.填空題(20題)21.以下程序的功能是調(diào)用函數(shù)fun計算:m=1-2+3-4+…+9-10,并輸出結(jié)果。請?zhí)羁铡?/p>

intfun(intn)

{intm=0,f=1,i;

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

m+=i*f;

f=【】;

returnm;

}

main()

{printf("m=%d\n",【】);}

22.測試用例包括輸入值集和【】值集。

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

intmystrlen(char*str)

{inti;

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

return(【】);

}

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

main()

{

inta,b,c;

a=25;

b=025;

c=0x25;

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

}

25.執(zhí)行以下程序后的輸出結(jié)果是()。

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",A);

26.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。

27.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

28.若x和a均是int型變量,則計算完x=(a=4,6*2)后的x值為______。

29.以下程序從終端輸入一行字符放在s數(shù)組中,輸入以回車符作為結(jié)束,函數(shù)fun統(tǒng)計存放在s數(shù)組中每個數(shù)字字符的個數(shù)。形參ch指向s數(shù)組,形參n給出了s數(shù)組中字符的個數(shù)。在acc數(shù)組中用下標(biāo)為0的元素統(tǒng)計字符“0”的個數(shù),下標(biāo)為1的元素統(tǒng)計字符“1”的個數(shù),…。請?zhí)羁铡?/p>

#include<stdio.h>

voidfun(int*,char*,int);

main()

{chars[80],c;intacc[10],i=0;

printf("Entercharacters:\n");

while((c=getchar())!='\n')s[【】]=c;

fun(【】);

for(i=0;i<10;i++)printf("%c:%d\n",'0'+i,acc[i]);

printf("\n\n");

}

voidfun(int*a,char*ch,intn)

{inti,d;

for(i=0;i<10;i++)a[i]=【】;

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

{d=【】;a[d]++;}

}

30.若有如下程序:

#include"stdio.h"

main()

{chars[30];

Strcpy(&S[0],"adc");

Strcpy(&S[1],"def");

strcpy(&S[2],"gh");;

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

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

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

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

while(--chp>=&b[0])putchar(*chp);

printf("\n");

}

32.下面程序把從終端讀入的10個整數(shù)以二進(jìn)制方式寫入一個名為bi.dat的新文件中。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

if(fp=fopen(【】)==NULL)exit(0);

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

{scanf("%d",&j);

fwrite(&j,sizeof(int),1,【】;

}

fclose(fp);

}

33.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型,請寫出fun函數(shù)的首部【】。要求形參名為b。

main()

{doubles[10][22];

intn;

fun(s);

}

34.選擇程序中的輸入輸出語句,以滿足題目給定的輸入輸出數(shù)據(jù)形式。

main()

{inta;floatb;

【】

【】}

輸入形式:3.52<空格>6<回車>

輸出形式:a*b=21.12

35.有以下程序

voidf(inty,int*x)

{y=y+*x;*X=*X+y;}

main()

{intx=2,y=4;

f(y,&x);

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

}

執(zhí)行后輸出結(jié)果是______。

36.下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

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

voidfun(int*n)

{while((*n)--);

printf("%d",++(*n));

}

main()

{inta=1000;

fun(&a);

}

38.有以下程序:

#include<stdio.h>

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

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

39.有以下程序:

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

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

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

}

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

40.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為【】。

三、1.選擇題(20題)41.有以下程序#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(X){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d\n",a,b);}程序

A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1

42.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是

A.scant("%d",pa);

B.scant("%d",a);

C.scanf("%d",&pa);

D.scanf("%d",*pa);

43.軟磁盤最外邊的磁道數(shù)是()

A.0B.1C.39D.79

44.若有下面的說明和定義:structtest{intm1;charm2;floatm3;unionuu{charu1[5];intu2[2];}ua;}myaa;則sizeof(stmcttest)的值是()。

A.12B.16C.14D.9

45.若有說明:intn=2,*p=&n,*q=p;,則以下非法的賦值語句是

A.p=q;B.*p=*q;C.n=*q;D.p=n;

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

A.線性鏈表的各元素在存儲空間中的位置必須是連續(xù)的

B.線性鏈表的頭元素一定存儲在其他元素的前面

C.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面

D.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的

47.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

48.下列敘述中,正確的是

A.用E-R圖能夠表示實(shí)體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系

B.用E-R圖只能表示實(shí)體集之間一對一的聯(lián)系

C.用E-R圖只能表示實(shí)體集之間一對多的聯(lián)系

D.用E-R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型

49.以下程序運(yùn)行后的輸出結(jié)果是_______。intd=1;fun(intp)printf(%d",d);returnd;}main(){inta=3;printf("%\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

50.已知i、j、k為iht型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1、j的值為2、k的值為3,以下選項中正確的輸入語句是______。

A.scanf("%d%d%d",&i,&j,&k);

B.scanf("%d,%d,&d",&i,&i,&k);

C.scanf("%2d%2d%2d",&i,&j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

51.下列選項中C語言中不合法的字符串常量的是

A.\121B.′y′C.\n\nD.ABCD\x6d

52.請讀程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的輸出結(jié)果是______。

A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值

53.下面程序的輸出結(jié)果是()#include<stdio.h>#include<string.h>{char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(str+2.strcat(pi,p2));printf("%s\n",str);}

A.xyzabcABB.zabcABCC.yzabcABCD.xycbcABC

54.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。

A.12B.13C.14D.15

55.下面敘述正確的是()

A.define和auto都不能定義為用戶標(biāo)識符

B.可以把define和auto定義為用戶標(biāo)識符

C.可以把define定義為用戶標(biāo)識符,但auto是C語言的關(guān)鍵字

D.可以把a(bǔ)uto定義為用戶標(biāo)識符,但define是C語言的關(guān)鍵字

56.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}

A.6,2B.6,4C.8,4D.8,6

57.3.5英寸軟盤的一個角上有一個滑動塊,如果移動該滑動塊將小孔關(guān)閉,則該軟盤()

A.不能讀但能寫B(tài).不能讀也不能寫C.只能讀不寫D.能讀寫

58.以下敘述不正確的是

A.一個C源程序可由一個或多個函數(shù)組成

B.一個C源程序必須包含一個main函數(shù)

C.C程序的基本組成單位是函數(shù)

D.在C程序中,注釋說明只能位于一條語句的后面

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

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

60.已有定義:Mtx=3,y=4,z=5;,則表達(dá)式!(x/y)+z-1&&y+z/2的值是()。

A.6B.OC.2D.1

四、選擇題(20題)61.若有以下程序段,w和k都是整型變量。

w=k;

LB:if(w==0)gotoLE;

w--;

printf("*");

gotoLB;

LE:

M

則不能與上面程序段等價的循環(huán)語句是

A.for(w=k;w!=0;w--)printf("*");

B.w=k;<CR>while(w--!=0)printf("*");w++;

C.w=k;<CR>do{w--;printf("*");}while(w!=0);

D.for(w=k;w;--w)printf("*");

62.定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的輸出結(jié)果是()

A.159B.147C.357D.369

63.有下列程序:

intfun(intn)

{if(n==1))returnl;

else

return(n+fun(n-1)):

}

main()

{intx;

seanf("%d",&x);x=fun(x);printf("%d\n",x);

}

執(zhí)行程序時,給變量x輸入l0,程序的輸出結(jié)果是()。

A.55

B.54

C.65

D.45

64.有以下程序程序運(yùn)行后的輸出結(jié)果是()。A.a+b=0B.a+b=30C.a+b=lOD.出錯

65.有以下程序:

從第一列開始輸入以下數(shù)據(jù)(<CR>代表一個回車符.:

2743<CR>

程序的輸出結(jié)果是()。

A.66877B.668966C.6677877D.6688766

66.

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

#include<stdio.h>

voidp(int*x)

{printf("%d¨,++*x);

}

voidmain()

{inty=3;

p(&y);

}

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

67.

68.已定義:inta=25,b=14,c=19;,以下三目運(yùn)算符(?:)所構(gòu)成語句的執(zhí)行后

a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結(jié)果是

A.***a=25,b=13,c=19B.***a=26,b=14,c=19C.###a=25,b=13,c=19D.###a=26,b=14,c=19

69.下面不屬于需求分析階段任務(wù)的是()。

A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審

70.有以下程序:

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

A.0987654321

B.4321098765

C.5678901234

D.0987651234

71.有如下程序

#include"stdio.h"

voidfun(int*a,int*b)

{intm;

m=(*a+*b)*(*a+*b);

m+=(*a-*b)*(*a-*b);

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

main()

{inta=5,b=6,*x=&a,*y=&b;

fun(x,y);}

程序執(zhí)行后輸出的結(jié)果為

A.120B.121

C.122D.123

72.面下程序段的運(yùn)行結(jié)果是

charstr[]="ABC",*p=str;

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

A.67B.0C.字符’C’的地址D.字符’C’

73.

74.將E—R圖轉(zhuǎn)換為關(guān)系模式時,實(shí)體和聯(lián)系都可以表示為()。

A.屬性B.鍵C.關(guān)系D.域

75.(70)需求分析階段的任務(wù)是確定()

A.軟件開發(fā)方法

B.軟件開發(fā)工具

C.軟件開發(fā)費(fèi)用

D.軟件系統(tǒng)功能

76.有以下程序

#include"stdio.h"

main()

{charstr[]="tomeetme",str1[]="toseeyou";

char*p=str,*p1=str1;

inti;

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

if(*(p+i)==*(p1+i))

putchar(*(p+i));

printf("\n");

}

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

A.to

B.tomeet

C.toee

D.程序段不能通過編譯

77.

78.下列敘述中錯誤的是()。

A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)

B.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)

C.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)

D.數(shù)據(jù)的存儲結(jié)構(gòu)在計算機(jī)中所占的空間不一定是連續(xù)的

79.

80.

五、程序改錯題(1題)81.給定程序中,函數(shù)fun的功能是:首先把b所指字符串中的字符按逆序存放,然后將a所指字符串中的字符和b所指字符串中的字符:按排列的順序交叉合并到C所指數(shù)組中,過長的剩余字符接在C所指的數(shù)組的尾部。例如,當(dāng)a.所指字符串中的內(nèi)容為“abcdef9”,b所指字符串中的內(nèi)容為“1234”時,c所指數(shù)組中的內(nèi)容應(yīng)“a4b3c2dlef9”;而當(dāng)a所指字符串中的內(nèi)容為“1234”,b所指字符串的內(nèi)容為“abcdef9”時,c所指數(shù)組中的內(nèi)容應(yīng)該為“l(fā)g2f3e4dcba”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:實(shí)現(xiàn)兩個字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到pl所指的字符串的后面。

例如,分別輸人下面兩個字符串:FirstString——SecondString

程序運(yùn)行后的輸出結(jié)果是:FirstString————SecondString

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

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

參考答案

1.D此題考查的是基本的循環(huán),答案為D。

2.B

3.B

4.A題目的fun函數(shù)內(nèi),while循環(huán)條件為“(*b=*a)!=‘\\0’”,執(zhí)行時先把指針a所指向的字符賦給指針b所在的內(nèi)存單元。如果該字符不是結(jié)束標(biāo)識‘\\0’,執(zhí)行循環(huán)體“a++;b++;”,指針a、b分別指向下一個字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在的內(nèi)存單元,直到遇到結(jié)束標(biāo)識為止。故本題答案為A選項。

5.A

6.DD。【解析】面向?qū)ο笤O(shè)計方法與面向過程設(shè)計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。其特點(diǎn)包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計的特點(diǎn)。

7.A

8.A

9.D

10.Dmain函數(shù)中,首先定義兩個整型變量i和j,初值為3和7,并將i的地址賦給p,j的地址賦給q,傳給swap函數(shù)。swap函數(shù)接收兩個整型指針變量a、b,然后使用整型變量t交換a、b所指向的值并輸出。通過指針變量的交換改變了實(shí)參i、j的值,使得i=7,j=3。指針變量tp交換a和b的值,由于a、b的值是p、q值的復(fù)制,因此這次交換只改變了形參a、b的值,對實(shí)參p、q的值沒有改變,此時指針變量a指向j,指針變量b指向i。函數(shù)最后輸出*a和*b,所以輸出3,7。由于swap函數(shù)改變了p和q指向的值,因此main函數(shù)輸出i的值為7,j的值為3,*P的值為i,*q的值為j。最終程序輸出:3,7,7,3,7,3。故本題答案為D選項。

11.A廣播/電視是一種單向的、點(diǎn)對多點(diǎn)(面)的以信息傳遞為主要目的的系統(tǒng)。

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

13.B解析:本題考查while語句的使用。本題考查邏輯非運(yùn)算符和不等于運(yùn)算符的區(qū)別,邏輯非運(yùn)算符'!'的優(yōu)先級大于不等于運(yùn)算符'!='的優(yōu)先級。

14.A程序首先定義一個字符指針P,使其指向一個字符串“6938”。然后通過for循環(huán)使用逆序的方式遍歷字符串的各個字符,并將各個字符當(dāng)作整數(shù)參與算術(shù)運(yùn)算。其中,“p[i]-‘0’”的含義是將字符串中的數(shù)字字符轉(zhuǎn)換成對應(yīng)的整數(shù);“10*s+P[i]-‘0’”是將上一次運(yùn)算結(jié)果乘以10后與轉(zhuǎn)換后的整數(shù)相加,再累加到S中。所以for循環(huán)執(zhí)行完后,S的值是將字符串“6938”逆序后當(dāng)作整數(shù)輸出。故本題答案為A選項。

15.Ct=++x或++y,當(dāng)++x不為0的時候,即++x為真,則不需要再繼續(xù)判斷++y,那么y就不再執(zhí)行自加,因此y=3.

16.B解析:SEEK_END代表的是文件末尾,SEEK_SET代表的是文件的開始,SEEK_CUR代表的是文件當(dāng)前位置。

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

18.D解析:選項A),B),C)的指針賦值表達(dá)方式都不正確,*p=5表達(dá)整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個存儲單。

19.D解析:本題考查幾個循環(huán)語句的關(guān)系。①do…while語句、while語句、for語句所實(shí)現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次。

20.B選項A定義了一個數(shù)組pt,它包含兩個整型指針元素,所以pt是一個指針數(shù)組名,正確;選項B定義了一個數(shù)組指針Pt,pt指向一個數(shù)組,該數(shù)組包含兩個整型元素,錯誤;選項C定義了一個函數(shù),pt是函數(shù)指針,指向的函數(shù)沒有參數(shù),返回類型為整型,正確;選項D定義了一個函數(shù),函數(shù)名為pt,函數(shù)返回整型指針類型,正確。故本題答案為B選項。

21.-f或f*-1或-1*f或f*(-1)或(-1)*ffun(10)-f或f*-1或-1*f或f*(-1)或(-1)*f\r\nfun(10)解析:調(diào)用fun()函數(shù)計算m的值,在主函數(shù)中的空格處應(yīng)該填調(diào)用fun()函數(shù)的語句。fun()函數(shù)有一個形參n,為每次參加計算的值的個數(shù),故在主函數(shù)中的空格處應(yīng)該填fun(10),回到fun()函數(shù),函數(shù)用到了一個for循環(huán),共循環(huán)n次,當(dāng)循環(huán)第i次的時候,m的值等于m=1-2+……+[(-1)的i-1次方]*i,所以在fun()函數(shù)的空格處應(yīng)該填使f改變符號的語句,故應(yīng)填-f或f*-1或-1*f或f*(-1)或(-1)*f。

22.輸出輸出解析:測試用例曲測試輸入數(shù)據(jù)(輸入值集)和與之對應(yīng)的預(yù)期輸出結(jié)果(輸出值集)兩部分組成。

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

24.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進(jìn)制的025,c為十六進(jìn)制0x25。然后調(diào)用pruntf()函數(shù)將a、b和c分別用十進(jìn)制輸出,且中間用空格隔開,八進(jìn)制025轉(zhuǎn)換為十進(jìn)制的值為21,十六進(jìn)制的0x25轉(zhuǎn)換為十進(jìn)制的值為37,故最后的輸出結(jié)果為252137。

25.a=14a=14解析:在“逗號表達(dá)式(表達(dá)式1,表達(dá)式2)”中,其運(yùn)算方法是先求表達(dá)式1的值,然后求表達(dá)式2的值,整個逗號表達(dá)式的值是表達(dá)式2的值。首先3*5=15,a=10,a+4=14,最后輸出的運(yùn)算結(jié)果為14。

26.x+=1;

27.可重用性繼承的優(yōu)點(diǎn):相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

28.1212解析:x=(表達(dá)式1,表達(dá)式2,…)的形式,結(jié)果為最后一個表達(dá)式的值:x=(a=4,6*2)=2*6=12。

29.i++accsi0ch[i]-'0'

30.adghadgh解析:函數(shù)strcpy是字符串復(fù)制函數(shù)。第一次將'adc'復(fù)制到以&s[0]為起始地址的存儲空間中,第二次將'def'復(fù)制到以&s[1]為起始地址的存儲空間中,“dc”將被覆蓋,變?yōu)椤癮def”,第三次將“gh”復(fù)制到以&s[2]為起始地址的存儲空間中,“ef”將被覆蓋,變?yōu)椤癮dgh”。

31.eybdooG

32."bi.dat"fp'bi.dat'\r\nfp解析:打開文件函數(shù)fopen的參數(shù)是文件名,因此有fopen('bi.dat');而寫文件的參數(shù)是文件指針,因此有fwrite(&j,sizeof(int),1,fp);

33.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中為了表示函數(shù)調(diào)用“不帶回值”,可以用“void”定義函數(shù)為“無類型”(或稱“空類型”),這樣系統(tǒng)就保證不使函數(shù)帶回任何值。當(dāng)二維數(shù)組作為形參時,二維數(shù)組的第一維可以省略。

34.scanf("%f<空格>%d"&b&a);printf("ab=%5.2f"a*b);scanf('%f<空格>%d',&b,&a);\r\nprintf('a,b=%5.2f',a*b);

35.8484解析:本題考核的知識點(diǎn)是函數(shù)的調(diào)用、值傳遞和地址傳遞的區(qū)別?!爸祩鬟f”指實(shí)參將值傳遞給形參后,實(shí)參與形參再無聯(lián)系。也就是說對行參的改變將不影響實(shí)參;地址傳遞是指地址或數(shù)組名作為形參時的參數(shù)傳遞,這種情況下對形參的改變將對實(shí)參產(chǎn)生影響.函數(shù)f(Y*x)的作用是讓y的值加上指針x所指向變量的值,讓指針x所指向變量的值加上y的值。由于形參y是傳值的,形參x是傳地址的,故調(diào)用該函數(shù)后,作為實(shí)參的y的值將不改變,而實(shí)參x的值將改變,故最后輸出的y的值為4,而x的值為8。

36.HowdoessheHowdoesshe解析:strcpy(str1,s1):字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組str1中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實(shí)際長度,不包括\'\\0\'在內(nèi)。本題中strlen(str1)的值為13,則strcpy(str1+strlen(str1)/2,'esshe');相當(dāng)于strcpy(str1+6,'esshe');,因此可得答案為Howdoesshe。

37.00解析:while循環(huán)的條件為即當(dāng)*n非零時執(zhí)行循環(huán),(*n)一是先使用*n的值再對*n減1,結(jié)束while循環(huán)后*n的值為-1。++(*n)是先對*n加1再使用*n的值,-1+1=0,輸出*n的值即輸出0。

38.00解析:本題是計算5*4*3*2*1*0的值,結(jié)果為0。

39.33解析:i=1時,f(1)=1,j=j+f(1)=0+1=1;i=2時,f(2)=f(1)+1=1+1=2:j=j+f(2)=1+3=3;此時循環(huán)結(jié)束,程序運(yùn)行后的輸出結(jié)果是3。

40.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計、實(shí)現(xiàn)、測試、交付使用以及維護(hù)等活動。

41.D解析:本題考查switch語句,首先,x=1符合條件casel,執(zhí)行switch(y)語句,y=0符合case0語句,執(zhí)行a++并跳出switch(y)語句,此時a=1。因為case1語句后面沒有break語句,所以向后執(zhí)行case2語句,執(zhí)行a++,b++,然后跳出switch(x),得a=2,b=1。

42.A解析:scanf()函數(shù)的功能是進(jìn)行輸入數(shù)據(jù),它是按格式參數(shù)的要求從終端上把數(shù)據(jù)傳送到地址參數(shù)所指定的內(nèi)存空間中,C語言允許程序員間接地使用內(nèi)存地址,這個地址是通過對變量名“求地址”運(yùn)算得到的,求地址的運(yùn)算符是&,得到的地址是一種符號地址。本題中定義了整型變量a和一個指向整型數(shù)據(jù)的指針變量pa,并定義pa是一個存放a的地址的變量。選項B中應(yīng)該將a改為&a;選項C應(yīng)該將&pa改為pa,因為pa已經(jīng)表示存放a的地址;選項D中*pa表示的是指針pa所指向存儲空間的變量的值,而不是一個地址。

43.A

44.A解析:結(jié)構(gòu)體變量所占的存儲空間是各個分量所占空間的總和。共用體變量中的所有成員占有同一個存儲空間,其字節(jié)數(shù)與成員中占字節(jié)數(shù)最多的那個成員相等。charu1[5]是有5個元素的字符數(shù)組占5個字節(jié),intu2[2]是有2個元素的整型數(shù)組占2*2=4個字節(jié),共用體占5個字節(jié)的存儲空間。int占2個字節(jié),char占1個字節(jié),float占4個字節(jié),因此結(jié)構(gòu)體所占的存儲空間為2+1+4+5=12個字節(jié)。

45.D解析:本題中首先定義了一整型變量n并賦初值為2,接著定義了一個整型指針變量p并讓它指向n,接著又定義了一指向指針的指針變量q。選項A中給指針變量p賦值q,故這個賦值語句正確。選項B中*p=*q就是將*q的值賦給指針變量p所指向的變量n,故這個賦值語句不是非法的賦值語句。選項C中是將*q的值賦給變量n,故這個表達(dá)式不是非法的賦值語句。選項D中p為一指針變量,應(yīng)該將一地址賦給它,而在此選項的表達(dá)式中將變量n而不是n的地址賦給它,故這個表達(dá)式不合法。

46.DD.【解析】在線性鏈表中,各元素在存儲空間中的位置是任意的,各元素的順序也是任意的,依靠指針來實(shí)現(xiàn)數(shù)據(jù)元素的前后件關(guān)系。

47.D解析:本題考查指向字符串指針的運(yùn)算方法。執(zhí)行p=s+1后,指針變量p就指向字符串中的第二個字符“B”,然后輸出字符串“BCD”并換行;下面繼續(xù)執(zhí)行循環(huán)語句,指針變量p指向下一個字符“C”,輸出字符串“CD”,最后一次循環(huán),p指向字符“D”,輸出字符串“D”。

48.A解析:兩個實(shí)體之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對一的聯(lián)系、一對多(或多對一)的聯(lián)系和多對多的聯(lián)系;概念模型便于向各種模型轉(zhuǎn)換。由于概念模型不依賴于具體的數(shù)據(jù)庫管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。

49.C解析:靜態(tài)局部變量在編譯時賦韌值,即只賦初值一次,在程序運(yùn)行時它已有初值。以后每次調(diào)用時不再重新賦韌值而只是保留上次函數(shù)調(diào)用結(jié)束時的值,而對自動變量賦初值,不是在編譯時進(jìn)行的,而在函數(shù)調(diào)用時進(jìn)行,每調(diào)用—次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時,d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時d=d+p=6+9=15,最后打印輸出d的值井返回主函數(shù)。

50.A解析:scanf函數(shù)中格式控制后面應(yīng)為變量地址列表,因此選項C和選項D都錯誤,選項B中“&d”是指針變量d的地址,與題目不符。由題目可知指針變量d中存放的是變量c的地址,所以正確答案為選項A。

51.B解析:字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。由此可知,選項A)、C)、D)都是合法的字符串常量,而選B)是一個字符常量。

52.A解析:本題考查字符串比較函數(shù)strcmp()的應(yīng)用。strcmp(s1,s2)是中比較函數(shù),當(dāng)s1>s2時返回值為正數(shù),當(dāng)s1<s2時返回值為負(fù)數(shù),當(dāng)s1=s2時返回值為零。本題中s1,s2分別表示兩個串中第一個字符的地址,s1++和s2++是將指針指向串的第二個字符,指針變量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指針變量s2指向的是字符'B'的地址。而在字符串比較中,寧符串大小的確定是各個字符串相應(yīng)位置字符的ASCII碼值的大小決定的,字符'B'的ASCII碼值為66,字符“b”的ASCII碼值為98,所以s1>s2,返回值為正數(shù)。

53.D

54.D解析:調(diào)用函數(shù)func(x,y),返回x+y,即7;再調(diào)用函數(shù)func(7,z),返回7+z,即15。

55.C

56.B解析:本題主要考查結(jié)構(gòu)體和聯(lián)合內(nèi)存使用的區(qū)別:結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個成員相互獨(dú)立;聯(lián)合所占用的內(nèi)存空間為最長的成員所占用的空間。

57.D

58.D解析:本題考查C語言的基本基礎(chǔ)知識。在C程序中,注釋用符號“/*”開始,而以符號“*/”結(jié)束。程序的注釋可以放在程序的任何位置。通常將注釋放在程序的開始,以說明本程序的功能;或者放在程序的某個語句后面,以對此語句的功能進(jìn)行描述。無論將注釋放有何處,在程序進(jìn)行編譯時,編譯程序不會處理注釋的內(nèi)容;且注釋內(nèi)容也不會出現(xiàn)在目標(biāo)程序中。

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

60.D解析:本題中,&&左邊的表達(dá)式!(x+y)為!(3+7),結(jié)果為假,即為0。再加上2,然后減一,相當(dāng)于0+5-1=4。左邊等于4,&&右邊的表達(dá)式y(tǒng)+z/2相當(dāng)于4+5/2為6,所以整個表達(dá)式相當(dāng)于4&&6為真,即為1,所以選項D正確。

61.C本題主要考查幾種循環(huán)結(jié)構(gòu)的比較。在題目中,給出了一段程序,程序首先對整型變量w賦值;然后定義了一段程序LB,在該段程序中,首先判斷變量w是否為零,如果是,則用GOTO語句跳出該段程序至LE,如果不為零,則w自減并輸出*,然后用GOTO語句跳到該程序段開始的地方執(zhí)行。該段程序其實(shí)相當(dāng)于一個循環(huán),循環(huán)的結(jié)束條件是變量w的值等于零。

在選項A中,我們可以看到循環(huán)結(jié)束的條件是變量w的值等于零,而初值也一樣,與題目中的程序段意思完全一致。

在選項B中,我們可以看出循環(huán)結(jié)束的條件是變量w的值等于零,而程序也是先判斷,再執(zhí)行后面的語句,與原程序段描述的意思一致。

在選項C中,do-while循環(huán)是直到型循環(huán),即先執(zhí)行一次循環(huán)體中的語句后,再判斷循環(huán)條件,當(dāng)w的值已經(jīng)等于0時,循環(huán)依然要運(yùn)行一次,與原程序段描述的內(nèi)容不一致,是題目的答案。

在選項D中,循環(huán)所描述的內(nèi)容也與原程序段一致。

提醒:在完成這類題時,首先需要弄明白原程序段的作用,如果看不懂,則可以比較選項中與其他選項不同的結(jié)果。

62.C

63.A\n本題在函數(shù)intfun(intn)的定義中又出現(xiàn)了對函數(shù)fun的調(diào)用,所以函數(shù)fun是遞歸函數(shù)。因而在主函數(shù)中調(diào)用x=fun(x)時,當(dāng)輸入10賦給變量X時,遞歸調(diào)用的過程為

\nfun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)

\n=10+9++8+7+fun(6)=10+9++8+7+6+fun(6)

\n=10+9++8+7+6+5+fun(4)

\n=10+9++8+7+6+5+4+fun(3)

\n=10+9++8+7+6+5+4+3+fun(2)

\n=10+9++8+7+6+5+4+3+2+fun(1)

\n=10+9++8+7+6+5+4+3+2=55

\n

64.A注釋/*和*/,之間計算機(jī)不參與編譯,所以a、b值仍為0,答案選擇A)。

65.A本題主要考查了字符輸入輸出函數(shù)get—char和putchar的使用。getchar函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備上讀人一個字符,putchar(C)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上,并且字符可以看作整數(shù)參與運(yùn)算。

66.B

\n本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在函數(shù)

溫馨提示

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

最新文檔

評論

0/150

提交評論