参考解析:本题重点考察的知识点while循环语句的应用。一()函数中,首先定义了一个字符指针t指向形参s,然后通过一个while循环让指针t不断递增,直到t指向字符串结束标识处。当t指向结束标识处时,由于后缀++运算符的原因,它还会被再递增1,所以接下来的t一一;语句让它回到结束标识处。最后返回t—s,s还是指向字符串第l个字符处,而t指向了字符串结尾,故返回值为字符串的长度值。因此C选项正确。
4在以下给出的表达式中,与while(E)中的(E)不等价的表达式是( )。
参考答案:B
参考解析:while语句中条件表达式E的值不为0即为真,认为满足条件,所以与B选项中表达式的含义正好相反,选择B选项。
5有以下程序:
程序运行后的输出结果是( )。
A.7B.10C.8D.9
参考答案:D
参考解析:调用f(a,b)函数返回3,调用f(a,c)函数返回6,所以外层调用f(f(a,b),f(a,c));即调用f(3,6)函数返回9。
6有以下程序:
程序运行后的输出结果是( )。
A.1,1,2,0B.0,0,0,3C.编译有错D.0,1,2,0
参考答案:C
参考解析:本题中ff(a=1)b=1;与else d=3;之间多了语句c=2;所以会出现else语句的位置错误的编译失败提示。
7已知字符?A?的ASCII代码值是65,字符变量cl的值是?A?,c2的值是?D?。则执行语句printf(”%d,%d”,cl,c2—2);的输出结果是( )。
A.65,68B.A,68C.A,BD.65,66
参考答案:D
参考解析: 打印时以%d整型格式打印输出,所以字符标量cl的值打印出来就是65,从c2—2的值打印出来就是68—2,即66。所以选择D。
8下列叙述中正确的是( )。
A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性
参考答案:B
参考解析:线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。
9以下选项中正确的定义语句是( )。
A.double,a,b;
B.double a=b=7;
C.double a;b;
D.double a=7,b=7;
参考答案:D
参考解析:A选项中变量类型符double后面不能有逗号。B选项中变量b不能先使用再定义,应该写成选项D中的格式。C选项中变量a后面应该是逗号而不是分号。
10以下关于C语言数据类型使用的叙述中错误的是( )。
A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
B.若要保存带有多位小数的数据,可使用双精度类型
C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型
D.整数类型表示的自然数是准确无误差的
参考答案:C
参考解析:C语言中没有逻辑类型,所以c错误。若要保存带有多位小数的数据,可以用单精度类型也可以用双精度类型。处理包含不同类型的相关数据可以定义为结构体类型。整数类型可以无误差的表示自然数。
11下列关于栈的叙述正确的是( )。
A.栈按“先进先出”组织数据,
B.栈按“先进后出”组织数据
C.只能在栈底插入数据
D.不能删除数据
参考答案:B
参考解析:栈是按“先进后出”的原则组织数据的,数据的插入和删除都在栈顶进行操作。
12以下叙述中正确的是( )。
A.c语言规定必须用main作为主函数名,程序将从此开始执行
B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C.c语言程序将从源程序中第一个函数开始执行、
D.main的各种大小写拼写形式都可以作为主函数名,如MAIN,Main等
参考答案:A
参考解析:C语言中的主函数只能是main()函数,不能任意指定,所以B选项错误。C语言从主函数main()开始,到主函数main()结束,所以C选项错误。主函数必须写成小写的main,不能混淆大小写,所以D选项错误。
13有以下程序:
程序运行后的输出结果是( )。
A.let=4B.m=2C.m=6D.m=5
参考答案:C
参考解析:第一次外循环i的值为l,第一次内循环j的值为3,不满足条件执行in}=i}j即m的值为3;第二次j的值为2,不满足条件执行m·=i*j,即m的值为6;第三次j的值为1,不满足条件执行nl*=i*j,即m的值仍为6。第二次外循环i的值为2,j的值为3,满足条件,执行break语句,跳出循环。