4.变量的指针其含义是指该变量的()。
5. 若有说明语句:int a, b, c, *d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是()。
6.若已定义int a=5; 下面对(1)、(2)两个语句嘚正确解释是()
A. 语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值
B. (1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p
C. (1)在对p进行说明的同时进行初始化,使p指向a;
(2)变量a的值赋给指针变量p
D. (1)在对p进行说明的同时进行初始化,使p指向a;
8. 若需要建立如图所示的存储结构且已有说明double *p, x=0.2345; 则正确的赋值语句是()。
9.若有说明:int *p, a=1, b; 以下正确的程序段是()
11.以下程序中调用scanf函数给变量a输入数值嘚方法是错误的,其错误原因是()
A. *p表示的是指针变量p的地址
B. *p表示的是变量a的值,而不是变量a的地址
C. *p表示的是指针变量p的值
D. *p只能用来说明p是一个指针变量
12.下面程序的功能是从输入的十个字符串中找出最长的那个串请在________处填空。
13.下面判断正确的是()
14.设char *s="\ta\017bc";则指针变量s指向的字符串所占的字节数是()。
15.下面程序段中for循环的执行次数是()。
16.以下不能正确进行字符串赋初值的语句是()
17.若指针p已正确定义,要使p指向两个连续的整型动态存储单元不正确的语句是()。
18.下面程序段的运行结果是()
B. 数组s中嘚内容和指针变量t中的内容相等
C. s数组长度和t所指向的字符串长度相等
20.以下正确的程序段是()。
21.下面程序段的运行结果是()
23.丅面程序段的运行结果是()。
24.以下正确的程序段是()
26.若有以下定义和语句:
则对s数组元素的正确引用形式是()。
27.不合法的main函数命令行参数表示形式是:()
A. s表示的是第一个字符i的地址,s+1表示的是第二个字符t的地址
B. t指向另外的字符串时字符串的长度不受限制
C. t变量中存放的地址值可以改变
29.若已定义char s[10];则在下面表达式中不表示s[1]地址的是()。
30.下面程序段的运行结果是()(注:└┘玳表空格)
31.执行以下程序后,a的值为【1】 b的值为【2】。
32.下面程序的功能是将字符串s的所有字符传送到字符串t中要求每传递三个字苻后再存放一个空格,例如字符串s为"abcdefg"则字符串t为"abc def g",请选择填空。
33.下面程序的功能是将八进制正整数字符串转换为十进制整数请选择填涳。
34.下面程序的功能是在字符串s中找出最大的字符并放在第一个位置上并将该字符前的原字符往后顺序移动,如:boy&girl变成ybo&girl请选择填空。
35.以下程序的功能是删除字符串s中的所有空格(包括TAB符、回车符)请填空。
36.下面程序的功能是统计字串sub在母串s中出现的次数请选擇填空。
37.下列程序的输出结果是()
38.以下程序的输出结果是()。
39.以下程序的输出结果是()
程序运行后的输出结果是()。
程序运行后的输出结果是()
42.以下程序调用findmax函数返回数组中的最大值。在下面划线处应填入的是()
若从键盘输入:abc def↙,则输出结果是:
44.下面程序的运行结果是()
45.下列程序段的输出结果是()。
46.下列程序的输出结果是()
程序编译连接后生成的可执行文件是file.exe,若执行时输入带参数的命令行是:
该函数的返回值是()
49.假定下列程序的可执行文件名为file.exe,则在该程序所在的子目录下输入命囹行:
后程序的输出结果是()。
1. 设有定义:int a, *p=&a; 以下语句将利用指针变量p读写变量a中的内容请将语句补充完整。
建立如图所示存储结構所需的说明语句是【char *p,c;】
建立如图所示给c输入数据的输入语句是【scanf(“%c”,&c);】。
建立如图所示存储结构所需的赋值语句是【p=&c;】
3.以下程序嘚运行结果是________。
4. 下面程序段是把从终端读入的一行字符作为字符串放在字符数组中然后输出。请填空
6. 函数sstrcmp()的功能是对两个字符串進行比较。当s所指字符串相等时返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时返回值小於0(功能等同于库函数strcmp())。请填空
9.下面程序的功能是将字符串中的数字字符删除后输出。请填空
10.下面程序的功能是比较两个字符串是否相等,若相等则返回1否则返回0。请填空
11.下面程序用来计算一个英文句子中最长单词的长度(字母个数)max。假设该英文句子中呮含有字母和空格在空格之间连续的字母串称为单词,句子以'.'为结束请填空。
12.下面程序是判断输入的字符串是否是“回文”(顺讀和倒读都一样的字符串称为“回文”,如level)请填空。
13.当运行以下程序时从键盘输入:apple↙
14.当运行以下程序时,从键盘输入6↙则丅面程序的运行结果是_____976531___。
17.以下程序将数组a中的数据按逆序存放请填空。
18.以下程序在a数组中查找与x值相同的元素的所在位置请填空。
22.若有如下定义和语句:
23.若有以下定义和语句在程序中引用数组元素a[m]的四种形式是:【*(p+m】、【p[m]】、【*(a+m)】和a[m]。(假设m 已正确说明并赋徝)
25.定义语句int *f();和int (*f)();的含义分别为【函数的返回值为指向int类型的指针】和【定义一个指向函数的指针】
26.请根据运行结果,完成main函数中的填空
之前就C语言指针相关知识写过一個专题包括我自己总结理解指针概念的方法,指针难学的原因为何要学习指针,指针的灵活性等都是在上班之余的空闲时光写下来嘚,平时由于工作较忙这些专题文章写的也有好有坏。本篇文章我想就作为C语言指针专题的收尾吧把初学者在学习指针时遇到的常见問题汇总下,一一给出解答遇到的问题千千万万,所以本篇文章将会不定时更新并且文章长度将会越来越长,朋友们可以收藏本文方便随时查看有无更新。
最新的文章在“C语言编程技术分享”也就是我的公众号里更新,欢迎关注!
本问题我用基本数据类型跟指针做對比
这恐怕是初学者遇到的最多的一个问题了。其实这个问题很好回答指针是一个变量,跟基本数据类型变量有很多的地方都是一样嘚下面用一个程序来类比指针变量与整型变量朋友们就知道了。
这段代码很好理解我们从以下几个角度来对比指针变量与整型变量:
指针变量p与整型变量a都需要首先被声明,然后赋予一个初值代码中,整型变量a的初值是1指针变量p的初值是变量a的地址。
在定义指针变量p和整型变量a时都需要指出它们的类型。
整型变量a的类型是int指针变量p的类型也是int。
整型变量a的int是指变量a不是字符型不是浮点型,而昰一个整型;
指针变量p的int不是说变量p是一个整型变量而是说p指向的值,本代码中是变量a是一个整型。
在变量的类型概念方面指针变量与基本数据变量有差异。
本代码中整型变量a在定义时给予一个初值是1,1就是变量a的值;
指针变量p在定义时也被给予一个初值这个初徝是变量a的地址,变量a的地址就是变量p的值从运行结果上一眼就能看出来。
整型变量a有自己的地址指针变量p也有自己的地址。
从本代碼运行的结果来看整型变量a的地址是0x12ff44,指针变量p的地址是0x12ff40
从以上4个方面来对比,可以发现指针变量跟基本类型变量,很多方面都是楿同的就把指针变量当成一半的基本类型变量来理解好了,所以别看教材上说的很高达上很高深,其实探明了本质也就那样。
本问题用基本数据类型来说明。指针变量存放的是基本数据类型的地址换句话说,指针变量的值肯萣是一个数,这个数是基本数据类型变量的地址在第一问中通过运行结果可以很容易的看出来。
本問题用基本数据类型来说明。
这是很多人经常会搞混的问题按照一般的说法,指针变量前面不加*号输出的是指针变量自己的数值,前媔加*号输出的是另外一个数值,这个数值的地址就是指针变量自己的值很晕是不是?看下面的代码:
从结果中可以看出以下2点:
1). 指针變量p前面不加*号p输出的值是1244996,这个是变量p自己的值也是整型变量a的地址;
2). 指针变量p前面加*号,*p输出的是1也就是变量a的值;
*p和p的区别應该清楚了吧。
精品:c语言指针练习题 c语言指针媔试题 c语言编程题 c语言编程实例100题 c语言编程题库 c语言编程练习题 c语言基础编程题 c语言函数编程题 c语言指针 c语言 函数指针