1. (程序题)定义一个结构体,含有两门课的成绩。输入5位同学的两门课成绩 ,输出每位同学的平均分
输入:80 80
76 76
20 20
30 50
10 90
输出:80.000000
76.000000
20.000000
40.000000
50.000000
我的答案:
#include<stdio.h>
struct student
{ int x;
int y;
}stu[5];
int main()
{ float ave[5];
int i;
for(i=0;i<=4;i++)
{ scanf("%d %d",&stu[i].x,&stu[i].y);//注意引用结构体中定义变量时的方法
ave[i]=(stu[i].x+stu[i].y)/2;}
for(i=0;i<=4;i++)
printf("%f\n",ave[i]);
}
2.(程序题)编写函数,利用指针实现将两个数交换。
#include <stdio.h>
void fun(float *p,float *q)
{
}
int main()
{ float x,y;
scanf("%f%f",&x,&y);
fun(&x,&y);
printf("x=%f\ny=%f",x,y);
}
我的答案:
#include <stdio.h>
void fun(float *p,float *q)
{ float t;
t=*p;*p=*q;*q=t;
}
int main()
{ float x,y;
scanf("%f%f",&x,&y);
fun(&x,&y);
printf("x=%f\ny=%f",x,y);
}
3. (程序题)完成下面代码未完成部分,实现功能:设计一函数,函数功能,输入一个字符串,统计这个字符串中字母字符的个数。
#include "stdio.h"
int fun(char c[])
{
}
int main()
{ char a[100];
printf("%d",fun(a));
}
我的答案:
#include <stdio.h>
int fun(char c[])
{ int i,j;
for(i=0,j=0;c[i];i++)//注意这里第二个条件的表达,可以提高效率(避免使用strlen函数)
if(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z') j++;
return j;
}
int main()
{ char a[100];
gets(a);
printf("%d",fun(a));
}
4. (程序题)利用递归程序,输出 n个@
输入 2
输出 @@
我的答案:
#include <stdio.h>
int fun(int n)
{printf("@");
if(n>=2) return fun(n-1);
else return 0;}//注意这里递归的基本形式,要牢记
int main()
{int n;
scanf("%d",&n);
fun(n);