计算机等级二级C语言章节习题及答案6.docx
- 文档编号:30353183
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:15
- 大小:19.62KB
计算机等级二级C语言章节习题及答案6.docx
《计算机等级二级C语言章节习题及答案6.docx》由会员分享,可在线阅读,更多相关《计算机等级二级C语言章节习题及答案6.docx(15页珍藏版)》请在冰豆网上搜索。
计算机等级二级C语言章节习题及答案6
2011年计算机等级二级C语言章节习题及答案(6)
温馨提示:
帮考网计算机二级C语言免费练习题,如需完整题库请登录
一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)
7.1若有说明inta[3][4];则a数组元素的非法引用是
A)a[0][2*1]
B)a[1][3]
C)a[4-2][0]
D)a[0][4]
正确答案:
D
7.2在C语言中,引用数组元素时,其数组下标的数据类型允许是
A)整型常量
B)整型表达式
C)整型常量或整型表达式
D)任何类型的表达式
正确答案:
C
7.3执行下面的程序段后,变量k中的值为
intk=3,s[2];
s[0]=k;k=s[1]*10;
A)不定值
B)33
C)30
D)10
正确答案:
A
7.4定义如下变量和数组:
intk;
inta[3][3]={9,8,7,6,5,4,3,2,1};
则下面语句的输出结果是
for(k=0;k《3;k++)printf(“%d”,a[k][k]);
A)753
B)951
C)963
D)741
正确答案:
B
7.5下列程序执行后的输出结果是
main()
{chararr[2][4];
strcpy(arr,“you”);
strcpy(arr[1],“me”);
arr[0][3]=′&′;
printf(“%s\n”,arr);
}
A)you&me
B)you
C)me
D)err
正确答案:
A
7.6设有数组定义:
chararray[]=“China”;则数组array所占的空间为
A)4个字节
B)5个字节
C)6个字节
D)7个字节
正确答案:
C
7.7以下不正确的定义语句是
A)doublex[5]={2.0,4.0,6.0,8.0,10.0};
B)inty[5]={0,1,3,5,7,9};
C)charc1[]={′1′,′2′,′3′,′4′,′5′};
D)charc2[]={′\x10′,′\xa′,′\x8′};
正确答案:
B
7.8若有说明:
inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是
A)2
B)3
C)4
D)无确定值
正确答案:
B
7.9对以下说明语句的正确理解是
inta[10]={6,7,8,9,10};
A)将5个初值依次赋给a[1]至a[5]
B)将5个初值依次赋给a[0]至a[4]
C)将5个初值依次赋给a[6]至a[10]
D)因为数组长度与初值的个数不相同,所以此语句不正确
正确答案:
B
7.10若有说明:
inta[][4]={0,0};则下面不正确的叙述是
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小
D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值
正确答案:
D
7.11有以下程序
main()
{chara[]={′a′,′b′,′c′,′d′,′e′,′f′,′g′,′h′,′\0′};
inti,j;
i=sizeof(a);
j=strlen(a);
printf(“%d,%d\b”,i,j);
}
程序运行后的输出结果是
A)9,9
B)8,9
C)1,8
D)9,8
正确答案:
D
7.12假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是
A)3
B)6
C)10
D)20
正确答案:
D
7.13以下能对二维数组c进行正确的初始化的语句是
A)intc[3][]={{3},{3},{4}};
B)intc[][3]={{3},{3},{4}};
C)intc[3][2]={{3},{3},{4},{5}};
D)intc[][3]={{3},{},{3}};
正确答案:
B
7.14在C语言中,一维数组的定义方法为
类型说明符数组名
A)[常量表达式]
B)[整型常量]
C)[整型变量]
D)[整型常量]或[整型表达式]
正确答案:
A
7.15若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为(假设a[0][0]位于数组的第一个位置上)
A)i*m+j
B)j*m+I
C)i*m+j-1
D)i*m+j+1
正确答案:
A
7.16下面程序输出的结果是
main()
{inti;
inta[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i《3;i++)
printf(“%d”,a[2-i][i]);
}
A)159
B)753
C)357
D)591
正确答案:
B
7.17以下不能对二维数组a进行正确初始化的语句是
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};
正确答案:
C
7.18阅读下面程序,则程序段的功能是
#include“stdio.h”
main()
{intc[]={23,1,56,234,7,0,34},i,j,t;
for(i=1;i《7;i++)
{t=c[i];j=i-1;
while(j》=0&&t》c[j])
{c[j+1]=c[j];j--;}
c[j+1]=t;
}
for(i=0;i《7;i++)
printf(“%d”,c[i]);
putchar(′\n′);
}
A)对数组元素的升序排列
B)对数组元素的降序排列
C)对数组元素的倒序排列
D)对数组元素的随机排列
正确答案:
B
7.19下列选项中错误的说明语句是
A)chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};
B)chara[]={“toyou\0”};
C)chara[]=“toyou\0”;
D)chara[]=′toyou\0′;
正确答案:
D
7.20下述对C语言字符数组的描述中错误的是
A)字符数组的下标从0开始
B)字符数组中的字符串可以进行整体输入/输出
C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D)字符数组可以存放字符串
正确答案:
C
7.21阅读下列程序,则在执行后,程序的运行结果为
#include“stdio.h”
#include“string.h”
main()
{chara[30]=“nicetomeetyou!
”;
strcpy(a+strlen(a)/2,“you”);
printf(“%s\n”,a);
}
A)nicetomeetyouyou
B)niceto
C)meetyouyou
D)nicetoyou
正确答案:
D
7.22现有如下程序段
#include“stdio.h”
main()
{intk[30]={12,324,45,6,768,98,21,34,453,456};
intcount=0,i=0;
while(k[i])
{if(k[i]%2==0‖k[i]%5==0)
count++;
i++;
}
printf(“%d,%d\n”,count,i);
}
则程序段的输出结果为
A)7,8
B)8,8
C)7,10
D)8,10
正确答案:
D
7.23有如下定义语句:
intaa[][3]={12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为
A)3,2
B)3,1
C)2,2
D)2,1
正确答案:
C
7.24现在有如下程序
#include“stdio.h”
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!
=′\0′;i++)
if(s[i]!
=′H′______)
s[j]=′\0′;
puts(s);
}
这个程序段的功能是删除输入的字符串中字符′H′,则空线上应当添入的是
A)s[j++]=s[i];j++;
B)s[j]=s[i++];j++;
C)s[j++]=s[i];
D)s[j]=s[i];
正确答案:
C
7.25以下二维数组c的定义形式是
A)intc[3][]
B)floatc[3,4]
C)doublec[3][4]
D)floatc(3)(4)
正确答案:
C
7.26已知:
intc[3][4];则对数组元素引用正确的是
A)c[1][4]
B)c[1.5][0]
C)c[1+0][0]
D)以上表达都错误
正确答案:
C
7.27若有以下语句,则正确的描述是
chara[]=“toyou”;
charb[]={′t′,′o′,′y′,′o′,′u′};
A)a数组和b数组的长度相同
B)a数组长度小于b数组长度
C)a数组长度大于b数组长度
D)a数组等价于b数组
正确答案:
C
7.28已知:
chara[15],b[15]={“Ilovechina”};则在程序中能将字符串Ilovechina赋给数组a的正确语句是
A)a=“Ilovechina”;
B)strcpy(b,a);
C)a=b;
D)strcpy(a,b);
正确答案:
D
7.29已知:
chara[20]=“abc”,b[20]=“defghi”;则执行下列语句后的输出结果为
printf(“%d”,strlen(strcpy(a,b)));
A)11
B)6
C)5
D)以上答案都不正确
正确答案:
B
7.30阅读如下程序段,则程序在先后输入love和china后,输出结果是
#include
#include
main()
{chara[30],b[30];
intk;
gets(a);
gets(b);
k=strcmp(a,b);
if(k》0)puts(a);
elseif(k《0)puts(b);
}
A)love
B)china
C)lovechina
D)没有输出结果
正确答案:
A
二、填空题(请将每一个空的正确答案写在答题卡相应序号后。
)
7.31下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p《6;p++)
if(s[p]》s[k])【1】
printf(“%d\n”,k);
}
正确答案:
k=p;
7.32以下程序可把输入的十进制数以十六进制数的形式输出,请填空。
main()
{charb[17]={“0123456789ABCDEF”};
intc[64],d,i=0,base=16;
longn;
printf(“Enteranumber:
\n”);scanf(“%ld”,&n);
do
{c[i]=【2】;
i++;
n=n/base;
}while(n!
=0);
printf(“Transmitenewbase:
\n”);
for(--i;i》=0;--i)
{d=c[i];
printf(“%c”,b【3】);
}
printf(“\n”);
}
正确答案:
nºse[d]
7.33以下程序的功能是:
删去一维数组中所有相同的数,使之只剩一个。
数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2223445666677899101010
删除后,数组中的内容应该是:
2345678910。
请填空。
#include
#defineN80
intfun(inta[],intn)
{inti,j=1;
for(i=1;iif(a[j-1]【4】a[i])
a[j++]=a[i];
【5】;
}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf(“Theoriginaldata:
\n”);
for(i=0;iprintf(“=”,a[i]);
n=fun(a,n);
printf(“\nThedataafterdeleted:
\n”);
for(i=0;iprintf(“=”,a[i]);
printf(“\n\n”);
}
正确答案:
!
=returnj
7.34下列程序的输出的结果是【6】,【7】。
main()
{inti,jrow,colum,m;
staticintarray[3][3]={{100,200,300},{28,72,-30}{-850,2,6}};
m=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(array[i][j]<m)
{m=array[i][j];
colum=j;
row=i;
}
printf(“%d,%d,%d\n”,m,row,colum);
}
正确答案:
-850,~2,0
7.35下面程序是求出数组arr的两条对角线上元素之和,请填空。
#include“stdio.h”
main()
{intarr[3][3]={2,3,4,8,3,2,7,9,8},a=0,b=0,i,j;
for(i=0;i《3;i++)
for(j=0;j《3;j++)
if(【8】)
a=a+arr[i][j];
for(i=0;i《3;i++)
for(【9】;j》=0;j--)
if(【10】)
b=b+arr[i][j];
printf(“%d,%d\n”,a,b);
}
正确答案:
i==jj=2i+j==2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 等级 二级 语言 章节 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)