版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年山東省青島市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.設(shè)有如下定義:int(*ptr);則以下敘述中正確的是()。
A.ptr是指向一維組數(shù)的指針變量
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指int型數(shù)據(jù)的指針
2.下列不屬于軟件調(diào)試技術(shù)的是______。A.強行排錯法B.集成測試法C.回溯法D.原因排除法
3.若有下列定義(設(shè)int類型變量占2個字節(jié)):inti=8,j=9;則下列語句:printf("i=%%d,j=%%d\n",i,j);輸出的結(jié)果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
4.
5.有以下程序:main(){intX,i;for(i=1;i<=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0)printf("%d,i)";}}輸出結(jié)果是()。A.28B.27C.42D.41
6.有以下程序:#include<stdio.h>voidsub(doublea,double*pb);intmain(){doublex,y;scanf(“%lf%lf”,&x,&y);sub(x,&y);printf(“x=%fy=%f\n”,x,y);}voidsub(doublea,double*pb){a=a-*pb;*pb=*pb-a;}程序運行時輸入10.23.5并按<Enter>鍵,則輸出結(jié)果為()。
A.x=10.200000y=-3.200000
B.x=6.700000y=-13.700000
C.x=7.000000y=-3.500000
D.x=13.400000y=-7.000000
7.下列敘述中正確的是()。
A.軟件測試應(yīng)該由程序開發(fā)者來完成
B.程序經(jīng)調(diào)試后一般不需要測試
C.軟件維護只包括對程序代碼的維護
D.以上三種說法都不對
8.有以下程序#include<stdio.h>main(){chara[3O],b[30];scanf("%S",a);gets(b);printf("%s\n%s\\n",a,b);}程序運行時若輸入:howareyou?Iamfine<回車>則輸出結(jié)果是()。A.howareyou?Iamfine
B.howareyou?Iamfine
C.howareyou?Iamfine
D.howareyou?
9.若函數(shù)調(diào)用時的實參為變量,下列關(guān)于函數(shù)形參和實參的敘述中正確的是()。
A.函數(shù)的形參和實參分別占用不同的存儲單元
B.形參只是形式上的存在,不占用具體存儲單元
C.同名的實參和形參占同一存儲單元
D.函數(shù)的實參和其對應(yīng)的形參共占同一存儲單元
10.以下不能定義為用戶標(biāo)識符的是()。
A.VoidB.scanfC.intD._3com_
11.有以下程序:#include<stdio.h>main(){chara=H;a=(a>=Aa<=2)?(a-A+a):a;printf("%c\n",a);}程序運行后的輸出結(jié)果是()。A.AB.aC.HD.h
12.下列對隊列的敘述正確的是A.隊列屬于非線性表B.隊列按“先進后出”原則組織數(shù)據(jù)C.隊列在隊尾刪除數(shù)據(jù)D.隊列按“先進先出”原則組織數(shù)據(jù)
13.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱為______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
14.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認測試B.集成測試C.驗證測試D.驗收測試
15.下列說法錯誤的是______。
A.關(guān)系中每一個屬性對應(yīng)一個值域
B.關(guān)系中不同的屬性可對應(yīng)同一值域
C.對應(yīng)同一值域的屬性為不同的屬性
D.DOM(A)表示屬性A的取值范圍
16.面向?qū)ο蠓椒ㄖ?,繼承是指()。
A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機制
17.以下函數(shù)findmax擬實現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯導(dǎo)致不能實現(xiàn)預(yù)定功能。#defineMIN-2147483647intfindmax(intx[],intn){inti,max;for(i=0;i<n;i++){max=MIN;if(max<x[i])max=x[i];)returnmax;}造成錯誤的原因是()。A.定義語句“inti,max;”中max未賦初值
B.賦值語句“max=MIN;”中,不應(yīng)給max賦MIN值
C.語句“if(max<x[i])max=x[i];”中判斷條件設(shè)置錯誤
D.賦值語句“max-MIN;”放錯了位置
18.#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)
19.以下敘述中錯誤的是()。
A.C語言程序在運行過程中的所有計算都以二進制方式進行
B.C語言程序在運行過程中的所有計算都以十進制方式進行
C.所有C語言程序都需要編譯、鏈接無誤后才能運行
D.C語言程序中字符變量存放的是字符的ASCII值
20.按照標(biāo)識符的要求,()符號不能組成標(biāo)識符。A.連接符B.下劃線C.大小寫字母D.數(shù)字字符
二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是______。
main
{
inna=b=c=5:
if(c=a+b)
printf("yes\n);
else
printf("no\n);
}
22.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達式是【】。
23.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\N,*p,*q))
}
24.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
25.已知a=1,b=2,則表達式(a&B)&b||b的結(jié)果為()。
26.以下程序的輸出結(jié)果是【】。
main()
{inti=010,j=10;
printf("%d,%d\n",i,j);}
27.設(shè)有定義:FILE*fw;,請將以下打開文件的語句補充完整,以便可以向文本文件readme.txt的最后續(xù)寫內(nèi)容。
fw=fopen("readme.txt",【】);
28.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
char*p,t;
p=s+1:t=*s:
whilet*p){*(,p-1)=*p;p++;}
*(p-1)=t;
returns:}
main()
{char*p,str[10]="abedefgh";
p=ss(str);printf("%s\n".p):}
29.以下程序的運行結(jié)果是()。
main()
(inta=2,b=7,c=5;
switch(a>0)
{case1:switch(b<0)
{case1:switch(");break;
case2:printf("!");break;
}
case0:switch(c==5)
{case0:printf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
30.以下程序的功能是對從鍵盤上輸入的兩個字符串進行比較,然后輸出兩個字符串中第一個不相同字符的ASCII碼值之差。請?zhí)羁铡?/p>
#include"stdio.h"
main()
{chara1[20],a2[20];intn=0,t;
scanf("%st",a1);scanf("%s",a2);
while(a1[n]!=a2[n]&&(a1[n]!=【】))
{t=【】;
printf("%d\n",t);n++;}}
31.計算機病毒除有破壞性、潛伏性和激發(fā)性外,還有一個最明顯的特性是【】
32.以下程序運行后輸出結(jié)果是【】。
#include<stdio,h>
voidswap(inty)
{intt;
t=x;x=y;y=t:printf("%d%d",x,y);
}
main()
{ihta=3,b=4:
swap(a,b);prinff("%d%d",a,b);
}
33.下列程序輸出的結(jié)果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
34.下列程序的運行結(jié)果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
35.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
36.數(shù)據(jù)模型按不同應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。
37.以下sstrcpy()函數(shù)實現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個新的字符串s。清填空。
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstr1[100],str2[]="abcdefgh";
strcpy(str1,str2);
printf('%s\n",str1);
}
38.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
39.寫出下列程序的輸出結(jié)果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
40.函數(shù)compare的功能是比較兩個字符串是否相等,若相等則函數(shù)返回值0,否則返回值1,請?zhí)羁铡?/p>
compare(chars[],chart[])
{inti=0;
while(s[i]==t[i]||【】)i++;
return(【】?1:0);
}
三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;prinff("%d\n";*p+*q);}程序運行后的輸出結(jié)果是()。
A.16B.10C.8D.6
42.下列變量聲明合法的是()。
A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=0xfdaL;
D.float2_aaa=1e-3;
43.表示“在使用x之后,再使x的值加1”的正確方式是()
A.++xB.x++C.+xD.+x+
44.若有一些定義和語句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項中錯誤的語句是
A.*q=0;B.w=p;C.*p=a;D.*p=*w;
45.有以下程序main(){inta=15,b=21,m=0;switch(a%3){casc0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(“%d\n”,m);}程序運行后的輸出結(jié)果是
A.1B.2C.3D.4
46.若有以下說明和語句,則四個選項中是對c數(shù)組元素的正確引用的是()。intc[4][5],(*cp)[5];cp=c;
A.cp+1B.*(cp+3)C.*(cp+1)+3D.*(*cp+2)
47.若在某函數(shù)內(nèi)部有定義:inta[3][4];則數(shù)組a中各元素()。
A.可在程序的運行階段得到初值0
B.可在程序的編譯階段得到初值0
C.不能得到確定的初值
D.可在程序的編譯或運行階段得到初值0
48.在E-R圖中,用()來表示實體之間聯(lián)系。
A.矩形B.菱形C.橢圓形D.正方形
49.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
50.微型計算機的運算器、控制器及內(nèi)存儲器組合在一起,稱之為()
A.ALUB.CPUC.MPUD.主機
51.若有以下說明和定義fun(int*C){…}main(){int(*A)()=fun,*b(),w[10],c;┇}在必要的賦值之后,對fun函數(shù)的正確調(diào)用語句是()
A.a=a(w);B.(*a)(&c);C.b=*b(w);D.fun(b);
52.設(shè)有如下定義intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()
A.3B.0C.4D.1
53.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運行后的輸出結(jié)果是
A.12B.123C.234D.345
54.若有下列說明和語句,已知int型數(shù)據(jù)占2個字節(jié),則下列語句的輸出結(jié)果是()。structst{chara[15];intb;doublec;};printf("%d",sizeof(structst));
A.15B.8C.25D.2
55.在C語言中,函數(shù)中變量的隱含存儲類別是______。
A.autoB.staticC.externD.無存儲類別
56.設(shè)有數(shù)組定義:chararray[]="China";則數(shù)組array所占的空間為()
A.4個字節(jié)B.5個字節(jié)C.6個字節(jié)D.7個字節(jié)
57.若有如下說明,則______的敘述是正確的。structst{inta;intb[2];}a;
A.結(jié)構(gòu)體變量a與結(jié)構(gòu)體成員a同名,定義是非法的
B.程序只在執(zhí)行到該定義時才為結(jié)構(gòu)體st分配存儲單元
C.程序運行時為結(jié)構(gòu)體st分配6個字節(jié)存儲單元
D.類型名structst可以通過extern關(guān)鍵字提前引用(即引用在前,說明在后)
58.下列敘述中正確的是A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鏈表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)
59.下面的程序執(zhí)行后,文件test.t中內(nèi)容是______。#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}
A.hello,B.newworldhelloC.newworldD.hello,rld
60.若有以下的說明,對初值中整數(shù)2的正確引用方式是
staticstruct
{charch;
inti;
doublex;
}a[2][3]={{{′a′,1,3,45},{′b′,2,7,98},{′c′,31,93}}};
A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i
四、選擇題(20題)61.
62.
63.以下()不是標(biāo)準的HTTP消息頭字段。
A.StatusB.HostC.AcceptD.Referer
64.以下關(guān)于C語言的敘述中,不正確的是
A.C語言中的注釋可以夾在變量名或關(guān)鍵字的中間
B.C語言中使用變量必須是先定義后使用
C.C語言表達式運算符兩側(cè)的運算數(shù)類型必須一致
D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示
65.
66.有以下程序:
程序運行后的輸出結(jié)果是()。
A.AfternoonB.ftemoonC.MorningD.oming
67.以下不能正確定義二維數(shù)組的選項是()。
A.
B.
C.
D.
68.
69.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細設(shè)計說明書C.用戶手冊D.軟件需求規(guī)格說明書
70.有以下程序(函數(shù)fun只對下標(biāo)為偶數(shù)的元素進行操作):
#include<stdio.h>
voidfun(int*n)
{inti,j,k,t;
for(i=0;i<n-1;i+=2)
{k=i;
for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;
t[a[i];a[i]=a[k];a[k]=t;
}
}
main
{intaa[lO]=[1,2,3,4,5,6,7],a;
fun(aa,7);
for(i=0;i<7;i++)printf("%d,",aa[i]);
printf("n");
}
程序運行后的輸出結(jié)果是()。
A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
71.下述程序執(zhí)行的輸出結(jié)果是()。
#include<stdio.h>
main()
{chara[2][4];,
strcpy(a。"are");strcpy(a[1],"you");
a[o][3]=&;
printf("%s\n",a);
}
A.are&you
B.you
C.are
D.&
72.學(xué)生選課成績表的關(guān)系模式是sc(S#,c#,G),其中S#為學(xué)號,c#為課號,G為成績,檢索課號為2且成績及格的學(xué)生學(xué)號的表達式為()。
73.有以下程序:
運行時,若輸入123450<回車>,則輸出結(jié)果是()。
A.6566456
B.66656
C.66666
D.6666656
74.
75.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1B.11C.6D.21
76.若有函數(shù)voidfun(doublea[]。int*n){…}以下敘述中正確的是()。A.調(diào)用fun函數(shù)時只有數(shù)組執(zhí)行按值傳送,其他實參和形參之間執(zhí)行按地址傳送
B.形參a和n都是指針變量
C.形參a是一個數(shù)組名,n是指針變量
D.調(diào)用fun函數(shù)時將把double型參數(shù)組元素一一對應(yīng)地傳送給形參a數(shù)組
77.
78.
79.下面不屬于軟件工程三要素的是()。
A.方法B.環(huán)境C.工具D.過程
80.設(shè)有如下三個關(guān)系表
下列操作中正確的是()。
A.T=RnSB.T=RUSC.T=R×SD.T=R/S
五、程序改錯題(1題)81.寫出下列程序的運行結(jié)果。
fun(inta,intb)
{if(a>b)return(a);
Elsereturn(b);}
main
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);printf(“%d\n”,r);}
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc,其功能是將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)個位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和千位上。例如,當(dāng)a=25,b=43,實際輸入時個數(shù)之間以Enter鍵分隔,調(diào)用該函數(shù)后,c=3452。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.C本題中int(*ptr)的含義是指向函數(shù)的指針變量,其為指向函數(shù)的指針變量,該函數(shù)返回一個int型數(shù)據(jù),故選擇C選項。
2.B解析:我們嚴格區(qū)分調(diào)試與測試,調(diào)試是已知有錯誤而來找錯誤,是被動的;測試有很多種,比如未發(fā)現(xiàn)錯誤但不能保證程序沒錯而來找BUG,還比如我們運行測試程序是否符合用戶的要求,是主動的。所以答案是選項B。A、C、D都是具體的程序調(diào)試方法,而B是宏觀的程序測試方法。測試有單元測試、集成測試、確認測試、系統(tǒng)測試。比如我們在進行單元測試時,發(fā)現(xiàn)程序有錯誤,我們再可以根據(jù)A、C、D的方法來找錯誤。
3.B本題考查函數(shù)的輸出格式。在printf函數(shù),格式說明符中有兩個“%”說明;將第1個%后面的字符原樣輸出,并不輸出其對應(yīng)r的變量值。
4.A
5.C只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇c選鞏。
6.Asub函數(shù)接收兩個參數(shù):double類型變量a,double指針變量pb。首先將a與pb指向的變量值相減,結(jié)果存放在a中;然后再將pb指向的變量值與a的新值相減,結(jié)果存放在pb指向的內(nèi)存空間中。sub函數(shù)不會修改實參x的值,但會修改實參y的值。當(dāng)輸入10.23.5時,實參x的值為10.2,y的值為3.5,執(zhí)行sub函數(shù)后,x的值不變,y的值變成-3.2。故本題答案為A選項。
7.D程序調(diào)試是由程序開發(fā)者完成診斷和改正程序中的錯誤的過程;軟件測試是由專門的測試人員完成,是發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;軟件維護是指軟件系統(tǒng)交付使用以后,為了改正錯誤或滿足新的需要而修改軟件的過程,是軟件生存周期中非常重要的一個階段。
8.B此題主要考查scanf函數(shù)和gets函數(shù)的區(qū)別。答案為B。
9.A在定義函數(shù)時,函數(shù)名后面圓括號中的變量名稱為“形式參數(shù)”(簡稱形參)。在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面圓括號中的參數(shù)(可以是一個表達式)稱為“實際參數(shù)”(簡稱實參)。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。故本題答案為A選項。
10.C標(biāo)識符的命名可以由字母、數(shù)字或下劃線組成,并且第1個字符必須為字母或下劃線,另外用戶標(biāo)識符不能使用關(guān)鍵字。選項A中的Void可以定義為用戶標(biāo)識符,因為C語言對大小寫敏感,Void與關(guān)鍵字void屬于不同的標(biāo)識符;選項B中的scanf是庫函數(shù)名,屬于預(yù)定義標(biāo)識符,它也可以作為用戶標(biāo)識符使用,不過通常不建議這么使用;選項C中的int屬于關(guān)鍵字,錯誤;選項D符合標(biāo)識符的命名規(guī)則,也不屬于關(guān)鍵字,可以作為標(biāo)識符使用。本題答案為C選項。
11.D多元運算符問號前面表達式為真,所以(a-A+a)賦值給a,括號里的運算是把大寫字母變成小寫字母,所以答案應(yīng)為選項D。
12.D解析:本題考查數(shù)據(jù)結(jié)構(gòu)中隊列的基本知識。隊列是一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素,所以隊列具有先進先出的特性。在隊列中,允許插入元素的一端叫做隊尾,允許刪除的一端則稱為隊頭。這與日常生活中的排隊是一致的,最早進入隊列的人最早離開,新來的人總是加入到隊尾。因此,本題中只有選項D的說法是正確的。
13.A解析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。
14.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。
(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細設(shè)計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
15.C解析:關(guān)系中每一個屬性都有一個取值范圍,稱為屬性的值域。每—個屬性對應(yīng)一個值域,不同屬性可對應(yīng)同一個值域。對應(yīng)同一值域的卻不一定是不同的屬性。屬性的值域用DOM(A)表示,A表示屬性的名稱。
16.D繼承是面向?qū)ο蟮姆椒ǖ囊粋€主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義的說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們,所以說繼承是指類之間共享屬性和操作的機制。
17.D“max=MIN;”語句應(yīng)放在for循環(huán)之前,否則每次循環(huán)時都重新賦值,值沒有變化。
18.C解析:帶參數(shù)宏的格式為:#define標(biāo)識符(形參表)形參表達式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實參的宏名,展開成由實參組成的表達式。
19.BC語言程序在運行過程中的所有計算都以二進制方式進行,所以B選項錯誤。故本題答案為B選項。
20.A
21.yesyes解析:if...else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu)。本題中,if后面括號里的表達式為c=a+b為真(即c=1+3=4為真);所以,執(zhí)行s1,即執(zhí)行prinff('yes\\'),最后輸出yes。
22.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整數(shù)x的絕對值大于5,則x大于5或x小于5,用C語言表示即為:x>5||x<-5或者x<-5||x>5。故本題答案為;x>5||x<-5或者x<-5||x>5。
23.3535解析:函數(shù)swap(int*a,int*b)的功能是實現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。
24.測試實例測試實例解析:進行軟件測試時,應(yīng)精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。
25.1
26.8108,10解析:以0開頭的是八進制數(shù),輸出時將其轉(zhuǎn)換成十進制數(shù)。
27.aa解析:本題考查的是文件的打開方式。要向文本文件的末尾續(xù)寫內(nèi)容,需要使用方式“a”(追加)打開文件。
28.bedefghabedefgha解析:函數(shù)9,的作用是將指針變量。指向的字符串的首字符移到最后一個位置,其他字符依次前移。其方法是:首先將指針變量p指向字符串s的第2個字符b,然后將首字符保存在字符變量t中;從字符串的第2個字符開始,通過語句*(P-1)=*p;依次前移,直到字符串結(jié)束符;最后通過語句*(P-1)=t;將保存在t中的字符放到移動后的字符串末尾,返回main函數(shù)并輸出,輸出結(jié)果為bedefsh。
29.#&#&解析:剛開始時,switch后面的表達式a>0為真(1),與case1匹配,然后執(zhí)行case1后面的switch語句,表達式b<0值為0,沒有與其匹配的語句,返回外層,因為外層沒有break語句,順序執(zhí)行case0后面的switch語句,表達式“c==5”值為1,與其后面的case1匹配,因此輸出#,遇到break返回外層,又因為外層沒有break語句,順序執(zhí)行default后的語句,輸出&。
30.\0'al[n]-a2[n]或s2[n]-al[n]\\0'\r\nal[n]-a2[n]或s2[n]-al[n]
31.傳染性或傳播性傳染性或傳播性
32.43344334解析:程序?qū)⒆兞縜,b的值傳給函數(shù)swap的形參x,y,并在函數(shù)中對x,y的值進行交換,所以在函數(shù)swap中輸出x,y的值4,3,由于c程序的函數(shù)是僧傳遞,實參a,b的值不會隨形參x,y的改變而改變,所以在主函數(shù)中輸出的a,b的值為3,4。
33.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。本程序首先定義了一個全局變量m=17,m=17的作用域在整個程序內(nèi)。在fun函數(shù)內(nèi)部定義了一個局部變量m=3,m=3的作用域僅在fun函數(shù)內(nèi)部,通過fun函數(shù)返回兩個形參的積再減m。在主函數(shù)中,輸出fun(a,b)/m=(5*7-3)/17=1。
34.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結(jié)果為:a=2,b=8。
35.數(shù)據(jù)存儲數(shù)據(jù)存儲
36.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。
37.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個字符型數(shù)組str1和str2,并且給str2賦初值“abcdefgh”,接著調(diào)用函數(shù)strcpy(str1,str2),將字符串str2的值賦給str1。在函數(shù)sstrcpy(*s,*t)中,用了一個while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲空間,然后將指針s和t都移到下一個元素。所以空白處應(yīng)該填*t++或*(t++)。
38.時間時間解析:算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
39.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做:n++是先取n的當(dāng)前值和1做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加l,即程序結(jié)束后得到n=4,但輸出的是3。
40.s[i]!='\0'||t[i]!='\0's[i]=='\0'&&t[i]=='\0's[i]!='\\0'||t[i]!='\\0'\r\ns[i]=='\\0'&&t[i]=='\\0'
41.B解析:由變量的定義可知,指針變量p初始化為&a[3],即*P的值為4;指針變量q初始化為p+2,即&a[3]+2,所以*q的值為6,*p+*q的值為10。
42.A解析:解答本題需了解3個知識點:①標(biāo)識符是由字母、數(shù)字或下畫線組成,并且它的第一個字符必須是字母或者下畫線;②do是C語言中的一個關(guān)鍵字,不能再用做變量名和函數(shù)名;③C語言規(guī)定指數(shù)形式的實型常量e或E后面的指數(shù)必須是整數(shù)。
43.B
44.A解析:本題考核的知識點是指針變量的使用與空指針(NULL)基本概念.本題中定義了3個指向整型的指針變量p、q、w,并讓p指向a,讓q指向b,通過將q的值賦給w,使w也指向b,最后將NULL賦值給q。由整形變量指針的定義可知,可以給整型指針指向的變量賦一個常數(shù)值(表達式),故選項C和選項D是正確的;可以給指針變量賦一個同種類型的指針變量(或地址值),故選項B也是正確的;選項A錯誤,因為q不指向任何變量,給一個空指針指向的單元賦值是錯誤的。所以,A選項為所選。
45.A解析:在switch語句中break語句的作用是退出分支語句,若沒有break語句則一直向下執(zhí)行。本題中首先計算switch后面括號里的表達式a%3,即15%3為0;執(zhí)行case0;后面的語句m++;m自加1,即m為1;遇到break語句;然后跳出switch語句,所以最后輸出的m的值為1。
46.D解析:本題考查數(shù)組元素的引用。語句cp=c;將數(shù)組c的首行地址賦給了指針數(shù)組cp。選項A)的cp+1是指將數(shù)組c的首行地址加1,即為第二行地址;選項B)的*c(cp+3)是地址,等于數(shù)組c的首地址加3的內(nèi)存單元的內(nèi)容,不是對數(shù)組元素的引用;選項c)的*(cp+1)+3是地址,等于數(shù)組c的首地址加1的內(nèi)存單元中存放的值加3,不是對數(shù)組元素的引用。
47.C解析:在函數(shù)內(nèi)部定義的存儲類型為auto的變量或數(shù)組,如果沒有進行初始化,就不能得到確定值。
48.B\nB)【解析】在E.R圖中用矩形表示實體集,在矩形內(nèi)寫上該實體集的名字,用橢圓形表示屬性,在橢圓形內(nèi)寫上該屬性的名稱,用菱形表示聯(lián)系,菱形內(nèi)寫上聯(lián)系名。
\n
49.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點。
50.D
51.B
52.A
53.D解析:本題考查的是二維數(shù)組元素在內(nèi)存中的排列形式。雖然二維數(shù)組成多維數(shù)組從結(jié)構(gòu)上來看不是線性的,但是在C語言中,這些數(shù)組元素在內(nèi)存中的排列是連續(xù)線性存放的。它們的排列規(guī)則是:第一維下標(biāo)變化最慢,最右邊的下標(biāo)變化最快.例如本題中定義的二維數(shù)組a[3][3]中9個元素在內(nèi)存中的排列順序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函數(shù)中,首先定義了二維數(shù)組a[3][3],然后定義了一個指針p指向數(shù)組a的第1個元素a[0][0]。在第一個for循環(huán)中,依數(shù)組a在內(nèi)存中的排列順序為其元素賦從0~8九個值,然后用第二個for循環(huán)依次輸出a[1][0],a[1][1],a[1][2]三個元素的值。所以,4個選項中選項D符合題意。
54.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é)。
55.A解析:函數(shù)中變量的存儲類別包括auto,static,extern,其中auto為隱含存儲類別,static為靜態(tài)存儲類別,register是寄存器存儲類別。
56.C解析:在給數(shù)組賦值時,可以用一個字符串作為初值,這種方法直觀、方便,而且符合人們的習(xí)慣。數(shù)組array的長度不是5,而是6,這點必須要注意。因為字符串常量的最后由系統(tǒng)加上一個'\\0',因此,上面的初始化與下面的等價:
Chararray[]={'C','h','i','n','a','\\0'};
57.D解析:結(jié)構(gòu)體變量a與結(jié)構(gòu)體成員a同名是合法的定義,引用成員a的方法是a.a,變量a處于不同的“層次”上,系統(tǒng)完全能夠分情。st是—個結(jié)構(gòu)體名,不會為結(jié)構(gòu)體名分配存儲空間,應(yīng)該是在運行時為結(jié)構(gòu)體變量a分配6個字節(jié)的存儲單元,故選項B和選項C錯誤。
58.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)。
59.A解析:C語言中文件有文本文件與二進制文件,對文件的使用前必須先打開,打開方式有只讀、寫入、讀寫等方式。
60.B解析:考查結(jié)構(gòu)體數(shù)組對結(jié)構(gòu)體成員的引用。結(jié)構(gòu)體數(shù)組中對結(jié)構(gòu)體成員的引用要先引用到數(shù)組元素,然后像對待普通的結(jié)構(gòu)體變量一樣來對待結(jié)構(gòu)體數(shù)組元素。
61.C
62.D
63.A
64.CA選項指出“C語言中的注釋可以夾在變量名或關(guān)鍵字的中間”,該選項是正確的。通常采用/*.....*/作為C語言里的注釋符,注釋符之間的內(nèi)容是方便他人理解程序而寫的,對編譯和運行不起作用。注釋可以在程序
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海工商外國語職業(yè)學(xué)院《PC技術(shù)與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 哮病護理查房
- 精-品解析:廣東省深圳實驗學(xué)校高中部2023-2024學(xué)年高一上學(xué)期第三階段考試化學(xué)試題(解析版)
- 懸臂泵課程設(shè)計
- 捉蝴蝶游戲課程設(shè)計
- 少隊活動精忠報國說課稿
- 2024年秋季小學(xué)數(shù)學(xué)北京課改版五年級【數(shù)學(xué)(北京版)】用字母表示數(shù)(第一課時)-1教學(xué)設(shè)計
- 彩虹橋中班繪畫課程設(shè)計
- 思維訓(xùn)練托育課程設(shè)計
- 打地鼠c 課程設(shè)計
- 中考、高考標(biāo)準答題卡答題注意事項ppt課件
- VTE預(yù)防健康教育ppt課件(PPT 42頁)
- 分戶驗收表格(全部)(18341)
- 最新laravel框架
- 3、信息系統(tǒng)及其建設(shè)軟件工程基礎(chǔ)7.24
- 中藥分類大全
- 精文減會經(jīng)驗交流材料
- 淺談離子交換樹脂在精制糖行業(yè)中的應(yīng)用
- 管道定額價目表
- 新時期如何做好檔案管理課件
- 復(fù)興號動車組空調(diào)系統(tǒng)設(shè)計優(yōu)化及應(yīng)用
評論
0/150
提交評論