1. 程式人生 > >C語言程式設計入門第一次單元測試(中國大學MOOC)

C語言程式設計入門第一次單元測試(中國大學MOOC)

  • 以下程式碼片段的輸出是:
int j=4;
for ( int i=j; i<=2*j; i++ ) {
    switch ( i/j ) {
    case 0:
    case 1: printf(“*”); break;
    case 2: printf(“#”);
    }
}

答案:****#

解析:i/j的結果是 11112,所以就很容易寫出答案了

  • 以下哪個不是C語言關鍵字?

int    for    include    while

答案:include

  • 在程式碼: while(!e)中,!e等價於

e==0    e!=0    e==1    e!=1

答案:e==0

解析:while(true),!e=true ==> e==0

  • 下列可用於C語言程式識別符號的一組是(名字中間以逗號分隔)

void,_2a, 2a

2_a, xyz, b1_s

void, d, WORD

_if, _123, file

答案:_if, _123, file

解析:關鍵字不行,數字開頭不行

  • 對於以下程式碼輸出結果是:
char ch = -1;
printf("%d\n", ch);

答案:-4

解析:字元儲存就是用數字儲存的,那麼賦值了一個整數,讓輸出對應的整數,那肯定就是剛才賦值了的

  • 對於以下程式碼,執行後,i有幾種可能性
int i;	
scanf("%d", &i);	
i %= 4;

答案:7

解析:結果分別是0,1,2,3,-1,-2,-3 注意的是,1.2 % 4 = 1

  • 對於下面程式碼,哪句話是對的
int i=6;
do{
printf("%d", i--);
} while (0);

答案:打印出6

  • 對於下面程式碼,for迴圈結束後,i的值是多少
int i;
for(i=0;i<10;i++)
  printf("%d",i);

答案:10

  • 以下哪個for語句是錯誤的?

for(i=0;i++)

for(i=0;i<10,j<10;i++)

for(;;)

for(int i=0;i<10,j<10;i++)

答案:for(i=0;i++)

  • 表示式ch =‘B’+‘8’-‘3’表示的字元是:

答案:G

解析:'8'-'3'=5,B後面的第5個字母,是G

  • 以下程式碼的輸出是:
int x=0, y=0, z=0;
z = (x==1) && (y=2);
printf("%d ", y);

答案:0

解析:很多人會疑問,y=2是賦值語句,為什麼不是2?這裡需要注意的是,(x==1)是0,而後面用的是且&&,所以前面的x==1判斷為0後,就不執行後面的了,因為結果一定是0

  • 以下程式碼結果是:
int i=10;
long long t = sizeof(i++);
printf("%d", i);

答案:10

解析:關鍵在於sizeof,sizeof()中的表示式是不進行計算的。

  • 表示式(double)(10/4*4)的結果是

答案:8.000000

  • 以下程式碼的輸出是:
int i,x,y;	
i=x=y=0;
do {
	++i;
	if ( i%2 ) 
		x+=i, 
	i++;
	y +=i++;
} while ( i<=7 );
printf("%d %d %d", i, x, y);

答案:9 1 20

解析:直接手動模擬一下就可以了,值得注意的是y+=i++的執行順序為,y = y + i ; i ++;