C语言数组和指针练习题Word格式文档下载.docx
- 文档编号:17375709
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:40
- 大小:32.28KB
C语言数组和指针练习题Word格式文档下载.docx
《C语言数组和指针练习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言数组和指针练习题Word格式文档下载.docx(40页珍藏版)》请在冰豆网上搜索。
4、intk;
5、scanf("
%d"
&
x);
6、for(k=1;
k<
3;
k++)
7、x[0]=x[0]+x[i];
8、printf("
x[0]=%d\n"
x[0]);
9、}
A、3B、6C、7D、5
85、若有以下语句,则正确的描述是__b__
charx[]="
12345"
;
chary[]={'
1'
'
2'
3'
4'
5'
A、x数组与y数组的长度相同
B、x数组长度大于y数组长度
C、x数组长度小于y数组长度
D、x数组等价于y数组
86、以下不正确的数组定义语句是__b__
A、doublex[5]={2.0,4.0,6.0,8.0,10.0};
B、inty[5]={0,1,3,5,7,9};
C、charch1[]={'
D、charch2[]={'
\x10'
\xa'
\x8'
87、以下正确的数组定义语句是_c___
A、chara[5]={'
\0'
B、intb[2][]={{1},{2}};
C、floatc[][3]={1,2,3,4,5};
D、chard[5]="
CHINA"
88、判断字符串str1是否大于字符串str2,应当使用__d__
A、if(str1>
str2) B、if(strcmp(str1,str2))
C、if(strcmp(str2,str1)>
0)
D、if(strcmp(str1,str2)>
89、下面程序段的运行结果是_c___
charx[5]={'
printf("
%s"
x);
A、'
'
B、ab C、ab└┘c D、abc
90、有两个字符数组a,b,则以下能正确为a,b进行赋值的语句是_d___
A、gets(a,b);
B、scanf("
%s%s"
a,&
b);
C、getchar(a);
getchar(b);
D、gets(a);
gets(b);
91、有字符数组s1[80]和s2[80],则以下能正确对s1,s2进行输出的语句是___b_
A、puts(s1,s2) B、printf("
%s,%s"
s1,s2);
C、putchar(s1,s2);
D、puts(s1),puts(s2);
92、以下程序段的运行结果是_c___
chara[7]="
abcdef"
charb[4]="
ABC"
strcpy(a,b);
%c"
a[5]);
A、└┘ B、\0 C、e D、f
93、以下描述正确的是_d___
A、两个字符串所包含的字符个数相同时,才能比较字符串
B、字符个数多的字符串比字符个数少的字符串大
C、字符串"
STOP└┘"
与"
STOP"
相等
D、字符串"
That"
小于字符串"
The"
94、以下对字符数组的描述中错误的是_c___
A、字符数组中可以存放字符串
B、字符数组中的字符串可以整体输入、输出
C、可以在赋值语句中通过赋值运算符"
="
对字符数组整体赋值
D、不可以用关系运算符对字符数组中的字符串进行比较
95、若有语句:
chars1[10],s2[10]={"
books"
},则能将字符串books赋给数组s1的正确语句是_b___
A、s1={"
B、strcpy(s1,s2);
C、s1=s2;
D、strcpy(s2,s1);
96、以下printf语句的输出结果是____
printf("
%d\n"
strlen("
school"
);
A、7 B、6 C、存在语法错误 D、不定值
97、下面程序的功能是将字符串s中所有的字符c删除。
请选择填空。
____
#include<
stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;
s[i]!
='
i++)
if(s[i]!
)_a___
s[j]='
puts(s);
}
A、s[j++]=s[i] B、s[++j]=s[i]
C、s[j]=s[i];
D、s[j]=s[i];
98、当运行以下程序时候,从键盘输入:
ab<
回车>
c<
def<
则下面程序的运行结果是_d_
```
#defineN6
{charch1[N];
intk=0;
for(;
N;
ch1[k]=getchar(),k++);
for(k=0;
k++)putchar(ch1[k]);
}
A、abcdef
B、
a
C、
b
D、
ab
c
d
e
f
99、下面程序的运行结果是_b___
#include<
#include<
string.h>
main()
{charx[80]="
AB"
y[80]="
LMNP"
(98题答案:
)
intn=0;
strcat(x,y);
while(x[n++]!
y[n]=x[n];
puts(y);
}
A、LB B、ABLMNP
C、AB D、LBLMNP
二、填空题
50、在C语言中,二维数组元素在内存中的存放顺序是_按行储存_______。
51、若有定义:
doublex[3][5];
,则x数组中行下标的下限为_2___,列下标的上限为__4__。
52、若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为_i*m+j+1_______。
(设a[0][0]是数组的第一个元素)
53、若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};
,则初始化后,a[1][2]得到的初值是__0__,a[2][1]得到的初值是__6__。
54、若有说明:
chars[20];
,如果想从键盘上把字符串:
Thisisabook.输入到数组s中,应当调用的函数是_gets()_____,函数调用语句的形式是__gets(s)_____。
55、请写出下面各printf语句的结果。
①、printf("
%s\n"
strcat("
"
student"
));
__schoolstudent__________
②、printf("
)+strlen("
C"
__6__
③、printf("
strcmp("
__0__
56、根据下面说明和要求,完成对应的填空。
①、若有:
charstr1[10],str2[]={"
能把str2中的字符串赋给str1的串函数调用语句是____strncpy(str1,str2)___________
②、若有:
charstr1[20]={"
agood"
},str2[]=
{"
能把str2中的字符串接到str1中的字符串后面的串函数调用语句是_strncat__
57、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。
请填空。
main()
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf("
arraya:
\n"
for(i=0;
i<
=1;
{for(j=0;
_j<
=2___;
j++)
{printf("
%5d"
a[i][j]);
__b[j][i]=a[i][j]__________;
printf("
arrayb:
_i<
{for(j=0;
j<
printf("
b[i][j]);
58、下面程序可求出矩阵a的两条对角线上的元素之和。
{staticinta[3][3]={1,3,6,7,9,11,14,15,17};
intsum1=0,sum2=0,i,j;
for(i=0;
for(j=0;
if(i==j)
sum1+=a[i][j];
for(_j=3___;
_j>
=0___;
j--)
if(i+j==2)
sum2+=a[i][j];
sum1=%d,sum2=%d\n"
sum1,sum2);
}
59、下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一个二维数组b中,并按矩阵形式输出a和b。
例如:
{staticinta[2][3]={4,5,6,1,2,3};
intb[2][3],i,j;
printf("
If(j<
=1)b[i][j+1]=a[i][j]____________;
}
for(i=0____;
=2____;
b[i][0]=a[i][2];
2;
{for(j=0;
_if(j=3)printf(“\n”)_______;
}
60、下面程序的功能是检查一个二维数组是否对称(即对所有的a[i][j]=a[j][i])。
{staticinta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};
inti,j,found=0;
for(j=0;
4;
for(i=0____;
if(a[i][j]!
=a[j][i])
{found=1______;
break;
if(found)
No"
else
Yes"
61、下面程序段将输出computer,请填空。
charc[]="
It'
sacomputer"
for(i=0;
c[i]!
=’\0’______;
{if(i<
=8)continue______;
c[j]);
}
62、以下程序的功能是对从键盘输入的两个字符串进行比较,并输出两个字符串中第一个不相同字符的ASCII码之差。
输入的两个字符串分别为these和there,则输出是1。
main( )
{chars1[100],s2[100];
intx,y;
\nInputstring1:
gets(s1);
\nInputstring2:
gets(s2);
x=0;
while((s1[x]==s2[x])&
&
(s1[x]!
=‘\n’____))
x++;
y=s1[x]-s2[x]________;
y);
63、以下程序的输出结果是_1110___
{intx[6],a=0,b,c=14;
do
{x[a]=c%2;
a++;
c=c/2;
}while(c>
=1);
for(b=a-1;
b>
=0;
b--)
x[b]);
64、下面程序的功能是在一个字符数组中查找一个指定的字符,若数组中含有该字符则输出该字符在数组中第一次出现的位置(下标值);
否则输出-1。
{charc='
t[50];
intn,k,j;
gets(t);
n=_strlen(t)_____;
for(k=0;
n;
if(_t[k]=_____)
{j=k;
elsej=-1;
j);
65、下面程序的功能是把以下给定的字符按其矩阵格式读入数组str1中,并输出行列号之和是3的数组元素。
{charstr1[4][3]={'
A'
C'
d'
E'
f'
G'
h'
I'
j'
K'
l'
intx,y,z;
for(x=0;
x<
x++)
for(y=0;
_y<
3___;
y++)
{z=x+y;
if(___z==3___)
printf("
%c\n"
str[x][y]);
}
66、下面程序的功能是输出两个字符串中较短串的长度。
{charstr1[20],str2[20];
inti,k,num;
gets(str1);
gets(str2);
i=strlen(str1);
k=strlen(str2);
num=_i>
=k_____?
_k___:
_i___;
num);
67、下面程序的功能是在三个字符串中找出最小的串。
{chars[20],str[3][20];
inti;
for(i=0;
gets(str[i]);
strcpy(s,__strcmp(str1,str0)<
0?
str1:
str0_____________);
if(strcmp(str[2],s)<
strcpy(s,str[2]);
_s___);
68、当运行以下程序时,从键盘输入:
GOOD<
TEACH<
SET<
ROOM<
则程序的运行结果是_SETCHter_____
{inti;
charstr[10],temp[10]="
Computer"
for(i=0;
{gets(str);
if(strcmp(temp,str)<
strcpy(temp,str);
puts(temp);
C语言程序设计练习题——指针
133、设有定义:
inta=1,*p=&
a;
floatb=2.0;
charc='
,以下不合法的运算是__a__
A、p++;
B、a--;
C、b++;
D、c--;
134、以下程序执行后a的值为____
{inta,m=2,k=1,*p=&
k;
a=p==&
m;
a);
A、-1B、0C、1D、2
135、以下对指针变量的操作中,不正确的是_d__
A、intp,*q;
q=&
p;
B、int*p,*q;
q=p=NULL;
C、inta=5,*p;
*p=a;
D、inta=5,*p,*q=&
*p=*q;
136、以下对指针变量的操作中,不正确的是_d__
A、inta,*p,*q;
p=q=&
B、inta=6,*p,*q=&
p=q;
C、inta=b=6,*p;
p=&
b=*p;
D、inta,*p,*q;
p=*q;
137、设有语句:
intk=1,*p1=&
k,*p2=&
,以下不能正确执行的赋值语句是_a___
A、p1=kB、p1=p2
C、*p1=*p2D、k=*p1+*p2
138、若有语句:
inta=4,*p=&
,下面均代表地址的一组选项是_c___
A、a,p,&
*a B、*&
a,*p
C、&
a,p,&
*p D、*&
p,*p,&
139、设已有说明语句:
inti=5,*q;
,若要建立如图所示的存储结构,以下正确的赋值语句是____(无图)
A、q=i;
B、*q=i;
C、q=&
i;
D、*q=&
140、若有说明语句:
charc='
9'
*sp1,*sp2;
,以下均正确的一组赋值语句是_a___
A、sp1=&
c;
sp2=sp1;
B、sp1=&
sp2=&
sp1;
C、sp1=&
sp2=*sp1;
D、sp1=&
*sp2=*sp1;
141、以下判断正确的是_c___
A、char*s="
string"
等价于char*s;
*s="
B、charstr[10]={"
等价于:
charstr[10];
str={"
C、char*s="
s="
D、charstr[10]={"
等价:
*str={"
142、以下能正确进行字符串赋值操作的是__d__
A、chars[5]={"
ABCDE"
B、chars[5]={'
B'
D'
C、char*s;
D、char*s="
143、下面程序段的运行结果是__d__
char*s="
abcde"
s+=1;
s);
A、bcde B、字符'
的地址
C、字符'
的地址D、字符'
的ASCII值
144、以下能正确读入字符串的程序段是___c_
A、char*p;
scanf("
p);
B、charstr[10];
str);
C、charstr[10],*p;
p=str;
D、charstr[10],*p=str;
p[1]);
145、设有说明语句:
char*str=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 数组和指针练习题 语言 数组 指针 练习题