41.输入两个正整数a和n,编程求a+aa+aaa+aa…a(n个a)之和。要求定义并调用函数fn(a,n),它的功能是返回aa…a(n个a)。例如fn(3,2)的返回值是33。
42.选择排序
43.定义两个带参的宏,一个用来求s,一个用来求area。写程序,在程序中用带实参的宏名来求面积area.
44.定义一个带参数的宏,使两参数的值互换,并写出程序,输入两个数和作为使用宏时的实参。输出已交换后的两个值。
45.编写一个函数digit(n,k),它会输出n的从右边开始的第k个数字的值。
例如digit(15469,3)=4,digit(123,4)=0。
说明:n和k从键盘任意输入,n输入数据不要超过5位数.
46.写一个函数,输入一个十六进制数,输出相应的十进制数。
47.打印“魔方阵”,所谓 “魔方阵”是指这样的方阵,它的每一行、每一列和对角线之和均相等。
要求打印出由1—N^N的自然数构成的“魔方阵”。
48.统计候选人选票
结构体变量stu有学号、姓名和3门课成绩,在main函数中赋值,在print函数中打印输出。
50.建立简单链表,它由3个学生数据的结点组成。输出各结点中的数据。
41.
#include<stdio.h>
fn(int a,int n)
{
int i,sum=a;
for(i=1;i<n;i++)
{
sum=sum*10+a;
}
return(sum);
}
main()
{
int a,n,sum=0;
int i;
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++)
{
sum+=fn(a,i);
}
printf("%d", sum);
}
42.
#include<stdio.h>
main()
{
int i,j,t,a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<=8;i++)
{
for(j=i+1;j<=9;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<10;i++)
printf("%d",a[i]);
}
43.
#include<stdio.h>
#include<math.h>
#define s(a,b,c) ((a+b+c)/2)
#define area(l,a,b,c) sqrt(l*(l-a)*(l-b)*(l-c))
main()
{
float a,b,c,S,AREA;
scanf("%f%f%f",&a,&b,&c);
S=s(a,b,c);
AREA=area(S,a,b,c);
printf("%f,%f",S,AREA);
}
44.
#include<stdio.h>
#define fn(a,b) {a=a+b;b=a-b;a=a-b;}
main()
{
int a,b;
scanf("%d%d",&a,&b);
fn(a,b);
printf("%d%d",a,b);
}
45.
#include<stdio.h>
digit(int *n,int k)
{
int i;
for(i=1;i<k;i++)
{
*n/=10;
}
*n%=10;
}
main()
{
int n,k;
scanf("%d%d",&n,&k);
digit(&n,k);
printf("%d",n);
}
46.不会
47.不会
48.
#include<stdio.h>
#include<string.h>
struct people
{
char name[100];
int count;
}pe[3]={"zhang",0,"wang",0,"li",0};
main()
{
int i,n;
char name[100];
scanf("%d",&n);
while(n>=0)
{
gets(name);
n--;
for(i=0;i<3;i++)
if(strcmp(pe[i].name,name)==0)
pe[i].count++;
}
for(i=0;i<3;i++)
printf("%s,%d ",pe[i].name,pe[i].count);
}
49.
#include<stdio.h>
struct student
{
int num;
char name[100];
int count[3];
}stu[3];
print()
{
int i;
for(i=0;i<3;i++)
{
printf("%d,%s,[%d,%d,%d] ",stu[i].num,stu[i].name,stu[i].count[0],stu[i].count[1],stu[i].count[2]);
}
}
main()
{
int i;
for(i=0;i<3;i++)
scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].count[0],&stu[i].count[1],&stu[i].count[2]);
print();
}
50.
#include<stdio.h>
#include<string.h>
struct student
{
int num;
char name[100];
struct student *next;
};
main()
{
struct student a,b,c,*head,*p;
int i;
a.num=1;strcpy(a.name,"zhang");b.num=2;strcpy(b.name,"wang");c.num=3;strcpy(c.name,"li");
head=p=&a;
a.next=&b;b.next=&c;c.next=NULL;
while(p!=NULL)
{
printf("%d,%s",p->num,p->name);
p=p->next;
}
}