版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年內(nèi)蒙古自治區(qū)呼倫貝爾市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.在inta=3,int*p=&a;中,*p的值是()
A.變量a的地址值B.無意義C.變量p的地址值D.3
2.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()
3.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是()。
A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關系
4.在下面的字符數(shù)組定義中,哪一個有語法錯誤()。A.chara[20]=”abcdefg”;
B.chara[]=”x+y=55.”;
C.chara[15];
D.chara[10]=’5’;
5.
6.對n個數(shù)進行排序,哪種算法,其時間復雜度在最壞和最好都是O(nlogn)()
A.快速排序B.希爾排序C.堆排序D.選擇排序
7.二進制數(shù)1110111.11轉換成十進制數(shù)是()。
A.119.375B.119.75C.119.125D.119.3
8.
下列程序的輸出結果是()。
main
{inta,b,d=25;
a=d/10%9;
b=a&&(一1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
9.以下程序的輸出結果是
longfun(intn)
{longs;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;}
main()
{printf("%ld\n",fun(3));}
A.1B.2C.3D.4
10.[0,2,1,4,3,9,5,8,6,7]是以數(shù)組形式存儲的最小堆,刪除堆頂元素0后的結果是()
A.[2,1,4,3,9,5,8,6,7]
B.[1,2,5,4,3,9,8,6,7]
C.[2,3,1,4,7,9,5,8,6]
D.[1,2,5,4,3,9,7,8,6]
11.下列敘述中錯誤的是()。
A.C語言程序必須由一個或一個以上的函數(shù)組成
B.函數(shù)調(diào)用可以作為一個獨立的語句存在
C.若函數(shù)有返回值,必須通過return語句返回
D.函數(shù)形參的值也可以傳回給對應的實參
12.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
13.
14.下列定義數(shù)組的語句中,正確的是()。A.#defineN10?intx[N];
B.intN=10;int[N];
C.intx0..10];
D.Intx[];.
15.
16.下列條件語句中,輸出結果與其他語句不同的是()。
A.if(a!=0)printf(“%d\n”,x);elseprintf(“%d\n”,y);
B.if(a==0)printf(“%d\n”,y);elseprintf(“%d\n”,x);
C.if(a==0)printf(“%d\n”,x);elseprintf(“%d\n”,y);
D.if(a)printf(“%d\n”,x);elseprintf(“%d\n”,y);
17.
18.對包含N個元素的散列表進行檢索,平均檢索長度________
A.為o(log2N)B.為o(N)C.不直接依賴于ND.上述三者都不是
19.下面描述中,符合結構化程序設計風格的是()。
A.使用順序、選擇和重復(循環(huán).三種基本控制結構表示程序的控制邏輯
B.模塊只有一個入口,可以有多個出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語句
20.以下程序的輸出結果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
二、2.填空題(20題)21.在面向對象的設計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。
22.設y為血型變量,請寫出描述“y是偶數(shù)”的表達式______。
23.在軟件生命周期中,【】階段是花費最多、持續(xù)時間最長的階段。
24.算法執(zhí)行過程中所需要的存儲空間稱為算法的______。
25.寫出下列程序的輸出結果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
26.以下程序用于判斷a,b,c能否構成三角形,若能,輸出YES,否則輸出NO。當給a,b,c輸入三角形三條邊長時,確定a,b,c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*a.b.c能構成三角形*/
elseprinff("NO\n");/*a.b.c不能構成三解形*/
}
27.下列程序的輸出結果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
28.按照邏輯結構分類,數(shù)據(jù)結構可分為線性結構和非線性結構,隊列屬于______。
29.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結構、數(shù)據(jù)流、______和處理過程。
30.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。
31.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
32.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請?zhí)羁铡?/p>
main()
{inti,i,x;
for(j=4;j______;j--)
{for(i=1;i<4;i++)
{x=(j-1)*4+______;
printf("%4d",x);
}
printf("\n");
}
33.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
34.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
35.下列程序輸出的結果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
36.計算圓的周長、面積和球體積。
#definePI3.1415926
#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R
main()
{floatr,l,s,v;
printf("inputaradus:");
scanf("%f",&r);
CIRCLE(r,l,s,v);
printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);
}
37.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅動模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結果。
38.下面程序的輸出結果是【】。
structaa
{intx,*y;
}*p;
inta[8]={10,20,30,40,50,60,70,80};
structaab[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]};
main()
{p=b;
printf(%d",*++p->y);
printf("%d\n",++(p->x));
}
39.閱讀下面程序,則程序的執(zhí)行結果為【】。
#include"stdio.h"
fun(intk,int*p)
{inta,b;
if(k==1‖k==2)
*p=1;
else{fun(k-1,&a);
fun(k-2,&b);
*p=a+b;}}
main()
{intx;
fun(6,&x);
printf("%d\n",x);}
40.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,s<t時返回負值。請?zhí)羁铡?/p>
My_cmp(char*s,char*t)
{while(*s==*t)
{if(*s==′\0)return0;
++s;++t;
}return【】;
}
三、1.選擇題(20題)41.結構化程序設計的主要特點是()。
A.每個控制結構要模塊化B.每個控制結構具有封裝性C.每個控制結構具有獨立性D.每個控制結構只有一個入口和一個出口
42.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。下列不能將變量c中的大寫字母轉換為對應小寫字母的語句是()。
A.c=(c-'A')%26+'a'
B.c=c+32
C.c=C-'A'+'a'
D.c=('A'+C)%26-'a'
43.下面語句的輸出結果是______。printf("%d\n",strlen("\t\"065\xff\n"));
A.14B.8C.5D.輸出項不合法,無正常輸出
44.若有以下定義和語句:ints[4][5],(*ps)[5];ps=s;則對s數(shù)組元素的正確引用形式是
A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3
45.有程序:voidfun(inta,intb,intc){a=456;b=567;c=678;}main(){intx=10,y=20,z=30;fun(x,y,Z);printf("%d,%d,%d\n",z,y,x);}輸出結果是()
A.30,20,10B.10,20,30C.456,567,678D.678,567,456
46.在執(zhí)行下述程序時,若從鍵盤輸入6和8,則結果為
main()
{inta,b,s;
scanf("%d%d",&a,&b);
S=a
if(a<b)
s=b;
S*=s;
printf("%d",s);}
A.36B.64C.48D.以上都不對
47.下列哪一條不屬于數(shù)據(jù)庫設計的任務?()
A.設計數(shù)據(jù)庫應用結構B.設計數(shù)據(jù)庫概淪結構C.設計數(shù)據(jù)庫邏輯結構D.設計數(shù)據(jù)庫物理結構
48.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
49.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}該程序的輸出結果是______。
A.12B.13C.14D.15
50.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+c-k值的類型為:
A.intB.doubleC.floatD.char
51.以下能正確定義且賦初值的語句是______。
A.iht=n1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5
52.有如下程序main(){intx=3;do{printf("%d",x--);}while(!x);}該程序的執(zhí)行結果是______。
A.321B.3C.不輸出任何內(nèi)容D.陷入死循環(huán)
53.下面程序的輸出結果()main(){unsigneda=32768;printf("a=%d\n",a);}
A.a=32768B.a=32767C.a=-32768D.a=-1
54.以下程序的輸出結果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
55.一個源文件中的外部變量的作用域為()。
A.本文件的全部范圍B.本程序的全部范圍C.本函數(shù)的全部范圍D.從定義該變量的位置開始到本文件結束
56.若有以下定義語句:char*sl="12345",*s2="1234";printf("%d"n",strlen(strcpy(s1,s2)));則輸出結果是()
A.4B.5C.9D.10
57.若有以下說明和語句intc[4][5],(*p)[5];p=c;能夠正確引用c數(shù)組元素的是
A.p+1B.*(p+3)C.*(p+1)+3D.*(P[0]+2)
58.有以下程序
#include<stdio.h>
main()
{intc;
while((c=getchar())!=′\n)
{switch(c-′2′)
{case0:
case1:putchar(c+4);
case2:putchar(c+4);break;
case3:putchar(c+3);
case4:putchar(c+3);break;}}
printf("\n")}
從第一列開始輸入以下數(shù)據(jù)<CR>代表一個回車符。
2743<CR>
程序的輸出結果是
A.66877B.668966C.6677877D.6688766
59.下列程序的輸出結果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}
A.0B.3C.OKD.沒有任何輸出
60.不合法的main函數(shù)命令行參數(shù)表示形式是______。
A.main(inta,char*c[])
B.main(intarc,char**arv)
C.main(intargc,char*argv)
D.main(intargv,char*argc[])
四、選擇題(20題)61.下列關于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量
B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運算對象可以是char型變量、int型變量和float型變量
62.
63.
64.
65.
66.
67.有以下程序程序運行后的輸出結果是()。
A.21B.11C.6D.120
68.
69.下列敘述中正確的是()。
A.循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結構
B.在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況
C.在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況
D.循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定的
70.
71.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化
72.
73.
以下程序的輸出結果是()。
main
{intx=0.5;charz=a;
printf("%d\n",(x&1)&&(z<2));}
A.0B.1C.2D.3
74.下列敘述中正確的是()。
A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結構密切相關
B.程序執(zhí)行的效率只取決于程序的控制結構
C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量
D.以上三種說法都不對
75.
76.有以下程序:
#include<stdio.h>
voidfunc(intn)
{staticintnum=1);
num=num+n;printf("%d",num);
}
main()
{funo(3);func(4);printf("n");}
程序運行后的輸出結果是()。
A.48B.34C.35D.45
77.
78.
以下程序的輸出結果是()。
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
79.若有定義語句:“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。A.1.9B.1C.2D.2.4
80.以下能定義為用戶標識符的是()。
A.printfB.charC._8abcD.Void
五、程序改錯題(1題)81.下列給定程序、中,函數(shù)proc()的功能是:先將字符串s中的字符按順序存放到t中,然后把s中的字符按正序連接到t的后面。例如,當s中的字符串為WXYZ時,則t中的字符串應為WXYZWXYZ。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.編寫函數(shù)fun(),其功能是:求出1~1000中能被7或11整除,但不能同時被7和ll整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.D
2.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。
3.CC?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。
4.D
5.A
6.C
7.B
8.B
\n當邏輯運算符“&&”兩邊的值是非零時,邏輯表達式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。
\n
9.A解析:該題考查的是遞歸函數(shù)的調(diào)用,題中讀fun函數(shù)進行了遞歸調(diào)用,第1次調(diào)用:fun(3)n=3s=3-fun(2);第二次調(diào)用時:fun(2)n=2s=2返回第一次調(diào)用后,s=3-2=1。
10.D
11.D形參是定義函數(shù)時由用戶定義的。實參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。在C語言中,實參向形參傳送數(shù)據(jù)的方式是“值傳遞'是單向傳遞。故本題答案為D選項。
12.B解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。
數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還心須有其他相關軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡系統(tǒng)軟件的支持。因此,選項A的說法是錯誤的。
數(shù)據(jù)庫可以看成是長期存儲在計算機內(nèi)的、大量的、有結構的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。
通常將引入數(shù)據(jù)庫技術的計算機系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由五個部分組成,包括相關計算機的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關軟件和人員。
因此,選項C的說法是錯誤的。
因此,本題的正確答案是選項B。
13.B
14.A數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項中數(shù)組長度是非法的一串數(shù)字。定義數(shù)組時必須為其指明長度,D)選項中數(shù)組長度為空,所以非法。
15.C
16.CA、B、D選項的含義均為:a的值如果為0,輸出y的值,否則輸出x的值。而C選項的含義是:a的值為0時輸出x的值,不為0時輸出y的值,與其他選項正好相反。故本題答案為C選項。
17.C
18.C
19.A解析:結構化程序設計方法的四條原則是:①自頂向下;②逐步求精;③模塊化;④限制使用goto語句?!白皂斚蛳隆笔侵冈诔绦蛟O計時,先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標?!爸鸩角缶笔侵笇碗s問題應設計一些子目標作過渡,逐步細節(jié)化?!澳K化”是指一個復雜問題由若干稍簡單的問題構成;解決這個復雜問題的程序,也應由若干稍簡單問題的小程序組成。
20.B
21.消息消息解析:在面向對象技術中,主要用到對象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來請求對象執(zhí)行某一處理或回答某些信息的要求。
22.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達式是(y%2)==0。
23.維護維護
24.空間復雜度空間復雜度解析:算法執(zhí)行時所需要的存儲空間,稱為算法的空間復雜度。
25.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做:n++是先取n的當前值和1做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當前值3,然后再將n加l,即程序結束后得到n=4,但輸出的是3。
26.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:根據(jù)構成三角形的條件:兩邊之和大于第三邊,得出空格應該填(a+b>c)&&(a+c>b)&&(b+c>a)或與其等價的形式。
27.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關系表達式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當y=0時,*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=2,所以z=2;當y-1時,*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=4,所以z=4;當y=2時,*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=6,所以z=6;循環(huán)結束。因此輸出z的結果為6。
28.線性結構線性結構解析:隊列有且只有一個根結點,而且每一個結點最多有一個前件,也最多有一個后件,滿足線性結構的條件,所以屬于線性結構。
29.數(shù)據(jù)存儲數(shù)據(jù)存儲
30.黑盒軟件測試的方法有三種:動態(tài)測試、靜態(tài)測試和正確性證明。設計測試實例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設計測試實例時,測試人員將程序看成一個“黑盒”,即不關心程序內(nèi)部是如何實現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設計的測試用例完全是根據(jù)程序的功能說明來設計的。
31.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應當填入'filea.dat','r'。
32.ii解析:本題使用了一個兩重for循環(huán)輸出如題所示的方陣。從外層for循環(huán)的最后一條語句prinff('\\n');可以看出,外層for循環(huán)每次輸出方陣的一行,由于方陣是4行所以外層循環(huán)會循環(huán)4次,又從j=4和卜可以看出這4次循環(huán),循環(huán)變量i的值分別為4、3、2、1.故前一空應該填j>=1或者j>0,以保證j等于0時循環(huán)結束。內(nèi)層循環(huán)控制每行輸出的4個數(shù),其循環(huán)變量i從1遞增到4,由于每行的4個結果也是差1遞增的,所以將每次結果減去循環(huán)變量i的值為一個常數(shù),每行分別是12、8、4、0,而這些值正好與4次外循環(huán)中表達式(j-1)*4的值相吻合,故后一空應該填i。
33.fopenfopen解析:C語言中的文件分為:ASCII文件與二進制j文件。文件在使用前打開,使用后要關閉。打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen('文件名','使用文件方式:);
關閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp);其中fp為文件指針。
34.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結構,從而大大減少了程序中的冗余,提高軟件的可重用性。
35.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。本程序首先定義了一個全局變量m=17,m=17的作用域在整個程序內(nèi)。在fun函數(shù)內(nèi)部定義了一個局部變量m=3,m=3的作用域僅在fun函數(shù)內(nèi)部,通過fun函數(shù)返回兩個形參的積再減m。在主函數(shù)中,輸出fun(a,b)/m=(5*7-3)/17=1。
36.CIRCLE(RLSV)S=PI*R*Rr1sv
37.驅動模塊驅動模塊解析:由于模塊通常不是獨立的程序,自己不能運行,而需要其他模塊調(diào)用或驅動,同時被測試模塊還要去調(diào)用其他模塊,前者稱為驅動模塊,后者稱為承接模塊。其中驅動模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結果;承接模塊的作用是代替被測模塊,調(diào)用其他模塊。
38.3010130101解析:注意地址自增與變量自增的區(qū)別。
39.88解析:函數(shù)可以被遞歸調(diào)用,但是不能遞歸定義。有返回值的函數(shù)調(diào)用可以出現(xiàn)在表達式可以出現(xiàn)的任何地方。
40.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應字符相等情況下循環(huán),直至不相等結束。相等時,若字符串已到了字符串的結束標記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準備比較下一對字符。對應字符不相同,循環(huán)結束。循環(huán)結束時,就以兩個當前字符的差返回,所以在空框處應填入*s-*t,保證在s>t時,返回正值,當s<t時,返回負值。
41.D解析:結構化程序設計要求把程序的結構限制為順序、選擇和循環(huán)三種基本結構,以便提高程序的可讀性。這種結構化程序具有以下兩個特點:首先,以控制結構為單位,只有一個入口和一個出口,使各單位之間的接口比較簡單,每個單位也容易被人們所理解;其次,縮小了程序的靜態(tài)結構與動態(tài)執(zhí)行之間的差異,使人們能方便、正確地理解程序的功能。本題的正確答案是D。
42.D解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所以選項C)能將大寫字符c的ASCII代碼轉換為小寫字符c的ASCⅡ代碼;選項A)和C)左側的表達式都是大寫字符c與大寫字符A的差與'a'的ASCII代碼的和就是小寫字符c的ASCII代碼。而選項D)中應該是加上'a',而不是減去'a'。
43.C解析:在C語言中,以“\\”開頭的字符均為轉義字符,其中“\\”后可跟1~3位八進制數(shù)或在“\\”后跟字母x及1~2位十六進制數(shù),以此來代表一個特定的字符。
44.C解析:本題首先定義了一個4行5列的數(shù)組s,又定義了一個指向由5個元素組成的一維數(shù)組的指針變量ps,通過賦值讓ps指向了數(shù)組s的首地址。此時數(shù)組元素s[i][j]的地址為“*(ps+1)+j”,數(shù)組元素s[i][j]可表示為*(*(ps+1)+j)。選項B表示的是數(shù)組元素a[3][0]的地址;選項D表示的是數(shù)組元素s[1][3]的地址;選項A中“ps+1”為指向下一行(第二行)的地址;選項c中ps[0][2]無條件等價于“*(ps[0]+2)”又無條件等價于”(*(ps+0)+2)”,即是數(shù)組元素s[0][2]。所以,4個選項中C為所選。
45.A
46.B解析:本題中a的值為6,b的值為8,最后s的值為8,s*=s等價于s=s*s。
47.A解析:數(shù)據(jù)庫設計工作量大而且過程復雜,既是一項數(shù)據(jù)庫工程也是一項龐大的軟件工程。考慮數(shù)據(jù)庫及其應用系統(tǒng)開發(fā)全過程,將數(shù)據(jù)庫設計分為以下6個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計、數(shù)據(jù)庫實施和數(shù)據(jù)庫的運行和維護。
48.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數(shù)輸出,所以第一個輸出語句輸出的結果為a,97;第二個輸出語句輸出的結果為k=12。
49.D解析:調(diào)用函數(shù)func(x,y),返回x+y,即7;再調(diào)用函數(shù)func(7,z),返回7+z,即15。
50.B解析:雙目運算中兩邊運算量類型轉換規(guī)律:
運算數(shù)1運算數(shù)2轉換結果類型
短整型長整型短整型->長整型
整型長整型整型->長整型
字符型整型字符型->整型
有符號整型無符號整型有符號整型->無符號整型
整型浮點型整型->浮點型
在a/b的時候,a、b的類型不一致,根據(jù)類型轉換規(guī)則,把整型轉換成double類型,之后的加、減類似。轉化規(guī)則為char,short->int->unsigned->long->double←float。
51.A解析:B選項中32應加單引號,C選項中f=f+1.1兩邊都是不定值,不正確;D中E后要用整型數(shù),且E后必須要有數(shù)字。
52.B解析:本題x賦初值為3,當執(zhí)行printf('%d',x-);時,由于X--的作用是先運算x,再將x的值減1,所以,printf輸出的x值為3,等輸出后,x的值減1變?yōu)?,繼續(xù)執(zhí)行,判斷條件!x為假,循環(huán)只被執(zhí)行一次。
53.C
54.D解析:C語言的宏定義包括不帶參數(shù)的宏定義與帶參數(shù)的宏定義。本題為帶參數(shù)的宏定義,其形式為:
#define宏名(形參表)字符串
本題的M(a+b,b+c,c+a)被字符串a(chǎn)+b*b+c+c+a代替。
55.D解析:一個源文件中的外部變量的作用域是從定義該變量的位置開始到本文件結束。
56.A
57.D解析:本題中定義了一個二維數(shù)組c和一個指針數(shù)組p并初始化讓它指向c,顯然此時p中的各元素為地址,選項A中p+1,此時其中的1代表的長度是整個;維數(shù)組c的長度,故p+1將讓p指向c數(shù)組后面的元素,故不能引用c數(shù)組中的成員,故選項A錯誤;同理選項B和選項C都不正確,選項D中p[0]指的是指針數(shù)組中的第一個元素的地址即c的首地址,此時的1的長度代表的是數(shù)組c中一行的長度,故p[0]+2代表的是第三行的首地址,而*(p[0]+2)將代表第三行的第一個元素的地址,所以,4個選項中選項D符合題意。
58.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標準輸入設備上讀入一個字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標準輸出設備上,并且字符可以看作整數(shù)參與運算。
59.D解析:在題中,i的值為3,由于“case3:”后面沒有break語句,所以繼續(xù)向下執(zhí)行“case4:”后面的語句,由于“case4:”后面的語句為break強行退出switch語句,所以,本題沒有任何輸出。
60.C解析:main()函數(shù)可以帶有參數(shù),并且參數(shù)只能有兩個,第一個參數(shù)類型為整型,用來記下命令行的參數(shù)個數(shù);第二個參數(shù)為一個字符型指針數(shù)組,或字符型二級指針變量(指向一個數(shù)組,數(shù)組元素又是一個一級字符指針),其各個元素用來記下從命令行各參數(shù)字符中的首地址。故本題只有C選項不符合要求。
61.D本題主要考查自加與自減運算符。在C語言中,自加與自減運算符具有以下性質(zhì):
(1)自加運算符“++”和自減運算符“--”的運算本身是一種賦值運算,其結果是使運算對象的值增1或減1。
(2)++、--運算符是單目運算符,運算對象可以是整型變量或字符型變量,也可以是實型變量,但不能是常量和表達式。
(3)自加、自減運算符無論是作為前綴還是后綴運算符,對于變量而言,其效果相同,但作為表達式來說,其值不同。
(4)++和--運算符的結合方向是“自右向左”。
(5)不要在一個表達式中對同一個變量進行多次自增或自減運算??梢灾辣绢}正確的答案是D。
62.D\r\n
63.D
64.B
65.C
66.A
67.A循環(huán)調(diào)用fun函數(shù),依次返回值為23456,s原值為l,累加以上返回值,最終結果為21,所以答案選擇A)。
68.B
69.D循環(huán)隊列有隊頭和隊尾兩個指針,但是循環(huán)隊列仍是線性結構的,所以A錯誤;在循環(huán)隊列中只需要隊頭指針與隊尾兩個指針來共同反映隊列中元素的動態(tài)變化情況,所以B與C錯誤。
70.D
71.C棧是先進后出的數(shù)據(jù)結構,在對棧操作的整個過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來完成,因此本題答案為c)。
72.D
73.B
\n(x&1)&&(z<2)=(0.5&1)&&(a<z)=1&&1=1,故選擇B選項。
\n
74.A本題考查程序效率。程序效率是指程序運行速度和程序占用的存儲空間。影響程序效率的因素是多方面的,包括程序的設計、使用的算法、數(shù)據(jù)的存儲結構等。在確定數(shù)據(jù)邏輯結構的基礎上,選擇一種合適的存儲結構,可以使得數(shù)據(jù)操作所花費的時間少,占用的存儲空間少,即提高程序的效率。因此,本題選項A的說法是正確的。
75.A
76.A\n第一調(diào)用func函數(shù)時輸出4,第二次調(diào)用func函數(shù)時num的值并不會釋放,仍然是上次修改后的值4,第二次調(diào)用結果為8,所以輸出結果是48。
\n
77.B
78.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
79.B此題考查除法運算,根據(jù)先乘除后加減,有括號先算括號的原則,先計算x/y,即l2/8=1,所以z=0.9+1=1.9。但是Z是整型的,轉化一下取整除部分,結果Z=1
80.B用戶自定義標識符不能與關鍵字相同。但可以與庫函數(shù)名相同,只是一般不建議用戶這么做。
81.錯誤:t[i]=s[s1];
正確:t[i]=s[i];
【解析】函數(shù)proc()首先要實現(xiàn)將數(shù)組s中的元素順序放在數(shù)組t中,即數(shù)組t中下標為i的元素在數(shù)組S中下標也為i,因此“t[i]=s[s1];”應改為“t[i]=s[i];”。
82.
【解析】根據(jù)題意,所寫函數(shù)要用for循環(huán)實現(xiàn)對整數(shù)1~1000的遍歷;通過if語句找出能被7或11整除,但不能同時被7和11整除的所有整數(shù),因為同時被7和11整除的整數(shù)一定能被77整除,且不能被77整除的數(shù)不一定就是能被7或11整除,可得出表達式“(i%7==0||i%11==O)&&i%77!=0”;再按題目要求,將找出來的整數(shù)放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)即可。
2021-2022年內(nèi)蒙古自治區(qū)呼倫貝爾市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.在inta=3,int*p=&a;中,*p的值是()
A.變量a的地址值B.無意義C.變量p的地址值D.3
2.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()
3.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是()。
A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關系
4.在下面的字符數(shù)組定義中,哪一個有語法錯誤()。A.chara[20]=”abcdefg”;
B.chara[]=”x+y=55.”;
C.chara[15];
D.chara[10]=’5’;
5.
6.對n個數(shù)進行排序,哪種算法,其時間復雜度在最壞和最好都是O(nlogn)()
A.快速排序B.希爾排序C.堆排序D.選擇排序
7.二進制數(shù)1110111.11轉換成十進制數(shù)是()。
A.119.375B.119.75C.119.125D.119.3
8.
下列程序的輸出結果是()。
main
{inta,b,d=25;
a=d/10%9;
b=a&&(一1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
9.以下程序的輸出結果是
longfun(intn)
{longs;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;}
main()
{printf("%ld\n",fun(3));}
A.1B.2C.3D.4
10.[0,2,1,4,3,9,5,8,6,7]是以數(shù)組形式存儲的最小堆,刪除堆頂元素0后的結果是()
A.[2,1,4,3,9,5,8,6,7]
B.[1,2,5,4,3,9,8,6,7]
C.[2,3,1,4,7,9,5,8,6]
D.[1,2,5,4,3,9,7,8,6]
11.下列敘述中錯誤的是()。
A.C語言程序必須由一個或一個以上的函數(shù)組成
B.函數(shù)調(diào)用可以作為一個獨立的語句存在
C.若函數(shù)有返回值,必須通過return語句返回
D.函數(shù)形參的值也可以傳回給對應的實參
12.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
13.
14.下列定義數(shù)組的語句中,正確的是()。A.#defineN10?intx[N];
B.intN=10;int[N];
C.intx0..10];
D.Intx[];.
15.
16.下列條件語句中,輸出結果與其他語句不同的是()。
A.if(a!=0)printf(“%d\n”,x);elseprintf(“%d\n”,y);
B.if(a==0)printf(“%d\n”,y);elseprintf(“%d\n”,x);
C.if(a==0)printf(“%d\n”,x);elseprintf(“%d\n”,y);
D.if(a)printf(“%d\n”,x);elseprintf(“%d\n”,y);
17.
18.對包含N個元素的散列表進行檢索,平均檢索長度________
A.為o(log2N)B.為o(N)C.不直接依賴于ND.上述三者都不是
19.下面描述中,符合結構化程序設計風格的是()。
A.使用順序、選擇和重復(循環(huán).三種基本控制結構表示程序的控制邏輯
B.模塊只有一個入口,可以有多個出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語句
20.以下程序的輸出結果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
二、2.填空題(20題)21.在面向對象的設計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。
22.設y為血型變量,請寫出描述“y是偶數(shù)”的表達式______。
23.在軟件生命周期中,【】階段是花費最多、持續(xù)時間最長的階段。
24.算法執(zhí)行過程中所需要的存儲空間稱為算法的______。
25.寫出下列程序的輸出結果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
26.以下程序用于判斷a,b,c能否構成三角形,若能,輸出YES,否則輸出NO。當給a,b,c輸入三角形三條邊長時,確定a,b,c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*a.b.c能構成三角形*/
elseprinff("NO\n");/*a.b.c不能構成三解形*/
}
27.下列程序的輸出結果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
28.按照邏輯結構分類,數(shù)據(jù)結構可分為線性結構和非線性結構,隊列屬于______。
29.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結構、數(shù)據(jù)流、______和處理過程。
30.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。
31.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
32.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請?zhí)羁铡?/p>
main()
{inti,i,x;
for(j=4;j______;j--)
{for(i=1;i<4;i++)
{x=(j-1)*4+______;
printf("%4d",x);
}
printf("\n");
}
33.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
34.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
35.下列程序輸出的結果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
36.計算圓的周長、面積和球體積。
#definePI3.1415926
#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R
main()
{floatr,l,s,v;
printf("inputaradus:");
scanf("%f",&r);
CIRCLE(r,l,s,v);
printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);
}
37.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅動模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結果。
38.下面程序的輸出結果是【】。
structaa
{intx,*y;
}*p;
inta[8]={10,20,30,40,50,60,70,80};
structaab[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]};
main()
{p=b;
printf(%d",*++p->y);
printf("%d\n",++(p->x));
}
39.閱讀下面程序,則程序的執(zhí)行結果為【】。
#include"stdio.h"
fun(intk,int*p)
{inta,b;
if(k==1‖k==2)
*p=1;
else{fun(k-1,&a);
fun(k-2,&b);
*p=a+b;}}
main()
{intx;
fun(6,&x);
printf("%d\n",x);}
40.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,s<t時返回負值。請?zhí)羁铡?/p>
My_cmp(char*s,char*t)
{while(*s==*t)
{if(*s==′\0)return0;
++s;++t;
}return【】;
}
三、1.選擇題(20題)41.結構化程序設計的主要特點是()。
A.每個控制結構要模塊化B.每個控制結構具有封裝性C.每個控制結構具有獨立性D.每個控制結構只有一個入口和一個出口
42.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。下列不能將變量c中的大寫字母轉換為對應小寫字母的語句是()。
A.c=(c-'A')%26+'a'
B.c=c+32
C.c=C-'A'+'a'
D.c=('A'+C)%26-'a'
43.下面語句的輸出結果是______。printf("%d\n",strlen("\t\"065\xff\n"));
A.14B.8C.5D.輸出項不合法,無正常輸出
44.若有以下定義和語句:ints[4][5],(*ps)[5];ps=s;則對s數(shù)組元素的正確引用形式是
A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3
45.有程序:voidfun(inta,intb,intc){a=456;b=567;c=678;}main(){intx=10,y=20,z=30;fun(x,y,Z);printf("%d,%d,%d\n",z,y,x);}輸出結果是()
A.30,20,10B.10,20,30C.456,567,678D.678,567,456
46.在執(zhí)行下述程序時,若從鍵盤輸入6和8,則結果為
main()
{inta,b,s;
scanf("%d%d",&a,&b);
S=a
if(a<b)
s=b;
S*=s;
printf("%d",s);}
A.36B.64C.48D.以上都不對
47.下列哪一條不屬于數(shù)據(jù)庫設計的任務?()
A.設計數(shù)據(jù)庫應用結構B.設計數(shù)據(jù)庫概淪結構C.設計數(shù)據(jù)庫邏輯結構D.設計數(shù)據(jù)庫物理結構
48.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
49.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}該程序的輸出結果是______。
A.12B.13C.14D.15
50.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+c-k值的類型為:
A.intB.doubleC.floatD.char
51.以下能正確定義且賦初值的語句是______。
A.iht=n1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5
52.有如下程序main(){intx=3;do{printf("%d",x--);}while(!x);}該程序的執(zhí)行結果是______。
A.321B.3C.不輸出任何內(nèi)容D.陷入死循環(huán)
53.下面程序的輸出結果()main(){unsigneda=32768;printf("a=%d\n",a);}
A.a=32768B.a=32767C.a=-32768D.a=-1
54.以下程序的輸出結果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
55.一個源文件中的外部變量的作用域為()。
A.本文件的全部范圍B.本程序的全部范圍C.本函數(shù)的全部范圍D.從定義該變量的位置開始到本文件結束
56.若有以下定義語句:char*sl="12345",*s2="1234";printf("%d"n",strlen(strcpy(s1,s2)));則輸出結果是()
A.4B.5C.9D.10
57.若有以下說明和語句intc[4][5],(*p)[5];p=c;能夠正確引用c數(shù)組元素的是
A.p+1B.*(p+3)C.*(p+1)+3D.*(P[0]+2)
58.有以下程序
#include<stdio.h>
main()
{intc;
while((c=getchar())!=′\n)
{switch(c-′2′)
{case0:
case1:putchar(c+4);
case2:putchar(c+4);break;
case3:putchar(c+3);
case4:putchar(c+3);break;}}
printf("\n")}
從第一列開始輸入以下數(shù)據(jù)<CR>代表一個回車符。
2743<CR>
程序的輸出結果是
A.66877B.668966C.6677877D.6688766
59.下列程序的輸出結果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}
A.0B.3C.OKD.沒有任何輸出
60.不合法的main函數(shù)命令行參數(shù)表示形式是______。
A.main(inta,char*c[])
B.main(intarc,char**arv)
C.main(intargc,char*argv)
D.main(intargv,char*argc[])
四、選擇題(20題)61.下列關于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量
B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運算對象可以是char型變量、int型變量和float型變量
62.
63.
64.
65.
66.
67.有以下程序程序運行后的輸出結果是()。
A.21B.11C.6D.120
68.
69.下列敘述中正確的是()。
A.循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結構
B.在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況
C.在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況
D.循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定的
70.
71.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化
72.
73.
以下程序的輸出結果是()。
main
{intx=0.5;charz=a;
printf("%d\n",(x&1)&&(z<2));}
A.0B.1C.2D.3
74.下列敘述中正確的是()。
A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結構密切相關
B.程序執(zhí)行的效率只取決于程序的控制結構
C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量
D.以上三種說法都不對
75.
76.有以下程序:
#include<stdio.h>
voidfunc(intn)
{staticintnum=1);
num=num+n;printf("%d",num);
}
main()
{funo(3);func(4);printf("n");}
程序運行后的輸出結果是()。
A.48B.34C.35D.45
77.
78.
以下程序的輸出結果是()。
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
79.若有定義語句:“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。A.1.9B.1C.2D.2.4
80.以下能定義為用戶標識符的是()。
A.printfB.charC._8abcD.Void
五、程序改錯題(1題)81.下列給定程序、中,函數(shù)proc()的功能是:先將字符串s中的字符按順序存放到t中,然后把s中的字符按正序連接到t的后面。例如,當s中的字符串為WXYZ時,則t中的字符串應為WXYZWXYZ。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.編寫函數(shù)fun(),其功能是:求出1~1000中能被7或11整除,但不能同時被7和ll整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.D
2.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。
3.CC。【解析】數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。
4.D
5.A
6.C
7.B
8.B
\n當邏輯運算符“&&”兩邊的值是非零時,邏輯表達式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。
\n
9.A解析:該題考查的是遞歸函數(shù)的調(diào)用,題中讀fun函數(shù)進行了遞歸調(diào)用,第1次調(diào)用:fun(3)n=3s=3-fun(2);第二次調(diào)用時:fun(2)n=2s=2返回第一次調(diào)用后,s=3-2=1。
10.D
11.D形參是定義函數(shù)時由用戶定義的。實參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。在C語言中,實參向形參傳送數(shù)據(jù)的方式是“值傳遞'是單向傳遞。故本題答案為D選項。
12.B解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。
數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還心須有其他相關軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡系統(tǒng)軟件的支持。因此,選項A的說法是錯誤的。
數(shù)據(jù)庫可以看成是長期存儲在計算機內(nèi)的、大量的、有結構的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。
通常將引入數(shù)據(jù)庫技術的計算機系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由五個部分組成,包括相關計算機的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關軟件和人員。
因此,選項C的說法是錯誤的。
因此,本題的正確答案是選項B。
13.B
14.A數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項中數(shù)組長度是非法的一串數(shù)字。定義數(shù)組時必須為其指明長度,D)選項中數(shù)組長度為空,所以非法。
15.C
16.CA、B、D選項的含義均為:a的值如果為0,輸出y的值,否則輸出x的值。而C選項的含義是:a的值為0時輸出x的值,不為0時輸出y的值,與其他選項正好相反。故本題答案為C選項。
17.C
18.C
19.A解析:結構化程序設計方法的四條原則是:①自頂向下;②逐步求精;③模塊化;④限制使用goto語句。“自頂向下”是指在程序設計時,先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標?!爸鸩角缶笔侵笇碗s問題應設計一些子目標作過渡,逐步細節(jié)化。“模塊化”是指一個復雜問題由若干稍簡單的問題構成;解決這個復雜問題的程序,也應由若干稍簡單問題的小程序組成。
20.B
21.消息消息解析:在面向對象技術中,主要用到對象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來請求對象執(zhí)行某一處理或回答某些信息的要求。
22.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達式是(y%2)==0。
23.維護維護
24.空間復雜度空間復雜度解析:算法執(zhí)行時所需要的存儲空間,稱為算法的空間復雜度。
25.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做:n++是先取n的當前值和1做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當前值3,然后再將n加l,即程序結束后得到n=4,但輸出的是3。
26.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:根據(jù)構成三角形的條件:兩邊之和大于第三邊,得出空格應該填(a+b>c)&&(a+c>b)&&(b+c>a)或與其等價的形式。
27.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關系表達式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當y=0時,*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=2,所以z=2;當y-1時,*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=4,所以z=4;當y=2時,*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=6,所以z=6;循環(huán)結束。因此輸出z的結果為6。
28.線性結構線性結構解析:隊列有且只有一個根結點,而且每一個結點最多有一個前件,也最多有一個后件,滿足線性結構的條件,所以屬于線性結構。
29.數(shù)據(jù)存儲數(shù)據(jù)存儲
30.黑盒軟件測試的方法有三種:動態(tài)測試、靜態(tài)測試和正確性證明。設計測試實例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設計測試實例時,測試人員將程序看成一個“黑盒”,即不關心程序內(nèi)部是如何實現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設計的測試用例完全是根據(jù)程序的功能說明來設計的。
31.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版冷鏈物流專用木箱紙箱銷售合同
- 二零二五年度電視節(jié)目版權購買與播映合同4篇
- 2025年電梯門套安裝工程安全防護合同4篇
- 2025年度企業(yè)內(nèi)部員工退休生活補貼合同3篇
- 二零二五年度美容院品牌形象授權及宣傳推廣合同4篇
- 個人汽車按揭貸款合同(2024版)
- 二零二五年度垃圾處理設施建設承包施工合同3篇
- 二零二五版鎳氫電池產(chǎn)品知識產(chǎn)權保護合同范本4篇
- 二零二五年度苗木種植與生態(tài)農(nóng)業(yè)示范區(qū)建設合同3篇
- 個人收藏品買賣合同(2024版)2篇
- 道路瀝青工程施工方案
- 2025年度正規(guī)離婚協(xié)議書電子版下載服務
- 《田口方法的導入》課件
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場營銷策略考核試卷
- 醫(yī)生給病人免責協(xié)議書(2篇)
- 損傷力學與斷裂分析
- 2024年縣鄉(xiāng)教師選調(diào)進城考試《教育學》題庫及完整答案(考點梳理)
- 車借給別人免責協(xié)議書
- 應急預案評分標準表
- “網(wǎng)絡安全課件:高校教師網(wǎng)絡安全與信息化素養(yǎng)培訓”
- 鋰離子電池健康評估及剩余使用壽命預測方法研究
評論
0/150
提交評論