2021-2022年山西省呂梁市全國計算機等級考試C語言程序設計預測試題(含答案)_第1頁
2021-2022年山西省呂梁市全國計算機等級考試C語言程序設計預測試題(含答案)_第2頁
2021-2022年山西省呂梁市全國計算機等級考試C語言程序設計預測試題(含答案)_第3頁
2021-2022年山西省呂梁市全國計算機等級考試C語言程序設計預測試題(含答案)_第4頁
2021-2022年山西省呂梁市全國計算機等級考試C語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年山西省呂梁市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。

A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭

2.若有定義int?x,y;并已正確給變量賦值,則以下選項中與表達式(x-y)?(x++):(y++)中的條件表達式(x-y)等價的是()。A.(x-y<0|x-y>0)B.(x-y<0)C.(x-y>0).D.(x-y==0)

3.C語言常量的類型從字面形式上可區(qū)分,以下判斷中正確的是()。

A.2E3——整型B.2.0E3——實型C.‘\025’——字符串D.“a”——字符型

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

A.在C語言中調用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動變量實質上是一個函數(shù)內部的局部變量

5.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

當運行程序時,輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

6.

7.下列敘述中錯誤的是()。

A.可以給指針變量賦一個整數(shù)作為地址值

B.函數(shù)可以返回地址值

C.改變函數(shù)形參的值,不會改變對應實參的值

D.當程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL值

8.有以下函數(shù):

此函數(shù)的功能是()。A.比較p和q所指字符串的大小

B.計算p和q所指字符串的長度差

C.將q所指字符串連接到P所指字符串后面

D.將q所指字符串復制到p所指字符串中

9.下列描述錯誤的是()。

A.繼承分為多重繼承和單繼承

B.對象之問的通信靠傳遞消息來實現(xiàn)

C.在外面看不到對象的內部特征是基于對象的“模塊獨立性好”這個特征

D.類是具有共同屬性、共同方法的對象的集合

10.算法能正確地實現(xiàn)預定功能的特性稱為算法的()。

A.正確性B.易讀性C.健壯性D.高效率

11.若d為double型變量,則表達式d=1,d+5,d++的值是()。

A.1B.6.0C.2.0D.1.0

12.以下程序的輸出結果是()。main{intx=0.5;charz=‘a(chǎn)’;printf(“d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3

13.當執(zhí)行下面的程序時,如果輸入ABC,則輸出結罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789

14.有以下程序#include<stdio.h>voidfun(intx){if(x/2>1)fun(x/2);printf("%d",x);}main{fun(7);printf("\n");}程序運行后的輸出結果是()。A.137B.731C.73D.37

15.

16.以下程序的輸出結果是______。#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

17.在“文件包含,預處理語句的使用形式中,當#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是()。

A.直接按系統(tǒng)設定的標準方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設定的標準方式搜索

C.僅僅搜索源程序所在目錄

D.僅僅搜索當前目錄

18.設一棵二叉樹有3個葉子節(jié)點,有8個度為1的節(jié)點,則該二叉樹中總的節(jié)點數(shù)為()

A.12B.13C.14D.15E.16F.17

19.

20.

二、2.填空題(20題)21.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。

22.下面的程序把從終端讀入的文本(用@作為文本結束標志)輸出到一個名為bi.dat的新文件中,請?zhí)羁铡?/p>

#include<stdio.h>

#include<stdlib.h>

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

23.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內部級模式與外部級模式。

24.設有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結果是______。

25.設有下列宏定義:

#defineA2

#defineB(A+3)

則執(zhí)行賦值語句"k=B*20;"(k為int型變量)后,k的值是______。

26.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結果傳回,請?zhí)羁铡?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;}

27.設有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

28.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和______三種。

29.以下程序的運行結果是【】。

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

30.已知字符A的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33<回車>。則輸出結果是______。

#include<stdio,h>

main()

{

chara,b;

a=geCchar();scanf("%d“,&b);

a=a-'A'+‘0';b=b*2;

printf('%c%c\n",a,b);

}

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

pfintf("%d\n",x);

}

32.C語言用于結構化程序設計的3種基本結構是______、選擇結構和循環(huán)結構。

33.以下程序運行時若從鍵盤輸入:102030<回車>。輸出結果是【】。

#include<stdio.h>

main()

{

inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);

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

}

34.黑盒測試是從【】觀點的測試。

35.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2

ch1=getchar();ch2=getchar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

程序運行時輸入:12<回車>,執(zhí)行后的輸出結果是【】。

36.請在以下程序第一行的下劃線處填寫適當內容,使程序能正確運行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

37.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達式是______。

38.若有以下程序:

main()

{chara;

a='H'-'A'+'0';

printf("%c\n",a);

}

執(zhí)行后的輸出結果是【】。

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

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

2223445666677899101010

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

2345678910。

請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(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");

}

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

main()

{inta[10]={10,20,30,40,50,60,70,80,90,100},*p;

p=a+2;printf("%d\n',(p+2)[3]);

}

三、1.選擇題(20題)41.以下程序的輸出結果是______。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

42.下面程序在屏幕上的輸出是______。main(){printf(“ab\b\bc”);}A.ab\b\bcB.acC.abcD.abc

43.以下不能定義為用戶標識符的是()

A.MainB._0C._intD.sizeof

44.已知大寫字母A的ASCII碼值是65,小寫字母a的ASCII碼是97,則用八進制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量

45.以下程序的輸出結果是

main()

{inta,i;a=0;

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

{switch(i)

{case0:

case3:a+=2;

case1:

case2:a+=3;

default:a+=5;}

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

A.31B.13C.10D.20

46.數(shù)據(jù)處理的最小單位是()。

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項D.數(shù)據(jù)結構

47.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()

A.每個元素都有一個直接前件和直接后件

B.線性表中至少要有一個元素

C.表中諸元素的排列順序必須是由小到大或由大到小

D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件

48.棧和隊列的共同點是()。

A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同特點

49.若在fopen函數(shù)中使用文件的方式是"wb+",該方式的含義是()

A.為讀/寫打開一個文本文件

B.為輸出打開一個文本文件

C.為讀/寫建立一個新的文本文件

D.為讀/寫建立一個新的二進制文件

50.下列程序執(zhí)行的輸出結果是()。#include<stdio.h>main(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}

A.are&youB.youC.areD.&

51.假定建立了以下鏈表結構,指針p、q分別指向如圖所示的結點,則以下可以將q所指結點從鏈表中刪除并釋放該結點的語句組是______。

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

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

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

52.當執(zhí)行下面的語句定義一維數(shù)組a后,此數(shù)組的所有元素為()inta[10];

A.a[1],a[2],a[3],a[4],a[5],a[6],a[8],a[9],a[10],a[10]

B.a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]

C.a[0],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10]

D.a[1],a[2],a[3],a[4],a[5],a[9],a[7],a[8],a[9],a[10],a[11]

53.有以下程序段

charch;intk;

ch=′a′;k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

54.設有如下定義,則執(zhí)行表達式(nFa>b)&&(n=c>d)后,n的值為______。inta=1,b=2,c=3,d=4,m=2,n=2;

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

55.執(zhí)行以下程序段后,m的值為______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));

A.15B.14C.13D.12

56.下列條件語句中,功能與其他語句不同的是A.if(a)printf("%d\n",x);elseprintf("%d\n",y);

B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);

C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);

D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

57.假定建立了以下鏈表結構,指針p、q分別指向如圖所示的結點,則以下可以將q所指結點從鏈表中刪除并釋放該結點的語句組是()

A.free(q);p->Next=q->next;

B.(*p).next=(*q).nexy;free(q);

C.q=(*q).next;(*p).next=q;free(q);

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

58.以下正確的程序段是

A.cgarstr[20];scanf("%s",&str);

B.char*p;scanf("%s",p);

C.charstr[20];scanf("%s",&str[2])

D.charstr[20],*p=str;scanf("%s",p[2]);

59.設有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是

A.scant("%d",pa);

B.scant("%d",a);

C.scanf("%d",&pa);

D.scanf("%d",*pa);

60.fprintf函數(shù)的一般調用方式是()

A.fprintf(格式字符串,文件指針,輸出表列);

B.fprintf(文件指針,格式字符串,輸出表列)

C.fprintf(文件指針,格式字符串,輸出表列);

D.fprintf(fp,格式字符串,輸出表列);

四、選擇題(20題)61.對表達式for(表達式1;;表達式3)可理解為()。

A.for(表達式1;0;表達式3)

B.for(表達式1;1;表達式3)

C.for(表達式1;表達式1;表達式3)

D.for(表達式1;表達式3;表達式3)

62.

若有以下程序段,w和k都是整型變量:

w=k:

LB:if(w==0)gotoLE;

W--:

printf("*")

gotoLB;

LE;

則不能與上面程序段等價的循環(huán)語句是()。

A.for(w=k;w!=0;w--)printf("*");

B.for(w=k;w;--w)printf("*");

C.w=k;while(w--!=0)printf("*");

D.w=k:w++;do{w--;printf("*");}while(w!=0);

63.(49)按條件f對關系R進行選擇,其關系代數(shù)表達式為()

A.R|X|R

B.R|X|Rf

C.бf(R)

D.∏f(R)

64.耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。

A.提高耦合性降低內聚性有利于提高模塊的獨立性

B.降低耦合性提高內聚性有利于提高模塊的獨立性

C.耦合性是指-個模塊內部各個元素間彼此結合的緊密程度

D.內聚性是指模塊間互相連接的緊密程度

65.若想定義int型變量a,b,c,d并都賦值為1,以下寫法中錯誤的是()。

A.inta=b=c=d=1;

B.inta=1,b=1,c=1,d=1;

C.inta,b,c,d;a=b=c=d=1;

D.inta,b,c,d=1;a=b=c=d;

66.

67.有以下程序

68.設有定義:

doublea[10],*s=a;

以下能夠代表數(shù)組元素a[3]的是()。

A.($s)[3]B.}(s+3)C.*s[3]D.}s+3

69.數(shù)據(jù)庫管理系統(tǒng)是()。

A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)

70.有以下程序

71.(46)面向對象的設計方法與傳統(tǒng)的的面向過程的方法有本質不同,它的基本原理是()

A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系

B.強調模擬現(xiàn)實世界中的算法而不強調概念

C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題

D.鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領域的概念去思考

72.若有定義語句:“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。A.1.9B.1C.2D.2.4

73.

有下列程序段:

intn,t=1,S=0;

scanf("%d",&n);

do{s=s+t;t=t-2;while(t!=n);

為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應該是()。

A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)

74.

75.已知字符A的ASCⅡ代碼值是65,字符變量c1的直是A,c2的值是D。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結果是()。

A.A,BB.A,68C.65,66D.65,68

76.

77.

若希望下列的程序運行后輸出25,程序空白處的正確選項是()。

main

{intid=50,a[]=(7,4,10,5,8};

for()

j+=a[i];

printf("%d",j-40);

}

A.i=1;i<4;++i

B.i=l;i<3;++i

C.i=4;i>2;i--

D.i=2;i<4;++i

78.

79.有以下程序:

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

A.4321098765B.5678901234C.0987654321D.0987651234

80.設有以下語句

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:求兩個非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若num1和num2分別為49和21,則輸出的最大公約數(shù)為7;若num1和num2分別為27和81,則輸出的最大公約數(shù)為27。請改正程序中的錯誤,使它能得出正確結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:計算并輸出

例如,若主函數(shù)從鍵盤給n輸入10后,則輸出為S=104.478749。

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。

試題程序:

參考答案

1.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭。

2.A條件表達式:x=表達式1:表達式2:表達式3的含義是:先求解表達式1.若為非0(真),則求解表達式2.將表達式2的值賦給x。若表達式1的值為0(假),則求解表達式3.將表達式3的值賦給x。在本題中與表達式1:(x-y)等價的是(x-y<0|x-y>0)。

3.B2E3是實型常量的指數(shù)形式,選項A錯誤;2.0E3是實型常量的指數(shù)形式,選項B正確;‘\\025’是八進制表示的轉義字符,選項C錯誤;“a”是雙引號標注的字符串常量,選項D錯誤。故本題答案為B選項。

4.B解析:編譯時,編譯系統(tǒng)不為局部變量分配內存單元,而是在程序運行中,當局部變量所在的函數(shù)被調用時,編譯系統(tǒng)根據(jù)需要要臨時分配內存,調用結束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內存單元,在程序運行的自始至終都占用固定的單元。在考慮內存不定的情況下,最好使用全局變量。

5.A在本題中,程序首先定義一個返回類型為整型的函數(shù)fun,該函數(shù)帶有一個指針型的形參變量str,從主函數(shù)中對其調用時傳遞的參數(shù)我們可以知道,該指針指向的是一個數(shù)組,在該函數(shù)體中,首先定義兩個整型變量,然后執(zhí)行循環(huán),循環(huán)變量i的初始值為0,循環(huán)結束的條件是str[i]!=’\\0’,表示取到的數(shù)組元素是字符串結束標識,即字符串中的字符被處理完,在循環(huán)體中,首先執(zhí)行條件判斷語句if(str[i]!=’’),如果結果為真,說明取到的當前字符不是空字符,這時執(zhí)行str[j++]=str[i],即將非空格字符保存到數(shù)組中;如果為假,說明取到了空格字符,此時不保存,而接著執(zhí)行下次循環(huán)跳過空格字符。循環(huán)結束后執(zhí)行str[j]=’\\0’;,即保存字符結束標識符,用來標識字符串結束。通過上面的這些分析,我們可以知道函數(shù)fun的作用是去掉字符數(shù)組中的空格字符。

在主函數(shù)中,首先定義了一個大小為81的字符數(shù)組,然后調用函數(shù)clrscr()清除輸入文本窗口,接著輸出一條提示語句,執(zhí)行gets(str);語句,該語句的作用是從鍵盤輸入一個字符串到str數(shù)組,碰到換行符結束。然后調用函數(shù)fun,其實參為str。通過上面對函數(shù)fun作用的分析我們可以知道,調用函數(shù)后輸入字符串中的空格符都被刪除了,最后得到的字符串為asdafaaz67。

程序最后執(zhí)行輸出語句,輸出字符數(shù)組str中的字符串,因此,程序最終的輸出結果是asdafaaz67,本題答案選A。

6.D

7.A不能將一個整數(shù)直接賦給指針變量作為地址值,A選項錯誤。函數(shù)的返回值可以是地址,即指針。函數(shù)調用中形參值的變化不會傳遞給實參。故本題答案為A選項。

8.A函數(shù)fun接收兩個整型指針變量作為參數(shù),通過while循環(huán),比較p和q對應位上的各個字符,如果字符相同,繼續(xù)向后比較;否則循環(huán)結束,返回第1次對應不同字符的ASCII差值。所以函數(shù)fun是對p和q指向的字符串進行比較,其大小是按第1個對應位置上不同字符的ASCII值來比較的。本題答案為A選項。

9.C對象的封裝性是指從外面看只能看到對象的外部特性,而對象的內部,其處理能力的實行和內部狀態(tài)對外是不可見的,是隱蔽的。

10.A

11.D

12.B(x&1)&&(z<‘z’)=(0.5&1)&&(‘a(chǎn)’<‘z’)=1&&1=1,故選擇B選項。

13.A當執(zhí)行gets(ss)后,ss數(shù)組中的元素為ABC,再執(zhí)行strcat(ss,"6789"),strcat的作用,是把6789連接到了ss數(shù)組后面,執(zhí)行完后SS數(shù)組為ABC6789,故選擇A選項。

14.D本程序主要考查遞歸函數(shù)。fun(7),首先將參數(shù)代入函數(shù),因為(7/2)>1,所以執(zhí)行f(3),依此類推直到f(1.5),(1.5/2)<1,所以執(zhí)行打印函數(shù),此時X值為3,然后退出f(1.5),返回f(3),打印x值即7。所以選D。

15.D

16.D解析:本題考查帶參數(shù)的宏調用。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。

17.B#include”文件名”,預處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標準目錄搜索。

18.B

19.B

20.A

21.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內存。然后將分配好的內存塊的首地址作為void*(未知類型指針)返回.故標準的調用形式應該寫成:

p(double*)malloc(sizeof(double));

22.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根據(jù)fopen函數(shù)的調用方式fopen(文件名,使用文件方式)和題意可得結果。

23.概念(或概念級)概念(或概念級)

24.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組s所指字符串的內容復制到字符數(shù)組t所指的存儲空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內容復制到字符數(shù)組t所指的存儲空間中,然后輸出字符數(shù)組t。

25.100100解析:本題考查帶參數(shù)的宏定義及相關運算。運算過程為:k=B*20=(A+3)*20=(2+3)*20=100。

26.int*int*解析:從題中代碼可知:z應該是一個整型指針,因此應填int*。

27.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結束標識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

28.關系模型關系模型

29.a=2b=1a=2,b=1解析:本題考查了switch結構的內容。C語言中,程序執(zhí)行完一個case標號的內容后,如果沒有break語句,控制結構會轉移到下一個case繼續(xù)執(zhí)行,因為case常量表達式只是起語句標號作用,并不是在該處進行條件判斷。本題程序在執(zhí)行完內部switch結構后,繼續(xù)執(zhí)行了外部switch結構的case2分支,最后a和b的值分別為2和1。

30.1B1B解析:在C語古中,字符型變量可以看作整型變量來對待,與整型所不同的是字符型變量在內存中只占1個字節(jié),而整型是2個字節(jié).字符型變量中所有的數(shù)值是它所表示字符的ASCII碼值.ASCII碼中的一些相關字符是順序排列的,如'0',的ASCII碼值為48,'1'為49以此類推一直到'9';'A'的ASCII碼值為65,'B'為66以此類推一直到'Z'。本題程序首先定義了兩個字符型變量a和b,然后分別使用getchar()和scanf()函數(shù)讀取輸入的字符'B'和十進制整數(shù)33到a和b中,因為a-'A'+'0'等于,'B'-'A'+'0'='1'+'0'='1',而b*2等于33*2=66'A'+1='B'。所以最終輸出的結果是:1B。

31.因為在條件表達式(a<b)?a:b中,比較表達式a<b為真,所以x的值等于a的值等于1,后面兩個條件表達式中的比較表達式都為真,所以最終x的值等于1。\r\n\r\n

32.順序結構順序結構解析:結構化程序有3種摹本結構,即順序結構、選擇結構(包括if語句和switch語句)和循環(huán)結構(包括for語句、while語句、do…while語句)。

33.1030010300解析:本題的scanf()函數(shù)要求用戶輸入三個十進制整數(shù),但只接受第一和第三個到函數(shù)的第二和第三個參數(shù)所指的內存地址中。所以本題的輸出為:10300。

34.用戶用戶解析:黑盒測試又稱為功能測試,黑盒測試是把程序看作一個黑盒子,完全不考慮程序內部的結構和處理過程。測試者只考慮該程序輸入和輸出的關系,或只考慮程序的功能。黑盒測試是一種從用戶觀點出發(fā)的測試。

35.1212解析:本題中n1='1'-'0'=1,n2=1×10+('2'-'0')=10+2=12。

36.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

37.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達,“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達式為:(x>-5)&&(x<5)。

38.77解析:本題考查英文字母ASCII碼值的概念。字符參與運算的值是其對應的ASCII碼,字符H的ASCII碼為72,A的ASCII碼為65,0的ASCII碼為48,所以a=72-65+48=55,ASCII碼值為55的字符是7。

39.!=returnj!=,returnj解析:本題程序的流程是:讓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ù)組已排序的題目中。

40.80。80。解析:p=a+2使指針p指向數(shù)組a的第三個元素,即a[2],(p+2)[3]使p再移動5個單位,則指向了數(shù)組元素a[7],它的值為80。

41.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()=0+1=1

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

第3次調用f:s=s+i=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+f()=6+4=10

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

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

42.BC語言中允許使用一種特殊形式的字符常量,就是以一個“\\”開頭的字符序列,這樣的字符稱為“轉義字符”。常用的轉義字符有:\\n,換行;\\t,水平制表;\\b,退格;\\r,回車。

43.D解析:C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線,標識符名不能與關鍵字重名。選項A)中Main與主函數(shù)名main不同,所以選項D)是非法的標識符。

44.A本題考查的知識點是轉義字符。題目中的關鍵是八進制101的十進制是多少.八進制的101轉換為十進制為65,也就是字符A的ASCII。

45.A解析:本題考查用于多分支選擇的switch語句,其一般形式為:

switch(表達式)

{

case常量表達式1:語句1;

case常量表達式2:語句2;

case常量表達式n:語句n;

default:語句n+1;

}

其語義是:計算表達式的值,并逐個與其后的常量表達式值進行比較,當表達式的值與某個常量表達式的值相等時,即執(zhí)行其后的語句,然后不再進行判斷,繼續(xù)執(zhí)行后面所有case后的語句;如表達式的值與所有case后的常量表達式均不相等時,則執(zhí)行default后的語句。

46.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體;數(shù)據(jù)結構是指數(shù)據(jù)之間的相互關系和數(shù)據(jù)運算。故正確答案為選項C)。

47.D解析:線性表可以為空表,排除選項B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項C也有誤,只有D項是正確的。

48.C解析:棧和隊列都是操作受限制的線性表,只允許在端點插入和刪除。不同點是:棧只允許在表的一端進行插入和刪除操作,而隊列允許在表的一端進行插入操作,而在另一端進行刪除操作。

49.D

50.A解析:strcpy(a,'are')中數(shù)組名a代表數(shù)組首地址的地址常量,該操作把are復制到a中,a[0][3]=\'&\',且strcpy(a[1],'you')把you復制到a[1]中,故輸出a為“are&you”。

51.B解析:選項A的錯誤在于,先已經(jīng)把q結點給釋放,無法再進行余下語句了:選項C和D的錯誤在于因為有了q=(*q).next做了賦值,則free(q)釋放了原來q后面的一個結點。

52.B

53.D解析:考查printf函數(shù)的相關知識。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和C)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b,所以正確答案為B)。輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數(shù)輸出,所以第一個輸出語句輸出的結果為a,97;第二個輸出語句輸出的結果為k=12。所以選項D)為正確答案。

54.B

55.A

56.D解析:選項A、選項B和選項C都是在s的值為0的時候輸出y,a不為0的時候輸出x,而選項D是在a為0的時候輸出x,a不為0的時候輸出y。

57.B

58.C解析:scanf輸入字符串有一點要注意的是,格式控制串必須用%s。注意:gets函數(shù)和puts函數(shù)的作用。

59.A解析:scanf()函數(shù)的功能是進行輸入數(shù)據(jù),它是按格式參數(shù)的要求從終端上把數(shù)據(jù)傳送到地址參數(shù)所指定的內存空間中,C語言允許程序員間接地使用內存地址,這個地址是通過對變量名“求地址”運算得到的,求地址的運算符是&,得到的地址是一種符號地址。本題中定義了整型變量a和一個指向整型數(shù)據(jù)的指針變量pa,并定義pa是一個存放a的地址的變量。選項B中應該將a改為&a;選項C應該將&pa改為pa,因為pa已經(jīng)表示存放a的地址;選項D中*pa表示的是指針pa所指向存儲空間的變量的值

溫馨提示

  • 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

提交評論