C语言程序设计(编程题专项练习)及答案_第1页
C语言程序设计(编程题专项练习)及答案_第2页
C语言程序设计(编程题专项练习)及答案_第3页
C语言程序设计(编程题专项练习)及答案_第4页
C语言程序设计(编程题专项练习)及答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计(编程题专项练习)及答案2/2C语言程序设计(编程题专项练习)及答案全文共15页,当前为第1页。C语言程序设计(编程题专项练习)及答案C语言程序设计(编程题专项练习)及答案全文共15页,当前为第1页。一、组数,指针,字符串编程题(每小题5分,共10分)1、编写程序:输入一个百分制成绩,打印出五级记分成绩。考试成绩在90分或90分以上为优秀,80~89分为良好,70~79为中等,60~69为及格,低于60分为不及格。2、编写程序:求一个3*3矩阵对角线元素之和3、编写程序:在第一个循环中给a数组的前10个数组元素依次赋1,2..9;

在第二个循环中使a数组前10个元素中的值按逆序存放,变成9,8..1;

在最后一个循环中输出逆序存放以后的a数组前10个元素4、编写程序:判断一个素数能被几个连续的9整除,比如:

请输入一个素数:

13

素数13能整除6个9组成的数整除5、编写程序:输出200~300之间的所有素数,要求每行输出8个素数。6、编写程序:判断101到200之间的素数。7、编写程序:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。8、编写程序,使用循环结构输出下列图形:9、编写程序:假设奖金税率如下(a代表奖金,r代表税率)500<=a<1000r=5%1000<=a<2000r=8%2000<=a<3000r=10%3000<=ar=15%输入的一个奖金数,求税率和应缴税款以及实得的奖金数(扣除奖金税后)。10、编写程序:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?11、编写程序:若有数组:inta[2][3]={{1,2,3},{4,5,6}};

现要将a的行和列的元素互换后存到另一个二维数组b中,并以矩阵形式输出数组b。试编程。C语言程序设计(编程题专项练习)及答案全文共15页,当前为第2页。12、编写程序:输出一维数组a中的最小值及其下标C语言程序设计(编程题专项练习)及答案全文共15页,当前为第2页。13、起泡法(选择法)对十个数排序14、编写程序:查找n在数组a中最后一次出现的位置

例如:如果a数组中的元素为:[0,5,0,5,6,8,0,4,3,0],当n=5时,程序的输出结果为:5isno.3当n=10时,程序的输出结果应为:10notfound15、编写程序,将从键盘输入的10个整数按升序排列输出。16、编写程序:找出100~n(不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在数组中,并5个一行输出。17、编写程序:求出a所指数组中最小数(规定最小数不在a[0]中),最小数和a[0]中的数对调。

例如数组中原有的数为:[7、10、12、0、3、6、9、11、5、8]

输出的结果为:[0、10、12、7、3、6、9、11、5、8]18、请编写一个函数proc(),它的功能是:求出1~m(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传给m的值为70,则程序输出:7,11,14,21,22,28,33,35,42,44,49,55,56,63,66,70注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:

#defineN100

voidproc(intm,int*a,int*n)

{

...

}

voidmain()

{

intarr[N],n,k;

system("cls");

proc(70,arr,&n);

for(k=0;k<N;K++)

if((k+1)%20==0)//每行输出20个数

{

printf("%4d",arr[k]);

printf("\n");

}

C语言程序设计(编程题专项练习)及答案全文共15页,当前为第3页。else

printf("%4d",arr[k]);

printf("\n");

}C语言程序设计(编程题专项练习)及答案全文共15页,当前为第3页。19、编写程序:对10个数进行排序。20、编写程序:求两个正整数m,n之间的非素数之和(包含m和n)

例如:如果数组m=2,n=20,则程序的输出应为:sumis:132()

C语言程序设计(编程题专项练习)及答案全文共15页,当前为第4页。【参考答案】C语言程序设计(编程题专项练习)及答案全文共15页,当前为第4页。一、组数,指针,字符串编程题1、#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<math.h>

voidmain()

{

intscore,t;

printf("Pleaseenterascore:");

do

{

scanf("%d",&score);

}

while(score<0||score>100);

t=score/10;

/*************found**************/

switch(t)

{

case10:

case9:printf("优秀!\n");break;

case8:printf("良好!\n");break;

case7:printf("中等!\n");break;

case6:printf("及格!\n");break;

/*************found**************/

default:printf("不及格!\n");

}

}2、#include<stdio.h>

#defineN3

intmain()

{

inti,j,a[N][N],sum=0;

printf("请输入矩阵(3*3):\n");

for(i=0;i<N;i++)

C语言程序设计(编程题专项练习)及答案全文共15页,当前为第5页。for(j=0;j<N;j++)

scanf("%d",&a[i][j]);

for(i=0;i<N;i++)

sum+=a[i][i];

printf("对角线之和为:%d\n",sum);

return0;

}C语言程序设计(编程题专项练习)及答案全文共15页,当前为第5页。【解析】利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。3、#include<stdio.h>

main()

{

inti,a[10],t;

for(i=0;i<10;i++)a[i]=i+1;

for(i=0;i<5;i++)

{

t=a[i];

a[i]=a[i]=a[9-i];

______=t;

}

for(i=0;i<10;i++)printf("%5d",a[i]);

printf("\n");

}4、#include<stdio.h>

#include<stdlib.h>

intmain()

{

intp,i;

longintsum=9;

printf("请输入一个素数:\n");

scanf("%d",&p);

for(i=1;;i++)

if(sum%p==0)break;

elsesum=sum*10+9;

printf("素数%d能整除%d个9组成的数%ld\n",p,i,sum);

return0;

}C语言程序设计(编程题专项练习)及答案全文共15页,当前为第6页。5、#include<stdio.h>

#include<math.h>

main()

{

intm,j,n=0,k;

for(m=200;m<=300;m++)

{

k=sqrt(m);

for(j=2;j<=k;j++)

/************found************/

if(m%j==0)continue;

if(j>k)

{

if(n%8==0)printf("\n");

/************found************/

printf("%d,",m);

n++;

}

}

}C语言程序设计(编程题专项练习)及答案全文共15页,当前为第6页。6、#include<stdio.h>

intmain()

{

inti,j;

intcount=0;

for(i=101;i<=200;i++)

{

for(j=2;j<i;j++)

{

//如果j能被i整除在跳出循环

if(i%j==0)

break;

}

//判断循环是否提前跳出,如果j<i说明在2~j之间,i有可整除的数

if(j>=i)

{

C语言程序设计(编程题专项练习)及答案全文共15页,当前为第7页。count++;

printf("%d",i);

//换行,用count计数,每五个数换行

if(count%5==0)

printf("\n");

}

}

return0;

}C语言程序设计(编程题专项练习)及答案全文共15页,当前为第7页。【解析】判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。7、#include<stdio.h>

#include<stdlib.h>

intmain(){

intday,x1=0,x2;

day=9;

x2=1;

while(day>0){

x1=(x2+1)*2;//第一天的桃子数是第2天桃子数加1后的2倍

x2=x1;

day--;

}

printf("总数为%d\n",x1);

return0;

}【解析】采取逆向思维的方法,从后往前推断。

1)设x1为前一天桃子数,设x2为第二天桃子数,则:

x2=x1/2-1,x1=(x2+1)*2

x3=x2/2-1,x2=(x3+1)*2

以此类推:x前=(x后+1)*2

2)从第10天可以类推到第1天,是一个循环过程。C语言程序设计(编程题专项练习)及答案全文共15页,当前为第8页。8、****

****

****

****

****

#include

voidmain()

{

inti,j,k;

for(i=0;i<5;i++)

{

for(j=0;j<4-i;j++)

printf("");

for(k=0;k<4;k++)

printf("*");

printf("\n");

}

printf("\n");

}C语言程序设计(编程题专项练习)及答案全文共15页,当前为第8页。9、题中r代表税率,t代表税款,b代表实得奖金数。此为分段税率,用switch...case语句方便计算。当输入a后,利用整除的特性,把奖金a的值除以500取商作为switch语句的判断条件。

#include<stdio.h>

main()

{

floata,r,t,b;

intc;

scanf("%f",&a);

if(a>=3000)c=6elsec=a/500;

switch(c)

{

case0:r=0;

break;

case1:r=0.05;

break;

case2:case3:r=0.08;

break;

case4:case5:r=0.1;

C语言程序设计(编程题专项练习)及答案全文共15页,当前为第9页。break;

case6:r=0.15;

break;

}

t=a*r;

b=a-t;

printf("r=%f,t=%f,b=%f",r,t,b);

}C语言程序设计(编程题专项练习)及答案全文共15页,当前为第9页。10、#include<stdio.h>

intmain(void)

{

inti,j,m,n,x;

for(i=1;i<168/2+1;i++)

{

if(168%i==0)

{

j=168/i;

if(i>j&&(i+j)%2==0&&(i-j)%2==0)

{

m=(i+j)/2;

n=(i-j)/2;

x=n*n-100;

printf("%d+100=%d*%d\n",x,n,n);

printf("%d+268=%d*%d\n",x,m,m);

}

}

}

return0;

}【解析】假设该数为x。

1、则:x+100=n2,x+100+168=m2

2、计算等式:m2-n2=(m+n)(m-n)=168

3、设置:m+n=i,m-n=j,i*j=168,i和j至少一个是偶数

C语言程序设计(编程题专项练习)及答案全文共15页,当前为第10页。4、可得:m=(i+j)/2,n=(i-j)/2,i和j要么都是偶数,要么都是奇数。

5、从3和4推导可知道,i与j均是大于等于2的偶数。

6、由于i*j=168,j>=2,则1<i<168/2+1。

7、接下来将i的所有数字循环计算即可。C语言程序设计(编程题专项练习)及答案全文共15页,当前为第10页。11、main()

{

inta[2][3]={{1,2,3},{4,5,6}};

intb[3][2];

inti=0,j=0;

for(i=0;i<2;i++)

{

for(j=0;j<3;j++)

{

b[i][j]=a[j][i];

}

}

for(i=0;i<2;i++)

{

for(j=0;j<3;j++)

{

printf("%d",b[i][j]);

}

printf("\n");

}

}12、#include<stdio.h>

main()

{

inti,p=0,a[10];

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=1;i<10;i++)if(a[i]<a[p])

p=i;

C语言程序设计(编程题专项练习)及答案全文共15页,当前为第11页。printf("%d,%d\n",a[p],p);

}C语言程序设计(编程题专项练习)及答案全文共15页,当前为第11页。13、#include

voidmain()

{

inti,j,t;

inta[10];

printf("请输入10个数:\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)

if(a[i]>a[i+1])

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

for(i=0;i<10;i++)

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

printf("\n");

}14、#include<stdio.h>

main()

{

inta[10]={1,5,2,5,6,8,7,4,3,0};

inti,k,n,f=0;

scanf("%d",&n);

for(i=0;i<10;i++)

if(a[i]==n)

{

f=1;

k=i;

}

if(f)printf("%disno.%d\n",n,k);

elseprintf("%dnotfound!\n",n);

}C语言程序设计(编程题专项练习)及答案全文共15页,当前为第12页。15、#include<stdio.h>

voidmain()

{

inta[10],i,j,t;

printf("请输入10个整数\n");

for(i=0;i<10;i++)scanf("%d",&a[i]);

for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j]>a[j+1])

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

printf("排序结果:\n");

for(i=0;i<10;i++)printf("%d\t",a[i]);

}C语言程序设计(编程题专项练习)及答案全文共15页,当前为第12页。16、#include<stdio.h>

voidmain()

{

inta[100];

intnum,i,j;

intbw,sw,gw;

bw=sw=gw=0;

i=0;

for(num=100;num<1000;num++)

{

bw=num/100;

sw=(num%100)/10;

gw=num%10;

if(gw==(bw+sw))

{

a[i]=num;

i++;

}

}

for(j=0;j<i;)

{

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

j++;

C语言程序设计(编程题专项练习)及答案全文共15页,当前为第13页。if(j%5==0)putchar('\n');

}

}C语言程序设计(编程题专项练习)及答案全文共15页,当前为第13页。【解析】先遍历100~1000之间的所有数,然后筛选出满足百位数字加十位数字等于个位数字条件的数存储到数组中。最后,按照5个一行的形式输出。17、#include<conio.h>

#include<stdio.h>

#defineN20

main()

{

inta[N]={7,10,12,0,3,6,9,11,5,8},n=10,i,k,m,min,t;

for(i=0;i<n;i++)

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

printf("\n");

min=a[0];m=0;

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

/************found************/

if(a[k]<min)

{

min=a[k];m=k;

}

/************found************/

t=a[0];

a[m]=a[0];

a[m]=t;

for(i=0;i<n;i++)

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

printf("\n");

}18、voidproc(intm,int*a,int*n)

{

inti,j=0;

for(i=1;i<=m;i++)//进行m次循环if(i%7==0||i%11==0)//能被7或11整除的所有整数a[j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论