习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx

上传人:b****1 文档编号:3449338 上传时间:2023-05-01 格式:DOCX 页数:18 大小:27.47KB
下载 相关 举报
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第1页
第1页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第2页
第2页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第3页
第3页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第4页
第4页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第5页
第5页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第6页
第6页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第7页
第7页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第8页
第8页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第9页
第9页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第10页
第10页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第11页
第11页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第12页
第12页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第13页
第13页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第14页
第14页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第15页
第15页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第16页
第16页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第17页
第17页 / 共18页
习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx

《习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx》由会员分享,可在线阅读,更多相关《习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。

习题参考答案《C语言程序设计》第七版董汉丽 610页Word文档格式.docx

{

intk,a[6]={1,2,3,4,5,6};

for(k=5;

k>

--k)

if(a[k]%2==0)

printf("

%d"

a[k]);

}

【分析与提示】从后向前把能被2整除的数组元素输出。

【解答】642

2.以下程序的执行结果是。

#include<

stdio.h>

charstr[]="

SSSWLIA"

c;

intk;

for(k=2;

(c=str[k])!

='

\0'

;

k++)

{

switch(c)

{

case'

I'

:

++k;

break;

case'

L'

continue;

default:

putchar(c);

}

putchar('

*'

);

【分析与提示】从字符串中第3个字符开始,把符合要求的字符运用输出字符函数putchar()输出;

最后在其后输出一个"

*"

【解答】SW*

3.以下程序的执行结果是。

charss[10]="

12345"

strcat(ss,"

6789"

gets(ss);

printf("

%s"

ss);

假设输入"

ABC"

【分析与提示】运用字符串连接函数strcat(),把两个串"

和"

连接,对其重新赋值后,原有数值被刷新输出新值。

【解答】"

4.以下程序的执行结果是。

#include<

string.h>

main()

chara[]="

Monday"

b[]="

day"

strcpy(a,b);

%s\t%s\n"

a,b);

%c\t%c\n"

a[4],a[5]);

}

【分析与提示】把b字符串的内容拷贝到a字符串中,分别显示a和b串内容;

再显示数组元素a[4]和a[5]的内容。

【解答】dayday

ay

5.以下程序的执行结果是。

intx[8]={8,7,6,5,0,0},*s;

s=x+3;

printf("

%d"

s[2]);

【分析与提示】运用指针显示数组元素值。

需要注意的是把数组x第3个元素的地址,赋给了指针变量s,所以s[2]里面存储的是x[5],即0。

6.以下程序的执行结果是。

inta=7,b=8,*p,*q,*r;

p=&

a;

q=&

b;

r=p;

p=q;

q=r;

%d,%d,%d,%d"

*p,*q,a,b);

【分析与提示】指针变量存储地址,而不是数值。

【解答】8,7,7,8

7.以下程序的执行结果是。

language"

programe"

char*p,*q;

p=a;

q=b;

while(*p&

&

*q)

if((*p)==(*q))printf("

%c"

*p);

p++;

q++;

【分析与提示】程序功能是,输出两个字符串中相同的字符。

【解答】gae

8.以下程序的执行结果是。

chara[80]="

AB"

b[80]="

LMNP"

inti=0;

strcat(a,b);

while(a[i++]!

b[i]=a[i];

puts(b);

【分析与提示】把b串内容连接到a串上,再通过循环对b串重新赋值。

【解答】LBLMNP

三.编程题

1.用一维数组求10个数中的最大值。

【分析与提示】运用一维数组保存10个数,依次比较保存最大值。

参考代码:

inti,a;

intn[10]={8,2,4,6,7,1,0,85,32,54};

a=n[0];

for(i=1;

i<

10;

i++)

if(n[i]>

a)a=n[i];

a=%d\n"

a);

2.用数组输入5个学生成绩,求出这些成绩的平均值,并输出所有高出平均值的分数。

【解答】参考代码:

#include"

stdio.h"

voidmain()

inti;

floata[5],sum=0,ave;

输入5个学生的成绩:

"

for(i=0;

5;

scanf("

%f"

&

a[i]);

sum=sum+a[i];

}

ave=sum/5;

5个学生的平均成绩是%5.2f。

\n"

ave);

高出平均值的成绩有:

if(a[i]>

ave)

%5.2f\n"

a[i]);

3.输入10个整数用一维数组保存,统计其中正数、负数和零的个数,并在屏幕上输出。

inta[10],i,n1=0,n2=0,n3=0;

请输入10个整数:

0)

n1++;

elseif(a[i]==0)

n2++;

else

n3++;

正数:

%d个\n零:

%d个\n负数:

%d个\n"

n1,n2,n3);

4.键盘任意输入10个整数,求偶数的个数。

inta[10],i,n=0;

if(a[i]%2==0)

n++;

偶数:

n);

5.有任意10个数(如:

12,46,68,80,10,12,4,16,100,0),请输入一个数,判断该数是否在该数组中。

【分析】该问题是一个线性查找问题。

输入一个数,然后从数组的第一个元素开始,依次与数组中元素比较,直到找遍整个数组为止,最后显示找到与否。

inttable[10]={12,46,68,80,10,12,4,16,100,0};

intfind=0,i,x;

请输入要找的数:

"

scanf("

x);

for(i=0;

if(x==table[i])

{find=1;

if(find==1)

%d在table数组中\n"

x);

else

没有找到数%d\n"

6.输入10个数,用一维数组按逆序重新存放并输出。

例原数:

1,2,3,4,5--->

5,4,3,2,1

for(i=9;

i>

=0;

i--)

printf("

7.将两个二维数组对应元素加起来,存到另一个二维数组中。

1020

3040

5060

a=

14

25

36

b=

 

【分析与提示】运用双重循环,把行列下标均相同的元素值相加。

inta[3][2]={10,20,30,40,50,60};

intb[3][2]={1,4,2,5,3,6};

intc[3][2];

inti,j;

for(i=0;

3;

{

for(j=0;

j<

2;

j++)

c[i][j]=a[i][j]+b[i][j];

%4d"

c[i][j]);

8.从键盘为一个3×

3整型数组输入数据,并找出主对角线上元素的最大值及其所在的行号。

inta[3][3],i,j,max,row;

请为3*3整型数组输入数据:

for(j=0;

scanf("

a[i][j]);

max=a[0][0];

row=0;

for(i=1;

if(max<

a[i][i])

max=a[i][i];

row=i;

}

主对角线上的最大值是%d,其所在的行号是%d\n"

max,row);

9.实现字符串原样复制。

【提示】原样复制字符串,两个指针变化相同。

即将指针t所指字符串复制到指针s所指内存空间中,形成一个新字符串str1。

string.h"

charstr[80],str1[80],*t,*s;

请输入一个字符串,以回车作为结束标志:

gets(str);

t=str;

s=str1;

strcpy(s,t);

puts(str1);

10.统计一个字符串中的单词个数。

【提示】单词是指处在空格之间的字符序列。

注意,只有从空格变为非空格时,才统计一个单词。

charstr[80],*p;

intn=0,flag=0;

p=str;

while(*p!

if(*p=='

'

flag=0;

elseif(flag==0)

flag=1;

p++;

单词个数为:

%d\n"

11.用指针实现合并两个字符串。

【分析与提示】把第二个字符串中字符逐个赋值给第一个字符串,需要注意的是两个字符数组下标变量的初值不同。

#include<

chars1[40],s2[20],*p1,*p2;

inti,j,n;

p1=s1;

p2=s2;

输入第一个字串:

gets(p1);

\n输入第二个字串:

gets(p2);

n=strlen(p1);

for(i=n,j=0;

*(p2+j)!

i++,j++)

*(p1+i)=*(p2+j);

*(p1+i)='

\n输出合并后字串为:

puts(p1);

12.打印杨辉三角形。

(打印10行)

杨辉三角形具有以下特点,第1列和对角元素的位置都是1,其它元素值要根据前1行同1列元素与前1行前1列元素之和计算出来的,

inta[10][10],i,j;

a[i][i]=1;

a[i][0]=1;

for(i=2;

for(j=1;

i;

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

杨辉三角形:

=i;

%6d"

a[i][j]);

13.从输入的三个字符串中找出最长的一个字符串输出。

【分析与提示】运用测试字符串长度函数strlen,进行串比较。

chara[3][80],*sp=””;

inti;

gets(a[i]);

if(strlen(sp)<

strlen(a[i]))sp=a[i];

thelongeststringis:

%s\n"

sp);

14.有三个字符串s1,s2,s3,其中:

s1=“abcdef”;

s2=“123456”。

要求用字符数组实现将s1的内容复制到s3中,并将s2的内容添加在s3后面,最后输出字符串s3。

chars1[]="

abcdef"

s2[]="

123456"

s3[80];

inti,j;

s1[i]!

s3[i]=s1[i];

for(j=0;

s2[j]!

s3[i++]=s2[j];

s3[i]='

puts(s3);

15.一个学习小组有5个人,每个人有三门课的考试成绩。

求全组分科的平均成绩和各科总平均成绩。

提示:

可设一个二维数组a[3][5]存放五个人三门课的成绩。

再设一个一维数组v[3]存放所求的各分科平均成绩。

设变量average为全组各科总平均成绩。

数据如下:

张山

王辉

李宇辉

赵刚

周伟

数学

80

61

59

85

76

C语言

75

65

63

87

77

英语

92

71

70

90

inta[3][5]={{80,61,59,85,76},{75,65,63,87,77},{92,71,70,90,85}},i,j,v[3]={0},average=0,s=0;

v[i]+=a[i][j];

s+=a[i][j];

average=s/15;

数学,C语言,英语的平均成绩分别为:

v[i]/5);

\n全组各科总平均成绩为:

average);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2