




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章指 针 1 第七章第七章指针指针 7 1 选择题 1 若有说明 int a 2 p 则以下非法的赋值语句是 A p q B p q C a q D q a 2 若定义 int a 511 b 的输出结果为 A 无确定值B a 的地址C 512D 511 3 已有定义int a 2 p1 下面不能正确执行的赋值语句是 A a p1 p2 B p1 a C p1 p2 D a p1 p2 4 变量的指针 其含义是指该变量的 A 值B 地址C 名D 一个标志 5 若有说明语句 int a b c d B scanf d d d a b d C scanf d d d D scanf d d d a b d 6 若已定义inta 5 下面对 1 2 两个语句的正确解释是 1 int p 2 p a A 语句 1 和 2 中的 p 含义相同 都表示给指针变量p 赋值 B 1 和 2 语句的执行结果 都是把变量a 的地址值赋给指针变量p C 1 在对 p 进行说明的同时进行初始化 使p 指向 a 2 变量 a 的值赋给指针变量p D 1 在对 p 进行说明的同时进行初始化 使p 指向 a 2 将变量 a 的值赋予 p 7 若有语句int p a 10 p 下面均代表地址的一组选项是 A a p 则正确的赋值语句 是 A p x B p C p x D p 9 若有说明 int p a 1 b 以下正确的程序段是 A p B scanf d scanf d p b C p D p scanf d p p a 10 有如下语句 int m 6 n 9 p q p q 如图 1 所示 若要实现下图所示的存储 结构 可选用的赋值语句是 0 2345 px 第七章指 针 2 A p q B p q C p q D p q 11 以下程序中调用scanf 函数给变量 a 输入数值的方法是错误的 其错误原因是 include main int p q a b p printf input a scanf d p A p 表示的是指针变量p 的地址 B p 表示的是变量 a 的值 而不是变量a 的地址 C p 表示的是指针变量p 的值 D p 只能用来说明 p 是一个指针变量 12 下面程序的功能是从输入的十个字符串中找出最长的那个串 请在 处填空 include stdio h include string h define N 10 main char s N 81 t intj for j 0 j N j gets s j t s for j 1 j N j if strlen t strlen s j printf the max length of ten strings is d s n strlen t t A t s j B t 等价于char s s girl B char s 10 girl 等价于char s 10 s 10 girl C char s girl 等价于char s s girl D char s 4 boy t 4 boy 等价于char s 4 t 4 boy 14 设 char s ta 017bc 则指针变量 s 指向的字符串所占的字节数是 A 9B 5C 6D 7 m p n qp m q n 第七章指 针 3 15 下面程序段中 for 循环的执行次数是 char s ta 018bc for s 0 s printf A 9B 5C 6D 7 16 以下不能正确进行字符串赋初值的语句是 A char str 5 good B char str good C char str good D char str 5 g o o d 17 若指针 p 已正确定义 要使 p 指向两个连续的整型动态存储单元 不正确的语句是 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 18 下面程序段的运行结果是 char s abcde s 2 printf d s A cdeB 字符 c C 字符 c 的地址D 无确定的输出结果 19 设有如下的程序段 char s girl t t s 则下列叙述正确的是 A s 和 t 完全相同 B 数组 s 中的内容和指针变量t 中的内容相等 C s 数组长度和t 所指向的字符串长度相等 D t 与 s 0 相等 20 以下正确的程序段是 A char s 20 B char s scanf s scanf s s C char s 20 D char s 20 t s scanf s scanf s t 2 21 下面程序段的运行结果是 include stdio h main int m 10 n 20 char format s m d n d n m n printf format m n m n A format m n m nB format m n C m n m 200 n 20D 以上结果都不对 22 以下与库函数 strcpy char p char q 功能不相等的程序段是 A strcpy1 char p char q while p q 0 第七章指 针 4 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 下面程序段的运行结果是 include stdio h main char s example t t s while t p printf c t 32 t A EXAMPLE B example C EXAMD example 24 以下正确的程序段是 A char s 12345 t 6543d21 strcpy s t B char s 20 t 12345 strcat s t C char s 20 t 12345 strcat s t D char s 12345 t 54321 strcat s t 25 以下与库函数 strcmp char s chat t 的功能相等的程序段是 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 第七章指 针 5 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 数组元素的正确引用形式是 A ps 1B ps 3 C ps 0 2 D ps 1 3 27 不合法的 main 函数命令行参数表示形式是 A main int a char c B main int argc char argv C main intarc char arv D main int argv char argc 28 若有说明语句 chars itisa example t itisa example 则以下不正确的叙述 A s 表示的是第一个字符i 的地址 s 1 表示的是第二个字符 t 的地址 B t 指向另外的字符串时 字符串的长度不受限制 C t 变量中存放的地址值可以改变 D s 中只能存放16 个字符 29 若已定义 char s 10 则在下面表达式中不表示s 1 地址的是 A s 1B s C s abcd printf s n s A abcd B abcd C abcd D 编译出错 31 执行以下程序后 a 的值为 1 b 的值为 2 include main int a b k 4 m 6 p a p b p q 7 printf a d n a printf b d n b 1 A 1B 1C 0D 4 2 A 5B 6C 7D 10 32 下面程序的功能是将字符串 s 的所有字符传送到字符串t 中 要求每传递三个字符后再 存放一个空格 例如字符串 s 为 abcdefg 则字符串 t 为 abc defg 请选择填空 include stdio h 第七章指 针 6 include string h main int j k 0 char s 60 t 100 p p s gets p while p for j 1 j 3 1 t k p if 2 t k k t k 0 puts t 1 A p B p k C p k j D k j 2 A j 4B p 0 C pD j 4 33 下面程序的功能是将八进制正整数字符串转换为十进制整数 请选择填空 include stdio h include string h main char t s 8 intn t s gets t n 1 while 2 0 n n 8 t 0 printf d n n 1 A 0B tC t 0 D t 0 2 A tB t C t D t 34 下面程序的功能是在字符串 s 中找出最大的字符并放在第一个位置上 并将该字符前的 原字符往后顺序移动 如 boy t s gets t max t while t 0 if maxsB t sC t s 0 D t s 0 2 A t B s C t D w 35 以下程序的功能是删除字符串s 中的所有空格 包括 TAB符 回车符 请填空 include stdio h include string h include ctype h main chars 80 gets s delspace s puts s delspace char t intm n char c 80 for m 0 n 0 1 m if isspace 2 C 语言提供的库函数 用以判断字符是否为空格 c n t m n c n 0 strcpy t c 1 A t m B t m C t m 0 D t m 0 2 A t mB c m C t m D c m 36 下面程序的功能是统计字串 sub 在母串 s 中出现的次数 请选择填空 include stdio h include string h main 第七章指 针 8 char s 80 sub 80 intn gets s gets sub printf d n count s sub int count char p char q intm n k num 0 for m 0 p m m for 1 k 0 q k p n k n if q 2 0 num break return num 1 A n m 1B n mC n 0D n 1 2 A kB k C k 1D k 37 下列程序的输出结果是 include stdio h main inta 1 2 3 4 5 6 7 8 9 0 p p a printf d n p 9 A 0B 1C 10D 9 38 以下程序的输出结果是 include stdio h char cchar char ch if ch A printf d n strlen b2 A 8B 3C 1D 7 40 有以下程序 include string h include stdio h main char p abcde 0fghjik 0 printf d n strlen p 程序运行后的输出结果是 A 12B 15C 6D 5 41 有以下程序 void ss char s chart while s if s t s t a A s main charstr 100 abcddfefdbd c d ss str c printf s n str1 程序运行后的输出结果是 A ABCDDEFEDBDB abcDDfefDbDC abcAAfefAbAD Abcddfefdbd 42 以下程序调用 findmax 函数返回数组中的最大值 在下面划线处应填入的是 include stdio h findmax int a int n int p s for p a s a p asB p sC a p a s D p a p s 43 有以下程序 include stdio h include malloc h main char q p p char malloc sizeof char 20 为指针 p 分配一个地址 q p scanf s s p q printf s s n p q 若从键盘输入 abcdef 则输出结果是 A defdefB abcdefC abcdD dd 44 下面程序的运行结果是 include stdio h include string h fun char s char t 10 s t strcpy t example main char s fun s puts s A example B example C exampleD 不确定的值 45 下列程序段的输出结果是 include stdio h void fun int x int y printf d d x y x 3 y 4 第七章指 针 11 main intx 1 y 2 fun printf d d x y A 2 1 4 3B 1 2 1 2C 1 2 3 4D 2 1 1 2 46 下列程序的输出结果是 include stdio h main char a 10 9 8 7 6 5 4 3 2 1 0 p a 5 printf d p A 非法B a 4 的地址C 5D 3 47 有以下程序 include stdio h include string h main int argc char argv intm length 0 for m 1 m argc m length strlen argv m printf d n length 程序编译连接后生成的可执行文件是file exe 若执行时输入带参数的命令行是 file123456789 则运行结果是 A 22B 17C 12D 9 48 有以下函数 char fun char s returns 该函数的返回值是 A 无确定值B 形参 s 中存放的地址值 C 一个临时存储单元的地址D 形参 s 自身的地址值 49 假定下列程序的可执行文件名为 file exe 则在该程序所在的子目录下输入命令行 filegirlboy 后 程序的输出结果是 include stdio h main int argc char argv intm 第七章指 针 12 if argc 0 return for m 1 m1 printf s c argv argc 1 n B main inta char b while a 1 printf s n b C main intargc char argv while argc 0 printf s c argv argc 1 n D main int argc char argv while argc 1 printf s argv 7 2 填空题 1 设有定义 int a p 以下语句将利用指针变量 p 读写变量 a 中的内容 请将语句补 充完整 scanf d 1 printf d n 2 2 请填空 建立如图所示存储结构所需的说明语句是 1 建立如图所示给 c 输入数据的输入语句是 2 建立如图所示存储结构所需的赋值语句是 3 W pc 第七章指 针 13 3 以下程序的运行结果是 include stdio h include string h int p main int x 1 y 2 z 3 p fun x z printf 1 d d d n x y p fun intx int y int z 4 p y z x p z printf 2 d d d n x y p 4 下面程序段是把从终端读入的一行字符作为字符串放在字符数组中 然后输出 请填空 include stdio h include string h main int m char s 80 t for m 0 m 79 m s m getchar if s m n break s m 1 t 2 while t putchar t 5 下面程序段的运行结果是 char s 80 t EXAMPLE t strcpy s t s 0 e puts t 6 函数 sstrcmp 的功能是对两个字符串进行比较 当 s 所指字符串相等时 返回值为0 当 s 所指字符串大于 t 所指字符串时 返回值大于0 当 s 所指字符串小于 t 所指字符串 时 返回值小于 0 功能等同于库函数 strcmp 请填空 include stdio h intsstrcmp char s char t 第七章指 针 14 while s t return 2 7 下面程序的运行结果是 void swap int a int b int t t a a b b t main intx 3 y 5 p swap p q printf d d n p q 8 以下程序的输出结果是 include stdio h main char p abcdefgh r long q q long p q r char q printf s n r 9 下面程序的功能是将字符串中的数字字符删除后输出 请填空 include stdio h include malloc h void delnum char t int m n for m 0 n 0 t m 0 m if t m 9 t n t m n 2 第七章指 针 15 main char s s char malloc sizeof char 给 s 分配一个地址 printf n input the original string gets s delnum s puts 3 10 下面程序的功能是比较两个字符串是否相等 若相等则返回1 否则返回0 请填空 include stdio h include string h fun char s char t intm 0 while s m t m return 2 11 下面程序用来计算一个英文句子中最长单词的长度 字母个数 max 假设该英文句子 中只含有字母和空格 在空格之间连续的字母串称为单词 句子以 为结束 请填空 include stdio h main static char s you make me happy when days are grey t int max 0 length 0 t s while t while t A t a length 1 if max length 2 length 0 t printf max d max 12 下面程序是判断输入的字符串是否是 回文 顺读和倒读都一样的字符串称为 回文 如 level 请填空 include stdio h include string h main 第七章指 针 16 char s 80 t1 t2 int m gets s m strlen s t1 s t2 1 while t1 t2 if t1 t2 break else t1 2 if t1 t2 printf NO n else printf YES n 13 当运行以下程序时 从键盘输入 apple tample 则下面程序的运行结果是 include stdio h main char s 80 t t s gets t while t 0 if t a break else t gets t puts t 14 当运行以下程序时 从键盘输入 6 则下面程序的运行结果是 include stdio h include string h main char s 97531 c c getchar f s c puts s f char t char ch while t 0 while t 1 ch t t 1 第七章指 针 17 t ch 15 若有定义 inta 1 2 3 4 5 6 7 8 9 10 11 12 p 3 m 则下面程序段的输出是 for m 0 m 3 m p m printf d n p 2 2 16 下面程序的运行结果是 include stdio h main char s 1357 t t s printf c c n t t 17 以下程序将数组 a 中的数据按逆序存放 请填空 include stdio h define M 10 main inta M m n temp for m 0 m M m scanf d a m m 0 n M 1 while m n temp a m 1 2 temp m n for m 0 m M m printf 3d a m 18 以下程序在 a 数组中查找与 x 值相同的元素的所在位置 请填空 include stdio h main inta 11 x m printf please input ten numbers n for m 1 m0 printf 5d spositionis 4d n x m else printf d not been found n x 19 以下程序的功能是 include stdio h main char s PASCAL FORTRAN COBOL BASIC char p intn p s for n 0 n 4 n printf s n p 20 若有定义和语句 int a 4 1 2 3 4 p p 则 p 的值是 21 若有定义和语句 int a 2 3 0 p 3 p a 则 p 1 表示数组 22 若有如下定义和语句 int p 3 a 6 n for m 0 m 3 m p m 则 p 0 引用的是 a 数组元素 1 p 1 1 引用的是a 数组元素 2 23 若有以下定义和语句 在程序中引用数组元素a m 的四种形式是 1 2 3 和 a m 假设 m 已正确说明并赋值 int a 10 p p a 24 下面程序的输出结果是 include stdio h main intb 2 3 1 3 5 7 9 11 int a 2 3 inti j int p m for i 0 i 2 i for j 0 j 3 j a i j b i j p a 0 for m 0 m 6 m printf 4d p p 25 定义语句int f 和 int f 的含义分别为 1 和 2 26 请根据运行结果 完成main 函数中的填空 第七章指 针 19 Array add int a int n intm sum 0 for m 0 m n m sum a m return sum main intArray add int a int n static int a 3 4 2 4 6 8 10 12 14 16 18 20 22 24 int p total1 total2 1 pt Array add p a 0 total1 Array add p 12 total2 pt 2 printf total1 d ntotal2 d n total1 total2 运行结果 total1 156 total2 156 7 3答案及部分解析 一 选择题答案 1 D2 D3 B4 B5 A6 D 7 D8 B9 D10 C11 B12 A 13 C14 C15 C16 A17 A18 C 19 D20 C21 C22 D23 C24 C 25 C26 C27 B28 D29 B30 D 31 1 C32 1 C33 1 C34 1 A35 1 A36 1 B 2 C 2 A 2 C 2 C 2 C 2 C 37 C38 C39 D40 D41 B42 B 43 A44 D45 A46 C47 D48 B 49 B50 B 1 解析 所谓指针是一种特殊的变量 它存放的是另一个简单变量 数组等的地址 由计 算机组成原理可知 内存的每一个存储单元都对应一个地址 CPU 正是通过这 个地址来访问每个存储单元的 而变量名最终仍要翻译成地址 才能找到所对应 的真正的存储单元 进行读 写操作 当定义了一个指针后 对这个指针变量进 行使用时 可以简单的理解为 加 后 对应一个数 变量值 不加 对应一 个 地址 所以 当由如下定义 int a p q b 可以进行如下的赋值操作 类型才能兼容 如 p q p q 5 q a b b p 本题中 x 为简单变量 p 为指向一个变量的指针 类型不兼容 应为 q 第七章指 针 20 13 解析 A 不等价的原因在于后一组语句 char s s girl 其中 s 是指针变量 在 引用一个指针变量之前 应对其赋一个初值 即将一个字符串的地址赋给它 指 针变量前不加 代表地址 加 代表该地址对应的字符 本题中 s girl 语句的目的是给该指针赋初值 地址 故应该去掉 s 前的 两组语句方等 价 B 的错误在于后一组语句 char s 10 s 10 girl 数组可以在定义的 同时赋初值 或者通过 strcpy 函数赋值 但绝对不可以使用赋值语句赋值 D 的错误在于后一组语句 char s 4 t 4 boy C 语言规定在对多个变量赋以 同一个值时 不可以使用连等的方式 必须分别赋值 20 解析 对于 scanf 语句 格式符后的参数应该为一个变量的地址 本题中 A 的错误 在于s 已经为数组名 数组名代表一片连续单元的起始地址 不应该再加取地址 符 B 的错误在于 s 为指针变量 一个指针变量在使用时 必须先赋一个地址 值 否则 会任意指向一个存储单元 可能会造成本程序 其他程序以及整个系 统的崩溃 D 的错误在于 t 2 是一个数组元素 是一个数值 而不是存储该数值 的单元的地址值 所以 应该加上取地址符 24 解析 strcat 函数的形式 strcat 参数 1 参数 2 其中参数 1 可以为数组名 参数 2 可以为数组名或指向字符的指针 该函数要求作为参数 1 的字符数组必须足够 大 以便容纳连接后的新字符串 故 A 的错误在于 s 的长度小于参数 2 的字 符数组 t 的长度 B 的错误在于作为参数 1 的字符数组s 未赋初值 里面存放的 是不确定的字符串 使第二个字符串不能确定连接到字符串1 中的位置 D 中 的参数 1 是个指针 而之所以参数 1 不可以为指针的原因在于 char s 12345 相当于 char s 12345 确定了 s 的长度 显然 其长度不 足以容纳连接两串后的新串 29 解析 数组名不能进行自加运算 没有意义 而加 减运算也需要在数组范围内进行 一旦超出范围 也没有意义 30 解析 s 是字符数组名 它里面存储的是一串字符 对字符串赋值的时候 可以通过定 义的同时赋初值 或者使用strcpy 函数 绝对不可以使用赋值语句 即 char s 6 s abcd char s 6 strcpy s abcd 或者直接这样 char s 6 abcd 对于指针则可以通过赋值语句赋值 因为它赋的是一个字符串的首地址 32 解析 要想按照本题要求 每传递三个字符后再存放一个空格 需要经过这样的两步 方可以 第一 统计原字符串s 每隔 3 位截取下来 赋给另一个字符数串 这 需要做个循环即可 第二 要考虑到是不是每次截取下来的字符串都添加一个空 格 因为最后一次截取下来的字符不需再加空格 那么加一个判断语句 是否上 一个循环真的循环了 4 次即可 注意上一个循环体的循环判断语句 j 3 2 scanf c 或者 c getchar 3 p 3 答案 2 266 1 166 解析 第一步 调用 fun 函数之前 进行了如下图 7 1 所示的操作 全局变量 p 指向 main 函数中的局部变量y 第二步 当
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字农旅技术整合-洞察及研究
- 家具厂生产计划调整规章
- 公益信托合同(标准版)
- 小学语文教研组线上线下教学资源整合计划
- 沿海防潮工程试验检测计划
- 医院科室护理质量提升计划
- 小班下学期环保教育计划
- 2024-2025学年牛津译林英语七年级下册教学质量提升计划
- 农场季节性劳动力安排计划
- 2025年合肥肥西县桃花初级中学招聘代课教师招聘考试参考题库附答案解析
- 商务英语词汇大全
- 人教PEP版(一起)(2024)一年级上册英语全册教案(单元整体教学设计)
- 护士职业防护
- 酒店公共卫生事件应急预案
- 2024-2025学年小学劳动一年级上册人教版《劳动教育》教学设计合集
- 五年级开学第一课
- DL∕T 1664-2016 电能计量装置现场检验规程
- DL∕T 1455-2015 电力系统控制类软件安全性及其测评技术要求
- 临床护理“三基”应知应会汇编
- 家委会给老师的感谢信
- OpenStack私有云基础架构与运维(openEuler版)全套教学课件
评论
0/150
提交评论