1 / 26
文档名称:

c语言习题题库作答完整.docx

格式:docx   大小:2,515KB   页数:26页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c语言习题题库作答完整.docx

上传人:Celeste_18 2023/2/3 文件大小:2.46 MB

下载得到文件列表

c语言习题题库作答完整.docx

文档介绍

文档介绍:该【c语言习题题库作答完整 】是由【Celeste_18】上传分享,文档一共【26】页,该文档可以免费在线阅读,需要了解更多关于【c语言习题题库作答完整 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。CKBOODwasrevisedintheearlymorningofDecember17,2020.
c语言****题题库作答完整
程序填空共2题
第1题
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:编程求某年第n天的日期。用数组表示月天数。
-------------------------------------------------------*/
#include<>
#include<>
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<>
/***********SPACE***********/
【#include<>】
main()
{intx;
doubley,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<>
#include<>
#include<>
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<>
#include<>
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构成的魔方矩阵。魔方矩阵的
行列及对角线的和都相等。
魔方矩阵:816
357
492
-------------------------------------------------------*/
#include<>
#include<>
#defineMAXSiZE20
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=n/2;
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=(column==【n-1】)
0: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<>
floatfac(intn); //函数声明
main()
{
inti;
floats=0;
floatfac(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<>
main()
{
charstr[80],ch;
inti,k=0;
/***********SPACE***********/
gets(【str】); //输入字符串放入str[]
ch=getchar();
/***********SPACE***********/
for(i=0;【str[i]】;i++) //循环到字符串结束为止
if(str[i]!=ch) //假如没找到就将原字符赋值过去找到要删除的就跳过继续找
{
/***********SPACE***********/
【str[k]=str[i]】; //在同一个数组中操作,后面的字符覆盖了前面要删除的位置
k++;
}
/***********SPACE***********/
【str[k]=’\0’】; //在新字符串结尾处加结束符
puts(str); //输出
}
第2题
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输入一个整数,计算它可能是哪两个整数的平方和,并打印
结果数据。
如:34是5和3或3和5的平方和。
-------------------------------------------------------*/
#include<>/*fori/Ofunctions*/
#include<>/*foratoi()*/
#include<>/*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("\nCountXY");
printf("\n---------------");
row=1;/*startsfromfarenough*/
column=(int)(sqrt((double)given)+);
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(count==0)
printf("\n\nSorry,NOANSWERfound.");
else
printf("\n\nThereare%dpossibleanswers.",count);
}
程序改错共1题
第1题
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:计算并输出k以内最大的10个能被13或17整除的自然数之和。
k的值由主函数传入。
例如:若k的值为500,则函数值为4622。
------------------------------------------------------*/
#include<>
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<>
#definemax100
main()
{
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<>
#include<>
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<>
#defineN20
voidfun(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()
{