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

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

来源:网络收集 时间:2025-04-24
导读: 第6章习题 一、选择题 1 D 2 A 3 D 4 B 5 D 6 C 7 B 8 D 9 B 10 D 二、填空题 1. 0 2. 14 m 3.10 7 4. 数据类型 5. strcpy(S2,S1) #include 6. 0 3 7. 7,6 8. sum=0 i==j a[i][j] 9. 4 10. Tony 三、程序分析题 1.

第6章习题 一、选择题

1 D 2 A 3 D 4 B 5 D 6 C 7 B 8 D 9 B 10 D 二、填空题

1. 0

2. 14 m 3.10 7

4. 数据类型

5. strcpy(S2,S1) #include 6. 0 3 7. 7,6 8. sum=0 i==j a[i][j] 9. 4

10. Tony

三、程序分析题

1. max=85 min=5 sum=180 aver=30.00 2. a=2 b=2 c=2 d=2 e=1 f=2 g=2 3. j=45

4. Ti_saCPorm Tss_Pgm 5. 1 1 1 5

四、编程题

1.从键盘输入15个整数,存放在数组中,找出其中最小数并指出其所在的位置。

#include

#define N 15 main()

{int min,i,j,a[N];

printf(\ for(i=0;i

for(i=1;ia[i]) { min=a[i]; j=i; }

printf(\}

2.将输入的十进制正整数化为十六进制数。 #include main() {

int i,x,j,a[20];

printf(\请输入一个正整数:\ while(1) {

scanf(\ if(x<0)

printf(\数据输入错误,请重新输入一个正整数:\ else break; } i=0; while(x) { a[i]=x; x=x/16; i++; }

for(j=i-1;j>=0;j--) if(a[j]<=9) printf(\ else if(a[j]<=15) printf(\ printf(\}

3.从键盘输入一行字符,统计其中有多少单词,假设单词之间以逗号分隔。

#include void main() {

char string[81];

int i,num=0,word=0; char c;

gets(string);

for (i=0;(c=string[i])!='\\0';i++) if(c==',') word=0; else if(word==0)

{ word=1;

num++; }

printf(\}

4.从键盘输入一字符串,放在字符数组a中,将字符数组a中下标值为偶数的元素按从小到大排序。

#include #include void main() {

char a[80],t,m; int i,j,k;

printf(\请输入一字符串:\ gets(a); k=strlen(a);

for(i=0;i<=k-2;i+=2) { m=i;

for(j=i+2;j<=k; j+=2 )

if(a[m]>a[j])

m=j;

if(m!=i)

{t=a[i];a[i]=a[m];a[m]=t;}

}

puts(a); printf(\ }

5.编写程序输出以下杨辉三角形(要求输出10行)。 1 1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1 ? … … … … …

#include #include void main()

{ int i,j,a[10][10]; for(i=0;i<10;i++) { a[i][0]=a[i][i]=1; for(j=1;j

a[i][j]=a[i-1][j-1]+a[i-1][j]; }

for(i=0;i<10;i++)

{ for(j=0;j<=i;j++)

printf(\ printf(\ } }

6.编程将s数组中的字符串的正序和反序进行连接,形成一个新串放在t数组中。例如,当s数组中字符串为\时,则t数组中的内容应为:\。

#include #include main() {

char s[100], t[100]; int i,d;

printf(\ scanf(\ d=strlen(s);

for(i=0;i

for(i=0;i

printf(\}

7.某公司在传输数据过程中为了安全要对数据进行加密,若传递的是四位的整数,对其进行加密的规则为:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。如:输入数字7659,则加密后的数字为4012

#include main()

{ int a,i,aa[4],t;

printf(\输入一个需加密的四位数整数:\scanf(\aa[0]=a; aa[1]=a0/10; aa[2]=a00/100; aa[3]=a/1000; for(i=0;i<=3;i++) {aa[i]+=5; aa[i]%=10; }

for(i=0;i<=3/2;i++) {

t=aa[i];

aa[i]=aa[3-i]; aa[3-i]=t; }

printf(\加密后的数字为:\for(i=3;i>=0;i--) printf(\printf(\}

8.编写程序查找数值18在以下二维数组中第一次出现的位置。

3 4 5 18 8 12 16 54 43 34 18 7

#include main()

{ int i,j,a[3][4]={{3,4,5,18}, {8,12,16,54}, {43,34,18,7}}; for(i=0;i<3;i++) { for(j=0;j<4;j++)

if(a[i][j]==18) break; if(j<4)break; }

printf(\数值18第一次出现的位置在%d行,第%d列\\n\}

9.设有4行4列的数组a,其元素a[i][j]=3*i+2*j-6。编写程序,实现如下功能:

(1) 求第二行4元素的累加和; (2) 求第四列4元素的平均值;

(3) 求主对角线4元素中负数的个数。

…… 此处隐藏:327字,全部文档内容请下载后查看。喜欢就下载吧 ……
C程序设计(红皮书)习题官方参考答案(1-7章)(计老师)(4).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)