C程序设计(红皮书)习题官方参考答案(1-7章)(计老师)(5)
#include
{ int a[4][4],i,j,s=0,m=0;
float n=0;
for(i=0;i<4;i++) for(j=0;j<4;j++) a[i][j]=3*i+2*j-6; printf(\原始数组为:\\n\for(i=0;i<4;i++) { for(j=0;j<4;j++)
printf(\printf(\}
for(j=0;j<4;j++)
s+=a[1][j];
printf(\第二行4元素累加和为:%d\\n\for(j=0;j<4;j++)
n+=a[j][3];
printf(\第四列4元素平均值为:%.2f\\n\for(i=0;i<4;i++) if(a[i][i]<0) m++;
printf(\主对角线4元素中负数的个数为:%d\\n\}
10.约瑟夫环问题:编号为1,2,3,...,n的n个人按顺时针方向围坐一圈,每人持有一个正整数密码。一开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针报数,报到m时停止,报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计程序求出出列顺序。
分析:设整型数组a中保存n个人的密码,对应的人出列后,数组元素置0作为标志。顺时针确定下一个人的方法,可将下标加1,再对n求余。
#include
{ int a[100];
int i,j,m,n,k=0;
printf(\输入人数n和任选的一个正整数m:\ scanf(\
printf(\输入n个人的密码: \ for (i=0;i scanf(\ printf(\出列顺序为: \ for(i=0;i { j=1; while(j { while(a[k]==0) /*跳过已出列的人*/ k=(k+1)%n; j++; k=(k+1)%n; } while(a[k]==0) /*跳过已出列的人*/ k=(k+1)%n; printf(\ m=a[k]; a[k]=0; } } 第7章习题 一、选择题 1 A 2 D 3 D 4 B 5 A 6 D 7 C 8 D 9 B 10 A 二、填空题 1. main() 2. main() 3.函数首部 4. 解决函数必须“定义在前,使用在后”的原则问题 5. int 6. 定义 调用 7. 地址传递 值传递 8. return void 9. void f(float a,float b) float f(float a,float b) 10. static 三、程序分析题 1. a=48 2. 8,17 3. 2721 4. BASIC C COBOL FORTRAN PASCAL Smalltalk 5. 6 1 2 3 6 5 4 四、编程题 1.写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。 #include printf(\ scanf(\ if (prime(n)) printf(\ else printf(\ } int prime(int n) {int flag=1,i; for (i=2; i 2.写一个函数,用于实现函数strcmp()的功能,能将两个字符串进行比较,将两个字符串中第一个不相同字符的ASCII码值之差作为函数的返回值。 #include int MyStrcmp(char s[], char t[]); main() { char str1[20],str2[20]; printf(\gets(str1); printf(\gets(str2); if (MyStrcmp(str1,str2)>0) printf(\ else if (MyStrcmp(str1,str2)<0) printf(\ else printf(\} int MyStrcmp(char s[], char t[]) { int i; for (i=0;s[i]==t[i]; i++) if (s[i]=='\\0') return 0 ; return (s[i]-t[i]); } 3. 写一个函数,用于实现函数strcat()的功能, 能将两个字符串连接。 #include {void concatenate(char string1[],char string2[],char string[]); char s1[100],s2[100],s[100]; printf(\ scanf(\ printf(\ scanf(\ concatenate(s1,s2,s); printf(\ } void concatenate(char string1[],char string2[],char string[]) {int i,j; for (i=0;string1[i]!='\\0';i++) string[i]=string1[i]; for(j=0;string2[j]!='\\0';j++) string[i+j]=string2[j]; string[i+j]='\\0'; } 4. 从键盘任意输入10个整数,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。 #include void MaxMinExchang(int a[], int n) { int maxValue=a[0], minValue=a[0], maxPos=0, minPos=0; int i, temp; for (i=1; i if (a[i] > maxValue) { maxValue = a[i]; maxPos = i; } else if (a[i] < minValue) { minValue = a[i]; minPos = i; } } temp = a[maxPos];
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音