版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學校:________班級:________姓名:________考號:________一、單選題(20題)1.有以下程序:#includeMain(){Intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;Elsey+=3;print("%d\n",y);}程序運行后的輸出結(jié)果是()。A.2B.1C.0D.3
2.以下選項中表示一個合法的常量是(說明:符號口表示空格)()。
A.9口9口9B.0XabC.123E0.2D.2.7e
3.當接受用戶輸入的含有空格的字符串時,應使用()函數(shù)。
A.gets()B.getchar()C.scanf()D.printf()
4.下列敘述中錯誤的是()。
A.C程序可以由多個程序文件組成
B.—個C語言程序只能實現(xiàn)一種算法
C.C程序可以由一個或多個函數(shù)組成
D.—個C語言函數(shù)可以單獨作為一個C語言程序文件存在
5.以下敘述中錯誤的是()。
A.將函數(shù)內(nèi)的局部變量說明為static存儲類是為了限制其他編譯單位的引用
B.—個變量作用域的開始位置完全取決于變量定義語句的位置
C.全局變量可以在函數(shù)以外的任何部位進行定義
D.局部變量的“生存期”只限于本次函數(shù)調(diào)用,因此不能將局部變量的運算結(jié)果保存至下一次調(diào)用
6.有以下程序:#include<stdio,h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當運行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲诙€字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
7.若有定義:“inta,b;”,通過語句“scan[("%d;%d".,&a,&b);”,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。
A.35B.3,5C.3;5D.35
8.以下敘述中錯誤的是()。
A.C語言程序在運行過程中的所有計算都以二進制方式進行
B.C語言程序在運行過程中的所有計算都以十進制方式進行
C.所有C語言程序都需要編譯、鏈接無誤后才能運行
D.C語言程序中字符變量存放的是字符的ASCII值
9.
10.以下不合法的字符常量是()。
A.‘\\’B.‘\”’C.‘\018’D.‘\xcc’
11.有以下程序:#include<stdio.h>voidfunc(intn){staticintnum=1);num=num+n;printf("%d",num);}main(){funo(3);func(4);printf("n");}程序運行后的輸出結(jié)果是()。A.48B.34C.35D.45
12.有以下程序
#include<stdio.h>
main()
{structnode{intn;structnode*next;}*p;
structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};
p=x:
printf("%d,",p->n);
printf("%d\n",P->next->n);
}
程序運行后的輸出結(jié)果是A.A.2,3B.2,4C.3,4D.4,6
13.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是
A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,
14.在圖采用鄰接表存儲時,求最小生成樹的Prim算法的時間復雜度為()。
A.O(n)B.O(n+e)C.O(n2)D.O(n3)
15.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是()。
A.77B.88C.810D.1010
16.設(shè)有定義“doublea;chard;floatb;”,若想把1.2賦給變量a、字符‘k’賦給變量d、3.4賦給變量b,程序運行時通過鍵盤輸入1.2k3.4并按<Enter>鍵,則以下正確的讀入語句是()。A.scanf(“%lf%c%f”,&a,&d,&b);
B.scanf(“%lf%c%f”,&a,&d,&b);
C.scanf(“%f%c%f”,&a,&d,&b);
D.scanf(“%f%c%f”,&a,&d,&b);
17.設(shè)有兩個串p和q,其中q是p的子串,求q在p中首次出現(xiàn)的位置的算法稱為()。
A.求子串B.聯(lián)接C.匹配D.求串長
18.若有定義intx=3,y=2和floata=2.5,b=3.5,則表達式:(x+y)%2+(int)a/(int)b的值是()。
A.0B.2C.1.5D.1
19.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。
A.數(shù)組x和數(shù)組y等價B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度
20.以下程序的輸出結(jié)果是()。main{intx=0.5;charz=‘a(chǎn)’;printf(“d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3
二、2.填空題(20題)21.請在以下程序第一行的下劃線處填寫適當內(nèi)容,使程序能正確運行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
22.子程序通常分為兩類:【】和函數(shù),前者是命令的抽象,后者是為了求值。
23.已有定義如下:
structnode
{intdata;
structnode*next;
}*p;
以下語句調(diào)用malloc函數(shù),使指針p指向一個具有structnode類型的動態(tài)存儲空間。請?zhí)羁铡?/p>
p=(structnode*)malloc(【】);
24.以下程序運行后的輸出結(jié)果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
25.數(shù)據(jù)庫設(shè)計分為以下6個設(shè)計階段:需求分析階段、______、邏輯設(shè)計階段、物理設(shè)計階段、實施階段、運行和維護階段。
26.如下圖所示的二叉樹后序遍歷序列是【】。
27.若有如下定義,則該數(shù)組的第一維大小為【】。
intb[][4]={1,2,3,4,5,6,7,8,9}
28.常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
29.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
30.黑盒測試是從【】觀點的測試。
31.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')______;
s[j]='\O';
puts(s);
}
32.在面向?qū)ο蟮姆椒ㄖ?,______描述的是具有相似屬性與操作的一組對象。
33.下面程序執(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);
}
34.請讀程序片段:
inta=17;
printf("%d,%o\n",a,a);
以上程序片段的輸出結(jié)果是【】。
35.若有定義doublea[5];,則a數(shù)組元素下標的上限為______。
36.樹中度為零的結(jié)點稱為______。
37.執(zhí)行下面程序段后,k的值是【】。
r=1;n=203;k=1
do}k*=n%10*r;n/=10;r++;}while(n);
38.不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是()。
39.觀察題目要求,可以知道以下幾點:}
40.當運行以下程序時,輸入abcd,程序的輸出結(jié)果是:()。
insert(charstr[])
{inti;
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",str);
}
main()
{charstr[40];
scanf("%s",str);insert(str);
}
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。intx=1;fun(intp){intx=4;x+=p++;printf("%d",x);}main(){inta=3;fun(a);x+=a++;printf("%d\n",x);}
A.84B.45C.74D.95
42.以下程序運行后的輸出結(jié)果是______。main(){intx=0210;printf("%x\n",x);}
A.88B.86C.77D.21
43.在軟件設(shè)計中,不屬于過程設(shè)計工具的是()。
A.PDL(過程設(shè)計語言)B.PAD圖C.N-S圖D.DFD圖
44.有以下程序:main(){intk=4,n=0;for(;n<k;){n++;if(n%3!=O)continue;k--;}printf("%d,%d\n",k,n);}程序運行后的輸出結(jié)果是()。
A.1,1B.2,2C.3,3D.4,4
45.下列程序段的運行結(jié)果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;printf("%d\n",*(p+3));}
A.67B.0C.字符'C'的地址D.字符'C'
46.以下不屬于對象的基本特點的是()
A.分類性B.多態(tài)性C.繼承性D.封裝性
47.在微機中,微處理器的主要功能是()
A.算術(shù)邏輯運算B.算術(shù)運算C.存儲程序和數(shù)據(jù)D.算術(shù)邏輯運算及全機的控制
48.以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);}
程序運行后的輸出結(jié)果是
A.4B.3C.2D.1
49.下列程序執(zhí)行后的輸出結(jié)果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}
A.6B.7C.8D.9
50.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){printf("%d\n",NULL);}
A.不確定(因變量無定義)B.0C.-1D.1
51.下面程序的運行結(jié)果是
#include<stdio.h>
main()
{staticchara[]="Languagef",b[]="programe";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.gaC.LanguageD.有語法錯
52.下面函數(shù)調(diào)用語句含有實參的個數(shù)為func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
53.在下列選項中,沒有構(gòu)成死循環(huán)的程序段是_____。
A.inti=100;while(1){i=i%100+1;if(i>100)break;}
B.for(;;);
C.intk=1000;do{++k;}while(k>=1000);
D.ints=36:while(s);--s;
54.在數(shù)據(jù)庫技術(shù)中,面向?qū)ο髷?shù)據(jù)模型是一種______。
A.概念模型B.結(jié)構(gòu)模型C.物理模型D.形象模型
55.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
56.下列敘述中錯誤的是()。
A.在C語言中的保留字必須小寫
B.變量的存儲類型決定了變量的存儲位置及其生存期
C.宏定義以#define開頭,行未必須加分號
D.在C語言中的注釋行可以出現(xiàn)在程序的任何位置
57.下面是對宏定義的描述,不正確的是______。
A.宏不存在類型問題,宏名無類型,它的參數(shù)也無類型
B.宏替換不占用運行時間
C.宏替換時先求出實參表達式的值,然后代入形參運算求值
D.宏替換只不過是字符替代而已
58.下面語句的輸出結(jié)果是______。printf("%d\n",strlen("\t\"065\xff\n"));
A.14B.8C.5D.輸出項不合法,無正常輸出
59.下列程序執(zhí)行后的輸出結(jié)果是______。main(){chararr[2][4];atrcpy(arr,"you");strcpy(arr[1],"me");art[0][3]='&';printf("%s\n",arr);}
A.you&meB.youC.meD.err
60.有以下程序prt(int*m,intn){inti;for(i=0;i<n;i++)m[i]++;}main(){inta[]={1,2,3,4,5},i;prt{a,5);for[i=0;i<5;i++)printf("%d",a[i]);}程序運行后輸出結(jié)果是
A.1,2,3,4,5,B.2,3,4,5,6,C.3,4,5,6,7,D.2,3,4,5,1
四、選擇題(20題)61.已知大寫字母A的ASCIl碼的值是65,小寫字母a的ASCIl碼的值是97,以下不能將變量。中的大寫字母轉(zhuǎn)換為對應小寫字母的語句是()。
A.
B.
C.
D.
62.有下列程序:
fun(intx,inty)
{staticintm=0,i=2;
i+=++rn;m=ixy;returnm;
}
main
{intj=l,m=1,k;
k=fun(j,m);printf("%d,",k);
k=fun(j.m);printf(”%d\n”,k);
}
執(zhí)行后的輸出結(jié)果是()。
A.5.5B.5,11C.11,11D.11,5
63.若有以下程序
#include<stdio.h>
inta[]={2,4,6,8};
main()
{inti;
int*p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);
}
上面程序的輸出結(jié)果是
A.6B.8
C.4D.2
64.已知大寫:字母A的ASCIl碼是65,小寫字母a的ASCIl碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對應小寫字母的語句是()。
65.若有定義語句:
66.
若變量已正確定義,有以下程序段
i—o;
doprintf("%d,",i);while(i++);
printf("%d",i)
其輸出結(jié)果是()。
A.0,0B.0,1C.1,1D.程序進入無限循環(huán)
67.在軟件設(shè)計中不使用的工具是()。A.系統(tǒng)結(jié)構(gòu)圖B.PAD圖C.數(shù)據(jù)流圖D.程序流程圖
68.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1002,ZhangDa,1202.0
B.1002,ChangRon9,1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
69.若有定義語句:“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。A.1.9B.1C.2D.2.4
70.
71.
72.若有說明:intn=2,*p=&n,*q=p;,則以下非法的賦值語句是()。
A.p=qB.*p=*qC.n=*qD.p=*n
73.下列定義變量的語句中錯誤的是()。
A.intjnt;B.doubleint_;C.charFor;D.floatUS$;
74.若有以下定義:chara;intb;floatc;doubled;則表達式a*b+b-c值的類型為()。A.floatB.intC.charD.double
75.
76.以下敘述中正確的是()。
A.預處理命令行必須位于C源程序的起始位置
B.在C語言中,預處理命令行都以“#”開頭
C.每個C程序必須在開頭包含預處理命令行:#include
D.C語言的預處理不能實現(xiàn)宏定義和條件編譯的功能
77.
78.
79.有以下程序:
程序執(zhí)行后變量w中的值是()。
A.5.21B.5C.5.0D.0.0
80.在長度為n的有序線性表中進行二分法查找,最壞情況下需要比較的次數(shù)是()。A.O(n)B.0(n2)C.O(log2n)D.O(nlog2n)
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。
例如,輸入opdye,則應輸出deopy。
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
//****found****
intproc(charstr[])
{
charc;
unsignedi,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j])
{
c=str[j]:
//****found****
str[j]=str[i++];
str[i]=c;
}
}
voidmain
{
charstr[81];
system("CLS");
printf("\nPleaseenteracharacter
string:");
gets(str);
printf("\n\nBeforesorting:\n%s",str);
proc(str);
printf("\nAftersortingdecendingly:\n
%s",str);
}
六、程序設(shè)計題(1題)82.有N個學生,每個學生的信息包括學號、性別、姓名、四門課的成績,從鍵盤上輸入N個學生的信息,要求輸出總平均成績最高的學生信息,包括學號、性別、姓名和平均成績。
參考答案
1.C在ifelse語句中else,總是與離它最近的配對。本題目中x勸1所以!x為0,所以執(zhí)行else齬句中的內(nèi)容,判斷(x==0)是否成立,因為x為1所以條件不成立,所以else部分的近.else語句不再執(zhí)行,所以y的值還是初始值0。
2.B當用指數(shù)形式表示浮點數(shù)據(jù)時,E的前后都要有數(shù)據(jù),并且E的后面數(shù)要為整數(shù)。
3.A
4.B在一個C語言程序中可以實現(xiàn)多種算法,所以B選項錯誤。故本題答案為B選項。
5.A將函數(shù)內(nèi)的局部變量說明為static存儲類,第1次調(diào)用該函數(shù)時才對其初始化,后續(xù)調(diào)用時使用上一次調(diào)用結(jié)束后的值;函數(shù)體內(nèi)的局部變量無論是否聲明為stat\x1fic,外部編譯單位都不能引用,選項A錯誤,其他選項正確。本題答案為A選項。
6.A解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符,且只能接受一個字符(回車符也是一個字符)。故本題中變量c1被賦予字符a,c2被賦予回車符。
7.C\n在輸入時必須遵守scanf函數(shù)中的格式才能正確地賦值給相應的變量,由于scanf函數(shù)為“%d;%d”,所以在輸入時要輸入3;5,答案為C。
\n
8.BC語言程序在運行過程中的所有計算都以二進制方式進行,所以B選項錯誤。故本題答案為B選項。
9.A
10.C轉(zhuǎn)義字符中,八進制的表示形式為\\ddd,但是八進制中不能包含數(shù)字8,所以C選項不合法。故本題答案為C選項。
11.A第一調(diào)用func函數(shù)時輸出4,第二次調(diào)用func函數(shù)時num的值并不會釋放,仍然是上次修改后的值4,第二次調(diào)用結(jié)果為8,所以輸出結(jié)果是48。
12.B解析:p指向x的第一個元素,所以p->n的值為2,p->next指向x+1,即指向x的第二個元素,所以p->next->n為4。
13.A解析:在C語言中所謂函數(shù)的遞歸是在指在調(diào)用一個函數(shù)的過程中,又出現(xiàn)了直接或間接地調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用.由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是i
14.B
15.C解析:本題考核的知識點是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應用。本題中定義兩個字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdfg”。所以a的長度為賦值給它的字符串的字符個數(shù)7加上一個結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8.定義時b的長度定義為10,故b的長度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長度分別為8和10,所以,4個選項中選項C符合題意。
16.B變量a是double類型,輸入格式符為%lf;變量d是char類型,輸入格式符為%c;變量b是float類型,輸入格式符為%f,選項C、D錯誤。由于輸入的數(shù)據(jù)之間使用空格間隔,因此scanf函數(shù)中的格式控制字符串中,格式字符之間也要使用空格。故本題答案為B選項。
17.C
18.D
19.C解析:在C語言中,字符串以'\\0'作為結(jié)束符,因此數(shù)組x的長度為7+1=8,而數(shù)組y的長度等于7。
20.B(x&1)&&(z<‘z’)=(0.5&1)&&(‘a(chǎn)’<‘z’)=1&&1=1,故選擇B選項。
21.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。
22.過程過程
23.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是開辟一個長度為sizeof(struetnode)的內(nèi)存區(qū)。(structnode*)的作用是使malloc返回的指針轉(zhuǎn)換為指向structnode類型數(shù)據(jù)的指針。
24.8888解析:C語言規(guī)定,以0開頭的整型常量為八進制。另外,在primf()函數(shù)中,%X表示以十六進制無符號形式輸出一個整數(shù),且十六進制中的ABCDEF為大寫字母。本題的輸出應該是八進制210的十六進制形式。將八進制轉(zhuǎn)換為十六進制,可以先將其轉(zhuǎn)換為二進制。因為1位八進制表示3位二進制,4位二進制表示1位十六進制。(210)8=(10001000)2=(88)16,故本題輸出為880
25.概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)
26.GDBHIEFCAGDBHIEFCA解析:后序遍歷二叉樹的順序為:后序遍歷左子樹→后序遍歷右子樹→訪問根結(jié)點。按照定義,后序遍歷序列是GDBHIEFCA。
27.3
28.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
29.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
30.用戶用戶解析:黑盒測試又稱為功能測試,黑盒測試是把程序看作一個黑盒子,完全不考慮程序內(nèi)部的結(jié)構(gòu)和處理過程。測試者只考慮該程序輸入和輸出的關(guān)系,或只考慮程序的功能。黑盒測試是一種從用戶觀點出發(fā)的測試。
31.s[j++]=s[i]s[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當前值;如果不相同,則將當前值賦予數(shù)組指定位置,并通過j++將下標加1,指向下一元素要存儲的位置。
32.類類解析:在面向?qū)ο蟮姆椒ㄖ校丫哂邢嗤瑢傩院头椒ǖ膶ο蠓Q為類,類是對象的抽象,對象是類的實例。
33.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應取外部變量的值13,因此輸出2。
34.1721
35.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。
36.葉子結(jié)點葉子結(jié)點解析:樹中度為零的結(jié)點,也就是沒有后件的結(jié)點,稱為葉子結(jié)點。
37.00解析:本題考查的是do…while循環(huán)。第一次執(zhí)行循環(huán)體,因為k=1,r=1,n=20;所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4。所以k的值為0。
38.選擇選擇解析:關(guān)系數(shù)據(jù)庫的專門關(guān)系運算包括選擇、投影和連接3種,其中選擇不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)。
39.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本題主要考查了插入排序。由于程序中的數(shù)組在開始已經(jīng)按從小到的大順序排好。在插入時,首先要查到第一個大于待插入數(shù)的數(shù)組下標,即當待插入元素小于數(shù)組中當前元素時,記下數(shù)組的當前下標p,并結(jié)束循環(huán)。故第一空目的是為了記下數(shù)組下標,應填p=i;插入的第二部是將大于待插入元素的所有元素都向后移動一位,故在循環(huán)時,要從最后一個元素到第p個元素都要后移一位,因此第二空應填i>=p。最后一個循環(huán)是將N+1個元素都輸出,故最后一空應為i<=N。(注:本題有多種答案,以上僅提供一種)
40.a*b*c*d*a*b*c*d*解析:字符處理函數(shù)strlen()測試字符串常量的長度,不包括‘\\0’在內(nèi)。因此,函數(shù)insert()實現(xiàn)了將字符數(shù)組中每個非‘\\0’的字符后插入字符‘*’的功能。故輸出結(jié)果是a*b*c*d*。
41.C解析:本題考查局部變量和全局變量的關(guān)系。在調(diào)用fun函數(shù)時,形參p值為3(實參a傳遞的),在x+=p++中,x是局部變量(局部優(yōu)先),x和p的和7放在變量x中,p再自加變?yōu)?,顯示輸出x的值7;主函數(shù)中的x是全局變量,值為1,x和a的和4放在變量x中,a再自加變?yōu)?,顯示輸出x的值4。
42.A解析:x以0開頭是以八進制的形式賦值的,輸出時要輸出其對應的十六進制。0210對應的十六進制是88。
43.D解析:PDL一種設(shè)計性語言,用于書寫軟件設(shè)計規(guī)約。它是軟件設(shè)計中廣泛使用的語言之一。N-S圖是無線的流程圖,是算法描述工具;PAD圖是問題分析圖,它用二維樹狀結(jié)構(gòu)的圖表示程序的控制流,將這種圖轉(zhuǎn)換為程序代碼比較容易。此3類均是過程設(shè)計工具,數(shù)據(jù)流圖(DataFunctionDiagram):又名數(shù)據(jù)功能圖表,簡稱DFD,是采用圖形方式來表達系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。
44.C解析:在本程序的for循環(huán)中,用到了一個continue語句,continue語句的作用是停止本次循環(huán),不執(zhí)行循環(huán)體內(nèi)continue語句后面的其他語句,繼續(xù)下次循環(huán)的條件判斷。首先在for循環(huán)中n自加1(值變?yōu)?),然后執(zhí)行后面的if語句,由于if語句后面括號的表達式1%3!=0的值為真,程序執(zhí)行continue語句,回到for循環(huán)的開始部分,并且判斷for循環(huán)中的條件表達式(n<k)為真,重復執(zhí)行“n++;”語句,如此循環(huán)直到n=3時,if語句判定條件中表達式3%3!=0的值為假,程序執(zhí)行if語句后面的“k--;”語句,此時k的值為3,不滿足n<k,退出for循環(huán)。故最后的k和n的值為3和3,選項C符合題意。
45.B解析:先定義了一個指向字符型數(shù)組str的指針p,指針p旨向數(shù)組str的首地址,p+3將指針指向str[3],又因為字符型數(shù)組在存放字符串時會自動在末尾加上'\\0',所以*(p+3)=0。
46.C解析:對象的基本特點包括;標識惟一性、分類性、多態(tài)性、封裝性和獨立性等。繼承性不屬于對象的基本特點。
47.D
48.B解析:在main函數(shù)中,對f(1)和f(2)的值進行了累加。
f(1)=1
f(2)=f(1)+1=2
最后,j的值為1+2=3
49.A解析:函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據(jù),還可以是指針型。它的作用是將一個變量的地址傳遞到另一個函數(shù)中。當數(shù)組名作參數(shù)時,如果形參數(shù)組中的各元素的值發(fā)生變化,實參數(shù)組元素的值也將隨之發(fā)生變化。
50.B
51.A解析:考查用指針來引用字符數(shù)組元素的方法。指針p1+k相當于指針p1向后移動了k個字符的位置,指針p2同理。
52.B解析:函數(shù)調(diào)用的一般形式為:函數(shù)名(形參表)若函數(shù)無形參,調(diào)用形式為:函數(shù)名(),當所調(diào)用的函數(shù)用于求出某個值時,函數(shù)的調(diào)用可作為表達式出現(xiàn)在允許表達式出現(xiàn)的任何地方,本題中調(diào)用語句的參數(shù)個數(shù)為2個。
53.C
54.B解析:數(shù)據(jù)模型可以劃分為兩類:概念模型和數(shù)據(jù)模型。概念模型,也稱信息模型,它是按用戶的觀點來對數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫設(shè)計。數(shù)據(jù)模型,也稱結(jié)構(gòu)模型,主要包括網(wǎng)狀模型、層次模型、關(guān)系模型、面向?qū)ο髷?shù)據(jù)模型等,它是按計算機系統(tǒng)的觀點對數(shù)據(jù)建模,主要用于DBMS的實現(xiàn)。
55.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認,則默認為int。函數(shù)中如果有“retum(表達式):”語句,表達式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實際情況是把表達式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。
56.C解析:本題涉及C語言最基本的4個知識點:①C語言的保留字必須小寫;②變量的存儲類型不同,其存儲位置和生存期也不一樣;③C語言允許其注釋部分出現(xiàn)在程序中的任何位置;④宏定義以#define開頭,行末不需要加分號。
57.C解析:宏替換實質(zhì)上就是字符替代,它不可能進行計算,故C錯誤。帶參數(shù)的宏與函數(shù)相比,宏在程序編譯之前已經(jīng)將代碼替換到程序內(nèi),執(zhí)行時不會產(chǎn)生類似于函數(shù)調(diào)用的問題,可以說不占用運行時間。
58.C解析:在C語言中,以“\\”開頭的字符均為轉(zhuǎn)義字符,其中“\\”后可跟1~3位八進制數(shù)或在“\\”后跟字母x及1~2位十六進制數(shù),以此來代表一個特定的字符。
59.A
60.B解析:本題考查的是數(shù)組名作函數(shù)的參數(shù)。數(shù)組名實際上是一個指向該數(shù)組首地址的指針常量,所以數(shù)組名作函數(shù)的參數(shù)和用同類型的指針作參數(shù)沒有區(qū)別.題目首先定義了一個函數(shù),該函數(shù)通過一個for循環(huán)將指針m到m+n-1所指內(nèi)存中的數(shù)據(jù)自增1,所以主函數(shù)中執(zhí)行了prt(a,5);語句后,數(shù)組a中的所有元素被自增1。所以,4個選項中選項B符合題意。
61.D無論大小寫,字母問的間隔都相等,所以
62.B
\n變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用fun函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次調(diào)用結(jié)束時,它們的值不變,第2次調(diào)用時,m和i的初始值分別為5和3,在執(zhí)行“i+=m+1”后,i的值為9,因此,最終m的值為11。
63.D本題中,程序開始定義了一個全局數(shù)組a,并對這個數(shù)組進行賦初值。在主函數(shù)中,定義一個整型變量i和一個整型指針變量p,并使指針變量p指向全局數(shù)組a的首地址。然后執(zhí)行for循環(huán),循環(huán)變量i的初值為0,循環(huán)結(jié)束條件為變量i的值大于等于4,循環(huán)變量i的值每循環(huán)一次自加1,通過這些分析我們知道,循環(huán)執(zhí)行了4次結(jié)束。
第一次循環(huán)時,由于*p表示數(shù)組的第一個元素值2,那么執(zhí)行a[i]=*p;語句,即將數(shù)組的第一個元素變?yōu)?;第二次循環(huán)時,由于i為1,即將數(shù)組的第二個元素變?yōu)?,同理,第三次與第四次循環(huán)分別將數(shù)組的第三和第四個元素值變?yōu)?。
循環(huán)結(jié)束,程序執(zhí)行輸出語句,這時數(shù)組中所有元素的值都為2。因此,程序最后的輸出結(jié)果是2。
64.A大寫字母轉(zhuǎn)換為對應小寫字母,即加上32,A)選項不是累加32,所以選擇A)
65.A++優(yōu)先級高于*,*p++值為year下一個變量的值(如果有的話),不能滿足題意,所以選擇A)
66.B
\n本題中,變量i的初始值等于0,執(zhí)行循環(huán)體中的語句后,輸出i的值為0。while后面括號中表達式i++的值為0,循環(huán)結(jié)束。此時變量i自加1,所以再次“1”。
\n
67.C系統(tǒng)結(jié)構(gòu)圖是對軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計的圖形顯示。在需求分析階段。已經(jīng)從系統(tǒng)開發(fā)的角度出發(fā),把系統(tǒng)按功能逐次分割成層次結(jié)構(gòu),是在概要設(shè)計階段用到的。PAD圖是在詳細設(shè)計階段用到的。程序流程圖是對程序流程的圖形表示,在詳細設(shè)計過程中用到。數(shù)據(jù)流圖(DFD圖)是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,因此它是一種功能模型,是在可行性研究階段用到的而非軟件設(shè)計時用到,所以本題答案為C)。
68.D本題考查結(jié)構(gòu)體的相關(guān)操作以及傳值、傳址的區(qū)別,該題中調(diào)用f函
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合伙人技術(shù)入股協(xié)議書合同
- 大班音樂《小白船》課件
- 2024年遼寧駕駛員客運從業(yè)資格證考試題及答案
- 2024年重慶2024年客運從業(yè)資格證考試試題
- 2024【房屋拆除合同范本】建筑拆除合同范本
- 2024職工食堂承包合同范本
- 2024家居工程裝修合同范本
- 2024農(nóng)村水庫承包合同書
- 2024項目投資咨詢合同版
- 深圳大學《游泳俱樂部》2023-2024學年第一學期期末試卷
- 《百團大戰(zhàn)》歷史課件
- 銀行涉農(nóng)貸款專項統(tǒng)計制度講解
- DB31-T 540-2022 重點單位消防安全管理要求
- 兒化音變課件
- 國家開放大學《傳感器與測試技術(shù)》實驗參考答案
- 工程造價司法鑒定實施方案
- 材料成型工藝基礎(chǔ)習題答案
- 劇本寫作課件
- 計算方法第三章函數(shù)逼近與快速傅里葉變換課件
- 五年級上冊英語課件-Unit7 At weekends第四課時|譯林版(三起) (共13張PPT)
- 2022年秋新教材高中英語Unit2SuccessTheImportanceofFailure教案北師大版選擇性必修第一冊
評論
0/150
提交評論