二级C语言练习题docxWord下载.docx
《二级C语言练习题docxWord下载.docx》由会员分享,可在线阅读,更多相关《二级C语言练习题docxWord下载.docx(48页珍藏版)》请在冰豆网上搜索。
C基类型不同的指针变量可以和互混用
D函数的类型不能是指针类型
310如果定义
floata[10],x;
则以下叙述中正确的是
A三个表达式a[1].*(a+1)和*&
a[1]表示的意思完全不同
B表达式*&
a[1]M非法的,应该写成*(&
a[1])
C表达式a+1是非法的
D表达式a=&
x是非法的
311int*func(inta[10],intn);
A说明中的a[10]改为a[]或怙效果完全一样
Bfunc函数屮不能对a进行移动指针(如a++)的操作
C只有指向10个整数内存单元的指针,才能作为实参传递给形参
D形参a对应的实参只能是数组名
312以下叙述中正确的是
A语句inta[][3]={1,2,4,5};
是错误的初始化形式
B在逻辑上对以把二维数组看成是一个具有行和列的矩阵或表格
C语句inta[4][3]二{{1,2},{4,5}};
D语句inta[4][3]={1,2,4,5};
313有以下程序
#inelude<
stdio.h>
viodfun(intx,inty,int*c,int*d)
{
*c=x+y;
*d=x-y;
}
main()
inta=4,b=3,c=0,d=0;
fun(a5b,&
c,&
d);
printf(“%d%d\n”,c,d);
程序的输出结果是
A71BOO
314有以下程序
voidfun(int*p,int*q)
t=*p;
*p=*q;
*q=t;
*q=*p;
{inta=0,b=3;
fun(&
a,&
b);
printf(“%d%d”,a,b);
COO
D19
A90B09
315有以下程序
{intaO={2,4,6,8,10},x,*p,y=1;
P=&
a[1];
for(x=0;
x<
3;
x++)y+=*(p+x);
printf(“%d\n”,y);
A13B15C11
316有以下程序
{inti,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;
iv3;
i++)
print(H%d”,x[i][2・i]);
printf(“\n”);
A369B147
317有以下程序
inta[]={2,4,6,8},*p=a,i;
i<
4;
a[i]=*p++;
printf(“%d\n”,a[2]);
A8B2
318有以下程序
#include<
charfun(char*c)
{if(*c<
=,Z,&
&
*cx'
A'
)
return*c;
Ax[0]和x⑴是数组名,分别代表一个地址常量
B元素刈0]可以看作是由三个整型元素组成的一维数组
C数组x可以看作是由x[0]和刈1]两个元素组成的一维数组
D对以用x[0]=0;
的形式为数组所有兀素赋初值0
322设p是指针变量,语句p=NULL;
等价于
Ap=0Bp=,0,Cp=,n,
323有以下程序
intaO={10,20,30J40},*p=aJi;
for(i=0;
=3;
i++){a[i]=*p;
p++;
}printf(“%d\n”,a[2]);
A20B10C40
324有以下程序
#defineN3viodfun(inta[][N],intb[])
{inti,j;
for(i=0;
ivN;
b[i]=a[i][0];
for(j=1;
j<
N;
j++)
if(b[i]va[i][j])b[i]=a[i][j];
intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;
fun(x,y);
i++)printf(u%d/\y[i]);
printf(u\nw);
Dp=M
D30
D2,4,8
A3,6,9B1,3,5C3,5,7325设冇定义:
chars[81];
inti=1;
以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是
Ado{scanf(H%c,,,&
s[i]);
Jwhile(s[i++]!
=,\n,);
s[i]=,\0,;
Bgets(s);
Cwhile((s[i++]=getchar())!
=\n'
):
s[i]='
\0'
;
Dscanf(“%s”,s);
326设有定义:
charp[]={T,2,3}「q=p;
以下不能计算出一个char型数据所占字节数的表达式是
Asizeof(p[0])Bsizeof(*p)Csizeof(char)
327有以下程序
Dsizeof(p)
#inelude<
string.h>
{charstr[][20]=fOne*world,7,One*Dream!
,},*p=str[1];
printf(u%d/\strlen(p));
printf(u%s\nn5p);
A9,One*Dream!
328有以下程序
main()
{chars[]=5,012xy\08s34f4w2M;
inti,n=0;
s[i]!
=0;
i++)if(s[i]>
=,0,&
s[i]<
=,9,)n++;
printf(“%d\n“,n);
A8
329有以下程序
include<
fun(intxjnty)
{staticintm=0J=2;
i+=m+1;
m=i+x+y;
returnm;
{intj=1,m=1,k;
k=fu
A11,5
B9,One*world
C10,One*world
D10,One*Dream!
printf(u%d,;
k);
printf(“%d\n”,k);
B5:
11
330在C语言中,只有在使用吋才占用内存单元的变量,
Aauto和staticBstatic和register以下语句屮错误的是
char*ss[6];
ss[1]=^^right?
^^;
B
charss[6][20];
ss[1]=”right?
”;
D
331
A
C
332
333
11,11
其存储类型是
c
extern和register
char
以下不能将s所指字符串正确复制到t所指存储空间的是
do{*t++=*s++;
}while(*s);
Bfor(i=0,
while(*t=*s){t++;
s++;
}Dfor(i=0:
有以下程序
voidswap(char*x,char*y)
{chart;
t=*x;
*x=*y;
*y=t;
{char*s1=,,abcn,*s2=,,123H;
swap(s1,s2);
printf(“%s,%s\n”,s1,s2);
程序执行后的输出结果是
A321,cbaBabc,123
334、有以下函数
intfun(char*x,char*y)
C123,abc
D5,5
Dauto和register
*ss[]={uright?
M};
ss[][20]={uright?
n};
j=0;
t[i++]=s[j++];
);
t[i]=s[j];
i++);
D1bc,a23
{intn=0;
while((*x==*y)&
*x!
='
){x++;
y++;
n++;
returnn;
函数的功能是
A统计x和y所指字符串中相同的字符个数B将y所指字符串赋给想、所指存储空间
C统计x和y所指字符串小最前面连续相同的字符个数D查找x和y所指字符串屮是否有、0'
335、有以下程序
#include<
intfun()
{staticintx=1
x*=2;
returnx;
{inti,s=1;
for(i=1;
i<
i++)s*=fun();
printf(“%d\n:
s);
程序运行后的输出结果是
A10B64C0D30
336、在一个C源程序文件中所定义的全局变最,其作用域为
A由具体定义位置和extern说明來决定范围
B所在文件的全部范围
C所在函数的全部范围
D所在程序的全部范围
337>
有以下程序段
intj;
floaty;
charname[50];
scant(u%2d%f%sM,&
j,&
y,name);
当执行上述程序段,从键盘上输入55566777abc后,y的值为
A55566.0B566.0C566777.0D7777.0
338、下列语句组中正确的是
chars[7];
s={^^01ympic^^};
char*s;
s="
01ympicn;
B比较两个字符串的人小
Achars[7];
s=