




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.棧的特點(diǎn)是B,隊(duì)列的特點(diǎn)是()。
A.先進(jìn)先出B.先進(jìn)后出
2.程序運(yùn)行后的輸出結(jié)果是()。A.0304.B.2050C.3344D.3040
3.若用一個(gè)大小為6的數(shù)值來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為()。
A.1和5B.2和4C.4和2D.5和1
4.設(shè)"char**s;",以下正確的表達(dá)式是()。
A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';
5.一個(gè)有8個(gè)頂點(diǎn)的有向圖,所有頂點(diǎn)的入度出度之和與所有頂點(diǎn)的出度之和的差是()
A.16B.4C.0D.2
6.若要求在if后一對(duì)圓括號(hào)中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為()
A.a<>0B.!aC.a=0D.a
7.下列表達(dá)式中,可以正確表示的關(guān)系是()。
A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0
8.如果定義“班級(jí)”關(guān)系如下:班級(jí)(班級(jí)號(hào),總?cè)霐?shù),所屬學(xué)院,班級(jí)學(xué)生)則使它不滿足第一范式的屬性是()。
A.班級(jí)號(hào)B.班級(jí)學(xué)生C.總?cè)霐?shù)D.所屬學(xué)院
9.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
10.設(shè)有一個(gè)二維數(shù)組A[m][n],假設(shè)A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個(gè)元素占一個(gè)空間,問A[3][3](10)存放在什么位置()(腳注(10)表示用10進(jìn)制表示)。
A.688B.678C.692D.696
11.
12.
13.在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱為該表的()
A.連接碼B.關(guān)系碼C.外碼D.候選碼
14.在下列語句中,其含義為“q是一個(gè)函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。
A.int**q;B.int(*q);C.int*q;D.int*q;
15.以下選項(xiàng)中不能用做C程序合法常量的是()。
A.1,234B.‘\123’C.123D.“\x7G”
16.
17.由3個(gè)結(jié)點(diǎn)可以構(gòu)造出______種不同形態(tài)的二叉樹。
A.3B.4C.5D.6
18.在軟件生存周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。
A.概要設(shè)計(jì)B.詳細(xì)設(shè)計(jì)C.可行性分析D.需求分析
19.若有定義“inta=3;doubleb=0.1263;charch=‘a(chǎn)’;”,則以下選項(xiàng)中敘述有錯(cuò)的是()。
A.逗號(hào)表達(dá)式的計(jì)算結(jié)果是最后一個(gè)表達(dá)式的運(yùn)算結(jié)果
B.運(yùn)算符“%”只能對(duì)整數(shù)類型的變量進(jìn)行運(yùn)算
C.語句“ch=(unsignedint)a+b;”是對(duì)a與b之和進(jìn)行強(qiáng)制類型轉(zhuǎn)換,結(jié)果賦值給變量ch
D.復(fù)合運(yùn)算“a*=b+ch”是將變量b、ch之和與a相乘,結(jié)果再賦值給a
20.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系C.分析算法的易懂性和可靠性D.分析算法的效率以求改進(jìn)
二、2.填空題(20題)21.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。
22.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
23.需求分析的最終結(jié)果是產(chǎn)生【】。
24.設(shè)有以下定義和語句:
inta[3][2]={1,2,3,4,5},*p[3];
p[0]=a[1];
則*(p[0]+1)所代表的數(shù)組元素是【】。
25.面向?qū)ο蟮哪P椭?,最基本概念是?duì)象和【】。
26.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
27.以下函數(shù)的功能是求x的y次方,請(qǐng)?zhí)羁铡?/p>
doublefun(doublex,inty)
{inti;
doublez;
for(i=1,z=x;i<y;i++)z=z*【】;
returnz;
}
28.程序如下:
main()
{inti=4;
printf("%d",-++i);
}
該程序執(zhí)行后的輸出結(jié)果以及i的值分別是______、_______。
29.以下程序運(yùn)行后的輸出結(jié)果是【】。
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);
}
30.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。
31.“printf("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。
32.數(shù)據(jù)的安全性是指保護(hù)數(shù)據(jù)以防止【】用戶的使用造成的數(shù)據(jù)泄密和破壞。
33.已有定義;charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。
34.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
35.閱讀下列程序,則程序的輸出結(jié)果為【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c=′y′;}
36.以下程序從輸入的10個(gè)字符串中找出最長(zhǎng)的那個(gè)串,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
#defineN10
main()
{charstr[N][81],*sp;
inti;
for(i=0;i<N;i++)gets(str[i]);
sp=str[0];
for(i=1;i<N;i++)
if(strlen(sp)<strlen(str[i]))
【】;
printf("輸出最長(zhǎng)的那個(gè)串:\n%s\n",sp);
printf("輸出最長(zhǎng)的那個(gè)串的長(zhǎng)度:%d\n",strlen(sp));}
37.下列程序的輸出結(jié)果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
38.以下程序運(yùn)行后的輸出結(jié)果是()。
#include
char*ss(char*s)
{char*p,t;
P=s+1;t=*s;
while(*p){*(P-1)=*P;P++;}
*(P-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
39.以下程序運(yùn)行后,若輸入:3,abcde<回車>,則輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
40.下面程序的運(yùn)行結(jié)果是【】。
#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<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
三、1.選擇題(20題)41.已有定義語句:intx=3,y=0,z=0;,則值為0的表達(dá)式是()
A.x&&y
B.x||z
C.x||z+2&&y-z
D.!((x<y)&&!z||y)
42.有以下程序:#include<stdio.h>main()char*p[]={"3697","2548"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。
A.35B.37C.39D.3975
43.設(shè)有以下語句,其中不是對(duì)a數(shù)組元素的正確引用的是:______(其中0≤i<10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
44.以下敘述中錯(cuò)誤的是()。
A.對(duì)于double類型數(shù)組,不可以直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變
C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出“下標(biāo)越界”的出錯(cuò)信息
D.可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)
45.下列程序段選擇項(xiàng),使i的運(yùn)行結(jié)果為3的程序段是()。
A.inti=0,j=O;(i=2,(j++)+i);
B.inti=1,j=0;j=i=((i=3)*2);
C.inti=0,j=1;(j=1)?(i=1):(i=3);
D.inti=1,j=1;i+=j+=1;
46.需求分析階段的任務(wù)是()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能
47.SQL語言又稱為______。
A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言
48.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計(jì)是描述______。
A.數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測(cè)試D.軟件控制過程
49.以下敘述正確的是______。
A.可以把define和if定義為用戶標(biāo)識(shí)符
B.可以把define定義為用戶標(biāo)識(shí)符,但不能把if定義為用戶標(biāo)識(shí)符
C.可以把if定義為用戶標(biāo)識(shí)符,但不能把define定義為用戶標(biāo)識(shí)符
D.define和if都不能定義為用戶標(biāo)識(shí)符
50.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運(yùn)行時(shí),從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是
A.anothernumber
B.anothernumberanother
C.anothernumbernumber
D.numbernumber
51.下面程序運(yùn)行后的輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
52.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復(fù)用
53.下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
main()
{staticchara[]="Languagef",b[]="programe";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.gaC.LanguageD.有語法錯(cuò)
54.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)
55.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結(jié)果是()。
A.0,7B.7,7C.0,6D.1,6
56.若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
57.設(shè)x為整型變量,n=14,n的地址為4000;m=6,m的地址為2000;執(zhí)行語句x=&n后的結(jié)果為()。
A.14B.6C.2000D.4000
58.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。
A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)
59.12.以下說法中正確的是()
A.#define和printf都是C語句
B.#define是C語句,而printf不是
C.printf是C語句,但#define不是
D.#define和printf都不是C語句
60.有以下說明和定義語句structstudent{intage;charnum[8];structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};structstudent*p=stu;};以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯(cuò)誤的是
A.(p++)->numB.p->numC.(*p).numD.stu[3].a(chǎn)ge
四、選擇題(20題)61.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.9B.7C.5D.3
62.有以下程序段
#include<stdio.h>
voidfun(char*fname,char*st)
{FILE*myf;
inti;
myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
}
main()
{fun("test.t","newworld");
fun("test.t","hello,");}
程序執(zhí)行后,文件test.t中的內(nèi)容是A.A.hello,
B.newworldhello,
C.newworld
D.hello,rld
63.
64.
以下程序的輸出結(jié)果是()。
intf(intA)
{returna%2;}
main
{ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[8]);i++)d+=s[i];
printf("%d\n",d);
}
A.9B.11C.19D.21
65.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
66.在下述程序中,判斷條件“i>j”共執(zhí)行的次數(shù)是
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d",s);
break;
}s+=i;
}
}
A.4B.7
C.5D.6
67.
則下面對(duì)m數(shù)組元素的引用中錯(cuò)誤的是()。
A.
B.
C.
D.
68.下列程序的輸出結(jié)果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112
69.HTTP協(xié)議的GET請(qǐng)求方法可以獲取()類型的數(shù)據(jù)。
A.HTML文檔B.圖片C.視頻D.以上都可以
70.在一個(gè)C源程序文件中所定義的全局變量,其作用域?yàn)椋ǎ?/p>
A.由具體定義位置和extem說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
71.
72.設(shè)有定義:charp[]={1,2,3),*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
73.
74.以下程序運(yùn)行后,輸出結(jié)果是()。
#include<stdio.h>
#definePT5.5
#defineS(x)PT*x*X
main
{inta=1,b=2:
printf("%4.1f\n",s(a+b));
}
A.49.5B.9.5C.22.0D.45.0
75.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5
76.
77.應(yīng)用數(shù)據(jù)庫的主要目的是A.A.解決數(shù)據(jù)保密問題
B.解決數(shù)據(jù)完整性問題
C.解決數(shù)據(jù)共享問題
D.解決數(shù)據(jù)量大的問題
78.一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為()。
A.對(duì)應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系
79.有以下程序,其輸出結(jié)果是()。
voidmain()
{
floarx=1;
inty;
x++;
y=x+1;
printf("x=%d,y=%f",x,y);
}
A.x=2,y=3
B.x=2,y=3.0
C.x=2.0,y=3
D.x=0,y=0.000000
80.設(shè)“intx=2,y=1;”,則表達(dá)式(!x||Y--)的值是()。
A.0B.1C.2D.-1
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算并輸出下列級(jí)數(shù)的前N項(xiàng)之和SN,直到SN+1大于q為止。q的值通過形參傳人。SN=2/1+3/2+4/3+(N+1)/N例如,若q的值為57,則函數(shù)值為59.593612。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存人XX所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過k返回。
例如,若輸入17,則應(yīng)輸出:46891012141516。注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
參考答案
1.A
2.D[解析]第一次循環(huán)溈0.i%2為0.執(zhí)行switch(a[0]%62)中的case0語句后內(nèi)容即a[0]++,a[0]的值變成3;第二次循環(huán)的值為1.i%62為1.執(zhí)行case1:a[]=0;所以a[1]的值變成0;第三次循環(huán)的值為2.i%62為0.執(zhí)行switch([2]%62)中的case1語句后的內(nèi)容a[2]--,a[2]的值變成4;第四次循環(huán)的值為3.i%2為1.執(zhí)行case1:ai]=0;所以a[3]的值變成0.
3.B
4.B
5.C
6.D
7.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達(dá)式是或的關(guān)系,所以在寫成C語言表達(dá)式應(yīng)是邏輯或的關(guān)系,邏輯或運(yùn)算符是'‖'。
8.B對(duì)于關(guān)系模式,若其中的每個(gè)屬性都已不能再分為簡(jiǎn)單項(xiàng),則它屬于第一范式模式。題目中“班級(jí)”關(guān)系的“班級(jí)學(xué)生”屬性,還可以進(jìn)行再分,如學(xué)號(hào)、姓名、性別、出生日期等,因此不滿足第一范式。本題答案為B選項(xiàng)。
9.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:S=m+n+m+n*k=1+2+1+2*3=10。
10.C
11.D
12.D
13.DD)【解析】在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個(gè)作為用戶使用的鍵稱為主鍵或主碼。
14.B本題考查指針函數(shù)。其定義的基本格式為:類型說明符(*函數(shù)名)。“類型說明符”表示返回的指針值指向的數(shù)據(jù)類型。
15.AA選項(xiàng)中逗號(hào)是一個(gè)操作符。
16.B
17.C難易程度:易
18.D解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對(duì)目標(biāo)系統(tǒng)提出清晰、準(zhǔn)確和具體的要求,即要明確系統(tǒng)必須做什么的問題。本題的正確答案為D。
19.C逗號(hào)表達(dá)式的計(jì)算結(jié)果是最后一個(gè)表達(dá)式的運(yùn)算結(jié)果,選項(xiàng)A正確;運(yùn)算符“%”是求余運(yùn)算符,只能對(duì)整數(shù)類型的變量進(jìn)行運(yùn)算,選項(xiàng)B正確;在語句“ch=(unsignedint)a+b”中,圓括號(hào)優(yōu)先級(jí)最高,所以首先將a強(qiáng)制轉(zhuǎn)換成無符號(hào)整型,再與b相加,結(jié)果賦值給ch,選項(xiàng)C錯(cuò)誤;復(fù)合運(yùn)算“a*=b+ch”,先計(jì)算“b+ch”的值,再將a與b、ch之和相乘,結(jié)果再賦值給a,選項(xiàng)D正確。故本題答案為C選項(xiàng)。
20.D解析:算法分析是指對(duì)一個(gè)算法的運(yùn)行時(shí)間和占用空間做定量的分析,一般計(jì)算出相應(yīng)的數(shù)量級(jí),常用時(shí)間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時(shí)間復(fù)雜度和空間復(fù)雜度;提高算法的執(zhí)行效。率。
21.88解析:fabs函數(shù)功能是求x的絕對(duì)值,計(jì)算結(jié)果為double型。pow功能是計(jì)算x的y次方的值,計(jì)算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。
22.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
23.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗(yàn)證性、一致性、可理解性、可修改性和可追蹤性等。
24.a[1][1]a[1][1]解析:p是一個(gè)指針數(shù)組,p[0]指向數(shù)組a[1][0]。*(p[0]+1)代表數(shù)組a[1][1]。
25.類類解析:面向?qū)ο竽P椭?,最基本的概念是?duì)象和類。對(duì)象是現(xiàn)實(shí)世界中實(shí)體的模型化:將屬性集和方法集相同的所有對(duì)象組合在一起,可以構(gòu)成一個(gè)類。
26.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴(kuò)充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。
27.xx解析:函數(shù)的定義形式為;
函數(shù)類型函數(shù)名(形參表)
{
類型說明語句;
執(zhí)行語句;
}
本題中函數(shù)的功能是:累積變量以求得變量的Y次方。
28.-55。
29.2121解析:外層switch語句后面括號(hào)里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個(gè)switch語句后面括號(hào)里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時(shí)a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。
30.可重用性繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
31.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長(zhǎng)度并作為函數(shù)的返回值,這里的長(zhǎng)度不包括串尾的結(jié)束標(biāo)志\'\\0\'。
\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號(hào):\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符;\'\\xAB\'是以兩位+六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。
5個(gè)字符常量各代表一個(gè)字符,再加上字母C,所以返回的長(zhǎng)度是6。
32.(非法)不合法(非法)不合法
33.00解析:本題考查數(shù)據(jù)類型及其運(yùn)算的邏輯運(yùn)算,c為空格字符但其ASCII碼不為0,所以!c=0,在邏輯與運(yùn)算中,只要有一項(xiàng)為假,其值為0,所以b的值為0。
34.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。
35.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以被調(diào)用函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。
36.sp=str[i]sp=str[i]解析:二維字符數(shù)組即數(shù)組的每個(gè)元素又是一個(gè)字符串,即字符串?dāng)?shù)組。題中二維數(shù)組的第一行的首地址賦給字符指針sp,使sp指向了二維字符數(shù)組的一個(gè)字符串。求字符串長(zhǎng)度函數(shù)strlen比較當(dāng)前字符串與數(shù)組的下一個(gè)元素的字符串的長(zhǎng)度,如果當(dāng)前字符串的長(zhǎng)度小于下一個(gè)元素的,則指針sp又指向了下一個(gè)元素,直到比較到數(shù)組的最后一個(gè)元素,得到的sp指針?biāo)赶虻淖址礊殚L(zhǎng)度最長(zhǎng)的字符串。
37.88解析:本程序定義了3個(gè)指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達(dá)式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(P)代表了c的存儲(chǔ)單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。
38.bcdefgha
39.cdeabcdeab解析:程序中的move函數(shù)的作用是保存輸入數(shù)組中的最后一個(gè)元素,然后從最后一個(gè)數(shù)組元素開始,依次向后移動(dòng)一個(gè)位置,再把保存的最后一個(gè)元素置于首位,循環(huán)次數(shù)由n控制。輸入3,abcde<回車>后主函數(shù)開始執(zhí)行,其中n=3,s[50]={'abcde'},z=5。第一次循環(huán),i=1時(shí),調(diào)用move(s,5)函數(shù),temp=str[4]語句把數(shù)組中最后一個(gè)元素\'e\'保存在temp中,然后i從4開始循環(huán),將str[3](字符\'d\')賦給str[4],str[2](字符\'c\')賦給str[3],……,循環(huán)結(jié)束時(shí)str所指字符串為'aabcd',再將保存在temp中的\'e\'置于首位,字符串變?yōu)?eabcd';i=2時(shí),調(diào)用move函數(shù),字符串為'deabc';i=3時(shí),調(diào)用move函數(shù),字符串為'cdeab'。最后輸出結(jié)果為'cdeab'。
40.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運(yùn)算等,某字符的大寫字母的ASCII碼值比它對(duì)應(yīng)的小寫字母ASCII碼值小32。
41.A
42.C解析:執(zhí)行main函數(shù)中的for語句,當(dāng)i=0,j=0時(shí),p[i][j]=p[0)[0]='3',滿足while循環(huán)條件,執(zhí)行循環(huán)體中的if語句得num=3,j=2,此時(shí)p[i][j]=p[0][2]='9',滿足循環(huán)條件,執(zhí)行while循環(huán)體得num=39,j=4,判斷while條件,不滿足并退出while循環(huán);再次執(zhí)行for語句,當(dāng)i=1,j=0,p[i][j]=p[1][0]=2,滿足while條件,執(zhí)行循環(huán)體中的if語句,但不符合if條件,所以num不進(jìn)行運(yùn)算,j進(jìn)行加2運(yùn)算j=2,此時(shí)p[i][j]=p[1][2]=4,if條件為假,num不進(jìn)行運(yùn)算,j進(jìn)行加2運(yùn)算j=4,再執(zhí)行while語句,條件不符合退出循環(huán)。所以結(jié)果為39。
43.D解析:觀察程序可知,a實(shí)際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個(gè)元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對(duì)a數(shù)組元素的正確引用。
44.C解析:在C語言中,除字符數(shù)組外,一個(gè)數(shù)組不能通過數(shù)組名對(duì)數(shù)姐進(jìn)行整體引用,因此選項(xiàng)A是對(duì)的。數(shù)組名中存放的是一個(gè)地址常量,它代表整個(gè)數(shù)組的首地址,因此選項(xiàng)B是對(duì)的。C語言程序在運(yùn)行過程中,系統(tǒng)不自動(dòng)檢驗(yàn)數(shù)組元素的下標(biāo)是否越界,因此選項(xiàng)C是錯(cuò)誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時(shí)數(shù)組說明符的一對(duì)方括號(hào)中可以不指定數(shù)組的大小,因此選項(xiàng)D也是正確的。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
45.D
46.DD)【解析】需求分析是軟件定義時(shí)期的最后一個(gè)階
\n段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象,充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在這些基礎(chǔ)上確定新系統(tǒng)的功能。
47.CC?!窘馕觥縎QL語言的全稱為StructuredQueryLanguage,它是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言,是一種面向數(shù)據(jù)庫的通用數(shù)據(jù)處理語言規(guī)范。它包含數(shù)據(jù)查詢語言、數(shù)據(jù)操縱語言、數(shù)據(jù)定義語言和數(shù)據(jù)控制語言4個(gè)部分。
48.B解析:從工程管理解度來看,軟件設(shè)計(jì)分兩步完成:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)(又稱結(jié)構(gòu)設(shè)計(jì))將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。
49.B解析:if是C語言中的保留字,所以不能作為用戶標(biāo)識(shí)符;define是C語言中的預(yù)編譯命令,由于C語言中的預(yù)編譯命令都是以#開頭,所以define可以作為用戶標(biāo)識(shí)符。
50.C解析:switch語句的執(zhí)行過程是:在switch后面的表達(dá)式的值和case后面常量表達(dá)式的值吻合時(shí),就執(zhí)行后面的語句.如果在該語句的后面沒有break語句,則繼續(xù)執(zhí)行下一個(gè)case,直到遇到break語句或switch多分支的結(jié)束,在switch語句中,break語句的作用是使流程跳出switch結(jié)構(gòu),終止Switch語句的執(zhí)行.本題中在for循環(huán)中嵌套了swish語句,每循環(huán)一次通過scanf()函數(shù)從鍵盤上輸入一個(gè)k值,然后執(zhí)行switch語句。for循環(huán)共循環(huán)了2次,當(dāng)i=1時(shí),從鍵盤上輸入0,使得k的值為0,執(zhí)行switch語句中case:0后面的語句,輸出another,接著執(zhí)行case:0下面的語句輸出number,退出switch語句,當(dāng)i=2時(shí),從鍵盤上輸入1,使得k的值為1,執(zhí)行switch語句中case1后面的語句,輸出number,退出switch語句.當(dāng)i=3時(shí)退出循環(huán).故最后的輸出為another、number和number,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
51.C解析:本題a[2][3]定義為一個(gè)具有兩行三列的元素的數(shù)組,malloc()函數(shù)的作用是開辟了一個(gè)長(zhǎng)度為sizeof(int)的內(nèi)存區(qū),p為指向整型數(shù)據(jù)的指針變量,程序調(diào)用fut()函數(shù),將第一行第一列對(duì)應(yīng)的元素值賦給**s,由于數(shù)組中第一行第一列對(duì)應(yīng)的元素為9,所以本題輸出值9。
52.D解析:20世紀(jì)70年代以來,提出了許多軟件設(shè)計(jì)方法,主要有①逐步求精:對(duì)復(fù)雜的問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化;②自頂向下:程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化;⑧模塊化:一個(gè)復(fù)雜問題,肯定是由若干稍簡(jiǎn)單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊,而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)優(yōu)點(diǎn)。
53.A解析:考查用指針來引用字符數(shù)組元素的方法。指針p1+k相當(dāng)于指針p1向后移動(dòng)了k個(gè)字符的位置,指針p2同理。
54.B本題主要考查C語言合法語句的定義。
在選項(xiàng)A中,a==1不是一個(gè)合法的語句,因?yàn)樗鼪]有語句結(jié)束標(biāo)識(shí)符“;”,不能說是一條語句,如果作為一個(gè)表達(dá)式,它是正確的。
在選項(xiàng)B中,由于變量i已被正確定義并有初值,“++i;”是正確的語句。
在選項(xiàng)C中,由于正確的賦值語句中,賦值符號(hào)的左邊不能為常量或表達(dá)式,而右邊不能為變量或表達(dá)式,很明顯,“a=a++=5;”違背了賦值語句的原則。
在選項(xiàng)D中,“a=int(i);”語句是不正確的,在C語言中沒有這種表示形式,如果是想將變量i強(qiáng)制轉(zhuǎn)換為整型的操作,應(yīng)該為“a=(int)i;”。
55.A解析:本題考查while循環(huán).y的值在while循環(huán)的控制表達(dá)式中加1,在循環(huán)體內(nèi)減1,所以總的y值不變,且控制條件++y永遠(yuǎn)非零。當(dāng)x加到7時(shí)不滿足循環(huán)條件,結(jié)束循環(huán)。
56.B解析:條件運(yùn)算符要求有3個(gè)操作對(duì)象,稱三目(元)運(yùn)算符,它是C語言中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為:表達(dá)式17表達(dá)式2:表達(dá)式3其求解順序是:先求解表達(dá)式1,若為非O(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。并且注意++、--的用法。
57.D解析:&是取地址運(yùn)算符,表達(dá)式x=&a是表示將a的地址賦給變量x。
58.B解析:本題中有一個(gè)陷阱,很多考生會(huì)根據(jù)程序的書寫格式來判斷:while循環(huán)的循環(huán)體為printf('y=%d\\n',y);語句。其實(shí)while的循環(huán)體是一條空語句,即y--后面的那個(gè)分號(hào)就是while的循環(huán)體。所以本題只要弄清楚表達(dá)式y(tǒng)--何時(shí)為“假”,即等于0,就能得出結(jié)果了。因?yàn)?-運(yùn)算符是后綴形式,所以表達(dá)式y(tǒng)--的值是y自減之前的值,即y等于。時(shí),表達(dá)式y(tǒng)--就等于0了。但此時(shí)的y還要被減1,所以循環(huán)結(jié)束后,y的值為-1。故應(yīng)該選擇B。
59.CC[解析]#define是宏命令,而不是C語句
60.D解析:結(jié)構(gòu)體變量也有地址,因此可以把它的地址賦值給一個(gè)指針變量,然后通過該指針變量來引用結(jié)構(gòu)體的成員,選項(xiàng)A和選項(xiàng)B就是通過指針變量來引用結(jié)構(gòu)體的成員,也可以通過結(jié)構(gòu)體數(shù)組元素的成員引用,而在選項(xiàng)D中stu[3].a(chǎn)ge不正確,因?yàn)榻Y(jié)構(gòu)體數(shù)組stu共有三個(gè)元素,其下標(biāo)應(yīng)該為0,1,2。
61.D第一次循環(huán)時(shí),k=1,在switch語句中,先執(zhí)行default后面的語句,即c=c+k=1,因?yàn)闆]有break語句,所以不會(huì)跳出switch結(jié)構(gòu),會(huì)接著執(zhí)行case2后面的語句,即c=c+1=2,然后跳出switch;第二次循環(huán)時(shí),k=2,直接執(zhí)行ease2后面的語句,即c=c+1=3,然后跳出switch語句,結(jié)束循環(huán),執(zhí)行輸出語句。
62.D本題主要考查文件的操作。在本題的程序中,首先定義了一個(gè)無返回值的函數(shù)fun,該函數(shù)帶有兩個(gè)指針類型的形參,其中第一個(gè)形參指向需要被操作文件的文件名,而第二個(gè)形參指向被操作的字符串。在函數(shù)體中,首先定義一個(gè)文件指針,然后以只寫的方式打開第一個(gè)形參所指向的文件,接著執(zhí)行for循環(huán),循環(huán)結(jié)束的條件是循環(huán)變量小于被操作字符串的長(zhǎng)度,循環(huán)體中的程序fputc(st[i],myf);的功能是將字符串中的當(dāng)前字符輸入到文件中。由這些分析我們可以知道,函數(shù)fun的作用是將字符串的內(nèi)容寫入到文件中。
在主函數(shù)中,兩次調(diào)用函數(shù)fun,當(dāng)?shù)谝淮握{(diào)用時(shí),寫入文件的內(nèi)容為newworld,然后第二次調(diào)用函數(shù),此時(shí)打開文件,文件的指針重新回到開始,然后往文件中寫內(nèi)容“hello,”,由于此時(shí)文件中已經(jīng)有內(nèi)容“newworld”,則需要覆蓋前面一部分的內(nèi)容,因此,程序的最終輸出結(jié)果是hello,rld,本題的正確答案選D。
63.B
64.A
\n在程序中當(dāng)i=0時(shí),s[o]=1,f(s[0])為1,執(zhí)行d+=s[0],d的值為1,i++也變?yōu)?。當(dāng)i=1時(shí),s[1]=3,f(s[1])為1,也為非0,繼續(xù)執(zhí)行后面的表達(dá)式,此時(shí)d的值為1+3=4,繼續(xù)著i++變?yōu)?,接著執(zhí)行for循環(huán),可知for循環(huán)的目的是把S數(shù)組中的奇數(shù)相加,因此最后d的值為1+3+5為9,故選擇A選項(xiàng)。
\n
65.A本題重點(diǎn)考察函數(shù)的調(diào)用,首先要了解字母對(duì)應(yīng)的ASCIl碼。例如A為65,a為97。即字母+1劂可得到下一個(gè)字母。-其次是函數(shù)形參和實(shí)參的問題,運(yùn)行過程如下:在fun(&b,a)中,}c=.a(chǎn)-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);輸出b,B,因?yàn)橹羔榗指向地址的值為b,此時(shí)b=}C=.b.;豳數(shù)返回執(zhí)行ptud(。%C,%c、n”,b,8);輸出b,A,因此A選項(xiàng)正確。
66.D本題主要要求我們求判斷條件“i>j”執(zhí)行的次數(shù)。在本題的程序中,首先定義了四個(gè)整型變量,并分別賦初值,然后執(zhí)行for循環(huán)結(jié)構(gòu),該循環(huán)結(jié)構(gòu)中都是缺省語句,那么如果循環(huán)體中沒有break語句,程序?qū)⒚媾R死循環(huán),從后面的程序中我們可以看出,程序中存在一條break語句。
第一次循環(huán)時(shí),變量k的值為2,變量i的值被改變?yōu)?,而此時(shí)變量j的值為10,執(zhí)行if(i>j)語句,結(jié)果為假,不執(zhí)行break語句,然后改變變量s的值,一次循環(huán)結(jié)束。
通過對(duì)這次循環(huán)的分析,我們發(fā)現(xiàn)變量k的值一直沒被改變,而變量i值的改變與變量k有關(guān),且每循環(huán)一次增加2,那么變量i的改變軌跡應(yīng)該為0,2,4,6,8,10,12,當(dāng)i等于12時(shí),其值大于j,條件判斷語句結(jié)果為真,執(zhí)行break語句,結(jié)束循環(huán)。從這里我們可以推斷出循環(huán)執(zhí)行的次數(shù)為6,因此,判斷條件“i>j”執(zhí)行的次數(shù)也為6次,本題的正確答案選D。
67.C數(shù)組m下標(biāo)從0到4計(jì)算,共5個(gè)元素,選項(xiàng)c)中m[0]=5,則m[m[0]]為m[5],超出了數(shù)組m的下標(biāo)范圍。因此正確答案為C)。
68.C當(dāng)執(zhí)行fun函數(shù)時(shí),因?yàn)閰?shù)傳遞時(shí)是地址傳遞,因此形參值的改變會(huì)影響實(shí)參中的數(shù),在執(zhí)行fun函數(shù)時(shí)先輸出12,接著把*X賦3,*y賦4,此時(shí)帶回主函數(shù)中,輸出的值為34。
69.D
70.A全局變量的作用域是從聲明處到文件的結(jié)束。所以選擇A)。
71.B
72.A選項(xiàng)A計(jì)算的是p口字符數(shù)組首地址所占的內(nèi)存字節(jié)數(shù)。選項(xiàng)8、C和D都能計(jì)算出一個(gè)字符型數(shù)據(jù)所占的字節(jié)數(shù)。
73.D
74.B本題考查函數(shù)調(diào)用,由于a+b沒有被括起來,所以s(a+b)=PT*a+b*a+b=5.5*1+2*1+2=9.5,故選擇B。
75.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時(shí),i的值為9,因此最終m的值為11。
76.D
77.C數(shù)據(jù)庫是對(duì)數(shù)據(jù)進(jìn)行操作和管理的,可以看成是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。數(shù)據(jù)庫可以被直觀地理解為存放數(shù)據(jù)的倉庫,數(shù)據(jù)庫可以對(duì)大量數(shù)據(jù)進(jìn)行管理和應(yīng)用。一個(gè)應(yīng)用數(shù)據(jù)庫的主要目的就是要實(shí)現(xiàn)數(shù)據(jù)的共享,能使應(yīng)用數(shù)據(jù)庫的數(shù)據(jù)被大量用戶使用。
78.C解析:在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個(gè)具有N個(gè)屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點(diǎn)。
79.Dfloat是4個(gè)字節(jié),int是兩個(gè)字節(jié)。當(dāng)用int取float的值時(shí),只取前兩個(gè)字節(jié)
80.B因X為2,所以!X時(shí)表達(dá)式值為0,因Y為1,y--表達(dá)式的值為1然后自減1,y為0,所以!x||y--時(shí)表達(dá)式的值為1。
81.(1)錯(cuò)誤:doubleproc(doubleq)
正確:doubleproc(intq)
(2)錯(cuò)誤:sum=sum+(n+1)/n;
正確:sum=sum+(double)(n+1)/n;
(3)錯(cuò)誤:returnsum;
正確:returnt;
【解析】由主函數(shù)中函數(shù)調(diào)用的實(shí)參可知,函數(shù)proc()的形參為int型,因此,“doubleproc(doubleq)”應(yīng)改為“doubleproc(intq)”;變量sum為double型變量,因此表達(dá)式(n+1)/n要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,因此,“sum=sum+(n+1)/n;”應(yīng)改為“sum=sum+(double)(n+1)/n;”,由函數(shù)proc()可知,變量sum中存放的是SN+1項(xiàng),而變量t表示SN項(xiàng),因此,“returnsum;”應(yīng)改為“returnt;”。
82.
【考點(diǎn)分析】
本題考查:如何判斷非素?cái)?shù);循環(huán)判斷結(jié)構(gòu);數(shù)組的引用。
【解題思路】
題目要求將l—m之問的非素?cái)?shù)存人數(shù)組中,應(yīng)使用循環(huán)判斷結(jié)構(gòu)。循環(huán)語句用來遍歷1一m之間的每個(gè)數(shù),判斷語句用來判斷該數(shù)是否為素?cái)?shù),若不是素?cái)?shù),則將其存人數(shù)組中。這道題目是考查—個(gè)數(shù)是否為素?cái)?shù)的簡(jiǎn)單延伸,只要掌握了判斷素?cái)?shù)的方法,問題便能順利解決。
【解題寶典】
判定一個(gè)數(shù)是否為素?cái)?shù),即該數(shù)除了能被l和它本身外,不能被任何數(shù)整除。
代碼實(shí)現(xiàn)為:
for(j=2;j<i;j++)if(i%j==0)/*如余數(shù)為0,證明i不是素?cái)?shù)·/
此語句需要熟記,很多判斷素?cái)?shù)的題目也可通過此法解決。2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.棧的特點(diǎn)是B,隊(duì)列的特點(diǎn)是()。
A.先進(jìn)先出B.先進(jìn)后出
2.程序運(yùn)行后的輸出結(jié)果是()。A.0304.B.2050C.3344D.3040
3.若用一個(gè)大小為6的數(shù)值來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為()。
A.1和5B.2和4C.4和2D.5和1
4.設(shè)"char**s;",以下正確的表達(dá)式是()。
A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';
5.一個(gè)有8個(gè)頂點(diǎn)的有向圖,所有頂點(diǎn)的入度出度之和與所有頂點(diǎn)的出度之和的差是()
A.16B.4C.0D.2
6.若要求在if后一對(duì)圓括號(hào)中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為()
A.a<>0B.!aC.a=0D.a
7.下列表達(dá)式中,可以正確表示的關(guān)系是()。
A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0
8.如果定義“班級(jí)”關(guān)系如下:班級(jí)(班級(jí)號(hào),總?cè)霐?shù),所屬學(xué)院,班級(jí)學(xué)生)則使它不滿足第一范式的屬性是()。
A.班級(jí)號(hào)B.班級(jí)學(xué)生C.總?cè)霐?shù)D.所屬學(xué)院
9.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
10.設(shè)有一個(gè)二維數(shù)組A[m][n],假設(shè)A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個(gè)元素占一個(gè)空間,問A[3][3](10)存放在什么位置()(腳注(10)表示用10進(jìn)制表示)。
A.688B.678C.692D.696
11.
12.
13.在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱為該表的()
A.連接碼B.關(guān)系碼C.外碼D.候選碼
14.在下列語句中,其含義為“q是一個(gè)函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。
A.int**q;B.int(*q);C.int*q;D.int*q;
15.以下選項(xiàng)中不能用做C程序合法常量的是()。
A.1,234B.‘\123’C.123D.“\x7G”
16.
17.由3個(gè)結(jié)點(diǎn)可以構(gòu)造出______種不同形態(tài)的二叉樹。
A.3B.4C.5D.6
18.在軟件生存周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。
A.概要設(shè)計(jì)B.詳細(xì)設(shè)計(jì)C.可行性分析D.需求分析
19.若有定義“inta=3;doubleb=0.1263;charch=‘a(chǎn)’;”,則以下選項(xiàng)中敘述有錯(cuò)的是()。
A.逗號(hào)表達(dá)式的計(jì)算結(jié)果是最后一個(gè)表達(dá)式的運(yùn)算結(jié)果
B.運(yùn)算符“%”只能對(duì)整數(shù)類型的變量進(jìn)行運(yùn)算
C.語句“ch=(unsignedint)a+b;”是對(duì)a與b之和進(jìn)行強(qiáng)制類型轉(zhuǎn)換,結(jié)果賦值給變量ch
D.復(fù)合運(yùn)算“a*=b+ch”是將變量b、ch之和與a相乘,結(jié)果再賦值給a
20.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系C.分析算法的易懂性和可靠性D.分析算法的效率以求改進(jìn)
二、2.填空題(20題)21.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。
22.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
23.需求分析的最終結(jié)果是產(chǎn)生【】。
24.設(shè)有以下定義和語句:
inta[3][2]={1,2,3,4,5},*p[3];
p[0]=a[1];
則*(p[0]+1)所代表的數(shù)組元素是【】。
25.面向?qū)ο蟮哪P椭校罨靖拍钍菍?duì)象和【】。
26.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
27.以下函數(shù)的功能是求x的y次方,請(qǐng)?zhí)羁铡?/p>
doublefun(doublex,inty)
{inti;
doublez;
for(i=1,z=x;i<y;i++)z=z*【】;
returnz;
}
28.程序如下:
main()
{inti=4;
printf("%d",-++i);
}
該程序執(zhí)行后的輸出結(jié)果以及i的值分別是______、_______。
29.以下程序運(yùn)行后的輸出結(jié)果是【】。
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);
}
30.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。
31.“printf("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。
32.數(shù)據(jù)的安全性是指保護(hù)數(shù)據(jù)以防止【】用戶的使用造成的數(shù)據(jù)泄密和破壞。
33.已有定義;charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。
34.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
35.閱讀下列程序,則程序的輸出結(jié)果為【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c=′y′;}
36.以下程序從輸入的10個(gè)字符串中找出最長(zhǎng)的那個(gè)串,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
#defineN10
main()
{charstr[N][81],*sp;
inti;
for(i=0;i<N;i++)gets(str[i]);
sp=str[0];
for(i=1;i<N;i++)
if(strlen(sp)<strlen(str[i]))
【】;
printf("輸出最長(zhǎng)的那個(gè)串:\n%s\n",sp);
printf("輸出最長(zhǎng)的那個(gè)串的長(zhǎng)度:%d\n",strlen(sp));}
37.下列程序的輸出結(jié)果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
38.以下程序運(yùn)行后的輸出結(jié)果是()。
#include
char*ss(char*s)
{char*p,t;
P=s+1;t=*s;
while(*p){*(P-1)=*P;P++;}
*(P-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
39.以下程序運(yùn)行后,若輸入:3,abcde<回車>,則輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
40.下面程序的運(yùn)行結(jié)果是【】。
#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<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
三、1.選擇題(20題)41.已有定義語句:intx=3,y=0,z=0;,則值為0的表達(dá)式是()
A.x&&y
B.x||z
C.x||z+2&&y-z
D.!((x<y)&&!z||y)
42.有以下程序:#include<stdio.h>main()char*p[]={"3697","2548"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。
A.35B.37C.39D.3975
43.設(shè)有以下語句,其中不是對(duì)a數(shù)組元素的正確引用的是:______(其中0≤i<10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
44.以下敘述中錯(cuò)誤的是()。
A.對(duì)于double類型數(shù)組,不可以直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變
C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出“下標(biāo)越界”的出錯(cuò)信息
D.可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)
45.下列程序段選擇項(xiàng),使i的運(yùn)行結(jié)果為3的程序段是()。
A.inti=0,j=O;(i=2,(j++)+i);
B.inti=1,j=0;j=i=((i=3)*2);
C.inti=0,j=1;(j=1)?(i=1):(i=3);
D.inti=1,j=1;i+=j+=1;
46.需求分析階段的任務(wù)是()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能
47.SQL語言又稱為______。
A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言
48.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計(jì)是描述______。
A.數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測(cè)試D.軟件控制過程
49.以下敘述正確的是______。
A.可以把define和if定義為用戶標(biāo)識(shí)符
B.可以把define定義為用戶標(biāo)識(shí)符,但不能把if定義為用戶標(biāo)識(shí)符
C.可以把if定義為用戶標(biāo)識(shí)符,但不能把define定義為用戶標(biāo)識(shí)符
D.define和if都不能定義為用戶標(biāo)識(shí)符
50.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運(yùn)行時(shí),從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是
A.anothernumber
B.anothernumberanother
C.anothernumbernumber
D.numbernumber
51.下面程序運(yùn)行后的輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
52.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復(fù)用
53.下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
main()
{staticchara[]="Languagef",b[]="programe";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.gaC.LanguageD.有語法錯(cuò)
54.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)
55.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結(jié)果是()。
A.0,7B.7,7C.0,6D.1,6
56.若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
57.設(shè)x為整型變量,n=14,n的地址為4000;m=6,m的地址為2000;執(zhí)行語句x=&n后的結(jié)果為()。
A.14B.6C.2000D.4000
58.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。
A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)
59.12.以下說法中正確的是()
A.#define和printf都是C語句
B.#define是C語句,而printf不是
C.printf是C語句,但#define不是
D.#define和printf都不是C語句
60.有以下說明和定義語句structstudent{intage;charnum[8];structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};structstudent*p=stu;};以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯(cuò)誤的是
A.(p++)->numB.p->numC.(*p).numD.stu[3].a(chǎn)ge
四、選擇題(20題)61.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.9B.7C.5D.3
62.有以下程序段
#include<stdio.h>
voidfun(char*fname,char*st)
{FILE*myf;
inti;
myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
}
main()
{fun("test.t","newworld");
fun("test.t","hello,");}
程序執(zhí)行后,文件test.t中的內(nèi)容是A.A.hello,
B.newworldhello,
C.newworld
D.hello,rld
63.
64.
以下程序的輸出結(jié)果是()。
intf(intA)
{returna%2;}
main
{ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[8]);i++)d+=s[i];
printf("%d\n",d);
}
A.9B.11C.19D.21
65.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
66.在下述程序中,判斷條件“i>j”共執(zhí)行的次數(shù)是
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d",s);
break;
}s+=i;
}
}
A.4B.7
C.5D.6
67.
則下面對(duì)m數(shù)組元素的引用中錯(cuò)誤的是()。
A.
B.
C.
D.
68.下列程序的輸出結(jié)果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112
69.HTTP協(xié)議的GET請(qǐng)求方法可以獲取()類型的數(shù)據(jù)。
A.HTML文檔B.圖片C.視頻D.以上都可以
70.在一個(gè)C源程序文件中所定義的全局變量,其作用域?yàn)椋ǎ?/p>
A.由具體定義位置和extem說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
71.
72.設(shè)有定義:charp[]={1,2,3),*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
73.
74.以下程序運(yùn)行后,輸出結(jié)果是()。
#include<stdio.h>
#definePT5.5
#defineS(x)PT*x*X
main
{inta=1,b=2:
printf("%4.1f\n",s(a+b));
}
A.49.5B.9.5C.22.0D.45.0
75.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5
76.
77.應(yīng)用數(shù)據(jù)庫的主要目的是A.A.解決數(shù)據(jù)保密問題
B.解決數(shù)據(jù)完整性問題
C.解決數(shù)據(jù)共享問題
D.解決數(shù)據(jù)量大的問題
78.一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為()。
A.對(duì)應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系
79.有以下程序,其輸出結(jié)果是()。
voidm
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2 周末巧安排 教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治二年級(jí)上冊(cè)統(tǒng)編版
- 經(jīng)營權(quán)轉(zhuǎn)讓合同模板
- 合同樣本商業(yè)地產(chǎn)項(xiàng)目投資合作協(xié)議書
- 個(gè)人向公司借款合同簡(jiǎn)例
- 1-1《子路、曾皙、冉有、公西華侍坐》教學(xué)設(shè)計(jì)-2024-2025學(xué)年高一語文下學(xué)期同步教學(xué)設(shè)計(jì)(統(tǒng)編版必修下冊(cè))
- Module 3 Unit 9 Great cities of the world(教學(xué)設(shè)計(jì))-2023-2024學(xué)年滬教牛津版(深圳用)英語六年級(jí)上冊(cè)
- 25《慢性子裁縫和急性子顧客》(教學(xué)設(shè)計(jì))-2023-2024學(xué)年統(tǒng)編版語文三年級(jí)下冊(cè)
- 豬舍購銷合同范本
- 沉降檢測(cè)合同范本
- 毛毛新車網(wǎng)合同范本
- 代工生產(chǎn)合同范本
- 瑜伽課程合同轉(zhuǎn)讓協(xié)議書范本
- 個(gè)人經(jīng)營性貸款合同模板
- 課件:《教育強(qiáng)國建設(shè)規(guī)劃綱要(2024-2035年)》學(xué)習(xí)宣講
- 2025年山東化工職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2025年全國幼兒園教師資格證考試教育理論知識(shí)押題試題庫及答案(共九套)
- 2024年鄭州電力高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫含答案解析
- 產(chǎn)品試產(chǎn)流程
- 舞臺(tái)機(jī)械基礎(chǔ)知識(shí)培訓(xùn)
- 人教版數(shù)學(xué)八年級(jí)下冊(cè) 第16章 二次根式 單元測(cè)試(含答案)
- 中學(xué)班主任培訓(xùn)內(nèi)容
評(píng)論
0/150
提交評(píng)論