2021-2022年江西省萍鄉(xiāng)市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第1頁
2021-2022年江西省萍鄉(xiāng)市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第2頁
2021-2022年江西省萍鄉(xiāng)市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第3頁
2021-2022年江西省萍鄉(xiāng)市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第4頁
2021-2022年江西省萍鄉(xiāng)市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年江西省萍鄉(xiāng)市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.下列運算符中優(yōu)先級最低的算符是()。

A.||B.!=C.<;=D.十

3.有以下程序

#include<stdio.h>

main()

{ints;

scanf(“%d”,&s);

while(s>0)

{switch(s)

{case1;printf(“%d”,s+5);

case2:printf(“%d”,s+4);break;

case3:printf(“%d”。s+3);

default:printf(“%d”,s+1);break;

}

seanf(“%d”,&s);

}

}

運行時,若輸入12345O<回車>,則輸出結(jié)果是A.6566456B.66656C.66666D.6666656

4.

5.請讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運行時從鍵盤上輸入9876543210,則上面程序的輸出結(jié)果是______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

6.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.選擇排序C.快速排序D.歸并排序

7.設(shè)變量已正確定義,則以下能正確計算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=1;i<2n;i++)f*=i:

C.f=1:for(i=n;i>1;i++)f*=i:

D.f=1;for(i=n;i>=2;i--)f*=i:

8.已知函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer代表的是()。

A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)

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

C.一個指針,是指向的輸入數(shù)據(jù)放在內(nèi)存中的起始位置

D.一個存儲區(qū),存放要讀的數(shù)據(jù)項

9.有以下程序:

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

A.4321098765B.5678901234C.0987654321D.0987651234

10.以下定義語句中正確的是()。

A.inta=b=0;

B.charA=65+1,b=‘b’;

C.floata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

11.下列定義數(shù)組的語句中,正確的是()。A.#defineN10;intx[N];

B.intN=10;intx[N];

C.int:x[0.10];

D.intx[];.

12.有以下程序:main{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,12,},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<i;j++)printf("%4c",);for(j=________;J<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是()。A.i-1B.iC.i+1D.4一i

13.

14.有以下程序:

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

A.02B.13C.57D.12

15.

16.以下編碼方法中,()屬于熵編碼。

A.哈夫曼編碼B.小波變換編碼C.線性預(yù)測編碼D.形成編碼

17.有以下程序:

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

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

18.對一個滿二叉樹,m個葉子,n個結(jié)點,深度為h,則()。

A.n=h+mB.h+m=2nC.m=h-1D.n=2h-1

19.體育課的鈴聲響了,同學(xué)們都陸續(xù)地奔向操場,按老師的要求從高到矮站成一排。每個同學(xué)按順序來到操場時,都從排尾走向排頭,找到第一個比自己高的同學(xué),并站在他的后面。這種站隊的方法類似于()算法。

A.快速排序B.插入排序C.冒泡排序D.歸并排序

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

A.形參可以是常量、變量或表達(dá)式

B.實參可以是常量、變量或表達(dá)式

C.實參的類型應(yīng)與形參的類型賦值兼容

D.實參的個數(shù)應(yīng)與形參的個數(shù)一致

二、2.填空題(20題)21.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{inti;

for(i=1;i<K;i++){......}

22.下列程序的運行結(jié)果是______。

#definePOW(r)(r)*?

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

23.若有定義inta[4][4]={1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

24.在一棵二叉樹中,度為0的結(jié)點的個數(shù)為n0,度為2的結(jié)點的個數(shù)為n2,則有n0=【】。

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

main()

/inti,j,a[][3]={1,2,3,4,5,6,7,8,9};

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

for(j=i+1;j<3;j++)a[j][i]=0;

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

{for(j=0;j<3;j++)printf("%d",a[i][j]);

printf("\n");

}

}

26.算法的復(fù)雜度主要包括時間復(fù)雜度和______復(fù)雜度。

27.關(guān)系數(shù)據(jù)庫的關(guān)系演算語言是以【】為基礎(chǔ)的DML語言。

28.在E-R圖中,矩形表示【】。

29.若由以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

30.函數(shù)count(head)統(tǒng)計鏈表的結(jié)點個數(shù),head為表頭指針,閱讀程序,要求將整個if語句改成while循環(huán)控制結(jié)構(gòu),其形式為【】。

#include<stdio.h>

intcount(NODE*head)

{intn=0;

if(head!=NULL)

do

{n++;

head=head->next;

}while(head!=NULL);

returnn;}

31.以下程序可把輸入的十進(jìn)制數(shù)以十六進(jìn)制數(shù)的形式輸出,請?zhí)羁铡?/p>

#inelude<stdio.h>

main()

{eharb[17]={"0123456789ABCDEF"};

intc[64],d,i=0,base=16;

longn;

printf("Enteranumber:\n");

seanf("%ld",&n);

do{c[i]=【】;i++;n=n/base;}

while(n!=0);

printf("Transmitenewbase:\n");

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

{d=c[i];printf("%c",b【】);}

printf("\n");

}

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

33.下列程序的功能是將2個數(shù)從小到大輸出。

main()

{floata,b,【】;

scanf(【】,&a,&b);

if(a>b)

{t=a;

【】;

b=t;

}

printf("%5.2f,%5.2f\n",a,b);

}

34.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。

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

typedefstruct

{intn;

charch[8];

}PER;

36.以下程序的功能是根據(jù)輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."??瞻滋幮枰钊氲膬?nèi)容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case′y′:

case′Y′:printf("\nThisisYES.\n");

case′n′:

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

main()

{charch;

printf("\nEnterachary,Yorn,N:");

ch=【】;

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

YesNo(ch);}

37.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

38.有以下程序

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'()';n2=n1*10+(ch2-'()');

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

}

程序運行時輸入:12<回車>,執(zhí)行后輸出結(jié)果是【】。

39.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

main()

{intt=0,s=0,i;

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

{t=i+______;s=s+t;}

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

}

40.設(shè)x、y、z均為int型變量,請寫出描述“x或y中至少有一個小于z”的表達(dá)式______。

三、1.選擇題(20題)41.以下選項中屬于C語言的數(shù)據(jù)類型是_______。

A.復(fù)數(shù)型B.邏輯型C.雙精度型D.集合型

42.設(shè)有以下定義和語句inta[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];則*(p[0]+1)所代表的數(shù)組元素是

A.a[0][1]B.a[1][0]C.a[1][1]D.a[1][2]

43.函數(shù)rewind的作用是

A.使文件位置指針重新返回文件的開始位置

B.將文件位置指針指向文件中所要求的特定位置

C.使文件位置指針指向文件的末尾

D.使文件位置指針自動移至下一個字符位置

44.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

45.已定義以下函數(shù):fun(Char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函數(shù)的功能是()。

A.將p1所指字符串復(fù)制到p2所指內(nèi)存空間

B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針?biāo)缸址M(jìn)行比較

D.檢查p1和p2兩個指針?biāo)缸址惺欠裼?\0',

46.對于下列字符串,說明表達(dá)式strlen(s)值的是()。chars[10]={'a','\n','a','b','\t','c'};

A.10B.1C.6D.7

47.下面不屬于軟件工程的三個要素的是A.A.工具B.過程C.方法D.環(huán)境

48.若執(zhí)行下列程序時從鍵盤上輸入2,則輸出結(jié)果是()。#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<3)printf("%d\n",a);elseprintf("%d\n",va--);}

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

49.以下語句段執(zhí)行后的輸出結(jié)果是()。#include<stdio.h>main(){intk=3;if(k)printf("###")elseprintf("&&&&");}

A.###

B.&&&&

C.###&&&&

D.有語法錯誤,不能執(zhí)行

50.若變量已正確定義,有以下程序段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.程序段有語法錯B.3,5,3C.3,5,5D.3,5,7

51.有下列程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4;n+=2;k--;break;}printf("%d",n);}while(k>0&&n<5);}程序運行后的輸出結(jié)果是()。

A.235B.235C.2356D.2356

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

A.0B.1C.10D.9

53.下列選項中,不能用作標(biāo)識符的是A._1234_B._1_2C.int_2_D.2_int_

54.請選出可用作C語言用戶標(biāo)識符的是

A.void,define,WORD

B.a3_3,_123,IF

C.FOR,--abc,Case

D.2a,Do,Sizeof

55.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta=0,b=1,C=2;if(++a>0||++b>0)++c;printf("%d,%d,%d",a,b,C);}

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

56.下面程序運行后的輸出結(jié)果是______。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=-s[0].a+s[1].b;printf("%d\n",t);}

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

57.下面不屬于軟件設(shè)計原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

58.軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和()。

A.消除軟件危機(jī)B.軟件工程管理C.程序設(shè)計自動化D.實現(xiàn)軟件可重用

59.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是

A.線性鏈表B.棧C.循環(huán)鏈表D.順序表

60.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。

A.*p=&a;sCanf("%1f",p);

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

C.p=&a;scanf("%1f",*p);

D.p=&a;scanf("%1f",p);

四、選擇題(20題)61.

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

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

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

63.若有以下定義和語句

structa

{intn,m;};

structast[3]={{2,3},{4,5},{6,7}};

structa*p=st;

則以下錯誤的引用是

A.(p++)->n;B.st[0].n;C.(*p).n;D.P=&st.m,

64.當(dāng)變量c的值不為2、4、6時,值為“真”的表達(dá)式是()。

65.若a是數(shù)直類型,則邏輯表達(dá)式的值是()。A.1B.0C.2D.不知道a的值,不能確定

66.

67.有如下程序段:

其輸出結(jié)果是()。

A.123.141593B.1,23.141593C.12,3.141593D.123.1415930

68.有以下程序

#include<stdio.h>

#include<stdlib.h>

intfun(intt)

{int*p;

p=(int*)malloc(sizeof(int));

*p=t;return*p;

}

main()

{inta;

a=fun(8);

printf("%d\n",a+fun(10));

}

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

A.0B.10

C.18D.出錯

69.

70.

71.設(shè)有以下定義inta=0;doubleb=1.25;charc=’A’;#defined2則下面語句中錯誤的是()

A.a++;B.b++C.c++;D.d++;

72.有以下程序:

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

A.852B.963C.741D.875421

73.設(shè)有以下語句:

inta=1,b=2,c;c=a^(b<;<;2);執(zhí)行后,c的值為()。

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

74.

75.有三個關(guān)系R、S和t如下:由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。

A.笛卡兒積B.交C.并D.自然連接

76.有以下程序程序運行后的輸出結(jié)果是()

A.一20B.一l2C.0D.10

77.有如下程序段

voidfunc(int*a,intb[])

{b[0]=*a+6;}

main()

{inta,b[5]={0};

a=0;b[0]=3;

func(&a,b);

printf("%d\n",b[0]);

}

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

A.6B.7

C.8D.9

78.

有以下程序:

fun(intx,inty){return(x+y);)

main

{inta=1,b=2,c=2,sum;

sum=fun((a++,b++,a+b),c++);

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

}

執(zhí)行后的結(jié)果是()。

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

79.有以下函數(shù)該函數(shù)的功能是()。

A.計算s所指字符串占用內(nèi)存字節(jié)的個數(shù)

B.比較兩個字符串的大小

C.計算s所指字符串的長度

D.將s所指字符串復(fù)制到字符串t中

80.

五、程序改錯題(1題)81.已知一個數(shù)列,從0項開始的前3項為0、0、1,以后的各項都是其相鄰的前3項之和。下列給定的程序中,函數(shù)proc()的功能是:計算并輸出該數(shù)列前n項的平方根之和sum。n的值通過形參傳入。例如,當(dāng)n=11時,程序的輸出結(jié)果應(yīng)為32.197745。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),它的功能是計算:s=(1-1n(1)-1n(2)-1n(3)-…-1n(m))2s作為函數(shù)值返回。在C語言中可調(diào)用log(n)函數(shù)求1n(n)。log函數(shù)的引用說明是doublelog(doublex)。例如,若m的值為10,則proc()函數(shù)值為l98.934454。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D

2.AC語言中規(guī)定運算符的優(yōu)先順序:一元算術(shù)運算符一>二元算術(shù)運算符一>關(guān)系運算符一>邏輯運算符一>賦值運算符,A項中為邏輯運算符,B項和c項都為關(guān)系運算符,D項為一元運算符。因此最低的是A項。

3.A

4.D

5.C解析:scanf()把用戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf()遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。

6.A解析:以下幾種算法的時間復(fù)雜度分別為:冒泡排序(n2);選擇排序(n2);快速排序(nlog2n);歸并排序(nlog2n)。當(dāng)排序元素序列基本有序的情況下,冒泡排序的交換次數(shù)為0,只是順序掃描數(shù)據(jù)而已,所以其效率是最高的。

7.D由i"11的數(shù)字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,…,n,最后計算得到f=n!一0,所以選項A不正確。在選項B中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項c不正確。在選項D中,f的初值為l,在for循環(huán)語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。

8.C解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說明:“buffer”是一個指引,對fread來說,它是讀入數(shù)據(jù)的存放地址;“size”是要讀寫的字節(jié)數(shù);“count”是要進(jìn)行讀寫多少個size字節(jié)的數(shù)據(jù)項;“fp”是指文件型指針。

9.B該程序首先給一維數(shù)組賦值,然后三次調(diào)用fun函數(shù),其中fun(a,0,3);功能是將一維數(shù)組中第1個元素和第4個元素互換,第2個元素和第3個元素互換;其中fun(a,4,9);功能是將一維數(shù)組中第5個元素和第10個元素互換,第6個和第9個元素互換,第7個元素和第8個元素互換;其中fun(a.O,9);功能是將將一維數(shù)組中第l個元素和第10個元素互換,第2個元素和第9個元素互換……依此類推。因此B選項正確。

10.BA選項中的變量b沒有定義,不能直接給變量a賦值。C選項中,*b、*c表示的是一個實型變量的地址,不能將指針型變量b的地址賦值給指針型變量c。D選項中,“a=0.0”后面應(yīng)該為逗號,不能是分號。故本題答案為B選項。

11.A[解析]數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達(dá)式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項中數(shù)組長度是非法的一串?dāng)?shù)字。定義數(shù)組時必須為其指明長度,D)選項中數(shù)組長度為空,所以非法。\u3000\u3000

12.B本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標(biāo)相同,所以j=i。

13.D

14.D本題考查邏輯運算符的”短路”現(xiàn)象,由于k的值為0,表達(dá)式首先去求k++的值,因為表達(dá)式k++的值為0,系統(tǒng)完全可以確定邏輯表達(dá)式的運算結(jié)果總是為0,因此將跳過n++>2,不再對它進(jìn)行求值,即k的值加1,n的值不變。

15.A

16.A

17.B第一次執(zhí)行外循環(huán)i的值為1,滿足條件,判斷第一次內(nèi)循環(huán),j的值為3,不滿足條件,跳出內(nèi)循環(huán)。第二次執(zhí)行外循環(huán)i的值為2,同理也不滿足內(nèi)循環(huán)條件,跳出內(nèi)循環(huán)。第三次執(zhí)行外循環(huán)i的值為3,此時進(jìn)入內(nèi)循環(huán)判斷條件時,條件成立,執(zhí)行m=m%j,m的值為1,跳出內(nèi)循環(huán),跳出外循環(huán)打印m的值。

18.D

19.B

20.A函數(shù)中,形參必須是變量,實參可以是常量、變量或表達(dá)式,選項A錯誤,選項B正確;實參的個數(shù)和類型要與形參一致,選項C、D正確。本題答案為A選項。

21.44解析:本題考查宏定義。預(yù)編譯時,首先將M的宏定義帶入K,得到N+1+1*N+1/2;再將N的宏定義帶人,得到2+1+1*2+1/2=3+2+0=5,所以循環(huán)4次。

22.解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。

23.二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[O]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。\r\n\r\n

24.n2+1

25.123\n056\n009123\\n056\\n009解析:數(shù)組是用于按順序存儲同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),如果有一個一維數(shù)組,它的每一個元素是類型相同的一維數(shù)組,就形成了一個二維數(shù)組。在內(nèi)存中數(shù)組的元素是連續(xù)順序存放的,對;維數(shù)組來說,先存放第一行,再存放第;行,…,因為每一行都是其廣義一維數(shù)組的元素,并且在給出全部數(shù)組元素的初值后,二維數(shù)組的定義中可以將第一維的下標(biāo)省略。本題中,定義了一個元素類型為整型的二維數(shù)組敢a[][3]={1,2,3,4,5,6,7,8,9),它相當(dāng)于一個3*3的矩陣,for(i=0;i<3:i++)for(j=i+1;j<3;j++)a[j][i]=0;將行下標(biāo)i大于列下標(biāo)j的元素s[1][0],a[2][0],a[2][1]賦值為0,最后for(j=0;j<3;j++)prinff('%n',a[i][j]);printf('\\n');進(jìn)行換行輸出,所以輸出結(jié)果為

123

056

009

26.空間空間解析:算法的復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

27.謂詞演算謂詞演算

28.實體實體解析:E-R模型中,有3個基本的抽象概念:實體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實體,菱形框表示聯(lián)系,橢圓形框表示屬性。

29.*(p+5)或p[5]*(p+5)或p[5]解析:本題的考查點是通過指針引用數(shù)組元素。98是數(shù)組w的第5個元素(最開始的為第0個),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動指針p而引用98,可以有以下兩種方法:p[5]、*(p+5)。

30.while(p!=NULL){n++;head=head→next;}while(p!=NULL){n++;head=head→next;}解析:do…while循環(huán)轉(zhuǎn)化為while循環(huán),循環(huán)體執(zhí)行的內(nèi)容應(yīng)該是一致的,不同的是do…while結(jié)構(gòu)是先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)條件是否滿足,而while循環(huán)則是先判斷循環(huán)條件是否滿足,滿足則執(zhí)行循環(huán)體。所以do…while循環(huán)結(jié)構(gòu)若想轉(zhuǎn)換為while循環(huán)結(jié)構(gòu),必須在do…while循環(huán)之前先對循環(huán)條件進(jìn)行一個判斷,即此題中的if(head!=NULL)。注意:3種循環(huán)結(jié)構(gòu)的比較。

31.n%base[d]n%base[d]解析:程序中的字符數(shù)組b存儲了十六進(jìn)制16個數(shù)字的字符,整型數(shù)組c用于存儲轉(zhuǎn)換的十六進(jìn)制數(shù)的各位數(shù)值。將整數(shù)n轉(zhuǎn)換成它的各位十六進(jìn)制數(shù)值,需采用除以16取余的方法,即求n除以16的余,得到它的十六進(jìn)制的末位數(shù),接著將n除以16,在n不等于0的情況下循環(huán),順序求出n的十六進(jìn)制的倒數(shù)第一、第二、第三位數(shù)等。程序中變量base已預(yù)置16,所以在第一處填n%base。當(dāng)n的十六進(jìn)制數(shù)的倒數(shù)第一、第二、第三位等依次存放于數(shù)組c中后,就從最高位至最低位,參照數(shù)組c[i]的內(nèi)容d(以其內(nèi)容為下標(biāo)),取十六進(jìn)制數(shù)字符表中的字符b[d)輸出,所以在第二處填[d]。

32.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

33.t"%f%f"a=b

34.33解析:本題考查的是C語言逗號表達(dá)式的相關(guān)知識。程序在計算逗號表達(dá)式時,從左到右計算由逗號分隔各表達(dá)式的值,整個逗號表達(dá)式的值等于其中最后一個表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。

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

36.getchargetchar解析:考查了字符可以作為整型變量來對待,參與操作。題中要求根據(jù)輸入的字符調(diào)用函數(shù)YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來判斷一個字符是y(Y)還是n(N),主要用了一個switch多分支結(jié)構(gòu)來比較輸入字符與字符\ue008'y',\ue009'Y'、,'n','N'是否相等來實現(xiàn)的。

37.存儲結(jié)構(gòu)

38.1212解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價為與其相應(yīng)的ASCII碼的整數(shù),還可以作為整數(shù)參加運算。在本題中,n1=h1-0'=1-0=49-48=1,n2=n1*10+(ch2-'0')=1*10+(2-0)=10+2=12。

39.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結(jié)果來看,s保存的是最終結(jié)果,而s在循環(huán)體中,每次累加一個t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i,又因為i在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應(yīng)分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內(nèi)容”應(yīng)是t*10。

40.x<z‖y<zx<z‖y<z解析:本題考查邏輯運算符和邏輯表達(dá)式。x或y中至少有一個小于z,即x<z或y<z,是“或”的關(guān)系。

41.C解析:C語言的數(shù)據(jù)類型分為基本類型、構(gòu)造類型、指針類型、空類型四大類。其中,基本類型分為整型、字符型、實型三類。實型又稱浮點型,包括單精度型和雙精度型兩種類型。

42.C解析:本題中首先定義了一個3行2列的數(shù)組a,一個長度為3的指針數(shù)組p,接著把地址a[1]賦給p[0]此時p[0]為a[1][0]的地址,p[0]+1為a[1][1]的地址,故*(P[0]+1)代表的元素為a[1][1]。

43.A解析:函數(shù)rewind的功能是將文件指針重新指向一個流的開頭。用法如下:

intrewind(FILE*stream);并且無返值。

44.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個值的表達(dá)式。

45.A解析:fun()函數(shù)中聲明了兩個字符串指針作為形參,在其函數(shù)體中用了一個while循環(huán),首先while括號內(nèi)表達(dá)式*p2=*p1是將p1所指的內(nèi)容賦值到p2所指的存儲空間中,然后在判斷是否為'\\0',表達(dá)式的值為真時,執(zhí)行循環(huán)體,指針p1和p2分別下移一位,當(dāng)p1指向字符'\\n'時,表達(dá)式的值為假,循環(huán)結(jié)束,故此函數(shù)的功能是將p1所指字符串復(fù)制到p2所指內(nèi)存空間中。所以,4個選項中選項A符合題意。

46.C解析:strlen(s)返回s字符串中字符的個數(shù),若s是個數(shù)組,則返回數(shù)組元素的個數(shù)。

47.D解析:軟件工程包括3個要素,即方法、工具和過程。

48.B解析:本題考查ifelse語句。程序中首先使用函數(shù)scanf()通過鍵盤讀入a的值,并通過第1個if語句,先判斷條件,取a的值2和3比較,然后將a的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出a的值3。

49.D解析:在C語言中語句結(jié)束時應(yīng)該以分號結(jié)尾,程序中的第1個printf('###')輸出語句后面少了一個分號(;),因此執(zhí)行程序時會出錯。

50.B解析:本題考查if條件語句。a=3,b=5,因此a>b條件不成立,c=a=3。此時c!=a條件不成立,不執(zhí)行c=b;語句,c的值仍然為5。結(jié)果a=3,b=5,c=3。

51.B解析:因為變量的初始值分別為k=5,n=0,所以程序第1次進(jìn)入循環(huán)時,執(zhí)行default語句,輸出0,k減1:這時n=0,k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2,k=3,打印出2;這時n=2,k=3,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3,k=2,打印出3;這時n=3,k=2,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5,k=1,打印出5,這時因為n=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運行結(jié)束。所以在屏幕上打印出的結(jié)果是0235。

52.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因為運算符“*”的優(yōu)先級高于“+”,所以輸出結(jié)果為p指向的元素1,然后加9,值為10。

53.D解析:本題考核的知識點是用戶的標(biāo)識符。在C語言中,合法的標(biāo)識符由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或者下劃線,如:acd,d_ad、_adf124,_124等都是合法的標(biāo)識符號.而2asdf、_sd/=都不是合法的標(biāo)識符.在C語言中大寫字母和小寫字母被認(rèn)為是兩個不同的字符,如:ACD和acd是兩個不同的標(biāo)識符號。選項D中用下劃線作為第一個字符,這是不合法的,故選項D不正確,所以,4個選項中選項D符合題意。

54.B解析:C語言規(guī)定用戶標(biāo)識符由字母、數(shù)字和下劃線組成,且第一個字符必須是字母或下劃線,可見選項C),D)是錯誤的;此外,C語言不允許用戶將關(guān)鍵字作為標(biāo)識符,而選項A)中的void正是C語言的關(guān)鍵字。

55.C解析:本題考查if語句。先判斷if語句的條件是否成立,++a->0,此條件成立,又因為是進(jìn)行邏輯或運算,在己知其中一個運算對象為真的情況下,不必判斷另外一個運算符的真假,即不進(jìn)行++b操作,就可以直接得出整個表達(dá)式的值為邏輯1,執(zhí)行下列的++c。

56.B解析:在main函數(shù)中定義了一個structabc類型的數(shù)組,同時分別利用{1,2,3}及(4,5,6}對數(shù)組中兩個元素進(jìn)行初始化。在該結(jié)構(gòu)體,依次對其中的a,b,c三個變量進(jìn)行初始化。故s[0].a=1,s[1].b=5,所以本題輸出為6。

57.C解析:軟件設(shè)計遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計中應(yīng)該遵循的基本原理和與軟件設(shè)計有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細(xì)節(jié)。②模塊是指可以單獨命名且可編址的元素。如高級語言中的過程、函數(shù)、子程序等。③信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。因此,本題的正確答案是C。

58.B軟件工程的目標(biāo)是,在給定的成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品?;谶@一目標(biāo),軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。

59.B解析:棧是限定在二端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。注意:隊列組織數(shù)據(jù)的原則是“先進(jìn)先出”或“后進(jìn)后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊列組織數(shù)據(jù)的原則。

60.D解析:double*p,a;語句表示定義了一個指向雙精度型的指針變量p和雙精度型變量a,而語句p=&a表示將變量a的地址賦給指針變量p;scanf'('%1f',p)表示用鍵盤輸入的數(shù)賦給指針變量p所指向的地址單元中。scanf()函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f(或%1e)。否則,數(shù)據(jù)不能正確輸入。所以選項D)為正確答案。

61.C

62.C數(shù)組名sl是代表sl數(shù)組首地址的地址常量,因為“=”左邊不能出現(xiàn)常量,所以s1="ABCDE"的方法是錯誤的。

63.D題目中給出了一個結(jié)構(gòu)體,結(jié)構(gòu)體類型名為structa。該結(jié)構(gòu)體成員列表包括兩個整型變量。隨后定義了一個結(jié)構(gòu)體數(shù)組st[3],該數(shù)組的大小為3,同時定義了一個結(jié)構(gòu)體指針p,指向數(shù)組st。

選項A為(p++)->n,是指先將p的指針執(zhí)行++操作,指向st[1],然后得到該結(jié)構(gòu)體變量中的值n。

選項B為st[0].n,這個是標(biāo)準(zhǔn)的結(jié)構(gòu)體數(shù)組變量引用,得到結(jié)構(gòu)體數(shù)組變量st[0]中的值n。

選項C為(*p).n,該表達(dá)式與p->n是等價的,得到當(dāng)前指針?biāo)附Y(jié)構(gòu)體變量中的值n。

選項D為p=&st.m,該選項是錯誤的。若p是一個定義過的指向結(jié)構(gòu)體變量的指針,則用它指向結(jié)構(gòu)體變量的某一個成員,編譯時將指出地址的類型不匹配。

64.A(C>=2&&C<=6)ll(C!=3)||(C!=5)可以滿足題目條件,所以選擇A)。

65.A無論a的值

溫馨提示

  • 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

提交評論