版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年河南省信陽市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達式值為11的是()。
A.++p->xB.pt->xC.*pt->yD.(pt++)->x
2.
若輸入“abcdef”“abdef”,下述程序的輸出結果為()。
#include<stdio.h>
#include<string.h>
main
{intn;
chars1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%S",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("Vood\n",n);
}
A.-1B.0C."abcdef"D."abdef"
3.下列選項中與“if(a==1)a=b;elsea++;”語句功能不同的switch語句是()。
A.switch(a==1){ case0:a=b;break; case1:a++;}
B.switch(a){ case1:a=b;break; default:a++;}
C.switch(a){ default:a++;break; case1:a=b;}
D.switch(a==1){ case1:a=b;break; case0:a++;}
4.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}
A.將磁盤文件的內容顯示在屏幕上
B.將兩個磁盤文件合為一個
C.將一個磁盤文件復制到另一個磁盤文件中
D.將兩個磁盤文件合并后送屏幕
5.依次讀入數據元素序列{a,b,c,d,e,f,g}進棧,每進一個元素,機器可要求下一個元素進?;驈棗?,如此進行,則??諘r彈出的元素構成的序列是以下哪些序列?
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,b,c,a}
D.{c,d,b,e,f,a,g}
6.x>0||y==5的相反表達式為()。
A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==5
7.下列敘述中正確的是:()A.C語言程序中,main()函數必須在其它函數之前,函數內可以嵌套定義函數
B.C語言程序中,main()函數的位置沒有限制,函數內不可以嵌套定義函數
C.C語言程序中,main()函數必須在其它函數之前,函數內不可以嵌套定義函數
D.C語言程序中,main()函數必須在其它函數之后,函數內可以嵌套定義函數
8.設有下列二叉樹:
對此二叉樹先序遍歷的結果是
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
9.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運行該程序的輸出結果是______。
A.34B.42C.43D.33
10.字符組a[20]和b[20],下面正確的輸出語句是()。A.put(a,b)
B.prinf(“%s,%s”,a[],b[])
C.putchar(a,b)
D.puts(a);puts(b)
11.
12.對于靜態(tài)表的順序查找法,若在表頭設置監(jiān)視哨,則正確的查找方式為()A.從第0個元素往后查找該數據元素
B.從第1個元素往后查找該數據元素
C.從第n個元素往開始前查找該數據元素
D.與查找順序無關
13.下面關于線性表的敘述中,錯誤的是哪一個()。
A.線性表采用順序存儲,必須占用一片連續(xù)的存儲單元
B.線性表采用順序存儲,便于進行插入和刪除操作
C.線性表采用鏈式存儲,不必占用一片連續(xù)的存儲單元
D.線性表采用鏈式存儲,便于進行插入和刪除操作
14.數據結構通常是研究數據的及它們之間的聯(lián)系______。A.存儲和邏輯結構B.存儲和抽象C.理想和抽象D.理想與邏輯
15.設已有定義“floatx;”,則下列對指針變量P進行定義且賦初值的語句中正確的是()。
A.int*p=(float)x;
B.float*p=&x;
C.floatp=&x;
D.float*p=1024;
16.待排序的關鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關鍵碼值遞增的順序排序,采取以第一個關鍵碼為基準元素的快速排序法,第一趟排序后關鍵碼33被放到第()個位置。
A.3B.5C.7D.9
17.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)
18.棧的特點是B,隊列的特點是()。
A.先進先出B.先進后出
19.
20.一個隊列的入隊序列是1,2,3,4,則隊列的輸出序列是()。
A.4,3,2,1B.l,4,3,2C.1,2,3,4D.3,2,4,1
二、2.填空題(20題)21.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
22.下面程序的運行結果是______。
#include<stdio.h>
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
23.下列程序的輸出結果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d\n",c,d);
}
24.在程序設計階段應該采取【】和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,進而用某種程序設計語言寫成程序。
25.執(zhí)行以下for語句后,變量i的值是【】。
for(i=1;i++<=5;);
26.在程序設計階段應該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,繼而用某種程序設計語言寫成程序。
27.若有如下結構體說明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請?zhí)羁?,以完成對t數組的定義,t數組的每個元素為該結構體類型。
【】t[20]
28.下列程序的運行結果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
29.以下程序輸出的最后個值是【】
intff(intn)
{staticintf=1;
f=f*n
returnf;
}
main()
{inti;
for(i=1;i<=5:i++)printf("%d、n",ff(i));}
30.數據庫系統(tǒng)中實現(xiàn)各種數據管理功能的核心軟件是______。
31.閱讀下列程序,則程序的輸出結果為【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c=′y′;}
32.下列程序的輸出結果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
33.以下程序中,函數fun的功能是計算x2-2x+6,主函數中將調用fun函數計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
#include"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun(【】);
y2=fun(【】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
34.關系模型的數據操縱即是建立在關系上的數據操縱,一般有______、增加、刪除和修改四種操作。
35.耦合和內聚是評價模塊獨立性的兩個主要標準,其中______反映了模塊內各成分之間的聯(lián)系。
36.以下程序的輸出結果是()。#include<stdio.h>main(){inti=10,j=0;do{j=j+i;i--;}while(i>5);printf("%d\n",j);}
37.設有定義“stmct{inta;floatb;charc}abc,*p_abc=&abc;”,則對結構體成員a的引用方法可以是abc.a和p_abc______。
38.下面程序的輸出結果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}
39.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結構是【】。
40.棧中允許進行插入和刪除的一端叫做______。
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.一個算法的空間復雜度大,則其時間復雜度也必定大
B.一個算法的空間復雜度大,則其時間復雜度必定小
C.一個算法的時間復雜度大,則其空間復雜度必定小
D.上述三種說法都不對
42.對以下二叉樹
進行中序遍歷的結果是()。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
43.有以下程序main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}如果從鍵盤上輸入6514<回車>,則輸出結果為()
A.m=3B.m=2C.m=1D.m=0
44.閱讀下面程序,則程序段的功能是#include"stdio.h"main(){intc[]={23,1,56,234,7,0,34},i,j,t;for(i=1;i<7;i++){t=c[i];j=i-1;while(j>=0&&t>c[j]){c[j+1]=c[j];j--;}c[j+1]=t;}for(i=0;i<7;i++)printf("%d",c[i]);putchar('\n');}
A.對數組元素的升序排列B.對數組元素的降序排列C.對數組元素的倒序排列D.對數組元素的隨機排列
45.以下選項中合法的用戶標識符是A.longB._2TestC.3DmaxD.A.dat
46.己知一個有序線性表為(13,18,24,35,47,50,62,83,96,115,134),當用二分法查找值為90的元素時,查找成功的比較次數為()。
A.1B.2C.3D.9
47.為了使模塊盡可能獨立,要求()。
A.模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強
B.模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強
48.以下定義語句中正確的是______。
A.chara='A'b='B';
B.floata=b=19.0;
C.inta=10,*b=&a;
D.float*a,b=&a;
49.下列程序段的輸出結果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}
A.languageB.lnugC.有語法錯誤D.lang
50.下述函數功能是_______。intfun(char*x){char*y=x;while(*y++);returny-s-1;}
A.求字符串的長度B.求字符串存放的位置C.比較兩個字符串的大小D.將字符串x連接到字符串y后面
51.表達式18/4*sqrt(4.0)/8值的數據類型為()。A.intB.floatC.doubleD.不確定
52.下列屬于C語言語句的是______。
A.printf("%d\n",a)
B.#include<stdio.h>
C.a=b;b=c;c=a;
D./*thisisaprogram*/
53.以下程序的輸出結果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}
A.16B.2C.9D.1
54.有如下程序:#include<stdio.h>main(){intx=1,a=0,b=0;switch(x){casc0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
55.運行下面程序時,從鍵盤輸入字母H,則輸出結果是
#include<stdio.h>
main()
{charch;
ch=getchar();
switch(ch)
{case′H′:printf("Hello!\n");
case′G′:printf("Goodmorning!\n");
default:printf("Bye_Bye!\n");
}
}
A.Hello!
B.Hello!GoodMoring!
C.Hello!Goodmorning!Bye_Bye!
D.Hello!Bye_Bye!
56.以下對C語言函數的有關描述中,正確的是
A.在C語言中調用函數時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數既可以嵌套定義又可以遞歸調用
C.函數必須有返回值,否則不能使用函數
D.函數必須有返回值,返回值類型不定
57.若以下程序所生成的可執(zhí)行文件名為file1.exe,main(intargc,char*argv[]){while(argc-->0){++argv;printf("%s",*argv);}}當鍵入以下命令執(zhí)行該程序時:FILE1CHINABEUINGSHANGHAI程序的輸出結果是()
A.CHINABEIJIANGSHANGHAI
B.FILE1CHINABEIJING
C.CBS
D.FCB
58.對計算機軟件正確的態(tài)度是()
A.計算機軟件不需要維護
B.計算機軟件只要能復制得到就不必購買
C.受法律保護的計算機軟件不能隨便復制
D.計算機軟件不必有備份
59.以下函數返回a所指數組中最小的值所在的下標值
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p]);________;
return(p);}
在橫線處應填入的是
A.i=pB.a[p]=a[i]C.p=jD.p=i
60.下面語句的輸出結果是_______。printf("%d\n",strlen("\t\"\065\xff\n"));
A.14B.8C.5D.輸出項不合怯,無正常輸出
四、選擇題(20題)61.下列選項中屬于面向對象設計方法主要特征的是()。A.繼承B.自頂向下C.模塊化D.逐步求精
62.
63.下列語句組中,正確的是()。
A.char*s;s="Olympic";
B.charsE73;s="Olympic";
C.char*S;s={¨Olympic"};
D.charsET3;s={"Olympic"};
64.在面向對象方法中,不屬于“對象”基本特點的是A.一致性B.分類性C.多態(tài)性D.標識唯一性
65.設變量x為float型且已賦值,則以下語句能將x中的數值保留到小數點后兩位,并將第3位四舍五入的是()。
A.
B.
C.
D.
66.
67.有以下程序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
68.
69.有以下程序:
fun(inta,intb)
{a++;b++;
if(a>b)return(a);
elsereturn(b);
}
void
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y++),2*z);
printf("%d\n",r);
}
程序運行后的輸出結果是()。
A.13B.6
C.8D.12
70.下列判斷正確的是()。A.A.chara="ABCD":等價于char*a;*a="ABCD":
B.charstr[10]={"ABCD"}:等價于charstr[10];str[]={"ABCD"};
C.char*s="ABCD":等價于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD":等價于charc[5]-d[5]="ABCD";
71.
72.有以下程序:
程序執(zhí)行后的輸出結果是()。
A.1B.2C.3D.4
73.
74.有以下計算公式
75.以下選項中,當x為大于1的奇數時,值為0的表達式是()。
A.x%2==0B.x/2C.x%21=0D.x%2==1
76.
77.設有定義
78.以下正確的字符串常量是()。A.A."\\\"
B.'abc'
C.OlympicGames
D.""
79.已知字母A的ASCII碼為十進制的65,下面程序的輸出為()。
voidmain()
{charch1,ch2;
ch1=’A’+’5’-’3’;
ch2=’A’+6-3;
printf("%d,%c\n",ch1,ch2);
}
A.67,DB.B,CC.C,DD.不確定的值
80.
執(zhí)行下列程序中的輸出語句后,a的值是()。
main
{inta;
printf("%d\n",(a=2*3,a*5,a+7));
}
A.17B.37C.6D.13
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:對M名學生的學習成績,按從低到高的順序找出前m(m≤10)名學生來,并將這些學生數據存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數值返回。
請修改程序中的錯誤,使它能得到正確結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.使用VC++2010打開觸文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數fun(),其功能是移動字符串中的內容,移動的規(guī)則是把第1~m個字符,移動到字符串的最后,把第m+1到最后的字符移動到于符串的前面。例如,字符串中原有的內容為“ABCDEFGHIJK”,m的值為3,移動后,字符串中的內容應該是“DEFGHUKABC”。注意:部分源程序在文件prog1.c中。請勿改動main()函數和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.A題目中定義了一個結構體數組c并初始化,指針pt指向c的第1個元素。則“++pt->x”為11,“pt->x”為10,“*pt->y”為1,“(pt++)->x”為20。故本題答案為A選項。
2.D
\n本題考查字符串比較函數strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。
\n
3.A題干中,if語句的含義是:如果a的值為1,將b的值賦給a,否則將a的值自增1。選項A中,“switch(a==1)”中表達式“a==1”的結果如果為真,即1,則從case1開始執(zhí)行“a++”;如果“a==1”的結果為假,即為0,則從case0開始執(zhí)行“a=b”,所以與題干含義執(zhí)行操作相反的是選項A中的語句。故本題答案為A選項。
4.C解析:程序首先定義了兩個文件類型的指針fp1、fp2。為讀打開文件filel,并讓指針fp1指向該文件;為寫打開文件file2,并讓指針fp2指向該文件。循環(huán)執(zhí)行從文件file1中讀取一個字符,輸出到文件file2中,直到文件file1結束。因此程序的功能是將文件file1中的內容復制到文件file2中。
5.A
6.B
7.B每個C程序有且只有一個主函數main,C程序總是從main函數開始執(zhí)行,main函數后面的一對圓括號不能省略,main函數可以位于程序的任意位置。函數不可以嵌套定義,但函數可以嵌套調用。
8.C解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求先序遍歷遍歷順序應該為:訪問根結點->先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF。
9.D解析:逗號表達式(++x,y++)的值應該是y++的值,由于y++是先引用后自增,所以y++的值是3。
10.D難易程度:中
11.D
12.C
13.B
14.A
15.B指針是用來存放地址的變量,定義指針變量的形式為:類型名*指針變量名。賦值時應將某個變量地址,如選項B中變量x的地址&x賦給指針變量。故本題答案為B選項。
16.BB.【解析】快速排序的基本思想是:從表中選取一個元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結果把線性表分割成兩部分(兩個子表),此元素插入到其分界線的位置處。然后分別對兩個子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。
17.A本題考查邏輯與運算“&&”與邏輯或運算“||”。在選項A中,因為!a=0,所以關系表達式!a=1為0,又因為邏輯與運算符“&&”兩邊的表達式只要一個等于零,則整個表達式為零,所以選項A正確。在選項8中,關系表達式a<b為真,表達式(a<b)&&!C為假,而表達式(a<b)&&!||1為真,所以整個表達式的值為真。選項C中,a&&b的結果為真。在選項D中,a||(b+b)&&(C-a)的結果為真。
18.A
19.B本題考查標準輸入輸出函數和循環(huán)語句。gets(s)函數的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf函數接收字符串時的結束標志為回車或者空格。因此選項B)不能,選項C)和選項D)中按字符逐個讀入字符串s中,直到讀入的字符是換行符為止,因此B正確。
20.C
21.x+=1x+=1解析:本題考查“++”,“--”運算符?!?+”、“--”只能作用于變量,不能用于表達式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。
22.
23.5656解析:本題中a,b,c,d是實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數據傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內存中,實參單元與形參單元是不同的單元。在調用函數時,給形參分配存儲單元,并將實參對應的值傳遞給形參,調用結束后,形參單元被釋放,實參中元仍保留并維持原值。因此,程序的輸出結果是56。
24.自頂而下自頂而下
25.7
26.自頂向下自頂向下解析:在程序設計時,應先考慮總體,后考慮細節(jié),逐步使問題具體化,對復雜的問題,應該設計一些子目標作為過渡,上述方法概括為:自頂向下,逐步細化。
27.strudctSTRUstrudctSTRU解析:結構件類型是構造數據類型,是用戶自己定義的一種類型。
結構體類型的定義:
struct結構體類型名
{
成員項表;
};
定義結構體變量的的形式為:
struct結構體類型名變量1,變量2,...?
其中變量包括;一般變量、指針變量、數組變量等。
28.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數組中前面兩項的和賦值給數組當前元素,得到a的值應為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數組中的元素以每行2個的形式輸出。
29.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:
靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:
①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內分配存儲單元。在程序整個運行期間都不釋放。
②對靜態(tài)局部變量是在編譯時賦初值的,即只賦初值—次,在程序運行時它已有初值。以后每次調用函數時不再重新賦初值而只是保留上次函數調用結束時的值。
③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數值型變量)或空字符(對字符變量)。(注意:C語言中非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦初值)
④雖然靜態(tài)局部變量在函數調用結束后仍然存在,但其他函數是不能引用它的。本題中函數的功能是:與for語句一起求一個整數的階乘。
30.數據庫管理系統(tǒng)數據庫管理系統(tǒng)解析:數據庫管理系統(tǒng)是數據庫的管理機構,它是一種系統(tǒng)軟件,負責數據庫中的數據組織、數據操縱、數據維護、控制及保護和數據服務等。
31.30x30x解析:本題的參數傳遞屬于值傳遞,所以被調用函數內不能改變調用函數中的數據。
32.21
33.x+8sin(x)x+8,sin(x)解析:考查考生對函數調用相關知識的了解。用x+8代替函數fun(doublex)中形式參數x;用sin(x)代替函數fun(doublex)中形式參數x。
34.查詢查詢
35.內聚內聚
36.4040解析:分析程序,初始時i=10,j=0,這時do循環(huán)中的“i=j+i”
37.若結構體變量abc有成員a,并有指針p_abc指向結構變量abe,則引用變量abe成員s的標記形式有abe.a和p_abc->a。
38.aa解析:本程序先將指針ptr1和ptr2分別指向字符數組a和b,然后通過指針的移動比較a和b中是否有相同的字符。若有相同的字符則將其輸出。
39.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結構把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結點,其數據域為任意或根據需要來設置,指針域指向線性表的第一個元素的結點。循環(huán)鏈表的頭指針指向表頭結點。②循環(huán)鏈表中最后一個結點的指針不是空,而是指向表頭結點。
40.棧頂棧頂解析:棧是限定在表的一端進行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
41.D解析:時間復雜度是指一個算法執(zhí)行時間的相對度量;空間復雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執(zhí)行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數據,又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復雜度和空間復雜度之間雖然經常矛盾,但是二者不存在必然的聯(lián)系。因此,選項A、B、C的說法都是錯誤的。故本題的正確答案是D。
42.A解析:二叉樹的中序遍歷遞歸算法為:如果根不空,則①按中序次序訪問左子樹,②訪問跟結點,⑧按中序次序訪問右子樹;否則返回。本題中,根據中序遍歷算法,應首先按照中序次序訪問以C為根結點的左子樹,然后再訪問根結點P,最后才訪問以E為根結點的右子樹。遍歷以C為根結點的左子樹同樣要遵循中序遍歷算法,因此中序遍歷結果為ACBD;然后遍歷根結點P;遍歷以E為根結點的右子樹,同樣要遵循中序遍歷算法,因此中序遍歷結果為EG。最后把這三部分的遍歷結果按順序連接起來,中序遍歷結果為ACBDFEG。因此,本題的正確答案是選項A。
43.C
44.B解析:讀懂兩個循環(huán)的關系,是解這個題目的關鍵,本題的第一個for循環(huán)的作用是實現(xiàn)對數組元素的遍歷,第二個循環(huán)的作用是排序。while(j>=0&&t>c[j]),這個語句是控制排序的關鍵語句,它即實現(xiàn)了比較兩個元素大小的作用,又實現(xiàn)了元素向后移動的作用,不斷地把大的數據向前移動,直到找到一個比它小的,或到數據的上界為止。
45.B解析:本題考查C語言標識符的命名.在C語言中,合法的標識符由字母,數字和下劃線組成,并且第一個字符必須為字母或者下劃線,long為C語言的保留字,不能作為用戶標識符,故選頃A錯誤.3Draax開頭的第一個為數字,而C語言規(guī)定,第一個字符必須為字母或者下劃線,故選項C錯誤;A.dat中的字符“.”不符合C語言中用戶標識符只能由字母、數字和下劃線組成的規(guī)定,故選項D錯誤.只有迭項B正確。
46.B解析:根據二分法查找需要兩次:①首先將90與表中間的元素50進行比較,由于90大于50,所以性表的后半部分查找。②第二次比較的元素是后半部分的中間元素,即90,這時兩者相等,即查找成功。
47.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內聚性是模塊獨立性的兩個定性標準,耦合與內聚是相互關聯(lián)的。在程序結構中,各模塊的內聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。本題答案為B。
48.C解析:選項A中a='A'b='B'中缺少一個逗號;B中只能定義一個,如a=19.0;D中b是float類型的,不能取指針地址。
49.B解析:本程序首先定義了靜態(tài)字符數組a,然后將指針p指向數組a的首地址。
第1次for循環(huán),p=a,p指向數組的第1個元素,*p是取指針p所指地址的內容,輸出1;第2次for循環(huán),p=p+2,則p指向數組的第3個元素,*p是取指針p所指地址的內容,輸出n;第3次for循環(huán),p=p+2,則p指向數組的第5個元素,*p是取指針p所指地址的內容,輸出u;第4次for循環(huán),p=p+2,則p指向數組的第7個元素,*p是取指針p所指地址的內容,輸出g,結束循環(huán)。
50.A解析:在函數體內定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。
51.C因為c語言數據進行計算時數據類型會由低級向高級進行隱式轉化,sqrt函數得到的是double類型,比其他的int數據類型高,所以整個結果得到的是double類型。
52.C解析:在C語言中,一個完整的C語句必須在語句末尾出現(xiàn)分號,分號是C語句的必要組成部分。本題答案為C。
53.D解析:本題考查帶參數的宏調用。a/=SQR(k+m)/SQR(k+m)進行宏替換后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。
54.A解析:該程序的關鍵是要搞清楚程序執(zhí)行的路線。由于x的值等于1,所以在switch語句中,程序從case1后面的語句開始執(zhí)行。由于case1后面沒有break語句,所以程序順序執(zhí)行case2后面的語句。程序共執(zhí)行了三條語句:a++;a++;b++;所以,變量a和b最后的值分別為2和l。選項A)正確。
55.C解析:本題主要對switch語句進行了考查。switch語句的執(zhí)行過程為:進入switch結構后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為入口,執(zhí)行switch結構中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行default后面的語句。本題中ch為字符'H',所以case'H'條件中的語句將被執(zhí)行,由于沒有break語句,所以case'G'后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行了。
56.A解析:C語言中的函數可以進行遞歸調用,但不能在函數中定義函數,即函數不能嵌套定義。函數可以沒有返回值,若有返回值,則返回值類型必須確定。
57.A
58.C解析:A、B、D都不是對待軟件的正確態(tài)度。
59.D解析:該程序先判斷a[i]<a[p],如果條件為真,則a[i]比當前設定的最小值小(p保留的當前最小元素的下標),那么將i賦給p,即將比較過的最小元素下標保留在p中,作為下面判斷的標準。
60.C解析:在C語言中,以“\\”開頭的字符均為轉義字符,其中“\\”后可跟1~3位八進制數或在“\\”后跟字母x及1~2位十六進制數,以此來代表一個特定的字符。
61.A面向對象設計方法的三個基本特性即封裝、多態(tài)、繼承。結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、模塊化、限制使用goto語句。故答案為A)。
62.A
63.A給字符串數組賦值時,要先定義數組長度,然后再賦值。可以只給部分元素賦初值,當中值的個數少于元素個數時,只給前面部分元素賦值。數組的下標是從0開始的,所以s[7]代表從s[0]到s[6]七個元素。其格式可以寫成:char數組名[常量]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年寧夏農墾金融控股有限公司招聘筆試參考題庫含答案解析
- 2025年度住宅小區(qū)地下車庫車位產權轉讓及車位租賃合同3篇
- 2025版二手房買賣家居風水咨詢合同3篇
- 2025年度個人汽車租賃押金退還服務協(xié)議2篇
- 2025年度文化藝術品展覽與拍賣合作協(xié)議3篇
- 2025年全球及中國達格列凈片行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球工業(yè)系統(tǒng)智能化解決方案行業(yè)調研及趨勢分析報告
- 2025-2030全球吸附無細胞百白破聯(lián)合疫苗行業(yè)調研及趨勢分析報告
- 2024年科普知識競賽試題庫及答案(共80題)
- 所有股東股份轉讓協(xié)議
- GB/T 45120-2024道路車輛48 V供電電壓電氣要求及試驗
- 2025年上海市嘉定區(qū)中考英語一模試卷
- 2025年中核財務有限責任公司招聘筆試參考題庫含答案解析
- 春節(jié)文化常識單選題100道及答案
- 華中師大一附中2024-2025學年度上學期高三年級第二次考試數學試題(含解析)
- 12123交管學法減分考試題及答案
- 2025年寒假實踐特色作業(yè)設計模板
- 《數據采集技術》課件-XPath 解析庫
- 財務報銷流程培訓課程
- 成人腦室外引流護理-中華護理學會團體 標準
- 24年追覓在線測評28題及答案
評論
0/150
提交評論