版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年甘肅省天水市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.函數(shù)調(diào)用:strcat(strcpy(str1,str2),str3)的功能是______。
A.將串str1復(fù)制到串str2中后再連接到串str3之后
B.將串str1連接到串str2之后再復(fù)制到串str3之后
C.將串str2復(fù)制到串str1中后再將串sir3連接到串str1之后
D.將串str2連接到串str1之后再將串str1復(fù)制到串str3中
2.若有定義:int*p[3];,則以下敘述中正確的是()。
A.定義了一個(gè)基類型為int的指針變量p,該變量具有三個(gè)指針
B.定義了一個(gè)指針數(shù)組p,該數(shù)組含有三個(gè)元素,每個(gè)元素都是基類型為int的指針
C.定義了一個(gè)名為*p的整型數(shù)組,該數(shù)組含有三個(gè)int類型元素
D.定義了一個(gè)可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個(gè)int類型元素
3.若以“a+”方式打開一個(gè)已存在的文件,以下敘述正確的是()。
A.文件打開時(shí),原有文件內(nèi)容不被刪除,可以進(jìn)行添加和讀操作
B.文件打開時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件開頭,可以進(jìn)行重寫和讀操作
C.文件打開時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件中間,可以進(jìn)行重寫和讀操作
D.文件打開時(shí),原有文件內(nèi)容被刪除,只可進(jìn)行寫操作
4.有以下程序:main(){intp[7]={11,13,14,15,16,17,18),i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k)}執(zhí)行后的輸出結(jié)果是______。
A.58B.56C.45D.24
5.一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
6.設(shè)有二維數(shù)組A7×8,每個(gè)數(shù)據(jù)元素占8個(gè)字節(jié)存儲(chǔ)單元,順序存放,A第一個(gè)元素A0,0的存儲(chǔ)地址為1000,按列優(yōu)先存放時(shí),元素A5,4的地址為()。
A.1256B.1264C.1272D.1280
7.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的運(yùn)行結(jié)果是()。A.*****a*bB.a*bC.a*b****D.ab
8.設(shè)有兩個(gè)串p和q,求q在p中首次出現(xiàn)的位置的運(yùn)算稱為()。
A.連接B.模式匹配C.求子串D.求串長(zhǎng)
9.有以下程序:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項(xiàng)中表達(dá)式值為11的是()。
A.++p->xB.pt->xC.*pt->yD.(pt++)->x
10.執(zhí)行下面的程序段后,變量k中的值為()。intk=3,s[2];s[0]=k;k=s[1]*10;
A.不定值B.33C.30D.10
11.有以下程序:#include<stdi0.h>#defineS(x)(x)"x"2main(){intk一5,j=2;Drintf("%printf,",S(k+j));printf("%printf\n",S((k—j)));}程序運(yùn)行后的輸出結(jié)果是()。A.98,18B.39,11C.39,18D.98,11
12.廣義表((a),a)的表頭是()。
A.aB.(a)C.((a))D.()
13.執(zhí)行下面程序中的輸出語句后,輸出結(jié)果是()。A.65B.20C.15D.10
14.x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是
A.INPUTx、v、z;
B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x,&y,&z);
15.若有以下的說明和語句,則在執(zhí)行for語句后,’(*(pt+1)+2)表示的數(shù)組元素是()。intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];
A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]
16.有以下程序段:charstr[4][12]={“aaa”,“bbb”,“ccc”,“ddd”},*p[4];inti;for(i=0;i<4;i++)p[i]=str[i];以下選項(xiàng)中不能正確引用字符串的是()。
A.*p[3]B.p[3]C.str[2]D.*p
17.下列語句中,說法正確的是______。
A.C程序書寫格式嚴(yán)格,每行只能寫一個(gè)語句
B.C程序書寫格式嚴(yán)格,每行必須有行號(hào)
C.C程序書寫格式自由,每行可以寫多條語句,但之間必須用逗號(hào)隔開
D.C程序書寫格式自由,一個(gè)語句可以分寫在多行
18.下列敘述中正確的是()。
A.順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的
B.順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)
C.順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表
D.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間
19.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是()。
A.77B.88C.810D.1010
20.字符串"alibaba"的二進(jìn)制哈夫曼編碼有多少位()
A.11B.12C.13D.14
二、2.填空題(20題)21.下面程序的功能是:輸出100以內(nèi)能被4整除且個(gè)位數(shù)為8的所有整數(shù),請(qǐng)?zhí)羁?。main(){inti,j;for(i=0=();i++){j=i*10+8;if(j%4!=0)continue;printf("%d",j);}}
22.下列程序的功能是將字符串s中所有的字符c刪除。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')
s[j]='\0';
puts(s);
}
23.以下程序的輸出結(jié)果是【】。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
24."print("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。
25.一般來說,算法可以用順序、選擇和______三種基本控制結(jié)構(gòu)組合而成。
26.現(xiàn)有兩個(gè)C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:
#include<stdio.h>
#include"myfun.c"
main()
{fun();printf("\n");}
myfun.c文件如下:
voidfun()
{chars[80],c;intn=0;
while((c=getchar())!=′\n′)s[n++]=c;
n--;
while(n>=0)printf("%c",s[n--]);
}
當(dāng)編譯連接通過后,運(yùn)行程序T18時(shí),輸入Thank!,則輸出結(jié)果是【】。
27.以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。
structnode
{intinfo;
【】link;};
28.執(zhí)行下面程序段后,k值是【】。
k=1;n=263;
do
{k*=n%10;n/=10;
}while(n);
29.軟件生命周期包括8個(gè)階段。為使各時(shí)期的任務(wù)更明確,又可以分為以下3個(gè)時(shí)期:軟件定義期、軟件開發(fā)期、軟件維護(hù)期。編碼和測(cè)試屬于【】期。
30.以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來存入整型數(shù)據(jù),成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。
structnode
}intinfo;
【】link;
};
31.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。
32.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。
33.度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為______。
34.關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件,包括實(shí)體完整性、______和自定義完整性。
35.在面向?qū)ο蠓椒ㄖ校愔g共享屬性和方法的機(jī)制稱為______。
36.下述程序的輸出結(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));}
37.下面的程序可對(duì)指定字符串中的字符串進(jìn)行從大到小排序,請(qǐng)將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
38.設(shè)某循環(huán)隊(duì)列的容量為50,頭指針front=5(指向隊(duì)頭元素的前一位置),尾指針rear=29(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有【】個(gè)元素。
39.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運(yùn)行時(shí),如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。
40.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
三、1.選擇題(20題)41.下面程序的文件名為t.exe,在DOS下輸入的命令行參數(shù)為:ttomeetme<回車>
則程序輸出的結(jié)果是
#include"stdio.h"
main(argc,argv)
intargc;char*argv[];
{inti;
printf("%d\n",argc);}
A.3B.4C.2D.以上答案都不正確
42.關(guān)系模型允許定義3類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。
A.實(shí)體完整性約束B.參照完整性約束C.屬性完整性約束D.用戶自定義的完整性約束
43.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){intp;if(x==0‖x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}
A.5B.3C.7D.1
44.下列程序的運(yùn)行結(jié)果為()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf("%d\n",(MAX(a+b,c+d))*100);}
A.500B.5C.4D.400
45.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計(jì)是描述______。
A.數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測(cè)試D.軟件控制過程
46.下列敘述中正確的是()。A.用E-R圖能夠表示實(shí)體集之間一對(duì)一的聯(lián)系、一對(duì)多的聯(lián)系、多對(duì)多的聯(lián)系
B.用E-R圖只能表示實(shí)體集之間一對(duì)一的聯(lián)系
C.用E-R圖只能表示實(shí)體集之間一對(duì)多的聯(lián)系
D.用E-R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型
47.下面程序的輸出結(jié)果是()#include<stdio.h>f(b,n)intb[],n;{inti,r;r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}
A.720B.120C.24D.6
48.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()
A.11B.19C.13D.20
49.已有定義int(*p)(),指針p可以
A.代表函數(shù)的返回值B.指向函數(shù)的入口地址C.表示函數(shù)的類型D.表示函數(shù)返回值的類型
50.設(shè)有以下定義:typedefunion{longi;intk[5];charc;}DATE;srtuctdate{intcat;DATEcow;doubledog;}too;DATEmax;則下語句的執(zhí)行結(jié)果是()printf("%d,"sizeof(structdate))+sizeof(max));
A.25B.30C.18D.8
51.設(shè)變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)
A.10□X□20□Y<回車>
B.10□X20□Y<回車>
C.10□X<回車>20□Y<回車>
D.10X<回車>20Y<回車>
52.以下程序的運(yùn)行結(jié)果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
53.以下程序的輸出結(jié)果是main(){charc='z';printf("%c",c-25);}
A.aB.ZC.z-25D.y
54.以下程序運(yùn)行后,輸出結(jié)果是
#definePT5.5
#defineS(x)PT*x*x
#include<stdio.h>
main()
{inta=1,b=2;
printf("%4.1f\n",S(a+b));}
A.49.5B.9.5C.22D.45
55.有以下程序structSTU{charname[10];intnum;intScore;{main(){structStus[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},{"WangYin",20043,680},{"SunDan",20044,550},{"Penghua",20045;537}},*p[5],*t;inti,j;for(i=0;i<5;i++)p[i]=&s[i];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p[i]->Score>p[j]->Score){t=p[i];p[i]=p[j];p[i]=t;}printf("%d%d\n",s[1].Score,p[1]->Score);}執(zhí)行后輸出結(jié)果是
A.550550B.680680C.580550D.580680
56.模塊本身的內(nèi)聚是模塊獨(dú)立性的重要性度量因素之—。在7類內(nèi)聚中,具有最強(qiáng)內(nèi)聚的—項(xiàng)是______。
A.順序性內(nèi)聚B.過程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚
57.若有以下說明和定義:fun(int*c){}main(){int(*a)()=fun,*b(),w[10],c;……}在做必要的賦值之后,對(duì)fun函數(shù)的正確調(diào)用語句是______。
A.a=a(w);B.(*a)(&c);C.b=*b(w);D.fun(b);
58.有下列二叉樹,對(duì)此二叉樹前序遍歷的結(jié)果為()。
A.XZCYABB.XYZABCC.XYABCZD.XYAZBC
59.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}
A.266B.11C.265D.138
60.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=7;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.gaC.LanguageD.有語法錯(cuò)
四、選擇題(20題)61.成功的測(cè)試是指A.A.運(yùn)行測(cè)試實(shí)例后未發(fā)現(xiàn)錯(cuò)誤
B.發(fā)現(xiàn)程序的錯(cuò)誤
C.證明程序正確
D.軟件產(chǎn)生
62.
63.有以下程序:
執(zhí)行程序時(shí),給變量X輸入10,程序的輸出結(jié)果是()。
A.54B.55C.65D.45
64.對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
65.不能把字符串:Hello!賦給數(shù)組b的語句是()。
A.charb[10]={’H’,’e’,’l’,’l’,’o’,’!’};
B.charb[10];b="Hello!";
C.charb[10];strcpy(b,"Hello!");
D.charb[10]="Hello!";
66.下面程序的功能是輸出以下形式的金字塔圖案。
main()
{
inti,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
printf("");
for(j=1;j<=______;j++)
printf("*");
printf("\n");
}
}
在下畫線處應(yīng)填入的是
A.iB.2*i-1C.2*i+1D.i+2
67.下述程序的運(yùn)行結(jié)果是()。#includedstdio.h>#includedstrin9.h>main{char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值
68.
69.以下程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.4D.8
70.
71.若有定義語句:“intx=10;”,則表達(dá)式x-=x+x的值為()。
A.-20B.-l0C.0D.10
72.以下選項(xiàng)中不能用做C程序合法常量的是()。
A.1,234B.‘\123’C.123D.“\x7G”
73.有以下程序程序執(zhí)行后的輸出結(jié)果是()。
A.y=一1B.y=oC.y=1D.while構(gòu)成無限循環(huán)
74.若執(zhí)行以下程序時(shí)從鍵盤上輸入9,則輸出結(jié)果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8
75.
76.
77.若有定義:“inta,b;”,通過語句“scan[("%d;%d".,&a,&b);”,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。
A.35B.3,5C.3;5D.35
78.(8)數(shù)據(jù)庫系統(tǒng)的核心是()
A.數(shù)據(jù)模型
B.數(shù)據(jù)庫管理系統(tǒng)
C.軟件工具
D.數(shù)據(jù)庫
79.
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:從低位開始依次取出長(zhǎng)整型變量s中奇數(shù)位上的數(shù),構(gòu)成一個(gè)新數(shù)存放在t中。高位仍在高位,低位仍在低位。
例如,當(dāng)s中的數(shù)為7654321時(shí),t中的數(shù)為7531。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<;stdi0.h>;
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun(),其功能是除了字符串前導(dǎo)和尾部的*號(hào)外,將字符串中其他的*號(hào)全部刪除。形參h指向字符串中第一個(gè)字母,形參p指向字符串中最后一個(gè)字母。在編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為“****A*BC*DEF*G********”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“****ABCDEFG********”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<string.h>voidfun(char*a,char*h,char*p){}main(){chars[8l],*t,*f;printf(“Enterastring:\n”);gets(s);t=f=s;while(*t)t++;t--;while(*t==‘*’)t--;while(*f==‘*’)f++;fun(s,f,t);printf(“Thestringafterdeleted:\n”);puts(s);}
參考答案
1.C解析:題目中所給函數(shù)的功能是;先用函數(shù)strcpy把參數(shù)串str2復(fù)制到參數(shù)串str1中去,然后用函數(shù)strcat把參數(shù)串str3連接到經(jīng)過修改后的參數(shù)串str1后,因此選項(xiàng)C正確。
2.B解析:當(dāng)一個(gè)數(shù)組中的元素均為指針類型數(shù)據(jù)時(shí),該數(shù)組就稱為指針數(shù)組。int*p[3]表示此數(shù)組是指針類型的,每個(gè)數(shù)組元素(指針變量)都是指向一個(gè)整型的指針變量。
3.AC語言中,文件打開方式“a+”表示打開一個(gè)文本文件,從文件開始位置讀,在文件尾部添加數(shù)據(jù),如果指定的文件不存在,系統(tǒng)將使用調(diào)用fopen時(shí)指定的文件名創(chuàng)建一個(gè)新的文件;如果指定的文件存在,那么文件原有內(nèi)容將被保存,新的數(shù)據(jù)追加到原有文件之后。故本題答案為A選項(xiàng)。
4.D解析:程序中while語句的循環(huán)條件為i<7&&p[i]%2。當(dāng)i=0時(shí),條件成立,k=k+p[0]=11;當(dāng)i=1時(shí),條件仍成立,k=k+p[1]=11+13=24;當(dāng)i=2時(shí),p[2]%2=0條件不成立,結(jié)束while循環(huán),所以k=24。
5.B棧是先進(jìn)后出的原則組織數(shù)據(jù),所以人棧最早的最后出棧,所以選擇B。
6.A
7.C解析:主函數(shù)main()定義了指向字符串的指針和一個(gè)字符數(shù)組,接著調(diào)用fun(s,t)函數(shù),進(jìn)行實(shí)參向形參傳遞,函數(shù)fun()第一個(gè)while語句判斷*a中的值為“*”時(shí)繼續(xù)掃描,當(dāng)遇到不是“*”時(shí)結(jié)束,接著第二個(gè)while循環(huán)語句,將*a中從“a”開始的后續(xù)所有字符都賦予*b,也就是t[80]中的內(nèi)容為“a*b****”,所以此題的運(yùn)行結(jié)果為選項(xiàng)C)。
8.B
9.A題目中定義了一個(gè)結(jié)構(gòu)體數(shù)組c并初始化,指針pt指向c的第1個(gè)元素。則“++pt->x”為11,“pt->x”為10,“*pt->y”為1,“(pt++)->x”為20。故本題答案為A選項(xiàng)。
10.A解析:定義數(shù)組時(shí),沒有對(duì)s[1]進(jìn)行初始化,因此s[1]的值不確定,所以k=s[1]*10的值也不確定。
11.BS(k+j)=(k+j)*k+j*2=(5+2)*5+2*2=39,同理S(k-1)=(k+j)*k+j*2=\r\n(5-2)*5-2*2=11,所以答案選擇B。
12.B
13.B
14.B解析:scanf函數(shù)的一般格式是:
scanf(格式控制,地址表列)
該格式中,地址表列中應(yīng)是變量地址,而不是變量名。注意:調(diào)用putchar和getchar函輸出和輸入字符。
15.C從for循環(huán)可知pt是指向行的首地址的指針變量,因此由指針的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。
16.A“*P[3]”是一個(gè)字符,也就是str[3][0],不是字符串,選項(xiàng)A錯(cuò)誤?!癙[3]”“str[2]”和“*p”分別代表了ddd、ccc、aaa。故本題答案為A選項(xiàng)。
17.D
18.A解析:順序存儲(chǔ)結(jié)構(gòu)就是用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)該線性表中的各個(gè)元素,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)是不連續(xù)的,并且各結(jié)點(diǎn)在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致,所以選項(xiàng)A是正確的。兩者都可以存儲(chǔ)線性的、有序的邏輯結(jié)構(gòu),所以選項(xiàng)B、C不正確。順序結(jié)構(gòu)使用的是連續(xù)物理空間,鏈?zhǔn)浇Y(jié)構(gòu)可以使用零散的物理空間存儲(chǔ),鏈?zhǔn)浇Y(jié)構(gòu)更靈活,不存在誰節(jié)約空間的說法,所以選項(xiàng)D不正確。
19.C解析:本題考核的知識(shí)點(diǎn)是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應(yīng)用。本題中定義兩個(gè)字符型數(shù)組,其中a省略了長(zhǎng)度,定義了b的長(zhǎng)度為10,并賦初值分別為“abcdefg”和“abcdfg”。所以a的長(zhǎng)度為賦值給它的字符串的字符個(gè)數(shù)7加上一個(gè)結(jié)束轉(zhuǎn)義字符,即a的長(zhǎng)度為7+1為8.定義時(shí)b的長(zhǎng)度定義為10,故b的長(zhǎng)度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長(zhǎng)度分別為8和10,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
20.C
21.i<10i<10解析:分析程序:當(dāng)(i=0,1,2,…)時(shí),“j=i*10+8”語句的運(yùn)行結(jié)果是(8,18,28,…)個(gè)位數(shù)字為8的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%4!=0)continue;”語句的功能是當(dāng)條件不能被4整除時(shí),繼續(xù)循環(huán)不執(zhí)行操作,直到能被4整除時(shí)輸出該數(shù),所以輸出的數(shù)滿足條件100以內(nèi)能被4整除且個(gè)位數(shù)為8。
22.S[j++]=s[i]S[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲(chǔ)存值與字符c相同,則i++直接跳過當(dāng)前值;如果不相同,則將當(dāng)前值賦予數(shù)組指定位置,并通過j++將下標(biāo)加1,指向下一元素要存儲(chǔ)的位置。
23.2222解析:在main函數(shù)中,調(diào)用reverse函數(shù)將b數(shù)組中的前8個(gè)成員進(jìn)行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結(jié)構(gòu),將b[6],b[7]…b[9]的值相加,結(jié)果為22。
24.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長(zhǎng)度并作為函數(shù)的返回值,這里的長(zhǎng)度不包括串尾的結(jié)束標(biāo)志,\'\\0\'。
\'\\t\',是轉(zhuǎn)義字符,代表橫向跳若干格;\'\\\''是轉(zhuǎn)義字符,代表雙引號(hào);\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符:\'\\xAB\'是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符:\'\\n\'是轉(zhuǎn)義字符,代表回車換行?!?/p>
5個(gè)子符常量各代表一個(gè)字符,再加上字母C,所以返回的長(zhǎng)度是6。
25.循環(huán)循環(huán)解析:算法一般由順序,選擇和循環(huán)三種基本控制結(jié)構(gòu)組合而成。
26.!knahT!knahT解析:此程序是一道次序顛倒題,即輸入'Thank!',則輸出'!knahT'。
27.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個(gè)指向自身的結(jié)構(gòu)體指針。
28.3636解析:本題循環(huán)體共執(zhí)行了3次。第一次:k=3,n=26:第二次:k=18,n=2;第三次:k=36,n=0。
29.軟件開發(fā)。軟件開發(fā)。解析:通常,軟件生命周期包括8個(gè)階段:?jiǎn)栴}定義、可行性研究、需求分析、系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試、運(yùn)行維護(hù)。還分為3個(gè)時(shí)期,軟件定義期:包括問題定義、可行性研究和需求分析3個(gè)階段;軟件開發(fā)期:包括系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試4個(gè)階段;軟件維護(hù)期:即運(yùn)行維護(hù)階段。
30.struetnode*struetnode*解析:本題中的結(jié)構(gòu)類型名為struetnode,所以空白處應(yīng)填:structnode*,即定義一個(gè)指向自身的結(jié)構(gòu)體指針。
31.88解析:fabs函數(shù)功能是求x的絕對(duì)值,計(jì)算結(jié)果為double型。pow功能是計(jì)算x的y次方的值,計(jì)算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。
32.存儲(chǔ)結(jié)構(gòu)
33.4545解析:對(duì)于長(zhǎng)度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標(biāo)順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。
34.參照完整性參照完整性
35.繼承繼承解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。
36.77解析:本題考查的是函數(shù)的遞歸調(diào)用。x=0或x=1是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。
37.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)現(xiàn)過程是將相鄰兩個(gè)字符進(jìn)行比較,如果當(dāng)前字符小于下—個(gè)字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。
38.2424解析:在循環(huán)隊(duì)列中因?yàn)轭^指針指向的是隊(duì)頭元素的前一個(gè)位置,所以是從第6個(gè)位置開始有數(shù)據(jù)元素,所以隊(duì)列中的數(shù)據(jù)元素的個(gè)數(shù)為29-5=24。
39.BB解析:因?yàn)閏是字符類型變量,它只能接收一個(gè)字符,所以c=A,字符型變量在參與算術(shù)運(yùn)算的時(shí)候是用其相應(yīng)的ASCII碼參與運(yùn)算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。
40.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
41.B解析:argc中存入的是命令行中字符串的個(gè)數(shù)。argv是一個(gè)指向字符型的指針數(shù)組的指針。
42.C詳細(xì)解答:
關(guān)系模型允許3類數(shù)據(jù)約束,它們是:
實(shí)體完整性約束
該約束要求關(guān)系的主鍵中屬性值不能為空值,這是數(shù)據(jù)庫完整性的最基本要求。
參照完整性約束
該約束是關(guān)系之間相關(guān)聯(lián)的基本約束,它不允許關(guān)系引用不存在的元組:即在關(guān)系中的外鍵要么是所關(guān)聯(lián)關(guān)系中實(shí)際存在的元組,要么就為空值。
用戶定義的完整性約束
用戶定義的完整性就是針對(duì)某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。cC
43.A解析:本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時(shí),fun(5):a=5-fun(3)->fun3=a=3-fun(1)->fun(1):a-3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,最后的計(jì)算結(jié)果為5。
44.A解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:(x)>(y)?(x):(y)是x>y時(shí)輸出x,否則輸出y,調(diào)用(MAX(a+b,c+d))*100時(shí),(a+b=5)>(c+d=4),所以輸出a+b=5,所以x=5*100。
45.B解析:從工程管理解度來看,軟件設(shè)計(jì)分兩步完成:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)(又稱結(jié)構(gòu)設(shè)計(jì))將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。
46.A解析:用E-R圖可以簡(jiǎn)單明了地描述實(shí)體及其相互之間的聯(lián)系,用E-R圖還可以方便地描述多個(gè)實(shí)體集之間的聯(lián)系和一個(gè)實(shí)體集內(nèi)部實(shí)體之間的聯(lián)系。因此,選項(xiàng)A中的說法是正確的,而選項(xiàng)B與C中的說法都是錯(cuò)誤的。
為了建立用戶所要求的數(shù)據(jù)庫.必須把概念結(jié)構(gòu)(用E-R圖表示的概念數(shù)據(jù)模型)轉(zhuǎn)換為某個(gè)具體的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型,這就是邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。
在已給定數(shù)據(jù)庫管理系統(tǒng)的情況下,數(shù)據(jù)庫的邏輯設(shè)計(jì)可以分兩步來進(jìn)行:
①將概念模型轉(zhuǎn)換成一般的數(shù)據(jù)模型;
②將一般的數(shù)據(jù)模型轉(zhuǎn)換為特定的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型。
由此可知,用E-R圖表示的概念數(shù)據(jù)模型不僅能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型,還可以轉(zhuǎn)換為其他數(shù)據(jù)模型,如網(wǎng)狀模型和層次模型等。因此,選項(xiàng)D中的說法也是錯(cuò)誤的。
47.B
48.B解析:C語言規(guī)定,數(shù)組元素的下標(biāo)是從零開始的.本題首先定義了一個(gè)二維數(shù)組aa并按行賦初值,定義了一個(gè)變量s用于求和。for循環(huán)執(zhí)行4次分別把數(shù)組元素aa[0][1]、aa[1)[1)、oa[2][1]和aa[2][1]的值(2,6,9,2)加到變量s中,s的值為19,所以最后輸出的s的值為19.所以4個(gè)選項(xiàng)中B正確。
49.B解析:此題考查了函數(shù)指針的概念,函數(shù)指針是定義一個(gè)指針指向函數(shù)的入口地址,可用這個(gè)指針來調(diào)用函數(shù)。
50.B
51.D解析:本題中,scanf函數(shù)的格式控制沒有空格,所以,對(duì)于選項(xiàng)A)、B)、C),輸入的第一個(gè)空格會(huì)作為字符賦值給變量c1,而不會(huì)被解釋成分隔符。
52.B解析:由于在main()函數(shù)中,變量i=4,所以就調(diào)用fun(4),則輸出“m=4k=4”。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的“printf('i=%dk=%d\\n',i,k);”語句輸出“i=5k=5”。
53.A解析:'z'的ASCII碼值為122,經(jīng)過c-25運(yùn)算后,得97,以字符形式輸出是a。所以本題答案是A)。
54.A解析:考查宏替換的使用。宏替換用'#define宏名宏體'的形式來定義。在進(jìn)行編譯預(yù)處理時(shí),將把程序中宏定義之后的所有宏名用宏體替換。宏雖然可以帶參數(shù),但宏替換過程中不像函數(shù)那樣要進(jìn)行參數(shù)值的計(jì)算、傳遞及結(jié)果返回等操作;宏替換只是簡(jiǎn)單的字符替換,不進(jìn)行計(jì)算,因而本題中的S(a+b)進(jìn)行宏替換后為PT*1+2*1+2=5.5*1+2*1+2=9.5。
55.C解析:本題中首先定義了結(jié)構(gòu)體類型STU,該結(jié)構(gòu)體由一個(gè)長(zhǎng)度為10的字符數(shù)組、兩個(gè)整型變量num和Score組成。在主函數(shù)中,定義了一個(gè)長(zhǎng)度為5的結(jié)構(gòu)體數(shù)組s并賦初值,一個(gè)指針數(shù)組p和一個(gè)指針變量t,接著將數(shù)組s中各元素的地址依次賦給指針數(shù)組p中的各成員。然后通過兩個(gè)for循環(huán)將數(shù)組p按Score的值從小到大的順序排列。因此最后輸出的p[1]->Score的值為550,而數(shù)組s[1].Score的值為580。
56.D解析:內(nèi)聚性是—個(gè)模塊內(nèi)部各元素間彼此結(jié)合的緊密程度的度量。內(nèi)聚共有7類,它們之間的內(nèi)聚性由弱到強(qiáng)排列順序?yàn)椋号既粌?nèi)聚、邏輯內(nèi)聚,時(shí)間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和功能內(nèi)聚。
57.B
58.D解析:對(duì)二叉樹的前序遍歷是指先訪問根結(jié)點(diǎn),然后訪問左于樹,最后訪問右子樹,并且在訪問左、右子樹時(shí),先訪問根結(jié)點(diǎn),再依次訪問其左、右于樹。
59.A解析:由于本題定義的是共用體,所以成員表列中的整型變景x與字符數(shù)組c共占用同—個(gè)存儲(chǔ)單元,且此存儲(chǔ)單元為2個(gè)字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
60.A解析:指針p1+k相當(dāng)于指針P1向后移動(dòng)了k個(gè)字符的位置,指針p2同理。
61.B軟件測(cè)試的目的主要有以下幾個(gè)方面。
(1)軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。
(2)一個(gè)好的測(cè)試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤。
(3)一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。
另外,即使經(jīng)過了最嚴(yán)格的測(cè)試,可能仍然還有沒被發(fā)現(xiàn)的錯(cuò)誤藏在程序中,測(cè)試只是找出程序中的錯(cuò)誤,不能證明程序中沒有錯(cuò)誤。
62.B
63.B本程序考察的是函數(shù)的遞歸調(diào)用,在調(diào)用一個(gè)函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸調(diào)用,執(zhí)行結(jié)果為l+2+3+4+5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度影視基地租賃定金協(xié)議模板
- 遼寧科技學(xué)院《中醫(yī)養(yǎng)生康復(fù)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度電梯維修保養(yǎng)與綠色出行推廣服務(wù)協(xié)議
- 2025年度租房轉(zhuǎn)租合同租賃物權(quán)屬變更登記補(bǔ)充協(xié)議
- 分式方程說課
- 二零二五年度2025年民宿租賃合同租客版
- 二零二五年度高端醫(yī)療中心護(hù)士團(tuán)隊(duì)聘用合同模板
- 2025年度羊代放牧與草原畜牧業(yè)可持續(xù)發(fā)展合同
- 2025年度股東股權(quán)分配與知識(shí)產(chǎn)權(quán)保護(hù)協(xié)議
- 2025年度江蘇省全日制員工勞動(dòng)合同實(shí)施細(xì)則
- 500句漢語日常對(duì)話
- 《抽搐的鑒別與處理》課件
- 自來水廠建設(shè)項(xiàng)目可行性研究報(bào)告
- 唾液酸在病毒感染免疫中的功能-洞察分析
- 工程監(jiān)理行業(yè)綜合信息平臺(tái)企業(yè)端操作手冊(cè)
- 質(zhì)量安全總監(jiān)和質(zhì)量安全員考核獎(jiǎng)懲制度
- 2024年白山客運(yùn)資格證題庫
- 土地成片開發(fā)運(yùn)營(yíng)模式與案例
- 快樂讀書吧:中國(guó)民間故事(專項(xiàng)訓(xùn)練)-2023-2024學(xué)年五年級(jí)語文上冊(cè)(統(tǒng)編版)
- 成品油零售經(jīng)營(yíng)批準(zhǔn)證書變更、補(bǔ)辦、到期換證申請(qǐng)表
- 機(jī)動(dòng)車駕駛培訓(xùn)理論科目一考試題庫500題(含標(biāo)準(zhǔn)答案)
評(píng)論
0/150
提交評(píng)論