- 1、本文档共767页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
*7.8 带参数的函数main() 处理命令行参数是指针数组、指向指针的指针的另一个用武之地。 有些操作系统,包括UNIX和MS-DOS,让用户在命令行中编写参数来启动一个程序的执行。 在C语言中带参数的main函数形式如下: int main(int argc,char *argv[]) (1)argc:命令行参数的数目。 (2)argv:表示指针数组。指针数组中的每个元素都是指向一个字符串的指针。 注意这两个参数通常取名为argc和argv,但并不强制要求这么取名。比如,如果你喜欢,也可以把它们称为para1和para2,只不过程序的可读性会差一点。 /*函数功能: 求学生的平均成绩 函数参数: pCol为二维数组的列指针,指向二维数组的第0行第0列 函数返回值:浮点型值,返回学生的平均成绩*/ float average(float *pCol) { int i; float sum=0; for(i=0;i12;i++) /*求3个学生共计12门课程的总成绩*/ sum+=*(pCol+i); return (sum/12); } * 60 70 80 56 89 67 34 78 90 90 88 66 pCol pCol+1 pCol+2 pCol+3 /*函数功能: 输出第n(0≤n≤2)个学生的成绩 函数参数: pRow为二维数组的行指针,指向二维数组的第0行 整形变量n,存放带查找成绩的学生的编号 函数返回值:空*/ void search(float (*pRow)[4],int n) { int i; for(i=0;i4;i++) printf(%.2f ,*(*(pRow+n)+i)); printf(\n); } 60 70 80 56 89 67 34 78 90 90 88 66 pRow pRow+1 pRow+2 n=1 /*函数功能: 查找有一门及以上课程不及格的学生,并打印输出他们的全部 课程的成绩 函数参数: pRow为二维数组的行指针,指向二维数组的第0行 函数返回值:空*/ void find(float (*pRow)[4]) { int i,j,flag; for(i=0;i3;i++) { flag=0; for(j=0;j4;j++) if(*(*(pRow+i)+j)60) { flag=1; break; } if(flag==1) { printf(No.%d 有1门及以上成绩不及格,他的成绩是:\n,i); for(j=0;j4;j++) printf(%.2f ,*(*(pRow+i)+j)); printf(\n); } } if(flag==0) printf(所有学生的所有课程均及格\n); } * 60 70 80 56 89 67 34 78 90 90 88 66 *pRow *pRow+1 *pRow+2 *pRow+3 pRow pRow+1 pRow+2 所有学生的平均成绩为:72.33 请输入待查找成绩的学生的编号n(0≤n≤2): 2↙ 34.00 78.00 90.00 66.00 No.1 有1门及以上成绩不及格,他的成绩是: 56.00 89.00 67.00 88.00 No.2有1门及以上成绩不及格,他的成绩是: 34.00 78.00 90.00 66.00 【练习】 有以下程序: #includestdio.h int main() { int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i; pa=a; for(i=0;i3;i++) if(i2) pa[1][i]=pa[1][i]-1; else pa[1][i]=1; printf(%d\n,a[0][1]+a[1][1]+a[1][2]); return 0; } 执行后的输出结果是( )。 A.??7 B.??6 C.??8 D. 无确定值 1 2
文档评论(0)