版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年安徽省滁州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.若某鏈表最常用的操作是在最后一個(gè)結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn)或刪除最后一個(gè)結(jié)點(diǎn)。則采用()存儲(chǔ)方式最節(jié)省運(yùn)算時(shí)間。
A.單鏈表B.雙鏈表C.單循環(huán)鏈表D.帶頭結(jié)點(diǎn)的雙循環(huán)鏈表
2.
3.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.654321
B.65432
C.65453452
D.654534521
4.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。A.A.7B.8C.9D.10
5.有以下程序:#include<stdio.h>main(){chars[]=“012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]|=0;i++) if(s[i]>=‘0’&&s[i]<=“9”)n++;printf(“%d\n”,n);}程序運(yùn)行后的輸出結(jié)果是()。
A.7B.0C.3D.8
6.設(shè)散列表長m=14,散列函數(shù)H(K)=K%11,已知表中已有4個(gè)結(jié)點(diǎn):r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址為空,如用二次探測再散列處理沖突,關(guān)鍵字為49的結(jié)點(diǎn)地址是_____。
A.8B.3C.5D.9
7.有以下程序:main{inta[]=(2,4,6,8,10},y=0,x,*P;p=&a[1];for(x=1;x<3;x++)y+=p[x];printf("%d\n,y");}程序運(yùn)行后的輸出結(jié)果是()。A.10B.11C.14D.15
8.設(shè)R是一個(gè)二元關(guān)系,S是一個(gè)三元關(guān)系,則下列運(yùn)算中正確的是()。
A.R-SB.R×SC.R∩SD.R∪S
9.在單鏈表指針為p的結(jié)點(diǎn)之后插入指針為s的結(jié)點(diǎn),正確的操作是()。A.p->next=s;s->next=p->next;
B.s->next=p->next;p->next=s;
C.p->next=s;p->next=s->next;
D.p->next=s->next;p->next=s;
10.
11.若有以下定義和語句:chars[10]="abcd!",*s2="\nl23\\";Drintf("%d%d\n",strlen(sl),strlen(s2));則輸出結(jié)果是()。A.55B.105C.107D.58
12.若需要利用形參直接訪問實(shí)參,則應(yīng)把形參變量說明為____參數(shù)。
A.指針B.引用C.值D.變量
13.以下敘述中正確的是()。
A.無論指針變量P具有何種基類型,表達(dá)式“p=p+1”都代表指針P移動(dòng)1個(gè)字節(jié)
B.指針變量具有基類型,基類型不同的指針變量不能直接相互賦值
C.指針變量的賦值操作“p=0;”是非法的
D.通過指針變量存取某個(gè)變量值的方式稱為“直接存取”方式
14.數(shù)組A中,每個(gè)元素的長度為4個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到10,從首地址SA開始連續(xù)存放在存儲(chǔ)器內(nèi),該數(shù)組按行存放時(shí),元素A[8][5]的起始地址為()。
A.SA+292B.SA+296C.SA+300D.304
15.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的運(yùn)行結(jié)果是()。A.852B.963C.741D.875421
16.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達(dá)式a/b+c-k值的類型為:
A.intB.doubleC.floatD.char
17.帶有頭節(jié)點(diǎn)的單向鏈表head,其3個(gè)數(shù)據(jù)節(jié)點(diǎn)A、B、C的連接關(guān)系如下圖所示:節(jié)點(diǎn)類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點(diǎn),在不改變P指向的前提下,以下選項(xiàng)中不能訪問C節(jié)點(diǎn)數(shù)據(jù)成員dt的表達(dá)式是()。A.*(*p).next->next->dt
B.p->next->next->dt
C.(*(*(*p).next).next).dt
D.(*(p->next->next)).dt
18.數(shù)組A中,每個(gè)元素的長度為3個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到10,從首地址SA開始連續(xù)存放的存儲(chǔ)器內(nèi),該數(shù)組按行存放,元素A[8][5]的起始地址為()。
A.SA+141B.SA+144C.SA+222D.SA+225
19.
20.下面軟件中,屬中應(yīng)用軟件的是()
A.UnixB.人事管理系統(tǒng)C.數(shù)據(jù)庫管理理系統(tǒng)D.DOS
二、2.填空題(20題)21.實(shí)現(xiàn)程序可將磁盤中的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請補(bǔ)全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
22.若變量n中的值為24,則print函數(shù)共輸出【】行,最后一行有【】個(gè)數(shù)。
voidprint(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if(!(i%5))
printf("\n");
}
printf("\n");
}
23.在算法的4個(gè)特性中,算法必須能在執(zhí)行有限個(gè)步驟之后終止指的是算法的______特性。
24.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
charsi10],ti10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運(yùn)行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
25.以下程序的定義語句中,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");)
}
26.常用的黑箱測試有等價(jià)類劃分法、【】和錯(cuò)誤推測法3種。
27.計(jì)算機(jī)病毒除有破壞性、潛伏性和激發(fā)性外,還有一個(gè)最明顯的特性是【】
28.診斷和改正程序中錯(cuò)誤的工作通常稱為【】。
29.函數(shù)fun的功能是計(jì)算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。
30.一個(gè)模塊直接訪問另一個(gè)模塊的內(nèi)容,稱為【】藕合。
31.若有如下結(jié)構(gòu)體說明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請?zhí)羁?,以完成?duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。
【】t[20]
32.執(zhí)行以下程序后的輸出結(jié)果是()。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",A);
33.下列程序的輸出結(jié)果是______。
#include<stdio.h>
fun()
{staticinta=0;
a+=3;printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
34.常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
35.下面程序調(diào)用fun函數(shù)動(dòng)態(tài)分配兩個(gè)整型存儲(chǔ)單元,并通過形參傳回這兩個(gè)整型存儲(chǔ)單元的地址給s1和s2,將程序補(bǔ)充完整。
┇
main()
{
int*s1,*s2;
┇
fun(【】);
┇
}
intfun(【】);
{
*p=(int*)malloc(sizeof(int));
*q=(int*)malloc(sizeof(int));
}
36.有以下程序:
prt(int*m,intn)
{inti;
for(i=0;i<n;i++)m[i]++;
}
main()
{inta[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)printf("%d,",a[i];
}
程序運(yùn)行后的輸出結(jié)果是【】。
37.下列程序段的輸出結(jié)果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
38.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==0‖x==1)
return(1);
p=x*func(x-1);
return(p);
}
main()
{printf("%d\n",func(4));
}
39.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指內(nèi)存空間中,形成一個(gè)新字符串s。請?zhí)羁铡?/p>
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstrl[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
40.設(shè)y為血型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
三、1.選擇題(20題)41.已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是
A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.上述說法都不對(duì)
42.以下敘述中錯(cuò)誤的是()
A.在C程序中,APH和aph是兩個(gè)不同的變量
B.C程序中的變量,代表內(nèi)存中的一個(gè)存儲(chǔ)單元,它的值可以根據(jù)需要隨時(shí)修改
C.在C程序中,無論是整數(shù)還是實(shí)數(shù),都能準(zhǔn)確無誤地表示
D.在C程序中,一個(gè)正整數(shù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式來表示
43.有以下程序voidf(int*x,int*y){intt;t=*X;*X=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7);while(p>q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是
A.8,2,3,4,5,6,7,1,
B.5,6,7,8,1,2,3,4,
C.1,2,3,4,5,6,7,8,
D.8,7,6,5,4,3,2,1,
44.閱讀下列程序,當(dāng)運(yùn)行函數(shù)時(shí),輸入asdafaaz67,則輸出為#include<stdio.h>#include<ctype.h>#include<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')str[j++]=str[i];str[j]='\0';}main(){charstr[81];
A.asdafaaz67B.asdafaa267C.asdD.z67
45.若變量已正確定義并賦值,則以下符合C語言語法的表達(dá)式是()。
A.a=a+7;B.a=7+b+c,a++C.int(12.3%4)D.a=a+7=c+b
46.現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向一個(gè)鏈表中連續(xù)的三個(gè)節(jié)點(diǎn)。structnode{chardata;structnode*next;}*p,*q,*r;
現(xiàn)要將q和r所指節(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的連續(xù),以下不能完成此操作的語句是()。
A.q->next=r->next;p->next=r;r->next=q;
B.p->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;p->next=r;
D.r->next=q;p->next=r;q->next=r->next;
47.有以下程序main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后輸出結(jié)果是
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
48.以下程序的功能是進(jìn)行位運(yùn)算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是______。
A.43B.73C.70D.40
49.以下選項(xiàng)中不合法的標(biāo)識(shí)符是
A.printB.FORC.&aD._00
50.設(shè)有如下程序段:intx=2002,y=2003;printf("%d\n",(x,y));則以下敘述中正確的是()。
A.輸出語句中格式說明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),不能正確輸出
B.運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息
C.輸出值為2002
D.輸出值為2003
51.對(duì)于下列定義,不正確的敘述是()。uniondata{inta;charb;doublec;}x=y;
A.變量x所占內(nèi)存的長度等于成員c的長度
B.變量x的地址和它的各成員地址都是相同的
C.可以在定義時(shí)對(duì)x初始化
D.不能對(duì)變量x賦值,故x=y非法
52.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員
53.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為
A.7,8B.8,8C.7,10D.8,10
54.以下程序的輸出結(jié)果是
main()
{intc=35;printf("%d\n",c&c);}
A.0B.70C.35D.1
55.以下4個(gè)選項(xiàng)中,不能被看作是一條語句的是______。
A.{;}B.a=0,b=0,c=0;C.if(a>O);D.if(b==0)m=1;n=2;
56.下列選項(xiàng)中,值為1的表達(dá)式是()。
A.1-'0'B.1-'\0'C.'1'-0D.'\0','0'
57.有以下程序main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)pfintf("%d",i);}printf("\n");}執(zhí)行后的輸出結(jié)果是
A.5B.24C.32D.40
58.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是
A.abs(x-y)<10
B.x-y>-10&&x-y<10
C.!(x-y)<=10||!(y-x)>10
D.(x-y)*(x-y)<100
59.計(jì)算機(jī)病毒不能破壞()中的軟件。
A.ROMB.RAMC.軟盤D.硬盤
60.有以下程序:#include<stdio,h>inta=2;intf(intn){staticinta:3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+:a++;}returnt+a++;main(){ints=a,i;for(i=0;i<3;i++)s+=f(i);prinff("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。
A.26B.28C.29D.24
四、選擇題(20題)61.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運(yùn)行的結(jié)果是()。A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
62.
63.設(shè)intx=7,則~x的值是()。
A.-8B.7C.-1D.1
64.若有如下定義,則__________是對(duì)數(shù)組元素的正確的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
65.下列敘述中正確的是()。
A.有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
B.只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
C.循環(huán)鏈表是非線性結(jié)構(gòu)
D.雙向鏈表是非線性結(jié)構(gòu)
66.有三個(gè)關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.除D.并
67.兩個(gè)或兩個(gè)以上模塊之間關(guān)聯(lián)的緊密程度稱為()。
A.耦合度B.內(nèi)聚度C.復(fù)雜度D.數(shù)據(jù)傳輸特性
68.
69.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}輸出結(jié)果是()。A.28B.27C.42D.4l
70.(40)將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成()
A.屬性
B.關(guān)系
C.鍵
D.域
71.下列字符串不屬于標(biāo)識(shí)符的是()
A.sumB.averageC.day_nightD.M,D.JOHN
72.
73.以下選項(xiàng)錯(cuò)誤的是
74.
75.在c語言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。A.aut0和Iegister
B.extern和register
C.aut0和static
D.static和register
76.C語言的基本單位是()。
A.函數(shù)B.過程C.子程序D.子函數(shù)
77.軟件詳細(xì)設(shè)計(jì)生產(chǎn)的圖如右圖:該圖是()。
A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
78.某循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:m),初始狀態(tài)為front=rear=m?,F(xiàn)經(jīng)過一系列的入隊(duì)操作和退隊(duì)操作后,front=m一1,real"=m,則該循環(huán)隊(duì)列中的元素個(gè)數(shù)為()。
A.m一1B.1C.mD.0
79.
80.一名工作人員可以使用多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)可被多名工作人員使用,則實(shí)體工作人員與實(shí)體計(jì)算機(jī)之間的聯(lián)系是()。
A.—對(duì)一B.—對(duì)多C.多對(duì)多D.多對(duì)一
五、程序改錯(cuò)題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:將str所指字符串中出現(xiàn)的t1所指字符串全部替換成t2所指字符串,所形成的新的字符串放在w所指的數(shù)組中。在此處,要求t1和t2所指字符串的長度相同。例如,當(dāng)str所指字符串中所指的內(nèi)容為abcdabcdef9,t1所指字符串中的內(nèi)容為bc,t2所指字符串中的內(nèi)容為11時(shí),結(jié)果在w所指的數(shù)組中的內(nèi)容應(yīng)為alldalldefg。請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是求斐波那契數(shù)列中大于t的最小的數(shù),結(jié)果由函數(shù)返回。斐波那契數(shù)列F(n)的定義為F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)例如,當(dāng)t=1000時(shí),函數(shù)值為1597。注意:部分源程序給出如下。請勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<conio.h>#include<math.h>#include<stdio.h>intfun(intt){}main(){intn;n=1000;printf(“n=%d,f=%d\n”,n,fun(n));}
參考答案
1.D
2.C
3.C程序首先定義整型變量a和b,a的初值為123456。接著通過while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當(dāng)前值的個(gè)位數(shù)字(a%10)賦給b,a自身除以10。再通過switch語句判斷b的值執(zhí)行對(duì)應(yīng)分支語句。所以對(duì)應(yīng)a的每個(gè)個(gè)位數(shù),b的取值為6,5,4,3,2,1。當(dāng)b取值為6時(shí),執(zhí)行default,輸出6,接著繼續(xù)執(zhí)行case1,通過break退出switch。執(zhí)行下一次循環(huán),當(dāng)b取值為5時(shí),執(zhí)行case5輸出5。執(zhí)行下一次循環(huán),當(dāng)b取值為4時(shí),執(zhí)行case4輸出4,繼續(xù)執(zhí)行case5輸出5。接著執(zhí)行下一次循環(huán),當(dāng)b取值為3時(shí),執(zhí)行case3輸出3,執(zhí)行case4輸出4,執(zhí)行case5輸出5;當(dāng)b取值為2時(shí),執(zhí)行case2輸出2,通過break退出switch;當(dāng)b取值為1時(shí),執(zhí)行break,此時(shí)a的取值為0,循環(huán)終止。綜上,程序輸出結(jié)果為:65453452。本題答案為C選項(xiàng)。
4.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結(jié)束符'\0'的長度。故選A。
5.C根據(jù)題意,要求統(tǒng)計(jì)字符數(shù)組s中阿拉伯?dāng)?shù)字的個(gè)數(shù)?!癱hars[]=“012xy\\08s34f4w2”;”,其元素是字符型。字符‘0的ASCII值是48,字符‘\\0’的ASCII值是0,因此可以計(jì)算出‘\\0’之前阿拉伯?dāng)?shù)字的個(gè)數(shù),由字符數(shù)組s可知,有3個(gè)阿拉伯?dāng)?shù)字。故本題答案為C選項(xiàng)。
6.D
7.C由題目的語句P=&a[1]可知,P指向a數(shù)組中下標(biāo)為1的元素“4”,又因?yàn)镻為指針變量,所以P[x]與*(p+x)等價(jià),因而在for循環(huán)語句中,第一次循環(huán)P[1]指向a數(shù)組中下標(biāo)為2的元素“6”,第二次循環(huán)p[2]指向a數(shù)組中下標(biāo)為3的元素“8”,所以y=6+8=14,因而選項(xiàng)C為正確答案。
8.BB?!窘馕觥筷P(guān)系的交(∩)、并(∪)和差(-)運(yùn)算要求兩個(gè)關(guān)系是同元的,顯然作為二元的R和三元的S只能做笛卡兒積運(yùn)算。
9.B
10.D
11.A\\n和\\\\分別為轉(zhuǎn)義字符,各占據(jù)一個(gè)字符的位置。
12.A
13.B指針自增或自減1,移動(dòng)的字節(jié)數(shù)與指針變量的基類型有關(guān),假設(shè)指針變量p基類型為int類型,那么“p=p+1”表示指針P移動(dòng)4個(gè)字節(jié)(通常int類型占4個(gè)字節(jié)),選項(xiàng)A錯(cuò)誤;指針變量具有基類型,基類型不同的指針變量不能直接相互賦值,選項(xiàng)B正確;將0賦給指針變量,表示指針變量的值為空,這是合法的,選項(xiàng)C錯(cuò)誤;通過指針變量存儲(chǔ)指向變量的地址并通過指針存取變量的值,稱為“間接存取”方式,選項(xiàng)D錯(cuò)誤。故本題答案為B選項(xiàng)。
14.B
15.A答疑:[解析]第一次for循環(huán),y的值為9.y%3的值為0.滿足條件打印-y,即先減一-后打印,所以打印8;第二次for循環(huán),y的值為7.y%3的值為1.不執(zhí)行打印語句;第三次for循環(huán),y的值為6.y%3的值為0.滿足條件打印--y,即先減-后打印,所以打印5;第四次for循環(huán),y的值為4.不滿足條件,不執(zhí)行打印語句;第五次for循環(huán),y的值為3.滿足條件,打印輸出2;第六次for循環(huán),y的值為1.不滿足條件,不執(zhí)行打印語句。
16.B解析:雙目運(yùn)算中兩邊運(yùn)算量類型轉(zhuǎn)換規(guī)律:
運(yùn)算數(shù)1運(yùn)算數(shù)2轉(zhuǎn)換結(jié)果類型
短整型長整型短整型->長整型
整型長整型整型->長整型
字符型整型字符型->整型
有符號(hào)整型無符號(hào)整型有符號(hào)整型->無符號(hào)整型
整型浮點(diǎn)型整型->浮點(diǎn)型
在a/b的時(shí)候,a、b的類型不一致,根據(jù)類型轉(zhuǎn)換規(guī)則,把整型轉(zhuǎn)換成double類型,之后的加、減類似。轉(zhuǎn)化規(guī)則為char,short->int->unsigned->long->double←float。
17.Alink結(jié)構(gòu)體中的next是鏈表中下一個(gè)節(jié)點(diǎn)的地址。由于p當(dāng)前指向節(jié)點(diǎn)A,因此p->next是B的地址。p->next->next是C的地址,訪問C的節(jié)點(diǎn)數(shù)據(jù)成員dt可以使用C的地址訪問,即p->next->next->dt,選項(xiàng)B正確?;蛘呤褂媒庖谩?”運(yùn)算符:(*p)表示節(jié)點(diǎn)A,(*p).next表示B的地址,*((*p).next)表示節(jié)點(diǎn)B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示節(jié)點(diǎn)C,所以C的數(shù)據(jù)成員dt可以表示為(*((*(*p).next).next)).dt,因?yàn)椤?”運(yùn)算符優(yōu)先級(jí)高于“*”運(yùn)算符,所以也可以寫為(*(*(*p).next).next).dt,選項(xiàng)C正確。同理,也可以既使用指針運(yùn)算符,又使用解引用運(yùn)算符來訪問C的節(jié)點(diǎn)數(shù)據(jù)成員dt,即(*(p->next->next)).dt,選項(xiàng)D正確。選項(xiàng)A中,*p表示A節(jié)點(diǎn),(*p).next表示節(jié)點(diǎn)B的地址,由于“->”運(yùn)算符的優(yōu)先級(jí)高于“*”運(yùn)算符,因此先執(zhí)行“->”,即表達(dá)式(*p).next->next->dt引用了C節(jié)點(diǎn)的數(shù)據(jù)成員dt,然后再執(zhí)行解引用運(yùn)算“*”,這是錯(cuò)誤的。故本題答案為A選項(xiàng)。
18.C
19.A
20.B
21.3!feof(f1)3\r\n!feof(f1)解析:要實(shí)現(xiàn)文件復(fù)制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時(shí)至少要指定兩個(gè)參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應(yīng)填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對(duì)應(yīng)的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。
22.54
23.有窮性有窮性解析:算法的4個(gè)基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報(bào),其中,算法的有窮性指的是算法必須在有限的時(shí)間內(nèi)完成,即算法必須在執(zhí)行有限個(gè)步驟之后終止。
24.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0;若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組,所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中。
本題中,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所指的存儲(chǔ)空間中,然后輸出字符數(shù)組t。
25.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。
26.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價(jià)類劃分、邊界值分析法和錯(cuò)誤推測法3種。
27.傳染性或傳播性傳染性或傳播性
28.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于調(diào)試工具找出軟件錯(cuò)誤的具體位置。軟件測試貫穿整個(gè)軟件生命期,而調(diào)試主要在開發(fā)階段。
29.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。
30.內(nèi)容內(nèi)容
31.strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結(jié)構(gòu)體類型的定義:
struct結(jié)構(gòu)體類型名
{
成員項(xiàng)表;
};
定義結(jié)構(gòu)體變量的的形式為:
struct結(jié)構(gòu)體類型名變量1,變量2,...?
其中變量包括;一般變量、指針變量、數(shù)組變量等。
32.a=14a=14解析:在“逗號(hào)表達(dá)式(表達(dá)式1,表達(dá)式2)”中,其運(yùn)算方法是先求表達(dá)式1的值,然后求表達(dá)式2的值,整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。首先3*5=15,a=10,a+4=14,最后輸出的運(yùn)算結(jié)果為14。
33.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因?yàn)閒un函數(shù)中變量a為static類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。
34.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實(shí)心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
35.&s1&s2
36.234562,3,4,5,6解析:函數(shù)prt(a,5)的功能是使得a數(shù)組中,從a[0]~a[4]中元素均增1。
37.HelloHello解析:字符串中,數(shù)值0或符號(hào)'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個(gè)字符就是結(jié)束標(biāo)志。因此,只輸出前五個(gè)字符,即Hello。
38.2424解析:本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當(dāng)x=4時(shí),不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結(jié)果為4*3*2*1-24。
39.*t++*t++解析:要使sstrcpy函數(shù)實(shí)現(xiàn)字符串復(fù)制,必須將t字符串中的每個(gè)字符逐個(gè)復(fù)制到s字符串中,可以使用*s=*t;s++;t++,也可以寫成*s++=*t++,因此空格處填*t++。
40.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對(duì)2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。
41.C解析:a數(shù)組存放的是字符串,系統(tǒng)會(huì)自動(dòng)在字符串的最后加上一個(gè)'\\0',所以a數(shù)組的長度為4,而b數(shù)組的長度為3,故a數(shù)組長度大于b數(shù)組長度。
42.C
43.D解析:在C語言中,函數(shù)參數(shù)的默認(rèn)傳遞方式是傳值,即函數(shù)內(nèi)部的形參只是調(diào)用時(shí)的實(shí)參的一個(gè)拷貝,改變形參,實(shí)參不會(huì)被改變.如果想要實(shí)現(xiàn)傳址調(diào)用只能使用傳遞指針的方式來實(shí)現(xiàn).利用指針作函數(shù)的參數(shù)時(shí),無論形參指針還是實(shí)參指針?biāo)傅亩际峭粋€(gè)內(nèi)存地址,所以形參如果改變了這個(gè)地址中的內(nèi)容,也就是改變了實(shí)參所指的地址內(nèi)容.本題程序開頭定義了一個(gè)函數(shù)f(),在函數(shù)中用一個(gè)臨時(shí)變量t交換了兩個(gè)指針參數(shù)所指的地址內(nèi)容,所以該函數(shù)的作用就是交換兩個(gè)參數(shù)所指的內(nèi)容。在主函數(shù)中,首先定義了一個(gè)int型數(shù)組a,并定義了兩個(gè)int型指針p、q分別指向數(shù)組a的第一個(gè)元素和最后一個(gè)元素。然后使用一個(gè)while循環(huán)調(diào)用函數(shù)f()不斷交換兩個(gè)指針?biāo)傅膬?nèi)容,每次交換后p往后移動(dòng)一個(gè)元素,q往前移動(dòng)一個(gè)元素,直到q不再大于p,即直到兩個(gè)指針在數(shù)組a的中間相遇為止。所以,程序最終運(yùn)行的結(jié)果是數(shù)組a中的所有元素全被反序排列一次。故應(yīng)該選擇選項(xiàng)D。
44.A解析:本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對(duì)于刪除字符的操作都是采用“留下”字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動(dòng),每走到一個(gè)字符都判斷其是否為空格,若不是空格(注意在if()的單引號(hào)之間有一個(gè)空格),則將其保存str[j]中。注意j的下標(biāo)變化、初值及最后加串結(jié)束符'\\0'。
45.B
46.D解析:D中的操作將會(huì)丟失r后面的鏈表結(jié)構(gòu),不能保持鏈表的連續(xù)。
47.C解析:該題目的關(guān)鍵是要搞清楚“&&”和“‖”兩個(gè)邏輯運(yùn)算符的運(yùn)算功能。運(yùn)算符“&&”和“‖”是雙目運(yùn)算符,要求有兩個(gè)運(yùn)算量。且規(guī)定邏輯與運(yùn)算中,只有前面運(yùn)算量的值為真時(shí),才需要判別后面的值。只要前面為假,就不必判別后面的值。而邏輯或則為只要前為真,就不必判別后面的值;只有前為假,才判別后。本題中j++值為真,不進(jìn)行k++的運(yùn)算,所以k的值保持不變。
48.A解析:a=7^3=00000111^00000011=00000100=4;b=~4&3=~00000100&00000011=11111011&00000011=00000011=3
49.C解析:考查C語言標(biāo)識(shí)符。C語言合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線。因?yàn)檫x項(xiàng)C)中的標(biāo)識(shí)符的第一個(gè)字符為'&',所以C)為本題的正確答案。
50.D解析:本題考查逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的形式為:表達(dá)式1,表達(dá)式2,其求解過程為:先求解表達(dá)式1,再求解表達(dá)式2。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。
51.C解析:本題主要考查的知識(shí)點(diǎn)是聯(lián)合體的內(nèi)存使用。聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間,各個(gè)成員分量全部是從低地址方向開始使用內(nèi)存單元。不能在定義共用體變量時(shí)對(duì)它初始化。
52.B解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。數(shù)據(jù)庫管理系統(tǒng)建立在操作系統(tǒng)之上,實(shí)施對(duì)數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過數(shù)據(jù)庫管理系統(tǒng)。另外,數(shù)據(jù)庫管理系統(tǒng)還承擔(dān)著數(shù)據(jù)庫的安全保護(hù)工作,按照數(shù)據(jù)庫管理員所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。
53.D解析:在C語言中,定義一維數(shù)組的語句一般形式如下:
類型名數(shù)組名[常量表達(dá)式];
一維數(shù)組的引用形式為:數(shù)組名[下標(biāo)表達(dá)式]。count表示能被2整除或被5整除的個(gè)數(shù),i則計(jì)算有多少個(gè)數(shù)組元素。
54.C解析:本題考查按位與“&”。因?yàn)?&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。
55.D解析:選項(xiàng)D中有兩條語句。
56.B解析:在C程序中,字符量可參與任何整數(shù)運(yùn)算。字符參與運(yùn)算時(shí),首先要將字符轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼值再參與整數(shù)運(yùn)算。字符'1'對(duì)應(yīng)的ASCII碼值是49,字符'0'對(duì)應(yīng)的ASCII碼值是48,字符'\\0'是字符串結(jié)束標(biāo)識(shí)符NULL,其對(duì)應(yīng)的ASCII碼值是0。
57.C解析:當(dāng)for循環(huán)執(zhí)行到第30次時(shí),i的值為30能被5整除,然后繼續(xù)執(zhí)行兩次if語句,i經(jīng)過兩次自加1運(yùn)算,值變?yōu)?2,能被8整除,故此時(shí)第一次執(zhí)行“printf('%d',i);”語句,即輸出32。
58.C解析:本題考核的知識(shí)點(diǎn)是關(guān)系運(yùn)算和邏輯運(yùn)算的混合應(yīng)用。選項(xiàng)A用了一個(gè)絕對(duì)值函數(shù)abs(),故選項(xiàng)A正確:選項(xiàng)B中用了一個(gè)“&&”邏輯與,故選項(xiàng)B正確:選項(xiàng)C中,“||”左邊的式子如為真,將不再判斷其后的表達(dá)式的值,故選項(xiàng)C不正確;選項(xiàng)D為本題中數(shù)學(xué)關(guān)系式的一個(gè)等價(jià)命題,故選項(xiàng)D正確.所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
59.A
60.C解析:在函數(shù)外面定義的變量a是全局變量,其作用范圍從定義該變量的位置開始到本文件的結(jié)束;在f函數(shù)中的if子句(復(fù)合語句)和else子句中定義的變量a是局部變量,其作用范圍只在其所在的復(fù)合語句內(nèi);在f函數(shù)中定義的第一個(gè)變量a是靜態(tài)局部變量,其作用范圍只限于函數(shù)f內(nèi)部,無論被調(diào)用多少次都只初始化一次,并且保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,該變量不對(duì)復(fù)合語句產(chǎn)生作用,所以,f函數(shù)的返回值是這個(gè)a變量和t值相加的結(jié)果。
61.Dfun函數(shù)的功能是對(duì)數(shù)組a[]的元素從大到小進(jìn)行排序。
62.D
63.A本題主要考查按位求反運(yùn)算和C語言正負(fù)數(shù)的表示,“O”代表正數(shù),“1”代表負(fù)數(shù);x=7的二進(jìn)制為00111,第一個(gè)0代表正數(shù),~x為11000,第一個(gè)l代表負(fù)數(shù),值為8。
64.D
65.B解析:如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足以下兩個(gè)條件:(l)有且只有一個(gè)根結(jié)點(diǎn);(2)每個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。如果一個(gè)數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱之為非線性結(jié)構(gòu),故A項(xiàng)錯(cuò)誤。有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu),如二叉樹,B項(xiàng)說法正確。循環(huán)鏈表和雙向鏈表都屬于線性鏈表。故C、D項(xiàng)錯(cuò)誤。
66.C
67.A解析:本題考核模塊獨(dú)立性的評(píng)價(jià)。評(píng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陶瓷生產(chǎn)全流程解析
- 《GBT 7066-2015 紡織品 色牢度試驗(yàn) 耐沸煮色牢度》專題研究報(bào)告
- 《GB-T 15418-2009檔案分類標(biāo)引規(guī)則》專題研究報(bào)告
- 《GBT 31727-2015 透明薄膜磨花程度試驗(yàn)方法》專題研究報(bào)告
- 《幼兒文學(xué)》課件-4.2幼兒童話特點(diǎn)
- 商鋪?zhàn)赓U合同租金支付擔(dān)保合同
- 主播行業(yè)才藝主播崗位招聘考試試卷及答案
- 2025二級(jí)建造師《法規(guī)》沖刺押題答案
- 2025年計(jì)算機(jī)維修合作協(xié)議書
- 2025年環(huán)保特種電線電纜合作協(xié)議書
- 2025年看守所民警述職報(bào)告
- 景區(qū)接待員工培訓(xùn)課件
- 客源國概況日本
- 學(xué)位授予點(diǎn)評(píng)估匯報(bào)
- 《Stata數(shù)據(jù)統(tǒng)計(jì)分析教程》
- 2024-2025學(xué)年廣州市越秀區(qū)八年級(jí)上學(xué)期期末語文試卷(含答案)
- 寵物診療治療試卷2025真題
- 媒體市場競爭力分析-洞察及研究
- 口腔科口腔潰瘍患者漱口液選擇建議
- 精神科抑郁癥心理干預(yù)培訓(xùn)方案
- 2025年學(xué)法普法考試答案(全套)
評(píng)論
0/150
提交評(píng)論