一、选择题
1. 若变量已正确定义为int 型,要通过语句
给a 赋值1,
给b 赋值2, 给C 赋值3,以下输入形式中错误的是(u 代表一个空格)( )。
A. B. C. D. 答:B
【解析】格式化输入函数scanf ,每个输入格式说明之间加一个逗号作为通配符,要求除格式控制符以外的字符都要原样输入,逗号为非格式符,需要原样输入,否则就不能正确读入数据。
2. 以下选项中非法的字符常量是( )。
A. B. C. D. 答:D
【解析】字符常量有两种表示方法:一种是用该字符的图形符号。另外还可以用字符的ASCII 码表示,即用反斜符
开头,后跟字符的
码,这种方法也称为转义序列表示法,具体方
这里ddd 是八进制值(0可以省略)。这里hh 是两位十六进制值。D 项
,
法有两种形式,一种是字符的八进制ASCII 码,表示为另一种使用字符的十六进制ASCII 码值,表示为
使用的是八进制表示,不应该出现9, 所以错误。
3. 有以下程序:
程序运行后的输出结果是( )。 A.3 B.5
C.7 D.9 答:A
【解析】本题中for 语句的主体为一个switch 语句,switch
语句的判断条件
,然后终止本层
语句。所以当时:C
4. 有以下程序
程序运行后的输出结果是( )。 A.1, 2 B.2, 4 C.1, 4 D.2, 3 答:A
【解析】当把结构体变量中的数据作为一个整体传送给相应的形参时,传递的是实参结构体变量中的值,系统将为结构体类型形参开辟相应的存储单元,并将实参中各成员的值一一对应赋给形参中的成员,函数中形参结构体变量的改变不会影响到实参结构体变量。所以,函数f 不会改变a 中的数据。
5. 有如下程序:
时执行
否则执行当
时:
语句然后再执行
当
语句并终止本层switch
时for 循环结束。结果为3。
程序运行后的输出结果是( )。
答:A
【解析】程序执行过程为:定义结构体变量input ,
调用
调用函数
使
使
将结构体地址传入函数,执行函数体,
调用
而4是值传递,并没有改变num 的值。输出结
构体成员为
6. 当没有指定C 语言中函数形参的存储类别时,函数形参的存储类别是( )。
A. 外部(extern ) B. 静态(static ) C. 寄存器(register ) D. 自动(auto ) 答:D
【解析】auto 变量又称为自动变量,函数定义变量时,如果没有指定存储类别,系统就认为所定义的变量具 有自动类别,D 选项正确。static 变量又称为静态变量,编译时为其分配的内存在静态存储区中。register 变量又 称为寄存器变量,变量的值保留在CPU 的寄存器中,而不是像一般变量那样占内存单元。当定义一个函数时, 若在函数返回值的类型前加上说明符extern 时,称此函数为外部函数,外部函数在整个源程序中都有效。
7. 以下选项中合法的标识符是( )。
答:C
【解析】C 语言中标识符的命名规则是:标识符由字母、数字和下画线组成,并且第一个字符必须是字母或下画线。C 语言的标识符是区分大小写字母的。
8. 有以下定义inta ;longb ;doublex , y ;,则以下选项中正确的表达式是( )。