C语言第七八章补充作业答案.docx
- 文档编号:5709371
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:16
- 大小:24.26KB
C语言第七八章补充作业答案.docx
《C语言第七八章补充作业答案.docx》由会员分享,可在线阅读,更多相关《C语言第七八章补充作业答案.docx(16页珍藏版)》请在冰豆网上搜索。
C语言第七八章补充作业答案
第七章 数组补充作业
【1】在C语言中,引用数组元素时,其数组下标的数据类型允许是 C 。
A)整型常量B)整型表达式
C)整型常量或整型表达式D)任何类型的表达式
【2】以下对一维整型数组a的正确说明是 D 。
A)inta(10);B)intn=10,a[n];
C)intn;D)#defineSIZE10
scanf(“%d”,&n);inta[SIZE];
inta[n];
【3】若有说明:
inta[10];则对a数组元素的正确引用是 D 。
A)a[10]B)a[3.5]C)a(5)D)a[10-10]
【4】以下能对一维数组a进行正确初始化的语句是 C 。
A)inta[10]=(0,0,0,0,0);B)inta[10]={};
C)inta[]={0};D)inta[10]={10*1};
【5】以下对二维数组a的正确说明是 B 。
A)inta[3][];B)doublea[1][4];
C)floata(3,4);D)floata(3)(4);
【6】若有说明:
inta[3][4];则对a数组元素的正确引用是 D 。
A)a[2][4]B)a[1,3]C)a
(2)
(1)D)a[1+1][0]
【7】以下不能对二维数组a进行正确初始化的语句是 C 。
A)inta[2][3]={0};
B)inta[][3]={{1,2},{0}};
C)inta[2][3]={{1,2},{3,4},{5,6}};
D)inta[][3]={1,2,3,4,5,6};
【8】指出下面各说明语句中哪些是合法的:
(多选)
A.intabcd[0x80];B.char9ab[10];
C.charchi[-200];D.intaaa[5]={3,4,5};
E.floatkey[]={3.0,4.0,1,0};F.chardisk[];
G.intn,floppy[n];H.intcash[4]={1,2,3,4,5,6};
答案:
ADE
【9】下面程序中有错误的行是 D (每行程序前面的数字表示行号)。
1main()
2{
3floata[3]={1};
4inti;
5scanf(“%d”,&a);
6for(i=1;i<3;i++)a[0]=a[0]+a[i];
7printf(“a[0]=%d\n”,a[0]);
8}
A)3B)6C)7D)5
【10】请回答下列问题。
(1)array是一个一维整形数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,请写出正确的说明语句。
___
(2)该数组下标的取值范围是从___到___(从小到大)。
(3)如何用scanf函数输入数组的第二个元素。
___
(4)如何用赋值语句把39存入第一个元素。
___
(5)如何表示把第六个和第四个元素之和存入第一个元素。
___
答案:
intarray[10]={9,4,7,49,32,-5};
09
scanf("%d",&array[1]);
array[0]=39;
array[0]=array[5]+array[3];
【11】若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为 A 。
(假设a[0][0]位于数组的第一个位置上。
)
A)i*m+j+1B)j*m+iC)i*m+j-1D)i*m+j
【12】若有说明:
inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是 B 。
A)2B)3C)4D)无确定值
【13】定义如下变量和数组:
intk;
inta[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是 A 。
for(k=0;k<3;k++)printf("%d",a[k][2-k]);
A)357B)369C)159D)147
【14】若有以下程序段:
……
inta[]={4,0,2,3,1};i,j,t;
for(i=1;i<5;i++)
{
t=a[i];j=i-1;
while(j>=0&&t>a[j])
{a[j+1]=a[j];j--;}
a[j+1]=t;
}
……
则该程序段的功能是 B 。
A)对数组a进行插入排序(升序)
B)对数组a进行插入排序(降序)
C)对数组a进行选择排序(升序)
D)对数组a进行选择排序(降序)
【题15】当运行以下程序时,从键盘输入:
AhaMAAha
#include
main()
{
chars[80],c=‘a’;
inti=0;
scanf(“%s”,s);
while(s[i]!
=‘\0’)
{
if(s[i]==c)s[i]=s[i]-32;
elseif(s[i]==c-32)s[i]=s[i]+32;
i++;
}
puts(s);
}
A)ahAMaB)AhAMaC)AhAMaahAD)ahAMaahA
【题16】设数组a包括10个整型元素。
下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。
请填空。
main()
{
inta[10],b[10],i;
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
for(【1】;i<10;i++)
【2】
for(i=1;i<10;i++)
{
printf(“%3d”,b[i]);
if(【3】==0)printf(“\n”);
}
}
【1】i=1【2】b[i]=a[i]+a[i-1]【3】(i%3)
【题17】下面程序将十进制整数转换成n进制。
请填空。
main()
{
inti,base,n,j,num[20];
printf(“Enterdatathatwillbeconverted\n”);
scanf(“%d”,&n);
printf(“Enterbase\n”);
scanf(“%d”,&base);
do{
i++;
num[i]=n【1】base;
n=n【2】base;
}while(n!
=0);
printf(“Thedata%dhasbeenconvertedintothe%d--base
data:
\n”,n,base);
for(【3】)
printf(“%d”,num[j]);
}
【1】%【2】/【3】j=i;j>=1;j--
【题18】下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一二维数组b中,并按矩阵形式输出a和b。
请填空。
例如:
arraya:
arrayb:
456645
123312
main()
{
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]);
【1】;
}
printf(“\n”);
}
for(【2】;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]);
【3】;
}
}
【1】b[i][j+1]=a[i][j]【2】i=0;i<2【3】printf(“\n”)
编程答案:
[1]#defineM50
main()
{
inta[M],c[5],i,n=0,x;
printf(“Enter0or1or2or3or4,toendwith–1\n”);
scanf(“%d”,&x);
while(x!
=-1)
{
if(x>=0&&x<=4)
{
a[n]=x;
n++;
}
scanf(“%d”,&x);
}
for(i=0;i<5;i++)
c[i]=0;
for(i=0;i c[a[i]]++; printf(“Theresultis: \n”); for(i=0;i<=4;i++) printf(“%d: %d\n”,ic[i]); printf(“\n”); } [2]main() { inta[5][5],i,j,n=1; for(i=0;i<5;i++) for(j=0;j<5;j++) a[i][j]=n++; printf(“Theresultis: \n”); for(i=0;i<5;i++) { for(j=0;j<=i;j++) printf(“%4d”,a[i][j]); printf(“\n”); } } [3]#include #include main() { chara[80],b[]=“ab”,max; inti=1,j; printf(“Inputastring\n”); gets(a); puts(a); max=a[0]; while(a[i]! =‘\0’) { if(a[i]>max) { max=a[i]; j=i; } i++; } for(i=strlen(a)+2;i>j;i--) a[i]=a[i-2]; a[i+1]=‘a’; a[i+2]=‘b’; puts(a); } 第八章 函数补充作 【题1】以下正确的说法是 B 。 建立函数的目的之一是A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 【题2】以下正确的说法是 B 。 A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C)系统根本不允许用户重新定义标准库函数 D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 【题3】若调用一个函数,且此函数中没有return语句,则正确的说法是 D 。 该函数A)没有返回值 B)返回若干个系统默认值 C)能返回一个用户所希望的函数值 D)返回一个不确定的值 【题4】以下不正确的说法是 D 。 C语言规定A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式 C)实参可以为任意类型 D)形参应与其对应的实参类型一致 【题5】以下正确的说法是 C 。 A)定义函数时,形参的类型说明可以放在函数体内 B)return后边的值不能为表达式 C)如果函数值的类型与返回值类型不一致,以函数值类型为准 D)如果形参与实参的类型不一致,以实参类型为准 【题6】以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。 请选择填空。 sub(intk,intn) { inta1,a2; a2=【1】;(为: C) a1=k-【2】; (为: A) if((k%3==0&&a2==5)||(k%3==0&&a1==5)) { printf(“%d”,k); n++; returnn; } elsereturn-1; } main() { intn=0,k,m; for(k=10;k<=99;k++) { m=sub(k,n); if(m! =-1)n=m; } printf(“\nn=%d”,n); } 【1】A)k*10B)k%10C)k/10D)k*10%10 【2】A)a2*10B)a2C)a2/10D)a2%10 【题7】折半查找法的思路是: 先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。 如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。 函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;返回-1。 请选择填空。 binary(inta[10],intm) { intlow=0,high=9,mid; while(low<=high) { mid=(low+high)/2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第七 补充 作业 答案