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

上传人:b****1 文档编号:2398716 上传时间:2023-05-03 格式:DOCX 页数:36 大小:21.43KB
下载 相关 举报
C语言习题题库 作答完整.docx_第1页
第1页 / 共36页
C语言习题题库 作答完整.docx_第2页
第2页 / 共36页
C语言习题题库 作答完整.docx_第3页
第3页 / 共36页
C语言习题题库 作答完整.docx_第4页
第4页 / 共36页
C语言习题题库 作答完整.docx_第5页
第5页 / 共36页
C语言习题题库 作答完整.docx_第6页
第6页 / 共36页
C语言习题题库 作答完整.docx_第7页
第7页 / 共36页
C语言习题题库 作答完整.docx_第8页
第8页 / 共36页
C语言习题题库 作答完整.docx_第9页
第9页 / 共36页
C语言习题题库 作答完整.docx_第10页
第10页 / 共36页
C语言习题题库 作答完整.docx_第11页
第11页 / 共36页
C语言习题题库 作答完整.docx_第12页
第12页 / 共36页
C语言习题题库 作答完整.docx_第13页
第13页 / 共36页
C语言习题题库 作答完整.docx_第14页
第14页 / 共36页
C语言习题题库 作答完整.docx_第15页
第15页 / 共36页
C语言习题题库 作答完整.docx_第16页
第16页 / 共36页
C语言习题题库 作答完整.docx_第17页
第17页 / 共36页
C语言习题题库 作答完整.docx_第18页
第18页 / 共36页
C语言习题题库 作答完整.docx_第19页
第19页 / 共36页
C语言习题题库 作答完整.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《C语言习题题库 作答完整.docx》由会员分享,可在线阅读,更多相关《C语言习题题库 作答完整.docx(36页珍藏版)》请在冰点文库上搜索。

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

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):

\n\n");

gets(s);

printf("\nThestring:

\n\n");

puts(s);

fun(s);f\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

{

for(column=0;column

printf("%4d",matrix[row][column]);

printf("\n");

}

}

}

程序改错共1题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

求1到10的阶乘的和。

------------------------------------------------------*/

#include<>

floatfac(intn);.*/

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

{

/**********FOUND**********/

p=j;

for(i=j;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

printf("%d",a[i]);

printf("\n");

fun(a,m);

printf("排序后的数据:

");

for(i=0;i

printf("%d",a[i]);

printf("\n");

}

程序填空共2题

第1题

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

产生10个[30,90]区间上的随机整数,然后对其用选择法

进行由小到大的排序。

-------------------------------------------------------*/

#include<>

#include<>

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<>

#defineMAXSiZE20

#defineLOOP1

voidmain(void)

{

intset[MAXSiZE];

intn,i;

intposition;

charline[100];

printf("\nAllPossibleSubsetsGenerationbyLexicalOrder");

printf("\n================================================");

printf("\n\nNumberofElementsintheSet-->");

gets(line);

n=atoi(line);

printf("\n{}");

position=0;

set[position]=1;

while(LOOP)

{

/***********SPACE***********/

printf("\n{%d",【】);

for(i=1;i<=position;i++)

printf(",%d",set[i]);

printf("}");

if(set[position]

{

/***********SPACE***********/

set[【】]=set[position]+1;

position++;

}

elseif(position!

=0)

set[--position]++;

else

/***********SPACE***********/

【】;

}

}

程序改错

第1题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

求出以下分数序列的前n项之和。

和值通过函数值返回main

函数。

2/1+3/2+5/3+8/5+13/8+21/13……

例如:

若n=5,则应输出:

------------------------------------------------------*/

#include<>

#include<>

/**********FOUND**********/

fun(intn)

{

inta,b,c,k;doubles;

s=;a=2;b=1;

for(k=1;k<=n;k++)

{

/**********FOUND**********/

s=(double)a/b;

c=a;

a=a+b;

b=c;

}

/**********FOUND**********/

returnc;

}

main()

{

intn=5;

printf("\nThevalueoffunctionis:

%lf\n",fun(n));

}

程序填空共2题

第1题

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

输出结果为:

*****

*****

*****

*****

-------------------------------------------------------*/

#include<>

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+5

15=4+5+6

15=7+8

所以结果有3组值分别是1->5,4->6,7->8

-------------------------------------------------------*/

#include<>

#include<>

voidmain(void)

{

longleft,right;

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

;

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2