![2021-2022年廣東省中山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第1頁](http://file4.renrendoc.com/view/1841d8689279254b4dff0791d352e8d3/1841d8689279254b4dff0791d352e8d31.gif)
![2021-2022年廣東省中山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第2頁](http://file4.renrendoc.com/view/1841d8689279254b4dff0791d352e8d3/1841d8689279254b4dff0791d352e8d32.gif)
![2021-2022年廣東省中山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第3頁](http://file4.renrendoc.com/view/1841d8689279254b4dff0791d352e8d3/1841d8689279254b4dff0791d352e8d33.gif)
![2021-2022年廣東省中山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第4頁](http://file4.renrendoc.com/view/1841d8689279254b4dff0791d352e8d3/1841d8689279254b4dff0791d352e8d34.gif)
![2021-2022年廣東省中山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第5頁](http://file4.renrendoc.com/view/1841d8689279254b4dff0791d352e8d3/1841d8689279254b4dff0791d352e8d35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年廣東省中山市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.有如下程序:
longfib(intn)
{if(n>2)return(fib(n-1)+fib(n-2));
elsereturn(2);
}
main()
{printf("%d\n",fib(3));}
該程序的輸出結(jié)果是A.A.2B.4C.6D.8
3.有定義語句:“int*p[4];”,以下選項中與此語句等價的是()。
A.intp[4];B.int**P;C.int*(p[4]);D.int(*p)[4];
4.若有下列說明語句int(*p)();則標(biāo)識符p代表的是()
A.一個用于指向函數(shù)的指針變量,函數(shù)返回值的類型為int型
B.一個帶回值類型為整型的函數(shù)名
C.一個用于指向整型數(shù)據(jù)的指針變量
D.一個帶回值類型為指針類型的函數(shù)名
5.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的運(yùn)行結(jié)果是()。
A.abcB.28cC.abc28D.因類型不一致而出錯
6.以下正確的字符常量是()。A.'\089'B.'\012'C.'\0XAB'D.'\0xab'
7.指針可以用來表示數(shù)組元素,若已知語句:inta[3][7];則下列表示中正確的是()。
A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)
8.下列程序段中完全正確的是()。A.int*p;scanf(“%d”,&p);
B.int*p;scanf(“%d”,p);
C.intk,*p=&k;scanf(“%d”,p);
D.intk,*p;*p=&k;scanf(“%d”,p);
9.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
10.若有定義語句:intX=10;,則表達(dá)式x-=x+X的值為A.-20B.-10C.0D.10
11.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()
12.下列不屬于軟件調(diào)試技術(shù)的是______。A.強(qiáng)行排錯法B.集成測試法C.回溯法D.原因排除法
13.
14.
15.算法的時間復(fù)雜度是指A.算法的執(zhí)行時間B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令條數(shù)D.算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
16.有以下程序:#include<stdio.h>main(){chars[]={“012xy”;inti,n=0;for(i=0;s[i]|=0;i++)if(s[i]>=‘a(chǎn)’&&s[i]<=‘z’)n++;printf(“%d\n”,n);}程序的運(yùn)行結(jié)果是()。
A.0B.2C.3D.5
17.在循環(huán)雙鏈表的p所指的結(jié)點(diǎn)之前插入s所指結(jié)點(diǎn)的操作是()。A.p->prior->prior
B.p->prior->prior
C.s->prior->next=s
D.s->prior->prior=s
18.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的運(yùn)行結(jié)果是
A.A.331
B.41
C.2
D.1
19.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是()。A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)
20.以下選項中的表達(dá)式調(diào)用庫函數(shù)依次求-4.5的絕對值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調(diào)用是()
A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)
二、2.填空題(20題)21.度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為______。
22.下面程序執(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);
}
23.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊列屬于______結(jié)構(gòu)。
24.下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個名為bi.dat的新文件中,請?zhí)羁铡?/p>
#include"stdio.h"
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
25.以下程序的輸出結(jié)果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
26.以下程序的輸出結(jié)果是12.00,請將空白處填寫完整。
main()
{inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1*2;
printf("%52f\n",z);
}
27.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。
28.以下程序的功能是:利用指針向三個整型變量,并通過指針運(yùn)算找出三個數(shù)中最大值,輸出到屏幕上。請?zhí)羁?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax二*pz;
printf("max=%d\n",max);}
29.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。
30.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。
31.以下程序段的輸出結(jié)果是【】。
inti=9;
prinff("%o\n",i);
32.符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是順序結(jié)構(gòu)、()和循環(huán)結(jié)構(gòu)。
33.實(shí)體之間的聯(lián)系可以歸結(jié)為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個學(xué)校有許多教師,而一個教師只歸屬于一個學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于【】的聯(lián)系。
34.設(shè)y是int型變量,請寫出y為奇數(shù)的關(guān)系表達(dá)式【】。
35.下述程序的輸出結(jié)果是【】。
#include<stdio.h>
voidmain()
{
charc1[20]="1234";
charc2[20]="5678";
char*p1,*p2;
p1=c1;
p2=c2;
while(*p1++)
while(*p1++=*p2++);
printf("%s,c1);
}
36.用十六進(jìn)制給存儲器中的字節(jié)地址進(jìn)行編號,其地址編號從0000到FFFF,則該存儲器容量是【】。
37.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
38.如下語句printf("%c\n",'B'+40);在執(zhí)行后的輸出結(jié)果是【】。
39.以下程序的輸出結(jié)果為【】。
#defineJFT(x)x*x
main()
{inta,k=3;
a=++JFT(k+1);
printf("%d",a);
}
40.在數(shù)據(jù)流圖的類型中有兩種類型,它們是變換型和()。
三、1.選擇題(20題)41.以下不是網(wǎng)絡(luò)操作系統(tǒng)的是()
A.Windows3.1B.WindowsNTC.NetWareD.UNIX
42.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidsub(int*s,int*y){staticintm=4:*y=s[m];m--;}voidmain(){inta[]={1,2,3,4,5},k,x;printf("\n");for(k=0;k<=4;k++){sub(a,&x);printf("%d,",x);}}
A.5,4,3,2,1,B.1,2,3,4,5,C.0,0,0,0,0,D.4,4,4,4,4,
43.設(shè)有如下三個關(guān)系表:
下列操作中正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
44.在C語言中,下列關(guān)于文件操作的敘述正確的是()。
A.對文件操作必須先關(guān)閉文件B.對文件操作必須先打開文件C.對文件操作順序沒有統(tǒng)一規(guī)定D.以上三種說法全錯
45.若x是int型變量,且有下面的程序片段:for(x=3;x<6;x++)printf(x%2)?("**%d"):(”##%d\n”),x);上面程序片段的輸出結(jié)果是()
A.**3##4**5
B.##3**4##5
C.##3**4##5
D.**3##4**5
46.下面關(guān)于對象概念的描述中,錯誤的是
A.對象就是C語言中的結(jié)構(gòu)體變量
B.對象代表著正在創(chuàng)建的系統(tǒng)中的一個實(shí)體
C.對象是一個狀態(tài)和操作(或方法)的封裝體
D.對象之間的信息傳遞是通過消息進(jìn)行的
47.下列程序的輸出結(jié)果是______。main(){floatx=3.6;inti;i=(int)x;printf("x=%f,i=%d",x,i);}
A.x=3.600000,i=4B.x=3i=3C.x=3.600000,i=3D.x=3i=3.600000
48.設(shè)a、b、c、d、m.n均為血型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為______。
A.0B.1C.2D.3
49.以下程序的輸出結(jié)果是()。main(){inta=0,i;for(i=1;i<5;i++){switch(i){casc0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf("%d\n",a);}
A.31B.13C.10D.20
50.下列敘述中,正確的是
A.用E-R圖能夠表示實(shí)體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系
B.用E-R圖只能表示實(shí)體集之間一對一的聯(lián)系
C.用E-R圖只能表示實(shí)體集之間一對多的聯(lián)系
D.用E-R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型
51.下列程序的運(yùn)行結(jié)果是()。main(){inta=-5,b=1,c=1;intx=0,Y=2,z=0;if(c>0)x=x+y;if(a<=0){if(b>0)if(c<=0)y=x-y;}elseif(c>0)Y=x-y;elsez=y;printf("%d,%d,%d\n",x,y,z);}
A.2,2,0B.2,2,2C.0,2,0D.2,0,2
52.以下能正確定義一維數(shù)組的選項是
A.inta[5]={0,1,2,3,4,5};
B.chara[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′};
C.chara={′A′,′B′,′C′};
D.inta[5]="0123";
53.下列選項中不屬于結(jié)構(gòu)化程序設(shè)計方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復(fù)用
54.有下列程序:main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}執(zhí)行后的輸出結(jié)果是()。
A.5B.24C.32D.40
55.若有以下定義和語句structa{intn,m;};structast[3]={{1,20},{2,19},{3,21}};structa*p=st;則以下錯誤的引用是
A.(p++)->n;B.st[0].n;C.(*p).n;D.p=&st.m;
56.以下關(guān)于typedef的敘述錯誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代表
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性
57.有以下程序intf(intA){returna%2;}main(){ints[8]={1,3,5,2,4,6),i,d=0;for(i=0;f(s[i];i++)d+=s[i];printf("%d\n",D);}程序運(yùn)行后的輸出結(jié)果是
A.9B.11C.19D.21
58.設(shè)有定義語句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次輸出x數(shù)組6個元素中的值,不能完成此操作的語句是()。
A.for(i=0;i<6;i++)printf("%2d",*(p++));
B.for(i=0;i<6;i++)printf("%2d",*(p+i));
C.for(i=0;i<6;i++)printf("%2d",*p++);
D.for(i=0;i<6;i++)printf("%2d",(*p)++);
59.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機(jī)中的順序存儲方式D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的表示
60.以下程序的輸出結(jié)果是()main(){inta=-1,b=4,k;k=(++a<=0)&&!(b--<=0);printf("%d%d%d\n",k,a,B);}
A.104B.004C.103D.003
四、選擇題(20題)61.有以下程序
62.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.一1C.1D.7
63.下列敘述中不正確的是()。
A.在C語言中調(diào)用函數(shù)時,只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動變量實(shí)質(zhì)上是一個函數(shù)內(nèi)部的局部變量
64.
65.
66.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.一12C.一20D.10
67.設(shè)有以下語句
charx=3,y=6,z;
z=x^y<<2;
則z的二進(jìn)制值是
A.00010100B.00011011C.00011100D.00011000
68.一些重要的程序設(shè)計語言(inC語言和Pascal語言)允許過程的遞歸調(diào)用,而實(shí)現(xiàn)遞歸調(diào)用中的存儲分配通常用()。
A.棧B.堆C.數(shù)組D.鏈表
69.假設(shè)a和b為int型變量,則執(zhí)行以下語句后b的值為()。a=1;b=10;do{b-=a;a++;}while(b--<0);A.9B.-2C.-lD.8
70.(18)下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是______。
A.數(shù)據(jù)結(jié)構(gòu)
B.數(shù)據(jù)操作
C.數(shù)據(jù)查詢
D.數(shù)據(jù)約束
71.有以下程序執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.4D.死循環(huán)
72.
73.將E—R圖轉(zhuǎn)換為關(guān)系模式時,實(shí)體和聯(lián)系都可以表示為()。
A.屬性B.鍵C.關(guān)系D.域
74.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[o][1]+a[1][1]+a[1][2]);}A.8B.7C.12D.9
75.若有定義:“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。
A.a=a++,i++;
B.i=(a+k)<=(i+k);
C.i=a%11;
D.i=!a;
76.在“文件包含,預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當(dāng)前目錄
77.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件),下面屬于系統(tǒng)軟件的是()。A.學(xué)生管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)
78.下列可用于C語言用戶標(biāo)識符的一組是
A.void,define,WORDB.a(chǎn)3_b3,_123,Car
C.For,-abc,CaseD.2a,DO,sizeof
79.在面向?qū)ο蠓椒ㄖ校哂邢嗨茖傩耘c操作的一組對象稱為()。
A.類B.實(shí)例C.消息D.數(shù)據(jù)
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從字符串str中,刪除所有小寫字母c。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:移動一維數(shù)組中的內(nèi)容,若數(shù)組中有n個整數(shù),要求把下標(biāo)從p到n-1(p≤n-1)的數(shù)組元素平移到數(shù)組的前面。例如,一維數(shù)組中的原始內(nèi)容為1,2,3,4,5,6,7,8,9,10,11,12,13,14,P的值為4。移動后,一維數(shù)組中的內(nèi)容應(yīng)為5,6,7,8,9,10.11,12,13,14,1,2,3,4。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.B
2.B
3.D本題int*p[4]的作用是聲明一個指針數(shù)組,每個元素都是int*型指針。
4.A
5.Cfprintf函數(shù)將內(nèi)容寫入硬盤的文件,fputs函數(shù)將字符串寫入文件,最終文件的內(nèi)容為abc28。故本題答案為C選項。
6.B題目中的選項都以轉(zhuǎn)義字符“\\”開頭,“\\ddd”表示3位八進(jìn)制數(shù)代表的一個ASCII字符,“\\xhh”表示2位十六進(jìn)制數(shù)代表的一個ASCII字符。選項A中“089”是不合法的八進(jìn)制數(shù),錯誤;選項C、D中“\\0X”或“\\0x”不合法,錯誤;選項B表示八進(jìn)制數(shù)012代表的ASCII字符,正確。本題答案為B選項。
7.D
8.CA選項中,沒有對指針進(jìn)行初始化,屬于無效指針,并且在“scanf(“%d”,&p);”中無須再進(jìn)行取地址操作;B選項中,沒有對指針進(jìn)行初始化,屬于無效指針;D選項中,語句“*p=&k;”書寫錯誤,應(yīng)為“P=&k;”。故本題答案為C選項。
9.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:S=m+n+m+n*k=1+2+1+2*3=10。
10.B解析:x-=x+x可化為:x=x-(x+x),由于x初始值為10,所以計算后,x=10-20=-10,因此選B)。
11.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。
12.B解析:我們嚴(yán)格區(qū)分調(diào)試與測試,調(diào)試是已知有錯誤而來找錯誤,是被動的;測試有很多種,比如未發(fā)現(xiàn)錯誤但不能保證程序沒錯而來找BUG,還比如我們運(yùn)行測試程序是否符合用戶的要求,是主動的。所以答案是選項B。A、C、D都是具體的程序調(diào)試方法,而B是宏觀的程序測試方法。測試有單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試。比如我們在進(jìn)行單元測試時,發(fā)現(xiàn)程序有錯誤,我們再可以根據(jù)A、C、D的方法來找錯誤。
13.A
14.A
15.DD?!窘馕觥克惴ǖ臅r間復(fù)雜度是指算法需要消耗的時間資源。一般來說,計算機(jī)算法是問題規(guī)模。09函數(shù)fin),算法的時間復(fù)雜度也因此記做T(n)=O(f(n))。因此,問題的規(guī)模n越大,算法執(zhí)行的時間的增長率與f(n)的增長率正相關(guān),稱作漸進(jìn)時間復(fù)雜度(AsymptoticTimeComplexity)。簡單來說就是算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)。
16.B程序首先給字符數(shù)組s賦值為“012xy”。for循環(huán)語句的功能是遍歷字符串,通過if條件語句對字符串中的小寫字母進(jìn)行計數(shù),字符串中小寫字母個數(shù)為2,即n=2。故本題答案為B選項。
17.D
18.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或?yàn)椤凹佟睍r執(zhí)行指定的動作,由if引導(dǎo)條件為“真”時執(zhí)行的操作;由else引導(dǎo)條件為“假”時執(zhí)行的操作。else語句要與上面最近的if語句進(jìn)行匹配,如果要嵌套調(diào)用if-else語句,需要將嵌套部分用{}括起來,避免程序報錯。題目中給出了一個if語句和一個if-else語句,if-else語句為第一個if語句的子語句。首先執(zhí)行外層if語句,執(zhí)行條件為x>y,由于x=1,y=2,故該條件為假,不執(zhí)行if的子語句,直接執(zhí)行語句printf("%d\\n",x++);,該語句先輸出x的值,然后進(jìn)行x++操作。x的初始值為1,輸出結(jié)果為1。
19.D本題主要考查do—while循環(huán),因?yàn)樽兞縯的初始值等于1,經(jīng)過第一次do-while循環(huán)后,執(zhí)行t=t-1這條語句一次,所以變量t的值為-1,判斷關(guān)系表達(dá)式t!=n是否成立,如果關(guān)系表達(dá)式成立,則執(zhí)行第二次循環(huán),如果關(guān)系表達(dá)式不成立,退出循環(huán)。由此可見,只要輸入變量n的值為負(fù)奇數(shù),則一定會使t==n成立,故退出do-while循環(huán)。
20.C
21.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標(biāo)順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。
22.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。
23.存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用。可知,循環(huán)隊列應(yīng)當(dāng)是物理結(jié)構(gòu)。
24.dat""w"或"bi.dat""w+"或"bi.dat""r+"dat','w'或'bi.dat','w+'或'bi.dat','r+'解析:本題的考點(diǎn)是fopen()函數(shù),此函數(shù)的格式是fopen(文件名,使用文件方式),題目的要求是將從鍵盤讀入的文本寫到文件中,因此選擇的打開方式應(yīng)該是'w'(只寫)?;蛘呤亲x寫“r+”或“w+”。
25.99解析:本題要輸出的結(jié)果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個字符,\'\\n\'是1個字符,'012'又是3個字符,最后的\'\\1\'和\'\\\\\'都是1個字符。所以最終字符串的長度應(yīng)該是3+1+3+1+1=9。故本題應(yīng)該填9。
解析:a/2=9/2=4,1/2=0,于是根據(jù)輸出結(jié)果就有下列等式:z=4+2*x/1.1=12.0,化簡后,為x/1.1=4,x=4.4。
27.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。
28.
29.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個;維表代表一種關(guān)系。
30.邏輯關(guān)系邏輯關(guān)系
31.1111解析:格式字符。是以八進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0),因?yàn)檎麛?shù)9的八進(jìn)制為11,所以輸出結(jié)果為11。
32.選擇結(jié)構(gòu)選擇結(jié)構(gòu)解析:程序設(shè)計語言僅僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。遵循程序結(jié)構(gòu)化的設(shè)計原則,按結(jié)構(gòu)化程序設(shè)計方法設(shè)計出的程序易于理解、使用和維護(hù);可以提高編程工作的效率,降低軟件的開發(fā)成本。
33.一對多一對多解析:實(shí)體之間的聯(lián)系可歸結(jié)為一對一、一對多與多對多的聯(lián)系。如一個學(xué)校有許多教師,一個教師只歸屬于一個學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于一對多的聯(lián)系。
34.(y%2)==1或(y%2)!=0(y%2)==1或(y%2)!=0
35.1567815678解析:本題使用了雙重while循環(huán),外循環(huán)的循環(huán)條件是*p1++,即每次循環(huán)時讓p1指向其后面的一個元素,而p1自增之前所指內(nèi)容為0時循環(huán)結(jié)束。內(nèi)循環(huán)的循環(huán)條件是*p1++=*p2++,即每次循環(huán)時讓p1和p2指向其后面的一個元素,而將p2自增之前所指的元素復(fù)制到p1自增之前所指的地址中去,直到p2自增之前所指內(nèi)容為0時循環(huán)結(jié)束。p1本來一開始是指向c1[0],由于外循環(huán)判斷條件時讓p1自增了,所以進(jìn)入內(nèi)循環(huán)時p1指向c1[1],而內(nèi)循環(huán)將p2所指字符串復(fù)制到p1所指位置,所以內(nèi)循環(huán)的結(jié)果是c1[1]、c1[2]、c1[3]、c1[4]、c1[5]分別被c2[0]、c2[1]、c2[2]、c2[3]、c2[4]改寫成'5'、'6'、'7'、'8'、'\\0'。故程序輸出的結(jié)果為15678。
36.64KB
37.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時循環(huán)6次。
38.jj解析:在C程序中的字符量可參與任何整數(shù)運(yùn)算。
39.99解析:本題中首先將宏替換掉,則表達(dá)式為a=++k+1*k+1=4+1*4+1=9,故最后輸出a的值為9。
40.事務(wù)型事務(wù)型解析:典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。
41.A
42.A解析:本題考查的是靜態(tài)變量以及函數(shù)的實(shí)參與形參之間的地址值傳遞。sub()函數(shù)數(shù)中定義的變量m是一個靜態(tài)變量,系統(tǒng)可為其分配固定的存儲空間,重復(fù)使用時,變量的值保留;所以當(dāng)mam()函數(shù)中的for循環(huán)中語句sub(a,&x);執(zhí)行時,sub函數(shù)中m的值依次是4,3,2,1,0;因?yàn)樽兞縳進(jìn)行的是地址值傳遞,所以最后依次輸出的是數(shù)組a的元素a[4]、a[3]、a[2]、a[1]、a[0]。
43.C解析:本題考查數(shù)據(jù)庫的關(guān)系代數(shù)運(yùn)算。R表中只有一個域名A,有兩個記錄(也叫元組),分別是m和n;S表中有兩個域名,分別是B和C,其所對應(yīng)的記錄分別為1和3。注意觀察表T,它是由R的第一個記錄依次與S的所有記錄組合,然后再由R的第二個記錄與S的所有記錄組合,形成的一個新表。上述運(yùn)算恰恰符合關(guān)系代數(shù)的笛卡兒積運(yùn)算規(guī)則。關(guān)系代數(shù)中,笛卡兒積運(yùn)算用“×”來表示。因此,上述運(yùn)算可以表示為T=R×S。因此,本題的正確答案為C。
44.B解析:本題考查對文件的操作。文件打開后才可以對文件進(jìn)行操作,使用結(jié)束后要關(guān)閉文件。對文件的操作都是順序讀寫,即從文件的第一個數(shù)據(jù)開始,依次進(jìn)行讀寫。
45.D
46.A解析:對象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接的對應(yīng)關(guān)系,對象之間通過傳遞消息互相聯(lián)系,從模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系,B)、C)、D)是正確的,對象的思想廣泛應(yīng)用于C++、Java等語言中,因此A)錯誤。
47.C
48.A解析:C語言中比較表達(dá)式的運(yùn)算結(jié)果為0或1。0代表不成立,1表示成立。
49.A解析:在本題中,因?yàn)槊總€case語句后面都沒有break語句,所以,第一輪循環(huán)(i=1)執(zhí)行過后a的值為8,第2輪(i==2)執(zhí)行過后a的值為16,第3輪(i==3)執(zhí)行過后a的值為26,第4輪(i==4)執(zhí)行過后a的值為31,然后執(zhí)行“i++”語句,這時循環(huán)條件為假,循環(huán)結(jié)束。所以,4個選項中A正確。
50.A解析:兩個實(shí)體之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對一的聯(lián)系、一對多(或多對一)的聯(lián)系和多對多的聯(lián)系;概念模型便于向各種模型轉(zhuǎn)換。由于概念模型不依賴于具體的數(shù)據(jù)庫管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。
51.A解析:本題考查ifelse語句的使用。先判斷第1個if語句,因?yàn)閏=1>0,所以x=x+y=0+2=2。第1個if語句,因?yàn)閍=-5<0,所以進(jìn)入下列的復(fù)合語句。經(jīng)判斷發(fā)現(xiàn),復(fù)合語句中第2個if語句的條件均不滿足,不執(zhí)行任何語句退出,在這個過程中y和z的值沒有發(fā)生變化。
52.B解析:選項A)中,定義的初值個數(shù)大于數(shù)組的長度;選項C)中,數(shù)組名后少了中括號;選項D)中,整型數(shù)組不能賦予字符串。
53.D解析:20世紀(jì)70年代以來,提出了許多軟件設(shè)計方法,主要有①逐步求精:對復(fù)雜的問題,應(yīng)設(shè)計一些子目標(biāo)作過渡,逐步細(xì)化;②自頂向下:程序設(shè)計時應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計,逐步使問題具體化;⑧模塊化:一個復(fù)雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個小目標(biāo)稱為一個模塊,而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計的一個優(yōu)點(diǎn)。
54.C解析:在for循環(huán)體中,首先判斷自變量i能否被5整除,然后再自加兩次,最后判斷i能否被8整除。當(dāng)for循環(huán)執(zhí)行到第30次時,i的值為30能被5整除,然后i經(jīng)過兩次自加1運(yùn)算,值變?yōu)?2,能被8整除,故執(zhí)行“printf('%d',i);”語句,即輸出32。本題的答案為選項C)。
55.D解析:可以用以下三種形式來引用結(jié)構(gòu)體變量中的成員:結(jié)構(gòu)體變量名.成員名、指針變量名->成員名和(*指針變量名).成員名。選項D)中“&st.m”取的是結(jié)構(gòu)體中成員的地址而不是結(jié)構(gòu)的地址。
56.A解析:本題考查的重點(diǎn)是typedef的理解運(yùn)用。C語言允許通過typedef為數(shù)據(jù)類型定義新名字,但是,它并非是生成新的數(shù)據(jù)類型,因此選項A是錯誤的。
57.A解析:本題考核的知識點(diǎn)是一維數(shù)組的定義,初始化和數(shù)組中元素的引用。函數(shù)f()的作用是形參a為偶數(shù)的時候返回0,主函數(shù)中首先定義了一個長度為8的一維數(shù)組,然后給它賦初值使得s[0]=1、a[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6.其他沒有賦值的數(shù)組元素將自動賦值為0。for循環(huán)中,當(dāng)s[1]不為偶數(shù)的時,將s[i]相加,即當(dāng)i=3時,s[i]=2為偶數(shù),退出循環(huán),此時d的值為d=s101+s[1]+s[2]=1+3+5=9,因此最后輸出的d的值為9。所以,4個選項中選項A符合題意。
58.D解析:*p=x的作用是將x的首地址賦給指針變量p。選項A)正確,*(P++)中括號內(nèi)的++是在P的后面,所以它先取*P的值x[0],再執(zhí)行p++;選項B)正確,p+i表示x[i]的地址,*(p+i)表示x[i]的值;選項C)中的*和++處于同一優(yōu)先級別,而結(jié)合方向?yàn)樽杂叶?,因?p++相當(dāng)于*(p++),與選項A)相同;選項D)中的(*p)++是使*p的值+1,即x[0]的值加1,它不能實(shí)現(xiàn)指針的移動,每次循環(huán)只是x[0]的值在改變,而P的值并沒有改變,所以不能實(shí)現(xiàn)6個元素的輸出。
59.D數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)則是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的物理實(shí)現(xiàn),有時也稱作數(shù)據(jù)的物理結(jié)構(gòu)。兩者的區(qū)別是數(shù)據(jù)的邏輯結(jié)構(gòu)只涉及到數(shù)據(jù)之間抽象的數(shù)學(xué)關(guān)系。存儲結(jié)構(gòu)則涉及到如何在計算機(jī)中通過對數(shù)據(jù)的物理存儲進(jìn)行組織來表達(dá)數(shù)據(jù)元素之間的邏輯關(guān)系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達(dá)線性表中數(shù)據(jù)的前后件關(guān)系;在線性表的鏈?zhǔn)酱鎯χ惺峭ㄟ^指針域構(gòu)成的邏輯鏈條來表達(dá)數(shù)據(jù)的前后件關(guān)系。一般的,一種數(shù)據(jù)的邏輯結(jié)構(gòu)對應(yīng)的物理實(shí)現(xiàn),即數(shù)據(jù)的存儲結(jié)構(gòu)不止一種。因此選項D正確。
60.C
61.Af函數(shù)是值傳遞,不會改變main函數(shù)中t的值,所以結(jié)果為A)。
62.Ba一一的含義是先用后減l,所以當(dāng)a的值為0時,跳出循環(huán),但是仍要執(zhí)行a一一,g的值變?yōu)橐?。
63.B解析:編譯時,編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時,編譯系統(tǒng)根據(jù)需要要臨時分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲服務(wù)承攬合同三篇
- 管道行業(yè)安全管理工作心得
- 2025年全球及中國丙二醛行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國頭發(fā)護(hù)理用神經(jīng)酰胺行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國DHA微囊粉行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國三維足底掃描系統(tǒng)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球電動跨式堆垛機(jī)行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國介孔二氧化硅微球行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國多相真空萃取機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球豆莢酒店行業(yè)調(diào)研及趨勢分析報告
- 2023-2024年員工三級安全培訓(xùn)考試題及參考答案(綜合題)
- 2024年人教版初中英語九年級全冊單元測評與答案
- 【渞法】學(xué)會自我保護(hù)教學(xué)設(shè)計 七年級道德與法治下冊(統(tǒng)編版2024)
- 2025-2030年中國融雪劑行業(yè)運(yùn)行動態(tài)及發(fā)展前景預(yù)測報告
- 2025保安部年度工作計劃
- 2024年江蘇經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫
- 人居環(huán)境綜合治理項目項目背景及必要性分析
- 招標(biāo)采購基礎(chǔ)知識培訓(xùn)
- 電力系統(tǒng)分布式模型預(yù)測控制方法綜述與展望
- 2024年注冊建筑師-二級注冊建筑師考試近5年真題附答案
評論
0/150
提交評論