版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年江蘇省蘇州市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.請選出正確的程序段
A.int*p;scanf("%d",p);…
B.int*s,k;*s=100;…
C.int*s,k;char*p,c;s=&k;p=&c;*p='a';…
D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;…
2.若有代數(shù)式“”(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達式是()。
A.sqrt(fabs(pow(n,x)+exp(x)))
B.sqrt(fabs(pow(n,x)+pow(x,e)))
C.sqrt(abs(nx+ex))
D.sqrt(fabs(pow(x,n)+exp(x)))
3.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序運行后的輸出結(jié)果是()。
A.3B.6C.8D.12
4.以下敘述錯誤的是()。
A.算術(shù)運算符中不包含“=”運算符
B.模運算符“%”是c語言基本的算術(shù)運算符
C.算術(shù)運算符中只有“*”、“/”優(yōu)先級高于關(guān)系運算符
D.自加和自減運算符只能用于變量,而不能用于常量或表達式
5.設(shè)ch是char型變量,值為'A',則表達式ch=(ch>='A'&&ch<='Z')?ch+32:ch的值是()。
A.ZB.aC.zD.A
6.
7.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的運行結(jié)果是()。
A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,
8.下列關(guān)于c語言用戶標識符的敘述中正確的是()。
A.用戶標識符中可以出現(xiàn)下劃線和中劃線(減號)
B.用戶標識符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線
C.用戶標識符中可以出現(xiàn)下劃線,但不可以放在用戶標識符的開頭
D.用戶標識符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在用戶標識符的開頭
9.軟件詳細設(shè)計產(chǎn)生的圖如圖所示。該圖是()。A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
10.
11.以下語句定義正確的是()A.A.inta[1][4]-{1,2,3,4,5};
B.floata[3][]={{1},{2},{3}};
C.longa[2][3]={{1},{1,2},{1,2,3},{0,0)};
D.doublea[][3]={O);
12.若有定義語句:“inta=3,b=2,c=1;”,以下選項中錯誤的賦值表達式是()。
A.a=(b=4)=3;B.a=b=c+1:C.a=(b=4)+C;D.a=1+(b=c一4);
13.下面C程序段中count++語句執(zhí)行的次數(shù)為()A.15B.16C.31D.32
14.為了隱藏在文本框中輸入的信息,用占位符代替顯示用戶輸入的字符,需要設(shè)置的屬性是()。
A.ValueB.ControlSoureeC.InputMaskD.PasswordChar
15.下列敘述中錯誤的是()。
A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值
B.在C語言中,在調(diào)用函數(shù)時,實參和對應(yīng)形參在類型上只需賦值兼容
C.在C語言中,外部變量的隱含類型是自動存儲類別
D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量
16.若定義下列結(jié)構(gòu)體,結(jié)構(gòu)體變量p的出生年份賦值正確的語句是()。structst{intx;inty;intz;}structworker{charname[20];charsex;structstbirth;}p;
A.x=1987B.birth.x=1987;C.p.birth.x=1987;D.p.x=1987;
17.若有以下定義和語句
chars1[10]="abcd!",*s2="\n123\\";
printf("%d%d\n",strlen(s1),strlen(s2));
則輸出結(jié)果是A.A.55B.105C.107D.58
18.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){chara=1,b=2;charc=a^b<<2;printf("\n%d",C);}
A.9B.10C.12D.2
19.對線性表進行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈式方式存儲,并按關(guān)鍵碼值排好序
D.線性表以鏈式方式存儲,并按關(guān)鍵碼的檢索頻率排好序
20.以下程序的輸出結(jié)果是_______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;print("%d%d%d,a[2],a[5],a[8]);}
A.258B.741C.852D.369
二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
22.以下程序運行后的輸出結(jié)果是【】。
main()
{chara[]="Language",b[]="Pragrame";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
23.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。
24.自動批處理文件名必須是【】。
25.以下程序的輸出結(jié)果是()。
#inciude<stdio.h>
main()
{chars[]="ABCabc";
s[5]='\0';
printf("%s\n",s);
}
26.軟件的【】設(shè)計又稱為總體結(jié)構(gòu)設(shè)計,其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。
27.以下程序的輸出結(jié)果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
28.C語言用于結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
29.\13'在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。
30.性表的多種存儲結(jié)構(gòu)中,最簡單的方法是【】。
31.性結(jié)構(gòu)中,隊列的操作順序是先進先出,而棧的操作順序是______。
32.診斷和改正程序中錯誤的工作通常稱為【】。
33.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystden(char*str)
{inti;
fo,(i=0;【】!='\0';i++);
return(i);
34.設(shè)有下列宏定義:
#defineA2
#defineB(A+3)
則執(zhí)行賦值語句“k=B*20;”(k為int型變量)后,k的值是______。
35.計算機病毒除有破壞性、潛伏性和激發(fā)性外,還有一個最明顯的特性是【】
36.結(jié)構(gòu)化設(shè)計主要分為系統(tǒng)設(shè)計和模塊設(shè)計,【】的任務(wù)是決定系統(tǒng)的模塊結(jié)構(gòu)。
37.在深度為7的滿二叉樹中,度為2的節(jié)點個數(shù)為()。
38.【】是數(shù)據(jù)庫設(shè)計的核心。
39.一名學(xué)生只能住一間宿舍,一間宿舍可住多名學(xué)生,則實體“宿舍”與實體“學(xué)生”的聯(lián)系屬于()的聯(lián)系。
40.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
三、1.選擇題(20題)41.棧和隊列的共同點是()。
A.都是先進后出B.都是先進先出C.只允許在端點處插入和刪除元素D.沒有共同點
42.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
B.算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量
C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的
D.算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)
43.下面能正確進行字符串賦值操作的是
A.chars[5]={"ABCDE"};
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;scanf("%s",s);
44.執(zhí)行以下程序后,x的值為()。unsignedintx=65535;printf("%d\n",x);
A.65535B.1C.有錯誤D.-1
45.在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是()。
A.整型表達式B.整型常量C.整型常量或整型表達式D.任何類型的表達式
46.若有結(jié)構(gòu)體定義:structstu{intnum;charsex;intage;}a1,a2;則下列語句中錯誤的是()。
A.printf("%d,%c,%d",a1);
B.a2.age=a1.age;
C.a1.age++;
D.a1.num=5;
47.以下程序的運行結(jié)果是#defineMAX(A,B)(A)>(B)?(A):(B)#definePRINT(Y)printf("Y=%d\t",Y)main(){inta=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);}
A.Y=3B.存在語法錯誤C.Y=7D.Y=0
48.下列常數(shù)中,不合法的C常量是()
A.-0x3b1B.123e+2.3C.'}'D.6e+7
49.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;}程序在執(zhí)行了c=&b;b=&a;語句后,表達式**c的值是______。
A.變量a的地址B.變量b中的地址C.變量a中的值D.變量b的地址
50.6-5/2+1.2+5%2的值是()。
A.4.3B.4.8C.3.3D.3.8
51.下面宏定義正確的是()
A.#defineSa*b
B.#definePI3.14;
C.#definemax(a,b)((a)>(b)?(a);(b))
D.#defines(x)(x)*(x);
52.以下程序的輸出結(jié)果是______。#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}
A.9B.6C.36D.18
53.設(shè)有如下程序:#include"stdio.h"main(){charc;intm=0,n=0;while((c=getchar())!='\n'){if(c>='A'&&c<='Z')m++;elseif(c>='a'&&c<='z')n++;}printf("m=%d,n=%d",m,n);}如果從鍵盤上輸入:AbCdefGHj<回車>,則程序運行后的輸出結(jié)果是()
A.m=5,n=4B.m=4,n=5C.m=9,n=0D.無確定值
54.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結(jié)果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則
55.運行下列程序時,若輸入數(shù)據(jù)為“321”,則輸出結(jié)果是()。main(){intnum,i,j,k,s;scanf("%d",&num);if(num>99)s=3;elseif(num>9)s=2;elses=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch(s){case3:printf("%d%d%d\n",k,j,i);break;case2:printf("%d%d\n",k,j);case1:printf("%d\n",k);}}
A.123B.1,2,3C.321D.3,2,1
56.下列程序中c的二進制值是()。chara=2,b=4,c;c=ab>>2:
A.11B.10100C.11100D.11000
57.有以下程序#include<stringh>main(intargc,char*argv[]){inti,len=0;fot(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}經(jīng)編譯連接后生成的可執(zhí)行文件是ex.exe,若運行時輸入以下帶參數(shù)的命令行exabcdefgh3k44執(zhí)行后輸出結(jié)果是
A.14B.12C.8D.6
58.若a=1,b=2,則a|b的值是______。
A.0B.1C.2D.3
59.x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是
A.INPUTx、v、z;
B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x,&y,&z);
60.以下程序的輸出結(jié)果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}
A.abe+ABC=DEFdef
B.abc+abe=defdef
C.abcaABCDEFdef
D.abcabcdefdef
四、選擇題(20題)61.
62.
63.有如下程序
main()
{
chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)
printf("%s\n",p);
}
該程序的輸出結(jié)果是
64.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1,0B.0,1C.0,0D.1,1
65.
66.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的運行結(jié)果是
A.A.331
B.41
C.2
D.1
67.
68.
設(shè)變量均已正確定義,
值10和20,為變量cl和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:口代表空格字符.()。
A.
B.
C.
D.
69.在結(jié)構(gòu)化方法中,軟件功能分別屬于下列軟件開發(fā)中的(
)階段。A.詳細設(shè)計B.需求分析C.總體設(shè)計D.編程調(diào)試
70.設(shè)有定義:char*C;以下選項中能夠使C正確指向一個字符串的是()。
A.charstr()=”string”;C=str;
B.scanf(”%s”,C.;
C.c=getchar();
D.*c=”strin9”;
71.C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為()。
A.3B.4C.1D.2
72.
73.(9)下列敘述中正確的是()
A.數(shù)據(jù)庫是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫設(shè)計是指設(shè)計數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫技術(shù)的根本目標是要解決數(shù)據(jù)共享的問題
D.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
74.結(jié)構(gòu)化程序設(shè)計所規(guī)定的三種基本控制結(jié)構(gòu)是()。
A.for、while、switchB.輸入、輸出、處理C.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)D.主程序、子程序、函數(shù)
75.程序調(diào)試的目的是
A.發(fā)現(xiàn)程序中的錯誤B.改正程序中的錯誤C.驗證程序的正確性D.改善軟件的性能
76.
77.有以下程序:
程序運行后的輸出結(jié)果是()。
A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,
78.以下程序運行后的輸出結(jié)果是()。
#include<stdio.h>
main()
{inti;
for(i=1;i<=5;i++)
switch(i%5)
{case0:printf("*");break;
case1:printf("#");break;
default:printf("\n");
case2:printf("&");
}
}
A.B.#&C.#&D.&
**
&**
79.有以下程序:
程序的運行結(jié)果是()。
A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC
80.
五、程序改錯題(1題)81.下列給定程序是建立一個帶頭結(jié)點的單向鏈表,并用隨機函數(shù)為各結(jié)點數(shù)據(jù)域賦值。函數(shù)proc()的作用是求出單向鏈表結(jié)點(不包括頭結(jié)點)數(shù)據(jù)域中的最大值,并且作為函數(shù)值返回。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編一個函數(shù)fun(ohlr*str),該函數(shù)的功能是把字符串中的內(nèi)容逆置。
例如,字符串中原有的字符串為asdf9,則調(diào)用該函數(shù)后,串中的內(nèi)容為9fdsa。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(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(chǎn));
fclose(out);
}
參考答案
1.C解析:本題的選項A)和B)犯了同樣的錯誤,即指針變量在定義后并沒有指向具體的變量。也就是說,指針變量中沒有確定的地址值,它的值是不可預(yù)見的,所指的單元也是不可預(yù)見的,因此不能進行賦值操作。另外,在選項D)中,s是int型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。
2.AB選項中函數(shù)“pow(x,e)”錯誤,應(yīng)該直接使用“exp(x)”函數(shù)。C選項中函數(shù)“abs(nx+ex)”錯誤,應(yīng)該使用fabs返回浮點數(shù)的絕對值。D選項中“pow(x,n)”參數(shù)順序錯誤。故本題答案為A選項。
3.Bfun函數(shù)的功能是獲取2個數(shù)的平均值,注意平均值是整型數(shù),小數(shù)會被截斷。調(diào)用函數(shù)“fun(2*4,fun(5,6))”相當(dāng)于調(diào)用函數(shù)“fun(8,5)”,平均值是6。故本題答案為B選項。
4.C
5.B
6.A
7.A本題由fun函數(shù)可知,執(zhí)行for循環(huán),當(dāng)i=0時,b[0]=a[0][0]-a[0][3]=1-4=-3;當(dāng)i=1時,b[1]=a[1][1]-a[1][2]=6-7=-1;當(dāng)i=2時,b[2]=a[2][2]-a[2][1]=11-10=1;當(dāng)i=3時,b[3]=a[3][3]-a[3][0]=16-13=3。主函數(shù)中輸出y數(shù)組元素的值為:-3,-1,1,3。故本題答案為A選項。
8.B解析:在C語言中,合法的標識符由字母,數(shù)字和下劃線組成(故選項A不正確),并且第一個字符必須為字母或者下劃線(故選項B和選項D不正確).所以,B選項為所選.
9.CN-S圖(也被稱為盒圖或CHAPIN圖)、PAD(問題分析圖)及PFD(程序流程圖)是詳細設(shè)計階段的常用工具。E—R圖即實體一聯(lián)系圖,是數(shù)據(jù)庫設(shè)計的常用工具。從題中圖可以看出該圖屬于程序流程圖。
10.C
11.D本題考查的是如何對二維數(shù)組進行賦值。選項A)中數(shù)組第二維的大小是4,但卻給賦了5個元素;選項B)中C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達式而不可以省略第二個方括號中的常量表達式:選項c)中數(shù)組第一維的大小是2,但是賦值卻超過了2;選項D)中在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。
12.A由等式的規(guī)則可知,A選項錯誤。先對括號的b進行等式運算,得出b=4,然后計算得出a=4=3,所以會導(dǎo)致錯誤。答案選擇A。
13.A
14.DD?!窘馕觥勘究虻腜asswordChar屬性用來指定文本框是顯示用戶輸入的字符還是顯示占位符,指定用做占位符的字符。
15.C解析:外部變量在編譯時由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動存儲類別。
16.C解析:本題主要考查怎樣為嵌套定義的結(jié)構(gòu)中的成員賦值:由于worker中的birth是一個st型的結(jié)構(gòu),在給birth賦值時,不能將birth作為一個整體,要用“.”運算再深入一層訪問到最基本的成員x、y、z。
17.A
18.A
19.A解析:對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
20.C解析:在本題運行時主要注意的是當(dāng)i=9時,a[i]=10-9=1:i=8時,a[i]=10-8=2;i=7時,a[i]=10-7=3;……依此類推,直到i=0時,a[i]=10-0=10:此時,i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分別為8,5,2。
21.30253025解析:本題考核的知識點是變量的存儲屬性和算術(shù)運算的應(yīng)用。本題涉及了自動變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個外部變量a,它是一個全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲空間在程序的整個運行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個一個靜態(tài)變量a,此靜態(tài)變量a是個靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動進行的,auto是自動變量的存儲類別標識符,如果省略auto,系統(tǒng)隱含認為此變量為auto,本題中main()中intc=20定義了一個自動變量c,此自動變量c是個靜態(tài)的局部變量.算術(shù)運算中a+=b++相當(dāng)于a=a+b,b=b+1.所以,在第一個ptine('%d',a)中a=a+b=10+20=30,第二個printf('%d',a)中a=a+c=5+20=25,即輸出3025。
22.gaegae解析:主函數(shù)中定義了字符數(shù)組a和b,其初值分別為Language和Programe,然后定義了兩個指針變量p1和p2,并讓它們指向a和b。通過分析可知下面的for循環(huán)中,每循環(huán)一次就將p1+k和p2+k所指向的字符進行比較,如果相等,輸出該字符,循環(huán)共執(zhí)行8次,顯然Language和Programe中只有字符gae相等,所以最后轄出為gae。
23.概念(或概念級)概念(或概念級)
24.AUTOEXEC.BAT
25.ABCabABCab解析:本題中字符數(shù)組的初值是“ABCabc”,s[5]='c',然后通過s[5]='\\0'重新給s[5]賦值,在C語言中'\\0'是字符串結(jié)束標志,執(zhí)行s[5]='\\0',其實是將s[5]的值去掉只保留前面的字符。
26.概要概要
27.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當(dāng)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。
28.順序結(jié)構(gòu)順序結(jié)構(gòu)解析:結(jié)構(gòu)化程序有3種摹本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)(包括if語句和switch語句)和循環(huán)結(jié)構(gòu)(包括for語句、while語句、do…while語句)。
29.22解析:'\\13':表示八進制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而”\\12”是個字符串,除了八進制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結(jié)束標志“'\\0'”,所以共有2個字節(jié)。
30.順序存儲順序存儲
31.先進后出先進后出解析:隊列和棧都是線性結(jié)構(gòu),但是不同之處在于隊列的操作順序是先進先出,而棧的操作順序是先進后出。
32.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。
33.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,用*(str+i)或str[i]來訪問字符串的第i個元素,判斷是否是結(jié)束標志,如果不是,i=i+1,繼續(xù)取下一個元素進行判斷,直到*(str+i)的值為'\\0'為止。
34.100100解析:本題考查帶參數(shù)的宏定義及相關(guān)運算。運算過程為:k=B*20=(A+3)*20=(2+3)*20=100。
35.傳染性或傳播性傳染性或傳播性
36.系統(tǒng)設(shè)計系統(tǒng)設(shè)計解析:結(jié)構(gòu)化設(shè)計主要分為系統(tǒng)設(shè)計和模塊設(shè)計。系統(tǒng)設(shè)計決定系統(tǒng)的模塊結(jié)構(gòu),模塊設(shè)計具體考慮每個模塊內(nèi)部的算法、模塊輸入、輸出及模塊功能。
37.6363解析:滿二叉樹的第k層上有2k-1個結(jié)點,度為k的滿二叉樹一共有2k-1個結(jié)點,由二叉樹的性質(zhì)可知:除去第k層上的結(jié)點,其他所有結(jié)點都是度為2的結(jié)點,所以度為2的結(jié)點數(shù)為2k-1-2k-1,即27-1-27-1=63。
38.數(shù)據(jù)模型數(shù)據(jù)模型
39.一對多一對多解析:在現(xiàn)實世界中事物間的關(guān)聯(lián)稱為聯(lián)系。在概念世界中聯(lián)系反映了實體集間的一定關(guān)系。兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,分別是一對一,一對多和多對多,依據(jù)題意,一名學(xué)生只能住一間宿舍,一間宿舍可住多名學(xué)生,所以實體“宿舍”與實體“學(xué)生”的聯(lián)系屬于一對多的聯(lián)系。
40.136136解析:程序中定義了一個遞歸調(diào)用函數(shù)fun。程序運行時,先把實參6傳給形參。if語句中6/2>0成立,執(zhí)行fun(x/2),即fun(3),同時輸出x的值6;再判斷if條件,3/2>0成立,再執(zhí)行fun(x/2),即fun(1),同時輸出x的值3;此時1/2>0不再成立,輸出1。而遞歸調(diào)用的輸出順序是相反的,故輸出結(jié)果為136。
41.C棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種“后進先出”的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種“先進先出”的線性表:本題答案為C)。
42.B解析:本題考查數(shù)據(jù)結(jié)構(gòu)中有關(guān)算法的基本知識和概念。數(shù)據(jù)的結(jié)構(gòu),直接影響算法的選擇和效率。而數(shù)據(jù)結(jié)構(gòu)包括兩方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)都影響算法的效率。選項A的說法是錯誤的。算法的時間復(fù)雜度是指算法在計算機內(nèi)執(zhí)行時所需時間的度量;與時間復(fù)雜度類似,空間復(fù)雜度是指算法在計算機內(nèi)執(zhí)行時所需存儲空間的度量。因此,選項B的說法是正確的。
數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為四類基本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲結(jié)構(gòu)在計算機中有兩種,即順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)。可見,邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)不是一一對應(yīng)的。因此,選項C的說法是錯誤的。
有時人們?yōu)榱颂岣咚惴ǖ臅r間復(fù)雜度,而以犧牲空間復(fù)雜度為代價。但是,這兩者之間沒有必然的聯(lián)系。因此,選項D的說法是錯誤的。
43.C解析:選項A)和B)定義的數(shù)組空間太小,至少應(yīng)該為6個字符的長度才可以。選項D)中的指針s未賦初值,所以指向—個不確定的地址,因而不能用scanf輸入數(shù)據(jù)到這一指針所指向的地址中。注意:通過賦初值的方式給一維字符數(shù)組賦字符串。
44.D解析:x變量定義為無符號整型。格式控制符d是輸出帶符號的十進制整數(shù),即輸出-1。65535在內(nèi)存中各位都為1,作為帶符號數(shù)輸出時最高位為1即數(shù)值為負。在內(nèi)存中數(shù)據(jù)都以其補碼形式保存,11111111變?yōu)樵a為10000001即-1。
45.C解析:在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型可以是整型常量,也可以是整型表達式。
46.A解析:題中a1和a2兩個結(jié)構(gòu)體變量名所對應(yīng)的成員相同,可以與運算“++’相結(jié)合。結(jié)構(gòu)體變量的輸出格式為:printf('要輸出變量名;%d\\t',結(jié)構(gòu)變量名.要輸出的成員變量名),
47.C解析:宏替換不像函數(shù)調(diào)用要進行參數(shù)值的計算、傳遞等,而只是簡單按照原格式進行字符串的替換。注意:宏定義的命令格式。
48.B
49.C解析:指針變量是用來存放地址的。&:取地址運算符。*:指針運算符。**c為指針變量*c所指向的存儲單元,*c為指針指針變量c所指向的存儲單元,而c=&b表示c為變量b的地址,b=&a表示b為變量a的地址。表邊式**c的值就是變量a中的值。
50.D
51.C
52.C解析:觀察程序段可知,對帶參數(shù)的宏的展開只是將語句中的宏名后面括號內(nèi)的實參字符串代替#define命令行中的形參。本題中c=f(a)/f(b)用#definef(x)x*x代替得c=f(6)/f(2),即c=6*6/2*2,結(jié)果為36。
53.B
54.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。
55.A解析:本題考查if-else語句和switch語句。scan函數(shù)通過鍵盤讀入nUm的值。因為num=321>99,所以s=3,i=3,i=2k=1。因為s=3,所以執(zhí)行case3,輸出k,j,i的值,然后通過breed結(jié)束程序。
56.A解析:本題主要考查按位異或和右移運算。b=4的二進制為00000100,b>>2后為00000001,a=2的二進制為00000010,兩者異或為00000011。
57.D解析:主函數(shù)的第一個參數(shù)argc為整型參數(shù),記下從命令行輸入的參數(shù)的個數(shù);第二個參數(shù)argv是一個字符型的指針數(shù)組,它的每一個元素指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為5,argv[0]指向字符串“ex”,argv[1]指向參數(shù)字符串“abed”,argv[2]指向字符串“efg”,argv[3]指向參數(shù)字符串“h3”,argv[4]指向參數(shù)字符串“k44”。在main()函數(shù)中,for循環(huán)執(zhí)行了2次,當(dāng)i=1時,len=0+strlen(argv[1]),而其中argv[1]=“abcd”,故此時len的值為4;當(dāng)i=3時,len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此時len的值為6;當(dāng)i=5時,退出循環(huán),故最后輸出的len的值為6。
58.D
59.B解析:scanf函數(shù)的一般格式是:
scanf(格式控制,地址表列)
該格式中,地址表列中應(yīng)是變量地址,而不是變量名。注意:調(diào)用putchar和getchar函輸出和輸入字符。
60.B解析:字符數(shù)組元素作函數(shù)參數(shù)是單向的值傳遞。函數(shù)cchar的功能是將大寫字母轉(zhuǎn)換為小寫字母。主函數(shù)中while循環(huán)語句的條件是判斷指針p當(dāng)前指向的字符是否為空,若不為空,則調(diào)用函數(shù)cchar,即主函數(shù)中通過循環(huán)語句將字符串'ABC+abc=defDEF'中的大寫字母全部轉(zhuǎn)換為小寫字母,因此printf的輸出結(jié)果為選項B。
61.A
62.D
63.D本題考查指向字符串指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值“BCD”并換行。依次執(zhí)行循環(huán)語句。
64.An=b>a,n=1,判斷到此,邏輯或為真.后面的J=a<b不再執(zhí)行。因此i=1,j=0。
65.C
66.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或為“假”時執(zhí)行指定的動作,由if引導(dǎo)條件為“真”時執(zhí)行的操作;由else引導(dǎo)條件為“假”時執(zhí)行的操作。else語句要與上面最近的if語句進行匹配,如果要嵌套調(diào)用if-else語句,需要將嵌套部分用{}括起來,避免程序報錯。題目中給出了一個if語句和一個if-else語句,if-else語句為第一個if語句的子語句。首先執(zhí)行外層if語句,執(zhí)行條件為x>y,由于x=1,y=2,故該條件為假,不執(zhí)行if的子語句,直接執(zhí)行語句printf("%d\\n",x++);,該語句先輸出x的值,然后進行x++操作。x的初始值為1,輸出結(jié)果為1。
67.A
68.D本題中,scanf函數(shù)的格式控制沒有空格,所以,對于選項A)、B)、c),輸入的第一個空格會作為字符賦值給變量cl,而不會被解釋成分隔符。
69.C總體設(shè)計過程通常由兩個主要階段組成:系統(tǒng)設(shè)計,確定系統(tǒng)的具體實現(xiàn)方案;結(jié)構(gòu)設(shè)計,確定軟件結(jié)構(gòu)。為確定軟件結(jié)構(gòu),首先需要從實現(xiàn)角度把復(fù)雜的功能進~步分解。分析員結(jié)合算法描述仔細分析數(shù)據(jù)流圖中的每個處理,如果一個處理的功能過分復(fù)雜,必須把它的功能適當(dāng)?shù)胤纸獬梢幌盗斜容^簡單的功能。
70.AA選項為正確用法,先將字符串存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行市場營銷總結(jié)
- 食品行業(yè)行政后勤工作總結(jié)
- 地產(chǎn)行業(yè)銷售員工作總結(jié)
- 2024年秋八年級上冊新目標英語全冊課文重難點講解
- 2024物業(yè)客服個人年終總結(jié)范文(35篇)
- 農(nóng)村小產(chǎn)權(quán)房購房合同(2篇)
- 《物權(quán)法草案》課件
- DB33T 2143-2018 森林撫育目標樹選擇和密度控制技術(shù)規(guī)程
- 2025正規(guī)委托合同范文
- 2024年度四川省公共營養(yǎng)師之三級營養(yǎng)師通關(guān)題庫(附帶答案)
- 職業(yè)安全健康現(xiàn)場檢查記錄表參考范本
- 口袋妖怪白金二周目圖文攻略(精編版)
- 安全風(fēng)險研判與承諾公告制度管理辦法(最新)
- 體育與健康課一年級(水平一)課時教案全冊
- SAP-ABAP-實用培訓(xùn)教程
- 配電房施工組織設(shè)計方案(土建部分)
- 國家開放大學(xué)電大??啤队⒄Z教學(xué)法》2023-2024期末試題及答案(試卷代號:2145)
- 年產(chǎn)30萬噸合成氨脫碳工段工藝設(shè)計
- 管樁水平承載力計算
- 塑膠產(chǎn)品成型周期公式及計算
- 事業(yè)單位領(lǐng)導(dǎo)班子考核測評表
評論
0/150
提交評論