2022年寧夏回族自治區(qū)中衛(wèi)市全國計算機等級考試C語言程序設計預測試題(含答案)_第1頁
2022年寧夏回族自治區(qū)中衛(wèi)市全國計算機等級考試C語言程序設計預測試題(含答案)_第2頁
2022年寧夏回族自治區(qū)中衛(wèi)市全國計算機等級考試C語言程序設計預測試題(含答案)_第3頁
2022年寧夏回族自治區(qū)中衛(wèi)市全國計算機等級考試C語言程序設計預測試題(含答案)_第4頁
2022年寧夏回族自治區(qū)中衛(wèi)市全國計算機等級考試C語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年寧夏回族自治區(qū)中衛(wèi)市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有序表的關鍵字序列為(b,c,d,e,f,g,q,r,s,t),則在二分查找關鍵字b的過程中,先后進行的關鍵字依次為()

A.f,c,BB.f,d,BC.g,c,BD.g,d,B

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

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

3.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,則對a數(shù)組元素不正確的引用是()

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

4.

5.下列程序的輸出結果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8

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

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

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

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

a[i][j]=i+j-(i-j);

fun(a);}A.A.3B.4C.5D.6

7.以下敘述中錯誤的是()。

A.C語句必須以分號結束

B.復合語句在語法上被看作一條語句

C.空語句出現(xiàn)在任何位置都不會影響程序運行

D.賦值表達式末尾加分號就構成賦值語句

8.以下程序的輸出結果是().A.A.2222B.2468C.222D.246

9.若有如下程序:main(){inta=0,t=0;while(!a!=0)t+=a++;printf("%d,%d\n",t,A);}則程序運行后的輸出結果是()

A.0,1B.1,0C.0,0D.1,1

10.

11.有以下程序(注:字符a的ASCII值為97):#include<stdio.h>main(){char*s={“abc”};do{printf(“%d”,*s%10);++s;}while(*s);}程序的運行結果是()。

A.789B.abcC.7890D.979899

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

A.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

B.break語句只能用在循環(huán)體內和switch語句體內

C.在循環(huán)體內使用break語句和continue語句的作用相同

D.break語句只能用于switch語句體中

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

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結構

C.線性表的所有結點有且僅有一個前件和后件

D.線性表可以是空表

14.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序運行時輸入k并按<Enter>鍵,則輸出結果為()。

A.pmfkcB.pmfckC.kpmfcD.pmkfc

15.串是一種特殊的線性表,其特殊性體現(xiàn)在()。

A.可以順序存儲B.數(shù)據元素是一個字符C.可以鏈接存儲D.數(shù)據元素可以是多個字符

16.

17.軟件生命周期中,花費最多的階段是()。

A.詳細設計B.軟件編碼C.軟件測試D.軟件維護

18.利用E-R模型進行數(shù)據庫的概念設計,可以分成3步:首先設計局部E-R模型,然后把各個局部E-R模型綜合成一個全局的模型,最后對全局E-R模型進行(),得到最終的E-R模型。

A.簡化B.結構化C.最小化D.優(yōu)化

19.C語言可執(zhí)行程序的開始執(zhí)行點是()。

A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句

20.已知廣義表L=((x,y,z),a,(u,t,w)),從L表中取出原子項t的運算是()。

A.head(tail(tail(L)))

B.tail(head(head(tail(L))))

C.head(tail(head(tail(L))))

D.head(tail(head(tail(tail(L)))))

二、2.填空題(20題)21.若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

22.軟件工程的出現(xiàn)是由于【】。

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

main()

{ints,i;

for(s=0,i=1;1<3;i++,s+=i);

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

}

24.在結構化分析使用的數(shù)據流圖(DFD)中,利用【】對其中的圖形元素進行確切解釋。

25.以下程序的功能是建立一個帶有頭結點的單向鏈表,鏈表結點中的數(shù)據通過鍵盤輸入,當輸入數(shù)據為-1時,表示輸入結束(鏈表頭結點的data域不放數(shù)據,表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

【】=a;q->next=p;【】=p;scanf("%d",&a);}

p->next=′\0;return(ph);}

main()

{structlist*head;head=creatlist();}

26.樹中度為零的結點稱為______。

27.數(shù)據模型包括數(shù)據結構、()和數(shù)據條件。

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

#include<stdio.h>

main()

{charc;intn=100;

floatf=10:doublex:

x=f*=n/=(c=50);

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

}

29.若有如下程序:

main()

{intx=20;

if(x>10)printf("%d",x-=5);

if(x>15)printf("%d",x);

}

則程序運行后的輸出結果是【】。

30.【】(黑箱或白箱)測試方法完全不考慮程序的內部結構和內部特征。

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

32.若x為int類型,請寫出與!x等價的C語言表達式______。

33.數(shù)據庫恢復是將數(shù)據庫從______狀態(tài)恢復到某一已知的正確狀態(tài)。

34.沒有char,a,b;,若要通過a&d運算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進制是【】。

35.有以下程序:

main()

{inti,n=0;

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

{do

{if(i%3)continue;

n++;

}while(!i);

n++;

}

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

}

程序執(zhí)行后輸出結果是【】。

36.以下程序輸出的最后一個值是【】

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

for(i=1;i<=5;i++)printf("%d\n",ff(i));

}

37.數(shù)據字典是各類數(shù)據描述的集合,它通常包括5個部分,即數(shù)據項、數(shù)據結構、數(shù)據流、______和處理過程。

38.以下程序的功能是根據輸入的“y”(“Y”)與“n”(“N”),在屏幕上分別顯示出“ThisisYES.”與“ThisNO.”??瞻滋幮枰钊氲膬热菔?/p>

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES,\n");

case'n':

case'N':printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnterachar'y','Y'or'n','N':");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

39.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于______的聯(lián)系。

40.數(shù)據庫系統(tǒng)的主要特點為數(shù)據集成性、數(shù)據的高______和低冗余性、數(shù)據獨立性和數(shù)據統(tǒng)一管理和控制。

三、1.選擇題(20題)41.在下列敘述中,錯誤的一條是()

A.關系表達式的值是一個邏輯值,即“真”或“假”,可賦給一個邏輯變量

B.數(shù)組必須先定義后使用,且只能逐個引用數(shù)組元素,不能一次引用整個數(shù)組

C.在C語言中,判斷一個量是否為“真”時,用。代表“假”,1代表“真”

D.將字符串常量賦給字符數(shù)組時,必須在字符串后加飛'\0',表示字符結束

42.下列語句中,在字符串s1和s2相等時顯示"theyareEqual"的是()。

A.if(*s1==*s2)

B.if(!strcmp(s1,s2))puts("theyareEqual");puts("theyareEqual");

C.if(s1==s2)

D.if(strcmp(s1,s2))Puts("theyareEqual");puts("theyareEqual");

43.若有以下定義:structlink{intdata;structlink*next;}a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結構:

指針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;

44.若執(zhí)行下面的程序時,從鍵盤輸入5和2,則輸出結果是

main()

{inta,b,k;

scanf("%d,%d",&a,&b);

k=a;

if(a<b)k=a%b;

elsek=b%a;

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

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

45.利用fseek函數(shù)可實現(xiàn)的操作是()。

A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫D.以上答案均正確

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

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

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

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

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

47.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

48.以下程序段中,不能正確賦字符串(編譯時系統(tǒng)會提示錯誤)的是()。

A.chars[10]="abcdefg";

B.chart[]="abcdefg",*s=t;

C.chars[10];s="abcdefg";

D.chars[10];strcpy(s,"abcdefg");

49.以下敘述中錯誤的是A.計算機不能直接執(zhí)行用C語言編寫的源程序

B.C程序經C編譯程序編譯后,生成后綴為.obj的文件是一個二進制文件

C.后綴為.obj的文件,經連接程序生成后綴為.exe的文件是一個二進制文件

D.后綴為.obj和.exe的二進制文件都可以直接運行

50.若有定義語句:inta[2][3],*p[3],則以下語句中正確的是A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D.p[1]=&a;

51.在設計程序時,應采納的原則之一是()。

A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結構應有助于讀者理解

52.設有定義:intn1=0,n2,*p=&n2,*q=&n1;,下列賦值語句中與n2=n1;語句等價的是()。

A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

53.以下程序運行后的輸出結果是()main(){inta,b;a=50;b=90;printf("%d\n",(a,b))}

A.90B.5090C.50D.450

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

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

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

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

a[i][j]=i+j-(i-j);

fun(a);}

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

55.數(shù)據結構作為計算機的一門學科,主要研究數(shù)據的邏輯結構、對各種數(shù)據結構進行的運算,以及()。A.A.數(shù)據的存儲結構B.計算方法C.數(shù)據映象D.邏輯存儲

56.如果對一個關系實施了一種關系運算后得到了一個新的關系,而且新的關系中屬性個數(shù)少于原來關系中屬性個數(shù),這說明所實施的運算關系是()

A.選擇B.投影C.連接D.并

57.下面對C語言的描述中,正確的是

A.函數(shù)一定有返回值,否則無法使用函數(shù)

B.C語言函數(shù)既可以嵌套定義又可以遞歸調用

C.在C語言中,調用函數(shù)時,只能將實參的值傳遞給形參

D.C語言程序中有調用關系的所有函數(shù)都必須放在同一源程序文件中

58.下列程序的輸出結果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i);}

A.49B.36C.25D.64

59.在C語言程序中,以下說法正確的是()。

A.函數(shù)的定義和函數(shù)的調用均不可以嵌套

B.函數(shù)的定義不可嵌套,但函數(shù)的調用可以嵌套

C.函數(shù)的定義可以嵌套,但函數(shù)的調用不可以嵌套

D.函數(shù)的定義和函數(shù)的調用均可以嵌套

60.以下程序的輸出結果是______。main()inta=3;printf("%d\n",(a+=a=a=a*a);}

A.-6B.1C.2D.-12

四、選擇題(20題)61.程序調試的目的是

A.發(fā)現(xiàn)程序中的錯誤B.改正程序中的錯誤C.驗證程序的正確性D.改善軟件的性能

62.

63.

64.

65.C語言提供的合法的數(shù)據類型關鍵字是()。

A.DoubleB.shortC.integerD.Char

66.下列函數(shù)的功能是()。

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

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

C.將a所指字符串和b所指字符串進行比較

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

67.以下敘述中錯誤的是()。

A.用戶所定義的標識符允許使用關鍵字

B.用戶所定義的標識符應盡量做到“見名識意”

C.用戶所定義的標識符中,大、小寫字母代表不同標識

D.用戶所定義的標識符必須以字母或下劃線開頭

68.以下程序的運行結果是

#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

69.以下選項中,不能作為合法常量的是()。

A.1.234e05B.1.234e+5C.1.234e0.5D.1.234e0

70.若變量已正確定義,有以下程序段其輸出結果是()。

A.0,1B.0,0C.1,1D.程序進入無限循環(huán)

71.

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

main

{inti=0,S=0;

for(;;)

{

if(i==3||i==5)continue;

if(i==6)break;

i++;

s+=i:

};

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

}

A.10B.13C.21D.程序陷入死循環(huán)

72.

73.以下程序段完全正確的是()。

74.

設變量均已正確定義,

值10和20,為變量cl和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:口代表空格字符.()。

A.

B.

C.

D.

75.層次型、網狀型和關系型數(shù)據庫劃分原則是()。

A.記錄長度B.文件的大小C.聯(lián)系的復雜程度D.數(shù)據之間的聯(lián)系方式

76.

77.

78.面向對象的設計方法與傳統(tǒng)的面向過程的方法有本質不同,它的基本原理是()。

A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系

B.強調模擬現(xiàn)實世界中的算法而不強調概念

C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題

D.不強調模擬現(xiàn)實世界中的算法而強調概念

79.若有定義“doublea;”,則正確的輸入語句是()。

A.seaM("%1f",a);

B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

80.

五、程序改錯題(1題)81.以下程序可把輸入的十進制數(shù)以十六進制數(shù)的形式輸出。請在橫線上填上適當?shù)膬热莶褭M線刪除,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是找出一維整型數(shù)組元素中最大的值及其所在的下標,并通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n表示x中的元素個數(shù),max存放最大值,index存放最大值所在元素的下標。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<time.h>#include<stdlib.h>#include<stdio.h>voidfun(inta[],intn,int*max,int*d){}voidmain(){ inti,x[20],max,index,n=10; srand((unsigned)time(NULL)); for(i=0;i<=n;i++) { x[i]=rand()%50; printf(“%4d”,x[i]); /*輸出一個隨機數(shù)組*/ } printf(n\nH); fun(xfnf&max,&index); printf(“Max=%5d,Index=%4d\n”,max,index);}

參考答案

1.A

2.C

3.D解析:通常,引用一個數(shù)組元素可以用下標法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標是從0開始的。

4.C

5.A本題考查switch語句。當i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當i=4時,執(zhí)行default,a=a+3=19,結束循環(huán)。

6.B

7.C解析:C語句必須以分號結束,選項A是正確的。復合語句在語法上被看作一條語句,選項B也是正確的??照Z句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會被當作條件子句或者循環(huán)體來看待,所以選項c是錯誤的。賦值表達式末尾加分號就構成賦值語句,選項D正確。故本題應該選擇C。

8.D

9.A

10.C

11.A因為小寫字符a、b、c的ASCII值分別為97、98、99。在dowhile循環(huán)語句中,每次對字符的ASCII值取余數(shù)并輸出,所以分別輸出7、8、9。故本題答案為A選項。

12.Bcontinue語句的作用是跳過循環(huán)體中剩余的語句而進行下一次循環(huán),所以A選項錯誤。break語句的作用是終止正在執(zhí)行的switch語句體,跳出switch語句體或者強制終止當前循環(huán),從當前執(zhí)行的循環(huán)中跳出,所以C、D選項錯誤。故本題答案為B選項。

13.CC.【解析】線性表是一種線性結構,由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結點沒有前件,最后一個結點沒有后件,其他結點有且只有一個前件和后件,所以選項C.是錯誤的。

14.Dmain函數(shù)定義一個字符數(shù)組s,使用字符串“pmfc”初始化;然后通過getchar讀取一個字符k到字符變量c;再將字符串s和字符c傳入fun函數(shù)。函數(shù)fun首先通過while循環(huán)遍歷字符串s,直到指針a指向字符串結束標識‘\\0’后的一個字符,如下圖所示。接著通過while循環(huán)逆序遍歷字符串s,首先a-1的字符位‘\\0’,它的ASCII值為0,小于b(字符‘k’)的ASCII值107,那么將‘\\0’賦給下標為5的元素位置。接著繼續(xù)向前遍歷,同理,將‘c’(ASCII值為99)賦給下標為4的元素位置,將‘f’(ASCII值為102)賦給下標為3的元素位置。由于‘m’(ASCII值為109)大于b,因此循環(huán)結束,將b(字符‘k’)賦給下標為2的元素位置,此時str字符串如下。故本題答案為D選項。

15.B

16.A

17.D本題考查對軟件生命周期的理解,軟件生命周期整體上可分為定義階段、開發(fā)階段和維護階段。其中定義階段包括可行性研究與計劃制訂和需求分析;開發(fā)階段包括概要設計、詳細設計、開發(fā)和測試;維護階段是一個單獨階段,不包含在開發(fā)階段內,它是所花費用最多的一個階段。

18.D解析:在概念設計中按照模塊的劃分畫出每個模塊的E-R圖,然后把這些圖合成一張E-R圖作為全局模型,最后應該對全局E-R圖進行優(yōu)化,看看是否有重復和不合理的地方。不能只是進行簡單的合并。

19.C解析:每個C程序有且只有一個主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結束。

20.D

21.33解析:這里:b-5=4,a-=4之后a的值為6,并把它賦給c。此時b的值并未被改變。在第2個表達式中,也只有賦值表達式b=3改變了b的值。所以兩行語句執(zhí)行完畢,b的值應該為3。

22.軟件危機的出現(xiàn)軟件危機的出現(xiàn)

23.55解析:此程序中,for循環(huán)語句后面直接跟了一個“;”,表明循環(huán)體為空。輸出語句不在for循環(huán)體內,所以在循環(huán)執(zhí)行完畢后才輸出s的值。s、i的初值分別為。和1,判斷循環(huán)條件,表達式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達式“2<3”成立,執(zhí)行“i++,s+=j”后,i和s的值分別為3,再次判斷循環(huán)條件,表達式“3<3”不成立,循環(huán)結束。

24.數(shù)據字典或DD數(shù)據字典或DD解析:數(shù)據流圖用來對系統(tǒng)的功能需求進行建模,它可以用少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。數(shù)據詞典(DataDictionary,DD)用于對數(shù)據流圖中出現(xiàn)的所有成分給出定義,它使數(shù)據流圖上的數(shù)據流名字、加工名字和數(shù)據存儲名字具有確切的解釋。

25.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據結構對結構體變量中數(shù)據的引用。鏈表的特點是結構體變量中有兩個域,一個是數(shù)據,另一個是指向該結構體變量類型的指針,用以指明鏈表的下一個結點。

26.葉子結點葉子結點解析:樹中度為零的結點,也就是沒有后件的結點,稱為葉子結點。

27.數(shù)據操作數(shù)據操作解析:數(shù)據模型就是現(xiàn)實世界的反映,數(shù)據模型所描述的內容有3個部分,它們是數(shù)據結構、數(shù)據操作與數(shù)據約束。

28.220220解析:根據賦值運算符“自右至左”的結合順序,程序中賦值表達式x=f*=n/=(c=50)的求解步驟為:首先計算n/=(c=50),即n=n/c=100/50=2;然后計算f*=n,即f=f*n=10*2=20.000000,由此得到x的值為20.000000。

29.1515解析:本題首先定義了一個變量x并初始化為20。然后第一個if語句判斷x是否>10,結果為真,則執(zhí)行后面的輸出語句,輸出結果是賦值表達式X-=5的值,所以輸出15,同時x的值也變成15。第二個if語句再判斷x是否>15時條件為假,結束程序。所以程序運行后的輸出結果是15。

30.黑箱黑箱解析:本題考查了軟件測試中的黑箱測試。黑箱測試是根據程序規(guī)格說明所規(guī)定的功能來設計測試用例,它不考慮程序的內部結構和處理過程。常用的黑箱測試技術分為等價類劃分、邊界分析、錯誤猜測以及因果圖等。

31.參照完整性參照完整性

32.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。

33.錯誤。錯誤。解析:數(shù)據庫恢復是將數(shù)據庫中的數(shù)據從錯誤狀態(tài)中恢復到某種邏輯一致的狀態(tài)。如果數(shù)據庫中包含成功事務提交的結果,則稱數(shù)據庫處于一致性狀態(tài)。

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

35.n=4n=4解析:continue語句是結束本次循環(huán)。i=2時因i%3條件為真,故不執(zhí)行do-while語句中的n++,只執(zhí)行一次n++得n=1;i=3時,i%3條件為假,執(zhí)行兩次n++得n=3;i=4時,i%3條件為真,執(zhí)行一次n++得n=4。

36.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:

①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內分配存儲單元。在程序整個運行期間都不釋放。

②對靜態(tài)局部變量是在編譯時賦初值的,即只賦初值—次,在程序運行時它已有初值。以后每次調用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調用結束時的值。

③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦初值)

④雖然靜態(tài)局部變量在函數(shù)調用結束后仍然存在,但其他函數(shù)是不能引用它的。

本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。

37.數(shù)據存儲數(shù)據存儲

38.getchargetchar解析:題中要求根據輸入的字符調用函數(shù)YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來判斷一個字符是y(Y)還是n(N),主要用了一個switch多分支結構來比較輸入字符與字符'y','Y'、,'n','N'是否相等來實現(xiàn)的。注意:用于字符串處理的函數(shù)。

39.1對多(或1:N)1對多(或1:N)

40.共享性共享性解析:數(shù)據庫系統(tǒng)中的數(shù)據能被不同的應用程序使用,實現(xiàn)了數(shù)據的高度共享,從而降低了數(shù)據的冗余,這也是數(shù)據庫的主要目的。

41.B

42.B解析:字符串比較不能用兩個等于號(=)來進行比較,應使用函數(shù)strcmp(s1,s2)來比較。函數(shù)strcmp(s1,s2)的功能:當字符串s1和s2相等時,返回值為0。因此,當表達式!strcmp(s1,s2)=1時,條件成立,執(zhí)行后面的語句,輸出theyareEqual。

43.D解析:在本題中指針p指向變量a,q指向變量c。要把c插入到變量a和變量b之間,就應該首先讓變量a的指針域指向變量c,即(*p).next=q,然后讓變量c的指針域指向變量b,即(*q).next=&b。

44.C解析:本題考查簡單的if卐lse語句。先執(zhí)行條件if(a<b),顯然不成立,在執(zhí)行else語句。

45.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實現(xiàn)文件的順序讀寫;③輔助實現(xiàn)文件的隨機讀寫。

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

47.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:

①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。

48.C解析:選項A中定義了一個字符型數(shù)組并賦初值,故選項A正確;選項B定義了一個字符型數(shù)組t并初始化,然后定義了一個指針變量s并讓它指向t,故選項B正確;選項C先定義?一個長度為10的字符型數(shù)組,然后在給它賦值,這時應該分別給數(shù)組中的每個元素賦值,故選項C不正確;選項D中先定義了一個長度為10的字符型數(shù)組s,然后通過字符串拷貝函數(shù)將字符串“abedefs”賦值給它,選項D正確。所以,4個選項中選項C符合題意。

49.D解析:一個C語言的源程序(后綴名為.c)在經過編譯器編譯后,先生成一個匯編語言程序,然后由編譯程序再將匯編語言程序翻譯成機器指令程序,即目標程序(后綴名為.obj),目標程序不可以直接運行,它要和庫函數(shù)或其它目標程序連接成可執(zhí)行文件(后綴名為.exe)后方可運行。故本題答案為D)。

50.C解析:選項A中,p為數(shù)組名,其值是不能被改變的,故非法;選項B中,p[0]的類型是int*,而a是二維數(shù)組名(類型為int[][3]),兩者無法賦值,故非法:選項C中,p[0]為int型指針,&a[1][2]是int型變量的地址,可以合法賦值;選項D中,p[1]是int型指針,而&a是二維數(shù)組的地址(類型為int(*)[2][3]),兩者無法賦值,故非法。所以本題應該選擇C。

51.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項A)不選;注解行有利于對程序的理解,不應減少或取消,選項B)也不選;程序的長短要依照實際情況而論,而不是越短越好,選項C)也不選。

52.A解析:在定義指針變量p和q時,分別把變量n2和n1的地址賦給了指針變量p和q,所以*p和*q中內容就分別是變量n2和n1的值,所以語句*p=*q與語句n2=n1等價。因此選項A)正確。

53.A

54.B解析:若有以下定義:inta[3][4],i,j;且當0<=i<3,0<=j<4,則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

55.A解析:數(shù)據結構作為計算機的一門學科,主要研究和討論以下三個方面的問題:①數(shù)據集合中各數(shù)據元素之間所固有的邏輯關系,即數(shù)據的邏輯結構;②在對數(shù)據進行處理時,各數(shù)據元素在計算機中的存儲關系,即數(shù)據的存儲結構;③對各種數(shù)據結構進行的運算。

56.B解析:本題考核對幾種關系代數(shù)運算的掌握。其中選擇和投影的區(qū)別在于:如果將一個關系看作一張表,那么選擇操作就是從這張表中選出一些行而丟棄另一些行。而投影操作則是從這張表中選出某些列而丟棄另一些列。如果只對一個關系中的某些屬性感興趣,那么就需要在這些屬性上使用投影操作投影該關系。并操作的結果表示為Rus,它是一個關系,包括或者在R中、或者在S中、或者同時在R和S中的所有元組,新的關系中屬性個數(shù)多于原來關系中屬性個數(shù)。連接操作用于將兩個關系中的相關元組組合成單個元組。

57.CA選項“函數(shù)一定有返回值,否則無法使用函數(shù)”,該選項是錯誤的。使用一個函數(shù)并不一定要使用該函數(shù)的返回值。C語言中用void定義“無類型”的函數(shù),即禁止在調用函數(shù)中使用被調用函數(shù)的返回值。

B選項“C語言函數(shù)既可以嵌套定義,又可以遞歸調用”,該選項是錯誤的。嵌套定義是指在定義一個函數(shù)時,其函數(shù)體內又包含另一個函數(shù)的完整定義,這個內嵌的函數(shù)只能被包含它的函數(shù)所調用。而C語言規(guī)定每個函數(shù)都是平行、獨立的,不允許嵌套定義的情況出現(xiàn)。C語言不能嵌套定義函數(shù),但能夠嵌套調用函數(shù),也就是在調用一個函數(shù)的過程中,又調用另一個函數(shù)。C語言允許函數(shù)的遞歸調用,即在調用一個函數(shù)的過程中又直接或間接地調用該函數(shù)本身。

C選項“在C語言中,調用函數(shù)時,只能將實參的值傳遞給形參”,該選項是正確的。函數(shù)的形參是指定義函數(shù)時函數(shù)名后面括弧中的變量名,實參是指在主調函數(shù)中調用一個函數(shù)時,函數(shù)名后面括弧中的參數(shù)。調用時將實參的值賦給形參,形參的修改不會影響實參的值。注意,這里僅僅指的是傳遞數(shù)值,如果以地址的方式傳遞參數(shù),則形參的改變也會改變實參的值。

D選項“C語言程序中有調用關系的所有函數(shù)都必須放在同一源程序文件中”,該選項是錯誤的。被調用的函數(shù)可以是庫函數(shù)或用戶自己定義的函數(shù),使用庫函數(shù)時,應該在本文件開頭用“#include”命令將調用有關庫函數(shù)時所需用到的信息“包含”到本文件中,使用用戶自己定義的函數(shù)時,主調函數(shù)與被調函數(shù)要在同一個文件下,并要在主調函數(shù)中對被調函數(shù)進行聲明。

58.C解析:本題考查if語句.當執(zhí)行到第一個滿足(i*i>=20)&&(i*i<=100)這個條件的i出現(xiàn)時,通過break語句跳出循環(huán),執(zhí)行下列的printf語句。

59.B解析:本題考查函數(shù)調用的基本概念。因為函數(shù)的結果是一個未知量,而函數(shù)定義時不能使用未知量,所以函數(shù)定義不可以嵌套,但是函數(shù)調用可以嵌套。

60.D解析:賦值運算符的結合方向是自右至左,所以表達式a+=a-=a*a先運算最右邊的a*a得9,再運算a=a-9,即a=3-9,所以此時a的值由3變成了-6,最后運算a=a+(-6),即a=(-6)+(-6)=-12。

61.B調試也稱排錯或糾錯。它與成功的測試形影相隨,測試成功的標志是發(fā)現(xiàn)錯誤。根據錯誤跡象,診斷錯誤的原因和位置,進而改正程序中的錯誤,這就是調試的任務。

調試分為靜態(tài)調試和動態(tài)調試,靜態(tài)調試就是指對源程序進行分析,然后確定可能出錯的地方并進行排錯。動態(tài)調試是指對程序的運行進行跟蹤并觀察其出錯點,然后進行排錯。

靜態(tài)調試通??梢圆捎萌缦聝煞N方法。

(1)輸出寄存器的內容

在測試中出現(xiàn)問題,設法保留現(xiàn)場信息。把所有的寄存器和主存中有關部分的內容打印出來(通常以八進制或十六進制的形式打?。?,進行分析研究。用這種方法調試,輸出的是程序的靜止狀態(tài)(程序在某一時刻的狀態(tài)),效率非常低,不得已才采用。

(2)為取得關鍵變量的動態(tài)值,在程序中插入打印語句。這是取得動態(tài)信息的簡單方法,并可檢驗在某事件后某個變量是否按預期要求發(fā)生了變化。此方法的缺點是可能輸出大量需要分析的信息,必須

溫馨提示

  • 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

提交評論