一、选择题
1. 有以下程序:
程序的运行结果是( )。
A.flqv
B.agmrw
C.ekpuy
D.flqvz
答:A
【解析】puts ( )函数将数组中存放的字符串输出到输出设备中,用
结束符取代字符串strlen ( )函数是求字符串的实际长度(不包含结束标志),并且作为函数值
返回。程序中for 循环实现,将第i 个字符 串最后一个字符放入w 数组下标值为i 的位置,即最后将数组最后一个字符赋值为输出字符串W 为flqv , 故A 选项正确。
2. 以下关于指针的叙述正确是( )。
A. 所有类型的指针变量所占内存的大小是一样的
B. 指针变量所占内存的大小与其类型有关,char 型指针变量只占1个字节,double 型指针变量占8个字节
C. 指针变量可直接指向任何类型的变量,而不会出现编译或运行错误
D. 指针变量既可以直接指向结构体,也可直接指向结构体中某个成员,而不会出现编译或运行错误
答:A
【解析】专门用来存放变量地址的变量称为“指针变量”,所有地址值所占字节都是一样的,故指针变量所占内存大小一样,A 选项正确,B 选项错误。由于一个变量的地址(指针)还隐含有这个变量的类型信息,所以不能随意把一个地址存放到任何一个指针变量中去,只能把具有相同类型的变量的地址,存放到这个指针变量中, 结构体变量与某个成员类型不同,不能用同样的指针指向它们,C 、D 选项错误。
3. 有以下程序:
程序运行后的输出结果是( )。
A.3,5
B.7,7
C.5,7
D.3,7
答:D
【解析】函数f ( )的功能是定义一个整型的指针变量s ,指向全局变量k ,然后修改S 指向地址中的值为7,因此f ( )函数只是修改全局变量k 的值为7,与main ( )函数中临时变量m 无关,因此最后输出为3,7。
4. 有以下程序
若运行时从键盘上输入
A.OPEN THE DOOR
B.OPEN tHE dOOR 程序的输出结果是( )。
C.open the door
D.Open The Door
答:c
fun 函数中对大字字母执行【解析】即把从大写变成了小写。在
码表中,同一字母的小写编码比大写编码大32。
5. 若要求从键盘读入含有空格字符的字符串,应使用函数( )。
A.gets ( )
B.getc ( )
C.getchar ( )
D.scanf ( )
答:A
,直到读入一个换行符为【解析】A 项,gets 函数用来从终端键盘读入字符串(包括空格符)
止。B 项错误,C 语言标准库中没有getc 函数;C 项,getchar 函数是从键盘读入单个字符,空格、回车符都将作为字符读入;D 项,scanf 函数用
入数据的分隔符而不能被读入。
6. 有以下程序:
程序的运行结果是( )。
A.aa
B.ma
C.am
D.mm
答:A
;,函数的作用是在内存的动态存储区分配一个【解析】malloc 函数的原型为:malloc (size )
长度为size 的连续空间。程序执行过程为:定义两个字符类型指针p1和p2,动态开辟10个字符类型的内存单元,并且使指针p1与P2均指向这10个内存单元的第一个单元。调用strcpy 函数,将字符串“malloc ”赋值给这10个内存单元的前7个单元,存储情况为:malloc\0,此时p1指向10个内存单元的第一个单元。再次调用strcpy 函数,这10个内存单元的第2个单元到第7个单元元素重新赋值给P2指向的内存单元以及以后的5个单元,存储情况为:alloc\0\0,此时p1和p2均指向10个内存单元的第一个单元。输出两个指针指向单元的数据值,结果为:aa ,故A 选
格式符输入字符串时,空格和回车符都作为输