版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022-2023年內(nèi)蒙古自治區(qū)烏海市全國計算機(jī)等級考試C語言程序設(shè)計重點(diǎn)匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列敘述中錯誤的是()。
A.C語言程序必須由一個或一個以上的函數(shù)組成
B.函數(shù)調(diào)用可以作為一個獨(dú)立的語句存在
C.若函數(shù)有返回值,必須通過return語句返回
D.函數(shù)形參的值也可以傳回給對應(yīng)的實參
2.讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一個文件指針,指向待讀取的文件
B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C.一個內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址
D.一個內(nèi)存塊的字節(jié)數(shù)
3.有下列程序:#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
4.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.0,-1,-1,-1
B.0,-1,-1,0
C.0,-1,-1,0,-1,0
D.0,-1,-1,-1,-1,-1
5.對線性表進(jìn)行折半查找最方便的存儲結(jié)構(gòu)是()。
A.順序表B.有序順序表C.鏈表D.有序鏈表
6.下列運(yùn)算符中優(yōu)先級最高的是()。
A.!B.%C.-=D.&&
7.
8.以下敘述正確的是
A.continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行
B.只能在循環(huán)體內(nèi)和swish語句體內(nèi)使用break語句
C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同
D.從多層循環(huán)嵌套中退出時,只能使用goto語句
9.fun函數(shù)的功能是:通過鍵盤輸入給x所指的整型數(shù)組所有元素賦值。在下劃線處應(yīng)填寫的是()。#include<stdio.h>#defineN5voidfun(intx[N]){intm;for(m=N-t;m>=O;m-)scanf("%d",____);}A.%&X[++m]B.&x[m+1]C.x+(m++)D.x+m
10.下列不屬于C語言關(guān)鍵字的是()。A.A.default
B.register
C.enum
D.external
11.設(shè)有如下定義structss{charname[10];intage;charsex;}std[3],*p=std;下列各輸入語句中錯誤的是_______。
A.scanf("%d",&(*p).age);
B.scanf("%s",&);
C.scanf("%c",&std[0].sex);
D.scanf("%c",&(p->sex));
12.面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題
D.不強(qiáng)調(diào)模擬現(xiàn)實世界中的算法而強(qiáng)調(diào)概念
13.設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
14.以下C語言用戶標(biāo)識符中,不合法的是()。
A._1B.AaBcC.abD.a--b
15.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序運(yùn)行后的輸出結(jié)果是()。A.5B.6C.8D.9
16.
下述程序的輸出結(jié)果是()。
#include<stdio.h>
voidmain
{intb[6]={2,4,6,8,10,12);
int*p=b,**q=&p;
printf("%d,",*(p++));
printf("%d,",**q);
}
A.4,4B.2,2C.4,5D.2,4
17.執(zhí)行下列程序中的輸出語句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13
18.
19.設(shè)有inta=15,b=240;,則表達(dá)式(a&b)&b||b的值為______。
A.0B.1C.真D.假
20.有以下程序:#include<stdio.h>main(){char*p=“6938”;inti,s=0;for(i=3;i>=0;i--)s=10*s+p[i]-‘0’;printf(“%d\n”,s);}程序運(yùn)行后的輸出結(jié)果是()。
A.8396B.6938C.3869D.3689
二、2.填空題(20題)21.長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。
22.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:m++;n++;break;
case1:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
23.以下程序中給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{dOuble*p;
p=(double*)malloc();
p[0]=1.5;p[1]=2.5;p[2]=3.5
printf("%f%f%f\n",p[0],p[1],p[2]);
}
24.設(shè)有以下程序,為使之正確運(yùn)行,請在橫線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
25.下列程序執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
26.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和。請?zhí)羁铡?/p>
main()
{
inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)
scanf("%d",(______);
for(i=0;i<20;i++)
{
if(a[i]>0)
{
count++;
sum+=(______);
}
}
printf("sum=%d,count-%dkn",sum,count);
}
27.下列程序的運(yùn)行結(jié)果是______。
#definePOW(r)(r)*(r)
main()
{intx=3,y=2,t;
t=POW(x+y);
printf("%d\n",t);
}
28.模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊。其中【】的作用是模擬被測試模塊的下層模塊。
29.以下程序的功能是從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出該字符串。請?zhí)羁铡?/p>
main()
{charstr[81],*sptr;
inti;
for(i=0;i<80;i++)
{str[i]=getchar();
if(str[i]=='\n')break;
}
str[i]=【】;
sptr=str1
while(*sptr)putchar(*sptr【】);
}
30.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。
31.某二叉樹中度為2的結(jié)點(diǎn)有18個,則該二叉樹中有【】個葉子結(jié)點(diǎn)。
32.有以下程序段,且變量已正確定義和賦值。
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k/1));
printf("s=%f\n\",s);
請?zhí)羁?,使下面程序段的功能與之完全相同。
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s-=%f\n\n",s);
33.一個模塊直接訪問另一個模塊的內(nèi)容,稱為【】藕合。
34.派生類對基類繼承控制訪問有三種。派生類可以定義其基類中不具備的【】。
35.下列程序段的輸出結(jié)果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
36.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
37.問題處理方案的正確而完整的描述稱為______。
38.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-b,a+b));
printf("%d\n",a-b?a-b:a+b);
}
39.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>
main()
{intt=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+______;s=s+t;}
printf("s=%d\n",s);
}
40.對長度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為【】。
三、1.選擇題(20題)41.字符型數(shù)據(jù)在機(jī)器中用ASCII碼表示,字符“5”和“7”在機(jī)器中表示為()。
A.10100011和01110111
B.01000101和01100011
C.00110101和00110111
D.01100101和01100111
42.已知有結(jié)構(gòu)體:
structsk
{ihta;
floatb;
)data,*p;
若有p=&data,則對data的成員a的正確引用是()。
A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a
43.下面程序段的運(yùn)行結(jié)果是char*s="abcde";s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.無確定的輸出結(jié)果
44.已知字母A的ASCII碼值是65,字母a的ASCII碼值是97,以下程序______。main(){chara='A';intb=20;pxintf("%d,%o",(a=a+a,a+b,b),a+'a'-'A',b);}
A.表達(dá)式非法,輸出零或不確定值
B.因輸出項過多,無輸出或輸出不確定值
C.輸出結(jié)果為20,141
D.輸出結(jié)果為20,141,20
45.下面宏定義正確的是()
A.#defineSa*b
B.#definePI3.14;
C.#definemax(a,b)((a)>(b)?(a);(b))
D.#defines(x)(x)*(x);
46.設(shè)有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正確的賦值語句是()
A.p=&a;B.p=data.a;C.p=&data.a,D.*p=data.a;
47.設(shè)有定義:intk=1,m=2;floatf=7;則下列選項中錯誤的表達(dá)式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
48.若要用函數(shù)fopen打開一個新的二進(jìn)制文件,該文件要既能讀也能寫,則應(yīng)以哪種方式打開文件()。
A.wbB.wb+C.rb+D.rb
49.有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("D1v.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是()。
A.2030B.2050C.3050D.3020
50.設(shè)有以下定義和語句inta[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];則*(p[0]+1)所代表的數(shù)組元素是
A.a[0][1]B.a[1][0]C.a[1][1]D.a[l][2]
51.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
52.以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}
A.258B.741C.852D.369
53.下列二維數(shù)組的說明中,不正確的是()。
A.floata[][4]={0,1,8,5,9};
B.inta[3][4];
C.#defineN5
D.inta[2][9.5];floata[N][3];
54.有以下程序:main(){inta[3][3],*p.i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運(yùn)行后的輸出結(jié)果是()。
A.012B.123C.234D.345
55.計算機(jī)病毒不能破壞()中的軟件。
A.ROMB.RAMC.軟盤D.硬盤
56.以下各選項企圖說明一種新的類型名,其中正確的是______。
A.typedefv1int;
B.typedefv2=int;
C.typedefintv3;
D.typedefv4:int
57.有以下程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,"k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是()。
A.5,5B.5,11C.11,11D.11,5
58.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()
A.無序線性表B.線性鏈表C.二叉鏈表D.順序存儲的有序表
59.以下選項中不能作為合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0
60.已知chara=15,則a,-a和!a的整型值分別為______。
A.240、-15、0B.-16、-15、0C.0、-15、240D.0、-15、0
四、選擇題(20題)61.有以下程序:
運(yùn)行時,若輸入123450<;回車>;,則輸出結(jié)果是()。
A.66656B.6566456C.66666D.6666656
62.若有定義語句:
63.
64.一個關(guān)系中屬性個數(shù)為1時,稱此關(guān)系為()。
A.對應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系
65.設(shè)有如下函數(shù)定義若執(zhí)行調(diào)用語句:n=fun(3);,則函數(shù)fun總共被調(diào)用的次數(shù)是()。
A.3B.2C.4D.5
66.以下程序執(zhí)行后的輸出結(jié)果是()。
A.5,5
B.5,11
C.11,11
D.11,5
67.
68.以下程序的功能是進(jìn)行位運(yùn)算
程序運(yùn)行后的輸出結(jié)果是()。
A.43B.73C.70D.40
69.
70.
71.
72.
73.
74.下列排序方法中,最壞情況下比較次數(shù)最少的是()。
A.冒泡排序B.簡單選擇排序C.直接插入排序D.堆排序
75.在以下選項中,能正確調(diào)用對象屬性的語句是()。
A.對象名(屬性名)B.對象名一>屬性名C.對象名屬性名D.對象名.屬性名
76.若有定義語句:doublex,y,*px,+py;,執(zhí)行Tpx=&x;py=&y之后,正確的輸入語句是()。
77.
78.
79.結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是()。
A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序的易讀性
80.
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是。用遞歸算法計算斐波拉契數(shù)列中第n項的值。從第l項起,斐波拉契數(shù)列為:1、1、2、3、5、8、l3、21、……
例如,若給n輸入7,則該項的斐波拉契數(shù)值為l3。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
六、程序設(shè)計題(1題)82.請編寫fun函數(shù),其功能是:計算并輸出3~m所有素數(shù)的平方根之和。
例如,若主函數(shù)從鍵盤給m輸入50后,則輸出為s=68.665791。
請勿改動main函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
注意:m的值要大于2但不大于100。部分源程序給出如下。
試題程序:
#include<math.h>
#include<stdio.h>
doublefun(intm)
{}
voidmain
{
intm;
doubles;
FILE*out:
printf("\n\nInputm:");
scanf("%d",&m);
s=fun(m);
printf("\n\ns=%f\n\n",s);
ut=fopen("outfile.dat","w");
for(m=0;m<10;m++)
fprintf(out,"%f\n",fun(m+80));
felose(out);
}
參考答案
1.D形參是定義函數(shù)時由用戶定義的。實參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。在C語言中,實參向形參傳送數(shù)據(jù)的方式是“值傳遞'是單向傳遞。故本題答案為D選項。
2.Cfread函數(shù)中的參數(shù)buffer是內(nèi)存塊的首地址,輸入的數(shù)據(jù)存入此內(nèi)存塊中。
3.C解析:主函數(shù)main()定義了指向字符串的指針和一個字符數(shù)組,接著調(diào)用fun(s,t)函數(shù),進(jìn)行實參向形參傳遞,函數(shù)fun()第一個while語句判斷*a中的值為“*”時繼續(xù)掃描,當(dāng)遇到不是“*”時結(jié)束,接著第二個while循環(huán)語句,將*a中從“a”開始的后續(xù)所有字符都賦予*b,也就是t[80]中的內(nèi)容為“a*b****”,所以此題的運(yùn)行結(jié)果為選項C)。
4.A程序定義整型變量a和b,初值分別是1,-2。for語句中循環(huán)條件式為“a--&&b++”,因為--和++的優(yōu)先級高于邏輯與運(yùn)算符&&,所以循環(huán)條件式等價于“(a--)&&(b++)”,自左向右運(yùn)算。第1輪循環(huán),a、b的值為1,-2,首先執(zhí)行a--,a--的值為1,執(zhí)行完后a的值為0;繼續(xù)執(zhí)行b++,b++的值為-2,執(zhí)行完后b的值為-1。整個表達(dá)式“a--&&b++”的值為真,程序輸出0,-1。第2輪循環(huán),a、b的值分別為0,-1,首先執(zhí)行a--,a--的值為0,執(zhí)行完后a的值為-1,由于a--的值為0,根據(jù)邏輯與運(yùn)算的短路原則,表達(dá)式“a--&&b++”的值一定為假,表達(dá)式b++不再執(zhí)行,循環(huán)結(jié)束,執(zhí)行循環(huán)體外的printf語句,輸出a、b的值分別為:-1,-1。所以本題輸出結(jié)果為:0,-1,-1,-1。本題答案為A選項。
5.B
6.A
7.D
8.B
9.DD【知識點(diǎn)】宏定義與數(shù)組地址的考察【解析】數(shù)組名本身就是地址,所以不需要在用&符號。C選項不能對所有元素賦值而是反復(fù)再給一個數(shù)值賦值且是死循環(huán)。
10.Dregister聲明寄存器變量enum聲明枚舉類型default開關(guān)語句中的“其他”分支
11.B解析:在C語言中,結(jié)構(gòu)體變量的引用有三種等價方式:
1、結(jié)構(gòu)體變量成員名;2、(*p).成員名;3、p->成員名。
因為std.name是字符數(shù)組名,本身代表地址,其前面不應(yīng)該使用“&”符號,所以選項B錯誤。
12.C\n面向?qū)ο蟮脑O(shè)計方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它雖強(qiáng)調(diào)模擬現(xiàn)實世界中的概念而不強(qiáng)調(diào)算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。
\n
13.B解析:條件表達(dá)式的形式為:“表達(dá)式1?表達(dá)式2:表達(dá)式3”。其含義為:當(dāng)“表達(dá)式1”的值為非零時,求出“表達(dá)式2”的值,此時“表達(dá)式2”的值就是整個條件表達(dá)式的值;當(dāng)“表達(dá)式1”的值為零時,求出“表達(dá)式3”的值,此時“表達(dá)式3”的值就是整個條件表達(dá)式的值。對于本題來說,當(dāng)表達(dá)式EXP為非0值時條件成立,即執(zhí)行語句i++;當(dāng)EXP等于0時,執(zhí)行語句j--;這等同于條件表達(dá)式“(EXP!=0)?i++:i++;”。
14.D\n標(biāo)識符主要由英文字母、數(shù)字和下劃線構(gòu)成,但開頭字符一定是字母或下劃線。
\n
15.B由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語句為p[5],由數(shù)組a可知輸出的為6。
16.D
\n首先定義了一個指向一維數(shù)組b的指針P,一個指向指針P的指針變量q;輸出*(p++)是先輸出*p,即b[O]的值,再將指針P指向數(shù)組的下一個元素b[1];輸出**q是輸出指針P所指單元的內(nèi)容。
\n
17.C本題考查逗號表達(dá)式。程序輸出時輸出一個%d,所以輸出第一個a的值與后續(xù)無關(guān)。本題考查逗號表達(dá)式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。
18.D
19.B
20.A程序首先定義一個字符指針P,使其指向一個字符串“6938”。然后通過for循環(huán)使用逆序的方式遍歷字符串的各個字符,并將各個字符當(dāng)作整數(shù)參與算術(shù)運(yùn)算。其中,“p[i]-‘0’”的含義是將字符串中的數(shù)字字符轉(zhuǎn)換成對應(yīng)的整數(shù);“10*s+P[i]-‘0’”是將上一次運(yùn)算結(jié)果乘以10后與轉(zhuǎn)換后的整數(shù)相加,再累加到S中。所以for循環(huán)執(zhí)行完后,S的值是將字符串“6938”逆序后當(dāng)作整數(shù)輸出。故本題答案為A選項。
21.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。
22.130130解析:本題主函數(shù)中用了一個for循環(huán),循環(huán)了3次:當(dāng)i=9時,i/10=0,執(zhí)行switch語句中case0分支,m和n的值各增1,變?yōu)?和1,然后遇到break語句,退出switch語句;當(dāng)i=10和11時,i/10都等于1,執(zhí)行switch語句中的case1分支,兩次使n增1,變?yōu)?,退出switch語句。故該空格處應(yīng)該填130。
23.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識點(diǎn)是malloc()函數(shù).該函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請n個字符的存儲單元,并返回該存儲區(qū)的首地址,實際調(diào)用的時候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址.所以在此空格處應(yīng)該填寫3*sizeof(double)或size(double)*3或其他等價的表達(dá)式。
24.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。
25.1212解析:本題的第一個for循環(huán)用于給數(shù)組arr賦初值,第二個for循環(huán)用于求和運(yùn)算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。
26.&a[i]或a+ia[i]或*(a+i)&a[i]或a+ia[i]或*(a+i)解析:主函數(shù)中一開始定義了一個長度為20得整形數(shù)組,然后通過—個循環(huán),循環(huán)20次給它的每個元素賦初值,所以在第一個空格處應(yīng)填各個元素的地址,即填&a[1]或a+i,然后在通過一個循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于。將其累加到變量sum中,所以第二個空格處應(yīng)該填入數(shù)組元素,所以應(yīng)該填a[i]或*(a+i)。
27.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算。運(yùn)算過程為:t=POW(x+y)=(2+3)*(2+3)=25。
28.承接模塊承接模塊解析:進(jìn)行模塊測試時,應(yīng)為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊。其中驅(qū)動模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是模擬被測試模塊的下層模塊。
29.\0'++
30.非線性結(jié)構(gòu)非線性結(jié)構(gòu)
31.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個。
32.k<=n或n>=kk++k<=n或n>=k\r\nk++解析:while語句和for語句的作用都是循環(huán)控制語句的執(zhí)行,兩者之間是可以互相轉(zhuǎn)換的。將while(EXP)轉(zhuǎn)換為for語句可以寫成for(;EXP;);將for(EXP1;EXP2;EXP3)轉(zhuǎn)換為while語句可以寫成:EXP1;while(EXP2){...EXP3;}。故本題的兩個空分別應(yīng)填寫for語句的第2和第3個表達(dá)式。即k<=n或n>=k和k++。當(dāng)然也可寫成與之等價的其他形式。
33.內(nèi)容內(nèi)容
34.數(shù)據(jù)和操作數(shù)據(jù)和操作
35.HelloHello解析:字符串中,數(shù)值0或符號'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結(jié)束標(biāo)志。因此,只輸出前五個字符,即Hello。
36.->->解析:若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc.a和p_abc->a。
37.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。
38.11371,13,7解析:本題考查3個知識點(diǎn):①余數(shù)的計算,題中的a=10,b=3,a%b=1;②(表達(dá)式1,表達(dá)式2)形式的結(jié)果為最后一個表達(dá)式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13;③條件運(yùn)算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結(jié)果為7。
39.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結(jié)果來看,s保存的是最終結(jié)果,而s在循環(huán)體中,每次累加一個t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i,又因為i在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應(yīng)分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內(nèi)容”應(yīng)是t*10。
40.4545解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過遍的從前往后掃描和遍的從后往前掃描,需要比較次數(shù)為。
41.C解析:字符“5”和“7”的ASCII碼值分別為53和55,其二進(jìn)制形式分別為00110101和00110111。
42.B解析:本題主要考查結(jié)構(gòu)指針:p=&data,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即data.a,也可以用等價的指針形式:(*p).a和p->a來訪問結(jié)構(gòu)體變量中的成員。
43.C解析:對于字符串指針,其保留的是整個串的首地址,即為第一個字符的起始地址,當(dāng)該指針做算術(shù)運(yùn)算時,就是該指針根據(jù)其類型向后移動相應(yīng)的存儲空間。
44.C解析:本題中首先輸出逗號表達(dá)式“a=a+a,a+b,b”的值,即20。然后以八進(jìn)制的形式輸出a+'a'-'A'的值為97對應(yīng)的八進(jìn)制數(shù)141,由于最后—個表達(dá)式b沒有對應(yīng)輸出格式的輸出項表列就不會輸出。
45.C
46.C解析:data是—結(jié)構(gòu)體變量,a是它的成員,因此引用a域的正確方法是:data.a,取它的地址賦值給指針變量p的語句應(yīng)該是:p=&data.a。選項A,將a的地址直接賦給了p,而忽略了a為結(jié)構(gòu)體內(nèi)部的一個成員,而不是一單獨(dú)的變量,故選項A不正確;選項B在p=data.a表達(dá)式中右邊為一個結(jié)構(gòu)體變量的成員不是地址,而左邊為一指針應(yīng)該將一地址賦給它,故選項B不正確;選項D表達(dá)式*p=data.a是將結(jié)構(gòu)體變量中的成員a的值賦給指針p所指向的變量值,而不是使指針p指向data中的a域,故選項D不正確:4個選項中只有C正確。
47.C解析:在C語言中,求余運(yùn)算符“%”兩邊的運(yùn)算對象都應(yīng)為整型數(shù)據(jù),所以需要對變量f進(jìn)行強(qiáng)制類型轉(zhuǎn)換,正確的寫法為k%(int)f。在C語言中,邏輯運(yùn)算符與賦值運(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符之間從高到低的運(yùn)算優(yōu)先次序是:!(邏輯“非”)、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、&&(邏輯“與”)、||(邏輯“或”)、賦值運(yùn)算符。根據(jù)運(yùn)算符的優(yōu)先級與結(jié)合性,對于選項A),先計算k>=k的值(為真,即1),再用1對k進(jìn)行賦值。對于選取項B),先計算k++的值,再對其取負(fù)數(shù)。對于選項D),先計算k>=f的值(為假,即0),再用0與出進(jìn)行比較,故最終結(jié)果為0。
48.B解析:本題考查文件使用方式標(biāo)識符。方式“wb”為輸出打開一個二進(jìn)制文件;方式“wb+”為讀寫建立一個新的二進(jìn)制文件;方式“rb+”為讀寫打開一個二進(jìn)制文件:方式“rb”為輸入打開一個二進(jìn)制文件。
49.A
50.C解析:本題中首先定義了一個3行2列的數(shù)組a,一個長度為3的指針數(shù)組p,接著把地址a[1]賦給P[1]此時p[0]為a[1][0]的地址,p[0]+1為a[1][1]的地址,故*(p[0]+1)代表的元素為s[1][1]。所以,4個選項中選項C符合題意。
51.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。
52.C解析:在本題運(yùn)行時主要注意的是當(dāng)i=9時,a[i]=10-9=1;i=8時,a[i]=10-8=2;i=7時,a[i]=10-7=3;……依此類推,直到i=0時,a[i]=10-0=10;此時,i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8],分別為8,5,2。
53.D解析:C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達(dá)式,而不能省略第二個方括號中的常量表達(dá)式;二維數(shù)組的一般定義格式是:類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]。
54.D解析:本題中定義的二維數(shù)組a[3][3]中9個元素在內(nèi)存中的排列順序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函數(shù)中,首先定義了二維數(shù)組a[3][3],然后定義了—個指針p指向數(shù)組a的第1個元素a[0][0]在第一個for循環(huán)中,依數(shù)組a在內(nèi)存中的排列順序為其元素賦從0~8九個值,然后用第二個for循環(huán)依次輸出a[1][0],a[1][1],a[1][2]三個元素的值。所以,4個選項中選項D符合題意。
55.A
56.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于為數(shù)據(jù)類型取個別名。
57.B解析:本題的fun()函數(shù)中定義的變量m和i是靜態(tài)局部變量,第1次調(diào)用fun()函數(shù)時m=0、i=2,執(zhí)行i+=m+1后,i的值變?yōu)?,再執(zhí)行m=i+x+y后,m的值變?yōu)?,所以第1次輸出的整數(shù)是5。第2次調(diào)用fun()函數(shù)時m=5、i=3,執(zhí)行i+=m+1,i變?yōu)?,再執(zhí)行m=i+x+y,m變?yōu)?1,所以第2次輸出的整數(shù)是11。故本題應(yīng)該選擇B。
58.DD)【解析】二分法查找只適用于順序存儲的有序表,表中的元素按值從小到大排列。
59.B解析:本題考查的是C語言中實型常量的指數(shù)表示法。實型常量的指數(shù)表示法是用字母e(或E)將一個實數(shù)的小數(shù)部分和指數(shù)部分分隔開。字母e(或E)之前是小數(shù)部分,之后是指數(shù)部分,這兩部分都不能省略,且指數(shù)部分必須為整數(shù)。故選項B不正確。所以,4個選項中選項B符合題意。
60.A
61.Bswitch語句的執(zhí)行流程是:首先計算switch后面圓括號中表達(dá)式的值,然后用此值依次與各個case的常量表達(dá)式比較,若圓括號中表達(dá)式的值與某個e·*后面的常量表達(dá)式的值相等,就執(zhí)行此ca*后面的語句,執(zhí)行后遇break語句就退出switch語句;若圓括號中表達(dá)式的值與所有ca$e后面的常量表達(dá)式都不等,則執(zhí)行default后面前語句。然后退出。所以輸入l時打印65,輸入2時打印6,輸入3時打印64,輸入4時打印5,輸入5時打印6。
62.A本題考查的知識點(diǎn)是:二維數(shù)組和指針數(shù)組。無論一個數(shù)組有多少維或者
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年裝箱單在應(yīng)對外貿(mào)出口貿(mào)易救濟(jì)措施中的策略合同3篇
- 二零二五版國際貿(mào)易特許經(jīng)營合同主體欺詐風(fēng)險管理與合同解除合同3篇
- 二零二五年電子顯示屏廣告租賃合同樣本3篇
- 二零二五版代辦房地產(chǎn)前期開發(fā)手續(xù)與建筑工程質(zhì)量檢測服務(wù)合同3篇
- 二零二五年采棉機(jī)駕駛員職業(yè)素養(yǎng)提升與勞動合同3篇
- 二零二五版能源行業(yè)凍庫租賃合同含能源物資儲備協(xié)議3篇
- 二零二五年酒店客房部服務(wù)員勞動合同書3篇
- 天津事業(yè)單位2025年度合同制聘用人員管理規(guī)范3篇
- 二零二五年度裝修合同范本:環(huán)保裝修保障您的生活品質(zhì)6篇
- 二零二五版地產(chǎn)經(jīng)紀(jì)居間合同糾紛處理指南3篇
- 【公開課】同一直線上二力的合成+課件+2024-2025學(xué)年+人教版(2024)初中物理八年級下冊+
- 高職組全國職業(yè)院校技能大賽(嬰幼兒照護(hù)賽項)備賽試題庫(含答案)
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- 健康教育工作考核記錄表
- 裝飾工程施工技術(shù)ppt課件(完整版)
- SJG 05-2020 基坑支護(hù)技術(shù)標(biāo)準(zhǔn)-高清現(xiàn)行
- 汽車維修價格表
- 10KV供配電工程施工組織設(shè)計
- 終端攔截攻略
- 藥物外滲處理及預(yù)防【病房護(hù)士安全警示教育培訓(xùn)課件】--ppt課件
評論
0/150
提交評論