您好,欢迎访问三七文档
三、编程题1、编写程序,从键盘上输入两个电阻的值,求它们并联和串联的电阻值,输出结果保留两位小数。解:#includestdio.hvoidmain(){floatr1,r2;floatcuan,bin;printf(请输入两个电阻值:);scanf(%f%f,&r1,&r2);cuan=r1+r2;bin=1.0/(1.0/r1+1.0/r2);printf(两个电阻串联电阻值为:%.2f\n,cuan);printf(两个电阻并联电阻值为:%.2f\n,bin);}2、编程计算1!+2!+3!+···+n!,验证对前10项求得的结果是否正确?当n=20时,结果是否正确?如果出错,弄清原因,并修改程序。解://编程计算1!+2!+3!+···+n!#includestdio.hvoidmain(){intn,i,j;longsum=0,mather=1;printf(请输入n的值:);scanf(%d,&n);for(i=1;i=n;i++){mather=1;for(j=1;j=i;j++)mather=mather*j;sum+=mather;}printf(1!+2!+...+%d!=%ld,n,sum);3、编制程序要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数的和。解://编制程序要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百//位以上的数字,否则输出两数的和#includestdio.hvoidmain(){inta,b;intsum;printf(请输入a,b的值:);scanf(%d%d,&a,&b);sum=a*a+b*b;if(sum100){printf(a*a+b*b的值为:%d,百位以上的数字为:%d\n,sum,sum/100);}else{printf(a+b的值为:%d\n,a+b);}}4、试编程判断输入的正整数是否既是5又是7的正倍数。若是,则输出yes;否则输出no。解://试编程判断输入的正整数是否既是5又是7的正倍数。若是,则输出yes;//否则输出no#includestdio.hvoidmain(){intnum;printf(请输入一个能被5整除又能被7整除的整数:);scanf(%d,&num);if((num%5==0)&&(num%7==0)){printf(yes!\n);}else{printf(no!\n);}}5、设计函数,从键盘输入一行字符,返回最长单词的长度,同时输出该单词的位置。解://设计函数,从键盘输入一行字符,返回最长单词的长度,同时输出该单词的位置。#includestdio.h#includestring.h#includectype.hintlongest(int*longlen){charstring[100];intlen=0,i,length=0,flag=1,place,point;printf(请输入一行字符:);gets(string);for(i=0;i=(int)(strlen(string));i++){if(isalpha(string[i])){if(flag){point=i;flag=0;len=1;}elselen++;}else{flag=1;if(lenlength){length=len;place=point;len=0;}}}*longlen=length;return(place);}voidmain(){intpos,len;pos=longest(&len);printf(最长单词的长度为%d,位置为%d\n,len,pos);}6、编写程序,将一个数组中的值按逆序重新存放。解://编写程序,将一个数组中的值按逆序重新存放。#includestdio.h#includestring.h#defineMAX10voidmain(){charstr[MAX],temp;inti,n;printf(请输入一行数据:);gets(str);n=strlen(str);printf(输出逆序前的数组:);puts(str);for(i=0;i=n/2-1;i++){temp=str[i];str[i]=str[n-i-1];str[n-i-1]=temp;}printf(输出逆序后的数组:);puts(str);}7、输入若干整数,其值均在1至4的范围内,用-1作为输入结束标志,请编写函数f用于统计每个整数的个数.例如:若输入的整数为123412-1则统计的结果为1:22:33:14:1解://输入若干整数,其值均在1至4的范围内,用-1作为输入结束标志,//请编写函数f用于统计每个整数的个数#includestdio.hvoidmain(){intcount1,count2,count3,count4;intnum;count1=count2=count3=count4=0;printf(请输入1~4范围内的整数:);while(1){scanf(%d,&num);if(num==-1)break;if(num4||num1)continue;switch(num){case1:count1++;break;case2:count2++;break;case3:count3++;break;case4:count4++;}}printf(1:\t%d\n,count1);printf(2:\t%d\n,count2);printf(3:\t%d\n,count3);printf(4:\t%d\n,count4);}编写一个函数,把一个字符串中的大写字母改为小写字母,其余不变。并从键盘输入一个字符串,然后使用该函数将大写字母变为小写字母后输出。解:#includestring.hvoidconvert(charc[]){inti;for(i=0;c[i]!='\0';i++)if(c[i]='A'&&c[i]='Z')c[i]=c[i]+32;}main(){chara[80];gets(a);convert(a);puts(a);}_9、输入一个字符串,然后判定它是否为一个Palindrome,所谓Palindrome是指其从正反两个方向看都是一样的(不分大小写),如“Madam”。解:#includestring.hmain(){chara[80];inti,j,n;gets(a);n=strlen(a);for(i=0,j=n-1;ij;i++,j--)if(a[i]!=a[j]){printf(NO!\n);break;}if(i=j)printf(yes!\n);}_12456
本文标题:编程题
链接地址:https://www.777doc.com/doc-4899719 .html