版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年湖北省隨州市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.
3.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
4.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
5.下列敘述中錯誤的是()。A.程序可以由多個程序文件組成
B.一個C語言程序只能實現(xiàn)一種算法
C.程序可以由一個或多個函數(shù)組成
D.一個C函數(shù)可以單獨作為一一個c程序文件存在
6.
7.下列標(biāo)識符不是關(guān)鍵字的是()。
A.breakB.charC.SwithchD.return
8.當(dāng)輸入為"hello?"時,下面程序的執(zhí)行結(jié)果是()。#include<stdio.h>main{charc;c=getchar;while(c!=?){putehar(e);break;}}A.RvfsuB.hC.?D.hello
9.二叉樹的后序排列DBEFCA,中序排列DBAECF,那么對其做先序線索化二叉樹,節(jié)點E的線索化指向節(jié)點()
A.BCB.ACC.DFD.CF
10.有以下程序段:charstr[4][12]={“aaa”,“bbb”,“ccc”,“ddd”},*p[4];inti;for(i=0;i<4;i++)p[i]=str[i];以下選項中不能正確引用字符串的是()。
A.*p[3]B.p[3]C.str[2]D.*p
11.有以下程序:#include<stdio.h>main(){chars[]={“012xy”;inti,n=0;for(i=0;s[i]|=0;i++)if(s[i]>=‘a(chǎn)’&&s[i]<=‘z’)n++;printf(“%d\n”,n);}程序的運行結(jié)果是()。
A.0B.2C.3D.5
12.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進(jìn)行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測試和驗收的依據(jù)
D.便于開發(fā)人員進(jìn)行需求分析
13.樹是結(jié)點的集合,它的根結(jié)點數(shù)目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
14.下面程序輸出的是()。main{intt=l;fun(fun(t));}fun(inth){staticinta[3]={1.2.3};intk;for(k=0;k<3;k++)a[k]+=a[k]-h;for(k=0;k<3;k++)printf("%d",a[k]);printf("\n");return(a[h]);}A.1,2,3,1,5,9,B.1,3,5,1,3,7,C.1,3,5,0,4,8,D.1,3,5,-1,3,7,
15.圖的深度優(yōu)先遍歷類似于二叉樹的_______。
A.先序遍歷B.中序遍歷C.后序遍歷D.層次遍歷
16.CPU能夠直接訪問的存儲器是
A.軟盤B.硬盤C.RAMD.CD-ROM
17.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'3'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n");}從第一列開始輸入數(shù)據(jù)(<CR>代表…個回車符):3845<CR>,則狴序輸出結(jié)果為()。
A.77889B.77868C.776810D.7.78866e+007
18.C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為()。
A.3B.4C.1D.2
19.
20.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的運行結(jié)果是()。A.852B.963C.741D.875421
二、2.填空題(20題)21.下列程序的輸出結(jié)果是16.00,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
22.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);【】;
}while(n!=0);
printf("\n");
}
23.以下程序的運行結(jié)果是【】。
#defineMAL(a,b)(a>b?a:b)+1
main()
{inti=6,j=8;
printf("%d\n",MAL(i,j));
}
24.表示條件;10<x<100或x<0的C語言表達(dá)式是【】。
25.x、y、x均為int型變量,描述"x、y和z中至少有兩個為正數(shù)"的表達(dá)式是______。
26.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?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);}
27.下列程序的輸出結(jié)果是【】。
main()
{inti;
for(i=1;i=1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
28.若intx=1,y=2;則計算表達(dá)式y(tǒng)+=y-=x*=y后的y值是()。
29.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
30.“printf("%d\n",strlen("\t\"023\xABC\n");”語句的輸出結(jié)果是______。
31.數(shù)據(jù)的獨立性分為邏輯獨立性與物理獨立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,這稱為______。
32.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b+*;break;
}
printf("%d%d\n",a,b);
}
33.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
34.下列程序的功能是對輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請?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);
}
35.設(shè)Y是int型變量,請寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。
36.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
37.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti,j,x;
for(j=4;j【】;j--)
{for(i=1;i<=4;i++)
[x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
38.mysulen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(Char*str)
{inti;
for{i=0;!='\0';i++);
return(______);
}
39.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
40.下面程序的輸出結(jié)果是______。
main()
{staticchara[]="language",b[]="program";
char*ptrl=a,*ptr2=b;
intk
for(k=0;k<7;k++)
if(*(ptrl+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
三、1.選擇題(20題)41.請選出可用作C語言用戶標(biāo)識符的一組()。
A.voiddefineWORD
B.a3_b3_123IF
C.For_abccase
D.2aDOsizeof
42.下列程序的輸出結(jié)果是_______。fun(){staticintx=5;if(x++>5)printf("%d",x);elseprintf("%d",x++);}main(){fun();fun();}
A.67B.69C.68D.78
43.已知形成鏈表的存儲結(jié)構(gòu)如下圖所示,則下述類型描述中的空白處應(yīng)填______。struct1ink{chardata;}node;
A.structlinknext
B.link*next
C.sluctnextlink
D.structlink*next
44.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循()等完整性規(guī)則。
A.實體完整性和參照完整性
B.參照完整性和用戶自定義完整性
C.實體完整性和用戶自定義完整性
D.實體完整性、參照完整性和用戶自定義完整性
45.若有以下定義和語句,且0<=I<10,則對數(shù)組元素的錯誤引用是()
inta[]={1,2,3,4,5,6,7,8,9,0};
int*p,I
p=a;
A.*(a+I(xiàn))B.a[p-a]C.p+I(xiàn)D.*(&a[I])
46.已知字母A的ASCII碼值是65,字母a的ASCII碼值是97,以下程序______。main(){chara='A';intb=20;printf(%d,%0",(a=a+a,a+b,B),a+'a'-'A',B);}
A.表達(dá)式非法,輸出零或不確定值
B.因輸出項過多,無輸出或輸出不確定值
C.輸出結(jié)果為20,141
D.輸出結(jié)果為20,141,20
47.循環(huán)鏈表的主要優(yōu)點是______。
A.不再需要頭指針了
B.己知某個結(jié)點的位置后,能夠容易找到它的直接前驅(qū)
C.在進(jìn)行插入、刪除運算時,能更好地保證鏈表不斷開
D.從表中任一結(jié)點出發(fā)都能掃描到整個鏈表
48.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];
D.intn=10,a[n];
49.下列敘述中正確的是A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫設(shè)計是指設(shè)計數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題
D.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
50.下列所述中,是軟件調(diào)試技術(shù)的是()。
A.錯誤推斷B.集成測試C.回溯法D.邊界值分析
51.下列選項中不屬于算法的特性的是
A.確定性B.可行性C.有輸出D.無窮性
52.在設(shè)計程序時,應(yīng)采納的原則之一是______。
A.程序結(jié)構(gòu)應(yīng)有助于讀者理解B.不限制goto語句的使用C.減少或取消注解行D.程序越短越好
53.下面函數(shù)調(diào)用語句含有實參的個數(shù)為func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
54.以下敘述中錯誤的是A.算法正確的程序最終一定會結(jié)束
B.算法正確的程序可以有零個輸出
C.算法正確的程序可以有零個輸入
D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果
55.在結(jié)構(gòu)化設(shè)計方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示______。A.A.模塊之間的調(diào)用關(guān)系B.程序的組成成分C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向
56.以下程序的輸出結(jié)果是()。main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=O;i<4;i+2)printf("%d",p[i]);}
A.52B.51C.53D.97
57.關(guān)系模型允許定義3類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。
A.實體完整性約束B.參照完整性約束C.屬性完整性約束D.用戶自定義的完整性約束
58.以下敘述中錯誤的是()。
A.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個整數(shù)作為地址值.
D.當(dāng)在程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL
59.設(shè)有定義:inta=2,b=3,c=4;,則下列選項中值為0的表達(dá)式是()。
A.(!a==1)&&(!b==0)
B.(a<b)&&!c‖1
C.a&&b
D.a‖(b+b)&&(c-a)
60.語句“printf("a\bhow\'are\'y\\\bou\n");”的輸出結(jié)果是()。
A.a\bhow\'are\'y\\bou
B.a\bhow\'are\'y\bou
C.how'are'you
D.ahow'are'y\bou
四、選擇題(20題)61.
62.下列描述中不正確的是()。
A.字符型數(shù)組中可能存放字符串。
B.可以對字符型數(shù)組進(jìn)行整體輸入、輸出。
C.可以對整型數(shù)組進(jìn)行整體輸入、輸出。
D.不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進(jìn)行整體賦值。
63.
64.有以下程序
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));
}
程序的運行結(jié)果是
A.9B.編譯出錯
C.21D.9.0
65.對于一個正常運行的C程序,以下敘述中正確的是()。
A.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束.
C.程序的執(zhí)行總是從main函數(shù)開始、
D.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
66.以下程序的輸出結(jié)果是()。
main
{intx=0.5;charz='a';
printf("%d\n",(x&1)&&(z<'2'));}A.A.0B.1C.2D.3
67.
68.
69.一些重要的程序設(shè)計語言(inC語言和Pascal語言)允許過程的遞歸調(diào)用,而實現(xiàn)遞歸調(diào)用中的存儲分配通常用()。
A.棧B.堆C.數(shù)組D.鏈表
70.
71.
若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。
cb=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
72.(54)在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序
B.選擇排序
C.快速排序
D.歸并排序
73.
74.
75.
76.若有語句:Char*line[5];,以下敘述中正確的是()。
A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為Char的指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組
C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符
D.定義line是一個指向字符型函數(shù)的指針
77.以下正確的字符串常量是()。A.A."\\\"
B.'abc'
C.OlympicGames
D.""
78.
79.有以下程序:
程序運行時,輸入的值在哪個范圍才會有輸出結(jié)果()。
A.不等于10的整數(shù)
B.大于3且不等于l0的整數(shù)
C.大于3或等于l0的整數(shù)
D.小于3的整數(shù)
80.第
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);
五、程序改錯題(1題)81.寫出下列程序的運行結(jié)果。
#include“stdio.h”
Main
{inta[]={1,2,3,-4,5};
intm,n,*p;p=&a[0];m=*(p+1);n=*(p+4);
printf(“%d%d%d”,*p,m,n);}
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將s所指字符串中ASCII值為奇數(shù)的字符刪除,將剩余字符形成的新字符串放在t所指數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFG12345”,其中字符A的ASCII值為奇數(shù),字符1的ASCII值也為奇數(shù),都應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是“BDF24”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100],Msg[]=“Pleaseenterstrings:”; printf(Msg); scanf(“%s”,s); fun(s,t); printf(“\nTheresuitis:%s\n”,t);}
參考答案
1.D
2.B
3.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。
4.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串的第—個字符。在for循環(huán)中,i的初值為3,那么輸出的第—個字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
5.B[解析]在一個C語言程序中可以進(jìn)行多種算法的實現(xiàn),對算法的個數(shù)沒有規(guī)定,所以B)錯誤。
6.B
7.C在C語言中,字母區(qū)分大小,所以break、char、return、switch都是C語言中的關(guān)鍵字,而Swithch不是。
8.A本題考查getchar函數(shù)與putchar函數(shù),通過9etchar函數(shù)讀入字符,并通過putchar函數(shù)將字符逐個輸出,當(dāng)用戶輸入“?”時停止輸出,且c是一個字符變量只占一個字節(jié)。
9.D
10.A“*P[3]”是一個字符,也就是str[3][0],不是字符串,選項A錯誤。“P[3]”“str[2]”和“*p”分別代表了ddd、ccc、aaa。故本題答案為A選項。
11.B程序首先給字符數(shù)組s賦值為“012xy”。for循環(huán)語句的功能是遍歷字符串,通過if條件語句對字符串中的小寫字母進(jìn)行計數(shù),字符串中小寫字母個數(shù)為2,即n=2。故本題答案為B選項。
12.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗收的依據(jù)。
13.A樹形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹是n(n≥0)個結(jié)點的集合,對應(yīng)任意一棵非空樹,它具有以下幾點重要的性質(zhì)。
①有且僅有一個特定的稱為根的結(jié)點。
②當(dāng)n>1時,其余結(jié)點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。
因此,本題的正確答案有且只有一個。
14.D本題考查雙重函數(shù)調(diào)用及for循環(huán)使用,fun函數(shù)中第一個for循環(huán)語句的作用是給數(shù)組a賦值。當(dāng)?shù)谝淮握{(diào)用fun函數(shù)時,把實參1傳給形參,輸出a數(shù)組的元素為1,3,5;第二次調(diào)用fun函數(shù)時,由于數(shù)組a為靜態(tài)局部變量,故輸出a數(shù)組的元素為一1,3,7。
15.A
16.C解析:CPU讀取和寫人數(shù)據(jù)都是通過內(nèi)存來完成的。
17.A
18.CChar類型數(shù)據(jù)占1個字節(jié)。
19.D
20.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í)行打印語句。
解析:本題以浮點格式輸出z值,寬度為5,有2位小數(shù)。應(yīng)該注意的是,兩個整數(shù)運算結(jié)果仍為整數(shù),如1/2的結(jié)果為0。本題可逐步求解:
16.00=9/2+2*x/1.1+1/2
16.00=4+2*x/1.1+0
12.00=2*x/1.1
所以,x的值為6.6。
22.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。
23.99解析:用i和j替換宏MAL(a,b)小的參數(shù)a和b,(a>b?a:b)+1等價于(i>j?i:j)+1。因為6>8為假,則關(guān)系表達(dá)式i>j?i:j的值就是j的值,j=8,8+1=9,最后輸出9。
24.(x>10&&x<100)||x<0
25.((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和z這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。
26.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標(biāo),需先預(yù)設(shè)1個臨時最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最大元素s[k)更大時,應(yīng)該用p更新k。所以在空框處應(yīng)填入代碼“k=p;”。
27.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當(dāng)i=1時,因為if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時i自加1;執(zhí)行第二次for循環(huán)時,i:3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時i自加1執(zhí)行第三次for循環(huán)時,i=5,訌語句條件滿足,所以執(zhí)行printf('%d\\n',i)輸出5,然后break語句跳出了for循環(huán)。
28.0
29.測試實例測試實例解析:進(jìn)行軟件測試時,應(yīng)精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進(jìn)行全面測試。
30.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。
\'\\t\'f是轉(zhuǎn)義字符,代表橫向跳若干格:'\\'是轉(zhuǎn)義字符,代表雙引號;\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;’僅AB,是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。
5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。
31.物理獨立性物理獨立性解析:數(shù)據(jù)的獨立性是指數(shù)據(jù)和應(yīng)用程序相互獨立,分為物理獨立性和邏輯獨立性。其中物理獨立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式)改變時,不需要修改應(yīng)用程序。而邏輯獨立性是指當(dāng)邏輯結(jié)構(gòu)改變時,不需要修改應(yīng)用程序。
32.2121解析:本題考查switch語句。首先x=1,執(zhí)行switch(y),因為y=0,所以執(zhí)行case0:a++;break;此時a=1執(zhí)行case2:a++;b++;這時a=2,b=1;最后輸出結(jié)果是21。
33.時間時間解析:算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
34.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。
35.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。
36.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
37.>=1或>0i>=1或>0\r\ni解析:程序的外層for循環(huán)控制輸出數(shù)據(jù)的行數(shù),故第一處填“>=1”或“>0”;內(nèi)層循環(huán)控制每行輸出的個數(shù)。在內(nèi)層for循環(huán)中,語句x=(j-1)*4+______;用于控制輸出方陣中的具體數(shù)據(jù),由于這些數(shù)據(jù)與其所在的行、列(j,i)具有x=(j-1)*4+i的關(guān)系,故第二處填i。
38.*(srt+i)或str[i]i*(srt+i)或str[i]\r\ni解析:求str指向的字符串長度的算法是:用一個變量i表示字符串中字符的位置,一開始賦值為0,取出i位置的字符,判斷是否為'\\0',若不是則i的值加1,如此循環(huán)直到取出的字符是'\\0'為止,此時i的值就是字符串的長度。由此可知,第一個空處應(yīng)填第i位置上的字符*(str+i);第二個空格應(yīng)該填字符串的長度i。
39.軟件開發(fā)
40.
41.B解析:C語言規(guī)定,標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。A)中的void與C語言的關(guān)鍵字重名,不合法;C)中的case和C語言的關(guān)鍵字重名,不合法;D)中的2a是數(shù)字開頭,而且sizeof與C語言的關(guān)鍵字重名,不合法。
42.C解析:模塊的代碼開始運行后,使用static語句聲明的變量會—直保持其值,直至該模塊復(fù)位或重新啟動。在第1次調(diào)用fun函數(shù)時,x的初值為5,if語句的條件不成立,執(zhí)行elseprintf('%d'x++);語句,輸出6,執(zhí)行后x的值變?yōu)?,由于x是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它并不釋放,仍保留x=7。在第2次調(diào)用fun函數(shù)時,if語句的條件成立,執(zhí)行printf('%d',x);語句,輸出8。
43.D解析:在單向鏈表中,由于每個結(jié)點需要存儲下—個結(jié)點的地址,且下—個結(jié)點的數(shù)據(jù)類型與前—個結(jié)點的數(shù)據(jù)類型完全相同,故應(yīng)為strectlink*next。
44.D解析:關(guān)系模型中包括關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性。關(guān)系完整性即數(shù)據(jù)完整性,包括實體完整性、參照完整性、用戶自定義完整性。
45.C
46.C解析:本題中首先輸出逗號表達(dá)式“a=a+a,a+b,b”的值,即20。然后以八進(jìn)制的形式輸出a+'a'-'A'的值為97對應(yīng)的八進(jìn)制數(shù)141,由于最后一個表達(dá)式b沒有對應(yīng)輸出格式的輸出項表列就不會輸出。
47.D
48.D答案D
解析:在選項D中,n是一個整型的變量。C語言規(guī)定,在一維數(shù)組的定義中,其下標(biāo)只能是常量表達(dá)式,不能包含變量。
49.C解析:數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持,這一點必不可少,故選項A敘述不正確。選項B錯誤,數(shù)據(jù)庫設(shè)計是指設(shè)計一個能滿足用戶要求,性能良好的數(shù)據(jù)庫。選項D也不對,數(shù)據(jù)庫應(yīng)該具有物理獨立性和邏輯獨立性,改變其中的一個而不影響另一個。正確答案為選項C。
50.C解析:軟件調(diào)試技術(shù)包括強(qiáng)行排錯法、回溯法和原因排除法。邊界值分析、錯誤推斷都是黑盒測試的方法。
51.D解析:一個算法必須具有五個特性,即有窮性、確定性、可行性,有輸入、有輸出.其中有窮性是指算法必須總是在執(zhí)行完有窮步之后結(jié)束,而且每步都在有窮時間內(nèi)完成。D選項不是算法的特性。
52.A解析:程序設(shè)計的風(fēng)格主要強(qiáng)調(diào)程序的簡單、清晰和可理解性,以便讀者理解。因此選項A是正確答案。程序濫用goto語句將使程序流程無規(guī)律,可讀性差;添加的注解行有利于對程序的理解,不應(yīng)減少或取消;程序的長短要依照實際需要而定,并不是越短越好。因此選項B、C、D都是錯誤的。
53.B解析:函數(shù)調(diào)用的一般形式為:函數(shù)名(形參表)若函數(shù)無形參,調(diào)用形式為:函數(shù)名(),當(dāng)所調(diào)用的函數(shù)用于求出某個值時,函數(shù)的調(diào)用可作為表達(dá)式出現(xiàn)在允許表達(dá)式出現(xiàn)的任何地方,本題中調(diào)用語句的參數(shù)個數(shù)為2個。
54.B(45)B)解析:算法應(yīng)該具有下列五個特性:
①有窮性:一個算法必須在執(zhí)行有窮步之后結(jié)束。
②確定性:算法中的每一步,必須有確切的含義,在他人理解時不會產(chǎn)生二義性。
③動態(tài)性:算法中描述的每一步操作都可以通過已有的基本操作執(zhí)行有限次實現(xiàn)。
④輸入:一個算法應(yīng)該有零個或多個輸入。
⑤輸出:一個算法應(yīng)該有一個或多個輸出。這里所說的輸出是指與輸入有某種特定關(guān)系的量。
55.A解析:讓考生對常用的軟件結(jié)構(gòu)設(shè)計工具要有較深入的了解。常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC-structureChart),也稱程序結(jié)構(gòu)圖。其中,矩形內(nèi)用于注明模塊的功能和名字;箭頭表示模塊間的調(diào)用關(guān)系,帶實心圓的箭頭表示傳遞的是控制信息,帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。注意:根據(jù)結(jié)構(gòu)圖設(shè)計思想,了解結(jié)構(gòu)圖構(gòu)成的基本形式。
56.C解析:執(zhí)行for循環(huán),輸出p[0]、p[2]的值。P的初值為數(shù)組元素x[1][1]的地址,即5的地址,因此p[0]為5,p[2]為3。
57.C詳細(xì)解答:
關(guān)系模型允許3類數(shù)據(jù)約束,它們是:
實體完整性約束
該約束要求關(guān)系的主鍵中屬性值不能為空值,這是數(shù)據(jù)庫完整性的最基本要求。
參照完整性約束
該約束是關(guān)系之間相關(guān)聯(lián)的基本約束,它不允許關(guān)系引用不存在的元組:即在關(guān)系中的外鍵要么是所關(guān)聯(lián)關(guān)系中實際存在的元組,要么就為空值。
用戶定義的完整性約束
用戶定義的完整性就是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。cC
58.C解析:函數(shù)形參和實參分別占用不同的內(nèi)存單元,改變形參的值不會影響對應(yīng)實參的值,選項A)正確。指針類型的函數(shù)可以返回地址值,選項B)正確。在文件stdio.h中,NULL被定義為void型的指針,選項D)也正確。指針變量的值只能是存儲單元地址,而不能是一個整數(shù),選項C)錯誤。
59.A解析:在選項A)中,因為!a=0,所以關(guān)系表達(dá)式!a==1的值為0,又因為邏輯與運算符“&&”兩邊的表達(dá)式只要一個等于零,則整個表達(dá)式為零,所以選項A)正確。在選項B)中,關(guān)系表達(dá)式a<b為真,表達(dá)式(a<b)&&!c為假,而表達(dá)式(a<b)&&!c‖1為真,所以整個表達(dá)式的值為真。選項C)中,a&&b的結(jié)果為真。在選項D)中,a‖(b+b)&&(c-a)的結(jié)果為真。
60.C解析:“\\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆蓋,導(dǎo)致“\\b'’格式符前面的字母不能輸出;“\\'”格式符表示輸出單引號字符;“\\\\”格式符表示輸出反斜線字符。
61.B
62.C
63.C
64.A本題主要考查函數(shù)的嵌套調(diào)用。在本題中,首先定義了函數(shù)fun,該函數(shù)的返回類型為浮點型,函數(shù)帶有兩個整型形參,函數(shù)的作用不難看出是返回兩個形參的和。
在主函數(shù)中,定義了三個整型變量a,b,c,并分別賦初值為2,5,8,然后嵌套調(diào)用fun函數(shù)。輸出語句fun((int)fun(a+c,b),a-c)首先調(diào)用嵌套的fun函數(shù),即(int)fun(a+c,b),按照前面對fun函數(shù)的介紹,它應(yīng)該返回的值為a+c+b=15,由于函數(shù)在前面加了強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換,將本來的返回結(jié)果浮點型轉(zhuǎn)換為了整型,并作為函數(shù)的參數(shù),與函數(shù)定義的參數(shù)類型匹配,程序編譯不報錯,然后執(zhí)行fun函數(shù),它返回的結(jié)果為15+a-c=9,此時的結(jié)果應(yīng)該是浮點型,即為9.0,但輸出語句的輸出格式是“%3.0f”,說明無須輸出小數(shù)部分,因此,最終的輸出結(jié)果是9。
65.C任何一個C語言程序的執(zhí)行都是從主函數(shù)main開始,至主函數(shù)main結(jié)束。故本題答案為C選項。
66.B(x&1)&&(z<'2')=(0.5&1)&&('a'<'z')=1&&1=1,故選擇B選項。
67.C
68.B
69.A在允許過程的遞歸調(diào)用的程序設(shè)計語言中,由于C語言中棧的特性為先進(jìn)后出,因此用棧來實現(xiàn)遞歸調(diào)用中的存儲分配。
70.D
71.C
\n第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項的個數(shù)是3,所以對于多余的輸出項k不予輸出;第2個printf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。本題考查printf函數(shù)的格式。①“%x”和“%0”分別表示以十六進(jìn)制和八進(jìn)制無符合型輸出整型數(shù)據(jù)(不帶前導(dǎo)ox或0);②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出;③格式說明與輸出項的個數(shù),也要相等,如果格式說明的個數(shù)少于輸出項的個數(shù),則對于多余的輸出項不予輸出。
\n
72.D
73.D
74.A
75.D
76.A解析:理解復(fù)雜定義要掌握兩點:一、右結(jié)合原則.本題中的定義char*line[5];等價于char*(line[5]);;二、自外向內(nèi)分解成typedef語句。char*(line[5]);等價于typedefchar*A;Aline[5];其中A被typedef定義成字符指針的別名,然后line被定義成A的一維數(shù)組,即字符指針的一維數(shù)組。再來看看行指針的定義char(*line)[5];它應(yīng)該被分解成typedefcharB[5];B*line;其中B被定義成包含5個元素的一維字符數(shù)組,然后line被定義成指向B的指針,即指向包含5個元素的一維字符數(shù)組的指針。所以兩者切不可混淆了,后者的括號不能省略。故本題應(yīng)該選擇A。
77.D選項A中“\\\”為轉(zhuǎn)義字符,故選項A錯誤,選項B和C顯然不是字符串常量。選項D是一個字符串常量,稱為空串。
78.A
79.Bif-else控制結(jié)構(gòu)中,else總是與最近的未配對的if匹配。本題的執(zhí)行過程為:如果輸入整數(shù)小于3則不進(jìn)行任何操作,否則判斷該整數(shù)是否不等于l0,若為真則進(jìn)行輸出。因此程序輸出的數(shù)據(jù)為大于3且不等于l0的整數(shù)。
80.A本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達(dá)式對字符數(shù)組賦值,如下面的語句就是非法的:str1='China',如果想把“China”這5個字符放到數(shù)組str1中,除了逐個輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復(fù)制到一字符數(shù)組中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給str1):str1=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。
strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)
其中,需要注意的是,字符數(shù)組1的長度不應(yīng)小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(str1),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。
81.
82.voidfun(char*s,chart[]){ inti,j=0,n; n=strlen(s);/*遍歷整個數(shù)組*/ for(i=0;i<=""p="">/*如果元素的ASCII值為偶數(shù)*/ if(s[i]%2==0) {/*將元素保存到t中*/ t[j]=s[i]; j++; } t[j]=-‘\0’;}要刪除ASCII值為奇數(shù)的字符,也就是要保留ASCII值為偶數(shù)的字符,將ASCII值為偶數(shù)的字符保存到新字符串。所以本題的算法是對原字符串從頭到尾進(jìn)行掃描,找出ASCII值為偶數(shù)的字符并依次存入數(shù)組。2021-2022年湖北省隨州市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.
3.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
4.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
5.下列敘述中錯誤的是()。A.程序可以由多個程序文件組成
B.一個C語言程序只能實現(xiàn)一種算法
C.程序可以由一個或多個函數(shù)組成
D.一個C函數(shù)可以單獨作為一一個c程序文件存在
6.
7.下列標(biāo)識符不是關(guān)鍵字的是()。
A.breakB.charC.SwithchD.return
8.當(dāng)輸入為"hello?"時,下面程序的執(zhí)行結(jié)果是()。#include<stdio.h>main{charc;c=getchar;while(c!=?){putehar(e);break;}}A.RvfsuB.hC.?D.hello
9.二叉樹的后序排列DBEFCA,中序排列DBAECF,那么對其做先序線索化二叉樹,節(jié)點E的線索化指向節(jié)點()
A.BCB.ACC.DFD.CF
10.有以下程序段:charstr[4][12]={“aaa”,“bbb”,“ccc”,“ddd”},*p[4];inti;for(i=0;i<4;i++)p[i]=str[i];以下選項中不能正確引用字符串的是()。
A.*p[3]B.p[3]C.str[2]D.*p
11.有以下程序:#include<stdio.h>main(){chars[]={“012xy”;inti,n=0;for(i=0;s[i]|=0;i++)if(s[i]>=‘a(chǎn)’&&s[i]<=‘z’)n++;printf(“%d\n”,n);}程序的運行結(jié)果是()。
A.0B.2C.3D.5
12.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進(jìn)行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測試和驗收的依據(jù)
D.便于開發(fā)人員進(jìn)行需求分析
13.樹是結(jié)點的集合,它的根結(jié)點數(shù)目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
14.下面程序輸出的是()。main{intt=l;fun(fun(t));}fun(inth){staticinta[3]={1.2.3};intk;for(k=0;k<3;k++)a[k]+=a[k]-h;for(k=0;k<3;k++)printf("%d",a[k]);printf("\n");return(a[h]);}A.1,2,3,1,5,9,B.1,3,5,1,3,7,C.1,3,5,0,4,8,D.1,3,5,-1,3,7,
15.圖的深度優(yōu)先遍歷類似于二叉樹的_______。
A.先序遍歷B.中序遍歷C.后序遍歷D.層次遍歷
16.CPU能夠直接訪問的存儲器是
A.軟盤B.硬盤C.RAMD.CD-ROM
17.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'3'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n");}從第一列開始輸入數(shù)據(jù)(<CR>代表…個回車符):3845<CR>,則狴序輸出結(jié)果為()。
A.77889B.77868C.776810D.7.78866e+007
18.C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為()。
A.3B.4C.1D.2
19.
20.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的運行結(jié)果是()。A.852B.963C.741D.875421
二、2.填空題(20題)21.下列程序的輸出結(jié)果是16.00,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
22.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);【】;
}while(n!=0);
printf("\n");
}
23.以下程序的運行結(jié)果是【】。
#defineMAL(a,b)(a>b?a:b)+1
main()
{inti=6,j=8;
printf("%d\n",MAL(i,j));
}
24.表示條件;10<x<100或x<0的C語言表達(dá)式是【】。
25.x、y、x均為int型變量,描述"x、y和z中至少有兩個為正數(shù)"的表達(dá)式是______。
26.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?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);}
27.下列程序的輸出結(jié)果是【】。
main()
{inti;
for(i=1;i=1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
28.若intx=1,y=2;則計算表達(dá)式y(tǒng)+=y-=x*=y后的y值是()。
29.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
30.“printf("%d\n",strlen("\t\"023\xABC\n");”語句的輸出結(jié)果是______。
31.數(shù)據(jù)的獨立性分為邏輯獨立性與物理獨立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,這稱為______。
32.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b+*;break;
}
printf("%d%d\n",a,b);
}
33.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
34.下列程序的功能是對輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請?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);
}
35.設(shè)Y是int型變量,請寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。
36.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
37.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti,j,x;
for(j=4;j【】;j--)
{for(i=1;i<=4;i++)
[x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
38.mysulen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(Char*str)
{inti;
for{i=0;!='\0';i++);
return(______);
}
39.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
40.下面程序的輸出結(jié)果是______。
main()
{staticchara[]="language",b[]="program";
char*ptrl=a,*ptr2=b;
intk
for(k=0;k<7;k++)
if(*(ptrl+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
三、1.選擇題(20題)41.請選出可用作C語言用戶標(biāo)識符的一組()。
A.voiddefineWORD
B.a3_b3_123IF
C.For_abccase
D.2aDOsizeof
42.下列程序的輸出結(jié)果是_______。fun(){staticintx=5;if(x++>5)printf("%d",x);elseprintf("%d",x++);}main(){fun();fun();}
A.67B.69C.68D.78
43.已知形成鏈表的存儲結(jié)構(gòu)如下圖所示,則下述類型描述中的空白處應(yīng)填______。struct1ink{chardata;}node;
A.structlinknext
B.link*next
C.sluctnextlink
D.structlink*next
44.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循()等完整性規(guī)則。
A.實體完整性和參照完整性
B.參照完整性和用戶自定義完整性
C.實體完整性和用戶自定義完整性
D.實體完整性、參照完整性和用戶自定義完整性
45.若有以下定義和語句,且0<=I<10,則對數(shù)組元素的錯誤引用是()
inta[]={1,2,3,4,5,6,7,8,9,0};
int*p,I
p=a;
A.*(a+I(xiàn))B.a[p-a]C.p+I(xiàn)D.*(&a[I])
46.已知字母A的ASCII碼值是65,字母a的ASCII碼值是97,以下程序______。main(){chara='A';intb=20;printf(%d,%0",(a=a+a,a+b,B),a+'a'-'A',B);}
A.表達(dá)式非法,輸出零或不確定值
B.因輸出項過多,無輸出或輸出不確定值
C.輸出結(jié)果為20,141
D.輸出結(jié)果為20,141,20
47.循環(huán)鏈表的主要優(yōu)點是______。
A.不再需要頭指針了
B.己知某個結(jié)點的位置后,能夠容易找到它的直接前驅(qū)
C.在進(jìn)行插入、刪除運算時,能更好地保證鏈表不斷開
D.從表中任一結(jié)點出發(fā)都能掃描到整個鏈表
48.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];
D.intn=10,a[n];
49.下列敘述中正確的是A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫設(shè)計是指設(shè)計數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題
D.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
50.下列所述中,是軟件調(diào)試技術(shù)的是()。
A.錯誤推斷B.集成測試C.回溯法D.邊界值分析
51.下列選項中不屬于算法的特性的是
A.確定性B.可行性C.有輸出D.無窮性
52.在設(shè)計程序時,應(yīng)采納的原則之一是______。
A.程序結(jié)構(gòu)應(yīng)有助于讀者理解B.不限制goto語句的使用C.減少或取消注解行D.程序越短越好
53.下面函數(shù)調(diào)用語句含有實參的個數(shù)為func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
54.以下敘述中錯誤的是A.算法正確的程序最終一定會結(jié)束
B.算法正確的程序可以有零個輸出
C.算法正確的程序可以有零個輸入
D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果
55.在結(jié)構(gòu)化設(shè)計方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示______。A.A.模塊之間的調(diào)用關(guān)系B.程序的組成成分C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向
56.以下程序的輸出結(jié)果是()。main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=O;i<4;i+2)printf("%d",p[i]);}
A.52B.51C.53D.97
57.關(guān)系模型允許定義3類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。
A.實體完整性約束B.參照完整性約束C.屬性完整性約束D.用戶自定義的完整性約束
58.以下敘述中錯誤的是()。
A.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個整數(shù)作為地址值.
D.當(dāng)在程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL
59.設(shè)有定義:inta=2,b=3,c=4;,則下列選項中值為0的表達(dá)式是()。
A.(!a==1)&&(!b==0)
B.(a<b)&&!c‖1
C.a&&b
D.a‖(b+b)&&(c-a)
60.語句“printf("a\bhow\'are\'y\\\bou\n");”的輸出結(jié)果是()。
A.a\bhow\'are\'y\\bou
B.a\bhow\'are\'y\bou
C.how'are'you
D.ahow'are'y\bou
四、選擇題(20題)61.
62.下列描述中不正確的是()。
A.字符型數(shù)組中可能存放字符串。
B.可以對字符型數(shù)組進(jìn)行整體輸入、輸出。
C.可以對整型數(shù)組進(jìn)行整體輸入、輸出。
D.不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進(jìn)行整體賦值。
63.
64.有以下程序
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));
}
程序的運行結(jié)果是
A.9B.編譯出錯
C.21D.9.0
65.對于一個正常運行的C程序,以下敘述中正確的是()。
A.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束.
C.程序的執(zhí)行總是從main函數(shù)開始、
D.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
66.以下程序的輸出結(jié)果是()。
main
{intx=0.5;charz='a';
printf("%d\n",(x&1)&&(z<'2'));}A.A.0B.1C.2D.3
67.
68.
69.一些重要的程序設(shè)計語言(inC語言和Pascal語言)允許過程的遞歸調(diào)用,而實現(xiàn)遞歸調(diào)用中的存儲分配通常用()。
A.棧B.堆C.數(shù)組D.鏈表
70.
71.
若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。
cb=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
72.(54)在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序
B.選擇排序
C.快速排序
D.歸并排序
73.
74.
75.
76.若有語句:Char*line[5];,以下敘述中正確的是()。
A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為Char的指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組
C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符
D.定義line是一個指向字符型函數(shù)的指針
77.以下正確的字符串常量是()。A.A."\\\"
B.'abc'
C.OlympicGames
D.""
78.
79.有以下程序:
程序運行時,輸入的值在哪個范圍才會有輸出結(jié)果()。
A.不等于10的整數(shù)
B.大于3且不等于l0的整數(shù)
C.大于3或等于l0的整數(shù)
D.小于3的整數(shù)
80.第
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);
五、程序改錯題(1題)81.寫出下列程序的運行結(jié)果。
#include“stdio.h”
Main
{inta[]={1,2,3,-4,5};
intm,n,*p;p=&a[0];m=*(p+1);n=*(p+4);
printf(“%d%d%d”,*p,m,n);}
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將s所指字符串中ASCII值為奇數(shù)的字符刪除,將剩余字符形成的新字符串放在t所指數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFG12345”,其中字符A的ASCII值為奇數(shù),字符1的ASCII值也為奇數(shù),都應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是“BDF24”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100],Msg[]=“Pleaseenterstrings:”; printf(Msg); scanf(“%s”,s); fun(s,t); printf(“\nTheresuitis:%s\n”,t);}
參考答案
1.D
2.B
3.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。
4.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串的第—個字符。在for循環(huán)中,i的初值為3,那么輸出的第—個字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
5.B[解析]在一個C語言程序中可以進(jìn)行多種算法的實現(xiàn),對算法的個數(shù)沒有規(guī)定,所以B)錯誤。
6.B
7.C在C語言中,字母區(qū)分大小,所以break、char、return、switch都是C語言中的關(guān)鍵字,而Swithch不是。
8.A本題考查getchar函數(shù)與putchar函數(shù),通過9etchar函數(shù)讀入字符,并通過putchar函數(shù)將字符逐個輸出,當(dāng)用戶輸入“?”時停止輸出,且c是一個字符變量只占一個字節(jié)。
9.D
10.A“*P[3]”是一個字符,也就是str[3][0],不是字符串,選項A錯誤。“P[3]”“str[2]”和“*p”分別代表了ddd、ccc、aaa。故本題答案為A選項。
11.B程序首先給字符數(shù)組s賦值為“012xy”。for循環(huán)語句的功能是遍歷字符串,通過if條件語句對字符串中的小寫字母進(jìn)行計數(shù),字符串中小寫字母個數(shù)為2,即n=2。故本題答案為B選項。
12.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗收的依據(jù)。
13.A樹形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹是n(n≥0)個結(jié)點的集合,對應(yīng)任意一棵非空樹,它具有以下幾點重要的性質(zhì)。
①有且僅有一個特定的稱為根的結(jié)點。
②當(dāng)n>1時,其余結(jié)點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。
因此,本題的正確答案有且只有一個。
14.D本題考查雙重函數(shù)調(diào)用及for循環(huán)使用,fun函數(shù)中第一個for循環(huán)語句的作用是給數(shù)組a賦值。當(dāng)?shù)谝淮握{(diào)用fun函數(shù)時,把實參1傳給形參,輸出a數(shù)組的元素為1,3,5;第二次調(diào)用fun函數(shù)時,由于數(shù)組a為靜態(tài)局部變量,故輸出a數(shù)組的元素為一1,3,7。
15.A
16.C解析:CPU讀取和寫人數(shù)據(jù)都是通過內(nèi)存來完成的。
17.A
18.CChar類型數(shù)據(jù)占1個字節(jié)。
19.D
20.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í)行打印語句。
解析:本題以浮點格式輸出z值,寬度為5,有2位小數(shù)。應(yīng)該注意的是,兩個整數(shù)運算結(jié)果仍為整數(shù),如1/2的結(jié)果為0。本題可逐步求解:
16.00=9/2+2*x/1.1+1/2
16.00=4+2*x/1.1+0
12.00=2*x/1.1
所以,x的值為6.6。
22.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。
23.99解析:用i和j替換宏MAL(a,b)小的參數(shù)a和b,(a>b?a:b)+1等價于(i>j?i:j)+1。因為6>8為假,則關(guān)系表達(dá)式i>j?i:j的值就是j的值,j=8,8+1=9,最后輸出9。
24.(x>10&&x<
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年校園監(jiān)控設(shè)備校園特殊時段監(jiān)控服務(wù)合同3篇
- 2025年水庫漁業(yè)資源承包合作協(xié)議范本3篇
- 2025年度二零二五版跨平臺媒體內(nèi)容合作協(xié)議范本4篇
- 二零二五年度人工智能研發(fā)與系統(tǒng)集成合同4篇
- 二零二五年度高空作業(yè)安全員資質(zhì)認(rèn)證及服務(wù)合同2篇
- 2025年行業(yè)領(lǐng)先銷售合同流程圖模板及實施手冊2篇
- 二零二五年度港口碼頭環(huán)保設(shè)施投資合作協(xié)議4篇
- 二零二五年跨境電商貨物買賣物流時效與成本優(yōu)化協(xié)議
- 2025年度大型活動組織與管理服務(wù)合同范本4篇
- 二零二五年度綠色生態(tài)住宅小區(qū)BOT項目投資建設(shè)協(xié)議3篇
- 工業(yè)自動化設(shè)備維護(hù)保養(yǎng)指南
- 2024人教新版七年級上冊英語單詞英譯漢默寫表
- 《向心力》參考課件4
- 2024至2030年中國膨潤土行業(yè)投資戰(zhàn)略分析及發(fā)展前景研究報告
- 2024年深圳中考數(shù)學(xué)真題及答案
- 土方轉(zhuǎn)運合同協(xié)議書
- Module 3 Unit 1 Point to the door(教學(xué)設(shè)計)-2024-2025學(xué)年外研版(三起)英語三年級上冊
- 智能交通信號燈安裝合同樣本
- 安全生產(chǎn)法律法規(guī)清單(2024年5月版)
- 江蘇省連云港市2023-2024學(xué)年八年級下學(xué)期期末道德與法治試卷(含答案解析)
- 2024年大學(xué)試題(宗教學(xué))-佛教文化筆試考試歷年高頻考點試題摘選含答案
評論
0/150
提交評論