版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年內蒙古自治區(qū)巴彥淖爾市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下函數的時間復雜度和空間復雜度為()A.T(n)=O(2^n),S(n)=O(n)
B.T(n)=O(1),S(n)=O(1)
C.T(n)=O(2^n),S(n)=O(1)
D.T(n)=O(n),S(n)=O(n)
2.有嵌套的if語句:if(a<b) if(a<c)k=a; elsek=c;elseif(b<c)k=b;elsek=c;以下選項中與上述if語句等價的語句是()。
A.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
B.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
C.k=(a<b)?a:b;k=(b<c)?b:c;
D.k=(a<b)?a:b;k=(a<c)?a:c;
3.如果樹的的結點A有4個兄弟,而且B為A的雙親,則B的度為()。
A.3B.4C.5D.1
4.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數值為9的表達式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
5.
6.
7.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運行后的輸出結果是()。
A.6B.7C.5D.8
8.下列關于return語句的敘述中正確的是()。
A.—個自定義函數中必須有一條return語句
B.—個自定義函數中可以根據不同情況設置多條return語句
C.定義成void類型的函數中可以有帶返回值的return語句
D.沒有return語句的自定義函數在執(zhí)行結束時不能返回到調用處
9.下面C程序段中count++語句執(zhí)行的次數為()A.15B.16C.31D.32
10.下列程序的運行結果是()。
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
11.以下程序的輸出結果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
12.
13.有以下程序:
程序運行后的輸出結果是()。
A.1,2,6,24,120,B.1,2,3,4,5,C.1,1,1,1,1,D.1,2,4,6,8,
14.以下程序執(zhí)行后sum的值是()。
A.15
B.14
C.不確定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
15.
16.設a=l,b=2,c=3,d=4,則表達式:“a<b?a:b<b?a:c<d?a:d”的結果為()。A.4B.3C.2D.1
17.已知:intx,y;doublez;則以下語句中錯誤的函數調用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);
B.scanf("%1d*%d&1f",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);
D.scanf("%x%o%6.2f",&x,&y,&z);
18.已定義c為字符型變量,則下列語句中正確的是()。
A.c='97'B.c="97"C.c=97D.c="a"
19.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結果是()。
A.7B.6C.8D.無確定值
20.下列程序段的時間復雜度為()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)
二、2.填空題(20題)21.算法的基本特征主要包括叫個方面,它們分別是可行性、確定性、()和擁有足夠的情報。
22.在使用putchar和getchar函數處理字符時,必須在程序的開頭出現(xiàn)包含頭文件的命令行是【】。
23.以下程序段打開文件后,先利用fseek函數將文件位置指針定位在文件末尾,然后調用ftell函數返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
24.下面程序的輸出結果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}
25.在Windows環(huán)境下,可以利用單擊、雙擊、拖動這三種鼠標操作之一的【】操作實現(xiàn)窗口的移動。
26.以下程序的輸出結果是【】。
#defineMAX(x,y)(x)>(y)?(x)L:(y)
main()
{inta=5,b=2,C=3,d=3,t;
t=MAX(a+b,c+D)*10;
printf("%d\n",t);
}
27.下面程序段的輸出結果是【】。
intx=5;
do{printf("%d",x-=4);
}while(!(--x));
28.將以下程序寫成三目運算表達式是【】。
if(a>b)max=a;
elsemax=b;
29.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
30.下面程序的功能是用來統(tǒng)計文件中字符個數。請?zhí)羁铡?/p>
#include"stdio.h"
main()
{longcount=OL;
FILE*fp=【】("text.dat","r");
if(fp==0)
{printf("Openerror\n");
exit(0);
}
while(【】)
{
fgetc(fp);
count++;
}
fclise(fp);
printf("%1d\n",count);
}
31.數據庫管理系統(tǒng)常見的數據模型有層次模型、網狀模型和【】3種。
32.下列程序的運行結果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
33.實體之間的聯(lián)系可以歸結為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個學校有許多學生,而一個學生只屬于一個學校,則實體集學校與實體集學生之間的聯(lián)系屬于【】的聯(lián)系。
34.若有以下程序:
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
執(zhí)行后的輸出結果是【】。
35.在面向對象程序設計中,從外面看只能看到對象有外部特征,而不知道也無需知道數據的具體結構以及實現(xiàn)操作的算法,這稱為對象的______。
36.下面程序執(zhí)行后輸出的結果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
37.買來一張新盤后,在存入文件前,必須進行【】處理。
38.以下程序運行后的輸出結果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
39.設有以下程序,為使之正確運行,請在橫線中填入應包含的命令行。(注:try_me()函數在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
40.數據管理技術發(fā)展過程經過人工管理、文件系統(tǒng)和數據庫系統(tǒng)三個階段,其中數據獨立性最高的階段是______。
三、1.選擇題(20題)41.單個用戶使用的數據視圖的描述稱為______。
A.外模式B.概念模式C.內模式D.存儲模式
42.以下不合法的用戶標識符是______。A.j2KEYB.DoubleC.4dD._8_
43.已知i、j、k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1、i的值為2、k的值為3,以下選項中正確的輸入語句是
A.scanf(“%2d%2d%2d”,&i,&j,&k);
B.scanf(“%d%d%d”,&i,&j,&k);
C.scanf(“%d,%d,%d”,&i,&j,&k);
D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
44.有以下程序:voidswap1(int*a,int*b){int*c=a;a=b,b=c;}voidswap2(int*a,int*b){intc=*a;*a=*b,*b=c;}main(){inta=10,b=15;swap1(&a,&b);printf("%d,%d,",a,b);a=10,b=15;swap2(&a,&b);printf("%d,%d",a,b);}其輸出結果為______。
A.15,10,10,15B.15,10,15,10C.10,15,10,15D.10,15,15,10
45.有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序運行后的輸出結果是______。
A.3B.4C.5D.6
46.變量a所占的內存字節(jié)數是______。
A.4
B.5
C.6
D.8unionU{charst[4];inti;longl;};StructA{intc;unionUu;}a;
47.閱讀下列程序段,則程序的輸出結果為#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}
A.3B.5C.6D.8
48.下面的程序執(zhí)行后,文件test.t中內容是______。#include<stdio.h>voidfun(char*fName,char*st){FILE*myf;inti;myf=fopm(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}
A.hello,B.newworldhelloC.newworldD.hello.rld
49.設有定義:#defineSTR"12345";,則以下敘述中正確的是()
A.宏名STR代替的是數值常量12345
B.宏定義以分號結束,編譯時一定會產生錯誤信息
C.宏名STR代替的是字符串"12345";
D.宏名STR代替的是字符串常量"12345"
50.c語言規(guī)定,在一個源程序中,main函數的位置()。
A.必須在最開始B.必須在系統(tǒng)調用的庫函數的后面C.可以任意D.必須在最后
51.下面程序的運行結果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
52.下列選項中不符合良好程序設計風格的是A.源程序要文檔化B.數據說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設計要保證高耦合、高內聚
53.下列程序的輸出結果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j==3‖k++==3))printf("%d%d%d\n",i,j,k);}
A.123B.234C.223D.233
54.在一棵二叉樹上第5層的結點數最多是______。
A.8B.16C.32D.15
55.有以下程序:voidfun(intk){staticinta[5];inti;for(i=0;i<5;i++){a[i]+=i+k,printf("%d",a[i]);}printf("\n");}main(){fun(1);fun(2);}程序的輸出結果是()
A.12345357911
B.隨機數
C.1234523456
D.12345246810
56.若有如下程序:voidsub(){inta,b;a=lO;b=20;printf("%d,%d\n",b,a);}main(){inta=1O,b=20;sub();printf("%d,%d\n"'a'b);}則程序運行后的輸出結果是()。
A.10,20B.20,1020,10C.20,10D.10,2010,2020,10
57.有以下程序:voidswapl(intc0[],intc1[]){intt;t=co[o];co[o]=o1[o];c1[o]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5},b[2]=A{3,5);swapl(a,a+1);swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}程序運行后的輸出結果是______。
A.3553B.5335C.3535D.5353
58.下列字符數組初始化語句中,不正確的是()。
A.charc[]=\goodmorning';
B.charc[20]="goodmorning";
C.charc[]={'a','b','c','d');
D.charc[]={"goodmorning");
59.以下程序的輸出結果是________。#include<stdio.h>mam(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,B);}
A.6,1B.2,1C.6,0D.2,0
60.下列敘述中正確的是()。
A.在面向對象的程序設計中,各個對象之間具有密切的關系
B.在面向對象的程序設計中,各個對象都是公用的
C.在面向對象的程序設計中,各個對象之間相對獨立,相互依賴性小
D.上述3種說法都不對
四、選擇題(20題)61.
下列程序中函數sort()的功能是對數組a中的數據進行由大到小的排序。
#include<stdio.h>
voidsort(inta[],intll)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=j+1+1;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{inta[10]一{1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序運行后的輸出結果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
62.下列選項中不符合良好程序設計風格的是()。
A.數據說明的次序要規(guī)范化
B.程序中要有必要的注釋
C.對所有輸入的數據都要進行檢查,確保數據的合法性
D.程序的效率第一,清晰第二
63.
64.
65.若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。
A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c):
C.scanf("%d",p);
D.scanf("%d",&p);
66.
以下程序的輸出結果是()。
main
{inta=1,b;
for(b=1,b<=10;b++)
{if(a>=8)break;
if(a%2==1){a+=5;continue;}
a=3;}
printf("%d\n",b);
A.3B.4C.5D.6
67.設有intx=11;則表達式(x++*1/3)的值是()。
A.3B.4C.11D.12
68.
69.視圖設計一般有3種設計次序,下列不屬于視圖設計次序的是()。
A.自頂而下B.由內向外C.由外向內D.自底向上
70.為用戶與數據庫系統(tǒng)提供接口的語言是
A.高級語言B.數據描述語言(DDL)C.數據操縱語言(DML)D.匯編語言
71.有以下程序:
程序運行后的輸出結果是()。
A.AfternoonB.ftemoonC.MorningD.oming
72.在關系數據庫中,用來表示實體之間聯(lián)系的是()。
A.二維表B.E—R圖C.元組D.文件
73.下列是用戶自定義標識符的是()。
A._wlB.3_xyC.intD.LINE-3
74.
75.(65)軟件設計包括軟件的結構、數據接口和過程設計,其中軟件的過程設計是指()
A.模塊間的關系
B.系統(tǒng)結構部件轉換成軟件的過程描述
C.軟件層次結構
D.軟件開發(fā)過程
76.
77.有以下程序程序運行后的輸出結果是()。
A.3B.0C.7D.8
78.
79.以下選項中與“if(a==l)a=b;elsea++;”語句功能不同的switch語句是()。
A.switch(a){casel:a=b;break;default:a++;}
B.switch(a==l){case0:a=b;break;casel:a++;}
C.switch(a){default:a++;break;casel:a=b;}
D.switch(a==l){casel:a=b;break;case0:a++;}
80.以下對一維數組c進行正確的定義初始化的語句是
A.intc[10]=0;B.intc[10]={0}*10;
C.intc[1]={0,0,0,0,0,0,0};D.intc[10]={0};
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:對M名學生的學習成績,按從低到高的順序找出前m(m≤10)名學生來,并將這些學生數據存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數值返回。
請修改程序中的錯誤,使它能得到正確結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.請編寫一個函數proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數放在數組a中,通過n返回這些數的個數。
例如,若傳給m的值為70,則程序輸出:
7111421222833354244495556636670
注意:部分源程序給出如下。
請勿改動main函數和其他函數中的任何內容,僅在函數proc的花括號中填人所編寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidproc(intm,int*a,int*n)
{}
voidmain
{
intarr[N],n,k;
system("CLS");
proc(70,arr,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)//每行輸出20個數
{printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
參考答案
1.A
2.B題目中嵌套語句的含義是當“a<b”且“a<c”成立時,將a的值賦給k。如果“a<b”成立而“a<c”不成立,則將c的值賦給k。如果“a<b”不成立而“b<c”成立,則將b的值賦給k。如果“a<b”不成立且“b<c”也不成立,則將c的值賦給k。判斷條件表達式,只有B選項可以表示這個含義。故本題答案為B選項。
3.C
4.B解析:在C語言的數組元素的引用方法,我們在前面已經講過了,比如數組元素a[0],可以用表達式*(p+0),即*p來引用,對于數組元素a[1],可以用表達式*(p+1)來引用,在這里,p+1的值就是數組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數組元素a[2],則可以用表達式。(p+2)來引用…,對于數組元素a[9],可以用表達式,(p+9)來引用。因此,當指針變量p指向a數組的起始地址時,若0≤i<10,則數組元素a[i]可以用*(p+i)來表示。
5.C
6.D
7.A解析:在主函數main()中,語句“sum(&a[2]);”把數組元素a[0]的地址傳遞給了sun函數的形參a[],使得sum函數中的“(a+0)”為主函數中a[2]的地址,所以a[-1]的值為主函數中a[1]的值;a[1]的值為主函數中a[3]的伉,故函數sum中a[0]=2+4=6,由于此函數中的a是指向主函數中的a[2],所以a[2]的值為6。
8.B在函數中允許有多個return語句,但每次調用只能有一個return語句被執(zhí)行,因此只能返回一個函數值,A選項描述錯誤。定義成void類型的函數,不允許從該函數取得返回值,也不允許使用return語句,C選項描述錯誤。沒有return語句的函數在執(zhí)行到函數的最后一條語句后會自動返回到調用處,D選項描述錯誤。故本題答案為B選項。
9.A
10.D本題考查while循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,x++后值為1,x自加變成2,進入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1.循環(huán)條件成立,進入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執(zhí)行break語句。退出循環(huán)。結果為D。
11.A循環(huán)的作用是求行下標從1到2列下標從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。
12.D
13.Astatic靜態(tài)變量只在聲明時初始化一次。mul()累乘,第一次init=1,init}=val,第二次init=1,val=2,第三次init=2,val=3,第四次init=6,val=4,第五層init=24,val=5,因此結果為l,2,6,24,120。故答案為A選項。
14.C解析:C語言中,如果對定義的變量沒有賦初值,那么在后面使用時,變量的值是不確定的。所以,本程序中,沒有對sum賦初值,它的值不確定。在執(zhí)行了for循環(huán)語句后,sum的值也不確定的,所以,4個選項中選項C符合題意。
15.B
16.D在三目運算符中,優(yōu)先級相同,按從右到左的結合性計算,a<b?a:(c<d?a:d)c<d成立所以取值a,同理可得,選擇D選項
17.BB項的格式應該為scanf("%1d*%d%1f",&x,&y,&z);
18.C解析:本題考核的知識點是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項B和選項D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項B和選項D不正確。因為在C語言中,字符常量在存儲時,并不是把該字符本身放到內存單元中去,而是將該字符的相應的ASCII代碼放到存儲單元中,所以C語言使字符型數據和整形數據之間可以通用,選項C正確.而選項A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項A不正確,所以,4個選項中選項C符合題意。
19.A解析:本題定義了一個指向由3個元素組成的一維數組的指針變量pa,通過賦值讓它指向具有2行3列的數組a,此時用指針變量pa,表示數組元素a[i][j]的形式是pa[i][j]。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1][0]-1,執(zhí)行后a[1][0]的值變?yōu)?;第二次i值為1,執(zhí)行pa[1][1]=pa[1)[1]-1,執(zhí)行后a[1][1]的值為4;第三次i值為2,執(zhí)行pa[1][2]=1,執(zhí)行后a[1][2]的值變?yōu)?。故printf語句輸入的值為2+4+1=7。所以,A選項為所選。
20.C
21.有窮性有窮性
22.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函數時,必須在程序的開頭出現(xiàn)包含頭文件#include'stdio.h'的命令行。putchar的函數調用形式為:putchar(字符變量或字符常量);getchar函數的調用形式為:變量=getchar();getchar后的一對圓括號內沒有參數,但這一對圓括號不可少。
23.fopenfopen解析:C語言中的文件分為:ASCII文件與二進制j文件。文件在使用前打開,使用后要關閉。打開文件的函數為:fopen(),調用形式為:fp=fopen('文件名','使用文件方式:);
關閉文件的函數為:fclose(),調用形式為:fclose(fp);其中fp為文件指針。
24.aa解析:本程序先將指針ptr1和ptr2分別指向字符數組a和b,然后通過指針的移動比較a和b中是否有相同的字符。若有相同的字符則將其輸出。
25.拖動拖動
26.77解析:在C語言中,宏定義是直接替換的,所以在對表達式MAX(a+b,c+d)*10進行替換后,表達式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。
在這個條件表達式中,(a+b)>(c+d)為真,所以用(a+b)的值為整個表達式的值(否則用(c+d)*10的值作為整個表達式的值),而(a+b)的值為7。所以整個表達式的值為7。
27.1-41-4解析:題目中首先讓x=5,然后進入do-while循環(huán)體,輸出x-4的值1,此時x為1,表達式!(--x)的值為!(0)為真(此時x變?yōu)?),所以再次執(zhí)行循環(huán)體,輸出x-4的值-4,此時x為-4,表達式!(--x)的值為!(—5)為假,退出循環(huán)。故輸出結果是1-4。
28.max=(a>b)?a:b;max=(a>b)?a:b;解析:本題考查三目運算符的用法,條件運算符要求有三個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式1?表達式2:表達式3所以,我們可以寫成(a,b)?a:b,它是一個“條件表達式”。執(zhí)行順序是:如果(a>b)條件為真,則條件表達式取值a,否則取值b。注意:逗號表達式的執(zhí)行原理。
29.43214321解析:靜態(tài)存儲類的局部變量其生存期為整個程序的運行期間,作用域卻只是定義它的函數或局部范圍。注意:局部變量和全局變量的作用域。
30.fopen!feof(fp)fopen\r\n!feof(fp)解析:第一空從右邊的括號中可以看出,這里應該填入一個fopen,整條語句用來打開一個名為text.dat的文件。第二空是一個while循環(huán)的循環(huán)條件表達式,循環(huán)體每次讀取一個字符,并讓count增1,所以循環(huán)條件應該是“如果文件還沒結束”,故應該填!feof(fp)。
31.關系模型關系模型解析:數據庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數據庫之間的一個標準接口。其總是基于某種數據模型,可以分為層次模型、網狀模型和關系模型。
32.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
33.一對多一對多解析:實體之間的聯(lián)系可以歸結為一對一、一對多與多對多。如果一個學校有許多學生,而一個教師只歸屬于一個學生,則實體集學校與實體集學生之間的聯(lián)系屬于一對多的聯(lián)系。
34.77解析:本題考查英文字母ASCII碼值的概念。字符參與運算的值是其對應的ASCII碼,字符H的ASCII碼為72,A的ASCII碼為65,0的ASCII碼為48,所以a=72-65+48=55,ASCII碼值為55的字符是7。
35.對象具有5個基本特點:①標識唯一性;②分類性;③多態(tài)性;④封裝性;⑤模塊獨立性好。其中,封裝性是指從外面看只能看到對象的外部特征,對象的內部特征即處理能力的實行和內部狀態(tài),對外是不可見的,對象的內部狀態(tài)只能由其自身改變。\r\n\r\n
36.22解析:本題變量m既是外部變量(值是13),又是fun函數的局部變量(值為3)。函數fun(x*y-m)的值為7*5-3=32,在main函數中,fun(a,b)/m中的m應取外部變量的值13,因此輸出2。
37.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)
38.8888解析:C語言規(guī)定,以0開頭的整型常量為八進制。另外,在primf()函數中,%X表示以十六進制無符號形式輸出一個整數,且十六進制中的ABCDEF為大寫字母。本題的輸出應該是八進制210的十六進制形式。將八進制轉換為十六進制,可以先將其轉換為二進制。因為1位八進制表示3位二進制,4位二進制表示1位十六進制。(210)8=(10001000)2=(88)16,故本題輸出為880
39.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數的存儲分類的概念。如果沒有特別說明,函數的存儲范圍是從定義函數的位置到文件的結尾,如果其他文件想使用這個函數,需要用ginclude文件包含命令將定義函數的文件包含進來。
40.數據庫系統(tǒng)或數據庫系統(tǒng)階段或數據庫或數據庫階段或數據庫管理技術階段數據庫系統(tǒng)或數據庫系統(tǒng)階段或數據庫或數據庫階段或數據庫管理技術階段解析:在數據庫系統(tǒng)管理階段,數據是結構化的,是面向系統(tǒng)的,數據的冗余度小,從而節(jié)省了數據的存儲空間,也減少了對數據的存取時間,提高了訪問效率,避免了數據的不一致性,同時提高了數據的可擴充性和數據應用的靈活性;數據具有獨立性,通過系統(tǒng)提供的映象功能,使數據具有兩方面的獨立性:一是物理獨立性,二是邏輯獨立性;保證了數據的完整性、安全性和并發(fā)性-綜上所述,數據獨立性最高的階段是數據庫系統(tǒng)管理階段。
41.A解析:選項A)正確,外模式是用戶的數據視圖,也就是用戶所見到的數據模式;選項B)不正確,全局數據視圖的描述稱為概念模式,即數據庫中全部數據的整體邏輯結構的描述;選項C)不正確,物理存儲數據視圖的描述稱為內模式,即數據庫在物理存儲方面的描述;選項D)不正確,存儲模式即為內模式。
42.C解析:C語言規(guī)定標識符只能由字母、數字和下劃線三種符號組成,而且第—個字符必須是字母或下劃線。大寫字母和小寫字母被認為是兩個不同的字符,用戶在定義標識符時應做到“見名知意”,且不允許使用關鍵字作標識符。
43.C解析:本題考查的知識點是輸入函數scanf()基本用法。使用該語句時,要求除格式控制符以外的字符都要原樣輸入,“,”為非格式符,要原樣輸入。選項A,輸入格式描述為“%2d%2d%2d”,輸入要用空格隔開,不滿足鍵盤輸入1,2,3的條件,故A錯誤:選項B中,輸入格式描述符為“%d%d%d”,輸入也要用空格隔開,故錯誤:選項D中,輸入格式描述符為“i=%d,i=%d,k=%d”,應該從鍵盤輸入i=1,j=2,k=3,才能使得i,j,k的值為1,2,3,故選項D錯誤。4個選項中C正確。
44.D解析:C語言規(guī)定,實參變量對形參變量的數據傳遞是“值傳遞”,只由實參傳給形參,而不能由形參傳回來給實參。在內函數調用結束后,形參單元被釋放,實參單元仍保留并維持原值。本題中swapl()函數中,雖然改變了形參指針的值,但實參指針的值并沒有改變,所以執(zhí)行第一個printf后應輸出10,15,swap2()函數實現(xiàn)了交換兩個變量a和b的值,因此執(zhí)行第三個printf后輸出交換后的值15,10,所以本題答案為D。
45.B解析:本題是考查手工模擬執(zhí)行程序的能力。a初值是1,循環(huán)開始時b值為1,由于a>=8為假,不執(zhí)行break,但a%2==1為真,執(zhí)行a+=5,a值變?yōu)?,再執(zhí)行continue跳過不執(zhí)行a-=3語句,而立即開始下一次循環(huán)。這時b值為2,由于a值為6,a>=8仍為假,不執(zhí)行break,但a%2==1為假,不執(zhí)行復合語句“{a+=5;continue;}”而執(zhí)行a-=3,a值變?yōu)?。再開始下一次循環(huán),這時b值為3。由于a值為3,a>=8仍為假,不執(zhí)行break,但a%2==1為真,執(zhí)行a+=5,a值變?yōu)?,再執(zhí)行continue跳過不執(zhí)行a-=3語句,而立即開始下一次循環(huán)。這時b值為4。由于a值為8,a>=8為真,執(zhí)行break,停止for循環(huán)。此時輸出的b值應為4。
46.C解析:結構體變量所占內存長度是各成員占內存長度之和,而共用體變量所占的內存長度等于最長的成員的長度。本題結構體變量a中成員c為整型占2個字節(jié),共用體變量u最大長度為4個字節(jié),故選C。
47.A解析:帶參數的宏定義命令行形式如下:#define宏名(形參表)替換文本。首先進行M的宏替換,之后再進行N的宏替換,替換后的表達式為(a)*(b)/(C)。
48.A解析:C語言中文件有文本文件與二進制文件,對文件的使用前必須先打開,打開方式有只讀、寫入、讀寫等方式。
49.C
50.C解析:不論main函數在整個過程中的位置如何,一個C程序總是從main函數開始執(zhí)行的。
51.B解析:考查用指針引用字符串元素的方法。指針a通過數組元素下標來從頭逐個地引用字符串item中的字符,判斷不是0~9之間的數字時,就去掉這個字符,所以程序結束后,字符串item中就只剩下和兩個字符了。
52.D解析:編程風格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護性。更直接地說,風格就是意味著要按照規(guī)則進行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當的標識符、適當的注解和程序的視覺組織等。(2)數據說明。出于閱讀理解和維護的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個說明語句的說明符后,數據名應按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運行效率,但goto語句的使用會破壞程序的結構特性。因此,除非確實需要,否則最好不使用goto語句。因此,本題的正確答案是D。
53.D解析:本題考查自增運算符“++”、邏輯與運算符“&&”和邏輯或運算符“‖”。自增運算符“++”,出現(xiàn)在變量之前(如題中的中++n),表示先使變量的值加1,再使用變量的值進行運算:出現(xiàn)在變量之后(如題中的n++),表示先使用變量的值進行運算,再使變量的值加1。當邏輯與運算符“&&”兩邊的運算對象都為真時,邏輯表達式的值才為真;當邏輯或運算符“‖”左邊的運算對象為真時,其值就為真,不用計算其右邊的運算對象的值.所以根據運算符的優(yōu)先級,題中應先計算內層括號中的值。++j是先自加后運算,因此運算時j的值等于3,所以表達式++j=3成立,即表達式的值為1;由于1與任何數都為進行或(‖)運算,結果都為1,因此k=3;最后計算“&&”之前的表達式,i++是先運算后自加,因此運算時i為1,所以i++=1成立,自加1后i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。
54.B[答案]B
[考點]數據結構與算法
[評析]依次從上到下,可得出:
第1層結點數為1;
第2層結點數為2*1=2;
第3層結點數為2*2=4;
第n層結點數為2的n-1次冪
55.A
56.C解析:程序首先調用sub()子函數,在子函數中輸出子函數自己的變量b和a(20,10),然后主函數再輸出主函數中的變量a和b(10,20)。故應該選擇C。
57.A解析:swapl(a,a+1)是將a,a+1的地址進行傳遞,運行swapl以后,a[0],a[1]的值不發(fā)生改變,而swap2(&b[0],&b[1])是將兩個指針所指的元素進行傳遞,運行swap2后,b[0]與b[1]的值互換。
58.A解析:本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②C語言中沒有字符串變量,只能用字符數組來存儲字符串。
選項A)中一個單引號內放了若干個字符是錯誤的;選項B)和選項D)選項中將一個字符串賦值給一個字符數組是允許的。
59.B解析:第—個表達式中,運算的方向是從左至右,所以a的值為2;第二個表達式中,等式右邊是—個邏輯表達式,由于結果為真,所以表達式的值為1,即b為1。
60.C本題考查對面向對象的理解。面向對象的程序設計是對象模擬問題領域中的實體,各對象之間相對獨立,相互依賴性小,通過消息來實現(xiàn)對象之間的相互聯(lián)系。
61.C
\n本程序中的函數sort(inta[],intn)實現(xiàn)的功能是將數組a中的前n個數進行從大到小排序。sort(&a[1],7)是將數組中從a[1]~a[7]這7個數進行從大到小排序,其他數不變。
\n
62.D當今占主導地位的程序設計觀點是“清晰第一,效率第二”。在結構化程序設計思想提出之前,程序設計曾強調程序的效率,但如今實際應用中,人們更重視程序的可理解性。
63.C
64.D
65.C
\n題中整型指針變量P存放的是變量C的地址。所以本題答案為C。
\n
66.B
\n當b=1時,a=1,第二個if語句成立,此時a=6,返回for循環(huán);當b=2,兩個if語句都為假,此時a=3,再返回循環(huán);當b=3,第二個if成立,此時a=8,繼續(xù)循環(huán);當b=4,第一個if成立,退出for循環(huán)體時b為4,a為8。
\n
67.A解析:當自加運算符做后綴表達式的時候,表達式的值不變,只有變量的值增加1,所以表達式(x++*1/3)相當于(11*1/3),值為3。
68.D
69.C視圖設計的設計次序分3種:自頂向下、自底向上和由內向外。它們?yōu)橐晥D設計提供了具體的操作方法,設計者可根據實際情況靈活掌握。
70.C數據定義語言(DDL),例如:CREATE、DROP、ALTER等語句。
\u3000\u3000數據操作語言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(刪除)語句。
\u3000\u3000數據查詢語言(DQL),例如:SELECT語句。
\u3000\u3000數據控制語言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等語句。
71.A本題主函數中定義了一個指針數組a,可以將它看成一個以字符指針為元素的一維數組。和一般的一維數組名能賦給同類型指針變量一樣,該字符指針數組也可以賦給指向字符指針的指針,所以數組名a可以用做函數fun()的實參。在fun()函數中,++P操作使形參P往后移動一個字符指針的位置,即指針a[1]的位置。故最后通過礎nd()函數輸出的字符串為“Afternoon”。因此A選項正確。
72.A\n關系數據庫系統(tǒng)采用關系模型作為數據的組織形式。在關系模型中用二維表來表示實體及實體問的聯(lián)系。
\n
73.Ac語言規(guī)定用戶標識符由英文字母、數字和下劃線組成,且第一個字符必須是字母或下劃線,由此可見選項S),D)是錯的;此外,C語言不允許用戶將關鍵字作為標識符,而選項c)中的int是c語言的關鍵字。
74.B
75.B
76.B
77.A本題中遇到‘\\’字符循環(huán)結束,因此只統(tǒng)計‘\\’之前的數字字符,結果為3。
78.D
79.B題中當a的值為l時,關系表達式a==l的值為真,即1,因此程序將跳轉到easel執(zhí)行a++操作,與題干程序剛好相反。
80.D本題主要考查數組的定義和初始化。在本題中,考查的是一維數組的定義和初始化操作。一維數組的定義格式為:
數據類型說明數組名[n];
一維數組的初始化格式為:
數據類型說明數組名[n]={元素1,元素2,……,元素n};
或者
數據類型說明數組名[]={元素1,元素2,……,元素n};
另外,在定義數組和初始化數組時需要注意:
(1)定義數組時的n值只能使用常量,不能使用變量。
(2)定義數組時可以不標明數組元素的個數,而是通過賦初值的方式確定。
(3)數組初始化時,數組的元素類型必須與定義的類型一致,當初值的個數小于整型常量n時,編譯系統(tǒng)會自動補0。一旦給定初值數超過n,編譯系統(tǒng)將報錯。
綜上所述,不難找出本題正確的答案為D,在選項A和B中,數組的定義方式都是正確的,但初始化的方法不正確;在選項C中,賦值的元素個數超過了數組定義的大小,在編譯時系統(tǒng)會報錯。81.(1)錯誤:*t=calloe(m,sizeof(STU));
正確:(structss*)calloc(m,sizeof(STU));
(2)錯誤:for(i=j=0;i<M;j++)
正確:for(i=j=0;i<M;i++)
(3)錯誤:t[k].s=b[j].s;
正確:t[k]=b[j];
【解析】由函數proc()可知,變量t是指向動態(tài)存儲空間的變量,因此不能間接訪問運算符,而函數calloc的返回值類型為void*,要進行顯式類型轉換,因此“*t=calloc(m,si-zeof(STU));”應改為“(structss*)calloc(m,sizeof(STU));”。
由程序可知,變量i為控制學生個數的變量,因此“for(i=j=
82.\n\tvoidproc(intm,int*a,int*n)
\n{
\ninti,j=0;
\nfor(i=1;i<=m;i++)//進行m次循環(huán)
\nif(i%7==0||i%11==0)//能被7或11整除的所有整數
\na[j++]=i;//符合條件的數放在數組a中
\n*n=j;//返回這些數的個數
\n}
\n【解析】本題需要先判斷1~m每一個整數能否被7或11整除,然后將符合條件的整數放在數組a中,最后將符合條件的數的個數通過形參n返回主函數。\n2021年內蒙古自治區(qū)巴彥淖爾市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下函數的時間復雜度和空間復雜度為()A.T(n)=O(2^n),S(n)=O(n)
B.T(n)=O(1),S(n)=O(1)
C.T(n)=O(2^n),S(n)=O(1)
D.T(n)=O(n),S(n)=O(n)
2.有嵌套的if語句:if(a<b) if(a<c)k=a; elsek=c;elseif(b<c)k=b;elsek=c;以下選項中與上述if語句等價的語句是()。
A.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
B.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
C.k=(a<b)?a:b;k=(b<c)?b:c;
D.k=(a<b)?a:b;k=(a<c)?a:c;
3.如果樹的的結點A有4個兄弟,而且B為A的雙親,則B的度為()。
A.3B.4C.5D.1
4.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數值為9的表達式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
5.
6.
7.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運行后的輸出結果是()。
A.6B.7C.5D.8
8.下列關于return語句的敘述中正確的是()。
A.—個自定義函數中必須有一條return語句
B.—個自定義函數中可以根據不同情況設置多條return語句
C.定義成void類型的函數中可以有帶返回值的return語句
D.沒有return語句的自定義函數在執(zhí)行結束時不能返回到調用處
9.下面C程序段中count++語句執(zhí)行的次數為()A.15B.16C.31D.32
10.下列程序的運行結果是()。
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
11.以下程序的輸出結果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
12.
13.有以下程序:
程序運行后的輸出結果是()。
A.1,2,6,24,120,B.1,2,3,4,5,C.1,1,1,1,1,D.1,2,4,6,8,
14.以下程序執(zhí)行后sum的值是()。
A.15
B.14
C.不確定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
15.
16.設a=l,b=2,c=3,d=4,則表達式:“a<b?a:b<b?a:c<d?a:d”的結果為()。A.4B.3C.2D.1
17.已知:intx,y;doublez;則以下語句中錯誤的函數調用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);
B.scanf("%1d*%d&1f",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);
D.scanf("%x%o%6.2f",&x,&y,&z);
18.已定義c為字符型變量,則下列語句中正確的是()。
A.c='97'B.c="97"C.c=97D.c="a"
19.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結果是()。
A.7B.6C.8D.無確定值
20.下列程序段的時間復雜度為()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)
二、2.填空題(20題)21.算法的基本特征主要包括叫個方面,它們分別是可行性、確定性、()和擁有足夠的情報。
22.在使用putchar和getchar函數處理字符時,必須在程序的開頭出現(xiàn)包含頭文件的命令行是【】。
23.以下程序段打開文件后,先利用fseek函數將文件位置指針定位在文件末尾,然后調用ftell函數返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
24.下面程序的輸出結果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}
25.在Windows環(huán)境下,可以利用單擊、雙擊、拖動這三種鼠標操作之一的【】操作實現(xiàn)窗口的移動。
26.以下程序的輸出結果是【】。
#defineMAX(x,y)(x)>(y)?(x)L:(y)
main()
{inta=5,b=2,C=3,d=3,t;
t=MAX(a+b,c+D)*10;
printf("%d\n",t);
}
27.下面程序段的輸出結果是【】。
intx=5;
do{printf("%d",x-=4);
}while(!(--x));
28.將以下程序寫成三目運算表達式是【】。
if(a>b)max=a;
elsemax=b;
29.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
30.下面程序的功能是用來統(tǒng)計文件中字符個數。請?zhí)羁铡?/p>
#include"stdio.h"
main()
{longcount=OL;
FILE*fp=【】("text.dat","r");
if(fp==0)
{printf("Openerror\n");
exit(0);
}
while(【】)
{
fgetc(fp);
count++;
}
fclise(fp);
printf("%1d\n",count);
}
31.數據庫管理系統(tǒng)常見的數據模型有層次模型、網狀模型和【】3種。
32.下列程序的運行結果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
33.實體之間的聯(lián)系可以歸結為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個學校有許多學生,而一個學生只屬于一個學校,則實體集學校與實體集學生之間的聯(lián)系屬于【】的聯(lián)系。
34.若有以下程序:
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
執(zhí)行后的輸出結果是【】。
35.在面向對象程序設計中,從外面看只能看到對象有外部特征,而不知道也無需知道數據的具體結構以及實現(xiàn)操作的算法,這稱為對象的______。
36.下面程序執(zhí)行后輸出的結果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
37.買來一張新盤后,在存入文件前,必須進行【】處理。
38.以下程序運行后的輸出結果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
39.設有以下程序,為使之正確運行,請在橫線中填入應包含的命令行。(注:try_me()函數在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
40.數據管理技術發(fā)展過程經過人工管理、文件系統(tǒng)和數據庫系統(tǒng)三個階段,其中數據獨立性最高的階段是______。
三、1.選擇題(20題)41.單個用戶使用的數據視圖的描述稱為______。
A.外模式B.概念模式C.內模式D.存儲模式
42.以下不合法的用戶標識符是______。A.j2KEYB.DoubleC.4dD._8_
43.已知i、j、k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1、i的值為2、k的值為3,以下選項中正確的輸入語句是
A.scanf(“%2d%2d%2d”,&i,&j,&k);
B.scanf(“%d%d%d”,&i,&j,&k);
C.scanf(“%d,%d,%d”,&i,&j,&k);
D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
44.有以下程序:voidswap1(int*a,int*b){int*c=a;a=b,b=c;}voidswap2(int*a,int*b){intc=*a;*a=*b,*b=c;}main(){inta=10,b=15;swap1(&a,&b);printf("%d,%d,",a,b);a=10,b=15;swap2(&a,&b);printf("%d,%d",a,b);}其輸出結果為______。
A.15,10,10,15B.15,10,15,10C.10,15,10,15D.10,15,15,10
45.有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序運行后的輸出結果是______。
A.3B.4C.5D.6
46.變量a所占的內存字節(jié)數是______。
A.4
B.5
C.6
D.8unionU{charst[4];inti;longl;};StructA{intc;unionUu;}a;
47.閱讀下列程序段,則程序的輸出結果為#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}
A.3B.5C.6D.8
48.下面的程序執(zhí)行后,文件test.t中內容是______。#include<stdio.h>voidfun(char*fName,char*st){FILE*myf;inti;myf=fopm(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}
A.hello,B.newworldhelloC.newworldD.hello.rld
49.設有定義:#defineSTR"12345";,則以下敘述中正確的是()
A.宏名STR代替的是數值常量12345
B.宏定義以分號結束,編譯時一定會產生錯誤信息
C.宏名STR代替的是字符串"12345";
D.宏名STR代替的是字符串常量"12345"
50.c語言規(guī)定,在一個源程序中,main函數的位置()。
A.必須在最開始B.必須在系統(tǒng)調用的庫函數的后面C.可以任意D.必須在最后
51.下面程序的運行結果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
52.下列選項中不符合良好程序設計風格的是A.源程序要文檔化B.數據說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設計要保證高耦合、高內聚
53.下列程序的輸出結果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j==3‖k++==3))printf("%d%d%d\n",i,j,k);}
A.123B.234C.223D.233
54.在一棵二叉樹上第5層的結點數最多是______。
A.8B.16C.32D.15
55.有以下程序:voidfun(intk){staticinta[5];inti;for(i=0;i<5;i++){a[i]+=i+k,printf("%d",a[i]);}printf("\n");}main(){fun(1);fun(2);}程序的輸出結果是()
A.12345357911
B.隨機數
C.1234523456
D.12345246810
56.若有如下程序:voidsub(){inta,b;a=lO;b=20;printf("%d,%d\n",b,a);}main(){inta=1O,b=20;sub();printf("%d,%d\n"'a'b);}則程序運行后的輸出結果是()。
A.10,20B.20,1020,10C.20,10D.10,2010,2020,10
57.有以下程序:voidswapl(intc0[],intc1[]){intt;t=co[o];co[o]=o1[o];c1[o]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5},b[2]=A{3,5);swapl(a,a+1);swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}程序運行后的輸出結果是______。
A.3553B.5335C.3535D.5353
58.下列字符數組初始化語句中,不正確的是()。
A.charc[]=\goodmorning';
B.charc[20]="goodmorning";
C.charc[]={'a','b','c','d');
D.charc[]={"goodmorning");
59.以下程序的輸出結果是________。#include<stdio.h>mam(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,B);}
A.6,1B.2,1C.6,0D.2,0
60.下列敘述中正確的是()。
A.在面向對象的程序設計中,各個對象之間具有密切的關系
B.在面向對象的程序設計中,各個對象都是公用的
C.在面向對象的程序設計中,各個對象之間相對獨立,相互依賴性小
D.上述3種說法都不對
四、選擇題(20題)61.
下列程序中函數sort()的功能是對數組a中的數據進行由大到小的排序。
#include<stdio.h>
voidsort(inta[],intll)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=j+1+1;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{inta[10]一{1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序運行后的輸出結果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
62.下列選項中不符合良好程序設計風格的是()。
A.數據說明的次序要規(guī)范化
B.程序中要有必要的注釋
C.對所有輸入的數據都要進行檢查,確保數據的合法性
D.程序的效率第一,清晰第二
63.
64.
65.若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。
A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c):
C.scanf("%d",p);
D.scanf("%d",&p);
66.
以下程序的輸出結果是()。
main
{inta=1,b;
for(b=1,b<=10;b++)
{if(a>=8)break;
if(a%2==1){a+=5;continue;}
a=3;}
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年國際貿易實務考試題國際貿易規(guī)則與操作流程
- 2026年人工智能技術與應用專業(yè)考試題集
- 2026年公務員考試行測邏輯推理與判斷能力提升題集
- 2026年財經法規(guī)與職業(yè)道德規(guī)范題庫
- 中石油消防管理規(guī)范
- 客訴知識培訓
- 2026上海中醫(yī)藥大學國際教育學院英語教師招聘1人考試重點試題及答案解析
- 2026年上海大學單招綜合素質筆試參考題庫含詳細答案解析
- 2026山西白求恩醫(yī)院 山西醫(yī)學科學院急需緊缺高層次人才招聘5人參考考試試題及答案解析
- 2026年鄭州電力職業(yè)技術學院單招綜合素質筆試備考試題含詳細答案解析
- 大采高綜采工作面操作規(guī)程
- 保密車間出入管理制度
- 肯德基副經理養(yǎng)成課程
- 鐵路勞動安全 課件 第四章 機務勞動安全
- 智慧人社大數據綜合分析平臺整體解決方案智慧社保大數據綜合分析平臺整體解決方案
- 脊柱與四肢檢查課件
- 2024年河北省供銷合作總社招聘筆試參考題庫附帶答案詳解
- 宅基地及地上房屋確權登記申請審批表
- 醫(yī)療衛(wèi)生輿情課件
- 2024年甘肅省安全員A證考試題庫及答案
- 數據安全保護與隱私保護
評論
0/150
提交評論