#include <stdio.h>
//********************************************************************************
//示例
//********************************************************************************
void exe0()
{
printf("/n <示例>: 任意输入10个数,求和./n");
printf(" <函数原型如下>: int sum(int *a)./n");
printf(" <要求>:在主调函数中输入这10个数,调用函数,输出结果./n");
int a[10];
int *p=a;
printf("/n请输入10个整数:/n");
for(;p<a+10;p++)
scanf("%d",p);
int sum(int *a); //声明函数原型
printf("这10个数的和为:%d./n",sum(a));
}
//********************************************************************************
int sum(int *a)
{
int s=0;
int *p=a;
for(;p<a+10;p++)
s+=*p;
return s;
}
//********************************************************************************
//试题一
//********************************************************************************
void exe1()
{
printf("/n <试题1>: 实现两个字符串的连接./n");
printf(" <要求>: 不要用strcat函数./n");
//我的解答
char s1[80],s2[40];
int i=0,j=0;
printf("请输入第一个字符串:");
scanf("%s",s1);
printf("请输入第二个字符串:");
scanf("%s",s2);
while(s1[i]!='/0')i++;//统计s1中字符串长度i,即s1的最大下标+1
while(s2[j]!='/0')s1[i++]=s2[j++];//先赋值s1[i]=s2[j],然后i++,j++,完成后i的值即为最大下标+1
s1[i]='/0';//给这个元素赋值'/0',表示字符串结尾
printf("连接后的结果:s=%s/n",s1);
//
}
//********************************************************************************
//试题二
//********************************************************************************
void exe2()
{
printf("/n <试题2>: 求100-999中的水仙花数/n");
printf("/n (若三位数abc,a3+b3+c3=abc,则称abc为水仙花数。)/n");
printf("/n (例如153,13+33+53=153,则153称为水仙花数。)/n");
printf(" <要求>: 用循环结构和数组实现./n");
// 我的解答:在哪里使用数组??-_-!
int i,j,k,n,sxhi=0;
int sxh[900]={0};//记录水仙花数
for(n=100;n<1000;n++)
{
i=n/100; //百位
j=n/10-i*10;//十位
k=n%10; //个位
if(n==i*i*i+j*j*j+k*k*k)
{
sxh[sxhi]=n;//将就这道题的要求…其实不用数组,直接输出结果就可以了嘛。
sxhi++;
}
}
printf("100~999之间的水仙花数有:/n");
sxhi=0;
while(sxh[sxhi]!=0)
{
printf("%d/n",sxh[sxhi]);
sxhi++;
}
//
}
//********************************************************************************
//试题三
//********************************************************************************
void exe3()
{
printf(" <试题3>: 编写一个函数,判断输入的年份是否为闰年./n");
printf(" <函数原型如下>: int isleap(int year)./n");
printf(" <要求>: (1)形参year为判断的年份,返回值为1则为闰年,返回值0则为平年./n");
printf(" (2)在主调函数中输入年份,调用函数fun,输出结果./n");
//我的解答
int year,flag=0;
int isleap(int year);
printf("请输入年份:");
scanf("%d",&year);
flag = isleap(year);
if(flag==1)
{
printf("闰年/n");
}
else
printf("平年/n");
}
int isleap(int year)
{
int flag=0;
if( year%400==0 || ((year%100)!=0 && year%4==0) )
flag = 1;
return flag;
} //
//********************************************************************************
//********************************************************************************
//********************************************************************************
//********************************************************************************
//********************************************************************************
//********************************************************************************
void main()
{
int sel;
do
{
printf("/t/t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/n");
printf("/t/t 计算机学院XXXX专业上机考试模式示例 /n");
printf("/t/t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/n");
printf("/t/t/t111 示例 /n");
printf("/t/t/t1 试题1 /n");
printf("/t/t/t2 试题2 /n");
printf("/t/t/t3 试题3 /n");
printf("/t/t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/n");
printf("/t/t/t0 退出系统/n");
printf("/t/t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/n");
printf("请选择:");
scanf("%d",&sel);
switch(sel)
{
case 111:exe0();break;
case 1:exe1();break;
case 2:exe2();break;
case 3:exe3();break;
case 0:printf("/n/n/t/t/t/t^-^,再见!/n/n/n");break;
}
}while(sel!=0);
}