版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言實訓教程 -輸入輸出專項練習一、 實驗目的1. 能夠熟練并正確定義、輸入、輸出并使用常用數據類型:整型、實型、字 符型2. 能夠使用scanf(),printf(),getchar(),putchar(),gets(),puts()進行各種數據正確格式的輸入輸 出二、 實驗內容及實驗步驟(一) 驗證性試驗,驗證以下實驗,并分析實驗結果1. 用下面的scanf函數輸入數據,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,問在鍵盤上如何輸入數據?#include<stdio.h>int main()int a,b;float x,y;char c1,c2;sca
2、nf(“a=%d b=%d”,&a,&b);scanf(“%f%e”,&x,&y);scanf(“%c%c”,&c1,&c2);printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn",a,b,x,y,c1,c2);return 0;運行時分別按以下方式輸入數據,觀察輸出結果,分析原因。 a=3,b=7,x=8.5,y=71.82,A,a a=3,b=-858993460,x=-107374176.000000,y=-107374176.000000,c1=,c2=bPress any key to
3、continue a=3 b=7 x=8.5 y=71.82 A a a=3 b=7 8.5 71.82 A a a=3 b=7 8.5 71.82Aa 3 7 8.5 71.82Aa a=3 b=78.5 71.82Aa a=3 b=78.5 71.82Aa a=3 b=78.5 71.82Aa原因:“ ,”號、enter鍵都會被當做值給輸入進去。2. 字符輸入#include <stdio.h>main() int a; char b; float c; printf("Please input an integer:"); scanf("%d&q
4、uot;, &a); printf("integer: %dn", a); printf("Please input a character:"); scanf("%c", &b); printf("character: %cn", b); printf("Please input a float number:"); scanf("%f", &c); printf("float: %fn", c); 如果把scanf("
5、%c", &b);改為scanf("%1s", &b);觀察運行結果原因:發(fā) 3. 驗證格式輸入#include <stdio.h>void main() int a, b; printf("Please input a and b:"); scanf("%2d%*2d%2d", &a, &b); printf("a=%d, b=%d, a+b=%dn",a,b,a+b);(1)輸入123456,驗證上述實驗結果(2)輸入12345a, 驗證上述實驗結果4. 格
6、式輸入與輸出#include <stdio.h>main() int a=-1; printf ("%d,%o, %x",a,a, a); printf("%8o, %12x",a, a); 驗證程序分析實驗結果5. 無符號數據的輸出 #include<stdio.h>void main()unsigned int a=65535;int b=-2;printf(“a=%d,%o,%x,%un”,a,a,a,a);printf(“b=%d,%o,%x,%un”,b,b,b,b);驗證程序分析實驗結果6. 字符串的輸出#includ
7、e<stdio.h>void main()printf(“%3s,%7.2s,%.4s,%-5.3sn”, “CHINA”, “CHINA”, “CHINA”, “CHINA”);驗證程序分析實驗結果%3s,格式輸出字符串,右對齊,超出3個長度的,就全部輸出;%7.2s,輸出字符串占7個位置,有對齊,左補空格,輸出2個字符;%.4s,僅輸出4個字符,占位4個位置,右對齊;%-5.3s:輸出3個字符,占位5個位置,左對齊右補空格.7. 輸出實數時的有效位數#include <stdio.h>void main() float x,y;3x=111111.111;y=222
8、222.222;prinft(“%f”,x+y); 驗證程序分析實驗結果8. 輸出雙精度數時的有效位數#include <stdio.h>void main()double x,y;x=1111111111111.111111111; y=2222222222222.222222222;printf(“%f”,x+y);驗證程序分析實驗結果9. 輸出實數時指定小數位數#include <stdio.h>void main()float f=123.456;printf(“%f%10f%10.2f%.2f%-10.2fn”,f,f,f,f,f);驗證程序分析實驗結果10.
9、 字符輸出#include <stdio.h>int main(void) int c; for ( ; ; ) c = getchar();if (c = EOF) break;if (c >= a) && (c <= z) c += A - a; putchar(c); return 0; (1)對比下列五種代碼,將4-7、10行代碼替換如下,程序應該如何修改才能保持輸出結果相同?for (c=getchar(); c!=EOF; c=getchar() putchar(c);(2)將4-7、10行代碼替換如下,程序應該如何修改才能保持輸出結果相同?
10、while (c=getchar()!=EOF) putchar(c);(3)將4-7、10行代碼替換如下,程序應該如何修改才能保持輸出結果相同?c = getchar(); while (c!=EOF) putchar(c); c = getchar(); (4)如果用ASCII碼修改if (c >= a) && (c <= z); c += A - a;這兩句代碼,應該如何修改?(5) 利用ctype函數修改上面代碼,驗證程序結果#include <stdio.h>#include <ctype.h>int main(void) int
11、c; for ( ; ; ) c = getchar(); if (c = EOF) break; if (islower(c) c = toupper(c); putchar(c); return 0;11. 轉義符輸出#include <stdio.h>void main ( ) printf("ab ct derftgn");printf(“htibbjkn”);驗證程序分析實驗結果12. 字符串輸入輸出,連續(xù)輸入三個單詞,每個單詞以空格分隔#include <stdio.h>void main ( ) char str15,str25,str
12、35;scanf(”%s%s%s”,str1,str2,str3);printf("%s %s %s", str1,str2,str3);驗證程序分析實驗結果(二)編程題1. 編寫printf函數調用下列格式來顯示float型變量x:a) 指數表示形式: 最小為8的字段寬度內左對齊; 小數點后保留1位數字.b) 指數表示形式: 最小為10的字段寬度內右對齊; 小數點后保留6位數字c) 定點十進制表示形式: 最小為8的字段寬度內左對齊; 小數點后保留3位數字d) 定點十進制表示形式: 最小為6的字段寬度內右對齊; 小數點后無數字.#include "stdafx.h
13、"main()float x;x=0.00001;printf("%-8.1en",x,x,x);/*最小為8的字段寬度內左對齊; 小數點后保留1位數字./printf("%10.6en",x);/*最小為10的字段寬度內右對齊; 小數點后保留6位數字/printf("%-8.3dn",x);/*最小為8的字段寬度內左對齊; 小數點后保留3位數字/printf("%6un",x);/* 最小為6的字段寬度內右對齊; 小數點后無數字./return 0;2. 設計程序使得用戶可以以任意字符(回車、空格、制表
14、符、逗號、其它)作為分隔符進行數據的輸入#include "stdafx.h"main() int a,b;printf("please input a date:");scanf("%d%*c%d",&a,&b);printf("%dt%d",a,b);return 0;3. 編寫一個程序, 接收用戶錄入的日期信息并且將其顯示出來. 其中, 輸入日期的形式為月/日/年(mm/dd/yy), 輸出日期的形式為年月日(yymmdd)#include "stdafx.h"main()
15、 int year,month,day;printf("please input the date:month,day,yearn");scanf("%d%d%d",&month,&day,&year);printf("%d/%d/%dn",year,month,day);return 0;4. 有3個字符串,要求找出其中最大者#include "stdafx.h"#include<string.h>main() char str120,str220;int a;printf(&
16、quot;please input the str1 and str2:n");gets(str1);gets(str2);if(strcmp(str1,str2)>0) printf("str1>str2");elseprintf("str1<str2"); return a; #include "stdafx.h"#include<string.h>#include<stdio.h>main() char str120,str220,str320;int a;printf(&qu
17、ot;please input the str1,str2 and str3:n");gets(str1);gets(str2);gets(str3); a=strcmp(str1,str2);if(a>0) if(strcmp(str1,str3)>0)printf("str1>str2,str1>str3nstr1 is max stringn");else printf("str1>str2,str1<str3n str3 is max stringn");elseif(str2,str3>0)
18、printf("str2>1,str2>str3,nstr2 is max stringn");else printf("str2>str1,str3>str2n str3 is max stringn");return a; 5. 編寫一個程序, 對用戶錄入的產品信息進行格式化, 程序運行后需要有以下會話:Enter item number: 583Enter unit price: 13.5Enter purchase date(mm/dd/yy): 10/24/95Item Unit Price Purchase Date5
19、83 $ 13.50 10/24/95其中, 數字項和日期項左對齊, 單位價格右對齊, 美元數量最大取值為9999.99#include "stdafx.h"#include <stdio.h>main()int num_ber;int mm,dd,yy;float Unitprice;printf("請輸入itemnum_ber:number=583t");scanf("%d",&num_ber);printf("請輸入Unitprice:Unit price=13.5t");scanf(&q
20、uot;%f",&Unitprice);printf("請輸入日期mm/dd/yy=10/24/95");scanf("%d/%d/%dt",&mm,&dd,&yy);printf("ItemnumbertUnit PricetPurchase Date ");printf("%4dt%ft%3d/%3d/%3d,num_ber,UnitPrice,mm,dd,yy ");return 0;6. 計算若干整數的值,要求輸入有若干行,每行第一個整數n,代表后面還有n個數據,如
21、果n=0代表輸入結束。輸出:要求對于每一行都要在相應的行輸出和。#include "stdafx.h"#include <stdio.h>main()int m,n,i,j,sum=0;int a55;scanf("%d",&m);if(m=0) printf("ÊäÈë½áÊøn");else for(i=0;i<m;i+)for(j=0;j<m;j+)scanf("%d",&aij);a00=m;for(i=0;i<m;i+)for(j=0;j<m;j+)printf("%dt",aij);printf("n");for(i=0;i<m;i+)for(j=0;j<m;j+)sum=sum+aij;printf("sum=%dn",sum);sum=0;7. 編程實現如下程序,輸入Bb a=7b=6 96.37并輸出,每個數據以逗號分隔,每個數據寬度為10,浮點
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年北京市順義區(qū)第二中學高三上學期12月月考數學試題(含答案)
- 2022高考英語完形填空和閱讀理解暑假選練(4)答案(外研版)
- 【名師伴你行】2021屆高考物理二輪復習專題提能專訓:16機械振動、機械波、光及光的波動性
- 項目管理試用期總結:回顧成長路上的收獲與挑戰(zhàn)
- 2022高考英語溫州市信息匹配、閱理自練及答案2
- 【KS5U原創(chuàng)】新課標2021年高一英語暑假作業(yè)7
- 四年級數學(簡便運算)計算題專項練習與答案
- 2021街道社區(qū)矯正工作匯報材料
- 云南省德宏州潞西市芒市中學2014-2021學年高中生物必修三教案-2.2通過激素調節(jié)
- 【創(chuàng)新方案】2020-2021學年人教版高中歷史必修1檢測:第27課-世紀之交的世界格局
- 《慶澳門回歸盼祖國統(tǒng)一》主題班會教案
- 洗衣房工作人員崗位職責培訓
- 廣東省深圳市光明區(qū)2022-2023學年五年級上學期數學期末試卷(含答案)
- XX小區(qū)春節(jié)燈光布置方案
- 《華為銷售人員培訓》課件
- 《廣西壯族自治區(qū)房屋建筑和市政工程施工招標文件范本(2023年版)》
- 2024年化學螺栓錨固劑項目可行性研究報告
- 誠信講堂課件教學課件
- 2024年江蘇省普通高中學業(yè)水平信息技術綜合分析試卷(一)(含答案)
- 醫(yī)院培訓課件:《乳腺癌解讀》
- 北京聯(lián)合大學《數據結構》2023-2024學年期末試卷
評論
0/150
提交評論