2021-07-28

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;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值