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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.若要求從鍵盤讀入含有空格字符的字符串,應使用函數(shù)()。

A.getcharB.getcC.getsD.scanf

2.下面關于串的的敘述中,哪一個是不正確的()。

A.串是字符的有限序列

B.空串是由空格構成的串

C.模式匹配是串的一種重要運算

D.串既可以采用順序存儲,也可以采用鏈式存儲

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

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

4.采用開放定址法處理散列表的沖突時,其平均查找長度()

A.高于二分查找B.高于鏈接法處理沖突C.低于二分查找D.低于鏈接法處理沖突

5.a、b、c、d變量均為float類型且已正確賦值,下列選項中與數(shù)學式子“2ab/(5cd)”等價的C語言表達式是()。

A.2/5*a/c*d/b

B.a/(5*c*d)*(2*b)

C.2*a*b/5*c*d

D.2/5*a*d*(1/c*d)

6.

7.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

8.

9.有下列程序:程序執(zhí)行后的輸出結果是()。A.abbcdefghijkI23456789964

B.123456789964abbcdefghijk

C.123445667899abbcdefghijk

D.abbcdefghijk123445667899

10.

11.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運行后的輸出結果是

A.12B.123C.234D.345

12.有以下程序:#include<string.h>inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t++=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運行后的輸出結果是()。

A.24B.28C.32D.36

13.

14.設串s1='ABCDEFG',s2='PQRST',函數(shù)StrCat(x,y)返回x和y串的連接串,StrSub(s,i,j)返回串s的從序號i的字符開始的j個字符組成的子串,StrLen(s)返回串s長度,則StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的結果串()。

A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF

15.樹的度為3,且有9個度為3的節(jié)點,5個度為1的節(jié)點,但沒有度為2的節(jié)點。則該樹中的葉子節(jié)點數(shù)為()。

A.18B.33C.19D.32

16.設有二維數(shù)組A7×8,每個數(shù)據(jù)元素占8個字節(jié)存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,按列優(yōu)先存放時,元素A5,4的地址為()。

A.1256B.1264C.1272D.1280

17.若有定義“intb[8],*p=b;”,則p+6表示()。

A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6

18.下列敘述中正確的是()。

A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的共享問題

C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)

D.以上三種說法都不對

19.指針可以用來表示數(shù)組元素,若已知語句:inta[3][7];則下列表示中正確的是()。

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

20.一個有7個頂點的完全三部圖,至少有存在幾條邊()

A.10B.11C.15D.16

二、2.填空題(20題)21.以下程序輸出的最后一個值是【】。

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

for(i=1;i<5;i++)printf("%d\n",ff(i));}

22.有以下程序:

main()

{charstr[]="xyz",*ps=str;

while(*ps)ps++;

for(ps--;ps-str>=0;ps--)puts(ps);

}

執(zhí)行后的輸出結果是【】。

23.若有如下結構體說明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結構體類型。

【】t[20]

24.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

25.以下程序的運行結果為【】。

main()

{inti,j,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},b[4][3];

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

for(j=0;j<4;j++)

b[j][i]=a[i][j];

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

{for(j=0;j<3;j++)

printf("%-3d",b[i][j]);

printf("\n");

}

}

26.數(shù)據(jù)結構分為邏輯結構和存儲結構,循環(huán)隊列屬于______結構。

27.以下程序運行后的輸出結果是______。

main()

{chara[]="Language",b[]="Programe";

char*p1,*p2;

intk;

p1=a;p2=b;

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

if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));

}

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

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.有如下圖所示的雙鏈表結構,請根據(jù)圖示完成結構體的定義:

structaa

{intdata;

【】}node;

30.現(xiàn)有兩個C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

當編譯連接通過后,運行程序T18時,輸入Thank!,則輸出結果是【】。

31.有以下程序

main()

{intt=1,i=5;

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

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

}

執(zhí)行后輸出結果是______。

32.有兩個C程序文件T18.c和myfun.c同在VC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();prinff("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!:'\n')s[n++]=c;

n--;

while(n>=0)prinff("%c",s[n--]);

}

當編譯連接通過后,運行程序T18時,輸入"Thank!”,則輸出結果是【】。

33.【】是數(shù)據(jù)庫設計的核心。

34.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

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

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

main()

{inti=6,j=8,k;

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

}

36.設Y是int型變量,請寫出判斷Y為奇數(shù)的關系表達式【】。

37.關系可以有3種類型,即基本關系(又稱基本表或基表)、查詢表和【】。

38.數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,所以,基于邏輯結構的應用程序不必修改,稱為【】。

39.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

40.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:abcl23edf456gh,執(zhí)行程序后輸出:123456。請?zhí)羁铡?/p>

#include<stdioo.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

三、1.選擇題(20題)41.設有以下定義的語句,則*(*(p+2)+1)的值為______。inta[3][2]={10,20,30,40,50,60},(*p)[2];p=a;

A.10B.30C.60D.40

42.有以下程序int*f(znt*x,int*y){if(*x<*y)returnX;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d.%d\n",*p,*q,*r);}執(zhí)行后輸出結果是

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

43.數(shù)據(jù)的存儲結構是指()。

A.數(shù)據(jù)所占的存儲空間

B.數(shù)據(jù)的邏輯結構在計算機的存放形式

C.數(shù)據(jù)在計算機中的順序存儲方式

D.存儲在計算機外存中的數(shù)據(jù)

44.下列敘述中正確的是()。

A.在模塊化程序設計中,一個模塊應該盡量多的包括與其他模塊聯(lián)系的信息

B.在自頂向下、逐步細化的設計過程中,首先應設計解決問題的第一個細節(jié)

C.在模塊化程序設計中,一個模塊內(nèi)部的控制結構也要符合結構化原則

D.在程序設計過程中,不能同時采用結構化程序設計方法與模塊化程序設計方法

45.有以下程序:main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}執(zhí)行后輸出結果是______。

A.2B.3C.4D.編譯時有錯,無結果

46.下列程序執(zhí)行后的輸出結果是()main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}

A.3B.6C.9D.隨機數(shù)

47.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)3者之間的關系是二______。

A.數(shù)據(jù)庫包含數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)

B.數(shù)據(jù)庫系統(tǒng)包含數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)

C.數(shù)據(jù)庫管理系統(tǒng)包含數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)

D.以上都不正確

48.在C程序中,可把整型數(shù)以二進制形式存放到文件中的函數(shù)是()。

A.fprintf函數(shù)B.fread函數(shù)C.fwrite函數(shù)D.fputc函數(shù)

49.下列程序段中,不能正確賦值的是()。

A.char*p,ch;p=&ch;scanf("%c",&p);

B.char*p;p=(char*)malloc(1);scabf("%c",p);

C.char*p;*p=getchar();

D.char*p,ch;p=&ch;*p=getchar();

50.軟件需求分析階段的工作可以分為4個方面:需求獲取、需求分析、編寫需求分析說明書和

A.階段性報告B.需求評審C.總結D.都不正確

51.設整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。

A.10B.11C.12D.語法錯誤

52.以下定義語句中正確的是______。

A.chara='A'b='B';

B.floata=b=19.0;

C.inta=10,*b=&a;

D.float*a,b=&a;

53.有以下程序

main()

{inti,s=0,t[]={l,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}

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

A.45B.20C.25D.36

54.以下程序的輸出結果是______。main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"),k;for(k=1;k<3;k++)printf("%s\n",w[k]);}

A.ABCDFGHKLMB.ABCDEFGIJC.EFGJKOD.EFGHUKL

55.以下數(shù)組定義中不正確的是_______。

A.inta[2][3];

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

C.intc[100][100={0};

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

56.數(shù)據(jù)庫設計包括兩個方面的設計內(nèi)容,它們是()

A.概念設計和邏輯設計B.模式設計和內(nèi)模式設計C.內(nèi)模式設計和物理設計D.結構特性設計和行為特性設計

57.在printf的格式字符中,e格式字符的作用是()。

A.以十六進制無符號形式輸出整數(shù)

B.以帶符號的十進制形式輸出整數(shù)

C.以指數(shù)形式輸出實數(shù)

D.以字符形式輸出,且只輸出一個字符

58.下列說法錯誤的是()。

A.下列結構體定義時,占據(jù)了5個字節(jié)的空間structstudent“ntnum;intage;charsex;}

B.結構體的成員名可以與程序中的變量名相同

C.對結構體中的成員可以單獨使用,它的作用相當于普通變量

D.結構體可以嵌套定義

59.下面程序main(){intx=32;printf("%d\n",x=x<<1);}的輸出是______。

A.100B.160C.120D.64

60.下列程序段的運行結果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;printf("%d\n",*(p+3));}

A.67B.0C.字符'C'的地址D.字符'C'

四、選擇題(20題)61.以下敘述中不正確的是

A.預處理命令都必須以#號開始

B.在程序中凡是以#號開始的語句行都是預處理命令行

C.宏替換不占用運行時間,只占編譯時間

D.以下定義是正確的:#definePI3.1415926;

62.

63.(72)n個頂點的強連通圖的邊數(shù)至少有______。

A.n-1

B.n(n-1)

C.n

D.n+1

64.

65.有以下程序:

#include<stdio.h>

main()

{intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;

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

for(j=1;j<=i;j++)t+=b[i][b[j][i]];

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

}

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

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

66.以下程序的輸出結果是______。main(){charst[20]="hello'、0\t\\";printf("%d%d\n",strlen(st),sizeof(st));}

A.99B.520C.1320D.2020

67.(18)下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是______。

A.數(shù)據(jù)結構

B.數(shù)據(jù)操作

C.數(shù)據(jù)查詢

D.數(shù)據(jù)約束

68.以下敘述中不正確的是

A.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)

B.C語言中對二進制文件的訪問速度比文本文件快

C.C語言中,隨機讀寫方式不適用于文本文件

D.C語言中,順序讀寫方式不適用于二進制文件

69.設有定義語句int(*f)(int);,則以下敘述正確的是()。

A.f是基類型為int的指針變量

B.f是指向函數(shù)的指針變量,該函數(shù)具有一個int類型的形參

C.f是指向int類型一維數(shù)組的指針變量

D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址

70.下列說法不正確的是()。

A.調(diào)用函數(shù)時,實參可以是表達式

B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元

C.調(diào)用函數(shù)時,將實參的值復制給形參,使實參變量和形參變量在數(shù)值上相等

D.調(diào)用函數(shù)時,實參與形參的類型必須一致

71.

72.下列SQL語句中,用于修改表結構的命令式是A.A.Alter

B.Create

C.Update

D.Insert

73.

74.成功的測試是指A.A.運行測試實例后未發(fā)現(xiàn)錯誤

B.發(fā)現(xiàn)程序的錯誤

C.證明程序正確

D.軟件產(chǎn)生

75.

有以下結構體說明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結點b連接到結點a之后的語句是()。

structnode

{chardata;

structnode*next:

}a,b,*p=&a,*q=&b;

A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;

76.

77.

78.

79.設有定義:

則a和b的值分別是()。

A.87和6.0B.876和543.0C.87和543.0D.76和543.0

80.有以下程序

#include<stdio.h>

voidfun(char**p)

{p=p+2;

printf("%s\n",*p);

}

main()

{char*a[]={"Morning","Afternoon","Evening","Night"};

fun(a);

}

程序的運行結果是

A.rning

B.a(chǎn)fternoon

C.ternoon

D.Evening

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。

例如,輸入opdye,則應輸出deopy。

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

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

試題程序:

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charc;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j++)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=c;

}

}

voidmain

{

charstr[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

printf("\n\nBeforesorting:\n%s",str);

proc(str);

printf("\nAftersortingdecendingly:\n

%s",str);

}

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),用來求出數(shù)組中值最大的元素在數(shù)組中的下標并將其存放在k所指向的存儲單元中。例如,輸入如下整數(shù):876675896101301401980431451777則輸出結果為6,980。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.C當輸入字符串時,函數(shù)scanf用“空格”間隔不同的字符串,scanf函數(shù)不能輸入空格。getchar函數(shù)用于輸入字符,其調(diào)用形式為ch=getchar(),getehar函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶按<Enter>鍵時,讀入才開始執(zhí)行。gets函數(shù)的調(diào)用形式為getS(Str_adr),其中“str_adr”是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc函數(shù)的調(diào)用形式為ch=getc(Pf),其中“pf”是文件指針,函數(shù)的功能是從“pf”指定的文件中讀入一個字符,并把它作為函數(shù)值返回。故本題答案為C選項。

2.B

3.D

4.B

5.B解析:選項A和選項D中首先計算2/5,因為兩個計算分量都是整型,所以結果為2,與實際運算不符;選項B中因為乘除法滿足交換律,所以2*b放前面和放后面都是一樣的,所以滿足題目要求;選項C中的表達式等價于2abcd/5,所以不滿足題目要求。故應該選擇B。

6.C

7.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。

8.A

9.B程序定義數(shù)組a和b,其中a使用小寫字母和數(shù)字構成的字符串完成初始化。第1個for循環(huán)將數(shù)組a中所有的非小寫字母字符(數(shù)字字符)自左向右存放到b數(shù)組中;第2個for循環(huán)將數(shù)組a中所有的非數(shù)字字符(小寫字母)自左向右存放到b的后續(xù)單元中,在所有字符后添加空字符,輸出b,此時b的值為:123456789964abbcdefghijk。本題答案為B選項。

10.B

11.D解析:本題考查的是二維數(shù)組元素在內(nèi)存中的排列形式。雖然二維數(shù)組成多維數(shù)組從結構上來看不是線性的,但是在C語言中,這些數(shù)組元素在內(nèi)存中的排列是連續(xù)線性存放的。它們的排列規(guī)則是:第一維下標變化最慢,最右邊的下標變化最快.例如本題中定義的二維數(shù)組a[3][3]中9個元素在內(nèi)存中的排列順序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函數(shù)中,首先定義了二維數(shù)組a[3][3],然后定義了一個指針p指向數(shù)組a的第1個元素a[0][0]。在第一個for循環(huán)中,依數(shù)組a在內(nèi)存中的排列順序為其元素賦從0~8九個值,然后用第二個for循環(huán)依次輸出a[1][0],a[1][1],a[1][2]三個元素的值。所以,4個選項中選項D符合題意。

12.B解析:本題考查的是外部變量的應用。因為程序的初始inta=4;語句定義了外部變量a,在以后的執(zhí)行過程中,當i=0時,調(diào)用f(0)函數(shù),執(zhí)行的語句是else{inta=7;t+=a++;},此處程序中又定義了變量a,所以原來定義的外部變量在此不起作用,得到t=7,返回值語句returnt+a++;處,外部變量a起作用,返回值為7+5=12:當i=1時,調(diào)用f(1)函數(shù),執(zhí)行的是語句else{inta=6:t+=a++;},此處程序中又定義了變量a,所以原來定義的外部變量在此不起作用,得到t=6,返回值語句

13.D

14.D

15.C設葉子結點數(shù)為〃,則該樹的結點數(shù)為n+9+5=n+\n14,根據(jù)樹中的結點數(shù)=樹中所有結點的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,則n=19。本題選擇C選項。

16.A

17.B指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中“P+6”指的是將指針向后移動了6個存儲單元,即指向uE63,存放的是b[6]的地址。

18.B解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。

數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還心須有其他相關軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡系統(tǒng)軟件的支持。因此,選項A的說法是錯誤的。

數(shù)據(jù)庫可以看成是長期存儲在計算機內(nèi)的、大量的、有結構的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。

通常將引入數(shù)據(jù)庫技術的計算機系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由五個部分組成,包括相關計算機的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關軟件和人員。

因此,選項C的說法是錯誤的。

因此,本題的正確答案是選項B。

19.D

20.B

21.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:

①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。

②對靜態(tài)局部變量是在編譯時賦被值的,即只賦被值一次,在程序運行時它已有被值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結束時的值。

③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦被值)

④雖然靜態(tài)局部變量在函數(shù)調(diào)用結束后仍然存在,但其他函數(shù)是不能引用它的。

本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。

22.zyzXyzzyzXyz解析:本題考查字符型指針變量的應用。程序中字符指針變量ps指向字符串'xyz',while循環(huán)語句的作用使ps指向字符串結尾,for循環(huán)的執(zhí)行過程如下。

第一次循環(huán):ps指向字符串'z',輸出z。

第二次循環(huán):ps指向字符串'yz',輸出yz。

第三次循環(huán):ps指向字符串'xyz',輸出xyz。

23.strudctSTRUstrudctSTRU解析:結構件類型是構造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結構體類型的定義:

struct結構體類型名

{

成員項表;

};

定義結構體變量的的形式為:

struct結構體類型名變量1,變量2,...?

其中變量包括;一般變量、指針變量、數(shù)組變量等。

24.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲結構和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結構的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

25.159261037114812159\r\n2610\r\n3711\r\n4812解析:程序的功能是將一個二維數(shù)組的行和列元素互換,存到另一個二維數(shù)組中。

26.存儲或物理或存儲結構或物理結構存儲或物理或存儲結構或物理結構解析:數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構(也稱數(shù)據(jù)的物理結構)。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用。可知,循環(huán)隊列應當是物理結構。

27.gae

28.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標,需先預設1個臨時最大元素的下標,并順序逐一考查數(shù)組的元素,當發(fā)現(xiàn)當前元素比臨時最大元素更大時,就用當前元素的下標更新臨時最大元素下標。直至考查了數(shù)組的全部元素后,這臨時最大元素下標就是數(shù)組的最大元素下標。通常預設的最大元素下標是數(shù)組的首元素下標,考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標的變量是k,變量p控制順序考查的循環(huán)控制變量。當發(fā)現(xiàn)當前元素s[p]比臨時最大元素s[k)更大時,應該用p更新k。所以在空框處應填入代碼“k=p;”。

29.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結構體對鏈表的定義。

30.!knahT!knahT解析:此程序是一道次序顛倒題,即輸入'Thank!',則輸出'!knahT'。

31.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應i的值相乘,最后當i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。

32.!knahT!knahT解析:程序中myfun.c被包含在T18.c中進行編譯。fun函數(shù)中用getehar函數(shù)輸入字符并賦給數(shù)組s,每輸入一個字符,數(shù)組下標n加1,直到遇到回車鍵時輸入結束。while(n>=0)循環(huán)反序輸出字符中。所以myfun.c文件用于實現(xiàn)字符串反序的功能。

33.數(shù)據(jù)模型數(shù)據(jù)模型

34.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

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

36.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

37.視圖表視圖表解析:關系數(shù)據(jù)庫中通常有3種關系,即基本關系(又稱基本表或基表)、查詢表和視圖表?;颈硎窃跈C器中實際存儲數(shù)據(jù)的表。查詢表是查詢的結果所對應的臨時表。視圖表是由基本表或其他視圖表導出的表,是不實際存儲數(shù)據(jù)的表。視圖表是一個虛表。

38.物理獨立性物理獨立性解析:邏輯獨立性是指,由于數(shù)據(jù)的局部邏輯結構與總體邏輯結構之間也由系統(tǒng)提供映像,使得當總體邏輯結構改變時,其局部邏輯結構叮以不變,從而根據(jù)局部邏輯結構編寫的應用程序也可以不必修改。物理獨立性是指,由于數(shù)據(jù)的存儲結構與邏輯結構之間山系統(tǒng)提供映像,使得當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,所以,基于邏輯結構的應用程序不必修改。

39.非0非0解析:邏輯運算中,非0表示邏輯“真”,用。表示邏輯“假”。

40.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:“chars[80],d[80];”定義了兩個字符型數(shù)組,可以放入80個字符。gets函數(shù)是C語言提供的一個專門用于讀字符串的函數(shù),它讀入全部字符(包括空格),直到遇到回車為止。本題中,讀入字符串s后,開始比較s中的每個字符是否為數(shù)字字符,因為字符數(shù)據(jù)在內(nèi)存中以相應的ASCII碼存放,所以只需比較相應的字符是否在'0'到'9'之間,或使用庫函數(shù)isdigit(),來判斷是否為數(shù)字字符。如果是數(shù)字字符則將此字符存入d數(shù)組中,不是則繼續(xù)進行下一字符的比較,直至s結束(即'0'的出現(xiàn))。將'\\0'字符作為字符串d結束標志,最后調(diào)用puts函數(shù)輸出d。所以空白處應填入比較語句s[i]>>='0'&&s[i]<='9'或isdigit(s[i])以及其他任何等價表達式。

41.C

42.B解析:本題定義了一個返回值為指針的函數(shù)f(),此函數(shù)有兩個指針型的形參x和y)該函數(shù)的功能,是返回x和y指向的變量中值較小的那個指針變量。主函數(shù)中定義了兩個指針變量p和小并讓它們指向了變量a和b,調(diào)用函數(shù)f(),返回指向的變量值較小的指針變量,r的值為指針變量p的值(變量a的地址),因此最后輸出的*p、*q和,r的值是7,8和7。所以,B選項為所選。

43.B解析:數(shù)據(jù)的存儲結構,又稱為數(shù)據(jù)的物理結構,是數(shù)據(jù)的邏輯結構在計算機中的存放形式,數(shù)據(jù)的存儲結構有順序結構、鏈式結構、散列結構和索引結構等。

44.CC?!窘馕觥吭谀K化程序設計中,模塊之間的聯(lián)系可以通過程序的控制結構來實現(xiàn),在自頂向下、逐步細化的設計過程中,首先要考慮全局目標,而不是細節(jié)。在程序設計中模塊化和結構化可以同時使用,一個模塊的內(nèi)部結構也要符合結構化設計原則。

45.B解析:C語言規(guī)定else總是和離它最近的if語句配對。故第一個else和第一個if配對,第二個else和第二個if配對。首先計算第一個if后面的表達式“a>b>c”,表達式“a>b”是為1,表達式“1>c”為0,所以執(zhí)行else后面的語句。先執(zhí)行if后面的表達式,“c-1>d”為真,值為1?!?==1”為真,執(zhí)行printf語句。

46.B

47.B

48.C解析:fprintf是格式文件格式化輸出函數(shù),fread是讀文件,fputc輸出單個字符到文件。只有fwrite可以通過參數(shù)來設置以二進制形式寫文件。

49.C解析:地址變量p指向的存儲空間一定要明確,否則可能影響程序的正確性。

50.B解析:本題考查軟件需求分析的四個階段,分別為需求獲取、需求分析、編寫需求分析說明書和需求評審。

51.D解析:C語言中有基本的算術運算符(+、-、*、/)還包括自增自減運算符(++、-),在C語言解析表達式時,它總是進行貪婪咀嚼,這佯,該表達式就被解析為i+++++i,顯然該表達式不合C語言語法。

52.C解析:選項A中a='A'b='B'中缺少一個逗號;B中只能定義一個,如a=19.0;D中b是float類型的,不能取指針地址。

53.C解析:統(tǒng)計1~9九個數(shù)中的奇數(shù)和,此題考察指向數(shù)組的指針。C語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個元素的地址。因此*(t+i)代表數(shù)組的第i+1個元素。程序運行的結果是1+2+3+4+5+6+7+8+9=25。

54.D

55.D解析:一維數(shù)組的定義方式為:

類型說明符數(shù)組名[常量表達式];

選項A符合此定義形式,正確;C語言中多維數(shù)組賦初值時可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項C正確;另外,如果對全部數(shù)組元素都賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省,所以選項B正確,而選項D是錯誤的。

56.A解析:模式設計和內(nèi)模式設計是概念設計的兩種方法。物理設計是根據(jù)特定的計算機系統(tǒng),對數(shù)據(jù)的存儲結構和存取方法進行設計,從而實現(xiàn)從邏輯結構到物理結構的轉換。從系統(tǒng)開發(fā)的角度來看,結構特性設計和行為特性-設計是數(shù)據(jù)庫應用系統(tǒng)所具有的兩個特性。結構特性的設計,設計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。

57.C本題考查printf函數(shù)的格式。格式字符“e”或者“E”都表示以指數(shù)形式輸出單精度或雙精度數(shù)。

58.A解析:本題主要考查定義結構體的幾個特點:①結構的定義明確了結構的組成形式,定義了一種C語言中沒有而用戶需要的新的數(shù)據(jù)類型。與其他的數(shù)據(jù)類型不同,在程序編譯的時候結構的定義并不會使系統(tǒng)為該結構分配內(nèi)存空間,只有在說明結構變量時才分配內(nèi)存空間;②結構體的成員名可以與程序中的變量名相同:⑧結構體中的成員可以單獨使用,它的作用相當于普通變量:④結構體可以嵌套定義。

59.D解析:<<是C語言中規(guī)定的左移運算符,例如,a=a<<2,這個語句即是將a的二進制數(shù)左移兩位,左移一位相當于該數(shù)乘于2,左移兩位相當于該數(shù)乘以2的2次方。所以,x<<1=32*2=64。

60.B解析:先定義了一個指向字符型數(shù)組str的指針p,指針p旨向數(shù)組str的首地址,p+3將指針指向str[3],又因為字符型數(shù)組在存放字符串時會自動在末尾加上'\\0',所以*(p+3)=0。

61.D在C語言程序中,會出現(xiàn)以“#”號開頭的預處理命令,如包含命令#include、宏定義命令#define等。在源程序中,這些命令都放在函數(shù)之外,而且一般都放在源文件的前面,它們稱為預處理部分。

所謂預處理,是指在進行編譯的第一遍掃描(詞法掃描和語法分析)之前所做的工作。預處理是C語言的一個重要功能,它由預處理程序負責完成。當對一個源文件進行編譯時,系統(tǒng)將自動引用預處理程序對源程序中的預處理部分做處理,處理完畢自動編譯源程序。

在C語言中,宏是一種預處理命令,在定義宏時,不需要以語句標識符“;”來表示宏定義結束,而是另起一行表示結束。

綜合上面的分析,可以知道本題選項中,A、B、C的說法都正確,只有D的宏定義不正確,因此本題的正確答案選D。

62.C

63.C

64.A

65.C\n本題考查了兩層for循環(huán)。外層循環(huán)增量i的值作為內(nèi)層循環(huán)執(zhí)行次數(shù)的值使用。

\n

66.B解析:C語言中字符串是以'0'字符結束的,且strlen()函數(shù)計算的是'0'字符前的所有字符的個數(shù)。本題中strlen(st)應為5。數(shù)組定義以后系統(tǒng)就為其分配相應大小的內(nèi)存空間,而不論其中有投有內(nèi)容。sizeof()函數(shù)是計算變量或數(shù)組的所分配到的內(nèi)存空間的大小。所以本題的sizeof(st)為20。

67.C

68.D解析:在C語言中文本文件是以ASCII碼形式存放的,每個字符占一個字節(jié)。由于數(shù)據(jù)在計算機中是以二進制形式存放的,因此二進制文件中的數(shù)據(jù)可以直接讀出,而不需要像文本文件那樣

溫馨提示

  • 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

提交評論