版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023年福建省三明市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.設(shè)a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式為()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
2.有以下程序main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]'0';printf("%d\n",n);}編譯連接后生成可執(zhí)行文件tt.exe。若運(yùn)行時(shí)輸入以下命令行tt12345678程序運(yùn)行后的輸出結(jié)果是A.12B.12345C.12345678D.136
3.需求分析階段的任務(wù)是確定()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能
4.設(shè)有一個(gè)棧,元素依次進(jìn)棧的順序?yàn)锳、B、C、D、E。下列()是不可能的出棧序列。
A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A
5.有以下程序:main(){intx[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結(jié)果是()。
A.隨機(jī)值B.0C.5D.6
6.以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=d;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
7.以下敘述中正確的是()。
A.在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面
B.每個(gè)后綴為C的C語言源程序都可以單獨(dú)進(jìn)行編譯
C.在C語言程序中,只有main函數(shù)才可單獨(dú)進(jìn)行編譯
D.每個(gè)后綴為.C的C語言源程序都應(yīng)該包含一個(gè)main函數(shù)
8.在面向?qū)ο蠓椒ㄖ?,一個(gè)對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
9.
10.利用E-R模型進(jìn)行數(shù)據(jù)庫的概念設(shè)計(jì),可以分成3步:首先設(shè)計(jì)局部E-R模型,然后把各個(gè)局部E-R模型綜合成一個(gè)全局的模型,最后對全局E-R模型進(jìn)行(),得到最終的E-R模型。
A.簡化B.結(jié)構(gòu)化C.最小化D.優(yōu)化
11.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運(yùn)行維護(hù)過程
12.數(shù)據(jù)結(jié)構(gòu)中,在邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成()。
A.動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
13.下列關(guān)于線性表的敘述中,不正確的是()
A.線性表可以是空表
B.線性表是一種線性結(jié)構(gòu)
C.線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件
D.線性表是由n個(gè)元素組成的一個(gè)有限序列
14.
15.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是______。A.21,43B.43,21C.43,00D.21,00
16.可用作C語言用戶標(biāo)識符的一組標(biāo)識符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof
17.
18.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序運(yùn)行后輸出的結(jié)果是()。A.246810B.13579C.12345D.678910
19.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.6,5,4,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,4,5,6,
D.1,2,3,6,5,4,
20.面向?qū)ο蠓椒ㄖ?,繼承是指()。
A.一組對象所具有的相似性質(zhì)B.一個(gè)對象具有另一個(gè)對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機(jī)制
二、2.填空題(20題)21.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
22.下述程序的輸出結(jié)果是【】。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0||x==1)
return3;
else
p=x-fun(x-2);
returnp;}
voidmain()
{printf("\n%d",fun(9));}
23.以下程序運(yùn)行后的輸出結(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):}
24.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
25.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
26.下列程序的運(yùn)行結(jié)果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
27.函數(shù)fun的功能是計(jì)算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已經(jīng)正確定義變量m,a,b并賦值,要調(diào)用函數(shù)fun計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。
28.在進(jìn)行模塊測試時(shí),要為每個(gè)被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
29.下面程序的運(yùn)行結(jié)果是()。
#include<stdio.h>
main()
{inta=25;
fun(&A);
}
fun(int*x)
{printf("%d\n",++*x);
}
30.輸出指針數(shù)組各元素所指的整數(shù)值和它存放的地址值。
#include<stdio.h>
main()
{inti;
inta[5]={1,3,5,7,9};
int*num[5];
int【】;
for(i=0;i<5;i++)
num[i]=【】;
p=num+0;
for(i=0;i<5;i++)
{printf("%d%d\n",【】);
p++;
}
}
31.以下程序的作用是:從名為filea.dat的文本文件中逐個(gè)讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
32.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運(yùn)行時(shí),如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。
33.對軟件是否能達(dá)到用戶所期望的要求的測試稱為【】。
34.在E-R圖中,矩形表示【】。
35.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)。
36.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。
37.防止軟盤感染病毒的最有效的方法是【】。
38.x、y、x均為int型變量,描述“x、y和z中至少有兩個(gè)為正數(shù)”的表達(dá)式是______。
39.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
intx=15;
while(x>10&&x<50)
{
x++;
if(x/3){x++;break;}
elsecontinue;
}
printf("%d\n",x);
}
40.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
三、1.選擇題(20題)41.有以下程序段main(){chara[7]="abcdef";charb[4]="ABC";strcpy(a,b);printf("%c",a[5]);}程序段運(yùn)行后的輸出結(jié)果是()
A.aB.\0C.eD.f
42.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\b",i,j);}程序運(yùn)行后的輸出結(jié)果是
A.9,9B.8,9C.1,8D.9,8
43.以下數(shù)據(jù)結(jié)構(gòu)中,屬于非線性數(shù)據(jù)結(jié)構(gòu)的是()
A.棧B.線性表C.隊(duì)列D.二叉樹
44.若有“doublea;”,則正確的輸入語句是()。
A.scanf("%1f",A);
B.scanf("%f",&A);
C.scanf("%1f",&A);
D.scanf("%1e",A);
45.設(shè)有如下程序#inclide<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n,"**k);}上述程序的輸出結(jié)果是______。
A.運(yùn)行錯(cuò)誤B.100C.i的地址D.j的地址
46.有以下程序:#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2);i2=f(1+1);printf("%d%d\n",i1,i2);}程序的運(yùn)行結(jié)果是()。
A.1212B.117C.1111D.127
47.以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz",strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}的輸出是______。
A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC
48.以下不能正確計(jì)算代數(shù)式sin2()值的C語言表達(dá)式是()。
A.1/3*sin(1/2)*sin(1/2)
B.sin(0.5)*sin(0.5)/3
C.pow(sin(0.5),2)/3
D.1/3.0*pow(sin(1.0/2),2)
49.下列程序的輸出結(jié)果是______。main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}
A.0B.0.25C.0.5D.1
50.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
51.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦40000的正確語句是
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*1OL;
52.經(jīng)下列語句定義后,sizeof(x)、sizeof(y)、sizeof(a)、sizeof(b)在IBM-PC機(jī)上的值分別為______。charx=65;floaty=7.3;inta=100;doubleb=4.5;
A.2,2,2,4B.1,2,2,4C.1,4,2,8D.2,4,2,8
53.在c語言中,變量的隱含存儲類別是()。
A.autoB.staticC.externD.無存儲類別
54.有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和s通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。
A.并B.自然連接C.笛卡兒積D.交
55.軟件生命周期一般包括:軟件計(jì)劃期、開發(fā)期和軟件運(yùn)行期。因此,在下述項(xiàng)目中,______不是軟件開發(fā)期的內(nèi)容。
A.需求分析B.結(jié)構(gòu)設(shè)計(jì)C.程序編制D.性能優(yōu)化
56.有以下程序
#inGlude<stdlib.h>
structNODE{
intnum;
structNODE*next;
}
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(stnlctNODE*)malloc(sizeof(structNODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next;r;r->next=NULL;
sum+=q->next->Num,sum+=p->num;
printf("%d\n",sum);
}
執(zhí)行后輸出結(jié)果是
A.3B.4C.5D.6
57.C語言的基本單位是()。
A.函數(shù)B.過程C.子程序D.子函數(shù)
58.以下敘述中正確的是
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
59.下列關(guān)于字符串的說法中錯(cuò)誤的是
A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符′\0′作為字符串結(jié)束標(biāo)志
B.′\0′作為標(biāo)志占用存儲空間,計(jì)入串的實(shí)際長度
C.在表示字符串常量的時(shí)候不需要人為在其末尾加入′\0′
D.在C語言中,字符串常量隱含處理成以′\0′結(jié)尾
60.源程序的文檔化不包括()。
A.符號名的命名要有實(shí)際意義B.正確的文檔形式C.良好的視覺組織D.正確的程序注釋
四、選擇題(20題)61.
設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m=a>b)&&(n—c>d)運(yùn)算后,n的值是()n
A.0B.1C.2D.3
62.
63.
64.
65.(46)面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的的面向過程的方法有本質(zhì)不同,它的基本原理是()
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題
D.鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用實(shí)際領(lǐng)域的概念去思考
66.
67.
運(yùn)行下列程序時(shí),若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。
main
{floata,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a<b)
{t=a;a=b.b=t;)
if(a<c)
{t=a;a=c;c=t;)
it(b<c)
{t=b;b=C;c—=;)
printf("%f\n%f\n%f\n",a,b,c);
}
A.1.002.003.00
B.1.003.002.00
C.132
D.3.000002.000001.00000
68.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
69.
70.(50)數(shù)據(jù)庫概念設(shè)計(jì)的過程中,視圖設(shè)計(jì)一般有三種設(shè)計(jì)次序,以下各項(xiàng)中不對的是()
A.自頂向下
B.由底向上
C.由內(nèi)向外
D.由整體到局部
71.有以下程序
72.
73.
74.有以下程序,其輸出結(jié)果是()。
voidmain()
{
floarx=1;
inty;
x++;
y=x+1;
printf("x=%d,y=%f",x,y);
}
A.x=2,y=3
B.x=2,y=3.0
C.x=2.0,y=3
D.x=0,y=0.000000
75.耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
76.以下敘述中正確的是()。
A.c語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行
B.可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行
C.c語言規(guī)定必須用main作為主函數(shù)名,程序從此開始執(zhí)行,在此結(jié)束
D.main作為用戶標(biāo)識符,用以命名任意一個(gè)函數(shù)作為主函數(shù)
77.以下敘述中正確的是()。
A)C程序中的#include和#define行均是C語句,只是語法不同
B)除賦值運(yùn)算符外,逗號運(yùn)算符的優(yōu)先級最低
C)C程序中,j++;是賦值語句
D)C程序中,+、-、*、/、%號是算數(shù)運(yùn)算符,可用于整型和實(shí)型數(shù)的運(yùn)算
78.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.0B.9C.6D.8
79.sizeof(float)是
A.一個(gè)雙精度表達(dá)式B.一個(gè)整型表達(dá)式
C.一種函數(shù)調(diào)用D.一個(gè)不合法的表達(dá)式
80.若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。#include#includemain{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.A.-1B.0C."abcdef"D."abdef"
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是按以下遞歸公式求函數(shù)值。例如,當(dāng)給n輸入3時(shí),函數(shù)值為60;當(dāng)給n輸入6時(shí),函數(shù)值為480。請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。注意:部分源程序給出如下。請勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
參考答案
1.D
2.D解析:運(yùn)行時(shí)輸入該命令后,參數(shù)argc的值為4,字符串?dāng)?shù)組argv[1]、argv[2]、argv[3]分別為“12”、“345”、“678”,然后取這3個(gè)參數(shù)的第一個(gè)字符,將其轉(zhuǎn)化成原來的數(shù)字并組合成一個(gè)新的三位數(shù)。
3.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書
評析,需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項(xiàng)A)軟件開發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B)軟件開發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù):選項(xiàng)C)軟件開發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。
4.C
5.B解析:通過賦值語句“s=x+3”,使指針變量s指向數(shù)組元素x[3],輸出語句中的spl等價(jià)于*(s+2),即x[5]值為0。所以,B選項(xiàng)為所選。
6.C解析:靜態(tài)局部變量在編譯時(shí)賦初值,即只賦韌值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,而對自動(dòng)變量賦初值,不是在編譯時(shí)進(jìn)行的,而在函數(shù)調(diào)用時(shí)進(jìn)行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時(shí),d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時(shí)d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。
7.BC語言是一種成功的系統(tǒng)描述語言,具有良好的移植性,每個(gè)后綴為.C的C語言源程序都可以單獨(dú)進(jìn)行編譯。
8.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動(dòng)的,對象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
9.D
10.D解析:在概念設(shè)計(jì)中按照模塊的劃分畫出每個(gè)模塊的E-R圖,然后把這些圖合成一張E-R圖作為全局模型,最后應(yīng)該對全局E-R圖進(jìn)行優(yōu)化,看看是否有重復(fù)和不合理的地方。不能只是進(jìn)行簡單的合并。
11.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。
12.C
13.CC)【解析】線性表是一種線性結(jié)構(gòu),由n(n≥O)個(gè)元素組成,所以線性表可以是空表。但是性表中,第一個(gè)結(jié)點(diǎn)沒有前件,最后一個(gè)結(jié)點(diǎn)沒有后件,其他結(jié)點(diǎn)有且只有一個(gè)前件和后件,所以選項(xiàng)C)是錯(cuò)誤的。
14.D
15.A結(jié)構(gòu)體和共用體;在“聯(lián)合”中,各成員共享一段內(nèi)存空間,一個(gè)聯(lián)合變量的長度等于各成員中最長的長度。應(yīng)該說明的是,這里所謂的共享不是指把多個(gè)成員同時(shí)裝入一個(gè)聯(lián)合變量內(nèi),而是指該聯(lián)合變量可被賦予任一成員值,但每次只能賦一種值,賦入新值則沖去舊值
16.B
17.B
18.D本題中exch函數(shù)是用數(shù)組中的第6個(gè)元素對第1個(gè)元素進(jìn)行賦值,所以數(shù)組的值應(yīng)該為678910。
19.D程序定義數(shù)組a,使用6個(gè)元素對其初始化,接著以寫二進(jìn)制方式打開文件d.dat。調(diào)用fwrite函數(shù)將a的6個(gè)元素逆序(654321)寫入文件,接著調(diào)用rewind函數(shù),將文件指針移動(dòng)到文件開始位置。調(diào)用fread函數(shù)讀入3個(gè)整數(shù),逐個(gè)存放到a開始下標(biāo)為3的3個(gè)位置,即a[3]=6,a[4]=5,a[5]=4,關(guān)閉文件。再次調(diào)用for循環(huán)輸出a,結(jié)果為:1,2,3,6,5,4,。本題答案為D選項(xiàng)。
20.D繼承是面向?qū)ο蟮姆椒ǖ囊粋€(gè)主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義的說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們,所以說繼承是指類之間共享屬性和操作的機(jī)制。
21.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時(shí)循環(huán)6次。
22.77解析:本題考查的是函數(shù)的遞歸調(diào)用。x=0或x=1是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。
23.bedefghabedefgha解析:函數(shù)9,的作用是將指針變量。指向的字符串的首字符移到最后一個(gè)位置,其他字符依次前移。其方法是:首先將指針變量p指向字符串s的第2個(gè)字符b,然后將首字符保存在字符變量t中;從字符串的第2個(gè)字符開始,通過語句*(P-1)=*p;依次前移,直到字符串結(jié)束符;最后通過語句*(P-1)=t;將保存在t中的字符放到移動(dòng)后的字符串末尾,返回main函數(shù)并輸出,輸出結(jié)果為bedefsh。
24.224682,2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當(dāng)i=0時(shí),p[0]=&x[1],p[0][0]=2;當(dāng)i=1時(shí),p[1]=&x[3],p[1][0]=4;當(dāng)i=2時(shí),p[2]=&x[5],p[2][0]=6;當(dāng)i=3時(shí),p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結(jié)果為2、4、6、8。
25.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個(gè)元素30,p++后,指針指向數(shù)組的下一個(gè)元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時(shí),則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。
26.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時(shí)a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結(jié)果為:a=2,b=8。
27.fun(a4)+fun(b4)-fun((a+b)3);fun(a,4)+fun(b,4)-fun((a+b),3);解析:函數(shù)fun的功能是計(jì)算x的n次方,a的4次方的調(diào)用函數(shù)為fun(a,4),b的4次方的調(diào)用函數(shù)為fun(b,4),(a+b)的3次方的調(diào)用函數(shù)為fun((a+b),3),計(jì)算m=a4+b4-(a+b)3的函數(shù)調(diào)用語句為:fun(a,4)+fun(b,4)-fun((a+b),3);
28.驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊解析:由于模塊通常不是獨(dú)立的程序,自己不能運(yùn)行,而需要其他模塊調(diào)用或驅(qū)動(dòng),同時(shí)被測試模塊還要去調(diào)用其他模塊,前者稱為驅(qū)動(dòng)模塊,后者稱為承接模塊。其中驅(qū)動(dòng)模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是代替被測模塊,調(diào)用其他模塊。
29.2626解析:在主函數(shù)中只調(diào)用了fun函數(shù),調(diào)用時(shí)把變量a的地址傳遞給形參。fun函數(shù)的形參x是一個(gè)指針,其基類型與主函數(shù)中a的類型一致,因此在調(diào)用時(shí)得到的是a的地址,輸出項(xiàng)是++*x,*x代表的就是主函數(shù)中變量a的存儲單元,++*x就是使主函數(shù)中a的值加1,輸出26。
30.**pa+I**p*p
31.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。
32.BB解析:因?yàn)閏是字符類型變量,它只能接收一個(gè)字符,所以c=A,字符型變量在參與算術(shù)運(yùn)算的時(shí)候是用其相應(yīng)的ASCII碼參與運(yùn)算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。
33.有效性測試有效性測試
34.實(shí)體實(shí)體解析:E-R模型中,有3個(gè)基本的抽象概念:實(shí)體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實(shí)體,菱形框表示聯(lián)系,橢圓形框表示屬性。
35.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識符(*旨針變量名)()。注:“類型標(biāo)識符”為函數(shù)返回值的類型。
36.存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間。供隊(duì)列循環(huán)使用。可知,循環(huán)隊(duì)列應(yīng)當(dāng)是物理結(jié)構(gòu)。
37.進(jìn)行寫保護(hù)進(jìn)行寫保護(hù)
38.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個(gè)為正數(shù)”,即x、y和x這3個(gè)數(shù)中必須有兩個(gè)是正數(shù),且這3個(gè)數(shù)中的哪兩個(gè)數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。
39.1717解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用,當(dāng)break出現(xiàn)在循環(huán)體中的switch語句體內(nèi)時(shí),其作用只是跳出該switch語句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語句體內(nèi)時(shí),則在執(zhí)行break后,跳出本層循環(huán)體。而continue語句的作用時(shí)結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)的條件判定。本題中首先定義了一個(gè)變量x并賦初值15,然后判斷循環(huán)條件“x>5&&x<50”,即“x>5&&x<50”,為真,執(zhí)行循環(huán)體.語句“x++;”執(zhí)行后,x的值變?yōu)?6,“X/3”的值為5為真,執(zhí)行其后的語句“x++;”,x的值變?yōu)?7,執(zhí)行語句“break”,退出循環(huán),輸出。x的值為17。
40.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
41.D
42.D解析:本題考查了求數(shù)據(jù)類型長度的運(yùn)算符sizeof和求字符串長度的函數(shù)strlen的區(qū)別。strlen計(jì)算的是一個(gè)字符串的實(shí)際字符個(gè)數(shù),如果字符串放在字符數(shù)組中,則函數(shù)strlen的值為'\\0'之前的全部字符個(gè)數(shù)。而sizeof求出的是數(shù)據(jù)占據(jù)存儲空間的字節(jié)數(shù),當(dāng)然也要包括字符串的結(jié)束標(biāo)志符'\\0'。
43.DD)【解析】二叉樹屬于非線性結(jié)構(gòu)。棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作;隊(duì)列可看作是插入在一端進(jìn)行,刪除在另一端進(jìn)行的線性表。
44.C
45.B解析:j=&i,j的值就是i的地址,*j=100,將j的地址賦給k,這時(shí)*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結(jié)果應(yīng)當(dāng)為100。
46.B解析:題目中第1條要替換的語句i1=f(2);展開后是i1=(2*M);再展開為i1=(2*N+1);最后展開為i1=(2*5/1),結(jié)果使i1=11。而第2條語句i2=f(1+1);展開后為i2=(1+1*M);再展開為i2=(1+1*N+1);最后展開為i2=(1+1*5+1),結(jié)果使i2=7。故應(yīng)該選擇B。
47.D解析:strcat(p1,p2)將字符串a(chǎn)bcABC放到了*p1所指向的存儲單元中;strcpy在本題將abcABC復(fù)制到str+2所指向的存儲單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。
48.A解析:A中sin(1/2)是0,因?yàn)?和2都是整數(shù),“/”在這里是整除。
49.C
50.A解析:通過地址來引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達(dá)式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。
51.D解析:由于20000+20000、4000*10及30000+10000都是整型表達(dá)式,故運(yùn)算的結(jié)果仍然是整型,表達(dá)式運(yùn)算的結(jié)果超出了整型數(shù)據(jù)的范圍,不正確.而D是長整型運(yùn)算,不會超出長整型的范圍。所以,4個(gè)選項(xiàng)中D為所選.
52.C
53.A解析:auto變量:無static聲明的局部變量。用auto作存儲類別的聲明時(shí),可以不寫auto,存儲類別隱含確定為auto(自動(dòng)存儲類別),是動(dòng)態(tài)存儲方式。大多數(shù)變量是自動(dòng)變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲單元空間不釋放,局部變量保留原值,下次調(diào)用時(shí)可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?實(shí)際上,關(guān)鍵字'auto'可以省略,auto不寫則隱含確定為'自動(dòng)存儲類別',屬于動(dòng)態(tài)存儲方式。
54.D自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,因此B錯(cuò)誤。笛卡兒積是用R集合中的元素為第一元素,s集合中的元素為第二元素構(gòu)成的有序?qū)?,因此C錯(cuò)誤。根據(jù)關(guān)系T可以很明顯地看出是從關(guān)系R與是系s中取得相同的關(guān)系組,所以使用的是交運(yùn)算,選擇D。
55.D解析:瀑布模型把軟件生命周期劃分為3個(gè)時(shí)期,時(shí)期又劃分為若干階段:①軟件定義期——問題定義和可行性研究;②軟件開發(fā)期——需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測試;③運(yùn)行及維護(hù)階段——維護(hù)。所以,性能優(yōu)化不是軟件開發(fā)期所應(yīng)包含的內(nèi)容。
56.B解析:本題中定義了一個(gè)結(jié)點(diǎn)structNODE,在主函數(shù)中定義了三個(gè)結(jié)點(diǎn)變量指針p、q和r,接著通過malloc函數(shù)分配了三個(gè)結(jié)點(diǎn)并讓p、q和r分別指向他們,再接著給p、q和r所指向的結(jié)點(diǎn)的num域賦值為1、2、3,然后讓結(jié)點(diǎn)p指向q,讓q指向r,r指向NULL。顯然q->next->num的值為指針r所指向結(jié)點(diǎn)的num域的值為3,p->hum的值為指針P所指向結(jié)點(diǎn)的num域的值為1,故最后輸出s的值為3+1=4。
57.AA。【解析】C語言是函數(shù)式的語言。它的基本組成單位是函數(shù),在C語言中任何程序都是由一個(gè)或者多個(gè)函數(shù)組成的。
58.C算法具有的5個(gè)特性是:有窮性、確定性、可行性、有0個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。
59.B解析:'\\0'作為標(biāo)志占用存儲空間,但是不計(jì)入串的實(shí)際長度。當(dāng)給一個(gè)字符型指針賦值時(shí),賦給這個(gè)指針的是這個(gè)字符串的地址。
60.B解析:源程序的文檔化主要包括3點(diǎn):(1)符號名應(yīng)具有一定實(shí)際的含義,便于理解程序功能:(2)正確的程序注釋;(3)良好的視覺組織。利用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦?/p>
61.C
\n因?yàn)閍>b不成立,故表達(dá)式a>b的值為0,即為0賦給m,因此&&左邊表達(dá)式的值為0,0與任何值&&運(yùn)算都為0,于是不再計(jì)算&&右邊表達(dá)式的值,所以此時(shí)的n仍然為2。
\n
62.B
63.A
64.C
65.C
66.B
67.D
\n本題考查if語句。第1個(gè)if語句,如果a<b,則a與b交換;第2個(gè)if語句,如果a<c,則a與c交換;第3個(gè)if語句,如果b<2t,則b與c交換。3個(gè)if語句結(jié)合起來實(shí)現(xiàn)的功能就是將a、b、C按從大到小排序。
\n
68.D冒泡排序(BubbleSort)的基本概念是:依次比較相鄰的兩個(gè)數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個(gè)和第2個(gè)數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個(gè)數(shù)和第3個(gè)數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個(gè)數(shù),將小數(shù)放前,大數(shù)放后。至此第一趟結(jié)束,將最大的數(shù)放到了最后。在第二趟:仍從第一對數(shù)開始比較(因?yàn)榭赡苡捎诘?個(gè)數(shù)和第3個(gè)數(shù)的交換,使得第1個(gè)數(shù)不再小于第2個(gè)數(shù)),將小數(shù)放前,大數(shù)放后,一直比較到倒數(shù)第二個(gè)數(shù)(倒數(shù)第一的位置上已經(jīng)是最大的),第二趟結(jié)束,在倒數(shù)第二的位置上得到一個(gè)新的最大數(shù)(其實(shí)在整個(gè)數(shù)列中是第二大的數(shù))。如此下去,重復(fù)以上過程,直至最終完成排序。
69.C
70.D
71.A函數(shù)fun的功能是返回字符串?dāng)?shù)組.,各個(gè)字符串第一個(gè)字母是T的個(gè)數(shù),str數(shù)組里有2個(gè),所以選擇A)。
72.D
73.B
74.Dfloat是4個(gè)字節(jié),int是兩個(gè)字節(jié)。當(dāng)用int取float的值時(shí),只取前兩個(gè)字節(jié)
75.B模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A錯(cuò)誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度,所以C與D錯(cuò)誤。故答案為B選項(xiàng)。
76.C\n一個(gè)c語言源程序至少包含一個(gè)main函數(shù)。無論main函數(shù)在程序中的位置如何,它都是C語言程序的主函數(shù),是程序執(zhí)行的入口和出口。
\n
77.C#define行為非C語句,所以沒有“;”號,%的運(yùn)算對象只能為整型,逗號運(yùn)算符的優(yōu)先級最低。
78.C函數(shù)intf(intx)是一個(gè)遞歸函數(shù)調(diào)用,
79.B本題主要考查sizeof的作用。在C語言中,sizeof用來求一個(gè)變量或者一種類型所占用的字節(jié)數(shù)。比如在TC編譯系統(tǒng)中,sizeof(int)一般是2,sizeof(float)一般是4,如果定義了一個(gè)整型數(shù)a,sizeof(a)就是sizeof(int),也就是2。從上面的例子中我們可以看出,sizeof返回的結(jié)果是一種整型數(shù)值,那么sizeof(float)應(yīng)該說是一個(gè)整型表達(dá)式。
80.A本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。
81.(1)錯(cuò)誤:fun(intn);
正確:fun(intn)
(2)錯(cuò)誤:if(n=1)
正確:if(n==1)
【解析】根據(jù)C語言的語法規(guī)則,函數(shù)定義之后是不加分號的。由整個(gè)程序看,函數(shù)fun()是函數(shù)定義。因此“fun(intn);”應(yīng)改為“fun(intn)”;表達(dá)式n-1表示的是將1賦給變量n,顯’然是不對的。這里應(yīng)該判斷變量n是否等于l,因此“if(n=1)”應(yīng)改為“if(n==1)”。
82.\n\tvoidproc(char*str)\n\n\n\t{\n\n\n\tchar*p=str:\n\n\n\twhile(*p==*)p++;//通過P的移動(dòng)來達(dá)\n\n\n\t到使P指向第一個(gè)不是*號的字符\n\n\n\tfor(;*p!=\0
;p++,str++)//把從第一個(gè)\n\n\n\t不是*號的字符放到a中‘\n\n\n\t*str=*P:\n\n\n\t*str=\0
;//最后用\0作為字符串結(jié)束標(biāo)志\n\n\n\t}\n\n\n\t【解析】題目中要求將字符串中的前導(dǎo)*號全部刪除首先將指針p移動(dòng)到第一個(gè)不是*的字符,將指針P之后的字符放入原來的字符串中,并為新的字符串添加結(jié)束符。\n2022-2023年福建省三明市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.設(shè)a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式為()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
2.有以下程序main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]'0';printf("%d\n",n);}編譯連接后生成可執(zhí)行文件tt.exe。若運(yùn)行時(shí)輸入以下命令行tt12345678程序運(yùn)行后的輸出結(jié)果是A.12B.12345C.12345678D.136
3.需求分析階段的任務(wù)是確定()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能
4.設(shè)有一個(gè)棧,元素依次進(jìn)棧的順序?yàn)锳、B、C、D、E。下列()是不可能的出棧序列。
A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A
5.有以下程序:main(){intx[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結(jié)果是()。
A.隨機(jī)值B.0C.5D.6
6.以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=d;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
7.以下敘述中正確的是()。
A.在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面
B.每個(gè)后綴為C的C語言源程序都可以單獨(dú)進(jìn)行編譯
C.在C語言程序中,只有main函數(shù)才可單獨(dú)進(jìn)行編譯
D.每個(gè)后綴為.C的C語言源程序都應(yīng)該包含一個(gè)main函數(shù)
8.在面向?qū)ο蠓椒ㄖ校粋€(gè)對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
9.
10.利用E-R模型進(jìn)行數(shù)據(jù)庫的概念設(shè)計(jì),可以分成3步:首先設(shè)計(jì)局部E-R模型,然后把各個(gè)局部E-R模型綜合成一個(gè)全局的模型,最后對全局E-R模型進(jìn)行(),得到最終的E-R模型。
A.簡化B.結(jié)構(gòu)化C.最小化D.優(yōu)化
11.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運(yùn)行維護(hù)過程
12.數(shù)據(jù)結(jié)構(gòu)中,在邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成()。
A.動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
13.下列關(guān)于線性表的敘述中,不正確的是()
A.線性表可以是空表
B.線性表是一種線性結(jié)構(gòu)
C.線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件
D.線性表是由n個(gè)元素組成的一個(gè)有限序列
14.
15.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是______。A.21,43B.43,21C.43,00D.21,00
16.可用作C語言用戶標(biāo)識符的一組標(biāo)識符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof
17.
18.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序運(yùn)行后輸出的結(jié)果是()。A.246810B.13579C.12345D.678910
19.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.6,5,4,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,4,5,6,
D.1,2,3,6,5,4,
20.面向?qū)ο蠓椒ㄖ校^承是指()。
A.一組對象所具有的相似性質(zhì)B.一個(gè)對象具有另一個(gè)對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機(jī)制
二、2.填空題(20題)21.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
22.下述程序的輸出結(jié)果是【】。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0||x==1)
return3;
else
p=x-fun(x-2);
returnp;}
voidmain()
{printf("\n%d",fun(9));}
23.以下程序運(yùn)行后的輸出結(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):}
24.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
25.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
26.下列程序的運(yùn)行結(jié)果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
27.函數(shù)fun的功能是計(jì)算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已經(jīng)正確定義變量m,a,b并賦值,要調(diào)用函數(shù)fun計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。
28.在進(jìn)行模塊測試時(shí),要為每個(gè)被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
29.下面程序的運(yùn)行結(jié)果是()。
#include<stdio.h>
main()
{inta=25;
fun(&A);
}
fun(int*x)
{printf("%d\n",++*x);
}
30.輸出指針數(shù)組各元素所指的整數(shù)值和它存放的地址值。
#include<stdio.h>
main()
{inti;
inta[5]={1,3,5,7,9};
int*num[5];
int【】;
for(i=0;i<5;i++)
num[i]=【】;
p=num+0;
for(i=0;i<5;i++)
{printf("%d%d\n",【】);
p++;
}
}
31.以下程序的作用是:從名為filea.dat的文本文件中逐個(gè)讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
32.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運(yùn)行時(shí),如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。
33.對軟件是否能達(dá)到用戶所期望的要求的測試稱為【】。
34.在E-R圖中,矩形表示【】。
35.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)。
36.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。
37.防止軟盤感染病毒的最有效的方法是【】。
38.x、y、x均為int型變量,描述“x、y和z中至少有兩個(gè)為正數(shù)”的表達(dá)式是______。
39.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
intx=15;
while(x>10&&x<50)
{
x++;
if(x/3){x++;break;}
elsecontinue;
}
printf("%d\n",x);
}
40.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
三、1.選擇題(20題)41.有以下程序段main(){chara[7]="abcdef";charb[4]="ABC";strcpy(a,b);printf("%c",a[5]);}程序段運(yùn)行后的輸出結(jié)果是()
A.aB.\0C.eD.f
42.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\b",i,j);}程序運(yùn)行后的輸出結(jié)果是
A.9,9B.8,9C.1,8D.9,8
43.以下數(shù)據(jù)結(jié)構(gòu)中,屬于非線性數(shù)據(jù)結(jié)構(gòu)的是()
A.棧B.線性表C.隊(duì)列D.二叉樹
44.若有“doublea;”,則正確的輸入語句是()。
A.scanf("%1f",A);
B.scanf("%f",&A);
C.scanf("%1f",&A);
D.scanf("%1e",A);
45.設(shè)有如下程序#inclide<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n,"**k);}上述程序的輸出結(jié)果是______。
A.運(yùn)行錯(cuò)誤B.100C.i的地址D.j的地址
46.有以下程序:#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2);i2=f(1+1);printf("%d%d\n",i1,i2);}程序的運(yùn)行結(jié)果是()。
A.1212B.117C.1111D.127
47.以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz",strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}的輸出是______。
A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC
48.以下不能正確計(jì)算代數(shù)式sin2()值的C語言表達(dá)式是()。
A.1/3*sin(1/2)*sin(1/2)
B.sin(0.5)*sin(0.5)/3
C.pow(sin(0.5),2)/3
D.1/3.0*pow(sin(1.0/2),2)
49.下列程序的輸出結(jié)果是______。main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}
A.0B.0.25C.0.5D.1
50.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
51.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦40000的正確語句是
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*1OL;
52.經(jīng)下列語句定義后,sizeof(x)、sizeof(y)、sizeof(a)、sizeof(b)在IBM-PC機(jī)上的值分別為______。charx=65;floaty=7.3;inta=100;doubleb=4.5;
A.2,2,2,4B.1,2,2,4C.1,4,2,8D.2,4,2,8
53.在c語言中,變量的隱含存儲類別是()。
A.autoB.staticC.externD.無存儲類別
54.有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和s通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。
A.并B.自然連接C.笛卡兒積D.交
55.軟件生命周期一般包括:軟件計(jì)劃期、開發(fā)期和軟件運(yùn)行期。因此,在下述項(xiàng)目中,______不是軟件開發(fā)期的內(nèi)容。
A.需求分析B.結(jié)構(gòu)設(shè)計(jì)C.程序編制D.性能優(yōu)化
56.有以下程序
#inGlude<stdlib.h>
structNODE{
intnum;
structNODE*next;
}
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(stnlctNODE*)malloc(sizeof(structNODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next;r;r->next=NULL;
sum+=q->next->Num,sum+=p->num;
printf("%d\n",sum);
}
執(zhí)行后輸出結(jié)果是
A.3B.4C.5D.6
57.C語言的基本單位是()。
A.函數(shù)B.過程C.子程序D.子函數(shù)
58.以下敘述中正確的是
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
59.下列關(guān)于字符串的說法中錯(cuò)誤的是
A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符′\0′作為字符串結(jié)束標(biāo)志
B.′\0′作為標(biāo)志占用存儲空間,計(jì)入串的實(shí)際長度
C.在表示字符串常量的時(shí)候不需要人為在其末尾加入′\0′
D.在C語言中,字符串常量隱含處理成以′\0′結(jié)尾
60.源程序的文檔化不包括()。
A.符號名的命名要有實(shí)際意義B.正確的文檔形式C.良好的視覺組織D.正確的程序注釋
四、選擇題(20題)61.
設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m=a>b)&&(n—c>d)運(yùn)算后,n的值是()n
A.0B.1C.2D.3
62.
63.
64.
65.(46)面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的的面向過程的方法有本質(zhì)不同,它的基本原理是()
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題
D.鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用實(shí)際領(lǐng)域的概念去思考
66.
67.
運(yùn)行下列程序時(shí),若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。
main
{floata,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a<b)
{t=a;a=b.b=t;)
if(a<c)
{t=a;a=c;c=t;)
it(b<c)
{t=b;b=C;c—=;)
printf("%f\n%f\n%f\n",a,b,c);
}
A.1.002.003.00
B.1.003.002.00
C.132
D.3.000002.000001.00000
68.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
69.
70.(50)數(shù)據(jù)庫概念設(shè)計(jì)的過程中,視圖設(shè)計(jì)一般有三種設(shè)計(jì)次序,以下各項(xiàng)中不對的是()
A.自頂向下
B.由底向上
C.由內(nèi)向外
D.由整體到局部
71.有以下程序
72.
73.
74.有以下程序,其輸出結(jié)果是()。
voidmain()
{
floarx=1;
inty;
x++;
y=x+1;
printf("x=%d,y=%f",x,y);
}
A.x=2,y=3
B.x=2,y=3.0
C.x=2.0,y=3
D.x=0,y=0.000000
75.耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
76.以下敘述中正確的是()。
A.c語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行
B.可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行
C.c語言規(guī)定必須用main作為主函數(shù)名,程序從此開始執(zhí)行,在此結(jié)束
D.main作為用戶標(biāo)識符,用以命名任意一個(gè)函數(shù)作為主函數(shù)
77.以下敘述中正確的是()。
A)C程序中的#include和#define行均是C語句,只是語法不同
B)除賦值運(yùn)算符外,逗號運(yùn)算符的優(yōu)先級最低
C)C程序中,j++;是賦值語句
D)C程序中,+、-、*、/、%號是算數(shù)運(yùn)算符,可用于整型和實(shí)型數(shù)的運(yùn)算
78.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.0B.9C.6D.8
79.sizeof(float)是
A.一個(gè)雙精度表達(dá)式B.一個(gè)整型表達(dá)式
C.一種函數(shù)調(diào)用D.一個(gè)不合法的表達(dá)式
80.若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。#include#includemain{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.A.-1B.0C."abcdef"D."abdef"
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是按以下遞歸公式求函數(shù)值。例如,當(dāng)給n輸入3時(shí),函數(shù)值為60;當(dāng)給n輸入6時(shí),函數(shù)值為480。請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。注意:部分源程序給出如下。請勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
參考答案
1.D
2.D解析:運(yùn)行時(shí)輸入該命令后,參數(shù)argc的值為4,字符串?dāng)?shù)組argv[1]、argv[2]、argv[3]分別為“12”、“345”、“678”,然后取這3個(gè)參數(shù)的第一個(gè)字符,將其轉(zhuǎn)化成原來的數(shù)字并組合成一個(gè)新的三位數(shù)。
3.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書
評析,需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項(xiàng)A)軟件開發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B)軟件開發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù):選項(xiàng)C)軟件開發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。
4.C
5.B解析:通過賦值語句“s=x+3”,使指針變量s指向數(shù)組元素x[3],輸出語句中
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四年級數(shù)學(xué)幾百幾十?dāng)?shù)乘以一位數(shù)同步作業(yè)習(xí)題大全附答案
- 2024年度江西省國家保安員資格考試模擬考核試卷含答案
- 出口貿(mào)易保證金協(xié)議書
- 放射性核素治療課件
- 《蛋白質(zhì)組學(xué)》課件
- 《居家護(hù)理》課件
- 現(xiàn)代漢語動(dòng)詞課件
- 《病句修改訓(xùn)練》課件
- 《屋頂花園開題報(bào)告》課件
- 烏海市重點(diǎn)中學(xué)2025屆中考生物五模試卷含解析
- 2025版工業(yè)制造工程墊資建設(shè)合同2篇
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之4:4組織環(huán)境-4.2理解相關(guān)方的需求和期望(雷澤佳編制-2025B0)
- 2024年一級支行行長競聘演講稿例文(4篇)
- 健身房銷售人員培訓(xùn)
- 菌種保存管理
- 廣東省廣州市2022-2023學(xué)年高二上學(xué)期期末考試化學(xué)試題
- 期末測試卷(試題)-2024-2025學(xué)年四年級上冊數(shù)學(xué)滬教版
- 中考必備高頻詞匯2600詞(單詞版)
- GB∕T 27552-2021 金屬材料焊縫破壞性試驗(yàn) 焊接接頭顯微硬度試驗(yàn)
- 外貿(mào)中常見付款方式的英文表達(dá)及簡要說明
- 抗壓偏壓混凝土柱承載力計(jì)算表格
評論
0/150
提交評論