国家二级(C语言)机试模拟试卷510
选择题
1.以下函数中,findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。
#define MIN—2147483647
int findmax(int x[],int n)
{
int i,max;
for(i=0;i<n;i++)
{
max=MIN;
if(max<x[i])max=x[i]:
}
return max;
}
造成错误的原因是( )。(D)
A. 定义语句int i,max;中max未赋初值
B. 赋值语句max=MIN;中,不应给max赋MIN值
C. 语句if(max<x[i])max=x[i];中判断条件设置错误
D. 赋值语句max=MIN;放错了位置
解析:本题中for循环中首先将MIN值赋值给max,然后用x[i]与max的值比较。每次都是将MIN值与x[i]值进行比较,所以无论x[i]的值是什么,都不会影响if的判断语句,max=[i]始终执行。所以函数返回的是数组中最后一个元素的值。本题的错误在于max=MIN的位置,for循环之前应先执行max=MIN。
2.若有如下定义:
char *ps[]={\\(B)
A. *ps[0]是字符’A’
B. *ps[0]是字符串\\
C. ps[0]是字符’A’
D. ps是字符串\\
解析:对于指针数组,ps[0]代表的就是第一个字符串的地址。
3.有以下程序:
#include
typedef struct{int b,P;}A;
void f(A C)/*注意:C是结构变量名*/
{int j;
c.b+=1;e.p+=2;
}
main()
{int i;
A a={1,2};
f(a);
printf(“%d,%d\n”,a.b,a.P);
}
程序运行后的输出结果是( )。(B)
A. 2,4
B. 1,2
C. 1,4
D. 2,3
解析:结构体变量可以作为函数的参数和返回值。作为函数的实参时,可以实现函数的传值调用。当使用结构体变量作为函数的形参时,实参也应该是结构体变量名以实现传值调用,实参将拷贝副本给形参,在被调用函数中改变形参值对于调用函数中的实参没有影响。所以选择B。
4.有以下程序:
#include<stdio.h>
main()
{
int i;
FILE *fp;
for(i=0;i<3;i++)
{
fp=fopen(\\(A)
A. M
B. EOF
C. KLM
D. L
解析:通过三次循环,最后i的值定格在2,最后储存值’K’+2=’M’,所以最后保存的数值为M。注意:fclose函数,每次都关闭文件,并且重新回到文件首地址。
5.结构化程序设计中,下面对goto语句使用描述正确的是( )。(C)
A. 禁止使用goto语句
B. 使用goto语句程序效率高
C. 应避免滥用goto语句
D. 以上说法均错误
解析:结构化程序设计中,要注意尽量避免goto语句的使用,故选C。
6.在学校中,“班级”与“学生”两个实体集之间的联系属于( )关系。(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:一个班可以有多名学生,而一名学生只能属于一个班级,所以“班级”与“学生”两个实体集之间的联系属于一对多关系。
7.下列语句组中,不正确的是( )。
C
解析:S是一个字符指针变量,s代表其地址,C将字符串赋给地址,因此选项C错误。
8.若函数调用时的实参为变量,以下关于函数形参和实参的叙述中正确的是( )。(D)
A. 函数的实参和其对应的形参共占同一存储单元
B. 形参只是形式上的存在,不占用具体存储单元
C. 同名的实参和形参占同一存储单元
D. 函数的形参和实参分别占用不同的存储单元
解析:在C语言中,函数的实参单元与形参单元在内存中分配不同的存储单元。在调用函数时,给形参分配临时存储单元,并将实参对应的值传递给形参,在被调用函数中对形参存储单元中的值进行运算,最后通过return语句把函数值返回调用函数。当调用结束后,形参单元被释放,实参单元仍保留并维持原值。
9.以下选项中,能用作数据常量的是( )。(D)
A. 018
B. ol 1
C. 0.8e2.5
D. 25L
解析:本题考查常量定义。数据常量可有10进制、8进制、16进制、指数法等,8进制数字为0-7,第一个字符为0,而不是o,因此选项A和B)错误。为指数法时,指数部分须为整形,因此选项C错误,选项D中数字后加入L是说明此变量为长整型。
10.有三个关系R、S和T如下:
(B)
A. 自然连接
B. 差
C. 交
D. 并
解析:关系T中的元组是R关系中有而S关系中没有的元组的集合,所以进行的是差的运算。
11.关于字符常量,以下叙述正确的是( )。(D)
A. 空格不是一个字符常量
B. 字符常量能包含大于一个的字符
C. 单引号中的大写字母和小写字母代表的是相同的字符常量
D. 所有的字符常量都可以作为整型量来处理
解析:本题考查字符常量的4个知识点:①空格是一个字符常量,而且单引号中的空格不可以省略;②字符常量只能包含一个字符;③单引号中的大写字母和小写字母代表的是不相同的字符常量;④所有的字符常量都作为整型量来处理,在计算机内部,其对应的整数值就是ASCH码值。
12.有以下程序:
#include<stdio.h>
#include<string.h>
typedef struet{char name[9];char sex;float score[2];}STU;
void f(STU a)
{
STU b={\\(D)
A. Zhao,m,85,90
B. Qian,m,85,90
C. Zhao,f,95,92
D. Qian,f,95,92
解析:本题考查结构体的相关操作以及传值、传址的区别,该题中调用f函数后,会生成参数c的一个副本,而不会改变c的值,所以c值维持原值,选项D正确。
13.下列叙述中,不属于软件需求规格说明书的作用的是( )。(D)
<本文档预览:3600字符,共14529字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载