计算机编程题.docx
《计算机编程题.docx》由会员分享,可在线阅读,更多相关《计算机编程题.docx(10页珍藏版)》请在冰豆网上搜索。
计算机编程题
1.从键盘上输入一个大写字母,要求改用小写字母输出。
1.#include
main()
{charc1,c2;
c1=getchar();
printf(“%c,%d\n”,c1,c1);
c2=c1+’A’-‘a’;
printf(“%c,%d\n”,c2,c2);
}
2.请编写一个程序,能显示出以下两行文字。
Iamastudent.
IloveChina.
2.#include
mian()
{printf(“Iamastudent.\n”);
printf(“IloveChina.\n”);
}
4.有一函数,其函数关系如下,试编程求对应于每一自变量的函数值。
x2(x<0)
y=-0.5x+10(0
x<10)
x-
(x
10)
1.解答:
#include
main()
{floatx,y;
scanf(“%f”,&x);
if(x<0)y=x*x;
elseif(x>=0&&x<10)y=-0.5*x+10;
elsey=x-sqrt(x);
printf(“y=%f”,y);
}
5.编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。
设:
90分以上为‘A’;80~89分为‘B’;70~79分为‘C’;60~69分为‘D’;60分以下为‘E’。
2.解答:
main()
{floatscore;
scanf(“%f”,&score);
if(score>=90)printf(“A”);
elseif(score>=80)printf(“B”);
elseif(score>=70)printf(“C”);
elseif(score>=60)printf(“D”);
elseprintf(“E”);
}
1.编程实现用“辗转相除法”求两个正整数的最大公约数。
1.#include
main()
{intr,m,n;
scanf(“%d%d”,&m,&n;
if(mr=m%n;
while(r){m=n;n=r;r=m%n;}
printf(“%d\n”,n);}
2.一个数如果恰好等于它的因子之和(除自身外),则称该数为完全数,例如:
6=1+2+3,6就是完全数,请编写一程序,求出1000以内的整数中的所有完全数。
其中1000由用户输入。
2.#include
main()
{inta,i,m;
for(a=1;a<=100;a++)
{for(m=0,i=1;i<=a/2;i++)if(!
(a%i))m+=i;
if(m==a)printf(“%4d”,a);}
1.用起泡法对10个数排序。
1.#include
main()
{inti,j,m,a[11];
for(i=1;i<=10;i++)
scanf(“%d”,&a[i]);
for(i=1;i<=9;i++)
for(j=1;j<=10-i;j++)
if(a[j]>a[j+1])
{m=a[j];
a[j]=a[j+1];
a[j+1]=m;}
for(i=1;i<=10;i++)
printf(“%d”,a[i]);}
7.求Fibonacci数列中前20个数,Fibonacci数列的前两个数为1,1,以后每一个数都是前两个数之和。
Fibonacci数列的前n个数为1,1,2,3,5,8,13,用数组存放数列的前20个数,并输出之(按一行5个输出)。
2.#include
#include
main()
{inti,data[20];
data[0]=data[1]=1;
for(i=2;i<20;i++)
data[i]=data[i-1]+data[i-2];
printf(“\n”);
for(i=0;i<20;i++)
{printf(“%7d”,data[i]);
if((i+1)%5==0)printf(“\n”);
}
}
1.编写一个函数计算任一输入的整数的各位数字之和。
主函数包括输入输出和调用该函数。
1.#include
func(intnum)
{ints=0;
num=abs(num);
do
{s+=num%10;
num/=10;
}while(num);
}
main()
{intn;
printf(“输入一个整数:
”);
scanf(“%d”,&n);
printf(“结果:
%d”,func(n));
}
2.函数的递归调用计算阶乘。
2.#include"stdio.h"
main()
{inti,n;
intfact();
scanf(“%d”,&n);
for(i=0;iprintf("%d!
=%d\n",i,fact(i));
}
intfact(intj)
{intsum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
returnsum;
}
1.编写一个程序计算一个字符串的长度。
1.#include
main()
{char*str;
printf(“输入一字符串:
”);
gets(str);
printf(“[%s]的长度为:
%d\n”,str,string_length(str));
}
string_length(char*s)
{intlen=0;
while(*s++)
len++;
return(len);
}
2.编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串。
请用指针完成。
2.#include
main()
{staticcharx[]=”computer”;
char*p;
for(p=x;pputchar(*p);
printf(“\n”);}
1.试利用结构体类型编制一程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。
1.main()
{structstudy
{intmid;
intend;
intaverage;
}math;
scanf(“%d%d”,&math.mid,&math.end);
math.average=(math.mid+math.end)/2;
printf(“average=%d\n”,math.average);
}
2.试利用指向结构体的指针编制一程序,实现输入三个学生的学号、数学期中和期末成绩,然后计算其平均成绩并输出成绩表。
2.structstu
{intnum;
intmid;
intend;
intave;
}s[3];
main()
{structstu*p;
for(p=s;p
{scanf(“%d%d%d”,&(p->num),&(p->mid),&(p->end));
p->ave=(p->mid+p->end)/2;
}
for(p=s;p
printf(“%d%d%d%d\n”,p->num,p->mid,p->end,p->ave);
}
1.编写一个程序,由键盘输入一个文件名,然后把从键盘输入的字符依次存放到该文件中,用‘#’作为结束输入的标志。
1.#include
main()
{FILE*fp;
charch,fname[10];
printf(“输入一个文件名:
”);
gets(fname);
if((fp=fopen(fname,”w+”))==NULL)
{printf(“不能打开%s文件\n”,fname);
exit
(1);
}
printf(“输入数据:
\n”);
while((ch=getchar())!
=’#’)
fputc(ch,fp);
fclose(fp);
}
2.编写一个程序,建立一个abc文本文件,向其中写入“thisisatest”字符串,然后显示该文件的内容。
2.#include
#include
main()
{FILE*fp;
charmsg[]=”thisisatest”;
charbuf[20];
if((fp=fopen(“abc”,”w+”))==NULL)
{printf(“不能建立abc文件\n”);
exit
(1);
}
fwrite(msg,strlen(msg)+1,1,fp);
fseek(fp,SEEK_SET,0);
fread(buf,strlen(msg)+1,1,fp);
printf(“%s\n”,buf);
fclose(fp);
}
fclose(fp);
}
1.编写一个函数change(x,r),将十进制整数x转换成r(1(7分)
1.voidchange(intx,intr)
{
intc;
c=x%r;
if(x/r!
=0)change(x/r,r);
printf("%d",c);
}
2.一个数如果恰好等于它的因子之和(除自身外),则称该数为完全数,例如:
6=1+2+3,6就是完全数,请编写一程序,求出1000以内的整数中的所有完全数。
其中1000由用户输入。
(8分)
2.#include
main()
{inta,i,m;
for(a=1;a<=100;a++)
{for(m=0,i=1;i<=a/2;i++)
if(!
(a%i))m+=i;
if(m==a)printf(“%4d”,a);
}
}