1.从键盘上输入一个大写字母,要求改用小写字母输出。
1.#include
main( )
{char c1,c2;
c1=getchar( );
printf(“%c,%d\n”,c1,c1);
c2=c1+’A’-‘a’;
printf(“%c,%d\n”,c2,c2);
}
2.请编写一个程序,能显示出以下两行文字。
I am a student.
I love China.
2. #include
mian( )
{printf(“I am a student.\n”);
printf(“I love China.\n”);
}
4.有一函数,其函数关系如下,试编程求对应于每一自变量的函数值。
x2 (x<0)
y = -0.5x+10 (0 x<10)
x-x (x 10)
1.解答:#include
main()
{float x,y;
scanf(“%f”,&x);
if(x<0) y=x*x;
else if(x>=0&&x<10) y=-0.5*x+10;
else y=x-sqrt(x);
printf(“y=%f”,y);
}
5.编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为‘A’;80~89分为‘B’;70~79分为‘C’;60~69分为‘D’;60分以下为‘E’。
2.解答:main()
{float score;
scanf(“%f”,&score);
if(score>=90) printf(“A”);
else if(score>=80) printf(“B”);
else if(score>=70) printf(“C”);
else if(score>=60) printf(“D”);
else printf(“E”);
}
1.编程实现用“辗转相除法”求两个正整数的最大公约数。1.#include
main()
{int r,m,n;
scanf(“%d%d”,&m,&n;
if(m r=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() {int a,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( ) { int i,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( ) {int i,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(int num) {int s=0; num=abs(num); do {s+=num%10; num/=10; }while(num); } main( ) {int n; printf(“输入一个整数:”); scanf(“%d”,&n); printf(“结果:%d”,func(n)); } 2.函数的递归调用计算阶乘。 2.#include "stdio.h" main() {int i,n; int fact(); scanf(“%d”,&n); for(i=0;i printf("%d!=%d\n",i,fact(i)); } int fact(int j) {int sum; if(j==0) sum=1; else sum=j*fact(j-1); return sum; } 1.编写一个程序计算一个字符串的长度。 1. #include main( ) {char *str; printf(“输入一字符串:”); gets(str); printf(“[%s]的长度为:%d\n”,str,string_length(str)); } string_length(char *s) {int len=0; while(*s++) len++; return(len); } 2.编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串。请用指针完成。 2. #include main( ) {static char x[ ]=”computer”; char *p; for(p=x;p putchar(*p); printf(“\n”);} 1.试利用结构体类型编制一程序,实现输入一个学生的数学期中 和期末成绩,然后计算并输出其平均成绩。 1.main() {struct study {int mid; int end; int average; }math; scanf(“%d %d”,&math.mid,&math.end); math.average=(math.mid+math.end)/2; printf(“average=%d\n”,math.average); } 2.试利用指向结构体的指针编制一程序,实现输入三个学生的学号、数学期中和期末成绩,然后计算其平均成绩并输出成绩表。 2.struct stu {int num; int mid; int end; int ave; }s[3]; main( ) {struct stu *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; char ch,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文本文件,向其中写入“this is a test”字符串,然后显示该文件的内容。 2. #include #include main( ) {FILE *fp; char msg[ ]=”this is a test”; char buf[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. void change(int x,int r) { int c; 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() { int a,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); } }