C語(yǔ)言程序設(shè)計(jì)期末試題及答案
C語(yǔ)言既有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。以下是由陽(yáng)光網(wǎng)小編整理關(guān)于C語(yǔ)言程序設(shè)計(jì)期末試題的內(nèi)容,希望大家喜歡!
C語(yǔ)言程序設(shè)計(jì)期末試題及答案(一)
1.以下程序輸出結(jié)果是( )
main()
{ int m=5;
if(m++>5) printf("%d\n",m);
else printf("%d\n",m--);
A)7 B)6 C)5 D)4
2以下程序的輸出結(jié)果為( )
# include <stdio.h>
main ( )
{ int i=0, j=0, a=6;
if ((++i>0)&&(++j>0)) a++;
printf ("i=%d, j=%d, a=%d\n", i,j,a);}
A) i=0, j=0, a=6 B) i=1, j=1, a=7
C) i=1, j=0, a=7 D) i=0, j=1, a=7
3有如下程序
main()
{ int a=2,b=-1,c=2;
if(a<b)
if(b<0) c=0;
else c++;
printf("%d\n",c);
}
該程序的輸出結(jié)果是( )
A) 0 B) 1 C) 2 D) 3
4若i為int型,且有程序如下,則輸出結(jié)果是( )
i=111;
if(i%3==0)
printf("####");
printf("****");
A) #### B) **** C) ####**** D) 無(wú)輸出結(jié)果
5若運(yùn)行時(shí)x=12,則運(yùn)行結(jié)果為( )
{int x, y;
scanf("%d", &x);
y=x>12 ? x+10:x-12;
printf("%d\n", y);}
A) 0 B) 22 C) 12 D) 10
6以下程序的輸出結(jié)果是( )
main()
{ int i=0, j=0, k=6;
if ((++i>0)||(++j>0)) k++;
printf("%d, %d, %d\n", i, j, k);
}
A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7
7若變量都已正確說(shuō)明,則以下程序段輸出為( )
int a=1,b=2,c=3;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
A)a=1 b=2 c=1 B)a=1 b=2 c=3
C)a=1 b=3 c=1 D)a=2 b=3 c=2
8當(dāng)a=1,b=3,c=5,d=4時(shí),執(zhí)行完下面一段程序后x的值是( )
if(a<b)
if(c<d)x=1;
else
if(a<c)
if(b<d)x=2;
else x=3;
else x=6;
else x=7;
A) 1 B)2 C)3 D)6
9以下不正確的語(yǔ)句為( )
A)if(x>y);
B)if(x==y)&&(x!=0)x+=y;
C)if(x!=y)scanf("%d",&x);else scanf("%d",&y);
D)if(x<y){x++;y++;}
10有以下程序:
#include"stdio.h"
main( )
{char i;
for (; (i=getchar ())!='\n';)
{switch (i-'a')
{case 0: putchar (i);
case 1: putchar (i+1);break;
case 2: putchar (i+2);
case 3: break;
default: putchar (i);break;
}
}
printf ("\n");
}
輸入下列數(shù)據(jù)后,程序的輸出結(jié)果是( )
abcde<CR>
A) abcde B) abcee
C) abbde D) abccdd
11若a、 b、c1、c2、x、y、均是整型變量,正確的switch語(yǔ)句是( )
A) switch(a+b); B) switch(a*a+b*b)
{ case 1:y=a+b; break; {case 3:
case 0:y=a-b; break; case 1:y=a+b;break;
} case 3:y=b-a,break;
}
C) switch a D) switch(a-b)
{ case 1 :y=a-b; break {
case 2: x=a*d; break case c1:case 4:x=a+b;break;
default:x=a+b; case c2:case 11:y=a-b;break;
} default:y=a*b;break;
}
12寫(xiě)出下面程序輸出結(jié)果( )
{int x=1, y=0, a=0, b=0;
switch(x)
{case 1:
switch(y)
{case 0: a++;
case 1: b++; }
case 2: a++; b++;
}
printf("a=%d, b=%d\n", a, b) ;
}
A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2
13C語(yǔ)言的for語(yǔ)句中的表達(dá)式可以部分或全部省略,但兩個(gè)( )不可省略。但當(dāng)三個(gè)表達(dá)式
均省略后,因缺少判斷條件,循環(huán)會(huì)無(wú)限制地進(jìn)行下去,形成死循環(huán)。
A) < B) ++ C) ; D) ,
14下面有關(guān)for循環(huán)的正確描述是( )。
A) for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況
B) for循環(huán)是先執(zhí)行循環(huán)體語(yǔ)句,后判定表達(dá)式
C) 在for循環(huán)中,不能用break語(yǔ)句跳出循環(huán)體
D) for循環(huán)體語(yǔ)句中,可以包含多條語(yǔ)句,但要用花括號(hào)括起來(lái)
15以下程序段( )。
x=-1;
do
{ x=x*x;}
while(!x)
A) 是死循環(huán) B) 循環(huán)執(zhí)行2次 C) 循環(huán)執(zhí)行一次 D) 有語(yǔ)法錯(cuò)誤
16如下的數(shù)組中,數(shù)組array占用的內(nèi)存空間是( )個(gè)字節(jié)。
char array[]={'c','h','i','n','a'};
A. 1 B. 5 C. 6 D. 不確定
17設(shè)有程序段
int k=10;
while(k=0) k=k-1;
則下面描述正確的是( )。
A) while 循環(huán)執(zhí)行10次 B) 循環(huán)是無(wú)限循環(huán)
C) 循環(huán)體語(yǔ)句一次也不執(zhí)行 D) 循環(huán)體語(yǔ)句執(zhí)行一次
18下列程序段的運(yùn)行結(jié)果是( )
int n=0;
while(n++<3);
printf("%d",n)
A. 2 B. 3 C. 4 D. 以上都不對(duì)
19設(shè)有程序段
t=0;
while(printf("*"));
{ t++;
if (t<3) break;
}
下面描述正確的是( )。
A) 其中循環(huán)控制表達(dá)式與0等價(jià) B) 其中循環(huán)控制表達(dá)式與'0'等價(jià)
C) 其中循環(huán)控制表達(dá)式是不合法的 D) 以上說(shuō)法都不對(duì)
20下面程序的運(yùn)行結(jié)果是( )。
#include <stdio.h>
main()
{ int y=10;
do { y--;} while(--y);
printf("%d\n",y--);
}
A) -1 B) 1 C) 8 D) 0
21以下程序段的輸出結(jié)果是( ).
main()
{ int i=5;
for ( ;i<=15; )
{ i++;
if (i%4==0) printf("%d ",i);
else continue;}
}
A. 8 12 16 B. 8 12 C. 12 16 D. 8
22以下不是無(wú)限循環(huán)的語(yǔ)句為( )。
A) for(y=0,x=1;x>++y;x=i++) i=x;
B) for( ; ;x++=i);
C) while(1){x++;}
D) for(i=10; ; i--) sum+=i;
23有如下語(yǔ)句
int x=3;
do
{ printf("%d\n",x-=2);} while(!(--x));
則上面程序段( )
A. 輸出的是1 B. 輸出的是1和-2
C. 輸出的是3和0 D. 是死循環(huán)
24以下不是無(wú)限循環(huán)的是( )
A. for(y=0,x=1;x>++y;x=i++) i=x;
B. for( ; ;x++=i);
C. while(1) x++;
D. for(i=10; ;i--) s+=i;
25以下正確的描述是( )。
A) continue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行
B) 只能在循環(huán)體內(nèi)和switch語(yǔ)句內(nèi)使用break語(yǔ)句
C) 在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同
D) 從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句
26以下程序輸出結(jié)果為( )
#include "stdio.h"
main()
{int i,b,k=0;
for(i=1;i<=5;i++)
{ b=i%2;
while (b-->=0) k++;}
printf("%d,%d\n",k,b);
}
A. 3,-1 B. 8,-1 C. 3,0 D. 8,-2
27以下程序段中循環(huán)體總的執(zhí)行次數(shù)是( )
int i,j;
for(i=7;i;i--)
for(j=0;j<6;j++)
{......}
A) 42 B) 21 C) 13 D) 36
28以下不正確的描述是( )
A. break 語(yǔ)句不能用于循環(huán)語(yǔ)句和switch語(yǔ)句外的任何其他語(yǔ)句
B. 在switch語(yǔ)句中使用break語(yǔ)句或continue語(yǔ)句的作用相同
C. 在循環(huán)語(yǔ)句中使用continue語(yǔ)句是為了結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行
D. 在循環(huán)語(yǔ)句中使用break語(yǔ)句是為了使流程跳出循環(huán)體,提前結(jié)束循環(huán)
1else語(yǔ)句總是和靠它最近的if匹配。
2switch語(yǔ)句中一定有default分支
3case后只能跟常量,不能跟變量
4break語(yǔ)句的作用就是結(jié)束本層循環(huán)。
5do-while語(yǔ)句構(gòu)成的循環(huán)不能用其它語(yǔ)句構(gòu)成的循環(huán)來(lái)代替。
6用do-while語(yǔ)句構(gòu)成循環(huán)時(shí),只要while后的表達(dá)式為0時(shí)就結(jié)束循環(huán)。
7for(表達(dá)式1;表達(dá)式2;表達(dá)式3)中,表達(dá)式1和表達(dá)式3不能同時(shí)都是逗號(hào)表達(dá)式。
8for循環(huán)中,如果表達(dá)式2為空,則該循環(huán)一定是死循環(huán)。
9while循環(huán)的while()后沒(méi)有分號(hào),而do-while循環(huán)的while()后一定要有一個(gè)分號(hào)。
10for(i=0,j=10;i<=j;i++,j--) k=i+j;執(zhí)行完后,k的值為50。
C語(yǔ)言程序設(shè)計(jì)期末試題及答案(二)
一、選擇(每題2分,共30分)
1. 下列選項(xiàng)中,不能用作標(biāo)識(shí)符的是( )。
A. _1234_ B. _1_2 C. int_2_ D. 2_int_
2. 下列字符常量不合法的`是( )。
A. „2‟ B. „\101‟ C. „ab‟ D. „ \n‟
3. 執(zhí)行以下程序后的輸出結(jié)果為( )。
main( )
{ int x; float y;
y=3.6; x=(int)y+10; printf(“x=%d,y=%f”,x,y); }
A. x=13.6,y=3.600000 B. x=13,y=3.600000 C. x=13,y=3 D. x=13,y=3.6
4. 以下選項(xiàng)中不合法的常量是 ( )。
A. 123L B. 0x35 C. 018 D. 6e-2
5. 設(shè)m=10,n=4,則賦值運(yùn)算m%=n+1執(zhí)行后m的值是( )。
A. 1 B. 2 C. 3 D. 0
6. 下面程序的輸出結(jié)果為( )。
main( )
{ int x=10,y=3,z; printf(“%d\n”,z=(x%y,x/y));}
A. 0 B.1 C. 3 D. 4
7. 下面程序的輸出結(jié)果為( )。
main( )
{ int x=010,y=0x10,z=10; printf(“%d,%d,%d ”,x,y,z);}
A. 10,10,10 B. 8,16,10 C. 16,8,10 D. 8,10,10
8. 以下選項(xiàng)中不是C語(yǔ)句的是( )。
A. {int i; i++; printf("%d\n", i); }
C. a=5,c=10
1 B. ; D. { ; }
9. 以下程序的輸出結(jié)果是( )。
main( )
{ int x=2,y=-1,z=2;
if( x<y)
if(y<0) z=0;
else z=z+1;
printf(“%d”,z); }
A. 0 B. 1 C. 2 D. 3
10. 不能表達(dá):x為奇數(shù)時(shí)表達(dá)式為“真”,偶數(shù)時(shí)表達(dá)式為“假”的表達(dá)式是( )。
A. x%2= =1 B. !(x%2= =0) C. !(x%2) D. x%2
11. 以下程序段中while語(yǔ)句的循環(huán)次數(shù)是( )。
int i=0;while(i=1) i++;
A.無(wú)限次 B. 有語(yǔ)法錯(cuò)誤,不能執(zhí)行 C. 一次也不執(zhí)行 D. 執(zhí)行一次
12. 假設(shè)a,b均為字符數(shù)組以下正確的輸入語(yǔ)句是( )。
A.gets(a,b); B. scanf(“%s %s”,a,b); C. scanf(“%s %s”,&a,&b); D.gets(“a”); gets(“b”);
13. 若有定義:int a,*p; 則以下正確的賦值表達(dá)式是 )。
A. p=&a B. p=a C. *p=&a D. *p=*a
14. 以下函數(shù)調(diào)用語(yǔ)句中,func( (exp1,exp2),(exp3,exp4,exp5));含有的實(shí)參個(gè)數(shù)是( )。
A. 1 B. 2 C. 3 D. 5
15. 有以下定義:
struct person{char name[9]; int age;}
struct person class[10]={“Johu”,17,
“Paul”,19,
“Mary”,18,
“Adam”,16,};
則下面能輸出字母M的語(yǔ)句是( )。 A. printf(“%c\n”,class[3].name); B. printf(“%c\n”,class[3].name[1]); D. printf(“%c\n”,class[2].name[0]); C. printf(“%c\n”,class[2].name[1]);
【C語(yǔ)言程序設(shè)計(jì)期末試題及答案】相關(guān)文章:
1.2017年C語(yǔ)言程序設(shè)計(jì)期末試題及答案
4.2017年C語(yǔ)言程序設(shè)計(jì)期末復(fù)習(xí)試題及答案