C語言程式設計入門第一次單元測試(中國大學MOOC)
阿新 • • 發佈:2018-12-29
- 以下程式碼片段的輸出是:
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 ++;