电子科大C语言实验3答案.docx
- 文档编号:23972252
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:19
- 大小:18.46KB
电子科大C语言实验3答案.docx
《电子科大C语言实验3答案.docx》由会员分享,可在线阅读,更多相关《电子科大C语言实验3答案.docx(19页珍藏版)》请在冰豆网上搜索。
电子科大C语言实验3答案
第七章第2题
#include
intmain(void)
{
inti=1;
charn='\n';/***使程序开始时直接运行,存储用户输入的信息***/
printf("Thisprogramprintsatableofsquares.\n");
while(n=='\n')
{
for(i;;i++)
{
printf("%10d%10d\n",i,i*i);
if(0==i%24)
{
i++;
break;/***跳出for循环,进行判断***/
}
}
n=getchar();/***用户输入的信息***/
}
return0;
}
第七章第7题
/***********************************************************************************
****对用户输入的两个分数进行加、减、乘、除运算(在两个分数之间输入+、-、*或/符号****
************************************************************************************/
#include
intmin(intx,inty)
{
returnx x: y; } intmain(void) { intm1,n1,m2,n2,m3,n3;/*m为分子,n为分母*/ inti,n; chars;/*s用于确定运算符号*/ printf("Entertwonumberswithasymbolbetweenthem: "); scanf("%d/%d%c%d/%d",&m1,&n1,&s,&m2,&n2); switch(s) { case'+': { m3=m1*n2+m2*n1; n3=n1*n2; } break; case'-': { m3=m1*n2-m2*n1; n3=n1*n2; } break; case'*': { m3=m1*m2; n3=n1*n2; } break; case'/': { m3=m1*n2; n3=m2*n1; } break; } n=min(m3,n3); for(i=2;i<=n;i++) { if((m3%i==0)&&(n3%i==0)) { m3=m3/i; n3=n3/i; i=1; } n=min(m3,n3); }/*化简计算结果*/ printf("Theresultis: "); if(m3%n3==0) printf("%d",m3/n3); else printf("%d/%d\n",m3,n3); return0; } 第七章第10题 /***统计句子中元音字母的个数***/ #include intmain(void) { inti=0; charsentence; printf("Enterasentence: "); do { sentence=getchar(); switch(sentence)/***判断字母是否为元音字母***/ { case'a': case'e': case'i': case'o': case'u': case'A': case'E': case'I': case'O': case'U': i++; break; default: ; break; } } while(sentence! ='\n');/***输入回车时结束判断***/ printf("Yoursentencecontains%dvowels",i); return0; } 第七章第13题 /***这个程序用于计算句子的平均词长***/ #include intmain(void) { inti=0,j=0; chars;/*存储每个字母*/ floatlength; printf("Enterasentence: "); s=getchar(); while(s! ='\n') { if(s=='') j++; else i++; s=getchar(); } length=(float)i/(j+1); printf("Averagewordlength: %.1f\n",length); return0; } 第七章第14题 /****牛顿迭代法求平方根***/ #include intmain(void) { inti; floatn,j=4.0; printf("Enterspositivenumber: "); scanf("%f",&n); for(i=0;i<=5;i++)/*迭代次数越多精确度越大*/ j=(j+n/j)/2.0;/*牛顿迭代法核心算法*/ printf("Squareroot: %f\n",j); return0; } 第八章1、2、3合编 /******************************************************* ***1、repdigit.c修改版 ***2、显示哪些数字有重复 ***3、显示每个数字在数中出现的次数 ***4、用户可以录入多个数进行重复数字的判断,用户录入 ***的数小于或等于0时程序结束 ********************************************************/ #include intmain(void) { intdigit_seen[10]={0};/*把数组初始化为全0*/ intdigit,re[10]={1,0};/*第一个数为1,其余为0*/ inti,ex; longn,m; inttimes[10]={0};/*用于确定次数*/ printf("Enteranumber: "); scanf("%ld",&n); while(n>0) { intdigit_seen[10]={0};/*每次循环之前必须初始化这个数组,否则会出错,这种初始化表示其他的也是false */ intre[10]={1,0}; inttimes[10]={0}; printf("\nRepeateddigit(s): "); m=n; while(n>0) { digit=n%10; if(re[digit]! =digit)/*判断是否重复两次及以上*/ { if(digit_seen[digit]) { printf("%d",digit); digit_seen[digit]=0; re[digit]=digit;/*用于判断是否重复两次以上 */ n/=10; continue;/*跳到循环结束之前*/ } } digit_seen[digit]=1; n/=10; } if(re[digit]==0)/*此处用于判断是否进入是否为不重复的数的确定环节 */ { for(i=9;i>=1;i--) { if(re[i]==0)/*用于是否为不重复数的确定*/ ex=0; else ex=1; } if(! ex&&re[0]==1) printf("Norepeateddigit"); } printf("\n\n"); n=m; while(n>0) { digit=n%10; if(digit_seen[digit])/*判断是否重复*/ times[digit]++; else times[digit]=1; digit_seen[digit]=1; n/=10; } printf("Digit: "); for(i=0;i<=9;i++) printf("%d",i);/*输出数字1~9*/ printf("\nOccurrences: "); for(i=0;i<=9;i++) printf("%d",times[i]);/*输出数字1~9出现的次数*/ printf("\n\n"); printf("Enteranumber: "); scanf("%ld",&n); } printf("输入的数字不大于零,程序结束"); return0; } 第八章第7题 /***读取一个5x5整数数组,然后显示出每行的和与每列的和***/ #include intmain(void) { inti,j; intsquare[5][5];/*5*5方阵*/ introw_totals=0,column_totals=0; for(i=0;i<5;i++) { printf("Enterrow%d: ",i+1);/*每行标题*/ for(j=0;j<5;j++) scanf("%d",&square[i][j]);/*必须输入五个数字再回车,否则程序会出错*/ } printf("\nRowtotals: "); for(i=0;i<5;i++) { row_totals=0; for(j=0;j<5;j++) row_totals+=square[i][j]; printf("%d",row_totals); } printf("\nColumntotals: "); for(i=0;i<5;i++) { column_totals=0; for(j=0;j<5;j++) column_totals+=square[j][i]; printf("%d",column_totals); } return0; } 第八章第8题 /***提示用户输入每个学生5门测验的成绩,一共有五个学生。 ***计算每个学生的总分和平均分,以及每门测验的平均分、高分、低分***/ #include voidswap(int*a,int*b)/**定义交换函数**/ { *a=*a+*b; *b=*a-*b; *a=*a-*b; } intmain(void) { inti,j,k; intsquare[5][5]; introw_totals=0,column_totals=0; for(i=0;i<5;i++) { printf("学生%d: ",i+1); for(j=0;j<5;j++) scanf("%d",&square[i][j]);/*必须输入五个数字再回车,否则程序会出错 */ } printf("\n学生总分: "); for(i=0;i<5;i++) { row_totals=0; for(j=0;j<5;j++) row_totals+=square[i][j]; printf("%d",row_totals); } printf("\n学生平均分: "); for(i=0;i<5;i++) { row_totals=0; for(j=0;j<5;j++) row_totals+=square[i][j]; printf("%.2f",row_totals/5.0); } printf("\n科目平均分: "); for(i=0;i<5;i++) { column_totals=0; for(j=0;j<5;j++) column_totals+=square[j][i]; printf("%.2f",column_totals/5.0); } for(j=0;j<5;j++) { for(i=3;i>=0;i--) { for(k=0;k<=i;k++) { if(square[k][j]>square[k+1][j]) swap(&square[k][j],&square[k+1][j]); } } }/**确定最高分、最低分核心算法**/ printf("\n科目最高分: "); for(j=0;j<5;j++) printf("%d",square[4][j]); printf("\n科目最低分: "); for(j=0;j<5;j++) printf("%d",square[0][j]); return0; } 第八章第14题 /**** ****这个程序用于颠倒句子中单词的顺序**** ****/ #include intmain(void) { inti,j,k; chars[1000],last_s; printf("输入句子,以? 或。 或! 为终止符\n"); s[0]=getchar();/*第一个字母用于使程序运行*/ for(i=1;s[i-1]! ='\n';i++) s[i]=getchar();/*输入句子,以问号,句号,或叹号作为终止符*/ last_s=s[i-2];/*存储数组内最后一个字符*/ k=i-3; if(k! =-1) { for(i=k;i>=0;i--) { if(s[i]==''||s[i]==','||i==0) { if(s[i]==''||s[i]==',') j=i+1; elseif(i==0) j=i; for(j;j<=k;j++) putchar(s[j]); if(i! =0) putchar(s[i]); k=i-1; } } }/***从后至前打印单词,单词以空格或逗号作为判断标志***/ putchar(last_s); return0; } 第八章第15题 /***凯撒加密*** ***把一条消息中的每个字母用字母表中固定距离之后的那个字母来替代*** ***用户可以进行加密以及解密***/ #include intmain(void) { inti,j,n; chars[999]; printf("Entermessagetobeencrypted: "); s[0]=getchar(); for(j=1;s[j-1]! ='\n';j++) s[j]=getchar(); printf("Entershiftamount(1-25): "); scanf("%d",&n); printf("Encryptmessage: "); for(i=0;i { if(s[i]>='a'&&s[i]<='z') s[i]=((s[i]-'a')+n)%26+'a'; elseif(s[i]>='A'&&s[i]<='Z') s[i]=((s[i]-'A')+n)%26+'A'; putchar(s[i]); } return0; } 第八章第17题 /*********************************** ****打印n*n的幻方,用户指定n的值**** ************************************/ #include intmain(void) { inti,size,j=0; intmiddle; intmagic[99][99]={0}; printf("Thisprogramcreatesamagicsquareofaspecifiedsize.\n"); printf("Thesizemustbeanoddnumberbetween1and99.\n"); printf("Entersizeofmagicsquare: "); scanf("%d",&size); middle=(size-1)/2; magic[j][middle]=1;/***把1赋给第一行中间的位置***/ for(i=2;i<=size*size;i++) { j--; middle++; if(j==-1) j=size-1; if(middle==size) middle=0;/***出界后绕回***/ if(magic[j][middle]==0) magic[j][middle]=i; else { if(j==size-1&&middle==0) { j=-1; middle=size; } else { if(j==size-1) j==-1; if(middle==0) { middle=size-1; j--; } }/***遇到已经赋值过的位置就改变方向***/ j=j+2; middle--; magic[j][middle]=i; } } for(i=0;i { for(j=0;j printf("%5d",magic[i][j]); printf("\n"); } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子科 语言 实验 答案