2021-2022年陜西省安康市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第1頁
2021-2022年陜西省安康市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第2頁
2021-2022年陜西省安康市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第3頁
2021-2022年陜西省安康市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第4頁
2021-2022年陜西省安康市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年陜西省安康市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.字符串"\\"ABCDEF\"\\”的長度是()。

A.11B.10C.5D.3

2.下列不可用于C語言用戶標(biāo)識符的是A.A.j2_KEY

B.char

C._g_

D.Double

3.輸入序列為(A,B,C,D),不可能得到的輸出序列是______.

A.(A,B,C,D)B.(D,C,B,A)C.(A,C,D,B)D.(C,A,B,D)

4.一個二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[1][2]的值為()。

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

5.采用鄰接表存儲的圖的廣度優(yōu)先遍歷算法類似于二叉樹的()。A.A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷

6.在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。A.需求分析階段B.概念設(shè)計(jì)階段C.邏輯設(shè)計(jì)階段D.物理設(shè)計(jì)階段

7.下列程序執(zhí)行后的輸出結(jié)果是()。main{charx=0xFFFF;printf("%d\n",x--);}A.-32767B.FFFEC.1D.32768

8.

9.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運(yùn)行維護(hù)過程

10.以下選項(xiàng)中,合法的一組C語言數(shù)值常量是()。

A.028.5e-3-0xf

B.12.OXa234.5eO

C..1774c1.5Oabc

D.0x8A10,0003.e5

11.以下程序的輸出結(jié)果是()main(){staticchara[10]={"Chinese"};printf("%d",strlen(a));}

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

12.C語言中函數(shù)返回值的類型是由()決定的。

A.return語句中的表達(dá)式類型B.調(diào)用該函數(shù)的主調(diào)函數(shù)類型C.定義函數(shù)時所指定的函數(shù)類型D.以上說法都不正確

13.以下選項(xiàng)中非法的字符常量是A.A.'\101'

B.'\65'

C.”\xff'

D.'\019'

14.設(shè)有如下定義語句:intm[]={2,4,6,8,10},*k=m;以下選項(xiàng)中,表達(dá)式的值為6的是()。

A.*(k+2)B.k+2C.*k+2D.*k+=2

15.函數(shù)fread(buffer,size,count,fp)中buffer代表的是()。

A.—個存儲區(qū),存放要讀的數(shù)據(jù)項(xiàng)

B.一個整數(shù),代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

C.一個文件指針,指向要讀的文件

D.—個指針,指向讀入數(shù)據(jù)要存放的地址

16.以下程序擬實(shí)現(xiàn)計(jì)算sum=1+1/2+1/3+…+1/50。#include<stdio.h>main(){inti;doublesum;sum=1.0;i=1;do{i++-;sum+=1/i;}while(i<50);printf(“sum=%lf\n”,sum);}程序運(yùn)行后,不能得到正確結(jié)果,出現(xiàn)問題的語句是()。

A.sum+=1/i;B.while(i<50);C.sum=1.0D.i++;

17.某線性表中最常用的操作是在最后一個元素之后插入一個元素和刪除第一個元素,則采用()存儲方式最節(jié)省運(yùn)算時間。

A.單鏈表B.僅有頭指針的單循環(huán)鏈表C.雙鏈表D.僅有尾指針的單循環(huán)鏈表

18.有以下程序:#include<stdio.h>intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;…}則以下函數(shù)調(diào)用語句錯誤的是()。

A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);

19.一個C語言程序總是從()開始執(zhí)行:

A.主程序B.子程序C.主函數(shù)D.第一個函數(shù)

20.有以下程序:#include<stdio.b>voidfun(charc){if(c>X)fun(c-1):printf("%C",c);}traia(){fun(z);}程序運(yùn)行后的輸出結(jié)果是()A.xyzB.wxyzC.xzyD.zvx

二、2.填空題(20題)21.設(shè)有chara,b;,若要通過a&b運(yùn)算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進(jìn)制是【】。

22.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長時,確定a、b、c能構(gòu)成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。

請?zhí)羁铡?/p>

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*a、b、c能構(gòu)成三角形*/

elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/

}

23.若fp已下確定義為一個文件指針,d1.dat為二進(jìn)制文件,請?zhí)羁?,以便為“讀”而打開此文件:fp=fopen(【】);。

24.本程序用改進(jìn)冒泡法對數(shù)組a[n]的元素從小到大排序,請?jiān)诔绦蚩瞻滋幪羁铡?/p>

voidbubble(inta[],intn)

{intj,k,jmax,temp;

jmax=【】;

do{

k=0;

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

if(a[j]>a[j+1])

{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;

jmax=k;

}while(jmax>0);}

25.下列語句的輸出結(jié)果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

26.以下說明語句中,【】是結(jié)構(gòu)體類型名。

typedefstruct

{intn;

charch[8];

}PER;

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

#include<stdio.h>

main()

{inta=2,b=-1,C=2;

if(a<B)

if(b<O)c=0;

elsec++;

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

}

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

unsignedfun6(unsignednum)

{unsignedk=1;

do{k*=hum%10;

num/=10;}while(num);

return(k);}

main()

{unsignedn=26;

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

29.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

30.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。

31.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}

32.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實(shí)體完整性、______和自定義完整性。

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

}

{inti=3,j=5,*p=&i,*q=&j;

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

34.在面向?qū)ο蟮姆椒ㄖ?,______描述的是具有相似屬性與操作的一組對象。

35.有以下程序:

main()

{inta=7,b=8,*p,*q,*r;

p=&a;q=&b;

r=p;p=q;q=r;

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

}

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

36.當(dāng)運(yùn)行以下程序時,輸入abcd,程序的輸出結(jié)果是()。insert(charstr[]){inti;i=strlen(str);while(i>0){str[2*i]=str[i];str[2*i-1]='*';i--;}printf("%s\n",str);}main(){charstr[40];scanf("%s\n",str);insert(str);}

37.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

38.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)【】;

39.以下程序運(yùn)行時若從鍵盤輸入:102030<回車>。輸出結(jié)果是【】。

#include<stdio.h>

main()

{

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

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

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

}

40.設(shè)有以下定義:

structss

{intinfo;structss*link;}x,y,z;

且已建立如下圖所示鏈表結(jié)構(gòu),

請寫出刪除點(diǎn)y的賦值語句【】。

三、1.選擇題(20題)41.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>#include<string.h>main(){char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}

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

42.在長度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7

43.若希望下列的程序運(yùn)行后輸出25,程序空白處的正確選項(xiàng)是()。

main()

{inti,j=50,a[]={7,4,10,5,8};

for()

j+=a[i];

printf("%d",j-40);

}

A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i:2;i<4;++i

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

A.scanfB.VoidC.3comD.int

45.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

46.下面程序的輸出結(jié)果是______。unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=26;printf("%d\n",fun(n));}

A.0B.4C.12D.無限次循環(huán)

47.有以下程序:#include<stdio.h>#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);priatf("%d\n",i);}執(zhí)行后的輸出結(jié)果是()。

A.28B.22C.16D.4

48.以下程序段中,能夠通過調(diào)用函數(shù)fun(),使main()函數(shù)中的指針變量p指向一個合法的整型單元的是()。

A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}

B.main{int*pfun(&p);…}ihtfun(int**p){ints;*p=&s;}

C.main(){int*p;fun(&p);}intfun(int**p){*p=(int*)malloc(2);}

D.main(){int*p;fun(p);}intfun(int*p){p=(int*)malloc(sizeo(int));}

49.以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(ar+2,strcat(p1,p2));printf("%s\n",str);}的輸出是______。

A.xyzabcABCB.zabeABCC.yzabcABCD.xyabcABC

50.若以下定義:structlink{intdata;strucklink*next;}a,b,c,*p,*q;且變量a和b之間已有下圖所示的鏈表結(jié)構(gòu):

指針p指向變量a,q指向變量c,則能夠把c插入到a和b之間并形成新的鏈表的語句組是()。

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p>next;

D.(*p).next=q;(*q).next=&b;

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

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項(xiàng)D.數(shù)據(jù)結(jié)構(gòu)

52.若有代數(shù)式

(其中P僅代表自然對數(shù)的底數(shù),不是變量),則下列能夠正確表示該代數(shù)式的C語言表達(dá)式是()。

A.sqrt(abs(n^x+e^x))

B.sqrt(fabs(pow(n,x)+pow(x,e)))

C.sqrt(fabs(pow(n,x)+exp(x)))

D.sqrt(fabs(pow(x,n)+exp(x)))

53.若程序有宏定義:#defineN100則以下敘述中正確的是______。

A.宏定義中定義了標(biāo)識符N的值為整數(shù)100

B.在編譯程序?qū)源程序進(jìn)行預(yù)處理時用100替換標(biāo)識符N

C.對C源程序進(jìn)行編譯時用100替換標(biāo)識符N

D.在運(yùn)行時用100替換標(biāo)識符N

54.在ASCII代碼表中每一個大寫字母比它相應(yīng)的小寫字母的ASCII碼()。

A.小32B.小64C.大32D.大1

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

A.預(yù)處理命令行都必須以#號開始,結(jié)尾不加分號

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

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

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

56.軟件的可維護(hù)性度量可分解為多種因素的度量,下列選項(xiàng)中的______是可維護(hù)性度量的內(nèi)容。

①可測試性

②可移植性

③可復(fù)用性

④可靠性

A.全部B.①和③C.①、②和④D.②和④

57.以下不正確的敘述是A.A.在C程序中,逗號運(yùn)算符的優(yōu)先級最低

B.在C程序中,APH和aph是兩個不同的變量

C.若a和b類型相同,在計(jì)算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變

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

58.若有下列定義和語句:intu=011,y=0x11,w=11;printf("%o,%x,%d\n",u,v,w);則輸出結(jié)果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

59.下列說法中正確的是()

A.交換列排序法效率最高B.插入類排序法效率最高C.選擇類排序法效率最高D.不同的數(shù)據(jù),各種算法的優(yōu)劣不一

60.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項(xiàng)與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

四、選擇題(20題)61.下列定義變量的語句中錯誤的是()。

62.if語句基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。

A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值

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

#include<stdio.h>

#definePT5.5

#defineS(x)PT*x*X

main

{inta=1,b=2:

printf("%4.1f\n",s(a+b));

}

A.49.5B.9.5C.22.0D.45.0

64.

65.

66.若有定義intx'y;并已正確給變量賦值。則以下選項(xiàng)中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x_y)等價的是()。

A.(x-y011x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y=o)

67.

68.假定所有變量均已正確說明,下列程序段運(yùn)行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

69.在下述程序中,判斷條件“i>j”共執(zhí)行的次數(shù)是

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d",s);

break;

}s+=i;

}

}

A.4B.7

C.5D.6

70.

71.以下關(guān)于C語言的敘述中,不正確的是

A.C語言中的注釋可以夾在變量名或關(guān)鍵字的中間

B.C語言中使用變量必須是先定義后使用

C.C語言表達(dá)式運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致

D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示

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

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

A.********B.****C.**D.*

73.設(shè)有定義:char*C;以下選項(xiàng)中能夠使C正確指向一個字符串的是()。

A.charstr()=”string”;C=str;

B.scanf(”%s”,C.;

C.c=getchar();

D.*c=”strin9”;

74.若有定義語句:

charS[10]=”1234567\0\0”;則strlen(s)的值是()。

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

75.

76.設(shè)有如下程序

#include<stdio.h>

main()

{

int**k,*j,i=100;

j=&i;k=&j;

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

}

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

A.運(yùn)行錯誤B.100

C.i的地址D.j的地址

77.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;

A.p+5B.*a+1C.&a+1D.&a[0]

78.

79.

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

main

{inta=3:

printf("%d\n",(a+a-=a*a));

}

A.-6B.12C.0D.-12

80.下面的程序段運(yùn)行后,輸出結(jié)果是()。

A.9B.不確定值C.0D.18

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:傳人一個整數(shù)n,計(jì)算如下公式的值。t=1/2-1/3-…-1/n例如,若輸入3,則應(yīng)輸出0.166667。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是根據(jù)以下公式求π的值(要求精度0.0005,即某項(xiàng)小于0.0005時停止迭代)。程序運(yùn)行后,若輸入精度0.0005,則程序應(yīng)輸出為3.140578。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<math.h>doublefun(doubleeps){}voidmain(){ doublex; printf(“Inputeps:”); scanf(“%lf”,&x); printf(“\neps=%lf,PI=%lf\n”,x,fun(x));}

參考答案

1.B解析:本題涉及字符串的兩個最基本的概念。①字符串的長度是指字符串中字符的個數(shù),但不包含字符串結(jié)束符;②以反斜線“\\”開頭的特殊字符序列,意思是把反斜線后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\\”連同后面的字符為一個長度。

2.B本題主要考查標(biāo)識符的命名規(guī)則。選項(xiàng)A是合法的用戶標(biāo)識符,它符合命名的規(guī)則;選項(xiàng)B不是一個合法的用戶標(biāo)識符,因?yàn)樗窍到y(tǒng)中定義了的關(guān)鍵字;選項(xiàng)C是一個合法的標(biāo)識符;選項(xiàng)D可能也會有很多人認(rèn)為它不是一個合法的標(biāo)識符,認(rèn)為它是關(guān)鍵字,但事實(shí)上它不是一個關(guān)鍵字,因?yàn)镃語言中嚴(yán)格區(qū)分大小寫,因此,它不是雙精度關(guān)鍵字“double”,所以它是一個合法的用戶標(biāo)識符。

3.D

4.C

5.D

6.CE-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計(jì)出表,所以屬于邏輯設(shè)計(jì)階段。

7.C因?yàn)閤=0xFFFF=11111111,因此當(dāng)以整型形式輸出時對應(yīng)的數(shù)為一1。

8.D

9.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。

10.BC語言中,八進(jìn)制數(shù)其開頭必須是數(shù)字“0”,其數(shù)字包括0~7,因此選項(xiàng)A錯誤。浮點(diǎn)數(shù)據(jù)的指數(shù)形式表示中,字母e或E之后的指數(shù)必須為整數(shù),所以選項(xiàng)C錯誤。選項(xiàng)D中,整型數(shù)據(jù)l0,000的表示形式是錯誤的。

11.A

12.C

13.D【答案】D

【知識點(diǎn)】字符常量的考察

【解析】在C語言中要求八進(jìn)制字符常量的表示為\\ddd形式,但是八進(jìn)制中只有0~7,7個數(shù)字,沒有9這個數(shù)字,所以選擇D。

14.A本題考查數(shù)組和指針,*k指針是指向rn數(shù)組的首地址,所以要使表達(dá)武的值為6,只需要指針指向第m[2],所以答案選擇A。-

15.Dfread函數(shù)用來讀二進(jìn)制文件,其中buffer是數(shù)據(jù)塊的指針,它是內(nèi)存塊的首地址,輸入的數(shù)據(jù)存入此內(nèi)存中;size表示每個數(shù)據(jù)塊的字節(jié)數(shù);count用來指定每讀一次讀入的數(shù)據(jù)塊個數(shù);fp是文件指針,指向要讀的文件。選項(xiàng)A、B、C錯誤。本題答案為D選項(xiàng)。

16.A選項(xiàng)A中,“sum+=1/i;”中的i為整型,因此“1/i”是整型類型,當(dāng)“1/i”有小數(shù)時。會被截?cái)唷R虼恕?/i”結(jié)果始終為0,導(dǎo)致結(jié)果出錯。應(yīng)該改為“sum+=1.0/i”。故本題答案為A選項(xiàng)。

17.D

18.D運(yùn)算符“()”的優(yōu)先級高于運(yùn)算符“*”。“(*f)()”定義函數(shù)指針,f是指向函數(shù)的指針。執(zhí)行語句“f=add;”,將函數(shù)add的首地址賦給指針f,所以調(diào)用函數(shù)add可以寫為f。函數(shù)的返回值是整型,不是指針類型,不能用運(yùn)算符,故*f(a,b);”的調(diào)用方式錯誤。故本題答案為D選項(xiàng)。

19.C

20.A本題考查簡單的遞歸函數(shù),當(dāng)c>X則會產(chǎn)生遞歸,依次類推,答案選擇A.

21.1000001010000010解析:運(yùn)算“&”的規(guī)則是只有當(dāng)兩個相應(yīng)的二進(jìn)制位都為1時,該位的結(jié)果才為1。要保留第2、8位,只要將其與二進(jìn)制數(shù)10000010相與。

22.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在邏輯表達(dá)式中,如果要同時滿足幾個條件可以使用邏輯與運(yùn)算符“&&”,故本題的答案應(yīng)該為:a+b>c&&a+c>b&&b+c>a或其他等價形式。

23.“d1.dat”“rb”或“d1.dat”“r+b”或“d1.dat”“rb+”“d1.dat”,“rb”,或“d1.dat”,“r+b”,或“d1.dat”,“rb+”,解析:打開文件的函數(shù)為fopen(”文件名”,“mode”),其中“mode”表示文件的打開方式。如果打開的是二進(jìn)制文件,其mode字符串可以是:“rb”、“wb”、“ab”、“rb+”、“wb+”、“ab+”?!皉”表示以只讀方式打開?!皐”表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件?!癮”為追加方式打開。若文件存在時;將打開這個文件并且在文件的末尾進(jìn)行追加。當(dāng)文件不存在,將創(chuàng)建新文件?!皉+”打開一個已存在文件用于更新(可讀可寫)?!皐+”創(chuàng)建個新文件用于更新,如果文件存在,文件被重寫(可讀可寫)?!癮+”打開用于追加,當(dāng)文件不存在時,創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫)。根據(jù)題意,應(yīng)該填“d1.dst”,“rb”或其他等價的表達(dá)法。

24.n-1jn-1\r\nj解析:此題采用了do…while循環(huán)內(nèi)嵌for循環(huán)的雙層循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)了數(shù)組元素的排序。數(shù)組元素通過首地址和數(shù)組下標(biāo)的方式來引用的。

25.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數(shù)組sp末尾的\'\\0\'。

26.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構(gòu)體類型,此時,也可以用PER來定義變量。

27.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達(dá)式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結(jié)束。在這個程序中a、b、c的值沒做任何改變。

28.1212解析:do…while循環(huán)的一個比較顯著的特點(diǎn)是:先執(zhí)行一次循環(huán)體然后再判斷循環(huán)的條件是否滿足,若滿足則接著進(jìn)入下一次循環(huán),否則就退出循環(huán)。注意:3種循環(huán)結(jié)構(gòu)的比較。

29.33解析:本題考查do…while語句形式:

do循環(huán)體

while表達(dá)式

首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。

30.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。

31.aa解析:本程序先將指針ptr1和ptr2分別指向字符數(shù)組a和b,然后通過指針的移動比較a和b中是否有相同的字符。若有相同的字符則將其輸出。

32.參照完整性參照完整性

33.

34.類類解析:在面向?qū)ο蟮姆椒ㄖ校丫哂邢嗤瑢傩院头椒ǖ膶ο蠓Q為類,類是對象的抽象,對象是類的實(shí)例。

35.87788,7,7,8解析:本題中執(zhí)行語句p=&a和q=&b后,*p=7,*q=8;執(zhí)行完語句r=p,p=q,q=r后,*p=8,*q=7,故答案為8,7,7,8。

36.a*b*c*d*a*b*c*d*解析:本題考查的是函數(shù)與一個簡單的算法結(jié)合在一起的應(yīng)用。首先定義一個int型變量來存放字符串str的長度,執(zhí)行while條件語句。通過分析可知,字符串2*i項(xiàng)的值可由第i項(xiàng)的值得到;第2*i-1項(xiàng)直接賦值為*,i遞減,如此反復(fù)直到不滿足i>0的條件時,輸出運(yùn)行后的字符串。

37.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標(biāo),需先預(yù)設(shè)1個臨時最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最大元素s[k)更大時,應(yīng)該用p更新k。所以在空框處應(yīng)填入代碼“k=p;”。

38.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。

39.1030010300解析:本題的scanf()函數(shù)要求用戶輸入三個十進(jìn)制整數(shù),但只接受第一和第三個到函數(shù)的第二和第三個參數(shù)所指的內(nèi)存地址中。所以本題的輸出為:10300。

40.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:要刪除結(jié)點(diǎn)y,只需讓結(jié)點(diǎn)x的指針域指向y結(jié)點(diǎn)的指針域所指向的后續(xù)結(jié)點(diǎn)就可,因此把結(jié)點(diǎn)z的地址賦給x的指針域就可以了,即讓結(jié)點(diǎn)x的指針域指向結(jié)點(diǎn)z。而結(jié)點(diǎn)z的地址保存在結(jié)點(diǎn)y的指針域中,因此只需把結(jié)點(diǎn)y的指針域賦值給結(jié)點(diǎn)x的指針域即可。

41.A

42.B解析:在長度為64的有序線性表中,其中的64個數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進(jìn)行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個數(shù)據(jù)元素進(jìn)行比較,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較,即和線性表的第二個數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較。依次類推,直到性表中查找到該數(shù)據(jù)或查找到線性表的最后一個元素,算法才結(jié)束。因此,在長度為64的有序線性表十進(jìn)行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為選項(xiàng)B。

43.D解析:要想使程序輸出是25,則i-40=25,j=65,而j初值是50,所以填入for循環(huán)中的語句,使引用的數(shù)組元素累加為65-50=15即可。

44.D解析:標(biāo)識符是C語言中用來表示變量名、數(shù)組名、函數(shù)名、指針名、結(jié)構(gòu)名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語句標(biāo)號等用途的字符序列。標(biāo)識符由1~32個字符組成,第一個字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標(biāo)識符不能與C關(guān)鍵字相同,并區(qū)分大小寫。選項(xiàng)D)錯誤,因?yàn)閕nt是C語言中的關(guān)鍵字。

45.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨(dú)立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個缺點(diǎn),數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點(diǎn),人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點(diǎn)。

46.C解析:本題定義了一個fun函數(shù),用于num求和,具體執(zhí)行過程如下:

num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;

num=2:k=k*(num%10)=6*(2%10),所以k=12,num=num/10=0);

num=O:while條件不成立,所以返回k的值12。

47.A解析:程序中的帶參宏定義,替換展開后為i=4+4*4+4/2+2*2+2=4+16+2+4+2=28。

48.C解析:在選項(xiàng)A中,main()函數(shù)中定義了一個指針變量p,調(diào)用fun()函數(shù)時把p傳給形參p,在函數(shù)中讓p指向局部變量s,由于函數(shù)調(diào)用返回后,局部變量s將被釋放,因此無法實(shí)現(xiàn)讓實(shí)參p指向一個整型單元,故選項(xiàng)A錯誤。選項(xiàng)B中實(shí)現(xiàn)的也是讓實(shí)參p,指向一個在函數(shù)fun()中定義的局部變量s,因此也是錯誤的;選項(xiàng)C在函數(shù)fun()中分配了兩個字節(jié)的內(nèi)存單元并把首地址賦值給形參p指向的變量,即main()函數(shù)的指針變量p中,由于整型變量占兩個字節(jié),因此,選項(xiàng)C是正確的;選項(xiàng)D在主函數(shù)中定義了一個指針地址變量p,并把指針變量的值傳給形參變量p,在fun()函數(shù)中分配了一個整型單元并把首地址賦值給行參指針變量p,由于C語言中變量作為參數(shù)是傳值的,所以并沒有改變對應(yīng)實(shí)參指針變量的值,因此選項(xiàng)D也是錯誤的。所以,C選項(xiàng)為所選。

49.D解析:strcat(p1,p2)將字符串a(chǎn)bcABC防到了*p1所指向的存儲單元中:strcpy在本題將abcABC復(fù)制到str+2所指向的存儲單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。

50.D解析:在本題,扣指針p指向變量a,q指向變量c。要把c插入到變量a和變量b之間,就應(yīng)該首先讓變量a的指針域指向變量c,即(*p).next=q,然后讓變量c的指針域指向變量b,即(*q).next=&b。所以,4個選項(xiàng)中D為所選。

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

52.C解析:n和e的x冪次方,要分別調(diào)用C語言的數(shù)學(xué)庫函數(shù)doublepow(n,x)和doubleexp(x),因?yàn)檫@兩個函數(shù)的返回值都為double型,對兩者的和計(jì)算絕對值,調(diào)用庫函數(shù)doublefabs(pow(n,x)+exp(x)),求出和的絕對值,再調(diào)用開平方函數(shù)doublesqrt(fabs(pow(n,x)+exp(x))),這樣計(jì)算出的結(jié)果就是題干中表達(dá)式的值。

53.B解析:本題考查的重點(diǎn)是宏定義。#define指令定義一個標(biāo)識符和一個串,編譯程序在對C源程序處理時,發(fā)現(xiàn)該標(biāo)識符就都用該串替換,因此選項(xiàng)B是正確的。

54.A解析:本題考查大小寫字母的ASCII碼值的關(guān)系。大寫字母比它相應(yīng)的小寫字母的ASCII碼小32。

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

56.C

57.D解析:在C語言所有的運(yùn)算符中,逗號運(yùn)算符的優(yōu)先級最低。C語言中區(qū)分大小寫,所以APH和aph是兩個不同的變量。賦值表達(dá)式a=b表示將b的值付給a,而b本身的值保持不變;通過鍵盤可以向計(jì)算機(jī)輸入允許的任何類型的數(shù)據(jù)。選項(xiàng)D)中當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整型變量可以輸入整型數(shù)值和字符,對于實(shí)型變量可以輸入實(shí)型數(shù)值和整型數(shù)值等。

58.C解析:在C語言中,“%d”表示輸出帶符號的十進(jìn)制整型數(shù);“%x”表示以十六進(jìn)制無符號型輸出整型數(shù)據(jù)(即不帶前導(dǎo)0x或0x);“%o”表示以八進(jìn)制無符號型輸出整型數(shù)據(jù)(即不帶前導(dǎo)0)。

59.D

60.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進(jìn)制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。

61.A變量命名規(guī)范:由字母、數(shù)字、下劃線組成,且數(shù)字不作為開頭。所以A)錯誤。

62.D考查if循環(huán)語句。if(表達(dá)式),其中表達(dá)式是一個條件,條件中可以是任意的合法的數(shù)值。

63.B本題考查函數(shù)調(diào)用,由于a+b沒有被括起來,所以s(a+b)=PT*a+b*a+b=5.5*1+2*1+2=9.5,故選擇B。

64.A

65.D

66.A條件表達(dá)式:X----表達(dá)式l?表達(dá)式2:表達(dá)式3的含義是:先求解表達(dá)式1,若其值為非0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x,若表達(dá)式1的值為o(假),則求解表達(dá)式3,將表達(dá)式3的值賦給x。在本題中與表達(dá)式(x_y)等價的是(x—y<011x—y>0),A選項(xiàng)正確。

67.C

68.B解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a=0,則!a成立,執(zhí)行下列的語句,x--,得x=11:第二個if語句,判斷條件,發(fā)現(xiàn)c=o,則條件不成立,執(zhí)行下列的else語句,得x=4。

69.D本題主要要求我們求判斷條件“i>j”執(zhí)行的次數(shù)。在本題的程序中,首先定義了四個整型變量,并分別賦初值,然后執(zhí)行for循環(huán)結(jié)構(gòu),該循環(huán)結(jié)構(gòu)中都是缺省語句,那么如果循環(huán)體中沒有break語句,程序?qū)⒚媾R死循環(huán),從后面的程序中我們可以看出,程序中存在一條break語句。

第一次循環(huán)時,變量k的值為2,變量i的值被改變?yōu)?,而此時變量j的值為10,執(zhí)行if(i>j)語句,結(jié)果為假,不執(zhí)行break語句,然后改變變量s的值,一次循環(huán)結(jié)束。

通過對這次循環(huán)的分析,我們發(fā)現(xiàn)變量k的值一直沒被改變,而變量i值的改變與變量k有關(guān),且每循環(huán)一次增加2,那么變量i的改變軌跡應(yīng)該為0,2,4,6,8,10,12,當(dāng)i等于12時,其值大于j,條件判斷語句結(jié)果為真,執(zhí)行break語句,結(jié)束循環(huán)。從這里我們可以推斷出循環(huán)執(zhí)行的次數(shù)為6,因此,判斷條件“i>j”執(zhí)行的次數(shù)也為6次,本題的正確答案選D。

70.A

71.CA選項(xiàng)指出“C語言中的注釋可以夾在變量名或關(guān)鍵字的中間”,該選項(xiàng)是正確的。通常采用/*.....*/作為C語言里的注釋符,注釋符之間的內(nèi)容是方便他人理解程序而寫的,對編譯和運(yùn)行不起作用。注釋可以在程序的任何位置。

B選項(xiàng)“C語言中使用變量必須是先定義后使用”,該選項(xiàng)是正確的。變量先定義后使用是編程語言的語法規(guī)則。這樣可以讓編譯器首先知道該定義變量的類型,可以事先為該變量安排好存儲空間,不至于最后編譯失敗。如果預(yù)先沒有定義,編譯器會因?yàn)椴磺宄撟兞康念愋投鴮?dǎo)致隨意分配內(nèi)存空間,這樣可能導(dǎo)致空間分配過大

溫馨提示

  • 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

提交評論