《《程序讲评通信》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《程序讲评通信》PPT课件.ppt(17页珍藏版)》请在三一办公上搜索。
1、上机作业讲评,1、编写一个C程序,输入一个整数n,根据n的值在屏幕上输出相应图案:例如:输入 n=3,则在屏幕上输出 第1行:*第2行:*第3行:*第4行:*第5行:*,#include void main()int n,i,j;/*n-the input number;i-the row index;j-the column index;*/int lineNum;printf(“Please input n:);scanf(%d,/*/*output the first part of the figure*/*/for(i=1;i=(lineNum-(i-1)printf(*);else
2、 printf();printf(n);,/*/*output the second part of the figure*/*/for(i=(n-1);i=1;i-)for(j=1;j=(lineNum-(i-1)printf(*);else printf();printf(n);,#include void main()char c;int operand,result;scanf(%d,2、编写一个C程序,能读入并计算一个只含有加减运算的表达式,每一个输入的数据都是整数,除第一个数外,其余每个数前面都有一个运算符。例如,23+43-233+234;表达式以分号“;”结束,3、用迭代法求x
3、的值,当最后一项小于10-6则停止计算。,#include#include void main()double sum=0,term=0;int n=1;term=2.0/n;while(fabs(term)=1e-6)sum+=term;n+;term=term*2.0/n;printf(%lf,sum);,#include void main()int i,j,invalid,sum;sum=0;invalid=0;printf(Please input i=);scanf(%d,else if(i=10)sum=100;for(j=1;j i;j+)sum-=j;else sum=i*i
4、;if(invalid)printf(i0,Invalid!n);else printf(sum=%dn,sum);,4、编程输入一个整数i,并完成下列计算,#include void main()char string81;char c;int i,counter1=0,counter2=0,counter3=0;gets(string);for(i=0;(c=stringi)!=0;i+)if(c=0,5、输入一个字符串,分别统计字符串中的数字、大写字母和小写字母的个数并输出。,编写程序,找出1200中的所有素数,存放到一个数组中,然后将这些数按每行5个输出到屏幕上,并在最后一行输出一总有
5、多少个数。,#include void main()int prime201=0;int d,k,i;for(d=2;d=sqrt(200);d+)if(0=primed)for(k=2*d;k=200;k+=d)primek=1;k=0;for(i=2;i=200;i+)if(0=primei)printf(k+%5=0?”%dt”:”%dn”,i);,编写程序实现解密,将例4_6(p157)的输出密文作为输入,输出原来的明文。,#includevoid main()char str1200,str2200;int num,numout,i=0;printf(“请输入密文:”);gets(s
6、tr1);while(str1i)if(a=stri,if(numout26)str2i=a+numout-1;else str2i=A+numout-27;i+;str2i=0;printf(“密文:%sn”,str2);,编写程序将一个33矩阵的元素从键盘输入,读到一个二维整型数组中,然后检验其是否为魔方阵;如是,输出矩阵到屏幕上;如不是,输出NO。(如果一个方阵的每一行、每一列、每一对角线上的元素之和都是相等的,则称为魔方阵。),#includevoid main()int a3,i,j,sum8=0,magic=1;printf(“请输入矩阵:”);for(i=0;i3;i+)for(
7、j=0;j3;j+)scanf(“%d”,for(i=0;i7;i+)if(sumi!=sumi+1)magic=0;break;if(!magic)printf(“NO”);else for(i=0;i3;i+)for(j=0;j3;j+)printf(“%dt”,aij);printf(“n”);,9、在屏幕上显示一个数字式时钟,#include#include#includeint main()struct timme int hour;int min;int sec;myt;char*q;time_t now;time(,时:分:秒,while(1)myt.sec+;if(myt.se
8、c=60)myt.sec=0;myt.min+;if(myt.min=60)myt.hour+;myt.min=0;if(myt.hour=24)myt.hour=0;Sleep(997);printf(%02d:%02d:%02dr,myt.hour,myt.min,myt.sec);return 0;,10、输入整数a和b,若a小于b,交换两个数。用指针实现。,#includevoid main()int a,b,x,*pa,*pb;pa=,11、用指针编写程序,输入n个整数,求这n个整数中的最大/最小值以及最大/最小值元素在这n个数中的位置。,int main()int a100,n,m
9、ax,min,maxi,mini,i;printf(输入整数个数(max)max=ai;maxi=i;if(aimin)min=ai;mini=i;printf(“max:%d,itsno:%d;min:%d,itsno:%d,max,maxi+1,min,mini+1);,12、编写程序,输入一个字符串s1,将s1所有字符拷贝到字符串s2中,要求每两个字符后增加一个*。例如字符串s1为”abcde”,则字符串s2为”ab*cd*e”。,#include void main(void)char s160,s280,i,j;gets(s1);for(i=j=0;0!=s1i;i+)s2j+=s1
10、i;if(i%2)s2j+=*;s2j=0;puts(s2);,#include void main(void)char s160,s280,i;char*p1=s1,*p2=s2;gets(s1);for(i=0;0!=*p1;i+)*p2+=*p1+;if(i%2)*p2+=*;*p2=0;puts(s2);,13、find函数找出所有水仙花数;main函数循环调用find函数,根据返回值求出所有符合条件的数以及总个数,并输出。(n=100999),#include int narci(int);void main()int i,c=0;for(i=100;i=999;i+)if(narc
11、i(i)printf(%dn,i);c+;printf(“总个数:%dn,c);int narci(int num)int i,j,k;i=num/100;k=num%10;j=(num-i*100)/10;if(num=i*i*i+j*j*j+k*k*k)return 1;else return 0;,14、编写一函数,实现如下功能:给定一个字符串,内有数字和非数字字符,例如:a123x456 178?23 304 tbc789,将其中连续的数字作为一个整数依次拷贝到另外一个数组中,并统计该字符串共有多少个整数。函数原型为:void func(char*str,int*p,int*num);其中,str为需要处理的字符串,p指向的数组保存整数数据,num 指向的整数保存整数的个数。写一主函数测试该函数。,void func(char*,int*,int*);void main()char str100;int allnum50,num,i;printf(输入字符串:);gets(str);func(str,allnum,void func(char*str,int*p,int*num)int t,isnum=0;*num=0;t=0;while(*str)if(isnum)if(0=*str),