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

付費下載

下載本文檔

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

文檔簡介

2022年黑龍江省七臺河市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.在調用函數(shù)時,如果實參是簡單變量,它與對應形參之間的數(shù)據(jù)傳遞方式是().

A.地址傳遞B.單向值傳遞C.由實參傳給形參,再由形參傳回實參D.傳遞方式由用戶指定

2.

3.以下選項中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

4.下列有關數(shù)據(jù)庫的描述,正確的是______。

A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關系C.數(shù)據(jù)庫是一個結構化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件

5.下面程序段的時間復雜度為()。

A.O(n)B.O(n2)C.O(1)D.O(nlog2n)

6.若有定義intx=3,y=2和floata=2.5,b=3.5,則表達式:(x+y)%2+(int)a/(int)b的值是()。

A.0B.2C.1.5D.1

7.若有以下的說明和語句,則在執(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]

8.若有定義語句:char*s1="OK",*s2="ok";,以下選項中,能夠輸出"OK"的語句是A.A.if(strcmp(s1,s2)==0)puts(s1);

B.if(strcmp(s1,s2)!=0)puts(s2);

C.if(strcmp(s1,s2)==1)puts(s1);

D.if(strcmp(s1,s2)!=0)puts(s1);

9.有以下程序

A.741B.963C.852D.87542l

10.下面程序的運行結果是

#include<stdio.h>

voiddelch(char*s)

{inti,j;

char*a;

a=s;

for(i=0,j=0;a[i]!=′\n′;i++)

if(a[i]>=′0′&&a[i]<=′9′)

{s[j]=a[i];j++;}

s[j]=′\0′;}

main()

{char*item="a34bc";

delch(item);

printf("\n%s",item);}

A.abcB.34C.a34D.a34bc

11.有以下語句,則對a數(shù)組元素的引用不正確的是(0≤i≤9)inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A.A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i))

12.若x和y都是int型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的輸出結果()

A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值

13.數(shù)組A[0...4,-1...-3,5...7]中含有的元素個數(shù)是()。A.A.55B.45C.36D.16

14.計算機高級語言程序的運行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的事()。

A.C語言程序僅可以編譯執(zhí)行B.C語言程序僅可以解釋執(zhí)行C.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說法都不對

15.

16.以下關于return語句的敘述中正確的是()。

A.一個自定義函數(shù)中必須有一條return語句

B.一個白定義函數(shù)中可以根據(jù)不同情況設置多條return語句

C.定義成void類型的函數(shù)中可以有帶返回值的return語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調用處

17.假定已建立以下鏈表結構,且指針p和q已指向如圖所示的結點:

則以下選項中司將q所指結點從鏈表中刪除并釋放該結點的語句組是______。A.(*p).next=(*q).next;free(p);

B.p=q->next;free(q);

C.p=q;free(q);

D.p->next=q->next;free(q);

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

A.局部變量說明為static存儲類,其生存期將得到延長

B.全局變量說明為static存儲類,其作用域將被擴大

C.任何存儲類的變量在未賦初值時,其值都是不確定的

D.形參可以使用的存儲類說明符與局部變量完全相同

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

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

20.以下敘述中錯誤的是()。

A.c語言是一種結構化程序設計語言

B.使用三種基本結構構成的程序只能解決簡單問題

C.結構化程序設計提倡模塊化的設計方法

D.結構化程序由順序、分支、循環(huán)三種基本結構組成

二、2.填空題(20題)21.面向對象的模型中,最基本的概念是對象和______。

22.以下程序調用函數(shù)swap將指針s和t所指單元(a和B)中的內容交換,請?zhí)羁?。main(){inta=10,b=20,*s,*t;s=&a;t=&b;()printf("%d%d",a,B);}swap(int*ss,int*tt){intte;te=*ss;*ss=*tt;*tt=te;}

23.在計算機領域中,通常用英文單詞“Byte'’表示【】。

24.按數(shù)據(jù)流的類型,結構化設計方法有兩種設計策略,它們是變換分析設計和______。

25.有以下結構體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結點b連接到結點a之后的語句是______。

structnode

{chardata;

structnode*next;}a,b

以下程序中調用scanf函數(shù)給變量a輸入數(shù)值的方法是錯誤的,其錯誤原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}

26.下列程序的輸出結果是______。

main()

{inta[]={31,27,20,12,6,1},*p=a;

p++;

printf("%d\n",*(p+2));

}

27.函數(shù)sstrcmp的功能是對兩個字符串進行比較。當s所指字符串和t所指字符串相等時,返回值為0;當s所指字符串大于t所指字符串時,返回值大于0;當s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp)。請?zhí)羁铡?/p>

#include<stdio.h>

intsstrcmp(char*s,char*t)

{while(*s&&*t&&*s==【】)

{s++;t++;}

return【】;

}

28.以下程序通過函數(shù)SunFun求。這里f(x)=x2+l,由F函數(shù)實現(xiàn)。請?zhí)羁铡?/p>

main()

{

printf("Thesum=%d\n",SunFun(10));

}

SunFun(intn)

{

intx,s=0;

for(x=0;x<=n;x++)

S+=F(______);

returns;

}

F(intx)

{

return(______);

}

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

30.按照邏輯結構分類,數(shù)據(jù)結構可分為線性結構和非線性結構,二叉樹屬于______。

31.若有程序:

main()

{inti,j;

scanq("i=%d,j=%d",&i,&j);

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

}

要求給i賦10,給j賦20,則應該從鍵盤輸入【】。

32.下列軟件系統(tǒng)結構圖的寬度為[]。

33.關系模型的完整性規(guī)則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。

34.以下程序的運行結果是______。

structexmp{charname[10];

intnumber;

};

structexmptest[3]={{"WangXi",1},{"QiYu",2},{"HuHua",3}};

main()

{printf("%c,%s\n",test[0].name[1],test[2].name+3);

}

35.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。

36.下列程序段的輸出結果是______。

intn='c';

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("morning");

case'd':printf("class");

}

37.用以下語句調用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)【】;

38.以下程序的輸出結果是【】。

#include<stdio.h>

main()

{inti;

for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n");

}

39.下面程序的輸出結果是【】。

charb[]="ABCD";

main()

{

charb[30];

strcpy(&b[0],"GH");

strcpy(&b[1],"GH”);

strcpy(&b[2],"GH");

printf("%s\n",B);

}

40.以下程序運行后的輸出結果是______。

main()

{

charc1,c2;

for{c1='0',c2='9';c1<c2;c1++,C2--)

printf("%c%c",c1,c2);

printf("\n");

}

三、1.選擇題(20題)41.若說明int*p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",n);

D.p=&n;scanf("%d",p);

42.設a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式是______。

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

43.下列選項中不會引起二義性的宏定義是()。

A.#defineS(x)x*x

B.#defineS(x)(x)*(x)

C.#defineS(x)(x*x)

D.#defineS(x)((x)*(x))

44.數(shù)據(jù)庫系統(tǒng)可分為三級模式,下列選項中不屬于數(shù)據(jù)庫三級模式的是

A.抽象模式B.外模式C.概念模式D.內模式

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

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

46.設已包含頭文件<string.h>,下列程序段的運行結果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

47.有以下程序main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}執(zhí)行后輸出結果是

A.456B.258C.369D.789

48.下列程序運行后的輸出結果是______。main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);

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

49.若進棧序列為1、2、3、4、5,并且在它們進棧的過程中可以進行出棧操作,那么不可能是出棧序列的是______。

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

50.1.以下選項中屬于C語言數(shù)據(jù)類型的是()

A.復數(shù)型B.邏輯型C.雙精度型D.集合型

51.在下述程序中,判斷i>j共執(zhí)行的次數(shù)是()。#include<stdio.h>main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf("%d",s);break;}s+=i;}}

A.4B.7C.5D.6

52.以下程序的輸出結果是______。intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f():printf("%d\n",a);}

A.20B.24C.25D.15

53.下列不屬于軟件調試技術的是______。A.強行排錯法B.集成測試法C.回溯法D.原因排除法

54.簡單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

55.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結果是()。

A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯

56.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫字母轉換為對應小寫字母的語句是

A.c=(c-'A')%26+'a'B.c=c+32C.c=c-'A'+'a'D.a=('A'+c)%26-'a'

57.下列程序的輸出結果是

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

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

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

a[i][j]=i+j-(i-j);

fun(a);}

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

58.有下列程序:

fun(intx,inty)

{statlcintm=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í)行后的輸出結果是()。

A.5,5B.5,11C.11,11D.11,5

59.已有定義:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判斷c中的字符是否為大寫字母的表達式是()。

A.isupper(c)

B.'A'<=c<='Z'

C.'A'<=c&&c<='Z'

D.c<=('z'-32)&&('a'-32)<=c

60.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);}程序運行后的輸出結果是

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

四、選擇題(20題)61.下面程序段的運行結果是

charstr[]="ABC",*p=str;

printf("%d\n",*(p+3));

A.67B.0C.字符’C’的地址D.字符’C’

62.若intk=8;則執(zhí)行下列程序后,變量k的正確結果是

main()

{intk=8;

switch(k)

{case9:k+=1;

case10:k+=1;

default:k+=1;

case11:k+=1;break;

}

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

}

A.12B.1

C.10D.9

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

A.在switch語句中,不-定使用break語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對使用

D.break語句只能用于switch語句

64.

有以下程序:

#include<stdio.1l>

voidWriteStr(char*fn.char*str)

{FILE*fp;

fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}

main

{WriteStr("tl.dat","start");

WriteStr("t1.dat","end");)

程序運行后,文件t1.dat中的內容是()。

A.startB.endC.startendD.endrt

65.在軟件開發(fā)中,需求分析階段可以使用的工具是()。A.N—s圖B.DFD圖C.PAD圖D.程序流程圖

66.

67.若有定義“doublea;”,則正確的輸入語句是()。

A.seaM("%1f",a);

B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

68.

69.

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

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結構密切相關

B.程序執(zhí)行的效率只取決于程序的控制結構

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對

71.

72.有以下程序:

程序的運行結果是()。

A.1,2,3,4,B.1,0,7,0,C.1,4,5,9,D.3,4,8,10,

73.軟件生命周期是指()。

A.軟件的開發(fā)過程

B.軟件的運行維護過程

C.軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程

D.軟件從需求分析、設計、實現(xiàn)到測試完成的過程

74.

以下程序的輸出結果是()。

main

{inti=0,S=0;

for(;;)

{

if(i==3||i==5)continue;

if(i==6)break;

i++;

s+=i:

};

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

}

A.10B.13C.21D.程序陷入死循環(huán)

75.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達式是()。A.A.(a<b)&&!c‖1

B.(!a==1)&&(!b==0)

C.a&&b

D.a||(b+b)&&(c-a)

76.以下關于typedef的敘述錯誤的是()。

A.用typedef可以增加新類型

B.typedef只是將已存在的類型用一個新的名字來代表

C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名

D.用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性

77.算法的時間復雜度是指()。

A.算法所處理的數(shù)據(jù)量B.算法的執(zhí)行時間C.算法在執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的語句或指令條數(shù)

78.

79.

以下程序的輸出結果是()。

main

{charst[20]="hello\0\t\\\";

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

}

A.99B.520C.1320D.2020

80.有以下程序:

#include<stdio.h>

main()

{inta;

scanf("%d",&a);

if(a++<9)printf("%d\n",a);

clscprintf("%d\n",a--);

}

程序運行時從鍵盤輸入9<回車>,則輸出結果是()。

A.10B.11C.9D.8

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是計算并輸出h以內的素數(shù)之和。h由主函數(shù)傳給proc()函數(shù)。若h的值為80,則函數(shù)的值為791。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.函數(shù)fun的功能是:將S所指字符串中除下標為偶數(shù)同時ASCIl碼值也為偶數(shù)的字符外,其余的全部刪除;字符串中剩余字符所形成的新串放在t所指的數(shù)組中。例如,若s所指字符串中的內容為“ABCDEFGl23456”,其中字符A的ASCIl碼值為奇數(shù),因此應當刪除;字符8的ASCIl碼值為偶數(shù),但在數(shù)組中的下標為奇數(shù),因此也應當刪除;字符2的ASCIl碼值為偶數(shù),在數(shù)組中的下標也為偶數(shù),因此不應當刪除,其他依此類推。最后t所指的數(shù)組中的內容應是‘'246”。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.B

2.B

3.C解析:C語言中字符常量是以單引號括起來的單個字符,或為以“\\”與三位八進制數(shù)值或兩位十六進制數(shù)值代替單個字符。

4.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結構形式并存放于統(tǒng)一的存儲介質內,是多種應用數(shù)據(jù)的集成,并可被各個應用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點。

5.A

6.D

7.C從for循環(huán)可知pt是指向行的首地址的指針變量,因此由指針的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。

8.D解析:strcmp(s1,s2)的作用是比較字符串s1和s2。參數(shù)str1,str2如果相同,則返回0,如果str1大于str2則返回一個正整數(shù),如果str1小于str2則返回一個負整數(shù)。本題中s1,s2不相同,A)選項不會輸出任何字符,B)選項輸出ok,C)選項不輸出任何字符,D)選項會輸出OK。

9.C在for循環(huán)中,當y的值為9、6或3時,執(zhí)行輸出語句,輸出表達式“——y”的值。y先自減1,然后再輸出y的值。

10.B解析:考查用指針引用字符串元素的方法。指針a通過數(shù)組元素下標來從頭逐個地引用字符串item中的字符,判斷不是0~9之間的數(shù)字時,就去掉這個字符,所以程序結束后,字符串item中就只剩下和兩個字符了。

11.D

12.A

13.A

14.A解釋執(zhí)行是計算機語言的一種執(zhí)行方式。由解釋器現(xiàn)場解釋執(zhí)行,不生成目標程序。如BASIC便是解釋執(zhí)行。一般解釋執(zhí)行效率較低,低于編譯執(zhí)行。而C程序是經(jīng)過編譯生成目標文件然后執(zhí)行的,所以C程序是編譯執(zhí)行。

15.A

16.Breturn語句又稱為返回語句。該語句的格式如下:“return;”和“return(<表達式>);”。其中,return是關鍵字。該語句有兩種格式:不帶返回值格式和帶返回值格式。該語句用在被調用函數(shù)中,在被調用函數(shù)中執(zhí)行到該語句時,將結束對被調用函數(shù)的執(zhí)行,并把控制權返回給調用函數(shù),繼續(xù)執(zhí)行調用函數(shù)后邊的語句。在帶有返回值的情況下,將return語句所帶的表達武的值返回給調用函數(shù),作為被調用函數(shù)的值。在被調用函數(shù)中,可以用return語句,也可以不用return語句。如果要求被調用函數(shù)有返回值,則一定要用return語句,采用return(<表達式>);格式。如果被調用函數(shù)不需要返回值,并且當被調用函數(shù)的所有語句執(zhí)行完后進行返回,則被調用函數(shù)可以不用return語句。

17.D解析:本題題面要求刪除q所指結點并釋放該結點,而選項A中雖然是刪除了q所指鮚點,但并未釋放q這個結點,而釋放的是p結點,所以選項A錯誤;選項B是將q的下一結點的地址賦值給指針變量p,這意味著p原來的成員變量內容被q的下一結點的成員變量內容所代替,即原p結點也被刪除了,所以選項B錯誤;選項C相當于將q的所有成員變量內容代替了p的所有成員變量內容,即p結點被刪除,所以錯誤;選項D是將q的下—結點的地址賦值給p的成員next\u3000(成員next用于存放一結點的地址),使得p的next成員不再指向q,而是指向q的下一結點,相當于刪除了q這個結點,同叫用free函數(shù)正確釋放了q這一結點,所以選項D正確。

18.A解析:局部變量在執(zhí)行到它所在的程序塊時產生,執(zhí)行完時被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運行結束,故選項A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結束,故選項B不正確:未賦初值的局部變量的初值是隨機的,故選項C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項D不正確。所以,4個選項中選項A符合題意。

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

20.BC語言是一種結構化程序設計語言。結構化程序設計是以模塊化設計為中心的,有三種基本結構:順序、選擇和循環(huán)結構。各模塊相互獨立,因而可將原來較為復雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護性。

21.類類

22.swap(st);swap(s,t);解析:本題要在主函數(shù)中調用swap函數(shù)交換a、b的值,實現(xiàn)數(shù)據(jù)交換需要進行地址傳遞,所以函數(shù)的形參都應該是需要交換的數(shù)據(jù)的地址,程序中通過“s=&a;t=&b;”將指針變量s和t指向變量a、b的地址,因此,引用時直接引用指針變量s和t即可。

23.字節(jié)字節(jié)

24.事務分析設計事務分析設計解析:典型的數(shù)據(jù)流圖有兩種,即變換型和事務型。按照這兩種類型把設計方法分為兩類,即變換分析設計和事務分析設計。

25.B

26.1212解析:本題簽考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3)的值12。

27.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:函數(shù)sstrcmp()有兩個字符型指針變量,用來指向兩個字符串。比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應的字符相等則接著比較下一個字符,一直到兩個字符串中對應字符不等,或者有一個為\\0,此時字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為\\0,且*s和*t相同,第一處應填“*t”或其他等價形式。根據(jù)題意可知第二處應填*s-*t或其等價形式。

28.xX*X+1或1+x*xx\r\nX*X+1或1+x*x解析:題目中要求從x=0開始將f(x)的值累加起來,直到x=10。在SunFun()函數(shù)中用了一個for循環(huán),每循環(huán)一次將f(x)累加到s中,所以在本題的第一個空格處我們應該填x,,然后x+1,共循環(huán)10次。F()函數(shù)的功能應該是求數(shù)學表達式f(x)得值,所以其返回值應該為x*x+1。

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

30.非線性結構非線性結構解析:對于一個非空的數(shù)據(jù)結構,如果同時滿足下列兩個條件,即1)有且只有一個根結點;2)每一個結點最多有一個前件,也最多有一個后件;即為線性結構,而二叉樹的結點可能存在兩個后件,所以是非線性結構。

31.i=0j=20i=0,j=20解析:該函數(shù)的第一個參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應要輸入的變量,所以說本題中應該原樣輸入i=,j=,后面分別給變量0和20,所以說空格處應該填入i=0,j=20。

32.33解析:軟件系統(tǒng)結構圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。

33.參照完整性參照完整性

34.aua。a,ua。解析:test是結構體數(shù)組,每個元素均可看作是一個結構體變量,主函數(shù)將結構體數(shù)組元素test[0]中的name域下標為1的元素以字符形式輸出,將結構體數(shù)組元素test[2]中的name域從地址name+3開始以字符串的形式輸出。

35.完善性軟件維護活動包括以下幾類:改正性維護,適應性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

36.morningclassmorningclass解析:本題考查了兩個知識點:①“++,--”運算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當n='c'時,執(zhí)行“case'c'”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結果為morningclass。

37.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。

38.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當其變?yōu)椤癵”時,循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個字符。表達式“i-'a'+'A'”即表示輸出i對應的大寫字母,結果為ACE。

39.GGGHGGGH解析:由于在函數(shù)main中定義了數(shù)組變量b,其將屏蔽全局變量b。對于一維數(shù)組變量,其值為一常數(shù),等于數(shù)組首元素地址。strcpy(&b[0],'GH'),是將字符串,'GH',復制到數(shù)組b中從首元數(shù)開始的空間中,此是b中的字符串為'GH';strcpy(&b[1],'GH'),是將字符串“GH'復制到數(shù)組b中從第二個元素開始的空間中,此是b中的字符串為'GH'。執(zhí)行第三次strcpy函數(shù)后,b中的字符串為'GGGH'。

40.918273645918273645解析:題目中為for循環(huán)定義了兩個字符型循環(huán)變量c1和c2,循環(huán)開始時分別初始化為字符'0'和'9',然后每次循環(huán)結束給c1增1、c2減1,循環(huán)條件為c1<c2,即讓c1的值依次為'0'、'1'、'2'…,c2的值依次為'9'、'8'、'7'…,直到兩個數(shù)相遇時結束循環(huán)。又因為該循環(huán)的循環(huán)體每次按字符形式輸出c1和c2的值.所以最終的輸出結果為:0918273645。

41.D解析:函數(shù)scanf的地址列表應由變量的地址組成。選項A中雖然&p也為地址,但它是指針變量p的地址,該地址的存儲單元中只能存放地址值,不能存放整型數(shù)據(jù)。選項B中*p相當于變量n,所以不能正確讀入數(shù)據(jù);選項C不正確,因為n為變量名;選項D中p為指針變量,并且值為變量n的地址,所以選項D能夠正確讀入數(shù)據(jù)。D為所選。

42.D解析:選項A:'a'&&'b'是字符a與b的相與,不為0:選項B:a<=b,由題中變量賦值可知,結果為1。選項C:a||+c&&b-c,結果為1;選項D:!((a<B)&&!c||1),運算結果為0。

43.D本題考查參數(shù)的宏替換。為避免二義性有些參數(shù)表達式必須加括號,否則在實參表達式替換時,會出現(xiàn)錯誤。例如x為(m+n)時替換A:m+n*m+n,所以選項D最符合條件。

44.A解析:數(shù)據(jù)庫的三級模式是指概念模式、內模式和外模式,其中外模式又叫子模式,內模式又叫物理模式.所以本題答案為A。

45.C解析:typedef關鍵字用于聲明一個新的類型名代替已有的類型名。本題中如果沒有用typedef進行定義的話,則structNODE為結構體類型,而用typedef定義后,相當于用OLD代表了struetNODE這一結構體類型,故OLD為結構體類型。

46.A解析:頭文件<string.h>是字符串處理函數(shù)對應的頭文件,要想調用C語言的庫函數(shù)時,都要在程序中嵌入該函數(shù)對應的頭文件,否則無法使用庫函數(shù)。

strcpy(s1,s2)把s2中的字符串復制到s1中,所以結果就為s2的長度。

47.C解析:本題考核的知識點是二維數(shù)組的定義,賦值及數(shù)組元素的引用。變量k的初值為2,循環(huán)執(zhí)行了3次,分別輸出m[2][0]、m[2][1]和m[2][2],其值分別為3,6,9。所以,C選項為所選。

48.C

49.D

50.C解析:C語言的數(shù)據(jù)類型分為基本類型、構造類型、指針類型、空類型四大類,其中,基本類型分為整型、字符型、實型三類。實型又稱浮點型,包括單精度型和雙精度型兩種。

51.D解析:本題涉及break語句,重在循環(huán)次數(shù)的判定。本題的循環(huán)由于無出口,只能借助break語句終止。題目要求說明判斷i>j的執(zhí)行次數(shù),只需考查經(jīng)過i+=k運算如何累計i的值。i值分別是i=2,4,6,8,10,直到i取12時,判斷i>j為真,程序輸出s的值并結束,共判斷6次。

52.D解析:函數(shù)f中變量i為靜態(tài)變量,函數(shù)f調用結束后變量i所占據(jù)的存儲單元不會釋放,而在主函數(shù)中f被調用5次,具體過程如下。

第1次調用f:s=s+i=1+0=1,i=i+1=1,主函數(shù)中a=a+f()=O+1=1

第2次調用f:s=s+1=1+1=2,i=i+1=2,豐函數(shù)中a=a+f()=1+2=3

第3次調用f:s=s+1=1+2=3,i=i+1=3,主函數(shù)中a=a+f()=3+3=6

第4次調用f:s=s+i=1+3=4,i=i+1=4,主函數(shù)中a=a+r()=6+4=10

第5次調用f:s=s+i=1+4=5,i=i+4=5,主函數(shù)中a=a+f()=10+5=15

所以printf語句的輸出結果為15。

53.B解析:我們嚴格區(qū)分調試與測試,調試是已知有錯誤而來找錯誤,是被動的;測試有很多種,比如未發(fā)現(xiàn)錯誤但不能保證程序沒錯而來找BUG,還比如我們運行測試程序是否符合用戶的要求,是主動的。所以答案是選項B。A、C、D都是具體的程序調試方法,而B是宏觀的程序測試方法。測試有單元測試、集成測試、確認測試、系統(tǒng)測試。比如我們在進行單元測試時,發(fā)現(xiàn)程序有錯誤,我們再可以根據(jù)A、C、D的方法來找錯誤。

54.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。

55.D解析:因為字符數(shù)組s1)中的數(shù)組名s表示的是一個地址常量。所以語句“s+=2;”不能將指針在當前位置的基礎上再向后移動兩位,因而程序編譯時出錯。

56.D解析:C語言中,字符數(shù)據(jù)參加運算時,實際上是其ASCII碼參與運算。大寫字母的ASCII碼比其對應的小寫字母的ASCII碼小32。因此大寫字母轉化為小寫字母只需將其加上32即可。所以選項B)、C)都符合條件,因為變量c中存儲的是大寫字母,所以“c-'A'”的值一定小于26,故選項A)與選項C)的含義相同。

57.B解析:若有以下定義:inta[3][4],i,j;且當0<=i<3,0<=j<4,則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

58.B解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調用結束時,它們的值不釋放保持不變,所以第2次調用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m=1”時,i的值為9,因此最終m的值為11。

59.B解析:大寫字母從'A'~'Z'的ASCII碼是連續(xù)的,所以如果當—個字符大于等于'A'且小于等于'z'時,那這個字符就一定是一個大寫字母,故選項C正確。C語言中的庫函數(shù)isupper()的作用也正是判斷一個字符是否為大寫字母的,故選項A正確。在ASCII碼中,小寫字母的編碼也是連續(xù)的,對應的小寫字符比大寫字符的ASCII碼值大32,所以選項D經(jīng)過小寫字符-32后,換算成了對應的大寫字母'Z'和'A',所得到結果和選項C是一致的,故也是正確的。選項B中,C語言的邏輯表達式不能直接連寫,而應該寫成選項C那樣,故是錯誤的,應該選擇B。

60.B解析:主函數(shù)中for循環(huán)執(zhí)行兩次,i=1和i=2。調用函數(shù)f(1),返回值為1,j=1;調用函數(shù)f(2),計算表達式f(n-1)+1的值時遞歸調用f(1),返回值為2,j=3。所以B為所選。

61.B在本題中,程序段首先定義了一個字符型數(shù)組str,并將其初始化為“ABC”,然后定義一個字符型的指針變量p,使其指向數(shù)組str的首地址。然后程序運行輸出語句,從輸出語句的輸出格式可以看出,要求輸出的是一個十進制數(shù)值,而輸出列表中的*(p+3)表示輸出的是數(shù)組str中的第四個元素,從數(shù)組的初始化我們可以看出,其中只有三個字符元素,而輸出語句則要求輸出第四個元素。

這里需要我們了解字符串在字符數(shù)組中的存儲方式,字符串在字符數(shù)組中存儲后,系統(tǒng)會自動給其添加一個結束標志’\\0’,即0值。因此,在用字符數(shù)組存儲字符串時,字符數(shù)組申請的空間應該是字符串的字符個數(shù)加1。

根據(jù)上面的分析,我們可以知道輸出的第四個元素是’\\0’字符,它對應的十進制值是0,因此本題的正確答案是B。

62.C在本題中,程序首先定義了一個整型變

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論