一、选择题
1 设变量己正确定义, 以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( )。.
A )
C )
答:D
【解析】要统计一行中输入字符个数(不包含回车符)的程序实现,首先定义一个用作统计的变量m 因为用作统计,所以需要赋初值为0; 因为字符结束要加换行符,故判断该行字符没有结束的程序实现应为
getohar
2. 有以下程序:
程序运行后的输出结果是( )。
A.1, 2, 4,
B.1, 3, 4,
C.1, 1, 3,
D.1, 3, 4,
答:C
【解析】for 语句中把array 数组首地址值赋给ptr ,然后再循环体中进行输出,再把ptr 对应的地址值加1,重复三次,输出数组前三个数1,1,
3. 有以下程序段:
当执行上述程序段,并从键盘输入:name=Lilinum=1001后,name 的值为( )。
A.Lili
B.name=Lili
C.Lilinum=
D.name=Lilinum=1001
答:A
【解析】在C 语言中输入多个字符串时,系统会把空格字符作为输入的字符串之间的分隔符。
第 2 页,共 35 页 B )D ) 由此具体实现语句用for 循环应
为
本题中,由于输入两个变量,所以中间应该以回车键为间隔,当从键盘输入name=Lilinum=1001只是输入第一个变量,并且只将Lili 赋值给了name 。
4. 设有定义:char *c; 以下选项中能够使字符型指针c 正确指向一个字符串的是( )。
答:A
【解析】B 项中
字符型变量,
D 项是在指针定义时为它赋值,否则是不合法的,所以BCD 三项都不正确。A 项定义字符数组再将字符数组str 的首地址赋给字符型指针c ,正确。
5. 下面选项中的程序段,没有编译错误的是( )。
答:A
A 项正确,BCD 三项错误,【解析】首先定义了字符串指针sp ,然后执行字符串常量“Hello”。
数组只有在初始化是可以被赋值,不能通过赋值语句将字符串常量或其他字符数组中的字符串直接赋给字符串变量。
6. 有以下程序:
程序运行后的输出结果是( )。
A.=
B.XXX
第 3 页,共 35 页 函数是将c 定义为一个字符数组的数组名,C 项中是将c 定义为一个
C.=XX
D.X=
答:A
【解析】主函数首先为结构体定义两个变量分别使用字符串拷贝函数strcpy ( )
因此输出为项正确。 为si 和s2的成员name 赋值,
再将
中的成员信息赋值给
7. 以下选项中,能用作用户标识符的是( )。
答:C
【解析】标识符是由若干个字符组成的字符序列,用来命名程序的一些实体。C 语言定义标识符应遵循以下六种规则:①标识符由字母、数字或下划线组成;②第一个字符必须是字母或下划线;③标识符最多由274个字 符组成;④在标识符中严格区分大小写字母;⑥关键字不能作为自定义的标识符在程序中使用。
8. 有以下程序:
程序运行后的输出结果是( )。
A.2,6
B.0,0
C.2,4
D.1,2
答:B
【解析】程序执行过程为:定义数组调用函数fun ,将数组地址传人函数,指针pi 指向a ,s 指向b ,定义指针t 并使其指向开辟的两个整型内存,为第一个内存赋值为数组a 第一个元素的2倍,即2,然后指针pi 指向a 数组第二个元素,为第二个内存赋值为数
第 4 页,共 35 页