版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022年安徽省安慶市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}
A.3B.3.2C.0D.3.07
2.下面敘述中錯(cuò)誤的是()。
A.軟件測試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤
B.對被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟
C.程序調(diào)試通常也稱為Debug
D.軟件測試應(yīng)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性
3.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.357B.753C.369D.751
4.在單鏈表中,增加頭結(jié)點(diǎn)的目的是______。
A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說明單鏈表是線性表的鏈?zhǔn)酱鎯?shí)現(xiàn)
5.
6.在一個(gè)有頭結(jié)點(diǎn)的鏈隊(duì)列中,假設(shè)f和r分別為隊(duì)首和隊(duì)尾指針,則隊(duì)頭出隊(duì)的運(yùn)算是()。
A.q=f->next;f->next=f->next->next;free(q);
B.q=f;f->next=f->next->next;free(q);
C.f->next=f->next->next;q=f->next;free(q);
D.q=f->next->next;f=f->next;free(q);
7.某二叉樹結(jié)點(diǎn)的中序序列為ABCDEFG,后序序列為BDCAFGE,則其左子樹中結(jié)點(diǎn)數(shù)目為()
A.3B.2C.4D.5
8.下列不屬于軟件工程的3個(gè)要素的是
A.工具B.過程C.方法D.環(huán)境
9.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
10.若k是int類型變量,且有以下for語句:for(k=-1;k<O;k++)printf("****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。、A.循環(huán)體執(zhí)行一次B.循環(huán)體執(zhí)行兩次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)
11.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf(“*”);程序段的運(yùn)行結(jié)果是()。
A.**B.****C.*D.********
12.以下程序的輸出結(jié)果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147
13.樹最適合用來表示()。
A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關(guān)系的數(shù)據(jù)D.元素之間無聯(lián)系的數(shù)據(jù)
14.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。
A.EOFB.-1C.非零值D.0
15.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是()。
A.i-1B.iC.i+1D.4一i
16.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用冒泡排序時(shí),第一趟掃描結(jié)果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
17.
18.以下程序的輸出結(jié)果是
#include<stdio.h>
voidprt(int*x,int*y,int*z)
{printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{inta=10,b=40,c=20;
prt(&a,&b,&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,21
D.11,41,2112,42,22
19.以下程序的輸出結(jié)果是().A.A.2222B.2468C.222D.246
20.下列敘述中正確的是()。
A.對長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n
B.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為n/2
C.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為log2n
D.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為nlog2n
二、2.填空題(20題)21.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。
#definePI3.14159;printf("PI=%f",PI);
22.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個(gè)雙精度型的動(dòng)態(tài)存儲單元______。
23.下面程序把從終端讀入的文本(用#作為文本結(jié)束標(biāo)志)復(fù)制到一個(gè)名為file.txt的新文件中。補(bǔ)足所缺語句。
main()
{charch;
FILE*fp;
if((fp=fopen(______))=NULL)exit(0);
while((ch=getchar())!='#')
fputc(ch,fp);
______;
}
24.實(shí)現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。
25.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
26.若有定義:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[2][2]得到的初值是______。
27.需求分析的最終結(jié)果是產(chǎn)生【】。
28.以下程序運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{intfun();fun();}
fun()
{staticinta[3]={0,1,2};
inti;
for(i=0;i<3;i++)a[i]+=a[i];
for(i=0;i<3;i++)printf("%d,",a[i]);
printf("\n");}
29.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
30.執(zhí)行下面程序段后,k值是【】。
k=1;n=263;
do
{k*=n%10;n/=10;
}while(n);
31.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為【】。
32.為了建立如圖所示的存儲結(jié)構(gòu)(即每個(gè)結(jié)點(diǎn)含兩個(gè)域,data是數(shù)據(jù)域,next是指向結(jié)點(diǎn)的指針域)。請?zhí)羁铡?/p>
structlink{chardata;【】;}node;
33.程序的運(yùn)行結(jié)果為【】。
main()
{intx,y,z;
x=24;
y=024;
z=0x24;
printf("%d,%d,%d\n",x,y,z);
}
34.下列程序的循環(huán)次數(shù)是______。
x=2;
do
{x=x*x;}
while(!x);
35.棧中允許進(jìn)行插入和刪除的一端叫做______。
36.以下程序的輸出結(jié)果是()。
#include<stdio.h>
voidfun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
37.下列程序的輸出結(jié)果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
38.設(shè)有定義:FILE*fw;,請將以下打開文件的語句補(bǔ)充完整,以便可以向文本文件readme.txt的最后續(xù)寫內(nèi)容。
fw=fopen("readme.txt",【】);
39.下面程序的運(yùn)行結(jié)果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
40.若有語句
inti=-19,j=i%4;
printf("%d\n",j),
則輸出的結(jié)果是______。
三、1.選擇題(20題)41.請選出以下程序的輸出結(jié)果_______。#include<stdio.h>sub(int*s,inty){staticintt=3,y=s[t];t-;}main(){inta[]={1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}
A.1234B.4321C.0D.4444
42.______語言負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。
A.數(shù)據(jù)操縱語言(DML)B.數(shù)據(jù)控制語言(DCL)C.結(jié)構(gòu)化查詢語言(SQL)D.數(shù)據(jù)定義語言(DDL)
43.若有運(yùn)算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(由高至低)的正確排列順序?yàn)?)。
A.%、sizeof、>、<<、=
B.sizeof、%、>、=、<<
C.sizeof、<<、>、%、=
D.sizeof、%、<<、>、=
44.有以下程序:#include<sldio.h>main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是()。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
45.對于n個(gè)結(jié)點(diǎn)的單向鏈表(無表頭結(jié)點(diǎn)),需要指針單元的個(gè)數(shù)至少為______。
A.n-1B.nC.n+1D.2n
46.若有以下定義語句:doublea[5];inti=0;能正確給a數(shù)組元素輸入數(shù)據(jù)的語句是()
A.scanf("%lf%lf%lf%lf%lf,a);
B.for(i=0;i<=5;i++)scanf("%lf,a+i);
C.while(i<5)scanf("%lf",&a[i++]);
D.while(i<5)seanf("%lf,a+i);
47.若調(diào)用fputc函數(shù)輸出字符成功,則其返回值是()。
A.EOFB.1C.0D.輸出的字符
48.若有如下程序:intm=1;main(){intt=0,s=0;{intm=4;s+=m;)t+=m;printf("%d,%d\n",s,t);}則程序運(yùn)行后的輸出結(jié)果是()。
A.1,1B.1,4C.4,1D.4,4
49.若有語句:char*line[5];,以下敘述中正確的是
A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char的指針變量
B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長度為5的字符型數(shù)組
C.定義line是一個(gè)指針數(shù)組,語句中的。號稱為間址運(yùn)算符
D.定義line是一個(gè)指向字符型函數(shù)的指針
50.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是()。
A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,
51.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運(yùn)行結(jié)果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤
D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則
52.字符串"\\\"ABCDEF\"\\"的長度是()。
A.15B.10C.7D.8
53.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))}break;printf("%d\n",i*i);}
A.49B.36C.25D.64
54.執(zhí)行下面的程序段后,變量k中的值為()。intk=3,s[2];s[0]=k;k=s[1]*10;
A.不定值B.33C.30D.10
55.若有定義血b[8],*p=b;則p+6表示()。
A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6
56.在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A.概要設(shè)計(jì)B.詳細(xì)設(shè)計(jì)C.可行性分析D.需求分析
57.有以下程序,其中函數(shù)的功能是將多個(gè)字符串按字典順序排序:#include<string.h>voidf(char*p[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j]p[j]=t;}}main(){char*p[5]={"abc","aabdfg","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[1]));}程序運(yùn)行后的輸出結(jié)果是______。
A.2B.3C.6D.4
58.在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()。
A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結(jié)構(gòu)應(yīng)有助于讀者理解
59.用樹形結(jié)構(gòu)來表示實(shí)體之間聯(lián)系的模型稱為()。
A.關(guān)系模型B.層次模型C.網(wǎng)狀模型D.數(shù)據(jù)模型
60.以下程序的輸出結(jié)果是______。main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}
A.x=4B.x=8C.x=6D.x=12
四、選擇題(20題)61.有以下程序:
#include<stdio.h>
main
{shortC=124;
C=C_;
printf("%d\n",c);
}
若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是()。
A.>>2
B.|248
C.&0248
D.<<1
62.以下不構(gòu)成無限循環(huán)的語句或語句組是()。
63.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.32B.16C.1D.0
64.在滿足實(shí)體完整性約束的條件下()。
A.一個(gè)關(guān)系中應(yīng)該有一個(gè)或多個(gè)候選關(guān)鍵字
B.一個(gè)關(guān)系中只能有一個(gè)候選關(guān)鍵字
C.一個(gè)關(guān)系中必須有多個(gè)候選關(guān)鍵字
D.一個(gè)關(guān)系中可以沒有候選關(guān)鍵字
65.若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語句中錯(cuò)誤的是()。
66.若有以下定義和語句:
chars[10]="abcd!",*s2="\nl23\\";
Drintf("%d%d\n",strlen(sl),strlen(s2));
則輸出結(jié)果是()。
A.55B.105C.107D.58
67.
68.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
69.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1.1.3B.2,2,3C.1,2,3D.3,3,3
70.(21)算法的空間復(fù)雜度是指______。
A.算法程序的長度
B.算法程序中的指令條數(shù)
C.算法程序所占的存儲空間
D.算法執(zhí)行過程中所需要的存儲空間
71.
72.
73.
74.
75.
76.以下敘述中錯(cuò)誤的是()。
A.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的
B.預(yù)處理命令行的最后不能以分號表示結(jié)束
C.#defineMAX是合法的宏定義命令行
D.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行
77.以下敘述中正確的是()。A.A.當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
B.打開一個(gè)已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個(gè)程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個(gè)數(shù)據(jù)
D.c語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
78.
79.在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是
A.連接B.選擇C.投影D.笛卡兒乘積
80.下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:在字符串str中找出ASCⅡ碼值最大的字符,將其放在第一個(gè)位置上,并將該字符前的原字符向后順序移動(dòng)。例如,調(diào)用proc()函數(shù)之前給字符串輸入DcybkdGT,調(diào)用后字符串中的內(nèi)容為yDcbkdOT。
請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)其功能是移動(dòng)一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)為0~p(含p,p小于等于n-1)的數(shù)組元素平移到數(shù)組的最后。例如,一維數(shù)組中的原始內(nèi)容為1、2、3、4、5、6、7、8、9、10;P的值為3。移動(dòng)后,一維數(shù)組中的內(nèi)容應(yīng)為5、6、7、8、9、10、1、2、3、4。注意:部分源程序給出如下。請勿改動(dòng)主函數(shù)main()和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN80voidfun(int*w,intp,intn){}main(){ inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; inti,p,n=15; printf(“Theoriginaldata:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\nEnterp:”); scanf(“%d”,&p); fun(a,p,n); printf(“\nThedataaftermoving:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\n”);}
參考答案
1.C
2.A軟件測試的目的是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,并不涉及改正錯(cuò)誤,所以選項(xiàng)A錯(cuò)誤。程序調(diào)試的基本步驟有:錯(cuò)誤定位、修改設(shè)計(jì)和代碼,以排除錯(cuò)誤、進(jìn)行回歸測試,防止引進(jìn)新的錯(cuò)誤。程序調(diào)試通常稱為Debug,即排錯(cuò)。軟件測試的基本準(zhǔn)則有:所有測試都應(yīng)追溯到需求、嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應(yīng)避免檢查自己的程序、窮舉測試不可能、妥善保存測試計(jì)劃等文件。故答案為A選項(xiàng)。
3.A本題考查的是for循環(huán)與二維數(shù)組的定義和引用。當(dāng)定義二維數(shù)組的初始化列表只使用一重花括號時(shí),其中的每個(gè)值依次代表從第l行的第1個(gè)元素起,直到第l行滿,接著代表第2行、第3行……的每一個(gè)元素。程序中的循環(huán)將循環(huán)3次,循環(huán)變量i的值分別是0、1、2,所以3次循環(huán)中輸出的數(shù)分別是:t[2一O][D]、t[2-1][1]、t[2~2]121,即t[2][0]、t[1][l]、t[0][2],所以最后輸出的結(jié)果為357。故應(yīng)該選擇A)。
4.A\nA。【解析】頭結(jié)點(diǎn)不僅標(biāo)識了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個(gè)鏈表,因此增加頭結(jié)點(diǎn)的目的是為了便于運(yùn)算的實(shí)現(xiàn)。
\n
5.D
6.A
7.C
8.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制和管理。
9.B解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。
數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還心須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡(luò)系統(tǒng)軟件的支持。因此,選項(xiàng)A的說法是錯(cuò)誤的。
數(shù)據(jù)庫可以看成是長期存儲在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點(diǎn)。不同的用戶可以使用同一個(gè)數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項(xiàng)B的說法是正確的。
通常將引入數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個(gè)數(shù)據(jù)庫系統(tǒng)通常由五個(gè)部分組成,包括相關(guān)計(jì)算機(jī)的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關(guān)軟件和人員。
因此,選項(xiàng)C的說法是錯(cuò)誤的。
因此,本題的正確答案是選項(xiàng)B。
10.A本題考查簡單的for語句,程序中當(dāng)k<0時(shí)循環(huán)才執(zhí)行,所以答案選擇A。
11.C因?yàn)閮?nèi)層循環(huán)“for(k=1;k<3;k++)”后面直接跟了空語句“;”,所以在循環(huán)內(nèi)部什么操作也不做,跳出外層循環(huán)后執(zhí)行printf語句,輸出一個(gè)“*”。故本題答案為C選項(xiàng)。
12.B第一個(gè)for循環(huán)的作用是讓p指向每行的首地址,第二個(gè)for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項(xiàng)。
13.C樹最適合用來表示元素之間具有分支層次關(guān)系的數(shù)據(jù),故本題選C。
14.D解析:文件狀態(tài)檢測函數(shù)feof(fp)的功能是:測試所指的文件的位置指針是否已達(dá)到文件尾,如果已到達(dá)文件尾,則函數(shù)返回非。值;否則返回0,表示文件尚未結(jié)束。
15.B
\n本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標(biāo)相同,所以j=i。
\n
16.D
17.B
18.B解析:考查指針作為參數(shù)的函數(shù)調(diào)用。盡管C語言以傳值方式進(jìn)行函數(shù)調(diào)用,但也可以通過傳遞指針的值(變量的地址)來達(dá)到修改實(shí)參變量值的目的,這是此題主要說明的問題。另外,應(yīng)注意表達(dá)式\ue008*(z++)\ue009的值是*z,其后的z++在程序中無實(shí)際作用。函數(shù)調(diào)用時(shí),由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次調(diào)用函數(shù)時(shí),*x=a=10,*y=b=40,*z=c=20輸出結(jié)果為11,41,20,至此,已經(jīng)可以肯定選項(xiàng)B)是正確的。在第一次輸出后,a=11,b=41,c=20,第二次輸出為:12,42,20。
19.D
20.C\n\tC?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序表,對于長度為n的有序線性表,最壞情況只需比較log2n次。
21.PI=3.14159PI=3.14159解析:本題先定義了一個(gè)宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進(jìn)行替換的。
22.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個(gè)參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標(biāo)準(zhǔn)的調(diào)用形式應(yīng)該寫成:
p(double*)malloc(sizeof(double));
23.file.txt"w"fclose(fp)。file.txt,'w'fclose(fp)。解析:向文件中寫數(shù)據(jù),并且該文件是新文件,應(yīng)當(dāng)使用文件打開方式'w',文件操作結(jié)束時(shí)要用函數(shù)fclose關(guān)閉文件,以防數(shù)據(jù)丟失。
24.空間復(fù)雜度和時(shí)間復(fù)雜度算法的復(fù)雜性是指對一個(gè)在有限步驟內(nèi)終止算法和所需存儲空間大小的估計(jì)。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計(jì)算量是算法的時(shí)間復(fù)雜性。
25.a=2b=3a=2,b=3解析:分析程序,程序從x=1語句開始執(zhí)行,之后執(zhí)行第一個(gè)switch語句,switch(x)=switch(1),所以執(zhí)行case1,case1語句中包含一個(gè)復(fù)合switch語句:這時(shí)執(zhí)行第二個(gè)switch語句,此時(shí)y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個(gè)switch語句,則整個(gè)case1的復(fù)合語句執(zhí)行完畢,由于在這個(gè)case1的后面沒有break語句使其退出第一個(gè)switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a,b各加1,得到a=2,b=3。
26.88解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有4個(gè)元素,a[0]的元素為ap[0][0]、a[0][1]、a[0][2]、a[0][3]。
27.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗(yàn)證性、一致性、可理解性、可修改性和可追蹤性等。
28.0240480,2,4\r\n0,4,8解析:本題主要考查了for循環(huán)語句的使用以及靜態(tài)局部變量的特點(diǎn)。
29.軟件開發(fā)
30.3636解析:本題循環(huán)體共執(zhí)行了3次。第一次:k=3,n=26:第二次:k=18,n=2;第三次:k=36,n=0。
31.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用以及維護(hù)等活動(dòng)。
32.structlink*next
33.242036
34.11解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán);do…while語句的特點(diǎn)是先執(zhí)行后判斷,因此循環(huán)體至少執(zhí)行1次.本程序中x=2不符合循環(huán)條件,所以只循環(huán)1次。
35.棧頂棧頂解析:棧是限定在表的一端進(jìn)行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
36.1313解析:函數(shù)fun是一個(gè)遞歸函數(shù)。執(zhí)行fun(3);,x=3,x/2=1>0,又調(diào)用f(1),此時(shí),x=1,x/2=0,不滿足繼續(xù)遞歸調(diào)用的條件,輸出1,返回到fun(3)中,輸出3。所以本題的輸出結(jié)果為13。
37.88解析:本程序定義了3個(gè)指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達(dá)式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(P)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。
38.aa解析:本題考查的是文件的打開方式。要向文本文件的末尾續(xù)寫內(nèi)容,需要使用方式“a”(追加)打開文件。
39.3535解析:在主函數(shù)中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用“swap(p,q)”,把p和q中的地址值傳給了形參指針變量a和b,a和b分別指向7實(shí)參x和y。在函數(shù)swap()中交換了指針變量a和b的值,并沒有交換a和b指向的實(shí)參的值,所以函數(shù)調(diào)用返回后x和y依舊是原來的值。
40.-3-3解析:本題考核的知識點(diǎn)是運(yùn)算符“%’的應(yīng)用。該運(yùn)算符是求兩個(gè)數(shù)相除的余數(shù),其結(jié)果與被除數(shù)的符號一致,本題中“-19%4”的值為“-3”,所以說空格處應(yīng)該填-3。
41.C解析:x作為函數(shù)sub()的實(shí)參時(shí),函數(shù)對x值的改變沒有返回主函數(shù),并不能使得x的值變化,所以在打印時(shí),x的值是始終不變的,即為0。
42.D解析:數(shù)據(jù)庫管理系統(tǒng)一般提供以下3種數(shù)據(jù)語言(DataLanguage),來完成它的功能。(1)數(shù)據(jù)定義語言(DDL,DataDefinitionLanguage)。該語言負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。顯然D為正確答案。(2)數(shù)據(jù)操縱語言(DML,DataManipulationLanguage)。該語言負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作。(3)數(shù)據(jù)控制語言(DCL,DataControlLanguage)。該語言負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能,包括系統(tǒng)初啟程序、文件讀寫與維護(hù)程序、存取路徑管理程序、緩沖區(qū)管理程序、安全性控制程序、完整性檢查程序、并發(fā)控制程序、事務(wù)管理程序、運(yùn)行日志管理程序、數(shù)據(jù)庫恢復(fù)程序等。
43.D解析:主要考查運(yùn)算符的優(yōu)先級。sizeof的優(yōu)先級最高,后面的順序是:%、<<、>,優(yōu)先級最低的是“=”。
44.B解析:當(dāng)x=0,y=5,z=3時(shí),z->0&&++x<5成立,執(zhí)行y=y-1;此時(shí)y=5-1=4,z=z-1=2,x=x+1=1;條件z-->0&&++x<5仍然成立,繼續(xù)執(zhí)行y=y-1,此時(shí)y=y-1=3,z=1,x=2;條件z-->0&&++x<5仍然成立,繼續(xù)執(zhí)行y=y-1,此時(shí)y=y-1=2,z=0,x=3;條件不再成立,執(zhí)行條件判斷后x=3,y=2,z=-1。
45.C解析:在n個(gè)結(jié)點(diǎn)的單向鏈表(無表頭結(jié)點(diǎn))中,每個(gè)結(jié)點(diǎn)都有一個(gè)指針單元(即指針域),加上頭指針,至少需要n+1個(gè)指針單元。
46.C
47.Dfputc函數(shù)的一般調(diào)用形式為fputc(ch,fp),其中ch是要輸出的字符,它可以是一個(gè)字符常量,也可以是一個(gè)字符變量,fp是文件指針變量。函數(shù)的作用是將字符(ch的值)輸出到fp所指向的文件中。
fputc函數(shù)也返回一個(gè)值,如果輸出成功,則返回值就是輸出的字符;如果輸出失敗,則返回一個(gè)EOF(-1)。因此,本題的正確答案選D。
48.C解析:{intm=4;s+=m;}是復(fù)合語句,m=4,s+=m等價(jià)于s=s+m=0+4=4。t+=m等價(jià)于t=t+m,這里m為全局變量,值為1,t=t+m=O+1=1。
49.A解析:C語言中[]比*優(yōu)先級高,因此line先與[5]結(jié)合,形成line[5]形式,這是數(shù)組形式,它有5個(gè)元素,然后再與line前面的“*”結(jié)合,表示此數(shù)組是一個(gè)指針數(shù)組,每個(gè)數(shù)組元素都是一個(gè)基類型為char的指針變量。
50.A解析:在C語言中所謂函數(shù)的遞歸是指在調(diào)用一個(gè)函數(shù)的過程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用。由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是當(dāng)i<j時(shí),將數(shù)組中的元素a[i]和a[j]交換,然后再調(diào)用函數(shù)f(a,i+1,j-1),將數(shù)組中a[i+1]和a[j--]交換,這樣一直遞歸到數(shù)組下標(biāo)i=j,可見該遞歸函數(shù)的作用是使數(shù)組中首尾元素依次互換。主函數(shù)中定義了一個(gè)長度為5的數(shù)組aa并初始化,然后調(diào)用f(a,0,4),將數(shù)組a中的元素依次互換,故最后for循環(huán)輸出的數(shù)組aa中各元素的值為5、4、3、2、1,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
51.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;一個(gè)好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的用例;一個(gè)成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤。本題答案為C。
52.B解析:本題涉及字符串最基本的兩個(gè)概念:①字符串的長度是指字符串中字符的個(gè)數(shù),但不包括字符串結(jié)束符;②以反斜杠“\\”開頭的特殊字符序列,意思是把反斜杠后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\\”連同后面的字符為一個(gè)長度。
53.C解析:本題考查if語句。當(dāng)執(zhí)行到第一個(gè)滿足(i*i>=20)&&(i*i<=100)這個(gè)條件的i出現(xiàn)時(shí),通過break語句跳出循環(huán),執(zhí)行下列的printf語句。
54.A解析:定義數(shù)組時(shí),沒有對s[1]進(jìn)行初始化,因此s[1]的值不確定,所以k=s[1]*10的值也不確定。
55.B解析:指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是一個(gè)存儲單元,而不是一個(gè)字節(jié)。所以題中將p+6指的是將指針向后移動(dòng)了6個(gè)存儲單元,指向b[6],存放的是b[6]的地址。
56.D通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。
軟件生命周期的主要活動(dòng)階段為:
①可行性研究和計(jì)劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實(shí)施計(jì)劃。
②需求分析。對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件,規(guī)格說明書及初步的用戶手冊,提交評審。
③軟件設(shè)計(jì)。系統(tǒng)設(shè)計(jì)人員和程序設(shè)計(jì)人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。
④軟件實(shí)現(xiàn)。把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計(jì)劃。
⑤軟件測試。在設(shè)計(jì)測試用例的基礎(chǔ)上,檢驗(yàn)軟件的各個(gè)組成部分。編寫測試分析報(bào)告。
⑥運(yùn)行和維護(hù)。將已交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。
57.D解析:strcmp(s1,s2)是比較兩個(gè)字符串的大小,s1>s2時(shí)值為正數(shù),s1<s2時(shí)值為負(fù)數(shù),s1=s2時(shí)值為0。調(diào)用f(p,5)函數(shù)的功能是將存儲字符串的數(shù)組p中的字符串從小到大進(jìn)行排列。最后的排列結(jié)果為:p[5]={'aabdfg','abbd','abc','cd','dcdbe'},最后要求輸出的是'abbd'的長度。
58.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項(xiàng)A)不選;注解行有利于對程序的理解,不應(yīng)減少或取消,選項(xiàng)B)也不選;程序的長短要依照實(shí)際情況而論,而不是越短越好,選項(xiàng)C)也不選。
59.B解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有3種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實(shí)體之間的聯(lián)系是用樹結(jié)構(gòu)來表示的,其中實(shí)體集(記錄型)是樹中的結(jié)點(diǎn),而樹中各結(jié)點(diǎn)之間的連線表示它們之間的關(guān)系。所以,本題的正確答案是B。
60.B
61.D\n124的2進(jìn)制值為1111100,要輸出為248即124*2,則2進(jìn)制值為11111000,即右移l位,所以選D。
62.A選項(xiàng)A)中d0后面的語句只執(zhí)行了一次便結(jié)束了循環(huán);B)選項(xiàng)中條件while(1)永遠(yuǎn)成立,因此是死循環(huán);C)選項(xiàng)中n的值為l0,而循環(huán)體為空語句,所以while(n)永遠(yuǎn)為真,進(jìn)入死循環(huán);D)選項(xiàng)中fbr語句第二個(gè)表達(dá)式為空,因此沒有判定條件,進(jìn)入死循環(huán)。因此本題答案為A)。
63.C本題中將8賦值給字符變量a,則a的二進(jìn)制為”00001000”,a>>3的位運(yùn)算是把a(bǔ)向右移動(dòng)三位,結(jié)果為”00000001”,輸出其十進(jìn)制的值1。
64.A【答案】:A
【知識點(diǎn)】:實(shí)體完整性與候選關(guān)鍵字
【解析】:在滿足數(shù)據(jù)完整性約束的條件下,一個(gè)關(guān)系可以有一個(gè)或多個(gè)候選關(guān)鍵字,但至少有一個(gè)候選關(guān)鍵字,故選A。
65.B一雛數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達(dá)式];注意定義數(shù)組時(shí),元素個(gè)數(shù)不能是變量。因此應(yīng)該選B選項(xiàng)。
66.A\n\\n和\\\\分別為轉(zhuǎn)義字符,各占據(jù)一個(gè)字符的位置。
\n
67.D
68.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。
69.DmaUoc函數(shù)動(dòng)態(tài)分配一個(gè)整型的內(nèi)存空間,然后把函數(shù)返回的地址用(int{)強(qiáng)制類型轉(zhuǎn)換為整型指針,再把它賦給a,b,c,即讓指針變量a,b,c都指向剛申請的內(nèi)存空間。所以只有最后一個(gè)賦值語句+C=3的值保留在了該空間內(nèi),因?yàn)閍、b、C三個(gè)指針變量均指向該空間,所以打印該空間內(nèi)的數(shù)值為3。
70.D
71.A
72.B
73.C
74.B
75.A
76.AC程序?qū)︻A(yù)處理命令行的處理是在程序編譯的過程中進(jìn)行的,所以選擇A)。
77.AB)選項(xiàng)中打開一個(gè)已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進(jìn)行追加操作等。c)選項(xiàng)中在一個(gè)程序中當(dāng)對文件進(jìn)行了寫操作后,不用先關(guān)閉該文件然后再打開,才能讀到第1個(gè)數(shù)據(jù),可以用fseek()函數(shù)進(jìn)行重新定位即可。D)選項(xiàng)中,C語言中的文件可以進(jìn)行隨機(jī)讀寫。故本題答案為A)。
78.A
79.B笛卡兒乘積運(yùn)算。假設(shè)關(guān)系R和關(guān)系S的元數(shù)個(gè)數(shù)與屬性個(gè)數(shù)分別為m和n。R×S表示R和S的笛卡兒積,R×S={(m+n)個(gè)屬性的一個(gè)元組集合,每個(gè)元組的前m個(gè)屬性值來自R的一個(gè)元組,后n個(gè)屬性值來自S的一個(gè)元組的所有組合}。
連接。它是從兩個(gè)關(guān)系的笛卡兒乘積結(jié)果中選取屬性間滿足一定條件的元組,它不能實(shí)現(xiàn)題目中給出的條件。
投影。它是從關(guān)系中挑選若干屬性組成新的關(guān)系,它是對關(guān)系進(jìn)行列操作的方法。
選擇。它是從關(guān)系中找到滿足條件的所有元組的操作,即不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的操作,它是對關(guān)系進(jìn)行行操作的方法。
80.A軟件危機(jī)主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進(jìn)度無法控制;軟件質(zhì)量難以保證;軟件不可維護(hù)或維護(hù)程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。所以選擇A。
81.(1)錯(cuò)誤:voidproc(chart)
正確:voidproc(char*t)
(2)錯(cuò)誤:t=q+i;
正確:q=t+i;
【解析】由主函數(shù)中函數(shù)調(diào)用的實(shí)參可知,形參應(yīng)該為字符型指針變量.即“voidproc(chart)”應(yīng)改為“voidproc(char*t);”。由函數(shù)proc()可知,變量q是指向最大字符的指針,最大字符位于字符串str的第i個(gè)位置。因此,“t=q+i;”應(yīng)改為“q=t+i;”。
82.voidfun(int*w,intp,intn){ intX,j,ch; for(x=0;x<=p;x++) { ch=w[0]; for(j=1;j /*通過for循環(huán)語句,將p+1~n-1(含n-1)之間的數(shù)組元素依次向前移動(dòng)p+1個(gè)存儲單元*/ { w[j-1]=w[j]; } w[n-1]=ch; /*將下標(biāo)為0~p的數(shù)組元素逐一賦給數(shù)組w[n-1]*/ }}本題要求把下標(biāo)為0~p(含p,p小于等于n-1)的數(shù)組元素平移到數(shù)組的最后??梢愿鶕?jù)輸入的p值,通過for循環(huán)語句,將p+1~n-1(含n-1)之間的數(shù)組元素依次向前移動(dòng)p+1個(gè)存儲單元,即w[j-1]=w[j];。同時(shí)將下標(biāo)為0~p的數(shù)組元素逐一賦給數(shù)組w[n-1],也就是通過語句w[n-1]=ch;來實(shí)現(xiàn)此操作。2022年安徽省安慶市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}
A.3B.3.2C.0D.3.07
2.下面敘述中錯(cuò)誤的是()。
A.軟件測試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤
B.對被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟
C.程序調(diào)試通常也稱為Debug
D.軟件測試應(yīng)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性
3.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.357B.753C.369D.751
4.在單鏈表中,增加頭結(jié)點(diǎn)的目的是______。
A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說明單鏈表是線性表的鏈?zhǔn)酱鎯?shí)現(xiàn)
5.
6.在一個(gè)有頭結(jié)點(diǎn)的鏈隊(duì)列中,假設(shè)f和r分別為隊(duì)首和隊(duì)尾指針,則隊(duì)頭出隊(duì)的運(yùn)算是()。
A.q=f->next;f->next=f->next->next;free(q);
B.q=f;f->next=f->next->next;free(q);
C.f->next=f->next->next;q=f->next;free(q);
D.q=f->next->next;f=f->next;free(q);
7.某二叉樹結(jié)點(diǎn)的中序序列為ABCDEFG,后序序列為BDCAFGE,則其左子樹中結(jié)點(diǎn)數(shù)目為()
A.3B.2C.4D.5
8.下列不屬于軟件工程的3個(gè)要素的是
A.工具B.過程C.方法D.環(huán)境
9.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
10.若k是int類型變量,且有以下for語句:for(k=-1;k<O;k++)printf("****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。、A.循環(huán)體執(zhí)行一次B.循環(huán)體執(zhí)行兩次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)
11.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf(“*”);程序段的運(yùn)行結(jié)果是()。
A.**B.****C.*D.********
12.以下程序的輸出結(jié)果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147
13.樹最適合用來表示()。
A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關(guān)系的數(shù)據(jù)D.元素之間無聯(lián)系的數(shù)據(jù)
14.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。
A.EOFB.-1C.非零值D.0
15.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是()。
A.i-1B.iC.i+1D.4一i
16.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用冒泡排序時(shí),第一趟掃描結(jié)果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
17.
18.以下程序的輸出結(jié)果是
#include<stdio.h>
voidprt(int*x,int*y,int*z)
{printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{inta=10,b=40,c=20;
prt(&a,&b,&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,21
D.11,41,2112,42,22
19.以下程序的輸出結(jié)果是().A.A.2222B.2468C.222D.246
20.下列敘述中正確的是()。
A.對長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n
B.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為n/2
C.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為log2n
D.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為nlog2n
二、2.填空題(20題)21.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。
#definePI3.14159;printf("PI=%f",PI);
22.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個(gè)雙精度型的動(dòng)態(tài)存儲單元______。
23.下面程序把從終端讀入的文本(用#作為文本結(jié)束標(biāo)志)復(fù)制到一個(gè)名為file.txt的新文件中。補(bǔ)足所缺語句。
main()
{charch;
FILE*fp;
if((fp=fopen(______))=NULL)exit(0);
while((ch=getchar())!='#')
fputc(ch,fp);
______;
}
24.實(shí)現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。
25.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
26.若有定義:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[2][2]得到的初值是______。
27.需求分析的最終結(jié)果是產(chǎn)生【】。
28.以下程序運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{intfun();fun();}
fun()
{staticinta[3]={0,1,2};
inti;
for(i=0;i<3;i++)a[i]+=a[i];
for(i=0;i<3;i++)printf("%d,",a[i]);
printf("\n");}
29.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
30.執(zhí)行下面程序段后,k值是【】。
k=1;n=263;
do
{k*=n%10;n/=10;
}while(n);
31.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為【】。
32.為了建立如圖所示的存儲結(jié)構(gòu)(即每個(gè)結(jié)點(diǎn)含兩個(gè)域,data是數(shù)據(jù)域,next是指向結(jié)點(diǎn)的指針域)。請?zhí)羁铡?/p>
structlink{chardata;【】;}node;
33.程序的運(yùn)行結(jié)果為【】。
main()
{intx,y,z;
x=24;
y=024;
z=0x24;
printf("%d,%d,%d\n",x,y,z);
}
34.下列程序的循環(huán)次數(shù)是______。
x=2;
do
{x=x*x;}
while(!x);
35.棧中允許進(jìn)行插入和刪除的一端叫做______。
36.以下程序的輸出結(jié)果是()。
#include<stdio.h>
voidfun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
37.下列程序的輸出結(jié)果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
38.設(shè)有定義:FILE*fw;,請將以下打開文件的語句補(bǔ)充完整,以便可以向文本文件readme.txt的最后續(xù)寫內(nèi)容。
fw=fopen("readme.txt",【】);
39.下面程序的運(yùn)行結(jié)果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
40.若有語句
inti=-19,j=i%4;
printf("%d\n",j),
則輸出的結(jié)果是______。
三、1.選擇題(20題)41.請選出以下程序的輸出結(jié)果_______。#include<stdio.h>sub(int*s,inty){staticintt=3,y=s[t];t-;}main(){inta[]={1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}
A.1234B.4321C.0D.4444
42.______語言負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。
A.數(shù)據(jù)操縱語言(DML)B.數(shù)據(jù)控制語言(DCL)C.結(jié)構(gòu)化查詢語言(SQL)D.數(shù)據(jù)定義語言(DDL)
43.若有運(yùn)算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(由高至低)的正確排列順序?yàn)?)。
A.%、sizeof、>、<<、=
B.sizeof、%、>、=、<<
C.sizeof、<<、>、%、=
D.sizeof、%、<<、>、=
44.有以下程序:#include<sldio.h>main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是()。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
45.對于n個(gè)結(jié)點(diǎn)的單向鏈表(無表頭結(jié)點(diǎn)),需要指針單元的個(gè)數(shù)至少為______。
A.n-1B.nC.n+1D.2n
46.若有以下定義語句:doublea[5];inti=0;能正確給a數(shù)組元素輸入數(shù)據(jù)的語句是()
A.scanf("%lf%lf%lf%lf%lf,a);
B.for(i=0;i<=5;i++)scanf("%lf,a+i);
C.while(i<5)scanf("%lf",&a[i++]);
D.while(i<5)seanf("%lf,a+i);
47.若調(diào)用fputc函數(shù)輸出字符成功,則其返回值是()。
A.EOFB.1C.0D.輸出的字符
48.若有如下程序:intm=1;main(){intt=0,s=0;{intm=4;s+=m;)t+=m;printf("%d,%d\n",s,t);}則程序運(yùn)行后的輸出結(jié)果是()。
A.1,1B.1,4C.4,1D.4,4
49.若有語句:char*line[5];,以下敘述中正確的是
A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char的指針變量
B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長度為5的字符型數(shù)組
C.定義line是一個(gè)指針數(shù)組,語句中的。號稱為間址運(yùn)算符
D.定義line是一個(gè)指向字符型函數(shù)的指針
50.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是()。
A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,
51.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運(yùn)行結(jié)果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤
D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則
52.字符串"\\\"ABCDEF\"\\"的長度是()。
A.15B.10C.7D.8
53.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))}break;printf("%d\n",i*i);}
A.49B.36C.25D.64
54.執(zhí)行下面的程序段后,變量k中的值為()。intk=3,s[2];s[0]=k;k=s[1]*10;
A.不定值B.33C.30D.10
55.若有定義血b[8],*p=b;則p+6表示()。
A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6
56.在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A.概要設(shè)計(jì)B.詳細(xì)設(shè)計(jì)C.可行性分析D.需求分析
57.有以下程序,其中函數(shù)的功能是將多個(gè)字符串按字典順序排序:#include<string.h>voidf(char*p[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j]p[j]=t;}}main(){char*p[5]={"abc","aabdfg","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[1]));}程序運(yùn)行后的輸出結(jié)果是______。
A.2B.3C.6D.4
58.在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()。
A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結(jié)構(gòu)應(yīng)有助于讀者理解
59.用樹形結(jié)構(gòu)來表示實(shí)體之間聯(lián)系的模型稱為()。
A.關(guān)系模型B.層次模型C.網(wǎng)狀模型D.數(shù)據(jù)模型
60.以下程序的輸出結(jié)果是______。main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}
A.x=4B.x=8C.x=6D.x=12
四、選擇題(20題)61.有以下程序:
#include<stdio.h>
main
{shortC=124;
C=C_;
printf("%d\n",c);
}
若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是()。
A.>>2
B.|248
C.&0248
D.<<1
62.以下不構(gòu)成無限循環(huán)的語句或語句組是()。
63.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.32B.16C.1D.0
64.在滿足實(shí)體完整性約束的條件下()。
A.一個(gè)關(guān)系中應(yīng)該有一個(gè)或多個(gè)候選關(guān)鍵字
B.一個(gè)關(guān)系中只能有一個(gè)候選關(guān)鍵字
C.一個(gè)關(guān)系中必須有多個(gè)候選關(guān)鍵字
D.一個(gè)關(guān)系中可以沒有候選關(guān)鍵字
65.若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語句中錯(cuò)誤的是()。
66.若有以下定義和語句:
chars[10]="abcd!",*s2="\nl23\\";
Drintf("%d%d\n",strlen(sl),strlen(s2));
則輸出結(jié)果是()。
A.55B.105C.107D.58
67.
68.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
69.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1.1.3B.2,2,3C.1,2,3D.3,3,3
70.(21)算法的空間復(fù)雜度是指______。
A.算法程序的長度
B.算法程序中的指令條數(shù)
C.算法程序所占的存儲空間
D.算法執(zhí)行過程中所需要的存儲空間
71.
72.
73.
74.
75.
76.以下敘述中錯(cuò)誤的是()。
A.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的
B.預(yù)處理命令行的最后不能以分號表示結(jié)束
C.#defineMAX是合法的宏定義命令行
D.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行
77.以下敘述中正確的是()。A.A.當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
B.打開一個(gè)已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個(gè)程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個(gè)數(shù)據(jù)
D.c語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
78.
79.在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是
A.連接B.選擇C.投影D.笛卡兒乘積
80.下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:在字符串str中找出ASCⅡ碼值最大的字符,將其放在第一個(gè)位置上,并將該字符前的原字符向后順序移動(dòng)。例如,調(diào)用proc()函數(shù)之前給字符串輸入DcybkdGT,調(diào)用后字符串中的內(nèi)容為yDcbkdOT。
請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)其功能是移動(dòng)一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)為0~p(含p,p小于等于n-1)的數(shù)組元素平移到數(shù)組的最后。例如,一維數(shù)組中的原始內(nèi)容為1、2、3、4、5、6、7、8、9、10;P的值為3。移動(dòng)后,一維數(shù)組中的內(nèi)容應(yīng)為5、6、7、8、9、10、1、2、3、4。注意:部分源程序給出如下。請勿改動(dòng)主函數(shù)main()和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN80voidfun(int*w,intp,intn){}main(){ inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; inti,p,n=15; printf(“Theoriginaldata:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\nEnterp:”); scanf(“%d”,&p); fun(a,p,n); printf(“\nThedataaftermoving:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\n”);}
參考答案
1.C
2.A軟件測試的目的是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,并不涉及改正錯(cuò)誤,所以選項(xiàng)A錯(cuò)誤。程序調(diào)試的基本步驟有:錯(cuò)誤定位、修改設(shè)計(jì)和代碼,以排除錯(cuò)誤、進(jìn)行回歸測試,防止引進(jìn)新的錯(cuò)誤。程序調(diào)試通
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管模維修工安全培訓(xùn)競賽考核試卷含答案
- 銀行內(nèi)部控制管理制度
- 酒店員工崗位責(zé)任與協(xié)作制度
- 酒店客房鑰匙卡掛失補(bǔ)辦制度
- 超市消防安全演練制度
- 年產(chǎn)500萬支注射用紫杉醇聚合物膠束配套藥用輔料項(xiàng)目可行性研究報(bào)告模板-備案審批
- 活動(dòng)啟動(dòng)培訓(xùn)課件
- 2024-2025學(xué)年陜西省韓城市高二下學(xué)期期末考試歷史試題(解析版)
- 2026年新聞采訪面試媒體溝通與信息采集技巧題庫
- 2026年城市交通規(guī)劃交通樞紐布局優(yōu)化備考題集
- 國家衛(wèi)生部《綜合醫(yī)院分級管理標(biāo)準(zhǔn)》
- 撇洪溝改造工程監(jiān)理規(guī)劃河道整治樣本
- (完整版)保證藥品信息來源合法、真實(shí)、安全的管理措施、情況說明及相關(guān)證明
- 預(yù)防兩癌知識講座
- 人教版九年級數(shù)學(xué)第二十四章《圓》單元知識點(diǎn)總結(jié)
- 西班牙語專業(yè)本科論文模板
- GB/T 42288-2022電化學(xué)儲能電站安全規(guī)程
- 地質(zhì)災(zāi)害治理工程用表格(完整資料)
- 網(wǎng)殼結(jié)構(gòu)專項(xiàng)施工方案
- GB/T 9254.1-2021信息技術(shù)設(shè)備、多媒體設(shè)備和接收機(jī)電磁兼容第1部分: 發(fā)射要求
- GB/T 39287-2020閉式膨脹罐
評論
0/150
提交評論