2022年黑龍江省綏化市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第1頁
2022年黑龍江省綏化市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第2頁
2022年黑龍江省綏化市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第3頁
2022年黑龍江省綏化市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第4頁
2022年黑龍江省綏化市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年黑龍江省綏化市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________一、單選題(20題)1.在C語言中,函數(shù)返回值的類型最終取決于()。

A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型

B.return語句中表達式值的類型

C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型

D.函數(shù)定義時形參的類型

2.有以下程序:

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

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

3.數(shù)據(jù)處理的最小單位是()。

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項D.數(shù)據(jù)結(jié)構(gòu)

4.在循環(huán)隊列中,若front與rear分別表示對頭元素和隊尾元素的位置,則判斷循環(huán)隊列空的條件是()。

A.front==rear+1B.rear==front+1C.front==rearD.front==0

5.以下符合C語言語法的賦值表達式是()。

A.d=9+e+f=d+9B.d=9+e,f=d+9C.d=9十e,e++,d十9D.d=9十e++=d十7

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

A.CB.BasicC.DDLD.DML

7.有以下程序:#include<stdio.h>main(){intx=0x9;printf(“%c\n”,‘A’+x);}程序運行后的輸出結(jié)果是()。

A.IB.JC.KD.H

8.下列敘述中錯誤的是()。A.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致,

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

C.數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫

D.數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持

9.判斷char型變量c1是否為小寫字母的正確表達式為()。

A.'a'<=c1<='z'

B.(c1>=A)‖(c1<=z)

C.('a'=>c1‖('z'<=c1)

D.(c1>='a')&&(c1<='z')

10.

11.在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個學(xué)生信息的數(shù)據(jù)單位是()。

A.文件B.數(shù)據(jù)庫C.字段D.記錄

12.

13.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234

14.有以下程序:

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

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

15.設(shè)有定義:#include<stdio.h>#include<stdlib.h>typedefstruct{intx,y;}T;typedefstruct{intx,y;}*USER;USERfun(){USERp;p=(USER)malloc(sizeof(T));p->x=1;p->y=2;returnp;}函數(shù)fun返回值的類型是()。

A.T類型的結(jié)構(gòu)體B.指向結(jié)構(gòu)體類型的指針C.int類型的元素D.int類型的指針

16.

17.設(shè)變量已正確定義并賦值,下列表達式中正確的是()。

A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

18.程序運行后的輸出結(jié)果是()。A.3B.4C.5D.6

19.定義學(xué)生選修課程的關(guān)系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其屬性分別為學(xué)號、姓名、課程號、課程名、成績、學(xué)分)則對主屬性部分依賴的是()。

A.C#→CnB.(S#,C#)→GC.(S#,C#)→S#D.(S#,C#)→C#

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

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

二、2.填空題(20題)21.下列程序的運行結(jié)果是______。

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

22.下面程序的功能是:計算1~10之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta,b,c,i;

a=c=0;

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

{a+=i;

【】;

c+=b;}

printf("偶數(shù)之和=%d\n",a);

printf("奇數(shù)之和=%d\n",c-11);}

23.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。

24.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。

25.設(shè)有定義:

struct{inta;floatb;charc;}abc;*p_abc=&abc;

則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。

26.設(shè)函數(shù)findbig已定義為求3個數(shù)中的最大值,以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請?zhí)羁铡?/p>

main()

{intfindbig(int,int,int);

int(*f)(),x,y,z,big;

f=【】。

scanf("%d%d%d",&x,&y,&z);

big=(*f)(x,y,z);

printf("big=%d\n",big);

}

27.函數(shù)compare的功能是比較兩個字符串是否相等,若相等則函數(shù)返回1,否則返回o,請?zhí)羁铡?/p>

compare(chars[],chart[])

{

inti=0

while(s[i]==t[i]&&【】)i++;

return(【】?1:0);

}

28.在C語言中,字符的比較就是對它們的【】碼進行比較。

29.在關(guān)系運算中,【】運算是在指定的關(guān)系中選取所有滿足給定條件的元組,構(gòu)成一個新的關(guān)系,而這個新的關(guān)系是原關(guān)系的一個子集。

30.下面函數(shù)用來求兩個單精度數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)羁铡?/p>

voidsub(floatx,floaty,【】z)

{【】=x+y;}

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

32.設(shè)有以下結(jié)構(gòu)類型說明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是【】。

structstud

{charnum[6];

mts[4];

doubleave;

}a,*p;

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

#include<stdio.h>

main()

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

char*ptr1=a,*ptr2=b;

intk;

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

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

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

34.有以下程序:

voidfun(int*a,inti,intj)

{intt;

if(i<j)

{t=a[i];a[i]=a[j];a[j]=t;

i++;j--;

fun(a,i,j);

}

}

main()

{intx[]=(2,6,1,8),i;

fun(x,0,3);

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

}

程序運行后的輸出結(jié)果是【】。

35.在算法正確的前提下,評價一個算法的兩個標準是空間復(fù)雜度和()。

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

37.以下程序的運行結(jié)果是【】。

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

main()

{inti=6,j=8,k;

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

}

38.在面向?qū)ο蟮某绦蛟O(shè)計中,類描述的是具有相似性質(zhì)的一組【】。

39.若有如下定義,則該數(shù)組的第一維大小為【】。

intb[][4]={1,2,3,4,5,6,7,8,9}

40.有以下程序:

#include<stdio.h>

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

三、1.選擇題(20題)41.常采用的兩種存儲結(jié)構(gòu)是()。

A.順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)

42.設(shè)變量a、b、c、d和y都已正確并賦值。若有以下if語句:

if(a<b)

if(c==d)y=0;

elsey=1;

該語句所表示的含義是______。

A.

B.

C.

D.

43.以下程序的功能是進行位運算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,B);}程序運行后的輸出結(jié)果是()。

A.43B.73C.70D.40

44.有以下程序

voidf(int*q)

{inti=0;

for(;i<5;i++)(*q)++;

}

main()

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

f(a);

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

}

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

A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,

45.下列描述中正確的是()。

A.軟件工程只是解決軟件項目的管理問題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題

C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開發(fā)過程中的技術(shù)問題

46.有以下函數(shù)char*fun(char*p){returnp;}該函數(shù)的返回值是______。

A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值

47.若a、b、c1、c2、x、y均是整型變量,則正確的switch語句是()。

A.switch(a+b);{casel:y=a+b;break;case0:y=a-b;break;}

B.switch(a*a+b*b){case3:case1:y=a+b;break;case3:y=b-a;break;}

C.switcha{casec1:y=a-b;break;casec2:x=a*d;break;default:x=a+b;}

D.switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;case10:case11:y=a—b;break;}

48.表達式'8'-'2'的值是()。

A.整數(shù)6B.字符6C.表達式不合法D.字符8

49.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細設(shè)計B.需求分析C.總體設(shè)計D.編程調(diào)試

50.有以下程序main(){unsignedinta;intb=-l;a=b;printf("%u",a);}程序運行后的輸出結(jié)果是

A.-1B.65535C.32767D.-32768

51.關(guān)于if后一對圓括號中的表達式,以下敘述中正確的是()

A.只能用邏輯表達式B.只能用關(guān)系表達式C.既可用邏輯表達式也可用關(guān)系表達式D.可用任意表達式

52.已知字母A的ASCII碼為十進制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的輸出是_________。

A.67,DB.B,CC.C,DD.不確定的值

53.以下各選項企圖說明一種新的類型名,其中正確的是______。

A.typedefv1int

B.typedefv2=int;

C.typedefintv3;

D.typedefv4=int

54.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系

55.C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。

A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個成員駐留在內(nèi)存中

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

A.使文件位置指針重新返回文件的開始位置

B.將文件位置指針指向文件中所要求的特定位置

C.使文件位置指針指向文件的末尾

D.使文件位置指針自動移至下一個字符位置

57.下列對于軟件測試的描述中正確的是______。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運行結(jié)果正確

C.軟件測試的目的是盡可能地多發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

58.以下程序的輸出結(jié)果是()。#include<stdio.h>charcchar(chareh){if(ch>='A,&&ch<='Z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchsr(*p);p++;}printf("%s\n",s);}

A.abc+ABC=DEFdef

B.abc+abc=defdef

C.abcABCDEFdef

D.abcabcdefdef

59.開發(fā)大型軟件時,產(chǎn)生困難的根本原因是()

A.大系統(tǒng)的復(fù)雜性B.人員知識不足C.客觀世界千變?nèi)f化D.時間緊、任務(wù)重

60.有下列程序:#include<stdio.h>main(){inta=6,b=7,m=1;switch(a%2){case0:m++;break;case1=m++;switch(b%2){defaut:m++;case0:m++;break;}}printf("%d\n",m);}程序運行后的輸

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

四、選擇題(20題)61.設(shè)有以下語句

charx=3,y=6,z;

z=x^y<<2;

則z的二進制值是

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

62.以下程序段完全正確的是()。

A.int*P;scanf("%d",&p);

B.int*P;scanf("%d",p);

C.intk,*p=&k;scanf("%d",p);

D.intk,*p;*p=&k;scanf("%d¨,p);

63.當執(zhí)行以下程序段時,()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤

64.

65.簡單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

66.若變量已正確定義并賦值,以下符合C++語言語法的表達式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

67.

68.結(jié)構(gòu)化程序設(shè)計的三種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

69.

70.設(shè)變量a是int型,f是int型,i是double型,則表達式10+a+i*f值的數(shù)據(jù)類型為

A.intB.floatC.doubleD.不確定

71.若有以下語句:typedefstructS{int9;charh;}T;以下敘述中正確的是()。

A.可用s定義結(jié)構(gòu)體變量B.可用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量

72.若有以下程序

#include<stdio.h>

voidf(intn);

main()

{

voidf(intn);

f(5);

}

voidf(intn)

{

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

}

則以下敘述中不正確的是

A.若只在主函數(shù)中對函數(shù)f進行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f

B.若在主函數(shù)前對函數(shù)f進行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)f

C.對于以上程序,編譯時系統(tǒng)會提示出錯信息:對f函數(shù)重復(fù)說明

D.函數(shù)f無返回值,所以,可用void將其類型定義為無返回值型

73.有以下程序:

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

A.4321098765B.5678901234C.0987654321D.0987651234

74.

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

#include<stdio.h>

main

{inta=0,i;

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

{switch(i)

{case0:

case3:a+=1;

case1;

case2:a+=2;

default:a+=3;

}

}

printf("%d",a);

}

A.19B.1C.6D.8

75.

76.

77.

78.

79.

80.有如下嵌套的if語句:

if(a<b)

if(a<c)k=a;

elsek=C:

else

if(b<c)k=b;

elsek=C;

以下選項中與上述if語句等價的語句是()。

A.k=(a<b)?a:b;k=(b<c)?b:C;

B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);

C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);

D.k=(a<b)?a:b;k=(a<c)?a:c;

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:求出如下分數(shù)序列的前n項之和,結(jié)果通過函數(shù)值返回。例如,若n=5,則應(yīng)輸出8.391667。請改正程序中的錯誤,使其得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將一個數(shù)字字符串轉(zhuǎn)換成一個整數(shù)(不得調(diào)用C語言提供的將字符串轉(zhuǎn)換成整數(shù)的函數(shù))。例如,若輸入字符串“-1234”,則函數(shù)把它轉(zhuǎn)換成整數(shù)值-1234。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<string.h>longfun(char*p){}voidmain(){ chars[6]; longn; printf(“Enterastring:\n”); gets(s); n=fun(s); printf(“%ld\n”,n);}

參考答案

1.A解析:在C語言中,應(yīng)當在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達式類型一致。如果函數(shù)值的類型和return語句中的表達式類型不一致,則以函數(shù)值的類型為準,由系統(tǒng)自動進行轉(zhuǎn)換,即函數(shù)類型決定返回值的類型。

2.D調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。

3.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運算。故正確答案為選項C)。

4.C

5.B

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

7.B“printf(“%C\\n”,‘A’+X),x=0X9;”中0x9是十六進制數(shù),轉(zhuǎn)為十進制數(shù)x=9?!皃rintf(“%C\\n”,‘A’+9);”,輸出格式要求是“%c”,因此將字符‘A’按字母順序向后偏移9個位置,可得結(jié)果為“J”。故本題答案為B選項。

8.A解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。數(shù)據(jù)的邏輯結(jié)構(gòu),是數(shù)據(jù)間關(guān)系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管其在計算機中的存儲方式。數(shù)據(jù)的存儲結(jié)構(gòu),又叫物理結(jié)構(gòu),是邏輯結(jié)構(gòu)在計算機存儲器里的實現(xiàn)。這兩者之間沒有必然的聯(lián)系。因此,選項A的說法是錯誤的。

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

數(shù)據(jù)庫設(shè)計是在數(shù)據(jù)庫管理系統(tǒng)的支持下,按照應(yīng)用的要求,設(shè)計一個結(jié)構(gòu)合理、使用方便、效率較高的數(shù)據(jù)庫及其應(yīng)用系統(tǒng)。數(shù)據(jù)庫設(shè)計包含兩方面的內(nèi)容:一是結(jié)構(gòu)設(shè)計,也就是設(shè)計數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構(gòu);二是行為設(shè)計,即設(shè)計基于數(shù)據(jù)庫的各類應(yīng)用程序、事務(wù)等。因此,選項C的說法是錯誤的。

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

9.D解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項的這種形式在C語言中沒有,所以選項D)正確.

10.A

11.D解析:在關(guān)系數(shù)據(jù)表中,行稱為元組,對應(yīng)存儲文件中的記錄,列稱為屬性,對應(yīng)存儲文件中的字段,所以本題答案為D。

12.D

13.D

14.Bswitch語句的執(zhí)行流程是:首先計算switch后面圓括號中表達式的值,然后用此值依次與各個case的常量表達式比較,若圓括號中表達式的值與某個e·*后面的常量表達式的值相等,就執(zhí)行此ca*后面的語句,執(zhí)行后遇break語句就退出switch語句;若圓括號中表達式的值與所有ca$e后面的常量表達式都不等,則執(zhí)行default后面前語句。然后退出。所以輸入l時打印65,輸入2時打印6,輸入3時打印64,輸入4時打印5,輸入5時打印6。

15.B由題意可知:使用typedef將類型“struct{intx,y;}*”重命名為“USER”,所以函數(shù)fun的返回類型為“struct{intx,y;}*”,即指向結(jié)構(gòu)體類型的指針。故本題答案為B選項。

16.D

17.A運算符“%”的左右兩個操作數(shù)均應(yīng)為整數(shù),所以B選項與D選項錯誤。C選項中不能將“x+z”的值賦給表達式“y*5”,所以C選項錯誤。故本題答案為A選項。

18.B[解析]&按位與,如果兩個相應(yīng)的二進制位都為1.則該位的結(jié)果值為1.否則為0.按位或兩個相應(yīng)的二進制位中只要有一個為1.該位的結(jié)果值為1.2的二進制為0000010.4的二進制為000000所以做或運算結(jié)果為0000110.該數(shù)與5即00000101做與操作結(jié)果為0000100.即4.

19.A關(guān)系SC中的主鍵是(S#,C#),但C#(課程號)單獨就可以決定Cn(課程名),存在著對主鍵的部分依賴。本題答案為A選項。

20.D

21.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。

22.b=i+1b=i+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時c去掉多加的11,即為1~10之間的奇數(shù)之和。

23.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。

24.非線性結(jié)構(gòu)非線性結(jié)構(gòu)

25.->->解析:結(jié)構(gòu)變量abc有成員a,并有指針pabc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的形式有abc.a和p_abc->a。

26.findbigfindbig解析:f是指向函數(shù)的指針變量,根據(jù)題意要求,空格處應(yīng)填入findbig。

本題目考查:C語言中指向函數(shù)的指針變量定義的一般形式為;

數(shù)據(jù)類型標識符(*指針變量名)();

“數(shù)據(jù)類型標識符”表示函數(shù)返回值的類型。

函數(shù)的調(diào)用可以通過函數(shù)名調(diào)用,也可以通過函數(shù)指針調(diào)用。在給函數(shù)指針變量賦值時,只需給出函數(shù)名而不必給出參數(shù)。(*p)()表示定義一個指向函數(shù)的指針變量,專門用來存放函數(shù)的入口地址,可以先后指向不同的指針變量。用函數(shù)指針調(diào)用函數(shù)時,只需要將(*p)代替函數(shù)名即可,在(*p)之后的括號中,根據(jù)需要寫上參數(shù)。

27.s[i]&&t[i]或s[i]!='\0'&&t[i]!='\0'!(s[i]-t[i])s[i]&&t[i]或s[i]!='\\0'&&t[i]!='\\0'\r\n!(s[i]-t[i])解析:while后括號中的判斷條件為兩個字符串相同位置上的字符相等,且兩個字符串都沒有結(jié)束,則循環(huán)。故第一空應(yīng)該填s[i]&&t[i]或其他等價表達式。如果兩個字符串完全相等,則while循環(huán)退出時s[i]和t[i]的值同時為0,否則s[i]和t[i]不相等。故表達式s[i]-t[i]在字符串相等時為0,不相等時為非0,所以第二空應(yīng)該填!(s[i]-t[i])就滿足題意了。

28.ASCⅡ

29.選擇選擇解析:關(guān)系運算中,選擇運算是在指定的關(guān)系中選取所有滿足給定條件的元組,構(gòu)成一個新的關(guān)系,而這個新的關(guān)系是原關(guān)系的一個子集。

30.float**zfloat*\r\n*z解析:C程序中可以通過傳送地址的方式在被調(diào)用函數(shù)中直接改變被調(diào)用函數(shù)中變量的值,從而達到函數(shù)之間數(shù)據(jù)的傳遞。

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

32.2222解析:C語言里char類型占1個字節(jié),int類型占2個字節(jié),float類型占4個字節(jié),double類型占8個字節(jié),因此變量a在內(nèi)存中所占字節(jié)數(shù)=1*6+4*2+1*8=6+8+8=22。

33.gaga解析:考查了用字符指針處理字符串的方法。用字符指針處理字符串,首先要使指針指向這個字符串,即題中的ptr1=a和ptr2=b,然后就是通過指針的移動可以引用到字符串中的每一個字符。題中的*(ptr1+k)是使指針ptr1向后移動k個位置,然后取出指向的字符。

34.81628162解析:第一次調(diào)用函數(shù)fun時,x[0]=2、xL1]=6、x[2]=1、x[3]=8,執(zhí)行完函數(shù)fun后,x[0]與x[3]的值互換,即x[0]=8、x[1]=6、x[2]=1、x[3]=2;第二次調(diào)用函數(shù)fun時,i=1、j=2,故將x[1]與x[2]的值互換,即得x[0]=8、x[1]=1、x[2]=6、x[3]=2。

35.時間復(fù)雜度時間復(fù)雜度解析:在算法正確的前提下,評價一個算法的兩個標準是空間復(fù)雜度和時間復(fù)雜度。算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。

36.14

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

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

39.3

40.-4-4解析:因為n=0,所以!n為真,執(zhí)行x-=1;得到x=x=2-1=1;m=1為真,執(zhí)行x-=2;得到x=x-2=1-2=-1;x=-1為真,執(zhí)行x-=3;得到x=x-3=-1-3=-4。

41.AA?!窘馕觥烤€性表的存儲通常分為兩種存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)。

\n

42.C解析:if語句中else是與其最接近的if相匹配,因此是c=d時y=0,c≠d時y=1,它們都是在a<b的情況下的。

43.A解析:本題考查位運算。位運算的對象應(yīng)為二進制的形式。7的二進制表示為00000111,3的二進制表示為00000011,7與3相異或得00000100,即十進制數(shù)4,表達式“~4&3”先進行位反操作,再進行位與,即11111011&00000011=00000011,即十進制數(shù)3。所以應(yīng)輸出為4和3。

44.B解析:調(diào)用函數(shù)f()時,將數(shù)組a的地址傳遞給了指針q,此時q指向的就是數(shù)組a的第一個元素a[0]。在5次循環(huán)過程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為“6,2,3,4,5”。

45.CC?!窘馕觥寇浖こ淌侵笇⒐こ袒乃枷霊?yīng)用于軟件的開發(fā)、應(yīng)用和維護的過程,包括軟件開發(fā)技術(shù)和軟件工程管理。

46.B解析:p本身就是一個字符型指針變量,返回p也就是返回變量p中存放的地址值。

47.D解析:switch語句后不能有分號,故選項A錯誤;switch語句中的常量不能在分支重復(fù)出現(xiàn),故選項B錯誤;選項C中,switch后的表達式必須要加括號,case后的表達式必須是常量,故選項C錯誤;因此只有選項D正確。

48.A解析:在C語言中,雖然字符都是變?yōu)槠鋵?yīng)的ASCII碼值來參與算術(shù)運算的,但字符間的相對位置關(guān)系還是不變的,字符8和字符2的ASCII碼值相差仍是6。

49.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個模塊的功能、建立與已確定的軟件需求的對應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細設(shè)計的任務(wù)是:在使用程序設(shè)計語言編制程序以前,對所采用算法的邏輯關(guān)系進行分析,設(shè)計出全部必要的過程細節(jié),并給予清晰的表達。需求分析是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計階段。

50.B解析:本題考核的知識點是無符號整型數(shù)據(jù)的簡單運用。程序中定義了一個無符號整型變量a和一個整型變量b,并且給它賦初值為-1,整型在計算機中都以二進制表示的,-1在二進制表示為1000000000000001,所以當表示為無符號整數(shù)時轉(zhuǎn)換為十進制為32767,故最后輸出的無符號型a的值為32767。所以,4個選項中選項B符合題意

51.D

52.A解析:由于字符“5”和“3”的ASCII碼相差為2,所以ch1經(jīng)過運算后的值應(yīng)為65+2=67;同理,ch2經(jīng)過運算后的值應(yīng)為65+3=68,即是字符“D”。

53.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當于為數(shù)據(jù)類型取個別名。

54.CC。【解析】數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。

55.A解析:C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中。

56.A解析:函數(shù)rewind的功能是將文件指針重新指向一個流的開頭。用法如下:

intrewind(FILE*stream);并且無返值。

57.C解析:軟件測試的目的:盡可能地多發(fā)現(xiàn)程序中的錯誤,不能也不可能證明程序沒有錯誤,軟件測試是一個發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件調(diào)試的目的是發(fā)現(xiàn)錯誤的位置,并改正錯誤。

58.B解析:本題中cchar函數(shù)的作用是:如果參數(shù)ch是大寫字母,則將它轉(zhuǎn)換成小寫字母,而對大寫字母以外的字符不起作用。

59.A開發(fā)大型軟件時,產(chǎn)生困難的原因有很多,如需求難以捕捉、員工水平有限、工作安排不太合理、進度控制難以把握、系統(tǒng)開發(fā)時間有限等元素,但這些都不是根本的原因,根本的原因是大系統(tǒng)的復(fù)雜性。

60.B解析:本題考查switch語句。第一個switch語句,因為a=6,a%2=0,所以執(zhí)行case0,將m加1,遇到break語句跳出switch語句,結(jié)束循環(huán)。

61.B本題主要考查位運算?!鞍次划惢颉边\算(^)是雙目運算符,其功能是把參與運算的兩數(shù)各對應(yīng)的二進制位相異或,它在操作時,兩對應(yīng)位相同結(jié)果為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位操作,得到的結(jié)果為00011000,然后進行按位異或運算,得到最后的結(jié)果是00011011。本題正確的答案選B。

62.C\nA中P是指針,沒有初始化,且取P的地址即類型為指向地址的地址,與輸出參數(shù)類型不符。B中指針P沒有初始化,且P所指變量值不明。D*p是整型變量,&k是整型變量的地址。所以選C。

\n

63.Ado-wlfile的功能是先執(zhí)行一次循環(huán)體,再判斷條件是否成立,當x=-1時,執(zhí)行do語句,x=x*x=1,接著執(zhí)行while后的表達式,其值為0,退出循環(huán),因此循環(huán)體只執(zhí)行了一次。

64.A

65.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。

66.B解析:a=b=c+2實際上相當于a=(b=c+2),進而可分解為兩個表達式:b=c+2和a=b。注意:選項A)中包含一個不合法的運算符“:=”;選項C)應(yīng)改為(int)18.5%3;選項D)可理解為兩個表達式:a+7=c+b和a=a+7,其中第一個是錯的,因為C++語言規(guī)定賦值號的左邊只能是單個變量,不能是表達式或常量等。注意:C++語言賦值語句的運用,

67.D

68.D結(jié)構(gòu)化程序設(shè)計以模塊化設(shè)計為中心,采用自頂向下、逐步求精的程序設(shè)計方法。任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來實現(xiàn)。

69.D

70.C在本題中,分別定義了一個整型變量a和f、雙精度型變量i。然后求表達式10+a+i*f結(jié)果的數(shù)據(jù)類型。

在C語言中,對應(yīng)不同類型數(shù)據(jù)間的運算,將運算結(jié)果保存為精度較高的操作數(shù)類型,如整

溫馨提示

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

評論

0/150

提交評論