2021年安徽省宣城市全國計算機等級考試C語言程序設計真題二卷(含答案)_第1頁
2021年安徽省宣城市全國計算機等級考試C語言程序設計真題二卷(含答案)_第2頁
2021年安徽省宣城市全國計算機等級考試C語言程序設計真題二卷(含答案)_第3頁
2021年安徽省宣城市全國計算機等級考試C語言程序設計真題二卷(含答案)_第4頁
2021年安徽省宣城市全國計算機等級考試C語言程序設計真題二卷(含答案)_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年安徽省宣城市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:main{chara=a,b;printf("%c,",++a);printf("%c\n",b=a++):)程序運行后的輸出結果是()。A.b,bB.b,cC.a,bD.a,c

2.在C語言中,函數(shù)返回值的類型最終取決于()。

A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型

B.return語句中表達式值的類型

C.調用函數(shù)時主調函數(shù)所傳遞的實參類型

D.函數(shù)定義時形參的類型

3.

4.有以下程序

#include<stdio.h>

main()

{inty=10

while(y--);

printf(“y=%d\n”,y);

}

程序執(zhí)行后的輸出結果是()。A.y=0B.y=-1C.y=1D.while構成無限循環(huán)

5.在C語言中,int、char和short種類型數(shù)據(jù)在內存中所占用的字節(jié)數(shù)()。

A.由用戶自己定義B.均為2個字節(jié)C.是任意的D.由所用機器的機器字長決定

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

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

B.將字符串str1連接到字符串str2之后再復制到字符串str3之后

C.將字符串str2復制到字符串str1之后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串strl復制到字符串str3中

7.有以下程序:#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d.",aa[i]);printf("\n");}其輸出結果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.9,2,7,4,5,6,3,8,1,10,

D.1,10,3,8,5,6,7,4,9,2,

8.設散列表中m個存儲單元,散列函數(shù)為H(key)=key%p,p是最好選擇()。

A.小于等于m的最大奇數(shù)B.小于等于m的最大素數(shù)C.小于等于m的最大偶數(shù)D.小于等于m的最大合數(shù)

9.

10.下列鏈表中,其邏輯結構屬于非線性結構的是()

A.雙向鏈表B.帶鏈的棧C.二叉鏈表D.循環(huán)鏈表

11.使用二分查找算法在一個有序序列中查找一個元素的時間復雜度為()

A.O(N)B.O(logN)C.O(N*N)D.O(N*logN)

12.以下程序的輸出結果是_______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;print("%d%d%d,a[2],a[5],a[8]);}

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

13.若有定義“inta;longb;doublex,y;”,則以下選項中正確的表達式是()。

A.a=x<>yB.a%(int)(x-y)C.(a*y)%bD.y=x+y=x

14.設x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

15.若變量已正確定義并賦初值,以下合法的賦值語句是()。

A.k=(m==n);B.k=-m-nC.k=int(m+n);D.k=m*n=1;

16.若用一個大小為6的數(shù)值來實現(xiàn)循環(huán)隊列,且當前rear和front的值分別為0和3,當從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為()。

A.1和5B.2和4C.4和2D.5和1

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

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

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

A.一個算法的空間復雜度打,則其時間復雜度也必定大

B.一個算法的空間復雜度大,則其時間復雜度也必定小

C.一個算法的時間復雜度大,則其空間復雜度也必定小

D.算法的時間復雜度與空間復雜度沒有直接相關

19.以下敘述中,不正確的是()。

A.使用staticfloata定義的外部變量存放在內存中的靜態(tài)存儲區(qū)

B.使用floatb定義的外部變量存放在內存中的動態(tài)存儲區(qū)

C.使用staticfloatc定義的內部變量存放在內存中的靜態(tài)存儲區(qū)

D.使用floatd定義的內部變量存放在內存中的動態(tài)存儲區(qū)

20.下列字符數(shù)組初始化語句中,不正確的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

C.charc[]={a,b,c,d);

D.charc[]={"ffgoodmorning"};

二、2.填空題(20題)21.注釋一般分為序言性注釋和______注釋。

22.有以下程序

main()

{intt=1,i=5;

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

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

}

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

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

structNODE

{

intnum;

stmctNODE*next;

};

main()

{structNODEs[3]={{1,'\0'),{2,'\0'),{3,'\0'}),*p,*q,*r;

intsum=0;

s[0].next=s+1;

s[1].next=s+2;

s[2].next=s;

p=s

q=p->next;

r=q->next;

sum+=q->next->num;

sum+=r->next->next->num;

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

}

24.若a=10,b=20,則表達式!(a<b)的值是【】。

25.在一棵二叉樹上第6層的結點個數(shù)最多是【】。

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

main()

{

intp[7]={11,13,14,15,16,17,18);

inti=0,j=0;

while(i<7&&p[i]%2==1)

j+p[i++];

printf(“%d\n”j);

}

27.閱讀程序:

#include<string.h>

#include<strdio.h>

strle(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!='0')num++;

while(b[n])

{*(a+num)=b[n];num++;n++;}

return(num);

}

main()

{charstrl[81],str2[81],*p1=strl,*p2=str2;

gets(p1);gets(p2);

prinf("%d\n",strle(p1,p2));

}

運行上面的程序,如果從鍵盤上輸入字符串qwerty和字符串abcd,則程序的輸出結果是【】。

28.在數(shù)據(jù)庫系統(tǒng)中,實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

29.數(shù)據(jù)的邏輯結構有線性結構和______兩大類。

30.有以下語句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值:

n1=10

n2=20

每個輸出行從第一列開始,請?zhí)羁铡?/p>

31.執(zhí)行以下程序后的輸出結果是【】。

main()

{inta=10;

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

}

32.在宏定義#definePI3.14159中,用宏名PI代替一個______。

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

main()

{

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

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

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

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

}

34.在面向對象方法中,對象之間進行通信的構造稱為()。

35.以下程序中函數(shù)fun的功能是求出能整除x且不是偶數(shù)的務正整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。

例如,若x中的值為30,則有4個數(shù)符合要求,它們是1,3,5,15。

請按題意,完成填空。

試題程序:

#include<stdio.h>

voidfun(intx,intpp[],int*n)

{inti,j=0;

【】;

if(x%i==0)pp[j++]=i;

【】;

}

main()

{intx,aa[1000],n,i;

printf("\nPleaseenteranintegernumber:\n");

scanf("%d",&x);

fun(x,aa,&n);

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

printf("\n");

}

36.以下sum函數(shù)的功能是計算下列級數(shù)之和:

請給函數(shù)中的各變量正確賦初值。

doublesum(douLlex,intn)

{inti;

doublea,b,s;

【】

for(i=1;i<=n;i++){a=a*x;b=b*i;s=s+a/b;}

returns;

}

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

#include<stdio.h>

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

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

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

}

38.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標,最大的值和它所在的下標通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標。請?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);}

39.下面程序的輸出結果是【】。

#include<stdio.h>

main()

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

inti;

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

printf("\n");

}

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

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{case0:m++;n++;break;

case1:n++;break;

default:k++;n++;

}

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

}

三、1.選擇題(20題)41.C語言中while和do-while循環(huán)的主要區(qū)別是

A.do-while的循環(huán)體至少無條件執(zhí)行一次

B.while的循環(huán)控制條件比do-while的循環(huán)控制條件更嚴格

C.do-while允許從外部轉到循環(huán)體內

D.do-while的循環(huán)體不能是復合語句

42.若有條件表達式(exp)?a++:b--,則以下表達式中能完全等價于表達式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

43.在下列選項中,沒有構成死循環(huán)的是()。

A.inti=100;while(1){i=i%100+1;if(i>100)break;}

B.for(;;);

C.intk=10000;do{k++;}while(k>10000);

D.ints=36;while(s)--s;

44.若已包括頭文件<string.h>且已有定義chars1[18],s2={"ABCDE"}和inti,現(xiàn)要將字符串"ABCDE"賦給s1,下列語句錯誤的是()。

A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.s1="ABCDE";

D.for(i=0;i<6;i++)s1[i]=s2[i];

45.下面是對宏定義的描述,不正確的是______。

A.宏不存在類型問題,宏名無類型,它的參數(shù)也無類型

B.宏替換不占用運行時間

C.宏替換時先求出實參表達式的值,然后代入形參運算求值

D.宏替換只不過是字符替代而已

46.有以下函數(shù)定義:voidfun(intn,doublex){......}若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun正確調用語句是______。

A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfun(n,x);

47.有如下程序段:#include<stdio.h>#defineMax(a,b)a>b?a:bmain(){inta=5,b=6,c=4,d;d=c+Max(a,b);printf("%d",d);}其輸出結果為______。

A.10B.5C.6D.編譯錯誤

48.以下程序中函數(shù)sort的功能是對數(shù)組a中的數(shù)據(jù)進行由大到小的排序:#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[]={1,2,3,4,5,6,7,8,9,10},i;son(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序運行后的輸出結果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.1,2,3;8,7,6,5,4,9,10,

D.1,2,10,9,8,7,6,5,4,3,

49.在16位IBM-PC機上使用C語言,若有如下定義:stmctdata{inti;charch;doublef;}b;則結構變量b占用內存的字節(jié)數(shù)是()。

A.1B.2C.7D.11

50.有以下結構體說明和變量定義,如下圖所示,指針p、q、r分別指向一個鏈表中的3個連續(xù)結點。structnode{intdata;structnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指結點的先后位置交換,同時要保持鏈表的連續(xù),以下錯誤的程序段是()。

A.r->next=q;q->next=r->next;p->next=r;

B.q->next=r->neaxt;p->next=r;r->next=q;

C.p->next=r;q->next=r->next;r->next=q;

D.q->next=r->next;r->next=q;p->next=r;

51.有以下程序:voidswap1(intC[]){intt;t=c[0];c[0]=C[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5);swapl(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其輸出結果是

A.5353B.5335C.3535D.3553

52.有以下程序:main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;}while(i<7);printf("%d\n",s);}執(zhí)行后的輸出結果是______。

A.16B.12C.28D.21

53.已知函數(shù)的原形如下,其中結構體a為已經定義過的結構,且有下列變量定義structa*f(intt1,int*t2,strcutat3,structa*t4)structap,*p1;inti;則正確的函數(shù)調用語句為

A.&p=f(10,&i,p,p1);

B.p1=f(i++,(int*)p1,p,&p);

C.p=f(i+1,&(i+2),*p,p);

D.f(i+1,&i,p,p);

54.有下列程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<CR>45678<CR>則輸出結果是()。

A.1267B.1256C.1278D.1245

55.以下不能正確計算代數(shù)式sm2()值的C語言表達式是

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)

56.在數(shù)據(jù)庫設計中,將E-R圖轉換為關系模式的過程屬于()。

A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段

57.設有定義語句int(*f)(int);,則以下敘述正確的是()。

A.f是基類型為int的指針變量

B.f是指向函數(shù)的指針變量,該函數(shù)具有一個int類型的形參

C.f是指向int類型一維數(shù)組的指針變量

D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址

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

A.預處理命令行都必須以#號開始,結尾不加分號

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

C.C程序在執(zhí)行過程中對預處理命令進行處理

D.預處理命令可以放在程序中的任何位置

59.sizeof(float)是______。

A.一種函數(shù)調用B.一個雙精度型表達式C.一個整型表達式D.一個不合法的表達式

60.以下敘述正確的是______。

A.可以把define和if定義為用戶標識符

B.可以把define定義為用戶標識符,但不能把if定義為用戶標識符

C.可以把if定義為用戶標識符,但不能把define定義為用戶標識符

D.define和if都不能定義為用戶標識符

四、選擇題(20題)61.有以下程序

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

}

程序的運行結果是

A.34756B.23445

C.35745D.12345

62.有以下程序:

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

A.1,0,7,0,B.1,2,3,4,C.1,4,5,9,D.3,4,8,10,

63.下列程序的輸出結果是

intb=2;

intfunc(int*a)

{b+=*a;return(b);}

main()

{inta=2,res=2;

res+=func(&a);

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

}

A.2

B.4C.6

D.8

64.有以下程序段:

為使程序段不陷入死循環(huán),從鍵盤鍵入的數(shù)據(jù)應該是()。

A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)

65.

66.有以下程序程序運行后的輸出結果是()。

67.

68.

69.已定義以下函數(shù)

fun(char*p2,char*p1)

{

while((*p2=*p1)!=’\0’){p1++;p2++;}

}

函數(shù)的功能是

A.將p1所指字符串復制到p2所指內存空間B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針所指字符串進行比較D.檢查p1和p2兩個指針所指字符串中是否有’\0’

70.設inti=2,j=1,k=3,則表達式i&&(i+j)&k|i+j的值是_______。

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

71.

72.判斷char型變量cl是否為大寫字母的正確表達式是

A.’A’<=cl<=’Z’B.(cl>=A)&&(cl<=Z)

C.(’A’>=cl)||(’Z’<=cl)D.(cl>=’A’)&&(cl<=’Z’)

73.有下列函數(shù)定義:fun(floath){printf("%f,%f\n",h,h*h);)該函數(shù)的類型是()。A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯

74.

75.以下選項中可用作C程序合法實數(shù)的是()。A..1eOB.3.0e0.2C.E9D.9.12E

76.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關系

77.(6)在結構化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是()

A.可行性分析

B.需求分析

C.詳細設計

D.程序編碼

78.以下程序運行后的輸出結果是()。

A.s=67B.s=61C.S=63D.S=56

79.有以下程序程序執(zhí)行后的輸出結果是()

A.60B.50C.45D.55

80.有以下程序:

#include<stdio.h>

main()

{inti,j,m=1;

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

{for(j=3;j>0;j--)

{if(i*j>3)break;

m*=i+j;

}

}

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

}

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

A.m=6

B.m=2

C.m=4

D.m=3

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求S的值。

例如,當n為100時,函數(shù)的值應為1.566893。

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

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

試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是判斷字符串是否為回文,若是,則函數(shù)返回1,在主函數(shù)中輸出“YES”,否則返回0,在主函數(shù)中輸出“NO”?;匚淖址侵疙樧x和倒讀都一樣的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件prog1.c中。第3部分無紙化考武題庠請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#defineN803intfun(char*str)4{56}7main()8{9chars[n];10FILE*out;11char*test[]={"1234321","123421","123321","abcdCBA"};12inti;13printf("Enterastring:");14gets(s);15printf("\n\n");16puts(s);17if(fun(s))18printf("YES\n");19else20printf("NO\n");21/******************/22out=fopen("out.dat","w");23for(i=0;i<4/i++)24if(fun(test[i]))25fprintf(out,"YES\n");26else27fprintf(out,"NO\n");28fclose(out);29/******************/30}

參考答案

1.A++a與a++的區(qū)別是前者先自加再運算,后者是先運算后自加。

2.A解析:在C語言中,應當在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應該和return語句中的表達式類型一致。如果函數(shù)值的類型和return語句中的表達式類型不一致,則以函數(shù)值的類型為準,由系統(tǒng)自動進行轉換,即函數(shù)類型決定返回值的類型。

3.D

4.B解析:y-的作用是先取其值作為表達式的值,然后y的值減1存入y。當y>0時循環(huán)繼續(xù),直到y(tǒng)=0時循環(huán)結束,然后y值減1存入y中,所以選B。

5.D

6.Cstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復制到s1字符串,要保證sl的容量。

7.C解析:sort函數(shù)的功能實際上是對數(shù)組中奇數(shù)位置上的數(shù)進行從大到小排序。排序后的結果應該為9,2,7,4,5,6,3,8,1,10。

8.B

9.C

10.C數(shù)據(jù)的邏輯結構是描述數(shù)據(jù)之間的關系,分兩大類:線性結構和非線性結構。線性結構是n個數(shù)據(jù)元素的有序(次序)集合,指的是數(shù)據(jù)元素之間存在著“一對一”的線性關系的數(shù)據(jù)結構。常用的線性結構有:線性表,棧,隊列,雙隊列,數(shù)組,串。非線性結構的邏輯特征是一個結點元素可能對應多個直接前驅和多個后驅。常見的非線性結構有:樹(二叉樹等),圖(網等),廣義表。

11.B

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

13.BC語言中沒有“<>”運算符,所以A選項錯誤。運算符“%”的左右兩個操作數(shù)必須為整型數(shù)據(jù),所以B選項正確。表達式“a*y”的結果為double型,所以C選項錯誤。不能將值賦給像“x+y”這樣的表達式,所以D選項錯誤。故本題答案為B選項。

14.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。

15.A變量m、n的數(shù)據(jù)類型未知,但題目中已定義并賦初值。選項B的語句缺少分號結尾。選項C,強制轉化使用錯誤。選項D的“m*n”只能用作表達式的右值,不能作為左值。故本題答案為A選項。

16.B

17.B

18.D

19.B

20.A本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②℃語言中沒有字符串變量,只能用字符數(shù)組來存儲字符串。

21.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,

22.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應i的值相乘,最后當i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。

23.55解析:主函數(shù)首先聲明了一個結點數(shù)組s[3],并分別初始化其成員num為1、2、3,而成員next全部被初始化為'\\0'也就是0。下面又用三條語句s[0].next=s+1;s[1].next=s+2;s[2].next=s;分別將三個結點指向其后面一個結點,而最后一個結點指向第1個結點,構造出一條單向循環(huán)鏈表。接下來用結點指針p=s即讓其指向s[0],然后讓q=p->next,即指向了s[1],r=q->next即讓r指向s[2],然后讓一個累計變量sum累加q->next->num和r->next->next->nm,因為q指向s[1]所以它的next指針指向的是s[2],故第1次累加的是s[2].num=3,而r指向的是s[2]所以它的next是s[0],s[0]的next指向s[1],故第2次累加的是s[1].num=2。所以程序最終輸出結果為5。

24.00解析:已知a=10,b=20,所以邏輯表達式a<b的值為true,即為1,在這個表達式前面有一個邏輯運算符!,表示反操作,所以整個語句的值應當為false,即為0。

25.3232解析:根據(jù)二叉樹的性質,在二叉樹的第k層上,最多有2的k-1次方個結點。所以,第6層的結點數(shù)最多為32。

26.2424解析:本題考核的知識點是數(shù)組的定義和數(shù)組元素的引用。主函數(shù)中首先定義了一個長度為7的數(shù)組,然后用一個while循環(huán)引用數(shù)組的元素,當i大于7或者p[i]為偶數(shù)時,循環(huán)結束。顯然當i=2時,p12]=14為偶數(shù)時,循環(huán)結束,此時j的值為j=p[0]+p[1]=24;

27.10

28.數(shù)據(jù)庫管理系統(tǒng)或DBMS數(shù)據(jù)庫管理系統(tǒng)或DBMS解析:數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)是一種操縱和管理數(shù)據(jù)庫的大型軟件,是用于建立、使用和維護數(shù)據(jù)庫,簡稱DBMS。它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。用戶通過DBMS訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員也通過DBMS進行數(shù)據(jù)庫的維護工作。它提供多種功能,可使多個應用程序和用戶用不同的方法在同時或不同時刻去建立,修改和詢問數(shù)據(jù)庫。因此,數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫管理系統(tǒng)是實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件。本題的答案是數(shù)據(jù)庫管理系統(tǒng)或DBMS。

29.非線性結構非線性結構

30.n1=%d\nn2=%dn1=%d\\nn2=%d解析:根據(jù)輸出結果,可以確定“格式控制”為n1=%d\\nn2=%d,其中,“n1=”和“n2=”是按原樣輸出的字符,“%d”是按十進制整數(shù)輸出,“\\n”是轉義字符,用于輸出回車換行。

31.a=14a=14解析:逗號表達式的值是以逗號分隔的最后一個表達式的值。所以題目中的語句a=(3*5,a+4);就等價于a=a+4;。故本題輸出結果是a=14。

32.字符串字符串解析:本題考查字符替換格式:#define標識符字符串。

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

34.消息消息解析:對象之間進行通信的構造叫做消息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

35.for(i=1;i<=x;i+=2)*n=jfor(i=1;i<=x;i+=2)*n=j解析:本題題干信息是求能整除x且不是偶數(shù)的所有正整數(shù)。循環(huán)語句中i從1開始且每次增2,所以i始終是奇數(shù),語句,n=j;是記錄符合題意的整數(shù)的個數(shù)。

36.a=1.0;b=1.0;s=1.0;a=1.0;b=1.0;s=1.0;解析:各種數(shù)值型數(shù)據(jù)間進行混合運算時,不同類型的數(shù)據(jù)要先轉換成同一類型,再進行運算。本題的結果為double型。

37.77解析:程序中經過宏替換后,表達式t=MAX(a+b,c+d)*10變?yōu)閠=(a+b)>(c+d)?(a+b):(c+d)*10。因為(a+b)>(c+d)為真,所以t=(a+b),輸出結果為7。

38.I<na[I]I<n,a[I]解析:該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它們所指向的變量時,要對它們進行指針運算,即*號運算。

39.SO

40.130130解析:本題主函數(shù)中用了一個for循環(huán),循環(huán)了3次:當i=9時,i/10=0,執(zhí)行switch語句中case0分支,m和n的值各增1,變?yōu)?和1,然后遇到break語句,退出switch語句;當i=10和11時,i/10都等于1,執(zhí)行switch語句中的case1分支,兩次使n增1,變?yōu)?,退出switch語句。故該空格處應該填130。

41.A解析:while是先判斷條件再執(zhí)行語句;do-while則是先執(zhí)行依次語句再判斷條件從而決定是否繼續(xù)再執(zhí)行循環(huán)體中的語句,這正是二者主要區(qū)別。注意:3種循環(huán)結構的比較。

42.B解析:條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式17表達式2:表達式3其求解順序是:先求解表達式1,若為非O(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。并且注意++、--的用法。

43.D解析:選項A)的循環(huán)表達式條件永久為1,由于小于100的數(shù)與100取余不超過99,所以在循環(huán)體內表達式i%100+1的值永遠不大于100,break語句永遠不會被執(zhí)行,所以是死循環(huán);選項B)的括號內沒有能使循環(huán)終止的條件,是死循環(huán);選項C)中先執(zhí)行k++,使k=10001,陷入死循環(huán);選項D)中的s從36開始,每循環(huán)一次就減小1,直到s為0,循環(huán)結束,不會構成死循環(huán)。

44.C解析:數(shù)組名s1是代表s1數(shù)組首地址的地址常量,而不是變量,因為“=”左邊不能出現(xiàn)常量,因此sl='ABCDE'的方法是錯誤的。

45.C解析:宏替換實質上就是字符替代,它不可能進行計算,故C錯誤。帶參數(shù)的宏與函數(shù)相比,宏在程序編譯之前已經將代碼替換到程序內,執(zhí)行時不會產生類似于函數(shù)調用的問題,可以說不占用運行時間。

46.C解析:函數(shù)調用的一般形式為:函數(shù)名(實參表列);,實參與形參的個數(shù)應相等,類型應一致,在調用函數(shù)時,不要指定其返回類型,對于返回類型為void的函數(shù),不能作為賦值表達式的組成部分,所以選C。

47.B解析:在C語言中,宏定義是直接替換的,所以在c+a>b?a:b這個條件表達式中,c+a>b為真,所以用a的值作為整個表達式的值,而a的值為5,所以整個表達式的值為5。

48.C解析:在main函數(shù)中調用sort函數(shù)時,實參&aa[3]把數(shù)組元素aa[3]的首地址傳給形參數(shù)組a,使aa[3]與a[0]相對應。sort函數(shù)將從aa[3]開始的連續(xù)5個數(shù)進行了從大到小的排序,其他數(shù)組元素不變。

49.D解析:結構體變量所占用內存的字節(jié)數(shù)是其所有成員所占用內存字節(jié)數(shù)之和。本題中整型變量i所占用的內存是2字節(jié),字符型變量ch所占用的內存是1字節(jié),雙精度型變量f所占用的內存是8字節(jié),三者相加即可。

50.A解析:題目中要求將q和r所指結點的先后位置交換,即要求p所指結點的指針域指向r所指向的結點,r所指向結點的指針域指向q所指向的結點,q所指向結點的指針域指向r所指向的結點。選項A首先讓r所指向指針的指針域指向q所指向的結點,這樣就將r所指向結點的指針域指向的結點丟失了,故選項A錯誤。選項B首先讓q所指向結點的指針域指向r所指向結點的指針域所指向的結點,然后,讓p所指向結點的指針域指向r所指向的結點,最后讓r所指向結點的指針域指向q所指向的結點,滿足要求,故選項B正確。選項C首先讓p所指向結點的指針域指向r所指向的結點,然后讓q所指向結點的指針域指向r所指向結點的指針域所指向的結點,最后讓r所指向結點的指針域指向q所指向的結點,滿足要求,故選項C正確。選項D首先讓q所指向結點的指針域指向r所指向結點的指針域所指向的結點,然后,讓r所指向結點的指針域指向q所指向的結點,最后讓p所指向結點的指針域指向r所指向的結點,滿足要求,故選項D正確。所以,4個選項中選項A符合題意。

51.B解析:本題中函數(shù)swapl()是傳遞的地址。所以對該形參c的改變將影響實參,分析可知該函數(shù)的作用,是使數(shù)組c的第一個元素和第二個元素的值互換。主函數(shù)中調用該函數(shù)將a作為實參傳遞給形參c,故執(zhí)行該函數(shù)后a的第一個元素和第二個元素的值將交換。分別為5和3。函數(shù)swap2()是值傳遞的,所以該函數(shù)執(zhí)行后對數(shù)組b將沒有任何改變,此時該數(shù)組的第一個和第二個元素依然為3和5,因此最后的輸出為5、3、3和5,所以,4個選項中選項B符合題意。

52.A解析:continue語句的作用是結束本次循環(huán),程序中while循環(huán)語句的功能是計算1~7之間奇數(shù)之和,即s=1+3+5+7=16。

53.B解析:本題目中函數(shù)f的返回值為結構類型的指針,函數(shù)的四個形參分別為:t1為整型,t2為整型的指針,t3為structa類型,t4為structa類型的指針。在進行函數(shù)調用的時候,函數(shù)的實參必須要與形參說明相對應,函數(shù)的返回值也要賦給相應類型的變量。選項A)函數(shù)的返回值不能賦給一個常量;選項C)&(i+2)沒有什么意義;選項D)返回值沒有傳遞給任何變量,向函數(shù)傳遞的應該是structa類型的指針,可是傳的卻是變量。

54.D解析:當用scanf函數(shù)從鍵盤輸入數(shù)據(jù)時,每行數(shù)據(jù)的末尾按下回車鍵(Enter鍵)之前,可以任意修改。但按下回車鍵putchar(c1)(Enter鍵)之后,scanf函數(shù)即接受了這一行數(shù)據(jù),不能再回去修改。所以本題中,當輸入123<CR>時,變量c1、c2、c3的值分別為1、2、3,當輸入45678<CR>時,變量c5、c6的值4和5。所以用輸出函數(shù)putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。所以選項D)為正確答案。

55.A解析:當運算符“/”的左右兩邊運算分量都是整數(shù)的時候,運算結果也是一個整數(shù),如果除不凈則舍去小數(shù)部分。若兩個運算分量有一個是實數(shù),才會返回真正除法上的實數(shù)結果。選項A中傳遞給sin()函數(shù)的參數(shù)表達式1/2計算出來的結果為整數(shù)0,所以不能正確計算出題目要求的值,而其余選項中,除號兩邊都至少有一個運算分量是實數(shù),故應該選擇A。

56.BB。【解析】數(shù)據(jù)庫設計階段主要包括需求分析、概念設計、邏輯設計和物理設計。其中邏輯設計的主要工作是將E-R圖轉換為關系模式。

57.B本題考查的是指向函數(shù)的指針。語句“int(*f)(int);”是對一個函數(shù)的聲明,其中f是指向該函數(shù)的指針,該函數(shù)有一個整型的參數(shù),函數(shù)返回值類型為整型。故答案選B)。

58.C解析:本題考查預處理命令的特點。編譯預處理命令的特點有:①為了區(qū)分一般的語句,預處理命令行都必須以#開始,結尾不加分號;②預處理命令可以放在程序中的任意位置;③在程序中凡是以#開始的語句都是預處理命令行。

59.C解析:sizeof(float)返回float型變量所占存儲單元的字節(jié)數(shù)。

60.B解析:if是C語言中的保留字,所以不能作為用戶標識符;define是C語言中的預編譯命令,由于C語言中的預編譯命令都是以#開頭,所以define可以作為用戶標識符。

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

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

當k=1時,調用fun函數(shù),此時剛開始j的值為0,那么fun函數(shù)分別計算數(shù)組a中的第一個元素與第二個元素的和與第二個元素與第三個元素的和,并分別保存為數(shù)組的第一個元素和第二個元素,結果分別為3和5。

當k=2時,調用fun函數(shù),此時j的值為2,那么fun函數(shù)只計算數(shù)組a中的第三個元素與第四個元素的和,并保存為數(shù)組的第三個元素,結果為7。

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

62.A該程序首先在定義變量時,對二維數(shù)組a[][N]進行賦值操作;調用函數(shù)fun,函數(shù)fun的功能是將二維數(shù)組中的a[0兒0]、a[1][1]、a[2][2]和a[3][3]賦值給一維數(shù)組,最后將一維數(shù)組元素l,0,7,0,輸出。

63.C在本題程序中,首先定義了一個全

溫馨提示

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

評論

0/150

提交評論