版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
2022-2023年浙江省溫州市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
2.以下有關宏替換的敘述不正確的是()。A.A.使用宏定義可以嵌套
B.宏定義語句不進行語法檢查
C.雙引號中出現(xiàn)的宏名不替換
D.宏名必須用大寫字母表示
3.設char型變量x中的值為10100111,則表達式(2+x)(-3)的值為______。
A.10101001B.10101000C.11111101D.1010101
4.下列算法中,()算法用來求圖中某頂點到其他頂點所有頂點之間的最短路徑。
A.DijkstraB.FloyedC.PrimD.Kruskal
5.下列函數(shù)的功能是
set(s,t)
{char*s,*t;
while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}A.A.求字符串的長度
B.比較兩字符串的大小
C.將字符串s復制到字符串t中
D.將字符串s連接到字符串t后
6.有如下程序段
#include"stdio.h"
#include"string.h"
#defineN10
#defineM10
char*find(char(*a)[M],intn)
{char*q;inti;
q=a[0];
for(i=0;i<n;i++)
if(strcmp(a[i],q)<0)q=a[i];
returnq;}
main()
{chars[N][M]={"tomeetme","you","and","he","china"};
char*p;
intn=5;
p=find(s,n);
puts(p);}
則執(zhí)行后輸出的結(jié)果為A.A.heB.andC.youD.tomeetme
7.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
8.有三個關系R、s和T如下:
由關系R和s通過運算得到關系T,則所使用的運算為()。
A.并B.自然連接C.笛卡爾積D.交
9.
10.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的輸出結(jié)果是()。A.xyyxB.yyyyC.yyxxD.yxyx
11.有以下程序:#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
12.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}執(zhí)行程序時,給變量X輸入10,程序的輸出結(jié)果是()。A.55B.54C.65D.45
13.
14.在軟件測試設計中,軟件測試的主要目的是
A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.盡可能多地發(fā)現(xiàn)軟件中的錯誤
15.對初始狀態(tài)為遞增序列的數(shù)組按遞增順序排序,最省時間的是插入排序算法,最費時間的算法是()
A.堆排序B.快速排序C.插入排序D.歸并排序
16.
17.設有如下定義structss{charname[10];intage;charsex;}std[3],*p=std;下列各輸入語句中錯誤的是_______。
A.scanf("%d",&(*p).age);
B.scanf("%s",&);
C.scanf("%c",&std[0].sex);
D.scanf("%c",&(p->sex));
18.順序查找不論在順序線性表中還是在鏈式線性表中的時間復雜度為()。
A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)
19.若有說明charc[7]={'s','t','r','i','n','g'};則對元素的非法引用是()。
A.c[0]B.c[9-6]C.c[4*2]D.c[2*3]
20.算法分析的兩個主要方面是()。
A.空間復雜性和時間復雜性B.正確性和簡明性C.可讀性和文檔性D.數(shù)據(jù)復雜性和程序復雜性
二、2.填空題(20題)21.下面程序的輸出結(jié)果是【】。
charb[]="ABCD";
main()
{char*p=b;
for(;*p;p++)
printf("%s",p);
printf("\n");
}
22.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
23.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結(jié)束循環(huán)。請?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
24.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
25.以下sum函數(shù)的功能是計算下列級數(shù)之和。請給函數(shù)中的各變量正確賦初值。
doublesum(doublex,intn)
{inti;doublea,b,s;
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;
}
26.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,當s<t時返回負值。請?zhí)羁铡?/p>
my_cmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}return【】;
}
27.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
28.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達式是______。
29.下列程序的輸出結(jié)果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
30.設在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】。要求形參名為b。
main()
{double[10][22];
intn;
......
fun(s);
}
31.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
32.與表達式a+=b等價的另一書寫形式是______。
33.以下程序的輸出結(jié)果是______。
main()
{inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf("%d,%d\n",a,b);
}
34.一棵二叉樹第六層(根節(jié)點為第一層)的節(jié)點數(shù)最多為______。
35.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
36.以下說明語句中,【】是結(jié)構(gòu)體類型名。
typedefstruct
{intn;
charch[8];
}PER;
37.以下程序運行后的輸出結(jié)果是______。
intf(inta[],intn)
{
if(n>=l)
returnf(a,n-1)+a[n-1];
else
return0;
}
main{)
{
intaa[5]={1,2,3,4,5},s;
s=f(aa,5);
printf{'%d\n",s);
}
38.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。
39.以下程序的輸出結(jié)果是【】。
#defineMCNA(m)2*m
#defineMCNB(n,m)2*MCRA(n)+m
#definef(x)(x*x)
main()
{inti=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
40.閱讀下面程序段,則執(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;}
三、1.選擇題(20題)41.以下能正確定義一維數(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";
42.在面向?qū)ο蠓椒ㄖ校?)描述的是具有相似屬性與操作的一組對象。
A.屬性B.事件C.方法D.類
43.以下選項中可以作為C語言中合法整數(shù)的是______。
A.10110BB.386C.0XffaD.x2a2
44.以下程序的輸出結(jié)果是______。structHAR{intx,y;structHAR*p;};main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1].p=h;printf("%d%d\n",(h[0].p->y));}
A.12B.23C.14D.32
45.有以下程序:#include<stdio.h>#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(xiàn)(a++,b++));}程序運行后的輸出結(jié)果是()。
A.12B.15C.16D.20
46.有以下定義語句doublea,a;intw;longc;若各變量已正確賦值,則下列選項中正確的表達式是
A.a=a+b=b++B.w%((int)a+b)C.(c+w)%(int)aD.w=a==b
47.請讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運行時從鍵盤上輸入9876543210,則上面程序的輸出結(jié)果是______。
A.a=98,b=765,c=4321
B.a=10,b=432,c=8765
C.a=98,b=765.000000,c=4321.000000
D.a=98,b=765.0,c=4321.0
48.以下不是面向?qū)ο笏枷胫械闹饕卣鞯氖?/p>
A.多態(tài)B.繼承C.封裝D.垃圾回收
49.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。
A.12B.13C.14D.15
50.請讀程序片段(字符串內(nèi)沒有空格字符):printf("%d\n",stlen("ATS\n012\1\\”));上面程序片段的輸出結(jié)果是()
A.11B.10C.9D.8
51.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}
A.-11B.01C.10D.00
52.下列程序執(zhí)行后的輸出結(jié)果是______。main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}
A.456B.258C.369D.789
53.下列表達式中,可以正確表示x≤0或x≥1的關系是()。
A.(x>=1)‖(x<=0)
B.x>1‖x=0
C.x>=1ORx<=0
D.x>=1&&x<=0
54.下列程序的輸出結(jié)果是______。main(){inti;for(i=1;i+1;i++){if(i>4){printf("%d",i++);break;}}printf("%d",i++);}
A.55B.56C.程序錯誤,沒有輸出D.循環(huán)條件永遠為真,死循環(huán)
55.若變量已正確定義,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其輸出結(jié)果是
A.程序段有語法錯B.3,5,3C.3,5,5D.3,5,7
56.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后輸出結(jié)果是()。
A.賦初值的字符串有錯B.6,7C.5,6D.6,6
57.以下敘述中錯誤的是()。
A.C程序中的#include和#define行均不是C語句
B.除逗號運算符外,賦值運算符的優(yōu)先級最低
C.C程序中,j++;是賦值語句
D.C程序中,+、-、*、/、%是算術運算符,可用于整型和實型數(shù)的運算
58.下列敘述中正確的是A.break語句只能用于switch語句
B.在switch語句中必須使用default
C.break語句必須與switch語句中的case配對使用
D.在switch語句中,不一定使用break語句
59.有以下程序#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
60.若有定義inta[9],*p=a;則p+5表示
A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5
四、選擇題(20題)61.設有以下程序段:
intX=0,s=0;
while(!X!=0.s+=++X;
prinff(”%d”,S.;
則()。
A.運行程序段后輸出0B.運行程序段后輸出lC.程序段中的控制表達式是非法的D.程序段執(zhí)行無限次
62.以下程序的輸出結(jié)果是______。#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}
A.9B.6C.36D.18
63.若a是數(shù)值類型,則邏輯表達式(a==1)||(a!=1)的值是()。
A.0B.1C.2D.不知道a的值,不能確定
64.以下程序的輸出結(jié)果是()。
main()
{inta=1;
charc=’a’;
floatf=2.0;
Printf("%d\n",(!(a==0),f1=0&&c==’A’));
}
A.0B.1C.2D.3
65.
66.若有定義floatX=1.5;inta=1,b=3,C=2;,則正確的switch語句是()。
A.
B.
C.
D.
67.以下敘述中錯誤的是______。A.C語言中對二進制文件的訪問速度比文本文件快
B.C語言中,隨機文件以二進制代碼形式存儲數(shù)據(jù)
C.語句FILEfp:定義了一個名為fp的文件指針
D.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)
68.
69.
70.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。
A.#definef(x)5*x*x+5*x+5
B.#definef5*X*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
71.下列敘述中正確的是()。
A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)
B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.循環(huán)隊列是一種邏輯結(jié)構(gòu)
72.
73.程序設計方法要求在程序設計過程中()。
A.先編制出程序,經(jīng)調(diào)試使程序運行結(jié)果正確后再畫出程序的流程圖
B.先編制出程序,經(jīng)調(diào)試使程序運行結(jié)果正確后再在程序中的適當位置處加注釋
C.先畫出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調(diào)試使程序運行結(jié)果正確后再在程序中的適當位置處加注釋
D.以上三種說法都不對
74.下列不可作為C語言賦值語句的是()。
A.x=3,y=5B.a(chǎn)=b=6C.i--D.y=6
75.
76.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是()。
A.X+1=yB.++X.Y=X一一C.X=X+10=X+YD.double(X)/10
77.
78.下面程序由兩個源程序文件t4.h和t4.c組成,程序編譯運行的結(jié)果是()。
t4.h的源程序為:
A.920B.1611C.911D.1610
79.
80.(51)在計算機中,算法是指()
A.查詢方法
B.加工方法
C.解題方案的準確而完整的描述
D.排序方法
五、程序改錯題(1題)81.以下程序可把輸入的十進制數(shù)以十六進制數(shù)的形式輸出。請在橫線上填上適當?shù)膬?nèi)容并把橫線刪除,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設計題(1題)82.請編寫函數(shù)proc(),其功能是:將str所指字符串中除了下標為奇數(shù)、同時ASCⅡ值為偶數(shù)的字符外,其余的全部刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為edB2A4Dsdg,其中字符A的ASCⅡ碼值為奇數(shù),因此應當刪除;其中字符B的ASCⅡ碼值為偶數(shù),但在數(shù)組中的下標為偶數(shù),因此也應當刪除;而字符2的ASCⅡ碼值為偶數(shù),所在數(shù)組中的下標為奇數(shù),因此不應當刪除。依此類推,最后t所指的數(shù)組中的內(nèi)容應是d24。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.A解析:希爾排序法的基本思想是:將整個無序列分割成若干小的子序列分別進行插入排序。
2.D解析:本題考查宏替換的規(guī)則。宏替換有兩類:簡單的字符替換和帶參數(shù)的宏替換。使用宏應注意:①宏定義僅僅是符號替換,不是賦值語句,因此不做語法檢查:②為了區(qū)別程序中其他的標示符,宏名的定義通常用大寫字母,但不是必須用大寫;③雙引號中出現(xiàn)的宏名不替換;④使用宏定義可以嵌套,即后定義的宏中可以使用先定義的宏。
3.D解析:異或運算符(^)的運算規(guī)則是:參加運算的兩個相應位同號,則結(jié)果為0(假);異號則為1(真)。取反運算符(-)的運算規(guī)則是:對一個二進制數(shù)按位取反,即將0變?yōu)?,1變?yōu)?。本題(-3)是對3(二進制形式為00000011)按位取反即11111100。表達式(2+x)(-3)的值就等價于(00000010+10100111)^11111100,結(jié)果為01010101。
4.A
5.B在本題中,從題目給出的四個選項我們就可以知道,程序是對兩個字符串進行操作。下面將具體分析程序。
程序首先定義兩個字符型的指針變量s和t,從后面的程序中不難看出這兩個指針變量應該用來對兩個字符串進行操作處理。用循環(huán)來對字符串進行處理時,循環(huán)繼續(xù)的條件是指針變量s和指針變量t所指向的結(jié)果值不為0,且兩結(jié)果值相等。很顯然,指針變量s和指針變量t所指向的結(jié)果值不為0,說明兩字符串沒有結(jié)束,只有結(jié)束時才為0,而結(jié)果值相等說明兩字符相等,如果不等,循環(huán)則結(jié)束,此時程序?qū)⒁蠓祷夭坏仍刂g的差值,從差值的正負關系我們可以判斷出哪個元素更大。綜上所述,程序段的作用是用來比較兩字符串的大小。因此,本題正確的答案選B。
6.B在本題中,首先定義了兩個宏N和M,大小都為10,然后定義了一個返回指針的函數(shù)find,該函數(shù)帶有兩個形參,第一個為字符型的指針數(shù)組,第二個為整型變量,在函數(shù)體中,首先定義了一個指針變量q,并將形參中指針數(shù)組的第一個元素賦值給q,然后執(zhí)行for循環(huán),在循環(huán)體中,首先執(zhí)行條件判斷語句,其條件為strcmp(a[i],q)<0(strcmp函數(shù)的作用是比較兩字符串的大小,如果相等,則返回0值,如果參數(shù)中的第一個字符串大,則返回正值,否則返回負值),如果結(jié)果為真,說明指針數(shù)組當前元素所指向的字符串比q所指向的字符串小,此時,程序執(zhí)行將當前指針數(shù)組元素賦值給p,最后返回p,通過上面的分析我們可以看出,find函數(shù)的作用是找出指針數(shù)組中各元素所指向字符串的最小字符串。
在主函數(shù)中,定義了一個二維數(shù)組s,并賦了初值,然后定義一個指針變量p,用來存放函數(shù)find的返回值。調(diào)用函數(shù)find的參數(shù)分別為s和5,結(jié)合形參看find函數(shù),不難知道調(diào)用find函數(shù)就是找出二維數(shù)組s中各字符串中最小的字符串,那么應該為and。此時,指針變量p指向字符串“and”的首地址,然后執(zhí)行puts(p),完成該字符串的輸出。因此,本題正確的答案是B。
7.B解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。
數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還心須有其他相關軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡系統(tǒng)軟件的支持。因此,選項A的說法是錯誤的。
數(shù)據(jù)庫可以看成是長期存儲在計算機內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。
通常將引入數(shù)據(jù)庫技術的計算機系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由五個部分組成,包括相關計算機的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關軟件和人員。
因此,選項C的說法是錯誤的。
因此,本題的正確答案是選項B。
8.D關系R與s經(jīng)交運算后所得到的關系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。
9.A
10.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結(jié)束循環(huán)。所以B正確。
11.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。
12.A函數(shù)intfun(intn)的功能是求1+2+…+n的值并返回。所以執(zhí)行程序時,給變量x輸入10后,執(zhí)行語句“x=fun(x);”,X的值將變?yōu)?到10中10個整數(shù)的累加和,即55。
13.A
14.D解析:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結(jié)果與實際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。
15.B
16.D
17.B解析:在C語言中,結(jié)構(gòu)體變量的引用有三種等價方式:
1、結(jié)構(gòu)體變量成員名;2、(*p).成員名;3、p->成員名。
因為std.name是字符數(shù)組名,本身代表地址,其前面不應該使用“&”符號,所以選項B錯誤。
18.A
19.C
20.A
21.ABCDBCDCDD
22.外模式外模式解析:外模式由概念模式推導而出,給出了每個用戶的局部數(shù)據(jù)描述,即數(shù)據(jù)視圖。
23.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。
24.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當于a[1+3],即10。因此,輸出應為100。
25.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1s=1或給abs賦1或1.0或1.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1,s=1或給a,b,s賦1或1.0或1.解析:sum函數(shù)的功能是求表達式s的級數(shù)之和,該函數(shù)的大致思路是:在該函數(shù)中,定義了—個整型變量i用作循環(huán)計數(shù)器,定義一個變量a用來表示各個子項的分子,初始為第一個子項的分子,故為1,定義了一個變量b用來表示各個子項大分母,初始為第一個子項的分母,故為1,定義一個變量s存放累加和,初始為第一個子項的值即為1,然后給各個定義的變量初始化,然后通過一個for循環(huán)將題目中的數(shù)學表達式的各個子項求出來并累加到s中,所以說,在該題的空格處應該填寫將a、b和s賦初值的語句,即為a=1;b=1;s=1:(說明:語句的順序可任意)或a=b=s=1;(說明:變量的順序可任意)或a=1,b=1,s=1(說明:賦值表達式的順序可任意)給a,b,s賦1或1.0或1都可以。
26.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應字符相等情況下循環(huán),直至不相等結(jié)束。相等時,若字符串已到了字符串的結(jié)束標記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準備比較下一對字符。對應字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時,就以兩個當前字符的差返回。所以在空框處應填入*s-*t,保證在e>t時返回正值,當s<t時返回負值。
27.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。
28.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達,“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達式為:(x>-5)&&(x<5)。
29.88解析:本程序定義了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。
30.voidfun(doubleb[10][22])voidfun(doubleb[10][22])解析:本題答案:voidfun(doubleb[10][22])。
31.數(shù)據(jù)存儲數(shù)據(jù)存儲
32.a=a+ba=a+b解析:a+=b與a=a+b等價,作用是把變量a的值加b后再賦給變量a。
33.21
34.在二叉樹的第k層上,最多有2k-1(k>1)個結(jié)點。
35.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
36.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構(gòu)體類型,此時,也可以用PER來定義變量。
37.1515解析:在函數(shù)f()中只有一條if語句,如果n不小于1,則返回f(a,n-1)+a[n-1);,否則返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3]……直到f(aa,0)返回0.故f(aa,5)實際返回值是0+aa[1]+aa[2]+aa[3]+aa[4]+aa[5],所以本題最終輸出15。
38.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。
39.1616解析:本題定義了兩個宏MCRA(m)和MCRB(n,m),展開宏MCRB(n,m),得到:MCRB(j,MCRA(i)=2*MCRA(j)+MCRA(i)=2×2×j+2×i=4×3+2×2=12+4=16,因此printf函數(shù)的輸出結(jié)果為16。
40.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實現(xiàn)的是在字符'A'的ASCII碼值上加上一個常數(shù),使之變成另一個ASCII碼值,從而輸出字符。
41.B解析:選項A)中,定義的初值個數(shù)大于數(shù)組的長度;選項C)中,數(shù)組名后少了中括號;選項D)中,整型數(shù)組不能賦予字符串。
42.D解析:類(calss)描述的是具有相似屬性與操作的一組對象,而一個具體對象則是其對應類的一個實例。
43.C解析:C語言中整型常量有3種表示形式:十進制、八進制和十六進制。選項A是二進制表示,錯誤;八進制的數(shù)字是0、1、2、3、4、5、6、7,選項B錯誤;十六進制整數(shù)常量用0X開頭,選項D錯誤。
44.D解析:本題中是—個含有兩個結(jié)點的循環(huán)鏈表。C語言中結(jié)構(gòu)體的定義為:srtyct結(jié)構(gòu)體類型名{成員項表;}
45.A解析:本題考查帶參數(shù)的宏定義,參數(shù)只是簡單的替換而不是求出其值后再替換形式參數(shù)。本題中用a++替換X,用b++替換Y,再求(a++)*(b++)的值,即3*4的值,其結(jié)果為12。
46.C解析:本題考核的知識點是C語言中一些運算符的簡單應用。選項A中不是合法的賦值語句,將最右邊的第一個般值表達式加括號即為a=b+(b=b++)才正確,故選項A不正確;選項B中運算符“%”的對象必須是整型,而在選項B中(int)a+b為double型,故選項B不正確;選項a,b都為,double“==”應該改為“=”,故選項D不正確.所以,4個選項中選項C符合題意。
47.C解析:scanf()把用戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf()遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。
48.D解析:面向?qū)ο笏枷胫械娜齻€主要特征是:封裝性、繼承性和多態(tài)性。
49.D解析:調(diào)用函數(shù)func(x,y),返回x+y,即7;再調(diào)用函數(shù)func(7,z),返回7+z,即15。
50.C
51.C解析:本題考查if語句。++a是先自增后使用,b--是先使用后自減。執(zhí)行++a后,a值為0,不滿足條件,所以a為0,b仍為1,接下去執(zhí)行else語句,輸出10。
52.C解析:根據(jù)二維數(shù)組的定義得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本題的輸出是第3行的值m[2][0],m[2][1],m[2][2],即369。
53.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達式是或的關系,所以在寫成C語言表達式應是邏輯或的關系,邏輯或運算符是“‖”。
54.B解析:本程序中有個for循環(huán),但注意到for循環(huán)的條件是“i+1”,也就是只要i+1的值為真(非零值均為真),就執(zhí)行循環(huán)。當i=1的時候,i+1的值為真,判斷if條件不成立,執(zhí)行i++,輸出i的值為5。
55.B解析:本題考查if條件語句。a=3,b=5,因此a>b條件不成立,c=a=3。此時c!=a條件不成立,不執(zhí)行c=b;語句,c的值仍然為5。結(jié)果a=3,b=5,c=3。
56.C解析:本題在定義字符數(shù)組時沒有定義數(shù)組長度,但用字符常量給數(shù)組賦了初值,這時初值的個數(shù)即為數(shù)組的長度,故數(shù)組長度為6(包括'\\0')。字符串的長度為有效字符的個數(shù)5。strlen(s)返回值為串中字符的個數(shù)(不計最后的'\\0'),則輸出值為5。sizeof(s)計算數(shù)組所占的字節(jié)數(shù),包含'\\0',則輸出值為6。因此,C選項正確。
57.D解析:“%”是求余運算符,其兩側(cè)的數(shù)值只能為整型,不能用于實型數(shù)據(jù)的運算。
58.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時的分支,也可以不使用default,此時若所有case均失配則跳出switch,因此選項B不正確。在switch語句中,每個case的作用就是標出一個執(zhí)行的起點,當符合某個case時,程序就從該case所標出的起點處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會一直執(zhí)行到switch的最后一條語句,
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育信息化設備承包租賃協(xié)議3篇
- 二零二五年度水產(chǎn)養(yǎng)殖產(chǎn)業(yè)可持續(xù)發(fā)展戰(zhàn)略合作協(xié)議合同3篇
- 2025年度文化旅游創(chuàng)意園區(qū)委托經(jīng)營管理與合作合同3篇
- 2025年度農(nóng)村土地承包權(quán)生態(tài)補償與保護合同
- 二零二五年度房地產(chǎn)公司兼職正式聘用銷售合同3篇
- 二零二五年度新型城鎮(zhèn)化拆遷房產(chǎn)分割與生態(tài)補償合同3篇
- 2025年度競業(yè)禁止機械租賃及設備維護保養(yǎng)合同3篇
- 二零二五年度特色養(yǎng)殖養(yǎng)雞場地租賃及農(nóng)業(yè)旅游合同3篇
- 二零二五年度智能穿戴設備出口業(yè)務合同范本3篇
- 2025年度農(nóng)村電商農(nóng)副產(chǎn)品批發(fā)合作框架協(xié)議3篇
- 2024年中國大數(shù)據(jù)企業(yè)排行榜V9.0(大數(shù)據(jù)產(chǎn)業(yè)白皮書)-中國民營科技促進會
- 2025年統(tǒng)編版高考政治一輪復習:選擇性必修1、2、3共3冊必背考點知識點匯編
- 貨物交接單和交接合同
- 七年級語文下冊專項練習知識(對聯(lián))
- MOOC 知識圖譜導論-浙江大學 中國大學慕課答案
- 2016-2017學年天津市部分區(qū)九年級(上)期末化學試卷
- 培智五年級上次數(shù)學期末考試題
- SAP-ABAP-實用培訓教程
- 配電房施工組織設計方案(土建部分)
- 國家開放大學電大專科《英語教學法》2023-2024期末試題及答案(試卷代號:2145)
- 管樁水平承載力計算
評論
0/150
提交評論