C语言7完.docx
- 文档编号:5507263
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:4
- 大小:18.18KB
C语言7完.docx
《C语言7完.docx》由会员分享,可在线阅读,更多相关《C语言7完.docx(4页珍藏版)》请在冰豆网上搜索。
C语言7完
第七章 数组习题从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩。
#include <>#define N 10int main(){int i;int mark[N];int min=0; for(i=0;i ",i+1);scanf("%d",&mark[i]);/* 保存最大元素的序号 */if(mark[i]>mark[min]) min=i; } printf("\n序号: %d”,min+1);printf(“\n最高分: %d",mark[min]); return 0;} 习题计算和存储0°~ 90°的正弦值和0°~ 45°的正切值,每隔1度计算一个值。 #include <>#include <>#define PI int main(){ int i; float n_sin[90],n_tan[90]; for(i=0;i<=90;i++) { n_sin[i]=sin(i*PI/; /* 角度制转弧度制 */ if(i<=45) n_tan[i]=tan(i*PI/; } for(i=0;i<=90;i++) { printf(“sin(%d)=%lf “,i,n_sin[i]); if(i<=45) printf(“tan(%d)=%lf\n”,i,n_tan[i]); } return 0;} 习题将整型数组中的所有元素镜像对调,第一个与最后一个对调,第二个与倒数第二个对调,按对调后的结果输出。 #include <>#define N 10int main(){int i,t,num[N];for(i=0;i ”,i+1); scanf(“%d”,&num[i]); } for(i=0;i 习题在有序数列中插入若干个数,使数列在插入的过程中始终保持有序。 #include <>#define N 10 um,st[i].name, st[i].sex); printf("Input the student'grades: "); scanf("%f%f%f%f",&st[i]., &st[i].,&st[i]., &st[i].; st[i].ave=(st[i].+st[i].+ st[i].+st[i]./; } for(i=0;i =i) { temp=st[i]; st[i]=st[j]; st[j]=temp; } } printf("Taxis with the average: \n"); for(i=0;i 习题有一个商品信息表,除了商品号、商品名、进货日期、进货单价、数量和销售单价等公共信息外,对于家电类商品应有保修单位名和它的服务电话,而对于食品类则应有保质期。 请编程输入商品数据,以表格形式输出。 #include<>#include<>struct jd_type{ char num[10]; char name[20]; char date[10]; float value; int number; float price; char dep[20]; char tel[20];}jd;struct sp_type{ char num[10]; char name[20]; char date[10]; float value; int number; float price; char time[10];}sp;int main(){ int ch; printf("Please chose: \ dian lei.\ pin lei.\n"); scanf("%d",&ch); switch(ch) { case 1: printf("请输入\n 商品号 商品名 进货日期 进货单位 数量 销售单价 保修单位 服务电话 \n"); scanf("%s%s%s%f%d%f%s%s", ,,, &,&, &,,; printf("%s %s %s %f %d %f %s %s",,, ,, ,, ,; break; case 2: printf("请输入\n 商品号 商品名 进货日期 进货单位 数量 销售单价 保质期\n"); scanf("%s%s%s%f%d%f%s%s", ,,, &,&, &,; printf("%s %s %s %f %d %f %s s", ,,, ,, ,; break; default: break; }} 作者: 发表时间: 2007-9-91: 45: 00 第8楼 第九章 指针题编写对数组进行排序的程序,要求用函数实现,用参数传递数组。 #include <>#include <>/* 用指针变量传递数组 排序算法*/ void sort(int num[],int n){ int i,j; int t; for(i=0;i 习题编写求两个矩阵的乘积的函数,要求用函数参数传递矩阵。 #include <>/* m*n矩阵和n*t矩阵相乘 */ #define M 3 #define N 3 #define T 3 void cheng(int *a,int *b){ int i,j,k; int res=0; int *u,*q; for(i=0;i 习题编写函数实现字符串小写转大写函数strupr()功能,用两种方法实现。 #include <>/* 第一种方法 用数组实现 */ char* strupr1(char c[]){ int i=0; while(c[i]! ='\0') { if(c[i]>='a'&&c[i]<='z') c[i]+='A'-'a'; i++; } return c;}/* 第二种方法 用指针实现 */ char* strupr2(char *c){ char *p=c; while(*c! ='\0') { if(*c>='a'&&*c<='z') *c+='A'-'a'; c++; } return p;}int main(){ char a[]="Hello"; printf("%s\n",strupr1(a)); printf("%s\n",strupr2(a)); return 0;} 习题编写原程序,编译后,生成文件,在命令行输入com XXX,则输出: Hello XXX welcome to you #include <>int main(int argc, char *argv[]){ printf("Hello %s welcome to you\n",argv[1]); return 0;} 习题在结构体数组s中,按学号顺序存放10名学生的学号,姓名,成绩。 让指针数组p的各元素指向s的各元素。 调整p数组各元素的值,在s的顺序不改变的情况下分别按学号和成绩顺序输出个学生纪录的内容。 #include <>#include <>#define N 10 struct student{ int num; /* 学号 */ char name[10]; /* 姓名 */ int mark; /* 成绩 */}; int main(){ struct student s[N],*p[N]; int i; int j,k; struct student *t; /* 临时变量 用于交换 */ /* 输入 */ printf("请输入: \n学号 姓名 成绩\n"); for(i=0;i 作者: 发表时间: 2007-9-91: 45: 00 第9楼 习题有n个小朋友,按1,2,……,n编号围坐一圈,从第一个人开始从1到m报数,报到m的退出,从下一个开始,继续从1开始循环报数,报到m的退出,如此重复,最后剩下的一个小朋友发给奖品。 编程输出获得奖品的小朋友的序号,用循环链表处理。 (典型例题 约瑟夫环问题) #include <>/*N个人报数,报到M的退出 */ #define N 10#define M 3 struct Node{ int n; struct Node *next;};int main(){ struct Node *head,*p1,*p2; int i,num=N; head=NULL; p2=NULL; /* 建立链表 存入小朋友的序号 */ for(i=1;i<=N;i++) { p1=(struct Node *)malloc(sizeof(struct Node)); if(head==NULL) head=p1; p1->n=i; if(p2==NULL)p1->next=p2; else { p1->next=p2->next; p2->next=p1; } p2=p1; } /* 头尾相接 形成循环链表 */ p1->next=head; /* 开始报数 依次删除节点 */ p2=p1=head; while(num>1) { /* 报数 */ for(i=1;i \n",p2->n); return 0;}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言
![提示](https://static.bdocx.com/images/bang_tan.gif)