




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年遼寧省營口市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序
#include<stdio.h>
intfun()
{staticintx=1;
x*2;returnx;
}
main()
{inti,s=1,
for(i=1;i<=2;i++)s=fun();
printf("%d\n",s);
}
程序運行后的輸出結(jié)果是A.A.0B.1C.4D.8
2.
3.下列關(guān)于線性表的敘述中,不正確的是()
A.線性表可以是空表
B.線性表是一種線性結(jié)構(gòu)
C.線性表的所有結(jié)點有且僅有一個前件和后件
D.線性表是由n個元素組成的一個有限序列
4.若x,y,z均被定義為整數(shù),則下列表達(dá)式能正確表達(dá)代數(shù)式1/(x*y*z)的是()。A.1/x*y*zB.1.0/(x*y*z)C.1/(x*y*z)D.1/x/y/(float)z
5.有以下程序main(){intx,y,z;x=y=1;z=X++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運行后的輸出結(jié)果是
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
6.若已知一個棧的進(jìn)棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。
A.IB.n-iC.n-i+1D.不確定
7.下面關(guān)于串的的敘述中,哪一個是不正確的()。
A.串是字符的有限序列
B.空串是由空格構(gòu)成的串
C.模式匹配是串的一種重要運算
D.串既可以采用順序存儲,也可以采用鏈?zhǔn)酱鎯?/p>
8.眾所周知數(shù)據(jù)結(jié)構(gòu)中非常基本的樹結(jié)構(gòu)包括二叉查找樹(BST)。當(dāng)我們把如下序列:10,5,19,4,13,7,6,3,1按順序建立一棵BST時,樹的最大深度是?(令根節(jié)點深度為0,不執(zhí)行平衡二叉樹操作)()
A.5B.4C.3D.2
9.有下列程序:#include<stdio.h>#include"string.h"voidtim(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運行結(jié)果是()。A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc
10.有以下程序
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
11.a、b、c、d變量均為float類型且已正確賦值,下列選項中與數(shù)學(xué)式子“2ab/(5cd)”等價的C語言表達(dá)式是()。
A.2/5*a/c*d/b
B.a/(5*c*d)*(2*b)
C.2*a*b/5*c*d
D.2/5*a*d*(1/c*d)
12.以下敘述中正確的是()。
A.算法的時間復(fù)雜度是指算法在執(zhí)行過程中基本運算的次數(shù)
B.算法的時間復(fù)雜度是指算法執(zhí)行所需要的時間
C.算法的時間復(fù)雜度是指算法執(zhí)行的速度
D.算法的復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度
13.面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B.強調(diào)模擬現(xiàn)實世界中的算法而不強調(diào)概念
C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題
D.不強調(diào)模擬現(xiàn)實世界中的算法而強調(diào)概念
14.為了提高軟件的獨立性,模塊之間最好是()。
A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合
15.若有定義“charc=“hello!”;”,則以下說法正確的是()。
A.c占用7字節(jié)內(nèi)存B.c是一個字符串變量C.定義中有語法錯誤D.c的有效字符個數(shù)是6
16.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長度大于5,則輸出按方式()。
A.從左起輸出該字串,右補空格B.按原字符長從左向右全部輸出C.右對齊輸出該字串,左補空格D.輸出錯誤信息
17.在進(jìn)行單元測試時,常用的方法是
A.采用白盒測試,輔之以黑盒測試B.采用黑盒測試,輔之以白盒測試C.只使用白盒測試D.只使用黑盒測試
18.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(fnnc(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。
A.12B.13C.14D.15
19.有以下程序:#include<stdio.h>main(){ints[12]=(1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++) c[s[i]]++; for(i=1;i<5;i++) printf(“%d”,c[i]);printf(“\n”);}程序的運行結(jié)果是()。
A.2344B.4332C.1234D.1123
20.在Windows環(huán)境下,單擊當(dāng)前應(yīng)用程序窗口中的“關(guān)閉”按鈕,其功能是A.將當(dāng)前應(yīng)用程序轉(zhuǎn)為后臺運行
B.退出Windows后再關(guān)機
C.退出Windows后重新啟動計算機
D.終止當(dāng)前應(yīng)用程序的運行
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
unsignedfun6(unslgnednum)
{unsignedk=1;
do{k*=mum%10;num/=10;}
while(num);
returnk;
}
main()
{unsignedn=26;
printf("%d\n",fan6(n));
}
22.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用刪函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longfl;
myf=【】("test.t","rb");
fseek(myf,(),SEEK_END);fl+ftell(myf);
fclose(myf);
printf("%d\n",fl);
23.與結(jié)構(gòu)化需求分析方法相對應(yīng)的是【】方法。
24.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
25.表示條件:10<x<100或x<0的C語言表達(dá)式【】。
26.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
ginclude"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
pfintf("Enterx:");scanf("%lf"&x);
y1=fun([10]);y2=fun([11]);
pin
27.某二叉樹中度為2的節(jié)點有18個,則該二叉樹中有()個葉子節(jié)點。
28.以下程序運行后的輸出結(jié)果是【】。
main()
{intm=011,n=11;
printf("%d%d\n",++m,n++);
}
29.以下程序運行后的輸出結(jié)果是【】
#include<stdio.h>
main()
{chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{if(i%2==0)*p='*';
p++;i++;
}
puts(a);
}
30.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEP<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
31.數(shù)據(jù)庫是指按照一定的規(guī)則存儲在計算機中的【】的集合,它能被各種用戶共享。
32.二叉樹按某順序線索化后,其結(jié)點均有指向其前趨和后繼的線索,該說法是【】的。
33.【】(黑箱或白箱)測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征。
34.以下程序運行后的輸出結(jié)果是【】。
main()
{intX==1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
35.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chara[]="labchmfye",t;
inti,j;
for(i=0;i<7;i+=2)
for(j=i+2;j<9;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;j++;}
puts(a);
printf("\n");
}
36.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。
37.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
38.若a是血型變量,且a的初值為4,則計算a+=a-=a*a表達(dá)式后a的值為______。
39.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
40.度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為______。
三、1.選擇題(20題)41.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。
A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性
42.SQL語言又稱為______。
A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言
43.下列關(guān)于棧的描述中錯誤的是()
A.棧是先進(jìn)后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針
44.已知p、p1為指針變量,a為數(shù)組名,i為整型變量,下列語句中,不正確的是______。
A.p=&i;B.p=a;C.p=&a[i];D.p=10;
45.有如下程序
main()
{charch[2][5]={"6937","8254"},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>′\0′;j+=2)
s=10*s+p[i][j]-′0′;
printf("%d\n",s);}
該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
46.有以下程序:intf(intn){if(n==1)retuxn1;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
47.以下正確的函數(shù)定義是______。
A.doublef1(intx,inty)
B.doublef1(intx;inty)
C.doublef1(intx;floaty)
D.doublef1(intx,y)
48.有以下程序:main(){inty=1,x=2,z=3;printf("%d,%d\n",(++x,y++),z+2);}執(zhí)行后的輸出結(jié)果是()。
A.3,5B.2,5C.3,3D.1,5
49.下列司用于C語言用戶標(biāo)識符的—組是______。
A.voiddefineWORD
B.a3_b3_123Car
C.For-abcIFCase
D.2aDOsizeof
50.
(2)
A.*sB.sC.*s++D.(*s)++
51.在標(biāo)準(zhǔn)C語言中,下列程序的輸出結(jié)果為______。main(){printf("%e",123.456);}
A.123.456B.123.4560C.1.23456e2D.1.234560e+002
52.軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源
53.算法的時間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)
54.能正確表示邏輯關(guān)系:"a≥10或a≤0"的C語言表達(dá)式是
A.a>=10ora<=0
B.a>=0|a<=10
C.a>=10&&a<=0
D.a>=10||a<=0
55.以下錯誤的定義語句是A.intx[][3]={{0},{1},{1,2,3}};
B.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D.intx[][3]={1,2,3,4};
56.以下程序輸出結(jié)果是#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf("%d\n",a);}
A.21B.32C.33D.11
57.以下對C語言函數(shù)的有關(guān)描述中,正確的是
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.函數(shù)必須有返回值,返回值類型不定
58.能將高級語言程序轉(zhuǎn)換成目標(biāo)語言程序的是______。
A.調(diào)試程序B.解釋程序C.編譯程序D.編輯程序
59.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后輸出結(jié)果是()。
A.賦初值的字符串有錯B.6,7C.5,6D.6,6
60.下列選項中,合法的C語言關(guān)鍵字是______。
A.VARB.cherC.integerD.default
四、選擇題(20題)61.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。
A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性
62.若有函數(shù)內(nèi)部說明:inta[3][4];則數(shù)組a中各元素
A.可在程序的運行階段得到初值0
B.可在程序的編譯階段得到初值0
C.不能得到確定的初值
D.可在程序的編譯或運行階段得到初值0
63.有以下程序:
程序運行后的輸出結(jié)果是()。
A.B,C,D,E,B.A,B,C,D,C.C,D,E,F(xiàn),D.B,D,F(xiàn),H,
64.
65.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.2,1,4,3,6,5,8,7,0,9,
C.0,9,8,7,6,5,4,3,2,1,
D.0,1,2,3,4,5,6,7,8,9,
66.
67.
68.
69.以下數(shù)組定義中錯誤的是()。
70.
71.如果在C程序中要用到庫函數(shù)中的字符串比較函數(shù)strcmp(),那么在程序前面應(yīng)該添加的頭文件是()。
A.stdio.hB.string,hC.a(chǎn)lloc.hD.math.H
72.
73.下列說法中不正確的是
A.C語言規(guī)定,不能在一個函數(shù)的內(nèi)部再定義函數(shù)
B.在沒有聲明函數(shù)返回值類型的情況下,默認(rèn)的函數(shù)返回值類型為int型
C.函數(shù)的類型可以是整型、實型、字符型,但不能是指針型
D.函數(shù)可以沒有形參,但函數(shù)名后的一對圓括號不能省略
74.有以下程序:
程序運行后的輸出結(jié)果是()。
A.2,4B.1,2C.1,4D.2.3
75.以下可用作C語言用戶標(biāo)識符的是()
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
76.有以下程序:
i
程序運行后的輸出結(jié)果是()。。,
A.3,4B.4,1C.2,3D.1,2
77.
78.
79.以下選項中可用作C程序合法實數(shù)的是()。A..1eOB.3.0e0.2C.E9D.9.12E
80.若已定義:inta[9],*p=a;并在以后的語句中未改變p的值,不能表示a[1]地址的表達(dá)式為()。
A.p+1B.a+1C.a++D.++p
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:輸出M行M列整數(shù)方陣,然后求兩條對角線上的各元素之和并將其返回。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),該函數(shù)的功能是將大于整數(shù)m且緊靠m的k個素數(shù)存入所指的數(shù)組中。例如,若輸入17、5,則應(yīng)輸出19、23、29、31、37。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.C
2.B
3.CC)【解析】線性表是一種線性結(jié)構(gòu),由n(n≥O)個元素組成,所以線性表可以是空表。但是性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C)是錯誤的。
4.B
5.C解析:整型變量x、y的初值都為1,“x++,y++,++y”是一個逗號表達(dá)式,程序執(zhí)行“z=x++,y++,++y”后,x的值為2,y的值為3,z取豆號表達(dá)式中第二個表達(dá)式的值,為1。
6.C
7.B
8.B
9.A解析:從main函數(shù)入手,定義了指向字符串的指針數(shù)組,并賦予了初始值,調(diào)用fun()函數(shù),函數(shù)的功能是:比較數(shù)組中各個元素的長度,按元素長度從小到大排列數(shù)組元素,所以執(zhí)行fun(ss,5)函數(shù)后,*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"},所以調(diào)用printf函數(shù)輸出ss[0],ss[4]的值分別為xy,aaaacc。
10.C解析:當(dāng)for循環(huán)執(zhí)行到第30次時,i的值為30能被5整除,然后繼續(xù)執(zhí)行兩次if語句,i經(jīng)過兩次自加1運算,值變?yōu)?2,能被8整除,故此時第一次執(zhí)行'printf('%d',i);'語句,即輸出32。
11.B解析:選項A和選項D中首先計算2/5,因為兩個計算分量都是整型,所以結(jié)果為2,與實際運算不符;選項B中因為乘除法滿足交換律,所以2*b放前面和放后面都是一樣的,所以滿足題目要求;選項C中的表達(dá)式等價于2abcd/5,所以不滿足題目要求。故應(yīng)該選擇B。
12.A算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量,其計算工作量是用算法所執(zhí)行的基本運算次數(shù)來度量的。本題答案為A選項。
13.C\n面向?qū)ο蟮脑O(shè)計方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它雖強調(diào)模擬現(xiàn)實世界中的概念而不強調(diào)算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。
\n
14.D在程序設(shè)計中,各模塊間的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合,以有利于提高模塊的獨立性。耦合性與內(nèi)聚性是模塊獨立的兩個定性標(biāo)準(zhǔn),是互相關(guān)聯(lián)的。
15.Cc是字符變量,“hello!”是字符串。字符串不能賦給字符變量,定義中有語法錯誤。本題答案為C選項。
16.B
17.A解析:單元測試的步驟如下:
①理解需求和設(shè)計。清楚被測試模塊在整個軟件中所處的位置。一個原則是:好的設(shè)計,各模塊只負(fù)責(zé)完成自己的事情,層次與分工明確。單元測試時,可以不測試不屬于被測模塊所負(fù)責(zé)的功能,以減少測試用例的冗余。
②概覽源代碼。瀏覽源代碼,初步檢查源代碼的編碼風(fēng)格與規(guī)范,大致估算測試工作量,確定模塊的復(fù)雜程度,初步制定測試的優(yōu)先級等。
③精讀源代碼。認(rèn)真閱讀和分析代碼,理解代碼的業(yè)務(wù)邏輯,檢查代碼與設(shè)計是否相符,仔細(xì)研究邏輯復(fù)雜的模塊,可采用一些檢查列表來檢查程序可能會出現(xiàn)的問題。
④設(shè)計測試用例。綜合運用白盒測試方法(并結(jié)合黑盒測試方法)設(shè)計測試用例,包括功能測試、性能測試等,要達(dá)到一定的測試覆蓋率。本題正確答案為選項A。
⑤搭建單元測試環(huán)境。這個階段主要就是寫樁模塊和驅(qū)動模塊,然后驅(qū)動模塊想辦法獲取被測試模塊對數(shù)據(jù)的處理結(jié)果,并判定返回的實際結(jié)果與測試用例的預(yù)
期結(jié)果是否一致,通過測試框架來記錄執(zhí)行的結(jié)果,對于出現(xiàn)的錯誤,還需統(tǒng)計錯誤的信息,供執(zhí)行完之后分析。
⑥執(zhí)行測試。運行寫好的驅(qū)動模塊完成對被測試模塊的測試。
⑦補充和完善測試用例。在測試過程中不斷補充測試用例,直到滿足要求為止。
⑧分析結(jié)果,給出評價。根據(jù)測試的結(jié)果分析、查找錯誤的原因,并找到解決的辦法。測試結(jié)束之后,根據(jù)測試過程的數(shù)據(jù)統(tǒng)計,給出被測試對象評價。
18.D
19.B在“for(i=0;i<12;i++)c[s[i]]++”中,數(shù)組元素s[i]的值作為數(shù)組c的下標(biāo)。當(dāng)退出循環(huán)時,數(shù)組c的4個元素的值分別為4、3、3、2。故本題答案為B選項。
20.D
21.1212解析:循環(huán)語句中,表達(dá)式num%10是取num的個位。循環(huán)直至num為0結(jié)束,這是逐一求出num+進(jìn)制表示的各位數(shù)字,并累乘于變量k中。函數(shù)最后返回k,所以程序輸出12。
22.fopenfopen解析:C語言中的文件分為:ASCII文件與二進(jìn)制文件。文件在使用前打開,使用后要關(guān)閉。
打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen(“文件名”,“使用文件方式”);
關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp);其中fp為文件指針。
23.結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化設(shè)計解析:與結(jié)構(gòu)化需求分析方法相對應(yīng)的是結(jié)構(gòu)化設(shè)計方法。結(jié)構(gòu)化設(shè)計就是采用最佳的可能方法設(shè)計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術(shù)。
24.軟件開發(fā)
25.(X>10&&x<100)||x<0或(10<x&&x<100)||x<0或x<0||(x>10&&x<100)或0>x||(10<x&&x<100)或(括號有無都可以)(X>10&&x<100)||x<0\r\n\u3000\u3000或(10<x&&x<100)||x<0或x<0||(x>10&&x<100)\r\n\u3000\u3000或0>x||(10<x&&x<100)或(括號有無都可以)
26.用x+8代替函數(shù)fun(doublex)中形式參數(shù)x。用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。
27.19
28.10111011解析:前綴自增運算時,表達(dá)式的值和變量自增之后的值相同;后綴自增運算時,表達(dá)式的值為變量自增之前的值。所以,本題程序輸出的兩個結(jié)果分別是m+1和n的值。而m在初始化時使用的是八進(jìn)制常量011,轉(zhuǎn)換為十進(jìn)制為9。故輸出結(jié)果是1011。
29.*2*4*6*8**2*4*6*8*解析:程序中指針p指向數(shù)組a,while(*P)語句的循環(huán)條件是*p!=\'\\0\',在循環(huán)體中,當(dāng)i=0,2,4,6,8時,i%2=0,執(zhí)行*p=\'*\',即a[i]=\'*\',繼續(xù)執(zhí)行p++;i++;使i為奇數(shù);當(dāng)i=1,3,5,7時,i%2=1,繼續(xù)執(zhí)行p++;i++;使i為偶數(shù)??梢?,程序在字符串'123456789',的下標(biāo)為偶數(shù)的位置上賦值\'*\',代替原字符串中的1,3,5,7,9。所以,程序輸出結(jié)果為*2*4*6*8*。
30.函數(shù)strcmp(t,s)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0;若t<s,則函數(shù)值小于0。函數(shù)strcpy(t,s)的功能:把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指存儲空間中。
本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t
31.數(shù)據(jù)數(shù)據(jù)解析:數(shù)據(jù)庫是由一個互相關(guān)聯(lián)的數(shù)據(jù)的集合和一組用以訪問這些數(shù)據(jù)的程序組成,這些數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲。
32.錯誤錯誤解析:線索二叉樹是利用二叉鏈表存儲結(jié)構(gòu)中的空鏈域來存放其前趨或后繼。由于二叉樹度為2的非終端結(jié)點無空鏈域,因此它沒有空鏈域用來存放前趨和后繼。
33.黑箱黑箱解析:本題考查了軟件測試中的黑箱測試。黑箱測試是根據(jù)程序規(guī)格說明所規(guī)定的功能來設(shè)計測試用例,它不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。常用的黑箱測試技術(shù)分為等價類劃分、邊界分析、錯誤猜測以及因果圖等。
34.2121解析:外層switch語句后面括號里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個switch語句后面括號里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。
35.j++a[i]>a[j]或a[j]<a[i]j++\r\na[i]>a[j]或a[j]<a[i]解析:題目要求排序的元素是下標(biāo)值為偶數(shù)的元素,外循環(huán)循環(huán)4次,i的值分別為0、2、4、6,所以內(nèi)循環(huán)也循環(huán)4次,i的值就應(yīng)為2、4、6、8,在循環(huán)體中已經(jīng)有了對j加1的操作,因此for后括號中的語句應(yīng)再對j加1,保證下標(biāo)為偶數(shù)。if語句的功能是如果后一個數(shù)比前一個數(shù)小則交換位置。
36.空間復(fù)雜度和時間復(fù)雜度算法的復(fù)雜性是指對一個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計算量是算法的時間復(fù)雜性。
37.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
38.-24-24解析:本題考查賦值運算符a+=b等價于a=a+b;a-=a*a等價于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。
39.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中,然后輸出字符數(shù)組t。
40.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標(biāo)順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。
41.A解析:耦合性是模塊間互相連接的緊密程度的度量,取決于各個模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過接口。
[知識拓展]模塊的獨立程序是評價設(shè)計好壞的一個重要標(biāo)準(zhǔn),衡量軟件的模塊獨立性有兩個定性的度量標(biāo)準(zhǔn)。其中內(nèi)聚性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度最,內(nèi)聚性是從功能角度來度量模塊內(nèi)的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量,耦合性從整體的角度來度量模塊間的聯(lián)系。
42.CC?!窘馕觥縎QL語言的全稱為StructuredQueryLanguage,它是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言,是一種面向數(shù)據(jù)庫的通用數(shù)據(jù)處理語言規(guī)范。它包含數(shù)據(jù)查詢語言、數(shù)據(jù)操縱語言、數(shù)據(jù)定義語言和數(shù)據(jù)控制語言4個部分。
43.B解析:在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照先進(jìn)后出(FILO,F(xiàn)irstInLastOut)或后進(jìn)先出(LIFO,LastInFirstOut)的原則組織數(shù)據(jù)的,因此,棧也被稱為先進(jìn)后出表或后進(jìn)先出表。由此可以看出,棧具有記憶作用。答案B錯在帶鏈的棧的結(jié)點存儲順序與其邏輯順序是可以不一致的。
44.D
45.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數(shù)組char*p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p[1]元素指向二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應(yīng)關(guān)系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=s*10+p[i][j]-\'0\';的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當(dāng)前p[i][j]中的字符量轉(zhuǎn)換為相應(yīng)的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i]\ue009[j]>\'\\0\'是指p[i][j]中的字符只要不是字符串結(jié)束標(biāo)志\'\\0\'就繼續(xù)循環(huán),語句j+=2;是使下標(biāo)j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是\'6\'和\'3\',然后從p[1]所指向的字符串'8254'中一個隔一個地取出字符,分別是\'8\'和\'5\',同時經(jīng)過轉(zhuǎn)換和相加運算后,結(jié)果s中的值應(yīng)該是6385。
46.B解析:本題考查函數(shù)的遞歸調(diào)用。本題中的函數(shù)f是遞歸函數(shù),主函數(shù)中語句j+=f(i)共執(zhí)行了兩次,首次執(zhí)行時j=j+f(i)=0+f(1)=f(1)=1;第二次執(zhí)行時j=j+f(2)=1+f(2)。其中f(2)=f(1)+1-1+1=2,因此j=1+f(2)=1+2=3,即printf語句輸出結(jié)果為3。
47.A
48.D解析:本題考查逗號表達(dá)式。逗號表達(dá)武的求解步驟是先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式N的值。整個逗號表達(dá)式的值就足最后一個表達(dá)式N的值。(++x,y++)這個表達(dá)式的返回值是y++,先使用y的債,然后將y加1,所以輸出第一個值為1。第二個輸出的值為z+2=3+2=5。
49.B解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,所以排除C和D。C語言還規(guī)定標(biāo)識符不能為C語言的關(guān)鍵字,從而選項A(void是關(guān)鍵字)是錯誤的。
50.A
51.D
52.D軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中主要的資源有硬件資源、通信資源、輔助資源等。(1)硬件資源是指組成計算機及相關(guān)應(yīng)用所需要的硬件,它是軟件開發(fā)必不可少的資源,因為無論什么樣的軟件工具都需要在硬件上完成任務(wù),它是其他資源的基礎(chǔ)資源。(2)通信資源是指為軟件開發(fā)提供通信支撐的資源,它與測試數(shù)據(jù)無關(guān)。(3)支持軟件是指為軟件開發(fā)提供操作平臺的軟件,如常用的面向?qū)ο箝_發(fā)的Rose軟件,它主要是軟件開發(fā)的工具。通過對上述分析的總結(jié),可以知道本題的正確答案選D。
53.C解析:算法的時間復(fù)雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關(guān)。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。所以,本題正確答案為C。
54.B解析:本題考查C語言的邏輯表達(dá)式及邏輯或(“||”)運算符的用法?!皘|”表示或的意思,“|”是按位或的意思,“&&”是并且的意思,C語言中沒有“or”。
55.C解析:本題考查的是二維數(shù)組的定義和初始化方法。C語言中,在定義并初始化二維數(shù)組時,可以省略數(shù)組第一維的長度,但是不能省略第二維的長度。故選項C)錯誤。
56.B解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用。本題程序為在while循環(huán)中嵌套for循環(huán)。先看內(nèi)層for循環(huán),該循環(huán)的3個表達(dá)式全部省略,循環(huán)條件始終為真,但循環(huán)體內(nèi)的break語句為終止循環(huán)的條件。首先,由初始條件判斷外層循壞while括號內(nèi)表達(dá)式的值,該值為真,執(zhí)行本次while循環(huán),即執(zhí)行循環(huán)體內(nèi)的訂語句,判斷該表達(dá)式后面括號里表達(dá)式的值為真,執(zhí)行break語句,跳出內(nèi)層循環(huán),執(zhí)行下面的語句,此時i和a的值均變?yōu)?1;回到外層循環(huán),判斷表達(dá)式“i<20”仍為真,執(zhí)行內(nèi)層循環(huán)語句,此時if條件不滿足,執(zhí)行else語句,i的值為10,繼續(xù)內(nèi)層循環(huán),if語句條件滿足,執(zhí)行break語句,跳出內(nèi)層循環(huán),執(zhí)行下面的語句后,i和a的值分別是21和32。再判斷外層循環(huán)的條件為假,結(jié)束循環(huán).所以,4個選項中B為所選。
57.A解析:C語言中的函數(shù)可以進(jìn)行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。
58.C解析:用高級語言編寫的程序稱為“源程序”,而計算機只能識別和執(zhí)行由O和1組成的二進(jìn)指令,所以高級語言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進(jìn)制形式的“目標(biāo)程序”。
59.C解析:本題在定義字符數(shù)組時沒有定義數(shù)組長度,但用字符常量給數(shù)組賦了初值,這時初值的個數(shù)即為數(shù)組的長度,故數(shù)組長度為6(包括'\\0')。字符串的長度為有效字符的個數(shù)5。strlen(s)返回值為串中字符的個數(shù)(不計最后的'\\0'),則輸出值為5。sizeof(s)計算數(shù)組所占的字節(jié)數(shù),包含'\\0',則輸出值為6。因此,C選項正確。
60.D解析:選項A中的VAR不是C語言中關(guān)鍵字,故選項A不正確:選項B中cher,應(yīng)改char,char才是C語言中的關(guān)鍵字,故選項B不正確;選項C中integer在C語言中簡化為int,這里應(yīng)該將integer改為int,int才是C語言中的關(guān)鍵字,選項D中default為C語言中默認(rèn)的關(guān)鍵字,故選項D正確。所以,4個選項中選項D符合題意。
61.A解析:耦合性是模塊間互相連接的緊密程度的度量,取決于各個模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過接口。
[知識拓展]模塊的獨立程序是評價設(shè)計好壞的一個重要標(biāo)準(zhǔn),衡量軟件的模塊獨立性有兩個定性的度量標(biāo)準(zhǔn)。其中內(nèi)聚性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度最,內(nèi)聚性是從功能角度來度量模塊內(nèi)的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量,耦合性從整體的角度來度量模塊間的聯(lián)系。
62.C本題主要考查數(shù)組的定義及初始化。在對數(shù)組進(jìn)行定義和初始化時,需要注意以下事項。
(1)數(shù)組的內(nèi)存空間在編譯時確定,定義數(shù)組時的n值只能使用常量,不能使用變量。
(2)定義數(shù)組時可以不標(biāo)明數(shù)組元素的個數(shù),而是通過賦初值的方式確定,編譯系統(tǒng)將自動計算花括號內(nèi)的數(shù)據(jù)數(shù)量作為數(shù)組的元素個數(shù)。
(3)數(shù)組初始化時,當(dāng)初值的個數(shù)小于整型常量n時,編譯系統(tǒng)會自動補0。一旦給定初值數(shù)超過n,編譯系統(tǒng)將報錯。
(4)初始化數(shù)組的元素類型,必須與定義數(shù)組時的類型一致。
(5)數(shù)組名記錄了數(shù)組在內(nèi)存中的首地址,其值不能更改。
(6)除字符數(shù)組外,不能直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出。
本題中定義了一個3行4列的數(shù)組,但沒有對其進(jìn)行賦初值操作,可能我們會想在系統(tǒng)編譯時會自動補0,這只是在初值個數(shù)小于數(shù)組定義大小的情況下的操作,如果沒有進(jìn)行賦初值操作,數(shù)組中的元素值是不能被確定的。因此,本題答案選C。
63.A函數(shù)ehmlge()的作用將從數(shù)組尾部將數(shù)組內(nèi)的元素值加1。數(shù)組的初始值為ABCD,因此經(jīng)change()后,得到的值為BCDE。故答案為A選項。
64.C
65.A函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。因此在函數(shù)調(diào)用過程中,形參的值發(fā)生改變,而實參中的值不會變化,所以數(shù)組c中的元素的值并沒有變化,選擇A。
66.B
67.B
68.B
69.AA)選項dPx[2][31定義的是一個2行3列的二維數(shù)組,而在給數(shù)組元素賦值時卻賦成了3行,因此錯誤。
70.D
71.B頭文件;C語言中要用庫函數(shù),則需在前面添加頭文件。輸入輸出函數(shù)的頭文件為”stdio.h”
72.D
73.C本題主要考查函數(shù)定義的基本知識。函數(shù)是C語言的基本組成部分,用來完成子程序的功能。一個完整的C程序包括一個main()函數(shù)(主函數(shù))和若干個其他函數(shù),C程序從main()函數(shù)開始執(zhí)行。
在C語言中,函數(shù)定義是平行的,函數(shù)不能嵌套定義,即一個函數(shù)不能在另一個函數(shù)內(nèi)部定義,函數(shù)之間沒有從屬關(guān)系。函數(shù)定義表達(dá)的一般形式為:
<函數(shù)返回值類型>函數(shù)名(<類型名><形式參數(shù)1>,<類型名><形式參數(shù)2>,……)
{
函數(shù)體變量定義部分;
函數(shù)體語句部分;
}
其中,<函數(shù)返回值類型>部分可以省略,默認(rèn)為整型。函數(shù)返回值類型可以為各種整型、字符型、實型,還可以是指針類型。這里需要注意,在定義沒有形參的函數(shù)時,函數(shù)的括號不能沒有,如果沒有,就不是函數(shù)了,很有可能被當(dāng)成變量處理。
74.B結(jié)構(gòu)體變量可以作為函數(shù)的參數(shù)和返回值。作為函數(shù)的實參時,可以實現(xiàn)函數(shù)的傳值調(diào)用。當(dāng)使用結(jié)構(gòu)體變量作為函數(shù)的形參時,實參也應(yīng)該是結(jié)構(gòu)體變量名以實現(xiàn)傳值調(diào)用,實參將拷貝副本給形參,在被調(diào)用函數(shù)中改變形參值對于調(diào)用函數(shù)中的實參沒有影響。所以選擇B。
75.BC語言規(guī)定用戶標(biāo)識符由字母、數(shù)字和下劃線組成,且第一個字符必須是字母或下劃線,可見選項C),D)是錯誤的;此外,c語言不允許用戶將關(guān)鍵字作為標(biāo)識符,而選項A)中的void正是C語言的關(guān)鍵字。
76.C本題考查結(jié)構(gòu)體數(shù)組的相關(guān)操作,dt為結(jié)構(gòu)體數(shù)組,那么指針P指向了結(jié)構(gòu)體數(shù)組的一個元素,所以P一>x為1,P一>Y為2,結(jié)果為2,3。選項C正確。
77.B
78.C
79.Ae前e后有數(shù)字,e后數(shù)值為整數(shù),所以B)、c)、D)錯誤。
80.C
81.(1)錯誤:intproc(intn,intxx[][])
正確:intproc(intn,intxx[][M])
(2)錯誤:printf(″%4f″,xx[i][j]);
正確:printf(″%4d″,xx[i][j]);
【解析】從主函數(shù)中的調(diào)用語句可知,實參中的一個為二維數(shù)組,因此其形參類型也應(yīng)該一樣,而二維時,其列下標(biāo)必須是常量,因此把“intproc(intn,intxx[][])”改為“intproe(intn,intxx[][M])”。從形參中可知xx數(shù)組是整型數(shù)組,因此其輸出的控制應(yīng)為整型,故把printf中的”%4f”改為″%4d″。
82.1voidfun(intm,intk,intxx[])2{3inti,j,n;4for(i=m+1,n=0;n<k;i++)p*<>找大于m的素數(shù),循環(huán)k次,即找出緊靠m的k個素數(shù)*/5{for(j=2;j<i;j++)p*#]斷一<>個M否為素數(shù),如果不是,跳出此循環(huán),判斷下一個數(shù)*/6if(i%j==0)break;7if(j>=i)/*如果是素數(shù),存入數(shù)組XX中*/8xx[n++]=i;9}10}本題主要考查素數(shù)的判定方法。如果一個數(shù)不能被除了1和其自身以外的數(shù)整除,則這個數(shù)為素數(shù)。本程序使用循環(huán)語句控制需要判斷的數(shù),在循環(huán)體中判斷該數(shù)是否為素數(shù),若是則存入數(shù)組XX中。當(dāng)數(shù)組XX的素數(shù)個數(shù)為k個時,退出循環(huán)。</i;j++)p*#]斷一<></k;i++)p*<></i<p)為()。2021年遼寧省營口市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序
#include<stdio.h>
intfun()
{staticintx=1;
x*2;returnx;
}
main()
{inti,s=1,
for(i=1;i<=2;i++)s=fun();
printf("%d\n",s);
}
程序運行后的輸出結(jié)果是A.A.0B.1C.4D.8
2.
3.下列關(guān)于線性表的敘述中,不正確的是()
A.線性表可以是空表
B.線性表是一種線性結(jié)構(gòu)
C.線性表的所有結(jié)點有且僅有一個前件和后件
D.線性表是由n個元素組成的一個有限序列
4.若x,y,z均被定義為整數(shù),則下列表達(dá)式能正確表達(dá)代數(shù)式1/(x*y*z)的是()。A.1/x*y*zB.1.0/(x*y*z)C.1/(x*y*z)D.1/x/y/(float)z
5.有以下程序main(){intx,y,z;x=y=1;z=X++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運行后的輸出結(jié)果是
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
6.若已知一個棧的進(jìn)棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。
A.IB.n-iC.n-i+1D.不確定
7.下面關(guān)于串的的敘述中,哪一個是不正確的()。
A.串是字符的有限序列
B.空串是由空格構(gòu)成的串
C.模式匹配是串的一種重要運算
D.串既可以采用順序存儲,也可以采用鏈?zhǔn)酱鎯?/p>
8.眾所周知數(shù)據(jù)結(jié)構(gòu)中非?;镜臉浣Y(jié)構(gòu)包括二叉查找樹(BST)。當(dāng)我們把如下序列:10,5,19,4,13,7,6,3,1按順序建立一棵BST時,樹的最大深度是?(令根節(jié)點深度為0,不執(zhí)行平衡二叉樹操作)()
A.5B.4C.3D.2
9.有下列程序:#include<stdio.h>#include"string.h"voidtim(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運行結(jié)果是()。A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc
10.有以下程序
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
11.a、b、c、d變量均為float類型且已正確賦值,下列選項中與數(shù)學(xué)式子“2ab/(5cd)”等價的C語言表達(dá)式是()。
A.2/5*a/c*d/b
B.a/(5*c*d)*(2*b)
C.2*a*b/5*c*d
D.2/5*a*d*(1/c*d)
12.以下敘述中正確的是()。
A.算法的時間復(fù)雜度是指算法在執(zhí)行過程中基本運算的次數(shù)
B.算法的時間復(fù)雜度是指算法執(zhí)行所需要的時間
C.算法的時間復(fù)雜度是指算法執(zhí)行的速度
D.算法的復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度
13.面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B.強調(diào)模擬現(xiàn)實世界中的算法而不強調(diào)概念
C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題
D.不強調(diào)模擬現(xiàn)實世界中的算法而強調(diào)概念
14.為了提高軟件的獨立性,模塊之間最好是()。
A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合
15.若有定義“charc=“hello!”;”,則以下說法正確的是()。
A.c占用7字節(jié)內(nèi)存B.c是一個字符串變量C.定義中有語法錯誤D.c的有效字符個數(shù)是6
16.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長度大于5,則輸出按方式()。
A.從左起輸出該字串,右補空格B.按原字符長從左向右全部輸出C.右對齊輸出該字串,左補空格D.輸出錯誤信息
17.在進(jìn)行單元測試時,常用的方法是
A.采用白盒測試,輔之以黑盒測試B.采用黑盒測試,輔之以白盒測試C.只使用白盒測試D.只使用黑盒測試
18.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(fnnc(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。
A.12B.13C.14D.15
19.有以下程序:#include<stdio.h>main(){ints[12]=(1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++) c[s[i]]++; for(i=1;i<5;i++) printf(“%d”,c[i]);printf(“\n”);}程序的運行結(jié)果是()。
A.2344B.4332C.1234D.1123
20.在Windows環(huán)境下,單擊當(dāng)前應(yīng)用程序窗口中的“關(guān)閉”按鈕,其功能是A.將當(dāng)前應(yīng)用程序轉(zhuǎn)為后臺運行
B.退出Windows后再關(guān)機
C.退出Windows后重新啟動計算機
D.終止當(dāng)前應(yīng)用程序的運行
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
unsignedfun6(unslgnednum)
{unsignedk=1;
do{k*=mum%10;num/=10;}
while(num);
returnk;
}
main()
{unsignedn=26;
printf("%d\n",fan6(n));
}
22.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用刪函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longfl;
myf=【】("test.t","rb");
fseek(myf,(),SEEK_END);fl+ftell(myf);
fclose(myf);
printf("%d\n",fl);
23.與結(jié)構(gòu)化需求分析方法相對應(yīng)的是【】方法。
24.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
25.表示條件:10<x<100或x<0的C語言表達(dá)式【】。
26.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
ginclude"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
pfintf("Enterx:");scanf("%lf"&x);
y1=fun([10]);y2=fun([11]);
pin
27.某二叉樹中度為2的節(jié)點有18個,則該二叉樹中有()個葉子節(jié)點。
28.以下程序運行后的輸出結(jié)果是【】。
main()
{intm=011,n=11;
printf("%d%d\n",++m,n++);
}
29.以下程序運行后的輸出結(jié)果是【】
#include<stdio.h>
main()
{chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{if(i%2==0)*p='*';
p++;i++;
}
puts(a);
}
30.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEP<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
31.數(shù)據(jù)庫是指按照一定的規(guī)則存儲在計算機中的【】的集合,它能被各種用戶共享。
32.二叉樹按某順序線索化后,其結(jié)點均有指向其前趨和后繼的線索,該說法是【】的。
33.【】(黑箱或白箱)測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征。
34.以下程序運行后的輸出結(jié)果是【】。
main()
{intX==1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
35.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chara[]="labchmfye",t;
inti,j;
for(i=0;i<7;i+=2)
for(j=i+2;j<9;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;j++;}
puts(a);
printf("\n");
}
36.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。
37.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
38.若a是血型變量,且a的初值為4,則計算a+=a-=a*a表達(dá)式后a的值為______。
39.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
40.度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為______。
三、1.選擇題(20題)41.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。
A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性
42.SQL語言又稱為______。
A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言
43.下列關(guān)于棧的描述中錯誤的是()
A.棧是先進(jìn)后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針
44.已知p、p1為指針變量,a為數(shù)組名,i為整型變量,下列語句中,不正確的是______。
A.p=&i;B.p=a;C.p=&a[i];D.p=10;
45.有如下程序
main()
{charch[2][5]={"6937","8254"},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>′\0′;j+=2)
s=10*s+p[i][j]-′0′;
printf("%d\n",s);}
該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
46.有以下程序:intf(intn){if(n==1)retuxn1;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
47.以下正確的函數(shù)定義是______。
A.doublef1(intx,inty)
B.doublef1(intx;inty)
C.doublef1(intx;floaty)
D.doublef1(intx,y)
48.有以下程序:main(){inty=1,x=2,z=3;printf("%d,%d\n",(++x,y++),z+2);}執(zhí)行后的輸出結(jié)果是()。
A.3,5B.2,5C.3,3D.1,5
49.下列司用于C語言用戶標(biāo)識符的—組是______。
A.voiddefineWORD
B.a3_b3_123Car
C.For-abcIFCase
D.2aDOsizeof
50.
(2)
A.*sB.sC.*s++D.(*s)++
51.在標(biāo)準(zhǔn)C語言中,下列程序的輸出結(jié)果為______。main(){printf("%e",123.456);}
A.123.456B.123.4560C.1.23456e2D.1.234560e+002
52.軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源
53.算法的時間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)
54.能正確表示邏輯關(guān)系:"a≥10或a≤0"的C語言表達(dá)式是
A.a>=10ora<=0
B.a>=0|a<=10
C.a>=10&&a<=0
D.a>=10||a<=0
55.以下錯誤的定義語句是A.intx[][3]={{0},{1},{1,2,3}};
B.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D.intx[][3]={1,2,3,4};
56.以下程序輸出結(jié)果是#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf("%d\n",a);}
A.21B.32C.33D.11
57.以下對C語言函數(shù)的有關(guān)描述中,正確的是
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.函數(shù)必須有返回值,返回值類型不定
58.能將高級語言程序轉(zhuǎn)換成目標(biāo)語言程序的是______。
A.調(diào)試程序B.解釋程序C.編譯程序D.編輯程序
59.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后輸出結(jié)果是()。
A.賦初值的字符串有錯B.6,7C.5,6D.6,6
60.下列選項中,合法的C語言關(guān)鍵字是______。
A.VARB.cherC.integerD.default
四、選擇題(20題)61.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。
A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性
62.若有函數(shù)內(nèi)部說明:inta[3][4];則數(shù)組a中各元素
A.可在程序的運行階段得到初值0
B.可在程序的編譯階段得到初值0
C.不能得到確定的初值
D.可在程序的編譯或運行階段得到初值0
63.有以下程序:
程序運行后的輸出結(jié)果是()。
A.B,C,D,E,B.A,B,C,D,C.C,D,E,F(xiàn),D.B,D,F(xiàn),H,
64.
65.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.2,1,4,3,6,5,8,7,0,9,
C.0,9,8,7,6,5,4,3,2,1,
D.0,1,2,3,4,5,6,7,8,9,
66.
67.
68.
69.以下數(shù)組定義中錯誤的是()。
70.
71.如果在C程序中要用到庫函數(shù)中的字符串比較函數(shù)strcmp(),那么在程序前面應(yīng)該添加的頭文件是()。
A.stdio.hB.string,hC.a(chǎn)lloc.hD.math.H
72.
73.下列說法中不正確的是
A.C語言規(guī)定,不能在一個函數(shù)的內(nèi)部再定義函數(shù)
B.在沒有聲明函數(shù)返回值類型的情況下,默認(rèn)的函數(shù)返回值類型為int型
C.函數(shù)的類型可以是整型、實型、字符型,但不能是指針型
D.函數(shù)可以沒有形參,但函數(shù)名后的一對圓括號不能省略
74.有以下程序:
程序運行后的輸出結(jié)果是()。
A.2,4B.1,2C.1,4D.2.3
75.以下可用作C語言用戶標(biāo)識符的是()
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
76.有以下程序:
i
程序運行后的輸出結(jié)果是()。。,
A.3,4B.4,1C.2,3D.1,2
77.
78.
79.以下選項中可用作C程序合法實數(shù)的是()。A..1eOB.3.0e0.2C.E9D.9.12E
80.若已定義:inta[9],*p=a;并在以后的語句中未改變p的值,不能表示a[1]地址的表達(dá)式為()。
A.p+1B.a+1C.a++D.++p
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:輸出M行M列整數(shù)方陣,然后求兩條對角線上的各元素之和并將其返回。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),該函數(shù)的功能是將大于整數(shù)m且緊靠m的k個素數(shù)存入所指的數(shù)組中。例如,若輸入17、5,則應(yīng)輸出19、23、29、31、37。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.C
2.B
3.CC)【解析】線性表是一種線性結(jié)構(gòu),由n(n≥O)個元素組成,所以線性表可以是空表。但是性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C)是錯誤的。
4.B
5.C解析:整型變量x、y的初值都為1,“x++,y++,++y”是一個逗號表達(dá)式,程序執(zhí)行“z=x++,y++,++y”后,x的值為2,y的值為3,z取豆號表達(dá)式中第二個表達(dá)式的值,為1。
6.C
7.B
8.B
9.A解析:從main函數(shù)入手,
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六年級上冊語文知識梳理
- 2025年管業(yè):地暖專用管合作協(xié)議書
- 2025年P(guān)URL系列反應(yīng)型皮革用聚氨酯乳液合作協(xié)議書
- 河北省棗強縣棗強中學(xué)2025屆高考仿真卷化學(xué)試卷含解析
- 延續(xù)護理科普知識
- 2025屆柳州鐵路第一中學(xué)高三第四次模擬考試化學(xué)試卷含解析
- 小班社會領(lǐng)域培訓(xùn)課件
- 工藝裝置運行培訓(xùn)課件
- 一年級數(shù)學(xué)計算題專項練習(xí)集錦
- 五年級數(shù)學(xué)(小數(shù)除法)計算題專項練習(xí)及答案匯編
- 2025屆蘇錫常鎮(zhèn)四市高三二模試題英語試題試卷含解析
- 2024年GCP考試題庫(黃金題型)
- 2025年中央一號文件參考試題庫100題(含答案)
- (完整版)醫(yī)療器械基礎(chǔ)知識培訓(xùn)考試試題及答案
- 04S519小型排水構(gòu)筑物(含隔油池)圖集
- 北京市海淀區(qū)2024年七年級下學(xué)期數(shù)學(xué)期中考試試卷(附答案)
- 計算機考試Excel操作題原題及操作步驟82435
- (高清版)輻射供暖供冷技術(shù)規(guī)程JGJ142-2012
- 教育個案的研究記錄
- 幕墻淋水試驗技術(shù)方案(工程科)
- 鎮(zhèn)墩結(jié)構(gòu)計算
評論
0/150
提交評論