二级C语言-280
(总分100, 做题时间90分钟)
选择题
1. 
在Internet中,域名服务器的主要功能是实现______的转换。
A IP地址到域名(主机名字)
B 域名到IP地址
C 主机IP地址和路由器IP地址之间
D 路由器IP地址之间
    分值: 2.5
答案:B
[解析] 在Internet中,把域名翻译为IP地址的软件称为域名系统DNS,运行域名系统的主机称为域名服务器。域名服务器的主要功能是实现入网主机名字和IP地址的转换。
2. 
下列选项中不是C语句的是______。
A { int i; i++; printf("%d\n", i); }
B ;
C a=5,c=10
D {;}
    分值: 2.5
答案:C
[解析] C项缺少分号。因为赋值语句两个标志:赋值(就是"=")和语句(加上";")。
3. 
下列关于定点数与浮点数的叙述中错误的是______。
A 在实数的浮点表示中,阶码是一个整数
B 整数是实数的特例,也可以用浮点数表示
C 实数的补码是其对应的反码在最后一位加1
D 相同长度的浮点数和定点数,前者可表示数的范围要大于后者
    分值: 2.5
答案:C
[解析] 正整数的补码与其原码一致;负整数的补码是其对应的反码在最后一位加1。
4. 
下列选项中,均属于通用软件的是______。
A Windows XP、AutoCAD、PowerPoint
B Visual FoxPro、Excel、SPSS
C Word、Photoshop、Excel
D C++、CorelDraw、Firefox 2.0
    分值: 2.5
答案:C
[解析] 软件可以分为系统软件和应用软件两类,应用软件又可以分为针对具体应用问题而专门开发的订制应用软件和在许多行业与部门中可以广泛使用的通用应用软件。
5. 
下列关于信息系统的叙述中,错误的是______。
A 广播电视是一种双向的、点到多点的信息交互系统
B 网络聊天是一种双向的、以信息交互为主要目的的系统
C 电话是一种双向的、点对点的、以信息交互为主要目的的系统
D 雷达是一种以感测和识别为主要目的的系统
    分值: 2.5
答案:A
[解析] 广播/电视是一种单向的、点对多点(面)的以信息传递为主要目的的系统。
6. 
若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是______。
A scanf("%d", a, b, c);
B scanf("%d%d%", a, b, c);
C scanf("%d", p);
D scanf("%d", &p);
    分值: 2.5
答案:C
[解析] 题中整型指针变量p存放的是变量c的地址。所以本题答案为C。
7. 
以下关于long、int和short类型数据占用内存大小的叙述中正确的是______。
不属于c语言字符串常量A 均占4个字节
B 根据数据的大小来决定所占内存的字节数
C 由用户自己定义
D 由C语言编译系统决定
    分值: 2.5
答案:D
[解析] 几类整型数所占用的字节数因编译系统或计算机系统的规定不同而有所差异。
8. 
若已定义:
int a[]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p=a, i;
其中0≤i≤9,则对a数组元素的引用不正确的是______。
A a[p-a]
B *(&a[i])
C p[i]
D *(*(a+i))
    分值: 2.5
答案:D
[解析] A:p开始是数组a首地址,只要p++则再减去a的首地址a[p-a]就能取到所有元素,B:&a[i]循环取其地址,*(&a[i])是该地址中所存储的元素C:p就是指针变量,相当于a[i],D:*(a+i)则正确。
9. 
有以下程序段:
int j; float y; char name[50];
scanf("%2d%f%s", &j, &y, name);
当执行上述程序段,从键盘上输入55566 7777abc后,y的值为______。
A 55566.0
B 566.0
C 7777.0
D 566777.0
    分值: 2.5
答案:B
[解析] 变量j只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量y中。
10. 
若变量已正确定义,有以下程序段
i=0;
do printf("%d, ", i); while(i++);
printf("%d", i)
其输出结果是______。
A 0,0
B 0,1
C 1,1
D 程序进入无限循环
    分值: 2.5
答案:B
[解析] 本题中,变量i的初始值等于0,执行循环体中的语句后,输出i的值为0。while后面括号中表达式i++的值为0,循环结束。此时变量i自加1,所以再次输出“1”。
11. 
有以下计算公式

若程序前面已在命令中包含math.件,不能够正确计算上述公式的程序段是______。
A if(x>=0) y=sqrt(x);else y=sqrt(-x);
B y=sqrt(x)if(x<0) y=sqrt(-x);
C if(x>=0)y=sqrt(x);If(x<0)y=sqrt(-x);
D y=sqrt(x>=0?x:-x);
    分值: 2.5
答案:B
[解析] 选项A、C、D分别用一个if else语句、两个if语句和条件表达式表达了计算公式的含义。
12. 
若有定义:int x,*pb;则正确的赋值表达式是______。
A pb=&x
B pb=x
C *pb=&x
D *pb=*x
    分值: 2.5
答案:A
[解析] *pb是指解除对*pb的引用(也可以认为是取pb所指向的地址的值),被解除引用的指针可以作为左值,&为取地址运算符,&x就是取指向变量x的指针。
13. 
以下关于字符串的叙述中正确的是______。
A C语言中有字符串类型的常量和变量
B 两个字符串中的字符个数相同时才能进行字符串大小的比较
C 可以用关系运算符对字符串的大小进行比较
D 空串一定比空格打头的字符串小
    分值: 2.5
答案:D
[解析] 字符串常量是由双引号括起来的一串字符,所以A选项错误;任意两个字符串的大小比较要调用字符串比较函数strcmp(s1,s2)来进行,所以选项B和C错误。
14. 
已有定义:char c;,程序前面已在命令行中包含ctype.件,不能用于判断c中的字符是否
为大写字母的表达式是______。
A isupper(c)
B "A"<=c<="Z"
C "A"<=c&&c<="Z"
D c<=("z"-32)&&("a"-32)<=c
    分值: 2.5
答案:B
[解析] 选项B先计算关系表达式“"A"<=c”的值是0还是1,再比较该值与字符"z"之间的大小关系,不能实现题目所要求的功能。
15. 
若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是______。
A 函数的实参和其对应的形参共占同一存储单元
B 形参只是形式上的存在,不占用具体存储单元
C 同名的实参和形参占同一存储单元
D 函数的形参和实参分别占用不同的存储单元
    分值: 2.5
答案:D
[解析] 在C语言中,函数的实参单元与形参单元在内存中分配不同的存储单元。
16. 
已知字符"A"的ASCII代码值是65,字符变量c1的值是"A",c2的值是"D"。执行语句printf("%d, %d", c1, c2-2);后,输出结果是______。
A A,B
B A,68
C 65,66
D 65,68
    分值: 2.5
答案:C
[解析] 在C语言中,用整型格式输出字符时,输出的是其ASCII码值。
17. 
以下叙述中错误的是______。
A 改变函数形参的值,不会改变对应实参的值
B 函数可以返回地址值
C 可以给指针变量赋一个整数作为地址值
D 当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL
    分值: 2.5
答案:C
[解析] 指针变量的值只能是存储单元地址,而不能是一个整数,故选项C错误。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。