2024年C語言考試題及答案
在各個領(lǐng)域,我們都經(jīng)?吹皆囶}的身影,試題是考核某種技能水平的標(biāo)準(zhǔn)。你所了解的試題是什么樣的呢?下面是小編整理的2024年C語言考試題及答案,希望對大家有所幫助。
C語言考試題及答案 1
一、選擇題((1)-(40)每小題1分,(41)-(50)每小題2分,共60分)
下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在答題卡相應(yīng)位置上涂黑,答在試卷上不得分。
(1) 所謂“裸機”是指
A.單片機
B.單板機
C.不裝備任何軟件的計算機
D.只裝備操作系統(tǒng)的計算機
(2) 下列存儲器中,存取速度最快的是
A.軟盤
B.硬盤
C.光盤
D.內(nèi)存
(3) 系統(tǒng)軟件中最重要的是
A.操作系統(tǒng)
B.語言處理程序
C.工具軟件
D.數(shù)據(jù)庫管理系統(tǒng)
(4) CPU處理的數(shù)據(jù)基本單位為字,一個字的字長
A.為8個二進制位
B.為16個二進制位
C.為32個二進制位
D.與CPU芯片的型號有關(guān)
(5) 打印當(dāng)前屏幕內(nèi)容應(yīng)使用的控制鍵是
A.Scroll-Lock
B.Num-Lock
C.PgDn
D.PrtSc(Print Screen)
(6) 能將高級語言源程序轉(zhuǎn)換成目標(biāo)程序的是
A.調(diào)試程序
B.解釋程序
C.編譯程序
D.編輯程序
(7) 二進制數(shù)1110111.11轉(zhuǎn)換成十進制數(shù)是
A.119.375
B.119.75
C.119.125
D.119.3
(8) 十六進制數(shù)FF.1轉(zhuǎn)換成十進制數(shù)是
A.255.0625
B.255.125
C.127.0625
D.127.125
(9) 3.5英寸軟盤片的一個角上有一個滑動塊,如果移動該滑塊露出一個小孔,則該軟盤
A.不能讀但能寫
B.不能讀也不能寫
C.只能讀不能寫
D.能讀寫
(10) 控制鍵^C的功能為
A.終止當(dāng)前操作
B.系統(tǒng)復(fù)位
C.暫停標(biāo)準(zhǔn)輸出設(shè)備的輸出
D.結(jié)束命令行
(11) COMMAND.COM為命令處理程序,DOS系統(tǒng)啟動后,它
A.駐留在外存,需要時再裝入內(nèi)存
B.常駐內(nèi)存,包含所有內(nèi)部命令
C.不能處理外部命令
D.不能處理后綴為.EXE的可執(zhí)行文件
(12) 為了將所有擴展名為.PAS的文件改成擴展名為.P,應(yīng)使用命令
A.REN *.PAS *.?AS
B.REN PAS P
C.REN *.PAS *.P
D.REN *.PAS *.P??
(13) 設(shè)當(dāng)前盤中文件XY.C的路徑為\A\B\XU,當(dāng)前目錄為\A\B。為了查看文件XY.C的內(nèi)容,應(yīng)使用命令
A.TYPE XU\XY.C
B.TYPE \XU\XY.C
C.DIR XU\XY.C
D.DIR \A\B\XU\XY.C
(14) 要將提示符改成當(dāng)前盤當(dāng)前目錄后加一個大于號">",應(yīng)使用命令
A.PROMPT
B.PROMPT $p$g
C.PROMPT $$
D.PROMPT C\>
(15) 設(shè)C盤根目錄中有一個批處理文件A.BAT,當(dāng)前盤為A盤。為了執(zhí)行該批處理文件,下列命令中一定正確的'是
A.C:\A
B.C:A.BAT
C.A.BAT
D.\A.BAT
(16) 設(shè)當(dāng)前盤為C盤,將A盤根目錄下的文件目錄信息存放到當(dāng)前盤當(dāng)前目錄下的文件AB中,應(yīng)使用命令
A.TYPE A:\>AB
B.DIR >AB
C.DIR A:\>AB
D.DIR \>AB
(17) 可執(zhí)行文件ABC.EXE所需要的輸入數(shù)據(jù)已經(jīng)按格式存放在文件XYZ中,要求將執(zhí)行結(jié)果在打印機上打印輸出。下列命令中正確的是
A.ABCXYZ
C.ABC>XYZPRN
(18) 在當(dāng)前盤當(dāng)前目錄下有一個文件A.BAT,其內(nèi)容為
CD \
MD \XYZ\AB\B\C
CD XYZ\AB\B
在正確執(zhí)行上述文件后,接著執(zhí)行下列命令時,不會發(fā)生錯誤的是
A.MD C
B.RD \XYZ
C.RD C
D.RD B
(19) 下列命令組中兩個命令互相等價的是
A.TYPE AB.TXT 與 DIR AB.TXT
B.DISKCOMP A: B: 與 COMP A:*.* B:*.*
C.TYPE AB.TXT>>XY.TXT 與 COPY AB.TXT XY.TXT
D.TYPE AB.TXT>XY.TXT 與 COPY AB.TXT XY.TXT
(20) 設(shè)A盤為啟動盤,其目錄結(jié)構(gòu)為
其中文件AUTOEXEC.BAT的內(nèi)容如下:
MD \XYZ
CD \DOS\USER
則由A盤啟動成功后,A盤的當(dāng)前目錄是
A.\DOS\USER
B.\XYZ
C.根目錄
D.\DOS(21) 在C語言提供的合法的關(guān)鍵字是
A.swicth
B.cher
C.Case
D.default
(22) 在C語言中,合法的字符常量是
A.‘\084’
B.‘\x43’
C.‘a(chǎn)b’
D.“\0”
(23) 若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是
A.1
B.2
C.2.0
D.2.5
(24) 合法的數(shù)組定義是
A.int a[]="string";
B.int a[5]={0,1,2,3,4,5};
C.vhst s="string";
D.char a[]={0,1,2,3,4,5};
(25) 設(shè)a為整型變量,不能正確表達數(shù)學(xué)關(guān)系:1010&&a>15
D.!(a<=10)&&!(a>=15)
(26) 若t為double類型,表達式t=1,t5,t++的值是
A.1
B.6.0
C.2.0
D.1.0
(27) 若有定義和語句:
char s[10]:s="abcd";printf("%s\n",s);
則結(jié)果是(以下u代表空格)
A.輸出abcd
B.輸出a
C.輸出abcduuuuu
D.編譯不通過
(28) 若有定義和語句:
int **pp,*p,a=10,b=20;
pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);
則輸出結(jié)果是:
A.10,20
B.10,10
C.20,10
D.20,20
(29) 若有以下定義和語句:
int u=010,v=0x10,w=10;
printf("%d,%d,%d\n,u,v,w);
則輸出結(jié)果是:
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10
(30) 若有以下定義和語句
char c1=’b’,c2=’e’;
printf("%d,%c\n",c2-c1,c2-’a’+"A");
則輸出結(jié)果是:
A.2,M
B.3,E
C.2,E
D.輸出項與對應(yīng)的格式控制不一致,輸出結(jié)果不確定
(31) 若有以下定義:
char s[20]="programming",*ps=s;
則不能代表字符o的表達式是
A.ps+2
B.s[2]
C.ps[2]
D.ps+=2,*ps
(32) 若ij已定義為int類型,則以下程序段中內(nèi)循環(huán)體的總的執(zhí)行次數(shù)是
for (i=5;i;i--)
for(j=0;j<4;j++){...}
A.20
B.25
C.24
D.30
(33) 若有以下定義和語句:
char *s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果是
A.4
B.5
C.9
D.10
(34) 若有以下定義和語句:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則不能表示a數(shù)組元素的表達式是
A.*p
B.a[10]
C.*a
D.a[p-a]
(35) 下面程序的輸出是
main()
{ char *s="121";
int k=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’;
}
while (s[k+1]);
printf("k=%d a=%d b=%d\n",k,a,
B.
A.k=3 a=2 b=3
B.k=3 a=3 b=2
C.k=2 a=3 b=2
D.k=2 a=2 b=3
(36) 下面程序的輸出是
main()
{ unsigned a=32768;
printf("a=%d\n",a);
}
A.a=32768
B.a=32767
C.a=-32767
D.a=-1(37) 若有以下定義:
float x;int a,b;
則正確的switch 語句是
A.switch(x)
B.switch(x)
{ case1.0:printf("*\n"); { case1,2:printf("*\n");
case2.0:printf("**\n"); case3:printf("**\n");
} }
C.switch (a+
B.
D.switch (a+
B.;
{ case 1:printf("\n"); { case 1:printf(."*\n");
case 1+2:printf("**\n"); case 2:printf("**\n");
} }
(38) 若有定義:int x,y;char a,b,c;并有以下輸入數(shù)據(jù)(此處< CR> 代表換行符,/u代表空格):
1u2
AuBuC
則能給x賦整數(shù)1,給y賦整數(shù)2,給a賦字符A,給b賦字符B,給c賦字符C 的正確程序段是
A.scanf("x=%d y+%d",&x,&y);a=get);b=get);c=get);
B.scanf("%d %d",&x,&y);a=get);b=get);c=get);
C.scanf("%d%d%c%c%c,&x,&y,&a,&b,&
C.;
D.scanf("%d%d%c%c%c%c%c%c:&x,&y,&a,&a,&b,&b,&c,&
C.;
(39) 以下程序輸出的結(jié)果是
#include
#include
main()
{ char w[][10]={"ABCD","EFGH","IJKL","MNOP"},K;
for (k=1;k<3;k++)
printf("%s\n",&w[k][k]);
}
A.ABCD
B.ABCD
FGH EFG
KL IJ
M
C.EFG
D.FGH
JK KL
O
(40) 若有以下的定義:
int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a;
則值為3的表式是
A.p+=2, *(p++)
B.p+=2,*++p
C.p+=3, *kp++
D.p+=2,++*p
(41) 假定所有變量均已正確說明,下列程序段運行后x的值是
a=b=c=0;x=35;
if(!a)x--;
else if(
B.;
if(
C.x=3;
else x=4;
A.34
B.4
C.35
D.3
(42) 在以下一組運算符中,優(yōu)先級最高的運算符是
A.<=
B.=
C.%
D.&&
(43) 若有以下定義和語句:
int w[2][3],(*pw)[3];
pw=w;
則對w數(shù)組元素非法引用是
A.*(w[0]+2)
B.*(pw+1)[2]
C.pw[0][0]
D.*(pw[1]+2)
(44) 若有以下程序片段:
char str[]="ab\n\012\\\"";
printf(",strlen(str));
上面程序片段的輸出結(jié)果是
A.3
B.4
C.6
D.12
(45) 函數(shù)調(diào)用:strcat(strcpy(str1,str2),str3)的功能是
A.將串str1復(fù)制到串str2中后再連接到串str3之后
B.將串str1連接到串str2之后再復(fù)制到串str3之后
C.將串str2復(fù)制到串str1中后再將串str3連接到串str1之后
D.將串str2連接到串str1之后再將串str1復(fù)制到串str3中
(46) 以下對C語言函數(shù)的有關(guān)描述中,正確的是
A.在C中,調(diào)用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個源程序文件中
(47) 以下敘述中不正確的是
A.在C中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次,賦一次初值。
B.在C中,在調(diào)用函數(shù)時,實在參數(shù)和對應(yīng)形參在類型上只需賦值兼容。
C.在C中,外部變量的隱含類別是自動存儲類別。
D.在C中,函數(shù)形參可以說明為register變量。
(48) 以下程序的輸出結(jié)果是
#include
subl(char a,char
B.{char c; c=a;a=b;b=c;}
sub2(char* a,char
B.{char c; c=*a;*a=b;b=c;}
sub3(char* a,char*
B.{char c; c=*a;*a=*b;*b=c;} { char a,b;
a=’A’;b=’B’;sub3(&a,&
B.;puta);put
B.;
a=’A’;b=’B’;sub2(&a,
B.;puta);prt
B.;
a=’A’;b=’B’;sub1(a,
B.;puta);put
B.;
}
A.BABBAB
B.ABBBBA
C.BABABA
D.BAABBA
(49) 設(shè)有如下定義:
struct sk
{int a;float b;}data,*p;
若有p=&data;,則對data中的a域的正確引用是
A.(*p).data.a
B.(*p).a
C.p->data.a
D.p.data.a
(50) 以下對枚舉類型名的定義中正確的是
A.enum a={one,two,three};
B.enum a {one=9,two=-1,three};
C.enum a={"one","two","three"};
D.enum a {"one","two","three"};
二、填空題(每空2分,共40分)
請將每空的正確答案寫在答題卡 【1】 至 【20】序號的橫線上,答在試卷上不得分。
(1) 與十進制數(shù)101等值的二進制數(shù)為 【1】 。
(2) DOS命令分為內(nèi)部命令和外部命令,XCOPY命令屬于 【2】 。
(3) 設(shè)當(dāng)前盤為A盤,當(dāng)前系統(tǒng)提示符為">",在不改變當(dāng)前盤的情況下,顯示C盤的當(dāng)前目錄的路徑,應(yīng)使用命令 【3】 。
(4) 自動批處理文件名必須是 【4】 。
(5) 設(shè)當(dāng)前盤當(dāng)前目錄下有兩個文件W.TXT,現(xiàn)要將文件P.TXT連接到文件W.TXT的后面,若使用COPY命令,則完整的命令為 【5】 。
(6) 請寫出以下數(shù)學(xué)式的C語言表達式 6
──.
a
───
b.c
(7) 若已知a=10,b=20,則表達式!ab)
printf("****y%d\n",y);
else
printf("####x=%\n",x);
(11) 在對文件進行操作的過程中,若要求文件的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是 11 函數(shù).──
(12) 若函數(shù)fun的類型void,且有以下定義和調(diào)用語句:
#define M 50
main()
{ int a[M];
. . .
fun(a);
. . .
}
定義fun函數(shù)首部可以用三種不同的形式,請寫出這三種形式: 12 .13 .14
─ ─ ─
(注意:①形參的名字請用q,②使用同一種風(fēng)格).
(13) 若給fun函數(shù)的形參s傳送字符串:"uuuu6354abc",則函數(shù)的返回值是 15
─.
log fun(char s[]) {long n;int sign;
for(;isspace(*s);s++); sign+(*s==’-’)?-1:1;
if(*s==’+’‖*s==’-’s++; for(n=0;isdigit(*s);s++)
n=10*n+(*s-’0’); return sign * n;
(14) 以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大順序存放,n 所指存儲單元中存放數(shù)組中數(shù)據(jù)的個數(shù).插入后數(shù)組中的數(shù)仍有序.請?zhí)羁?
void fun (char *w,char x,int *n)
{ int i,p;
p=0;
w[*n]=x;
while (x>w[p]) 16
──;
for(i=*n;i>p;i--)w[i]= 17
─;
w[p]=x;
++ *n;
}
(15) fun1函數(shù)的調(diào)用語句為:fun1(&a,&b,&c); 它將三個整數(shù)按由大到小的順序調(diào)整后依次放入a,b,c,三個變量中,a中放量大數(shù).請?zhí)羁?
void fun2 (int *x,int *y)
{ int t;
t=*x; *x=*y;*y=t;
}
void fun1 (int *pa,int *pb,int *pc)
{ if(*pc>*pb) fun2( 18)
───;
if(*pa<*pc)fun2(19)
──;
if(*pa<*pb)fun2(20)
──; }
參考答案
一、選擇題((1)--(40)題每題1分,(41)--(50)題每題2分,共60分。
(1)C (2)D (3)A (4)D (5)D (6)C 7)B (8)A (9)C (10)A
(11)B (12)C (13)A (14)B (15)A (16)C (17)D (18)C (19)D (20)C
(21)D (22)B (23)C (24)D (25)A (26)D (27)D (28)D (29)A (30)B
(31)A (32)A (33)A (34)B (35)C (36)C (37)C (38)D (39)D (40)A
(41)B (42)C (43)B (44)C (45)C (46)A (47)C (48)A (49)B (50)B
二、填空題(每空2分,共40分)
(1) 1100101或(1100101)2
(2) 外部命令(答 外部 不扣分)
(3)cd c:(cd與C:中間至少要有一個空格)
(4)AUTOEXEC.BAT
(5)COPY W.TXT+P.TXT 或copy w.txt+p.txt w.txt
(6)a/(b*c)或a/(a*b)或a/b/c 或a/c/b
(7)1
(8)###a=26,b=13,c=19
(9)*(p+5)或p[5]
(10)if(a<=b){x=1;printf("####x=%d\n",x);}else {y=2;printf("****y=%d\n",y);}
或if(a>b){y=2;printf("****y=%d\n",y);}else{x=1;printf("####"x=%d\n",x);}
或if(a<=b) printf("####"x=%d\n",x=1);else printf("****y=%d\n",y=2);
或if(a>b) printf("****y=%d\n",y=2);else printf("####"x=%d\n",x=1);
(11)rewind或 fseek
(12)(13)(14) void fun(int *q); 或 void fun(q) int *q;
void fun(int q[]); void fun(q) int q[];
void fun(int q[M]); void fun(q) int q[M];
說明:以上兩組答案中(A)三個答案可以任意次序 (B)標(biāo)識符q可以用字母或下劃線開頭以字母、數(shù)字和下劃線組成的名字代替。(C)兩種風(fēng)格可以混用。
(15)6354
(16)p++ 或 ++p 或 p=p+1 或p+=1或p=1+p
(17)w[i-1]或 *(w+i-1)
(18) pc ,pb 或 pb , pc
(19)pc , pa 或 pa , pc
(20)pb , pa或 pa , pb
C語言考試題及答案 2
一、選擇題。
1). 下列關(guān)于棧的描述中正確的是( )
A.在棧中只能插入元素而不能刪除元素
B.在棧中只能刪除元素而不能插入元素
C.棧是特殊的線性表,只能在一端插入或刪除元素
D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素
正確答案:C
答案解析:棧是限定在一端進行插入與刪除的線性表,在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。
2). 在一個容量為15的循環(huán)隊列中,若頭指針front=6,尾指針rear=9,則循環(huán)隊列中的元素個數(shù)為( )
A.2
B.3
C.4
D.5
正確答案:B
答案解析:循環(huán)隊列中,rear表示尾指針,front表示頭指針,當(dāng)有元素入隊時,rear=rear+1,而元素出隊的時候,front=front+1,當(dāng)rear值大于front值時,隊列中的元素個數(shù)為rear-front,當(dāng)rear的值小于front時,列隊中的元素個數(shù)為rear-front+m(m表示隊列的容量)。
3). 數(shù)據(jù)處理的最小單位是( )
A.數(shù)據(jù)
B.數(shù)據(jù)元素
C.數(shù)據(jù)項
D.數(shù)據(jù)結(jié)構(gòu)
正確答案:C
4). 棧和隊列的共同點是( )
A.都是先進后出
B.都是先進先出
C.只允許在端點處插入和刪除元素
D.沒有共同點
正確答案:C
5). 在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為
A.32
B.31
C.16
D.15
正確答案:C
答案解析:滿二叉樹是指除最后一層外,每一層上的所有結(jié)點都有兩個葉子結(jié)點。在滿二叉樹中,層上的結(jié)點數(shù)都達到最大值,即在滿二叉樹的'第k層上有2k-1個結(jié)點,且深度為m的滿二叉樹有2m-1個結(jié)點。
6). 一個棧的初始狀態(tài)為空,F(xiàn)將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是( )
A.1,2,3,A,B,C
B.C,B,A,1,2,3
C.C,B,A,3,2,1
D.1,2,3,C,B,A
正確答案:C
答案解析:棧是按照″先進后出″或″后進先出″的原則組織數(shù)據(jù)的。所以出棧順序是CBA321。
C語言考試題及答案 3
一、選擇題。
1). 下列敘述中正確的是( )。
A.調(diào)用printf( )函數(shù)時,必須要有輸出項
B.使用put )函數(shù)時,必須在之前包含頭文件stdio.h
C.在C語言中,整數(shù)可以以二進制、八進制或十六進制的形式輸出
D.調(diào)節(jié)get )函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應(yīng)的ASCII碼
正確答案:B
答案解析:選項A,若printf函數(shù)沒有輸出項,且格式字符串中不含格式信息,則輸出的是格式字符串本身,若格式字符串含有格式信息,運行時則出現(xiàn)錯誤提示;選項C,在C語言中,整數(shù)可以十進制、八進制或十六進制的形式輸出;選項D,getchar函數(shù)是從標(biāo)準(zhǔn)輸入設(shè)備讀取一個字符。
2). 以下結(jié)構(gòu)體類型說明和變量定義中正確的是( )
A.typedef struct { int n; char c; } REC; REC t1,t2;
B.struct REC ; { int n; char c; }; REC t1,t2;
C.typedef struct REC; { int n=0; char c=′A′; } t1,t2;
D.struct { int n; char c; } REC; REC t1,t2;
正確答案:A
答案解析:定義結(jié)構(gòu)體類型的一般形式為:struct 結(jié)構(gòu)體名 {成員列表};struct 結(jié)構(gòu)體名后不能加″;″號,所以選項B、C)錯誤,選項D中定義無名稱的結(jié)構(gòu)體類型同時定義結(jié)構(gòu)體變量形式應(yīng)為struct t1,t2;選項A為用戶自定義類型,其為正確的定義形式。
3). 若實體A和B是一對多的.聯(lián)系,實體B和C是一對一的聯(lián)系,則實體A和C的聯(lián)系是( )
A.一對一
B.一對多
C.多對一
D.多對多
正確答案:B
答案解析:由于B和C有一一對應(yīng)的聯(lián)系,而A和B只間有一對多的聯(lián)系,則通過關(guān)系之間的傳遞,則A和C之間也是一對多的聯(lián)系。
4). 關(guān)于C語言的變量,以下敘述中錯誤的是( )
A.所謂變量是指在程序運行過程中其值可以被改變的量
B.變量所占的存儲單元地址可以隨時改變
C.程序中用到的所有變量都必須先定義后才能使用
D.由三條下劃線構(gòu)成的符號名是合法的變量名
正確答案:B
答案解析:變量是指在程序運行過程中其值可以改變的值,一個變量實質(zhì)上是代表了內(nèi)存中的某個存儲單元。在程序中對某個變量的操作實際上就是對這個存儲單元的操作,程序運行期間,這個分配的存儲單元不會改變,但是其值可以變化。變量命名要符合標(biāo)識符的規(guī)定,其中下劃線是標(biāo)識符的組成字符。程序中所有變量都必須先定義后使用。
5). 當(dāng)變量c的值不為2、4、6時,值也為″真″的表達式是( )
A.(c==2)||(c==4)||(c==6)
B.(c>=2 && c<=6)&& !(c%2)
C.(c>=2 && c<=6)&&(c%2!=1)
D.(c>=2 && c<=6) || (c!=3) || (c!=5)
正確答案:D
答案解析:邏輯或運算中,只要有一項為真,表達式的值就為真,故選項D中c的值不為2、4、6時,那么表達式(c>=2 && c<=6)以及(c!=3)、(c!=5)必有一個成立,表達式的值也為真。
6). 在C語言中,函數(shù)返回值的類型最終取決于
A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型
B.return語句中表達式值的類型
C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型
D.函數(shù)定義時形參的類型
正確答案:A
答案解析:在C語言中,應(yīng)當(dāng)在定義函數(shù)時指定函數(shù)值的類型,凡不加類型說明的函數(shù),一律按整型處理。在定義函數(shù)時,對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達式類型一致。如果函數(shù)值的類型和return語句中的表達式類型不一致,則以函數(shù)類型為主,即函數(shù)類型決定返回值的類型。
C語言考試題及答案 4
一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)
。1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是
A.循環(huán)隊列
B.帶鏈隊列
C.二叉樹
D.帶鏈棧
。2)下列數(shù)據(jù)結(jié)果中,能夠按照“先進后出”原則存取數(shù)據(jù)的是
A.循環(huán)隊列
B.棧
C.隊列
D.二叉樹
。3)對于循環(huán)隊列,下列敘述中正確的是
A.隊頭指針是固定不變的
B.隊頭指針一定大于隊尾指針
C.隊頭指針一定小于隊尾指針
D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針
。4)算法的空間復(fù)雜度是指
A.算法在執(zhí)行過程中所需要的計算機存儲空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語句或指令條數(shù)
D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)
。5)軟件設(shè)計中劃分模塊的一個準(zhǔn)則是
A.低內(nèi)聚低耦合
B.高內(nèi)聚低耦合
C.低內(nèi)聚高耦合
D. 高內(nèi)聚高耦合
(6)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是
A.可封裝。
B. 自頂向下。
C.模塊化。
D. 逐步求精。
。7)軟件詳細(xì)設(shè)計產(chǎn)生的圖如下:
該圖是
A.N-S圖
B.PAD圖
C.程序流程圖
D. E-R圖
(8)數(shù)據(jù)庫管理系統(tǒng)是
A.操作系統(tǒng)的一部分
B.在操作系統(tǒng)支持下的系統(tǒng)軟件
C.一種編譯系統(tǒng)
D. 一種操作系統(tǒng)
。9)在E-R圖中,用來表示實體聯(lián)系的圖形是
A.橢圓圖
B.矩形
C.菱形
D. 三角形
。10)有三個關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為
A.選擇
B.投影
C.交
D.并
(11)以下敘述中正確的是
A.程序設(shè)計的任務(wù)就是編寫程序代碼并上機調(diào)試
B.程序設(shè)計的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)
C.程序設(shè)計的任務(wù)就是確定所用算法
D.以上三種說法都不完整
。12)以下選項中,能用作用戶標(biāo)識符的是
A.void
B.8_8
C._0_
D.unsigned
。13)閱讀以下程序
#include
main()
{ int case; float printF;
printf(“請輸入2個數(shù):”);
scanf(“%d %f”,&case,&pjrintF);
printf(“%d %f ”,case,printF);
}
該程序編譯時產(chǎn)生錯誤,其出錯原因是
A.定義語句出錯,case是關(guān)鍵字,不能用作用戶自定義標(biāo)識符
B.定義語句出錯,printF不能用作用戶自定義標(biāo)識符
C.定義語句無錯,scanf不能作為輸入函數(shù)使用
D.定義語句無錯,printf不能輸出case的值
。14)表達式:(int)((double)9/2)-(9)%2的值是
A.0
B.3
C.4
D.5
。15)若有定義語句:int x=10;,則表達式x-=x+x的值為
A.-20
B.-10
C.0
D.10
。16)有以下程序
#include
main()
{ int a=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d ”,a=2*b);
}
程序運行后的輸出結(jié)果是
A.0,0
B.1,0
C.3,2
D.1,2
17)設(shè)有定義:int a=1,b=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是
A.if(a>B. c=a,a=b,b=c;
B.if(a>B. {c=a,a=b,b=c;}
C.if(a>B. c=a;a=b;b=c;
D.if(a>B. {c=a;a=b;b=c;}
。18)有以下程序
#include
main()
{ int c=0,k;
for (k=1;k<3;k++)
switch (k)
{ default: c+=k
case 2: c++;break;
case 4: c+=2;break;
}
printf(“%d ”,C.;
}
程序運行后的輸出結(jié)果是
A.3
B.5
C.7
D.9
。19)以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是
A.if((a>b)&&(b>C.) k=1;
else k=0;
B.if((a>b)||(b>C. k=1;
else k=0;
C.if(a<=B. k=0;
else if(b<=C.k=1;
D.if(a>B. k=1;
else if(b>C.k=1;
else k=0;
20)有以下程序
#include
main()
{ char s[]={“012xy”};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>=’a’&&s[i]<=’z’) n++;
printf(“%d ”,n);
}
程序運行后的輸出結(jié)果是
A.0
B.2
C.3
D.5
。21)有以下程序
#include
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf(“%d %d ”,k,n);
}
程序運行后的輸出結(jié)果是
A.0 2
B.1 3
C.5 7
D.1 2
。22)有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是
A.char a=’a’;
B.char a=’ ’;
C.char a=’aa’;
D.char a=’x2d’;
(23)有以下程序
#include
main()
{ char c1,c2;
c1=’A’+’8’-‘4’;
c2=’A’+’8’-‘5’;
printf(“%c,%d ”,c1,c2);
}
已知字母A的ASCII碼為65,程序運行后的輸出結(jié)果是
A.E,68
B.D,69
C.E,D
D.輸出無定值
。24)有以下程序
#include
void fun(int p)
{ int d=2;
p=d++; printf(“%d”,p);}
main()
{ int a=1;
fun(a); printf(“%d ”,a);}
程序運行后的輸出結(jié)果是
A.32
B.12
C.21
D.22
。25)以下函數(shù)findmax擬實現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯導(dǎo)致不能實現(xiàn)預(yù)定功能
#define MIN -2147483647
int findmax (int x[],int n)
{ int i,max;
for(i=0;i
{ max=MIN;
if(max
return max;
}
造成錯誤的原因是
A.定義語句int i,max;中max未賦初值
B.賦值語句max=MIN;中,不應(yīng)給max賦MIN值
C.語句if(max
D.賦值語句max=MIN;放錯了位置
。26)有以下程序
#include
main()
{ int m=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf(“%d,%d,%d,%d ”,m,n,*p,*q);
}
程序運行后的輸出結(jié)果是
A.1,2,1,2
B.1,2,2,1
C.2,1,2,1
D.2,1,1,2
(27)若有定義語句:int a[4][10],*p,*q[4];且0≤i<4,則錯誤的賦值是
A.p=a
B.q[i]=a[i]
C.p=a[i]
D.p=&a[2][1]
。28)有以下程序
#include
#include
main()
{ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];
printf(“%d,”,strlen(p));printf(“%s ”,p);
}
程序運行后的輸出結(jié)果是
A.9,One*World
B.9,One*Dream
C.10,One*Dream
D.10,One*World
。29)有以下程序
#include
main()
{ int a[ ]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0:switch(a[i]%2)
{case 0:a[i]++;break;
case 1:a[i]--;
}break;
case 1:a[i[=0;
}
for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“ ”);
}
A.3 3 4 4
B.2 0 5 0
C.3 0 4 0
D.0 3 0 4
(30)有以下程序
#include
#include
main()
{ char a[10]=”abcd”;
printf(“%d,%d ”,strlen(a),sizeof(a));
}
程序運行后的輸出結(jié)果是
A.7,4
B.4,10
C.8,8
D.10,10
。31)下面是有關(guān)C語言字符數(shù)組的`描述,其中錯誤的是
A.不可以用賦值語句給字符數(shù)組名賦字符串
B.可以用輸入語句把字符串整體輸入給字符數(shù)組
C.字符數(shù)組中的內(nèi)容不一定是字符串
D.字符數(shù)組只能存放字符串
。32)下列函數(shù)的功能是
fun(char * a,char * b)
{ while((*b=*a)!=’’) {a++,b++;} }
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進行比較
D.檢查a和b所指字符串中是否有’’
。33)設(shè)有以下函數(shù)
void fun(int n,char * s) {……}
則下面對函數(shù)指針的定義和賦值均是正確的是
A.void (*pf)(); pf=fun;
B.viod *pf(); pf=fun;
C.void *pf(); *pf=fun;
D.void (*pf)(int,char);pf=&fun;
。34)有以下程序
#include
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf(“%d ”,s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序運行以后的輸出結(jié)果是
A.7
B.8
C.9
D.10
。35)有以下程序
#include
#define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf(“%d,%d ’,s,t);
}
程序運行后的輸出結(jié)果是
A.10,64
B.10,10
C.64,10
D.64,64
。36)下面結(jié)構(gòu)體的定義語句中,錯誤的是
A.struct ord {int x;int y;int z;}; struct ord a;
B.struct ord {int x;int y;int z;} struct ord a;
C.struct ord {int x;int y;int z;} a;
D.struct {int x;int y;int z;} a;
。37)設(shè)有定義:char *c;,以下選項中能夠使字符型指針c正確指向一個字符串的是
A.char str[ ]=”string”;c=str;
B.scanf(“%s”,C.;
C.c=get);
D.*c=”string”;
。38)有以下程序
#include
#include
struct A
{ int a; char b[10]; double c;};
struct A f(struct A t);
main()
{ struct A a={1001,”ZhangDa”,1098.0};
a=f(a);jprintf(“%d,%s,%6.1f ”,a.a,a.b,a.C.;
}
struct A f(struct A t)
( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )
程序運行后的輸出結(jié)果是
A.1001,ZhangDa,1098.0
B.1001,ZhangDa,1202.0
C.1001,ChangRong,1098.0
D.1001,ChangRong,1202.0
。39)若有以下程序段
int r=8;
printf(“%d ”,r>>1);
輸出結(jié)果是
A.16
B.8
C.4
D.2
(40)下列關(guān)于C語言文件的敘述中正確的是
A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文件
B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件
C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件
D.文件由字符序列組成,其類型只能是文本文件
【C語言考試題及答案】相關(guān)文章:
C語言試題及答案07-26
C語言經(jīng)典例題及答案06-19
C語言習(xí)題及答案09-24
2017年計算機C語言考試題及答案08-06
C語言模擬試題及答案09-19
C語言筆試題及答案02-13
C語言模擬試題及答案06-17
2017計算機二級《C語言》考試題及答案09-29
計算機二級《C語言》備考試題及答案06-18