3.學習筆記_4

習題 4.1

1.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    printf("I love c language best.\n");

    system("pause");
    return 0;
}

2.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{   
   printf("\"I love C language best.\"\n");  /*第三章學到的跳脫序列用法*/

   system("pause");
   return 0;
}

3.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{   
   printf("\"Hello C\"\n\"Hello,world\"\n");  /*第三章也有接觸到的跳脫序列用法*/

   system("pause");
   return 0;
}

4.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{   
   printf("\"100/4=25\"\n"); 

   system("pause");
   return 0;
}

5.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{   
   printf("\'30%%的學生來自中部地區,42%%的學生來自南部地區。\'\n"); 

   system("pause");
   return 0;
}

6.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{  
   float num=28.47f;    
   printf("num=%07.2f\n",num);  /*0表示不滿補0,7表示全部占用7欄位(含點),2表示小數點後有兩位*/ 

   system("pause");
   return 0;
}

7.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{  
   float num=12.34f;    
   printf("num=%+08.2f\n",num);

   system("pause");
   return 0;
}

8.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{ 
   printf("There is an old saying, \"Love me, love my dog.\"\n");

   system("pause");
   return 0;
}

習題 4.2

9.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   int num;
   scanf("%d",&num);  /*少鍵入一個 & */
   printf("num=%d\n",num);

   system("pause");
   return 0;
}

10.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   int a,b;
   scanf("%d %d",&a,&b);
   printf("%d*%d=%d\n",a,b,a*b);

   system("pause");
   return 0;
}

11.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   int id,age;
   printf("輸入學號: ");
   scanf("%d",&id);
   printf("輸入年齡: ");
   scanf("%d",&age); 
   printf("學號=%d, 年齡=%d\n",id,age);

   system("pause");
   return 0;
}

12.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   char n1[10];
   char n2[10];

   printf("輸入姓氏: ");
   scanf("%s",n1);
   printf("輸入名字: ");
   scanf("%s",n2);
   printf("%s %s\n",n2,n1);

   system("pause");
   return 0;
}

13.跑不出結果

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   char str[10];   
   printf("請輸入不包含空白的字串: ");
   scanf("%s",str);
   fflush(stdin);

   printf("\"%s\"\n");
   printf("\\%20s\\\n");  /*20即為設定印出時欄寬為20*/
   printf("\\%-20s\\\n"); /*負號可讓其靠左印出*/ 

   system("pause");
   return 0;
}

14.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   int num;   
   printf("請輸入十進位整數: ");
   scanf("%d",&num);

   printf("%d的八進位是 %o, ",num,num);
   printf("%d十六進位是 %x\n",num,num);

   system("pause");
   return 0;
}

15.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   int num;   
   printf("請輸入十六進位整數: ");
   scanf("%x",&num);

   printf("其八進位是 %o, ",num);
   printf("其十進位是 %d\n",num);

   system("pause");
   return 0;
}

習題 4.3

16.

(a)用scanf()輸入字串時不可有空白字元,故只讀到No,後面空白被當作結束,剩的內容被存在緩衝區。
(b)

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   char str1[8]; 
   char str2[8];
   char str3[8]; 

   printf("Input a string:");
   scanf("%s %s %s",str1,str2,str3);   
   printf("The string is %s %s %s\n",str1,str2,str3);

   system("pause");
   return 0;
}

17.

(a)按下Enter被認為是歸位、換行 兩個動作故輸入A按下Enter後,來不及鍵入第二個字元他就先讀取到換行了
(b)

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   char ch1,ch2;

   printf("請輸入第一個字元:");
   scanf("%c",&ch1);
   printf("請輸入第二個字元:");
   scanf(" %c",&ch2);           /*多個空白在%c前*/ 
   printf("ch1=%c, ch2=%c\n",ch1,ch2);

   system("pause");
   return 0;
}

(c)

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   char ch1,ch2;

   printf("請輸入第一個字元:");
   scanf("%c",&ch1);
   fflush(stdin);            /*清除緩衝*/ 

   printf("請輸入第二個字元:");
   scanf("%c",&ch2);
   printf("ch1=%c, ch2=%c\n",ch1,ch2);

   system("pause");
   return 0;
}

習題 4.4

18.

getchar() 是接收字元,等到按下Enter時結束輸入動作
getche() 是按下每個字元馬上接收,不用等Enter,並回應在螢幕上
getch() 是按下每個字元馬上接收,不用等Enter

19.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   int num;
   char ch;

   printf("請輸入一個整數: ");
   scanf("%d",&num);        
   fflush(stdin);            /* 清空緩衝區內的資料 */

   printf("請輸入一個字元: ");
   ch=getchar();        
   printf("num=%d, ascii of ch=%d\n",num,ch); 

   system("pause");
   return 0;
}

20.

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main(void)
{
   char ch;
   printf("請輸入一個字元: ");
   ch=getche();
   printf("  您輸入的字元是: ");
   putchar(ch);

   printf("\n請輸入一個字元: ");
   ch=getch();
   printf("   您輸入的字元是: ");
   putchar(ch);
   printf("\n");

   system("pause");
   return 0;
}

results matching ""

    No results matching ""