2022-2023年山東省濟南市全國計算機等級考試C語言程序設計測試卷(含答案)_第1頁
2022-2023年山東省濟南市全國計算機等級考試C語言程序設計測試卷(含答案)_第2頁
2022-2023年山東省濟南市全國計算機等級考試C語言程序設計測試卷(含答案)_第3頁
2022-2023年山東省濟南市全國計算機等級考試C語言程序設計測試卷(含答案)_第4頁
2022-2023年山東省濟南市全國計算機等級考試C語言程序設計測試卷(含答案)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年山東省濟南市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.對兩個數(shù)組a和b進行下列初始化:charm[]1="l234567":charn[]={1,2,3,4,5,6,7);則下列敘述正確的是()。A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串

2.若有定義“inta,b,c;”,想通過語句“scanf(“%d,%d%d”,&a,&b,&c);”把1、2、3分別賦給變量a、b、c,則正確的鍵盤輸入是()。

A.1,2,3<Enter>

B.1,2<tab>3<Enter>

C.1<Enter><tab>2<tab>3

D.1<Enter>2<Enter>3

3.設二叉樹的中序序列為BCDA,前序序列為ABCD,則后序序列為()。

A.CBDAB.DCBAC.BCDAD.ACDB

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

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

5.

6.算法的空間復雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間

7.在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。

A.auto和register

B.extern和register

C.auto和static

D.static和register

8.

9.p指向線性鏈表中某一結點,則在線性鏈表的表尾插入結點s的語句序列是()。

A.while(p->next!=NULL)p=p->next;p->next=s;s->next=NULL;

B.while(p!=NULL)p=p->next;p->next=s;s->next=NULL;

C.while(p->next!=NULL)p=p->next;s->next=p;p->next=NULL;

D.while(p!=NULL)p=p->next->next;p->next=s;s->next=p->next;

10.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。

A.數(shù)組x和數(shù)組y等價B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度

11.

12.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。

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

13.下列能正確定義且賦初值的語句是()。

A.intn1=n2=1;

B.charC=99;

C.floatf=f+1;

D.doublex=1.2E5.6;

14.

15.按照“先進后出”原則組織數(shù)據(jù)的結構是()。

A.隊列B.棧C.雙向鏈表D.二叉樹

16.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

17.命令“DIRA:*.*/W”的功能是()

A.寬行顯示A盤當前目錄的所有文件

B.寬行顯示A盤所有目錄的所有文件

C.寬行顯示A盤的所有目錄

D.顯示A盤中的文件名,每滿一屏后停頓一下

18.有以下程序:#include<stdio.h>voidmain(){doublex=3.14159;printf(“%f\n”,(int)(x*1000+0.5)/(double)1000);}程序運行后的輸出結果是()。

A.3.142000B.3.141000C.3.143000D.3.140000

19.結構化程序所要求的基本結構不包括A.順序結構B.GOTO跳轉C.選擇(分支)結構D.重復(循環(huán))結構

20.若輸入“abcdef”“abdef”,下述程序的輸出結果為()。#include<stdio.h>#include<string.h>main{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.-1B.0C."abcdef"D."abdef"

二、2.填空題(20題)21.函數(shù)pi的功能是根據(jù)以下近似公式求π值:

(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)

現(xiàn)在請你在下面的函數(shù)中填空,完成求π的功能。

#include"math.h"

{doubles=0.0;longi;

for(i=1;i<=n;i++)s=s+【】;

return(sqrt(6*S));

}

22.fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大數(shù),再求這N個最大值中的最小的那個數(shù)作為函數(shù)值返回。請?zhí)羁誣_____。

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{

introw,col,max,min;

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

for(max=a[row][0],col=1;col<N;col++)

if()max=a[row][col];

if(row==0)min=max;

elseif()min=max;

returnmin;

}

23.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

24.若有如下定義,doublea[100];,則a數(shù)組元素的下標上限是【】。

25.下列程序的功能是計算1~100的整數(shù)的累加和。

main()

{inti,sum=【】;

i=1;

for(【】)

{sum+=i;

i++;

}

printf("sum=%d\n",【】);

}

26.把數(shù)學表達式改寫成C語言的表達式是【】。

27.函數(shù)sstrcmp()的功能是對兩個字符串進行比較。當s所指字符串和t所指字符串相等時,返回值為0;當s所指字符串大于t所指字符串時,返回值大于0;當s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp())。請?zhí)羁铡?/p>

#include<stdio.h>

intsstrcmp(char*s,char*t)

{

while(*s&&*t&&*s==【】)

{s++;t++;}

rerurn【】;

}

28.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>

FILE*myf;longf1;

myf=【】("test,t","rb");

fseek(myf,(),SEEK_END;f1+ftell(myf);

fclose(myf);

printf("%1d\n",f1);

29.設x和y均為int型變量,且x=1,y=2,則表達式2.0+x/y的值為_______。

30.若輸入thistestterminal,以下程序的輸出結果為:terminaltestthis。請?zhí)羁铡?/p>

#defineMAXLINE20

【】

{inti;

char*pstr[3],str[3][MAXLINE];

for(i=0;i<3;++)pstr[i]=str[i];

for(i=0;i<3;i++)scanf("%s",pstr[1]);

sort(pstr);

for(i=0;i<3;i++)prntf("%s",pstr[i]);

}

sort(【】)

char*pstr[3];

{inti,j;

char*p;

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

for(j=i+1;j<3;j++)

if(strcmp(*(pstr+i,*(pstr+j)>0

{p=*(pstr+i);

*(pstr+i=【】;

*(pstr+j)=p;

}

31.在面向對象的程序設計中,類描述的是具有相似性質的一組【】。

32.設有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

33.下面程序把從終端讀入的文本(用@作為文本結束標志)輸出到一個名為bi.dat的新文件中,請?zhí)羁铡?/p>

#include"stdio.h"

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

34.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>

#include<string.h>

main()

{infi,j,[13];charstr[]={"1234567"};

for(i=0,j=strlen(str)[14];i<j;i++,j--)

{k=str[i];str[i]=str[i];str[j]=k;}

printf("%s\n",str);}

35.設有以下定義和語句,則*(*(P+2)+1)的值為【】。

int[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

36.數(shù)據(jù)結構包括數(shù)據(jù)的邏輯結構、數(shù)據(jù)的【】以及列數(shù)據(jù)的操作運算。

37.下面程序的功能是兩個整數(shù)進行交換,請?zhí)羁铡?/p>

sub(int*x,int*y)

{【】

z=*x;*x=*y;*y=z;

return;}

main()

{intm,n,*t1,*t2;

scanf("%d,%d",&m,&n);

t1=&m;t2=&n;

【】

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

38.以下程序建立一個帶有頭結點的單向鏈表,鏈表結點中的數(shù)據(jù)通過鍵盤輸入,當輸入數(shù)據(jù)為-1時,表示輸入結束(鍵表頭結點的data域不放數(shù)據(jù),表空的條件是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();}

39.以下程序的運行結果是______。

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

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

}

40.設有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結果是______。

三、1.選擇題(20題)41.設有以下宏定義:#defineN3#defineY(n)((N+1)*n)則執(zhí)行以下語句后,z的值為______。z=2*(N+Y(3+2));

A.出錯B.34C.46D.54

42.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達式的值為11的是()。

A.*pt->yB.pt->xC.++pt->xD.(pt++)->x

43.在關系代數(shù)運算中,有5種基本運算,它們是()。

A.并(∪)、差(-)、交(∩)、除(÷)和笛卡兒積(×)

B.并(∪)、差(-)、交(∩)、投影(π)和選擇(σ)

C.并(∪)、交(∩)、投影(π)、選擇(σ)和笛卡兒積(×)

D.并(∪)、差(-)、投影(π)、選擇(σ)和笛卡兒積(×)

44.在關系數(shù)據(jù)庫模型中,通??梢园?)稱為屬性,其值稱為屬性值。

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

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

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

46.表示關系x≥y≥z應使用C語言表達式()

A.(x>=y(tǒng))&&(y>=z)

B.(x>y)AND(y>z)

C.x>=y>=z

D.(x>=y(tǒng))&(y>=2)

47.有如下程序main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}該程序的執(zhí)行結果是______。

A.6B.3C.死循環(huán)D.0

48.有以下程序

intfun(intx[],intn)

{staticintsum=0,i;

for(i=0;i<n;i++)sum+=x[i];

returnsum;

}

main()

{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;

s=fun(a,5)+fun(b,4);printf("%d\n",s);

}

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

A.45B.50C.60D.55

49.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+c-k值的類型為:

A.intB.doubleC.floatD.char

50.下列程序的輸出結果是______。main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;i<=i;j++)s+=a[i][j];printf("%d\n",s);}

A.18B.19C.20D.21

51.程序的3種基本控制結構是

A.過程、子過程和分程序B.順序、選擇和重復C.遞歸、堆棧和隊列D.調(diào)用、返回和轉移

52.下面程序的輸出結果是______。#include<stdio.h>main(){charch[7]={"12ab56"};inti,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf("%d\n",s);}

A.1B.1256C.12ab56D.1256

53.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達式是______。

A.&t[3][2]B.t[3]C.t[1]D.*t[2]

54.已知字母a的ASCII碼為十進制數(shù)97,下面程序的輸出結果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}

A.輸出無定值B.d,eC.e,fD.g,d

55.以下敘述中錯誤的是A.算法正確的程序最終一定會結束

B.算法正確的程序可以有零個輸出

C.算法正確的程序可以有零個輸入

D.算法正確的程序對于相同的輸入一定有相同的結果

56.在下列關于二叉樹的敘述中,正確的一項是

A.在二叉樹中,任何一個結點的度都是2

B.二叉樹的度為2

C.在二叉樹中至少有一個結點的度是2

D.一棵二叉樹的度可以小于2

57.下列語句中,不正確的是______。

A.staticchara[]={"China"};

B.staticchara[]="China";

C.printf("%s",a[0]);

D.scanf("%s",a);

58.下面程序的輸出結果是()。#defineSQR(X)2*X+1main(){inta,b,C;a=3;b=2;C=1;a*=SQR(b+c)/SQR(b+c);printf("%d",a);}

A.3B.18C.21D.24

59.已知inta=6;則執(zhí)行a+=a-=a*a;語句后,a的值為()。

A.36B.0C.-24D.-60

60.若有定義:inta[3][4],()不能表示數(shù)組元素a[1][1]。

A.*(a[1]+1)B.*(&a[1][1])C.(*(a+1))[1]D.*(a+5)

四、選擇題(20題)61.

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

#include<stdio.h>

intfun(inta)

{intb=0;

staticintc=4:

a=c++:b++;

return(a):

main

{inta=2,i,c;

for(i=0:i<2;i++)

c=f(a+1):

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

}

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

62.以下對二維數(shù)組a進行正確初始化的是()

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

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

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

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

63.軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件),下面屬于系統(tǒng)軟件的是()。A.學生管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)

64.

65.設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1

66.下列工具中為需求分析常用工具的是()。

A.PADB.BFDC.N-SD.DFD

67.

68.

69.有以下程序:

注意:字母a的ASCIl碼值為97,程序運行后的輸出結果是()。

A.dB.goC.godD.good

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

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

71.

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

A.Zha0,m,85,90,Qian,f,95,92

B.Zha0,m,85,90,Zha0,m,85,90

C.Qian.f,95,92,Qian,f,95,92

D.Qian,f,95,92,Zha0,m,85,90

73.已知二叉樹后序遍歷序列是dabeC,中序遍歷序列是debaC,它的前序遍歷序列是()。

A.aChedB.deCabC.deabeD.Cedba

74.

75.

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

main

{charch[3][4]={"123","456","78"),*p[3];inti;

for(i=0;i<3;i++)p[i]=ch[i];

for(i=0;i<3;i++)printf("%s",p[i]);}

A.123456780B.123456780C.12345678D.147

76.

77.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其輸出結果是()。A.1B.30C.1-2D.死循環(huán)

78.有以下程序

79.(31)算法一般都可以用哪幾種控制結構組合而成()

A.循環(huán)、分支、遞歸

B.順序、循環(huán)、嵌套

C.循環(huán)、遞歸、選擇

D.順序、選擇、循環(huán)

80.有以下程序:

程序的運行結果是()。

A.1,2,3,4,5,6,7,8,9,0,

B.2,1,4,3,6,5,8,7,0,9,

C.0,9,8,7,6,5,4,3,2,1,

D.0,1,2,3,4,5,6,7,8,9,

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從3個紅球,5個白球,6個黑球中任意取出8個作為一組,進行輸出。在每組中,可以沒有黑球,但必須要有紅球和白球。組合數(shù)作為函數(shù)值返回。正確的組合數(shù)應該是l5。程序中i的值代表紅球數(shù),j的值代表白球數(shù),k的值代表黑球數(shù)。

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

注意:不要改動main()函數(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.C在m數(shù)組中賦值的是字符串,其長度為7,末尾有結束符\0,故字節(jié)數(shù)為8,而n數(shù)組中賦的是字符,其長度為7,故C選項正確。

2.B題干中,格式輸入函數(shù)scanf的格式控制字符串中,第1個%d與第2個%d之間有一個逗號。所以輸入的第1個整數(shù)和第2個整數(shù)之間必須要有一個逗號,選項C、D錯誤;輸入的第2個整數(shù)和第3個整數(shù)之間需要間隔符,可以使用<Tab>鍵、<Enter>鍵、空格符。故本題答案為B選項。

3.B二叉樹的前序序列為ABCD,由于前序遍歷首先訪問根節(jié)點,可以確定該二叉樹的根節(jié)點是A。再由中序序列為BCDA,可知以A為根節(jié)點的該二叉樹只存在左子樹,不存在右子樹,故后序序列為DCBA。本題答案為B選項。

4.A

5.C

6.D【解析】算法的空間復雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結構所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術,以便盡量減少不必要的額外空間。

7.A解析:在C語言中,動態(tài)存儲區(qū)域中存放的變量在使用時才分配內(nèi)存空間,函數(shù)調(diào)用時返回的地址和自動類局部變量等存放在動態(tài)存儲區(qū)域中。auto變量和register變量都屬于自動類局部變量,因此選項A正確。static說明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲中占據(jù)著永久的存儲單元,直至程序運行結束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個程序運行期間都占用內(nèi)存空間。

8.B本題考查標準輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf函數(shù)接收字符串時的結束標志為回車或者空格。因此選項B)不能,選項C)和選項D)中按字符逐個讀入字符串s中,直到讀入的字符是換行符為止,因此B正確。

9.A

10.C解析:在C語言中,字符串以'\\0'作為結束符,因此數(shù)組x的長度為7+1=8,而數(shù)組y的長度等于7。

11.C

12.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結束符\0的長度。故選A。

13.B在c語言規(guī)定中,可以在定義變量的同時給變量賦初值,選項A中n2沒有定義;選項C中不能在賦值表達式的右邊出現(xiàn)變量本身,選項D中字母E后面的數(shù)應該為整數(shù),所以不對。

14.D

15.B棧是線性表的一種,其插入和刪除運算都只在表的一端進行。進行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元素是最后被插入的元素,不是最后被刪除的元素,是按先進后出的原則組織數(shù)據(jù)的。

16.B解析:一個算法應當具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應該選擇B。

17.A

18.A根據(jù)算術表達式和運算符的優(yōu)先級與結合性。表達式“int(x*1000+0.5)/(double)1000”,首先計算“x*1000”,由于x是double類型,1000是整型,所以“x*1000”的結果默認是double類型,即3141.59,加0.5后再執(zhí)行int的強制轉換,結果為3142。分母“(double)1000”強制轉換為double類型,此時計算“3142/(double)1000”,3142需要轉換成double類型,然后除以1000,結果為3.142000,默認保留小數(shù)點后6位。故本題答案為A選項。

19.BB【解析】1966年Boehm和JaCopini證明了程序設計語言僅僅使用順序、選擇和重復三種基本控制結構就足以表達出各種其他形式結構的程序設計方法。

20.D本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。

21.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表達式1+1/(2*2)+1/(3*3)+...+1(n*n)可寫為1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)

n

即:∑1÷(i×i)

i=1

對應的C語言的表達式s=s+1.0/(i*i)。注:必須要寫成1.0的形式,否則1/(i,i)返回值為其值截尾取整,即恒為0。

22.a[iow][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[iow][col]max<min或min>maX或max<=min或min>=maxa[iow][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[iow][col]\r\nmax<min或min>maX或max<=min或min>=max解析:本題有兩層for循環(huán),主函數(shù)中定義了整型變量iow、col、max和min,其中row用來存放外循環(huán)中的循環(huán)次數(shù),col用來存放內(nèi)循環(huán)中的次數(shù),max記錄每行中的最大值;min記錄所有行中最大值中的最小值。在內(nèi)循環(huán)中,首先給max賦初值為每行的第0列元素值,然后從第一列開始依次與max進行比較。如果大于max則將其值賦給max,當每一行循環(huán)結束,max記錄了每一行的最大值。所以第一個空應該填a[row][col]>max或a[row][col]=max.退出內(nèi)循環(huán),在第一次退出內(nèi)循環(huán)時,將min賦初值為第0行的max,然后在每次退出內(nèi)循環(huán)時,將min和每行的max比較,如果大于max,則將max值賦min,所以第二個空應該填max<min或min>max,當退出外循環(huán)時,min為所有行中的最大值的最小值。

23.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結構,從而大大減少了程序中的冗余,提高軟件的可重用性。

24.9999解析:數(shù)組的下標是從0開始存放數(shù)據(jù)的,而不是1,當數(shù)組大小為n時,其下標從0開始,到n-1,所以本題的答案為99。

25.0;sum<=100;sum

26.(cosx)*(cosx)*(m+n)/(m-n)

27.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應的字符相等則接著比較下一個字符,一直到兩個字符串中對應字符不等,或者有一個為“\\0”,此對應字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為“\\0”,且*s和*t相同,第一處應填“*t”或其他等價形式。根據(jù)題意可知第二處應填“*s-*t”或其等價形式。

28.fopenfopen解析:C語言中的文件分為:ASCII文件與二進制文件。文件在使用前打開,使用后要關閉。打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen(“文件名”,“使用文件方式”);關閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp);其中fp為文件指針。

29.2.0。2.0。解析:x和y為整數(shù),運算符“/”在這里是整型除,整除后值為0。

30.main()pstr*(pstr+j)

31.對象對象解析:將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。

32.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

33.dat""w"或"bi.dat""w+"或"bi.dat""r+"dat','w'或'bi.dat','w+'或'bi.dat','r+'解析:本題的考點是fopen()函數(shù),此函數(shù)的格式是fopen(文件名,使用文件方式),題目的要求是將從鍵盤讀入的文本寫到文件中,因此選擇的打開方式應該是'w'(只寫)?;蛘呤亲x寫“r+”或“w+”。

34.顛倒一個字符串中的字符,就是首尾對應的元素兩兩交換。簡單地可用兩個游標變量i和j,i是前端元素的下標,j是后端元素的下標,交換以這兩個變量值為下標的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j字符串末元素的下標是它的長度減1,所以在第二個空框處應填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應在程序的變量定義部分中—起定義,所以在第—個空\r\n\r\n

35.6060解析:本題定義了一個3行2列的二維數(shù)組a,并定義了一個指向兩個元素的一維數(shù)組指針p,讓p指向二維數(shù)組a的首行。*(*(p+2)+1)是引用a[2][1],其值是60。

36.存儲結構存儲結構解析:數(shù)據(jù)結構包括3個方面,即數(shù)據(jù)的邏輯結構、數(shù)據(jù)的存儲結構及對數(shù)據(jù)的操作運算。

37.intz;sub(t1t2);

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

39.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個元素輸出到文件fp中兩次,共10個字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個字節(jié)的數(shù)據(jù)到數(shù)組a中,此時數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結果為“1,2,3,0,0,1,2,3,0,0”。

40.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指的存儲空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指的存儲空間中,然后輸出字符數(shù)組t。

41.B解析:注意C語言中宏定義是先替換再參與運算,因此:z=2*(N+(N+1)*3+2)=2*(3+(3+1)*3+2)=34。

42.C解析:要計算一個復雜的表達式時,首先要弄明白表達式中所有運算符的優(yōu)先級與結合性,本題中所涉及的運算符中,->的優(yōu)先級最高,*和++的優(yōu)先級相同,但其結合性為從右至左。所以選項A等價于*pt->y)也就是pt所指向的結構體的成員指針變量y所指向的內(nèi)容。從前面的程序段不難看出,pt指向結構體數(shù)組c的首地址,也就是指向它的第1個元素,在它的第1個元素中,指針變量y又被初始化為指向控型數(shù)組a的首地址,即指向數(shù)組a的第1個元素。故選項A中的表達式的值為a[0],也就是1。選項B中表達式的值就是c[0].x,即10。根據(jù)優(yōu)先級和結合性,選項C中的表達式等價于++(pt->x),由于是前綴++,所以整個表達式的值為pt->x的值加1,故為11。而選項D中,++是后綴形式,所以(pt++)的值還是pt的原值,即等于pt->x的值10。故應該選擇C。

43.D解析:關系代數(shù)運算的基本運算符有4類:集合運算符、專門的關系運算符、算術運算符和邏輯運算符。并、差、笛卡兒積、投影、選擇是5種基本的運算,其他運算可以通過基本的運算導出。

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

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

46.A

47.C解析:在循環(huán)過程中,i的值一直沒有被改變,所以這是一個死循環(huán)。

48.C解析:內(nèi)部靜態(tài)變量是始終存在的,當函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時,以前調(diào)用時的數(shù)值仍然保留著。Fun(a,5)的值是15,再次調(diào)用后sum=15,所以Fun(b,4)=45,s=45+15=60。

49.B解析:雙目運算中兩邊運算量類型轉換規(guī)律:

運算數(shù)1運算數(shù)2轉換結果類型

短整型長整型短整型->長整型

整型長整型整型->長整型

字符型整型字符型->整型

有符號整型無符號整型有符號整型->無符號整型

整型浮點型整型->浮點型

在a/b的時候,a、b的類型不一致,根據(jù)類型轉換規(guī)則,把整型轉換成double類型,之后的加、減類似。轉化規(guī)則為char,short->int->unsigned->long->double←float。

50.A

51.B解析:采用結構化程序設計方法編寫程序,可使程序結構良好、易讀、易理解、易維護,它包括3種基本控制結構,分別是順序結構、選擇結構和重復結構(又稱循環(huán)結構)。注意:控制程序結構的方法和作用。

52.A解析:for語句中的條件表達式?jīng)Q定了循環(huán)體只執(zhí)行一次。因此s=0*10+1,于是輸出結果為1。

53.C解析:選項A和B兩個表達式都越界了;選項D中,*t[2]是目標變量,即—個整型值,而不是地址值。

54.D解析:C語言規(guī)定,所有字符常量都可以化為整型常量來處理,因而字符常量也可以參與算術運算。注:字符常量參與算術運算時,其實是使用其對應的ASCII碼值進行計算。本題中,'a'對應的ASCII碼值是97。題中雖然沒有給'6'和'0'的AS

溫馨提示

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

評論

0/150

提交評論