计算机等级二级C语言章节习题及答案9Word格式文档下载.docx
- 文档编号:18741303
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:10
- 大小:20.42KB
计算机等级二级C语言章节习题及答案9Word格式文档下载.docx
《计算机等级二级C语言章节习题及答案9Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机等级二级C语言章节习题及答案9Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
A)6
B)7
C)8
D)9
A
10.4
已定义以下函数
fun(char
*p2,
*p1)
while((*p2=*p1)!
=’\0’){p1++;
p2++;
}
函数的功能是
A)将p1所指字符串复制到p2所指内存空间
B)将p1所指字符串的地址赋给指针p2
C)对p1和p2两个指针所指字符串进行比较
D)检查p1和p2两个指针所指字符串中是否有’\0’
10.5
有以下程序
ss(char
*s,char
t)
while(*s)
if(*s=
=t)*s=t-’a’+’A’;
s++;
str1[100]="
abcddfefdbd"
c=’d’;
ss(str1,c);
%s\n"
str1);
程序运行后的输出结果是
A)ABCDDEFEDBD
B)abcDDfefDbD
C)abcAAfefAbA
D)Abcddfefdbd
B
10.6
下面说明不正确的是
A)char
a[10]="
B)char
a[10],*p=a;
p="
C)char
*a;
a="
D)char
a[10],*p;
p=a="
10.7
设有定义:
n=0,*p=&
n,**q=&
p,则下列选项中正确的赋值语句是
A)p=1;
B)*q=2;
C)q=p;
D)*p=5;
10.8
执行以下程序后,a,b的值分别为
a,b,k=4,m=6,*p1=&
k,*p2=&
m;
a=p1==&
b=(*p1)/(*p2)+7;
a=%d\n"
a);
b=%d\n"
b);
A)-1,5
B)1,6
C)0,7
D)4,10
C
10.9
假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:
PROG
ABCDEFGH
IJKL<
回车>
,则输出结果为
main(
argc,
*argv[])
while(--argc>
0)
%s"
argv[argc]);
\n"
);
A)ABCDEFG
B)IJHL
C)ABCDEFGHIJKL
D)IJKLABCDEFGH
10.10
以下程序有错,错误原因是
*p,i;
*q,ch;
p=&
i;
q=&
ch;
*p=40;
*p=*q;
......
A)p和q的类型不一致,不能执行*p=*q;
语句
B)*p中存放的是地址值,因此不能执行*p=40;
C)q没有指向具体的存储单元,所以*q没有实际意义
D)q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;
没有意义,可能会影响后面语句的执行结果
10.11
下面程序段的运行结果是
a[]="
lanuage"
*p;
p=a;
while(*p!
=′u′){printf("
%c"
*p-32);
p++;
A)LANGUAGE
B)language
C)LAN
D)langUAGE
10.12
有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)
a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A)a[p-a]
B)*(&
a[i])
C)p[i]
D)*(*(a+i))
10.13
函数fun的返回值是
*a,char
*b)
num=0,n=0;
while(*(a+num)!
=′\0′)
num++;
while(b[n])
*(a+num)=b[n];
n++;
return
num;
A)字符串a的长度
B)字符串b的长度
C)字符串a和b的长度之差
D)字符串a
和b的长度之和
10.14
下列程序的输出结果是
a[5]={2,4,6,8,10},*p,**k;
k=&
p;
%d"
*(p++));
**k);
A)4
B)22
C)24
D)46
10.15
下面判断正确的是
*a="
等价于
str[5]={"
};
等价于char
str[]={"
*s="
*s;
s="
c[4]="
abc"
d[4]="
c[4]=d[4]="
10.16
以下定义中,标识符prt
int(*prt)[3]
A)定义不含法
B)是一个指针数组名,每个元素都是一个指向整数变量的指针
C)是一个指针,它指向一个具有三个元素的一维数组
D)是一个指向整型变量的指针
10.17
有如下说明
a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是
A)*p+9
B)*(p+8)
C)*p+=9
D)p+8
10.18
若有定义:
*st=
"
how
are
you
下列程序段中正确的是
a[11],
strcpy(p=a+1,&
st[4]);
a[11];
strcpy(++a,
st);
strcpy(a,
a[],
strcpy(p=&
a[1],st+2);
10.19
下列程序的运行结果是
fun(int
*a,
*k;
k=a;
a=b;
b=k;
a=3,
b=6,
*x=&
a,
*y=&
b;
fun(x,y);
%d
b);
3
B)3
6
C)编译出错
D)0
0
10.20
若有说明语句
It
is
mine"
*p="
则以下不正确的叙述是
A)a+1表示的是字符t的地址
B)p指向另外的字符串时,字符串的长度不受限制
C)p变量中存放的地址值可以改变
D)a中只能存放10个字符
10.21
以下程序的运行结果是
sub(int
x,int
y,int
*z)
*z=y-x;
a,b,c;
sub(10,5,&
a);
sub(7,a,&
sub(a,b,&
c);
M,M,M\n"
a,b,c);
A)5,2,3
B)-5,-12,-7
C)-5,-12,-17
D)5,-2,-7
10.22
若有下面的程序片段:
int[12]={0},*p[3],**pp,i;
for(i=0;
i<
3;
i)
p[i]=&
a[i*4];
pp=p;
则对数组元素的错误引用是
A)pp[0][1]
B)a[10]
C)p[3][1]
D)*(*(p+2)+2)
10.23
下面程序的输出结果是
#include
*p1="
*p2="
ABC"
str[50]=
xyz"
strcpy(str+2,strcat(p1,p2));
str);
A)xyzabcABC
B)zabcABC
C)xyabcABC
D)yzabcABC
10.24
有如下程序
ch[2][5]={"
6937"
"
8254"
},*p[2];
i,j,s=0;
2;
i++)
p[i]=ch[i];
for(j=0;
p[i][j]>
′\0′;
j+=2)
s=10*s+p[i][j]-′0′;
s);
该程序的输出结果是
A)69825
B)63825
C)6385
D)693825
10.25
阅读下面程序,则执行后的结果为
#include
stdio.h"
string.h"
#define
N
10
M
*find(char
(*a)[M],int
n)
*q;
q=a[0];
i
if(strcmp(a[i],q)<
q=a[i];
q;
s[N][M]={"
tomeetme"
you"
and"
he"
n=5,i;
p=find(s,n);
puts(p);
A)he
B)and
C)you
D)tomeetme
二、填空题(请将每一个空的正确答案写在答题卡相应序号后。
10.26
函数
fun(float
*sn,
n)的功能是:
根据以下公式计算S,计算结果通过形参指针sn传回;
n通过形参传入,n的值大于等于0。
请填空。
fun(
float
s=0.0,
w,
f=-1.0;
i=0;
=n;
f=【1】*
f;
w=f/(2*i+1);
s+=w;
【2】=s;
-1
*sn
10.27
该程序运行的结果是【3】。
100
m,
*n)
i,j=0;
for(i=1;
=m;
if(i%7==0||i_==0)
a[j++]=i;
*n=j;
aa[M],n,k;
clrscr();
fun(10,aa,&
n);
for(k=0;
k
if((k+1)==0)
else
M"
aa[k]);
7
10.28
下列程序的功能是:
求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,输入字符1,则输出3,请填空。
81
*ss,
c)
for(;
【4】;
ss++)
if(*ss==c)
i++;
a[M],
\nPlease
enter
string:
gets(a);
char:
ch=getchar();
\nThe
number
of
the
is:
fun(a,ch));
*ss!
=
’\0’
10.29
若给fun函数的形参s传送字符串:
“]]6354abcc”
(其中]表示空格字符),则函数的返回值是【5】。
long
s[])
n;
sign;
isspace(*s);
s++);
sign=(*s==′-′)?
-1:
1;
if(*s==′+′||*s==′-′)
for(n=0;
isdigit(*s);
s++)
n=10*n+(*s-′0′);
sign*n;
6354
10.30
下面程序是指从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。
main
()
s[21],*p;
for
(i=0;
20;
s[i]=getchar
();
s[i]=【6】;
p
=【7】
while
(*p)
putchar
(【8】);
’\0’
s
*p++
10.31
以下函数的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。
请按题意,完成填空。
试题程序:
fun
(int
x,
pp[],
【9】
if(x%i==0)
pp[j++]=i;
【10】;
x,aa[1000],
n,
i
an
integer
:
\n
scanf
("
&
x);
(x,
aa,
(i=0
N&
NBSP;
I++)
printf
aa
[i]);
P>
10.32
mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。
mystrlen(char
*str)
【11】!
i++);
return(i);
*(str+i)
或
str[i]
10.33
下面函数的功能是:
找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。
数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
a[],int
*max,
*d)
*max=a[0];
*d=0;
【12】;
if(*max<
【13】)
*max=a[i];
*d=i;
i,
x[20],
max,
index,
n=10;
randomize();
x[i]=rand()P;
x[i]);
fun(x,n,&
max,&
index);
Max=],Index=M\n"
max,index);
A[I]<
10.34
阅读以下程序,使程序输出结果为30,4.000
000,请填空。
a=30,b=40,c;
double
【14】
s;
s=fun(&
b,&
%d,%lf\n"
c,s);
*b,
【15】
*c=*a%*b;
return(4.0);
*,int
*)
*c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 等级 二级 语言 章节 习题 答案