2021-2022年河南省許昌市全國計算機等級考試C語言程序設計真題(含答案)_第1頁
2021-2022年河南省許昌市全國計算機等級考試C語言程序設計真題(含答案)_第2頁
2021-2022年河南省許昌市全國計算機等級考試C語言程序設計真題(含答案)_第3頁
2021-2022年河南省許昌市全國計算機等級考試C語言程序設計真題(含答案)_第4頁
2021-2022年河南省許昌市全國計算機等級考試C語言程序設計真題(含答案)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

2021-2022年河南省許昌市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下面程序的輸出結(jié)果是#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

2.以下針對相應語句的注釋中,說法錯誤的是()。

A.int*pt[2];/*pt是一個指針數(shù)組名*/

B.int(*pt)[2];/*pt是一維數(shù)組名*/

C.int(*pt)();/*pt是指向函數(shù)的指針*/

D.int*pt();/*pt是一個函數(shù)名*/

3.有以下程序

#include<stdio.h>

voidfun(intP)

{intd=2;

P=d++;printf(“%d”,P);}

main()

{inta=1;

fun(A);prinff(“%.d\n”,A);}

程序運行后的輸出結(jié)果是A.32B.12C.21D.22

4.以下敘述中正確的是()。

A.C語言比其他語言高級

B.C語言可以不用編譯就被計算機識別并執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式

D.C語言出現(xiàn)最晚,具有其他語言的一切優(yōu)點

5.若有定義語句“doublea,*p=&a;”,下列敘述中錯誤的是()。

A.定義語句中的“*”是一個間址運算符

B.定義語句中的“*”是一個說明符

C.定義語句中的“p”只能存放double類型變量的地址

D.定義語句中*p=&a”把變量a的地址作為初值賦給指針變量p

6.下列程序的輸出的結(jié)果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

7.

8.設有宏定義:#defineIsDIV(k,n)((k%n==1)?1:0)且變量m已正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達的是A.判斷m是否能被5或者7整除

B.判斷m是否能被5和7整除

C.判斷m被5或者7整除是否余1

D.判斷m被5和7整除是否都余1

9.有以下程序:#include<stdio.h>intfun{staticintx=1;x+=1;returnX;}main{inti,S=1;for(i=1;i<=S;i++)s+=fun;printf("%d\n",s);}程序運行后的輸出結(jié)果是()。A.11B.21C.6D.120

10.設有定義的語句:“charc1=92,c2=92;”,則以下表達式中的值為零的是()。

A.c1^c2B.c1&c2C.~c2D.c1|c2

11.下列語句組中正確的是()。

A.char*s;s={“BOOK!”};

B.char*s;s=“BOOK!”;

C.chars[10];s=“BOOK!”;

D.chars[];s=“BOOK!”;

12.有以下定義和語句:structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。

A.pw->year=1980;

B.w.year=1980;

C.w.s.year=1980;

D.*pw.year=1980;

13.CPU能夠直接訪問的存儲器是

A.軟盤B.硬盤C.RAMD.CD-ROM

14.若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

printf("%x\n",m);

執(zhí)行后的輸出結(jié)果是A.A.0X0

B.0x0

C.0

D.0xABC

15.結(jié)構化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法A.A.對象B.數(shù)據(jù)結(jié)構C.數(shù)據(jù)流D.目標

16.下面程序的輸出結(jié)果是()。chars()="ABCD",*p;main(){for(p=s;p<s+4;p++)printf("%s\n",p);)

A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA

17.針對簡單程序設計,以下敘述的實施步驟順序正確的是()。

A.確定算法和數(shù)據(jù)結(jié)構、編碼、調(diào)試、整理文檔

B.編碼、確定算法和數(shù)據(jù)結(jié)構、調(diào)試、整理文檔

C.整理文檔、確定算法和數(shù)據(jù)結(jié)構、編碼、調(diào)試

D.確定算法和數(shù)據(jù)結(jié)構、調(diào)試、編碼、整理文檔

18.下列定義數(shù)組的語句中,正確的是()。

A.intN=10;intx[N]:

B.#defineNl0;intx[N];

C.intx[0..10];

D.intx[];

19.下列敘述中正確的是()。

A.算法的執(zhí)行效率與數(shù)據(jù)存儲結(jié)構無關

B.算法的空間復雜度是指算法程序中指令(或語句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D.以上3種描述都不對

20.

二、2.填空題(20題)21.下面程序由兩個源程序文件:t4.h和t4.c組成,程序編譯運行結(jié)果是()。t4.h的源程序為:

#defineN10

#definef2(x)(x*N)

t4.c的源程序為:

#include<stdio.h>

#defineM8

#definef(x)((x)*M)

#include"t4.h"

main()

{inti,j;

i=f(1+1);j=f2(1+1);

printf("%d%d\n",i,j);

}

22.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>

main()

{intx[10],a[9],I;

for(I=0;I<10;I++)scanf("%d",&x[I]);

for(【】;I<10;I++)

a[I-1]=x[I]+【】;.

for(I=0;I<9;I++)printf("%d",a[I]);

printf("");

}

23.若a的值為1,則表達式!a‖++a的值是______。

24.在算法正確的前提下,評價一個算法的兩個標準是【】。

25.關系數(shù)據(jù)庫的關系演算語言是以【】為基礎的DML語言。

26.有以下語句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值:

n1=10

n2=20

每個輸出行從第一列開始,請?zhí)羁铡?/p>

27.以下程序運行后的輸出結(jié)果是()。

intf(inta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

}

main()

{intaa[5]={1,2,3,4,5),s;

s=f(aa,5);printf("%d\n",s);

}

28.下列程序執(zhí)行后輸出的結(jié)果是【】。

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

printf("%d\n",++(p->x));

}

29.E-mail地址由用戶名和域名兩部分組成,這兩部分的分隔符為【】。

30.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數(shù)中的最大值,輸出到屏幕上。請?zhí)羁铡?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

【】;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

printf("max=%d\n",max);}

31.下列程序的運行結(jié)果是______。

main()

{inta=1,b=10;

do

{b-=a;a++;}while(b--<0);

printf("%d,%d\n",a,b);

}

32.在Windows環(huán)境下,可以將窗口最小化為【】。

33.按照“先進先出”的原則組織數(shù)據(jù)的結(jié)構是______。

34.以下程序的輸出結(jié)果是【】。

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

35.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

36.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置未AT,例如:

請?zhí)羁?/p>

#defineN4

voidrotate(inta[][])

{inti,j,t;

for(i=0;i<N;i++)

for(j=0;【】;j++)

{t=a[i][j];【】;a[j][i]=t;}

}

37.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。

38.以下程序的輸出結(jié)果是______。

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

39.軟件危機出現(xiàn)于20時紀60年代末,為了解決軟件危機,人們提出了()的原理來設計軟件,這就是軟件工程誕生的基礎。

40.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應該是:

2345678910。

請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

infun(inta[],intn)

{inti,j=1;

for(i=1;i<n;i++)

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");

}

三、1.選擇題(20題)41.若已包括頭文件<stdio.h>和<string.h>,運行下列程序段時輸出結(jié)果是()。inti=0;chars1[10]="ABCD",s2[10]="EFG";strcat(s1,s2);while(s2[i++]!='\0')s2[i]=s1[i];puts(s2);

A.ABCB.ABCDEFC.EBCDEFGD.CBD

42.有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf(“%3.Of\n”,fun((int)fun(a+c,b),a-c));}程序運行后的輸出結(jié)果是

A.編譯出錯B.9C.21D.9

43.有以下程序main(intargc,char*argv[]){intn,i=0;while(argv[1][i]!='\0'){n=fun();i++;}printf("%d\n",n*argc);}intfun(){staticints=0;s=-1;returns;}假設程序經(jīng)編譯、連接后生成可執(zhí)行文件exam.exe,若鍵入以下命令行cxam123<回車>則運行結(jié)果為

A.6B.8C.3D.4

44.以下不能定義為用戶標識符是

A.MainB._0C._intD.sizeof

45.以下合法的賦值語句是______。

A.X=Y=100B.D-;C.X+Y;D.C=int(A+B)

46.以下不正確的定義語句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′xa′,′\x8′};

47.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示()。

A.模塊之間的調(diào)用關系B.程序的組成成份C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向

48.有以下程序main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");}}若運行時輸入:123<回車>,則輸出結(jié)果是

A.產(chǎn)生錯誤信息B.102000C.123000D.102030

49.下面函數(shù)的功能是()。sss(s,t)char*s,*t;{while((*s)&&(*t)&&(*t++==*s++));return(*s-*t):}

A.將字符串s復制到字符串t中B.比較兩個字符串的火小C.求字符串的長度D.將字符書s接續(xù)到字符串t中

50.結(jié)構化程序設計的主要特點是______。

A.模塊化B.每個控制結(jié)構具有封裝性C.每個控制結(jié)構具有獨立性D.每個控制結(jié)構只有一個入口和一個出口

51.在數(shù)據(jù)庫設計中,將E-R圖轉(zhuǎn)換為關系模式的過程屬于()。

A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段

52.下列程序的運行結(jié)果為

#include<stdio.h>

voidabc(char*str)

{inta,b;

for(a=b=0;str[a]!='\0';a++)

if(str[a]!='c')

str[b++]=str[a];

str[b]='\0';}

voidmain()

{charstr[]="abcdef";

abc(str);

printf("str[]=%s",str);}

A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab

53.有以下程序段:typedefstructNODE{intnum;structNODE*next;}OLD;以下敘述中正確的是()。

A.以上的說明形式非法B.NODE是一個結(jié)構體類型C.OLD是一個結(jié)構體類犁D.OLD是一個結(jié)構體變量

54.某個C程序中有4個函數(shù)t、u、v和w,執(zhí)行時t調(diào)用了u和v,u調(diào)用了t和w,v調(diào)用了w,w調(diào)用了t和v。以下敘述中正確的是()

A.這4個函數(shù)都間接遞歸調(diào)用了自己

B.除函數(shù)t外,其他函數(shù)都間接遞歸調(diào)用了自己

C.除函數(shù)u外,其他函數(shù)都間接遞歸調(diào)用了自己

D.除函數(shù)v和w外,其他函數(shù)都間接遞歸調(diào)用了自己

55.在數(shù)據(jù)管理技術發(fā)展過程中,文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的本質(zhì)區(qū)別是:數(shù)據(jù)庫系統(tǒng)具有______。

A.數(shù)據(jù)結(jié)構化B.數(shù)據(jù)無冗余C.數(shù)據(jù)共享D.數(shù)據(jù)獨立性

56.若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對此函數(shù)的函數(shù)聲明語句中正確的是______。A.intfun(doublex,int*n);

B.intfun(double,int);

C.intfun(double*x,intn);

D.intfun(double*,int*);

57.下列敘述中,錯誤的是()

A.數(shù)據(jù)的存儲結(jié)構與數(shù)據(jù)處理的效率密切相關

B.數(shù)據(jù)的存儲結(jié)構與數(shù)據(jù)處理的效率無關

C.數(shù)據(jù)的存儲結(jié)構在計算機中所占的空間不一定是連續(xù)的

D.一種數(shù)據(jù)的邏輯結(jié)構可以有多種存儲結(jié)構

58.下列字符數(shù)組初始化語句中,不正確的是()。

A.charc[]='goodmoming';

B.charc[20]="goodmorning";

C.charc[]={'a','b','c','d'};

D.charc[]={"goodmoming"};

59.Modem的功能是實現(xiàn)()

A.數(shù)字信號的編碼B.模擬信號的采樣、量化C.數(shù)字信號的整形D.模擬信號與數(shù)字信號的轉(zhuǎn)換

60.若有以下的說明和語句,則在執(zhí)行for語句后,*(*pt+1)+2)表示的數(shù)組元素是()intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

四、選擇題(20題)61.某二叉樹有5個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是A.10B.8C.6D.4

62.有以下程序

63.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。

A.文件開始B.文件末尾C.文件當前位置D.以上都不對

64.設有以下定義inta=0;doubleb=1.25;charc=’A’;#defined2則下面語句中錯誤的是()

A.a++;B.b++C.c++;D.d++;

65.有以下程序:

voidmain()

{inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{defaule:m++;

case0:m++;break;

}

}

printf("%d\n",m);

}

程序運行后的輸出結(jié)果是()。

A.1B.2C.3D.4

66.在單鏈表中,增加頭結(jié)點的目的是()。A.A.方便運算的實現(xiàn)B.使單鏈表至少有一個結(jié)點

C.標識表結(jié)點中首結(jié)點的位置

D.說明單鏈表是線性的鏈式存儲實現(xiàn)

67.

68.軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是()。

A.編譯程序B.操作系統(tǒng)C.教務管理系統(tǒng)D.匯編程序

69.軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是():

A.學生成績管理系統(tǒng)B.ERP系統(tǒng)C.辦公自動化系統(tǒng)D.UNIX系統(tǒng)

70.

71.若有定義intx'y;并已正確給變量賦值。則以下選項中與表達式(x-y)?(x++):(y++)中的條件表達式(x_y)等價的是()。

A.(x-y011x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y=o)

72.下面結(jié)構體的定義語句中,錯誤的是()。

A.structord{intx;intY;intZ;};struetorda;

B.structord{intx;inty;intZ;}structorda;

C.structord{intX;intY;intZ;}a;

D.struct{intX;inty;intZ;}a;

73.下列敘述中正確的是()。

A.為了建立一個關系,首先要構造數(shù)據(jù)的邏輯關系

B.表示關系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項

C.一個關系的屬性名表稱為關系模式

D.一個關系可以包括多個二維表

74.在下列結(jié)論中,只有一個是錯誤的,它是()。

A.C語言允許函數(shù)的遞歸調(diào)用

B.C語言中的continue語句,可以通過改變程序的結(jié)構而省略

C.有些遞歸程序是不能用非遞歸算法實現(xiàn)的

D.C語言中不允許在函數(shù)中再定義函數(shù)

75.

有以下程序:

#include<strintg.h>

main

{charp[20]={a,b,c,d),q[]="abc",r[]="

abcde";

strcpy(p+strlen(q),r);strcat(p,q);

printf("%d%d\n",sizeof(p),strlen(p));

}

程序運行后的輸出結(jié)果是()。

A.209B.99C.2011D.1111

76.以下選項錯誤的是

77.

78.

79.設有定義:intk=0;以下選項的四個表達式中與其他三個表達式的值不相同的是()。

A.++kB.k+=1C.k++D.k+1

80.在軟件設計中不使用的工具是()。

A.系統(tǒng)結(jié)構圖B.PAD圖C.數(shù)據(jù)流圖(DFD圖)D.程序流程圖

五、程序改錯題(1題)81.已知一個數(shù)列從0項開始的前3項為0,0,1,以后的各項都是其相鄰的前3項之和。下列給定的程序中,函數(shù)proc的功能是:計算并輸出該數(shù)列前n項的和sum。n的值通過形參傳人。例如,當n=20時,程序的輸出結(jié)果應為42762.000000。

請修改程序中的錯誤,使它能得到正確結(jié)果。

注意:不要改動maiil函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

doubleproc(intn)

{

doublesum,s0,s1,s2,s;

intk;

sum=1.0;

if(n<=2)

sum=0.0;

s0=0.0;

s1=0.0;

s2=1.0;

//****found****

for(k=4;k<n;k++)

}

{

s=s0+s1+s2;

sum+=S:

s0=s1;

s1=s2;

//****found****

s2=s;

returnsum;

}

voidmain

{

intn;

system("CLS");

printf("InputN=");

scanf("%d",&nJ;

printf("%f\n",proc(n));

}

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun(),其功能是除了字符串前導和尾部的*號外,將字符串中其他的*號全部刪除。形參h指向字符串中第一個字母,形參p指向字符串中最后一個字母。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為“****A*BC*DEF*G********”,刪除后,字符串中的內(nèi)容應當是“****ABCDEFG********”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<string.h>voidfun(char*a,char*h,char*p){}main(){chars[8l],*t,*f;printf(“Enterastring:\n”);gets(s);t=f=s;while(*t)t++;t--;while(*t==‘*’)t--;while(*f==‘*’)f++;fun(s,f,t);printf(“Thestringafterdeleted:\n”);puts(s);}

參考答案

1.C解析:本題考查的重點是拷貝字符串——使用strcpy()函數(shù),該函數(shù)的調(diào)用方式是:strcpy(字符數(shù)組,字符串)其中“字符串”可以是字符串常量,也可以是字符數(shù)組。函數(shù)的功能是:將“字符串”完整地復制到“字符數(shù)組”中,字符數(shù)組中原有內(nèi)容被覆蓋。

使用該函數(shù)時注意:①字符數(shù)組必須定義得足夠大,以便容納復制過來的字符串。復制時,連同結(jié)束標志‘\\0’一起復制。②不能用賦值運算符“=”將一個字符串直接賦值給一個字符數(shù)組,只能用strcpy()函數(shù)來處理。

另外,本題還考查連接字符串的strcat()函數(shù),其調(diào)用方式是:strcat(字符數(shù)組,字符串)

功能是把“字符串”連接到“字符數(shù)組”中的字符串尾端,并存儲于“字符數(shù)組”中。“字符數(shù)組”中原來的結(jié)束標志,被“字符串”的第一個字符覆蓋,而“字符串”在操作中未被修改。

使用該函數(shù)時注意:①由于沒有邊界檢查,編程者要注意保證“字符數(shù)組”定義得足夠大,以便容納連接后的目標字符串;否則,會因長度不夠而產(chǎn)生問題。③連接前兩個字符串都有結(jié)束標志‘\\0’,連接后“字符數(shù)組”中存儲的字符串的結(jié)束標志‘\\0’被舍棄,只在目標串的最后保留一個‘\\0’。

2.B選項A定義了一個數(shù)組pt,它包含兩個整型指針元素,所以pt是一個指針數(shù)組名,正確;選項B定義了一個數(shù)組指針Pt,pt指向一個數(shù)組,該數(shù)組包含兩個整型元素,錯誤;選項C定義了一個函數(shù),pt是函數(shù)指針,指向的函數(shù)沒有參數(shù),返回類型為整型,正確;選項D定義了一個函數(shù),函數(shù)名為pt,函數(shù)返回整型指針類型,正確。故本題答案為B選項。

3.C程序運行后,首先輸出的是p的值,然后再輸出a的值。p=d++,得到p的值為d的初始值2;a的值不變,仍為1。

4.C解析:計算機語言分為低級語言和高級語言,C語言屬于高級語言,但并非比其他語言高級,選項A)錯誤;除了機器語言外,其他各種語言都必須編譯成能被計算機識別的機器代碼才能執(zhí)行,選項B)錯誤;C語言出現(xiàn)于1972年至1973年,并不是出現(xiàn)最晚的語言,選項D)錯誤。

5.A變量定義語句“doublea,*p=&a;”,“*”是一個指針運算符,而非間址運算符。故本題答案為A選項。

6.C根據(jù)賦值運算的類型轉(zhuǎn)換規(guī)則,先將double型的常量l.2轉(zhuǎn)換為int型,因為x的類型是int,則X的值為1;執(zhí)行語句y=(K+3.8)/5.0時,即先將整型變量X的值1轉(zhuǎn)換為double型1.0,然后3.8相加得4.8,進行除法運算4.8/5.0結(jié)果為0.即變量y的值為0,d*Y的值也為0,故選C選項。

7.B

8.D

9.B本題考查靜態(tài)變量,C語言中靜態(tài)變量的生存期是從程序的開始到結(jié)束。本題中靜態(tài)變量x,隨著每次進入循環(huán)不斷增長5次,返回的值分別為2、3、4、5、6。所以S=1+2+3+4+5+6=21,選B。

10.A當值相同時按位異或,則為0,按位或與按位與時仍不變,負數(shù)也為非0。

11.BA選項去掉花括號后,賦值正確;C選項和D選項應在定義時賦初值,因為數(shù)組名相當于常量,不能重新賦值。故本題答案為B選項。

12.C題目中定義了一個結(jié)構體,結(jié)構體中成員又是一個結(jié)構體,w為結(jié)構體workers的變量。如果給內(nèi)層結(jié)構體成員賦值,先要得到內(nèi)層結(jié)構體變量,即“w.s”。若要給year賦值,表示為“w.s.year”即可。故本題答案為C選項。

13.C解析:CPU讀取和寫人數(shù)據(jù)都是通過內(nèi)存來完成的。

14.C本題考查C語言中的數(shù)據(jù)輸出格式。

題目中定義了兩個整型變量m、n,對這兩個變量賦值,輸入的數(shù)值為十六進制整數(shù),并且有m=n。進行m-n運算后,將減法所得到的值賦給m,并將m值輸出。其中printf的格式字符選用的格式字符為x,即以十六進制形式輸出整數(shù)。注意,0x是表示該數(shù)為十六進制的標志,輸出數(shù)據(jù)時,數(shù)據(jù)前面不會自動加上進制的標志。

15.CC。【解析】結(jié)構化分析方法是面向數(shù)據(jù)流進行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

16.A解析:p為指針型變量。第一次循環(huán),p=s,p的值為字符數(shù)組s的首地址,輸出字符串'ABCD'。p++,第二次循環(huán),p的值為字符數(shù)組s的首地址加1,輸出字符串'BCD'。p++,第三次循環(huán),p的值為字符數(shù)組s的首地址加2,輸出字符串'CD'。p++,第4次循環(huán),p的值為字符數(shù)組s的首地址加3,輸出字符串\'D'。

17.A\nC語言中程序中的步驟實現(xiàn)為:先確定程序中的算法和數(shù)據(jù)結(jié)構,然后進行程序的編碼,再進行對程序的調(diào)試,最后進行文檔的整理和記錄。使用這種步驟可以方便程序的編寫以及在完成后提高代碼的重用性。

\n

18.D選項A、B中n為變量,C語言中不允許動態(tài)定義數(shù)組維數(shù),即維數(shù)不能是變量。選項C無此語法。

19.C在程序設計中,算法執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構密切相關。算法的空間復雜度是指算法執(zhí)行過程中所需存儲空間。

20.B

21.16111611解析:本題主要考查宏定義的兩種形式,不帶參數(shù)的宏定義:“#define宏名替換文本”;帶參數(shù)的宏定義:“#define宏名(形參表)替換文本”。故i=((1+1)*8)=16,j=(1+1*10)=11。

22.I=1x[I-1]I=1,x[I-1]解析:對于10個數(shù),相臨的兩個數(shù)相加取和,總共要進行9次加法運算,所以空14處應填入I=1。相臨的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應填入x[I-1]。

23.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。

24.時間復雜度和空間復雜度時間復雜度和空間復雜度

25.謂詞演算謂詞演算

26.n1=%d\nn2=%dn1=%d\\nn2=%d解析:根據(jù)輸出結(jié)果,可以確定“格式控制”為n1=%d\\nn2=%d,其中,“n1=”和“n2=”是按原樣輸出的字符,“%d”是按十進制整數(shù)輸出,“\\n”是轉(zhuǎn)義字符,用于輸出回車換行。

27.1515解析:通過遞歸調(diào)用f函數(shù)實現(xiàn)了數(shù)組各元素之和,即a[4]+a[2]+a[1]+a[0]=15。

28.1111解析:程序中結(jié)構體數(shù)組data首地址(即&data[0])賦值給結(jié)構體指針變量p,++(P->x)表示先將p所指向的結(jié)構體變量的成員x值加1,然后將此x(即data[0].x)輸出。

29.@

30.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。

31.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結(jié)果為:a=2,b=8。

32.圖標或按鈕圖標或按鈕

33.隊列隊列解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進先出的原則組織數(shù)據(jù)的。

34.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當y能被3整除時輸出表達式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852。

35.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。

36.j<=ia[i][j]=a[j][i]j<=i\r\na[i][j]=a[j][i]解析:將矩陣轉(zhuǎn)置就是將行列互換,所以第一處應填j<=i,第二處應填a[i][j]=a[j][i]。

37.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構和內(nèi)部特征,而只是根據(jù)程序功能導出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。

38.246

39.軟件工程學軟件工程學解析:為了消除軟件危機,通過認真研究解決軟件危機的方法,認識到軟件工程是使計算機軟件走向工程科學的途徑。逐步形成了軟件工程的概念,開辟了工程學的新興領域——軟件工程學。

40.!=returnj!=\r\nreturnj解析:本題程序的流程是:讓i,j都從1開始其中j用于控制刪除后剩下的數(shù)中的下標,i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標,所以if()中的條件是a[j-1)!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留下到新數(shù)組中。注本題中i,j的初值都要從1開始。該算法只能用于數(shù)組已排序的題目中。

41.C解析:strcat(s1,s2)把s2連接到s1的后面,s1=ABCDEFG,執(zhí)行while(s2[i++]!='\\0')后i的值變?yōu)?,往后執(zhí)行s2[i]=s1[i]時是從把s1的第二位給s2的第二位開始,把s1賦給s2。

42.B解析:fun()函數(shù)是將傳進來的兩個整型參數(shù)相加,把和作為函數(shù)值返回,注意返回值為float型。在主函數(shù)調(diào)用了兩次fun()函數(shù),第一次調(diào)用時把表達式“a+c”和變量“b”的值求和,得到15轉(zhuǎn)換為15.0作為函數(shù)的返回值。第二次調(diào)用把第一次調(diào)用的返回值通過強制類型轉(zhuǎn)換成int型15,再和表達式“a-c”相加,得到結(jié)果9,轉(zhuǎn)換成float型作為函數(shù)值返回。由于輸出格式符為“%3.of輸出時沒有小數(shù)位,故輸出為9。

43.A解析:主函數(shù)的第一個參數(shù)argc為整型參數(shù),記下從命令行輸入的參數(shù)的個數(shù):第二個參數(shù)argv是一個字符型的指針數(shù)組,它的每一個元素指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為2,argv[0]指向字符串“exam”,argv[1]指向參數(shù)字符串“123”。在main()函數(shù)中,while循環(huán)執(zhí)行了3次,調(diào)用了3次fun()函數(shù):第一次調(diào)用fun()函數(shù)時,定義了一個靜態(tài)變量s并賦初值0,加1后作為函數(shù)值返回,n偽值為1;第二次調(diào)用fun()函數(shù)時,靜態(tài)變量s的值將保留上一次退出時的值1,再加1為2,作為函數(shù)值返回,n的值為2;同理第三次調(diào)用返回后,n的值為3。輸出n*argc的值為6。

44.D解析:本題考查的是C語言中的標識符與關鍵字。合法的標識符由字母,數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線。另外,C語言規(guī)定了一批關鍵字,它們在程序中都代表著固定的含義,不能另作它用,所以合法的標識符也不能是C語言的任一關鍵字。本題中,選項A、B、C都符合上述條件,只有選項Dsizeof是C語言中的關鍵字,所以,4個選項中選項D符合題意。

45.B解析:本題中的答案A與D都缺少“;”,而答案C中,表達式是不能獨立成為語句的,答案B使用了C語言的自減運算符它就相當于D=D-1,所以答案B為一賦值語句。

46.B解析:在一維數(shù)組中要注意的是作為下標表達式的常量表達式的值必須是大于等于0,選項B)中定義有5個元素,但賦值時有6個元素,所以是錯誤的。

47.D解析:在數(shù)據(jù)流圖中,用標有名字的箭頭來表示數(shù)據(jù)流。

48.B解析:二維數(shù)組指針第一個for循環(huán)中,第一次循環(huán)ptr指向a[0][0]的首地址,所以經(jīng)過輸入語句,a[0][0]=1;第二次循環(huán)ptr指向a[1][0]的首地址,所以經(jīng)過輸入語句,a[1][0]=2。此時,除了這兩個元素,其他元素沒有改變,等于初值0。

49.B

50.D解析:按照結(jié)構化設計方法設計的程序具有以下特點:(1)程序易于理解、使用和維護,程序員采用結(jié)構化編程方法,便于控制、降低程序的復雜性,因此容易編寫程序,便于驗證程序的正確性。結(jié)構化程序清晰易讀,可理解性好,程序員能夠進行逐步求精、程序證明和測試,以確保程序的正確性。程序容易閱讀并被人理解,便于用戶使用和維護。(2)提高了編程工作的效率,降低了軟件開發(fā)成本。由于結(jié)構化編程方法能夠把錯誤控制到最低限度,因此能夠減少調(diào)試和查錯時間。結(jié)構化是由一些為數(shù)不多的基本結(jié)構模塊組成,這些模塊甚至可以由機器自動生成,從而極大地減輕了編程工作量。(3)結(jié)構化程序設計選用的每個控制結(jié)構只允許有一個入口和一個出口。

51.BB。【解析】數(shù)據(jù)庫設計階段主要包括需求分析、概念設計、邏輯設計和物理設計。其中邏輯設計的主要工作是將E-R圖轉(zhuǎn)換為關系模式。

52.A解析:本題考查了用字符指針引用字符數(shù)組中的字符及對字符的操作。函數(shù)abc()的for語句執(zhí)行過程是:從字符指針str所指向的字符數(shù)組的第一個元素開始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過程,若字符為'c'就不執(zhí)行。

53.C解析:將題目中的定義語句去掉前面的typedef和后面的OLD(分號保留),就是一條完整的結(jié)構體定義語句,其中struct是說明符,NODE是結(jié)構體名,大括號里面的是結(jié)構體成員的定義。此時要聲明該結(jié)構體變量時需要使用struct加結(jié)構體名.起來聲明,structNODE一起構成一個結(jié)構體類型,就好像字符類型char。若只去掉前面的typedcf,就是一條結(jié)構體定義同時聲明一個結(jié)構體變量OLD的語句,因為OLD的前面部分是structNODE的完整寫法,可以看作是structNODE。C語言允許用typedef說明一種新類型名,其語法格式為:

typedef類型名標識符;

以后就可以用該標識符來代替被說明的類型名了。因此,當前面存在typedef時,該語句就變成了給structNODE的完轄寫法定義一個新的名稱OLD。所以,此時的OLD是一個結(jié)構體類型,它相當于structNODE,即可以和char一樣單獨用來聲明該結(jié)構體變量,而NODE只是一個結(jié)構體名,不能單獨用來聲明變量。所以,4個選項中C符合題意。

54.A

55.A解析:文件系統(tǒng)中記錄內(nèi)有結(jié)構,但整體沒有結(jié)構。數(shù)據(jù)庫實現(xiàn)整體數(shù)據(jù)的結(jié)構化。數(shù)據(jù)的結(jié)構化是文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的本質(zhì)區(qū)別。

56.D解析:函數(shù)聲明可以照寫已定義的函數(shù)的首部,再加一個號就成為了對函數(shù)的聲明,在函數(shù)聲明中也可以不寫形參名,而只寫形參的類型,但要保證與函數(shù)首部寫法上的—致,即函數(shù)類型、函數(shù)名、參數(shù)個數(shù)、參數(shù)類型和參數(shù)順序相同。字符數(shù)組可用指針來表示,所以選頂D正確。

57.B解析:數(shù)據(jù)處理是計算機應用的重要領域,在實際數(shù)據(jù)處理時,被處理的各數(shù)據(jù)元素總是被存放在計算機的存儲空間中,并且各數(shù)據(jù)元素在計算機存儲空間中的位置關系與它們的邏輯關系不一定是相同的,一般也不可能相同。數(shù)據(jù)的邏輯結(jié)構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(也稱數(shù)據(jù)的物理結(jié)構)。一般來說,數(shù)據(jù)的邏輯結(jié)構根據(jù)需要可以表示成多種存儲結(jié)構,常用的存儲結(jié)構有順序、鏈接、索引等存儲結(jié)構。而采用不同的存儲結(jié)構,其數(shù)據(jù)處理的效率也是不同的。

58.A解析:本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②C語言中沒有字符串變量,只能用字符數(shù)組來存儲字符串。

選項A)中一個單引號內(nèi)放了若干個字符是錯誤的:選項B)和選項D)選項中將一個字符串賦值給一個字符數(shù)組是允許的。

59.D

60.C

61.C根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。

62.A涵數(shù)將a[0]自增5次,所以答案選擇A)。

63.BSEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當前位置。

64.D++是自增運算符,作用是使變量的值增加1,選項D中的d不是變量,而是一個標識符,它代表常量2,常量是不允許進行自增運算的。故本題答案為D。

65.Aa=15,a%3=0,執(zhí)行case0語句標號,m++編程1,break;退出結(jié)構,所以m的值為1.

66.A根據(jù)單位鏈表(包含頭結(jié)點)的結(jié)構,只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結(jié)點的目的是為了便于運算的實現(xiàn)。

67.D

68.C解析:軟件按功能可以分為:應用軟件,系統(tǒng)軟件、支撐軟件(或工具軟件)。應用軟件是為解決特定領域的應用而開發(fā)的軟件。例如,事務處理軟件、工程與科學計算軟件,實時處理軟件,嵌入式軟件,人工智能軟件等應用性質(zhì)不同的軟件。因此選項C教務管理系統(tǒng)屬于應用軟件。系統(tǒng)軟件是計算機

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論