资源预览内容
第1页 / 共73页
第2页 / 共73页
第3页 / 共73页
第4页 / 共73页
第5页 / 共73页
第6页 / 共73页
第7页 / 共73页
第8页 / 共73页
第9页 / 共73页
第10页 / 共73页
亲,该文档总共73页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
编程题电气11003 龚名才第1、2、3、4、5、6、7、8、10章 1.2 编写一个C程序,输入整数a,b两个值,输出两个整数之差。#include“stdio.h”intmain()inta,b,t;printf(“Pleaseinputa,b:n”);scanf(“%d%d”,&a,&b);if(ab)t=a;a=b;b=t;printf(“两数之差:%dn”,a-b);1.3 编写一个C程序,输入a,b,c三个值,输出其中最小者。#include“stdio.h”intmin_(intx,inty,intz)returnxy?(xz?(yz?z:y):y);intmain()inta,b,c;printf(“Pleaseinputa,b,c:n”);scanf(“%d%d%d”,&a,&b,&c);printf(“min=%dn”,min_(a,b,c);return0;2.1 依次将10个数输入,要求将其中最小的数打印出来#include“stdio.h”intmian()inta10,min;inti,j,t;printf(“Pleaseinputtennum:n”);scanf(“%d”,&ai);min=a0; for(j=0;j9;j+)for(i=0;iai+1)t=min;min=ai+1;ai+1=t;printf(“min=%dn,min”);return0;2.2 求6!。#include“stdio.h”intmain()inti,s=1;for(i=1;i=6;i+)s*=i;printf(“6!=%dn”,s);return0;2.3 2010-2500中属于闰年的年份。#include“stdio.h”intmain()intyear;for(year=2010;year=2500;year+)if(year%4=0&year%100!=0|year%400=0)printf(“%d”,year);printf(“n”);return0;2.4 打印出1-500之间的素数。#include“stdio.h”intmain()intn,k,i,t;for(n=1;n=500;n+=2)k=(int)sqrt(1.0*n)for(i=2;i=k+1)printf(“%3dn”);return0;2.5 输出两个数m,n的最大公约数。#include“stdio.h”intmain()intm,n,r,t;printf(“Pleaseinputn,m:n);scanf(“%d%d”,&n,&m);if(nm)t=n;n=m;m=t;while(m!=0)r=n%m;n=m;m=r;printf(“最大公约数:%dn”,n);return0;2.6 求1+2+3+100的和。#include“stdio.h”intmain()inti=1,sum=0;dosum+=i;i+;while(i=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。#include“stdio.h”intmain()intscore;charc1=A,c2=B,c3=C;printf(“Pleaseinputscore:n”);scanf(“%d”,&score);printf(“%cn”,score=90?c1(score=60?c2:c3);return0;5.2 编程输出九九口诀。#include“stdio.h”intmian()inti,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(“%4d”,i*j);printf(“n”);return0;5.3 编程实现以下功能:读入两个操作数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可以是+、-、*、/(分别用if语句和switch语句加以实现)。#include“stdio.h”intmain()floatdata1,data2;charop;printf(“Pleaseinputdata1,op,data2:n”);scanf(“%f%c%f”,&data1,&op,&data2);switch(op)case+:printf(“data1+data2=%fn”,data1+data2);case-;printf(“data1-data2=%fn”,data1-data2);case*:printf(“data1*data2=%fn”,data1*data2);case/:printf(“data1/data2=%fn”,data1/data2);return0;5.4 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?(提示:使用循环控制更容易实现)#include“stdio.h”intmain()intn,i,j;for(n=1;n1000;n+)for(i=1;i100;i+)for(j=1;j=a&c=A&c=0&c=9)digit+;elseother+; printf(“alpha=%dn”,alpha);printf(“digit=%dn”,digit);printf(“space=%dn”,space);printf(“other=%dn”,other);return0;6.3 一个三位数,其各位数字立方和等于该数本身。#include“stdio.h”#definef(x)(x)*(x)*(x)/必须加括号intmain()intn;for(n=100;n1000;n+)if(n=f(n/100)+f(n-n/100*100)/10)+f(n%10)printf(“n=%dn”,n);return0;6.4 求1!+2!+3!+4!+20!(提示:数据类型设置时防止溢出,应设置合适的数据类型)#include“stdio.h”longlongintf(intn)if(n=1)return1;elsereturnn*f(n-1);intmain()intn=20;longlongintsum=0;for(n=1;n=20;n+)sum+=f(n);printf(“sum=%lldn”,sum);return0;6.5 有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13求出这个数列的前20项。(提示:当分子分母均为整数时,如何正确得到分式的值?)#include“stdio.h”intmain()inti=2,j=1;floatsum=2.0;for(intk=0;k=20;k+)i=i=j;j=i-j;sum=sum+1.0*i/j;printf(“sum=%fn”,sum);return0;6.6 把100-200之间的不能被3整除的数输出。#include“stdio.h”voidmain()intn;for(n=100;n=200;n+)if(n%3=0)continue;printf(“%d”,n);printf(“n”);6.7 任意输入一个正整数,要求判断该正整数是否是另一个整数的平方。#include“stdio.h”voidmain()inti=1,n;printf(“Pleaseinputn:n”);scanf(“%d”,&n);doif(n=i*i)printf(“%d=%d*%dn”,n,i,i);break;i+;while(1);6.8 编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。#include“stdio.h”intmain()floatstu76,sum=0;inti,j;for(i=1;i=6;i+)printf(“Pleaseinputstu%d:n”,i);for(j=1;j=5;j+)scanf(“%f”,&stuij); for(i=1;i=6;i+)for(j=1;j=5;j+)sum+=stuij;printf(“aver%d=%fn”,i,sum/5);sum=0;return0;7.1 编程实现将20个无序的数编程由大到小的顺序排列。#include“stdio.h”#defineN20voidsort(inta)intI,j,temp;for(i=0;iN;i+)for(j=0;jN-1;j+)if(ajaj+1)temp=aj;aj=aj+1;aj+1=temp;for(i=0;iN;i+)printf(“%d”,ai);printf(“n”);intmain()intaN=14,58,56,20,30,19,48,256,110,12,63,9,148,588,71,82,213,502,108,123;sort(a);return0;7.2 读10个整数存入数组,找出其中最大值和最小值。#include“stdio.h”voidsearch(inta)intmax,min,i;max=min=a0;for(i=1;imax)max=ai;if(aimin)min=ai;printf(“max=%dnmin=%dn”,max,min);intmain()inta10,i;printf(“Pleaseinputtennum:n”);for(i=0;i10;i+)scanf(“%d”,&ai);search(a);return0;7.3 通过赋初值按行顺序给2 3的二维数组赋予2、4、6、等偶数,然后按列的顺序输出该数组。#include“stdio.h”voidfun(inta3)inti,j;for(i=0;i2;i+)for(j=0;j3;j+)aij=2*(i*3+j+1);for(j=0;j3;j+)for(i=0;i2;i+)printf(“%d”,aij);intmain()inta23;fun(a);return0;7.4 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。#include“stdio.h”voidmain()inti,a10=20,23,11,52,63,98,54,14,36,74,max,min,p,q;printf(“Theoriginalarrayis:n”);for(i=0;i10;i+)printf(“%d”,ai);printf(“n”);max=min=a0;p=q=0; for(i=1;i10;i+) if(maxai) min=ai;q=i; ap=a0;a0=max; aq=a9;a9=min; printf(“The sorted array is :n”); for(i=0;i=0;i-) ai=ai-m; for(i=0;im;i+) f(&ai,&a10+i); for(i=0;i10;i+) printf(%d ,ai);7.6 求一个3*3的整型矩阵对角线元素之和。#include“stdio.h”voidmain()inti,j,sum=0,a3=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)for(j=0;j3;j+)printf(“%d”aij);printf(“n”);for(i=0;i3;i+)for(j=0;j3;j+)if(i=j|(i+j)=2)sum+=aij;printf(“SUM=%dn”,sum);7.7 有一篇文章,共有三行文字,每行有80个字符。要求分别统计出其中大写字母、小写字母、数字、空格以及其它字符的个数。#include“stdio.h”voidmain()inti,j,upp,low,dig,spa,oth;chartext380;upp=low=dig=spa=oth=0;for(i=0;i3;i+)printf(“Pleaseinputline%d:n”,i+1);gtes(texti); for(j=0;j=A&textij=a&textij=0&textij=9) dig+; else if(textij= ) spa+; else oth+; printf(“nupper case: %dn”,upp); printf(“lower case: %dn”,low); printf(“digit : %dn”,dig); printf(“space : %dn”,spa); printf(“other : %dn”,oth); 7.8 编程实现将两个字符串连接起来。(要求:不直接使用strcat函数,而是编程实现stract函数相同的功能)#include“stdio.h”voidmain()chars180,s240;inti=0,j=0;printf(“Pleaseinputstring1:”);scanf(“%s”,s1);printf(“Pleaseinputstring2:”);scanf(“%s”,s2); while(s1i!=0)i+;while(s2j!=0)s1i+=s2j+;s1i=0;printf(“nThenewstringis:%dn”,s1);8.1 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用两个函数,并输出结果,两个整数由键盘输入。#include“stdio.h”voidfun1(intm,intn)intr;while(n!=0)r=m%n;m=n;n=r;printf(“最大公约数:%dn”,m);返回返回voidfun2(intm,intn)intp,r;p=m*n;while(n!=0)r=m%n;m=n;n=r;printf(“最小公倍数:%dn”,p/m);intmain()intm,n,t;printf(“Pleaseinputm,n:n”);scanf(“%d%d”,&m,&n);if(mn)t=m;m=n;n=t;fun1(m,n);fun2(m,n);return0;8.2 写一个判断素数的函数在主函数输入一个整数,输出是否是素数的信息。#include“stdio.h”#include“math.h”Voidfun(innm)intk,i;boolprime;prime=true;k=int(sqrt(1.0*m);for(i=2;i=k;i+=2)if(m%i=0)prime=false;break;if(prime)printf(“YES);elseprintf(“NO”);printf(“n”);intmian()intm;printf(“Pleaseinputm:n”);scanf(“%d”,&m);fun(m);return0;8.3 写一个函数,使给定的一个二维数组(33)转置,即行列互换。voidfun(inta3)intij;for(i=0;i3;i+)for(j=0;j3;j+)printf(“%d”,aji);printf(“n”);voidmain()inta33=1,2,3,4,5,6,7,8,9;fun(a);8.4 写一个函数,输入一个4位数字,要求输出4个数字字符,但每两个数字之间有一个空格。如输入2008,应输出“2 0 0 8”。#include“stdio.h”voidfun(intn)inti,a4;a0=n/1000;a1=(n-n/1000*1000)/100;a2=(n-n%10)/10%10;a3=n%10;for(i=0;i0)swap(str1,str2);if(strcmp(str1,str3)0)swap(str1,str3);if(strcmp(str2,str3)0)swap(str2,str3);printf(“Now.theorderis:n”);printf(“%sn%sn%sn”,str1,str2,str3);个人观点供参考,欢迎讨论
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号