2022-2023年浙江省舟山市全國計算機等級考試C語言程序設(shè)計_第1頁
2022-2023年浙江省舟山市全國計算機等級考試C語言程序設(shè)計_第2頁
2022-2023年浙江省舟山市全國計算機等級考試C語言程序設(shè)計_第3頁
2022-2023年浙江省舟山市全國計算機等級考試C語言程序設(shè)計_第4頁
2022-2023年浙江省舟山市全國計算機等級考試C語言程序設(shè)計_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年浙江省舟山市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.以下是if語句的基本形式:

if(表達式.語句

其中“表達式”()。

A.必須是邏輯表達式B.必須是關(guān)系表達式C.必須是邏輯表達式或關(guān)系表達式D.可以是任意合法的表達式

3.以下敘述中正確的是

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

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

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

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

4.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.eeaabmmnhhirrstu

B.efgabcdmnopqhijkIrstuvwxyz

C.efgacdmopqhjkIrvwxyz

D.eefgaabcdmmnopqhhijkIrrstuvwxyz

5.設(shè)線性鏈表中結(jié)點的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點p的直接后繼,則應(yīng)執(zhí)行下列()操作。

A.p->next=p->next->next;

B.p=p->nextp->next=p->next->next;

C.p->next=p->next;

D.p=p->next->next;

6.設(shè)變量已正確定義并賦值,以下正確的表達式是()。A.x=y+z+5.++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

7.有以下定義

#include<stdio.h>

chara[10],*b=a;

不能給a數(shù)組輸入字符串的語句是

A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(B);

8.在下列關(guān)系運算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是A.并B.交C.投影D.笛卡兒乘積

9.下列排序算法中,其時間復(fù)雜度和記錄的初始排列無關(guān)的是()

A.插入排序B.堆排序C.快速排序D.冒泡排序

10.下面程序的運行結(jié)果是______。#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}

A.7654321B.1714171C.1711717D.7177171

11.

12.同一個關(guān)系模型的任意兩個元組值()。

A.可以全相同B.不能全相同C.必須全相同D.以上都不對

13.下列程序的運行結(jié)果為()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12

14.設(shè)S為C語言的語句,計算機執(zhí)行下面算法時,算法的時間復(fù)雜度為()。A.n2B.O(nlgn)C.O(n)D.O(n2)

15.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745

16.有以下程序段intj;floaty;charname[50]:scanf("%2d%f%s",&i,&.y,name):當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

17.設(shè)有以下程序段:structbook{floatprice;charlanguage;chartitle[20];}rec,*ptr;ptr=&rec;要求輸入字符串給結(jié)構(gòu)體變量rec的title成員,錯誤的輸入語句是()。

A.scanf(“%s”,ptr.title);

B.scanf(“%s”,rec.title);

C.scanf(“%s”,(*ptr).title);

D.scanf(“%s”,ptr->title);

18.在具有101個元素的順序表中查找值為x的元素結(jié)點時,平均比較元素的次數(shù)為()。

A.50B.51C.100D.101

19.執(zhí)行以下程序后,a,b的值分別為main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

20.為了提高軟件模塊的獨立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合

二、2.填空題(20題)21."printf("%d\n",strlen("\t\"'\023\xABC\n"));"語句的輸出結(jié)果是______。

22.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

23.下列程序的運行結(jié)果是______。

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

24.下面程序執(zhí)行后輸出的結(jié)果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

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

}

25.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>

main()

{intx[10],a[9],I;

for(I=0;I<10;I++)scanf("%d",&x[I]);

for(【】;I<10;I++)

a[I-1]=x[I]+【】;.

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

printf("");

}

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

main()

{intarr[10],i,k=0

for(i=0;i<10;i++)atr[i]=i

for(i=1,i<4;i++)k+=arr[i]+i;

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

}

27.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組bo請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

______;

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

{if(i%4==0)printf("\n");

printf("%3d",b[i]);

}

}

28.有以下程序

main()

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

y=y+z;x=x+y;

printf("%d",x<y?y:x);

printf("%d",x<y?x++:y++);

printf("%d",x);

printf("%d",y);

}

運行結(jié)果是【】

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

structst

{charname[20];doublescore;};

main()

{structstex;

pfintf("exsize:%d\n",sizeof(______));}

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

main()

{intx==15;

while(x>10&&x<50)

{x++;

if(x/3){x++;break;}

elsecontinue;

}

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

}

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

main()

{inta=2,b=4,c=6;

int*p1=&a,*p2,&b,*p;

*(p=&c)=*p1*(*p2);

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

}

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

mazn()

{inta=5,b=4,c=3,d;

d=(a>b>C);

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

}

33.以下程序用業(yè)統(tǒng)計文件十字符個數(shù)。請?zhí)羁铡?/p>

#include"stdio.h"

main()

{FTLE*fp;longnum=OL;

if((fp=fopen("fname.dat","r"))==NUlL)

{pirntf("Openerror\n");exit(0);}

while()

{fgetc(fp);num++;}

printf("num=%1d\n",num-1);

fclose(fp);

}

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

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

35.耦合和內(nèi)聚是評價模塊獨立性的兩個主要標準,其中______反映了模塊內(nèi)各成分之間的聯(lián)系。

36.以下程序運行后輸入:3,abcde<回車>,則輸出結(jié)果是【】。

#include<string.h>

move(char*str,intn)

{chartempinti;

temp=str[n-1);

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp

}

main()

{chars[50];ihtn,i,z;

scanf("%d,%s",&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

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

}

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

#include<stdio.h>

main()

{charb[]="Helloyou";

b[5]=0;

printf("%s\n",b);

}

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

39.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

40.若a是int型變量,則下列表達式的值為______。

(a=2*3,a*2),a+4

三、1.選擇題(20題)41.運行下列程序時,若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。

main()

{floata,b,C,t;

scanf("%f,%f,%of",&a,&b,&C);

if(a<B)

{t=a;a=b;b=t;}

if(a<C)

{t=a;a=c;c=t;}

if(b<C)

{t=b;b=c;c=t;}

printf("%f\n%f\n%f\n",a,b,C);

}

A.1.002.003.00

B.1.003.002.00

C.132

D.3.0000002.0000001.000000

42.有以下程序: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);}程序運行后的輸出結(jié)果是______。

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

43.若有以下定義和語句,則輸出結(jié)果是______。int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);

A.10,20B.10,10C.20,10D.20,20

44.以下程序運行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

45.設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課SC(學(xué)號,課號,成績),則表sc的關(guān)鍵字(鍵或碼)為()。

A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績

46.若運行以下程序時,從鍵盤輸入ADescriptor<回車>,則下面程序的運行結(jié)果是()。#include<stdio.h>main(){charc;intv0=1,v1=0,v2=0;do{switch(c=getehar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':v1+=1default:v0+=1;v2+=1;}}while(c!='\n');printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=13,v1=4,v2=12

47.下列程序的運行結(jié)果為()

#include<stdio.h>

main()

{structdate

{intyear,month,day;

)today;

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

}

A.8B.6C.10D.12

48.算法的時間復(fù)雜度是指______。

A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)

49.若有下列說明和語句,已知int型數(shù)據(jù)占2個字節(jié),則下列語句的輸出結(jié)果是()。

stmctst

{chara[15];

intb;

doublec;

};

printf("%d",sizeof(structst));

A.15B.8C.25D.2

50.在“文件包含”預(yù)處理語句的使用形式中,當#include后面的文件名用<>(尖括號)括起時,尋找被包含文件的方式是()。

A.僅僅搜索當前目錄

B.僅僅搜索源程序所在目錄

C.在標準目錄下查找指定的文件

D.先在源程序所在目錄搜索,如查找不到,再按系統(tǒng)指定的標準目錄查找

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

A.定義、開發(fā)、運行維護

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

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

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

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

A.log2nB.n/2C.nD.n+1

53.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}

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

54.有以下程序:inta=3;main(){ints=0;{inta=5;s+=a++;)s+=a++;printf('%d\n',s);}程序運行后的輸出結(jié)果是()。

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

55.若變量a、i已正確定義,且i已正確賦值,合法的語句是______。

A.a=1B.++i;C.a=a++=5;D.a=int(i);

56.軟件需求分析一般應(yīng)確定的是用戶對軟件的______。

A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求

57.有以下程序main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);)程序運行后的輸出結(jié)果是

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

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

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

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

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

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

59.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運行后輸出結(jié)果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

60.C語言規(guī)定,程序中各函數(shù)之間()

A.既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用

B.不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用

C.允許直接遞歸調(diào)用不允許間接遞歸調(diào)用

D.不允許直接遞歸調(diào)用允許間接遞歸調(diào)用

四、選擇題(20題)61.

62.

63.

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

main

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

printf("%d,%d\n",a,b);}A.A.6,1B.2,1C.6,0D.2,0

65.

66.執(zhí)行語句X=(a=10,b=a--.后,x、a、b的值依次為()。

A.10,10,9

B.10,9,9

C.9,10,9

D.10,9,10

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

68.

69.數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是()。

A.內(nèi)模式B.概念模式C.外模式D.設(shè)計模式

70.

71.下面敘述中,正確的是

A.C語言編譯時不檢查語法B.C語言的子程序有過程和函數(shù)兩種

C.C語言的函數(shù)可以嵌套定義D.C語言的函數(shù)可以嵌套調(diào)用

72.執(zhí)行下列程序中的輸出語句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13

73.

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

A.預(yù)處理命令行必須位于C源程序的起始位置

B.在C語言中,預(yù)處理命令行都以“#”開頭

C.每個C程序必須在開頭包含預(yù)處理命令行:#include

D.C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能

75.設(shè)a=l,b=2,c=3,d=4,則表達式:“a<b?a:b<b?a:c<d?a:d”的結(jié)果為()。A.A.4B.3C.2D.1

76.若在定義語句inta,b,c,*P=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。

A.

B.

C.

D.

77.

78.

79.

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:對M名學(xué)生的學(xué)習(xí)成績,按從低到高的順序找出m(m≤10)名學(xué)生來,并將這些學(xué)生數(shù)據(jù)存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數(shù)值返回。

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

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

試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),用來求出數(shù)組中值最大的元素在數(shù)組中的下標并將其存放在k所指向的存儲單元中。例如,輸入如下整數(shù):876675896101301401980431451777則輸出結(jié)果為6,980。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.C

2.D解析:本題主要考查關(guān)于if語句的說明,if后面圓括號中的表達式,可是任意合法的C語言表達式(如:邏輯表達式、關(guān)系表達式、算術(shù)表達式、賦值表達式等),也可以是任意類型的數(shù)據(jù)(如:整型、實型、字符型、指針型等。)

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

4.C程序定義一個二維字符數(shù)組a,使用5個字符串對其初始化。另外定義字符指針數(shù)組P。for循環(huán)中,每次將數(shù)組a當前下標為i的字符串首地址賦給P[i],再求得P[i]的長度賦給len,第1個printf輸出p[i]字符串的首字母,第2個printf輸出p[i]字符串下標從len/2開始的子字符串。當下標i=0時輸出efg;當下標i=l時輸出acd;當下標i=2時輸出mopq;當下標i=3時輸出hjkl;當下標i=4時輸出rvwxyz。所以程序輸出:efgacdmopqhjklrvwxyz。本題答案為C選項。

5.A

6.A[解析]B)與D)選項中取模運算符%的左右兩個操作數(shù)均應(yīng)為整數(shù),所以B)、D)錯誤。C)選項中不能將x+z的值賦給表達式y(tǒng)*5.所以C)錯誤。

7.B解析:函數(shù)gets()的調(diào)用形式為gets(str_adr);str_adr是存放字符串的起始地址。可以是字符數(shù)組名、字符指針或字符數(shù)組元素的地址。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。換行符讀入后,不作為字符串的內(nèi)容。本題中定義一個長度為10的字符數(shù)組,和一個指針變量b,并且通過賦值讓它指向數(shù)組a。gets函數(shù)的參數(shù)a[0]不能表示數(shù)組a的首地址。

8.B并運算的含義是:假設(shè)有一個“在校學(xué)生信息表”,它包括這樣一些字段:學(xué)號、姓名、性別、出生日期、籍貫、聯(lián)系電話,這個表的關(guān)系模式可以表示為:校學(xué)生信息表(學(xué)號,姓名,性別,出生日期,籍貫,聯(lián)系電話)。還有一個“新生信息表(學(xué)號,姓名,性別,出生日期,籍貫,聯(lián)系電話)”。若要將9月份進校的新生信息加入到“在校學(xué)生信息表”中,這樣進行的就是并運算。并運算不會改變表的字段(又叫屬性)個數(shù),但是會增加記錄(又叫元組)個數(shù)。交運算的含義是:兩個表(要求結(jié)構(gòu)要一模一樣)進行交運算取兩個表中相同的記錄構(gòu)成一個新表,交運算不會改變表的字段個數(shù),但是一般會減少記錄個數(shù)。投影運算的含義是:從在“校學(xué)生信息表(學(xué)號,姓名,性別,出生日期,籍貫,聯(lián)系電話)”中選取學(xué)生的“姓名”和“聯(lián)系電話”這兩個字段,可以構(gòu)成一個“學(xué)生聯(lián)系表(姓名,聯(lián)系電話)”,這就是一個投影運算,所以投影運算一般會減少字段(又叫屬性)的個數(shù)。笛卡兒乘積又叫稱乘運算,設(shè)有n元關(guān)系R和m元關(guān)系s,他們分別有P、q個元組,則關(guān)系R和關(guān)系s的笛卡兒積表示為R×S,該關(guān)系是一個n+m元關(guān)系,元組個數(shù)是PXq。因此本題的正確答案是B。\r\n

9.B

10.C

11.B

12.B關(guān)系具有以下7個性質(zhì)。①元組個數(shù)有限性:二維表中元組的個數(shù)是有限的。②元組的唯一性:二維表中任意兩個元組不能完全相同。③元組的次序無關(guān)性:二維表中元組的次序,即行的次序可以任意交換。④元組分量的原子性:二維表中元組的分量是不可分割的基本數(shù)據(jù)項。⑤屬性名唯一性:二維表中不同的屬性要有不同的屬性名。⑥屬性的次序無關(guān)性.二維表中屬性的次序可以任意交換。⑦分量值域的同一性:二維表屬性的分量具有與該屬性相同的值域,或者說列是同質(zhì)的。滿足以上7個性質(zhì)的二維表稱為關(guān)系,以二維表為基本結(jié)構(gòu)所建立的模型稱為關(guān)系模型。本題答案為B選項。

13.Bstructdate中包含year、month、day這3個整型變量,一個整型變量占2個字節(jié);sizeof是求所占字節(jié)數(shù)的運算符。

14.D

15.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。

16.B變量J只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入整數(shù)都會被保存到浮點型變量Y中。

17.A運算符“->”適用指針訪問成員變量,運算符“.”適用普通變量訪問成員變量。ptr是指針,只能用“->”,因此選項A錯誤。選項B中,rec.title代表數(shù)組title,選項B正確,同理選項C正確?!?ptr”是結(jié)構(gòu)體變量rec,可以使用運算,因此選項D正確。故本題答案為A選項。

18.B

19.C解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;聲明整型變量a,b,k,m和指針p1,p2,并分別將4和6賦給k和m,將k和m的地址賦給P1和p2;a=p1==&m;等價于a=(p1==&m);將p1是否等于地址m的值(0)賦給變量a,b=(*p1)/(*p2)+7;該句的含義是將后面表達式的的值7賦給變量b。

20.D解析:耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,是互相關(guān)聯(lián)的。在程序設(shè)計中,各模塊間的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合,有利于提高模塊的獨立性。

21.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標志\'\\0\'。

\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號:\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;\'\\xAB\'是以兩位十六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。

5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。

22.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應(yīng)用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

23.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當n=4時,判斷條件不滿足,退出循環(huán)。

24.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。

25.I=1x[I-1]I=1,x[I-1]解析:對于10個數(shù),相臨的兩個數(shù)相加取和,總共要進行9次加法運算,所以空14處應(yīng)填入I=1。相臨的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應(yīng)填入x[I-1]。

26.1212解析:本題的第—個for循環(huán)用于始數(shù)組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。

27.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i],即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。

28.3233

29.

30.1717解析:本題中首先定義了一個變量x并賦初值15,然后判斷循環(huán)條件“x>5&&x<50”,為真,執(zhí)行循環(huán)體。語句x++;執(zhí)行后,x的值變?yōu)?6,x/3的值為5為真,執(zhí)行其后的語句x++;,x的值變?yōu)?7,執(zhí)行語句break,退出循環(huán),輸出x的值為17。

31.本程序定義了3個指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(p)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。\r\n\r\n

32.00解析:關(guān)系運算符“>”的結(jié)合方式是從左向右的,所以在本題中的表達式a>b>c;從左向右開始計算,a>b的結(jié)果為“1”,接著1和c比較假,該空格處應(yīng)該填0。

33.!feof(fp)!feof(fp)解析:本題中統(tǒng)計文件中字符個數(shù)的算法可描述如下:首先判斷文件位置指針是否指向了文件尾,如果不是則讀出一個字符,同時字符的個數(shù)加1,再判斷文件位置指針是否位于文件尾,如此循環(huán),直到文件位置指針位于文件尾為止。本題首先以讀文件的方式打開了文件“fname.daf”,如果打開成功則把返回的文件型指針賦值給fp,然后通過循環(huán)求文件中的字符數(shù)。首先判斷文件位置指針是否位于文件尾,如果不是則循環(huán)讀取字符,每次字符數(shù)加1。所以下劃處應(yīng)填循環(huán)條件,文件位置指針不是指向文件尾,即“!feof(fp)”。

34.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。

35.內(nèi)聚內(nèi)聚

36.cdeabcdeab解析:本題中函數(shù)move的實參到形參是按地址傳遞,故形參的改變會影響實參。根據(jù)題目可知在main函數(shù)中,n=3、s[0]=\'a\'、s[1]=\'b\'、s[2]=\'c\'、s[3]=\'d\'、s[4]=\'e\',數(shù)組元素s[5]~s[49]全部為\'\\0\',故z=strlen(s)=5。

第1次調(diào)用函數(shù)move時,形參str='abcd'、n=5,執(zhí)行完函數(shù)move后str[4]=str[3]=\'d\'、str[3]=str[2]=\'c\'、str[2]=str[1]=\'b\'、str[1]=str[0]=\'a\'、str[0]=str[4]=\'e\'。即s[0]=\'e\'、s[1]=\'a\'s[2]、s[2]=\'b\'、s[3]=\'c\'、s[4]=\'d\'。

第2次調(diào)用函數(shù)move時,形參str='eabcd、n=5,執(zhí)行完函數(shù)move后str[4]=str[3]=\'c\'、str[3]=str[2]=\'b\'、str[2]=str[1]=\'a\'、str[1]=str[0]=\'e\'、str[0]=str[4]=\'d\'。即s[0]=\'d\'、s[1]c\'e\'、s[2]=\'a\'、s[3]=\'b\'、s[4]=\'c\'。

第3次調(diào)用函數(shù)move時,形參str='deabc'、n=5,執(zhí)行完函數(shù)move后str[4]=str[3]=\'b\'、str[3]=str[2]=\'a\'、str[2]=str[1]=\'e\'、str[1]=str[0]=\'d\'、str[0]=str[4]=\'c\'。即s[0]=\'c\'、s[1]=\'d\'、s[2]=\'e\'、s[3]=\'a\'、s[4]=\'b\'。

所以printf函數(shù)的輸出結(jié)果為:cdeab。

37.HelloHello解析:語句b[5]=0;相當于語句b[5]='\\0';且'\\0'為字符串結(jié)束標志,輸出時遇到'\\0'就停止輸出。

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

39.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標準接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

40.1010解析:此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。

41.D解析:本題考查if語句。第1個if語句,實現(xiàn)如果a<b,則交換a、b值的功能;第2個if語句,實現(xiàn)如果a<c,則交換a、c的值的功能;第3個if語句,實現(xiàn)如果b<c,則交換b、c的值的功能。3個if語句結(jié)合起來實現(xiàn)的功能就是將a、b、c按從大到小排序。

42.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符合題意。

43.D

44.C解析:靜態(tài)局部變量在編譯時賦初值,即只賦初值一次,在程序運行時它已有初值。以后每次調(diào)用時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值,而對自動變量賦初值,不是在編譯時進行的,而在函數(shù)調(diào)用時進行,每調(diào)用一次函數(shù)重新給一次初值,相當于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時,d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。

45.C學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇C項。

46.D解析:由于只有4個元音字符,所以v1=4,v0和v2在循環(huán)11次中都要加1,共循環(huán)12次,由于v0的初值為1,所以v0=13,v2=12。

47.B解析:解答本題需要注意兩個知識點:①結(jié)構(gòu)體變量的長度是其內(nèi)部成員長度的總和,本題中,structdate中包含year、month、day這3個整型變量,一個整型變量占2個字節(jié);②sizeof是求所占字節(jié)數(shù)的運算符。

48.C解析:算法的時間復(fù)雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關(guān)。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。所以,本題正確答案為C。

49.C解析:本題主要考查結(jié)構(gòu)體的內(nèi)存使用:對結(jié)構(gòu)體而言,結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個成員相互獨立。題中intb占2個字節(jié),chara[15]占15個字節(jié),doublec占8個字節(jié),所以共25個字節(jié)。

50.C解析:本題考查文件包含的知識點:格式1:#include(文件名),預(yù)處理程序在標準目錄下查找指定的文件;格式2:#include“文件名”,預(yù)處理程序首先在引用被包含文件的源文件所在的目錄中尋找指定的文件,如查找不到,再按系統(tǒng)指定的標準目錄查找。

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

52.C本題考查的是順序查找。在進行順序查找過程中,如果線性表中的第一個元素就是被查找元素,則只需做一次比較就查找成功,查找效率最高;但如果被查找的元素是線性表中的最后一個元素,或者被查找的元素根本就不在線性表中,則為了查找這個元素需要與線性表中所有的元素進行比較,這是順序查找的最壞情況。所以對長度為n的線性表進行順序查找,在最壞情況下需要比較n次。故本題答案為C。

53.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認,則默認為int。函數(shù)中如果有“retum(表達式):”語句,表達式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實際情況是把表達式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。

54.A解析:本題中定義一個全局變量a和一個局部變量a。局部變量和全局變量的不同在于,局部變量的存儲單元都是在進入這些局部變量所在的函數(shù)體(或復(fù)合語句)時生成,退出其所在的函數(shù)體(或復(fù)合語句)時消失,而全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域從變量定義開始,到整個源文件結(jié)束為止。若全局變量和某一函數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽,在該函數(shù)內(nèi),起作用的將是局部變量,與同名的全局變量不發(fā)生任何關(guān)系。在程序中首先定義了變量s并賦值為0,接著在嵌套的復(fù)合語句{}中定義了變量a并賦初值為5,接著執(zhí)行語句“s+=a++;”在這條語句中a加1,但表達式a++還是原來的值,故s=s+5,s為5,程序執(zhí)行到外層,此時{}內(nèi)定義的變量a不再有效,變量a為{}之前定義的且初值為3,接著執(zhí)行{}后面的語句“s+=a++;”,相當于執(zhí)行語句“s=s+(a++);”即s=5+3,最后值為8,所以輸出的s值為8。故4個選項中A正確。

55.B解析:選項D顯然是錯的,而選項A沒有分號結(jié)束,不是C語句;a++=5違反了賦值表達式工側(cè)必須為一個變量(不能是常量或表達式)的規(guī)定。

56.DD。【解析】軟件需求分析中需要構(gòu)造一個完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,使用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對軟件的功能需求和非功能需求。

57.A解析:本題考查的是自加運算符的運用。自加運算符有前綴和后綴兩種不同的形式,對于變量本身來說,無論是前綴還是后綴其作用的效果都是相同的,使變量值增1。但作為表達式來說卻有著不同的值,前綴時自增表達式的值是變量增1,后的值,而后綴時自增表達式的值是變量增1前的值。本題程序開始定義了兩個整型變量m和n,并分別初始化為12和34.第一條輸出語句是按整型格式輸出表達式m++和++n的值,根據(jù)前面所述,表達式m++的值為12,++n的值為35,所以第一次輸出的字符串是'1235',執(zhí)行完后m和n的值都自增1,分別是13和35.接下來第二條輸出語句也是按整型格式輸出表達式n++和++m的值,分別是35和14,故最終的輸出應(yīng)該為“12353514”,所以,4個選項中選項A符合題意。

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

59.B解析:f函數(shù)的功能是返回地址為x,y的兩個數(shù)中值鉸的數(shù)的地址,本題輸出結(jié)果是7,8,7。

60.A解析:C語言規(guī)定,程序中各函數(shù)之間既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用。

61.B

62.B

63.B

64.B當邏輯運算符“&&”兩邊的值是非零時,邏輯表達式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。

65.A

66.D表達式a一一的值為10,a的值遞減為9,所以b=10,x的值為逗號表達式的值,x=10。因此x=10,a=9.b=10。

67.C本題考查三目運算符a<b?a:c<d?c:d也可寫成a<b?a:(c<d?c:d),所以根據(jù)優(yōu)先級,先算括號內(nèi)的,c小于d為真取C的值,再看a小于b為假,所以取C的值。

68.C

69.C數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以選擇C。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。

70.B

71.D本題主要考查我們對C語言一些基礎(chǔ)知識的掌握情況。下面分別分析本題的四個選項。

C語言程序在編譯時的主要任務(wù)就是檢查程序的語法是否符合規(guī)定,因此選項A的描述不正確。

一個程序一般都是從主函數(shù)開始運行,之后主程序調(diào)用的其他程序段叫子程序。由于C語言的程序段都是以函數(shù)形式存在的,所以除了主程序main()函數(shù)以外,其他程序中出現(xiàn)的子程序都是函數(shù),而非過程。因此,選項B的描述不正確。

在C語言中,函數(shù)是不允許被定義在其他函數(shù)里面的,即嵌套定義的。因此,選項C的描述是錯誤的。

在C語言中,函數(shù)不能嵌套定義,但可以嵌套調(diào)用和遞歸調(diào)用。嵌套調(diào)用是指一個函數(shù)在執(zhí)行過程中,調(diào)用了另一個函數(shù),而被調(diào)函數(shù)在執(zhí)行時,還可以調(diào)用其他函數(shù)。因此,本題正確的答案選D。

72.C本題考查逗號表達式。程序輸出時輸出一個%d,所以輸出第一個a的值與后續(xù)無關(guān)。本題考查逗號表達式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。

73.B

74.B本題是對基本知識點的理解,預(yù)處理命令行的位置沒有規(guī)定,只是習(xí)慣寫在起始位置而已,當需要時才用#include<stdio.h>頭文件,預(yù)處理的作用就是實現(xiàn)宏定義和條件編譯。

75.D在三目運算符中,優(yōu)先級相同,按從右到左的結(jié)合性計算,a<b?a:(c<d?a:d)c<d成立所以取值a,同理可得,選擇D選項

76.Dseartf函數(shù)中的輸入項必須是指針,只有選項D)符合這個要求。

77.C

78.D

79.C

80.C81.(1)錯誤:*t=calloe(rn,sizeof(STU))

正確:t=(structss*)calloc(m,sizeof(STU))

(2)錯誤:t[k].num=b[j].num

正確:t[k]=b[j]

【解析】因為t是一個指向動態(tài)存儲空間的指針變量,因此“*t=calloc(rn,sizeof(STU))”應(yīng)改為“t=(structss*)calloc(m,sizeof(STU))”;而題目要求把學(xué)生的全部內(nèi)容互換,即整個結(jié)構(gòu)體的內(nèi)容,而不是某個成員變量的值,因此“t[k].num=b[j].num”中的.num應(yīng)去掉。

82.1intfun(int*s,intt,int*k)2{3Inti;4*k=0;/*k所指的數(shù)是數(shù)組的下5標*/6for(i=0;i<t;i++)hif(s[*k]<s[i])*k=i;/*找到數(shù)組中值最大的元素,把該元素的下標賦給k所指的數(shù)*/7returns[*k];/*返回數(shù)組的最大元素*/8}<t;i++)<>本題中使用指針變量k作為值最大的元素的下標。使用時要注意對k進行指針運算。程序一開始讓k指向數(shù)組中的第1個元素,即*k=0。通過for循環(huán)與數(shù)組各個元素比較,找到最大值。<></t;i++)2022-2023年浙江省舟山市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.以下是if語句的基本形式:

if(表達式.語句

其中“表達式”()。

A.必須是邏輯表達式B.必須是關(guān)系表達式C.必須是邏輯表達式或關(guān)系表達式D.可以是任意合法的表達式

3.以下敘述中正確的是

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

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

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

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

4.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.eeaabmmnhhirrstu

B.efgabcdmnopqhijkIrstuvwxyz

C.efgacdmopqhjkIrvwxyz

D.eefgaabcdmmnopqhhijkIrrstuvwxyz

5.設(shè)線性鏈表中結(jié)點的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點p的直接后繼,則應(yīng)執(zhí)行下列()操作。

A.p->next=p->next->next;

B.p=p->nextp->next=p->next->next;

C.p->next=p->next;

D.p=p->next->next;

6.設(shè)變量已正確定義并賦值,以下正確的表達式是()。A.x=y+z+5.++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

7.有以下定義

#include<stdio.h>

chara[10],*b=a;

不能給a數(shù)組輸入字符串的語句是

A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(B);

8.在下列關(guān)系運算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是A.并B.交C.投影D.笛卡兒乘積

9.下列排序算法中,其時間復(fù)雜度和記錄的初始排列無關(guān)的是()

A.插入排序B.堆排序C.快速排序D.冒泡排序

10.下面程序的運行結(jié)果是______。#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}

A.7654321B.1714171C.1711717D.7177171

11.

12.同一個關(guān)系模型的任意兩個元組值()。

A.可以全相同B.不能全相同C.必須全相同D.以上都不對

13.下列程序的運行結(jié)果為()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12

14.設(shè)S為C語言的語句,計算機執(zhí)行下面算法時,算法的時間復(fù)雜度為()。A.n2B.O(nlgn)C.O(n)D.O(n2)

15.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745

16.有以下程序段intj;floaty;charname[50]:scanf("%2d%f%s",&i,&.y,name):當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

17.設(shè)有以下程序段:structbook{floatprice;charlanguage;chartitle[20];}rec,*ptr;ptr=&rec;要求輸入字符串給結(jié)構(gòu)體變量rec的title成員,錯誤的輸入語句是()。

A.scanf(“%s”,ptr.title);

B.scanf(“%s”,rec.title);

C.scanf(“%s”,(*ptr).title);

D.scanf(“%s”,ptr->title);

18.在具有101個元素的順序表中查找值為x的元素結(jié)點時,平均比較元素的次數(shù)為()。

A.50B.51C.100D.101

19.執(zhí)行以下程序后,a,b的值分別為main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

20.為了提高軟件模塊的獨立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合

二、2.填空題(20題)21."printf("%d\n",strlen("\t\"'\023\xABC\n"));"語句的輸出結(jié)果是______。

22.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

23.下列程序的運行結(jié)果是______。

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

24.下面程序執(zhí)行后輸出的結(jié)果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

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

}

25.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>

main()

{intx[10],a[9],I;

for(I=0;I<10;I++)scanf("%d",&x[I]);

for(【】;I<10;I++)

a[I-1]=x[I]+【】;.

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

printf("");

}

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

main()

{intarr[10],i,k=0

for(i=0;i<10;i++)atr[i]=i

for(i=1,i<4;i++)k+=arr[i]+i;

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

}

27.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組bo請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

______;

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

{if(i%4==0)printf("\n");

printf("%3d",b[i]);

}

}

28.有以下程序

main()

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

y=y+z;x=x+y;

printf("%d",x<y?y:x);

printf("%d",x<y?x++:y++);

printf("%d",x);

printf("%d",y);

}

運行結(jié)果是【】

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

structst

{charname[20];doublescore;};

main()

{structstex;

pfintf("exsize:%d\n",sizeof(______));}

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

main()

{intx==15;

while(x>10&&x<50)

{x++;

if(x/3){x++;break;}

elsecontinue;

}

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

}

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

main()

{inta=2,b=4,c=6;

int*p1=&a,*p2,&b,*p;

*(p=&c)=*p1*(*p2);

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

}

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

mazn()

{inta=5,b=4,c=3,d;

d=(a>b>C);

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

}

33.以下程序用業(yè)統(tǒng)計文件十字符個數(shù)。請?zhí)羁铡?/p>

#include"stdio.h"

main()

{FTLE*fp;longnum=OL;

if((fp=fopen("fname.dat","r"))==NUlL)

{pirntf("Openerror\n");exit(0);}

while()

{fgetc(fp);num++;}

printf("num=%1d\n",num-1);

fclose(fp);

}

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

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

35.耦合和內(nèi)聚是評價模塊獨立性的兩個主要標準,其中______反映了模塊內(nèi)各成分之間的聯(lián)系。

36.以下程序運行后輸入:3,abcde<回車>,則輸出結(jié)果是【】。

#include<string.h>

move(char*str,intn)

{chartempinti;

temp=str[n-1);

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp

}

main()

{chars[50];ihtn,i,z;

scanf("%d,%s",&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

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

}

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

#include<stdio.h>

main()

{charb[]="Helloyou";

b[5]=0;

printf("%s\n",b);

}

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

39.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

40.若a是int型變量,則下列表達式的值為______。

(a=2*3,a*2),a+4

三、1.選擇題(20題)41.運行下列程序時,若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。

main()

{floata,b,C,t;

scanf("%f,%f,%of",&a,&b,&C);

if(a<B)

{t=a;a=b;b=t;}

if(a<C)

{t=a;a=c;c=t;}

if(b<C)

{t=b;b=c;c=t;}

printf("%f\n%f\n%f\n",a,b,C);

}

A.1.002.003.00

B.1.003.002.00

C.132

D.3.0000002.0000001.000000

42.有以下程序: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);}程序運行后的輸出結(jié)果是______。

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

43.若有以下定義和語句,則輸出結(jié)果是______。int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);

A.10,20B.10,10C.20,10D.20,20

44.以下程序運行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

45.設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課SC(學(xué)號,課號,成績),則表sc的關(guān)鍵字(鍵或碼)為()。

A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績

46.若運行以下程序時,從鍵盤輸入ADescriptor<回車>,則下面程序的運行結(jié)果是()。#include<stdio.h>main(){charc;intv0=1,v1=0,v2=0;do{switch(c=getehar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':v1+=1default:v0+=1;v2+=1;}}while(c!='\n');printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=13,v1=4,v2=12

47.下列程序的運行結(jié)果為()

#include<stdio.h>

main()

{structdate

{intyear,month,day;

)today;

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

}

A.8B.6C.10D.12

48.算法的時間復(fù)雜度是指______。

A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)

49.若有下列說明和語句,已知int型數(shù)據(jù)占2個字節(jié),則下列語句的輸出結(jié)果是()。

stmctst

{chara[15];

intb;

doublec;

};

printf("%d",sizeof(structst));

A.15B.8C.25D.2

50.在“文件包含”預(yù)處理語句的使用形式中,當#include后面的文件名用<>(尖括號)括起時,尋找被包含文件的方式是()。

A.僅僅搜索當前目錄

B.僅僅搜索源程序所在目錄

C.在標準目錄下查找指定的文件

D.先在源程序所在目錄搜索,如查找不到,再按系統(tǒng)指定的標準目錄查找

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

A.定義、開發(fā)、運行維護

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

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

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

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

A.log2nB.n/2C.nD.n+1

53.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}

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

54.有以下程序:inta=3;main(){ints=0;{inta=5;s+=a++;)s+=a++;printf('%d\n',s);}程序運行后的輸出結(jié)果是()。

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

55.若變量a、i已正確定義,且i已正確賦值,合法的語句是______。

A.a=1B.++i;C.a=a++=5;D.a=int(i);

56.軟件需求分析一般應(yīng)確定的是用戶對軟件的______。

A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求

57.有以下程序main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);)程序運行后的輸出結(jié)果是

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

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

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

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

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

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

59.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運行后輸出結(jié)果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

60.C語言規(guī)定,程序中各函數(shù)之間()

A.既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用

B.不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用

C.允許直接遞歸調(diào)用不允許間接遞歸調(diào)用

D.不允許直接遞歸調(diào)用允許間接遞歸調(diào)用

四、選擇題(20題)61.

62.

63.

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

main

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

printf("%d,%d\n",a,b);}A.A.6,1B.2,1C.6,0D.2,0

65.

66.執(zhí)行語句X=(a=10,b=a--.

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論