练习题6参考答案.docx

上传人:b****2 文档编号:19294 上传时间:2022-10-01 格式:DOCX 页数:17 大小:17.25KB
下载 相关 举报
练习题6参考答案.docx_第1页
第1页 / 共17页
练习题6参考答案.docx_第2页
第2页 / 共17页
练习题6参考答案.docx_第3页
第3页 / 共17页
练习题6参考答案.docx_第4页
第4页 / 共17页
练习题6参考答案.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

练习题6参考答案.docx

《练习题6参考答案.docx》由会员分享,可在线阅读,更多相关《练习题6参考答案.docx(17页珍藏版)》请在冰豆网上搜索。

练习题6参考答案.docx

练习题6参考答案

练习题6参考答案

一、选择题

序号

1

2

3

4

5

6

7

8

9

10

参考答案

D

D

D

A

A

D

A

C

B

C

序号

11

12

13

14

参考答案

C

D

A

A

二、填空题

1.下面程序的运行结果是:

1123

581321

3455

2.以下程序的输出结果是abc。

3.若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是0,a[2][1]得到的i初值是6。

4.以下程序可求出所有水仙花数(水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。

如:

407=4*4*4+0*0*0+7*7*7,故407是一个水仙花数)。

请填空。

#include

voidmain()

{

intx,y,z,a[8],m,i=0;

printf("Thespecialnumbersare:

\n");

for(m=100;m<1000;m++)

{x=m/100;

y=(m/10)%10;

z=m%10;

if(x*100+y*10+z==x*x*x+y*y*y+z*z*z)

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

}

for(x=0;x

printf("%6d",a[x]);

}

5.下面程序的功能是:

将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。

#include

#include

voidmain()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

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

for(j=i+2;j

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

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

puts(a);

printf("\n");

}

6.下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一个二维数组b中,并按矩阵形式输出a和b,请填空。

例如:

arraya:

arrayb:

456645

1233l2

#include

voidmain()

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

inti,j;

printf("arraya:

\n");

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

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

{printf("%5d",a[i][j]);

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

}

printf("\n");

}

for(i=0;i<=1;i++)b[i][0]=a[i][2];

printf("arrayb:

\n");

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

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

printf("%5d",b[i][j]);

printf("\n");

}

}

7.下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。

请填空。

#include

voidmain()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

b[i]=a[i]-a[i-1];

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

{printf("%3d",b[i]);

if(i%3==0)printf("\n");

}

}

8.以下程序是求矩阵a,b的和,结果存入矩阵C中,并按矩阵形式输出。

请填空。

#include

voidmain()

{inta[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};

intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};

inti,j,c[3][4];

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

for(j=0;j<4;j++)

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

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

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

printf("%3d",c[i][j]);

printf("\n");

}

}

三、程序设计题

1.从键盘输入某个班级的30名学生信息(设只含有学号),编写程序用折半查找法通过输入一个学生的学号查找某一学生(注意:

查找前要先进行排序)。

程序设计如下:

#include

#defineN30

voidmain()

{

inta[N];

inti,j,t,x,mid,low=0,high=N-1;

printf("请输入%d名学生的学号:

\n",N);

for(i=0;i

scanf("%d",&a[i]);

for(j=0;j

for(i=0;i

if(a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf("请输入需要查找的学生的学号:

\n");

scanf("%d",&x);

do

{

mid=(low+high)/2;

if(a[mid]==x)break;

elseif(a[mid]>x)

high=mid-1;

else

low=mid+1;

}while(low<=high);

if(low<=high)

printf("这个学生学号为%d\n",x);

else

printf("查找不到\n");

}

2.设有某班级35名学生的一门课程考试成绩,编写程序求超过平均的学生(包括学号和成绩),并将所有学生按成绩降序排列输出。

程序设计如下:

#include

#defineNUM35

voidmain()

{

inta[NUM][2];

floatsum=0,ave;

inti,j,t;

printf("请输入%d位同学的学号和成绩:

\n",NUM);

for(i=0;i

scanf("%d%d",&a[i][0],&a[i][1]);

for(i=0;i

sum=sum+a[i][1];

ave=sum/NUM;

for(i=0;i

if(a[i][1]>ave)

printf("超过平均分的学生学号为:

%d,成绩为:

%d\n",a[i][0],a[i][1]);

for(j=0;j

for(i=0;i

if(a[i][1]

{t=a[i][0];a[i][0]=a[i+1][0];a[i+1][0]=t;

t=a[i][1];a[i][1]=a[i+1][1];a[i+1][1]=t;

}

printf("所有学生成绩(降序排列):

\n");

for(i=0;i

printf("学号为:

%d,成绩为:

%d\n",a[i][0],a[i][1]);

}

3.设从3个候选人中选择1个人,10个人参加投票,编写一个统计选票的程序。

投票人编号

候选人

投票人编号

候选人

1

张华

6

李好

2

李好

7

李好

3

王娟

8

王娟

4

李好

9

李好

5

张华

10

王娟

程序设计如下:

#include

#include

voidmain()

{

inti;

charname[8];

char*p1="张华";

char*p2="李好";

char*p3="王娟";

intn1=0,n2=0,n3=0;

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

{

printf("请输入第%d个投票人选择的候选人:

\n",i+1);

scanf("%s",name);

if(strcmp(name,p1)==0)

n1++;

elseif(strcmp(name,p2)==0)

n2++;

elseif(strcmp(name,p3)==0)

n3++;

}

printf("%s的票数为%d\n",p1,n1);

printf("%s的票数为%d\n",p2,n2);

printf("%s的票数为%d\n",p3,n3);

}

4.输入一行字符串,编写程序分别统计各个英文字母出现的次数(不区分字母大小写)。

程序设计如下:

#include

voidmain()

{

intlet[26]={0};

inti;

charch;

while((ch=getchar())!

='\n')

{

if(ch>='A'&&ch<='Z')

let[ch-'A']++;

elseif(ch>='a'&&ch<='z')

let[ch-'a']++;

}

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

printf("%c:

%d\n",i+'a',let[i]);

}

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

1

11

121

1331

14641

15101051

……

程序设计如下:

#include

#defineN10

voidmain()

{

inti,j,k;

inta[N][N];

for(i=0;i

{

a[i][0]=1;

a[i][i]=1;

}

for(i=2;i

for(j=1;j

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

for(i=0;i

{

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

printf("%4d",a[i][j]);

printf("\n");

}

}

6.编写程序输入并求一个4×4矩阵的两条对角线元素之和、四周靠边元素之和。

程序设计如下:

#include

#defineN4

voidmain()

{

inta[N][N];

inti,j;

intsum1=0;//对角线元素之和

intsum2=0;//四周靠边元素之和

printf("请输入%d*%d矩阵:

\n",N,

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

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1