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

下載本文檔

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

文檔簡介

2021-2022年甘肅省嘉峪關市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.帶有頭節(jié)點的單向鏈表head,其3個數(shù)據(jù)節(jié)點A、B、C的連接關系如下圖所示:節(jié)點類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點,在不改變P指向的前提下,以下選項中不能訪問C節(jié)點數(shù)據(jù)成員dt的表達式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

2.由權值分別為3,8,6,2,5的葉子結點生成一棵哈夫曼樹,它的帶權路徑長度為________。

A.24B.48C.72D.53

3.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}

A.將磁盤文件的內容顯示在屏幕上

B.將兩個磁盤文件合為一個

C.將一個磁盤文件復制到另一個磁盤文件中

D.將兩個磁盤文件合并后送屏幕

4.有以下程序:#include<stdio.h>voidf1(char*a,charb){charc;c=*a;*a=b;b=c;}voidf2(chara,charb){charc;c=a;a=b;b=c;}voidf3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}main(){chart1,t2;t1=‘A’;t2=‘B’;f3(&t1,&t2);putchar(t1);putchar(t2);t1=‘A’;t2=‘B’;f2(t1,t2);putchar(t1);putchar(t2);t1=‘A’;t2=‘B’;f1(&t1,t2);putchar(t1);putchar(t2);printf(“\n”);}程序運行后的輸出結果是()。

A.ABBABBB.BAABBBC.BABABAD.BABAAB

5.若有以下定義和語句

chars1[10]="abcd!",*s2="\n123\\";

printf("%d%d\n",strlen(s1),strlen(s2));

則輸出結果是A.A.55B.105C.107D.58

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

7.下述關于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

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

A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結構在計算機中的表示

9.廣義表((a))的表尾是()。

A.aB.(a)C.((a))D.()

10.C語言中不合法的字符串常量是

A.\121B.'Y'C.\n\nD.ABCD\x6d

11.

12.設有如下定義語句:intm[]={2,4,6,8,10},*k=m;以下選項中,表達式的值為6的是()。

A.*(k+2)B.k+2C.*k+2D.*k+=2

13.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

14.以下選項中的表達式調用庫函數(shù)依次求-4.5的絕對值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調用是()

A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)

15.有以下程序:#include<stdio.h>main(){chara=H;a=(a>=Aa<=2)?(a-A+a):a;printf("%c\n",a);}程序運行后的輸出結果是()。A.AB.aC.HD.h

16.

17.

18.對于移動平均算法,是計算某變量之前n個數(shù)值的算術平均,正確的說法是()

A.空間復雜度是O(1)B.空間復雜度是O(n)C.空間復雜度是O(logn)D.空間復雜度是O(nlogn)

19.語句“printf("akbre"\'hi\'y\\\bou\n")”;的輸出結果是()。

A.akbre\'hi\'y'\\\bou

B.a\bre\'hi\\y\bou

C.re'hi'you

D.abre'hi'y\bou

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

A.在C語言中調用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動變量實質上是一個函數(shù)內部的局部變量

二、2.填空題(20題)21.以下程序的輸出結果是【】。

main()

{charc=′z′;

printf("%c",c-25);}

22.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。

23.在宏定義#definePI3.14159中,用宏名PI代替一個______。

24.以下程序通過函數(shù)SunFun()調用F(x),x的值從0到10,這里F(x)=x2+1,由F函數(shù)實現(xiàn),請?zhí)羁铡?/p>

#include<stdio.h>

intSunFun(int);

intF(int);

main()

{pfintf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

F(intx)

{return(【】);}

25.設變量已正確定義為整型,則表達式n=i=2,++i,i++的值為【】。

26.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。

27.下列循環(huán)的循環(huán)次數(shù)是______。

ihtk=2;

while(k=0)

printf("%d",k);

k--;

printf("\n");

28.下列程序運行后的輸出的結果是______。

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

29.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和,請?zhí)羁铡?/p>

#include<stdio,h>

main()

inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

prinff("sum=%d,count=%d\n",sum,count);

}

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

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

{staticinta[4]={1,2,3,4};

inti;

for(i=0;i<4;i++)a[i]+=a[i];

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

printf"\n");

}

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

32.深度為5的滿二叉樹有()個葉子節(jié)點。

33.表達式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

34.執(zhí)行以下程序時,若輸入end<回車>,則輸出結果是【】。

main()

{charch[10]="Begin";

gets(&ch[1]);puts(ch);

}

35.函數(shù)rewind的作用是

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

#include<stdio,h>

main()

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

char*pl,*p2;intk;

p1=a;p2=b;

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

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

}

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

#include<stdio.h>

intfun(intx)

{intp;

if(x==0||x==1)

return3;

else

p=x-fun(x-2);

returnp;}

voidmain()

{printf("\n%d",fun(9));}

38.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序運行時,如果從鍵盤輸入:A,B,<CR>,則輸出結果為______。

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

main()

{

intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

40.下列程序執(zhí)行后輸出的結果是【】。

f(inta)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

三、1.選擇題(20題)41.在微機系統(tǒng)中,對輸入輸出設備進行管理的基本程序模塊(BIOS)存放在()

A.RAM中B.ROM中C.硬盤中D.寄存器中

42.以下程序的輸出結果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

43.設a=12,a定義為整型變量。表達式a+=a-=a*=a的值為______。

A.12B.144C.0D.132

44.若有定義“char,*p2,*p3,*p4,ch;”,則不能正確賦值的程序語句為()

A.p1=&ch;scanf("%c",p1);

B.p2=(char*)malloc(1);scanf("%c",p2);

C.p3=getchar();

D.p4=&ch;*p4=getchar();

45.設變量已正確定義并賦值,以下正確的表達式是()。

A.x=y*5=x+z

B.int(15.8%5.

C.x=y+z+5,++y

D.x=25%5.0

46.在深度為5的滿二叉樹中,葉子結點的個數(shù)為A.32B.31C.16D.15

47.下列程序的運行結果是()。#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=8;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}

A.gaeB.angC.programD.有語法錯

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

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結構密切相關

B.程序執(zhí)行的效率只取決于程序的控制結構

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對

49.下面程序的輸m結果是()。typedefunion{doublex[3];inty[4];charz[10];}M;Mt;main(){Printf("%d\n",sizeof(t));}

A.32B.26C.24D.4

50.下列程序的輸出結果為main(){unionu{char*name;intage;intincome;}="WANGLIONG";s.age=28;s.income=1000;printf("%d\n",s.age);}

A.28B.1000C.0D.不確定

51.有以下程序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

52.以下程序的輸出結果是______。main(){printf("%d\n",NULL);}

A.0B.-1C.1D.不確定的值(因變量無定義)

53.已有定義int(*q)(),指針q可以()。

A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型

54.若有說明chars1[30]="abc",s2[]="defghi";,則在使用函數(shù)strcat(s1,s2)后,結果是()。

A.s1的內容更新為abcdefgi

B.s1的內容更新為defghi\0

C.s1的內容更新為defghiabc\0

D.s1的內容更新為abcdefghi\0

55.下列關于c語言用戶標識符的敘述中正確的是()。

A.用戶標識符中可以出現(xiàn)下劃線和中劃線(減號)

B.用戶標識符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線

C.用戶標識符中可以出現(xiàn)下劃線,但不可以放在用戶標識符的開頭

D.用戶標識符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在用戶標識符的開頭

56.能將高級語言程序轉換成目標語言程序的是______。

A.調試程序B.解釋程序C.編譯程序D.編輯程序

57.有以下程序:voidsum(int*A){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}執(zhí)行后的輸出結果是

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

58.定義int*swap()指的是______。

A.—個返回整型值的函數(shù)swap()

B.—個返回指向整型值指針的函數(shù)swap()

C.—個指向函數(shù)swap()的指針,函數(shù)返回一個整型值

D.以上說法均錯

59.以下程序段的輸出結果是______。intx=5;do{ptintf("%2d\n",x--);}while(!x);

A.5B.無任何輸出C.4D.陷入死循環(huán)

60.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.10C.6D.死循環(huán),不能確定次數(shù)

四、選擇題(20題)61.

定義下列結構體(聯(lián)合)數(shù)組:

structst

{charname[15];

intage;

}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);

執(zhí)行語句printf("%d,%C",a[2].age,*(a[3].name+2))的輸出結果為()。

A.15,AB.16,HC.16,AD.17,H

62.

63.有三個關系R、S和T如下:

由關系R和S通過運算得到關系T,則所使用的運算為()。

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

64.與“y=(x>0?1:x<0?-1:0)”;的功能相同的if語句是()。A.A.if(x>0)y=1;elseif(x<0)y=1;else=""y="0;

B."x="">0)y=1;elseif(x<0)y=-l;else=""y="0;"

C.y="-l"x="">O)y=1;elseif(x=-0)y=0;elsey=-l;

D.y=0;if(x>=0)if(x>=0)y=1;elsey=-l;

65.

66.

67.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為()。

A.log2nB.n2C.nD.n+1

68.

69.有以下程序

#include"stdio.h"

voidfun(int*a,int*b,intc)

{c=*a+*b;}

main()

{inta[2]={6,9},c=0;

fun(a,a+1,&c);

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

}

程序輸出的結果是

A.6B.9

C.0D.15

70.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后輸出結果是()。

A.賦初值的字符串有錯B.6,7C.5,6D.6,6

71.已知大寫字母A的ASCIl碼值是65,小寫字母a的ASCIl碼值是97。以下不能將變量C中的大寫字母轉換為對應小寫字母的語句是()。

A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"

72.下面各選項中,均是C語言合法標識符的選項組是()。

A.

B.

C.

D.

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

74.數(shù)字字符0的ASCIl值為48,若有以下程序:

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

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

75.以下選項中可用作C程序合法實數(shù)的是()。A..1eOB.3.0e0.2C.E9D.9.12E

76.有以下程序:

若運行時輸入:246<;回車>;,則輸出結果為()。

A.204B.200C.240D.246

77.有以下程序:

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

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

78.有以下程序:

#include<stdio.h>

main

{intx=4,y;

do

{y=x;

if(!y)printf("x");

else

printf("y"):

x--;

}while(x);

}

程序的輸出結果是()。A.A.xyyxB.yyyyC.yyxxD.yxyx

79.

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

A.c語言規(guī)定必須用main作為主函數(shù)名,程序將從此開始執(zhí)行

B.可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序將從此開始執(zhí)行

C.c語言程序將從源程序中第一個函數(shù)開始執(zhí)行、

D.main的各種大小寫拼寫形式都可以作為主函數(shù)名,如MAIN,Main等

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:首先把b所指字符串中的字符按逆序存放,然后將str1所指字符串中的字符和Str2所指字符串中的字符,按排列的順序交叉合并到str所指數(shù)組中,過長的剩余字符接在str所指數(shù)組的尾部。例如,當str1所指字符串中的內容為ABCDEFG,str2所指字符串中的內容為1234時,str所指數(shù)組中的內容應該為A483C2D1EFG;而當str1所指字符串中的內容為1234,str2所指字符串中的內容為ABCEDFG時,str所指數(shù)組中的內容應該為1G2F31:4DCBA。

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

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

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio。h>

#include<string.h>

voidproc(char*strl,char*str2,char*str){

inti,j;charch;

i=0;j=strleu(str2)-1;

//****found****

while(i>j)

{

ch=str2[i];str2[i]=str2[j];str2[j]=ch;

i++;j--;

}

while(*str1||*str2)

{

if(*str1){*str=*str1;str++;str1++;)

if(*str2){*str=*str2;str++;str2++;)

}

//****found****

*str=0:

}

voidmain

{

chars1[100],s2[100],t[200];

system("CLS");

printf("\nEnters1string:");

scanf("%s",sl);

printf("\nEnters2string:");

scanf("%s",s2);

proc(s1,s2,t);

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

}

六、程序設計題(1題)82.請編寫一個函數(shù),用來刪除字符串中的所有空格。例如,輸入abcdefgh,則輸出為abcdefgh。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.Alink結構體中的next是鏈表中下一個節(jié)點的地址。由于p當前指向節(jié)點A,因此p->next是B的地址。p->next->next是C的地址,訪問C的節(jié)點數(shù)據(jù)成員dt可以使用C的地址訪問,即p->next->next->dt,選項B正確?;蛘呤褂媒庖谩?”運算符:(*p)表示節(jié)點A,(*p).next表示B的地址,*((*p).next)表示節(jié)點B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示節(jié)點C,所以C的數(shù)據(jù)成員dt可以表示為(*((*(*p).next).next)).dt,因為“.”運算符優(yōu)先級高于“*”運算符,所以也可以寫為(*(*(*p).next).next).dt,選項C正確。同理,也可以既使用指針運算符,又使用解引用運算符來訪問C的節(jié)點數(shù)據(jù)成員dt,即(*(p->next->next)).dt,選項D正確。選項A中,*p表示A節(jié)點,(*p).next表示節(jié)點B的地址,由于“->”運算符的優(yōu)先級高于“*”運算符,因此先執(zhí)行“->”,即表達式(*p).next->next->dt引用了C節(jié)點的數(shù)據(jù)成員dt,然后再執(zhí)行解引用運算“*”,這是錯誤的。故本題答案為A選項。

2.D

3.C解析:程序首先定義了兩個文件類型的指針fp1、fp2。為讀打開文件filel,并讓指針fp1指向該文件;為寫打開文件file2,并讓指針fp2指向該文件。循環(huán)執(zhí)行從文件file1中讀取一個字符,輸出到文件file2中,直到文件file1結束。因此程序的功能是將文件file1中的內容復制到文件file2中。

4.B函數(shù)f1(*a,b),*a為地址傳遞,b為值傳遞,將b值傳給*a,則f1(&t1,t2)調用后輸出t1、t2為BB。f2(a,b)為值傳遞,傳入的只是a、b的值,不實現(xiàn)交換,則f2(t1,t2)調用后輸出t1、t2為AB。f3(*a,*b)為地址傳遞,可以實現(xiàn)a、b值的交換,則f3(&t1,&t2)調用后輸出t1、t2為BA。因此結果為BAABBB。故本題答案為B選項。

5.A

6.C本題考查do-while循環(huán),先執(zhí)行d0輸出的x的值為1,接著執(zhí)行while語句,此時--x的值為0,x也為0,而非0為1,循環(huán)成立,接著執(zhí)行do輸出X值為-2,執(zhí)行--x后,表達式為-2,而!(--x)為0,退出循環(huán)。

7.A解析:數(shù)據(jù)庫是一個通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨立性,而且能并發(fā)地為多個應用服務,同時具有安全性和完整性。即數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數(shù)據(jù)庫管理階段中,數(shù)據(jù)是結構化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲空間,也減少了對數(shù)據(jù)的存取時間,提高了訪問效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對數(shù)據(jù)的存取方式,選項C錯誤。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫系統(tǒng)的特點,選項D錯誤。本題正確答案是A。

8.D數(shù)據(jù)的邏輯結構是指數(shù)據(jù)元素之間的邏輯關系的數(shù)據(jù)結構。數(shù)據(jù)的存儲結構則是數(shù)據(jù)的邏輯結構在計算機中的物理實現(xiàn),有時也稱作數(shù)據(jù)的物理結構。兩者的區(qū)別是數(shù)據(jù)的邏輯結構只涉及到數(shù)據(jù)之間抽象的數(shù)學關系。存儲結構則涉及到如何在計算機中通過對數(shù)據(jù)的物理存儲進行組織來表達數(shù)據(jù)元素之間的邏輯關系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達線性表中數(shù)據(jù)的前后件關系;在線性表的鏈式存儲中是通過指針域構成的邏輯鏈條來表達數(shù)據(jù)的前后件關系。一般的,一種數(shù)據(jù)的邏輯結構對應的物理實現(xiàn),即數(shù)據(jù)的存儲結構不止一種。因此選項D正確。

9.D

10.B解析:字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。由此可知,選項A)、C)、D)都是含法的字符串常量,而選B)是一個字符常量。

11.D

12.A本題考查數(shù)組和指針,*k指針是指向rn數(shù)組的首地址,所以要使表達武的值為6,只需要指針指向第m[2],所以答案選擇A。-

13.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。

14.C

15.D多元運算符問號前面表達式為真,所以(a-A+a)賦值給a,括號里的運算是把大寫字母變成小寫字母,所以答案應為選項D。

16.D

17.B

18.A

19.C先輸出a、b表示退一格,當執(zhí)行到:\b后,光標往后退,接著輸出re'hi'y\(反斜杠后又加一個反斜杠的意思是要輸出一個反斜杠),此時又執(zhí)行:\b后,\就被ou覆蓋。

20.B解析:編譯時,編譯系統(tǒng)不為局部變量分配內存單元,而是在程序運行中,當局部變量所在的函數(shù)被調用時,編譯系統(tǒng)根據(jù)需要要臨時分配內存,調用結束空間釋放;全局變量一經定義,編譯系統(tǒng)為其分配固定的內存單元,在程序運行的自始至終都占用固定的單元。在考慮內存不定的情況下,最好使用全局變量。

21.aa解析:'z'的ASCII碼值為122,經過c-25運算后,得97,以字符形式輸出是a。

22.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。

23.字符串字符串解析:本題考查字符替換格式:#define標識符字符串。

24.xx*x+1x\r\nx*x+1解析:本題考查函數(shù)的調用。P(x)的含義為x的平方加1,所以第一處應填x;第二處應填x*x+1。

25.33解析:本題考查的是C語言逗號表達式的相關知識。程序在計算逗號表達式時,從左到右計算由逗號分隔各表達式的值,整個逗號表達式的值等于其中最后一個表達式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。

26.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等。

27.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環(huán)。

28.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符串,則不能使用scanf()函數(shù),所以本題中輸入空格就返回了'\\0',s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

29.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式為:scanf(格式控制,地址表列),因此,第一處應該填寫地址,由于是循環(huán)輸入,所以填&a[i]。依據(jù)題意第二處應該填寫a[i],以實現(xiàn)sum=sum+a[i]的求和。

30.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結果存在原數(shù)組中,其實就是將數(shù)組a的每個元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調用fun()。

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

32.1616解析:在滿二叉樹中,每一層上的節(jié)點數(shù)都達到最大值,在第k層上有2[k-1]個節(jié)點,且深度為m的滿二叉樹有2[m]-1個節(jié)點,深度為5的滿二叉樹葉子節(jié)點數(shù)為2[5-1]=16。

33.整型整型解析:上面的表達式中,通過強制類型轉換把最后參與運算的數(shù)據(jù)都轉換成了int型,所以最后得到的結果也是int類型。

34.Bend

35.A

36.gaegae解析:本題考查字符指針變量與字符數(shù)組。for循環(huán)語句共循環(huán)8次:

①當k=0時,*(Pl+0)='L',*(p2+0)='P',L!=P,沒有輸出。

②當k=1時,*(p1+1)='a',*(p2+1)='r',a!=r,沒有輸出。

③當k=2時,*(p1+2)='n',*(p2+2)='o',n!=o,沒有輸出。

④當k=3時,*(P1+3)='g',*(p2+3)='g',g==g,所以輸出g。

⑤當k=4時,*(p1+4)='u',*(P2+4)='r',u!=r,沒有輸出。

⑥當k=5時,*(p1+5)='a',*(p2+5)='a',a==a,所以輸出a。

⑦當k=6時,*(p1+6)='g',*(p2+6)='m',g!=m,沒有輸出。

⑧當k=7時,*(p1+7)='e',*(p2+7)='e',e==e,輸出e。

⑨當k=8時結束循環(huán),輸出結果為:gae。

37.77解析:本題考查的是函數(shù)的遞歸調用。x=0或x=1是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結果。

38.BB解析:因為c是字符類型變量,它只能接收一個字符,所以c=A,字符型變量在參與算術運算的時候是用其相應的ASCII碼參與運算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應的字符,所以是B。

39.33解析:條件表達式的一般形式為;表達式1?表達式2:表達式3條件運算符的執(zhí)行順序:先求解表達式1,若為非0(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值;若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。30/3=10>0,所以執(zhí)行p/10,結果為3。

40.77解析:在程序執(zhí)行時,static變量僅初始化一次,下次使用時將使用上次保存的值。

41.B

42.C解析:本題考查按位與“&”。因為1&1=1,0&0=0,所以任何數(shù)與自身按位與,結果仍為此數(shù),不發(fā)生變化。

43.C解析:表達式a+=a-=a*=a的運算方向是自右向左,即先計算a*=a,a值為a*a=144,再計算a-=a,a值為a-a=0,再計算計a+=a,故表達式和a的值都為a+a=0。

44.C

45.C解析:求余運算符'%'兩邊的運算對象必須是整型,而選項B)和D)中'%'兩邊的運算對象有浮點整數(shù)據(jù),所以選項B)和D)是錯誤的表達式。在選項A)中賦值表達式的兩邊出現(xiàn)相同的變量x,也是錯誤的。選項C)是一個逗號表達式,所以正確答案為C)。

46.C2(n-1)

=2(5-1)=16

47.A解析:本題考查指針的用法,if(*(p1+k)==*(p2+k))語句的功能是判斷兩個數(shù)組中的字符是否相同,如果相同則輸出。

48.A本題考查程序效率。程序效率是指程序運行速度和程序占用的存儲空間。影響程序效率的因素是多方面的,包括程序的設計、使用的算法、數(shù)據(jù)的存儲結構等。在確定數(shù)據(jù)邏輯結構的基礎上,選擇一種合適的存儲結構,可以使得數(shù)據(jù)操作所花費的時間少,占用的存儲空間少,即提高程序的效率。因此,本題選項A的說法是正確的。

49.C解析:本題考查的是聯(lián)合所占的存儲空間。sizeof(t)=sizeof(double)*3=8*3=24。聯(lián)合體所占的存儲空間墩決于所占空間最大的成員所占的空間。

50.B解析:本題對共用體的使用進行了考查。由于共用體所有成員共同占據(jù)一段存儲空間,所以對成員變量的賦值,后面的賦值會覆蓋掉前面的賦值,因為s.income=1000;是最后一次成員變量賦值,變量age與變量income共同占據(jù)一段存儲空間,所以age的值也為1000。

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

52.A解析:NULL表示空,常在定義指針變量時將其值賦為NULL,表示不指向任何地址。NULL在C語言的頭文件中宏定義為0。

53.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標識符(*指針變量名)()。其中,“類型標識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。

54.D解析:streat(s1,s2)是把s2字符串連接到s1字符串的末尾,要保證s1能容納下連接后的字符串。

55.B解析:在C語言中,合法的標識符由字母,數(shù)字和下劃線組成(故選項A不正確),并且第一個字符必須為字母或者下劃線(故選項B和選項D不正確).所以,B選項為所選.

56.C解析:用高級語言編寫的程序稱為“源程序”,而計算機只能識別和執(zhí)行由O和1組成的二進指令,所以高級語言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進制形式的“目標程序”。

57.A解析:本題考核的知識點是數(shù)組的定義、賦初值以及函數(shù)調用的組合應用.本題中函數(shù)sum(int*A)的作用是:將形參a所指的數(shù)組中的第二個元素的值a[1]賦給第一個元素a[0]。主函數(shù)中定義一個長度為10的整型數(shù)組并賦初值,接著執(zhí)行一個for循環(huán),該循環(huán)共執(zhí)行了3次.當i=2時,調用函數(shù)sum(&aa[2]),主函數(shù)中將&aa[2]作為實參傳給行參a,所以此時形參a所指的數(shù)組的第一個元素和第二個元素分別為aa[2]和aa[3],故執(zhí)行完該函數(shù)后將aa[3]的值賦給aa[2],即aa[1]=aa[3]=4,當i=1時,調用函數(shù)sum(&aa[1]),主函數(shù)中將&aa[1]作為實參傳給行參a,所以此時形參a所指的數(shù)組的第一個元素和第二個元素分別為aa[1]和aa[2],故執(zhí)行完該函數(shù)后將aa[2]的值賦給aa[1],即aa[1]=aa[2]=4;當i=0時;調用函數(shù)sum(&aa[0]),,主函數(shù)中將&aa[0]作為實參傳給行參a,所以此時形參a所指的數(shù)組的第一個元素和第二個元素分別為aa[0]和aa[1],故執(zhí)行完該函數(shù)后將aa[1]的值賦給aa[0],即aa[0]=aa[1]=4;故最后輸出的aa[0]的值為4,所以,4個選項中選項A符合題意。

58.B解析:—個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是—個返回整型指針的函數(shù)。

59.A解析:本題考查循環(huán)語句do-while語句的執(zhí)行情況。首先五條件執(zhí)行循環(huán)體,表達式x--的值為5,然后檢查條件。

60.D解析:break語句只能在循環(huán)體和switch語句體內使用,當break出現(xiàn)在switch語句體內時,其作用只是跳出該switch語句體。當break出現(xiàn)在循環(huán)體中,但不在switch語句體內時,則在執(zhí)行break后,跳出本層循環(huán)體.而continue語句的作用是結束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。本程序中,變量i的初始值為0,判斷while后面括號內表達式的值為真,執(zhí)行循環(huán)體內的if語句,判斷if后面括號內表達式的值為真,執(zhí)行“continue;”語句.因continue的作用是結束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判斷,所以i的值未發(fā)生變化,循環(huán)條件仍然為真,if語句也仍然成立,因此循環(huán)將無止境地進行下去。所以,4個選項中D為所選。

61.C

\n本題考查結構體數(shù)組。a[2].age為結構體aEZ]的age成員,即a[3].name為指向結構體a[3]的name成員的第一個元素的指針,即指向“2”,(a[3].name+2)將指針后移兩位指向第三個元素“A”,*(a[3].name+2)是取指針所指向地址的內容。

\n

62.A

63.D解析:笛卡爾積:設關系R和S的元數(shù)分別是r和s,定義R和S的笛卡爾積是一個(r+s)元元組的集合,每一個元組的前r個分量來自R的一個元組,后s個分量來自S的一個元組。若R有k1個元組,s有k2個元組,則關系R和關系S的廣義笛卡爾積有k1×k2個元組。交:設關系R和關系S具有相同的目n,且相應的屬性取自同一個域,則關系R與關系S的交由屬于R又屬于S的所有元組組成。并:設關系R和關系S具有相同的目n(即兩個關系都有n個屬性),且相應的屬性取自同一個域,則關系R與關系S的并由屬于R或屬于S的元組組成。自然連接:是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須有相同的屬性組,并且要將結果中重復的屬性去掉。

64.By=(x=)071:x<0?-1:0)中有兩個三目運算符,因此按從右到在的順序運算,可寫成y=(x>071:(x<0?-1:0)),故選擇8選項。

65.C

66.B

67.C對線性表進行順序查找,最壞的情況是待查數(shù)據(jù)在表中不存在,所以比較的次數(shù)與表中的元素個數(shù)一樣多。

68.A

69.C函數(shù)的參數(shù)通常分為兩種:數(shù)值變量和指針變量。數(shù)值變量被函數(shù)調用后,函數(shù)內的參數(shù)為該數(shù)值變量的副本。對副本的一切操作都不會影響到調用函數(shù)外原來的參數(shù)。指針變量在函數(shù)中傳遞的是對其存放地址的一份副本,該副本存放的地址與原來的指針所存的地址一致。在函數(shù)體內修改指針存放的地址對應的值與在函數(shù)體外對原參數(shù)的修改同樣有效,因為原參數(shù)也指向該地址。

題目中的程序包括主函數(shù)main和fun函數(shù),其中fun函數(shù)為void型,不需要fun函數(shù)返回值。fun函數(shù)的形參為2個整型指針變量和1個整型變量。在main函數(shù)中調用fun函數(shù),a為指向數(shù)組第

溫馨提示

  • 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

提交評論