版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.已知大寫字母A的ASCII值是65,小寫字母a的ASCII值是97。下列不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。
A.c=(‘A’,+c)%26-‘a(chǎn)’B.c=c+32C.c=c-‘A’+‘a(chǎn)’D.c=(c-‘A’)%26+‘a(chǎn)’
2.下列敘述中正確的是A.為了建立一個關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系
B.表示關(guān)系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項
C.一個關(guān)系的屬性名表稱為關(guān)系模式
D.一個關(guān)系可以包括多個二維表
3.
4.若一棵二叉樹具有10個出度為2的結(jié)點,則在該二叉樹中,出度為0的結(jié)點個數(shù)是()
A.9B.11C.12D.不確定
5.有以下程序:
程序運行后的輸出結(jié)果是()。
A.7B.10C.8D.9
6.有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運行后,文件t1.dat中的內(nèi)容是______。
A.startB.endC.startendD.endrt
7.設(shè)有以下程序段:structMP3{charname[20];charcolor;floatprice;}std,*ptr;ptr=&std:若要引用結(jié)構(gòu)體變量std中的color成員,寫法錯誤的是()。A.std.colorB.ptr->colorC.std->colorD.(*ptr)color
8.若有以下程序段,w和k都是整型變量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇則不能與上面程序段等價的循環(huán)語句是()。A.for(w=k;w!=0;w--)printf("*");
B.for(w=k;w;--w)printf("*");
C.w=k;while(w--!=0)printf("*");
D.w=k:w++;do{w--;printf("*");}while(w!=0);
9.
10.有以下函數(shù)intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函數(shù)的功能是()。A.查找X和y所指字符串中是否有\(zhòng)o
B.統(tǒng)計x和Y所指字符串中最前面連續(xù)相同的字符個數(shù)
C.將Y所指字符串賦給X所指定存儲空間
D.統(tǒng)計X和Y所指字符串中相同的字符個數(shù)
11.下列敘述中正確的是()。
A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)
B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.循環(huán)隊列是一種邏輯結(jié)構(gòu)
12.以下有關(guān)scanf函數(shù)的敘述中錯誤的是()。
A.在scanf函數(shù)的格式字符前既可以加入正整數(shù)指定輸入數(shù)據(jù)所占的寬度,也可以對實數(shù)指定小數(shù)位的寬度
B.scanf函數(shù)有返回值,其值就是本次調(diào)用scanf函數(shù)時正確讀入的數(shù)據(jù)項個數(shù)
C.scanf函數(shù)從輸入字符流中按照格式控制指定的格式解析出相應(yīng)數(shù)據(jù),送到指定地址中
D.在scanf函數(shù)中的格式控制字符串不會輸出到屏幕上
13.已知有結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有p=&data,則對data的成員a的正確引用是()。
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.st是結(jié)構(gòu)體類型名
C.x、y、z都是結(jié)構(gòu)體成員名
D.structstr是結(jié)構(gòu)體類型名
14.在有序雙向鏈表中定位刪除一個元素的平均時間復(fù)雜度為()
A.O(1)B.O(N)C.O(logN)D.O(N*logN)
15.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是()。
A.77B.88C.810D.1010
16.線性表的順序存儲結(jié)構(gòu)是一種()。
A.隨機存取的存儲結(jié)構(gòu)B.順序存取的存儲結(jié)構(gòu)C.索引存取的存儲結(jié)構(gòu)D.Hash存取的存儲結(jié)構(gòu)
17.下列語句組中正確的是()。
A.char*s;s={“BOOK!”};
B.char*s;s=“BOOK!”;
C.chars[10];s=“BOOK!”;
D.chars[];s=“BOOK!”;
18.程序流程圖中有箭頭的線段表示的是()。
A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系
19.
20.以下敘述中不正確的是
A.預(yù)處理命令行都必須以#號開始
B.在程序中凡是以#號開始的語句行都是預(yù)處理命令行
C.宏替換不占用運行時間,只占編譯時間
D.在以下定義是正確的:#definePI3.1415926;
二、2.填空題(20題)21.下列程序的輸出結(jié)果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
22.以下程序運行后的輸出結(jié)果是______。
main()
{
chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{
if(i%2==0)
*p='*';
p++;i++;
}
puts(a);
}
23.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
24.下列程序的輸出結(jié)果是【】。
main()
{
inta[]={2,4,6},*prt=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y<x)?*(ptr+y):x;
printf("%d\n",z);
}
25.以下程序運行后的輸出結(jié)果是______。
main()
{
charc1,c2;
for{c1='0',c2='9';c1<c2;c1++,C2--)
printf("%c%c",c1,c2);
printf("\n");
}
26.下述函數(shù)統(tǒng)計—個字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
27.下列程序的輸出結(jié)果是______。
longfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printff"%1d\n",x);}
28.下面定義的結(jié)構(gòu)體類型包含3個成員,其中成員變量x用來存入整型數(shù)據(jù),成員變量y用來存入實型數(shù)據(jù),成員變量next是指向自身結(jié)構(gòu)體的指針。請將定義補充完整。
structstu
{intx;
【】
【】next;}
29.以下程序運行后的輸出結(jié)果是()。main(){inta=3,b=4,c=5,t=79;if(b<a&&a<C)t=a;a=c;c=t;if(a<c&&b<C)t=b;b=a;a=t;printf("%d%d%d\n",a,b,C);}
30.設(shè)a,b,c為整型數(shù),且a=2,b=3,c=4,則執(zhí)行完以下語句后,a的值是【】。
a*=16+(b++)-(++c);
31.以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大的順序存放,n為數(shù)組中存放的數(shù)的個數(shù)。插入后數(shù)組中的個數(shù)仍然有序。請?zhí)羁?,使之完整?/p>
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
whiel(x>w[p])【】;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;
}
32.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結(jié)果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n,p+9);
}
33.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
34.下面程序的運行結(jié)果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;
sub(s,7,SIZE-1);
for(I=0;I<SIZE;I++)printf("%c",s[I]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
35.以下程序的輸出結(jié)果是______。
main()
{inta=177;
printf("%o\n",a);
36.一個項目具有一個項目經(jīng)理,一個項目經(jīng)理可管理多個項目,則實體“項目經(jīng)理”與實體“項目”的聯(lián)系屬于()的聯(lián)系。
37.下面程序的功能是將一個字符串str的內(nèi)容倒序,請?zhí)羁铡?/p>
#inelude<stdio.h>
#include<strins.h>
main()
{inti,j,【】;
charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);
}
38.若有定義:inta=6,b=8,c=14;接著順序執(zhí)行下列語句后,變量c中的值是()。c=(b-=(a-5));a=(c%3)+(a=8);
39.以下程序的功能是建立一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
【】=a;q->next=p;【】=p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main()
{structlist*head;head=creatlist();}
40.若按功能劃分,軟件測試的方法通常分為______測試方法和黑盒測試方法。
三、1.選擇題(20題)41.以下敘述中錯誤的是()。
A.C語句必須以分號結(jié)束
B.復(fù)合語句在語法上被看做一條語句
C.空語句出現(xiàn)在任何位置都不會影響程序運行
D.賦值表達式末尾加分號就構(gòu)成賦值語句
42.下列敘述中正確的是A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鏈表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)
43.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。下列不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。
A.c=(c-'A')%26+'a'
B.c=c+32
C.c=C-'A'+'a'
D.c=('A'+C)%26-'a'
44.以下正確的字符串常量是()。
A.\\\B.'abc'C.OlympicGames
45.有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()。
A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE
46.以下選項中可作為C語言合法常量的是
A.-80B.-080C.-8e1.0D.-80.0e
47.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是______。
A.可行性分析B.需求分析C.詳細設(shè)計D.程序編碼
48.有以下程序
#include<stdio.h>
main()
{intc;
while((c=getchar())!=′\n)
{switch(c-′2′)
{case0:
case1:putchar(c+4);
case2:putchar(c+4);break;
case3:putchar(c+3);
case4:putchar(c+3);break;}}
printf("\n")}
從第一列開始輸入以下數(shù)據(jù)<CR>代表一個回車符。
2743<CR>
程序的輸出結(jié)果是
A.66877B.668966C.6677877D.6688766
49.有以下程序:intx=1,y=2;voidfunl(){x=3;y=4;}voidfun2(intx,inty){printf("%d,%d,\n",x,y);}main(){funl();printf("%d,%d,"x,y);fun2(5,6);}程序的運行結(jié)果是()
A.1,2,3,4B.1,2,5,5C.3,4,5,6D.3,4,1,2
50.有以下程序:main(){chars[]="\n123\\";printf(%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后的輸出結(jié)果是______。
A.賦初值的字符串有錯B.6,7C.5,6D.6,6
51.下列描述中,正確的是______。
A.a[2*3+5]可以是一個數(shù)組元素
B.可以對結(jié)構(gòu)體類型和結(jié)構(gòu)類型變量賦值、存取或運算
C.結(jié)構(gòu)一經(jīng)定義,系統(tǒng)就給它分配了所需的內(nèi)存單元
D.結(jié)構(gòu)體變量和共用體變量所占的內(nèi)存長度是各成員占的內(nèi)存長度之和
52.200個32×32點陣的漢字字模信息所占用的字節(jié)數(shù)為()
A.25600B.2560C.6400D.12800
53.利用fseek函數(shù)可實現(xiàn)的操作是()。
A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫D.以上答案均正確
54.下列函數(shù)值的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
55.已知二叉樹BT的后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是______.
A.cedbaB.acbedC.decabD.deabc
56.若變量已正確定義,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其輸出結(jié)果是()。
A.0,0B.0,1C.1,1D.程序進入無限循環(huán)
57.設(shè)a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式為()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
58.有以下程序
#include<stdio.h>
voidfun(char*t,char*s)
{while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{charss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);printf("%s,%s\n",ss,aa);
}
程序的運行結(jié)果是
A.accxyy,bbxxyy
B.acc,bbxxyy
C.accxxyy,bbxxyy
D.accbbxxyy,bbxxyy
59.若x、y、z、m均為int型變量,則執(zhí)行下面語句后m的值是()m=1;x=2;y=3;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<y)?m:z;
A.1B.2C.3D.4
60.有以下程序#include<stdio.h>main(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n
A.12B.14C.1234D.123456
四、選擇題(20題)61.在執(zhí)行下述程序時,若從鍵盤輸入6和8,則結(jié)果為()。
A.36B.64C.48D.以上都不對
62.以下選項中可用做c程序合法實數(shù)的是()。、、
A.3.0e0.2B..1e0C.E9D.9.12E
63.(7)在軟件開發(fā)中,下面任務(wù)不屬于設(shè)計階段的是()
A.數(shù)據(jù)結(jié)構(gòu)設(shè)計
B.給出系統(tǒng)模塊結(jié)構(gòu)
C.定義模塊算法
D.定義需求并建立系統(tǒng)模型
64.
65.下列條件語句中,輸出結(jié)果與其他語句不同的是()
66.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括()。
A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表
67.
68.下列敘述中正確的是()。
A.棧是“先進先出”的線性表
B.隊列是“先進后出”的線性表
C.循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定的
D.循環(huán)隊列中隊頭指針是固定不變的
69.有以下程序
70.有以下程序:
程序運行后的輸出結(jié)果是()。
A.let=4B.m=2C.m=6D.m=5
71.有以下定義和語句
72.以下敘述中錯誤的是()。
A.可以給指針變量賦一個整數(shù)作為地址值
B.函數(shù)可以返回地址值
C.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
D.當(dāng)在程序的開頭包含頭文件stdi0.h時,可以給指針變量賦NULL、、、
73.以下程序段
74.
75.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀人數(shù)據(jù)的程序段是()。
A.*p=&a;scanf("%1f”,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%1f",p);
76.以下程序運行后的輸出結(jié)果是()。
A.2B.1C.3D.O
77.
以下程序的輸出結(jié)果是()。
main
{charch[3][4]={"123","456","78"),*p[3];inti;
for(i=0;i<3;i++)p[i]=ch[i];
for(i=0;i<3;i++)printf("%s",p[i]);}
A.123456780B.123456780C.12345678D.147
78.有以下程序
79.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對象B.繼承C.類D.過程調(diào)用
80.若已包括頭文件<string.h>且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語句錯誤的是()。A.A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.sl="ABCDE";
D.for(i=0;i<6;i++)sl[i]=s2[i]
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:應(yīng)用遞歸算法求某數(shù)a的平方根。求平方根的迭代公式如下:
x1=(xO+a/xO)/2
例如,3的平方根為1.732051。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.數(shù)組point中存放著m個人的成績,請編寫函數(shù)fun().它的功能是:返回高于平均分的人數(shù),并將高于平均分的分數(shù)放在high所指的數(shù)組中。例如,當(dāng)point數(shù)組中的數(shù)據(jù)為50,60,65,70.75,80.88,90,95時,函數(shù)返回的人數(shù)應(yīng)該是5,high中的數(shù)據(jù)應(yīng)為75,80,88,90,95。請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。注意:部分源程序給出如下。試題程序:
參考答案
1.A根據(jù)題意可知,小寫字母比與之對應(yīng)的大寫字母的ASCII值大32。A選項中字符W加變量c再對字母個數(shù)26取余,不能轉(zhuǎn)換為對應(yīng)的小寫字母。故本題答案為A選項。
2.C解析:在格式化模型中,要事先根據(jù)應(yīng)用的需要,確定數(shù)據(jù)之間的邏輯關(guān)系,即先對數(shù)據(jù)進行結(jié)構(gòu)化。在關(guān)系模型中,不需要事先構(gòu)造數(shù)據(jù)的邏輯關(guān)系,只要將數(shù)據(jù)按照一定的關(guān)系存入計算機,也就是建立關(guān)系。所以選項A錯誤。對于一個表示關(guān)系的二維表,其最基本的要求是表中元組的每一個分量必須是不可分的數(shù)據(jù)項,即不允許表中再有表。所以,選項B、D說法是錯誤的。一個關(guān)系的屬性名表稱為關(guān)系模式,也就是二維表的表框架,相當(dāng)于記錄型。因此,選項C說法正確。
3.C
4.B
5.D調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。
6.B
7.C【答案】C
【知識點】結(jié)構(gòu)體成員變量的引用
【解析】結(jié)構(gòu)體變量包括一個或多個成員變量,引用其成員變量的語法格式如下:
結(jié)構(gòu)體變量.成員變量。通過結(jié)構(gòu)體指針變量獲得其結(jié)構(gòu)體變量的成員變量的一般形式為:(*結(jié)構(gòu)體指針變量).成員變量,也可以使用:結(jié)構(gòu)體指針變量->成員變量來引用成員變量。
8.C當(dāng)循環(huán)結(jié)束時,w的值應(yīng)為-1,而其他選項中w的值為0,故選擇c選項。
9.D
10.B由題中while(*x==*y*x!=\\n)可知此函數(shù)是統(tǒng)計x和y所指向的字符串中最前面的聯(lián)系相同的字符的個數(shù)。
11.B本題主要考查循環(huán)隊列的概念,循環(huán)隊列作為隊列的一種也應(yīng)該是線性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而循環(huán)隊列是一種順序存儲結(jié)構(gòu)的隊列。
12.A在scanf函數(shù)的格式字符前可以加入一個正整數(shù)指定輸入數(shù)據(jù)所占的寬度,但不可以對實數(shù)指定小數(shù)位的寬度,選項A錯誤,其他選項正確。故本題答案為A選項。
13.B解析:本題主要考查結(jié)構(gòu)類型的定義:struct是結(jié)構(gòu)體類型的關(guān)鍵字;structstr是結(jié)構(gòu)體類型名;x、y、z都是結(jié)構(gòu)體成員名;st是結(jié)構(gòu)變量名。
14.B
15.C解析:本題考核的知識點是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應(yīng)用。本題中定義兩個字符型數(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.A
17.BA選項去掉花括號后,賦值正確;C選項和D選項應(yīng)在定義時賦初值,因為數(shù)組名相當(dāng)于常量,不能重新賦值。故本題答案為B選項。
18.C解析:程序流程圖是軟件過程設(shè)計中常用的圖形描述工具之一。構(gòu)成程序流程圖的最基本符號有:→或↓,表示控制流;□表示加工步驟;
表示邏輯條件。
19.A
20.D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標識符PI來代替“3.1415926”這個字符串,但宏定義不是C語句,不必在行末加分號。
21.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關(guān)系表達式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當(dāng)y=0時,*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=2,所以z=2;當(dāng)y-1時,*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時,*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。
22.*2*4*6*8**2*4*6*8*解析:程序中定義了一個字符數(shù)組a,并初始化為123456789,接著定義了一個指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時,將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*
23.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實現(xiàn)的是在字符'A'的ASCII碼值上加上一個常數(shù),使之變成另一個ASCII碼值,從而輸出字符。
24.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關(guān)系個表達式(*ptr+y)<x)?(ptr+y):x的值,再賦紿變量z,當(dāng)y=O時,*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(pry)=2,所以z=2;當(dāng)y=1時*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時,*(ptr+y)=6,*((ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。
25.918273645918273645解析:題目中為for循環(huán)定義了兩個字符型循環(huán)變量c1和c2,循環(huán)開始時分別初始化為字符'0'和'9',然后每次循環(huán)結(jié)束給c1增1、c2減1,循環(huán)條件為c1<c2,即讓c1的值依次為'0'、'1'、'2'…,c2的值依次為'9'、'8'、'7'…,直到兩個數(shù)相遇時結(jié)束循環(huán)。又因為該循環(huán)的循環(huán)體每次按字符形式輸出c1和c2的值.所以最終的輸出結(jié)果為:0918273645。
26.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄—個單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前—個字符是否是空格,如果是則說明這個字符是—個單詞的開始,將flag標志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)填flag=0或*(s-1)='';最后—個空格需填寫的是返回的單詞的個數(shù),即num。
27.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+funS(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。
28.floaty;structstu*floaty;\r\nstructstu*解析:float定義變量y為實型變量。要求變量next是指向自身結(jié)構(gòu)體的指針,因此變量next應(yīng)該是結(jié)構(gòu)體stu的指針型變量。
29.45794579解析:本題考查的是條件判斷語句。本題特別需要注意的是“;”的問題,不能把“t=a;a=c;c=t;”誤認為是第一個if的語句,實際上,只有“t=a;”才是第一個if的語句。所以判斷第一個if語句的表達式不成立后,執(zhí)行的是“a=c;c=t;”,此時a=5,c=79。然后判斷第二個if語句的條件表達式,表達式成立,執(zhí)行后面的3條語句,讓a、b、c分別為4、5和79。
30.28
31.++pw[i-1]
32.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。
33.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
34.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運算。因為字符在計算機中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運算等,某字符的大寫字母的ASCII碼值比它對應(yīng)的小寫字母ASCII碼值小32。
35.261261解析:在控制格式符中“O”代表的是將數(shù)據(jù)按八進制輸出,十進制數(shù)的177代表的八進制數(shù)是261,所以該空格處應(yīng)該填寫261。
36.一對多一對多解析:實體之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關(guān)聯(lián)。兩個實體間的聯(lián)系可以歸結(jié)為三種類型:一對一聯(lián)系表現(xiàn)為某一實體與另一實體一一對應(yīng)相關(guān)聯(lián):一對多聯(lián)系表現(xiàn)為某一實體與相關(guān)多個實體相關(guān)聯(lián);多對多聯(lián)系表現(xiàn)為多個實體與相關(guān)多個實體相聯(lián)系。所以實體“項目經(jīng)理”與實體“項目”的聯(lián)系屬于一對多的聯(lián)系。
37.k-1k-1解析:第一處應(yīng)該是定義的某個變量,讀程序可知,變量k沒有定義,所以此處應(yīng)填入k。字符串的倒序,就是將首尾對應(yīng)的字符(數(shù)組元素)兩兩交換??捎脙蓚€游標變量i和j分別代表前端元素的下標和后端元素的下標,交換以這兩個變量值為下標的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]仍然位于str[j]的前面,即i<j。字符串末元素的下標是它的長度減1,所以在第二處應(yīng)填入-1。
38.77解析:本題考查基本賦值運算符和賦值表達式。c=(b-=a-5))等價于c=b-(a-5)b=7。c%3=1,a=(c%3)+a=8)=9,但c的值在第二條語句只能夠并沒有被改變,因此c的值還是7。
39.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點。
40.白盒白盒解析:軟件測試的方法分為白盒測試方法和黑盒測試方法.
41.C解析:C程序中所有語句都必須由一個分號“;”作為結(jié)束符。如果只有一個分號,這個分號也是一條語句,稱為“空語句”,程序執(zhí)行時不產(chǎn)生任何動作。程序設(shè)計中有時需要加一個空語句來表示存在一條語句,但隨意加分號也會導(dǎo)致邏輯上的錯誤,影響程序的運行。所以選項C的說法是錯誤的。
42.A根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件:1,有且只有一根節(jié)結(jié)點,2,每一個結(jié)點最多有一個前件,也最多有一個后件,則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。
43.D解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所以選項C)能將大寫字符c的ASCII代碼轉(zhuǎn)換為小寫字符c的ASCⅡ代碼;選項A)和C)左側(cè)的表達式都是大寫字符c與大寫字符A的差與'a'的ASCII代碼的和就是小寫字符c的ASCII代碼。而選項D)中應(yīng)該是加上'a',而不是減去'a'。
44.D解析:在C語言中,字符串常量是以雙引號括起來的字符序列。故選項B和C不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符都是以“\\”開頭的。選項A中包含了三個“\\”,前兩個(\\\\)代表了一個“\\”字符,后面一個和“'”一起(\\”)被看作一個……,所以該字符串缺少一個結(jié)束的“'”,故不正確。選項D的兩個……之間沒有任何字符,代表的是一個空串,是合法的字符串常量,故應(yīng)該選擇D。
45.B解析:對二又樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。在遍歷左,右子樹時,注意依舊按照“左子樹—根結(jié)點—右于樹”的順序。
46.A解析:C語言的常量分為整型常量、實型常量和字符型常量。本題中包含整型常量和實型常量。選項B)以0打頭,應(yīng)該屬于八進制整數(shù),而八進制整數(shù)只能用數(shù)字0~7表示,所以選項B)不合法;選項C)和D)從形式上看屬于實型常量,但對于指數(shù)形式的實型常量,e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以選項C)和D)都不合法;選項A)屬于實型常量中正確的十進制小數(shù)形式。
47.B[答案]B
[考點]軟件工程基礎(chǔ)
[評析]
分析員對用戶的要求作出分析,并畫出數(shù)據(jù)流程圖,該圖通俗易懂,不涉及到如何在計算機上實現(xiàn),這是需求分析階段。
軟件工程中的瀑布模型:
問題定義,可行性研究,需求分析,概要設(shè)計,詳細設(shè)計,編碼,測試,運行和維護
相關(guān)鏈點:
層次圖和HIPO圖是概要設(shè)計中的工具圖;程序流程圖、N-S圖、問題分析PAD圖、設(shè)計程序語言PDL是詳細設(shè)計中的工具圖
48.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標準輸入設(shè)備上讀入一個字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標準輸出設(shè)備上,并且字符可以看作整數(shù)參與運算。
49.C
50.C解析:本題中定義字符數(shù)組s時沒有指定數(shù)組長度,s初始化后存放的內(nèi)容為'\\n123\\\\\\0',其中\(zhòng)'\\n\'和\'\\\\\'是轉(zhuǎn)義字符,所以strlen(s)=5,sizeof(s)=6。
51.A
52.A
53.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實現(xiàn)文件的順序讀寫;③輔助實現(xiàn)文件的隨機讀寫。
54.A解析:本題考查默認函數(shù)的函數(shù)值的類型。在函數(shù)調(diào)用時,盡管y的類型是float,x的類型是double,但是因為函數(shù)定義時省去類型說明,系統(tǒng)默認函數(shù)值的類型為int型,所以計算后的y的類型是int型。
55.A解析:由二叉樹后序遍歷序列和中序遍歷序列可以唯一確定一棵二叉樹。二叉樹BT的后序遍歷序列為dabec,故BT的根結(jié)點為c(后序遍歷序列的最后一個結(jié)點為樹的根結(jié)點):而BT的中序遍歷序列是debac,即遍歷序列中最后一個結(jié)點為根結(jié)點,說明BT的右子樹為空。由BT的后序遍歷序列和中序遍歷序列可知BT左子樹的后序遍歷序列和中序遍歷序列分別為dabe和deba,因此BT左子樹的根結(jié)點是e。再由中序遍歷序列可知其左子樹為d,右子樹為ba。因此BT的前序遍歷序列為cedba。
56.B解析:對于do…while循環(huán),程序先執(zhí)行一次循環(huán)體,再判斷循環(huán)是否繼續(xù)。本題先輸出一次i的值“0,”,再接著判斷表達式i++的值,其值為0,所以循環(huán)結(jié)束。此時變量i的值經(jīng)過自加已經(jīng)變?yōu)?,程序再次輸出i的值“1”。
57.D
58.D解析:本題中fun函數(shù)實現(xiàn)丁字符串函數(shù)str-eat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結(jié)束符的位置,第二個while循環(huán)將字符串a(chǎn)a中的字符(包括結(jié)束符'\\0')逐個復(fù)制到字符串ss的末尾處。
59.A解析:?:運算符首先執(zhí)行?之前的表達式,如果表達式的值為真,則返回?和:之間的表達式的值,否則返回:之后的表達式的值。本題中m比x和y都要小,所以,3個表達式都沒有改變m的值,故應(yīng)該選擇A。
60.D解析:將有6個元素的整型數(shù)組分兩行輸出到一個文件中,因為輸出的都是數(shù)字并且每行都沒有分隔符,所以當(dāng)再對其進行讀取操作時,每一行都會被認為是一個完整的數(shù),而換行符則作為它們的分隔符。
61.B本題中a的值為6,b的值為8,最后s的值為8,s*=s等價于s=s*s。
62.BA選項中e后面的指數(shù)必須為整數(shù),所以錯誤。C語言規(guī)定,E之前必須要有數(shù)字,所以c選項錯誤。E后面必須要有數(shù)字,且必須為整數(shù),所以D選項錯誤。
63.D數(shù)據(jù)結(jié)構(gòu)設(shè)計、給出系統(tǒng)模塊結(jié)構(gòu)以及定義模塊算法都屬于設(shè)計階段,而定義需求并建立系統(tǒng)模型屬于分析階段。
64.D
65.A若a為0,A)選項輸出x,其他輸出y,所以選擇A)。
66.B解析:此題為數(shù)據(jù)庫的基本概念,可以對照辦工軟件的電子表格進行如下理解:選擇:我們根據(jù)某條件選擇出一行或多行元組(一個元組即為二維表中的一行)。投影:按字段(也稱屬性,比如學(xué)生關(guān)系(學(xué)號,姓名,出生年月,性別),學(xué)號、姓名…都是屬性)選取一列或多列
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《生物安全管理要求》課件
- 《生物質(zhì)碳化技術(shù)》課件
- 2025年宇宙生命之謎
- 2024-2025學(xué)年浙江省麗水市“五校高中發(fā)展共同體”高一上學(xué)期10月聯(lián)考歷史試題(解析版)
- 單位管理制度集粹匯編【員工管理篇】
- 2025年高考數(shù)學(xué)一輪復(fù)習(xí)之常用邏輯用語
- 單位管理制度匯編大合集【員工管理】十篇
- 單位管理制度合并匯編職工管理十篇
- 2024春節(jié)放假安全風(fēng)險應(yīng)急預(yù)案范文(32篇)
- 《穴盤育苗技術(shù)》課件
- 針灸推拿學(xué)100512練習(xí)題庫與參考答案
- 常用截面慣性矩與截面系數(shù)的計算
- 行車工考試試題
- 小兒頭皮靜脈輸液課件
- 電力電纜高頻局放試驗報告
- 肺病科主任年度述職匯報
- 2023年福建省晉江市數(shù)學(xué)七年級第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 水利水電工程基礎(chǔ)坑隱蔽工程驗收證書
- 余熱發(fā)電工程總施工組織設(shè)計方案
- 建設(shè)工程監(jiān)理費計算器(免費)
- 希望點-列舉法
評論
0/150
提交評論