2022-2023年四川省瀘州市全國計算機等級考試C語言程序設計真題(含答案)_第1頁
2022-2023年四川省瀘州市全國計算機等級考試C語言程序設計真題(含答案)_第2頁
2022-2023年四川省瀘州市全國計算機等級考試C語言程序設計真題(含答案)_第3頁
2022-2023年四川省瀘州市全國計算機等級考試C語言程序設計真題(含答案)_第4頁
2022-2023年四川省瀘州市全國計算機等級考試C語言程序設計真題(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年四川省瀘州市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有下列程序:程序執(zhí)行后的輸出結果是()。A.1,0B.1,1C.1,4D.4,4

2.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

3.已知10個元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序樹,查找值為62的結點所需比較次數(shù)為()

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

4.有以下程序:#include<stdio.h>main(){inta[3][3]={0,1,2,3,4,5,6,7,8},(*p)[3],i;p=a;for(i=0;i<3;i++){printf(“%d”,(*p)[i]);p++;}}程序的運行結果是()。

A.036B.012C.048D.147

5.廣告系統(tǒng)為了做地理位置定向,將IPV4分割為627672個區(qū)間,并標識了地理位置信息,區(qū)間之間無重疊,用二分查找將IP地址映射到地理位置信息,請問在最壞的情況下,需要查找多少次?()

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

6.

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

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

8.在Windows環(huán)境下,單擊當前窗口中的按鈕“”,其功能是A.將當前應用程序轉(zhuǎn)為后臺運行

B.退出Windows后再關機

C.終止當前應用程序的運行

D.退出Windows后重新啟動計算機

9.有以下程序(說明:字母A的ASCIl碼值是65):#include<stdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%C",*s);s++;}}main(){chara[]="BYTE";Fun(a);printf("\n");}程序運行后的輸出結果是()。A.BYB.BTC.YTD.YE

10.廣義表((a))的表頭是(a),表尾是()。A.aB.()C.(a)D.((a))

11.與單鏈表相比,雙向鏈表的優(yōu)點之一是()。

A.插入、刪除操作更加簡單B.可以隨機訪問C.可以省略表頭指針或表尾指針D.順序訪問相鄰結點更加靈活

12.以下程序中,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ù)

13.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

14.關系R和關系S的并運算是______。

A.由關系R和關系S的所有元組合并組成的集合,再刪去重復的元組

B.由屬于R而不屬于S的所有元組組成的集合

C.由既屬于R又屬于S的元組組成的集合

D.由R和S的元組連接組成的集合

15.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序輸出為()。

A.編譯有錯B.0,0,0,3C.1,1,2,0D.0,1,2,0

16.

17.若變量已正確定義,在“if(W)Printf(“%d\n”,k);”中,以下不可替代W的是()。

A.a<>b+cB.ch=getchar()C.a==b+cD.a++

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

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

19.若有說明語句:inta,b,c,*d=&c;,則能正確從鍵盤讀入3個整數(shù)分別賦給變量a、b、c的語句是______。

A.scanf("%d%d%d",&a,&b,d);

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

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

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

20.在C語言中,要求運算數(shù)必須是整型的運算符是()。

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

二、2.填空題(20題)21.設一棵完全二叉樹共有700個結點,則在該二叉樹中有【】個葉子結點。

22.下面程序的運行結果是【】。

voidswap(int*a,int*b)

{

int*tp;

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

}

main()

{

intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

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

}

23.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

24.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請?zhí)羁铡?/p>

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

25.以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構成的三角形字符陣列圖形。例如,輸入整數(shù)5時(注意:n不得大于10),程序運行結果如下:

ABCDE

FGHI

JKL

MN

O

請?zhí)羁胀瓿稍摮绦颉?/p>

main()

{inti,j,n;charch='A';

scanf("%d",&n);

if(n<11)

{for(i=1;i<=n;i++)

{for(j=1;j<n-i+1;j++)

{printf("%2c",ch);

[10];

}

[11];

}

26.下列程序的輸出結果是16.00,請?zhí)羁眨?/p>

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

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

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

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

intk=0;

voidfun(intm)

{m+=k;k+=m;

printf("m=%dk=%d",m,k++)

}

main()

{inti=4;

fun(i++);

printf("i=%dk=%d\n",i,k);

}

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

30.若有定義:intk;,以下程序段的輸出結果是______。for(k=2;k<6;k++,k++)printf("##%d",k);

31.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

32.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結果是______。

#definePI3.14159;printf("PI=%f",PI);

33.下面的語句要使指針p指向一個double類型的動態(tài)存儲單元,請?zhí)羁铡?/p>

p=【】malloc(sizeof(double));

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

35.下面程序用來輸出結構體變量a所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>

main()

{structstu

{charx[20];floaty;}a;

printf("asize:%d\n",sizeof(【】));

}

36.軟件設計模塊化的目的是______。

37.以下程序的功能是輸入任意整數(shù)給n后,輸出n行從大寫字母A開始構成的三角形字符陣列圖形。例如,輸入整數(shù)5時(注意:n不得大于10),程序運行結果如下:

ABCDE

FCHI

JKL

MN

O

請?zhí)羁胀瓿稍摮绦颉?/p>

#include<stdio.h>

main()

inti.j,n;charch='A';

scanf("%d",&n);

if(n<11)

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

for(j=1;j<=n-i+1;j++)

{printf("%2c",ch);

【】;

}

【】;

}

elseprintf("nistoolarge!\n");

prinff("\n");

}

38.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許插入的一端稱作______。

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

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

40.下列程序的輸出結果是______。

10ngfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printf("%1d\n",x);}

三、1.選擇題(20題)41.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序運行后的輸出結果是______。

A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5

42.以下程序段的輸出結果是chars[]="\\141\141abc\t";printf("%d\n",strlen(s));

A.9B.12C.13D.14

43.下面一組中都是C語言關鍵字的是______。

A.doubleIntfor

B.mainwhilegoto

C.volatilebreakstatic

D.mallocsizeofnew

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

A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出

B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變

C.當程序執(zhí)行中,數(shù)組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息

D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)

45.有以下程序:#include<stdio.h>main(){charc[6];inti=0;for(;i<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i];printf("\n");}如果從鍵盤上輸入:ab<回車>c<回車>def<回車>則輸出結果為______。

A.abcdefB.abcdC.abcdD.abcdef

46.以下程序的輸出結果是______。#finclude<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

47.若以“葉”方式打開一個己存在的文件,則下列敘述正確的是()。

A.文件打開時,原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進行添加或讀操作

B.文件打開時,原有文件內(nèi)容不被刪除,只能進行讀操作

C.文件打開時,原有文件內(nèi)容被刪除,只能進行寫操作

D.以上3種說法都不正確

48.以下程序的輸出結果是()voidfun(float*p1,float*p2,float*s){s=(float*)calloc(1,sizeof(float));*s=*p1+*p2++;}main(){floats[2]={1.1,2.2},b[2]=<10.0,20.0},*s==a;fun(a,b,s);printf("%5.2f\n",*s);}

A.11.1B.12C.21.1D.1.1

49.有以下程序:#include<stdio.h>#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstr[10]:"abedefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf("%s\n",str);程序運行后的輸出結果是()。

A.abcdefgB.gfedcbaC.gbcdefaD.abedcfg

50.若有以下語句,則對數(shù)組a元素的引用不正確的是(0≤i≤9)()。inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))

51.設a=1,b=2,c=3,d=4,則表達式a<b?a:c<d?a:d的結果為______。

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

52.關系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼

53.下面程序的輸出結果為()structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};main(){p=aa;printf("%d\n",++p->x);printf("%d\n",(++p)->x);printf("%d\n",++(*p->y));}

A.102020B.506021C.516021D.607031

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

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

55.設有以下語句

charx=3,y=6,z;

z=x^y<<2;

則z的二進制值是

A.00010100B.00011011C.00011100D.00011000

56.在C語言中,可以把整數(shù)以二進制形式存放到文件中的函數(shù)是()

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

57.執(zhí)行下列語句的結果為______。i=3;printf("%d,",++i);printf("%d",i++);

A.3,3B.3,4C.4,3D.4,4

58.交換兩個變量的值,不允許用臨時變量,應該使用下列()位運算符。A.A.&B.^C.||D.~

59.將E-R圖轉(zhuǎn)換到關系模式時,實體與聯(lián)系都可以表示成________。

A.屬性B.關系C.鍵D.域

60.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序

四、選擇題(20題)61.若有以下定義和語句:“doubler=99,*p=&r;*P=r;”,則以下正確的敘述是()。

A.兩個*p含義相同,都說明給指針變量p賦值

B.在“doubler=99,*p=&r;”中,把r的地址賦值給了P所指的存儲單元

C.語句“*p=r;”把變量r的值賦給指針變量P

D.語句“*p=r;”取變量r的值放回r中

62.若有定義“floata=25,b,*p=&b;”,則下列對賦值語句“*p=a;”和“p=&a;”的正確解釋為()。

A.兩個語句都是將變量a的值賦予變量P

B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P

C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a

D.兩個語句都是使P指向變量a

63.已定義:inta=25,b=14,c=19;,以下三目運算符(?:)所構成語句的執(zhí)行后

a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結果是

A.***a=25,b=13,c=19B.***a=26,b=14,c=19C.###a=25,b=13,c=19D.###a=26,b=14,c=19

64.

65.在面向?qū)ο蠓椒ㄖ?,具有相似屬性與操作的一組對象稱為()。

A.類B.實例C.消息D.數(shù)據(jù)

66.設A為存放(短)整型的一維數(shù)組,如果A的首地址為P,那么A中第i個元素的地址為()。

A.P+i*2B.P+(i-1)*2C.P+(i-1)D.P+i

67.有以下程序

#include<stdio.h>

main()

{intx=1,y=2,z=3;

if(x>y)

if(y<z)printf("%d",++z);

elseprintf("%d",++y);

printf("%d\n",x++);

}

程序的運行結果是

A.A.331

B.41

C.2

D.1

68.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結果是()。A.5,5B.5,11C.11,11D.11,5

69.若有定義語句:intX=10;,則表達式x-=x+x的值為()。

A.0B.-20C.-10D.10

70.

71.有以下定義:

72.

73.用鏈表表示線性表的優(yōu)點是()。

A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于捅入和刪除操作D.數(shù)據(jù)元素的物理順序與邏輯順序相同

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

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

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

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

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

75.

76.有以下程序:

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

77.

78.有以下程序:

#include<stdio.h>

main

{inta=1,b=2;

while(a<6){b+=a;a4+=2;b%=10;)

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

}

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

A.5,11B.7,1C.7,11D.6,1

79.當c的值不為0時,在下列選項中不能正確將c的值賦給變量a、b的是()。A.A.a=b=c;B.(a=c)C.(a=c)&&(b=c);D.(b=c);

80.下列關于隊列的敘述中正確的是()。A.在隊列中只能插人數(shù)據(jù)B.在隊列中只能刪除數(shù)據(jù)C.隊列是先進先出的線性表D.隊列是先進后出的線性表

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:把從主函數(shù)中輸人的3個數(shù)。最大的數(shù)放在a中,中間的數(shù)放在b中,最小的數(shù)放在C中。例如,若輸入的數(shù)為:55,12,34,輸出的結果應當是:a=55.0,b=34.0,c=12.0。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構!試題程序:

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

參考答案

1.A&&是邏輯與運算符,x、y的取值為4、2,兩個都是非零值,所以x&&y的結果為真,值為1;&是位運算符,x的二進制為0100,y的二進制為0010,0100&0010的結果為0。本題答案為A選項。

2.DD。【解析】面向?qū)ο笤O計方法與面向過程設計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。

3.B

4.Cmain函數(shù)定義3行3列的整型二維數(shù)組a;定義數(shù)組指針P,P指向包含3個元素的數(shù)組。程序首先將a賦給p。for循環(huán)中,i=0時,P指向a的第1個元素{0,1,2},輸出p[0]即0;i=1時,p指向a的第2個元素{3,4,5},輸出P[1]即4;i=2時,p指向a的第3個元素{6,7,8},輸出P[2]即8。所以程序輸出048。故本題答案為C選項。

5.D

6.D

7.B解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是負責數(shù)據(jù)庫的建立、使用和維護的軟件。數(shù)據(jù)庫管理系統(tǒng)建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應用程序的執(zhí)行,最終都必須通過數(shù)據(jù)庫管理系統(tǒng)。另外,數(shù)據(jù)庫管理系統(tǒng)還承擔著數(shù)據(jù)庫的安全保護工作,按照數(shù)據(jù)庫管理員所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。

8.C解析:在Windows環(huán)境下,單擊當前窗口中的按鈕“x”,其功能是終止當前應用程序的運行,關閉當前窗口。

9.Dfun函數(shù)的意思是當*s%2==0的時候就輸出并且s自加l次,然后判斷。所以可知只有第2和第4個位置上的才符合要求,所以答案為D。

10.B

11.D

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

13.D解析:文件狀態(tài)檢測函數(shù)feof(fp)的功能是:測試所指的文件的位置指針是否已達到文件尾,如果已到達文件尾,則函數(shù)返回非。值;否則返回0,表示文件尚未結束。

14.A

15.AC語言中規(guī)定else總是和之前與其最近的且不帶else的if配對。題目中,“if(a=1)b=1;c=2;”默認省略了else,導致下一句else沒有匹配語句。故本題答案為A選項。

16.B

17.A選項A是非法的表達式,C語言中沒有“<>”運算符。故本題答案為A選項。

18.C

19.A解析:選項B中d已經(jīng)為地址,不應在加上求地址符號“&”,故選項B不正確;選項C中,a和b都為變量不是地址,應該在a和b之前加上求地址符號“&”,故選項C不正確:選項D中指針d所指向的存儲空間的位置為變量c的值,不為地址,故選項D不正確,所以,4個選項中A為所選。

20.D解析:/、++和!=的操作數(shù)既可能是整型,又可能是實型。而%的操作數(shù)只能是整型。

21.350350解析:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結點。因此,設一棵完全二叉樹具有n個結點,若n為偶數(shù),則在該二叉樹中有n/2個葉子結點以及n/2-1個度為2的結點,還有1個是度為1的結點:若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結點以及[n/2]個度為2的結點,沒有度為1的結點。本題中,完全二叉樹共有700個結點,700是偶數(shù),所以,在該二叉樹中有350個葉子結點以及349個度為2的結點,還有1個是度為1的結點。所以,本題的正確答案為350。

22.3535解析:在主函數(shù)中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用“swap(p,q)”,把p和q中的地址值傳給了形參指針.變量a和b,a和b分別指向了實參x和y。在函數(shù)swap()中交換了指針變量a和b的值,并沒有交換a和b指向的實參的值,所以函數(shù)調(diào)用返回后x和y依舊是原來的值。

23.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

24.x+8sin(x)x+8,sin(x)解析:考查考生對函數(shù)調(diào)用相關知識的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。

25.C語言允許字符數(shù)據(jù)與整數(shù)進行直接的算術運算,故輸出大寫字母A開始的連續(xù)字符,可通過白加運算ch++完成。三角形字符陣列第i行的字符個數(shù)為n-i+1,在每行結尾以回車字符‘\\n’換行。\r\n\r\n

26.6.66.6解析:本題,已知結果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進行類型轉(zhuǎn)換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

27.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實現(xiàn)的功能簡單來說就是將字符串s下標為p+2~k范圍的字符整體復制到字符串s下標為p~k-2的位置上。在本題中strlen(s)返回s的長度7,所以復制的字符為s[5]~s[7],即'f'、'g','\\0'三個字符,復制到s[3]~s[5],故最終輸出的字符串為abcfg(因為s[5]為'\\0',所以后面的字符不會輸出)。

28.m=4k=4i=5k=5m=4k=4i=5k=5解析:main()函數(shù)首先定義了1個變量i,并初始化為4。然后用表達式i++的值為實參調(diào)用函數(shù)fun(),因為后綴”表達式的值為增1之前的值,故此時傳遞給函數(shù)的參數(shù)m值為4。fun()函數(shù)中,首先讓形參m自增k,由于此時k還是0,所以m不變,然后讓k自增m,執(zhí)行后k的值和m相同為4。最后fun()函數(shù)輸出m和k廿的值,兩個值都是4,故首先輸出了“m=4k=4”,輸出完后,k自增1(k變?yōu)?)。fun()函數(shù)執(zhí)行完畢,返回main()函數(shù)中,此時i會被自增1變?yōu)?,故接著又輸出的i和k的值都是5。故最終輸出結果是“m=4k=4i=5k=5”。

29.參照完整性參照完整性

30.本題主要考查for循環(huán)語句。for循環(huán)的增量表達式為逗號表達式,相當于k+=2;,即每次循環(huán)后k增加2。第一次循環(huán)時,k=2,因此輸出##2;第二次循環(huán)時k=4,輸出##4。此后k=6,不滿足循環(huán)條件。\r\n\r\n

31.概念(或概念級)概念(或概念級)

32.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進行替換的。

33.(double*)(double*)解析:本題考查強制類型轉(zhuǎn)換。函數(shù)malloc的默認返回是void*,若要使指針指向double類型,必須進行類型轉(zhuǎn)換,類型轉(zhuǎn)換格式為:(數(shù)據(jù)類型*)。

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

35.dd解析:d被定義為一個結構體類型變量,求結構體變量a所占存儲單元的字節(jié)數(shù)即sizeof(d)。

36.降低復雜性降低復雜性

37.ch++或ch=ch+1或++chprintf("\n")或prinff("\015")ch++或ch=ch+1或++ch,\r\nprintf('\\n')或prinff('\\015')解析:程序中使用了兩層for循環(huán),外循環(huán)的作用是控制行數(shù),內(nèi)循環(huán)的作用是控制每行的列數(shù),在內(nèi)循環(huán)中首先輸出當前字符(從\'A\'開始),[6]中應填ch++,使ch中的字符變?yōu)橐敵龅南乱粋€字符。每輸出一行就需換一次行,所以[7]處應填pfintf('\\n')。

38.隊尾隊尾解析:在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。

39.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。

40.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。

41.B解析:主函數(shù)中先定義了一個整型變量a,一個字符變量c并賦初值10,一個浮點型變量f并賦初值100.00和一個double型x,接著執(zhí)行a=f/=c*=(x=6.5),該語句從右向左計算,先把6.5賦值給x(該括號表達式的值也為6.5),此時x的值變?yōu)?.5,然后執(zhí)行c*=(x=6.5)相當于執(zhí)行c=c*(x=6.5),此時c的值為65,接著向左執(zhí)行f/c*=(x=6.5),語句相當于執(zhí)行f=f/c,所以f的值為100/65≈1.538。接著向最右邊執(zhí)行“a=f”,由于a是整型變量,所以a最后去f的整數(shù)部分為1。程序最后輸出的a、c、f和x的值(f和x只保留小數(shù)點后面1位)分別為1、65、1.5、6.5。所以,4個選項中選項B符合題意。

42.A解析:本題考核的知識點是字符串的長度。字符數(shù)組中可以存放字符串,但字符數(shù)組的長度并不是字符串的長度,字符串的長度是指字符數(shù)組中存放的有效字符個數(shù),即,\'\\0\'之前的字符數(shù)。字符數(shù)組s中依次存放的字符是:\'\\\\'1'4'1'141'a'b'c'\\t\'和最后一個字符串結束標記\'\\0\',故字符串的長度是9。所以,4個選項中A為所選。

43.C解析:C語言中的關鍵字有32個關鍵字(參見C語言教程),本題中只有C符合題意。

44.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進行整體引用,因此選項A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項B是對的。C語言程序在運行過程中,系統(tǒng)不自動檢驗數(shù)組元素的下標是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。

45.C解析:getchar():此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設備)輸入—個字符。

2.putchar():此函數(shù)的作用是向終端輸出—個字符,也可以輸出控制字符。

本題在輸入字符時,ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。

46.C解析:#define宏名的有效范圍為定義命令之后到本源文件結束,可以在程序中使用#undef命令終止宏定義的作用域。本題由#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。

47.A解析:本題考查文件使用方式標識符,以“葉”方式打開一個已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時,可以進行追加或讀操作。

48.D

49.B解析:本程序的作用是將字符串str倒序。語句p=str+strlen(str)/2+1;將指針變量p指向字符\'e\'所在的存儲單元,P-2指向字符,\'c\'所在的存儲單元,在函數(shù)f中將這兩個存儲單元的內(nèi)容交換,然后將f函數(shù)中指向字符\'e\'的指針變量s加1,指向字符\'c\'的指針變量t減1,繼續(xù)將s和t指向的存儲單元的內(nèi)容進行交換,直到s指向的存儲單元的內(nèi)容為空為止。所以本題程序輸出的結果是字符串'abcdefe”的倒序形式'gfedcba'。

50.D解析:本題考查數(shù)組指針的應用。選項D)第一層括號中為數(shù)組a中第i項元素的值,外面再加指針運算符沒有意義。

51.D

52.A解析:關系表中,每一行稱為一個元組,對應表中的一條記錄;每一列稱為表中的一個屬性,對應表中的一個字段;在二維表中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。

53.C

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

55.B本題主要考查位運算?!鞍次划惢颉边\算(^)是雙目運算符,其功能是把參與運算的兩數(shù)各對應的二進制位相異或,它在操作時,兩對應位相同結果為0,不同則為1?!白笠啤边\算(<<)的功能是把“<<”左邊的運算數(shù)的各二進制位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。左移時,若左端移出的部分不包含有效二進制數(shù)1,則每左移一位,相當于移位對象乘以2。

本題中,有三個字符型的變量x,y,z,其中x和y的值分別為3和6。先轉(zhuǎn)換為二進制數(shù)分別為00000011和00000110。本題中需要注意的是邏輯左移運算符的優(yōu)先級比按位異或運算符的優(yōu)先級高,因此,先將y進行運算邏輯左移2位操作,得到的結果為00011000,然后進行按位異或運算,得到最后的結果是00011011。本題正確的答案選B。

56.C

57.D

58.B解析:按邏輯位運算的特定作用主要有3點:①用按位與運算將特定位清0或保留特定位:②用按位或運算將特定的位置設置為1;③用按位異或運算將某個變量的特定位翻轉(zhuǎn)或交換兩個變量的值。

59.B解析:關系數(shù)據(jù)庫邏輯設計的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關系模式。首先,從E-R圖到關系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關系,E-R圖中屬性也可以轉(zhuǎn)換成關系的屬性,實體集也可以轉(zhuǎn)換成關系。

60.D冒泡排序(BubbleSort)的基本概念是:依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個和第2個數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。至此第一趟結束,將最大的數(shù)放到了最后。在第二趟:仍從第一對數(shù)開始比較(因為可能由于第2個數(shù)和第3個數(shù)的交換,使得第1個數(shù)不再小于第2個數(shù)),將小數(shù)放前,大數(shù)放后,一直比較到倒數(shù)第二個數(shù)(倒數(shù)第一的位置上已經(jīng)是最大的),第二趟結束,在倒數(shù)第二的位置上得到一個新的最大數(shù)(其實在整個數(shù)列中是第二大的數(shù))。如此下去,重復以上過程,直至最終完成排序。

61.B在定義*p=&r時,是表示r的地址賦給了p所指的存儲單元,因此選項B正確。

62.C“P”是指針變量,指向一個地址:“*P”為P指針所指向地址的內(nèi)容“&”是取變量地址。

63.C本題主要考查三目運算符(?:)。在本題中,有三個整型變量a、b、c,它們的初值分別為25、14、19,然后執(zhí)行三目運算,a<=25&&b--<=2&&c等價于(a<=25)&&(b--<=2)&&c。

由于變量a的初值為25,因此,(a<=25)的結果為真;由于變量b的初值為14,(b--<=2)的結果為假,根據(jù)&&的性質(zhì)可知,其中的操作數(shù)只要有假,則計算結束,返回最終的結果為假,因此,后面的程序執(zhí)行printf(″###a=%d,b=%d,c=%d\n″,a,b,c)部分,那么答案只能在C和D中產(chǎn)生,從這兩個選項中給出的結果可以看出,它們的區(qū)別只有b的輸出結果,一個是13,而一個是14。從上面的程序分析,變量b進行了一次自減操作,最后的結果應該是13。因此,本題的正確答案是C。

64.C

65.A面向?qū)ο蠓椒ㄖ袑傩?、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象集合。

66.B

67.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或為“假”時執(zhí)行指定的動作,由if引導條件為“真”時執(zhí)行的操作;由else引導條件為“假”時執(zhí)行的操作。else語句要與上面最近的if語

溫馨提示

  • 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

提交評論