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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.若a是數(shù)值類型,則邏輯表達式(a==1)II(a!=1)的值是()。

A.1B.0C.2D.不知道a的值,不能確定

2.以下選項中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L

3.下列哪一種圖的鄰接矩陣是對稱矩陣()。

A.有向圖B.無向圖C.AOV網(wǎng)D.AOE網(wǎng)

4.有以下程序intf(intA){returna%2;}main(){ints[8]={1,3,5,2,4,6),i,d=0;for(i=0;f(s[i];i++)d+=s[i];printf("%d\n",D);}程序運行后的輸出結果是

A.9B.11C.19D.21

5.有以下程序:

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

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

6.向一個棧頂指針為H的鏈棧中插入一個s所指向的結點時,需執(zhí)行()。

A.H->link=s

B.s->link=H->link;H->link=s;

C.s->link=H;H=s;

D.s->link=H;H=H->link;

7.以下程序段中,輸出信息不能正確反映變量大小關系的是()。

A.if(x>y)printf(“x>y”);if(x<y)printf(“x<y”);elseprintf(“x=y”);

B.if(x>=y)if(x>y)printf(“x>y”);elseprintf(“x=y”);elseprintf(“x<y”);

C.if(x>y)printf(“x>y”);if(y>x)printf(“x<y”);if(x==y)printf(“x=y”);

D.if(x>y)printf(“x>y”);elseif(y<x)printf(“x<y”);elseprintf(“x=y”);

8.第

17

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

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

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

A.通過指針變量存取某個變量值的方式稱為“直接存取”方式

B.在程序的開頭包含頭文件stdio.h后,可以給指針變量賦NULL值

C.將一個指針變量中的值賦給另一個指針變量,則這兩個指針變量指向同一地址

D.C語言中函數(shù)返回值的類型可以是簡單的數(shù)據(jù)類型,也可以是指針類型

10.有以下程序A.6B.3C.8D.12

11.

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

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

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

A.文件指針是一種特殊的指針類型變量

B.文件指針的值等于文件當前讀寫位置,以字節(jié)為單位

C.文件指針的值等于文件在計算機硬盤中的存儲位置

D.調用fscanf函數(shù)只能向文本文件中寫入任意字符

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

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

15.如果以鏈表作為棧的存儲結構,則出棧操作時()。

A.必須判別棧是否滿B.必須判別棧是否為空C.必須判別棧元素類型D.可不做任何判斷

16.下列程序的輸出結果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8

17.以下說法錯誤的是()。

A.散列法存儲的思想是由關鍵字值決定數(shù)據(jù)的存儲地址

B.散列表的結點中只包含數(shù)據(jù)元素自身的信息,不包含指針

C.負載因子是散列表的一個重要參數(shù),它反映了散列表的飽滿程度

D.散列表的查找效率主要取決于散列表構造時選取的散列函數(shù)和處理沖突的方法

18.有以下程序函數(shù)fun只對下標為偶數(shù)的元素進行操作.:

程序運行后的輸出結果是()。A.A.7,2,5,4,3,6,1,

B.1,6,3,4,5,2,7,

C.7,6,5,4,3,2,1,

D.1,7,3,5,6,2,1,

19.有以下程序:

程序的運行結果是()。

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

20.若有下列說明語句int(*p)();則標識符p代表的是()

A.一個用于指向函數(shù)的指針變量,函數(shù)返回值的類型為int型

B.一個帶回值類型為整型的函數(shù)名

C.一個用于指向整型數(shù)據(jù)的指針變量

D.一個帶回值類型為指針類型的函數(shù)名

二、2.填空題(20題)21.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

22.一棵二叉樹第6層(根結點為第一層)的結點最多為______個。

23.下列程序段的運行結果是______。

charstr口="ABCD",*p=str;

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

24.棧的3種基本運算是:入棧、退棧和______。

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

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

}

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

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

27.設有如下程序段:

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

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

上述程序段的輸出結果是【】。

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

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

}

29.以下條件表達式可計算:1+|a|的值,請?zhí)羁铡>=0?【】:【】

30.下面程序

main()

{inti,j,m,n;

i=5;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

運行后,i,j,m,n的值分別是_______。

31.在軟件開發(fā)中,結構化方法包括結構化分析方法、結構化設計方法和結構化程序設計方法??尚行匝芯侩A段采用的是【】。

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

#defineS(x)4*x*x+1

main()

{inti=6,j=8;

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

}

33.數(shù)據(jù)模型按不同的應用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

34.以下程序的運行結果是【】。

#include<stdio.h>

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

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

}

35.關系模型的數(shù)據(jù)操作即是建立在關系上的數(shù)據(jù)操作,一般有【】、增加、刪除和修改四種操作。

36.已知字符'A'的ASCII碼值為65,以下語句的輸出結果是【】。

charch='B';

printf("%c%d\n",ch,ch);

37.對長度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為【】。

38.以下程序中函數(shù)fun的功能是:構成一個如圖所示的帶頭結點的單向鏈表,在結點的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。

#include<stdio.h>

typedefstructnode/*鏈表結點結構*/

{charsub[3];

structnode*next;

}Node;

Nodefun(chars)/*建立鏈表*/

{……}

voiddisp(Node*h)

{Node*p;

p=h->next;

while(【】)

{printf("%s\n",P->sub);p=【】;}

}

main()

{Node*hd;

hd=fun();disp(hd);printf("\n");

}

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

intt(intx,inty,ntcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

40.軟件定義時期主要包括______和需求分析兩個階段。

三、1.選擇題(20題)41.請讀程序:#include<stdio.h>#include<string.j>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的輸出結果是______。

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

42.有以下程序#include<stdio.h>main(){FILE*fP;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運行后的輸出結果是。

A.12B.14C.1234D.123456

43.下列程序的輸出結果是______。main(){floatx=3.6;inti;i=(int)x;printf("x=%f,i=%d",x,i);}

A.x=3.600000,i=4B.x=3i=3C.x=3.600000,i=3D.x=3i=3.600000

44.以下程序的運行結果是()。#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;*q=8(p+5);printf("%d%d\n",*p,*q);}

A.運行后報錯B.66C.611D.55

45.下面程序段的運行結果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}

A.LANGUAGEB.languageC.LAND.langUAGE

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

A.chars[10]="abcdefg";

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

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

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

47.程序中已構成如下圖所示的不帶頭結點的單向鏈表結構,指針變量s、p、q均已正確定義,并用于指向鏈表結點,指針變量s總是作為頭指針指向鏈表的第一個結點。若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;該程序段實現(xiàn)的功能是()。

A.首結點成為尾結點B.尾結點成為首結點C.刪除首結點D.刪除尾結點

48.在位運算中,操作數(shù)每左移兩位,其結果相當于()。

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4

49.下面軟件中,屬中應用軟件的是()

A.UnixB.人事管理系統(tǒng)C.數(shù)據(jù)庫管理理系統(tǒng)D.DOS

50.n個頂點的連通圖中邊的條數(shù)至少為______。A.A.0B.1C.n-1D.n

51.對關系S和R進行集合運算,結果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為()

A.并運算B.交運算C.差運算D.積運算

52.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

53.有以下程序:#include<stdio.h>charfun(charx,chary){if(x<y)returnx;returny;}main(){inta='9',b='8',c='7';printf("%c\n",fun(fun(a,b),fun(b,c)));}程序的執(zhí)行結果是()。

A.函數(shù)調用出錯B.8C.9D.7

54.下列描述說明正確的是()

A.定義結構體時,它的每個成員的數(shù)據(jù)類型可以不同

B.不同結構體的成員名不能相同

C.結構體定義時,其成員的數(shù)據(jù)類型不能是結構體本身

D.結構體定義時各成員項之間可用分號也可用逗號隔開

55.以下程序的輸出結果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);return(d);}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

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

56.下面四個選項中,均是不合法的用戶標識符的選項是()。

A.AP_0doB.floatla0_AC.b-agotointD._123tempint

57.以下程序執(zhí)行后sum的值是()。

A.15

B.14

C.不確定

D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}

58.有以下程序:voidswap(char*x,char*y){cbart;t=*x;*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結果是()。

A.123,abcB.abc,123C.1bc,a23D.321,cba

59.下面概念中,不屬于面向對象方法的是()。A.對象B.繼承C.類D.過程調用

60.設變量a、b、c、d和y都己正確定義并賦值。若有下列if語句

if(a<b)

if(c==d)y=0;

elsey=1;

該語句所表示的含義是()。

A.

B.

C.

D.

四、選擇題(20題)61.

有以下程序

#include<stdi0.h>

voidfun(intn,int*p)

(intf1,f2;

if(n==1||n==2)*p=1;

else

{fun(n-1,&f1);fun(n-2,&f2);

*p=f1+f2;

}

}

main

{ints;

fun(3,&s);printf("%d",s);

}

程序的運行結果是()。

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

62.能正確表示“當x的取值在[1,10]和[100,110]范圍內為真,否則為假”的表達式是()。A.A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)B.(x>=1)

C.((x>=1)&&(x<=10))||((x>=100)&&(x<=110))

D.(x>=1)||(x<=10)&&(x>=100)||(x<=110)

63.有以下程序:

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

A.33B.197C.143D.28

64.有如下嵌套的語句

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

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

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

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

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

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

A.改變函數(shù)形參的值,不會改變對應實參的值

B.函數(shù)可以返回地址值

C.可以給指針變量賦一個整數(shù)作為地址值

D.當在程序的開頭包含文件stdi0.h時,可以給指針變量賦NULL

67.有以下程序:

運行時,若輸入123450<回車>,則輸出結果是()。

A.6566456

B.66656

C.66666

D.6666656

68.以下不合法的字符常量是()。

69.

70.

有以下程序:

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main

{char*s1="abe",*s2="123":

swap(s1,s2);

printf("%s,%s\n",s1,s2);

}

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

A.123,abeB.abc.123C.1bc,a23D.321,cba

71.有以下程序:

程序的運行結果是()。

A.0987654321

B.4321098765

C.5678901234

D.0987651234

72.有以下程序

#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

73.有以下程序:

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

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

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

A)對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出

B)數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變

C)當程序執(zhí)行中,數(shù)組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界的出錯信息”

D)可以通過賦初值的方式確定數(shù)組元素的個數(shù)

75.

76.

77.當用戶要求輸入的字符串中含有空格時,應使用的輸入函數(shù)是()。

A.scanfB.getcharC.getsD.getc

78.若有以下程序段:

輸出結果是()。

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

79.

80.

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

intfl(intx,inty){returnx>y?x:y;)

intf2(intx,inty){returnx>y?y:x;}

main

{inta=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d));

f=f1(f2(a,b),f2(c,d));

g=a+b+c+d-e-f;

printf("%d,%d,%d\n",e,f,g);}

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個整數(shù)m是否是素數(shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!

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

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

試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,函數(shù)fmi()的功能是將a、b中的兩個正整數(shù)合并成一個新的整數(shù)存放在c中。合并的方式是將a中的十位和個位數(shù)依次放在變量c的十位和千位上,b中的十位和個位數(shù)依次放在變量c的個位和百位上。例如,a=45,b=12,調用該函數(shù)后,c=5241。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.A由于a==l和a!=1兩者互斥,即總有一個為真,因此二者的或也必定為真。

2.D在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。整型常量和實型常量又稱數(shù)值型常量?;菊统A恐荒苡脭?shù)字表示,不帶小數(shù)點,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—個字母l(L的小寫)或L;實型常量必須用帶小數(shù)點的數(shù)表示,例如3.14159、-2.71828、0.0等;選項A中字母o不符合要求,選頂B中超出八進制的范圍,選項C中e后面的不為整數(shù),因此選頂D是正確的。

3.B

4.A解析:本題考核的知識點是一維數(shù)組的定義,初始化和數(shù)組中元素的引用。函數(shù)f()的作用是形參a為偶數(shù)的時候返回0,主函數(shù)中首先定義了一個長度為8的一維數(shù)組,然后給它賦初值使得s[0]=1、a[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6.其他沒有賦值的數(shù)組元素將自動賦值為0。for循環(huán)中,當s[1]不為偶數(shù)的時,將s[i]相加,即當i=3時,s[i]=2為偶數(shù),退出循環(huán),此時d的值為d=s101+s[1]+s[2]=1+3+5=9,因此最后輸出的d的值為9。所以,4個選項中選項A符合題意。

5.C該程序中int8pl=&a,+p2=&b,4P=&c;指定義三個指針變量,并賦值,即使pl指向a;p2指向b;p指向c。+P=。pl$(+p2)。;該條語句是給P所指的存儲單元c賦值,就是pl所指的存儲單元的值,即a的值,與p2所指的存儲單元b的值相乘,也就是c=a+b,等價于c=1·3=3;因此C選項正確?!?/p>

6.C

7.A選項A中,若條件“x>y”為真,輸出“x>y”;若條件“x<y”為真,輸出“x<y”;若條件“x>=y”為真,輸出“x=y”。選項A錯誤,其他選項都正確。故本題答案為A選項。

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

9.A通過指針變量存取某個變量值的方式稱為“間接存取”方式,選項A錯誤;頭文件stdio.h中定義了NULL,在程序的開頭包含stdio.h后,可以給指針變量賦NULL值,表示一個空指針,選項B正確;將一個指針變量中的值賦給另一個指針變量,這兩個指針變量指向同一地址,選項C正確;C語言中函數(shù)返回值的類型可以是簡單的數(shù)據(jù)類型,也可以是指針類型,選項D正確。故本題答案為A選項。

10.A[解析]本題中第一次調用為fum(8.fn(5.6)),因為fun(5.6)返回值為5.所以第二次調用為fn(8.5)=6.所以選擇A)。

11.B

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

13.A文件指針實際上是指向一個結構體類型的指針。這個結構體中包含緩沖區(qū)的地址、在緩沖區(qū)中當前存取字符的位置、對文件是“讀”還是“寫”、是否出錯、是否已經(jīng)遇到文件結束標識等信息。選項A正確,選項B、C錯誤;fscanf函數(shù)只能從文本文件中輸入數(shù)據(jù)到內存,選項D錯誤。故本題答案為A選項。

14.D

15.B

16.B本題考查函數(shù)調用時的參數(shù)傳遞。在執(zhí)行函數(shù)func時,由于全局定義了一個變量b,所以在函數(shù)體中執(zhí)行b=2+1=3,最終t=2+3=5。

17.B

18.A由函數(shù)fun(int*a,intn)中語句if(a[j]>a[k])k=j;可知當前k是記錄數(shù)組中較大數(shù)據(jù)值所在位置的下標變量,所以該函數(shù)的作用是對數(shù)組a中的下標為偶數(shù)位置的數(shù)據(jù)進行從大到小的排序,即對a[0],a[2],a[4],a[6]中的數(shù)據(jù)1,3,5,7進行從大到小的排序,其他位置的數(shù)據(jù)不變,所以答案為A)。

19.D在程序中指針變量P初始指向a[3],執(zhí)行P減1后,P指向a[2],語句y=*P的作用是把a[2]的值賦給變量y,所以輸出為y=3。

20.A

21.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進行比較,如果當前字符小于下一個字符;則通過中間變量temp將字符兩兩交換,所以第一空應填:str[i],第二空應填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應填;'%s',str。

22.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結點。第6層的結點數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結點最多數(shù)”和“某一層的結點最多數(shù)”。前者的計算是深度為m的二叉樹最多有2m-1個結點。

23.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d,格式輸出的,即輸出其相應ASCII碼值68。

24.讀棧頂元素讀棧頂元素解析:棧的基本運算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個新的元素;退棧是指取出棧頂元素并賦值給一個變量;讀棧頂元素是將棧頂元素賦值給一個指定的變量,不刪除棧頂元素。

25.11解析:因為在條件表達式(a<b)?a:b中,比較表達式a<b為真,所以x的值等于a的值等于1,后面兩個條件表達式中的比較表達式都為真,所以最終x的值等于1。

26.*(p+5)或p[5]*(p+5)或p[5]

27.16

28.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當于a[1+3],即10。因此,輸出應為100。

29.1+a1-a1+a,1-a解析:考查條件運算符的使用。因為題目中求的是1+|a|的值,即1和a的絕對值之和,所以根據(jù)數(shù)學中求絕對值的規(guī)則;當a>=0時,絕對值取本身,當a<0時,絕對值取相反數(shù),再結合條件運算符的計算規(guī)則,可得到本題的答案為a>=0。

30.611610。6,11,6,10。解析:本題考查自加的前置和后置的區(qū)別。

31.結構化分析方法結構化分析方法解析:結構化分析方法主要用于系統(tǒng)分析階段;結構化設計方法主要用于系統(tǒng)設計階段;結構化程序設計方法主要用于編碼階段??尚行匝芯繉儆谙到y(tǒng)分析階段,因此,可行性研究階段采用的是結構化分析方法。

32.8181解析:將S(i+j)展開來有:S(i+j)=S(6+8)=4×6+8×6+8+1=81。

33.概念概念

34.99解析:本題考查宏定義與三目運算符的綜合應用。宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個表達式的值,否則b+1的值為整個表達式的值(應注意后面的加1)。

35.查詢查詢解析:關系模型的數(shù)據(jù)操作即是建立在關系上的數(shù)據(jù)操作,一般有查詢、增加、刪除和修改四種操作。數(shù)據(jù)查詢是指用戶可以查詢關系數(shù)據(jù)庫中的數(shù)據(jù),它包括一個關系內的查詢以及多個關系間的查詢。數(shù)據(jù)刪除的基本單位是一個關系內的元組,它的功能是將指定關系內的指定元組刪除。數(shù)據(jù)增加僅對一個關系而言,在指定關系中插入一個或多個元組。數(shù)據(jù)修改是在一個關系中修改指定的元組和屬性。

36.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結果為:B66。

37.4545解析:假設線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過遍的從前往后掃描和遍的從后往前掃描,需要比較次數(shù)為。

38.p!=NULLp->nextp!=NULL,p->next解析:考查了單鏈表的相關知識。NULL的ASCII碼的值和'\\0'的ASCII碼的值相等,條件到NULL停止循環(huán)。把下一個節(jié)點的地址賦給p,這樣循環(huán),節(jié)點可以依次向后取值。

39.5656解析:本題中a,b,c,d是實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內存中,實參單元與形參單元是不同的單元。在調用函數(shù)時,給形參分配存儲單元,并將實參對應的值傳遞給形參,調用結束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結果是56。

40.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設計、實現(xiàn)、測試、交付使用及維護等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設計、實現(xiàn)和測試;③軟件運行維護階段:交付使用和維護。

41.A解析:函數(shù)strcmp的功能是比較字符串s1和s2,如果s1>s2,則返回個正數(shù):如果s1<s2,則返回負數(shù),否則返回零。由于本題中小寫字母b的ASCII碼值大于大寫字母B,故s1>s2,所以函數(shù)的值為正數(shù)。

42.D解析:將有6個元素的整型數(shù)組分兩行輸出到一個文件中,因為輸出的都是數(shù)字并且每行都沒有分隔符,所以當再對其進行讀取操作時,每一行都會被認為是一個完整的數(shù),而換行符則作為它們的分隔符。

43.C

44.A解析:本題的考查點是通過指針引用數(shù)組元素。程序中沒有給q分配存儲單元,只是給它賦了一個NULL,所以程序的運行結果是:611NULLpointerassignment,也就是運行后報錯。

45.C解析:本段程序的作用是輸出字符串“l(fā)anuage”中字母u之前的字符,并將其轉化為大寫字母。注意:如果一個字符數(shù)組用來作為字符串使用,那么在定義該字符數(shù)組時,數(shù)組的大小就應該比它將要實際存放的最長字符多一個元素,以存放‘\\0’。

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

47.A解析:因為剛開始時s指向a結點(鏈表頭),所以語句q=s;使q也指向a結點。s=s->next;語句使s指向a的下一個結點b。p=s;語句使p也指向b結點。接下來是一個while循環(huán),循環(huán)條件為p->next,即當p沒有指向鏈表尾時執(zhí)行循環(huán)體p=p->next;讓p指向下一個結點,所以當循環(huán)結束時,p指向鏈表尾(c結點)。執(zhí)行到此時,s、p、q分別指向的結點是b、c、a。然后執(zhí)行p->next=q;,使c結點的后續(xù)指針指向了a結點。最后執(zhí)行q->next=NULL;,使a結點的后續(xù)指針為NULL。由此可見,該程序段實現(xiàn)了將a結點移動到c結點之后,即首結點成為尾結點。故應該選擇A。

48.D解析:本題主要考查左移、右移對數(shù)據(jù)值的影響,左移n位相當于乘以2的n次冪,右移n位相當于除以2的n次冪。

49.B

50.C解析:在無向圖(邊沒有方向性的圖)中,若從頂點vi到vj有路徑,則稱vi和vj是連通的,若該圖中仟意兩個頂點都是連通的,則稱該圖為連通圖。

51.AA)【解析】關系的并運算是指由結構相同的兩個關系合并,形成一個新的關系,新關系中包含兩個關系中的所有元組。

52.D解析:a是一個2行3列的二維數(shù)組,行下標和列下標都是從0開始的,數(shù)組中的元素為a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下標最大值為1,列下標最大值為2,因此選項A、B、C都是錯誤的引用。計算選項D中數(shù)組元素的下標后得a[0][0],為正確的引用。

53.D解析:函數(shù)fun的作用是返回較小的字符。在main函數(shù)中,fun(a,b)及fun(b,c)的值作為fun函數(shù)新的參數(shù),返回a,b,c的較小值,結果為7。

54.A

55.C解析:本題要注意靜態(tài)變量d。第1次執(zhí)行fun(d),即fun(1),在函數(shù)fun里對靜態(tài)變量賦初值5,得到d=d+p=5+1=6并輸出,返回6;第2次執(zhí)行fun(a+fun(d)),即fun(3+6)=fun(9),在函數(shù)fun中直接執(zhí)行d=d+p=6+9=15并輸出,然后返回15再一次輸出。

56.C解析:C語言規(guī)定的標識符只能由字母、數(shù)字和下劃線3種字符組成,第一個字符必須為字母或下劃線,并且不能使用C語言中的關鍵字作為標識符。選項C)中goto和int是關鍵字,b-a中'-'不是組成標識符的3種字符之一;選項D)中int是關鍵字,所以,均是不合法用戶標識符的選項是C)。

57.C解析:C語言中,如果對定義的變量沒有賦初值,那么在后面使用時,變量的值是不確定的。所以,本程序中,沒有對sum賦初值,它的值不確定。在執(zhí)行了for循環(huán)語句后,sum的值也不確定的,所以,4個選項中選項C符合題意。

58.C解析:函數(shù)swap()實現(xiàn)的功能為交換字符指針x和y首位的數(shù)值。

59.D[答案]D

[考點]軟件工程基礎

[評析]

面向對象=對象+類+繼承+通過消息的通信

對象:一組屬性及其上的操作的封裝體

類:一組有相同屬性和操作的對象的集合

繼承:一個類為另一個類上的擴充的方式,子類繼承父類,主要目的是代碼復用

消息:對象間通信的手段

D是結構化程序設計或過程式(函數(shù)式)語言中的,一般的面向對象程序設計語言兼容這種方式,但不是其特征,故最佳選項為D

60.C解析:語句if(c==D)y=0;elsey=1;是if(a<B)語句的一個子句。所以整個C語句表達式的意思是:在、a<b的情況下,如果c=d則y=0,否則y==1。所以,選項C)為正確答案。

61.A

\n在函數(shù)fun中對參數(shù)n的值進行判斷,如果其值等于1或2,則*p=1,否則,函數(shù)fun進行遞歸調用fun(n.1,&f1);fun(13.2,&f2);*p=n+f2;在主函數(shù)調用fun函數(shù)時傳遞給參數(shù)n的值為3,fun函數(shù)又遞歸用了兩次自身fun(2,&n);fun(1,&f1);所以n和f2的值都為1,通過指針P的引用,變量S的值為2。

\n

62.C本題考查邏輯與(&&)和邏輯或(||)運算符的使用。x值在[1,10]之間,C語言中可以寫成“(x>=1)&&(x<=10)”;x值在[100,110]之間,C語言表達式應寫成“(x>=100)&&(x<=110)”;[1,10]和[100,110]滿足任意條件就可以,所以是邏輯或的關系,因此只要將前兩個表達式用邏輯或運算符連接起來即可,所以最后的表達式:((x>=1)&&(x<=10))||((x>=100)&&(x<=110))。

63.C本題考查帶參數(shù)的宏定義,s為帶參數(shù)的宏定義,運行S(k+j)為4*(k+j)*k+j+1=143,選項C正確。

64.Aif\r\nelse語句和“?:”可以互換,?前語句相當于i垢括號內容,?后語句相當于i垢的執(zhí)行語句,冒號后語句相當于else后語句,綜合以上可以看出A)符合題意。

65.A表達式*b=*a是將a所指的字符賦給b所指的空間,然后,指針a和b依次后移,直到到達指針a所指字符串的結尾。

66.C指針變量的值只能是存儲單元地址,而不能是一個整數(shù),故選項C錯誤。

67.Aswitch語句執(zhí)行完一個case后面的語句后,流程控制轉移到下一個case語句繼續(xù)執(zhí)行,遇到break會跳出本次循環(huán)。本題中輸入l時會輸出65,輸入2時會輸出6,輸入3時會輸出64,輸入4時會輸出5,輸入5時會輸出6,在輸入0時不滿足循環(huán)條件,程序執(zhí)行結束。

68.A本題考查的知識點是字符常量中的轉義字符。轉義字符是以一個“\”開頭的字符序列,它只代表一個字符。在選項A)中,“\

溫馨提示

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

評論

0/150

提交評論