2022-2023年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第1頁(yè)
2022-2023年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第2頁(yè)
2022-2023年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第3頁(yè)
2022-2023年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第4頁(yè)
2022-2023年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩106頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022-2023年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.fseek函數(shù)的正確調(diào)用形式是()。

A.fseek(文件指針,起始點(diǎn),位移量)

B.fseek(文件指針,位移量,起始點(diǎn))

C.fseek(位移量,起始點(diǎn),文件指針)

D.fseek(起始點(diǎn),位移量,文件指針)

2.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

3.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法的描述錯(cuò)誤的是()。

A.選用的結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口

B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)

C.不允許使用GOT0語句

D.語言中若沒有控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬

4.以下敘述中錯(cuò)誤的是()。

A.線性結(jié)構(gòu)也能采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

B.線性結(jié)構(gòu)一定能采用順序存儲(chǔ)結(jié)構(gòu)

C.有的非線性結(jié)構(gòu)也能采用順序存儲(chǔ)結(jié)構(gòu)

D.非線性結(jié)構(gòu)一定不能采用順序存儲(chǔ)結(jié)構(gòu)

5.

6.用單鏈表表示的鏈?zhǔn)疥?duì)列,隊(duì)頭在鏈表的()位置。

A.鏈頭B.鏈尾C.鏈中D.可以由自己確定

7.以下敘述中正確的是

A.語句inta[8]={0};是合法的

B.語句inta[]={0};是不合法的,遺漏了數(shù)組的大小

C.語句chara[2]={"A","BII};是合法的,定義了一個(gè)包含兩個(gè)字符的數(shù)組

D.語句chara[3];a="AB";是合法的,因?yàn)閿?shù)組有三個(gè)字符空間的容量,可以保存兩個(gè)字符

8.

9.在JavaScript語言中,要定義局部變量則可以()。

A.由關(guān)鍵字private在函數(shù)內(nèi)定義

B.由關(guān)鍵字private在函數(shù)外定義

C.由var在函數(shù)內(nèi)定義

D.由關(guān)鍵字var在函數(shù)外定義

10.下述程序執(zhí)行的輸出結(jié)果是()。#includemain{chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}A.A.are&youB.youC.areD.&

11.若變量已正確定義,要求程序段完成5!的計(jì)算,不能完成此操作的程序段是______。

A.for(i=1,p=1;i<=5;i++)p*=i;

B.for(i=1;i<=5;i++){p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i;i++;}

D.i=1;p=1;do{p*=i;i++;}while(i<=5);

12.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A.switch(a+b){case1:prinf("*\n");.case2+1:printf("**(n");}

B.switch(int)x);{case1:print("*\n");.case2:printf(**\n");}

C.switch(x){case1.0:print("*\n");case2.0:print("*\n");}

D.switch(a+b){case1:print("*\n");.casec:pit(**\n");}

13.以下敘述中錯(cuò)誤的是()。

A.C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的

B.用C語言編寫的源程序不能直接在計(jì)算機(jī)上運(yùn)行

C.通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行

D.在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件

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

A.宏替換不占用程序的運(yùn)行時(shí)間

B.預(yù)處理命令行必須位于源文件的開頭

C.在源文件的一行上可以有多條預(yù)處理命令

D.宏名必須用大寫字母表示

15.下面哪種排序的平均比較次數(shù)最少()

A.插入排序B.選擇排序C.堆排序D.快速排序

16.以下正確的字符串常量是()。

A.\\\B.'abc'C.OlympicGames

17.有以下程序

#include<stdio.h>

main()

{ints;

scanf(“%d”,&s);

while(s>0)

{switch(s)

{case1;printf(“%d”,s+5);

case2:printf(“%d”,s+4);break;

case3:printf(“%d”。s+3);

default:printf(“%d”,s+1);break;

}

seanf(“%d”,&s);

}

}

運(yùn)行時(shí),若輸入12345O<回車>,則輸出結(jié)果是A.6566456B.66656C.66666D.6666656

18.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):inti=8,j=9;則下列語句:printf("i=%%d,j=%%d\n",i,j);輸出的結(jié)果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

19.在瀏覽WWW時(shí),如果連接到一個(gè)安全的站點(diǎn),應(yīng)當(dāng)以()開頭來書寫統(tǒng)一資源定位器。

A.shttp://B.http:s//C.http://D.https//

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

A.用戶定義的函數(shù)中可以沒有return語句

B.用戶定義的函數(shù)中可以有多個(gè)return語句,以便調(diào)用一次返回多個(gè)函數(shù)值

C.用戶定義的函數(shù)中若沒有return語句,則應(yīng)當(dāng)定義函數(shù)為void類型

D.函數(shù)的return語句中可以沒有表達(dá)式

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

fun(intx,inty,intz)

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

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

22.按數(shù)據(jù)流的類型,結(jié)構(gòu)化設(shè)計(jì)方法有兩種設(shè)計(jì)策略,它們是變換分析設(shè)計(jì)和______。

23.有下列程序;

#include<stdio.h>

main()

{charc;

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

}

程序運(yùn)行時(shí),如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。

24.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{inti;

for(i=1;i<K;i++){......}

25.下述函數(shù)用于統(tǒng)計(jì)一行字符中的單詞個(gè)數(shù),單詞之間用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fo(i=0;str[i]!=【】;i++)

if(【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

26.下面程序的功能是調(diào)用sub函數(shù)計(jì)算數(shù)組a中字符串的長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>

sub(chars[])

{intn;

for(n=0;【】n++);

return【】;

}

main()

{char*a;intk;

gets(a);

【】

printf("%d",k);

27.以下fun函數(shù)的功能是:累加數(shù)組元素中的值,n為數(shù)組中元素的個(gè)數(shù)。累加的和值放入x所指的存儲(chǔ)單元中。補(bǔ)足所缺語句。

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0;k<n;k++)r=【】;

【】=r;

}

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

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

main()

{char*k="aeiou";

for(;*k;k++)printf("%c",*k);

}

30.若x為int類型,請(qǐng)寫出與!x等價(jià)的C語言表達(dá)式______。

31.有以下語句段

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值,每個(gè)輸出行從第一列開始,請(qǐng)?zhí)羁铡?/p>

n1=10

n2=20

32.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:

2345678910。

請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

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

}

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

structstud

{charnum[6];

mts[4];

doubleave;

}a,*p;

34.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

35.以下程序的功能是求下列算式中A、B、C的值,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta,b,c,k,t=348;

for(a=0;a<10;a++)

for(b=0;b<10;b++)

for(c=0;【】;c++)

{k=【】;

if(k==t)

printf("A=%dB=%dC=%d\n",a,b,c);

}

}

36.已定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為()。

37.在最壞情況下,冒泡排序所需要的比較次數(shù)為【】。

38.要求使下列程序輸出5個(gè)整數(shù),請(qǐng)?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

39.實(shí)體之間的聯(lián)系可以歸結(jié)為一對(duì)一的聯(lián)系,一對(duì)多的聯(lián)系與多對(duì)多的聯(lián)系。如果一個(gè)學(xué)校有許多教師,而一個(gè)教師只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于【】的聯(lián)系。

40.已有定義:charc=‘’;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為()。

三、1.選擇題(20題)41.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流圖(DFD)作為描述工具的軟件開發(fā)階段是()。

A.可行性分析B.需求分析C.詳細(xì)設(shè)計(jì)D.程序編碼

42.在C語言中,形參的默認(rèn)存儲(chǔ)類型是______。

A.autoB.registerC.staticD.extern

43.下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是A.數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程

B.數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變

C.關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段

D.如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字

44.以下選項(xiàng)中,非法的字符常量是______。

A.'t\'B.'\17'C.\nD.'\xaa'

45.以下不是面向?qū)ο笏枷胫械闹饕卣鞯氖?/p>

A.多態(tài)B.繼承C.封裝D.垃圾回收

46.若有說明inta[][3]={0,0);,則不正確的敘述是()。

A.數(shù)組a的每個(gè)元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

47.模塊本身的內(nèi)聚是模塊獨(dú)立性的重要性度量因素之一。在7類內(nèi)聚中,具有最強(qiáng)內(nèi)聚的一類是__________。

A.順序性內(nèi)聚B.過程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚

48.以下合法的十六進(jìn)制數(shù)是()。

A.0xB.0x4deC.0x1hD.oX77

49.若以下定義:structlink{intdata;strucklink*next;}a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):

指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

50.在c語言中,變量的隱含存儲(chǔ)類別是()。

A.autoB.staticC.externD.無存儲(chǔ)類別

51.若有如下程序:main(){chara[]={"1234"};inti,t=0;for(i=0;a[i]>='0'&&a[i]<='9';i+=2)t=10*t+a[i]一-'0';printf("%d\n',t);}則程序運(yùn)行后的輸出結(jié)果是()。

A.13B.1234C.24D.123

52.若已定義以下語句,其中0≤i≤9,則對(duì)a數(shù)組元素不正確的引用為______。inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

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

53.有以下程序#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n")}從第一列開始輸入以

A.66877B.668966C.6677877D.6688766

54.下列程序段中,不能正確賦值的是

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

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

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

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

55.下列正確的變量聲明是()

A.intm;n;k;

B.unsignedintm,n,k;

C.doubleintm,n,k;

D.intm,n,k

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

A.C程序是以函數(shù)為基本單位的,整個(gè)程序由函數(shù)組成

B.C語言程序的一條語句可以寫在不同的行上

C.C程序的注釋行對(duì)程序的運(yùn)行功能不起任何作用,所以注釋應(yīng)該盡可能少寫

D.C程序的每個(gè)語句都以分號(hào)結(jié)束

57.支持?jǐn)?shù)據(jù)庫(kù)各種操作的軟件系統(tǒng)叫做

A.數(shù)據(jù)庫(kù)管理系統(tǒng)B.文件系統(tǒng)C.數(shù)據(jù)庫(kù)系統(tǒng)D.操作系統(tǒng)

58.設(shè)有以下語句:charstrl[]="string",str2[8],*str3,*str4="string";則_______不是對(duì)庫(kù)函數(shù)的正確調(diào)用。

A.strcpy(strl,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

59.軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()

A.定義、開發(fā)、運(yùn)行維護(hù)

B.設(shè)計(jì)階段、編程階段、測(cè)試階段

C.總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試

D.需求分析、功能定義、系統(tǒng)設(shè)計(jì)

60.有以下程序:voidsum(inta[]){a[0]=a[-1)+a[1];}main(){inta[10]=(1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運(yùn)行后的輸出結(jié)果是______。

A.6B.7C.5D.8

四、選擇題(20題)61.以下選項(xiàng)中不合法的標(biāo)識(shí)符是()。

A.&aB.FORC.printD._00

62.

s1和s2已正確定義并分別指向兩個(gè)字符串。若要求:當(dāng)s1所指串大于s2所指串時(shí),執(zhí)行語句s;則以下選項(xiàng)中正確的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,sl)>O)S;

D.if(stremp(s1,s2)>O)S;

63.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄

B.數(shù)據(jù)行

C.數(shù)據(jù)塊

D.字符(字節(jié))序列

64.若有語句:Char*line[5];,以下敘述中正確的是()。

A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為Char的指針變量

B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長(zhǎng)度為5的字符型數(shù)組

C.定義line是一個(gè)指針數(shù)組,語句中的*號(hào)稱為間址運(yùn)算符

D.定義line是一個(gè)指向字符型函數(shù)的指針

65.若變量已正確定義,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++

66.下列不屬于C語言關(guān)鍵字的是()。A.A.default

B.register

C.enum

D.external

67.有以下函數(shù)intaaa(char*s){char*t=s;while(*t+t);t--:return(t-s);}以下關(guān)于aaa函數(shù)的功能敘述正確的是()。A.求字符串S的長(zhǎng)度B.比較兩個(gè)串的大小C.將串S復(fù)制到串tD.求字符串S所占字節(jié)數(shù)

68.以下關(guān)于typedef的敘述錯(cuò)誤的是()。A.用tyFedef可以增加新類型

B.typedef只是將已存在的類型用一個(gè)新的名字來代表

C.用typedef可以為各種類型說明一個(gè)新名,但不能用來為變量說明一個(gè)新名

D.用typedef為類型說明一個(gè)新名,通??梢栽黾映绦虻目勺x性

69.

A.*P=*q;B.P=q;C.*P=&nl;D.P=*q;

70.有以下程序:

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

A.2B.4C.6D.8

71.

72.有以下程序(說明:字母A的AscII值是65)程序運(yùn)行后的輸出結(jié)果是()

A.YEB.BTC.YTD.BY

73.

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

main

{inta=6,b=3,C;

if(a<b)

{c=a*b;printf("%d%d,%d\n",b,a,c);)

else

{c=b/a;printf("%d,%d,%d\n",b,a,c);)

}

A.3,6,18B.3,6,2C.6,3,18D.6,3,2

74.以下能正確定義一維數(shù)組的選項(xiàng)是()。

A.

B.

C.

D.

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

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

76.

77.以下選項(xiàng)中合法的標(biāo)識(shí)符是()。

78.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

79.下列描述錯(cuò)誤的是()。

A.繼承分為多重繼承和單繼承

B.對(duì)象之問的通信靠傳遞消息來實(shí)現(xiàn)

C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征

D.類是具有共同屬性、共同方法的對(duì)象的集合

80.有以下程序(說明:字母A的ASCIl碼值是65):

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

A.BTB.YEC.YTD.BY

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:先從鍵盤上輸入一個(gè)3行3列的矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之和。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件析下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),tt指向一個(gè)M行N列的二維數(shù)組,求出二維數(shù)組每列中值最大的元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的元素已在主函數(shù)中給出。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){}voidmain(){ intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; intp[N],i,j,k; ystem(“CLS”); printf(“Theoriginaldatais:\n”); for(i=0;i<=""p=""> { for(j=0;j<=""p=""> printf(“%6d”,t[i][j]); printf(“\n”n); } fun(t,p); printf(“\nTheresultis:\n”); for(k=0;k<n;k++)<p=""></n;k++)<> printf(“%4d”,p[k]); printf(“\n”);}

參考答案

1.B解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:

fseek(文件指針,位移量,起始點(diǎn))

“起始點(diǎn)”用0,1或2代替,0代表“文件開始”,1為“當(dāng)前位置”,2為“文件末尾”。

“位移量”指以“起始點(diǎn)”為基點(diǎn),向前移動(dòng)的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件長(zhǎng)度大于64k時(shí)不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字末尾加一個(gè)字母L表示long型。

2.A本題考查函數(shù)值的類型。在函數(shù)調(diào)用時(shí),盡管Y的類型是float.x的類型是double,但是因?yàn)楹瘮?shù)定義時(shí)沒有指定類型說明,系統(tǒng)默認(rèn)函數(shù)值的類型為int型,所以計(jì)算后Y的類型是int型。

3.C結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一是限制使用GOT0語句,但不是絕對(duì)不允許使用G0T0語句。其他三項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。

4.D滿二叉樹與完全二叉樹均為非線性結(jié)構(gòu),但可以按照層次進(jìn)行順序存儲(chǔ)。本題答案為D選項(xiàng)。

5.D

6.A

7.AB選項(xiàng)中,如給全部元素賦值,則在數(shù)組說明中,可以不給出數(shù)組元素的個(gè)數(shù);C選項(xiàng)中,chara[2]={"","B"};不合法,應(yīng)為chara[2]={′A′,′B′};;D選項(xiàng)中,字符數(shù)組只能在定義的時(shí)候可以用字符串常量來初始化,但不能夠先定義字符數(shù)組,然后再用字符串常量進(jìn)行賦值。因此A選項(xiàng)正確。

8.D

9.C

10.Astrcpy實(shí)現(xiàn)的功能是復(fù)制,該操作把a(bǔ)re復(fù)制到a中,a[0][3]='&',且strcpy(a[1],"you")把you復(fù)制到a[1]中,故輸出a為“are&you”。

11.B解析:選項(xiàng)B中每次執(zhí)行循環(huán)體都要執(zhí)行p=1,無法保存上次的運(yùn)算結(jié)果,執(zhí)行完while循環(huán)后p=5。

12.AB)選項(xiàng)中switch((int)x);語句中不應(yīng)該有最后的分號(hào)。

13.Dc語言的可執(zhí)行程序是由一系列機(jī)器指令組成的。用C語言編寫的源程序必須經(jīng)過編譯生成二進(jìn)制目標(biāo)代碼,再經(jīng)過連接才能運(yùn)行,并且可以脫離c語言集成開發(fā)環(huán)境。故答案為D)。

14.A宏替換是在編譯階段前的預(yù)處理階段,對(duì)程序中的宏完成文本替換,因此宏替換不占用運(yùn)行時(shí)間,選項(xiàng)A正確;預(yù)處理命令行無須在源文件的開頭,它可以出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的末尾,選項(xiàng)B錯(cuò)誤;在源文件的一行上至多只能有一條預(yù)處理命令,選項(xiàng)C錯(cuò)誤;宏名通常使用大寫字母表示,這并不是語法規(guī)定,只是一種習(xí)慣,選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。

15.D

16.D解析:在C語言中,字符串常量是以雙引號(hào)括起來的字符序列。故選項(xiàng)B和C不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符都是以“\\”開頭的。選項(xiàng)A中包含了三個(gè)“\\”,前兩個(gè)(\\\\)代表了一個(gè)“\\”字符,后面一個(gè)和“'”一起(\\”)被看作一個(gè)……,所以該字符串缺少一個(gè)結(jié)束的“'”,故不正確。選項(xiàng)D的兩個(gè)……之間沒有任何字符,代表的是一個(gè)空串,是合法的字符串常量,故應(yīng)該選擇D。

17.A

18.B本題考查函數(shù)的輸出格式。在printf函數(shù),格式說明符中有兩個(gè)“%”說明;將第1個(gè)%后面的字符原樣輸出,并不輸出其對(duì)應(yīng)r的變量值。

19.C

20.B函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。函數(shù)中允許有多個(gè)return語句,但每次只能調(diào)用一個(gè)return語句,因此只能返回一個(gè)函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為void。故本題答案為B選項(xiàng)。

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

22.事務(wù)分析設(shè)計(jì)事務(wù)分析設(shè)計(jì)解析:典型的數(shù)據(jù)流圖有兩種,即變換型和事務(wù)型。按照這兩種類型把設(shè)計(jì)方法分為兩類,即變換分析設(shè)計(jì)和事務(wù)分析設(shè)計(jì)。

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

24.44解析:本題考查宏定義。預(yù)編譯時(shí),首先將M的宏定義帶入K,得到N+1+1*N+1/2;再將N的宏定義帶人,得到2+1+1*2+1/2=3+2+0=5,所以循環(huán)4次。

25.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點(diǎn):

①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后—個(gè)字符;

②str[i]代表字符串str中的第i+1個(gè)字符;

③整型變量num的值是要記錄的單詞的個(gè)數(shù)。

C語言中規(guī)定字符串的最后一個(gè)字符是一個(gè)隱含的字符串結(jié)束符“\\0”,所以在題中第—個(gè)空中應(yīng)填寫“\\0”;題中第二個(gè)空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個(gè)空中應(yīng)當(dāng)填寫“num++”,通過變量num的加1累加得到字符串中的單詞個(gè)數(shù)。

26.s[n]!='\0';或s[n];nk=sub(a);s[n]!='\\0';或s[n];\r\nn\r\nk=sub(a);解析:函數(shù)sub()通過for循環(huán)計(jì)算字符串的長(zhǎng)度,當(dāng)字符串沒有結(jié)束時(shí)循環(huán),因此判斷循環(huán)與否的條件是看字符串是否結(jié)束。故第1空應(yīng)該填寫s[n];或其他等價(jià)表達(dá)式。循環(huán)結(jié)束返回字符串長(zhǎng)度值,循環(huán)變量n中累計(jì)了循環(huán)的次數(shù)即字符串的長(zhǎng)度,故第2空應(yīng)該填n。主函數(shù)中的空白處應(yīng)該是一條調(diào)用函數(shù)sub()的語句,將字符串的首地址作為實(shí)參傳遞給形參,并將返回值賦值給變量k。故第3空應(yīng)該填k=sub(a);。

27.r+b[k]或b[k]+r或r+*(b+k)或*(b+k)+r*xr+b[k]或b[k]+r或r+*(b+k)或*(b+k)+r\r\n*x

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

29.aeiou

30.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。

31.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函數(shù)有兩種參數(shù):格式控制參數(shù)和輸出項(xiàng)參數(shù),其中格式控制參數(shù)由兩種成分組成:格式說明和普通字符,普通字符將被簡(jiǎn)單地復(fù)制顯示,格式說明項(xiàng)將引起一個(gè)輸出參數(shù)項(xiàng)的轉(zhuǎn)換與顯示,它是由“%”引出并以一個(gè)類型描述符結(jié)束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因?yàn)閚1,n2為整數(shù),所以格式說明項(xiàng)為%d,也可以在%與d之間加上域?qū)?,另外還要在每行輸出結(jié)束時(shí)加轉(zhuǎn)義字符\\n進(jìn)行換行。所以,應(yīng)填寫n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。

32.!=returnj!=,returnj解析:本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個(gè)元素的下一個(gè)元素的下標(biāo),所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個(gè)元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留到新數(shù)組中。注本題中i、j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。

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

34.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)

35.c<10或c<=9(a*100+b*10+c)+(a*100+b*10+a)c<10或c<=9\r\n(a*100+b*10+c)+(a*100+b*10+a)解析:本題使用窮舉法,用一個(gè)3重循環(huán)窮舉A、B、C可以組合成的所有三位數(shù),對(duì)每種情況來判斷是否滿足題目要求,滿足則輸出3個(gè)值。因?yàn)锳、B、C分別代表一位數(shù),所以C的取值范圍是0~9,故第一空應(yīng)該填c<10或c<=9。根據(jù)下面輸出的判斷條件k==t可知,k應(yīng)該為每種情況下ABC+ABA的值,故應(yīng)該填寫(a*100+b*10+c)+(a*100+b*10+a)或者其他等價(jià)表達(dá)式。

36.11解析:用“&&”連接兩個(gè)表達(dá)式時(shí),若第1個(gè)表達(dá)式的值為“假”,則運(yùn)算結(jié)果與第2個(gè)表達(dá)式無關(guān),此時(shí)第2個(gè)表達(dá)式將不再進(jìn)行計(jì)算。本題中第1個(gè)表達(dá)式“j=!ch”值為0,所以第2個(gè)表達(dá)式i++將不再進(jìn)行計(jì)算,i的值為1。

37.n(n-1)/2n(n-1)/2解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2。

38.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個(gè)整數(shù)則需要的條件是i<=8。

39.一對(duì)多一對(duì)多解析:實(shí)體之間的聯(lián)系可歸結(jié)為一對(duì)一、一對(duì)多與多對(duì)多的聯(lián)系。如一個(gè)學(xué)校有許多教師,一個(gè)教師只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于一對(duì)多的聯(lián)系。

40.00解析:空格字符的ASCⅡ碼值為32,所以!c—o,那么0與任何值相與的結(jié)果都為0,可得b的值為0。

41.B解析:軟件開發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試五個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。

42.A解析:如果定義變量時(shí)沒有聲明變量的存儲(chǔ)類型,則默認(rèn)為auto型。

43.D數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項(xiàng)A敘述錯(cuò)誤。數(shù)據(jù)的物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),故選項(xiàng)B敘述錯(cuò)誤。關(guān)系中的行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,關(guān)系中的列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,故選項(xiàng)C敘述錯(cuò)誤。所以本題選D。

44.C解析:C語言中字符常量是以單引號(hào)括起來的單個(gè)字符,或以“\\”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個(gè)字符。

45.D解析:面向?qū)ο笏枷胫械娜齻€(gè)主要特征是:封裝性、繼承性和多態(tài)性。

46.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時(shí)應(yīng)注意下列兩點(diǎn):①在對(duì)二維數(shù)組元素賦初值時(shí),可以只對(duì)部分元素賦初值,未賦初值的元素自動(dòng)取0。②二維數(shù)組第一維的大小由下列規(guī)則確定:當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大??;當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),第一維的大小=所得商數(shù)+1。

47.D解析:內(nèi)聚性是一個(gè)模塊內(nèi)部各元素間彼此結(jié)合的緊密程度的度量。內(nèi)聚是從功能角度來度量模塊內(nèi)的聯(lián)系。內(nèi)聚共有7類,它們之㈨的內(nèi)聚性由弱到強(qiáng)排列順序?yàn)椋号既粌?nèi)聚、邏輯內(nèi)聚、時(shí)間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和功能內(nèi)聚。

48.B解析:考查十六進(jìn)制數(shù)的表示方法。十六進(jìn)制數(shù)以0x開頭,后面跟著若干位1f的數(shù),所以正確答案為B)。整形常量、實(shí)型常量和字符型常量的合法性判斷。

49.D解析:本題考核的知識(shí)點(diǎn)是在鏈表中插入結(jié)點(diǎn)的操作。在本題中指針p.指向變量a,q指向變量c。要把c插入到變量n和變量b之間,就應(yīng)該首先讓變量a的指針域指向變量c,即(*p).next=q,然后讓變量c的指針域指向變量b,即(*q).next=&b.所以,4個(gè)選項(xiàng)中D為所選。

50.A解析:auto變量:無static聲明的局部變量。用auto作存儲(chǔ)類別的聲明時(shí),可以不寫auto,存儲(chǔ)類別隱含確定為auto(自動(dòng)存儲(chǔ)類別),是動(dòng)態(tài)存儲(chǔ)方式。大多數(shù)變量是自動(dòng)變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲(chǔ)單元空間不釋放,局部變量保留原值,下次調(diào)用時(shí)可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?實(shí)際上,關(guān)鍵字'auto'可以省略,auto不寫則隱含確定為'自動(dòng)存儲(chǔ)類別',屬于動(dòng)態(tài)存儲(chǔ)方式。

51.A解析:程序中首先以字符串常量定義并初始化了一個(gè)字符數(shù)組a,此時(shí)數(shù)組a包含5個(gè)元素{'1','2','3','4','\\0'},然后定義了一個(gè)變量t,并初始化為0。接下來是一個(gè)for循環(huán),循環(huán)變量i從0開始每次遞增2,循環(huán)條件a[i]是一個(gè)數(shù)字字符。因?yàn)閍[0]、a[2]分別是數(shù)字字符'1'、'3'而a[4]不是,所以循環(huán)體執(zhí)行了兩次,第一次執(zhí)行前t為0,執(zhí)行后t=10*t+a[i]-'0'=10*0+'1'-'0'=1,所以第二次執(zhí)行結(jié)果為t=10*t+a[i]-'0'=10*1+'3'-'0'=13。程序運(yùn)行后的輸出結(jié)果是13,本題選A。

52.D

53.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個(gè)字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上,并且字符可以看作整數(shù)參與運(yùn)算。

54.C解析:本題考查了字符的輸入函數(shù)getchar和利用scanf函數(shù)輸入一個(gè)字符。用scanf輸入字符時(shí),格式說明字符應(yīng)該為%c。本題選項(xiàng)C)因?yàn)橹羔榩沒有賦初值,所以是一個(gè)不定值,不能直接將getchar讀入的字符賦給指針p所指向的字符,所以選項(xiàng)C錯(cuò)誤。

55.B

56.C解析:本題涉及C語言基本的3個(gè)知識(shí)點(diǎn):①C語言的源程序是由函數(shù)構(gòu)成的,函數(shù)是其基本單位,每一個(gè)函數(shù)完成相對(duì)獨(dú)立的功能,其中只能包括一個(gè)主函數(shù);②C語言規(guī)定每個(gè)語句以分號(hào)結(jié)束,其書寫格式是自由的,一條語句可以寫在不同的行上,或者一行也可以寫多條語句;③注釋行雖然對(duì)程序的運(yùn)行不起作用,但是它可以方便程序員閱讀,提高程序的可讀性和可移植性,所以書寫注釋行還是很有必要的。

57.A解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等操作。所以答案為A。

58.C解析:C語言中:strcpy(st1,st2);,其兩個(gè)參數(shù)均為字符指針或字符數(shù)組,選項(xiàng)C中的目的串指針str3沒有指向具體有效的存儲(chǔ)單元,故是錯(cuò)誤的調(diào)用。

59.A解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。

60.A解析:調(diào)用sum(&a[2])時(shí),a[0]=a[2]=3,a[-1]=a[1]=2,a[1)=a[3]=4,因此a[2]=6,可以看到sum函數(shù)的功能是將數(shù)組的一項(xiàng)的值改成其前一項(xiàng)的值與后一項(xiàng)的值之和。

61.Ac語言中標(biāo)識(shí)符由字母、下劃線或數(shù)字組成,且開頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標(biāo)識(shí)符。因?yàn)閏語言中區(qū)分大小寫,所以B)選項(xiàng)中的“FOR”可以作為標(biāo)識(shí)符來用。A)選項(xiàng)中含有非法字符&,因此選擇A)。

62.D

\n在C語言中,不能直接比較兩個(gè)字符串的大小,必須用特定的函數(shù)來完成,選項(xiàng)A錯(cuò)誤;選項(xiàng)B不管大于還是小于都執(zhí)行S,不符合題意;選項(xiàng)C正好相反,當(dāng)s2大于s1時(shí),執(zhí)行語句S,可知選項(xiàng)D正確。

\n

63.D解析:C語言中的文件是流式文件。流式文件是一種無結(jié)構(gòu)文件,即整個(gè)文件是一串字符流或二進(jìn)制流。文件的存取以字符或字節(jié)為單位。

64.A解析:理解復(fù)雜定義要掌握兩點(diǎn):一、右結(jié)合原則.本題中的定義char*line[5];等價(jià)于char*(line[5]);;二、自外向內(nèi)分解成typedef語句。char*(line[5]);等價(jià)于typedefchar*A;Aline[5];其中A被typedef定義成字符指針的別名,然后line被定義成A的一維數(shù)組,即字符指針的一維數(shù)組。再來看看行指針的定義char(*line)[5];它應(yīng)該被分解成typedefcharB[5];B*line;其中B被定義成包含5個(gè)元素的一維字符數(shù)組,然后line被定義成指向B的指針,即指向包含5個(gè)元素的一維字符數(shù)組的指針。所以兩者切不可混淆了,后者的括號(hào)不能省略。故本題應(yīng)該選擇A。

65.A選項(xiàng)A)是非法的表達(dá)式,C語言中沒有“<>”運(yùn)算符。

66.Dregister聲明寄存器變量enum聲明枚舉類型default開關(guān)語句中的“其他”分支

67.A在while循環(huán)開始前,指針t和s都指向字符串的起始位置。while循環(huán)的判斷條件中,判斷t所指位置是否為字符串的結(jié)束標(biāo)志,同時(shí)讓t右移一位。當(dāng)while循環(huán)結(jié)束時(shí),t自減1,此時(shí)t指向的位置是字符串的結(jié)束標(biāo)志,故t-s的值是字符串的長(zhǎng)度。

68.A用typedef沒有增加新類型,所以選擇A)。

69.A本題考查的是指針變量的賦值。題目中各變量定義后,指針變量P指向了變量n2所在的存儲(chǔ)單元,指針變量q指向了變量nl所在的存儲(chǔ)單元,要使得nl的值賦給n2,可用指針變量q所指向的存儲(chǔ)單元的值賦給指針變量P所指向的存儲(chǔ)單元,即*P=*q。

70.D本題考查位運(yùn)算符,題目中將a向左移兩位,左移兩位表示乘以4,所以答案為8,選項(xiàng)D正確。

71.C

72.Afun函數(shù)輸出ASCIl碼值為奇數(shù)的字符,所以答案選擇A)。

73.B

\n本題考查if…else語句。如果if條件成立,則執(zhí)行if下面的語句,不成立則執(zhí)行else,判斷條件,發(fā)現(xiàn)a<b不成立,則執(zhí)行else后面的語句,得c=b/a=2。

\n

74.B解析:選項(xiàng)A中定義的是5個(gè)數(shù)組元素,但賦值的時(shí)候賦的是6個(gè)元素,所以出錯(cuò);選項(xiàng)C不符合數(shù)組定義形式,數(shù)組名后應(yīng)加上“[]”;選項(xiàng)D的類型說明符錯(cuò)誤,如果用char定義就對(duì)了;選項(xiàng)B中的0,1,2,3,4,5分別表示對(duì)應(yīng)字符的\u3000ASCII碼,所以選項(xiàng)B是正確的。

75.C解析:每個(gè)C程序有且只有一個(gè)主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。

76.A

77.A標(biāo)識(shí)符由字母、數(shù)字或下劃線組成,并且數(shù)字不能開頭,所以答案選擇A)。

78.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因?yàn)轭}中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型數(shù)據(jù)被轉(zhuǎn)換為實(shí)型數(shù)據(jù)。所以雙精度型變量w的值為5.0。

79.C對(duì)象的封裝性是指從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部,其處理能力的實(shí)行和內(nèi)部狀態(tài)對(duì)外是不可見的,是隱蔽的。

80.B本題中執(zhí)行fun(a)時(shí),會(huì)取字符串a(chǎn)的第一個(gè)字母B,因?yàn)樽帜窧的ASCIl碼值為66,所以不會(huì)輸出字母8,函數(shù)只會(huì)輸出ASCIl碼值為奇數(shù)的字母,字母Y的ASCIl碼值為89,字母T的ASCIl碼值為84,字母E的ASCII碼值為69。因此B選項(xiàng)正確。

81.82.voidfun(inttt[M][N],intpp[N]){ inti,j,max; for(j=0;j<=""p=""> { max=tt[0][j]; /*假設(shè)各列中的第1個(gè)元素值最大*/ for(i=0;i<=""p=""> if(tt[i][1]>max)/*如果各列中的其他元素值比最大值大,則將這個(gè)值更大的元素看作當(dāng)前該列中值最大的元素*/ max=tt[i][j]; pp[j]=max; /*將各列的最大值依次放入pp數(shù)組中*/ }}本題函數(shù)fun()的功能是求出二維數(shù)組中每列值最大的元素。首先,假設(shè)各列中的第1個(gè)元素值最大,然后利用行下標(biāo)的移動(dòng)來依次取得各列中其他元素的值,并與假設(shè)的最大值進(jìn)行比較,如果遇到更大的,則把這個(gè)值更大的元素看作當(dāng)前該列中值最大的元素,繼續(xù)與該列中的其他元素進(jìn)行比較。2022-2023年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.fseek函數(shù)的正確調(diào)用形式是()。

A.fseek(文件指針,起始點(diǎn),位移量)

B.fseek(文件指針,位移量,起始點(diǎn))

C.fseek(位移量,起始點(diǎn),文件指針)

D.fseek(起始點(diǎn),位移量,文件指針)

2.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

3.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法的描述錯(cuò)誤的是()。

A.選用的結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口

B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)

C.不允許使用GOT0語句

D.語言中若沒有控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬

4.以下敘述中錯(cuò)誤的是()。

A.線性結(jié)構(gòu)也能采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

B.線性結(jié)構(gòu)一定能采用順序存儲(chǔ)結(jié)構(gòu)

C.有的非線性結(jié)構(gòu)也能采用順序存儲(chǔ)結(jié)構(gòu)

D.非線性結(jié)構(gòu)一定不能采用順序存儲(chǔ)結(jié)構(gòu)

5.

6.用單鏈表表示的鏈?zhǔn)疥?duì)列,隊(duì)頭在鏈表的()位置。

A.鏈頭B.鏈尾C.鏈中D.可以由自己確定

7.以下敘述中正確的是

A.語句inta[8]={0};是合法的

B.語句inta[]={0};是不合法的,遺漏了數(shù)組的大小

C.語句chara[2]={"A","BII};是合法的,定義了一個(gè)包含兩個(gè)字符的數(shù)組

D.語句chara[3];a="AB";是合法的,因?yàn)閿?shù)組有三個(gè)字符空間的容量,可以保存兩個(gè)字符

8.

9.在JavaScript語言中,要定義局部變量則可以()。

A.由關(guān)鍵字private在函數(shù)內(nèi)定義

B.由關(guān)鍵字private在函數(shù)外定義

C.由var在函數(shù)內(nèi)定義

D.由關(guān)鍵字var在函數(shù)外定義

10.下述程序執(zhí)行的輸出結(jié)果是()。#includemain{chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}A.A.are&youB.youC.areD.&

11.若變量已正確定義,要求程序段完成5!的計(jì)算,不能完成此操作的程序段是______。

A.for(i=1,p=1;i<=5;i++)p*=i;

B.for(i=1;i<=5;i++){p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i;i++;}

D.i=1;p=1;do{p*=i;i++;}while(i<=5);

12.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A.switch(a+b){case1:prinf("*\n");.case2+1:printf("**(n");}

B.switch(int)x);{case1:print("*\n");.case2:printf(**\n");}

C.switch(x){case1.0:print("*\n");case2.0:print("*\n");}

D.switch(a+b){case1:print("*\n");.casec:pit(**\n");}

13.以下敘述中錯(cuò)誤的是()。

A.C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的

B.用C語言編寫的源程序不能直接在計(jì)算機(jī)上運(yùn)行

C.通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行

D.在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件

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

A.宏替換不占用程序的運(yùn)行時(shí)間

B.預(yù)處理命令行必須位于源文件的開頭

C.在源文件的一行上可以有多條預(yù)處理命令

D.宏名必須用大寫字母表示

15.下面哪種排序的平均比較次數(shù)最少()

A.插入排序B.選擇排序C.堆排序D.快速排序

16.以下正確的字符串常量是()。

A.\\\B.'abc'C.OlympicGames

17.有以下程序

#include<stdio.h>

main()

{ints;

scanf(“%d”,&s);

while(s>0)

{switch(s)

{case1;printf(“%d”,s+5);

case2:printf(“%d”,s+4);break;

case3:printf(“%d”。s+3);

default:printf(“%d”,s+1);break;

}

seanf(“%d”,&s);

}

}

運(yùn)行時(shí),若輸入12345O<回車>,則輸出結(jié)果是A.6566456B.66656C.66666D.6666656

18.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):inti=8,j=9;則下列語句:printf("i=%%d,j=%%d\n",i,j);輸出的結(jié)果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

19.在瀏覽WWW時(shí),如果連接到一個(gè)安全的站點(diǎn),應(yīng)當(dāng)以()開頭來書寫統(tǒng)一資源定位器。

A.shttp://B.http:s//C.http://D.https//

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

A.用戶定義的函數(shù)中可以沒有return語句

B.用戶定義的函數(shù)中可以有多個(gè)return語句,以便調(diào)用一次返回多個(gè)函數(shù)值

C.用戶定義的函數(shù)中若沒有return語句,則應(yīng)當(dāng)定義函數(shù)為void類型

D.函數(shù)的return語句中可以沒有表達(dá)式

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

fun(intx,inty,intz)

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

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

22.按數(shù)據(jù)流的類型,結(jié)構(gòu)化設(shè)計(jì)方法有兩種設(shè)計(jì)策略,它們是變換分析設(shè)計(jì)和______。

23.有下列程序;

#include<stdio.h>

main()

{charc;

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

}

程序運(yùn)行時(shí),如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。

24.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{inti;

for(i=1;i<K;i++){......}

25.下述函數(shù)用于統(tǒng)計(jì)一行字符中的單詞個(gè)數(shù),單詞之間用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fo(i=0;str[i]!=【】;i++)

if(【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

26.下面程序的功能是調(diào)用sub函數(shù)計(jì)算數(shù)組a中字符串的長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>

sub(chars[])

{intn;

for(n=0;【】n++);

return【】;

}

main()

{char*a;intk;

gets(a);

【】

printf("%d",k);

27.以下fun函數(shù)的功能是:累加數(shù)組元素中的值,n為數(shù)組中元素的個(gè)數(shù)。累加的和值放入x所指的存儲(chǔ)單元中。補(bǔ)足所缺語句。

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0;k<n;k++)r=【】;

【】=r;

}

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

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

main()

{char*k="aeiou";

for(;*k;k++)printf("%c",*k);

}

30.若x為int類型,請(qǐng)寫出與!x等價(jià)的C語言表達(dá)式______。

31.有以下語句段

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值,每個(gè)輸出行從第一列開始,請(qǐng)?zhí)羁铡?/p>

n1=10

n2=20

32.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:

2345678910。

請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

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

}

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

structstud

{charnum[6];

mts[4];

doubleave;

}a,*p;

34.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

35.以下程序的功能是求下列算式中A、B、C的值,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta,b,c,k,t=348;

for(a=0;a<10;a++)

for(b=0;b<10;b++)

for(c=0;【】;c++)

{k=【】;

if(k==t)

printf("A=%dB=%dC=%d\n",a,b,c);

}

}

36.已定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為()。

37.在最壞情況下,冒泡排序所需要的比較次數(shù)為【】。

38.要求使下列程序輸出5個(gè)整數(shù),請(qǐng)?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

39.實(shí)體之間的聯(lián)系可以歸結(jié)為一對(duì)一的聯(lián)系,一對(duì)多的聯(lián)系與多對(duì)多的聯(lián)系。如果一個(gè)學(xué)校有許多教師,而一個(gè)教師只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于【】的聯(lián)系。

40.已有定義:charc=‘’;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為()。

三、1.選擇題(20題)41.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流圖(DFD)作為描述工具的軟件開發(fā)階段是()。

A.可行性分析B.需求分析C.詳細(xì)設(shè)計(jì)D.程序編碼

42.在C語言中,形參的默認(rèn)存儲(chǔ)類型是______。

A.autoB.registerC.staticD.extern

43.下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是A.數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程

B.數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變

C.關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段

D.如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字

44.以下選項(xiàng)中,非法的字符常量是______。

A.'t\'B.'\17'C.\nD.'\xaa'

45.以下不是面向?qū)ο笏枷胫械闹饕卣鞯氖?/p>

A.多態(tài)B.繼承C.封裝D.垃圾回收

46.若有說明inta[][3]={0,0);,則不正確的敘述是()。

A.數(shù)組a的每個(gè)元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

47.模塊本身的內(nèi)聚是模塊獨(dú)立性的重要性度量因素之一。在7類內(nèi)聚中,具有最強(qiáng)內(nèi)聚的一類是__________。

A.順序性內(nèi)聚B.過程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚

48.以下合法的十六進(jìn)制數(shù)是()。

A.0xB.0x4deC.0x1hD.oX77

49.若以下定義:structlink{intdata;strucklink*next;}a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):

指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

50.在c語言中,變量的隱含存儲(chǔ)類別是()。

A.autoB.staticC.externD.無存儲(chǔ)類別

51.若有如下程序:main(){chara[]={"1234"};inti,t=0;for(i=0;a[i]>='0'&&a[i]<='9';i+=2)t=10*t+a[i]一-'0';printf("%d\n',t);}則程序運(yùn)行后的輸出結(jié)果是()。

A.13B.1234C.24D.123

52.若已定義以下語句,其中0≤i≤9,則對(duì)a數(shù)組元素不正確的引用為______。inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

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

53.有以下程序#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n")}從第一列開始輸入以

A.66877B.668966C.6677877D.6688766

54.下列程序段中,不能正確賦值的是

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

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

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

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

55.下列正確的變量聲明是()

A.intm;n;k;

B.unsignedintm,n,k;

C.doubleintm,n,k;

D.intm,n,k

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

A.C程序是以函數(shù)為基本單位的,整個(gè)程序由函數(shù)組成

B.C語言程序的一條語句可以寫在不同的行上

C.C程序的注釋行對(duì)程序的運(yùn)行功能不起任何作用,所以注釋應(yīng)該盡可能少寫

D.C程序的每個(gè)語句都以分號(hào)結(jié)束

57.支持?jǐn)?shù)據(jù)庫(kù)各種操作的軟件系統(tǒng)叫做

A.數(shù)據(jù)庫(kù)管理系統(tǒng)B.文件系統(tǒng)C.數(shù)據(jù)庫(kù)系統(tǒng)D.操作系統(tǒng)

58.設(shè)有以下語句:charstrl[]="string",str2[8],*str3,*str4="string";則_______不是對(duì)庫(kù)函數(shù)的正確調(diào)用。

A.strcpy(strl,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

59.軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()

A.定義、開發(fā)、運(yùn)行維護(hù)

B.設(shè)計(jì)階段、編程階段、測(cè)試階段

C.總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試

D.需求分析、功能定義、系統(tǒng)設(shè)計(jì)

60.有以下程序:voidsum(inta[]){a[0]=a[-1)+a[1];}main(){inta[10]=(1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運(yùn)行后的輸出結(jié)果是______。

A.6B.7C.5D.8

四、選擇題(20題)61.以下選項(xiàng)中不合法的標(biāo)識(shí)符是()。

A.&aB.FORC.printD._00

62.

s1和s2已正確定義并分別指向兩個(gè)字符串。若要求:當(dāng)s1所指串大于s2所指串時(shí),執(zhí)行語句s;則以下選項(xiàng)中正確的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,sl)>O)S;

D.if(stremp(s1,s2)>O)S;

63.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄

B.數(shù)據(jù)行

C.數(shù)據(jù)塊

D.字符(字節(jié))序列

64.若有語句:Char*line[5];,以下敘述中正確的是()。

A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為Char的指針變量

B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長(zhǎng)度為5的字符型數(shù)組

C.定義line是一個(gè)指針數(shù)組,語句中的*號(hào)稱為間址運(yùn)算符

D.定義line是一個(gè)指向字符型函數(shù)的指針

65.若變量已正確定義,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++

66.下列不屬于C語言關(guān)鍵字的是()。A.A.default

B.register

C.enum

D.external

67.有以下函數(shù)intaaa(char*s){char*t=s;while(*t+t);t--:return(t-s);}以下關(guān)于aaa函數(shù)的功能敘述正確的是()。A.求字符串S的長(zhǎng)度B.比較兩個(gè)串的大小C.將串S復(fù)制到串tD.求字符串S所占字節(jié)數(shù)

68.以下關(guān)于typedef的敘述錯(cuò)誤的是()。A.用tyFedef可以增加新類型

B.typedef只是將已存在的類型用一個(gè)新的名字來代表

C.用typedef可以為各種類型說明一個(gè)新名,但不能用來為變量說明一個(gè)新名

D.用typedef為類型說明一個(gè)新名,通??梢栽黾映绦虻目勺x性

69.

A.*P=*q;B.P=q;C.*P=&nl;D.P=*q;

70.有以下程序:

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

A.2B.4C.6D.8

71.

72.有以下程序(說明:字母A的AscII值是65)程序運(yùn)行后的輸出結(jié)果是()

A.YEB.BTC.YTD.BY

73.

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

main

{inta=6,b=3,C;

if(a<b)

{c=a*b;printf("%d%d,%d\n",b,a,c);)

else

{c=b/a;printf("%d,%d,%d\n",b,a,c);)

}

A.3,6,18B.3,6,2C.6,3,18D.6,3,2

74.以下能正確定義一維數(shù)組的選項(xiàng)是()。

A.

B.

C.

D.

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

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

76.

77.以下選項(xiàng)中合法的標(biāo)識(shí)符是()。

78.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

79.下列描述錯(cuò)誤的是()。

A.繼承分為多重繼承和單繼承

B.對(duì)象之問的通信靠傳遞消息來實(shí)現(xiàn)

C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征

D.類是具有共同屬性、共同方法的對(duì)象的集合

80.有以下程序(說明:字母A的ASCIl碼值是65):

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

A.BTB.YEC.YTD.BY

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:先從

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論