2021-2022年遼寧省營口市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第1頁
2021-2022年遼寧省營口市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第2頁
2021-2022年遼寧省營口市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第3頁
2021-2022年遼寧省營口市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第4頁
2021-2022年遼寧省營口市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年遼寧省營口市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.C語言中標(biāo)準(zhǔn)庫函數(shù)fputs(str,fp)的功能是()。

A.從str指向的文件中讀一個(gè)字符串存入fp指向的內(nèi)存

B.把str所指的字符串輸出到fp所指的文件中

C.從fp指向的文件中讀一個(gè)字符串存入str指向的內(nèi)存

D.把fp指向的內(nèi)存中的一個(gè)字符串輸出到str指向的文件

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

A.15

B.14

C.不確定

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

3.下列能正確進(jìn)行字符串賦值的是()。

A.chars[5]={"ABCDE"};

B.chars[5]={A,B,C,D,E};

C.char*S;S="ABCDE";

D.char*s;printf("%《",s);

4.有說明語句“inta,b;”,如果輸入111222333,使得a的值為111,b的值為333,則以下正確的語句是()。A.scanf("%3d%*3d%3d",&a,&b);

B.scanf("%*3d%3d%3d",&a,&b);

C.scanf("%3d%3d%*3d",&a,&b);

D.scanf("%3d%*2d%3d",&a,&b);

5.設(shè)有定義:“char*c;”,以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的()。

A.charstr[]="string";c=str;

B.scanf(%s,c):

C.c=getchar();

D.*c="strin9";

6.以下函數(shù)的時(shí)間復(fù)雜度和空間復(fù)雜度為()A.T(n)=O(2^n),S(n)=O(n)

B.T(n)=O(1),S(n)=O(1)

C.T(n)=O(2^n),S(n)=O(1)

D.T(n)=O(n),S(n)=O(n)

7.有以下程序:

A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,

8.下列關(guān)于效率的說法不正確的是()

A.效率是一個(gè)性能要求,其目標(biāo)應(yīng)該在需求分析時(shí)給出

B.提高程序效率的根本途徑在于選擇良好的設(shè)計(jì)方法,數(shù)據(jù)結(jié)構(gòu)與算法

C.效率主要指處理機(jī)時(shí)間和存儲(chǔ)器容量兩個(gè)方面

D.程序的效率與程序的簡單性無關(guān)

9.寫出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波蘭表達(dá)式()。

A.a(b-c*d)*+e-(f/g(h+i*j-k)*)

B.a(b-(cd*))*+e-(fg/(h+ij*-k)*)

C.a(bcd*-)*+e-(fg/hij*+k-*)

D.abcd*-*e+fg/hij*+k-*-

10.算法的時(shí)間復(fù)雜度是指A.算法的執(zhí)行時(shí)間B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令條數(shù)D.算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)

11.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()

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

12.有三個(gè)關(guān)系R,S和T如下:

其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并

13.對(duì)于循環(huán)隊(duì)列()。

A.無法判斷隊(duì)列是否為空B.無法判斷隊(duì)列是否為滿C.隊(duì)列不可能滿D.以上說法都不對(duì)

14.以下選項(xiàng)中,合法的一組C語言數(shù)值常量是()。

A.028.5e-3-0xf

B.12.OXa234.5eO

C..1774c1.5Oabc

D.0x8A10,0003.e5

15.C語言中,要求參加運(yùn)算的數(shù)必須是整數(shù)的運(yùn)算符是()。

A./B.!C.%D.==

16.數(shù)組A[5][6]的每個(gè)元素占五個(gè)字節(jié),將其按列優(yōu)先次序存儲(chǔ)在起始地址為1000的內(nèi)存單元中,下標(biāo)從1開始,則元素A[5][5]的地址是()。

A.1175B.1180C.1205D.1120

17.有以下程序:#include<stdio.h>main(){FILE*f;f=fopen(“fllea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有內(nèi)容為hello,則運(yùn)行以上程序后,文件filea.txt中的內(nèi)容為()。

A.abcloB.abcC.helloabcD.abchello

18.有以下程序:#include<stdio,h>#include<string,h>struetSTU{intnam;floatTotalSeore;};voidf(strnctSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);}程序運(yùn)行后的輸出結(jié)果是()。

A.20045537B.20044550C.20042580D.20041703

19.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為()。

A.CB.BasicC.DDLD.DML

20.下列關(guān)于棧的描述中錯(cuò)誤的是()。

A.棧是先進(jìn)先出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對(duì)棧的插入刪除操作中,不需要改變棧底指針

二、2.填空題(20題)21.用樹型結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為【】。

22.在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有______。

23.執(zhí)行下列語句段后,x的值是______。

int*p,x;

x=100;

p=&x;

x=*p+50;

24.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。

25.以下和程序中,主函數(shù)調(diào)用了lineMax函數(shù),實(shí)現(xiàn)在N行M列的二維數(shù)組中,找出每一行上的最大值,請(qǐng)?zhí)羁铡?/p>

#defineN3

#defineM4

voidlineMax(intx[N][M])

{inti,j,p;

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

{p=0;

for(j=1;j<M;j++)

if(x[i][p]<x[i][j]【】;

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

}

{

main()

{intx[N][M]={1,5,4,2,6,4,3,8,2,3,1};

【】;

}

26.下面程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{staticchara[]="language",b[]="program";

char*ptrl=a,*ptr2=b;

intk;

for(k=0;k<7;k++)

if(*(ptrl+k)==*(ptr2+k))

printf("%c",*(ptrl+k));}

27.一棵二叉樹中共有80個(gè)葉子結(jié)點(diǎn)與10個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為【】。

28.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

}

29.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為______。

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

31.以下程序的輸出結(jié)果是【】。

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\N,*p,*q))

}

32.若x=3,y=2,z=1,表達(dá)式z-=x<y?x++:++y的值為______。

33.面向?qū)ο蟮哪P椭?,最基本的概念是?duì)象和______。

34.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對(duì)數(shù)據(jù)的操作運(yùn)算。

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

36.實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少和算法的工作量大小分別稱為算法的【】。

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

38.以下程序的作用是:從名為filea.dat的文本文件中逐個(gè)讀入字符并顯示在屏幕上。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(______);

ch=fSetc(fp);

while(!feof(fp)){putchar(ch);ch=fSetc(fp);}

putchar('\n');fclose(fp);

}

39.以下程序的運(yùn)行結(jié)果是【】。

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

STUa={"Zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%1d%s\n",d.sno,p->name);

}

40.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara='A';

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

三、1.選擇題(20題)41.有以下程序段:main{){inta=5,*b,**C;c=&b;b=&a;……}程序在執(zhí)行了“c=&b;b=&a;”語句后,表達(dá)式“**c”的值是

A.變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址

42.下列字符串不屬于標(biāo)識(shí)符的是()

A.sumB.averageC.day_nightD.M,D.JOHN

43.在一個(gè)C程序中

A.main函數(shù)必須出現(xiàn)在所有函數(shù)之前

B.main函數(shù)可以在任何地方出現(xiàn)

C.main函數(shù)必須出現(xiàn)在所有函數(shù)之后

D.main函數(shù)必須出現(xiàn)在固定位置

44.有以下程序:main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+argv[i]-'0';printf("%d\n",n);}編繹連接后生成可執(zhí)行文件tt.exe.若運(yùn)行時(shí)輸入以下命令行tt12345678程序運(yùn)行后的輸出結(jié)果是()。

A.12B.12345C.1.23457e+007D.136

45.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)

46.數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()

A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭

47.設(shè)x,y均是int類型變量,則以下不正確的函數(shù)調(diào)用為______。

A.getchar();

B.putchar('\108');

C.scanf("%d%*2d%d",&x,&y);

D.putchar('\'');

48.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的輸出結(jié)果是()。

A.2,1B.2,2C.2,5D.5,2

49.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[2][3]={{1,2,3},{4,5,6}),(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}

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

50.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。

A.控制程序的執(zhí)行順序B.模塊之間的調(diào)用關(guān)系C.數(shù)據(jù)的流向D.程序的組成成分

51.下列程序的輸出結(jié)果是()。main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}

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

52.軟件調(diào)試的目的是()

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

53.算法的時(shí)間復(fù)雜度是指______。

A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)

54.在下列方法中,不用查找表中數(shù)據(jù)元素的關(guān)系進(jìn)行查找的方法是______。

A.有序表查找B.二叉排序樹查找C.平衡二叉樹D.散列查找

55.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

56.若有如下程序;main(){intm=-i;printf("%d,%u,%o,%X",m,m,m,m);}則程序運(yùn)行后的輸出結(jié)果是()。

A.-1,65535,177777,ffff

B.-1,-1,177777,fffe

C.-1,1,177777,ffff

D.-1,65535,177776,fffe

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

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

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

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

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

58.有以下程序main(){inta=15,b=21,m=0;switch(a%3){casc0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(“%d\n”,m);}程序運(yùn)行后的輸出結(jié)果是

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

59.現(xiàn)有格式化輸入語句,scanf("x=%d],sum]y=%d,line]z=%dL",&x,&y,&z);,已知在輸入數(shù)據(jù)后,x,y,z的值分別是12,34,45,則下列選項(xiàng)中是正確的輸入格式的是

[注]:"]"表示空格,<Enter>表示回車

A.12,34,45<Enter>

B.x=12,y=34,z=45<Enter>

C.x=12C,sumy=34,z=45<Enter>

D.x=12],sum]y=34,line]z=45<Enter>

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

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

四、選擇題(20題)61.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

62.

63.以下程序段中的變量已正確定義:

程序段的輸出結(jié)果是()。

A.**B.****C.*D.********

64.下列敘述中錯(cuò)誤的是()。

A.一個(gè)C語言程序只能實(shí)現(xiàn)一種算法

B.c程序可以由多個(gè)程序文件組成

C.C程序可以由一個(gè)或多個(gè)函數(shù)組成

D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在

65.

66.有以下程序:

}、、、程序運(yùn)行后的輸出結(jié)果是()。

A.一263B.2C.0D.一26

67.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

68.有以下程序

prt(int*m,intn)

{

inti;

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

m[i]++;

}

main()

{

inta[]={1,2,3,4,5},i;

prt(a,5);

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

printf("%d,",a[i]);

}

程序運(yùn)行后的輸出結(jié)果是A.A.1,2,3,4,5,

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

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

D.2,3,4,5,1,

69.有以下程序:

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

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

70.以下程序的輸出結(jié)果是()。

main

{intx=0.5;charz='a';

printf("%d\n",(x&1)&&(z<'2'));}A.A.0B.1C.2D.3

71.有以下程序:

#include<stdio.h>

main()

{inta=12,C;

c=(a<<2)<<1;

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

}

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

A.3B.50C.2D.96

72.

73.下面程序段的輸出為()。

#include"stdio.h"

main

{

printf("%d\n",12<<2);

}

A.0B.47C.48D.24

74.

75.下列敘述中錯(cuò)誤的是()。

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

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件

D.線性表可以是空表

76.有以下程序

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

A.3040B.2050C.3344D.0304

77.在一個(gè)C程序中

A.main函數(shù)必須出現(xiàn)在所有的函數(shù)之前B.main函數(shù)可以在任何地方出現(xiàn)

C.main函數(shù)必須出現(xiàn)在所有的函數(shù)之后D.main函數(shù)必須出現(xiàn)在固定位置

78.C語言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()。

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

79.有以下定義和語句:

structworkers

{intnum;charname[20];charC;

struct

{intday;intmonth;intyear;)S;

};

structworkersw,*pw;

pw=&w;

能給w中year成員賦1980的語句是()。

A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980

D.w.S.year=1980;

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是計(jì)算正整數(shù)m各位上數(shù)字的平方和。例如,輸入498,則輸出應(yīng)該是161。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫一個(gè)函數(shù),其功能是從傳入的num個(gè)字符串中找出最長的一個(gè)字符串,并通過形參指針max傳回該字符串的地址(用****作為結(jié)束輸入的標(biāo)識(shí))。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:1#include<conio.h>2#include<stdio.h>3#include<string.h>4#include<stdlib.h>5char*fun(char(*a)[81],intnum,char*max)6{78}9voidmain()10{11FILE*wf;12charss[10][81],*ps=NULL;13chars[3][81]={"abed","deg","diegns"},*p=NULL;14inti=0,n;15system("CLS");16printf("輸入若干個(gè)字符串:");17gets(ss[i]);18puts(ss[i]);19while(!stremp(ss[i],"****")==0)/*用4個(gè)星號(hào)作為結(jié)束輸入的標(biāo)志*/20{21i++;22gets(ss[i]);24puts(ss[i]);25}26n=i;27ps=fun(ss,n,ps);28printf("\nmax=%s\n",ps);29/********************/30wf=fopen("out.dat","w");31p=fun(s,3,p);32fprintf(wf,"%s",p);33fclose(wf);34/********************/

參考答案

1.B函數(shù)fputs(str,fp)的功能是把str所指的字符串輸出到fp所指的文件中。故本題答案為B選項(xiàng)。

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

3.C選項(xiàng)A、B的空間不夠;字符串存儲(chǔ)要有結(jié)束符\0,且要占用一個(gè)空間,printf用來輸出字符,不能輸入字符串。

4.A根據(jù)題意,要使a的值為111,b的值為333,必須在讀入時(shí)指定a的讀入寬度為3,b的讀入寬度為3,且a和b的控制字符之間必須額外增加%*控制符,用于跳過中間的3位輸入數(shù)字,選項(xiàng)A正確。本題答案為A選項(xiàng)。

5.A選項(xiàng)B是從鍵盤上輸入字符串,選項(xiàng)C是接收字符,選項(xiàng)D不正確。

6.A

7.C即輸出x[0][2]x[l][1]x[2][0]分別為357。

8.D

9.D

10.DD?!窘馕觥克惴ǖ臅r(shí)間復(fù)雜度是指算法需要消耗的時(shí)間資源。一般來說,計(jì)算機(jī)算法是問題規(guī)模。09函數(shù)fin),算法的時(shí)間復(fù)雜度也因此記做T(n)=O(f(n))。因此,問題的規(guī)模n越大,算法執(zhí)行的時(shí)間的增長率與f(n)的增長率正相關(guān),稱作漸進(jìn)時(shí)間復(fù)雜度(AsymptoticTimeComplexity)。簡單來說就是算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)。

11.B解析:在C語言的數(shù)組元素的引用方法,我們?cè)谇懊嬉呀?jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對(duì)于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對(duì)此地址使用“間接訪問運(yùn)算符”:*(p+1)就代表存儲(chǔ)單元a[1],注意:一對(duì)圓括號(hào)不可少。同樣,對(duì)于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對(duì)于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時(shí),若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。

12.D

13.D

14.BC語言中,八進(jìn)制數(shù)其開頭必須是數(shù)字“0”,其數(shù)字包括0~7,因此選項(xiàng)A錯(cuò)誤。浮點(diǎn)數(shù)據(jù)的指數(shù)形式表示中,字母e或E之后的指數(shù)必須為整數(shù),所以選項(xiàng)C錯(cuò)誤。選項(xiàng)D中,整型數(shù)據(jù)l0,000的表示形式是錯(cuò)誤的。

15.C

16.D

17.B執(zhí)行“fprintf(f,“abc”);”后,f文件原有內(nèi)容被“abc”覆蓋。故本題答案為B選項(xiàng)。

18.D解析:函數(shù)f中定義了結(jié)構(gòu)體類型的變量P作為形參,在main函數(shù)中,將結(jié)構(gòu)體變量s[0]中的值傳給了形參變量P,在函數(shù)f中,雖然改變了p中的內(nèi)容,但其改變對(duì)main函數(shù)中s[0]的值不產(chǎn)生影響,所以main函數(shù)中輸出s[0]的數(shù)據(jù)仍然是main函數(shù)中初始化時(shí)的數(shù)據(jù)。

19.C解析:選項(xiàng)A)、選項(xiàng)B)顯然不合題意。數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL)負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML)負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作。

20.B

\n棧是線性表的一種,它的特點(diǎn)是先進(jìn)后出,并且只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,因此具有記憶作用,??梢圆捎庙樞虼鎯?chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)。

\n

21.層次模型用樹型結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為層次模型,用有向圖結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型,用二維表格結(jié)構(gòu)表示實(shí)體及其聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。

22.前件前件

23.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內(nèi)容,即100,所以x=100+50=150。

24.2525解析:#NAME?

25.p=jx[i][p]lineMax(x)

26.gaga解析:用字符指針處理字符串,首先要使指針指向這個(gè)字符串,即題中的ptr1=a和ptr2=b。然后就是通過指針的移動(dòng)可以引用到字符串中的每一個(gè)字符。題中的*(ptr1+k)是使指針ptr1向后移動(dòng)k個(gè)位置,然后取出指向的字符。注意:用字符數(shù)組作為字符串和用指針指向的一個(gè)字符串之間的區(qū)別。

27.179179解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中的二叉樹有80個(gè)葉子結(jié)點(diǎn),因此,該二叉樹有80-1=79個(gè)度為2的結(jié)點(diǎn);又知本題中的二叉樹有10個(gè)度為1的結(jié)點(diǎn)。因此,本題中的二叉樹總結(jié)點(diǎn)數(shù)為:葉子結(jié)點(diǎn)數(shù)+度為1的結(jié)點(diǎn)數(shù)+度為2的結(jié)點(diǎn)數(shù)=80+10+79=179

28.k=p;k=p;解析:要找數(shù)組中最大元素的下標(biāo),首先預(yù)設(shè)數(shù)組首元素下標(biāo)為臨時(shí)最大元素的下標(biāo),從首元素開始順序向后繼元素逐一比較,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時(shí)最大元素更大時(shí),就用當(dāng)前元素的下標(biāo)更新臨時(shí)最大元素下標(biāo),直至比較了數(shù)組的全部元素后,臨時(shí)最大元素下標(biāo)就是數(shù)組中最大元素的下標(biāo)。程序中,變量k用于存儲(chǔ)臨時(shí)最大元素下標(biāo),變量p控制順序比較的循環(huán)變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時(shí)最大元素s[k]更大時(shí),用p更新k。所以在下劃線處應(yīng)填入代碼“k=p;”。

29.1616解析:滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。

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

31.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。

32.-2。-2。解析:表達(dá)式z-=x<y?x++:++y相當(dāng)于先執(zhí)行++y,再執(zhí)行z-=x<y?x:y,最后執(zhí)行x++,其中z-=x<y?x:y等價(jià)于z=z-(x<y?x:y),由于x值為3,y值為3,x<y不成立,返回y的值,z-y的值為-2,賦給z。

33.類類

34.存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個(gè)方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)及對(duì)數(shù)據(jù)的操作運(yùn)算。

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

36.空間復(fù)雜度和時(shí)間復(fù)雜度算法的復(fù)雜性是指對(duì)一個(gè)在有限步驟內(nèi)終止算法和所需存儲(chǔ)空間大小的估計(jì)。算法所需存儲(chǔ)空間大小是算法的空間復(fù)雜性,算法的計(jì)算量是算法的時(shí)間復(fù)雜性。

37.參照完整性參照完整性

38.解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。

39.2002Shangxian2002Shangxian解析:本題中首先定義一個(gè)結(jié)構(gòu)體類型STU,該結(jié)構(gòu)體由一個(gè)長度為10的字符型數(shù)組、一個(gè)long型變量和一個(gè)float型變量組成。接著在主函數(shù)中用STU定義了4個(gè)結(jié)構(gòu)體變量a、b、c、d,并且給a、b、c賦初值,然后定義了一個(gè)結(jié)構(gòu)體指針p,并讓它指向變量do將變量a的值賦給變量d,接著通過兩個(gè)if語句比較結(jié)構(gòu)體變量a、b、c的成員name大小。第一個(gè)if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量中較小的那個(gè)賦值給結(jié)構(gòu)體變量d,第二個(gè)if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量較大的那個(gè)賦給結(jié)構(gòu)體變量do比較通過函數(shù)strcmp實(shí)現(xiàn)。strcmp()函數(shù)有兩個(gè)參數(shù),分別為被比較的兩個(gè)字符串。如果第一個(gè)字符串大于第二個(gè)字符串返回值大于0,若第一個(gè)小于第二個(gè)返回值小于0,相等時(shí)返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個(gè)字符開始依次向右比較,遇到某一個(gè)字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個(gè)字符小,該字符所在的字符串就是較小的字符串。程序中第一個(gè)if語句strcmp(,)>0為真,故將b的值賦給d,第二個(gè)if語句strcmp(,)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此輸出d.sn0和p->name的值為2002Shangxian。

40.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實(shí)現(xiàn)的是在字符“A”的ASCII碼值上加上一個(gè)常數(shù),使之變成另一個(gè)ASCII碼值,從而輸出字符。

41.C解析:主函數(shù)中定義了一個(gè)整型變量a,一個(gè)整型指針變量b和一個(gè)二級(jí)指針變量c,并讓c指向指針變量b,讓指針b指向整形變量a,所以**c為變量a的值,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

42.D

43.B解析:一個(gè)完整的C語言程序有且僅有一個(gè)主函數(shù)(main()函數(shù))。程序總從main()函數(shù)的第一條語句開始執(zhí)行,到main()函數(shù)的最后一條語句結(jié)束,其他函數(shù)都是在執(zhí)行main()函數(shù)時(shí),通過函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的。C語言規(guī)定,main()函數(shù)在程序中的位置是任意的,故選項(xiàng)A、選項(xiàng)C和選項(xiàng)D均不正確。所以,B選項(xiàng)為所選。

44.D

45.A解析:C程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本的結(jié)構(gòu)組成,這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù)。

46.A解析:數(shù)據(jù)流圖包括4個(gè)方面,即加工(轉(zhuǎn)換)(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲(chǔ)文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體)。不包括選項(xiàng)中的控制流。

47.B解析:八進(jìn)制中的基本數(shù)為0~7,不可能出現(xiàn)8。

48.A解析:本題考查了continue和break語句用在循環(huán)語句中的作用。break語句的作用是結(jié)束本層循環(huán),而continue語句的作用是結(jié)束本次循環(huán)直接進(jìn)入到下次循環(huán)。

49.B解析:第1次執(zhí)行for循環(huán),p[1][0]=p[1][0]-1=3:第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4;第3次執(zhí)行for循環(huán),p[1][2]=1,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

50.C解析:數(shù)據(jù)流相當(dāng)于一條管道,并有一級(jí)數(shù)據(jù)(信息)流經(jīng)它。在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,并且可以從外部實(shí)體流向系統(tǒng)或從系統(tǒng)流向外部實(shí)體。

51.B解析:算術(shù)運(yùn)行符“/”、“%”的優(yōu)先級(jí)處于同一級(jí),并且兩者的結(jié)合性都是從左到右。所以算術(shù)表達(dá)式運(yùn)算過程為:a=25/10%9=2%9=2:當(dāng)邏輯運(yùn)算符“&&”兩邊的值都是非零時(shí),邏輯表達(dá)式的值才為真(即為1)。所以b=2&&(-1)=1。

52.Cc)【解析】在對(duì)程序進(jìn)行了成功的測(cè)試之后將進(jìn)入程序調(diào)試,程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。

53.C解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫算法程序所使用的程序設(shè)計(jì)語言、執(zhí)行算法程序時(shí)所使用的計(jì)算的工具以及程序員的水平無關(guān)。選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤,因?yàn)樗惴ㄋ帉懙某绦蜷L度往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語言或者不同的程序員所編寫出的程序其長度可能會(huì)大不相同。選項(xiàng)D錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時(shí)間復(fù)雜度。所以,本題正確答案為C。

54.D解析:線性表查找和樹型查找都是利用了數(shù)據(jù)元素之間的關(guān)系進(jìn)行查找,只有散列查找是利用關(guān)鍵詞值與存儲(chǔ)位置來進(jìn)行查找。

55.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點(diǎn);③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點(diǎn);②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點(diǎn)。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點(diǎn)。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點(diǎn),e、c、h、f是右子樹的結(jié)點(diǎn)。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點(diǎn),b右邊子樹無結(jié)點(diǎn)。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點(diǎn)。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點(diǎn)位置。所以可知后序遍歷的結(jié)果是D。

56.A解析:-1為帶符號(hào)的整型數(shù),在內(nèi)存中的存放形式為1111111111111111。按帶爺號(hào)的整型格式輸出仍為-1;按無帶符號(hào)的整數(shù)輸出為65535(將1111111111111111轉(zhuǎn)換為十進(jìn)制數(shù));按八進(jìn)制數(shù)輸出為177777(將1111111111111111轉(zhuǎn)換為八進(jìn)制數(shù),方法為由低位到高位,每三位一組,用一個(gè)八進(jìn)制數(shù)代替);按八進(jìn)制數(shù)輸出為ffff(將1111111111111111轉(zhuǎn)換為十六進(jìn)制數(shù),方法為由低位到高位,每四位一組,用一個(gè)十六進(jìn)制數(shù)代替)。

57.A解析:本題中的while((*p2=*p1)!='\\0')語句首先進(jìn)行賦值*p2=*p1,即把p1所指存儲(chǔ)單元的字符逐一復(fù)制到p2所指存儲(chǔ)單元中,然后判斷p1所指單元內(nèi)容是否為'\\0',若判斷條件成立,則指針p1和p2依次指向下一個(gè)字符,繼續(xù)執(zhí)行循環(huán)體語句,否則循環(huán)終止。

58.A解析:在switch語句中break語句的作用是退出分支語句,若沒有break語句則一直向下執(zhí)行。本題中首先計(jì)算switch后面括號(hào)里的表達(dá)式a%3,即15%3為0;執(zhí)行case0;后面的語句m++;m自加1,即m為1;遇到break語句;然后跳出switch語句,所以最后輸出的m的值為1。

59.D解析:若在scanf的格式化控制串中插入了其他字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置原樣輸入這些字符。格式化輸入函數(shù)必須嚴(yán)格按照雙引號(hào)里面的格式進(jìn)行輸入。在格式化輸出函數(shù)中,格式控制串中除了合法的格式說明外,可以包含任意的合法字符。

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

61.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。

62.B

63.C由于內(nèi)層循環(huán)for(k=1;k<3;k++)后面直接跟了空語句“;”所以在循環(huán)內(nèi)部什么操作也不做,跳出外層循環(huán)后執(zhí)行打印語句,所以打印了一個(gè)“t”,選擇C。

64.A答案A

解析:一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數(shù),所以一個(gè)C語言程序可以實(shí)現(xiàn)多種算法。

65.C

66.Disspaee(c)檢查參數(shù)c是否為空格字符。若參數(shù)e為空格字符,則返回TRUE,否則返回NULL(0)。Is—di#t(c)函數(shù)檢查參數(shù)c是否為阿拉伯?dāng)?shù)字0到9。返回值若為阿拉伯?dāng)?shù)字,則返回TRUE,否則返回NULL(O)。fLm()函數(shù)的第一個(gè)for循環(huán)判斷字符串是否為負(fù)號(hào)。第二個(gè)for循環(huán)獲取符號(hào)后面的數(shù)字字符,并將它們轉(zhuǎn)化為整數(shù)。遇到了非數(shù)字的字符跳出,最后返回?cái)?shù)組的結(jié)果。因此,可知首先獲取負(fù)號(hào),緊接著獲取數(shù)值26

溫馨提示

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

評(píng)論

0/150

提交評(píng)論