查看汇总:2014下半年软考程序员考前最后冲刺题及答案解析汇总
1.如果某个函数在定义时,省略了存储类型,则默认的存储类型是( )
A.auto
B.void
C.extern
D.static
【解析】C语言规定,函数的存储类型只能选取static或extern。前者表示本函数只能在本编。译单位中被调用;后者表示本函数可以被其他编译单位调用。如果省略了存储类型符,则系统默认为是“extern”型,所以本题答案应选C。
【参考答案】C
2.能正确定义一个用来指向打开文件的文件型指针变量fp的语句是( )
A.file fp;
B.file *fp;
C.FILE fp;
D.FILE *fp;
【解析】"file”是在头函数“stdio.h"冲定义的文件结构型的用户自定义数据类型符,这个用户自定义的数据类型符是大写字母组成的,所以备选答案A山是错误的。文件型指针变量在定义时,变量名的前面必须有“*”,所以备选答案C也是错误的,本题应选答案D。
【参考答案】D
3.存储整型数据-7856时,在二进制文件和文本文件中占用的字节数分别是( )
A.2和2
B.2和5
C.5和5
D.5和2
【解析】二进制文件中存放的数据是二进制形式的,对于“-7856”来说,是一个带符号的短整型数据,C语言规定短整型数据占用的字节数是2,所以在二进制文件中该数据占用2个字节;对文本文件来说,存放的数据是按照每位数字对应的ASCII代码值存放的,对于“-7 856”来说,其中的“-”号要占 1个字节;4位整数要占4个字节,共计占用5个字节。所以本题的答案应选B。
【参考答案】B
4.如果某个函数在定义时,省略了存储类型,则默认的存储类型是( )
A.auto
B.void
C.extern
D.static
【解析】C语言规定,函数的存储类型只能选取static或extern。前者表示本函数只能在本编。译单位中被调用;后者表示本函数可以被其他编译单位调用。如果省略了存储类型符,则系统默认为是“extern”型,所以本题答案应选C。
【参考答案】C
5.能正确定义一个用来指向打开文件的文件型指针变量fp的语句是( )
A.file fp;
B.file *fp;
C.FILE fp;
D.FILE *fp;
【解析】"file”是在头函数“stdio.h"冲定义的文件结构型的用户自定义数据类型符,这个用户自定义的数据类型符是大写字母组成的,所以备选答案A山是错误的。文件型指针变量在定义时,变量名的前面必须有“*”,所以备选答案C也是错误的,本题应选答案D。
【参考答案】D
6.存储整型数据-7856时,在二进制文件和文本文件中占用的字节数分别是( )
A.2和2
B.2和5
C.5和5
D.5和2
【解析】二进制文件中存放的数据是二进制形式的,对于“-7856”来说,是一个带符号的短整型数据,C语言规定短整型数据占用的字节数是2,所以在二进制文件中该数据占用2个字节;对文本文件来说,存放的数据是按照每位数字对应的ASCII代码值存放的,对于“-7 856”来说,其中的“-”号要占 1个字节;4位整数要占4个字节,共计占用5个字节。所以本题的答案应选B。
【参考答案】B
7.对于输入语句scanf("%f,%f",&a,&b);要使变量a、b上的值分别为 1.78和2.48,则正确的输入是( )
A. 1.78,2.48后跟回车
B. 1.78 2.48后跟回车
C. 1.782.48后跟回车
D. 1.78;2.48后跟回车
【解析】按照scanf()函数的语法要求,第1个形参是一个字符串常量,是由格式控制符和非格式控制符组成的,其中的非格式控制符必须原样输入。显然本题中的非格式控制符是在两个实数之间的“逗号”。从4个备选答案中可以看出,只有备选答案A中是用逗号分隔两个实数的,所以本题答案应选A
【参考答案】 A
8.执行下列程序段后的输出结果是( )
x=9;
while( x>7)
{ printf("*");x--;}
A.****
B.***
C.**
D.*
【解析】注意执行while循环前,变量x的初值为9.第1次执行while循环,控制循环的条件为“x>7”,这时x为9,条件成立,执行循环体:输出单个“*”,x再减1,x为8。继续循环,控制循环的条件是“x>7',现在x为8,条件成立,输出“*”后x减1,现在x为7。继续循环时,控制循环的条件不满足,退出循环。所以本段程序执行后,输出结果为两个“*”,本题答案应选C。
【参考答案】C
9.关于带参数的主函数,下列说法中错误的是( )
A.带参数的主函数中,形式参数名称是系统规定的,用户不能自己选择
B.带参数的主函数中,第1个形式参数是int型的
C.带参数的主函数中,第2个形式参数是字符型数组
D.带参数的主函数中,实际参数值只能在执行程序的命令行中获得
【解析】带参数的主函数定义格式是系统规定的,具体如下:
main(argc,argv);
int argc;
char *argv[];
{...
}
由此看出,第2个形式参数argv是指向字符型数据的指针型数组,不是字符型数组所以备选答案 C是错误的,本题应选答案C。
【参考答案】C
10.执行下列程序后的输出结果是( )
#define M(a,b)(a)>(b)?(a):(b)
main()
{ int i=10,i=15; printf("%d\n",10*M(i,j)); }
A.10
B.15
C.100
D .150
【解析】本题要输出的表达式是“10*M(i,j)”,其中的“M(i,j)”是带参数的宏调用,宏替换后,表达式的结果是“10*(i)>(j)?(i):(j)”,而变量i值为10、变量j值为15,带入整个要输出的表达式后结果是“10*(10)>(15)?(10):(15)”,,其中的条件“10*10>15”是成立的,结果等于10。所以本题答案应选A
【参考答案】A
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |