版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年浙江省金華市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.數(shù)據(jù)在計算機(jī)存儲器內(nèi)表示時,如果元素在存儲器中的相對位置能反映數(shù)據(jù)元素之間的邏輯關(guān)系,則稱這種存儲結(jié)構(gòu)為()。
A.存儲結(jié)構(gòu)B.邏輯結(jié)構(gòu)C.順序存儲結(jié)構(gòu)D.鏈?zhǔn)酱鎯Y(jié)構(gòu)
2.設(shè)無向圖G中的邊的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},則從頂點a出發(fā)進(jìn)行深度優(yōu)先遍歷可以得到的一種頂點序列為()。
A.aedfcbB.acfebdC.aebcfdD.aedfbc
3.設(shè)s1="Good",s2="",s3="Bye",則s1、s2和s3連接后的結(jié)果是()。
A.GoodB.GoodByeC.GoodByeD.Bye
4.有以下定義和語句:structworkers{intnum;charname[20];charC;struct{intday;intmonth;intyear;)S;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。A.*pw.year=1980;
B.w.year=1980;
C.pw->year=1980
D.w.S.year=1980;
5.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
6.結(jié)構(gòu)化程序所規(guī)定的三種最基本控制結(jié)構(gòu)是A.A.輸入、處理、輸出
B.樹形、網(wǎng)形、環(huán)形
C.順序、選擇、循環(huán)
D.主程序、子程序、函數(shù)
7.以下不合法的用尸標(biāo)識符是()。A.A.804zhangB._hhC.yy614D.If
8.設(shè)有定義“char*c;”,以下選項中能夠使c正確指向一個字符串的是()。
A.charstr[]=“string”;c=str;
B.scanf(“%s”,c);
C.c=getchar();
D.*c=“string”;
9.快速排序在_____情況下最易發(fā)揮其長處。
A.被排序數(shù)據(jù)中含有多個相同排序碼
B.被排序數(shù)據(jù)已基本有序
C.被排序數(shù)據(jù)完全無序
D.被排序數(shù)據(jù)中最大值和最小值相差懸殊
10.若執(zhí)行下面的程序時,從鍵盤上輸入5和2,則輸出結(jié)果是______。main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d\n",k);}
A.5B.3C.2D.0
11.下面哪個不是用來解決哈希表沖突的開放地址法()
A.線性探測法B.線性補(bǔ)償探測法C.拉鏈探測法D.隨機(jī)探測法
12.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
13.下述哪一條是順序存儲結(jié)構(gòu)的優(yōu)點()。
A.插入運算方便B.可方便地用于各種邏輯結(jié)構(gòu)的存儲表示C.存儲密度大D.刪除運算方便
14.與單鏈表相比,雙向鏈表的優(yōu)點之一是()。
A.插入、刪除操作更加簡單B.可以隨機(jī)訪問C.可以省略表頭指針或表尾指針D.順序訪問相鄰結(jié)點更加靈活
15.
16.串的長度是______。A.A.串中不同字符的個數(shù)
B.串中不同字母的個數(shù)
C.串中所含字符的個數(shù)且字符個數(shù)大于零
D.串中所含字符的個數(shù)
17.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0
18.下面敘述中錯誤的是()。
A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
B.對被調(diào)試的程序進(jìn)行“錯誤定位”是程序調(diào)試的必要步驟
C.程序調(diào)試通常也稱為Debug
D.軟件測試應(yīng)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性
19.下列二維數(shù)組初始化語句中,不正確的是()。
A.intb[][2]={1,2,3,4,5,6,7};
B.intb[3][5]={0,0,0};
C.intb[][4]={{1,2},{3,4,5},{6}};
D.intb[3][2]={(1,2),(3,4),(5,6)};
20.有以下程序:
程序運行后的輸出結(jié)果是()。
A.4B.34C.31D.32
二、2.填空題(20題)21.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
22.以下程序通過函數(shù)SunFun求這里f(x)=x2+1,由F函數(shù)實現(xiàn)。請?zhí)羁铡?/p>
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{return(【】);}
23.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
24.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
25.若變量n中的值為24,則prnt函數(shù)共輸出【】行。
voidprnt(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if!(i%5))printf("\n");
}
printf("\n");
}
26.程序的運行結(jié)果為【】。
main()
{charc1='a',c2='b',c3='c';
printf("a%cb%c\tc%c\n",c1,c2,c3);
}
27.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大的值和它所在的下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請?zhí)羁铡?/p>
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{intI;
*max=a[0];
*d=0;
for(I=0;【】;I++)
if(*max<【】)
{*max=a[I];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
28.下列程序的運行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c,n;
a=2;b=0;c=1;n=1;
while(n<=3)
{c=c*a;b=b+c;++n;}
printf("b=%d",B);
}
29.若輸入2、2,則下列程序的運行結(jié)果為【】。
main()
{inti,j,(*p)[4],
a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
p=a;
scanf("%d%d",&i,&j);
printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));
}
30.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達(dá)式是【】。
31.下面程序的運行結(jié)果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
32.以下程序運行后的輸出結(jié)果是______。
#include<string.h>
voidfun(char*s,intp,intk)
{inti;
for(i=p;i<k-1;i++)s[i]=s[i+2];
}
main()
{chars[]="abcdefg";
fun(s,3,strlen(s));puts(s);
}
33.以下程序由終端鍵盤輸入一個文件名,然后把從終端鍵盤輸入的字符依次放到該文
件中,用井作為結(jié)束輸入的標(biāo)志。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
charch,fname[10];
printf("Inputthenameoffile\n");
gets(fname);
if((fp=【】)==NULL)
{printf("Cannotope\n");exit(O);}
printf("Enterdata\n");
while((ch=getchar())!='#')
fputc(【】,fp);
fclose(fp);
}
34.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(【】);
}
35.在面向?qū)ο蟮某绦蛟O(shè)計中,類描述的是具有相似性質(zhì)的一組【】。
36.函數(shù)check用來判斷字符串s是否是“回文”(順讀和倒讀都一樣的字符串為“回文”,如abeba)。是則函數(shù)返回值1,否則返回值0,請?zhí)羁铡?/p>
intcheck(char*s)
{
char*p1,*p2;intn;
n=strlen(s);
p1=s;
p2=【】;
while(p1<p2)
{
if(*p1!=*p2)break;
else{p1++;p2--;}
}
if(【】)return0;
elsereturn1;
}
37.若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。
c=(a-=(b-5));
c=(a%11)+(b=3);
38.下列程序中的函數(shù)stropy2()實現(xiàn)字符串兩次復(fù)制,即將t所指字符串復(fù)制兩次到s所指內(nèi)存空間中,合并形成一個新字符串。例如,若t所指字符串為:efgh,調(diào)用strcpy2后,s所指字符串為:efghefgh。請?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
voidstrcpy2(char*s,char*t)
{char*p=t;
while(*s++=*t++);
s=【】;
while(【】=*p++);
}
main()
{charstr1[100]="abed",str2[]="efgh";
strcpy2(str1,str2);printf("%s\n",str1);
}
39.軟件工程的出現(xiàn)是由于【】。
40.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,當(dāng)s<t時返回負(fù)值。請?zhí)羁铡?/p>
my_cmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}return【】;
}
三、1.選擇題(20題)41.下面的程序ASCⅡ。main(){intx=3,y=0,z=0;if(x==y+z)printf("****");elseprintf("####");}
A.有語法錯誤不能通過編譯B.輸出****C.可以通過編譯,但是不能通過連接,因而不能運行D.輸出####
42.循環(huán)鏈表的主要優(yōu)點是()
A.不再需要頭指針了
B.從表中任一結(jié)點出發(fā)都能訪問到整個鏈表
C.在進(jìn)行插入、刪除運算時,能更好的保證鏈表不斷開
D.已知某個結(jié)點的位置后,能夠容易的找到它的直接前件
43.若有定義和語句:char*sl="12345",*s2="1234";printf("%d\n",strlen(stren(sl,s2)));則輸出結(jié)果()
A.4B.5C.9D.10
44.設(shè)有以下說明語句:typedefstruet{intn;charch[8];}PER;則下面敘述中正確的是()。
A.PER是結(jié)構(gòu)體變量名
B.PER是結(jié)構(gòu)體類型名
C.typedefstruct是結(jié)構(gòu)體類型
D.struct是結(jié)構(gòu)體類型名
45.對長度為n的線性表進(jìn)行順序查找,在最壞的情況下所需要的比較次數(shù)為______。
A.log2nB.n/2C.nD.n+l
46.下列說法不正確的是()。
A.調(diào)用函數(shù)時,實參可以是表達(dá)式
B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元
C.調(diào)用函數(shù)時,將實參的值復(fù)制給形參,使實參變量和形參變量在數(shù)值上相等
D.調(diào)用函數(shù)時,實參與形參的類型必須一致
47.下列敘述中錯誤的是()。
A.一個C語言程序只能實現(xiàn)一種算法
B.c程序可以由多個程序文件組成
C.C程序可以由一個或多個函數(shù)組成
D.一個c函數(shù)可以單獨作為一個C程序文件存在
48.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;執(zhí)行該程序段后,a的值為______。
A.12B.11C.10D.編譯出錯
49.以下程序中與語句k=a>b?(b>c?1:0):0;功能等價的是
A.if((a>b)&&(b>c))k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b<=c)k=1;elsek=0;
D.if(a>b)k=1;elseif(b<c)k=1;
50.以下對C語言函數(shù)的有關(guān)描述中,正確的是
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.函數(shù)必須有返回值,返回值類型不定
51.以下敘述中錯誤的是()。
A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
52.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
53.以下程序的輸出結(jié)果是main(){inta=4,b=5,c=0,d;d=!a&&!b||!c;printf(“%d\n”,d;}
A.1B.0C.非0的數(shù)D.-1
54.閱讀下面程序段,則執(zhí)行后的結(jié)果為#inclide"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
55.以下4個程序中,完全正確的是
A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}
B.#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}
C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}
D.include<stdio.h>main(){/*programming*/printf("programming!\n");}
56.在調(diào)用函數(shù)時,如果實參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是().
A.地址傳遞B.單向值傳遞C.由實參傳給形參,再由形參傳回實參D.傳遞方式由用戶指定
57.當(dāng)變量c的值不為2、4、6時,值也為“真”的表達(dá)式是
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<二6)&&(c%2!=1)
58.有以下程序:#include<stdio.h>main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%d\n",n);}程序執(zhí)行后的輸出結(jié)果是()。
A.n=5B.n=2C.n=3D.n=4
59.設(shè)有下列二叉樹:
對此二叉樹先序遍歷的結(jié)果是
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
60.下面程序的運行結(jié)果是()。#include<stdio.h>main(){inta=1,b=10;do{b-=a;a++;}while(b--<0);printf("a=%d,b=%d\n",a,b);}
A.a=3,b=11B.a=2,b=8C.a=1,b=-1D.a=4,b=9
四、選擇題(20題)61.數(shù)據(jù)庫關(guān)系模型中可以有三類完整性約束,下列選項中不屬于三類完整性約束的是()。
A.實體完整性規(guī)則B.參照完整性規(guī)則C.對象完整性規(guī)則D.用戶自定義完整性規(guī)則
62.
63.設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課SC(學(xué)號,課號,成績),則表sc的關(guān)鍵字(鍵或碼)為()。
A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績
64.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。
A.記錄長度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式
65.有以下程序程序運行后的輸出結(jié)果是()。
A.0B.2C.1D.3
66.有以下程序:
注意:字母a的ASCIl碼值為97,程序運行后的輸出結(jié)果是()。
A.dB.goC.godD.good
67.若運行以下程序時,從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運行結(jié)果是()。
A.v0=7,vl=4,v2=7
B.v0=8,vl=4,v2=8
C.v0=11,vl=4,v2=11
D.v0=13,vl=4,v2=12
68.以下程序的輸出結(jié)果是()。
#include<stdio.h>
voidmain()
{inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
69.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
70.對下列二叉樹
進(jìn)行中序遍歷的結(jié)果是()。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
71.有以下程序:
程序運行后的輸出結(jié)果是()o
A.24B.720C.120D.6
72.
73.
設(shè)變量已正確定義,則以下能正確計算f=n!的程序是()。
A.f=0:for(i=1;i<=n;i++)f*=i:
B.F=1:for(i=l;i<2n;i++)f*=i:
C.f=l:for(i=n;i>1;i++)f*=i:
D.f=1;for(i=n;i>=2;i--)f*=i:
74.要求通過while循環(huán)不斷讀人字符,當(dāng)讀入字母N時結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是
()。
75.以下敘述中錯誤的是()。
A.用戶所定義的標(biāo)識符允許使用關(guān)鍵字
B.用戶所定義的標(biāo)識符應(yīng)盡量做到“見名識意”
C.用戶所定義的標(biāo)識符中,大、小寫字母代表不同標(biāo)識
D.用戶所定義的標(biāo)識符必須以字母或下劃線開頭
76.“年齡在18~25之間”這種約束是屬于數(shù)據(jù)庫當(dāng)中的()。A.A.原子性措施B.一致性措施C.完整性措施D.安全性措施
77.若有定義intx'y;并已正確給變量賦值。則以下選項中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x_y)等價的是()。
A.(x-y011x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y=o)
78.
79.有以下程序:
程序運行后的輸出結(jié)果是()。
A.2,3,1,6,8,7,5,4,10,9,
B.3,4,2,7,9,8,6,5,11,10,
C.2,4,3,9,12,12,11,11,18,9,
D.1,2,3,6,8,7,5,4,10,9,
80.
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:將P所指字符串中的所有字符復(fù)制到b中,要求每復(fù)制三個字符之后插入一個空格。
例如,若給a輸入字符串:ABCDEFGKHHK,調(diào)用函數(shù)后,字符數(shù)組b中的內(nèi)容為:ABCDEFGHIJK。請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
六、程序設(shè)計題(1題)82.某學(xué)生的記錄由學(xué)號、8門課程成績和平均分組成,學(xué)號和8門課程的成績已在主函數(shù)中給出,請編寫函數(shù)fun,其功能是:求出該學(xué)生的平均分,并放入記錄的ave成員中。
例如,學(xué)生的成績是:85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應(yīng)為78.875。注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fIm的花括號中填入你編寫的若干語句。
參考答案
1.C
2.B
3.C
4.D結(jié)構(gòu)workers中的成員s是一個嵌套的結(jié)構(gòu)類型定義,因此在給year賦值時,要用“.”運算在深入一層訪問到最基本的成員year,只有D項反映出了這一點。
5.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。
6.C解析:結(jié)構(gòu)化程序設(shè)計方法采用順序、選擇和循環(huán)三種基本程序控制結(jié)構(gòu)編寫程序,從而使程序具有好的結(jié)構(gòu)。
7.AC語言規(guī)定,標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或下劃線。
8.A選項A為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時為其分配確定的地址)。C選項錯誤,getchar函數(shù)輸入一個字符給字符型變量,而不是字符指針。B選項和D選項有類似的錯誤,兩個選項并無語法錯誤,但運行時可能會出現(xiàn)問題。因為在B選項和D選項中,字符指針沒有被賦值,是一個不確定的值,指向一個不確定的內(nèi)存區(qū)域,這個區(qū)域可能存放有用的指令或數(shù)據(jù)。在這個不確定的區(qū)域重新存放字符串,可能會發(fā)生無法預(yù)知的錯誤。故本題答案為A選項。
9.C
10.C解析:本題考查簡單的if...else語句。先執(zhí)行條件if(a<b),顯然不成立,則執(zhí)行else語句。
11.C
12.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。
13.C
14.D
15.B
16.D解析:串的長度指的是串中字符的個數(shù),且其字符個數(shù)可以為零。選項D正確。
17.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因為題中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.0。
18.A軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,并不涉及改正錯誤,所以選項A錯誤。程序調(diào)試的基本步驟有:錯誤定位、修改設(shè)計和代碼,以排除錯誤、進(jìn)行回歸測試,防止引進(jìn)新的錯誤。程序調(diào)試通常稱為Debug,即排錯。軟件測試的基本準(zhǔn)則有:所有測試都應(yīng)追溯到需求、嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應(yīng)避免檢查自己的程序、窮舉測試不可能、妥善保存測試計劃等文件。故答案為A選項。
19.D解析:在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0;C語言規(guī)定,對于二維數(shù)組,只可以省略第1個方括號中的常量表達(dá)式,而不能省略第2個方括號中的常量表達(dá)式;賦的初值不能多于事先定義好的數(shù)組元素個數(shù)。
在選項D)賦值表達(dá)式中,對每一維的元素賦初值應(yīng)用{},而不是()。
20.C本題重點考察二維數(shù)組名作為實參進(jìn)行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實參為二維數(shù)組名a和兩個整數(shù)4.0,這樣對應(yīng)定義fun函數(shù)首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數(shù)對s[i][j]進(jìn)行操作實際上就是對主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個元素。因此C選項正確。
21.完善性軟件維護(hù)活動包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。
22.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:題目中要求從x=0開始將f(x)的值累加起來,直到x=10。在SunFun()函數(shù)中用了一個for循環(huán),每循環(huán)一次將f(x)累加到s中,所以在本題的第一個空格處我們應(yīng)該填x,然后x+1,共循環(huán)10次。F()函數(shù)的功能應(yīng)該是求數(shù)學(xué)表達(dá)式f(x)的值,所以其返回值應(yīng)該為x*x+1。
23.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中,然后輸出字符數(shù)組t。
24.數(shù)據(jù)存儲數(shù)據(jù)存儲
25.55解析:本題的關(guān)鍵在于if(!(i%5))printf('\\n),這句,即如果i可被5整除時,則換行。i值為24,可以被5整除4次,并余4,因此,prnt函數(shù)共輸出5行,最后一行有4個數(shù)。
26.aabbccaabbcc解析:printf函數(shù)先輸出a,遇%c,接著輸出變量c1的值a,然后輸出bb,遇%t,從第9個位置開始輸出cc。
27.I<na[I]I<n,a[I]解析:該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它們所指向的變量時,要對它們進(jìn)行指針運算,即*號運算。
28.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當(dāng)n=4時,判斷條件不滿足,退出循環(huán)。
29.a[22]=11
30.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整數(shù)x的絕對值大于5,則x大于5或x小于5,用C語言表示即為:x>5||x<-5或者x<-5||x>5。故本題答案為;x>5||x<-5或者x<-5||x>5。
31.x=11x=11解析:在對無符號數(shù)的右移是高位補(bǔ)0。
32.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實現(xiàn)的功能簡單來說就是將字符串s下標(biāo)為p+2~k范圍的字符整體復(fù)制到字符串s下標(biāo)為p~k-2的位置上。在本題中strlen(s)返回s的長度7,所以復(fù)制的字符為s[5]~s[7],即'f'、'g','\\0'三個字符,復(fù)制到s[3]~s[5],故最終輸出的字符串為abcfg(因為s[5]為'\\0',所以后面的字符不會輸出)。
33.fopen(fname:"w")
34.str[i]或str+iistr[i]或str+i\r\ni
35.對象對象解析:將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。
36.s+n-1p1<p2s+n-1\r\np1<p2解析:判斷是否“回文”字符串,應(yīng)該使用兩個字符型指針,一個從前往后遍歷字符串,另一個從后往前遍歷字符串,直到它們中途相遇,如果每次兩個指針?biāo)傅淖址枷嗤瑒t為“回文”字符串。程序中已經(jīng)使p1=s,即指向字符串的第一個字符了,所以p2應(yīng)該指向s的最后一個字符,故第一空應(yīng)填s+n-1。比較兩個指針時,如果有一次不相同,則跳出循環(huán),因為此時已可肯定不是“回文”字符串。如果是while循環(huán)的條件p1<p2不滿足時自然結(jié)束的循環(huán),則每次比較都是相同的,兩個指針是中途相遇了才結(jié)束比較。兩種情況的區(qū)別就是pl<p2是否成立。故第二空應(yīng)該填p1<p2。
37.33解析:這里:b-5=4,a-=4之后a的值為6,并把它賦給c。此時b的值并未被改變。在第2個表達(dá)式中,也只有賦值表達(dá)式b=3改變了b的值。所以兩行語句執(zhí)行完畢,b的值應(yīng)該為3。
38.s-1或--s或s--*s++s-1或--s或s--\r\n*s++解析:在函數(shù)。strcpy2()中,首先將指針t保存到指針p中,然后進(jìn)入第1個while()循環(huán),其循環(huán)條件為*s++=*t++,其中“*”和“++”運算符的優(yōu)先級相同,但他們的結(jié)合性為從右至左,而“=”運算符優(yōu)先級比較低,所以原表達(dá)式等價于(*s++)=(*(t++)),即將t當(dāng)前所指內(nèi)容復(fù)制到s當(dāng)前所指地址中,然后讓s和t同時往后移動一位,整個表達(dá)式返回的是復(fù)制給s的值。所以,當(dāng)t所指內(nèi)容是字符串結(jié)束符'\\0',時,while循環(huán)結(jié)束,原先t所指的整個字符串也就復(fù)制到s所指的地址中去了。但是,while循環(huán)最后一次判斷也會讓s和t往后移動一位,即此時s指向了字符串結(jié)束符'\\0'的后一位。所以第2次復(fù)制字符串之前,應(yīng)先將s指針往回移動一位,故前一空應(yīng)該填入s-1或其他等價形式。接下來的while循環(huán)實現(xiàn)第二次復(fù)制,照抄第1次的while循環(huán)就行,故后一空應(yīng)填入*s++。
39.軟件危機(jī)的出現(xiàn)軟件危機(jī)的出現(xiàn)
40.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時,若字符串已到了字符串的結(jié)束標(biāo)記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準(zhǔn)備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時,就以兩個當(dāng)前字符的差返回。所以在空框處應(yīng)填入*s-*t,保證在e>t時返回正值,當(dāng)s<t時返回負(fù)值。
41.D解析:對于printf()函數(shù),若有格式控制字符,則在格式控制字符的位置輸出變量i的值;否則,直接輸出雙引號內(nèi)的內(nèi)容。
42.B解析:循環(huán)鏈表就是將單向鏈表中最后一個結(jié)點的指針指向頭結(jié)點,使整個鏈表構(gòu)成一個環(huán)形,這樣的結(jié)構(gòu)使得從表中的任一結(jié)點出發(fā)都能訪問到整個鏈表。
43.A
44.B解析:本題通過typedef在定義一個結(jié)構(gòu)體類型的同時,把它白定義成類型名PER,故PER是結(jié)構(gòu)體類型名。所以,4個選項中B為所選。
45.C解析:順序查找的最壞情況是所找的元素性表的最后,因此查找的比較次數(shù)是線性表的長度,即n。
46.B
\n本題考查函數(shù)調(diào)用的基本概念。調(diào)用函數(shù)時,實參的形式可以是具體的數(shù)值,也可以是表達(dá)式。實參將數(shù)值或表達(dá)式的值傳遞給形參,因而兩者的類型必須保持一致;形參在運算過程中會發(fā)生改變,但不一定會影響到實參值,所以可知兩者不共用內(nèi)存單元。
\n
47.A答案A
解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實現(xiàn)多種算法。
48.B解析:執(zhí)行p=&a;后,p指向整數(shù)a,*p即p的目標(biāo)變量,也就是a;所以a=*p+b等價于a=a+b,可知a的值最終為11。
49.A解析:三目運算表達(dá)式的規(guī)則為如果“?”前面的表達(dá)式的值為真,則取“:”前的表達(dá)式的值,否則,取“:”后面表達(dá)式的值。分析題目中給出的表達(dá)式可知,如果a>b和b>c同時成立,k=1,否則k=0。
50.A解析:C語言中的函數(shù)可以進(jìn)行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。
51.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進(jìn)行整體引用,因此選項A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項B是對的。C語言程序在運行過程中,系統(tǒng)不自動檢驗數(shù)組元素的下標(biāo)是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。
52.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。
53.A解析:由于單目運算符優(yōu)先級高于“&&”和“||”運算,所以先計算!a、!b和!c分別為“假”、“假”、“真”,然后是&&運算和“||”運算,原表達(dá)式就等價于“假”&&“假”||“真”又由于“&&”的優(yōu)先級高于“||”運算符,所以先計算“假”&&“假”,還是為假,最后是“假”||“真”為真。因此最后d被賦值為1,故最后輸出為1。
54.C
55.B解析:選項A)main();的分號是錯誤的,不能有分號;選項C)的注釋語句多了兩個*號;選項D)include前面沒有#。
56.B
57.B解析:滿足表達(dá)式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當(dāng)變量c的值不為2,4,6時,其值只能為3或5,所以表達(dá)式c!=3和c!=5中至少有一個為真,即不論c為何值,選項B中的表達(dá)式都為“真”。
58.D解析:for循環(huán)中,當(dāng)i=2時,i%3為真,結(jié)束本次while循環(huán),!i為假,執(zhí)行n++,n為1;當(dāng)i=3時,i%3=0,執(zhí)行n++,n為2,!i為假,執(zhí)行n++,n為3;當(dāng)i=4時,i%3為真,結(jié)束本次while循環(huán),!i為假,執(zhí)行n++,n為4;當(dāng)i=5時,for循環(huán)結(jié)束。這時輸出n=4。
59.C解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求先序遍歷遍歷順序應(yīng)該為:訪問根結(jié)點->先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF。
60.B解析:本題考查兩個知識點:自加自減運算符和do-while循環(huán)語句。do-while循環(huán)條件是b--<0,所以循環(huán)體語句只執(zhí)行一次。
61.C數(shù)據(jù)庫關(guān)系模型中可以有三類完整性約束,實體完整性,參照完整性和用戶自定義完整性。
62.B\r\n
63.C學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇C項。
64.D層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。
65.A在ifelse語句中else總是與離它最近的if酉己對。本題目中x為1,因此“!x”為0,所以執(zhí)行elseif語句中的內(nèi)容,判斷(x==0)是否成立,因為x為1,所以條件不成立,因此elseif內(nèi)部的if.一else語句不再執(zhí)行,所以y的值還是初始值0。
66.Afun函數(shù)的功能是輸出字符串中ASCII碼能被2整除的字符,g的ASCIl碼為l03,0的ASCIl碼為111,d的ASCIl碼為l00,只有d滿足。因此,本題答案為A)。
67.D本題考查switch語句的掌握。必須撐握以下內(nèi)容:首先應(yīng)該明白switch語句的語法格式:
另外,以下幾點關(guān)于switch語句的重點:
①系統(tǒng)在執(zhí)行時計算開關(guān)表達(dá)式的值;②根據(jù)所得的值在各個case標(biāo)號表達(dá)式中尋找匹配,直到發(fā)現(xiàn)與表達(dá)式匹配的
一般而言,在多分支結(jié)構(gòu)中總會出現(xiàn)”意外”的情況,這時均可歸入default程序段,作統(tǒng)一的處理。default標(biāo)號是可選性的,不必每次都有,視需要而定。switch語句中還可以包含switch語句,形
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程測量勞動合同
- 出口貨物報關(guān)代理合同
- 正式公司轉(zhuǎn)讓合同格式
- 2024年廣告位合同范本
- 2024貸款還款協(xié)議書
- 家庭裝修項目協(xié)議書樣本
- 2024年單位租車協(xié)議書樣本
- 建設(shè)工程地基處理協(xié)議書
- 權(quán)威委托代理合同范文大全
- 房屋拆遷合同經(jīng)典版本
- 251直線與圓的位置關(guān)系(第1課時)(導(dǎo)學(xué)案)(原卷版)
- 2024浙江紹興市人才發(fā)展集團(tuán)第1批招聘4人(第1號)高頻難、易錯點500題模擬試題附帶答案詳解
- 幼兒園說課概述-課件
- 冠狀動脈介入風(fēng)險預(yù)測評分的臨床應(yīng)用
- 35導(dǎo)數(shù)在經(jīng)濟(jì)中的應(yīng)用
- 蘇科版(2024新版)七年級上冊數(shù)學(xué)期中學(xué)情評估測試卷(含答案)
- 部編版《道德與法治》三年級上冊第10課《父母多愛我》教學(xué)課件
- 氣管插管操作規(guī)范(完整版)
- 2024-2025學(xué)年外研版英語八年級上冊期末作文范文
- 四級勞動關(guān)系協(xié)調(diào)員試題庫含答案
- 運城中學(xué)2023-2024學(xué)年八年級上學(xué)期期中考試數(shù)學(xué)試卷(含解析)
評論
0/150
提交評論