2021-2022年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設計預測試題(含答案)_第1頁
2021-2022年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設計預測試題(含答案)_第2頁
2021-2022年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設計預測試題(含答案)_第3頁
2021-2022年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設計預測試題(含答案)_第4頁
2021-2022年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年黑龍江省齊齊哈爾市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:

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

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

2.有以下程序:#include<stdio.h>intfun(intX,inty){if(X!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf("%d/n",fun(2*a,fun(b,c)));}程序運行后的輸入結果是()。A.3B.6C.8D.12

3.在關系數(shù)據(jù)模型中,通常可以把()稱為屬性,其值稱為屬性值。

A.記錄B.基本表C.模式D.字段

4.有以下程序(提示:程序中fseek(fp-2L*sizeof(int),SEEK_END);語句的作用是使位置指針從文件末尾向前移2*sizeof(ing)字節(jié))#include<stdio.h>main(){FILE*fp;inti,a[4]={1,2,3,4},b;fp=fopen("data.dat","wb");for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int),SEEK_END);fread(&b,sizeof(int),1,fp);/*從文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/fclose(fp);printf("%d\n",B);}執(zhí)行后輸出結果是

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

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

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

6.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結果是()。

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

7.CPU能夠直接訪問的存儲器是

A.軟盤B.硬盤C.RAMD.CD-ROM

8.設一個鏈表最常用的操作是在末尾插入結點和刪除尾結點,則選用()最節(jié)省時間。

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

9.在“文件包含,預處理語句的使用形式中,當#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是()。

A.直接按系統(tǒng)設定的標準方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設定的標準方式搜索

C.僅僅搜索源程序所在目錄

D.僅僅搜索當前目錄

10.下列選項中,當x為大于1的奇數(shù)時,值為0的表達式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

11.

12.若一棵二叉樹具有10個出度為2的結點,則在該二叉樹中,出度為0的結點個數(shù)是()

A.9B.11C.12D.不確定

13.在深度為5的滿二叉樹中,葉子結點的個數(shù)為()。

A.31B.32C.16D.15

14.棧這種數(shù)據(jù)結構一般應用在()。

A.遞歸調用B.子程序調用C.表達式求值D.A,B,C

15.有以下程序:

#include<stdio.h>,

main()

{intS;

scanf("%d",&s);

while(s>O)

{switch(s)

{casel:printf("%d",s+5);

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

case3:printf("%d",s+3);

default:("%d",s+1);break;

}

scanf("%d",&s);

}

}

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

A.6566456B.66656C.66666D.6666656

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

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

17.

18.一個有n個頂點的連通無向圖至少有()條邊。

A.n-1B.nC.n+1D.n+2

19.數(shù)據(jù)結構中,在邏輯上可以把數(shù)據(jù)結構分成()。

A.動態(tài)結構和靜態(tài)結構B.緊湊結構和非緊湊結構C.線性結構和非線性結構D.內部結構和外部結構

20.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

二、2.填空題(20題)21.以下程序中函數(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");

}

22.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

printf("%x\n,p+9);

}

23.下列程序運行時輸入1234567<CR>,則輸出結果是______。

#include<stdio.h>

main()

{inta=1,b;

scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);

}

24.執(zhí)行以下程序的輸出結果是()。

#include<stdio.h>

#defineM5

#defineNM+M

main()

{intk;

k=N*N*5;printf(”%d\n",k);

}

25.在面向對象方法中,類之間共享屬性和方法的機制稱為______。

26.以下程序的輸出結果是()。#include<stdio.h>fun(){staticinta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<5;cc++)fun();printf("\n");}

27.程序的運行結果為【】。

main()

{intx,y,z;

x=24;

y=024;

z=0x24;

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

}

28.以下程序段的運行結果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}

29.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

30.數(shù)據(jù)庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。

31.下列程序的運行結果是【】。

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%\n",p);

}

32.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。

33.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的【】集合。

34.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。

35.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

36.單元測試又稱模塊測試,一般采用【】測試。

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

main()

{

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

p++;

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

}

38.以下程序用于判斷a,b,c能否構成三角形,若能,輸出YES,否則輸出NO。當給a,b,c輸入三角形三條邊長時,確定a,b,c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{floata,b,c;

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

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

elseprinff("NO\n");/*a.b.c不能構成三解形*/

}

39.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。

40.數(shù)據(jù)流的類型有______和事務型。

三、1.選擇題(20題)41.對于長度為n的線性表,在最壞情況下,下列各排序法所對應的比較次數(shù)中正確的是()

A.冒泡排序為n(n-1)/2B.簡單插入排序為nC.希爾排序為nD.快速排序為n/2

42.有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];則b的值是

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

43.下列程序的運行結果是#include"stdio.h"main(){intx=-9,y=5,z=8;if(x<y)if(y<0)z=0;elsez+=1;printf("%d\n",z);}

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

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

現(xiàn)要將q所指結點從鏈表中刪除,同時要保持鏈表的連續(xù),以下不能完成指定操作的語句是

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

B.p-next=p->next->next;

C.p->next=r;

D.p=q->enxt;

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

A.二進制文件打開后可以先讀文件的末尾,而順序文件不可以

B.在程序結束時,應當用fclose函數(shù)關閉已打開的文件

C.在利用fread函數(shù)從二進制文件中讀數(shù)據(jù)時,可以用數(shù)組名給數(shù)組中所有元素讀入數(shù)據(jù)

D.不可以用FILE定義指向二進制文件的文件指針

46.下列程序的輸出結果是______。main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}

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

47.

(2)

A.*sB.sC.*s++D.(*s)++

48.下列程序的運行結果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}

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

49.有以下程序structSTU{charnum[10];floatscore[3];};main(){structSTUs[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s;inti;floatsum=0;for(i-0;i<3,i++)sum=sum+p->score[i];printf("%6.2f\n",sum};}程序運行后的輸出結果是

A.260B.270C.280D.285

50.設有程序段:intk=12:while(k=1)k=k-1:則下列描述中正確的是()。

A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

51.下面程序段的運行結果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

52.以下不能對二維數(shù)組a進行正確初始化的語句是

A.inta[2][3]={0};

B.inta[][3]={{1,2},{0}};

C.inta[2)[3]={{1,2},{3,4},{5,6}};

D.inta[][3]={1,2,3,4,5,6};

53.設a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值為______。

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

54.已有定義:intx=3,y=4,z=5;,則表達式!(x+y)+z-1&&y+z/2的值是

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

55.以下程序的運行結果是()。#include<stdio.h>main(){st,uctdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

A.6B.8C.10D.12

56.下列二維數(shù)組初始化語句中,正確且與語句floata[][3]={0,3,8,0,9};等價的是

A.floata[2][]={{0,3,8},{0,9}};

B.floata[][3]={0,3,8,0,9,0};

C.floata[][3]={{0,3},{8,0},{9,0}};

D.floata[2][]={{0,3,8},{0,9,0}};

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

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

58.請讀程序:#include<stdio.h>#defineSUB(X,Y)(X)*Ymain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));}上面程序的輸出結果是()。

A.12B.15C.16D.20

59.下面程序的輸出結果是#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

60.下列語句組中,不正確的是()。

A.char*s;s="Olympic";

B.chars[]="Olympic";

C.char*s;s={"Olympic"};

D.chars[]={"Olympic"};

四、選擇題(20題)61.

62.

63.有以下程序:

程序運行時,輸入的值在哪個范圍才會有輸出結果()。

A.小于3的整數(shù)B.不等于10的整數(shù)C.大于3或等于10的整數(shù)D.大于3且不等10的整數(shù)

64.下述程序的運行結果是()。

#includedstdio.h>

#includedstrin9.h>

main

{char*s1="abDuj";

char*s2="ABdUG";

intt;

t=strcmp(s1,s2);

printf("%d",t);

}

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

65.

66.

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

A.預處理命令行必須位于C源程序的起始位置

B.在C語言中,預處理命令行都以“#”開頭

C.每個C程序必須在開頭包含預處理命令行:#include<stdio.h>

D.C語言的預處理不能實現(xiàn)宏定義和條件編譯的功能

67.

68.有以下程序:

程序的運行結果是()。

A.*****a*bB.a*bC.a*b****D.ab

69.

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

main()

{inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};

printf("%(1%d%d%d\n".a[O][3],a[1][2],a[2]

[1],a[3][0];

}

A.0650B.1470C.5430D.輸出值不定

70.為了提高軟件的獨立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內容耦合D.數(shù)據(jù)耦合

71.有以下程序:

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

A.2B.0C.元素ch[5]的地址D.字符y的地址

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

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

73.

74.

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

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

76.有如下說明

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

則數(shù)值為9的表達式是

A.*p+9B.*(p+8)C.*p+=9D.p+8

77.數(shù)據(jù)庫系統(tǒng)的核心是()。

A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫管理員D.數(shù)據(jù)庫應用系統(tǒng)

78.若有定義:intX=0,*P=&x;,則語句printf(”%d\n”,*P.的輸出結果是()。

A.隨機值B.0C.X的地址D.P的地址

79.鏈表不具有的特點是A.A.不必事先估計存儲空間

B.可隨機訪問任一元素

C.插入和刪除不需要移動元素

D.所需空間與線性表長度成正比

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:根據(jù)輸入的3個邊長(整型值),判斷能否構成三角形:若能構成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構成三角形則返回1;若不能,則返回0。例如,輸入3個邊長為3,4,5,實際輸入時,數(shù)與數(shù)之間以Enter鍵分隔而不是逗號。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdio.h>#include<math.h>intproc(inta,intb,intc){if(a+b>c&&b+c>aa+c>b){if(a==b&&b==c)//****found****return1;elseif(a==b||b==c||a==c)return2;//****found****elsereturn3;}elsereturn0;}voidmain{inta,b,C,shape;printf("\nlnputa,b,C:");scanf("%d%d%d",&a,&b,&c);printf("\na=%d,b=%d,c=%d\n",a,b,c);shape=proc(a,b,c);printf("\n\nTheshape:%d\n",shape);}

六、程序設計題(1題)82.請編寫一個函數(shù)proc(),它的功能是:求出一個4×N整型二維數(shù)組中最大元素的值,并將此值返回調用函數(shù)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.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>

2.B此題考查的是函數(shù)fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。

3.D解析:數(shù)據(jù)庫表中字段轉化為屬性,把記錄的類型轉化為關系模式。

4.D解析:函數(shù)fopen(constchar*filename,constchar*mode)的功能是以mode指定的模式打開filename指定的磁盤文件:fclose(FILE*fp)的功能是關閉文件指針fp指向的文件;函數(shù)fscanf(FILE*fp,constchat\'*format1,address,--])的功能是根據(jù)format中的格式從中指向的文件中讀取數(shù)據(jù),并存入到相應的address指向的變量中.函數(shù)fprintf(FILE*fp,constchar*format[,argument--])的功能是把argument列表中的表達式值寫到fp所指向的文件中;函數(shù)fwfite(void*ptr,intsize,intn,FILE*fp)的功能是把ptr指向的緩沖區(qū)中的size×n個字節(jié)寫到文件指針fp指向的文件中。本題中首先定義了一個文件指針fp,然后通過函數(shù)fopen以可'wb'的方式打開文件'data.daft',直接通過一個for循環(huán),每循環(huán)一次調用函數(shù)fwrite將數(shù)組中的元素a[i]的值寫進fp所指的文件中,該循環(huán)共循環(huán)4次,循環(huán)完后fp所指文件的內容為123,然后通過fclose函數(shù)關閉fp所指文件.接著通過函數(shù)fopen以'rb”的方式打開文件'data.dat',通過fseek函數(shù)讓指針中從文件末尾向前移動2個int型大小字節(jié)的,然后通過函數(shù)fread從中所指的文件中讀取一個int型大小的數(shù)據(jù)到變量b中,故此時b的值為3,因此最后輸出的,b的值為3,所以,4個選項中選項D符合題意。

5.B

6.AC語言中的轉義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數(shù)結束,因此計數(shù)為3。故本題答案為A選項。

7.C解析:CPU讀取和寫人數(shù)據(jù)都是通過內存來完成的。

8.C

9.B#include”文件名”,預處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標準目錄搜索。

10.D解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項D)等于關系表達式的結果為假,即等于0。

11.D

12.B

13.C解析:二叉樹的一個性質是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個結點。對于滿二叉樹,每一層上的結點數(shù)都達到最大值,即在滿二叉樹的第k層上有2k-1個結點。所以,在深度為5的滿二叉樹中,所有葉子結點在第5層上,即其結點數(shù)為2(k-1)=2(5-1)=16。

14.D

15.A\n根據(jù)題意,當s=1時,輸出65;當s=2時,輸出6;當S=3時,則輸出64;當S=4時,輸出5;當s=5時,輸出6;當s=0時,程序直接退出。所以最后答案為6566456,A選項正確。

\n

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

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

17.B

18.A

19.C

20.B

\n本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進行第2次循環(huán),執(zhí)行case4:這個分支,結果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進行第3次循環(huán),執(zhí)行case3:這個分支,結果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進行第4次循環(huán),執(zhí)行case2:case4:這個分支,結果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環(huán)條件,因此循環(huán)結束。

\n

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

22.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。

23.本題考查的重點是scanf函數(shù)的調用。scanf(“<格式化字符串>”,<地址表>),格式化字符串后可以加上場寬,本題中兩個變量的場寬都為2,所以輸入1234567<CR>后,變量a的值為12。變址b的值為34,從而輸出為1234。\r\n\r\n

24.5555解析:本題考查的重點是對宏定義的理解。#define指令定義一個標識符和一個串,編譯程序在對C源程序處理時.發(fā)現(xiàn)該標識符都用該串替換,因此,在語句k=N*N*5將替換成k=M+M*M+M*5后,M被替換成5,從而k=5+5*5+5*5=55。

25.繼承繼承解析:在面向對象的程序設計方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。

26.3691236912解析:本題考查最基本的for循環(huán)。for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3,即每次a的值增加3,但因為fun函數(shù)中變量a為static類型,所以每次調用完子函數(shù)之后,變量a所做的改變都要保存。

27.242036

28.x=2

29.調試調試

30.概念設計階段(數(shù)據(jù)庫概念設計階段)概念設計階段(數(shù)據(jù)庫概念設計階段)

31.efghefgh解析:函數(shù)ss的作用是讓形參指針s指向該字符串的右半部分。主函數(shù)中首先定義了一個字符型指針變量p和字符型指針str,并初始化為“abcdefgh”,然后調用函數(shù)ss,將實參str傳給形參s,因此可知該函數(shù)返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p的值為調用函數(shù)ss(str)的返回值)所指向的字符串為“efgh”。

32.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和x這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關系。

33.軟件工具軟件工具

34.完善性軟件維護活動包括以下幾類:改正性維護,適應性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

35.從定義到本源文件結束從定義到本源文件結束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結束。

36.白盒法白盒法

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

38.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:根據(jù)構成三角形的條件:兩邊之和大于第三邊,得出空格應該填(a+b>c)&&(a+c>b)&&(b+c>a)或與其等價的形式。

39.1919解析:根據(jù)二叉樹的性質:在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。本題中度為2的結點數(shù)為18,故葉子結點數(shù)為18+1=19個。

40.變換型變換型

41.AA)【解析】在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2;簡單插入排序所需要的比較次數(shù)為n(n-1)/2;希爾排序所需要的比較次數(shù)為O(n1.5);堆排序所需要的比較次數(shù)為O(nlog2n)。

42.C解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]指向數(shù)組a的第9個元素,而a[8]=9,所以b=9。

43.D解析:if...else語句的執(zhí)行過程如下,首先計算if后面一對圓括號內表達式的值,若表達式的值為非0,執(zhí)行if子句,然后跳過else子句,去執(zhí)行if語句后的下一條語句;若表達式的值為0,跳過if子句,去執(zhí)行else子句,接著去執(zhí)行if語句后的下一條語句。C語言的語法規(guī)定,else子句總是與前面最近的不帶else的if匹配,與書寫格式無關,本題目的后一個ifelse相當于嵌套在第一個if子句里,相當于x<y&&y<0時,z=0;當x<y&&y>=0時,z=z+1。

44.D解析:本題考查鏈表結點的刪除。q->next中存放的是r所指結點的首地址,將r所指結點的首地址存于p->next中,則實現(xiàn)刪除q所指結點的功能,并保持鏈表連續(xù),p所指結點與r所指結點相連。

45.D解析:順序文件只能從頭讀寫,二進制文件可以隨機讀寫,選項A正確:文件在使用后應關閉,當程序結束時,應當把打開的文件關閉,選項B正確:用fread()函數(shù)可以一次性地讀取同類型的很多數(shù)據(jù),選項C正確;在C語言中指向各種文件的文件指針都是通過FILE來定義的,故選項D是錯誤的。所以4個選項中選D

46.B

47.A

48.C解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第二個if語句,先判斷條件,發(fā)現(xiàn)b<0條件不成立,則執(zhí)行與其配對的else語句,c+=1,得c=5。

49.B解析:本題考查的知識點是結構體數(shù)組元素的成員元素的引用。程序中首先定義了一個結構體,其成員為一字符數(shù)組和一浮點型數(shù)組。在main()首先定義了一個結構體數(shù)組并初始化.接下來在for循環(huán)中遍歷了結構體數(shù)組中的第一個元素中數(shù)組成員即{'20021',90,95,85'}循環(huán)結果為90+95+85=270最后sum為270,又輸出格式為“%6.2f\\n”要求保留兩位小數(shù)故最后輸出為270.00。所以4個選項中B正確。

50.C本題考查while,while循環(huán)表達式k-1是個賦值表達式而不是邏輯表達式,k的初值為l2不符合循環(huán)條件,所以循環(huán)體語句一次也不執(zhí)行。

51.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個字符串,然后將指針變量p加3,即使其指向字符串的第四個元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個十進制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。

strcpy的調用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復制到目的地址中,這種復制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復制到目的地址字符串的后面。

strlen的調用格式是:strlen(字符串地址),其功能是返回字符串中字符的個數(shù)。

那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結果是4。因此本題正確的答案是C。

52.C解析:關于二維數(shù)組的初始化,我們需要掌握如下方法:①所賦初值個數(shù)與數(shù)組元素的個數(shù)相同;②所賦初值行數(shù)少于數(shù)組行數(shù)時,系統(tǒng)將自動給后面各行的元素補初值0;③在給二維數(shù)組賦初值時可以不用行花括號對。選項C)應該是inta[3][2]={{1,2},{3,4},{5,6,}};

53.A解析:C語言中比較表達式的運算結果為0或1。0代表不成立,1表示成立。

54.D解析:本題考查的知識點是!和&&的運算規(guī)則.本題中,&&左邊的表達式!(x+y)為!(3+7),結果為假,即為0。再加上2,然后減一,相當于0+5-1=4。左邊等于4,&&右邊的表達式y(tǒng)+z/2相當于4+5/2為6,所以整個表達式相當于4&&6為真,即為1,所以選項D正確。

55.A解析:結構體變量的長度是其內部成員總長度之和,在本題中,structdate中包含year,month,day三個整型變量。通常一個整型變量占2個字節(jié),因此,用sizeof求得該結構體變量的長度為6個字節(jié)。

56.B解析:在選項B)中,因為數(shù)組的第一維的數(shù)目不明確,所以理解會有歧義,可以理解為1行3列,或者2行3列等。所以選項B)錯誤。注意:數(shù)組中元素的引用。

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

58.A解析:本題的考查點是宏定義。a++的形式應當先使用a值,然后a才進行自加1運算,所以程序在進行SUB()乘法運算的時候,仍取a,b的原值,最后輸出的結果是12。

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

60.C

61.D

62.D

63.D根據(jù)代碼可知如果x的值小于等于3,執(zhí)行空語句,不進行打印操作。如果x的值大于3,再判斷x的值是否不等于l0,如果不等于l0就打印X的值,所以選擇D選項。

64.A本題考查符符串比較函數(shù)和兩個字符串比較的原則這兩個知識點。

\n(1)兩字符串比較的原則是依次比較兩個字符串同一位置的一對字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大(2)strcmp(s1,s2)的返回值,當str1<str2時,返回值為負數(shù);當str1=str2時,返回0;當str1>str2,返回值為正數(shù)。

65.C\r\n

66.B

\n本題是對基本知識點的理解,預處理命令行的位置沒有規(guī)定,只是習慣寫在起始位置而已,

溫馨提示

  • 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

提交評論