




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年四川省廣安市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.設有兩個串p和q,其中q是p的子串,求q在p中首次出現(xiàn)的位置的算法稱為()。
A.求子串B.聯(lián)接C.匹配D.求串長
2.以下說法錯誤的是()。
A.由3種基本結構組成的結構化程序不能解決過于復雜的問題
B.由3種基本結構組成的結構化程序能解決一些簡單的問題
C.由3種基本結構組成的結構化程序能解決遞歸問題
D.由3種基本結構組成的結構化程序能解決數(shù)學上有解析解的問題
3.以下敘述中正確的是()。
A.構成C程序的基本單位是函數(shù)
B.可以在一個函數(shù)中定義另一個函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
4.若希望下列的程序運行后輸出25,程序空白處的正確選項是()。main{intid=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
5.在一個長度為n(n>1)的單鏈表上,設有頭和尾兩個指針,執(zhí)行()操作與鏈表的長度有關。
A.刪除單鏈表中的第一個元素
B.刪除單鏈表中的最后一個元素
C.在單鏈表第一個元素前插入一個新元素
D.在單鏈表最后一個元素后插入一個新元素
6.在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。
A.1B..0C.6D.2
7.x>0&&x<=10的相反表達式為()。
A.x<=0||x>10B.x<=0&&x>10C.x<=0||x<=10D.x>0&&x>10
8.
9.
10.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。
A.334HB.30DHC.352HD.31AH
11.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序運行后的輸出結果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1
12.下列表達式中,可以正確表示的關系是()。
A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0
13.有一個100×90的稀疏矩陣,非0元素有10,設每個整型數(shù)占2個字節(jié),則用三元組表示該矩陣時,所需的字節(jié)數(shù)是()。
A.20B.66C.18000D.33
14.下列敘述中錯誤的是()。
A.用戶定義的函數(shù)中可以沒有return語句
B.用戶定義的函數(shù)中可以有多個return語句,以便調用一次返回多個函數(shù)值
C.用戶定義的函數(shù)中若沒有return語句,則應當定義函數(shù)為void類型
D.函數(shù)的return語句中可以沒有表達式
15.執(zhí)行下述程序后,輸出的結果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0
16.下面關于圖的存儲的敘述中正確的是()。
A.用鄰接表法存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關,而與頂點個數(shù)無關
B.用鄰接表法存儲圖,占用的存儲空間大小與圖中邊數(shù)和頂點個數(shù)都有關
C.用鄰接矩陣法存儲圖,占用的存儲空間大小與圖中頂點個數(shù)和邊數(shù)無關
D.用鄰接矩陣存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關,而與頂點個數(shù)無關
17.以下說法正確的是()。
A.數(shù)據(jù)項是數(shù)據(jù)的基本單位
B.數(shù)據(jù)元素是數(shù)據(jù)的最小單位
C.數(shù)據(jù)結構是帶結構的數(shù)據(jù)項的集合
D.一些表面上很不相同的數(shù)據(jù)可以有相同的邏輯結構
18.如果以鏈表作為棧的存儲結構,則入棧操作時()。
A.必須判別棧是否滿B.必須判別棧是否為空C.必須判別棧元素類型D.可不做任何判斷
19.如果某圖的鄰接矩陣是對角線元素均為零的上三角矩陣,則此圖是_______
A.有向完全圖B.連通圖C.強連通圖D.有向無環(huán)圖
20.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結果是______。A.21,43B.43,21C.43,00D.21,00
二、2.填空題(20題)21.下面程序用來輸出結構體變量a所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>
main()
{structstu
{charx[20];floaty;}a;
printf("asize:%d\n",sizeof(【】));
}
22.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結構、數(shù)據(jù)流、______和處理過程。
23.算法的復雜度主要包括【】復雜度和空間復雜度。
24.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=0;
whiles(length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';
}
25.以下程序運行后的輸出結果是______。
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
26.設有以下定義變量的語句,并且已賦確定的值,則表達式“W*X+Z-y”所求得的數(shù)據(jù)類型為【】。
charw;intx;floaty;double2;
27.在面向對象方法中,【】描述的是具有相似屬性與操作的一組對象。
28.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。
29.下列程序的運行結果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",-i);
}
30.實現(xiàn)程序可將磁盤中的一個文件復制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當于copy命令),假定文件在當前目錄下。請補全程序。
#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);
}
31.若已經(jīng)定義inta=25,b=14,c=19;,以下三目運算符(?:)所構成的語句的執(zhí)行結果是【】。
a++<=2&&b--<=2&&c++?printf("***
a=%d,b=%d,c=%d\n",a,b,C):printf("a=%d,b=%d,c=%d\n",a,b,C);
32.符合結構化原則的三種基本控制結構是順序結構、()和循環(huán)結構。
33.在C語言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。
34.算法復雜度主要包括時間復雜度和【】復雜度。
35.已有定義如下:
structnode
{intdata;
structnode*next;
}*p;
以下語句調用malloc函數(shù),使指針p指向一個具有structnode類型的動態(tài)存儲空間。請?zhí)羁铡?/p>
p=(structnode*)malloc(【】);
36.以下定義的結構體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結構體的指針,請將定義補充完整。
structnode
{intinfo;
【】link;};
37.按照邏輯結構分類,結構可以分為線性結構和非線性結構,棧屬于______。
38.下述函數(shù)用于統(tǒng)計—行字符中的單詞個數(shù),單詞之間用空格分隔。
word_num(str)
charstr[];
{int,num=O,word=O;
for(i=0;str[i]!=【】;i++)
if(【】=")wprd=0
elseif(word=O)
{
word=1:
【】;
}
return(num);
}
39.已有文本文件test.txt,其中的內容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向文件,則程序的輸出結果是______。
#include<stdio.h>main(){FILE*fr;charstr[40];
fgets(str,5,fr);
printf("%s\n,,str);
fclose(fr);}
40.下面程序的功能是:將字符數(shù)組a中下標值為偶數(shù)的元素從小到大排列,其他元素不變。請?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;j+=2;)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}
三、1.選擇題(20題)41.下列程序的執(zhí)行結果是______。main(){intx=2,y=2,z=0;if(z<0)if(y>o)x=4;elseX=5;printf("%d\t",x);if(z=y>0)x=7;elseif(y=0)x=3;elseX=6;printf("%d\t",x);printf("%d\t",z);}
A.271B.432C.570D.250
42.下面程序的運行結果是#include<stdio.h>#include<string.h>main(){char*s1="AbDeG";char*s2="AbdEg";s1+=2;s2+=2;printf("%d\n",strcmp(s1,s2));}
A.正數(shù)B.負數(shù)C.零D.不確定的值
43.定義如下變量和數(shù)組:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
則下面語句的輸出結果是()。
for(i=0;i<3;i++)
printf("%d",x[i][2-i]);
A.159B.147C.357D.369
44.在C語言中,函數(shù)的隱含存儲類型是()
A.autoB.staticC.externD.無存儲類型
45.下面的程序執(zhí)行后,文件test.t中內容是______。#include<stdio.h>voidfun(char*fName,char*st){FILE*myf;inti;myf=fopm(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}
A.hello,B.newworldhelloC.newworldD.hello.rld
46.數(shù)據(jù)的存儲結構是指()。
A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結構在計算機中的表示
47.在下列語句中,其含義為“q為一個指針的函數(shù),該指針指向整型數(shù)據(jù)”的定義語句是()。
A.int**q;B.int(*q)0;C.int*q;D.int*q();
48.設有定義:floata=2,B=4,h=3;,以下C語言表達式中與代數(shù)式計算結果不相符的是______。
A.(a十B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)
49.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關系
50.在下列字符序列中,不可用做C語言標識符的是()
A.student___numB.classC.#88D.month___12
51.以下敘述中錯誤的是
A.在程序中凡是以"#"開始的語句行都是預處理命令行
B.預處理命令行的最后不能以分號表示結束
C.#defineMAX是合法的宏定義命令行
D.C程序對預處理命令行的處理是在程序執(zhí)行的過程中進行的
52.以下敘述中正確的是
A.預處理命令行必須位于源文件的開頭
B.在源文件的一行上可以有多條預處理命令
C.宏名必須用大寫字母表示
D.宏替換不占有程序的運行時間
53.若有代數(shù)式
(其中P僅代表自然對數(shù)的底數(shù),不是變量),則下列能夠正確表示該代數(shù)式的C語言表達式是()。
A.sqrt(abs(n^x+e^x))
B.sqrt(fabs(pow(n,x)+pow(x,e)))
C.sqrt(fabs(pow(n,x)+exp(x)))
D.sqrt(fabs(pow(x,n)+exp(x)))
54.以下各選項企圖說明—種新的類型名,其中正確的是______。
A.typedefviint;
B.typedefV2=int;
C.typedefintv3;
D.lypedefv4:int
55.設x、y\z和k都是int型變量,執(zhí)行表達式x=(y=4,z=16,k=32)后,x的值為______。
A.4B.16C.32D.52
56.能正確表示邏輯關系“a>=10或a<=0”的C語言表達式是()。
A.a>=10ora=10
B.a>=0|a<=10
C.a>=10&&a<=0
D.a>=10||a<=0
57.數(shù)據(jù)庫設計包括兩個方面的設計內容,它們是()
A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計
58.當運行以下程序時,從鍵盤輸入AhaMA(空格)Aha<CR>,則下面程序的運行結果是
#include<stdio.h>
main()
{chars[80],c=′a′;
inti=0;
scanf("%s",s);
while(s[i]!=′
{if(s[i]==c)s[i]-32;
elseif(s[i]==c-32)s[i]=s[i]+32;
i++;}
puts(s);}
A.ahaMaB.AbAMaC.AhAMa[空格]ahAD.ahAMa[空格]ahA
59.下面程序的輸出結果是()#include<stdio.h>#include<string.h>{char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(str+2.strcat(pi,p2));printf("%s\n",str);}
A.xyzabcABB.zabcABCC.yzabcABCD.xycbcABC
60.下列函數(shù)調用中,不正確的是______。
A.max(a,b);B.max(3,a+b);C.max(3,5);D.intmax(a,b);
四、選擇題(20題)61.
62.在C程序中有如下語句:char*func(intx,inty);它是()。
A.對函數(shù)func的定義。B.對函數(shù)func的調用。C.對函數(shù)func的原型說明。D.不合法的
63.若有定義語句:doublex,y,*px,*PY;執(zhí)行了laX=&x;lay=&y;之后,正確的輸入語句是()。A.scanf(”%If%le”,px,lay);
B.seanf(”%f%f¨&x,y);
C.seanf(”%f%f",x,y);
D.Scanf(”%If%If"·,x,y):
64.有下列程序
main()
{
inta[5]={2,4,6,8,10},*p,**k;
p=a;
k=&p;
printf("%d",*(p++));
printf("%d\n",**k);
}
運行該程序,其輸出結果是
A.4B.22
C.24D.46
65.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
66.下列函數(shù)的功能是()
67.
68.有以下程序:
程序運行后的輸出結果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
69.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。
A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:
70.假設a和b為int型變量,則執(zhí)行以下語句后b的值為()。a=1;b=10;do{b-=a;a++;}while(b--<0);A.9B.-2C.-lD.8
71.
下列程序執(zhí)行后的輸出結果是()。
main
{intx=f;printf("%c\n",A+(x-a+1));}
A.GB.HC.ID.J
72.下面敘述中錯誤的是()。
A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟
C.程序調試通常也稱為Debug
D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性
73.
74.有以下程序:
main()
{intx=0,y=5,z=3;
while(z-->0&&++x<5?x:y--)y=y-1
Printf("%d,%d,%d\n",x,y,z);
}
程序執(zhí)行后的輸出結果是()。
A.3,2,0B.3,2,-1C.4,3,-1D.3,-1,-2
75.一個教師可講授多門課程,一門課程可由多個教師講授。則實體教師和課程間的聯(lián)系是()。
A.1:1聯(lián)系B.1:m聯(lián)系C.m:1聯(lián)系D.m:n聯(lián)系
76.若i、j已定義成mt型,則下列程序段中內循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
77.(22)下列關于棧的敘述中正確的是()
A.在棧中只能插入數(shù)據(jù)
B.在棧中只能刪除數(shù)據(jù)
C.棧是先進先出的線性表
D.棧是先進后出的線性表
78.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄
B.數(shù)據(jù)行
C.數(shù)據(jù)塊
D.字符(字節(jié))序列
79.設有二元關系R和三元關系s,下列運算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個整數(shù)m是否是素數(shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main)函數(shù),不得增行或刪行,也不得,t更改程序的結構。
試題程序:
六、程序設計題(1題)82.n個人的成績存放在score數(shù)組中,請編寫函數(shù)proc(),它的功能是將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分數(shù)放在down所指的數(shù)組中。例如,當score數(shù)組中的數(shù)據(jù)為{99,80,40,56,59,84,60,76,100}時,函數(shù)返回的人數(shù)應該是4,down中的數(shù)據(jù)應為40565960。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.C
2.A順序結構、選擇結構、循環(huán)結構是3種基本結構,由3種基本結構構成的程序稱為結構化程序,由3種基本結構組成的算法可以解決任何復雜的問題,選項A錯誤。本題答案為A選項。
3.A解析:本題考查C語言的綜合基礎知識。構成C程序的基本單位是函數(shù),一個C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個程序中的位置如何。C語言的函數(shù)定義都是互相平行、獨立的,在定義函數(shù)時,一個函數(shù)內不能定義另一個函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。
4.D要想使程序輸出25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)的語句,使引用的數(shù)組元素累加65-50=15即可,D選項中,i下標從0開始,i=2指向第3個數(shù)50+a[2]=50+10=60,繼續(xù)循環(huán)60+a[3]=60+5=65,此時i=4跳出,循環(huán)結束。
5.B
6.C
7.A
8.D
9.A
10.C解析:解答本題,首先要明白在對指針進行加、減運算的時候,數(shù)字“1”不是十進制的數(shù)“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節(jié),如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標)4)H=352H。
11.C整型變量x、y的初值都為1,“x++,y++,++y”是一個逗號表達式,程序執(zhí)行“z=x++,y++,++y”之后,x的值為2,y的值為3,z取逗號表達式中的第二個表達式的值,為1。因此本題的答案為選項C。
12.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達式是或的關系,所以在寫成C語言表達式應是邏輯或的關系,邏輯或運算符是'‖'。
13.B
14.B函數(shù)的值只能通過return語句返回主調函數(shù)。函數(shù)中允許有多個return語句,但每次只能調用一個return語句,因此只能返回一個函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為void。故本題答案為B選項。
15.D本題j=要是考查帶參數(shù)的宏的定義,過程如下:inta=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。
16.B
17.D
18.D
19.D
20.A結構體和共用體;在“聯(lián)合”中,各成員共享一段內存空間,一個聯(lián)合變量的長度等于各成員中最長的長度。應該說明的是,這里所謂的共享不是指把多個成員同時裝入一個聯(lián)合變量內,而是指該聯(lián)合變量可被賦予任一成員值,但每次只能賦一種值,賦入新值則沖去舊值
21.dd解析:d被定義為一個結構體類型變量,求結構體變量a所占存儲單元的字節(jié)數(shù)即sizeof(d)。
22.數(shù)據(jù)存儲數(shù)據(jù)存儲
23.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內存空間。
24.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到笫i+n或最后—個間的所有字符。刪除前,應判斷i<=length。由于已經(jīng)進行了-i運算,故實際應填入i<length。
25.136136解析:本題考核的知識點是函數(shù)遞歸。主函數(shù)調用函數(shù)fun(6),由于6/2>0為真遞歸調用fun(3),接著遞歸調用fun(1),輸出1,返回上一層輸出3,在返回上一層輸出6。故空格處應該填136。
26.double或雙精度型double或雙精度型
27.類類解析:在面向對象方法中,類描述的是具有相似屬性與操作的一組對象。
28.完善性軟件維護活動包括以下幾類:改正性維護,適應性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。
29.33解析:分析程序運行過程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,軸出結果為3。
30.3!feof(f1)3\r\n!feof(f1)解析:要實現(xiàn)文件復制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應的文件中去,直至文件f1結束為止,因此第二空為!feof(f1)。
31.a=26b=14c=19a=26,b=14,c=19解析:這種條件表達式的—般形式為:表達式1?表達式2:表達式3,三目運算符的執(zhí)行順序,先求解表達式1,若非0則求解表達式2,此時表達式2的值就作為整個表達式的值,若表達式1的值為0,則求解表達式3,此時表達式3的值就作為整個表達式的值。C語言在做一系列表達式相與時,從左到右分別計算各表達式的值,一旦遇到一個表達式為false,則剩余的表達式都不再進行運算。該題中,a++<=2的值為false,則b-<=2和c++就都不再運算再運算。
32.選擇結構選擇結構解析:程序設計語言僅僅使用順序、選擇和重復(循環(huán))三種基本控制結構就足以表達出各種其他形式結構的程序設計方法。遵循程序結構化的設計原則,按結構化程序設計方法設計出的程序易于理解、使用和維護;可以提高編程工作的效率,降低軟件的開發(fā)成本。
33.do…whiledo…while解析:考查while和do…while循環(huán)的主要區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當while后面的表達式的值為非零時,才可能執(zhí)行循環(huán)體;在do…while構成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達式的值,因此無論表達式的值是否為零,循環(huán)體至少要被執(zhí)行一次。
34.空間空間解析:程序在計算機上運行時所耗費的時間由程序運行時所需輸入的數(shù)據(jù)總量、對源程序進行編譯所需時間、計算機執(zhí)行每條指令所需時間、程序中的指令重復執(zhí)行的次數(shù)等決定。習慣上常常把語句重復執(zhí)行的次數(shù)作為算法運行時間的相對量度,稱作算法的時間復雜度。算法在運行過程中需輔助存儲空間的大小稱為算法的空間復雜度。
35.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是開辟一個長度為sizeof(struetnode)的內存區(qū)。(structnode*)的作用是使malloc返回的指針轉換為指向structnode類型數(shù)據(jù)的指針。
36.structnode*structnode*解析:本題中的結構類型名為structnode,所以空白處應填:structnode*。即定義一個指向自身的結構體指針。
37.線性結構線性結構解析:數(shù)據(jù)的邏輯結構是指數(shù)據(jù)元素之間的邏輯關系,分為線性結構和非線性結構。常見的線性結構有線性表、棧和隊列等,常見的非線性結構有樹、二叉樹等。
38.\0'或0或NULLstr[i]num++或num=num+1或mum+=l\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或mum+=l解析:觀察題目要求,可以知道以下幾點:
①for循環(huán)的結束條件應當是:str[i]已是字符串的最后一個字符;
②str[i]代表字符串str中的第i+1個字符;
③整型變量num的值是要記錄的單詞的個數(shù)。
C語言中規(guī)定字和會串的最后一個字和會是一個隱含的字符串結束符“\\0”,所以在題中第一個空中應填寫“\\0”;題中第二個空應填寫“str[i]”,以判斷當前位置的字符是否為空格;題中第三個空中應當填寫“num++”,通地變量num的加1累加到字符串中的單詞個數(shù)。
39.HellHell解析:該函數(shù)有3個參數(shù),第三個參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個參數(shù)是一個整數(shù)(假設為n),表示從文件中讀n-1個字符并在其后加一個'\\0',第一個參數(shù)為存放讀取的字符串的內存區(qū)的起始地址,讀取得數(shù)據(jù)保存在其中。可見本題的輸出結果為:Hell。
40.a[i]>a[j]a[i]>a[j]解析:本題中的嵌套的循環(huán)結構用在了數(shù)組元素的排序上。本題需要注意的一點是:由于題目只要求將下標值為偶數(shù)的元素從小到大排序,所以內外層for循環(huán)的條件變量變更條件都是+=2。最后通過條件a[i]>a[j]對元素大小進行判斷并交換。
41.A解析:本題考查if語句的嵌套,第一個嵌套語句,else看上去似乎和第一個if配對,實際上是和第二個if配對:第二個嵌套語句中的兩個條件表達式應該注意,第一個條件表達式是將y>0的邏輯值賦給變量z,第二個條件表達式是將0賦給變量y,不是邏輯等于運算符“==”。
42.B解析:本題考查了用指針處理字符串的方法。用指針處理字符串,首先要使指針指向該字符串。例如本題中的s1='AbDeG'就是使字符指針指向了字符串'AbDeG',而指針s1+=2則是指針向后移動了兩個字符的位置,指向了字符‘D’。strcmp則是字符串比較函數(shù)。
43.C解析:考查二維數(shù)組元素的引用方法。題中通過二維數(shù)組的行、列下標來定位元素的位置,從而實現(xiàn)元素的引用。
44.C
45.A解析:C語言中文件有文本文件與二進制文件,對文件的使用前必須先打開,打開方式有只讀、寫入、讀寫等方式。
46.D數(shù)據(jù)的邏輯結構是指數(shù)據(jù)元素之間的邏輯關系的數(shù)據(jù)結構。數(shù)據(jù)的存儲結構則是數(shù)據(jù)的邏輯結構在計算機中的物理實現(xiàn),有時也稱作數(shù)據(jù)的物理結構。兩者的區(qū)別是數(shù)據(jù)的邏輯結構只涉及到數(shù)據(jù)之間抽象的數(shù)學關系。存儲結構則涉及到如何在計算機中通過對數(shù)據(jù)的物理存儲進行組織來表達數(shù)據(jù)元素之間的邏輯關系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達線性表中數(shù)據(jù)的前后件關系;在線性表的鏈式存儲中是通過指針域構成的邏輯鏈條來表達數(shù)據(jù)的前后件關系。一般的,一種數(shù)據(jù)的邏輯結構對應的物理實現(xiàn),即數(shù)據(jù)的存儲結構不止一種。因此選項D正確。
47.B解析:本題考查的是指針函數(shù)。指針函數(shù)定義的基本格式:類型說明符(*函數(shù)名)()。其中,類型說明符表示返回的指針值指向的數(shù)據(jù)類型。
48.B解析:選項B錯誤,不符合題意。
49.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。
50.C
51.D解析:C語言中的預處理命令以符號#開頭,這些命令是在程序編譯之前進行處理的,選項D)的描述錯誤。
52.D解析:本題考查的是編譯預處理的一些基本概念。在C語言中,凡是以“#”號開頭的行,都稱為“編譯預處理”命令行。它們可以根據(jù)需要出現(xiàn)在程序的任何一行的開始部位,選項A是錯誤的。一條預處理命令至少得占一行,選項B是錯誤的。宏名可以是任何合法的C語言標識符,只不過通常習慣用大寫字母,因此選項C是錯誤的。宏定義是“編譯預處理”命令,它們的替換過程在編譯時期就已經(jīng)完成了,因此不會占有程序運行的時間,選項D是正確的。
53.C解析:n和e的x冪次方,要分別調用C語言的數(shù)學庫函數(shù)doublepow(n,x)和doubleexp(x),因為這兩個函數(shù)的返回值都為double型,對兩者的和計算絕對值,調用庫函數(shù)doublefabs(pow(n,x)+exp(x)),求出和的絕對值,再調用開平方函數(shù)doublesqrt(fabs(pow(n,x)+exp(x))),這樣計算出的結果就是題干中表達式的值。
54.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當于數(shù)據(jù)類型取個別名。
55.C
56.D解析:在C語言中,邏輯運算符有與&&、或||、非!,關系運算符有大于>、小于<、大于等于>=、小于等于<=、等于==,根據(jù)邏輯關系很容易看出,符合條件的選項為D。
57.A解析:模式設計和內模式設計是概念設計的兩種方法。物理設計是根據(jù)特定的計算機系統(tǒng),對數(shù)據(jù)的存儲結構和存取方法進行設計,從而實現(xiàn)從邏輯結構到物理結構的轉換。從系統(tǒng)開發(fā)的角度來看,結構特性設計和行為特性-設計是數(shù)據(jù)庫應用系統(tǒng)所具有的兩個特性。結構特性的設計,設計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。
58.A解析:本題主要考查的知識點是大寫字母比它對應的小寫字母ASCII碼值小32,并且字符可以看作整數(shù)進行算術運算等操作。
59.D
60.D
61.B
62.C
63.A因為X,Y都是double型數(shù)據(jù),所以輸入時的格式字符應為%If,所以B與C錯誤。D選項中scanf(”%lf%%’,x,Y);應為sc“(”%If%If"’,,&)r);。
64.C在本題中,程序首先定義了一個一維數(shù)組a,賦其初值,并定義一個同類型的指針變量p和一個指向指針的指針變量k,然后讓指針變量p指向數(shù)組的首地址,接著將指針變量p的地址值賦給指向指針的指針變量k。
在第一條輸出語句中,首先我們需要弄清楚*(p++)的作用,它是先調用指針變量p的值,然后使其自加,輸出效果等價于*p,因此,最后輸出的結果是數(shù)組中的第一個元素。
在第二條輸出語句中,我們需要弄明白**k的作用,指向指針的指針變量類似于指針變量,如果用**k表示一個數(shù)值,可以確定這條輸出語句的輸出結果是一個數(shù)值,而非地址,從表達式k=&p可以看出,k的值是指針變量p的地址值,p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 抵押機動車借款合同書
- 公司品牌服務合同
- 工業(yè)園物業(yè)委托管理合同
- 口罩機居間服務協(xié)議
- 環(huán)境保護工程設備供應協(xié)議
- 關于個人借款的合同5篇
- 汽車銷售入股合同范本
- 白糖批發(fā)銷售合同范本
- 專業(yè)咨詢服務產(chǎn)業(yè)分析報告
- 離子交換樹脂戰(zhàn)略市場規(guī)劃報告
- 2025年春季學期教導處工作計劃及安排表
- 16J914-1 公用建筑衛(wèi)生間
- TSG11-2020 鍋爐安全技術規(guī)程
- 員工晨會記錄表
- 《兒科學》教案緒論、生長發(fā)育(可編輯)
- 第二章政府審計組織與審計法律規(guī)范
- 楚才辦公室裝修設計方案20140315
- 人教版八年級(上冊)物理習題全集(附答案)
- 電影院影務崗位工作流程
- 衛(wèi)生責任區(qū)域劃分表
- 《感染性腹瀉》PPT課件.ppt
評論
0/150
提交評論