




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年河南省焦作市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.
2.下列說法正確的是()。
A.在C語言中,可以使用動(dòng)態(tài)內(nèi)存分配技術(shù)定義元素個(gè)數(shù)可變的數(shù)組
B.在c語言中,數(shù)組元素的個(gè)數(shù)可以不確定,允許隨機(jī)變動(dòng)
C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致
D.在C語言中,定義一個(gè)數(shù)組后.就確定了它所容納的元素的個(gè)數(shù)
3.以下函數(shù)調(diào)用語句中含有實(shí)參個(gè)數(shù)為().func((exp1,exp2),(exp3,exp4,exp5));
A.1個(gè)B.2個(gè)C.4個(gè)D.5個(gè)
4.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf('%d,%d\n",m,i);}執(zhí)行后的輸出結(jié)果是()。
A.8,6B.8,3C.6,4D.7,4
5.
6.若用一個(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
7.恢復(fù)系統(tǒng)默認(rèn)菜單的命令是()。
A.SETMENUTODEFAULT
B.SETSYSMENUTODEFAULT
C.SETSYSTEMMENUTODEFAULT
D.SETSYSTEMTODEFAULT
8.
9.下列能正確進(jìn)行字符串賦值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={A,B,C,D,E};
C.char*S;S="ABCDE";
D.char*s;printf("%《",s);
10.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化
D.在棧中,棧中元素不會(huì)隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化
11.以下語句定義正確的是()A.A.inta[1][4]-{1,2,3,4,5};
B.floata[3][]={{1},{2},{3}};
C.longa[2][3]={{1},{1,2},{1,2,3},{0,0)};
D.doublea[][3]={O);
12.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是()。
A.4B.3C.2D.1
13.下列關(guān)于棧的敘述中,正確的是()。
A.棧底元素一定是最后入棧的元素B.棧操作遵循先進(jìn)后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對(duì)
14.下列敘述中不正確的是()。
A.在C語言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量
15.字符串”a+b=12\n”的長(zhǎng)度為()。
A.6B.7C.8D.9
16.數(shù)據(jù)庫設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()。
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
17.有以下程序:#include<stdio.h>main(){chars[]=“abcde”;s+=2;printf(“%d\n”,s[0]);}程序的運(yùn)行結(jié)果是()。
A.輸出字符c的ASCII值B.程序出錯(cuò)C.輸出字符cD.輸出字符a的ASCII值
18.
19.廣義表(a,b,c,d)的表頭是()。
A.aB.(a)C.(b,c,d)D.((b,c,c))
20.設(shè)a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式為()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
二、2.填空題(20題)21.下列程序執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=O;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
22.下面程序的輸出結(jié)果是【】。
charb[]="ABCD";
main()
{
charb[30];
strcpy(&b[0],"GH");
strcpy(&b[1],"GH");
strcpy(&b[2],"GH");
printf("%s\n",b);
}
23.數(shù)據(jù)管理技術(shù)發(fā)展過程經(jīng)過人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個(gè)階段,其中數(shù)據(jù)獨(dú)立性最高的階段是______。
24.設(shè)有宏定義:
#defineWIDTH80
#defineLENGTHWIDTH+40
則執(zhí)行賦值語句“v=LENGTH*20;"(v為int型變量)后,v的值是【】。
25.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請(qǐng)?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號(hào)表達(dá)式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
26.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d",a[i]);
}
27.以下程序的運(yùn)行結(jié)果是【】。
main()
{char*k="aeiou";
for(;*k;k++)printf("%c",*k);
}
28.在數(shù)據(jù)庫理論中,數(shù)據(jù)庫總體邏輯結(jié)構(gòu)的改變,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等,不需要修改相應(yīng)的應(yīng)用程序,稱為【】。
29.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。
30.下面程序的運(yùn)行結(jié)果是:【】。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf(“%d%d\n”,i1,i2);
}
31.下列程序的運(yùn)行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
32.若fp已正確定義為一個(gè)文件指針,d1.dat為二進(jìn)制文件,請(qǐng)?zhí)羁?,以便為“讀”而打開此文件:
fp=fopen(【】);。
33.下面程序的運(yùn)行結(jié)果是()。
#defineEXCH(a,B){intt;t=a;a=b;b=t;}
main()
{intx=1,y=2;
EXCH(x,y);
printf("x=%d,y=%d\n",x,y);
}
34.以下程序運(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);
}
35.以下涵數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。
#defineN4
voidrotade(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=【】;【】=a[N-1][i];}}
36.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
37.有以下程序
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar(
n1=ch1-'0';n2-n1*10+(ch2-'0');
printf("%d\n",n2);;
}
程序運(yùn)行時(shí)輸入:12<回車>,執(zhí)行后輸出結(jié)果是______。
38.有以下程序:
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)printf("%d,",*p);
}
程序運(yùn)行后的輸出結(jié)果是【】。
39.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
40.以下程序運(yùn)行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
三、1.選擇題(20題)41.以下程序的運(yùn)行結(jié)果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
42.有以下程序
#include<stdio.h>
#include<string.h>
typedefstruct{charname[9];charsex;floatscore[2];}STU;
voidf(STUa)
{STUb={"Zhao",′m′,850,900};inti;
strcpy(,);
a.sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
}
main()
{STUc={"Qian",′f′,95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",,c.sex,c.score[0],c.score[1]);
}
程序的運(yùn)行結(jié)果是
A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90
43.C語言中規(guī)定,程序中各函數(shù)之間()
A.既允許直接遞歸調(diào)用,也允許間接遞歸調(diào)用
B.不允許直接遞歸調(diào)用,也不允許間接遞歸調(diào)用
C.允許直接遞歸調(diào)用,不允許間接遞歸調(diào)用
D.不允許直接遞歸調(diào)用,允許間接遞歸調(diào)用
44.若有說明:inta[][3]={0,0};則不正確的敘述是()。
A.數(shù)組a的每個(gè)元素的初值都是0
B.數(shù)組a的第一維大小為1
C.數(shù)組a的行數(shù)為1
D.只有元素a[0Ⅱ0]和a10][1]可得到初值0,其余元素均得不到初值0
45.以下程序運(yùn)行后,輸出結(jié)果是
#definePT5.5
#defineS(x)PT*x*x
#include<stdio.h>
main()
{inta=1,b=2;
printf("%4.1f\n",S(a+b));}
A.49.5B.9.5C.22D.45
46.在C語言中,關(guān)于函數(shù)fseek的說法正確的是()。
A.使位置指針重新返回文件的開頭
B.使位置指針到文件的結(jié)尾
C.可以改變文件位置指針
D.利用fseek函數(shù)只能實(shí)現(xiàn)文件順序讀寫
47.以下不能對(duì)二維數(shù)組a進(jìn)行正確初始化的語句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
48.算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是_____。A.有窮性B.簡(jiǎn)潔性C.可行性D.確定性
49.字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲(chǔ)形式是______。
A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼
50.有以下程序
main()
{inti,s=0,t[]={l,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}
程序執(zhí)行后的輸出結(jié)果是
A.45B.20C.25D.36
51.設(shè)變量a、b、c、d和y都已正確定義并賦值。若有下列if語句
if(a<B)
if(c==D)y=0;
elsey=1;
該語句所表示的含義是()。
A.
B.
C.
D.
52.請(qǐng)選出可用作C語言用戶標(biāo)識(shí)符的是
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
53.以下程序段中與語句k=a>b?(b>c?1:0):0;功能等價(jià)的是()。
A.if((a>b)&&(b>c))k=1;
B.if((a>b)||(b>c))k=1;elsek=0;elsek=0;
C.if(a<=b)k=0;
D.if(a>b)k=1;elseif(b<=c)k=1;elseif(b>c)k=1;elsek=0;
54.以下程序運(yùn)行后的輸出結(jié)果是______。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
55.設(shè)有以下語句inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為______。A.6B.7C.8D.9
56.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(a,b)inta,b;{staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}
A.8,17B.8,16C.8,20D.8,8
57.假定下列程序的可執(zhí)行文件名為filel.exe,在該程序的子目錄下輸入命令行:file1ChinaBejing<回車>main(intargc,char*argv[]){while(argc-->1)printf("%s\n",*++argv);}則程序運(yùn)行后的輸出結(jié)果是()。
A.filelChinaBejingB.ChinaBejingC.ChinaD.Bejing
58.若變量已正確定義,要求程序段完成求5!的計(jì)算,不能完成此操作的程序段是()。
A.for(i=1,p=1;i<=5;i++)p*=i;
B.for(i=1;i<=5;i++){p=1;p*=i;}
C.i=1;p=1;while(i<=5){p*=i;i++;}
D.i=1;p=1;do{p*=i;i++;}while(i<=5);
59.下列程序的運(yùn)行結(jié)果是()。
#include<stdio.h>
main()
{stmctdate
{intyear,month,day;
}today;
primf("%d\n",sizeof(structdate));
}
A.8B.6C.10D.12
60.下面程序的輸出結(jié)果是()maint(){char*s="121";intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-'0';continue;}b=b+s[k]-'0';a=a+s[k]-'0'}wnile(s[k+1]);printf("k=%da=%db=%d\n",k,a,b);}
A.k=3a=2b=3B.k=3a=3b=2C.k=2a=3b=3D.k=2a=2b=3
四、選擇題(20題)61.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
62.設(shè)變量已正確定義,則下列能正確計(jì)算f=n!的程序段是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
63.有以下程序:
#include<stdio.h>
main()
{chara=H;
a=(a>=Aa<=2)?(a-A+a):a;
printf("%c\n",a);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.AB.aC.HD.h
64.以下敘述中錯(cuò)誤的是()。
A.一個(gè)C程序中可以包含多個(gè)不同名的函數(shù)
B.一個(gè)C程序只能有一個(gè)主函數(shù)
C.C程序在書寫時(shí),有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過
D.C程序的主函數(shù)必須用main作為函數(shù)名
65.若有定義floatX=1.5;inta=1,b=3,C=2;,則正確的switch語句是()。
A.
B.
C.
D.
66.
67.有以下程序:
#include<stdio.h>
main()
{chara[20],b[20],c[20];
scanf("%s%s",a,b);
gets(c);
printf("%S%S%s\n",a,b,c);
}
程序運(yùn)行時(shí)從第一列開始輸入:
Thisisacat!<回車>
則輸出結(jié)果是()。
A.Thisisacat!
B.Thisisa
C.Thisisacat!
D.Thisisacat!
68.設(shè)有定義:longx=-123456L;則以下能夠正確輸出變量x值的語句是_______。
A.printf(“x=%d\n”,x)
B.printf(“x=%ld\n”,x)
C.printf(“x=?l\n”,x)
D.printf(“x=%D\n”,x);
69.有以下程序:
執(zhí)行后輸出結(jié)果是()。
A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday
70.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
71.有以下程序
voidsort(inta[],intn)
{
inti,j,t;
for(i=0;i<n-1;i+=2)
for(j=i+2;j<n;j+=2)
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
main()
{
intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa,10);
for(i=0;i<10;i++)
printf("%d,",aa[i]);
printf("\n");
}
執(zhí)行后的輸出結(jié)果是
A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,
C.9,2,7,4,5,6,3,8,1,10D.1,10,3,8,5,6,7,4,9,2,
72.
73.
74.下列敘述中正確的是()。
A.算法的執(zhí)行效率與數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)無關(guān)
B.算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)
C.算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止
D.以上3種描述都不對(duì)
75.有以下函數(shù):
函數(shù)的功能是()。
A.將Y所指字符串賦給x所指存儲(chǔ)空間
B.查找x和y所指字符串中是否有
C.統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)
D.統(tǒng)計(jì)x和Y所指字符串中相同的字符個(gè)數(shù)
76.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測(cè)試計(jì)劃B.軟件詳細(xì)設(shè)計(jì)說明書C.用戶手冊(cè)D.軟件需求規(guī)格說明書
77.下列程序的運(yùn)行結(jié)果為()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12
78.執(zhí)行下列程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/S(k+m):printf("%d",a);}A.1B.4C.9D.0
79.
80.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是_______。A.′a′<=c<=′z′
B.(c>=′a′)||(c<=′z′)
C.(′a′=C)
D.(c>=′a′)&&(c<=′z′)
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將P所指字符串中的所有字符復(fù)制到b中,要求在每復(fù)制3個(gè)字符之后插入1個(gè)空格。
例如,若給a輸入字符串:“ABCDEFGHIJK”,調(diào)用函數(shù)后,字符數(shù)組b中的內(nèi)容為:“ABCDEFGHIJK”。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫fun函數(shù),其功能是:計(jì)算并輸出3~m所有素?cái)?shù)的平方根之和。
例如,若主函數(shù)從鍵盤給m輸入50后,則輸出為s=68.665791。
請(qǐng)勿改動(dòng)main函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
注意:m的值要大于2但不大于100。部分源程序給出如下。
試題程序:
#include<math.h>
#include<stdio.h>
doublefun(intm)
{}
voidmain
{
intm;
doubles;
FILE*out:
printf("\n\nInputm:");
scanf("%d",&m);
s=fun(m);
printf("\n\ns=%f\n\n",s);
ut=fopen("outfile.dat","w");
for(m=0;m<10;m++)
fprintf(out,"%f\n",fun(m+80));
felose(out);
}
參考答案
1.B
2.D在C語言中,數(shù)組元素的個(gè)數(shù)是確定的,不允許隨機(jī)變動(dòng),數(shù)組定義好后,它所能容納的元素的個(gè)數(shù)也就確定了,并且同一個(gè)數(shù)組中所有元素都是同一類型。
3.B
4.C解析:本題考查的知識(shí)點(diǎn)是運(yùn)算符的優(yōu)先級(jí).在復(fù)合賦值語句中,應(yīng)該由右向左依次賦值,在表達(dá)式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個(gè)選項(xiàng)中C正確。
5.C
6.B
7.BB?!窘馕觥靠疾椴藛巍T诓藛沃谢謴?fù)系統(tǒng)菜單用的是SETSYSMENUTODEFAULT。所以答案選擇B。
8.C
9.C選項(xiàng)A、B的空間不夠;字符串存儲(chǔ)要有結(jié)束符\0,且要占用一個(gè)空間,printf用來輸出字符,不能輸入字符串。
10.C棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),在對(duì)棧操作的整個(gè)過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來完成,因此本題答案為c)。
11.D本題考查的是如何對(duì)二維數(shù)組進(jìn)行賦值。選項(xiàng)A)中數(shù)組第二維的大小是4,但卻給賦了5個(gè)元素;選項(xiàng)B)中C語言規(guī)定,對(duì)于二維數(shù)組,只可以省略第一個(gè)方括號(hào)中的常量表達(dá)式而不可以省略第二個(gè)方括號(hào)中的常量表達(dá)式:選項(xiàng)c)中數(shù)組第一維的大小是2,但是賦值卻超過了2;選項(xiàng)D)中在對(duì)二維數(shù)組元素賦初值時(shí),可以只對(duì)部分元素賦初值,未賦初值的元素自動(dòng)取0。
12.B解析:通過分析不難寫出,f()函數(shù)的數(shù)學(xué)表達(dá)式為:
f(n)=1n=l;
f(n)=f(-1)+1n≠1;
在主函數(shù)中for循環(huán)執(zhí)行了兩次函數(shù)調(diào)用f(i)。第一次:i為1,調(diào)用f(1)得到返回值1,并把它加到j(luò)中,j的值為1。第二次i為2,調(diào)用f(n),根據(jù)遞歸公式可知f(2)=f(1)+1,得到返回值2并把它加到j(luò)中,j的值為3。所以最后輸出,i的值為3。
13.B棧是先進(jìn)后出,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。
14.B解析:編譯時(shí),編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時(shí),編譯系統(tǒng)根據(jù)需要要臨時(shí)分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。
15.B
16.A解析:模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)是概念設(shè)計(jì)的兩種方法。物理設(shè)計(jì)是根據(jù)特定的計(jì)算機(jī)系統(tǒng),對(duì)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和存取方法進(jìn)行設(shè)計(jì),從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計(jì)和行為特性-設(shè)計(jì)是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個(gè)特性。結(jié)構(gòu)特性的設(shè)計(jì),設(shè)計(jì)各級(jí)數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計(jì),改變實(shí)體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動(dòng)態(tài)特性)。
17.B在C語言中,數(shù)組名類似于一個(gè)指向數(shù)組首地址的指針常量,一旦定義就不能修改其內(nèi)容。所以本題中的“s+=2;”語句讓數(shù)組名S的內(nèi)容加2是錯(cuò)誤的,編譯無法通過。故本題答案為B選項(xiàng)。
18.B
19.A
20.D
21.1212解析:本題的第一個(gè)for循環(huán)用于給數(shù)組arr賦初值,第二個(gè)for循環(huán)用于求和運(yùn)算。由于第二個(gè)for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。
22.GGGHGGGH解析:由于在函數(shù)main中定義了數(shù)組變量b,其將屏蔽全局變量b。對(duì)于一維數(shù)紐變量,其值為一常數(shù),等于數(shù)組首元素地址。strcpy(&b[0],'GH'),是將字符串'GH'復(fù)制到數(shù)組b中從首元數(shù)開始的空間中,此是b中的字符串為”叫”:strcpy(&b[1],'GH'),是將字符串'GH'復(fù)制到數(shù)組b中從第二個(gè)元素開始的空間中,此是b中的字符串為“GH”。執(zhí)行第三次strcpy函數(shù)后,b中的字符串為'GGGH'。
23.數(shù)據(jù)庫系統(tǒng)或數(shù)據(jù)庫系統(tǒng)階段或數(shù)據(jù)庫或數(shù)據(jù)庫階段或數(shù)據(jù)庫管理技術(shù)階段數(shù)據(jù)庫系統(tǒng)或數(shù)據(jù)庫系統(tǒng)階段或數(shù)據(jù)庫或數(shù)據(jù)庫階段或數(shù)據(jù)庫管理技術(shù)階段解析:在數(shù)據(jù)庫系統(tǒng)管理階段,數(shù)據(jù)是結(jié)構(gòu)化的,是面向系統(tǒng)的,數(shù)據(jù)的冗余度小,從而節(jié)省了數(shù)據(jù)的存儲(chǔ)空間,也減少了對(duì)數(shù)據(jù)的存取時(shí)間,提高了訪問效率,避免了數(shù)據(jù)的不一致性,同時(shí)提高了數(shù)據(jù)的可擴(kuò)充性和數(shù)據(jù)應(yīng)用的靈活性;數(shù)據(jù)具有獨(dú)立性,通過系統(tǒng)提供的映象功能,使數(shù)據(jù)具有兩方面的獨(dú)立性:一是物理獨(dú)立性,二是邏輯獨(dú)立性;保證了數(shù)據(jù)的完整性、安全性和并發(fā)性-綜上所述,數(shù)據(jù)獨(dú)立性最高的階段是數(shù)據(jù)庫系統(tǒng)管理階段。
24.880
25.s[i++]s[i++]解析:本題中為了能實(shí)現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實(shí)現(xiàn)。
26.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個(gè)元素輸出到文件fp中兩次,共10個(gè)字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個(gè)字節(jié)的數(shù)據(jù)到數(shù)組a中,此時(shí)數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結(jié)果為'1,2,3,0,0,1,2,3,0,0,'。
27.aeiou
28.邏輯獨(dú)立性邏輯獨(dú)立性解析:數(shù)據(jù)庫總體邏輯結(jié)構(gòu)改變,而不需要相應(yīng)修改應(yīng)用程序叫做邏輯獨(dú)立性。
29.非線性結(jié)構(gòu)非線性結(jié)構(gòu)
30.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。
31.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
32.d1.dat"rb"d1.dat,'rb'解析:打開文件的函數(shù)為fopen('文件名','mode'),其中'mode'表示文件的打開方式。如果打開的是二進(jìn)制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開。'w'表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件。'a'為追加方式打開。若文件存在時(shí),將打開這個(gè)文件并且在文件的末尾進(jìn)行追加。當(dāng)文件不存在,將創(chuàng)建新文件。'r+'打開一個(gè)已存在文件用于更新(可讀可寫)。\'w+'創(chuàng)建一個(gè)新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。'a+'打開用于追加,當(dāng)文件不存在時(shí),創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫)。根據(jù)題意,應(yīng)該填'd1.dat','rb'。
33.x=2y=1
34.bcdefgha
35.a[0][i]b[i][o]a[0][i]\r\nb[i][o]解析:b[i][N-1]=a[0][i]實(shí)現(xiàn)把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b[i][0]=a[N-1][i]實(shí)現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中。
36.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
37.1212解析:本題考核的知識(shí)點(diǎn)是字符類型數(shù)據(jù)的表示方法和存儲(chǔ)形式。字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價(jià)為與其相應(yīng)的ASCII碼的整數(shù),還可以作為整數(shù)參加運(yùn)算。在本題中,n1=ch1-'0'='1'-'0'=49-48=1n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后輸出為12。
38.12345678901,2,3,4,5,6,7,8,9,0,解析:p指向a的首地址。a+10表示的是a[10]的地址,嘲此此程序的功能就是輸出數(shù)組a。
39.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è)。
40.30253025解析:本題考核的知識(shí)點(diǎn)是變量的存儲(chǔ)屬性和算術(shù)運(yùn)算的應(yīng)用。本題涉及了自動(dòng)變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個(gè)外部變量a,它是一個(gè)全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲(chǔ)空間在程序的整個(gè)運(yùn)行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個(gè)一個(gè)靜態(tài)變量a,此靜態(tài)變量a是個(gè)靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動(dòng)變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動(dòng)進(jìn)行的,auto是自動(dòng)變量的存儲(chǔ)類別標(biāo)識(shí)符,如果省略auto,系統(tǒng)隱含認(rèn)為此變量為auto,本題中main()中intc=20定義了一個(gè)自動(dòng)變量c,此自動(dòng)變量c是個(gè)靜態(tài)的局部變量.算術(shù)運(yùn)算中a+=b++相當(dāng)于a=a+b,b=b+1.所以,在第一個(gè)ptine('%d',a)中a=a+b=10+20=30,第二個(gè)printf('%d',a)中a=a+c=5+20=25,即輸出3025。
41.B解析:由于在main()函數(shù)中,變量i=4,所以就調(diào)用fun(4),則輸出“m=4k=4”。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的“printf('i=%dk=%d\\n',i,k);”語句輸出“i=5k=5”。
42.A解析:本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)傳遞問題。程序在調(diào)用函數(shù)f時(shí),傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個(gè)拷貝,函數(shù)f的所有操作只是針對(duì)這個(gè)數(shù)據(jù)拷貝進(jìn)行的修改,這些都不會(huì)影響變量c的值。
43.A解析:本題考查函數(shù)調(diào)用的基本概念。在函數(shù)調(diào)用時(shí),只要符合函數(shù)的使用,程序中的各個(gè)函數(shù)間既可以直接調(diào)用其他函數(shù),也可以遞歸調(diào)用其自身。
44.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時(shí)應(yīng)注意兩點(diǎn):①在對(duì)二維數(shù)組元素賦初值時(shí),可以只對(duì)部分元素賦初值,未賦初值的元素自動(dòng)取0。②二維數(shù)組第一維的大小由如下規(guī)則確定:當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小;當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),第一維的大小等于所得商數(shù)加1。
45.A解析:考查宏替換的使用。宏替換用'#define宏名宏體'的形式來定義。在進(jìn)行編譯預(yù)處理時(shí),將把程序中宏定義之后的所有宏名用宏體替換。宏雖然可以帶參數(shù),但宏替換過程中不像函數(shù)那樣要進(jìn)行參數(shù)值的計(jì)算、傳遞及結(jié)果返回等操作;宏替換只是簡(jiǎn)單的字符替換,不進(jìn)行計(jì)算,因而本題中的S(a+b)進(jìn)行宏替換后為PT*1+2*1+2=5.5*1+2*1+2=9.5。
46.C解析:fseek()函數(shù)可以自由的改變文件位置指針的位置,即可以自由讀寫文件中的任何位置,故選項(xiàng)A、B、D都是錯(cuò)誤的,應(yīng)該選擇C。
47.C解析:關(guān)于二維數(shù)組的初始化,我們需要掌握如下方法:①所賦初值個(gè)數(shù)與數(shù)組元素的個(gè)數(shù)相同;②所賦初值行數(shù)少于數(shù)組行數(shù)時(shí),系統(tǒng)將自動(dòng)給后面各行的元素補(bǔ)初值0;③在給二維數(shù)組賦初值時(shí)可以不用行花括號(hào)對(duì)。選項(xiàng)C)應(yīng)該是inta[3][2]={{1,2},{3,4},{5,6,}};
48.B解析:一個(gè)算法應(yīng)當(dāng)具有以下5個(gè)特性:有窮性;確定性;可行性;有零個(gè)或多個(gè)輸入;由一個(gè)或多個(gè)輸出.簡(jiǎn)潔性不屬于這5個(gè)特性,所以本題應(yīng)該選擇B。
49.D解析:將—個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲(chǔ)單元中。
50.C解析:統(tǒng)計(jì)1~9九個(gè)數(shù)中的奇數(shù)和,此題考察指向數(shù)組的指針。C語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素的地址。因此*(t+i)代表數(shù)組的第i+1個(gè)元素。程序運(yùn)行的結(jié)果是1+2+3+4+5+6+7+8+9=25。
51.C解析:語句if(c==d)y=0;elsey=1;是if(a<b)語句的一個(gè)子句。所以整個(gè)C語句表達(dá)式的意思是:在a<b的情況下,如果c=d則y=0,否則y=1。所以,選項(xiàng)C)為正確答案。
52.B解析:C語言規(guī)定用戶標(biāo)識(shí)符由字母、數(shù)字和下畫線組成,且第一個(gè)字符必須是字母或下畫線,可見選項(xiàng)C),D)是錯(cuò)誤的;此外,C語言不允許用戶將關(guān)鍵字作為標(biāo)識(shí)符,而選項(xiàng)A)中的void正是C語言的關(guān)鍵字。
53.A解析:條件運(yùn)算符“?:”是三目運(yùn)算符,運(yùn)算規(guī)則為如果?前面的表達(dá)式的值為真,則?。呵氨磉_(dá)式的值,否則,取:后面表達(dá)式的值。分析題目中給出的表達(dá)式可知,如果a>b成立則表達(dá)式的值為表達(dá)式b>c?1:0的值,如果b>c成立,則該表達(dá)式的值為1,即a>b和b>c同時(shí)成立時(shí),k=1。當(dāng)b>c不成立時(shí),k=0;當(dāng)a>b不成立時(shí),k=0,即a>b和b>c不能同時(shí)成立時(shí),k=0。選項(xiàng)A符合題意。
54.B
55.D解析:此題考核的是C語言的位運(yùn)算,有括號(hào)的先算括號(hào)內(nèi)的數(shù)據(jù),所以先對(duì)b進(jìn)行左移運(yùn)算:b換算成二進(jìn)制0000\u30000010,左移后變?yōu)?000\u30001000,然后再與a進(jìn)行異或運(yùn)算(參與運(yùn)算的兩個(gè)對(duì)應(yīng)位相同,則為0,相異則為1)結(jié)果為0000\u30001001,換算成是進(jìn)制數(shù)結(jié)果為9。對(duì)于左移運(yùn)算也可直接用此規(guī)則:左移1位相當(dāng)于該數(shù)乘以2,左移2位相當(dāng)于該數(shù)乘以22(上標(biāo))=4,依此類推。所以答案選D。
56.A
57.B解析:主函數(shù)的第一個(gè)參數(shù)argc為整形參數(shù),記下從命令行輸入的參數(shù)的個(gè)數(shù);第二個(gè)參數(shù)argv是一個(gè)字符型的指針數(shù)組,它的每一個(gè)指針指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為3,argv[0]指向字符串.“filel”,argv[l]指向參數(shù)字符串“China”,argv[2]指向字符串“Bejing”。在main()函數(shù)中,while循環(huán)執(zhí)行了2次。第1次循環(huán),argc=3,3>1為真,argc-1=3-1=2,執(zhí)行循環(huán)體輸出*++argv,argv為字符型的指針數(shù)組的數(shù)組名,代表數(shù)組的首地址,同時(shí)也是數(shù)組第1個(gè)元素的地址,++argv指向數(shù)組的第2個(gè)元素,第2個(gè)元素是一個(gè)指針,它指向字符串“China”。第2次循環(huán),argc=2,2>1為真,argc-1=2-1=1,執(zhí)行循環(huán)體輸出*++argv,這次循環(huán)畔++argv指向數(shù)組的第3個(gè)元素,第3個(gè)元素是一個(gè)指針,它指向字符串“Bejing”。argc=1時(shí),1>1為假,退出循環(huán)。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
58.B解析:選項(xiàng)B中for循環(huán)了5次,而每次循環(huán)的時(shí)候,都將p的值重新賦值為1后,再乘以當(dāng)前數(shù)字i,所以最后的結(jié)果為5,顯然不是5!的值,同樣的分析可知選項(xiàng)A、選項(xiàng)C和選項(xiàng)D計(jì)算的都是5!。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
59.B解析:解答本題需要注意兩個(gè)知識(shí)點(diǎn):①結(jié)構(gòu)體變量的長(zhǎng)度是其內(nèi)部成員長(zhǎng)度的總和,本題中,structdate中包含year、month、day這3個(gè)整型變量,一個(gè)整型變量占2個(gè)字節(jié):②sizeof是求所占字節(jié)數(shù)的運(yùn)算符。
60.C
61.B模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A錯(cuò)誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度,所以C與D錯(cuò)誤。故答案為B選項(xiàng)。
62.D解析:要正確計(jì)算函數(shù)f=n!,由n!的數(shù)學(xué)定義可知n!=n*(n-1)*(n-2)*……*1。在選項(xiàng)A)中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,……,n。最后計(jì)算f=n!=O,所以選項(xiàng)A)不正確。在選項(xiàng)B)中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,……,(n-1)。最后計(jì)算得到f=(n-1)!,所以選項(xiàng)B)不正確。在選項(xiàng)C)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項(xiàng)C)不正確。在選項(xiàng)D)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n-1,n-2,……,2。最后計(jì)算f=n!,所以選項(xiàng)D)正確。
63.D\n多元運(yùn)算符問號(hào)前面表達(dá)式為真,所以(a-A+a)賦值給a,括號(hào)里的運(yùn)算是把大寫字母變成小寫字母,所以答案應(yīng)為選項(xiàng)D。
\n
64.C【答案】C
【知識(shí)點(diǎn)】C程序的函數(shù)
【解析】C程序必須有且只有一個(gè)主函數(shù)main()。一個(gè)C程序可以包含多個(gè)不重名的子函數(shù)。C程序在書寫時(shí)沒有嚴(yán)格的縮進(jìn)要求,語句前的縮進(jìn)隨意。
65.Bc語言中,switch語句專用于實(shí)現(xiàn)多分支結(jié)構(gòu)程序,其特點(diǎn)是各分支清晰且直觀。switch后面括號(hào)中可以是任何表達(dá)式,取其整數(shù)部分與各常量表達(dá)式進(jìn)行比較。常量表達(dá)式中不能出現(xiàn)變量,且類型必須是整型、字符型或枚舉型,各常量表達(dá)式各不相同。
66.A
67.D答案為D,空格表示結(jié)束,則c里面的內(nèi)容為'acat!',前面沒有空格。
68.B
69.CP指向字符串”tuesday”,因此*(P+1)的值為n。s[0]=”monday”。
70.A外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為l,打印1*1=1;內(nèi)循環(huán)第二次j的值為2,打印1$2=2;內(nèi)循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內(nèi)循環(huán)。
71.Csort函數(shù)的功能實(shí)際上是對(duì)數(shù)組中奇數(shù)位置上的數(shù)進(jìn)行從大到小排序。排序后的結(jié)果應(yīng)該為9,2,7,4,5,6,3,8,1,10。
72.B
73.D
74.C在程序設(shè)計(jì)中,算法執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)。算法的空間復(fù)雜度是指算法執(zhí)行過程中所需存儲(chǔ)空間。
75.C本題中由循環(huán)條件可知遇到‘\0’或x與y所指的字符的值不等中的一個(gè)條件時(shí)就結(jié)束,所以功能是統(tǒng)計(jì)x和Y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。
76.D需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評(píng)審四個(gè)方面。所以選擇D。
77.Bstructdate中包含year、month、day這3個(gè)整型變量,一個(gè)整型變量占2個(gè)字節(jié);sizeof是求所占字節(jié)數(shù)的運(yùn)算符。
78.D本題主要考查帶參數(shù)的宏定義,過程如下:由于定義為define(x)x*x沒有括號(hào)優(yōu)先級(jí),所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。
79.C
80.D
81.(1)錯(cuò)誤:b[k]=p;
正確:b[k]=*p;
(2)錯(cuò)誤:b[k]=ˊ\0ˊ;
正確:b[k]=ˊˊ;k++
【解析】此題,首先要知道函數(shù)的參數(shù)類型可以是整型、實(shí)型、字符型和指針型。此處正是指針類型變量作為函數(shù)的參數(shù),因此應(yīng)該是“b[k]=*p”,而不是“b[k]=p”;題目要求在3個(gè)字符后加1個(gè)空格,通過條件表達(dá)式“i<=3&&*p”,①找到不需移動(dòng)的字符(從第4個(gè)位置開始。每隔3個(gè)字符)并將其存入數(shù)組b中;②此時(shí)下標(biāo)落到了需要移動(dòng)的字符的位置,在數(shù)組b中此位置插入空格,具體語句為:“b[k]=ˊˊ;k++”,繼續(xù)執(zhí)行①直到處理到字符串p的最后一個(gè)字符。
82.\r\n\tintn,k,i;
doublesum=0.0;
for(n=3;n<=m;n++)//判斷n是否為素?cái)?shù)
{
k=sqrt(n);//求n平方根
for(i=2;i<=k:i++)
if(n%i==0)break;//如果n不是素?cái)?shù),跳出
if(i>=k+1)
sum+=sqrt(n);//求平方根的和
}
returnsum;
【解析】首先判斷循環(huán)中n是否為素?cái)?shù),如果不是素?cái)?shù),求其平方根的累加和,并返回計(jì)算結(jié)果,否則跳出判斷循環(huán)。其中,對(duì)于平方根的求解可以使用C語句中的sqrt函數(shù)。2021-2022年河南省焦作市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.
2.下列說法正確的是()。
A.在C語言中,可以使用動(dòng)態(tài)內(nèi)存分配技術(shù)定義元素個(gè)數(shù)可變的數(shù)組
B.在c語言中,數(shù)組元素的個(gè)數(shù)可以不確定,允許隨機(jī)變動(dòng)
C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致
D.在C語言中,定義一個(gè)數(shù)組后.就確定了它所容納的元素的個(gè)數(shù)
3.以下函數(shù)調(diào)用語句中含有實(shí)參個(gè)數(shù)為().func((exp1,exp2),(exp3,exp4,exp5));
A.1個(gè)B.2個(gè)C.4個(gè)D.5個(gè)
4.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf('%d,%d\n",m,i);}執(zhí)行后的輸出結(jié)果是()。
A.8,6B.8,3C.6,4D.7,4
5.
6.若用一個(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
7.恢復(fù)系統(tǒng)默認(rèn)菜單的命令是()。
A.SETMENUTODEFAULT
B.SETSYSMENUTODEFAULT
C.SETSYSTEMMENUTODEFAULT
D.SETSYSTEMTODEFAULT
8.
9.下列能正確進(jìn)行字符串賦值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={A,B,C,D,E};
C.char*S;S="ABCDE";
D.char*s;printf("%《",s);
10.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化
D.在棧中,棧中元素不會(huì)隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化
11.以下語句定義正確的是()A.A.inta[1][4]-{1,2,3,4,5};
B.floata[3][]={{1},{2},{3}};
C.longa[2][3]={{1},{1,2},{1,2,3},{0,0)};
D.doublea[][3]={O);
12.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是()。
A.4B.3C.2D.1
13.下列關(guān)于棧的敘述中,正確的是()。
A.棧底元素一定是最后入棧的元素B.棧操作遵循先進(jìn)后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對(duì)
14.下列敘述中不正確的是()。
A.在C語言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量
15.字符串”a+b=12\n”的長(zhǎng)度為()。
A.6B.7C.8D.9
16.數(shù)據(jù)庫設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()。
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
17.有以下程序:#include<stdio.h>main(){chars[]=“abcde”;s+=2;printf(“%d\n”,s[0]);}程序的運(yùn)行結(jié)果是()。
A.輸出字符c的ASCII值B.程序出錯(cuò)C.輸出字符cD.輸出字符a的ASCII值
18.
19.廣義表(a,b,c,d)的表頭是()。
A.aB.(a)C.(b,c,d)D.((b,c,c))
20.設(shè)a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式為()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
二、2.填空題(20題)21.下列程序執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=O;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
22.下面程序的輸出結(jié)果是【】。
charb[]="ABCD";
main()
{
charb[30];
strcpy(&b[0],"GH");
strcpy(&b[1],"GH");
strcpy(&b[2],"GH");
printf("%s\n",b);
}
23.數(shù)據(jù)管理技術(shù)發(fā)展過程經(jīng)過人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個(gè)階段,其中數(shù)據(jù)獨(dú)立性最高的階段是______。
24.設(shè)有宏定義:
#defineWIDTH80
#defineLENGTHWIDTH+40
則執(zhí)行賦值語句“v=LENGTH*20;"(v為int型變量)后,v的值是【】。
25.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請(qǐng)?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號(hào)表達(dá)式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
26.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d",a[i]);
}
27.以下程序的運(yùn)行結(jié)果是【】。
main()
{char*k="aeiou";
for(;*k;k++)printf("%c",*k);
}
28.在數(shù)據(jù)庫理論中,數(shù)據(jù)庫總體邏輯結(jié)構(gòu)的改變,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等,不需要修改相應(yīng)的應(yīng)用程序,稱為【】。
29.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。
30.下面程序的運(yùn)行結(jié)果是:【】。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf(“%d%d\n”,i1,i2);
}
31.下列程序的運(yùn)行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
32.若fp已正確定義為一個(gè)文件指針,d1.dat為二進(jìn)制文件,請(qǐng)?zhí)羁眨员銥椤白x”而打開此文件:
fp=fopen(【】);。
33.下面程序的運(yùn)行結(jié)果是()。
#defineEXCH(a,B){intt;t=a;a=b;b=t;}
main()
{intx=1,y=2;
EXCH(x,y);
printf("x=%d,y=%d\n",x,y);
}
34.以下程序運(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);
}
35.以下涵數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。
#defineN4
voidrotade(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=【】;【】=a[N-1][i];}}
36.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
37.有以下程序
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar(
n1=ch1-'0';n2-n1*10+(ch2-'0');
printf("%d\n",n2);;
}
程序運(yùn)行時(shí)輸入:12<回車>,執(zhí)行后輸出結(jié)果是______。
38.有以下程序:
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)printf("%d,",*p);
}
程序運(yùn)行后的輸出結(jié)果是【】。
39.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
40.以下程序運(yùn)行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
三、1.選擇題(20題)41.以下程序的運(yùn)行結(jié)果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
42.有以下程序
#include<stdio.h>
#include<string.h>
typedefstruct{charname[9];charsex;floatscore[2];}STU;
voidf(STUa)
{STUb={"Zhao",′m′,850,900};inti;
strcpy(,);
a.sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
}
main()
{STUc={"Qian",′f′,95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",,c.sex,c.score[0],c.score[1]);
}
程序的運(yùn)行結(jié)果是
A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90
43.C語言中規(guī)定,程序中各函數(shù)之間()
A.既允許直接遞歸調(diào)用,也允許間接遞歸調(diào)用
B.不允許直接遞歸調(diào)用,也不允許間接遞歸調(diào)用
C.允許直接遞歸調(diào)用,不允許間接遞歸調(diào)用
D.不允許直接遞歸調(diào)用,允許間接遞歸調(diào)用
44.若有說明:inta[][3]={0,0};則不正確的敘述是()。
A.數(shù)組a的每個(gè)元素的初值都是0
B.數(shù)組a的第一維大小為1
C.數(shù)組a的行數(shù)為1
D.只有元素a[0Ⅱ0]和a10][1]可得到初值0,其余元素均得不到初值0
45.以下程序運(yùn)行后,輸出結(jié)果是
#definePT5.5
#defineS(x)PT*x*x
#include<stdio.h>
main()
{inta=1,b=2;
printf("%4.1f\n",S(a+b));}
A.49.5B.9.5C.22D.45
46.在C語言中,關(guān)于函數(shù)fseek的說法正確的是()。
A.使位置指針重新返回文件的開頭
B.使位置指針到文件的結(jié)尾
C.可以改變文件位置指針
D.利用fseek函數(shù)只能實(shí)現(xiàn)文件順序讀寫
47.以下不能對(duì)二維數(shù)組a進(jìn)行正確初始化的語句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
48.算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是_____。A.有窮性B.簡(jiǎn)潔性C.可行性D.確定性
49.字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲(chǔ)形式是______。
A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼
50.有以下程序
main()
{inti,s=0,t[]={l,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}
程序執(zhí)行后的輸出結(jié)果是
A.45B.20C.25D.36
51.設(shè)變量a、b、c、d和y都已正確定義并賦值。若有下列if語句
if(a<B)
if(c==D)y=0;
elsey=1;
該語句所表示的含義是()。
A.
B.
C.
D.
52.請(qǐng)選出可用作C語言用戶標(biāo)識(shí)符的是
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
53.以下程序段中與語句k=a>b?(b>c?1:0):0;功能等價(jià)的是()。
A.if((a>b)&&(b>c))k=1;
B.if((a>b)||(b>c))k=1;elsek=0;elsek=0;
C.if(a<=b)k=0;
D.if(a>b)k=1;elseif(b<=c)k=1;elseif(b>c)k=1;elsek=0;
54.以下程序運(yùn)行后的輸出結(jié)果是______。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
55.設(shè)有以下語句inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為______。A.6B.7C.8D.9
56.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(a,b)inta,b;{staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}
A.8,17B.8,16C.8,20D.8,8
57.假定下列程序的可執(zhí)行文件名為filel.exe,在該程序的子目錄下輸入命令行:file1ChinaBejing<回車>main(intargc,char*argv[]){while(argc-->1)printf("%s\n",*++argv);}則程序運(yùn)行后的輸出結(jié)果是()。
A.filelChinaBejingB.ChinaBejingC.ChinaD.Bejing
58.若變量已正確定義,要求程序段完成求5!的計(jì)算,不能完成此操作的程序段是()。
A.for(i=1,p=1;i<=5;i++)p*=i;
B.for(i=1;i<=5;i++){p=1;p*=i;}
C.i=1;p=1;while(i<=5){p*=i;i++;}
D.i=1;p=1;do{p*=i;i++;}while(i<=5);
59.下列程序的運(yùn)行結(jié)果是()。
#include<stdio.h>
main()
{stmctdate
{intyear,month,day;
}today;
primf("%d\n",sizeof(structdate));
}
A.8B.6C.10D.12
60.下面程序的輸出結(jié)果是()maint(){char*s="121";intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-'0';continue;}b=b+s[k]-'0';a=a+s[k]-'0'}wnile(s[k+1]);printf("k=%da=%db=%d\n",k,a,b);}
A.k=3a=2b=3B.k=3a=3b=2C.k=2a=3b=3D.k=2a=2b=3
四、選擇題(20題)61.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
62.設(shè)變量已正確定義,則下列能正確計(jì)算f=n!的程序段是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
63.有以下程序:
#include<stdio.h>
main()
{chara=H;
a=(a>=Aa<=2)?(a-A+a):a;
printf("%c\n",a);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.AB.aC.HD.h
64.以下敘述中錯(cuò)誤的是()。
A.一個(gè)C程序中可以包含多個(gè)不同名的函數(shù)
B.一個(gè)C程序只能有一個(gè)主函數(shù)
C.C程序在書寫時(shí),有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過
D.C程序的主函數(shù)必須用main作為函數(shù)名
65.若有定義floatX=1.5;inta=1,b=3,C=2;,則正確的switch語句是()。
A.
B.
C.
D.
66.
67.有以下程序:
#include<stdio.h>
main()
{chara[20],b[20],c[20];
scanf("%s%s",a,b);
gets(c);
printf("%S%S%s\n",a,b,c);
}
程序運(yùn)行時(shí)從第一列開始輸入:
Thisisacat!<回車>
則輸出結(jié)果是()。
A.Thisisac
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Module 6 Unit 3 language in use 教學(xué)設(shè)計(jì) 2024-2025學(xué)年外研版八年級(jí)英語上冊(cè)
- 舊市場(chǎng)修復(fù)工程項(xiàng)目可行性研究報(bào)告-老舊市場(chǎng)設(shè)施老化修復(fù)改造需求迫切
- 2024年12月漯河市行政審批和政務(wù)信息管理局所屬事業(yè)單位招才引智引進(jìn)人才公開招聘2人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 第 7 單元 第二十章第二節(jié) 生物圈是生物的共同家園2023-2024學(xué)年八年級(jí)上冊(cè)生物同步教學(xué)設(shè)計(jì)(蘇教版)
- 第18章 生物圈中的微生物教學(xué)設(shè)計(jì)2023-2024學(xué)年北師大版生物八年級(jí)上冊(cè)
- 3-2《哦香雪》(教學(xué)設(shè)計(jì))高一語文同步高效課堂(統(tǒng)編版 必修上冊(cè))
- 新能源汽車?yán)碚撃M習(xí)題及答案
- 第13課《 湖心亭看雪》教學(xué)設(shè)計(jì)2024-2025學(xué)年統(tǒng)編版語文九年級(jí)上冊(cè)
- 2025年鉛及鉛合金材合作協(xié)議書
- 4《地球 我們的家園》《環(huán)境問題敲響了警鐘》教學(xué)設(shè)計(jì)-2023-2024學(xué)年道德與法治六年級(jí)下冊(cè)統(tǒng)編版
- 月度安全生產(chǎn)例會(huì)匯報(bào)材料
- 2025年春季學(xué)期學(xué)校團(tuán)委工作計(jì)劃(附團(tuán)委工作安排表)
- 2025公文寫作考試題庫(含參考答案)
- 2025年湖南科技職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2024年安徽省高校分類考試對(duì)口招生語文試卷真題(含答案)
- 2025年蘇州健雄職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年南京信息職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 如何管理好一家公寓
- 2025年零售業(yè)員工職業(yè)發(fā)展規(guī)劃與培訓(xùn)
- 2025年八省聯(lián)考高考語文試題真題解讀及答案詳解課件
- 《復(fù)合材料電纜溝蓋板》團(tuán)體標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論