版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022-2023年山東省泰安市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有定義語句intb;charc[10];,則正確的輸入語句是______。A.scallf("%d%s",&b,&c);
B.scallf("%d%s",&b,c);
C.scanf("%d%s",b,c)
D.scanf("%d%s",b,&c);
2.
3.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關(guān)系
4.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
執(zhí)行后輸出結(jié)果是()。
A.10,01B.02,12C.102,10D.02,10
5.若有運(yùn)算符:>、*=、<<、%、sizeof,則它們按優(yōu)先級(由低至高)的正確排列次序為()。
A.*=<<>%sizeof
B.<<*=>%sizeof
C.%=><<sizeof%
D.*=><<%sizeof
6.下列程序段的時間復(fù)雜度為()。A.O(3n)B.O(n)C.O(n2)D.O(log3n)
7.執(zhí)行完下列語句段后,i值為()。A.A.2B.4C.8D.無限遞歸
8.
9.以下敘述中錯誤的是
A.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行
B.預(yù)處理命令行的最后不能以分號表示結(jié)束
C.#defineMAX是合法的宏定義命令行
D.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的
10.下列敘述中正確的是:()A.C語言程序中,main()函數(shù)必須在其它函數(shù)之前,函數(shù)內(nèi)可以嵌套定義函數(shù)
B.C語言程序中,main()函數(shù)的位置沒有限制,函數(shù)內(nèi)不可以嵌套定義函數(shù)
C.C語言程序中,main()函數(shù)必須在其它函數(shù)之前,函數(shù)內(nèi)不可以嵌套定義函數(shù)
D.C語言程序中,main()函數(shù)必須在其它函數(shù)之后,函數(shù)內(nèi)可以嵌套定義函數(shù)
11.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運(yùn)行后的輸出結(jié)果是()。
A.3B.13C.1D.0
12.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inti,j,k,a=3,b=2;i=(--a==b++)?--a;++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}
A.i=2,j=1,k=3B.i=1,j=1,k=2C.i=4,j=2,k=4D.i=1,j=1,k=3
13.若有"doublea;",則正確的輸入語句是()。
A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
14.以下說法正確的是()。
A.C程序總是從第一個函數(shù)開始執(zhí)行
B.在C程序中,被調(diào)用的函數(shù)必須在main函數(shù)中定義
C.C程序總是從main函數(shù)開始執(zhí)行
D.C程序中的main函數(shù)必須放在程序的開始部分
15.下列程序段的時間復(fù)雜度為()。A.O(i+j)B.O(n)C.O(n2)D.O(i*j)
16.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
17.
18.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用快速排序(以中間元素518為基準(zhǔn))的第一趟掃描結(jié)果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
19.設(shè)q1和q2是指向一個float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語句是()。
A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);
20.
二、2.填空題(20題)21.以下程序從終端讀入數(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);
}
22.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達(dá)式是______。
23.若有以下程序:
main()
{intp,a=5;
if(p=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
執(zhí)行后的輸出結(jié)果是【】。
24.若輸入12、3、2、5、7,則以下程序的運(yùn)行結(jié)果為【】。
intmax,min;
voidmax_min_value();
main()
{inti,number[5];
printf("輸入5個整數(shù);\n");
for(i=0;i<5;i++)scanf("%d",&number[i]);
maxminvalue(number,5);
printf("max=%d,min=%d\n",max,min);
getch();
}
voidmax_min_value(array,n)
intarray[],n;
{int*p;
max=min=*array;
for(p=array+1;p<array+n;p++)
if(*p>max)max=*p;
elseif(*p<min)min=*p;
}
25.一個算法的空間復(fù)雜度是指該算法所耗費(fèi)的【】。
26.下列程序的運(yùn)行結(jié)果為【】。
main()
{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
printf("maxvalueis%d\n",maxvalue(3,4,a));
}
maxvalue(m,n,array)
intm,n,array[][4];
{inti,j,max;
max=array[0][0];
for(i=0;i<m;i++)
for(i=0;i<n;j++)
if(max<array[i][j])max=array[i][j];
return(max);
}
27.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
28.在算法正確的前提下,評價一個算法的兩個標(biāo)準(zhǔn)是空間復(fù)雜度和()。
29.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
30.為了便于對照檢查,測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】兩部分組成。
31.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
32.設(shè)有下列的程序段:
charstr[]="Hello";
char*ptr;
ptr=-str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
33.設(shè)有如下程序段:
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
printf("%d\n",sum);
上述程序段的輸出結(jié)果是【】。
34.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta=1234;
floatb=123.456;
doublec=12345.54321;
printf("\n%2d,%2.1f,%2.11f",a,b,C);
}
35.設(shè)y為血型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
36.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,
否則返回0。請?zhí)羁铡?/p>
intisprime(inta)
{inti;
for(i=2;i<=a/2;i++)
if(a%i==0)【】;
【】;
}
37.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。
38.沒有chara,b;,若要通過a&b運(yùn)算屏蔽掉a中的其他位,只保留第2位和笫8位(右起為第1位),則b的二進(jìn)制是【】。
39.現(xiàn)有如下定義:structaa{inta;floatb;charc;}*p;現(xiàn)需用malloc函數(shù)動態(tài)的申請一個structaa類型大小的空間(由p指向),則定義的語句為:【】。
40.下面程序的運(yùn)行結(jié)果是______。
#defineDOUBLE(x,y)x/y
main()
{intx=4,y=2,t;
t=DOUBLE(x+y,x-y);
printf("%d",t);
}
三、1.選擇題(20題)41.以下程序段的輸出結(jié)果是()。inta=1234;printf("%2d\n",a);
A.12B.34C.1234D.提示出錯,無結(jié)果
42.表示關(guān)系a≤b≤c的C語言表達(dá)式為()。
A.(a<=B)&&(b<=C)
B.(a<=B)and(b<=C)
C.(a<=b<=C)
D.(a<=B)&(b<=C)
43.下列二維數(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)};
44.設(shè)有以下說明語句:structstu{inta;floatb;}stutype;則下面敘述不正確的是()。
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.structstu是用戶定義的結(jié)構(gòu)體類型
C.stutype是用戶定義的結(jié)構(gòu)體類型名
D.a和b都是結(jié)構(gòu)體成員名
45.以下程序中函數(shù)f的功能是將n個字符串按由大到小的順序進(jìn)行排序:#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++if(strcmp(p[i],p[j])<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][10]:{"abc","aabdfg","abbd","dcdbe","cd",);inti;f(p,5);printf("%d\n",strlen(p[0]));}程序運(yùn)行后的輸出結(jié)果是()。
A.6B.4C.5D.3
46.設(shè)有以下語句:chara=3,b=6,c;c=ab<<2;則c的二進(jìn)制值是()。
A.11011B.10100C.11100D.11000
47.以下程序的輸出結(jié)果是______。main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}
D.1111222334
48.下列關(guān)鍵字中,不屬于C語言變量存儲類別的是______。
A.registerB.autoC.externD.public
49.請選出正確的程序段
A.int*p;scanf("%d",p);…
B.int*s,k;*s=100;…
C.int*s,k;char*p,c;s=&k;p=&c;*p=′a′;…
D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;…
50.下列程序main(){chararr[2][4];strcpy(arr,"you");strcpy(arr[1],"me");arr[0][3]='&';printf("%s\n",arr);}執(zhí)行后的輸出結(jié)果是()
A.you&meB.youC.meD.err
51.下列敘述中正確的是()
A.指令由操作數(shù)和操作碼兩部分組成
B.常用參數(shù)xxMB表示計算機(jī)的速度
C.計算機(jī)的一個字長總是等于兩個字節(jié)
D.計算機(jī)語言是完成某一任務(wù)的指令集
52.下列敘述中錯誤的是()。
A.線性表是由n個元素組成的一個有限序列
B.線性表是一種線性結(jié)構(gòu)
C.線性表的所有結(jié)點有且僅有一個前件和后件
D.線性表可以是空表
53.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<5;i++){if(i%2)printf("*");elsecontinue;printf("#");}printf("$\n");
A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$
54.有以下程序:main(){intx[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結(jié)果是()。
A.隨機(jī)值B.0C.5D.6
55.若w、x、y、z、m均為int型變量,則執(zhí)行下列的語句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;
A.2B.3C.5D.4
56.下列敘述中正確的是()。
A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
B.算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)
C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
D.以上3種描述都不對
57.若有下列定義(設(shè)int類型變量占2個字節(jié)):
inti=8,j=9;
則下列語句:
printf("i=%u,j=%x\n".i,j);
輸出的結(jié)果是()。
A.i=8,j=9B.8.9C.89D.i=8,i=8
58.在數(shù)據(jù)庫設(shè)計的4個階段;為關(guān)系模式選擇存取方法應(yīng)該在
A.需求分析階段B.概念設(shè)計階段C.邏輯設(shè)計階段D.物理設(shè)計階段
59.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf((“%d\n”,a);}A.8B.9C.17D.20
60.已經(jīng)定義ch為字符型變量,以下賦值表達(dá)式中錯誤的是______。
A.ch='\'B.ch=62+3C.ch=NULLD.ch='\xaa'
四、選擇題(20題)61.
62.設(shè)有以下函數(shù):
voidfun(intn,char}s){……}
則下面對函數(shù)指針的定義和賦值均正確的是()。
A.void(*pf)(int,char);pf=&fun;
B.void+pf();pf=fun;
C.void*pf();*pf=fun;
D.void(*pf)(int,char*);pf=fun;
63.
64.如果在C程序中要用到庫函數(shù)中的字符串比較函數(shù)strcmp(),那么在程序前面應(yīng)該添加的頭文件是()。
A.stdio.hB.string,hC.a(chǎn)lloc.hD.math.H
65.按照“先進(jìn)后出”原則組織數(shù)據(jù)的結(jié)構(gòu)是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
66.若整型變量a、b、c、d中的值依次為2、2、3、4,則條件表達(dá)式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4
67.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。
A.軟件需求規(guī)格說明書B.數(shù)據(jù)庫說明書C.集成測試計劃D.概要設(shè)計說明書
68.合法的數(shù)組定義是()。
A.
B.
C.
D.
69.
70.設(shè)有如下定義:int(*ptr);則以下敘述中正確的是()。
A.ptr是指向一維組數(shù)的指針變量
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指int型數(shù)據(jù)的指針
71.若有定義語句:
char}sl=‘’0K”,:Its2=”ok”;
以下選項中,能夠輸出“OK”的語句是()。
A.if(strcmp(sl,s2)!=0)puts(s2);
B.if(strcmp(sl,s2)!=0)puts(s1);
C.if(strcmp(sl,s2)==1)puts(s1);
D.if(strcmp(sl,s2)==0)puts(s1);
72.有以下程序
voidsort(inta[],intn)
{
inti,j,t;
for(i=0;i<n-1;i+=2)
for(j=i+2;j<n;j+=2)
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
main()
{
intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa,10);
for(i=0;i<10;i++)
printf("%d,",aa[i]);
printf("\n");
}
執(zhí)行后的輸出結(jié)果是
A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,
C.9,2,7,4,5,6,3,8,1,10D.1,10,3,8,5,6,7,4,9,2,
73.
74.
75.有定義語句:intm=1,n=2,P=5,x;,則以下選項中各程序段執(zhí)行后,x的值不等于5的是()。
A.
B.
C.
D.
76.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1.1.3B.2,2,3C.1,2,3D.3,3,3
77.設(shè)有intx=11;則表達(dá)式(x++*1/3)的值是()。
A.3B.4C.11D.12
78.
79.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
80.在單鏈表中,增加頭結(jié)點的目的是()。
A.方便運(yùn)算的實現(xiàn)B.使單鏈表至少有一個結(jié)點C.標(biāo)識表結(jié)點中首結(jié)點的位置D.說明單鏈表是線性的鏈?zhǔn)酱鎯崿F(xiàn)
五、程序改錯題(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時,結(jié)果在w所指的數(shù)組中的內(nèi)容應(yīng)為alldalldefg。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun(),其功能是:刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入編寫的若干語句。試題程序:
參考答案
1.B解析:scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是地址,而不是變量名。對于變量,通過地址運(yùn)算符“&”求出內(nèi)存中的地址;對于數(shù)組c[10],數(shù)組名c即為數(shù)組在內(nèi)存中的地址。
2.B
3.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。
4.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號隔開輸出兩個十進(jìn)制整數(shù),每個整數(shù)域?qū)捠?。而在C語言中規(guī)定:當(dāng)域?qū)捫∮趯嶋H寬度時域?qū)挷黄鹱饔茫磳嶋H寬度輸出,因此最后的輸出值為102和10(y的初值012表示八進(jìn)制整數(shù)12,等于十進(jìn)制的10)。所以,4個選項中選項C符合題意。
5.D解析:本題主要考查算術(shù)運(yùn)算的優(yōu)先級。順序如下:
[*]
注:*=、>、<<、%、sizeof的優(yōu)先級依次遞增。
6.D
7.B
8.C
9.D解析:在C語言中,凡是以“#”開頭的行都稱為編譯預(yù)處理命令行,如#include、#define、#if等,每行的末尾不得用“;”結(jié)束,以區(qū)別于C語句、定義和說明語句。選項C中的宏定義為不帶參數(shù)的宏命令行,宏名之后可以有替換文本,也可以沒有。編譯預(yù)處理是在編譯程序?qū)源程序進(jìn)行編譯前執(zhí)行的.當(dāng)然也在程序執(zhí)行之前執(zhí)行,因此選項D是錯誤的。
10.B每個C程序有且只有一個主函數(shù)main,C程序總是從main函數(shù)開始執(zhí)行,main函數(shù)后面的一對圓括號不能省略,main函數(shù)可以位于程序的任意位置。函數(shù)不可以嵌套定義,但函數(shù)可以嵌套調(diào)用。
11.AC語言中的轉(zhuǎn)義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數(shù)結(jié)束,因此計數(shù)為3。故本題答案為A選項。
12.D
13.D解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。本題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。
14.C解析:C程序是由main函數(shù)開始運(yùn)行,通過main函數(shù)調(diào)用其他函數(shù),所以,選項A)錯誤;在C程序中,函數(shù)不能嵌套定義,即不能在一個函數(shù)中定義另一個函數(shù),選項B)錯;C程序總是從main函數(shù)開始執(zhí)行,但main函數(shù)不必放在最前面,故選項D)錯。
15.C
16.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。
17.C
18.B
19.B解析:選項A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進(jìn)行賦值運(yùn)算:選項C)中,是兩個指針變量之間的賦值:選項D)中,是兩個指針型變量所指向的兩個float型數(shù)據(jù)相乘。
20.C
21.&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)。
22.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。
23.11解析:本題考查C語言中的if-else語句。if語句中的條件表達(dá)式p=a!=0是一個賦值語句,將關(guān)系表達(dá)式a!=0的結(jié)果賦值給變量p。因a=5,所以a!=0的結(jié)果為1,即p=1,條件為真,所以執(zhí)行if后面的語句printf('%d\\n',p),輸出結(jié)果為1。
24.max=12min=2
25.存儲空間存儲空間解析:空間復(fù)雜度是指算法在執(zhí)行過程中臨時占用的存儲空間大小,包括:①算法本身所占用的存儲空間;②算法的輸入輸出數(shù)據(jù)所占用的存儲空間;③算法在運(yùn)行過程中臨時占用的存儲空間。
26.maxvalueis34
27.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
28.時間復(fù)雜度時間復(fù)雜度解析:在算法正確的前提下,評價一個算法的兩個標(biāo)準(zhǔn)是空間復(fù)雜度和時間復(fù)雜度。算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。
29.x+=1x+=1解析:本題考查“++”,“--”運(yùn)算符?!?+”、“--”只能作用于變量,不能用于表達(dá)式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。
30.輸出結(jié)果輸出結(jié)果解析:注意:測試的基本方法和步驟。
31.時間時間解析:算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
32.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在c語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標(biāo)識符'\\0',所以題中數(shù)組str有6個元素。②ptr指向數(shù)組s仕的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
33.16
34.1234123.512345.51234,123.5,12345.5解析:在primf()函數(shù)的格式控制符中:'%2d'表示輸出一個有符號整數(shù),如果輸出長度小于2,則左端補(bǔ)以空格,否則按實際長度輸出。所以本題中的a按原樣輸出為1234:'%2.1尸表示輸出一個單精度實數(shù),只輸出小數(shù)點后1位,后面若有小數(shù)則四舍五入,如果輸出長度小于2,則左端補(bǔ)以空格,否則按實際長度輸出。所以本題中的b四舍五入到小數(shù)點后1位再輸出為123.5;'%2.11f'除了表示輸出一個雙精度實數(shù)外,其余參數(shù)和'%2.1f'一樣。所以本題中的c四舍五入到小數(shù)點后1位再輸出為12345.5。故輸出結(jié)果是:1234,123.5,12345.5。
35.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。
36.return0return1return0,return1解析:如果a能被i整除,則a是素數(shù),返回值為0。如果a不能被i整除,則a不是素數(shù),返回值為1。
37.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。
38.1000001010000010解析:運(yùn)算“&”的規(guī)則是只有當(dāng)兩個相應(yīng)的二進(jìn)制位都為1時,該位的結(jié)果才為1。要保留第2、8位,只要將其與二進(jìn)制數(shù)10000010相與。
39.p=(structaa*)malloc(sizeof(structaa));p=(structaa*)malloc(sizeof(structaa));解析:ANSIC標(biāo)準(zhǔn)規(guī)定malloc函數(shù)的返回值類型為void*,函數(shù)的調(diào)用形式為:malloc(size)要求size的類型為unsignedint。由于返回類型為void*,所以在調(diào)用函數(shù)時,必須利用強(qiáng)制轉(zhuǎn)換將其轉(zhuǎn)換為所需要的類型。
40.2
41.C解析:在C語言中,對于不同類型的數(shù)據(jù)用不同的格式字符,其中,“%d”是按整型數(shù)據(jù)的實際長度輸出,“%md”中,m為指定的輸出字段的寬度,如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格,若大于m,則按實際位數(shù)輸出。注意:格式輸入函數(shù)scanf的使用。
42.A解析:本題考查邏輯與運(yùn)算符&&。在C語言中使用運(yùn)算符“&&”連接兩個表達(dá)式,也可以表示邏輯與運(yùn)算符。在C語言中不允許出現(xiàn)a<=b<=c這種格式。
43.D解析:在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0;C語言規(guī)定,對于二維數(shù)組,只可以省略第1個方括號中的常量表達(dá)式,而不能省略第2個方括號中的常量表達(dá)式;賦的初值不能多于事先定義好的數(shù)組元素個數(shù)。
在選項D)賦值表達(dá)式中,對每一維的元素賦初值應(yīng)用{},而不是()。
44.C解析:定義一個結(jié)構(gòu)的一般形式為:
struct結(jié)構(gòu)體名
{
成員列表
}變量名列表;
本題中的stutype是在聲明結(jié)構(gòu)體類型structstu的同時定義的該結(jié)構(gòu)體變量,而不是用戶定義的結(jié)構(gòu)體類型名。
45.C解析:函數(shù)strcmp(字符串1,字符串2)作用是將“字符串1”和“字符串2”進(jìn)行比較,如果“字符串1”>“字符串2”,返回一個人于0的整數(shù)值;如果“字符串1”<“字符串2”,返回一個小于0的整數(shù)值;如果“字符串1”=“字符串2”,返回0。
函數(shù)strcpy(字符串?dāng)?shù)組名,字符串,[整型表達(dá)式])的作用是將“字符串”的前“整型表達(dá)式”個字符存入到指定的“字符數(shù)組”中,若省略“整型表達(dá)式”,則將整個“字符串”存入“字符數(shù)組”中。
函數(shù)f()的功能是利用選擇法把一個具有n行的二維數(shù)組中按行存放的n個字符串由大到小排序。在主函數(shù)中定義了一個二維字符數(shù)組p并給它按行賦初值,然后調(diào)用f()函數(shù),把它按行從大到小排列。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串。由此可知最大的字符串為“dcdbe”,排序后存放在第一行,其首地址為p[0],在輸出語句輸出的p[0]指向的字符串長度是5。
46.A解析:“<<”是C語言中規(guī)定的左移運(yùn)算符,例如,a=a<<2,是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘以2,左移兩位相當(dāng)于該數(shù)乘以2的2次方;“^”是異或運(yùn)算符,所以,c的二進(jìn)制值應(yīng)為00011011。
47.2解析:while的執(zhí)行過程是:先計算條件表達(dá)式的值,若成立則執(zhí)行循環(huán)體,重復(fù)上述過程,直到條件表達(dá)式的值為“假”(值為零)時,退出循環(huán),并轉(zhuǎn)下一語句去執(zhí)行。本題在輸出num的值為3之后,再判斷while的循環(huán)條件3<=2,不成立,所以不再輸出num的值,故本題的答案選B。
48.D解析:變量的存儲類別具體包含四種:自動的(auto),靜態(tài)的(static),寄存器的(register),外部的(extern)。
49.C解析:本題的選項A)和B)犯了同樣的錯誤,即指針變量在定義后并沒有指向具體的變量。也就是說,指針變量中沒有確定的地址值,它的值是不可預(yù)見的,所指的單元也是不可預(yù)見的,因此不能進(jìn)行賦值操作。另外,在選項D)中,s是int型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。
50.A
51.A
52.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C.是錯誤的。
53.C解析:程序中當(dāng)i不能整除2時輸出*,然后輸出#,能夠整除2時將結(jié)束本次循環(huán),進(jìn)入到下一次循環(huán)。當(dāng)循環(huán)結(jié)束后,輸出$。
54.B解析:通過賦值語句“s=x+3”,使指針變量s指向數(shù)組元素x[3],輸出語句中的spl等價于*(s+2),即x[5]值為0。所以,B選項為所選。
55.A解析:條件表達(dá)式“a?b:c”的含義是:當(dāng)a為真時,其值等于表達(dá)式b的值;當(dāng)a為假時,其值等于表達(dá)式c的值。
表達(dá)式運(yùn)算過程:第1個表達(dá)式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個表達(dá)式:m=2<z=5為真,所以返回m的值,即m=2;第3個表達(dá)式:w=2<y=4為真,所以返回m的值,即m=2。
56.C解析:算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)。算法的空間復(fù)雜度是指算法執(zhí)行過程中所需的存儲空間。
57.A解析:本題考查函數(shù)printf()的格式?!?x”表示以十六進(jìn)制輸出整型數(shù)據(jù);“%u”表示以十進(jìn)制無符號型輸出整型數(shù)據(jù)。printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出。
58.D解析:需求分析階段是分析用戶的需求,顯然不屬于這個階段,由此可以排除選項A。概念設(shè)計是將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)及概念模型的過程,涉及不到數(shù)據(jù)的存取。邏輯設(shè)計是在概念設(shè)計的基礎(chǔ)上將E—R圖轉(zhuǎn)換成數(shù)據(jù)庫管理系統(tǒng)的邏輯數(shù)據(jù)模型表示的邏輯模式,也不涉及存取問題。
59.B
60.A解析:反斜杠字符“\\”賦給字符,應(yīng)該寫成ch='\\\\',所以A是錯誤的。
61.C
62.D函數(shù)的參數(shù)可以是指針類型。它的作用是將一個變量的地址傳送到另一個函數(shù)中。函數(shù)名代表函數(shù)的人口地址,指向函數(shù)的指針應(yīng)該定義為void(+pf)()。如果定義為void·pf(),則表示函數(shù)pf返回值為一個基類型為void的指針。因此D選項正確。
63.D\r\n
64.B頭文件;C語言中要用庫函數(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度環(huán)保設(shè)備采購及運(yùn)營維護(hù)合同2篇
- 二零二五年度出納崗位培訓(xùn)聘用合同范本3篇
- 二零二五年度高端定制家具設(shè)計與制造合同協(xié)議范本3篇
- 二零二五年度出租車行業(yè)車輛維修承包合同3篇
- 個人與個人之間特許經(jīng)營權(quán)轉(zhuǎn)讓合同(2024版)3篇
- 2025年度人工智能技術(shù)應(yīng)用合作合同2篇
- 二零二五年度苗木育種技術(shù)合作開發(fā)合同3篇
- 二零二五年度建筑工程棄土清運(yùn)及環(huán)保處理服務(wù)合同
- 2025年圍墻安裝與智慧城市基礎(chǔ)設(shè)施連接合同3篇
- 室內(nèi)設(shè)計公司2025年度合作框架合同3篇
- 習(xí)近平法治思想概論教學(xué)課件緒論
- 寵物會展策劃設(shè)計方案
- 孤殘兒童護(hù)理員(四級)試題
- 梁湘潤《子平基礎(chǔ)概要》簡體版
- 醫(yī)院急診醫(yī)學(xué)小講課課件:急診呼吸衰竭的處理
- 腸梗阻導(dǎo)管在臨床中的使用及護(hù)理課件
- 調(diào)料廠工作管理制度
- 小學(xué)英語單詞匯總大全打印
- 衛(wèi)生健康系統(tǒng)安全生產(chǎn)隱患全面排查
- GB/T 15114-2023鋁合金壓鑄件
- 貨物驗收單表格模板
評論
0/150
提交評論