0
点赞
收藏
分享

微信扫一扫

练习17

练习17_字符串





练习17


考试规则:点击你认为正确的选项


1.以下fun函数的功能是将形参s所指字符串内容颠倒过来



void fun( char*s )
{
int i,jk;
for( i=0, j=strlen(s) ______; i<j; i++,j-- )
{
k=s[i]; s[i]=s[j]; s[]=k;
}
}

在横线处应填入的内容是( )。

A.+1

回答错误 ✕

B.-1

回答正确 √

试题解析

strlen(s)函数的功能是计算s指向字符串的实际长度( 不包含结束标志),由于数组的起始下标为0,所以字符串最后一个字符的下标为strlen(s)-1,所以填入的内容为-1,答案选B。


C.+0

回答错误 ✕


D.,k=0

回答错误 


点击答题丨点击选项查看对错丨展开动画



2.若有语句: int a[3][4], (*p)[4]; p=a;,则以下选项中叙述错误的是( )。

A.系统将开辟一个名为p的二维数组,p[0][0]中的值即为a[0][0]中的值

回答正确 √


试题解析

(*p)[4]定义了一个数组指针。p可以指向类似于ary0[4]的数组,题设中,p不是一个二维数组,只是可以指向这类二维数组,因此选项A错误。p+1代表了第一行第一个元素的地址,p=a指向数组a的首地址,则B、C选项正确,同理可知选项D也正确。故答案为A选项。


B.p+1代表a[1][0]的地址

回答错误 ✕

C.p中将存放 a数组的首地址

回答错误 ✕


D.p+2代表 a数组最后- -行的首地址

回答错误 


点击答题丨点击选项查看对错丨展开动画



3.有以下程序:



#include
#define PT 3.5;
#define S(x) PT*x*x;
main()
{
inta=1, b=2;
printf(%4.1f\n",S(a+ b));
}

程序运行后的输出结果是( )。

A.7.5

回答错误 ✕

B.31.5

回答错误 ✕

C.程序有错无输出结果

回答正确 √

试题解析

宏定义不是C语句,末尾不需要有分号。所以语句printf("%4.1f\n",S(a + b));展开后为print("%4.1f\n",3.5; *a+b*a+b; );所以程序会出现语法错误。选项C正确


D.14.0

回答错误 ✕

点击答题丨点击选项查看对错丨展开动画


4.以下结构体类型说明和变量定义中正确的是()。

A.struct REC;    {int n; char c;};    REC t1,t2;


回答错误 ✕

B.typedef struct    {int n; char C;}     REC;    REC t1,t2;


回答正确 √

试题解析

选项A定义变量时需要加上struct,选项C结构体定义不正确,选项D中REC已经为结构体变量,不能用它去定义其他变量,所以答案选B。


C.typedef struct REC;    {int n=0;     char c='A;}t1,t2;


回答错误 ✕


D.struct    {int n; char c;}     REC;    REC t1,t2;


回答错误 


点击答题丨点击选项查看对错丨展开动画



举报

相关推荐

0 条评论