2021-2022年浙江省麗水市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第1頁
2021-2022年浙江省麗水市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第2頁
2021-2022年浙江省麗水市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第3頁
2021-2022年浙江省麗水市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第4頁
2021-2022年浙江省麗水市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年浙江省麗水市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

若變量均已正確賦初值,則以下語句中

錯誤的是()。

A.tl=t2;

B.t2.numl=tl.numl;

C.t2.mark=tl.Mark

D.t2.num2=tl.hum2;

2.if語句的基本形式是:if(表達式)語句,以下關(guān)于“表達式”值的敘述中正確的是A.A.必須是邏輯值

B.必須是整數(shù)值

C.必須是正數(shù)

D.可以是任意合法的數(shù)值

3.以下選項中,能表示邏輯值“假”的是()

A.1B.0.000001C.0D.100.0

4.在非線性結(jié)構(gòu)中,每個結(jié)點()。

A.無直接前趨

B.只有一個直接前趨和個數(shù)不受限制的直接后繼

C.只有一個直接前驅(qū)和后繼

D.有個數(shù)不受限制的直接前驅(qū)和后繼

5.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯誤的是

A.data的每個成員起始地址都相同

B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C.程序段:data.a=5;printf(“%I'm”,data.C);輸出結(jié)果為5.000000

D.data可以作為函數(shù)的實參

6.一個有n個頂點的連通無向圖至少有()條邊。

A.n-1B.nC.n+1D.n+2

7.

8.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱為______。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

9.下列程序段的輸出結(jié)果是()。chara=9,b=020;prihtf("%o\n",~a&b<<1);

A.100000B.8C.40D.77

10.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運行后,若從鍵盤輸入(從第1列開始)

123<回車>

45678<回車>

則輸出結(jié)果是

A.1267B.1256C.1278D.1245

11.關(guān)系R和關(guān)系S的并運算是______。

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

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

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

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

12.在決定選取何種存儲結(jié)構(gòu)時,一般不考慮()。

A.各結(jié)點的值如何B.結(jié)點個數(shù)的多少C.對數(shù)據(jù)有哪些運算D.所用的編程語言實現(xiàn)這種結(jié)構(gòu)是否方便

13.下列描述錯誤的是()。

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

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

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

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

14.

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

f(intb[],intm,intn)

{inti,s=0;

for(i=m;i<n;i=i+2)s=s+b[i];

returns;

}

voidmain()

{intx,a[]={1,2,3,4,5,6,7,8,9};

x=f(a,3,7);

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

}A.A.10

B.18

C.8

D.15

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

A.IB.JC.KD.H

17.設(shè)有以下定義uniondata{intd1;floatd2;}demo;則下面敘述中錯誤的是()。A.A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

18.用鄰接矩陣A表示有向圖G的存儲結(jié)構(gòu),則有向圖G中頂點i的入度為()。

A.第i行非0元素的個數(shù)之和B.第i列非0元素的個數(shù)之和C.第i行0元素的個數(shù)之和D.第i列0元素的個數(shù)之和

19.

20.

二、2.填空題(20題)21.算法的復雜度主要包括時間復雜度和______復雜度。

22.若x為int類型,請寫出與!x等價的C語言表達式______。

23.軟件定義時期主要包括______和需求分析兩個階段。

24.有以下程序:

main()

{intnum[4][4]={{1,2,3,4),{5,6,7,8),{9,10,11,12),{13,14,15,16}},i,j;

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

{for(j=0;j<=i;j++)printf("%4c",'');

for(j=______;j<4;j++)printf("%4d",num[i][j]);

printf("\n");

}

}

若要按以下形式輸出數(shù)組右上半三角:

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是【】。

25.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。

26.按“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。

27.棧和隊列通常采用的存儲結(jié)構(gòu)是【】。

28.算法執(zhí)行過程中所需要的存儲空間稱為算法的______。

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

30.下列程序的運行結(jié)果為【】。

main()

{

intx,y,z;

X=12;

y=012;

z=0l2;

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

}

31.在軟件生命周期中,【】階段是花費最多、持續(xù)時間最長的階段。

32.軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預防性維護。

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

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

34.以下涵數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotade(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=【】;【】=a[N-1][i];}}

35.下面程序的功能是用來統(tǒng)計文件中字符個數(shù)。請?zhí)羁铡?/p>

#include"stdio.h"

main()

{longcount=OL;

FILE*fp=【】("text.dat","r");

if(fp==0)

{printf("Openerror\n");

exit(0);

}

while(【】)

{

fgetc(fp);

count++;

}

fclise(fp);

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

}

36.有以下程序:

#include<string.h>

structSTU

{charname[10];

intnum;};

voidf(char*name,intnum)

{structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};

num=s[0].num;

strcpy(name,s[0].name);

}

main()

{structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;

p=&s[1];f(p->name,p->num);

printf("%s%d\n",p->name,p->num);

}

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

37.數(shù)據(jù)流圖的類型有【】和事務(wù)型。

38.軟件工程學把軟件從開始研制到最終軟件被廢棄的整個階段叫做軟件的【】。

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

40.關(guān)系數(shù)據(jù)庫的關(guān)系演算語言是以【】為基礎(chǔ)的DML語言。

三、1.選擇題(20題)41.有一堆零件(100到200之間),如果分成4個零件一組的若干組,則多2個零件;若分成7個零件—組,則多3個零件;若分成9個零件一組,則多5個零件。下面程序是求這堆零件總數(shù)。請選擇填空。#include<stdio.h>main(){inti;for(i=100;i<200;i++)if((i-2)%4==0)if(!((i-3)%7))if(______)printf("%d",i);}

A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9==0

42.若有以下說明和語句,則值為6的表達式是______。structstu{intn;structstu*next;};structstua[3],*p;a[0).n=5;a[0].next=&a[1];a[1].n=7;a[1].next=&a[2];a[2].n=9;a[2].next='\0';p=&a[0];

A.p++->nB.p->n++C.++p->nD.(*p).n++

43.若有如下程序:sub(p,n)int(*p)[3],n;{inti;for(i=0;i<=n;i++)printf("%d",p[i][2]);}main(){ints[3][3]={1,2,3,4,5,6,7,8,9};sub(s,2);}則程序運行后的輸出結(jié)果是()。

A.369B.248C.456D.789

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

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

45.下列變量定義中,合法的是______。

A.short_a=1-.le-1;

B.doubleb=1+5e2.5;

C.longdo=0xfdaL;

D.float2_and=l-e-3;

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

A.程序設(shè)計過程中的主要工作是編制程序

B.程序設(shè)計的主要目標是編制出運行結(jié)果正確的程序

C.不良的程序設(shè)計風格會增加程序的復雜性

D.上述三種說法都不對

47.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}

A.5B.3C.7D.1

48.執(zhí)行以下的程序段后,m的值是______。inta[2][3]={{1,2,3},(4,5,6}};intm,*p;p=&a[0][0];m=p[4];

A.4B.5C.3D.不確定

49.以下選項中,當x為大于l的奇數(shù)時,值為0的表達式是

A.x%2==1B.x/2C.x%2!=0D.x%2==0

50.下列字符數(shù)組初始化語句中,不正確的是()。

A.charc[]='goodmorning';

B.char,c[20]="goodmoming";

C.charc[]={'a','b','c','d'};

D.charc[]={"goodmoming"};

51.有以下程序:#include<stdio.h>main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運行后的輸出結(jié)果是()。

A.12353514B.12353513C.12343514D.12343513

52.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

53.假定w、x,y、z、m均為int型變量,有如下程序段;w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;則該程序段執(zhí)行后,m的值是()

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

54.以下程序的輸出結(jié)果是()main(){inta[10]={1,2,3,4,5,6,7,8,9,10,},*p=a;printf("%d\n",*(p+2));}

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

55.若有如下程序:main(){inta,b,C,m,n,k;m=n=k=0;a=-1;b=2;C=3;if(c>0)m=a+b;if(a<=0){if(b>0)if(c<=0)n=a=b;}elseif(c>0)n=a-b;elsek/=c;printf("%d,%d,%d,",m,n,k);}則程序運行后的輸出結(jié)果是()。

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

56.MIPS常用來描述計算機的運算速度,其含義是()。A.A.每秒鐘處理百萬個字符

B.每分鐘處理百萬個字符

C.每秒鐘執(zhí)行百萬條指令

D.每分鐘執(zhí)行百萬條指令

57.下面程序的輸出是______。main(){intx=3,y=6,a=0;,while(x++!=(y=1)){a+=1;if(y<x)break;}printf("x=%d,y=%d,a=%d\n,x,y,a);}

A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1

58.有如下函數(shù)調(diào)用語句func(rec1,rec2+rec3,(rec4,rec5));該函數(shù)調(diào)用語句中,含有的實參個數(shù)是______。

A.3B.4C.5D.有語法錯誤

59.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)

A.getc()B.gets()C.getehar()D.scanf()

60.下面程序段的運行結(jié)果是

chara[]="lanuage",*p;

p=a;

while(*p!=′u′){printf("%c",*p-32);p++;}

A.LANGUAGEB.languageC.LAND.langUAGE

四、選擇題(20題)61.以下選項中正確的語句組是()。

A.char*s;s={f.BOOK!”};

B.char*s;s:”BOOK!”:

C.chars[10];s=”BOOK!”;

D.cbars[];s:”BOOK!n:

62.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是A.循環(huán)隊列B.帶鏈隊列C.二叉樹D.帶鏈棧

63.

64.

65.有以下程序:

main

{inti,j;

for(j=10;j<11;j++)

{for(i=9;i<j;i++)

if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結(jié)果是()。A.A.11B.10C.9D.1011

66.下列選項中不合法的十六進制數(shù)是()。

A."0"xffB."0"X11C."0"x1gD.”0”Xabc

67.

68.有以下程序

69.以下定義數(shù)組的語句中錯誤的是()。

70.有以下程序段以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。

A.當產(chǎn)生的隨機數(shù)n為0時,結(jié)束程序運行

B.當產(chǎn)生的隨機數(shù)n為4時,結(jié)束循環(huán)操作

C.當產(chǎn)生的隨機數(shù)n為l和2時,不做任何操作

D.細循環(huán)語句固定執(zhí)行8次

71.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

72.

73.

74.若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。A.A.scanf("%d",a,b,c);B.scanf("%d%d%d",a,b,c):

C.scanf("%d",p);

D.scanf("%d",&p);

75.

76.在下列關(guān)系運算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是

A.連接B.選擇C.投影D.笛卡兒乘積

77.在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是()。

A.整型表達式B.整型常量C.整型常量或整型表達式D.任何類型的表達式

78.有以下程序程序運行后的輸出結(jié)果是()。

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

79.

80.

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

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

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

試題程序:

#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);

}

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),它的功能是求出能整除x且不是偶數(shù)的整數(shù),并將這些整數(shù)按從小到大的順序放在PP所指的數(shù)組中,總個數(shù)通過形參n返回。如x中的值為30,則有4個數(shù)符合要求,它們是1、3、5、15。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.C結(jié)構(gòu)體變量中的第一成員都是數(shù)組,不能直接將變量tl的成員mark數(shù)組的地址賦給另一個變量t2的成員mark數(shù)組的地址。因為地址都是固定值,不能被賦值。結(jié)構(gòu)體可以進行整體的賦值。

2.D

3.C\n本題考查邏輯值假,在程序中非0字符表示邏輯真,0表示邏輯假,所以答案選擇C。

\n

4.D

5.C解析:本題考查的共用體的概念。共用體變量中的所有成員共享一段公共存儲區(qū),所以共用體變量所占內(nèi)存字節(jié)數(shù)與其成員中占字節(jié)數(shù)最多的那個成員相等.本題定義的共用體中成員C所占的內(nèi)存最多,因此選項B是正確的。由于共用體變量中的所有成員共享存儲空間,因此變量中的所有成員的首地址相同,選項A是正確的。同結(jié)構(gòu)體變量一樣,共用體類型的變量可以作為實參進行傳遞,也可以傳送共用體變量的地址,選項D也是正確的。在內(nèi)存中,實數(shù)與整數(shù)的存放形式完全不一樣,共用體的成員共用的是同一塊內(nèi)存,而不是同一個數(shù)值,因此選項C是錯誤的。

6.A

7.D

8.A解析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。

9.C解析:將變量a按位求反,再與b按位與,最后左移1位。9的二進制表示為00001001,020的二進制表示為00010000。a按位求反為11110110,再與b按位與結(jié)果為00010000,左移1位結(jié)果為00100000。按八進制輸出為040。

10.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。

11.A

12.A

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

14.B

15.A函數(shù)的功能是對數(shù)組某一區(qū)域內(nèi)的元素隔個求和;a[3]=4,所以從4開始進行隔個求和,a[7]=8,即對4到8的元素隔個求和,4+6=10。

16.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選項。

17.D解析:聯(lián)合體的所有成員共占同一段內(nèi)存,所以聯(lián)合體變量的長度與它的最長成員所占長度…致,本題中float所占內(nèi)存字節(jié)數(shù)為4,而\u3000int類型在TurboC\u30002.0中是占2字節(jié)、在VisualC++6.0中占4字節(jié),所以int類型所占內(nèi)存字節(jié)數(shù)不會超過float,那demo就與成員d2所占字節(jié)數(shù)是相同的,選項A的說法正確。聯(lián)合體的所有成員的首地址都是相同的,和聯(lián)合體變量的地址一致。故選項B和C都是正確的。由于int類型數(shù)據(jù)和float類型數(shù)據(jù)在內(nèi)存中的存放格式是不一樣的,所以給d1賦99后,d2中不會得到99.0這個值。故選項D不正確,答案應(yīng)該選擇D。

18.B

19.A

20.D

21.空間空間解析:算法的復雜度主要包括時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

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

23.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用及維護等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計、實現(xiàn)和測試;③軟件運行維護階段:交付使用和維護。

24.ii解析:上三角的情況是對數(shù)組a[i][j],j≥j的時候,因此,在j≥i時應(yīng)輸出所需要的元素,故橫線上應(yīng)填i。

25.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。

26.棧棧解析:棧和隊列都是—種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進行插入或刪除操作,是—種“先進后出”的線性表;而隊列只允許在表的—端進行插入操作,在另—端進行刪除操作,是—種“先進先出”的線性表。

27.鏈式存儲和順序存儲鏈式存儲和順序存儲

28.空間復雜度空間復雜度解析:算法執(zhí)行時所需要的存儲空間,稱為算法的空間復雜度。

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

30.12101812,10,18解析:本題定義了3個整型變量x、y、z,并分別用十進制數(shù)、八進制數(shù)、十六進制數(shù)為它們賦值。然后以十進制整型輸出這3個變量。八進制數(shù)012的十進制表示為10,十六進制數(shù)0x12的十進制表示為18。此外輸出函數(shù)格式控制中的“,”原樣輸出。

31.維護維護

32.完善性軟件維護活動包括以下幾類:改正性維護,適應(yīng)性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

33.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲單元的首地址。指針的定義:

類型說明符*指針變量名;

34.a[0][i]b[i][o]a[0][i]\r\nb[i][o]解析:b[i][N-1]=a[0][i]實現(xiàn)把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b[i][0]=a[N-1][i]實現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中。

35.fopen!feof(fp)fopen\r\n!feof(fp)解析:第一空從右邊的括號中可以看出,這里應(yīng)該填入一個fopen,整條語句用來打開一個名為text.dat的文件。第二空是一個while循環(huán)的循環(huán)條件表達式,循環(huán)體每次讀取一個字符,并讓count增1,所以循環(huán)條件應(yīng)該是“如果文件還沒結(jié)束”,故應(yīng)該填!feof(fp)。

36.SunDan20042SunDan20042解析:f函數(shù)中形參1用的是顯式傳地址的方式,因此p->name的值發(fā)生改變,而形參2用的傳值的方式,在調(diào)用時不改變實參的值,因此p->num的值不發(fā)生變化。

37.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。

38.生命期生命期解析:軟件的生存周期是軟件工程最基本的重要概念。軟件產(chǎn)品和其他產(chǎn)品的生產(chǎn)一樣,都要經(jīng)過分析、設(shè)計、制造、檢測和運行使用幾個階段。通常,把軟件從開始研制(形成概念)到最終軟件被廢棄這整個過程稱為軟件的生命期。

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

40.謂詞演算謂詞演算

41.D解析:本題中需要填空的是for循環(huán)的第3個條件,即“若分成9個零件一組,則多5個零件”,當總零件數(shù)零減去5后,并與9取余為0即可滿足本題的條件。

42.C解析:表達式p++->n相當于先取p->n的值(即a[0].n),再p++(指針后移指向元素a[1]):表達式p->n++相當于先取p->n的值(即a[0].n),再將p->n的值(即a[0].n的值)加1;表達式++p->n先將p->n的值加1(即a[0].n的值加1),可見,它的值應(yīng)該是6。選項D和選項B一樣。

43.A解析:本題首先定義了一個二維數(shù)組,然后將數(shù)組名作為參數(shù)傳遞給子函數(shù)sub(),在子函數(shù)中使用了一個循環(huán),循環(huán)變量i從0遞增到n(n為2),即循環(huán)了3次,依次輸出數(shù)組的a[0][2]、a[1][2]、a[2][2]三個元素,所以程序運行后輸出的結(jié)果是369,應(yīng)該選擇A。

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

45.A

46.C解析:程序設(shè)計過程中包括很多步驟,編制程序只是其中的一步。所以,選項A錯誤。

程序設(shè)計的最終產(chǎn)品是程序,但僅設(shè)計和編制出一個運行結(jié)果正確的程序是不夠的,還應(yīng)養(yǎng)成良好的程序設(shè)計風格。所以,選項B錯誤。

程序設(shè)計的根本目標是要降低程序的復雜性和提高程序的可讀性。而程序的復雜性主要來自以下兩個方面:問題固有的復雜性;不良的設(shè)計風格人為增加了程序的復雜性。所以,良好的設(shè)計風格對于降低程序的復雜性是很重要的,并且,好的設(shè)計風格是好的程序風格的基本保證。選項C正確。

47.A解析:本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時,fun(5):a=5-fun(3)->fun3:a=3-fun(1)->fun(1):a=3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,暈后的計算結(jié)果為5。

48.B解析:程序中定義了一個指向整型變量的指針變量,并對其賦值為二維整型數(shù)組a的首元素的地址。P[4]等價于*(p+4),即二維數(shù)組a中第四個元素的值,而a是一個2*3的二維數(shù)組,其第四個元素為a[1][1],即5。

49.D解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項A)、C)中表達式的結(jié)果為真,不為0;對于選項B)來說,x除以2的商不會等于0;選項D)中表達式的結(jié)果為假,即等于0。

50.A解析:本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②C語言中沒有字符串變量,只能用字符數(shù)組來存儲字符串。

選項A)中一個單引號內(nèi)放了若干個字符是錯誤的;選項B)和選項D)中將一個字符串賦值給一個字符數(shù)組是允許的。

51.A解析:程序執(zhí)行printf('%d%d',m++,++n);后,輸出的是m和n+1的值1235,然后m+1=13,再執(zhí)行printf('%d%d\\n',n++,++m);輸出n和m+1的值3514,之后n+1=36。這里要注意的是m++和++m的區(qū)別:m++是先輸出m的值,再執(zhí)行m++;++m是先執(zhí)行++m,再輸出m的值。

52.A解析:條件表達式的形式如下:表達式1?表達式2:表達式3,所以本題條件表達式a<b?a:c<d?c:d應(yīng)該理解為a<b?a:(c<d?c:d),首先求出條件表達式c<d?c:d的值等于2,再求條件表達式a<b?a:2的值,由于a-1<b-4成立,所以上述條件表達式的值等于1。

53.D

54.A

55.A解析:本題首先聲明了6個int型變量,然后分別讓m、n、k為0,a為-1,b為2,c為3。接下來因為c>O為真,故執(zhí)行子句“m=a=b;”,結(jié)果使m的值變?yōu)?;然后判斷a是否<=0,結(jié)果也為真,進入大括號里面;由于b>O為真,再判斷c<=0,為假。所以子句“n=a=b;”沒有執(zhí)行,跳出大括號。而后面的elseif語句和else語句因為大括號的原因,使其對應(yīng)第二個if語句,而第二個if語句的條件已滿足(進入大括號之前),所以這兩條else語句的子句不被執(zhí)行,故最后輸出結(jié)果為1,0,0,所以應(yīng)該選擇A。

56.C解析:計算機的性能在很大程度上是由CPU決定的,CPU的性能主要體現(xiàn)在它的運算速度,通常使用計算機每秒鐘能夠執(zhí)行的指令條數(shù)來描述速度高低,可以用單字長定點指令的平均執(zhí)行時間表示,單位是MIPS,它是Million\u3000of\u3000Instructions\u3000Per\u3000Second的縮寫,意思是“每秒百萬條指令”,也可以用單字長浮點指令的平均執(zhí)行時間表示,單位是\u3000MFLOPS(Million\u3000Floating\u3000instructions\u3000Per\u3000Second)。

57.D解析:注意的是x++中x值的引用時,這里應(yīng)當是先引用,后自加,具體抽打過程如下:

第一次while循環(huán):條件為真,執(zhí)行a=a+1=1此時,x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);

第二次while循環(huán):條件為假,此時x的值已為5,退出while循環(huán),執(zhí)行printf。

58.A解析:(rec4,rec5)是逗號表達式,它的值是rec5的值。所以該函數(shù)調(diào)用語句含有的實參個數(shù)是3。

59.B解析:scanf()語句用“空格”區(qū)別不同的字符串;getc()與getchar()語句不能用于字符串的讀入。

60.C解析:本段程序的作用是輸出字符串'lanuage'中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。注意:如果一個字符數(shù)組用來作為字符串使用,那么在定義該字符數(shù)組時,數(shù)組的大小就應(yīng)該比它將要實際存放的最長字符多一個元素,以存放\'\\0\'。

61.B^選項去掉大括號就正確了;c選項和D|選項應(yīng)在定義時賦初值。因此B選項正確。

62.C根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。循環(huán)隊列、帶鏈隊列和帶鏈棧都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

63.C

64.C

65.B本題考多循環(huán)的使用,當j=10,i=9時,循環(huán)成立,第一個if條件為假,第二個if條件i==j-1成立,則輸出j的值為10,接者執(zhí)行i++后,i為10;當i為10,for循環(huán)不成立,退出內(nèi)層循環(huán),此時執(zhí)行j++后,j為11,循環(huán)不成立,退出循環(huán)。

66.C十六進制是以“0x、0X”開頭的字符串,字符串中只能含有0~9這l0個數(shù)字和a、b、C、d、e、f這6個字母。

67.B

68.A本題考查的是文件操作。程序首先定義了一個文件指針pf,并使用fopen()函數(shù)以“wb+”方式新建一個可讀寫的二進制文件“123.dat”。然后使用fwrite()函數(shù)寫入字符串s2的前7"1個字符?,F(xiàn)在文件中的內(nèi)容應(yīng)該為“Beijin9”。接下來程序使用rewind()函數(shù),將文件的讀寫指針調(diào)回起始位置。并又調(diào)用fwrite()函數(shù)寫入字符串sl的前5"1個字符。所以文件原內(nèi)容“Beijing'’的前5個字符被覆蓋,結(jié)果為“Chinan9”,故本題應(yīng)該選擇A)。

69.AA)選項中定義的數(shù)組為2行4列,而賦值時賦成了3行,因此出錯。

70.Acase常量表達式只是起語句標號作用,并不是在該處進行條件判斷。在執(zhí)行switch語句時,根據(jù)switch的表達式,找到與之匹配的case語句,就從該case子句執(zhí)行下去,不再進行判斷,直到碰到bleak或函數(shù)結(jié)束為止。簡單地說,break是結(jié)束整個循環(huán)體,而continue是結(jié)束單次循環(huán)。B)選項中當產(chǎn)生的隨機數(shù)n為4時要執(zhí)行打印操作。C)選項中當產(chǎn)生的隨機數(shù)為1和2時分別執(zhí)行case3與case4后面語句的內(nèi)容。由于存在break語句,因此for循環(huán)不是固定執(zhí)行8次,執(zhí)行次數(shù)與產(chǎn)生的隨機數(shù)n有關(guān)系。故本題答案為A)。

71.D共用體變量中的所有成員共享一段公共存儲區(qū),所有成員的首地址相同。在每一個時刻所有的成員中只有一個有效,即只有最后一個被賦值的成員有效,其余的成員無效。

72.B

73.C

74.C題中整型指針變量P存放的是變量C的地址。所以本題答案為C。

75.A

76.B笛卡兒乘積運算。假設(shè)關(guān)系R和關(guān)系S的元數(shù)個數(shù)與屬性個數(shù)分別為m和n。R×S表示R和S的笛卡兒積,R×S={(m+n)個屬性的一個元組集合,每個元組的前m個屬性值來自R的一個元組,后n個屬性值來自S的一個元組的所有組合}。

連接。它是從兩個關(guān)系的笛卡兒乘積結(jié)果中選取屬性間滿足一定條件的元組,它不能實現(xiàn)題目中給出的條件。

投影。它是從關(guān)系中挑選若干屬性組成新的關(guān)系,它是對關(guān)系進行列操作的方法。

選擇。它是從關(guān)系中找到滿足條件的所有元組的操作,即不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的操作,它是對關(guān)系進行行操作的方法。

77.C解析:在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型可以是整型常量,也可以是整型表達式。

78.As得到全局變量a的值為4,第一次循環(huán)返回l2,第二次循環(huán)返回l2,累加結(jié)果為28。

79.B

80.B

81.\n\t(1)錯誤:while(i>j)

\n正確:while(i<j)

\n(2)錯誤:*str=0;

\n正確:*str=\0;

\n【解析】由函數(shù)proc可知,變量i和j分別存放的是字符串str前面和后面第i個字符的位置,當i<j時,兩個位置的字符交換。因此,“while(i>j)”應(yīng)改為“while(i<j)”;交叉合并完成后,要為新的字符串添加結(jié)束符,因此,“*str=0;”應(yīng)改為“*str=\0;”,\n

82.1voidfun(intx,intpp[],int*n)2{3inti,j=0;4for(i=l;i<=x;i=i+2)/*i的初值為1,步長為2,確保i為奇數(shù)*/5if(x%i==0)/*將能整除x的數(shù)存入數(shù)組pp中*/6pp[j++]=i;7*n=j;/*傳回滿足條件的數(shù)的個數(shù)*/8}本題考查:偶數(shù)的判定方法;整除的實現(xiàn)。本題題干信息:能整除X且不是偶數(shù)的所有整數(shù)。循環(huán)語句中變量i從1開始且每次遞增2,所以i始終是奇數(shù)。將能整除x的i值存放到數(shù)組PP中,整除采用求余運算符“%”,即“x%i==0”。最后將數(shù)據(jù)元素個數(shù)j保存到n中。2021-2022年浙江省麗水市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

若變量均已正確賦初值,則以下語句中

錯誤的是()。

A.tl=t2;

B.t2.numl=tl.numl;

C.t2.mark=tl.Mark

D.t2.num2=tl.hum2;

2.if語句的基本形式是:if(表達式)語句,以下關(guān)于“表達式”值的敘述中正確的是A.A.必須是邏輯值

B.必須是整數(shù)值

C.必須是正數(shù)

D.可以是任意合法的數(shù)值

3.以下選項中,能表示邏輯值“假”的是()

A.1B.0.000001C.0D.100.0

4.在非線性結(jié)構(gòu)中,每個結(jié)點()。

A.無直接前趨

B.只有一個直接前趨和個數(shù)不受限制的直接后繼

C.只有一個直接前驅(qū)和后繼

D.有個數(shù)不受限制的直接前驅(qū)和后繼

5.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯誤的是

A.data的每個成員起始地址都相同

B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C.程序段:data.a=5;printf(“%I'm”,data.C);輸出結(jié)果為5.000000

D.data可以作為函數(shù)的實參

6.一個有n個頂點的連通無向圖至少有()條邊。

A.n-1B.nC.n+1D.n+2

7.

8.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱為______。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

9.下列程序段的輸出結(jié)果是()。chara=9,b=020;prihtf("%o\n",~a&b<<1);

A.100000B.8C.40D.77

10.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運行后,若從鍵盤輸入(從第1列開始)

123<回車>

45678<回車>

則輸出結(jié)果是

A.1267B.1256C.1278D.1245

11.關(guān)系R和關(guān)系S的并運算是______。

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

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

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

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

12.在決定選取何種存儲結(jié)構(gòu)時,一般不考慮()。

A.各結(jié)點的值如何B.結(jié)點個數(shù)的多少C.對數(shù)據(jù)有哪些運算D.所用的編程語言實現(xiàn)這種結(jié)構(gòu)是否方便

13.下列描述錯誤的是()。

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

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

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

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

14.

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

f(intb[],intm,intn)

{inti,s=0;

for(i=m;i<n;i=i+2)s=s+b[i];

returns;

}

voidmain()

{intx,a[]={1,2,3,4,5,6,7,8,9};

x=f(a,3,7);

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

}A.A.10

B.18

C.8

D.15

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

A.IB.JC.KD.H

17.設(shè)有以下定義uniondata{intd1;floatd2;}demo;則下面敘述中錯誤的是()。A.A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

18.用鄰接矩陣A表示有向圖G的存儲結(jié)構(gòu),則有向圖G中頂點i的入度為()。

A.第i行非0元素的個數(shù)之和B.第i列非0元素的個數(shù)之和C.第i行0元素的個數(shù)之和D.第i列0元素的個數(shù)之和

19.

20.

二、2.填空題(20題)21.算法的復雜度主要包括時間復雜度和______復雜度。

22.若x為int類型,請寫出與!x等價的C語言表達式______。

23.軟件定義時期主要包括______和需求分析兩個階段。

24.有以下程序:

main()

{intnum[4][4]={{1,2,3,4),{5,6,7,8),{9,10,11,12),{13,14,15,16}},i,j;

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

{for(j=0;j<=i;j++)printf("%4c",'');

for(j=______;j<4;j++)printf("%4d",num[i][j]);

printf("\n");

}

}

若要按以下形式輸出數(shù)組右上半三角:

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是【】。

25.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。

26.按“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。

27.棧和隊列通常采用的存儲結(jié)構(gòu)是【】。

28.算法執(zhí)行過程中所需要的存儲空間稱為算法的______。

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

30.下列程序的運行結(jié)果為【】。

main()

{

intx,y,z;

X=12;

y=012;

z=0l2;

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

}

31.在軟件生命周期中,【】階段是花費最多、持續(xù)時間最長的階段。

32.軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預防性維護。

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

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

34.以下涵數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotade(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=【】;【】=a[N-1][i];}}

35.下面程序的功能是用來統(tǒng)計文件中字符個數(shù)。請?zhí)羁铡?/p>

#include"stdio.h"

main()

{longcount=OL;

FILE*fp=【】("text.dat","r");

if(fp==0)

{printf("Openerror\n");

exit(0);

}

while(【】)

{

fgetc(fp);

count++;

}

fclise(fp);

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

}

36.有以下程序:

#include<string.h>

structSTU

{charname[10];

intnum;};

voidf(char*name,intnum)

{structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};

num=s[0].num;

strcpy(name,s[0].name);

}

main()

{structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;

p=&s[1];f(p->name,p->num);

printf("%s%d\n",p->name,p->num);

}

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

37.數(shù)據(jù)流圖的類型有【】和事務(wù)型。

38.軟件工程學把軟件從開始研制到最終軟件被廢棄的整個階段叫做軟件的【】。

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

40.關(guān)系數(shù)據(jù)庫的關(guān)系演算語言是以【】為基礎(chǔ)的DML語言。

三、1.選擇題(20題)41.有一堆零件(100到200之間),如果分成4個零件一組的若干組,則多2個零件;若分成7個零件—組,則多3個零件;若分成9個零件一組,則多5個零件。下面程序是求這堆零件總數(shù)。請選擇填空。#include<stdio.h>main(){inti;for(i=100;i<200;i++)if((i-2)%4==0)if(!((i-3)%7))if(______)printf("%d",i);}

A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9==0

42.若有以下說明和語句,則值為6的表達式是______。structstu{intn;structstu*next;};structstua[3],*p;a[0).n=5;a[0].next=&a[1];a[1].n=7;a[1].next=&a[2];a[2].n=9;a[2].next='\0';p=&a[0];

A.p++->nB.p->n++C.++p->nD.(*p).n++

43.若有如下程序:sub(p,n)int(*p)[3],n;{inti;for(i=0;i<=n;i++)printf("%d",p[i][2]);}main(){ints[3][3]={1,2,3,4,5,6,7,8,9};sub(s,2);}則程序運行后的輸出結(jié)果是()。

A.369B.248C.456D.789

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

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

45.下列變量定義中,合法的是______。

A.short_a=1-.le-1;

B.doubleb=1+5e2.5;

C.longdo=0xfdaL;

D.float2_and=l-e-3;

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

A.程序設(shè)計過程中的主要工作是編制程序

B.程序設(shè)計的主要目標是編制出運行結(jié)果正確的程序

C.不良的程序設(shè)計風格會增加程序的復雜性

D.上述三種說法都不對

47.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}

A.5B.3C.7D.1

48.執(zhí)行以下的程序段后,m的值是______。inta[2][3]={{1,2,3},(4,5,6}};intm,*p;p=&a[0][0];m=p[4];

A.4B.5C.3D.不確定

49.以下選項中,當x為大于l的奇數(shù)時,值為0的表達式是

A.x%2==1B.x/2C.x%2!=0D.x%2==0

50.下列字符數(shù)組初始化語句中,不正確的是()。

A.charc[]='goodmorning';

B.char,c[20]="goodmoming";

C.charc[]={'a','b','c','d'};

D.charc[]={"goodmoming"};

51.有以下程序:#include<stdio.h>main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運行后的輸出結(jié)果是()。

A.12353514B.12353513C.12343514D.12343513

52.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

53.假定w、x,y、z、m均為int型變量,有如下程序段;w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;則該程序段執(zhí)行后,m的值是()

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

54.以下程序的輸出結(jié)果是()main(){inta[10]={1,2,3,4,5,6,7,8,9,10,},*p=a;printf("%d\n",*(p+2));}

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

55.若有如下程序:main(){inta,b,C,m,n,k;m=n=k=0;a=-1;b=2;C=3;if(c>0)m=a+b;if(a<=0){if(b>0)if(c<=0)n=a=b;}elseif(c>0)n=a-b;elsek/=c;printf("%d,%d,%d,",m,n,k);}則程序運行后的輸出結(jié)果是()。

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

56.MIPS常用來描述計算機的運算速度,其含義是()。A.A.每秒鐘處理百萬個字符

B.每分鐘處理百萬個字符

C.每秒鐘執(zhí)行百萬條指令

D.每分鐘執(zhí)行百萬條指令

57.下面程序的輸出是______。main(){intx=3,y=6,a=0;,while(x++!=(y=1)){a+=1;if(y<x)break;}printf("x=%d,y=%d,a=%d\n,x,y,a);}

A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1

58.有如下函數(shù)調(diào)用語句func(rec1,rec2+rec3,(rec4,rec5));該函數(shù)調(diào)用語句中,含有的實參個數(shù)是______。

A.3B.4C.5D.有語法錯誤

59.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)

A.getc()B.gets()C.getehar()D.scanf()

60.下面程序段的運行結(jié)果是

chara[]="lanuage",*p;

p=a;

while(*p!=′u′){printf("%c",*p-32);p++;}

A.LANGUAGEB.languageC.LAND.langUAGE

四、選擇題(20題)61.以下選項中正確的語句組是()。

A.char*s;s={f.BOOK!”};

B.char*s;s:”BOOK!”:

C.chars[10];s=”BOOK!”;

D.cbars[];s:”BOOK!n:

62.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是A.循環(huán)隊列B.帶鏈隊列C.二叉樹D.帶鏈棧

63.

64.

65.有以下程序:

main

{inti,j;

for(j=10;j<11;j++)

{for(i=9;i<j;i++)

if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結(jié)果是()。A.A.11B.10C.9D.1011

66.下列選項中不合法的十六進制數(shù)是()。

A."0"xffB."0"X11C."0"x1gD.”0”Xabc

67.

68.有以下程序

69.以下定義數(shù)組的語句中錯誤的是()。

70.有以下程序段以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。

A.當產(chǎn)生的隨機數(shù)n為0時,結(jié)束程序運行

B.當產(chǎn)生的隨機數(shù)n為4時,結(jié)束循環(huán)操作

C.當產(chǎn)生的隨機數(shù)n為l和2時,不做任何操作

D.細循環(huán)語句固定執(zhí)行8次

71.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

72.

73.

74.若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。A.A.scanf("%d",a,b,c);B.scanf("%d%d%d",a,b,c):

C.scanf("%d",p);

D.scanf("%d",&p);

75.

76.在下列關(guān)系運算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是

A.連接B.選擇C.投影D.笛卡兒乘積

77.在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是()。

A.整型表達式B.整型常量C.整型常量或整型表達式D.任何類型的表達式

78.有以下程序程序運行后的輸出結(jié)果是()。

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

79.

80.

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

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

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

試題程序:

#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);

}

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),它的功能是求出能整除x且不是偶數(shù)的整數(shù),并將這些整數(shù)按從小到大的順序放在PP所指的數(shù)組中,總個數(shù)通過形參n返回。如x中的值為30,則有4個數(shù)符合要求,它們是1、3、5、15。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.C結(jié)構(gòu)體變量中的第一成員都是數(shù)組,不能直接將變量tl的成員mark數(shù)組的地址賦給另一個變量t2的成員mark數(shù)組的地址。因為地址都是固定值,不能被賦值。結(jié)構(gòu)體可以進行整體的賦值。

2.D

3.C\n本題考查邏輯值假,在程序中非0字符表示邏輯真,0表示邏輯假,所以答案選擇C。

\n

4.D

5.C解析:本題考查的共用體的概念。共用體變量中的所有成員共享一段公共存儲區(qū),所以共用體變量所占內(nèi)存字節(jié)數(shù)與其成員中占字節(jié)數(shù)最多的那個成員相等.本題定義的共用體中成員C所占的內(nèi)存最多,因此選項B是正確的。由于共用體變量中的所有成員共享存儲空間,因此變量中的所有成員的首地址相同,選項A是正確的。同結(jié)構(gòu)體變量一樣,共用體類型的變量可以作為實參進行傳遞,也可以傳送共用體變量的地址,選項D也是正確的。在內(nèi)存中,實數(shù)與整數(shù)的存放形式完全不一樣,共用體的成員共用的是同一塊內(nèi)存,而不是同一個數(shù)值,因此選項C是錯誤的。

6.A

7.D

8.A解析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。

9.C解析:將變量a按位求反,再與b按位與,最后左移1位。9的二進制表示為00001001,020的二進制表示為00010000。a按位求反為11110110,再與b按位與結(jié)果為00010000,左移1位結(jié)果為00100000。按八進制輸出為040。

10.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。

11.A

12.A

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

14.B

15.A函數(shù)的功能是對數(shù)組某一區(qū)域內(nèi)的元素隔個求和;a[3]=4,所以從4開始進行隔個求和,a[7]=8,即對4到8的元素隔個求和,4+6=10。

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

17.D解析:聯(lián)合體的所有成員共占同一段內(nèi)存,所以聯(lián)合體變量的長度與它的最長成員所占長度…致,本題中float所占內(nèi)存字節(jié)數(shù)為4,而\u3000int類型在TurboC\u30002.0中是占2字節(jié)、在VisualC++6.0中占4字節(jié),所以int類型所占內(nèi)存字節(jié)數(shù)不會超過float,那demo就與成員d2所占字節(jié)數(shù)是相同的,選項A的說法正確。聯(lián)合體的所有成員的首地址都是相同的,和聯(lián)合體變量的地址一致。故選項B和C都是正確的。由于int類型數(shù)據(jù)和float類型數(shù)據(jù)在內(nèi)存中的存放格式是不一樣的,所以給d1賦99后,d2中不會得到99.0這個值。故選項D不正確,答案應(yīng)該選擇D。

18.B

19.A

20.D

21.空間空間解析:算法的復雜度主要包括時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

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

23.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用及維護等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計、實現(xiàn)和測試;③軟件運行維護階段:交付使用和維護。

24.ii解析:上三角的情況是對數(shù)組a[i][j],j≥j的時候,因此,在j≥i時應(yīng)輸出所需要的元素,故橫線上應(yīng)填i。

25.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。

26.棧棧解析:棧和隊列都是—種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進行插入或刪除操作,是—種“先進后出”的線性表;而隊列只允許在表的—端進行插入操作,在另—端進行刪除操作,是—種“先進先出”的線性表。

27.鏈式存儲和順序存儲鏈式存儲和順序存儲

28.空間復雜度空間復雜度解析:算法執(zhí)行時所需要的存儲空間,稱為算法的空間復雜度。

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

30.12101812,10,18解析:本題定義了3個整型變量x、y、z,并分別用十進制數(shù)、八進制數(shù)、十六進制數(shù)為它們賦值。然后以十進制整型輸出這3個變量。八進制數(shù)012的十進制表示為10,十六進制數(shù)0x12的十進制表示為18。此外輸出函數(shù)格式控制中的“,”原樣輸出。

31.維護維護

32.完善性軟件維護活動包括以下幾類:改正性維護,適應(yīng)性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

33.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存

溫馨提示

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

提交評論