C语言实验讲义 按A1t+,再按N)新建一个文件,(如果初次进入tc,也可以直接进入第③步) ③输入源程序如下: #include “stdio.h” main() int i,n=1,m,k: scanf(“%d”,&m): k=m. for(i=l:i=k:i+) -*1 printf(“n=%dn”,n): ④按ctrl+9编译、连接然后运行该程序。 ⑤从键盘输入:4/ (如果提示程序中有错误,按功能键℉6,将光标切换到编辑区中,修致错 误的语句,再进行Ctl+F9重新编译、连接然后运行该程序。如果没有错误,继 续执行下一步)。 ⑥按A1t+F5切换到用户屏幕窗口,查看运行结果。 ⑦按任意键返回C编辑窗口,按功能键2存盘。 ⑧按A1t+X退出TC。(若想继续调试下一个新程序,需要执行步骤②)
C 语言实验讲义 按 Alt+F,再按 N ) 新建一个文件,(如果初次进入 tc,也可以直接进入第③步) ③输入源程序如下: #include “stdio.h” main() { int i,n=1,m,k; scanf(“%d”,&m); k=m; for(i=1;i<=k;i++) n=n*i; printf(“n=%d\n”,n); } ④按 ctrl+F9 编译、连接然后运行该程序。 ⑤ 从键盘输入:4↙ (如果提示程序中有错误,按功能键 F6,将光标切换到编辑区中,修改错 误的语句,再进行 Ctrl+F9 重新编译、连接然后运行该程序。如果没有错误,继 续执行下一步)。 ⑥ 按 Alt+F5 切换到用户屏幕窗口,查看运行结果。 ⑦ 按任意键返回 C 编辑窗口,按功能键 F2 存盘。 ⑧按 Alt+X 退出 TC。(若想继续调试下一个新程序,需要执行步骤②)
C语言实险讲义 讲义二 三种结构的设计 例题一(顺序结构) 用*号输出字母C的图案。 1.程序分析:可先用'*号在纸上写出字母C,再分行输出。 2.程序源代码: #i nclude "stdio.h Dain() printf(n) printf(*n") printf(**n"”): 例题二(if选择) 输入二个整数x y,,请把这三个数由小到大输出」 1程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果y 则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值 进行交换,这样能使x最小。 2.程序源代码: main() int x.v.z.t: scanf("dd"&x.&v.&): if (x>y) {tx;xy:y=t}/*交换x,y的值*/ if (x>z) {t=Z:z=x:X=t:}/*交换X,z的值*/ if(v>z) printf(
C 语言实验讲义 讲义二 三种结构的设计 例题一(顺序结构) 用*号输出字母 C 的图案。 1.程序分析:可先用'*'号在纸上写出字母 C,再分行输出。 2.程序源代码: #i nclude "stdio.h" main() { printf("Hello C-world!\n"); printf(" ****\n"); printf(" *\n"); printf(" * \n"); printf(" ****\n"); } 例题二(if 选择) 输入三个整数 x,y,z,请把这三个数由小到大输出。 1.程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较,如果 x>y 则将 x 与 y 的值进行交换,然后再用 x 与 z 进行比较,如果 x>z 则将 x 与 z 的值 进行交换,这样能使 x 最小。 2.程序源代码: main() { int x,y,z,t; scanf("%d%d%d",&x,&y,&z); if (x>y) {t=x;x=y;y=t;} /*交换 x,y 的值*/ if(x>z) {t=z;z=x;x=t;}/*交换 x,z 的值*/ if(y>z) {t=y;y=z;z=t;}/*交换 z,y 的值*/ printf("small to big: %d %d %d\n",x,y,z);
C语言实坠讲义 例题三(switch选择) 输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析: 以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几 天,特殊情况,闰年且输入月份大于3时需考虑多加一天。 2.程序源代码: in0 nt day nth. printf(\nple onth.day\n") scanf ("sd.%d.%d"&vear.&month.&day): vitch(h)/序先计第某月以前月份的总天数/ case 1:sum=0;break: case 2:sum=31:break: case 3:sum=59;break case 4:su case 5:sum=12 brea case 6:sum-15 8. case 9:sum=243:break case 10:sum=273-hreak case 11:sum=304:break: case 12:sun334:break default:printf("data error");break: 0&year%100!=0)/*判断是不是闰年*/ el eap=1: ean=0: if(1eap=1&&month>2)/体如果是闰年且月份大于2,总天数应该加一天*/ sumt+ printf("It is the %dth day.",sum):) 例题四(hiIe循环) 求s= a的值,其中a是一个数字。例如 2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制
C 语言实验讲义 例题三(switch 选择) 输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析: 以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几 天,特殊情 况,闰年且输入月份大于 3 时需考虑多加一天。 2.程序源代码: main() { int day,month,year,sum,leap; printf("\nplease input year,month,day\n"); scanf("%d,%d,%d",&year,&month,&day); switch(month)/*先计算某月以前月份的总天数*/ { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf("data error");break; } sum=sum+day; /*再加上某天的天数*/ if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ leap=1; else leap=0; if(leap==1&&month>2)/*如果是闰年且月份大于 2,总天数应该加一天*/ sum++; printf("It is the %dth day.",sum);} 例题四(while 循环) 求 s=a+aa+aaa+aaaa+aa.a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时共有 5 个数相加),几个数相加有键盘控制
C语言实险讲义 1.程序分析:关键是计算出每一项的值。 2.程序源代码: int a.n count=l long int sn=0.tn=0: printf("please input a and n\n"): scanf(%dd”,&a,&n): printf ("a=%d,n=%d\n",a,n) while(count<=n) tn=tn+a s10 +count rint(,片 例题五(for循环) 将一个正整数分解质因数。例如:输入90,打印出90=2*3*35。 1.程序分析:对进行分解质因数,应先找到一个最小的质数k,然后按下述步 骤完成: ()如果这个质数恰等于,则说明分解质因数的过程己经结束,打印出即可。 (2)如果n<◇k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为 新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 程序源代码: int n,i; printf("\nplease input a number:\n"): printf( ,n) for(i=2:i<=n:i++) while(n!=i)
C 语言实验讲义 1.程序分析:关键是计算出每一项的值。 2.程序源代码: main() { int a,n,count=1; long int sn=0,tn=0; printf("please input a and n\n"); scanf("%d%d",&a,&n); printf("a=%d,n=%d\n",a,n); while(count<=n) { tn=tn+a; sn=sn+tn; a=a*10; ++count; } printf("a+aa+.=%ld\n",sn); } 例题五(for 循环) 将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5。 1.程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步 骤完成: (1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果 n<>k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为 新的正整数你 n,重复执行第一步。 (3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。 程序源代码: /* zheng int is divided yinshu*/ main() { int n,i; printf("\nplease input a number:\n"); scanf("%d",&n); printf("%d=",n); for(i=2;i<=n;i++) { while(n!=i) {
C语言实验讲义 if(n%i==0) printf("%d*",i) n=n/i: } else break: printf("%d",n): 例题六(循环的嵌套) 输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,1控制行,j控制列。 2.程序源代码: int i,j,result: printf("\n"): for(i=1:i(10:i+) for(j=1:j<10;j++) result printf(n):/每一行后换行*/ 习题: 1读取7个数(1一50)的整数值,每读取一个值,程序打印出该值个数的*。 子有,、284个货字能组皮多少个互不相同且无重复数字的三位数?都是
C 语言实验讲义 if(n%i==0) { printf("%d*",i); n=n/i; } else break; } } printf("%d",n);} 例题六(循环的嵌套) 输出 9*9 口诀。 1.程序分析:分行与列考虑,共 9 行 9 列,i 控制行,j 控制列。 2.程序源代码: #include "stdio.h" main() { int i,j,result; printf("\n"); for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占 3 位*/ } printf("\n");/*每一行后换行*/ } } 习题: 1 读取 7 个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。 2 有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是 多少?