77范文网 - 专业文章范例文档资料分享平台

C语言指针练习+答案+讲解(2)

来源:网络收集 时间:2018-11-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

D. char str[5]={'g', 'o','o', 'd'};

1 A.char str[5]={\这个不符合C语言的语法规定,字符串初始化是这样写的:

char str[6]=\//因最后还有一个结束符,因此数组元素应该是6个。

2 题目表述有些不准确 C,D叫初始化,B叫赋值。

3 题目中的单双引号全部是中文的,这也不符合C语言语法。应该改为英文的。

17.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是(A)。

A. p=2*(int *)malloc(sizeof(int)); B. p=(int *)malloc(2*sizeof(int)); C. p=(int *)malloc(2*2);

D. p=(int*)calloc(2, sizeof(int));

malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。 18.下面程序段的运行结果是(C)。 char *s=\ s+=2;

printf(\

A. cde B. 字符'c' C. 字符'c'的地址 D. 无确定的输出结果

19.设有如下的程序段:char s[]=\*t; t=s;则下列叙述正确的是(D)。

A. s和t完全相同

B. 数组s中的内容和指针变量t中的内容相等 C. s数组长度和t所指向的字符串长度相等 D. *t与s[0]相等 20.以下正确的程序段是(B)。

A. char s[20]; B. char *s;

scanf(\C. char s[20]; D. char s[20], *t=s; scanf(\&s[2]); scanf(\t[2]); 21.下面程序段的运行结果是(C)。

#include \main() {

int m=10, n=20;

char *format=\ m*=n;

printf(format, \}

A. format, \. format, \C. m*=n, m=200, n=20 D. 以上结果都不对 22.以下与库函数strcpy(char *p, char *q)功能不相等的程序段是(D)。

A. strcpy1(char *p, char *q)

{ while ((*p++=*q++)!='\\0'); }

B. strcpy2( char *p, char *q)

{ while((*p=*q)!='\\0') {p++; q++;}

}

C. strcpy3(char *p, char *q)

{ while (*p++=*q++); }

D. strcpy4( char *p, char *q) { while(*p) *p++=*q++;

}

23.下面程序段的运行结果是(C)。

#include \ main()

{

char s[]=\

t=s;

while( *t!='p')

{ printf(\t++;} }

A. EXAMPLE! B. example! C. EXAM D. example!

24.以下正确的程序段是(C)。

A. char s[]=\B. char s[20], *t=\C. char s[20]=\D. char *s=\

25.以下与库函数strcmp(char *s, chat *t)的功能不相等的程序段是(D)。

A. strcmp1( char *s, chat *t)

{ for ( ;*s++==*t++ ;) if (*s=='\\0') return 0; return (*s-*t);

}

B. strcmp2( char *s, char *t) { for ( ;*s++==*t++ ;)

if (!*s) return 0;

return (*s-*t); C. strcmp3( char *s, char *t) { for ( ;*t==*s ;)

{ if (!*t) return 0; t++; s++;}

return (*s-*t);

}

D. strcmp4( char *s, char *t)

{ for( ;*s==*t;s++,t++)

if (!*s) return 0; return (*t-*s); }

26.若有以下定义和语句:

int s[4][5], (*ps)[5]; ps=s;

则对s数组元素的正确引用形式是(C)。

A. ps+1 B. *(ps+3) C. ps[0][2] D. *(ps+1)+3 27.不合法的main函数命令行参数表示形式是:(B)。

A. main( int a, char *c[]) B. main(int argc, char *argv)

C. main( int arc, char **arv) D. main( int argv, char*argc[])

28.若有说明语句:char s[]=\is a example.\*t=\is a example.\

则以下不正确的叙述(B)。

A. s表示的是第一个字符i的地址,s+1表示的是第二个字符t的地址 B. t指向另外的字符串时,字符串的长度不受限制 C. t变量中存放的地址值可以改变 D. s中只能存放16个字符

29.若已定义char s[10];则在下面表达式中不表示s[1]地址的是(B)。

A. s+1 B. s++ C. &s[0]+1 D. &s[1] 30.下面程序段的运行结果是(A)。(注:└┘代表空格)

#include \ main()

{ char s[6];

s=\

printf(\}

A. \. \└┘\. \\\. 编译出错 31.执行以下程序后,a的值为【1】, b的值为【2】。

#include main() {

int a, b, k=4, m=6, *p=&k, *q=&m; a=p==&m;

b=(-*p)/(*q)+7; printf(\printf(\}

【1】 A. -1 B. 1 C. 0 D. 4 【2】 A. 5 B. 6 C. 7 D. 10 32.下面程序的功能是将字符串s的所有字符传送到字符串t中,要求每传递三

个字符后再存放一个空格,例如字符串s为\,则字符串t为\def g\请选择填空。C A #include \ #include \ main()

{

int j, k=0;

char s[60], t[100], *p; p=s;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言指针练习+答案+讲解(2)在线全文阅读。

C语言指针练习+答案+讲解(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/294535.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: