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

下載本文檔

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

文檔簡介

2021-2022年四川省內江市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有定義“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。

A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;

2.表達式:(int)((double)9/2)-(9)%2.的值是A.0B.3C.4D.5

3.在inta=3,int*p=&a;中,*p的值是()。

A.變量a的地址值B.無意義C.變量p的地址值D.3

4.線性表是具有n個()的有限序列。

A.表元素B.字符C.數(shù)據(jù)元素D.數(shù)據(jù)項

5.下面程序的運行結果是()。

#inelude<stdio.h>

voiddel(char*s)

{inti,j;

char*a;

a=s:

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

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

{s[j]=a[i];

j++;

}

s[j]='\0';

}

}

main

{char*s="aa89gggh";

del(s):

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

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

6.有下列程序:程序執(zhí)行后的輸出結果是()。A.11B.43C.57D.53

7.C語言中的標識符分為關鍵字、預定義標識符和用戶標識符,以下敘述正確的是()。

A.預定義標識符(如庫函數(shù)中的函數(shù)名)可用做用戶標識符,但失去原有含義

B.用戶標識符可以由字母和數(shù)字任意順序組成

C.在標識符中大寫字母和小寫字母被認為是相同的字符

D.關鍵字可用做用戶標識符,但失去原有含義

8.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的運行結果是()。A.852B.963C.741D.875421

9.以下定義數(shù)組的語句錯誤的是()。

A.intnum[]={1,2,3,4,5,6};

B.intnum[][3]={{1,2},3,4,5,6};

C.intnum[2][4]={{1,2},{3,4},{5,6}};

D.intnum[][4]={1,2,3,4,5,6};

10.若有說明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無確定值

11.若要求從鍵盤讀入含有空格字符的字符串,應使用函數(shù)()。

A.getcharB.getcC.getsD.scanf

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

A.在同一源文件中,函數(shù)名必須唯一

B.凡是帶有返回值的庫函數(shù),都不能通過加分號而作為獨立的語句出現(xiàn)

C.不同函數(shù)中的形式參數(shù)可以同名

D.返回基本數(shù)據(jù)類型的庫函數(shù)的調用,均可以出現(xiàn)在賦值號右邊的表達式中

13.有下列程序:#include<stdio.h>#include"string.h"voidtim(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運行結果是()。A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

14.當調用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是______。

A.數(shù)組的長度B.數(shù)組的首地址C.數(shù)組每一個元素的地址D.數(shù)組每個元素中的值

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

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

16.已知8個數(shù)據(jù)元素為(34,76,45,18,26,54,92,65),按照依次插入結點的方法生成一棵二叉排序樹后,最后2層上的結點總數(shù)為______。

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

17.下列排序算法中,()算法可能會出現(xiàn)下面情況:初始數(shù)據(jù)有序時,花費的時間反而最多。

A.堆排序B.冒泡排序C.快速排序D.希爾排序

18.下面哪種排序的平均比較次數(shù)最少()

A.插入排序B.選擇排序C.堆排序D.快速排序

19.下面程序運行后的輸出結果是______。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=s[0].a+s[1].b;printf("%d\n",t);}

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

20.以下程序的輸出結果是().A.A.0B.29C.31D.無定值

二、2.填空題(20題)21.以下程序的輸出結果是【】。

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

22.軟件需求規(guī)格說明書應具有完整性、無歧義性、正確性、可驗證性、可修復性等特性,其中最重要的是()。

23.下面程序的運行結果是______。

#include<stdio.h>

intf(inta[],intn)

{if(n>1)

returna[0]+f(a+1,n-1);

else

returna[0];

}

main()

{intaa[10]={1,2,3,4,5,6,7,8,9,10},s;

s=f(aa+2,4);printf("%d\n",s);

}

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

voidfun()

{staticinta=0;

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

}

main()

{intcc;

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

printf("\n");

}

25.下面程序的功能是輸出數(shù)組s中最大元素的下標,請?zhí)羁铡?/p>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

26.軟件生命周期包括8個階段。為了使各時期的任務更明確,又可分為3個時期:軟件定義期、軟件開發(fā)期、軟件維護期。編碼和測試屬于【】期。

27.下列程序的運行結果是______。

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

printf("%d,%d",x,y);

}

28.下面程序由兩個源程序文件:t4.h和t4.c組成,程序編譯運行的結果是:【】。

t4.h的源程序為:

#defineN10

#dennef2(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);

}

29.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計算S,計算結果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請補全程序。

S=1-1/3+1/5-1/7+…+1/(2n+1)

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;

}

【】=s;

}

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

#include<stdio.h>

main()

inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;

for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-1];

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

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

32.軟件工程研究的內容主要包括:【】技術和軟件工程管理。

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

structnode

{chardata;

structnode*next;}a,b

34.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{

inti;

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

{…}

}

35.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

#include<stdio.h>

main()

intt=0.s=0,i:

for(i=1;i<=5;i++){t=i+【】;s=s+t;}

prinff("s=%d\n".s);}

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

37.有以下程序:

voidf(inta[],inti,intj)

{intt;

if(i<j)

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

f(a,i+1,j-1);

}

}

main()

{inti,aa[5]={1,2,3,4,5};

f(aa,0,4);

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

}

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

38.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

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

intn='c';

switch(n++)

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

case'a':

case'A':

case'b':

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

case'c':case'C':printf("pass");

case'd':case'D':printf("warn");

}

40.strcat函數(shù)的作用是【】。

三、1.選擇題(20題)41.在C程序中,判斷邏輯值時,分別用()表示邏輯值“真”、“假”。

A.非00B.01C.非0非0D.11

42.有以下程序

fun(intx)

{intp;

if(x==1)return(3);

p=x-fun(x-2);

returnp;

}

main()

{printf("%d\n",fun(7));}

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

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

43.當前在數(shù)據(jù)庫管理系統(tǒng)的研究方面,較活躍的是()

A.關系數(shù)據(jù)庫B.網(wǎng)狀數(shù)據(jù)庫C.空間數(shù)據(jù)庫D.層次數(shù)據(jù)庫

44.以下不合法的用戶標識符是______。A.j2KEYB.DoubleC.4dD._8_

45.請選出可用作C語言用戶標識符的一組()。

A.voiddefineWORD

B.a3_b3_123IF

C.For_abccase

D.2aDOsizeof

46.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序運行后的輸出結果是

A.錯誤信息B.666C.888D.666,888

47.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,x;x=(a^B)&c;printf("%d\n",x);}程序的運行結果是()。

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

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

A.隊列B.棧C.雙向鏈表D.二叉樹

49.有以下程序:fun(intx){intp;if(x==0‖x=1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7);}執(zhí)行后的輸出結果是()。

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

50.以下4個選項中,不能看作一條語句的是

A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;

51.下面程序段的運行結果是

char*s="abcde";

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

A.cdeB.字符′c′C.字符′c′的地址D.無確定的輸出結果

52.在C語言中,合法的字符常量是______。

A.'\081B.'\x43'C.'ab'D.\0

53.下列程序的運行結果為

#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

54.軟件調試的目的是______。

A.發(fā)現(xiàn)錯誤B.改正錯誤C.改善軟件的性能D.挖掘軟件的潛能

55.設有定義:intk=1,m=2;floatf=7;則以下選項中錯誤的表達式是()。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

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

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

57.數(shù)據(jù)結構中,與所使用的計算機無關的是數(shù)據(jù)的()。A.存儲結構B.物理結構C.邏輯結構D.物理和存儲結構

58.c語言規(guī)定,在一個源程序中,main函數(shù)的位置()。

A.必須在最開始B.必須在系統(tǒng)調用的庫函數(shù)的后面C.可以任意D.必須在最后

59.下列4項說法中,不正確的是______。

A.數(shù)據(jù)庫減少了數(shù)據(jù)冗余B.數(shù)據(jù)庫中的數(shù)據(jù)可以共享C.數(shù)據(jù)庫避免了一切數(shù)據(jù)的重復D.數(shù)據(jù)庫具有較高的數(shù)據(jù)獨立性

60.若要求從鍵盤讀入含有空格字符的字符串,應使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()

四、選擇題(20題)61.設有如下定義

char*s[2]={"abcd","ABCD"};

則下列說法錯誤的是

A.s數(shù)組元素的值分別是″abcd″和″ABCD″兩個字符串的首地址

B.s是指針數(shù)組名,它含有兩個元素,分別指向字符型一維數(shù)組

C.s數(shù)組的兩個元素分別存放的是含有4個字符的一維字符數(shù)組中的元素

D.s數(shù)組的兩個元素中分別存放了字符′a′和′A′的地址

62.有以下程序

#include<stdio.h>

#defineN4

voidfun(inta[][N],intb[])

{inti;

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

b[i]=a[i][i];

}

main()

{intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;

fun(x,y);

for(i=0;i<N;i++)printf("%d,",y[i]);

printf("\n");

}

程序的運行結果是

A.l,2,3,4,

B.1,0,7,0,

C.1,4,5,9,

D.3,4,8,10,

63.有以下程序:main{inti,n=0:for(i=2;i<5;i++){do{if(i%3)continue:n++:}while(!i);n++:}printf("n=%d\n",n);}程序執(zhí)行后輸出結果是()。A.n=5B.n=2C.n=3D.n=4

64.

65.

66.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是97。下列能將變量C中的大寫字母轉換為對應小寫字母的語句是()。A.A.c=(c-'A')%26+'A'

B.c=c+32

C.c=c-'A'+'A'

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

67.有以下程序:

當執(zhí)行程序時從鍵盤上輸入HelloBeijing<;回車>;,則程序運行后的輸出結果是()。

A.hellobajiIlg

B.HelloBeijing

C.HELLOBEIJING

D.hELLOBeijing

68.若有定義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)

69.

70.開發(fā)軟件所需高成本和產品的低質量之間有著尖銳的矛盾,這種現(xiàn)象稱為()。

A.軟件投機B.軟件危機C.軟件工程D.軟件產生

71.

72.有如下說明

inta[10]={1,2,3,4,5,6,7},*p=a;

則數(shù)值為5的表達式是

A.*p+4B.*(p+4)C.*p+=4D.p+4

73.

74.以下選項中不能用做C程序合法常量的是()。

A.1,234B.‘\123’C.123D.“\x7G”

75.有以下程序:

注意:字母a的ASCIl碼值為97,程序運行后的輸出結果是()。

A.dB.goC.godD.good

76.軟件生命周期中的活動不包括()

A.軟件維護B.市場調研C.軟件測試D.需求分析

77.

下列程序的運行結果是()。

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

printf("x=%d,y=%d",x,y);

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

78.若函數(shù)調用時的實參為變量時,以下關于函數(shù)形參和實參的敘述中正確的是()。

A.函數(shù)的實參和其對應的形參共占同一存儲單元

B.形參只是形式上的存在,不占用具體存儲單元

C.同名的實參和形參占同一存儲單元

D.函數(shù)的形參和實參分別占用不同的存儲單元

79.若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。

A.b=double(b);B.(int)a=(int)b;C.a=a++=5;D.a=double(b);

80.有以下程序:

從第一列開始輸入以下數(shù)據(jù)(<CR>代表一個回車符.:

2743<CR>

程序的輸出結果是()。

A.66877B.668966C.6677877D.6688766

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是找出100~m(m不大于1000)之間百位數(shù)字加十位數(shù)字等于個位數(shù)字的所有整數(shù),把這些整數(shù)放在s所指的數(shù)組中,個數(shù)作為函數(shù)值

返回。

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

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

試題程序:

#include<stdio.h>

#defineM1000

intproc(int*S.intn)

{

inti,j,k,a,b,c;

j=0;

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

{

//****found****

k=n:

a=k%10;

k/=10;

b=k%10;

c=k/10;

if(a==b+c)

//****found****

s[j]=i:

}

returnj;

}

voidmain

{

inta[M],m,num=0,i;

do

{

printf("\nEnterm(<=1000):");

scanf("%d",&m);

}

while(m>1000);

num=proc(a,m);

printf("\n\nTheresult:\n");

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

printf("%5d",a[i]);

printf("\n\n");

}

六、程序設計題(1題)82.請編一個函數(shù)fun(ohlr*str),該函數(shù)的功能是把字符串中的內容逆置。

例如,字符串中原有的字符串為asdf9,則調用該函數(shù)后,串中的內容為9fdsa。

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

試題程序:

#include<string.h>

#include<conio.h>

#include<stdio.h>

#defineN100

voidfun(char*str)

{

}

voidmain

{

chara[N];

FILE*out:

printf("Enterastring:");

gets(a);

printf("Theorigiralstringis:");

puts(a);

fun(a):

printf("Thestringaftermodified:");

puts(a);

strcpy(a,"Welcome!");

fun(a);

ut=fopen("outfile.dat","w");

fprintf(out,"%s".a);

fclose(out);

}

參考答案

1.B運算符“%”為二元運算符,具有左結合性,參與運算的量均為整型。B選項中的變量a是double型,不符合規(guī)定。故本題答案為B選項。

2.B\n本題考查了強制類型轉換。9/2為double型,所以結果為4.5,又強制轉換為整型,所以結果為4。9%2為取余運算,結果為1。最終結果4-1=3。

\n

3.D

4.A

5.D本題中del(char*s)函數(shù)實現(xiàn)的功能是:逐個讀入S數(shù)組中的字符,如果遇到數(shù)字,則將數(shù)字存在s中,遇到非數(shù)字字符則跳過。所以最后輸出的應該是字符串S中所有的數(shù)字的個數(shù)。

6.D函數(shù)f是一個遞歸函數(shù)。當x>=2時,遞歸調用自身,返回值為x*f(x-l)+(x-l)*f(x-2);3x<2時,返回值為1。main函數(shù)中,調用函數(shù)f傳入4,所以y的值是f(4)。f(4)等價于4*f(3)+3*f(2);f(3)等價于3*f(2)+2*f(1);f(2)等價于2*f(1)+1*f(0);f(0)、f(1)等價于1。綜上:f(2)等于3,f(3)等于11,f(4)等于53。本題答案為D選項。

7.A用戶標識符不能以數(shù)字開頭,C語言中標識符是區(qū)分大小寫的,關鍵字不能用做用戶標識符。

8.A答疑:[解析]第一次for循環(huán),y的值為9.y%3的值為0.滿足條件打印-y,即先減一-后打印,所以打印8;第二次for循環(huán),y的值為7.y%3的值為1.不執(zhí)行打印語句;第三次for循環(huán),y的值為6.y%3的值為0.滿足條件打印--y,即先減-后打印,所以打印5;第四次for循環(huán),y的值為4.不滿足條件,不執(zhí)行打印語句;第五次for循環(huán),y的值為3.滿足條件,打印輸出2;第六次for循環(huán),y的值為1.不滿足條件,不執(zhí)行打印語句。

9.B二維數(shù)組的定義有3種形式,第一種是分行為兩位數(shù)組賦值,即intnum[]={{12},{3,4},{5,6}},第二種是按照數(shù)組排列順序進行賦值,即intnum[]={1,2,3,4,5,6},第三種為對部分元素賦初值,即intnum[]={{1,2}{},{3,4},{5,6}},所以錯誤的為B。

10.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大?。孩诋敵踔档膫€數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

11.C當輸入字符串時,函數(shù)scanf用“空格”間隔不同的字符串,scanf函數(shù)不能輸入空格。getchar函數(shù)用于輸入字符,其調用形式為ch=getchar(),getehar函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶按<Enter>鍵時,讀入才開始執(zhí)行。gets函數(shù)的調用形式為getS(Str_adr),其中“str_adr”是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc函數(shù)的調用形式為ch=getc(Pf),其中“pf”是文件指針,函數(shù)的功能是從“pf”指定的文件中讀入一個字符,并把它作為函數(shù)值返回。故本題答案為C選項。

12.B在同一源文件中,函數(shù)名必須唯一,選項A正確。函數(shù)的調用有兩種形式:①出現(xiàn)在表達式中,可以出現(xiàn)在賦值號右邊的表達式中;②作為獨立的語句完成某種操作。因此選項B錯誤,選項D正確。不同函數(shù)中的形參可以同名,它們的作用域都限制在各自的函數(shù)體內,選項C正確。故本題答案為B選項。

13.A解析:從main函數(shù)入手,定義了指向字符串的指針數(shù)組,并賦予了初始值,調用fun()函數(shù),函數(shù)的功能是:比較數(shù)組中各個元素的長度,按元素長度從小到大排列數(shù)組元素,所以執(zhí)行fun(ss,5)函數(shù)后,*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"},所以調用printf函數(shù)輸出ss[0],ss[4]的值分別為xy,aaaacc。

14.B解析:當調用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是數(shù)組的首地址,函數(shù)中的形參可定義成以下三種形式:

①形參定義成數(shù)組;

②形參定義成可變長數(shù)組:

③形參定義為指針變量。

15.A

16.B

17.C

18.D

19.B解析:在main函數(shù)中定義了一個structabc類型的數(shù)組,同時分別利用{1,2,3}及{4,5,6}對數(shù)組中兩個元素進行初始化。在該結構體,依次對其中的a,b,c三個變量進行初始化。故s[0].a=1,s[1].b=5,所以本題輸出為6。

20.C

21.SOSO解析:考查用指針引用字符串數(shù)組中元素的方法。題中需要注意兩個問題:一是for循環(huán)的修正表達式共執(zhí)行兩次'i--'操作;二是*p[i]是對某個字符的引用。

22.正確性正確性解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,通過建立完整的信息描述、詳細的功能和行為描述、性能需求和設計約束的說明、合適的驗收標準,給出對目標軟件的各種需求。軟件需求規(guī)格說明書的特點:①正確性;②無歧義性;③完整性;④可驗證性;⑤一致性;⑥可理解性;⑦可追蹤性。其中最重要的是正確性。

23.本題主要考查函數(shù)的嵌套調用和數(shù)組名作為實參。實際程序運行結果應為aa[2]+aa[3]+aa[4]+aa[5]=18。\r\n\r\n

24.246

25.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標,需先預設1個臨時最大元素的下標,并順序逐一考查數(shù)組的元素,當發(fā)現(xiàn)當前元素比臨時最大元素更大時,就用當前元素的下標更新臨時最大元素下標。直至考查了數(shù)組的全部元素后,這臨時最大元素下標就是數(shù)組的最大元素下標。通常預設的最大元素下標是數(shù)組的首元素下標,考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標的變量是k,變量p控制順序考查的循環(huán)控制變量。當發(fā)現(xiàn)當前元素s[p]比臨時最大元素s[k)更大時,應該用p更新k。所以在空框處應填入代碼“k=p;”。

26.軟件開發(fā)軟件開發(fā)解析:軟件生命周期可以分為3個時期:軟件定義期,包括問題定義、可行性研究和需求分析3個階段;軟件開發(fā)期,包括系統(tǒng)設計、詳細設計、編碼和測試4個階段;軟件維護期,即運行維護階段。編碼和測試屬于軟件開發(fā)階段。

27.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。

“表達式1?表達式2:表達式3”的功能是:表達式1的值若非0,則計算表達式2的值,且表達式2的值為最終結果;若表達式1的值為0,則計算表達式3的值,且為最終結果。

本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。

28.16111611解析:題目中第1條要替換的語句i=f(1+1);展開后是i=((1+1)*M);繼續(xù)展開為i((1+1*8),結果使i=16。而第2條語句j=f2(1+1)”;展開后為j=(1+1*N);繼續(xù)展開為j=(1+1*10),結果使j=11。故程序運行的結果是輸出1611。

29.-1或-1.0*sn-1或-1.0\r\n*sn解析:由于在對S求和時,相鄰兩項的符號剛好相反,而在函數(shù)fun中沒有對數(shù)據(jù)進行取反的操作,故第—空的目的是對數(shù)據(jù)進行取反,以保證序列中相鄰兩項的符號不同。故第—個應填-1或-1.0。在執(zhí)行完循環(huán)體后,要將求和結果通過指針參數(shù)的形式傳遞紿調用fun的函數(shù),故第二空應填*sn。

30.3030解析:當i=0時,s=0+a[0][0]+a[0][2]=10;i=1時,s=10+a[1][1]+a[1][1]=18;i=2時,s=18+a[2][2]+a[2][0]=30。

31.3232解析:while(表達式)的功能是:首先計算表達式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值,若仍為真,則重復執(zhí)行循環(huán)體語句,直到表達式的值為假時,結束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結束。

32.軟件開發(fā)

33.a.next=aba.next=ab解析:選項A)中,指針變量q保存的就是變量b的地址,選項B)中的p是指針變量,應該是p->next=&b;在選項D)中,用*運算符取出結構體變量,并且保存的就是b的地址。

34.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。

35.t*10t*10解析:程序中變量,用于存放表達式1+12+123+1234+12345之和,變量t用于存放其表達式的各項。當i=1時,要使t=1;i=2時,t=12;i=3時,t=123;依此類推。每一次的t值是用上一次的t乘以10再加上此次的i的值,所以本題答案為t*10。

36.101091101091解析:for(表達式1;表達式2:表達式3)語句的功能是:首先計算表達式1的值,然后檢測表達式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達式3的值。然后再檢測表達式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán):第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

37.154321,5,4,3,2解析:第一次調用函數(shù)f后aa[0]=5、aa[4]=1;第二次調用函數(shù)f后aa[1]=4、aa[4]=2;第三次調用函數(shù)f后aa[3]=3。正確答案為1,5,4,3,2。

38.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

39.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結果是passwarn。

40.連接兩個字符數(shù)組中的字符連接兩個字符數(shù)組中的字符解析:strcat函數(shù)的作用是連接兩個字符數(shù)組中的字符串。

41.A解析:在C程序中,判斷邏輯值時,用非0表示“真”,用0表示“假”。計算邏輯表達式時,邏輯表達式的值為“真”是用1表示的,若邏輯表達式的值為“假”,則用0表示。

42.C解析:因為fun(intx)是一個遞歸函數(shù),所以主函數(shù)中fun(7)經(jīng)過三次遞歸調用,其過程可以描述為'fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2',所以最后的輸出結果為2。

43.C

44.C解析:C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第—個字符必須是字母或下劃線。大寫字母和小寫字母被認為是兩個不同的字符,用戶在定義標識符時應做到“見名知意”,且不允許使用關鍵字作標識符。

45.B解析:C語言規(guī)定,標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。A)中的void與C語言的關鍵字重名,不合法;C)中的case和C語言的關鍵字重名,不合法;D)中的2a是數(shù)字開頭,而且sizeof與C語言的關鍵字重名,不合法。

46.B解析:程序中的printf()函數(shù)的輸出格式部分只說明了一個%d,而輸出成員列表卻有兩個成員a和b,在這里將只輸出第一個成員a值為666,所以,4個選項中選項B符合題意。

47.D解析:本題考查的重點是位運算的操作。a的二進制為01,b的二進制為10,因此a-b結果為二進制數(shù)11,再與c(二進制為11)進行&操作,從而得二進制數(shù)11,故選項D是正確的。

48.BB.【解析】棧是一種特殊的線性表,其插入和刪除運算都只在線性表的一端進行,而另一端是封閉的。進行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元索是最后被插入的元素,也是最后被刪除的元素。棧是按先進后出的原則組織數(shù)據(jù)的。

【知識拓展】“?!钡男问饺缡謽尩膹椣?,最后壓入的子彈總是最先被彈出,而最先壓人的子彈最后才被彈出,也就是“先進后出”。

49.C解析:本題的fun()函數(shù)在x等于0或1時返回3,而在其余情況下返回x-fun(x-2),所以本題的遞歸算法可以這樣來表示:在主函數(shù)中輸出的結果是fun(7),而fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-(5-0)=7-5=2。故本題應該選擇C。

50.D解析:選項D)為兩條語句。

51.C解析:對于字符串指針,其保留的是整個串的首地址,即第一個字符的起始地址;當該指針做算術運算時,就是該指針根據(jù)其類型向后移動相應的存儲空間。

52.B解析:選項A錯在表示轉義字符的三位八進制數(shù)中不能出現(xiàn)8,選項C錯在字符串要用雙引號括起,選項D錯在單個字符應用單引號括起。選項B表示用兩位16進制數(shù)代表轉義字符。

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

54.B解析:在對程序進行測試時會發(fā)現(xiàn)錯誤,這就要進行程序調試(排錯)。程序調試活動由三部分組成:一是錯誤定位,根據(jù)錯誤的外部表現(xiàn)形式,確定程序中出錯的位置,找出錯誤的內在原因;二是對程序進行修改,排除這個錯誤;三是進行回歸測試,防止引進新的錯誤。所以程序調試的目的就是診斷和改正程序中的錯誤。軟件調試不能改善軟件的性能,也不能挖掘軟件的潛能。

55.C解析:A、D選項是關系運算表達式,在C語言中,只要關系運算符兩邊是合法的表達式就可以了。C選項中,%只能對整型進行運算,其中對f進行了強制類型轉換,但是轉換的表達式錯了,應為:(int)(f)。

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

57.C數(shù)據(jù)結構概念一般包括3個方面的內容,數(shù)據(jù)的邏輯結構、存儲結構(物理結構)及數(shù)據(jù)上的運算集合。數(shù)據(jù)的邏輯結構只抽象地反映數(shù)據(jù)元素之間的邏輯關系,即數(shù)據(jù)元素之間的前后件關系,而不管它在計算機中的存儲表示形式。

58.C解析:不論main函數(shù)在整個過程中的位置如何,一個C程序總是從main函數(shù)開始執(zhí)行的。

59.C解析:數(shù)據(jù)庫系統(tǒng)具有以下4個特點:數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、數(shù)據(jù)的獨立性、數(shù)據(jù)統(tǒng)一管理與控制。

60.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時,讀入才開始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc(\u3000)函數(shù)的調用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個字符,并把它作為函數(shù)值返回。

61.C本題主要考查指針數(shù)組。指針數(shù)組的特點是指針數(shù)組中的每一個元素都是一個指針。在本題中,定義了一個大小為2的字符型指針數(shù)組,并進行了初始化操作。下面分別分析四個選項對指針數(shù)據(jù)s的描述。

由于s中的兩個元素是兩個指針,可以指向字符串,也可以指向一維數(shù)組,因此說其是″abcd″和″ABCD″兩個字符串的首地址是正確的;同理,說其兩個元素分別指向字符型一維數(shù)組也是正確的。

由于指針數(shù)組s的兩個元素分別指向″abcd″和″ABCD″兩個字符串的首地址,那么它們的當前值是字符′a′和′A′的地址,而非一維字符數(shù)組中的元素值。

綜上所述,可以知道本題的答案是C。

62.B本題考查二維數(shù)組的相關操作。程序主要包括兩個部分:主函數(shù)部分和fun函數(shù)。主函數(shù)初始給出了一個4×4的二維矩陣,并對每一行賦初值,可以看出每一行都要有4個元素,而對于給出的初值個數(shù)不滿足4個的,要先從第一列開始將各個值賦給各列,不足的部分用0補齊。函數(shù)fun的作用是將二維矩陣a中行號與列號相同的數(shù)據(jù)賦值給一維矩陣y,y的下標與該數(shù)據(jù)在a中的行號相同。題目所要求解的即通過printf函數(shù)將矩陣y中的元素按照順序輸出。本題中二維矩陣a初始化后為{{1,2,3,0},{4,0,0,0},{5,6,7,8},{9,10,0,0}}。將行號與列號相同的元素賦給y,則y矩陣的數(shù)據(jù)為{1,0,7,0},輸出即可得到結果。

63.Dcontinue語句的作用是結束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。

64.D

65.B

66.B根據(jù)ASCII碼可知大寫字符A與小寫字符a的ASCIl碼相差32,而D中應該是加上'a',選項A和C左側的表達式都是大寫字符C與大寫字符A的差與'a'的ASCIl代碼的和就是小寫字符c的ASCII代碼。

67.C主程序讀取整個字符串存于s中,調用fun函數(shù)。字符指針c指向數(shù)組S。函數(shù)fun的功能是把指針C所指向的字符數(shù)組中的所有小寫字符轉換為大寫。囂cts函數(shù)可以把空格作為字符串的一部分輸入,以回車作為輸入結束。如果·c為小寫字符,則}C={C一32(轉大寫)。因此C選項正確。

68.A條件表達式:X

溫馨提示

  • 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

提交評論