2021年山西省臨汾市全國計算機等級考試C語言程序設(shè)計_第1頁
2021年山西省臨汾市全國計算機等級考試C語言程序設(shè)計_第2頁
2021年山西省臨汾市全國計算機等級考試C語言程序設(shè)計_第3頁
2021年山西省臨汾市全國計算機等級考試C語言程序設(shè)計_第4頁
2021年山西省臨汾市全國計算機等級考試C語言程序設(shè)計_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年山西省臨汾市全國計算機等級考試C語言程序設(shè)計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.C語言可執(zhí)行程序的開始執(zhí)行點是()。

A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句

2.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

3.設(shè)x是一個int型的,y的值為10,則表達式x&&y的值為()。

A.1B.0C.與x值相同D.與x值相反

4.

有以下程序

#include<stdio.h>

main

{inta=1,b=2,c=3,x;

x=(a^b)&C;printf("%d",x);

}

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

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

5.一個隊列的入隊序列是1,2,3,4,則隊列的輸出序列是()。

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

6.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21

7.設(shè)有以下語句

typedefstructS

{intg;charh;}T;

則下面敘述中正確的是()A.可用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量

8.有以下程序:#include<stdio.h>#include<strin9.h>main(){printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}程序運行后的輸出結(jié)果是()。A.3B.8C.4D.9

9.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當運行時輸入:a<回車>后,以下敘述正確的是()。

A.變量c1被賦予字符a,c2被賦予回車符

B.程序?qū)⒌却脩糨斎氲?個字符

C.變量c1被賦予字符a,c2中仍是原有字符2

D.變量c1被賦予字符a,c2中將無確定值

10.對線性表進行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈式方式存儲,并按關(guān)鍵碼值排好序

D.線性表以鏈式方式存儲,并按關(guān)鍵碼的檢索頻率排好序

11.有以下程序:程序運行后的輸出結(jié)果是()。A.20B.13C.10D.31

12.有以下程序:#include<stdio.h>main(){charch=‘1’;while(ch<‘9’){printf(“%d”,ch-‘0’);ch++;}}程序運行后的輸出結(jié)果是()。

A.12345678B.01234567C.0D.1

13.用鄰接矩陣A表示有向圖G的存儲結(jié)構(gòu),則有向圖G中頂點i的入度為()。

A.第i行非0元素的個數(shù)之和B.第i列非0元素的個數(shù)之和C.第i行0元素的個數(shù)之和D.第i列0元素的個數(shù)之和

14.

15.下面程序的輸出結(jié)果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}

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

16.設(shè)串s1='ABCDEFG',s2='PQRST',函數(shù)StrCat(x,y)返回x和y串的連接串,StrSub(s,i,j)返回串s的從序號i的字符開始的j個字符組成的子串,StrLen(s)返回串s長度,則StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的結(jié)果串()。

A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF

17.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認測試B.集成測試C.驗證測試D.驗收測試

18.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的輸出結(jié)果是()。A.xyyxB.yyyyC.yyxxD.yxyx

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

A.C語言程序?qū)︻A處理命令行的處理是在程序執(zhí)行過程中進行的

B.預處理命令行的最后不能以分號表示結(jié)束

C.“#defmeMAX”是合法的宏定義命令行

D.在程序中,凡是以“#”開始的語句行都是預處理命令行

20.二維數(shù)組A按行順序存儲,其中每個元素占1個存儲單元。若A[1][1]的存儲地址為420,A[3][3]的存儲地址為446,則A[5][5]的存儲地址為_______

A.470B.471C.472D.473

二、2.填空題(20題)21.設(shè)變量已正確定義為整型,則表達式n=i=2,++i,i++的值為【】。

22.現(xiàn)有兩個C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

當編譯連接通過后,運行程序T18時,輸入Thank!,則輸出結(jié)果是【】。

23.函數(shù)fun的功能是計算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調(diào)用語句為【】。

24.以下程序的運行結(jié)果是()。main(){inta=1,b=2,c;if(a>B)c=1;elseif(a==B)c=0;elsec=-1;printf("%d\n",C);}

25.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向該文件,則程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{FILE*fr;charstr[40];

fgets(str,5,fr);

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

felose(fr);

}

26.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

27.以下程序從終端輸入一行字符放在s數(shù)組中,輸入以回車符作為結(jié)束,函數(shù)fun統(tǒng)計存放在s數(shù)組中每個數(shù)字字符的個數(shù)。形參ch指向s數(shù)組,形參n給出了s數(shù)組中字符的個數(shù)。在acc數(shù)組中用下標為0的元素統(tǒng)計字符“0”的個數(shù),下標為1的元素統(tǒng)計字符“1”的個數(shù),…。請?zhí)羁铡?/p>

#include<stdio.h>

voidfun(int*,char*,int);

main()

{chars[80],c;intacc[10],i=0;

printf("Entercharacters:\n");

while((c=getchar())!='\n')s[【】]=c;

fun(【】);

for(i=0;i<10;i++)printf("%c:%d\n",'0'+i,acc[i]);

printf("\n\n");

}

voidfun(int*a,char*ch,intn)

{inti,d;

for(i=0;i<10;i++)a[i]=【】;

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

{d=【】;a[d]++;}

}

28.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。

29.在______個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。

30.算法的復雜度主要包括空間復雜度和______復雜度。

31.在C語言中,可以利用【】,將一個表達式的值轉(zhuǎn)換成指定的類型。

32.下面程序把從終端讀入的文本(用#作為文本結(jié)束標志)復制到一個名為file.txt的新文件中。補足所缺語句。

main()

{charch;

FILE*fp;

if((fp=fopen(______))=NULL)exit(0);

while((ch=getchar())!='#')

fputc(ch,fp);

______;

}

33.在樹形結(jié)構(gòu)中,沒有前件的結(jié)點是()。

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

【】。

#include<stdio.h>

main()

{chara,b;

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

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

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

}

35.若有定義doublea[5];,則a數(shù)組元素下標的上限為______。

36.數(shù)據(jù)庫三級模式體系結(jié)構(gòu)的劃分,有利于保持數(shù)據(jù)庫的【】。

37.下面程序的功能是將字符串a(chǎn)下標值為偶數(shù)的元素由小到大排序,其他元素不變,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{

chara[]="labchmfye",t:

int1,j;

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

for(j=i+2;j<9;【】)

if(【】)

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

puts(a);printf("\n");

}

38.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

39.軟件定義時期主要包括______和需求分析兩個階段。

40.以下程序運行時,若從鍵盤輸入:102030<回車>,輸出的結(jié)果是【】。

#include<stdio.h>

main()

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

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

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

}

三、1.選擇題(20題)41.下列選項中,不能用作標識符的是A._1234_B._1_2C.int_2_D.2_int_

42.現(xiàn)有格式化輸入語句,scanf("x=%d],sum]y=%d,line]z=%dL",&x,&y,&z);,已知在輸入數(shù)據(jù)后,x,y,z的值分別是12,34,45,則下列選項中是正確的輸入格式的是

[注]:"]"表示空格,<Enter>表示回車

A.12,34,45<Enter>

B.x=12,y=34,z=45<Enter>

C.x=12C,sumy=34,z=45<Enter>

D.x=12],sum]y=34,line]z=45<Enter>

43.若變量c為char類型,能正確判斷出c為小寫字母的表達式是()

A.'a'<=c<='2'

B.(c>='a')||(c<='z')

C.('a'<c)and('z'>=c)

D.(c>='a')&&(c<='z')

44.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

45.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。ch='b';k=10;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);

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

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

C.62,142,k=%d

D.62,142,k=%10

46.下列選項中均屬于C語言合法的標識符是()。

A.Int#subbreak

B._3abFORLong

C.3aprintfa_b

D.WORDautoinclude

47.對于以下程序段,設(shè)a和q都是整型變量,┇a=q;Loop:if(a==0)gotoEnd;Elseif(a>0){printf("&");a--;gotoLoop;}ElsegotoEnd;End;┇不能與上面程序等價的是()

A.a=q;do{f(a<0)break;a--;printf("*");}while(a);

B.a=q;for(;a>0;a--)printf("&");

C.a=q;while(a){printf("&");a--;}

D.for(a=q;a>0;--a,printf("*"));

48.

對兩個數(shù)組a和b進行下列初始化:

charm[]="1234567";

charn[]={1,2,3,4,5,6,7};

則下列敘述正確的是()。

A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串

49.有以下程序:intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%if",&x);x=fun(x);printf("%d\n",x);}執(zhí)行程序時,給變量X輸入10,程序的輸出結(jié)果是()。A.55B.54C.65D.45

50.以下程序的輸出結(jié)果是_______。#include<stdio.h>main(){printf("%d\n",NULL);}

A.不確定的(因變量無定義)B.0C.-1D.1

51.下列程序執(zhí)行輸出的結(jié)果是()。#include<stdio.h>f(inta){intb=0;staticc=3;a=c++;b++;return(a);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}

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

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

A.可以通過typedef增加新的類型

B.可以用tyPedef將已存在的類型用新的名字來表示

C.用typedef定義新的類型名后,原有類型名仍有效

D.用tyPedcf可以為各種類型起別名,但不能為變量起別名

53.有以下程序:voidchange(intk[]){k[0]=k[5];}main(){intx[10]=(1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4){change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}程序運行后輸出的結(jié)果是()。

A.678910B.13579C.12345D.62345

54.在下列選項中,沒有構(gòu)成死循環(huán)的是()。

A.inti=100;while(1){i=i%100+1;if(i>100)break;}

B.for(;;);

C.intk=10000;do{k++;}while(k>10000);

D.ints=36;while(s)--s;

55.以下選項中,正確運用指針變量的程序段是()。

A.int*i=NULL;

B.float*f=NULL;scanf("%d",i);*f=10.5;

C.chart='m',*C=&t;

D.long*L;*C=&t;L='0';

56.已有定義:inti,a[10],*p;則合法的賦值語句是()。

A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;

57.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

58.程序流程圖(PFD)中的箭頭代表的是()。

A.組成關(guān)系B.控制流C.調(diào)用關(guān)系D.數(shù)據(jù)流

59.有如下程序main(){inty=3,x=3,z=1;printf("%d\n",(++x,y++),z+2);}運行該程序的輸出結(jié)果是_____。

A.34B.42C.43D.33

60.軟件開發(fā)模型包括Ⅰ、瀑布模型Ⅱ、扇形模型Ⅲ、快速原型法模型Ⅳ、螺旋模型

A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ

四、選擇題(20題)61.

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

A.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間具有密切的關(guān)系

B.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象都是公用的

C.在面向?qū)ο蟮某绦蛟O(shè)中,各個對象之間相對獨立,相互依賴性小

D.上述3種說法都不對

63.

64.設(shè)p1和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則下列不能正確執(zhí)行的語句是_______。

A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);

65.

66.以下選項中關(guān)于程序模塊化的敘述錯誤的是()。

A.可采用自底向上、逐步細化的設(shè)計方法把若干獨立模塊組裝成所要求的程序

B.把程序分成若干相對獨立、功能單一的模塊,可便于重復使用這些模塊

C.把程序分成若干相對獨立的模塊,可便于編碼和調(diào)試

D.可采用自頂向下、逐步細化的設(shè)計方法把若干獨立模塊組裝成所要求的程序

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

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點有且僅有一個前件和后件

D.線性表可以是空表

68.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

69.有以下程序:

#include<stdio.h>

#include<string.h>

main()

{charstr[][20][{"One*World","One*Dream!"},*p=str[1];

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

}

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

A.9,0ne*World

B.9,0ne*Dream!

C.10,One*Dream!

D.10,Ome*World

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

main()

{inta=2,b=3,c;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

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

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

71.不能實現(xiàn)函數(shù)之間數(shù)據(jù)傳遞的是()。

A.全局變量B.局部變量C.函數(shù)接口D.函數(shù)返回值

72.有以下程序:

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

A.321678B.876543C.1098765D.345678

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

A.列表框和組合框都有List屬性

B.列表框有Selected屬性,而組合框沒有

C.列表框和組合框都有Style屬性

D.組合框有Text屬性,而列表框沒有

74.

有下列程序:

fun(intX,inty){return(x+y);}

main

{inta=1,b=2,c=3,sum;

sum=fun((a++,b++,a+b),c++);

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

}

執(zhí)行后的輸出結(jié)果是()。

A.6B.7C.8D.9

75.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

76.若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。#include#includemain{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.A.-1B.0C."abcdef"D."abdef"

77.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;……}程序在執(zhí)行了“c=&b;b=&a;”語句后,表達式“**c”的值是()。

A.變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址

78.

79.若要說明一個類型名STP,使得定義語句STPs;等價于Char*s;,以下選項中正確的是()。

A.typedefChar*s;

B.typedefChar*STP;

C.typedefSTP*Char;

D.typedef*CharSTP;

80.已知字符‘A’的ASCII代碼值是65,字符變量cl的值是‘A’,c2的值是‘D’。則執(zhí)行語句printf(”%d,%d”,cl,c2—2);的輸出結(jié)果是()。

A.65,68B.A,68C.A,BD.65,66

五、程序改錯題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進行排序。插入法的基本方法是:先對字符串中的頭兩個元素進行排序,然后把第3個字符插入前兩個字符中,插入后前3個字符依然有序;再把第4個字符插入前三個字符中,待排序的字符串已

在主函數(shù)中賦予。

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

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

試題程序:

#include<strin9.h>

#include<stdi0.h>

#defineM80

voidproc(char*arr)

{inti,j,n;charch;

n=strlen(arr):

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

//****found****

{c=arr[i];

j=i-1;

while((j>=o)&&(ch<arr[j]))

{

arr[j+1]=arr[j];

j--;

}

arr[j+1]=ch;

}

}

voidmain

{

chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";

printf("Theoriginalstring:%s\n",a);

proc(a);

printf("Thestringaftersortin9:

%s\n\n",a);

}

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),其功能是:將所有大于1小于整數(shù)m的非素數(shù)存入XX所指數(shù)組中,非素數(shù)的個數(shù)通過k傳回。例如,輸入20,則應(yīng)輸出4689101214151618。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C解析:每個C程序有且只有一個主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。

2.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。

3.C

4.D

\n首先計算1與2的或運算,再將其結(jié)果與3進行“與”運算,結(jié)果為00000011,即十進制數(shù)3。

\n

5.C

6.A循環(huán)的作用是求行下標從1到2列下標從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。

7.B解析:結(jié)構(gòu)體類型的定義格式為:

strcut結(jié)構(gòu)體名

{成員說明列表};

結(jié)構(gòu)體變量的定義有3種形式:第一種:定義結(jié)構(gòu)體型的同時定義結(jié)構(gòu)體變量如:strcut結(jié)構(gòu)體名{成員說明列表}變量;第二種先定義一個結(jié)構(gòu)體類型,然后使用該類型來定義結(jié)構(gòu)體變量,如:strcutstudent{成員說明列表):student變量;第三種:定義一個無名稱的結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如:Strctstudent{成員說明列表}變量。和上面三種情況比較我們不難得知只有選項B是正確的。所以,4個選項中選項B符合題意。

8.B本題考查strlen函數(shù)和轉(zhuǎn)移字符,strlen函數(shù)的功能是求字符串的長度,在本題中有“\”,C語言中“\”是轉(zhuǎn)義字符,在計算長度時會將轉(zhuǎn)義符以及后面的第一個字符作為1個長度進行計算,所以答

9.A解析:本題考查的是getchar()函數(shù)。getchar()函數(shù)執(zhí)行時將從鍵盤緩沖區(qū)中讀取用戶的輸入,而不管輸入的是否可打印字符,所以當輸入a<回車>后,鍵盤緩沖區(qū)被輸入的實際上是兩個字符:'a'和'\\n'。故選項A的說法是正確的。

10.A解析:對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。

11.D程序首先定義整型變量s和i,s的初值為0。for循環(huán)中i的取值為1,2,3,4,另外在switch語句中,執(zhí)行各個分支后,若沒有break語句,會繼續(xù)執(zhí)行后續(xù)分支。當i=1時,switch語句執(zhí)行case1、case2和default,將s自增3后再自增5,此時s的值為8;當i=2時,switch語句執(zhí)行case2、default,將s自增3后再自增5,此時s的值為16;當i=3時,switch語句執(zhí)行case3、case1、case2、default,將s逐步自增2,自增3,自增5,此時s的值為26;當i=4時,switch語句執(zhí)行default語句,將s自增5,此時s的值為31。本題答案為D選項。

12.A表達式“ch-‘0’’將數(shù)字字符轉(zhuǎn)為數(shù)字。輸出的格式為%d。while循環(huán)從‘1’~‘8’,因此輸出的結(jié)果是12345678。故本題答案為A選項。

13.B

14.C

15.B解析:指針變量p指向數(shù)組a的第5個元素,p[3]在原指向基礎(chǔ)上移3個單位,指針變量p將指向第8個元素(下標為7的元素),值為7。

16.D

17.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。

(1)單元測試是針對每個模塊進行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。

(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。

(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細設(shè)計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。

(4)系統(tǒng)測試是將已經(jīng)通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。

18.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結(jié)束循環(huán)。所以B正確。

19.A預處理是在程序編譯之前進行的,所以A選項錯誤。故本題答案為A選項。

20.C

21.33解析:本題考查的是C語言逗號表達式的相關(guān)知識。程序在計算逗號表達式時,從左到右計算由逗號分隔各表達式的值,整個逗號表達式的值等于其中最后一個表達式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。

22.!knahT!knahT解析:此程序是一道次序顛倒題,即輸入'Thank!',則輸出'!knahT'。

23.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學表達式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

24.-1-1解析:if~else語句的形式:if(表達式)語句1elseif語句2else語句3它的功能是:若表達式的值為真,執(zhí)行語句1,并跳過其他語句,執(zhí)行ifelse語句的下一條語句,若表達式的值為假,跳過語句1,執(zhí)行語句2,依次往下判斷;a=1,b=2,條件a>b不成立,繼續(xù)判斷a==b,仍不成立,則執(zhí)行c=-1,輸出-1。

25.HellHell解析:文件的字符串讀寫函數(shù)fgets()有3個參數(shù),第三個參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個參數(shù)是一個整數(shù)(假設(shè)為n),表示從文件中讀取n-1個字符并在其后加一個'0',第一個參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取得數(shù)據(jù)保存在其中??梢姳绢}的輸出結(jié)果為:Hell。

26.33解析:本題考查do…while語句形式:

do循環(huán)體

while表達式

首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。

27.i++accsi0ch[i]-'0'

28.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個;維表代表一種關(guān)系。

29.3131解析:設(shè)隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。

30.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。

31.強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換

32.file.txt"w"fclose(fp)。file.txt,'w'fclose(fp)。解析:向文件中寫數(shù)據(jù),并且該文件是新文件,應(yīng)當使用文件打開方式'w',文件操作結(jié)束時要用函數(shù)fclose關(guān)閉文件,以防數(shù)據(jù)丟失。

33.根結(jié)點根結(jié)點

34.1B1B解析:從鍵盤輸入后,a='B',b=33,之后進行運算,a='B'-'A'+'0'='1';b=33*2=66。C語言規(guī)定,整型和字符型可以相互轉(zhuǎn)換,已知字符A的ASCII碼值為65,所以字符B的ASCII碼值為66,所以b='B',最后以字符形式輸出a和b,所以輸出為1B。

35.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。

36.數(shù)據(jù)獨立性數(shù)據(jù)獨立性解析:數(shù)據(jù)庫的三級模式體系結(jié)構(gòu)把數(shù)據(jù)的組織管理工作進行了劃分,把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機中的具體表示方式與存儲方式,保證了數(shù)據(jù)的獨立性。

37.j++a[j]>a[j]

38.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。

39.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用及維護等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計、實現(xiàn)和測試;③軟件運行維護階段:交付使用和維護。

40.1030010300解析:在scanf格式控制符中有一個“*”附加說明符,表示跳過它指定的列數(shù)。程序中'%d%*d%d'表示首先將10賦給i,然后遇%。d讀入整數(shù)但不賦給任何變量,最后將讀人的整數(shù)30賦給變量j,變量k并沒有重新賦值,仍為初始值0。所以輸出的結(jié)果為10300。

41.D解析:本題考核的知識點是用戶的標識符。在C語言中,合法的標識符由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或者下劃線,如:acd,d_ad、_adf124,_124等都是合法的標識符號.而2asdf、_sd/=都不是合法的標識符.在C語言中大寫字母和小寫字母被認為是兩個不同的字符,如:ACD和acd是兩個不同的標識符號。選項D中用下劃線作為第一個字符,這是不合法的,故選項D不正確,所以,4個選項中選項D符合題意。

42.D解析:若在scanf的格式化控制串中插入了其他字符,則在輸入時要求按一一對應(yīng)的位置原樣輸入這些字符。格式化輸入函數(shù)必須嚴格按照雙引號里面的格式進行輸入。在格式化輸出函數(shù)中,格式控制串中除了合法的格式說明外,可以包含任意的合法字符。

43.D

44.C算法具有的5個特性是:有窮性、確定性、可行性、有0個或多個輸入、有一個或多個輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。

45.C解析:第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項的個數(shù)是3,所以對于多余的輸出項k不予輸出;第2個pfintf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。注意:本題考查printf函數(shù)的格式。①“%x”和“%o”分別表示以十六進制和八進制無符號型輸出整型數(shù)據(jù)(不帶前導Ox或O):②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出:⑧格式說明與輸出項的個數(shù)也要相等,如果格式說明的個數(shù)少于輸出項的個數(shù),則對于多余的輸出項不予輸出。

46.B解析:選項A中#sub含有非法字符‘#’、break屬于C語言關(guān)鍵字都不是合法標識符;選項C中3a以數(shù)字開頭不是合法標識符;選項D中的auto是C語言關(guān)鍵字不屬于合法標識符;故應(yīng)該選擇B。

47.C

48.C解析:本題考查字符數(shù)組和字符串賦值給數(shù)組的一些區(qū)別。語句“charm[]='1234567';”定義了一個字符型數(shù)組并進行了初始化,C語言規(guī)定,在字符串的末尾自動加上串結(jié)束標記\'\\0\',因此數(shù)組m的長度是8;而數(shù)組n是按照字符方式對數(shù)組進行初始化,系統(tǒng)不會自動加上串結(jié)束標記\'\\0\',因此數(shù)組n的長度是7。

49.A函數(shù)fun()通過遞歸調(diào)用實現(xiàn)的功能為n+(n-1)+…+1,故程序的輸出結(jié)果為55。

50.B解析:NULL在C編譯器中是—個值為0的常量,它的定義在頭文件“stdio.h”中,本題的程序在一開始就包含了這個頭文件,所以,在打印的時候,將打印出0。

51.B解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在函數(shù)調(diào)用時,static變量在函數(shù)調(diào)用結(jié)束后所做的所有變化均保持(即上次調(diào)用結(jié)束時的值)。

在主函數(shù)中,第一次循環(huán),i=0,調(diào)用k-f(a++)=f(2),調(diào)用完之后才將a加1,a變?yōu)?,在f(2)中,先將c=3賦值給a返回,然后將c加1,得到k=a=3,c=4。

第二次循環(huán),i=1,調(diào)用k=f(a++)=f(3),調(diào)用完之后才將a加1,a變?yōu)?,在f(3)中,先將c=4賦值給a返回,然后將c加1,得到k=a=4,c=5。

52.A解析:選項A)錯誤,原因是typedef可以聲明新的類型名來代替已有的類型名,但卻不能增加新的類型。

53.A解析:本題的change()函數(shù)實現(xiàn)的是:將傳入的地址值的高5個單位的地址中的內(nèi)容復制到傳入的地址當中,即等價于*k=*(k+5)。在主函數(shù)中,首先通過while循環(huán),循環(huán)5次調(diào)用change()函數(shù),依次將x[0]~x[4]的地址傳入,所以while循環(huán)結(jié)束后,x[0]~x[4]中的內(nèi)容等于x[5]~x[9]中的內(nèi)容。所以輸出結(jié)果為678910,故應(yīng)該選擇A。

54.D解析:選項A)的循環(huán)表達式條件永久為1,由于小于100的數(shù)與100取余不超過99,所以在循環(huán)體內(nèi)表達式i%100+1的值永遠不大于100,break語句永遠不會被執(zhí)行,所以是死循環(huán);選項B)的括號內(nèi)沒有能使循環(huán)終止的條件,是死循環(huán);選項C)中先執(zhí)行k++,使k=10001,陷入死循環(huán);選項D)中的s從36開始,每循環(huán)一次就減小1,直到s為0,循環(huán)結(jié)束,不會構(gòu)成死循環(huán)。

55.D解析:選項A定義了一個整型變量i,并且初始化讓它指向NULL,接著通過scarnf()函數(shù),改變i指向的存儲空間的值,選項A中首先定義了整型指針變量i并初始化為NULL,即表示指針i不指向任何存儲單元,即此時還沒有為i在內(nèi)存中開辟存儲單元,而在scanf()函數(shù)中第二個參數(shù)是地址參數(shù),顯然在這里i不表示地址,所以下面的scanf('%d',i)語句是不正確的,故選項A不正確。選項B定義了一個實型指針變量f并初始化使它指向NULL,即還沒有為f在內(nèi)存中開辟存儲單元,不能向*f代表的存儲單元(不存在)中寫數(shù)據(jù),故選項B錯誤;選項C中首先定義了一個字符變量t并給它賦初值\'m\',然后定義一個字符型指針c并讓它指向了變量t,這一部分正確,然后接著用了一個語句“*c=&t;”應(yīng)該將該語句中c前的*去掉,故選項C運用指針變量不正確。選項D中的\'\\0\'是一個轉(zhuǎn)移字符,稱作“空值”,可以給指針變量L賦值。所以,4個選項中選項D符合題意。

56.D解析:本題考核的知識點是指針變量的賦值。本題中定義了一個整型數(shù)組a和一個整型指針變量P。選項A中將一個整型數(shù)賦值給一個指針變量,C語言規(guī)定,只能特地址賦給指針指針變量,故選項A不正確:選項B中a[5]為一數(shù)組元素,同樣不是一個地址,故選項B不正確;選項c中a[2]為一數(shù)組元素,同樣是一個整型數(shù)據(jù),不是個地址,故選項C不正確:選項D中數(shù)蛆名a代表數(shù)組首地址加2,代表第三個元素的地址,故選項D正確,所以,4個選項中選項D符合題意。

57.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。

58.B解析:在程序流程圖(PFD)中,箭頭代表的是控制流,用以指明程序的動態(tài)執(zhí)行順序。

59.D解析:逗號表達式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。

60.C解析:軟件開發(fā)模型包括瀑布模型、快速原型法模型和螺旋模型。

61.A\r\n

62.C本題考查對面向?qū)ο蟮睦斫猓嫦驅(qū)ο蟮某绦蛟O(shè)計是對象模擬問題領(lǐng)域中的實體,各對象之間相對獨立,相互依賴性小,通過消息來實現(xiàn)對象之間的相互聯(lián)系。

63.A

64.B解析:指針變量中只存放地址(指針),不要將—個整型量(或任何其他非地址類型的數(shù)據(jù))賦給—個指針變量,所以B是不正確的。

65.C

66.A程序模塊化可以采用自頂向下、逐步細化的方法,所以A選項中“自底向上”的說法是錯誤的。故本題答案為A選項。

67.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C.是錯誤的。

68.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。

69.C\n本題輸出兩個結(jié)果,第一個是求字符串的長度。第二個是輸出的字符串,數(shù)組的下標是從0開始的,所以當str取1的時候,應(yīng)為“One*Dream!”。

\n

70.Cif-else語句的嵌套,a=2,b=3,a<b,不滿足條件a>b,a==b,所以執(zhí)行語句c=-1;

71.B局部變量的作用域僅局限于函數(shù)體內(nèi)。不能在函數(shù)之間進行數(shù)據(jù)傳遞。

72.A本題中的函數(shù)fun()的功能是將數(shù)組k中前5個元素倒序,所以返回后數(shù)組k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印輸出k[2]到k[7]元素的值,即321678,所以選擇A。

73.BB?!窘馕觥拷M合框和列表框都沒有selected屬性。

74.C解析:函數(shù)fun(intx,inty)的功能是返回兩個整型數(shù)據(jù)的和。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號表達式“a++,b++,a+b”的值等于5,表達式c++的值為3,調(diào)用子函數(shù)的表達式為“fun(5,3);”,其返回值等8。所以變量sum的值等于8。

75.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。

76.A本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。

77.C解析:主函數(shù)中定義了一個整型變量a,一個整型指針變量b和一個二級指針變量c,并讓c指向指針變量b,讓指針b指向整形變量a,所以**c為變量a的值,所以,4個選項中選項C符合題意。

78.A

79.B用關(guān)鍵字typedef聲明一種新的類型的形式為typedef類型名標識符。本題中的類型為char*。

80.D打印時以%d整型格式打印輸出,所以字符標量cl的值打印出來就是65,從c2—2的值打印出來就是68—2,即66。所以選擇D。

81.\n\t錯誤:c=arr[i];

\n正確:ch=arr[i];

\n【解析】由函數(shù)定義可知,函故proc只定義了變量ch,沒有定義變量C。因此,“c=arr[i]:”應(yīng)改為“ch=arr[i];”。\n

82.

【解析】題目中要求將所有大于l小于整數(shù)m的非素數(shù)存入xx所指數(shù)組中,因此需要判斷所有大干1小于m的整數(shù)是否為素數(shù)。將所有大干1小于m的非素數(shù)放入數(shù)組xx中,并將非素數(shù)的個數(shù)通過形參k傳遞回主函數(shù)中。

2021年山西省臨汾市全國計算機等級考試C語言程序設(shè)計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.C語言可執(zhí)行程序的開始執(zhí)行點是()。

A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句

2.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

3.設(shè)x是一個int型的,y的值為10,則表達式x&&y的值為()。

A.1B.0C.與x值相同D.與x值相反

4.

有以下程序

#include<stdio.h>

main

{inta=1,b=2,c=3,x;

x=(a^b)&C;printf("%d",x);

}

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

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

5.一個隊列的入隊序列是1,2,3,4,則隊列的輸出序列是()。

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

6.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21

7.設(shè)有以下語句

typedefstructS

{intg;charh;}T;

則下面敘述中正確的是()A.可用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量

8.有以下程序:#include<stdio.h>#include<strin9.h>main(){printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}程序運行后的輸出結(jié)果是()。A.3B.8C.4D.9

9.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當運行時輸入:a<回車>后,以下敘述正確的是()。

A.變量c1被賦予字符a,c2被賦予回車符

B.程序?qū)⒌却脩糨斎氲?個字符

C.變量c1被賦予字符a,c2中仍是原有字符2

D.變量c1被賦予字符a,c2中將無確定值

10.對線性表進行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈式方式存儲,并按關(guān)鍵碼值排好序

D.線性表以鏈式方式存儲,并按關(guān)鍵碼的檢索頻率排好序

11.有以下程序:程序運行后的輸出結(jié)果是()。A.20B.13C.10D.31

12.有以下程序:#include<stdio.h>main(){charch=‘1’;while(ch<‘9’){printf(“%d”,ch-‘0’);ch++;}}程序運行后的輸出結(jié)果是()。

A.12345678B.01234567C.0D.1

13.用鄰接矩陣A表示有向圖G的存儲結(jié)構(gòu),則有向圖G中頂點i的入度為()。

A.第i行非0元素的個數(shù)之和B.第i列非0元素的個數(shù)之和C.第i行0元素的個數(shù)之和D.第i列0元素的個數(shù)之和

14.

15.下面程序的輸出結(jié)果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}

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

16.設(shè)串s1='ABCDEFG',s2='PQRST',函數(shù)StrCat(x,y)返回x和y串的連接串,StrSub(s,i,j)返回串s的從序號i的字符開始的j個字符組成的子串,StrLen(s)返回串s長度,則StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的結(jié)果串()。

A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF

17.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認測試B.集成測試C.驗證測試D.驗收測試

18.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的輸出結(jié)果是()。A.xyyxB.yyyyC.yyxxD.yxyx

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

A.C語言程序?qū)︻A處理命令行的處理是在程序執(zhí)行過程中進行的

B.預處理命令行的最后不能以分號表示結(jié)束

C.“#defmeMAX”是合法的宏定義命令行

D.在程序中,凡是以“#”開始的語句行都是預處理命令行

20.二維數(shù)組A按行順序存儲,其中每個元素占1個存儲單元。若A[1][1]的存儲地址為420,A[3][3]的存儲地址為446,則A[5][5]的存儲地址為_______

A.470B.471C.472D.473

二、2.填空題(20題)21.設(shè)變量已正確定義為整型,則表達式n=i=2,++i,i++的值為【】。

22.現(xiàn)有兩個C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

當編譯連接通過后,運行程序T18時,輸入Thank!,則輸出結(jié)果是【】。

23.函數(shù)fun的功能是計算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調(diào)用語句為【】。

24.以下程序的運行結(jié)果是()。main(){inta=1,b=2,c;if(a>B)c=1;elseif(a==B)c=0;elsec=-1;printf("%d\n",C);}

25.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向該文件,則程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{FILE*fr;charstr[40];

fgets(str,5,fr);

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

felose(fr);

}

26.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

27.以下程序從終端輸入一行字符放在s數(shù)組中,輸入以回車符作為結(jié)束,函數(shù)fun統(tǒng)計存放在s數(shù)組中每個數(shù)字字符的個數(shù)。形參ch指向s數(shù)組,形參n給出了s數(shù)組中字符的個數(shù)。在acc數(shù)組中用下標為0的元素統(tǒng)計字符“0”的個數(shù),下標為1的元素統(tǒng)計字符“1”的個數(shù),…。請?zhí)羁铡?/p>

#include<stdio.h>

voidfun(int*,char*,int);

main()

{chars[80],c;intacc[10],i=0;

printf("Entercharacters:\n");

while((c=getchar())!='\n')s[【】]=c;

fun(【】);

for(i=0;i<10;i++)printf("%c:%d\n",'0'+i,acc[i]);

printf("\n\n");

}

voidfun(int*a,char*ch,intn)

{inti,d;

for(i=0;i<10;i++)a[i]=【】;

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

{d=【】;a[d]++;}

}

28.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。

29.在______個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。

30.算法的復雜度主要包括空間復雜度和______復雜度。

31.在C語言中,可以利用【】,將一個表達式的值轉(zhuǎn)換成指定的類型。

32.下面程序把從終端讀入的文本(用#作為文本結(jié)束標志)復制到一個名為file.txt的新文件中。補足所缺語句。

main()

{charch;

FILE*fp;

if((fp=fopen(______))=NULL)exit(0);

while((ch=getchar())!='#')

fputc(ch,fp);

______;

}

33.在樹形結(jié)構(gòu)中,沒有前件的結(jié)點是()。

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

【】。

#include<stdio.h>

main()

{chara,b;

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

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

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

}

35.若有定義doublea[5];,則a數(shù)組元素下標的上限為______。

36.數(shù)據(jù)庫三級模式體系結(jié)構(gòu)的劃分,有利于保持數(shù)據(jù)庫的【】。

37.下面程序的功能是將字符串a(chǎn)下標值為偶數(shù)的元素由小到大排序,其他元素不變,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{

chara[]="labchmfye",t:

int1,j;

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

for(j=i+2;j<9;【】)

if(【】)

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

puts(a);printf("\n");

}

38.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

39.軟件定義時期主要包括______和需求分析兩個階段。

40.以下程序運行時,若從鍵盤輸入:102030<回車>,輸出的結(jié)果是【】。

#include<stdio.h>

main()

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

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

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

}

三、1.選擇題(20題)41.下列選項中,不能用作標識符的是A._1234_B._1_2C.int_2_D.2_int_

42.現(xiàn)有格式化輸入語句,scanf("x=%d],sum]y=%d,line]z=%dL",&x,&y,&z);,已知在輸入數(shù)據(jù)后,x,y,z的值分別是12,34,45,則下列選項中是正確的輸入格式的是

[注]:"]"表示空格,<Enter>表示回車

A.12,34,45<Enter>

B.x=12,y=34,z=45<Enter>

C.x=12C,sumy=34,z=45<Enter>

D.x=12],sum]y=34,line]z=45<Enter>

43.若變量c為char類型,能正確判斷出c為小寫字母的表達式是()

A.'a'<=c<='2'

B.(c>='a')||(c<='z')

C.('a'<c)and('z'>=c)

D.(c>='a')&&(c<='z')

44.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

45.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。ch='b';k=10;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);

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

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

C.62,142,k=%d

D.62,142,k=%10

46.下列選項中均屬于C語言合法的標識符是()。

A.Int#subbreak

B._3abFORLong

C.3aprintfa_b

D.WORDautoinclude

47.對于以下程序段,設(shè)a和q都是整型變量,┇a=q;Loop:if(a==0)gotoEnd;Elseif(a>0){printf("&");a--;gotoLoop;}ElsegotoEnd;End;┇不能與上面程序等價的是()

A.a=q;do{f(a<0)break;a--;printf("*");}while(a);

B.a=q;for(;a>0;a--)printf("&");

C.a=q;while(a){printf("&");a--;}

D.for(a=q;a>0;--a,printf("*"));

48.

對兩個數(shù)組a和b進行下列初始化:

charm[]="1234567";

charn[]={1,2,3,4,5,6,7};

則下列敘述正確的是()。

A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串

49.有以下程序:intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%if",&x);x=fun(x);printf("%d\n",x);}執(zhí)行程序時,給變量X輸入10,程序的輸出結(jié)果是()。A.55B.54C.65D.45

50.以下程序的輸出結(jié)果是_______。#include<stdio.h>main(){printf("%d\n",NULL);}

A.不確定的(因變量無定義)B.0C.-1D.1

51.下列程序執(zhí)行輸出的結(jié)果是()。#include<stdio.h>f(inta){intb=0;staticc=3;a=c++;b++;return(a);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}

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

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

A.可以通過typedef增加新的類型

B.可以用tyPedef將已存在的類型用新的名字來表示

C.用typedef定義新的類型名后,原有類型名仍有效

D.用tyPedcf可以為各種類型起別名,但不能為變量起別名

53.有以下程序:voidchange(intk[]){k[0]=k[5];}main(){intx[10]=(1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4){change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}程序運行后輸出的結(jié)果是()。

A.678910B.13579C.12345D.62345

54.在下列選項中,沒有構(gòu)成死循環(huán)的是()。

A.inti=100;while(1){i=i%100+1;if(i>100)break;}

B.for(;;);

C.intk=10000;do{k++;}while(k>10000);

D.ints=36;while(s)--s;

55.以下選項中,正確運用指針變量的程序段是()。

A.int*i=NULL;

B.float*f=NULL;scanf("%d",i);*f=10.5;

C.chart='m',*C=&t;

D.long*L;*C=&t;L='0';

56.已有定義:inti,a[10],*p;則合法的賦值語句是()。

A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;

57.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

58.程序流程圖(PFD)中的箭頭代表的是()。

A.組成關(guān)系B.控制流C.調(diào)用關(guān)系D.數(shù)據(jù)流

59.有如下程序main(){inty=3,x=3,z=1;printf("%d\n",(++x,y++),z+2);}運行該程序的輸出結(jié)果是_____。

A.34B.42C.43D.33

60.軟件開發(fā)模型包括Ⅰ、瀑布模型Ⅱ、扇形模型Ⅲ、快速原型法模型Ⅳ、螺旋模型

A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ

四、選擇題(20題)61.

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

A.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間具有密切的關(guān)系

B.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象都是公用的

C.在面向?qū)ο蟮某绦蛟O(shè)中,各個對象之間相對獨立,相互依賴性小

D.上述3種說法都不對

63.

64.設(shè)p1和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則下列不能正確執(zhí)行的語句是_______。

A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);

65.

66.以下選項中關(guān)于程序模塊化的敘述錯誤的是()。

A.可采用自底向上、逐步細化的設(shè)計方法把若干獨立模塊組裝成所要求的程序

B.把程序分成若干相對獨立、功能單一的模塊,可便于重復使用這些模塊

C.把程序分成若干相對獨立的模塊,可便于編碼和調(diào)試

D.可采用自頂向下、逐步細化的設(shè)計方法把若干獨立模塊組裝成所要求的程序

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

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點有且僅有一個前件和后件

D.線性表可以是空表

68.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

溫馨提示

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

評論

0/150

提交評論