计算机国二错题集(四)
一,字符串定义语法和指针
我们知道定义指针的语法 是 int 星p p=地址a 所以字符串也是一样 先char 星c 再把c用某个地址初始化 数组名就是地址 所以c等于str 二,改动指针方向m,n的值没有变
这题 星p=地址m 星q=地址n 然后交换pq p q都是地址变量 也就是现在星p指向地址n 星q指向地址m 所以m n的值不变 星p=n ,星q=m所以答案是 1 2 2 1 三,数组传参 数组做形参函数原型声明
数组做形参 1函数原型声明 只用申明变量类型就行不用变量名 传入参数数组名是地址 所以变量类型是指针(指针指向地址) 2函数定义 定义数组名a中括号 3传参 只需要传入地址(数组名)就行 四,结构体传值不传地址啥都没变
五,利用阿克斯码给字符类变量初始化
注意是char A=66 而不是char A=单引号66 因为单引号表示字符 66是个字符串 A选项在ab没有初始化时候不能连续赋值 D 选项中间应该是逗号 C 选项根据指针语法我们定义了一个float指针 星c=一个地址变量 之前有 星b=地址a 所以b=地址a 地址b就是a地址的地址 不是一个一级地址变量 应该用星星c就对了 六,强制转化类型是(int)括号套int而不是 int(x)
所以D是错的 注意变量赋值的左边只能是一个变量名比如x 不能含有任何加减运算 B选项表示逗号表达式 逗号表达式的值是它最后一个表达式的值 七,软件工程三要素(方法 工具 过程)
八,转义字符是一个合法的字符常量 (字符常量必须是一个字符)
如和 ‘\0 ’就是一个转义字符 /100整体视为一个字符常量 D选项表示一个转义字符是八进制数07的转义 C选项是不行的 /不是字符 要表示转义字符的转义字符需要//单引号 九,全局变量x(每次执行函数不会把x重新赋值为1)
答案s=1+2+3+4+5+6=21 十,细节题循环后面有分号则循环立即停止 循环无法控制后面的一句话 我们知道没有大括号和分号循环是自动控制后面的一个语句的
这题while循环无法控制后面的语句 当y=0的时候循环结束 先用后- 所以最后输出y=-1 (循环结束不影响他进入下一个语句) 十一,getche()函数的作用(回车也算字符)
getchar()就是获取键盘输入缓冲区的一个字符 本题因为有百分号c限制且两个百分号c直接并无空格 所以a被赋值1 b被赋值2 剩下暂时没有用所以进入缓冲区 回车也就是换行字符给了c 3给了d 所以答案为D 十一,结构体的 -> 指针 这题表示生成一个结构体STD类的数组和指向这个结构体变量的指针星ps
->是C语言和C++语言的一个运算符,叫做指向结构体成员运算符,用处是使用一个指向结构体或对象的指针访问其内成员。 用于访问结构体成员 所以D就表示age 是一个整数 D是错的 A表示一个结构体变量s0附属的字符串name数组名 数组名本身就是地址 B表示结构体变量s0的结构体成员age(整型)的地址 C表示ps指向s0 也就是s0的数据成员sex的地址 D仅仅表示s0的数据成员age没有+地址 补充 ->指针的语法 例如: struct T { int a; char b; }s; struct T* p=&s; 那么, p->a相当于s.a。 总结 结构体变量的地址->结构体变量内部的数据成员变量名 这种表示等价于 结构体变量名.结构体变量内部的数据成员名 这两种调用方式是一样的