0、C語言:題目整理

題目來源慕課網
記錄學習過程中遇到的錯題
隨時更新

  1. 字符串"\\’\054"佔用的存儲空間的長度是____。
    答案:4
    解釋:
      首先\\,是轉義字符,表示反斜線字符,佔一個字節
      然後\’,是轉義字符,表示單引號字符,佔一個字節
      其次\054,是轉義字符,表示用反斜槓後的三位八進制數字對應的ASCII碼的字符,佔一個字節
      最後字符串還有個結束符\0,佔一個字節

  2. 下列轉義字符中,錯誤的是( )。
    A. ’ \031’   B. ’ \b’   C. ’ \0xa5’   D. ’ \"’
    答案:C
    解釋:A選項是轉義字符,用三位八進制表示ASCII碼。B選項的反斜槓b表示的是退格。C選項中如果是用三位八進制數表示,則裏面不可能出現a和x,而且位數不對。D選項表示的是雙引號。

  3. 字符串 "\\abcd\\\n"在內存中佔用的字節數是( )。
    A. 11   B. 14   C. 10   D. 9
    答案:C
    解釋:\\表示反斜槓,有兩個,佔2個字節;abcd一個字符佔1個字節,共4個字節;又到了\\,有兩個,佔2個字節;\n表示換行轉義符,佔1個字節;最後還有一個結束符\0,佔一個字節。所以2+4+2+1+1=10。

  4. 以下哪個數字佔據的空間最大( )。
    A. 32768.0F   B. ‘3’   C. 32768   D. 32768.0
    答案:D
    解釋:A選項指定了爲float類型,佔4個字節;B選項是一個字符,佔1個字節;C選項是個整型,佔4個字節;D選項是一個浮點數,C語言中浮點數默認爲double類型,佔8個字節。

  5. printf(“a\rHappi\by”);在屏幕上正確的輸出形式是( )。
      A. Happy
      B. aHappi
      C. aHappy
      D. Happi
    答案:A
    解釋:首先輸出a,然後到\r的時候,表示光標回到本行的開頭,所以後面輸出的H就把a覆蓋掉了。之後輸出Happi。到\b的時候,表示光標退一格。然後輸出的y就把i覆蓋了。所以最後是Happy。

  6. 運行下面的程序,正確的輸出結果是( )

    #include <stdio.h> 
    	int main( ) 
    	{ 
    	  double  x=68.7563, y= -789.127;  
    	  printf ("%f, %10.2f\n", x,y);  
    	  return 0; 
    	}
    

    A. 68.756300, □□□-789.13
    B. 68.75, □□□-789.13
    C. 68.756300, □□□-789.12
    D. 68.75, -789.12
    答案:A
    解釋:%f默認保留6位小數。%10.2f表示有10個位置來顯示,不滿就右對齊,保留兩位小數。

  7. 設int a=3;,則表達式a<1&&–a>1的運算結果和a的值分別是()
      A. 0和3
      B. 0和2
      C. 1和2
      D. 1和3
    答案:A
    解釋:從左到右計算判斷。首先a<1的結果爲0,後面又是&&,所以後面部分不會計算,直接輸出結果爲0。此時a的值沒有發生改變。運算符優先次序由高到低:!,算術運算符,關係運算符,&&,||,條件運算符,賦值運算符,逗號運算

  8. 求1~100以內 ( 包括100)能被3整除同時被5整除餘數爲1的所有數之和。要求用for語句完成。
    輸出格式:“sum=%d\n”
    輸出樣例:sum=357
    答案:

    #include<stdio.h>
    int main(){
    	int i,sum=0;
    	for(i=1;i<=100;i++){
    		if(i%3==0 && i%5==1){
    			sum = sum + i;
    		}
    	}
    	printf("sum=%d\n",sum);
    	return 0;
    }
    
  9. 用do while 語句實現反覆從鍵盤輸入一個整數,如果大於或等於零,累加求和,直到輸入負數結束。然後求出平均值並輸出。
    輸入格式:"%d"
    輸出格式:“AVE=%.2f\n”

    #include<stdio.h>
    int main(){
    	int n,sum=0,count=0;
    	do{
    		scanf("%d",&n);
    		if(n>0){
    			sum=sum+n;
    		}
    		count++;
    	}while(n>=0);
    	double c = sum/(count-1);
    	printf("AVE=%.2f\n",c);
    	return 0;
    }
    
  10. 求1到10的階乘的和

    #include<stdio.h>
    int main(){
    	int n,j,sum=0,tmp;
    	for(n=1;n<=10;n++){
    		tmp = 1;
    		for(j=1;j<=n;j++){
    			tmp = tmp*j;
    		}
    		sum = sum + tmp;
    	}
    	printf("%d",sum);
    	return 0;
    }
    
  11. 用10元人民幣兌換角幣有多少種換法(角幣有1角、2角、5角三種)

    #include<stdio.h>
    int main(){
    	int i,j,k,count=0;
    	for(i=0;i<20;i++){
    		for(j=0;j<50;j++){
    			for(k=0;k<100;k++){
    				if(i*5+j*2+k==100){
    					count++;
    					printf("%d %d %d\n",i,j,k);
    				}
    			}
    		}
    	}
    	printf("%d",count);
    	return 0;
    }
    
  12. 輾轉相除法求兩個整數的最大公約數

    #include<stdio.h>
    int main(){
    	int a,b,max,min,r;
    	scanf("%d%d",&a,&b);
    	if(a>b){max=a;min=b;}
    	else{max=b;min=a;}
    	do{
    		r = max%min;
    		max = min;
    		min = r;
    		if(r==0){
    			printf("%d",max);
    		}
    	}while(r!=0);
    	return 0;
    }				
    
  13. 找出一個大於給定整數且緊隨這個整數的素數,例如 給定整數3,找到的素數是5。

    #include<stdio.h>
    int main(){
    	}
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章