




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022-2023年內(nèi)蒙古自治區(qū)興安盟全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.甲乙兩個(gè)聰明人上街,撿到一張10塊錢的購(gòu)物卡,兩人就想出一個(gè)辦法來分配這張卡。兩個(gè)分別將自己出的價(jià)格寫在紙上,然后看誰出的價(jià)高就給誰,并且那個(gè)出價(jià)高的人要把出的錢給對(duì)方。現(xiàn)在甲有6塊錢,乙有8塊錢,甲乙雙方都知道對(duì)方當(dāng)前有多少錢并且都希望自己收益高于對(duì)方。問最后誰獲得的錢多()
A.甲多B.乙多C.一樣多D.有可能出現(xiàn)有人賠錢的情況
2.在長(zhǎng)度為n的順序存儲(chǔ)的線性表中,刪除第i個(gè)元素(1≤i≤n)時(shí),需要從前向后依次前移____個(gè)元素。
A.n-iB.n-i+1C.n-i-1D.i
3.以下與函數(shù)fseek(fp,0L,SEEK_SET)有相同作用的是
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
4.線性表是具有n個(gè)()的有限序列。
A.字符B.數(shù)據(jù)元素C.數(shù)據(jù)項(xiàng)D.表元素
5.下列語句中,說法正確的是______。
A.C程序書寫格式嚴(yán)格,每行只能寫一個(gè)語句
B.C程序書寫格式嚴(yán)格,每行必須有行號(hào)
C.C程序書寫格式自由,每行可以寫多條語句,但之間必須用逗號(hào)隔開
D.C程序書寫格式自由,一個(gè)語句可以分寫在多行
6.關(guān)于數(shù)組和指針,以下說法錯(cuò)誤的是()。
A.數(shù)組名本身就是一個(gè)指針,指向數(shù)組內(nèi)存的起始位置
B.既可以讀入數(shù)據(jù)到數(shù)組中,也可以讀入數(shù)據(jù)到未賦初值的指針中
C.可以將指針指向一個(gè)同類型的數(shù)組
D.指針可以指向同類型的數(shù)組中的任意一個(gè)元素
7.下列定義語句中錯(cuò)誤的是()。
A.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
B.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C.intx[][3]={0},{1},{2},{3}};
D.intx[][3]={1,2,3,4};
8.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序的運(yùn)行結(jié)果是()。
A.6B.3C.8D.12
9.若有下列說明語句int(*p)();則標(biāo)識(shí)符p代表的是()
A.一個(gè)用于指向函數(shù)的指針變量,函數(shù)返回值的類型為int型
B.一個(gè)帶回值類型為整型的函數(shù)名
C.一個(gè)用于指向整型數(shù)據(jù)的指針變量
D.一個(gè)帶回值類型為指針類型的函數(shù)名
10.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][10]={“One”,“Three”,“Five”},*p=str[0];printf(“%s,”,p+10);printf(“%d\n”,strlen(p+=10));}程序運(yùn)行后的輸出結(jié)果是()。
A.Three,4B.出錯(cuò)C.Three,5D.Five,5
11.有以下定義語句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是()。
A.chara=a;B.chara=\nC.chara=aa;D.chara=\x2d;
12.有以下程序:#include<stdio.h>main(){chara==‘0’,b=‘A’;inti;for(i=1;i<6;i++)if(i%2==0)putchar(a+i);elseputchar(b+i);}程序運(yùn)行后的輸出結(jié)果是()。
A.A2A3BB.2B4DFC.B4CD7D.B2D4F
13.
14.可用作C語言用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof
15.帶有頭節(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
16.在最壞情況下比較次數(shù)相同的是()。A.冒泡排序與快速排序B.簡(jiǎn)單插入排序與希爾排序C.簡(jiǎn)單選擇排序與堆排序D.快速排序與希爾排序
17.計(jì)算機(jī)算法指的是()。
A.計(jì)算方法B.排序方法C.解決問題的有限運(yùn)算序列D.調(diào)度方法
18.
19.在說明語句:int*f();中,標(biāo)識(shí)符f代表的是
A.一個(gè)用于指向整型數(shù)據(jù)的指針變量
B.一個(gè)用于指向一維數(shù)組的行指針
C.一個(gè)用于指向函數(shù)的指針變量
D.一個(gè)返回值為指針型的函數(shù)名
20.在執(zhí)行inta[][3]={{1,2},{3,4}};語句后,a[1][2]的值是()
A.2B.4C.3D.0
二、2.填空題(20題)21.下面程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
22.請(qǐng)讀程序片段:
inta=17;
printf("%d,%o\n",a,a);
以上程序片段的輸出結(jié)果是【】。
23.要求使下列程序輸出5個(gè)整數(shù),請(qǐng)?zhí)羁铡?/p>
for(i=0;i<=______;printf("%d\n",i+=2));
24.函數(shù)delete(s,i,n)是作用是從字符串s中刪除從第i個(gè)字符開始的n個(gè)字符,請(qǐng)?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=0;
while(s[length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]\'\0';
}
25.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請(qǐng)將語句補(bǔ)充家整。
seanf("%d",【】);
printf("%d\n",【】);
26.以下程序運(yùn)行后的輸出結(jié)果是【】。
#defineS(x)4*x*x+1
mah()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
27.若有如下程序:
main()
{intx=20;
if(x>10)printf("%d",x-=5);
if(x>15)printf("%d",x);
}
則程序運(yùn)行后的輸出結(jié)果是【】。
28.下面程序的運(yùn)行結(jié)果是【】。
#inelude<stdio.h>
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
}
main()
{intaa[3]={1,2,3},s;
s=f(&aa[0],3);printf("%d\n",s);
}
29.用復(fù)合的賦值運(yùn)算符將變量x中的值增大2的賦值表達(dá)式是【】。
30.下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁铡?/p>
#include"stdio.h"
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
31.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:
abcl23edf456gh,執(zhí)行程序后輸出:123456。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype,h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
}
32.在結(jié)構(gòu)化設(shè)計(jì)方法中,數(shù)據(jù)流圖表達(dá)了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個(gè)______實(shí)際上對(duì)應(yīng)一個(gè)處理模塊。
33.若a的值為1,則表達(dá)式!a‖++a的值是______。
34.設(shè)Y是int型變量,請(qǐng)寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。
35.能把計(jì)算機(jī)處理好的結(jié)果轉(zhuǎn)換成為文本、圖形、圖像或聲音等形式并輸送出來的設(shè)備稱為【】設(shè)備。
36.瀑布模型將軟件生存周期劃分為【】、開發(fā)和運(yùn)行3個(gè)階段。
37.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。
38.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。
39.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語言表達(dá)式是______。
40.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。
三、1.選擇題(20題)41.在軟件測(cè)試設(shè)計(jì)中,軟件測(cè)試的主要目的是
A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯(cuò)誤D.盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤
42.下列程序的輸出結(jié)果是()。
main()
{inta,b,d=25;
a:d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
43.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成________。
A.屬性B.關(guān)系C.鍵D.域
44.設(shè)x是int型變量,則計(jì)算表達(dá)式“x=25/3%3”的值是()
A.0B.iC.2D.非法
45.若希望下列的程序運(yùn)行后輸出25,程序空白處的正確選項(xiàng)是()。
main()
{inti,j=50,a[]={7,4,10,5,8};
for()
j+=a[i];
printf("%d",j-40);
}
A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i:2;i<4;++i
46.下面程序的輸出是______。main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1if(y<x)break;}printf("x=%d,y=%d,=%d\n",x,y,a);}
A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1
47.下列選項(xiàng)中非法的表達(dá)式是________。
A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1
48.軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測(cè)試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源
49.以下對(duì)枚舉類型名的定義中正確的是()
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three=200};
C.enuma={"one","two","four"};
D.enuma{"nine","two","three"};
50.設(shè)有下列二叉樹:
對(duì)此二叉樹中序遍歷的結(jié)果為______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
51.有以下程序:main(){intx[8]={8,7,6,5,0,0},*s;s=x+3;printf("%d\n",s[2]);}程序運(yùn)行后的輸出結(jié)果是______。
A.隨機(jī)值B.0C.5D.6
52.設(shè)有定義:intn1=0,n2,*p=&n2,*q=&nl;,下列賦值語句中與n2=n1;語句等價(jià)的是()。
A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;
53.當(dāng)3.5in(英寸)軟盤的寫保護(hù)窗口開著時(shí),該軟盤()
A.只能寫不能讀B.既能讀又能寫C.只能讀不能寫D.不能使用
54.若有定義:char*st="howareyou";下列程序段中正確的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
55.當(dāng)變量c的值不為2、4、6時(shí),值也為"真"的表達(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)
56.若有說明inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是______。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
57.若有定義:inta[2][3];,以下選項(xiàng)中對(duì)a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]
58.當(dāng)a=4,b=5,c=7,d=6時(shí),執(zhí)行下面一段程序:if(a<B)if(c<D)x=1;elseif(a<C)if(b<C)x=2:elsex=3;elsex=4;elsex=5;程序執(zhí)行后,x的值為()。
A.1B.2C.3D.4
59.在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是()。
A.整型表達(dá)式B.整型常量C.整型常量或整型表達(dá)式D.任何類型的表達(dá)式
60.設(shè)有以下程序:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0];下面選項(xiàng)中,表達(dá)式值為6的是______。
A.p++->nB.p->n++C.(*p).n++D.++p->n
四、選擇題(20題)61.
62.有以下程序函數(shù)fun只對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行操作.:
程序運(yùn)行后的輸出結(jié)果是()。A.A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
63.
64.下列關(guān)于單目運(yùn)算符++,——的敘述中正確的是()。
A.它們的運(yùn)算對(duì)象可以是任何變量和常量
B.它們的運(yùn)算對(duì)象可以是char型變量和int型變量,但不能是float型變量
C.它們的運(yùn)算對(duì)象可以是int型變量,但不能是double型變量和float型變量
D.它們的運(yùn)算對(duì)象可以是char型變量、int型變量和float型變量
65.有以下程序:
程序運(yùn)行后的輸出結(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,
66.若程序中有宏定義行:
67.
68.
69.
70.第
42
題
下面說明不正確的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*p;p=a="china"
71.若有以下定義和語句
structa
{intn,m;};
structast[3]={{2,3},{4,5},{6,7}};
structa*p=st;
則以下錯(cuò)誤的引用是
A.(p++)->n;B.st[0].n;C.(*p).n;D.P=&st.m,
72.若運(yùn)行以下程序時(shí),從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運(yùn)行結(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
73.C語言中以只讀方式打開一個(gè)文件應(yīng)選擇_______________參數(shù)。
A.“r”B.“w”C.“rb”D.“a”
74.源程序的文檔不包括()。
A.符合號(hào)名的命名要有實(shí)際意義B.正確的文檔形式C.良好的視覺組織D.正確的程序注釋
75.
76.以下語句的輸出結(jié)果是()。
inta=-1,b=4,k;
k=(++a<0)!(b--<=0);
printf("%d,%d,%d\n",k,a,b);
A.1,0,4B.1,0,3C.0,0,3D.0,0,4
77.
78.在面向?qū)ο蠓椒ㄖ?,一個(gè)對(duì)象請(qǐng)求另一對(duì)象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
79.
80.下列描述錯(cuò)誤的是()。
A.繼承分為多重繼承和單繼承
B.對(duì)象之間的通信靠傳遞消息來實(shí)現(xiàn)
C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征
D.類是具有共同屬性、共同方法的對(duì)象的集合
五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是:將長(zhǎng)整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。
例如,當(dāng)s中的數(shù)為87653142時(shí),t中的數(shù)為7531。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun(),其功能是:實(shí)現(xiàn)兩個(gè)字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到p1所指的字符串的后面。例如,分別輸入下面兩個(gè)字符串:“FirstString——”“SecondString”程序輸出:“FirstString——SecondString”注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:
參考答案
1.C
2.A
3.D解析:本題考查的是文件操作函數(shù).題目中fseek(fp,0L,SEEK_SET)的作用將文件指針定位到文件開始。feof(fp)的作用是判斷文件指針是否已到文件結(jié)尾,因此選項(xiàng)A不對(duì)。ftell(fp)的作用是獲取當(dāng)前文件指針的位置,因此選項(xiàng)B不對(duì)。fgetc(fp)的作用是從文件中讀取一個(gè)字節(jié),因此選項(xiàng)C不對(duì)。rewind(中)的作用是將文件指針重定位到文件開頭,所以應(yīng)該選擇D。
4.B
5.D
6.BC語言中,數(shù)組名本身就是一個(gè)指針,指向數(shù)組內(nèi)存的起始位置,選項(xiàng)A正確;已經(jīng)定義的數(shù)組被分配了內(nèi)存空間,所以可以讀入數(shù)據(jù)到數(shù)組中,未賦初值的指針沒有分配內(nèi)存空間,不可以讀入數(shù)據(jù),選項(xiàng)B錯(cuò)誤;可以將指針指向一個(gè)同類型的數(shù)組,選項(xiàng)C正確;指針指向一個(gè)數(shù)組后,可以通過移動(dòng)指針,指向該數(shù)組中的任意一個(gè)元素,選項(xiàng)D正確。故本題答案為B選項(xiàng)。
7.B二維數(shù)組定義的一般形式是:類型說明符數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]。其中常量表達(dá)式1表示第1維長(zhǎng)度,常量表達(dá)式2表示第2維長(zhǎng)度。若對(duì)二維數(shù)組的全部元素賦初值,第1維長(zhǎng)度可以不給出。但如果只確定行數(shù),而不確定列數(shù),就無法正確賦值。故本題答案為B選項(xiàng)。
8.A本題中,fun函數(shù)第1次調(diào)用為fun(8,fun(5,6))。因?yàn)閒un(5,6)的返回值為5,所以第2次調(diào)用為fun(8,5),即返回值為6。故本題答案為A選項(xiàng)。
9.A
10.Cmain函數(shù)定義一個(gè)二維字符數(shù)組str,它包含3個(gè)字符串,每個(gè)字符串存放在一個(gè)長(zhǎng)度為10的一維數(shù)組中。指針變量P指向str[0],即第1個(gè)字符串“One”。由于“One”存放在長(zhǎng)度為10的一維數(shù)組中,因此P+10指向下一個(gè)字符串“Three”,長(zhǎng)度為5。故本題答案為C選項(xiàng)。
11.Cchar類型用于存儲(chǔ)單個(gè)字符的簡(jiǎn)單變量類型,它可以被指定為一個(gè)字符常量或一個(gè)整數(shù)。
12.D程序首先定義字符變量a并賦初值‘0’,定義字符變量b并賦初值‘A’。然后執(zhí)行for循環(huán),當(dāng)i為偶數(shù)時(shí),輸出字符“a+i”;當(dāng)i為奇數(shù)時(shí),輸出字符“b+i”。因?yàn)閿?shù)字和字母的ASCII值都是按順序遞增的,所以本題輸出為B2D4F。故本題答案為D選項(xiàng)。
13.A
14.B
15.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)。
16.A冒泡排序、快速排序、簡(jiǎn)單插入排序、簡(jiǎn)單選擇排序在最壞情況下比較次數(shù)均為n(n-1)/2,堆排序在最壞情況下比較次數(shù)為nlog2n,希爾排序在最壞情況下需要比較的次數(shù)是nr(1﹤r﹤2)。本題答案為A選項(xiàng)。
17.C
18.B
19.D解析:帶回指針值的函數(shù),其一般定義形式為:
類型標(biāo)識(shí)符*函數(shù)名(參數(shù)表);
例如;int*f(x,y);
其中,f是函數(shù)名,調(diào)用它以后能得到一個(gè)指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運(yùn)算符和()運(yùn)算符,而()優(yōu)先級(jí)高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個(gè)函數(shù)前面有一個(gè)*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。
20.D
21.1-21,-2解析:考查嵌套的循環(huán)結(jié)構(gòu)。題中外層while循環(huán)的循環(huán)條件是\ue008y--!=-1\ue009,即y>=0;內(nèi)層do厀hile循環(huán)的循環(huán)條件是y--,即y-->0,y>=1。
22.1721
23.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個(gè)整數(shù)則需要的條件是i<=8。
24.length++i<lengthlength++\r\ni<length解析:第一個(gè)循環(huán)極有可能是計(jì)算串的長(zhǎng)度,在i<=length時(shí)字符才被刪除,被刪除的是第i個(gè)到第i+n或最后一個(gè)間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。
25.k[7]*kk[7]*k解析:scanf()函數(shù)有兩個(gè)參數(shù),第—個(gè)參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號(hào)和格式字符組成)第二個(gè)參數(shù)是一地址列表(地址列表是由多個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個(gè)空格處位于scanf()函數(shù)的第二個(gè)參數(shù)處,所以,第一個(gè)空應(yīng)該填地址k。printf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時(shí)原樣輸出)第二個(gè)參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個(gè)需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號(hào)分隔開)。而第二個(gè)空位于printf()函數(shù)的第二個(gè)參數(shù)處,所以應(yīng)該填*K。
26.8181解析:本題的宏調(diào)用S(i+j)將被替換成表達(dá)式4*i+j*i+j+l等于4*6+8*6+8+1=24+48+8+1=81。所以本題輸出81。
27.1515解析:本題首先定義了一個(gè)變量x并初始化為20。然后第一個(gè)if語句判斷x是否>10,結(jié)果為真,則執(zhí)行后面的輸出語句,輸出結(jié)果是賦值表達(dá)式X-=5的值,所以輸出15,同時(shí)x的值也變成15。第二個(gè)if語句再判斷x是否>15時(shí)條件為假,結(jié)束程序。所以程序運(yùn)行后的輸出結(jié)果是15。
28.66解析:已知aa[3]={1,2,3},n=3,調(diào)用函數(shù)f,n>1成立,執(zhí)行a[0]+f(&a[1],n-1);即1+f(&a[1],2),遞歸調(diào)用函數(shù)f,將a[1]的地址作為參數(shù)傳給數(shù)組a,使數(shù)組a的首地址變?yōu)?a[1],數(shù)組中的元素只有2,3;2傳給n,這時(shí)n=2,n>1仍然成立,繼續(xù)調(diào)用a[0]+f(&a[1],n-1);即執(zhí)行1+2+f(&a[1],1),因?yàn)樯洗芜f歸調(diào)用函數(shù)f后數(shù)組中的元素為2,3,所以此次的a[1]為3,調(diào)用后的a[0]為3。所以最后結(jié)果為1+2+3=6。
29.x+=2
30.dat""w"或"bi.dat""w+"或"bi.dat""r+"dat','w'或'bi.dat','w+'或'bi.dat','r+'解析:本題的考點(diǎn)是fopen()函數(shù),此函數(shù)的格式是fopen(文件名,使用文件方式),題目的要求是將從鍵盤讀入的文本寫到文件中,因此選擇的打開方式應(yīng)該是'w'(只寫)。或者是讀寫“r+”或“w+”。
31.s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]解析:字符數(shù)組的初始化,字符串的輸入和輸出的應(yīng)用。C語言沒有字符串變量,字符串不是存放在一個(gè)變量中而是存放在一個(gè)字符型數(shù)組中,因此為了存放字符串,常常在程序中定義字符型數(shù)組;字符串存放在字符數(shù)組中,但字符數(shù)組與字符串可以不等長(zhǎng),C語言規(guī)定以“\\0”字符作為字符串結(jié)束標(biāo)志。
本題中,chars[80],d[80];定義了兩個(gè)字符型數(shù)組,可以放入80個(gè)字符。gets函數(shù)是c語言提供的一個(gè)專門用于讀字符串的函數(shù),它讀入全部字符(包括空格),直到遇到回車為止。本題中,讀入字符串s后,開始比較s中的每個(gè)字符是否為數(shù)字字符,因?yàn)樽址麛?shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,所以只需比較相應(yīng)的ASCII碼值是否在48('0'的ASCII代碼)與57('9'的ASCII代碼)之間,或者直接與'0','9'進(jìn)行比較,如果是數(shù)字字符則將此字符存入d數(shù)組中,不是則繼續(xù)進(jìn)行下一字符的比較,直至s結(jié)束(即'0'的出現(xiàn))。將“'\\0'”字符作為字符串d結(jié)束標(biāo)志,最后調(diào)用puts函數(shù)輸出d。所以在空格處應(yīng)填入比較語句s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或&&48<=s[i]或57>=s[i]。
32.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過程。其中的每一個(gè)加工對(duì)應(yīng)一個(gè)處理模塊。
33.11解析:邏輯運(yùn)算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。
34.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。
35.輸出輸出
36.計(jì)劃計(jì)劃解析:瀑布模型是B.W.Boehm于1976年提出的。它將軟件生存周期劃分為計(jì)劃、開發(fā)、運(yùn)行3個(gè)時(shí)期,每個(gè)時(shí)期又分為若干個(gè)階段。
37.交換排序交換排序解析:常見的排序方法有插入排序(包括簡(jiǎn)單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡(jiǎn)單選擇排序和堆排序等)。注意:常見的排序方法及其作用機(jī)制和區(qū)別。
38.交換排序交換排序解析:所謂排序是指將一個(gè)無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡(jiǎn)單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。
39.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”,即整數(shù)x的絕對(duì)值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。
40.252H252H解析:要解答本題,首先要明白在對(duì)指針進(jìn)行加,減運(yùn)算時(shí),數(shù)字“1”不是十進(jìn)制數(shù)的“1”,而是指“1”個(gè)存儲(chǔ)單元長(zhǎng)度。1個(gè)存儲(chǔ)單元長(zhǎng)度占存儲(chǔ)空間的多少,應(yīng)該視具體情況而定,如果存儲(chǔ)單元的基類型是血型,則移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移2個(gè)字節(jié);如果存儲(chǔ)單元基類型是float型,則移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。
41.D解析:使用人工或自動(dòng)手段來運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。
42.B解析:算術(shù)運(yùn)行符“/”、“%”的優(yōu)先級(jí)處于同一級(jí),并且兩者的結(jié)合性都是從左到右。所以算術(shù)表達(dá)式運(yùn)算過程為:a=25/10%9=2%9=2;當(dāng)邏輯運(yùn)算符“&&”兩邊的值都是非零時(shí),邏輯表達(dá)式的值才為真(即為1)。所以b=2&&(-1)=1。
43.B解析:關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì)的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性,實(shí)體集也可以轉(zhuǎn)換成關(guān)系。
44.C
45.D解析:要想使程序輸出是25,則i-40=25,j=65,而j初值是50,所以填入for循環(huán)中的語句,使引用的數(shù)組元素累加為65-50=15即可。
46.D解析:注意的是x++中x值的引用時(shí),這里應(yīng)當(dāng)是先引用,后自加,具體執(zhí)行過程如下:第—次while循環(huán):條件為真,執(zhí)行a=a+1=1;此時(shí),x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);第二次while循環(huán);條件為假,此時(shí)x的值已為5,退出while循環(huán),執(zhí)行printf。
47.D解析:賦值表達(dá)式的左側(cè)不能為常量或表達(dá)式,所以D是非法的表達(dá)式。
48.D軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中主要的資源有硬件資源、通信資源、輔助資源等。(1)硬件資源是指組成計(jì)算機(jī)及相關(guān)應(yīng)用所需要的硬件,它是軟件開發(fā)必不可少的資源,因?yàn)闊o論什么樣的軟件工具都需要在硬件上完成任務(wù),它是其他資源的基礎(chǔ)資源。(2)通信資源是指為軟件開發(fā)提供通信支撐的資源,它與測(cè)試數(shù)據(jù)無關(guān)。(3)支持軟件是指為軟件開發(fā)提供操作平臺(tái)的軟件,如常用的面向?qū)ο箝_發(fā)的Rose軟件,它主要是軟件開發(fā)的工具。通過對(duì)上述分析的總結(jié),可以知道本題的正確答案選D。
49.B解析:枚舉類型的定義類似于結(jié)構(gòu)體和共用體,所以選項(xiàng)A和C不正確。大括號(hào)中的枚舉元素應(yīng)該使用合法標(biāo)識(shí)符來定義,而不是字符串常量,所以選項(xiàng)D不正確。故應(yīng)該選擇B。
50.B解析:所謂中序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹;并且在遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。
51.B解析:本題定義了數(shù)組x[8]和指針變量s,由C語言規(guī)定,指針加1的含義是使指針指向數(shù)組的下一個(gè)元素,而不是指針值簡(jiǎn)單的加1,因此通過s=x+3;使s指向數(shù)組元素x[3]。由于指向數(shù)據(jù)的指針變量可以帶下標(biāo)表示,如s[i]與*(s+i)等價(jià)。因此題目要求輸出s[2]的值,即*(s+2)的值,也就是x[5]的值,為0。
52.A解析:在定義指針變量p和q時(shí),分別把變量n2和n1的地址賦給了指針變量p和q,所以*p和*q中內(nèi)容就分別是變量n2和n1的值,所以語句*p=*q與語句n2=n1等價(jià)。因此選項(xiàng)A)正確。
53.C
54.A解析:本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達(dá)式對(duì)字符數(shù)組賦值,如下面的語句就是非法的:strl=“China”,如果想把“China”這5個(gè)字符放到數(shù)組strl中,除了逐個(gè)地輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個(gè)字符串復(fù)制到一字符數(shù)組中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企圖用以下語句來實(shí)行賦值(將str2的值傳給strl):strl=str2;不能用賦值語句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。
strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)
其中,需要注意的是,字符數(shù)組1的長(zhǎng)度不應(yīng)小于字符串2的長(zhǎng)度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(strl),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。
55.B解析:滿足表達(dá)式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當(dāng)變量c的值不為2,4,6時(shí),其值只能為3或5,所以表達(dá)式c!=3和c!=5中至少有一個(gè)為真,即不論c為何值,選項(xiàng)B中的表達(dá)式都為'真'。
56.B解析:指針是—種用來存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因?yàn)椤?”和“*”兩個(gè)運(yùn)算符的優(yōu)先級(jí)相同,按自右而左的方向結(jié)合,所以*&j運(yùn)算選進(jìn)行&j運(yùn)算,得j的地址,再進(jìn)行*運(yùn)算,取所得地址里面的值,故*&j與j等價(jià)。
57.D解析:a是一個(gè)2行3列的二維數(shù)組,行下標(biāo)和列下標(biāo)都是從0開始的,數(shù)組中的元素為a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下標(biāo)最大值為1,列下標(biāo)最大值為2,因此選項(xiàng)A、B、C都是錯(cuò)誤的引用。計(jì)算選項(xiàng)D中數(shù)組元素的下標(biāo)后得a[0][0],為正確的引用。
58.B
59.C解析:在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型可以是整型常量,也可以是整型表達(dá)式。
60.D
61.C
62.A由函數(shù)fun(int*a,intn)中語句if(a[j]
溫馨提示
- 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àng)目建議書
- 2025年建筑防水卷材及制品項(xiàng)目建議書
- 企業(yè)臨時(shí)保安合同范本
- 合資合伙協(xié)議合同范本
- 醫(yī)院保安協(xié)議合同范本
- 合同范本 渠道疏浚
- 煤矸石燒結(jié)磚購(gòu)銷合同范本
- 農(nóng)村錯(cuò)車道工程合同范例
- 叉車變賣合同范本
- 幼兒園玩具設(shè)備采購(gòu)合同范本
- 浙江省杭州市2023年中考數(shù)學(xué)試卷
- 高等教育學(xué)課件-
- 送達(dá)地址確認(rèn)書
- 機(jī)動(dòng)車檢測(cè)站管理制度
- 大班語言《你是螞蟻小可》
- 熒光增白劑介紹
- 老年人健康及生活質(zhì)量評(píng)估評(píng)估
- 大班音樂《數(shù)高樓》
- 營(yíng)銷部安全生產(chǎn)責(zé)任制
- 【講座】高三英語高效二輪備考講座課件
- 2022-2023學(xué)年遼寧省鞍山市普通高中高一年級(jí)下冊(cè)學(xué)期第一次月考數(shù)學(xué)(A卷)試題【含答案】
評(píng)論
0/150
提交評(píng)論