版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年遼寧省阜新市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下面合法的C語言字符常量是()。
A.'\t'B."A"C.65D.A
2.設有定義“inta;floatb;”,執(zhí)行“scanf(“%2d%f”,&a,&b);”語句時,若從鍵盤輸入876543.0并按<Enter>鍵,則a和b的值分別是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
3.設有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
4.下列條件語句中,輸出結果與其他語句不同的是()。
A.if(a!=0)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)printf(“%d\n”,x);elseprintf(“%d\n”,y);
5.下列關于棧的敘述中,正確的是()。
A.棧底元素一定是最后入棧的元素B.棧操作遵循先進后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對
6.設有二維數組A7×8,每個數據元素占8個字節(jié)存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,數組A的最后一個元素A6,7的存儲地址為()。
A.1024B.1440C.1448D.1432
7.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達式是
A.kk>=′A′&&kk<=′Z′
B.!(kk>=′A′||kk<=′Z′)
C.(kk+32)>=′a′&&(kk+32)<=′Z′
D.isalpha(kk)&&(kk<91)
8.
9.下列關于數據庫設計的敘述中,正確的是()。
A.在需求分析階段建立數據字典
B.在概念設計階段建立數據字典
C.在邏輯設計階段建立數據字典
D.在物理設計階段建立數據字典
10.下面判斷正確的是
A.char*a="china";等價于char*a;*a="china";
B.charstr[5]={"china"};等價于charstr[]={"china"};
C.char*s="china";等價于char*s;s="china";
D.charc[4]="abc",d[4]="abc";等價于charc[4]=d[4]="abc";
11.下面程序的時間復雜為()A.O(n)B.O(n^2)C.O(n^3)D.O(n^4)
12.
13.棧和隊列的共同點是()。
A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同特點
14.數據結構通常研究數據的()及運算。
A.物理結構和邏輯結構B.存儲和抽象C.理想和抽象D.理想與邏輯
15.設變量a是整型,f是實型,i是雙精度型,則表達式10+'a'+i*f值的數據類型為()。
A.intB.floatC.doubleD.不確定
16.以下選項中不屬于字符常量的是
A.′C′B.′′C′′C.′\xCC′D.′\072′
17.以下語句中存在語法錯誤的是()。A.charss[6][20];s[1]="right?";
B.charss0[20]={"right?"};.
C.char*ss[6];s[1]="right?";
D.char*ss[={"rignt?"};
18.設有定義:intx[2][3];,則以下關于二維數組X的敘述錯誤的是()。
A.x[0]可看做是由3個整型元素組成的一維數組
B.x[0]和x[l]是數組名,分別代表不同的地址常量
C.數組X包含6個元素
D.可以用語句x[o]=0;為數組所有元素賦初值0
19.將E-R圖轉換到關系模式時,實體與聯系都可以表示成________。
A.屬性B.關系C.鍵D.域
20.在黑盒測試方法中,設計測試用例的主要根據是A.程序外部功能B.程序內部邏輯C.程序數據結構D.程序流程圖
二、2.填空題(20題)21.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結果為______。
22.下列程序的輸出結果是【】。
voidfun(int*n)
{while((*n))
printf("%d",(*n)--);
}
main()
{inta=10;
fun(&a);
}
23.以下程序運行后的輸出結果是______。
#include<string.h>
main()
{charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
}
24.以下程序的輸出是【】。
main()
{
charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
25.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現錯誤的位置并改正錯誤。
26.______是數據庫應用的核心。
27.下面程序的運行結果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;
sub(s,7,SIZE-1);
for(i=0;i<SIZE;i++)printf("%c",s[i]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t1)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
28.以下程序運行后的輸出結果是【】。
intf(inta[],intn)
{
if(n>=1)
returnf(a,n-1)+a[n-1];
else
return0;
}
main()
{
intaa[5]={1,2,3,4,5},s;
s=f(aa,5);
printf("%d\n",s);
}
29.下列程序的功能是對輸入的一行字符中的數字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
30.下列程序的運行結果是______。
#include<stdio.h>
func(a,b)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=5,m=3,p;
p=func(k,m);
printf("%d",p);
p=func(k,m);
printf("%d、n",p);
}
31.關系可以有3種類型,即基本關系(又稱基本表或基表)、查詢表和【】。
32.算法的基本特征是可行性、確定性、【】和擁有足夠的情報。
33.在數據庫中用數據模型這個工具來抽象、表示和處理現實世界中的數據和信息。常見的數據模型有3種,它們分別是層次模型、網狀模型和()。
34.以下程序運行后的輸出結果是【】。
#defineS(x)4*x*x+1
mah()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
35.對存儲器按字節(jié)進行編址,若某存儲器芯片共有8根地址線,則該存儲器芯片的存儲容量為【】字節(jié)。
36.診斷和改正程序中錯誤的工作通常稱為【】。
37.以下說明語句中,【】是結構體類型名。
typedefstruct
{intn;
charch[8];
}PER;
38.設有下列程序:
#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>代表回車符):DEF<CR>BADEF<CR>QTHRG<CR>,則程
序的輸出結果是______。
39.在數據的存儲結構中,不僅需要存儲各數據元素的信息,還要存放各元素之間______的信息。
40.數據獨立性分為邏輯獨立性與物理獨立性。當數據的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為【】。
三、1.選擇題(20題)41.下列選項中屬于C語言構造類型的是()
A.指針類型B.空類型C.枚舉類型D.數組類型
42.下列是用戶自定義標識符的是
A._w1B.3_xyC.intD.LINE-3
43.以下能正確定義字符串的語句是()。
A.charstr[]={'\064'};
B.charstr="kx43";
C.charstr=";
D.charstr[]="\0";
44.下面程序的輸出結果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}
A.3B.4C.1D.2
45.下列敘述中,不屬于結構化分析方法的是()。A.A.面向數據流的結構化分析方法
B.面向數據結構的Jackson方法
C.面向數據結構的結構化數據系統開發(fā)方法
D.面向對象的分析方法
46.請選出以下程序的輸出結果
#include<stdio.h>
main()
{inta[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{sub(a,x);printf("%d",x);}
printf("\n");}
sub(s,y)
int*s,y;
{staticintt=3;
y=s[t];t--;}
A.1234B.4321C.0000D.4444
47.下列敘述中,不屬于設計準則的是()。
A.提高模塊獨立性B.使模塊的作用域在該模塊的控制域中C.設計成多入口、多出口模塊D.設計功能可預測的模塊
48.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf(“%d,%d\n”,m,i);}執(zhí)行后的輸出結果是
A.8,6B.8,3C.6,4D.7,4
49.以下程序運行后的輸出結果是______。main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}
A.1000B.10010C.110D.10100
50.以下程序運行后,輸出結果為______。main(){inta[2][3]={1,3,5,7,9,11),*s[2],**pp,*p;s[0]=a[0],s[1]=a[1];pp=s;p=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}
A.1B.7C.9D.11
51.下列選項中,不屬于數據庫管理的是()
A.數據庫的建立B.數據庫的調整C.數據庫的監(jiān)控D.數據庫的校對
52.設x,y和z都是血型變量,且x=3,y=4,z=5,則下面表達式中,值為0的表達式是
A.x&&y
B.x<=y
C.x‖++y&&y-z
D.!(x<y&&!z‖1)
53.下列程序的輸出結果是()。#include<stdio.h>intfun(intx){intp;if(x==0‖x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}
A.5B.3C.7D.1
54.關于結構化程序設計原則和方法描述錯誤的是()。
A.選用的結構只準許有一個入口和一個出口
B.復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現
C.不允許使用GOTO語句
D.語言中所沒有的控制結構,應該采用前后一致的方法來模擬
55.有定義語句:intb;charc[10];則正確的輸入語句是()。
A.seanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.seanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
56.設x=011050,則x=x&01252的值是()。
A.1000101000
B.1111110100011000
C.1011100010
D.1100000000101000
57.軟件調試的目的是______。
A.發(fā)現錯誤B.改正錯誤C.改善軟件的性能D.挖掘軟件的潛能
58.以下敘述中正確的是______。
A.C語言比其他語言高級
B.C語言可以不用編譯就能被計算機識別執(zhí)行
C.C語言以接近英語國家的自然語言和數學語言作為語言的表達形式
D.C語言出現的最晚,具有其他語言的一切優(yōu)點
59.有如下程序段:inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為()。
A.tureB.假C.0D.1
60.以下程序的輸出結果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'\0';printf("%d\n",s);}
A.69825B.59713C.6385D.693825
四、選擇題(20題)61.下列函數的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
62.
63.有以下程序:
程序運行后的輸出結果是()
A.32B.12C.21D.22
64.
下列程序的運行結果為()。
#include<stdio.h>
main
{structdate
{intyear,month,day;
}today;
printf("%d\n",sizeof(structdate));
}
A.8B.6C.10D.12
65.設x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
66.下列條件語句中,輸出結果與其他語句不同的是()
67.設有二元關系R和三元關系s,下列運算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
68.
69.
70.第
11
題
若有定義:char*st="howareyou";下列程序段中正確的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
71.下面描述中,不屬于軟件危機表現的是()。
A.軟件過程不規(guī)范B.軟件質量難以控制C.軟件開發(fā)生產率低D.軟件成本不斷提高
72.軟件設計中劃分模塊的一個準則是()。A.低內聚低耦合B.高內聚低耦合C.低內聚高耦合D.高內聚高耦合
73.下面不屬于需求分析階段任務的是()。
A.確定軟件系統的功能需求B.確定軟件系統的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審
74.有如下程序:
該程序的輸出結果是()。
A.0.000000B.0.250000C.0.500000D.1.000000
75.
76.
77.若有語句:Char*line[5];,以下敘述中正確的是()。
A.定義line是一個數組,每個數組元素是一個基類型為Char的指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數組
C.定義line是一個指針數組,語句中的*號稱為間址運算符
D.定義line是一個指向字符型函數的指針
78.下述程序的運行結果是()。#includedstdio.h>#includedstrin9.h>main{char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}A.正數B.負數C.零D.不確定的值
79.下面的變量說明中__________是正確的。
A.char:a,b,c;
B.chara;b;c;
C.chara,b,c;
D.chara,b,c
80.
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:從3個紅球,5個白球,6個黑球中任意取出8個作為一組,進行輸出。在每組中,可以沒有黑球,但必須要有紅球和白球。組合數作為函數值返回。正確的組合數應該是l5。程序中i的值代表紅球數,j的值代表白球數,k的值代表黑球數。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.請編寫一個函數,用來刪除字符串中的所有*。例如,輸入abc*de*f*gh,則輸出為abcdefgh。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.A
2.Ascanf函數中,在格式字符前加入一個整數可以指定輸入數據所占的寬度,所以賦值時會將87賦給變量a,把6.0賦給float型變量b。故本題答案為A選項。
3.D解析:本題考核的知識點是指針變量定義和賦值語句的基本應用。在使用一個指針變量之前,先要用聲明語句對其進行定義,在定義了一個指針變量之后,系統就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關指針的運算符:&運算符,為取地址運算符,*運算符是指針運算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項A中將常量1賦給指針p不正確;選項B也是將常量2賦給*p,故選項B不正確;選項C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項中選項D符合題意。
4.CA、B、D選項的含義均為:a的值如果為0,輸出y的值,否則輸出x的值。而C選項的含義是:a的值為0時輸出x的值,不為0時輸出y的值,與其他選項正好相反。故本題答案為C選項。
5.B棧是先進后出,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。
6.B
7.B解析:C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在'A'和'Z'之間就可以了,選項A)和C)符合要求。函數isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65到90,所以如果一個字母的ASCII碼小于91,那么就能確定它是大寫字母。
8.A
9.A數據字典是在需求分析階段建立,在數據庫設計過程中不斷修改、充實和完善的。故答案為A選項。
10.C解析:選項A)char*a;*a=“china”應改為a=china;,選項B)應該是charstr[6];D)項表述方法有錯誤。
11.B
12.D
13.C解析:棧和隊列都是操作受限制的線性表,只允許在端點插入和刪除。不同點是:棧只允許在表的一端進行插入和刪除操作,而隊列允許在表的一端進行插入操作,而在另一端進行刪除操作。
14.A
15.C
16.B解析:在C語言程序中,用單引號把一個字符或反斜線后跟一個特定的字符括起來表示一個字符常量。選項A)、C)和D)為正確的字符常量,而選項B)是用雙引號括起來的字符,表示一個字符串常量。
17.A[解析]數組定義后,不可以對數組整體賦值,s是二維數組,因ss[1]是一維字符數組,即字符串,字符串賦值可以使用strcpy[1],"right);這樣的形式,而選項A)中對二維數組中的第“1維(相當于一個一維數組)賦值,是不可以的。選項B)和D)是定義時對數組初始化,這是可以的。選項C)中,將字符串在內存中的首地址賦給指針數組的一個元素,這是可以的。
18.Dx[0]是不能賦值的。
19.B解析:關系數據庫邏輯設計的主要工作是將\ue008E-R\ue009圖轉換成指定RDBMS中的關系模式。首先,從E-R圖到關系模式的轉換是比較直接的,實體與聯系都可以表示成關系,E-R圖中屬性也可以轉換成關系的屬性,實體集也可以轉換成關系。
20.A【答案】:A
【知識點】:黑盒測試
【解析】:黑盒測試也稱功能測試或數據驅動測試,它完全不考慮程序內部的邏輯結構和內部特征,只著眼于程序的外部結構,主要用來檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。故選A。
21.44解析:strcpy(s1,s2)函數的作用是將字符串s2中的內容拷貝到字符串s1中的內容覆蓋。strlen()函數是求字符串的長度。本題實際上是要求s2字符串的長度,即是4。
22.1.09877e+010
23.abcbcc
24.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷貝函數,作用是將字符串s1拷貝到字符數組strl中去。strlen(str):測試字符串str的長度,函數的值為字符串中實際長度,不包括\'\\0\'在內。本題中strlen(str1)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe
25.調試調試
26.數據庫設計數據庫設計
27.abcdefglkjihabcdefglkjih解析:本題主要考查了字符變量可參與的運算。因為字符在計算機中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術運算等,某字符的大寫字母的ASCII碼值比它對應的小寫字母ASCII碼值小32。
28.1515解析:在函數f()中只有一條if語句,如果n不小于1,則返回f(a,n-1)+a[n-1];否則返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3],……直到f(aa,0)返回0。故f(aa,5)實際返回值是0+aa[1]+aa[2]+aa[3]+aa[4]+aa[5],所以本題最終輸出15。
29.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運用函數c=getchar()從標準輸入設備讀取下一個字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。
30.11231123解析:在主函數中第一次調用func子函數時,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因為在子函數中將m和i定義成了static類型,所以在子函數中對m和i進行的改變在下一次調用子函數時能進行保存,所以第二次調用子函數時,m=11,i=3,則i=i+m+1=15,m=i+a+b=15+5+3=23。
31.視圖表視圖表解析:關系數據庫中通常有3種關系,即基本關系(又稱基本表或基表)、查詢表和視圖表。基本表是在機器中實際存儲數據的表。查詢表是查詢的結果所對應的臨時表。視圖表是由基本表或其他視圖表導出的表,是不實際存儲數據的表。視圖表是一個虛表。
32.有窮性有窮性解析:算法有四個基本特征:可行性、確定性、有窮性和擁有足夠的情報。
33.關系模型關系模型解析:在數據庫中用數據模型這個工具來抽象、表示和處理現實世界中的數據和信息。通俗地講,數據模型就是現實世界的反映,它分為兩個階段:把現實世界中的客觀對象抽象為概念模型;把概念模型轉換為某一DBMS支持的數據模型。常見的數據模型有3種,它們分別是層次模型、網狀模型和關系模型。
34.8181解析:本題的宏調用S(i+j)將被替換成表達式4*i+j*i+j+l等于4*6+8*6+8+1=24+48+8+1=81。所以本題輸出81。
35.256256解析:本題考查對存儲器按字節(jié)進行編址的規(guī)則及其尋址范圍(2n),其中n為存儲器芯片中地址線的條數。
36.程序調試程序調試解析:程序調試的任務是診斷和改正程序中的錯誤。程序調試與軟件測試不同,軟件測試是盡可能多地發(fā)現軟件中的錯誤。先要發(fā)現軟件的錯誤,然后借助于調試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調試主要在開發(fā)階段。
37.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。
38.QTHRGQTHRG解析:函數strcmp(t,s)用來比較t和s所指字符串的大小,若t>s,則函數值大于0;若t=s,則函數值等于0:若t<s,則函數值小于0。函數strcpy(t,s)的功能是,把字符數組s所指字符串的內容復制到字符數組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í)行下列的語句,將字符數組s所指字符串的內容復制到字符數組t所指存儲空間中,然后輸出字符數組t。
39.前后件關系前后件關系解析:在數據存儲結構中,除了要存儲數據,還要存儲數據的前后件關系,對于順序存儲的數據結構,前后件之間的關系,是通過存儲空間的位置來實現的,而對于鏈式存儲來說,數據元素之間的前后件關系是通過指針來實現的。
40.物理獨立性物理獨立性解析:數據獨立性分為邏輯獨立性與物理獨立性。當數據的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為物理獨立性。
41.D解析:構造類型數據是由基本類型數據按一定規(guī)則組成的。C語言中的構造類型數據只有3種,它們是數組類型、結構體類型和共用體類型。故應該選擇D。
42.A本題主要考查標識符的定義。對標識符的定義是考試中??嫉膬热葜?。標識符主要由數字、下畫線和字母組成,其中數字不能放在首位,另外,用戶自定義標識符時,不能將標識符定義為C語言中已定義的關鍵字,如int、while等。
根據上面對標識符的分析,我們不難看出本題的正確答案是A。在選項B中,3_xy以數字開頭,不符合標識符定義的規(guī)定;在選項C中,int是C語言系統中已經定義了的關鍵字;在選項D中,LINE-3使用的數字、下畫線和字母以外的字符,因此不正確。
43.D解析:字符串必須以‘\\0’為結束符。
44.A解析:在C語言中,數組元素是從0開始的。指針變量p指向數組的首地址,(p+2)就會指向數組中的第3個元素。題目中要求輸出的是元素的值。
45.D解析:常見的需求分析方法有結構化分析方法和面向對象的分析方法兩類。其中結構化分析方法又包括面向數據流的結構化分析方法(SA-Structuredanalysis),面向數據結構的Jackson方法(JSD-Jacksonsystemdevelopmentmethod)和面向數據結構的結構化數據系統開發(fā)方法(DSSD-Datastructuredsystemdevelopmentmethod)。
46.C解析:考查通過指針來引用一維數組元素的方法。若指針s指向數組a,則s[t]可以引用數組a中下標為t的元素。
47.Cc)【解析】大量軟件設計表明,以下的設計準則是可以借鑒為設計的指導和對軟件結構圖進行優(yōu)化,這些準則是:提高模塊獨立性;模塊規(guī)模適中;深度、寬度、扇出和扇入適當:使模塊的作用域在該模塊的控制域中;應減少模塊的接口和界面的復雜性;設計成單入口、單出口的模塊;設計功能可預測的模塊。
48.C解析:在復合賦值語句中,應該由右向左依次賦值,在表達式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6。
49.B
50.C解析:s是一個含有兩個元素的指針數組,pp是一個指向指針變量的指針,s[0]是指向二維數組a行下標為0的元素的首地址,即a[0][0]的地址,s[1]為a[1][0]的地址。pp的值為s[0]的地址。**pp=s[1][1]后,a[0][0]的值將被賦值為a[1][1]的值,執(zhí)行p=*pp;后,p中將是s[0]的值,最后的輸出語句將輸出地址s[0]所指向的數據,即a[0][0]。
51.DD)【解析】數據庫管理一般包括:數據庫的建立、數據庫的調整、數據庫的重組、數據庫的安全性控制與完整性控制、數據庫的故障恢復和數據庫的監(jiān)控。
52.D解析:該題考查邏輯與“&&”和邏輯或“‖”以及邏輯非“!”符號的用法。選項A)即3&&4為真;選項B)即3<=4為真;選項C)是一個邏輯或與邏輯與的混合運算,只要執(zhí)行了邏輯或左半部分,程序將直接停止執(zhí)行邏輯或右半部分程序,因為x的值為真;此時選項C)變?yōu)?&&-1為真。選項D)不用計算,括號內邏輯或右邊的值為1,因而括號內的值為1,再進行邏輯非運算得0。
53.A解析:本題考查函數的遞歸調用。在函數遞歸調用時,fun(5):a=5-fun(3)->fun3=a=3-fun(1)->fun(1):a-3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,最后的計算結果為5。
54.C解析:限制使用GOTO語句是結構化程序設計的原則和方法之一,但不是絕對不允許使用GOTO語句。其他3項為結構化程序設計的原則。
55.B解析:scanf函數中格式控制后面是地址表列,不能用變量名。數組名c代表數組在內存的首地址,&b代表變量b的首地址,選項B)正確。
56.A解析:本題主要考查按位與運算,x=011050的二進制形式為000100100010t000,01252的二進制形式為0000001010101010,兩者相與得0000001000101000。
57.B解析:在對程序進行測試時會發(fā)現錯誤,這就要進行程序調試(排錯)。程序調試活動由三部分組成:一是錯誤定位,根據錯誤的外部表現形式,確定程序中出錯的位置,找出錯誤的內在原因;二是對程序進行修改,排除這個錯誤;三是進行回歸測試,防止引進新的錯誤。所以程序調試的目的就是診斷和改正程序中的錯誤。軟件調試不能改善軟件的性能,也不能挖掘軟件的潛能。
58.C解析:計算機語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計算機識別的二進制數才能執(zhí)行,選項B錯誤;C語言出現在1972年到1973年間,并不是出現最晚的語言,所以選項D也是錯誤的。
59.D解析:本題考查邏輯與運算符的用法,在表達式x=(a&&b)&&(c<'B')中,先判斷a&&b,邏輯與條件的兩邊都為真,而c<'B'是成立的,所以該表達式的值為1。
60.C解析:p是指向字符的指針數組。執(zhí)行第1個循環(huán)后,p[0]指向字符數組ch的第1行'6937',p[1]指向字符數組ch的第2行'8254',那么p[0][0]其實就對應著ch[0][0],表示第1行的第1個元素“6”。第2個循環(huán)中,外層i循環(huán)是控制指針數組p的,內層j循環(huán)則是對每一行內的各個元素進行處理,特別注意循環(huán)變量j的改變'j+=2'。這樣就可以看出是對ch[0][0]、ch[0][2]、ch[1][0]和ch[1][2]進行處理。
61.A本題考查函數值的類型。在函數調用時,盡管Y的類型是float.x的類型是double,但是因為函數定義時沒有指定類型說明,系統默認函數值的類型為int型,所以計算后Y的類型是int型。
62.A
63.Cc語言中函數參數傳遞滿足”單向傳遞”,只由實參傳給形參,而不能由形參傳給實參。Fun函數體內輸出P的值為2,而并沒有影響到fun函數外a的值,a的值在main函數體內依然為1,所以選項c)正確。
64.B
\nstructdate中包含year、month、day這3個整型變量,一個整型變量占2個字節(jié);sizeof是求所占字節(jié)數的運算符。
\n
65.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。
66.A若a為0,A)選項輸出x,其他輸出y,所以選擇A)。
67.D本題給出的兩個關系R與S的表結構是不同的(R是二元關系,S是三元關系),它們不能進行∩、∪、一運算。而兩個不同結構的關系是可以進行笛卡兒積(×)運算的。
68.B
69.D
70.A本題綜合考查字符數組的賦值和strcpy函數的用法。C語言不允許用賦值表達式對字符數組賦值,如下面的語句就是非法的:str1='China',如果想把“China”這5個字符放到數組str1中,除了逐個輸入外,還能使用strcpy函數,該函數的功能是將一個字符串復制到一字符數組中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給str1):str1=str2;不能用賦值語句將一個字符串常量或字符數組直接給一個字符數組。
strcpy函數的結構是:strcpy(字符數組1,字符串2)
其中,需要注意的是,字符數組1的長度不應小于字符串2的長度,“字符數組1”必須寫成數組名形式,如(str1),“字符串2”可以是字符數組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數組直接給一個字符數組。
71.A\n軟件危機是計算機軟件在它的開發(fā)和維護過程中所遇到的一系列嚴重問題。主要表現在以下六個方面:軟件需求的增長得不到滿足;軟件開發(fā)成本和進度無法控制;軟件質量難以保證;軟件可維護性差;軟件的成本不斷提高;軟件開發(fā)生產率的提高趕不上硬件的發(fā)展和應用需求的增長。
\n
72.B一般較優(yōu)秀的軟件設計,應盡量做到高內聚、低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。
73.C【答案】:C
【知識點】:需求分析階段的任務
【解析】:需求分析階段的任務是深入描述軟件的功能和性能,確定軟件設計的約束和軟件同其他系統元素的接口細節(jié),定義軟件的其他有效性需求,借助于當前系統的邏輯模型導出目標系統邏輯模型,解決目標系統“做什么”的問題??煞譃樾枨筇岢?、需求描述及需求評審三個階段。從此可以看出需求分析的任務不包括制定軟件集成測試計劃,故選C。
74.D本題考查if語句的嵌套。if語句中的一
種表達方式,即:if…elseif…。
該表達式的語句是:
if(表達式1)
語句l
elseif(表達式2)
語句2
elseif(表達式3)
語句3
else
語句4
本題執(zhí)行elsey=1.0,并且以”%f”輸出。
75.A
76.B
77.A解析:理解復雜定義要掌握兩點:一、右結合原則.本題中的定義char*line[5];等價于char*(line[5]);;二、自外向內分解成typedef語句。char*(line[5]);等價于typedefchar*A;Aline[5];其中A被typedef定義成字符指針的別名,然后line被定義成A的一維數組,即字符指針的一維數組。再來看看行指針的定義char(*line)[5];它應該被分解成typedefcharB[5];B*line;其中B被定義成包含5個元素的一維字符數組,然后line被定義成指向B的指針,即指向包含5個元素的一維字符數組的指針。所以兩者切不可混淆了,后者的括號不能省略。故本題應該選擇A。
78.A本題考查符符串比較函數和兩個字符串比較的原則這兩個知識點。
(1)兩字符串比較的原則是依次比較兩個字符串同一位置的一對字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大(2)strcmp(s1,s2)的返回值,當str1<str2時,返回值為負數;當str1=str2時,返回0;當str1>str2,返回值為正數。
79.B
80.C
81.
82.
【解析】根據題目中要求刪除字符串中所有的*號,需要檢查字符串中的每一個字符,將不是*號的字符放入原來的字符串中,形成新的字符串,最后在新的字符串的末尾加上結束符。
2021年遼寧省阜新市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下面合法的C語言字符常量是()。
A.'\t'B."A"C.65D.A
2.設有定義“inta;floatb;”,執(zhí)行“scanf(“%2d%f”,&a,&b);”語句時,若從鍵盤輸入876543.0并按<Enter>鍵,則a和b的值分別是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
3.設有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
4.下列條件語句中,輸出結果與其他語句不同的是()。
A.if(a!=0)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)printf(“%d\n”,x);elseprintf(“%d\n”,y);
5.下列關于棧的敘述中,正確的是()。
A.棧底元素一定是最后入棧的元素B.棧操作遵循先進后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對
6.設有二維數組A7×8,每個數據元素占8個字節(jié)存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,數組A的最后一個元素A6,7的存儲地址為()。
A.1024B.1440C.1448D.1432
7.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達式是
A.kk>=′A′&&kk<=′Z′
B.!(kk>=′A′||kk<=′Z′)
C.(kk+32)>=′a′&&(kk+32)<=′Z′
D.isalpha(kk)&&(kk<91)
8.
9.下列關于數據庫設計的敘述中,正確的是()。
A.在需求分析階段建立數據字典
B.在概念設計階段建立數據字典
C.在邏輯設計階段建立數據字典
D.在物理設計階段建立數據字典
10.下面判斷正確的是
A.char*a="china";等價于char*a;*a="china";
B.charstr[5]={"china"};等價于charstr[]={"china"};
C.char*s="china";等價于char*s;s="china";
D.charc[4]="abc",d[4]="abc";等價于charc[4]=d[4]="abc";
11.下面程序的時間復雜為()A.O(n)B.O(n^2)C.O(n^3)D.O(n^4)
12.
13.棧和隊列的共同點是()。
A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同特點
14.數據結構通常研究數據的()及運算。
A.物理結構和邏輯結構B.存儲和抽象C.理想和抽象D.理想與邏輯
15.設變量a是整型,f是實型,i是雙精度型,則表達式10+'a'+i*f值的數據類型為()。
A.intB.floatC.doubleD.不確定
16.以下選項中不屬于字符常量的是
A.′C′B.′′C′′C.′\xCC′D.′\072′
17.以下語句中存在語法錯誤的是()。A.charss[6][20];s[1]="right?";
B.charss0[20]={"right?"};.
C.char*ss[6];s[1]="right?";
D.char*ss[={"rignt?"};
18.設有定義:intx[2][3];,則以下關于二維數組X的敘述錯誤的是()。
A.x[0]可看做是由3個整型元素組成的一維數組
B.x[0]和x[l]是數組名,分別代表不同的地址常量
C.數組X包含6個元素
D.可以用語句x[o]=0;為數組所有元素賦初值0
19.將E-R圖轉換到關系模式時,實體與聯系都可以表示成________。
A.屬性B.關系C.鍵D.域
20.在黑盒測試方法中,設計測試用例的主要根據是A.程序外部功能B.程序內部邏輯C.程序數據結構D.程序流程圖
二、2.填空題(20題)21.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結果為______。
22.下列程序的輸出結果是【】。
voidfun(int*n)
{while((*n))
printf("%d",(*n)--);
}
main()
{inta=10;
fun(&a);
}
23.以下程序運行后的輸出結果是______。
#include<string.h>
main()
{charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
}
24.以下程序的輸出是【】。
main()
{
charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
25.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現錯誤的位置并改正錯誤。
26.______是數據庫應用的核心。
27.下面程序的運行結果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;
sub(s,7,SIZE-1);
for(i=0;i<SIZE;i++)printf("%c",s[i]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t1)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
28.以下程序運行后的輸出結果是【】。
intf(inta[],intn)
{
if(n>=1)
returnf(a,n-1)+a[n-1];
else
return0;
}
main()
{
intaa[5]={1,2,3,4,5},s;
s=f(aa,5);
printf("%d\n",s);
}
29.下列程序的功能是對輸入的一行字符中的數字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
30.下列程序的運行結果是______。
#include<stdio.h>
func(a,b)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=5,m=3,p;
p=func(k,m);
printf("%d",p);
p=func(k,m);
printf("%d、n",p);
}
31.關系可以有3種類型,即基本關系(又稱基本表或基表)、查詢表和【】。
32.算法的基本特征是可行性、確定性、【】和擁有足夠的情報。
33.在數據庫中用數據模型這個工具來抽象、表示和處理現實世界中的數據和信息。常見的數據模型有3種,它們分別是層次模型、網狀模型和()。
34.以下程序運行后的輸出結果是【】。
#defineS(x)4*x*x+1
mah()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
35.對存儲器按字節(jié)進行編址,若某存儲器芯片共有8根地址線,則該存儲器芯片的存儲容量為【】字節(jié)。
36.診斷和改正程序中錯誤的工作通常稱為【】。
37.以下說明語句中,【】是結構體類型名。
typedefstruct
{intn;
charch[8];
}PER;
38.設有下列程序:
#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>代表回車符):DEF<CR>BADEF<CR>QTHRG<CR>,則程
序的輸出結果是______。
39.在數據的存儲結構中,不僅需要存儲各數據元素的信息,還要存放各元素之間______的信息。
40.數據獨立性分為邏輯獨立性與物理獨立性。當數據的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為【】。
三、1.選擇題(20題)41.下列選項中屬于C語言構造類型的是()
A.指針類型B.空類型C.枚舉類型D.數組類型
42.下列是用戶自定義標識符的是
A._w1B.3_xyC.intD.LINE-3
43.以下能正確定義字符串的語句是()。
A.charstr[]={'\064'};
B.charstr="kx43";
C.charstr=";
D.charstr[]="\0";
44.下面程序的輸出結果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}
A.3B.4C.1D.2
45.下列敘述中,不屬于結構化分析方法的是()。A.A.面向數據流的結構化分析方法
B.面向數據結構的Jackson方法
C.面向數據結構的結構化數據系統開發(fā)方法
D.面向對象的分析方法
46.請選出以下程序的輸出結果
#include<stdio.h>
main()
{inta[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{sub(a,x);printf("%d",x);}
printf("\n");}
sub(s,y)
int*s,y;
{staticintt=3;
y=s[t];t--;}
A.1234B.4321C.0000D.4444
47.下列敘述中,不屬于設計準則的是()。
A.提高模塊獨立性B.使模塊的作用域在該模塊的控制域中C.設計成多入口、多出口模塊D.設計功能可預測的模塊
48.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf(“%d,%d\n”,m,i);}執(zhí)行后的輸出結果是
A.8,6B.8,3C.6,4D.7,4
49.以下程序運行后的輸出結果是______。main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}
A.1000B.10010C.110D.10100
50.以下程序運行后,輸出結果為______。main(){inta[2][3]={1,3,5,7,9,11),*s[2],**pp,*p;s[0]=a[0],s[1]=a[1];pp=s;p=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}
A.1B.7C.9D.11
51.下列選項中,不屬于數據庫管理的是()
A.數據庫的建立B.數據庫的調整C.數據庫的監(jiān)控D.數據庫的校對
52.設x,y和z都是血型變量,且x=3,y=4,z=5,則下面表達式中,值為0的表達式是
A.x&&y
B.x<=y
C.x‖++y&&y-z
D.!(x<y&&!z‖1)
53.下列程序的輸出結果是()。#include<stdio.h>intfun(intx){intp;if(x==0‖x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}
A.5B.3C.7D.1
54.關于結構化程序設計原則和方法描述錯誤的是()。
A.選用的結構只準許有一個入口和一個出口
B.復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現
C.不允許使用GOTO語句
D.語言中所沒有的控制結構,應該采用前后一致的方法來模擬
55.有定義語句:intb;charc[10];則正確的輸入語句是()。
A.seanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.seanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
56.設x=011050,則x=x&01252的值是()。
A.1000101000
B.1111110100011000
C.1011100010
D.1100000000101000
57.軟件調試的目的是______。
A.發(fā)現錯誤B.改正錯誤C.改善軟件的性能D.挖掘軟件的潛能
58.以下敘述中正確的是______。
A.C語言比其他語言高級
B.C語言可以不用編譯就能被計算機識別執(zhí)行
C.C語言以接近英語國家的自然語言和數學語言作為語言的表達形式
D.C語言出現的最晚,具有其他語言的一切優(yōu)點
59.有如下程序段:inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為()。
A.tureB.假C.0D.1
60.以下程序的輸出結果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'\0';printf("%d\n",s);}
A.69825B.59713C.6385D.693825
四、選擇題(20題)61.下列函數的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
62.
63.有以下程序:
程序運行后的輸出結果是()
A.32B.12C.21D.22
64.
下列程序的運行結果為()。
#include<stdio.h>
main
{structdate
{intyear,month,day;
}today;
printf("%d\n",sizeof(structdate));
}
A.8B.6C.10D.12
65.設x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
66.下列條件語句中,輸出結果與其他語句不同的是()
67.設有二元關系R和三元關系s,下列運算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
68.
69.
70.第
11
題
若有定義:char*st="howareyou";下列程序段中正確的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
71.下面描述中,不屬于軟件危機表現的是()。
A.軟件過程不規(guī)范B.軟件質量難以控制C.軟件開發(fā)生產率低D.軟件成本不斷提高
72.軟件設計中劃分模塊的一個準則是()。A.低內聚低耦合B.高內聚低耦合C.低內聚高耦合D.高內聚高耦合
73.下面不屬于需求分析階段任務的是()。
A.確定軟件系統的功能需求B.確定軟件系統的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審
74.有如下程序:
該程序的輸出結果是()。
A.0.000000B.0.250000C.0.500000D.1.000000
75.
76.
77.若有語句:Char*line[5];,以下敘述中正確的是()。
A.定義line是一個數組,每個數組元素是一個基類型為Char的指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數組
C.定義line是一個指針數組,語句中的*號稱為間址運算符
D.定義line是一個指向字符型函數的指針
78.下述程序的運行結果是()。#includedstdio.h>#includedstrin9.h>main{char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}A.正數B.負數C.零D.不確定的值
79.下面的變量說明中__________是正確的。
A.char:a,b,c;
B.chara;b;c;
C.chara,b,c;
D.chara,b,c
80.
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:從3個紅球,5個白球,6個黑球中任意取出8個作為一組,進行輸出。在每組中,可以沒有黑球,但必須要有紅球和白球。組合數作為函數值返回。正確的組合數應該是l5。程序中i的值代表紅球數,j的值代表白球數,k的值代表黑球數。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.請編寫一個函數,用來刪除字符串中的所有*。例如,輸入abc*de*f*gh,則輸出為abcdefgh。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.A
2.Ascanf函數中,在格式字符前加入一個整數可以指定輸入數據所占的寬度,所以賦值時會將87賦給變量a,把6.0賦給float型變量b。故本題答案為A選項。
3.D解析:本題考核的知識點是指針變量定義和賦值語句的基本應用。在使用一個指針變量之前,先要用聲明語句對其進行定義,在定義了一個指針變量之后,系統就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關指針的運算符:&運算符,為取地址運算符,*運算符是指針運算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項A中將常量1賦給指針p不正確;選項B也是將常量2賦給*p,故選項B不正確;選項C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項中選項D符合題意。
4.CA、B、D選項的含義均為:a的值如果為0,輸出y的值,否則輸出x的值。而C選項的含義是:a的值為0時輸出x的值,不為0時輸出y的值,與其他選項正好相反。故本題答案為C選項。
5.B棧是先進后出,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。
6.B
7.B解析:C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在'A'和'Z'之間就可以了,選項A)和C)符合要求。函數isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65到90,所以如果一個字母的ASCII碼小于91,那么就能確定它是大寫字母。
8.A
9.A數據字典是在需求分析階段建立,在數據庫設計過程中不斷修改、充實和完善的。故答案為A選項。
10.C解析:選項A)char*a;*a=“china”應改為a=china;,選項B)應該是charstr[6];D)項表述方法有錯誤。
11.B
12.D
13.C解析:棧和隊列都是操作受限制的線性表,只允許在端點插入和刪除。不同點是:棧只允許在表的一端進行插入和刪除操作,而隊列允許在表的一端進行插入操作,而在另一端進行刪除操作。
14.A
15.C
16.B解析:在C語言程序中,用單引號把一個字符或反斜線后跟一個特定的字符括起來表示一個字符常量。選項A)、C)和D)為正確的字符常量,而選項B)是用雙引號括起來的字符,表示一個字符串常量。
17.A[解析]數組定義后,不可以對數組整體賦值,s是二維數組,因ss[1]是一維字符數組,即字符串,字符串賦值可以使用strcpy[1],"right);這樣的形式,而選項A)中對二維數組中的第“1維(相當于一個一維數組)賦值,是不可以的。選項B)和D)是定義時對數組初始化,這是可以的。選項C)中,將字符串在內存中的首地址賦給指針數組的一個元素,這是可以的。
18.Dx[0]是不能賦值的。
19.B解析:關系數據庫邏輯設計的主要工作是將\ue008E-R\ue009圖轉換成指定RDBMS中的關系模式。首先,從E-R圖到關系模式的轉換是比較直接的,實體與聯系都可以表示成關系,E-R圖中屬性也可以轉換成關系的屬性,實體集也可以轉換成關系。
20.A【答案】:A
【知識點】:黑盒測試
【解析】:黑盒測試也稱功能測試或數據驅動測試,它完全不考慮程序內部的邏輯結構和內部特征,只著眼于程序的外部結構,主要用來檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。故選A。
21.44解析:strcpy(s1,s2)函數的作用是將字符串s2中的內容拷貝到字符串s1中的內容覆蓋。strlen()函數是求字符串的長度。本題實際上是要求s2字符串的長度,即是4。
22.1.09877e+010
23.abcbcc
24.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷貝函數,作用是將字符串s1拷貝到字符數組strl中去。strlen(str):測試字符串str的長度,函數的值為字符串中實際長度,不包括\'\\0\'在內。本題中strlen(str1)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe
25.調試調試
26.數據庫設計數據庫設計
27.abcdefglkjihabcdefglkjih解析:本題主要考查了字符變量可參與的運算。因為字符在計算機中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術運算等,某字符的大寫字母的ASCII碼值比它對應的小寫字母ASCII碼值小32。
28.1515解析:在函數f()中只有一條if語句,如果n不小于1,則返回f(a,n-1)+a[n-1];否則返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3],……直到f(aa,0)返回0。故f(aa,5)實際返回值是0+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租車協議合同范本示例
- 真心相待的夫妻保證書
- 簡單隱私保護合同協議樣本
- 規(guī)范文本偷錢保證書范例
- 建筑勞務分包安全管理協議
- 精確市場調研制作合同
- 綠化項目招標答疑
- 軟件開發(fā)合同協議范本示例
- 零售店長工作合同
- 補充合同格式范本
- 國家開放大學《MySQL數據庫應用》章節(jié)測試參考答案
- 電力系統光纖通信運行管理規(guī)程
- 奇門遁甲在現代商業(yè)競爭中的應用
- 獨輪車校本教材
- 超高層建筑的造價含國內著名超高層建筑成本數據
- 高速公路公路養(yǎng)護維修作業(yè)交通標志設置示意圖(國標2015)
- 護士排班表(月表)
- 華為產品測試策略及驗證計劃模板
- 東華大學對硝基苯胺的制備實驗報告doc
- 水利水電工程單位分部工程施工質量評定表(完整版)
- 往復壓縮機填料函結構及原理課件講解
評論
0/150
提交評論