《C语言程序设计》李学刚数字资源9章 参考答案 2同步训练答案 同步训练61答案Word文档格式.docx
- 文档编号:21014449
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:16
- 大小:23.61KB
《C语言程序设计》李学刚数字资源9章 参考答案 2同步训练答案 同步训练61答案Word文档格式.docx
《《C语言程序设计》李学刚数字资源9章 参考答案 2同步训练答案 同步训练61答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》李学刚数字资源9章 参考答案 2同步训练答案 同步训练61答案Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
5.阅读程序,以下程序的输出结果是(D)。
f(intb[],intn)
inti,r=1;
for(i=0;
=n;
i++)r=r*b[i];
returnr;
intx,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
%d\n"
x);
A.720B.6C.24D.120
6.已知int类型变量在内存中占用4个字节,定义数组intb[8]={2,3,4};
则数组b在内存中所占字节数为(D)。
A.5B.12C.16D.32
7.以下程序段给数组所有元素输入数据,应在圆括号中填入的是(D)。
intmain()
inta[10],i=0;
while(i<
10)
scanf("
());
A.&
a[++i]B.&
a[i+1]C.&
a[i]D.&
a[i++]
8.若有以下说明:
inta[10]={1,2,3,4,5,6,7,8,9,10};
charc='
a'
;
则数值为4的表达式是(D)。
A.a['
f'
-c]B.a[4]C.a['
d'
-'
c'
]D.a['
-c]
9.以下定义语句中,错误的是(B)。
A.inta[]={6,7,8};
B.intn=5,a[n];
C.chara[]="
string"
D.chara[5]={'
0'
'
1'
'
2'
3'
4'
10.以下描述中正确的是(D)。
A.数组名后面的常量表达式用一对圆括弧括起来
B.数组下标从1开始
C.数组下标的数据类型可以是整型或实型
D.数组名的规定与变量名相同
11.用数组名作为函数调用时的实参,实际上传送给形参的是(A)。
A.数组首地址B.数组的第一个元素值
C.数组中全部元素的值D.数组元素的个数
12.若定义数组并初始化chara[10]={'
5'
6'
7'
8'
9'
以下正确语句是(C)。
A.scanf("
%c"
a[0]);
B.scanf("
%s"
&
a);
C.printf("
a[3]);
D.printf("
a);
13.若定义数组inta[10],其数组元素的下标下限为(B)。
A.1B.0C.9D.10
14.若定义数组inta[10],其最后一个数组元素为(C)。
A.a[0]B.a[1]C.a[9]D.a[10]
15.若定义数组并初始化inta[10]={1,2,3,4},以下语句不成立的是(B)。
A.a[8]的值为0B.a[1]的值为1C.a[3]的值为4D.a[9]的值为0
16.若定义数组并初始化inta[10]={1,2,3,4},以下叙述成立的是(A)。
A.若引用a[10],编译时警告B.若引用a[10],连接时报错
C.若引用a[10],运行时出错D.若引用a[10],系统报错
17.指出以下错误语句(A)。
A.intn=10,a[n];
B.intn,a[10];
C.inta[10]={1,2,3};
D.inta[10]={1,2,3,4,5,6,7,8,9,10};
18.若定义数组并初始化inta[10]={1,2,3,4},以下叙述不成立的是(A)。
A.a[10]是a数组的最后一个元素的引用
B.a数组中有10个元素
C.a数组中每个元素都为整数
D.a数组是整型数组
19.执行下面的程序段后,变量k中的值为(A)。
intk=3,s[2];
s[0]=k;
k=s[1]*10;
A.不定值B.33C.30D.10
20.若有以下的定义和语句:
intstr[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc='
e'
,则数值为2的表达式是(C)。
A.str['
g'
-c]B.str[2]C.str['
]D.str['
21.设已定义:
intx[2][4]={1,2,3,4,5,6,7,8};
则元素x[1][1]的正确初值是(A)。
A.6B.5C.7D.1
22.设有intx[2][4]={1,2,3,4,5,6,7,8};
printf("
x[2][4]);
则输出结果是(C)。
A.8B.1C.随机数D.语法检查出错
23.设有:
inta[4][5];
则数组a占用的内存字节数是(D)。
A.9B.20C.40D.80
24.以下程序的输出结果是(C)。
inti,a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;
3;
i++)
%d,"
a[i][2-i]);
return0;
A.1,5,9B.1,4,7C.3,5,7D.3,6,9
25.指出以下错误语句(C)。
A.inta[2][3]={{1,2,3},{4,5,6}};
B.intb[2][3]={1,2,3,4,5,6};
C.inta[][]={{1,2,3},{4,5,6}};
D.inta[][3]={{1,2,3},{4,5,6}};
二、程序填空题
1.若有定义语句:
chars[100],d[100];
intj=0,i=0;
,且s中已赋字符串,请填空将字符串s拷贝到d中。
(注:
不得使用逗号表达式)
while(s[i])
d[j]=s[i++];
j++;
d[j]=0;
2.下列程序中,将k的值插入到有序数组a中,使数组依然保持升序,请填空。
voidinsert(inta[],intx)
{
inti=0,j;
while(a[i]<
x&
&
3)i++;
for(j=2;
j>
=i;
j--)
a[j+1]=a[j];
a[i]=x;
inta[5]={1,4,5},i;
intx;
scanf("
x);
insert(a,x);
i++)
printf("
%3d"
a[i]);
return0;
3.程序定义了N×
N的二维数组,并在主函数中自动赋值。
请在函数fun()填空,该函数的功能是:
使数组左下半三角元素中的值全部置成0。
例如a数组中的值为
a=197
238
456
则返回主程序后a数组中的值应为
097
008
000
#include<
stdlib.h>
#defineN9
intfun(inta[][N])
inti,j;
for(i=0;
N;
for(j=0;
j<
=i;
j++)
a[i][j]=0;
return0;
inta[N][N],i,j;
*****Thearray*****\n"
for(i=0;
{
j<
{
a[i][j]=rand()%10;
/*产生一个随机的N*N矩阵*/
printf("
%4d"
a[i][j]);
}
printf("
}
fun(a);
THERESULT\n"
{
j++)
a[i][j]);
4.计算两个矩阵的乘积。
程序如下,请填空。
说明:
1.当矩阵A的列数等于矩阵B的行数时,A与B可以相乘。
2.矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
3.乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。
stdio.h>
#defineM2
#defineP3
#defineN4
voidfun(inta[M][P],intb[P][N],intc[M][N])
inti,j,k,s;
for(i=0;
M;
i++)
{
for(j=0;
j++)
s=0;
for(k=0;
k<
P;
k++)
s+=a[i][k]*b[k][j];
c[i][j]=s;
}
inta[M][P],b[P][N],c[M][N];
inti,j,k;
Inputarraya[2][3];
//输入数组A的值
for(i=0;
i++)
for(k=0;
k++)
scanf("
a[i][k]);
Inputarrayb[3][4];
//输入数组B的值
for(k=0;
b[i][k]);
fun(a,b,c);
Outputarrayc[2][4]:
//输出数组C的值
for(i=0;
for(j=0;
%5d"
c[i][j]);
三、程序阅读题
1.以下程序运行后的输出结果是(abc)。
chars[]="
abcdef"
s[3]='
\0'
%s\n"
s);
2.以下程序运行后的输出结果是(Hello)。
charb[]="
Hello,you"
b[5]=0;
%s\n"
b);
3.以下程序运行后的输出结果是(1,3,7,15,)。
inti,n[]={0,0,0,0,0};
for(i=1;
{
n[i]=n[i-1]*2+1;
n[i]);
}
4.以下程序运行后的输出结果是(123)。
056
009
intmain()
inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;
for(j=i+1;
j<
a[j][i]=0;
for(j=0;
%d"
5.以下程序运行后的输出结果是(2650)。
inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};
%d%d%d%d\n"
a[0][4],a[1][2],a[2][1],a[3][0]);
四、程序设计题
1.求一个N*N矩阵对角线元素之和。
程序代码:
#defineN5
floatsum(floata[N][N])
floats=0;
inti;
s=s+a[i][i];
returns;
floata[N][N],s;
inti,j;
请输入N*N个元素:
%f"
a[i][j]);
s=sum(a);
对角线元素之和为%\n"
2.将一个数组首尾互换后输出。
#defineN6
voidconv(inta[])
inti,temp;
N/2;
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
inta[N]={11,9,8,2,1,0},i;
\n交换前:
a[i]);
conv(a);
\n交换后:
3.输入N个整数,分析每个整数的每一位数字,求出现次数最多的数字。
//把数组的下标0-9,和数字0-9对应起来,数组元素作为出现的个数
voidcount(inta[]);
inti,d,gw,a[10]={0};
请输入%d个整数:
N);
i++)//读入整数并分解,同时统计个数
scanf("
d);
while(d>
0)
gw=d%10;
d=d/10;
a[gw]++;
count(a);
voidcount(inta[])
inti,maxnum;
maxnum=a[0];
10;
i++)//查找出现的最大次数
if(a[i]>
maxnum)
maxnum=a[i];
出现%d次数字有:
"
maxnum);
i++)//查找出现次数最多的个位数字
if(a[i]==maxnum)
i);
4.输入一个整数,输出每个数字对应的拼音。
当整数为负数时,先输出“fu”字。
intwrite(intn);
intn;
请输入一个整数:
n);
if(n<
fu"
n=-n;
write(n);
intwrite(intn)
chara[][5]={"
ling"
"
yi"
er"
san"
si"
wu"
liu"
qi"
ba"
jiu"
intt,mask=1;
t=n;
while(t>
=10)
t=t/10;
mask=mask*10;
//得到位权
while(mask>
t=n/mask;
//得到最高位的值
%s"
a[t]);
n=n%mask;
//得到除最高位的值
mask=mask/10;
5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3,找出100以内的所有完数。
intwanshu(intt,intk[])
inti,s;
intflag=0;
k[10]=-1;
s=t;
t;
if((t%i)==0)
k[10]++;
s=s-i;
k[k[10]]=i;
if(s==0)
flag=1;
returnflag;
intk[11];
for(i=2;
=100;
if(wanshu(i,k))
%d是一个完数,其因子是:
k[10];
k[j]);
k[k[10]]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 C语言程序设计李学刚数字资源9章 参考答案 2同步训练答案 同步训练61答案 语言程序设计 李学刚 数字 资源 同步 训练 答案 61
链接地址:https://www.bdocx.com/doc/21014449.html