Part1: 格式化輸出函數(shù)printf()和格式化輸入函數(shù)scanf() #include <stdio.h> int main() { int x=1234; float f=123.456; double m=123.456; char ch='a'; char a[]="Hello, world!"; // 定義一個數(shù)組a,數(shù)組中連續(xù)存放了字符串常量hello,world! int y=3, z=4; printf("%d %d\n", y, z); printf("y=%d, z=%d\n", y,z); printf("?,-\n", x,x); printf("%f, ?, %8.1f, %0.2f, %.2e\n",f,f,f,f,f); printf("%lf\n",m); printf("<\n", ch);="" printf("%s\ns\n.5s\n%2.5s\n%.3s\n",a,a,a,a,a);="" return="" 0;=""> 此部分主要考察C語言常用輸出格式符:在這個程序中,我們會發(fā)現(xiàn)第四行輸出的最后三位數(shù)是“001”而不是“000”,這是由于計算機精度問題造成的;然后就是代碼打的是輸出“-",結(jié)果輸出的是”1234”而不是“12”,這是計算機的默認規(guī)則,即實際數(shù)位超過設(shè)定數(shù)位按照實際數(shù)位輸出;還有就是在輸入double型數(shù)據(jù)時scanf()要用%lf。 更改前: #include <stdio.h> int main() { double x,y; char c1,c2,c3; int a1,a2,a3; scanf("%d%d%d",a1,a2,a3); printf("%d,%d,%d\n",a1,a2,a3); scanf("%c%c%c",&c1,&c2,&c3); printf("%c%c%c\n",c1,c2,c3); scanf("%f,%lf",&x,&y); printf("%f,%lf\n",x,y); return 0; } 更改后: #include <stdio.h> int main() { double x,y; char c1,c2,c3; int a1,a2,a3; scanf("%d%d%d",&a1,&a2,&a3); printf("%d,%d,%d\n",a1,a2,a3); scanf("%c%c%c",&c1,&c2,&c3); printf("%c%c%c\n",c1,c2,c3); scanf("%lf,%lf",&x,&y); printf("%lf,%lf\n",x,y); return 0; } 此代碼缺少了取地址運算符"&";雙精度變量x對應(yīng)長雙精度格式%lf。 Part 2: ①getchar() #include <stdio.h> int main() { char ch; ch = getchar(); // 用戶從鍵盤輸入字符,如果輸入成功,輸入的字符被賦值給ch putchar(ch); // 使用putchar()輸出字符變量ch中存放的字符 printf("%c",ch); // 使用printf()和格式符%c輸出單個字符 return 0; } ②putchar() #include <stdio.h> int main() { char ch; ch = 'A'; putchar(ch); // 參數(shù)ch是字符型變量 putchar(ch 32); // 參數(shù)ch 32是字符型表達式 putchar('\x41'); // 參數(shù)是字符型常量,是用十六進制表示的轉(zhuǎn)義字符 putchar('\n'); // 參數(shù)\n是字符型常量,是轉(zhuǎn)義字符,表示換行 return 0; } Part3:if語句 #include <stdio.h> int main() { int a,b; int t; // 用于交換a和b時,作為中間變量 printf("輸入兩個整數(shù)給a和b:\n"); scanf("%d%d",&a,&b); if(a>b) { t = a; a = b; b = t; } printf("a=%d, b=%d\n",a,b); return 0; } #include <stdio.h> int main() { printf("輸入一個整數(shù)給n:\n"); scanf("%d",&n); if(n%2) printf("n是奇數(shù).\n"); else printf("n是偶數(shù).\n"); return 0; } #include <stdio.h> int main() { int level; printf("輸入現(xiàn)在狀態(tài)等級(1-5): "); scanf("%d",&level); if(level == 1) printf("high翻了:)\n"); else if(level == 2) printf("low爆了:(\n"); else printf("一言難盡,無法概括。。。\n"); return 0; } Part4: switch語句體驗練習 #include <stdio.h> int main() { int level; printf("輸入現(xiàn)在狀態(tài)等級(1-5): "); scanf("%d",&level); switch(level) { case 1: printf("high翻了:)\n"); break; case 2: printf("low爆了:(\n"); break; default: printf("一言難盡,無法概括。。。\n"); } return 0; } 若把case語句后面的break刪除,這出現(xiàn)下圖所示結(jié)果: 這說明switch語句遇到break則跳出,否則一直執(zhí)行,所以我們在使用switch語句時,應(yīng)該注意不要漏掉case語句后面的break。 Part 5 方法一:if語句: #include<stdio.h> int main(){ int x; printf("請輸入你的答案(A,B,C or D):"); scanf("%c",&x); if(x=='A') printf("Binggo, you are right~"); else printf("try again~"); return 0; } 方法二:switch語句: #include<stdio.h> int main(){ int answer; printf("請輸入你的答案(A,B,C or D):"); scanf("%c",&answer); switch(answer){ case'A':printf("Binggo, you are right~");break; default:printf("try again~");break; } return 0; } 總結(jié):在這次實驗中,我初步了解了if語句和switch語句的用法,對于精度要求、字符寬度等細節(jié)也有了進一步的了解。 |
|