教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

C程序设计(红皮书)习题官方参考答案(1-7章)(计老师)(6)

来源:网络收集 时间:2025-04-24
导读: a[maxPos] = a[minPos]; a[minPos] = temp; } main() { int a[ARRSIZE],i; printf(\ for (i=0; i MaxMinExchang(a, ARRSIZE); printf(\for (i=0;i 5. 写一函数,能对给定的一个二维数组(3×3)进行转置(即行列互

a[maxPos] = a[minPos]; a[minPos] = temp; } main() {

int a[ARRSIZE],i;

printf(\ for (i=0; i

MaxMinExchang(a, ARRSIZE); printf(\for (i=0;i

5. 写一函数,能对给定的一个二维数组(3×3)进行转置(即行列互换)。 #include #define N 3 int array[N][N]; void main()

{ void convert(int array[][3]); int i,j;

printf(\ for (i=0;i

scanf(\ printf(\ for (i=0;i

printf(\ printf(\ }

convert(array);

printf(\ for (i=0;i

printf(\ printf(\ } }

void convert(int array[][3]) {int i,j,t;

for (i=0;i

array[i][j]=array[j][i]; array[j][i]=t; } }

6. 写一函数,能用“起泡法”对输入的10个字符按由小到大顺序排序。 #include #include #define N 10 char str[N]; void main()

{void sort(char str[]); int i,flag;

for (flag=1;flag==1;)

{printf(\ scanf(\ if (strlen(str)>N)

printf(\ else

flag=0; }

sort(str);

printf(\ for (i=0;i

void sort(char str[]) {int i,j; char t;

for(j=0;j

for (i=0;(istr[i+1]) {t=str[i];

str[i]=str[i+1];

str[i+1]=t; } }

7. 编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数。

#include

int letter,digit,space,others; void main()

{void count(char str[]); char text[80];

printf(\ gets(text);

printf(\ puts(text); letter=0; digit=0; space=0; others=0; count(text);

printf(\}

void count(char str[]) {int i;

for (i=0;str[i]!='\\0';i++)

if ((str[i]>='a'&& str[i]<='z')||(str[i]>='A' && str[i]<='Z')) letter++;

else if (str[i]>='0' && str [i]<='9') digit++;

else if (str[i]==32) space++; else

others++; }

8. 编写程序输出3~10000内的可逆素数。可逆素数是指:一个素数将其各位数字的顺序倒过来构成的反序数也是素数。如157和751均为素数,它们是可逆素数。要求调用两个子函数实现。

#include #include #include int invert(int a) {

int s=0; while(a>0) {

s=10*s+a; a/=10; }

return s; }

int prime(int a) { int i;

for(i=2;i<=(int)sqrt(a);i++) if(a%i==0) return 0; return 1; }

main() { int i;

for(i=3;i<10000;i++) if(prime(i))

if(prime(invert(i))) printf(\printf(\}

9. 编写一个函数,实现将一个十进制数转换成八进制数。 #include #include void main() {

int i,n; char a[33];

void trans10_8(char x[],int m); printf(\ scanf(\ trans10_8(a,n);

for (i=strlen(a)-1;i>=0;i--) printf(\printf(\ }

void trans10_8 (char x[],int m) {

int r,i=0; while(m>0)

{

r=m%8;

x[i]=r+48; m=m/8; i++; } x[i]='\\0'; }

10. 编写一个函数,实现对由实参传来的一个字符串,将其字符顺序颠倒后重新存放。

#include #include void main()

{void inverse(char str[]); char str[100];

printf(\ scanf(\ inverse(str);

printf(\}

void inverse(char str[]) {char t; int i,j;

for (i=0,j=strlen(str);i<(int)(strlen(str)/2);i++,j--) {t=str[i];

str[i]=str[j-1]; str[j-1]=t; } }

…… 此处隐藏:141字,全部文档内容请下载后查看。喜欢就下载吧 ……
C程序设计(红皮书)习题官方参考答案(1-7章)(计老师)(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/452821.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)