版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c习题题库作答完整Revisedat2pmonDecember25,2020.程序填空 共 2第 1题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:编程求某年第 n天的日期。用数组表示月天数。 -------------------------------------------------------*/#include<stdio.h>#include<stdlib.h>main(){inty,m,f,n;inta[12]={31,28,31,30,31,30,31,31,30,31,30,31};printf("y,n=");scanf("%d,%d",&y,&n);/***********SPACE***********/f=y%4==0&&y%100!=0【||】y%400==0;/***********SPACE***********/a[1]【+=】f;if(n<1||n>365+f){printf("error!\n");exit(0);}/***********SPACE***********/for(m=1;m>a[m-1];n-=a[m-1],m++);printf("y=%d,m=%d,d=%d\n",y,m,n);}第 2题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------题目:下列程序从键盘输入所需数据,求出 z的值并输出,要求输出结果保留 2小数。 -------------------------------------------------------*/#include<stdio.h>/***********SPACE***********/【#include<math.h>】main(){intdoubley,z;/***********SPACE***********/scanf(%d%lf",&x,&y);z=2*x*sqrt(y);/***********SPACE***********/printf("z=【%lf】",z);}程序改错 共 1第 1题/*------------------------------------------------------【程序改错】 --------------------------------------------------------功能:将 s所指字符串中的字母转换为按字母序列的后续字母(但 Z转换为 A,z转换为 a),其它字符不变。 ------------------------------------------------------*/#include<stdio.h>#include<ctype.h>#include<conio.h>voidfun(char*s) //函数定义 {/***********FOUND***********/while(*s!=’0’) //字符串结尾标志为‘0’{if(*s>='A'&&*s<='Z'||*s>='a'&&*s<='z'){if(*s=='Z')*s='A';elseif(*s=='z')*s='a';else/***********FOUND***********/*s+=1; //s为字符指针,而*s为指针所指的字符 }/***********FOUND***********/s++}}main(){chars[80];printf("\nEnterastringwithlength<80.:\n\n");gets(s);printf("\nThestring:\n\n");puts(s);fun(s); //函数调用 printf("\n\nTheCords:\n\n");puts(s);}程序填空 共 2第 1题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:计算圆周率的近似值。 -------------------------------------------------------*/#include<stdio.h>#include<math.h>main(){ints,n;/***********SPACE***********/double【pi】,t;t=1;pi=0;n=1;s=1;/***********SPACE***********/while(【fabs(t)】>=2e-6) //fabs()为求绝对值函数 {pi+=t;n+=2;s=-s;t=s/n;}/***********SPACE***********/pi*=【4】;printf("pi=%.6f\n",pi);}第 2题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:输入一奇数 n,打印由 1->n*n构成的魔方矩阵。魔方矩阵的 行列及对角线的和都相等。 魔方矩阵:816357492-------------------------------------------------------*/#include<stdio.h>#include<stdlib.h>#define MAXSiZE voidmain(void){intmatrix[MAXSiZE][MAXSiZE];intcount;introw;intcolumn;intn;charline[100];printf("\nOddnMagicSquareGenerator");printf("\n================================");printf("\n\nnPlease-->");gets(line);n=atoi(line);if(n>MAXSiZE)printf("\n***ERROR***nshouldbe<=%d",MAXSiZE);elseif(n%2==0)printf("\n***ERROR***nmustbeanoddinteger");else{row =0;column=for(count=1;count<=n*n;count++){matrix[row][column]=count;/***********SPACE***********/if(【count/n】 ==0)row++;else{/***********SPACE***********/row=(row【0】)n-1:row-1;/***********SPACE***********/column(columnn-10:column+1;}}printf("\n\nMagicSquareofn%d:\n\n",n);for(row=0;row<n;row++){for(column=0;column<n;column++)printf("%4d",matrix[row][column]);printf("\n");}}}程序改错 共 1题/*------------------------------------------------------【程序改错】 --------------------------------------------------------功能:求 1到 10的阶乘的和。 ------------------------------------------------------*/#include<stdio.h>floatfac(intn); //函数声明 main(){inti;floatfloatfac(intn); //函数声明应放在主函数之前,这句放错位置了,删了 吧,也可以不改,可以运行,但良好的习惯就是改 /**********FOUND**********/for(i=1;i<10;i++)/**********FOUND**********/s+=fac(i); //函数调用 printf("%f\n",s);}floatfac(intn) //函数定义 {/**********FOUND**********/floaty=1; //int改为 float,否则会造成数据丢失,当然也可以不改,毕竟你 们没学到 inti;for(i=1;i<=n;i++)y=y*i;/**********FOUND**********/returny;}程序填空 共 2第 1题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:删除字符串中的指定字符,字符串和要删除的字符均由键盘 输入。 -------------------------------------------------------*/#include<stdio.h>main(){charstr[80],ch;inti,k=0;/***********SPACE***********///输入//输入字符串 放入 str[]ch=getchar();/***********SPACE***********///循环//循环到字符串结束为止 //假如没找到就将原字符赋值//假如没找到就将原字符赋值过去 找到要删除的就 跳过继续跳过继续找 {/***********SPACE***********///在同//在同一个数组中操作,后面的字符覆盖了 前面要删除的位前面要删除的位置 k++;}/***********SPACE***********///在新字符串结//在新字符串结尾处加结束符 puts(str); //输出 }第 2题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:输入一个整数,计算它可能是哪两个整数的平方和,并打印 结果数据。 如:34是 5和 3或 3和 5的平方和。 -------------------------------------------------------*/#include<stdio.h> /*fori/Ofunctions #include<stdlib.h> /*foratoi() */#include<math.h> /*forsqrt() */voidmain(void){intgiven; /*thegivennumber */introw,column; /*rowandcolumnindicators*/intcount; /*numberofsolutions */charline[100];printf("\nRepresentingaGivenNumberastheSumofTwoSquares");printf("\n=====================================================\n");printf("\nAnintegerPlease--->");gets(line);given=atoi(line);printf("\nCountXprintf("\n ");row =1; /*startsfromfarenough column=(int)(sqrt((double)given)+0.5);count=0; /*sosolutionyet */while(row<=given&&column>0)/*scandown.*/if(row*row+column*column==given){/***********SPACE***********/【count++】;printf("\n%5d%7d%7d",count,row,column);row++;column--;}elseif(row*row+column*column>given)/***********SPACE***********/【column--】;else/***********SPACE***********/row++if(count0)printf("\n\nSorry,NOANSWERfound.");elseprintf("\n\nThereare%dpossibleanswers.",count);}程序改错 共 1第 1题/*------------------------------------------------------【程序改错】 --------------------------------------------------------功能:计算并输出 k以内最大的 10个能被13或17整除的自然数之和。k的值由主函数传入。例如:若k的值为500,则函数值为 4622。------------------------------------------------------*/#include<stdio.h>intfun(intk){intm=0,mc=0;/**********FOUND**********/while((k>=2)&&(mc<10)){/**********FOUND**********/if((k%13==0)||(k%17==0)){m=m+k;mc++;}/**********FOUND**********/k--;}/**********FOUND**********/returnm;}voidmain(){printf("%d\n",fun(500));}程序填空 共 2第 1题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:当输入“2,5”的时候输出为“255”-------------------------------------------------------*/#include<stdio.h>#definemax100main(){intf[max],i,j,k,m;scanf("%d,%d",&k,&m);/***********SPACE***********/for(i=0;i<2;i++)f[i]=0;/***********SPACE***********/f[【k-1】]=1;for(i=k;i<=m;i++)/***********SPACE***********/for(j=i-k;j<=i-1;j++)f[i]【=1+】f[j];printf("%d%10d%10d\n",k,m,f[m]);}第 2题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:识别输入的字符串,每个单词输出一行 -------------------------------------------------------*/#include<stdio.h>#include<string.h>voidmain(){intc;intinspace;/***********SPACE***********/【inspace=0】;while((c=getchar())!='\n'){if(c==''||c=='\t'||c=='\n'){/***********SPACE***********/if(【inspace=0】){inspace=1;putchar('\n');}}else{inspace=0;/***********SPACE***********/【putchar(c)】;}}}程序改错 共 1第 1题/*------------------------------------------------------【程序改错】 --------------------------------------------------------功能:用选择法对数组中的 n个元素按从小到大的顺序进行排序。 ------------------------------------------------------*/#include<stdio.h>#defineN20voidfun(inta[],intn){inti,j,t,p;for(j=0;j<n-1;j++){/**********FOUND**********/p=j;for(i=j;i<n;i++)/**********FOUND**********/if(a[i]>a[p])/**********FOUND**********/p=i;t=a[p];a[p]=a[j]a[j]=t;}}main(){inta[N]={9,6,8,3,-1},i,m=5;printf(for(i=0;i<m;i++)printf("%d",a[i]);printf("\n");fun(a,m);printf("排序后的数据:");for(i=0;i<m;i++)printf("%d",a[i]);printf("\n");}程序填空共2第1题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:产生 10个[30,90]区间上的随机整数,然后对其用选择法 进行由小到大的排序。 -------------------------------------------------------*/#include<stdio.h>#include<stdlib.h>main(){/***********SPACE***********/intt;inti,j,k;inta[10];for(i=0;i<10;i++)a[i]=rand()%61+30;for(i=0;i<9;i++){/***********SPACE***********/k=i;for(j=i+1;j<10;j++)/***********SPACE***********/if(a[k]>a[j])k=j;if(k!=i){t=a[k];a[k]=a[i];a[i]=t;}}/***********SPACE***********/for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");}第 2题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:输入一正整数 n、打印 1-n能够组成的所有自然数集合 (包含空集)。 -------------------------------------------------------*/#include#include<stdio.h><stdlib.h>#defineMAXSiZE20#defineLOOP1voidmain(void){intintn,i;intposition;charline[100];printf("\nAllPossibleSubsetsGenerationbyLexicalOrder");printf("\n================================================");printf("\n\nNumberofElementsintheSet-->");gets(line);n=atoi(line);printf("\n{}");position =set[position]=while(LOOP){/***********SPACE***********/printf("\n{%d",【】);for(i=1;i<=position;i++)printf(",%d",set[i]);printf("}");if(set[position]<n){/***********SPACE***********/set[set[position]1;position++;}elseif(position!=0)set[--position]++;else/***********SPACE***********/【】;}}程序改错 第 1题/*------------------------------------------------------【程序改错】 --------------------------------------------------------功能:求出以下分数序列的前 n项之和。和值通过函数值返回 函数。 2/1+3/2+5/3+8/5+13/8+21/13…… 例如:若 n=5,则应输出:8.391667。------------------------------------------------------*/#include<conio.h>#include<stdio.h>/**********FOUND**********/fun(intn){inta,b,c,k;doubles;s=0.0;a=2;b=1;for(k=1;k<=n;k++){/**********FOUND**********/s=(double)a/b;c=a;a=a+b=c;}/**********FOUND**********/returnc;}main(){intn=5;printf("\nThevalueoffunctionis:%lf\n",fun(n));}程序填空 共 2第 1题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:输出结果为: ********************-------------------------------------------------------*/#include<stdio.h>main(){/***********SPACE***********/staticchar【】={'*','*','*','*','*'};inti,j,k;charspace='';for(i=0;i<5;i++){printf("\n");for(j=1;j<=3*i;j++)/***********SPACE***********/printf("%1c",【】);/***********SPACE***********/for(k=0;k<【】;k++)printf("%3c",a[k]);}printf("\n");;}第 2题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:给出一个正整数,找到一组连续的数,使之累加和等于给 定的正整数。输出存在多少组这样连续的数,及每组的左 右边界。 例如:15=1+2+3+4+515=4+5+615=7+8所以结果有 3组值分别是 1->5,4->6,7->8-------------------------------------------------------*/#include<stdio.h>#include<stdlib.h>voidmain(void){longleft,longsum;longGiVEN;intcount=0;charline[100];printf("\nConsecutivesumtoafixedgivennumber");printf("\n=======================================\n");printf("\nYournumber(>0)please--->");gets(line);GiVEN=atol(line);for(sum=0,right=1;sum<GiVEN;sum+=right,right++);for(left=1,right--;left<=GiVEN/2;)if(sum>GiVEN){sum-=left;/***********SPACE***********/【】;}else{if(sum==GiVEN){printf("\n%ld=sumfrom%ldto%ld",GiVEN,left,right);/***********SPACE***********/【】;}/***********SPACE***********/【】;sum+=right;}if(count>0)printf("\n\nThereare%dsolutionsintotal.",count);elseprintf("\n\nSorry,thereisNOsolutionatall.");}程序改错 第 1题/*------------------------------------------------------【程序改错】 --------------------------------------------------------功能:编写函数 fun计算下列分段函数的值: x*20 x<0且x≠-3f(x)=sin(x) 0≤x<10且x≠2及x≠3x*x+x-1 其它------------------------------------------------------*/#include<math.h>#include<stdio.h>doublefun(double{/**********FOUND**********/doubley/**********FOUND**********/if(x<0||x!=-3.0)y=x*20;elseif(x>=0&&x<10.0&&x!=2.0&&x!=3.0)y=sin(x);elsey=x*x+x-1;/**********FOUND**********/returnx;}main(){doublex,f;printf("inputx=");scanf("%f",&x);f=fun(x);printf("x=%f,f(x)=%f\n",x,f);}程序填空 共 2第 1题/*------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:有 n个整数,使其前面各数顺序向后移 m个位置,最后 m个数 变成最前面的 m个数 -------------------------------------------------------*/#include<stdio.h>/***********SPACE***********/move(【】)intn,m,array[20];{int*p,array_end;/***********SPACE***********/array_end=*(【】);for(p=array+n-1;p>array;p--)/***********SPACE***********/*p=*(【】);*array=array_end;m--;if(m>0)move(array,n,m);}main(){intnumber[20],n,m,i;printf("thetotalnumbersis:");scanf("%d",&n);printf("backm:");scanf("%d",&m);for(i=0;i<n-1;i++)scanf("%d,",&number[i]);scanf("%d",&number[n-1]);/***********SPACE***********/move(【】);for(i=0;i<n-1;i++)printf("%d,",number[i]);printf("%d",number[n-1]);}第 2题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:打印出如下图案(菱形) *************************-------------------------------------------------------*/#include<stdio.h>main(){inti,j,k;/***********SPACE***********/for(i=0;【】;i++){for(j=0;j<=4-i;j++)printf("");/***********SPACE***********/for(k=1;k<=【】;k++)printf("*");printf("\n");}/***********SPACE***********/for(【】;j<3;j++){for(k=0;k<j+3;k++)printf("");for(k=0;k<5-2*j;k++)printf("*");printf("\n");}}程序改错 共 1第 1题/*------------------------------------------------------【程序改错】 --------------------------------------------------------功能:求 1到 20的阶乘的和。 ------------------------------------------------------*/#include<stdio.h>fun(){intn,j;floats=0.0,t=1.0;for(n=1;n<=20;n++){/**********FOUND**********/s=1;for(j=1;j<=n;j++)/**********FOUND**********/t=t*n;/**********FOUND**********/s+t=s;}/**********FOUND**********/printf("jiecheng=%d\n",s);}main(){fun();}程序填空 共 2第 1题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:利用全局变量计算长方体的体积及三个面的面积。 -------------------------------------------------------*/#include<stdio.h>ints1,s2,s3;intvs(inta,intb,intc){intv;/***********SPACE***********/v=【】;s1=a*b;/***********SPACE***********/s2=【】;s3=a*c;returnv;}main(){intv,l,w,h;printf("\ninputlength,widthandheight: ");/***********SPACE***********/scanf("%d%d%d",【】,&w,&h);/***********SPACE***********/v=【】;printf("v=%d s1=%d s2=%d s3=%d\n",v,s1,s2,s3);}第 2题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:建立一个如下的二维数组,并按以下格式输出。 1000101010001000101010001-------------------------------------------------------*/#include<stdio.h>voidmain(){inta[5][5]={0},*p[5],i,j;for(i=0;i<5;i++)/***********SPACE***********/p[i]=【】;for(i=0;i<5;i++){/***********SPACE***********/*(【】+i)=1;/***********SPACE***********/*(p[i]+5-(【】))=1;}for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%2d",p[i][j]);/***********SPACE***********/【】;}}程序改错 共 1题第 1题/*------------------------------------------------------【程序改错】 --------------------------------------------------------功能:先将在字符串 s中的字符按逆序存放到 t串中,然后把 s中的 字符按正序连接到 t串的后面。 例如:当 s中的字符串为:“ABCDE”时,则 t中的字符串应为: “EDCBAABCDE”。 ------------------------------------------------------*/#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,char*t){/**********FOUND**********/inti;sl=strlen(s);for(i=0;i<sl;i++)/**********FOUND**********/t[i]=s[sl-i];for(i=0;i<sl;t[sl+i]=s[i];/**********FOUND**********/t[2*sl]="0";}main(){chars[100],t[100];printf("\nPleaseenterstrings:");scanf("%s",s);fun(s,t);printf("Theresultis:%s\n",t);}程序填空 共 2第 1题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:从键盘输入若干行字符,输入后把他们存储到一磁盘文件 中。在从该文件中读出这些数据,将其中的小写字母转换 成大写字母后在屏幕上输出。 -------------------------------------------------------*/#include<stdio.h>#include<stdlib.h>#defineN100main(){FILE*fp;charc,*p,s[N][20];inti,n;printf("n=");scanf("%d",&n);/***********SPACE***********/if(n<1【】n>N)exit(0);printf("input%dstring:\n",n);for(i=0;i<n;i++)scanf("%s",s[i]);/***********SPACE***********/fp=fopen("text",【】);for(i=0;i<n;i++){p=s[i];while(*p!='\0')/***********SPACE***********/if(!ferror(fp))fputc(,fp);}fclose(fp);printf("\n");/***********SPACE***********/fp=fopen("text",【】);while((c=fgetc(fp))!=EOF){if(c>'a'&&c<='z')c=+32;putchar(c);}printf("\n");fclose(fp);}第 2题/*-------------------------------------------------------【程序填空】 ---------------------------------------------------------功能:输出 100到 1000之间的各位数字之和能被 15整除的所有数, 输出时每 10个一行。 -------------------------------------------------------*/#include<stdio.h>main(){intm,n,k,i=0;for(m=100;m<=1000;m++){/***********SPACE***********/n=m;do{/***********SPACE***********/k=k+【】 ;n=n/10;}/***********SPACE***********/【】;if(k%15==0){printf("%5d",m);i++;/***********SPACE***********/if(i%10==0)【】;}}}程序改错 共 1第 1题/*------------------------------------------------------【程序改错】 --------------------------------------------------------功能:在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。 ------------------------------------------------------*/#include<stdio.h>#defineN11main(){inti,number,a[N]={1,2,4,6,8,9,12,15,149,156};printf("pleaseenteranintegertoinsertinthearray:\n");/**********FOUND**********/scanf("%d",&number)printf("Theoriginalarray:\n");for(i=0;i<N-1;i++)printf("%5d",a[i]);printf("\n");/**********FOUND**********/for(i=N-1;i>=0;i--)if(number<=a[i])/**********FOUND**********/a[i]=a[i-1];else{a[i+1]=number;/**********FOUND**********/exit;}if(number<a[0])a[0]=number;printf("Theresultarray:\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}程序填
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务分析的相关报告范文
- 比亚迪离职报告范文大全
- 婚礼合同协议书范本 3篇
- 《国际贸易商品》课件
- 《中国科技之光》课件
- 狼蛛课件教学课件
- 《健康地生活总复习》课件
- 2024版钢筋采购合同争议解决方式选择合同3篇
- 《高等数学》连续课件
- 《两栖类的发生》课件
- 基础西班牙语:语音与会话-南京大学中国大学mooc课后章节答案期末考试题库2023年
- 内审员实战培训教材
- 人机料法环的分析PPT
- 蛋白质相互作用技术研究的几种技术
- 垫江县国企招聘考试真题及答案
- 数字媒体艺术设计-课件
- 大连理工大学信封纸
- 大学英语六级词汇表(全)含音标
- 2023年成都嘉祥外国语学校小升初数学试卷
- 大学生刑事犯罪与预防演示文稿
- 全国一等奖对数函数及其性质教学设计
评论
0/150
提交评论