




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C 語(yǔ)言程序設(shè)計(jì)上機(jī)實(shí)驗(yàn)指導(dǎo)與習(xí)題參考答案華南農(nóng)業(yè)大學(xué)上機(jī)實(shí)驗(yàn)實(shí)驗(yàn) 1 C 語(yǔ)言程序初步一、實(shí)驗(yàn)?zāi)康模?1)了解所用的計(jì)算機(jī)系統(tǒng)的基本操作方法,學(xué)會(huì)獨(dú)立使用該系統(tǒng)。( 2)了解在該系統(tǒng)上如何編輯、編譯、連接和運(yùn)行一個(gè)C 程序。( 3)通過運(yùn)行簡(jiǎn)單的C 程序,初步了解 C 程序的特點(diǎn)。( 4)在教師的指導(dǎo)下,學(xué)會(huì)使用JudgeOnline 實(shí)驗(yàn)系統(tǒng)。二、實(shí)驗(yàn)內(nèi)容1. 運(yùn)行第一個(gè)C 程序 題目: The first C Program將下列程序輸入 TC (或VC+ ),編譯、連接和運(yùn)行該程序。void main()printf("The first C Programn");
2、 具體操作步驟 以 Turbo C 上的操作為例( 1) Windows 進(jìn)入后,按照第一章中介紹的方法,進(jìn)入 Turbo C 。( 2)在編輯窗口中輸入程序。( 3)保存程序,取名為a1.c 。( 4)按照第一章中介紹的方法,編譯、連接和運(yùn)行程序。2. 在 JudgeOnline 系統(tǒng)中提交實(shí)現(xiàn)了計(jì)算a+b 功能的程序 題目1001 :計(jì)算a+b由鍵盤輸入兩個(gè)整數(shù),計(jì)算并輸出兩個(gè)整數(shù)的和。實(shí)現(xiàn)該功能的程序如下,void main() int a, b;scanf("%d%d", &a, &b);printf("%d", a + b);1
3、 )在程序編輯窗口中輸入程序。2 )保存程序,取名為 a2.c 。3)按照前二章中介紹的方法,編譯、連接和運(yùn)行程序。4)在程序運(yùn)行過程中,輸入15 30/(/表示輸入回車符)5 )如果看到如下輸出結(jié)果,則表明 15+30 的結(jié)果正確,如果得不到如下結(jié)果,則需檢查并更正程序。456 )按照第三章中介紹的方法進(jìn)入JudgeOnline 實(shí)驗(yàn)系統(tǒng)。7)顯示題目列表,點(diǎn)擊題號(hào)為1001 ,題名為“計(jì)算a+b ”的題目。8 )查看完題目要求后,點(diǎn)擊頁(yè)面下端的“sumbit ”,參照第二章提交程序的方法提交程序a2.c(9)查看評(píng)判結(jié)果,如果得到“accepted”則該題通過,否則返回第一步檢查程序是否正
4、確。5實(shí)驗(yàn)2基本數(shù)據(jù)類型、運(yùn)算和表達(dá)式一、實(shí)驗(yàn)?zāi)康?1)掌握 c語(yǔ)言數(shù)據(jù)類型,熟悉如何定義一個(gè)整型和實(shí)型的變量,以及對(duì)它們賦值的方法。(2)掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律。+)和自減(-)運(yùn)(3)學(xué)會(huì)使用 C的有關(guān)算術(shù)運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式,特別是自加( 算符的使用。(4)進(jìn)一步熟悉 C程序的編輯、編譯、連接和運(yùn)行的過程。、實(shí)驗(yàn)內(nèi)容1.變量的定義題目1117:變量定義,按要求完成程序下面給出一個(gè)可以運(yùn)行的程序,但是缺少部分語(yǔ)句,請(qǐng)按右邊的提示補(bǔ)充完整缺少的語(yǔ)句 void main() int a, b;/*定義整型變量a和b*/int i, j; /*定義實(shí)型變量i和j*/a=5
5、;b=6;i=3.14; j=i*a*b;printf("a=%d,b=%d,i=%f,j=%fn", a, b, i, j);具體操彳步驟(1)將代碼補(bǔ)充完整;(2)在TC或VC+上運(yùn)行通過;(3)在JudgeOnline實(shí)驗(yàn)系統(tǒng)上提交;2.賦值表達(dá)式與賦值語(yǔ)句題目1118:賦值表達(dá)式與賦值語(yǔ)句,寫出程序運(yùn)行結(jié)果閱讀下面程序,寫出運(yùn)行結(jié)果:void main() float a;int b, c;char d, e;a=3.5;b=a;c=330;d=c;e=''printf("%f,%d,%d,%c,%c", a,b,c,d,e);運(yùn)
6、行結(jié)果為:3.500000,3,330,J,提示賦值語(yǔ)句具有類型轉(zhuǎn)換的功能,但可能會(huì)改變數(shù)據(jù)。3.基本運(yùn)算題目1119:基本運(yùn)算,寫出程序運(yùn)行結(jié)果閱讀下面程序,寫出運(yùn)行結(jié)果:void main() int a, b, c;float d=15, e, f;a=35%7;b=15/10;c=b+;e=15/10;f=d/10;printf("%d,%d,%d,%f,%f,%f", a,b,c,d,e,f);運(yùn)行結(jié)果為:0,2,1,15.000000,1.000000,1.500000提示除法分整除與普通除法之分。實(shí)驗(yàn) 3 基本輸入與輸出一、實(shí)驗(yàn)?zāi)康? 1)熟練掌握putcha
7、r、 getchar、 printf 、 scanf 函數(shù)的使用方法。( 2)掌握各種類型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉(zhuǎn)換符。二、實(shí)驗(yàn)內(nèi)容 題目 1126 :字符的輸入與輸出 編程實(shí)現(xiàn)由鍵盤輸入一個(gè)字符后,在屏幕上輸出該字符。 第一組自測(cè)數(shù)據(jù)第二組自測(cè)數(shù)據(jù) 鍵盤輸入 鍵盤輸入a/+/ 正確輸出 正確輸出 a+參考程序:#include "stdio.h" main() char ch;ch = getchar();putchar(ch); 題目1127 :計(jì)算加法編程實(shí)現(xiàn)由鍵盤輸入一個(gè)加法式,輸出正確的結(jié)果。(兩個(gè)加數(shù)均為整數(shù)) 第一組自測(cè)數(shù)據(jù)第二組自測(cè)數(shù)據(jù) 鍵
8、盤輸入 鍵盤輸入 10+20/-15+60/ 正確輸出 正確輸出 3045參考程序:#include "stdio.h"main() int a, b;scanf("%d%*c%d", &a,&b);printf("%d", a+b); 題目1014 :求圓面積由鍵盤輸入圓半徑r,請(qǐng)計(jì)算該圓的面積。(注: 冗取3.14159,結(jié)果保留兩位小數(shù)位;另外,程序只要能對(duì) r 在 0 到 10000 范圍的情況輸出正確答案即可) 第一組自測(cè)數(shù)據(jù)鍵盤輸入 65.2 /鍵盤輸入正確輸出11.2/13355.02正確輸出第二組自測(cè)數(shù)
9、據(jù)394.08提示 結(jié)果保留兩位小數(shù)可采用 printf 函數(shù)的格式控制字符來實(shí)現(xiàn)。參考程序:#include "stdio.h"main() float area,r;scanf("%f",&r);area=3.14159*r*r;printf("%0.2f",area);5題目1015:計(jì)算攝氏溫度值從鍵盤輸入一個(gè)華氏溫度值,要求按格式輸出其對(duì)應(yīng)的攝氏溫度值,精確到小數(shù)點(diǎn)后兩位。數(shù)學(xué)公式描述為:-5 _-C = 5(F 32)第二組自測(cè)數(shù)據(jù)鍵盤輸入100/正確輸出37.78第一組自測(cè)數(shù)據(jù)鍵盤輸入100/正確輸出37.78提
10、示注意公式中的除為普通除法參考程序:#include<stdio.h>void main() float f,c;scanf("%f",&f);c=5.0/9*(f-32);printf("%.2f”,c);實(shí)驗(yàn) 4 選擇結(jié)構(gòu)程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康模?1 )了解 C 語(yǔ)言表示邏輯的方法(以 0 代表“假”,以非0 代表“真”)。( 2 )學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式。( 3 )熟練掌握if 語(yǔ)句和 switch 語(yǔ)句。( 4 )結(jié)合程序掌握一些簡(jiǎn)單的算法。二、實(shí)驗(yàn)內(nèi)容題目1120:判斷點(diǎn)是否在圓上由鍵盤輸入一個(gè)點(diǎn)的坐標(biāo) , 要求編程判斷這個(gè)
11、點(diǎn)是否在單位圓上,點(diǎn)在圓上輸出 Y, 不在圓上輸出N 。使用小數(shù)點(diǎn)后3 位精度進(jìn)行判斷。第一組自測(cè)數(shù)據(jù)第二組自測(cè)數(shù)據(jù) 鍵盤輸入鍵盤輸入0.707,0.707 /0.5,0.5 /正確輸出正確輸出YN提示 ( 1 )平面上的點(diǎn)與圓的關(guān)系分為在圓內(nèi)、在圓上、在圓外三種,本題要求判斷是否在圓上;(2)判斷兩實(shí)數(shù)相等采用判斷這兩實(shí)數(shù)的差的絕對(duì)值小于規(guī)定誤差精度(本題為 0.001)的方法實(shí)現(xiàn)。參考程序:#include "stdio.h"#include "math.h"void main() float a,b;scanf("%f,%f",
12、&a,&b);if(fabs(a*a+b*b-1)1e-3)printf("Yn");else printf("Nn");題目1017:求數(shù)的位數(shù)由鍵盤輸入一個(gè)不多于9 位的正整數(shù),要求輸出它是幾位數(shù)。第一組自測(cè)數(shù)據(jù)第二組自測(cè)數(shù)據(jù)鍵盤輸入鍵盤輸入349213 /10000/正確輸出正確輸出65提示劃定一位數(shù)、二位數(shù)、九位數(shù)的范圍,然后用 ifelse ifelse語(yǔ)句實(shí)現(xiàn)判斷。參考程序:main() int n,place;scanf("%ld",&n);if(n>99999999) place=9;el
13、se if(n>9999999) place=8;else if(n>999999) place=7;else if(n>99999) place=6;else if(n>9999) place=5;else if(n>999) place=4;else if(n>99) place=3;else if(n>9) place=2;else place=1;printf("%ldn",place);題目1018 :數(shù)的排序由鍵盤輸入三個(gè)整數(shù)a、 b 、 c ,按從小到大的順序輸出這三個(gè)數(shù)。 第一組自測(cè)數(shù)據(jù)第二組自測(cè)數(shù)據(jù) 鍵盤輸入鍵盤輸
14、入65,45,90/9,6,3/ 正確輸出正確輸出45,65,903,6,9參考程序:#include<stdio.h>main() int a,b,c,t;scanf("%d,%d,%d",&a,&b,&c);if(a>b) t=a;a=b;b=t;if(a>c) t=a;a=c;c=t;if(b>c) t=b;b=c;c=t;printf("%d,%d,%d",a,b,c);題目1016 :字符變換由鍵盤輸入 5 個(gè)字符,將其中的大寫字母變成小寫,其它類型的字符不變,并按輸入順序逐個(gè)輸出。 第一組
15、自測(cè)數(shù)據(jù)第二組自測(cè)數(shù)據(jù) 鍵盤輸入鍵盤輸入ApPLe /a+B=5 / 正確輸出正確輸出applea+b=5 提示 下面代碼實(shí)現(xiàn)由鍵盤讀入一個(gè)字符,并按題意處理后輸出char a;a=getchar();if(a>='A' && a<='Z') a=a+32;putchar(a);#現(xiàn)在,題目要求處理5個(gè)字符,怎么做呢?請(qǐng)自己思考參考程序:#include <stdio.h>main() char a,b,c,d,e;scanf("%c%c%c%c%c",&a,&b,&c,&
16、;d,&e);if(a<='Z'&&a>='A') a=a+32;if(b<='Z'&&b>='A') b=b+32;if(c<='Z'&&c>='A') c=c+32;if(d<='Z'&&d>='A') d=d+32;if(e<='Z'&&e>='A') e=e+32;printf(&q
17、uot;%c%c%c%c%c",a,b,c,d,e);9題目1019:數(shù)的整除由鍵盤輸入 5 個(gè)整數(shù),逐個(gè)判斷它們能否被輸出時(shí),一個(gè)判斷結(jié)果占一行, 5 個(gè)數(shù)的判斷共占第一組自測(cè)數(shù)據(jù)鍵盤輸入8 2717577325 54 /正確輸出NOYES27整除,能的輸出“YES” ,不能的輸出“NO” (注意,行)。第二組自測(cè)數(shù)據(jù)鍵盤輸入8 27 17577 325 54 /正確輸出NOYESYESYESNOYES提示 整除即除得余數(shù)為0參考程序:NOYES#include "stdio.h"main() int a,b,c,d,e;scanf("%d %d %d
18、 %d %d",&a,&b,&c,&d,&e);if(a%27=0) printf("YESn");else printf("NOn");if(b%27=0) printf("YESn");else printf("NOn");if(c%27=0) printf("YESn");else printf("NOn");if(d%27=0) printf("YESn");else printf("NO
19、n");if(e%27=0) printf("YESn");else printf("NOn");題目1020 :正負(fù)奇偶判斷由鍵盤輸入非零整數(shù)x ,判斷該數(shù)正負(fù),正數(shù)輸出偶性,奇數(shù)輸出odd ,偶數(shù)輸出even。第一組自測(cè)數(shù)據(jù)鍵盤輸入-43 /正確輸出positive ,負(fù)數(shù)輸出negative ,接著判斷該數(shù)的奇negativeodd第二組自測(cè)數(shù)據(jù)鍵盤輸入98/正確輸出參考程序:#include "stdio.h"main() int n;scanf("%d",&n);if(n<0)pr
20、intf("negative'n");else printf("positive'n"); if(n%2=0)printf(',evenn,'); else printf("odd'n");positive even題目1023:簡(jiǎn)單計(jì)算器下面程序是實(shí)現(xiàn)一個(gè)簡(jiǎn)單的運(yùn)算器(保留兩位小數(shù)點(diǎn)),如果由鍵盤輸入10+50,計(jì)算機(jī)可以輸出結(jié)果60.00;如果輸入 8*6,計(jì)算機(jī)輸出 48.00;如果輸入 20/4,計(jì)算機(jī)輸出5.00;如果輸入 8-6,計(jì)算機(jī)輸出2.00,請(qǐng)?jiān)诳仗幪钌线m當(dāng)?shù)拇a,運(yùn)行通過后
21、并提交。#include ,stdio.h"void main() float a,b,c;char op;scanf("%f%c%f, );switch (op) case '+':;case '-':;case '/':;default: printf("error");return ; printf("result= , c);第一組自測(cè)數(shù)據(jù)鍵盤輸入45*2 /正確輸出第二組自測(cè)數(shù)據(jù)鍵盤輸入50.1-23/正確輸出9027.10#include <stdio.h>int main
22、() float a,b,c;char op;scanf("%f%c%f",&a,&op,&b); switch(op) case '+':c=a+b;break;case '-':c=a-b;break;case '*':c=a*b;break;case '/':c=a/b;break;default:printf("error"); break;printf("result=%.2f",c);42511第二組自測(cè)數(shù)據(jù)鍵盤輸入8/正確輸出4032
23、0第二組自測(cè)數(shù)據(jù)鍵盤輸入5/正確輸出實(shí)驗(yàn) 5 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(一)、實(shí)驗(yàn)?zāi)康?)熟悉掌握用 while 語(yǔ)句、 do-while 語(yǔ)句和 for 語(yǔ)句實(shí)現(xiàn)循環(huán)的方法。2)掌握在程序設(shè)計(jì)中用循環(huán)實(shí)現(xiàn)一些常用算法(如窮舉、迭代、遞推等)。、實(shí)驗(yàn)內(nèi)容 題目1024 :計(jì)算階乘輸入正整數(shù)n,計(jì)算n!,結(jié)果用長(zhǎng)整型數(shù)表示(注n!=1*2*3*n ) 第一組自測(cè)數(shù)據(jù) 鍵盤輸入5/ 正確輸出120參考程序:#include<stdio.h>main() long i,n=1,a;scanf("%ld",&a);for(i=1;i<=a;i+) n=n*i; p
24、rintf("%ldn",n);題目1025 :計(jì)算數(shù)列和 有數(shù)列 1, 3, 5, 7, 9, 11 ,現(xiàn)要求由鍵盤輸入 n ,計(jì)算輸出該數(shù)列的前n 項(xiàng)和。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入2/ 正確輸出#include<stdio.h> main() long n,sum=0,i,t=1;scanf("%ld",&n);for(i=1;i<=n;i+) sum=sum+t;t=t+2;printf("%ldn",sum); 或#include <stdio.h>main() long n,sum;sc
25、anf("%ld",&n);sum=n*n;printf("%ld",sum);注:評(píng)判系統(tǒng)不對(duì)程序?qū)崿F(xiàn)細(xì)節(jié)進(jìn)行分析,只對(duì)運(yùn)行結(jié)果進(jìn)行評(píng)測(cè)。題目1026 :累加一行字符中的數(shù)字由鍵盤輸入一行字符(總字符個(gè)數(shù)從 1 個(gè)至 80 個(gè)均有可能,以回車符表示結(jié)束),將其中每個(gè)數(shù)字 字符所代表的數(shù)值累加起來,輸出結(jié)果。第一組自測(cè)數(shù)據(jù)第二組自測(cè)數(shù)據(jù)鍵盤輸入鍵盤輸入abcl23 /A6H7T+6g正確輸出正確輸出624提示 ( 1 )可以使用下面程序段逐個(gè)讀入鍵盤輸入的一行字符char ch;while(ch=getchar()!='n') (
26、 2)數(shù)字字符轉(zhuǎn)為對(duì)應(yīng)的數(shù)值可用a=ch-'0'參考程序:#include<stdio.h>main() char c;int s=0,a;while(c=getchar()!='n') if(c>='0'&&c<='9') a=c-48;s=s+a; printf("%d",s); 題目1029 :求最大公約數(shù)由鍵盤輸入兩個(gè)正整數(shù)m 、 n( m、 n 用長(zhǎng)整數(shù)表示),計(jì)算它們的最大公約數(shù)。 第一組自測(cè)數(shù)據(jù)第二組自測(cè)數(shù)據(jù) 鍵盤輸入鍵盤輸入16,24/17,25/ 正確輸
27、出正確輸出81 提示 公約數(shù)是既能整除m 又能整除 n 的數(shù),題目要求滿足這一條件的最大的一個(gè)。參考程序:#include<stdio.h>main() long r,m,n,temp;scanf("%ld,%ld",&m,&n); while(m!=0) r=n%m;n=m;m=r;printf("%ldn",n);或#include<stdio.h>main() long m,n,t,i,s;scanf("%ld,%ld",&m,&n);t=m>n?n:m;for (i
28、=t-1;i>=1;i-) if (m%i=0&&n%i=0) s=i; break; printf("%d",s); 題目 1030 :字符變換 由鍵盤輸入一個(gè)句子(總字符個(gè)數(shù)從1 個(gè)至 80 個(gè)均有可能,以回車符表示結(jié)束),將其中的大寫字符變成小寫(其它類型的字符不變),最后輸出變換后的句子。 第一組自測(cè)數(shù)據(jù)第二組自測(cè)數(shù)據(jù) 鍵盤輸入鍵盤輸入How Are You? /ThiS IS My fIrSt C ProgrAm! / 正確輸出正確輸出how are you?this is my first c program!參考程序:#include &
29、lt;stdio.h> main() char c;while(c=getchar()!='n') if(c>='A'&&c<='Z')c=c+32;putchar(c); 題目1037:計(jì)算數(shù)列和有數(shù)列:5#編程實(shí)現(xiàn),由鍵盤輸入第一組自測(cè)數(shù)據(jù)鍵盤輸入20/正確輸出32.66032_312n,計(jì)算輸出數(shù)列前5813213581an項(xiàng)和。(結(jié)果保留四位小數(shù)) 第二組自測(cè)數(shù)據(jù) 鍵盤輸入30/ 正確輸出88.0403參考程序:#include<stdio.h>main() int i,t,n;float a
30、=2,b=1,s=0; scanf("%d",&n); for(i=1;i<=n;i+) s=s+a/b;t=a;a=a+b;b=t;printf("%.4fn",s);題目1044:輸出最小值從鍵盤輸入十個(gè)整數(shù),輸出最小值自測(cè)數(shù)據(jù)鍵盤輸入12 4576 875 8743 5599 21 /正確輸出參考程序:#include "stdio.h" main() int i,t,min;scanf("%d", &min); for(i=1;i<10;i+)scanf("%d&quo
31、t;, &t); if(t<min) min=t;printf("%dn",min); 題目 1031 :統(tǒng)計(jì)單詞個(gè)數(shù) 個(gè)均有可能,以回車符表示結(jié)束),以空格分割單詞,第二組自測(cè)數(shù)據(jù)鍵盤輸入There are many students and many trees! /正確輸出7由鍵盤輸入一個(gè)句子(總字符個(gè)數(shù)從1 個(gè)至 80要求輸出單詞的個(gè)數(shù)。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入How Are You? / 正確輸出3參考程序:#include<stdio.h>main() int i,num=0,word=0;char c;for(i=0;(c=getc
32、har()!='n'i+)if(c=' ')word=0;else if(word=0) word=1;num+;printf("%d",num); 題目 1042 :百萬富翁一個(gè)百萬富翁遇到一個(gè)陌生人,陌生人找他談了一個(gè)換錢的計(jì)劃。該計(jì)劃如下:我每天給你m 元,而你第一天只需給我一分錢。第二天我仍給你m 元,你給我2 分錢。第三天,我仍給你 m 元,你給我分錢。依次類推,你每天給我的錢是前一天的兩倍,直到一個(gè)月 (38) 天。百萬富翁很高興,欣然接受這個(gè)契約?,F(xiàn)要求,編寫一個(gè)程序,由鍵盤輸入m ,計(jì)算多少天后,百萬富翁開始虧錢。 第一組自測(cè)
33、數(shù)據(jù)18 鍵盤輸入 第二組自測(cè)數(shù)據(jù)100/鍵盤輸入正確輸出io。/15正確輸出25參考程序:#include <stdio.h>#include <math.h>main() int n,m,i;scanf ("%d",&m);for (i=1;i<=38;i+)if (0.01*(pow(2,i-1)-1)-i*m>=0) break;printf("%d",i-1);17實(shí)驗(yàn) 6 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(二)實(shí)驗(yàn)?zāi)康?)2)。while 語(yǔ)句、 do-while 語(yǔ)句和 for 語(yǔ)句實(shí)現(xiàn)循環(huán)的方法。掌握在程序設(shè)計(jì)
34、中使用多重循環(huán)。實(shí)驗(yàn)內(nèi)容 題目1028 :求素?cái)?shù) 輸出 2 到 200 之間(包括2 、 200)的所有素?cái)?shù)(注:要求1 行 1 個(gè)素?cái)?shù),按由小到大的順序輸出)。 提示 采用雙重循環(huán),外層循環(huán)產(chǎn)生2 到 200 之間的數(shù),內(nèi)層循環(huán)對(duì)數(shù)進(jìn)行判斷是否為素?cái)?shù)。參考程序:# include<stdio.h># include<math.h>main() int m,k,i;for(m=2;m<=200;m+) k=sqrt(m);for(i=2;i<=k;i+)if(m%i=0) break;if(i>k) printf("%dn",m);
35、 題目1.#include<stdio.h> void main()1137 :找到滿足要求的數(shù)字int a,b,n;for (n=0;n<=9999;n+)if (n%7=0)a=n;while(a!=0)b=a/10;b=a-b*10;a=a/10;if (b=5)printf ("%dn",n);break;ooo或者在GCC環(huán)境下運(yùn)行)在C中先才TEP 1-5000的,再打印500099996勺2.#include <stdio.h>#include <stdlib.h>int main()int i, j, k, m, n
36、;for (i=0;i<=9;i+)for (j=0;j<=9;j+)for(k=0;k<=9;k+)for(m=1;m<=9;m+)n=i*1000+j*100+k*10+m;return 0; if(n%7=0)&&(n%1000=5|n%100=5|n%10=5) 0,;3#include<stdio.h> void p(int i) int j;for(j=i;j>0;j/=10) if(j%10=5) printf("%dn",i); break;nt main()(int i;for(i=7;i<=
37、9999;i+) if(i%7=0)單元測(cè)試:打印星號(hào)空心菱形#include<stdio.h> int main() int i,j,k,line,m;printf("請(qǐng)輸入行數(shù):");scanf("%d",&line);m=(line+1)/2;for(i=1;i<=m;i+) for(k=0;k<m-i;k+) printf("");printf("*");if(i=1)printf("n");continue; for(j=0;j<2*i-3;j+)
38、 printf("");printf("*");printf("n");for(i=m-1;i>0;i-) for(k=0;k<m-i;k+) printf("");printf("*");if(i=1)printf("n");continue; for(j=0;j<2*i-3;j+)printf("");printf("*");printf("n");return 0;題目1035:打印菱形2*n
39、+1行的菱形圖案。要求菱形左邊緊靠屏幕左邊。第二組自測(cè)數(shù)據(jù)鍵盤輸入2/正確輸出*由鍵盤輸入正數(shù)n,要求輸出第一組自測(cè)數(shù)據(jù)鍵盤輸入3/正確輸出*15#include "stdio.h"#include "math.h"main() int n,i,j,k;scanf("%d",&n);for(i=1;i<=2*n+1;i+)k=abs(n+1-i);for(j=1;j<=k;j+) printf(" ");for(j=1;j<=2*n+1-2*k;j+) printf("*&quo
40、t;); printf("n");題目1038 :打印圖案要求菱形左邊緊靠屏幕左邊。第二組自測(cè)數(shù)據(jù)鍵盤輸入3/正確輸出1121123211211由鍵盤輸入正數(shù)n,要求輸出中間數(shù)字為n的菱形圖案。第一組自測(cè)數(shù)據(jù)鍵盤輸入4/正確輸出1121123211234321123211211參考程序:# include<stdio.h># include<math.h>main() int n,i,j,k,h;scanf("%d",&n);for(i=-n+1;i<=n-1;i+)for(j=0;j<abs(i);j+)pr
41、intf(" ");for(k=1;k<=n-abs(i);k+) printf("%d",k);for(h=n-abs(i)-1;h>=1;h-) printf("%d",h); printf("n");實(shí)驗(yàn) 7 數(shù)組一、實(shí)驗(yàn)?zāi)康? 1)掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出方法。( 2)掌握與數(shù)組有關(guān)的算法。二、實(shí)驗(yàn)內(nèi)容 題目 1039 :倒序 由鍵盤輸入 10 個(gè)整數(shù),倒序輸出。(數(shù)字間由一個(gè)空格分隔) 自測(cè)數(shù)據(jù) 鍵盤輸入70 5 14 2019 299 6713 66/ 正確輸出66 13
42、67 992 192014570參考程序:#include<math.h>main() int a10;int i;for(i=0;i<10;i+) scanf("%d",&ai);for(i=9;i>=0;i-) printf("%dn",ai); 題目1040 :統(tǒng)計(jì)不同數(shù)字個(gè)數(shù)由鍵盤輸入 20 個(gè)整數(shù),統(tǒng)計(jì)不同數(shù)字的個(gè)數(shù)。 自測(cè)數(shù)據(jù) 鍵盤輸入70 5 14 2219 299 6713 66 5 93 44 38 22 11 39 22 33 11 / 正確輸出16 提示 上述答案中,因?yàn)?5 有 1 個(gè)重復(fù)數(shù)字, 1
43、1 有 1 個(gè)重復(fù)數(shù)字, 22 有 2 個(gè)重復(fù)數(shù)字,故不同數(shù)字有16個(gè),分別是705 14 2219 2 99 67 13 6693 44 38 11 39 33#include"stdio.h"main() int a20;int i,t,p=0;for(i=0;i<20;i+)scanf("%d",&ai);for(t=0;t<i;t+) if(at=ai)break;if(t=i)p+;printf("%d",p);題目1062 :打印矩陣由鍵盤輸入一個(gè)3必 的矩陣,要求輸出它的轉(zhuǎn)置矩陣 自測(cè)數(shù)據(jù)正確輸出 1
44、 1 16 1 990 83 2 9鍵盤輸入1 6 9 31 1 0 21 9 8 9參考程序:#include<stdio.h>main() int a34,b43,i,j;for(i=0;i<3;i+)for(j=0;j<4;j+)scanf("%d",&aij);bji=aij;for(i=0;i<4;i+)for(j=0;j<3;j+)printf("%d ",bij); printf("n"); 題目1047 :冒泡排序由鍵盤輸入 10 個(gè)數(shù),用“冒泡法”對(duì) 10 個(gè)數(shù)從小到大排序
45、,并按格式要求輸出。代碼如下,請(qǐng)?zhí)畛渫暾?數(shù)字間由一個(gè)空格分隔。#incude "stdio.h main() int a10, i, j, t;21for(i=0;i<10;i+) scanf("%d",) ;for( ) for(j=0;j<j+)if ()for(i=0;i<10;i+) printf("%d ",ai); 自測(cè)數(shù)據(jù) 鍵盤輸入70 5 14 2019 299 671366/正確輸出2 5 13 14 19 2066 67 70 99參考程序:#include<stdio.h>main() i
46、nt a10;int i,j,t;for(i=0;i<10;i+)scanf("%d",&ai);for(i=0;i<9;i+)for(j=0;j<9-i;j+)if(aj>aj+1)t=aj; aj=aj+1; aj+1=t; for(i=0;i<10;i+) printf("%d ",ai); 題目 1046 :計(jì)算高精度加法 80 位),試計(jì)算并輸出這兩個(gè)數(shù)由鍵盤輸入兩個(gè)位數(shù)很長(zhǎng)的整數(shù)(一行一個(gè)數(shù),每個(gè)數(shù)最長(zhǎng)不超過的和。 自測(cè)數(shù)據(jù) 鍵盤輸入1234567890123456789 /987654321098765
47、 / 正確輸出 1235555544444555554#include "stdio.h" #include "string.h"main() int a100=0,b100=0,c100=0; char s101;int i=0,n1=0,n2=0,max=0,e=0;gets(s);n1=strlen(s);for(i=n1-1;i>=0;i-) an1-1-i=si-'0'gets(s);n2=strlen(s);for(i=n2-1;i>=0;i-) bn2-1-i=si-'0'if(n1>n2)
48、 max=n1;else max=n2;for(i=0;i<=max;i+)ci=(ai+bi+e)%10;e=(ai+bi+e)/10;if(cmax>0) printf("%d",cmax);for(i=max-1;i>=0;i-) printf("%d",ci); 題目:找矩陣中的鞍點(diǎn) 由鍵盤輸入一個(gè) 3X4 (3行4歹U)的矩陣,輸出矩陣中的鞍點(diǎn)(即在矩陣行中最大,列中最小的數(shù)) 若沒有鞍點(diǎn),輸出“ NO ”字樣。 自測(cè)數(shù)據(jù)鍵盤輸入8790110 98/7097210 65 /9845120 30/正確輸出 110參考程序:#i
49、nclude <stdio.h>main() int i,j,k,a34,max,maxj,flag;for(i=0;i<3;i+)for(j=0;j<4;j+) scanf("%d",&aij);for(i=0;i<3;i+)max=ai0;maxj=0;for(j=0;j<4;j+) if(aij>max) max=aij; maxj=j; flag=1;for(k=0;k<3;k+) if(max>akmaxj) flag=0; break; if(flag)printf("%d”,max);br
50、eak;if(!flag)printf("NO");第7單元單元測(cè)試:打印楊輝三角#include <stdio.h>int c(x,y) /求楊輝三角形的第x行第y列的值int x,y;匚int z;if(y=i)l(y=x+i) /若為x行的第1或第x+i列,剛輸出1return (1);z=c(x-1,y-1)+c(x-1,y);/ 否則,其值為前一行中第y-1列與第y列值之和return (z);void main()int i,j,n=13;printf("N=");while(n>12)scanf("%d"
51、;,&n); /控制輸入正確的值以保證屏幕顯示的圖形正確for(i=0;i<=n;i+) /控制輸出即亍/for(j=0;j<12-i;j+) /控制輸出第i行前面的空格/printf("");for(j=1;j<i+2;j+) /輸出第i行的第j個(gè)值printf("%6d",c(i,j);printf("n");#include "stdio.h"#define N 50void yang(int aN,int n) int i,j;for(i=0;i<n;i+)aaii0i=11
52、; ;for(i=2;i<n;i+)for(j=1;j<i;j+) aij=ai-1j-1+ai-1j; void main()int n,j,i;int aNN;scanf("%d",&n);yang(a,n);for(i=0;i<n;i+)for(j=0;j<=i;j+) printf("%d,",aij); putchar('n'); 3.#include <stdio.h> main()long i,j,n,k;scanf("%ld",&n);for(i=1;
53、i<=n;i+)k=1;for(j=1;j<i;j+) printf("%ld,",k); k=k*(i-j)/j;21printf("1n"); 實(shí)驗(yàn)8字符數(shù)組的應(yīng)用一、實(shí)驗(yàn)?zāi)康?1)掌握字符數(shù)組和字符串函數(shù)的使用。(2)掌握與字符串處理有關(guān)的算法。二、實(shí)驗(yàn)內(nèi)容題目1121:定義存貯字符串的字符數(shù)組在下面程序中填充定義字符數(shù)組的語(yǔ)句,使程序完整#include "string.h"void main() char s80;/*定義字符數(shù)組 s*/strcpy(s, "abcdefghijklmn");
54、printf("%s", s);參考程序:題目1123:字符串的輸入與輸出下面程序?qū)崿F(xiàn)從鍵盤讀入字符串,然后輸出到屏幕,請(qǐng)?zhí)畛浔匾恼Z(yǔ)句#include "stdio.h"void main()char s50;printf("What's your name?");gets(s); /*由鍵盤讀入字符串 */printf("Your name is ",);printf(" 紋,s); /*打印字符串*/參考程序:題目1122:字符串的合并3個(gè)字符串以輸入先后順序合并到從鍵盤輸入 3個(gè)字符串(每
55、個(gè)字符串以回車符做為結(jié)束標(biāo)志),將 字符串s中,請(qǐng)?zhí)羁帐褂贸绦蛲暾?include "stdio.h"#include "string.h"main()char s100=""char a30;gets(a); strcat(s, a);#gets(a); strcat(s, a);gets(a); strcat(s, a);/*可以寫多行代碼*/ printf("%s", s);自測(cè)數(shù)據(jù)鍵盤輸入正確輸出123123abc456abc456參考程序:題目1050:尋找字符串由鍵盤輸入兩個(gè)字符串(假設(shè)第一個(gè)字符串必
56、包含第二個(gè)字符串,如第一個(gè)字符串為ABCDEF ,第二個(gè)為 CDE,則CDE包含在 ABCDEF中),現(xiàn)要求編程輸出第二字符串在第一行字符串中出現(xiàn)的位置。(如果第二個(gè)字符串在第一個(gè)字符串中出現(xiàn)多次,則以最前出現(xiàn)的為準(zhǔn))第一組自測(cè)數(shù)據(jù)第二組自測(cè)數(shù)據(jù)鍵盤輸入鍵盤輸入ABCDEFG /hellhello! /DE/hello/正確輸出正確輸出45提示方法1:建立雙重循環(huán),外層循環(huán)變量指示第一個(gè)串的查找起始位置,內(nèi)層循環(huán)從起始位置開始判斷第二個(gè)字符中是否出現(xiàn)在此處;方法 2:使用字符串函數(shù)strstr()。參考程序:#include "stdio.h"main() int i,j;cha
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購(gòu)管理總結(jié)與核心經(jīng)驗(yàn)
- 中級(jí)審計(jì)師應(yīng)試攻略試題及答案
- 《餐飲服務(wù)員績(jī)效考核》課件
- 《緊急中毒處理流程》課件
- 如何介紹自己
- “雙減”工作下小學(xué)教導(dǎo)處工作總結(jié)模版
- 小兒腎炎飲食指導(dǎo)
- 【課件教程】CentOS Linux系統(tǒng)管理
- 《華北美食》課件
- 《餐飲行業(yè)實(shí)訓(xùn)教程》課件
- 《尊師重道主題班會(huì)》課件
- GB/T 42151.3-2024電力自動(dòng)化通信網(wǎng)絡(luò)和系統(tǒng)第3部分:通用要求
- 室內(nèi)裝修合同范本之家裝
- 在線教育課程資源共享平臺(tái)建設(shè)合同
- 配置文件優(yōu)化與管理
- 13精衛(wèi)填海(說課稿)
- 《基礎(chǔ)會(huì)計(jì)(第2版)》高職完整全套教學(xué)課件
- 中小學(xué)-珍愛生命 遠(yuǎn)離毒品-課件
- 國(guó)家經(jīng)濟(jì)安全課件
- 特種設(shè)備使用管理規(guī)則(TSG08-2017)
- 前期物業(yè)管理服務(wù)合同電子版(八篇)
評(píng)論
0/150
提交評(píng)論