int score[4]; } stu[N]; input(stu)
struct student stu[]; { int i,j;
for(i=0;i
{ printf(\ printf(\
scanf(\ printf(\
scanf(\ for(j=0;j<3;j++)
{ printf(\
scanf(\ }
printf(\ } }
print(stu)
struct student stu[]; { int i,j;
printf(\for(i=0;i
{ printf(\ for(j=0;j<3;j++)
printf(\ printf(\} }
main() {
input(); print(); }
============================================================== 【程序72】题目:创建一个链表。 /*creat a list*/ #include \#include \struct list { int data;
struct list *next; };
typedef struct list node; typedef node *link; void main() { link ptr,head; int num,i;
ptr=(link)malloc(sizeof(node)); ptr=head;
printf(\for(i=0;i<=4;i++) {
scanf(\ ptr->data=num;
ptr->next=(link)malloc(sizeof(node)); if(i==4) ptr->next=NULL; else ptr=ptr->next; }
ptr=head;
while(ptr!=NULL)
{ printf(\ ptr=ptr->next; } }
============================================================== 【程序73】题目:反向输出一个链表。
/*reverse output a list*/ #include \#include \struct list { int data;
struct list *next; };
typedef struct list node; typedef node *link; void main()
{ link ptr,head,tail; int num,i;
tail=(link)malloc(sizeof(node)); tail->next=NULL; ptr=tail;
printf(\ for(i=0;i<=4;i++) {
scanf(\ ptr->data=num;
head=(link)malloc(sizeof(node)); head->next=ptr; ptr=head; }
ptr=ptr->next; while(ptr!=NULL)
{ printf(\ ptr=ptr->next; }}
============================================================== 【程序74】题目:连接两个链表。 #include \#include \struct list { int data;
struct list *next; };
typedef struct list node; typedef node *link;
link delete_node(link pointer,link tmp) {if (tmp==NULL) /*delete first node*/ return pointer->next; else
{ if(tmp->next->next==NULL)/*delete last node*/ tmp->next=NULL;
else /*delete the other node*/ tmp->next=tmp->next->next; return pointer; } }
void selection_sort(link pointer,int num) { link tmp,btmp; int i,min;
for(i=0;i
tmp=pointer; min=tmp->data; btmp=NULL; while(tmp->next)
{ if(min>tmp->next->data) {min=tmp->next->data; btmp=tmp; }
tmp=tmp->next; }
printf(\
pointer=delete_node(pointer,btmp);
} }
link create_list(int array[],int num) { link tmp1,tmp2,pointer; int i;
pointer=(link)malloc(sizeof(node)); pointer->data=array[0]; tmp1=pointer;
for(i=1;i
{ tmp2=(link)malloc(sizeof(node)); tmp2->next=NULL; tmp2->data=array[i]; tmp1->next=tmp2; tmp1=tmp1->next; }
return pointer; }
link concatenate(link pointer1,link pointer2) { link tmp; tmp=pointer1; while(tmp->next) tmp=tmp->next; tmp->next=pointer2; return pointer1; }
void main(void)
{ int arr1[]={3,12,8,9,11}; link ptr;
ptr=create_list(arr1,5); selection_sort(ptr,5); }
============================================================== 【程序75】题目:放松一下,算一道简单的题目。 main() {
int i,n;
for(i=1;i<5;i++) { n=0; if(i!=1) n=n+1; if(i==3) n=n+1; if(i==4) n=n+1; if(i!=4) n=n+1; if(n==3)
printf(\ } }
==============================================================
【程序76】题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数) main()
#include \main() {
float peven(),podd(),dcall(); float sum; int n; while (1) {
scanf(\ if(n>1) break; }
if(n%2==0)
{
printf(\ sum=dcall(peven,n); } else {
printf(\ sum=dcall(podd,n); }
printf(\}
float peven(int n) {
float s; int i; s=1;
for(i=2;i<=n;i+=2) s+=1/(float)i; return(s); }
float podd(n) int n; {
float s; int i; s=0;
for(i=1;i<=n;i+=2) s+=1/(float)i; return(s); }
float dcall(fp,n) float (*fp)(); int n; {
float s; s=(*fp)(n); return(s); }
============================================================== 【程序77】题目:填空练习(指向指针的指针) main()
{ char *s[]={\char **q; int k;
for(k=0;k<5;k++)
{ ;/*这里填写什么语句*/ printf(\} }
============================================================== 【程序78】题目:找到年龄最大的人,并输出。请找出程序中有什么问题。 #define N 4
#include \static struct man { char name[20]; int age;
} person[N]={\main()
{struct man *q,*p; int i,m=0; p=person;
for (i=0;i
printf(\}
============================================================== 【程序79】题目:字符串排序。 main() {
char *str1[20],*str2[20],*str3[20]; char swap();
printf(\scanf(\scanf(\scanf(\
if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0) swap(str1,str3); if(strcmp(str2,str3)>0) swap(str2,str3); printf(\
printf(\}
char swap(p1,p2) char *p1,*p2; {
char *p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); }
==============================================================
【程序80】题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? main()
{int i,m,j,k,count; for(i=4;i<10000;i+=4) { count=0; m=i;
for(k=0;k<5;k++) {
j=i/4*5+1; i=j;
if(j%4==0) count++; else break; }
i=m;
if(count==4)
{printf(\ break;} } }
============================================================== 【程序81】题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。 output(long b,long i)
{ printf(\}
main()
{long int a,b,i; a=809;
for(i=10;i<100;i++) {b=i*a+1;
if(b>=1000&&b<=10000&&8*i<100&&9*i>=100) output(b,i); } }
============================================================== 【程序82】题目:八进制转换为十进制 main()
{ char *p,s[6];int n; p=s;