国家二级(C语言)机试模拟试卷492
选择题
1.为了使模块尽可能独立,要求( )。(B)
A. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
解析:系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。
2.在一棵二叉树上,第5层的结点数最多是( )。(D)
A. 8
B. 9
C. 15
D. 16
解析:根据二叉树的性质:二叉树第i(i≥1)层上至多有2i-1个结点。得到第5层的结点数最多是16个。
3.有以下程序:
#include<stdio.h>
main()
{int x=1,y=0,a=0,b=0;
switch(x)
{ease1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf(\\(B)
A. a=2,b=2
B. a=2,b=1
C. a=1,b=1
D. a=1,b=0
解析:case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从此case子句执行下去。不在进行判断,直到碰到break或函数结束为止。所以执行内层switch(y)时只执行了a++,此时a的值为1。然后执行外层case2语句的a++;b++;a为2,b为1。所以结果为B。
4.有以下程序:
#include<stdio.h>
#include<string.h>
struct A
{int a;char b[10];double c;};
void f(struct A*t);
main()
{struct A a={1001,\\(B)
A. 1001,zhangDa,1098.0
B. 1002,ChangRong,1202.0
C. 1001,ChangRong,1098.0
D. 1002,zhangDa,1202.0
解析:本题主要考查是的函数调用时参数之间的传递问题。在C语言中参数之间的传递是传值,也就是把实参的值复制一份传递给形参,而实参的值不发生变化。但对于指针调用来说,函数直接对实参的地址操作,因此在这种情况下实参变化。
5.软件调试的目的是( )。(C)
A. 发现错误
B. 改善软件的性能
C. 改正错误
D. 验证软件的正确性
解析:在对程序进行了成功的测试之后将进入程序调试,程序调试的任务是诊断和改正程序中的错误。
6.有以下程序:
#include <stdio.h>
int add( int a,int b){ return (a+b); }
main()
{ int k, (*f)(), a=5,b=10;
f=add;
…
}
则以下函数调用语句错误的是( )。(D)
A. k=f(a,b);
B. k=add(a,b);
C. k=(*f)(a,b);
D. k= *f(a,b);
解析:D)选项中*f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量k。
7.若有char s[3][3]={“AAA”,“BBB”,“CCC”);说明语句,则与它等价的语句是( )。(D)
A. char**s={“AAA”,“BBB”,“CCC”);
B. char*s[3]={“AAA”,“BBB”,“CCC”);
C. char s[][5]={“AAA”,“BBB”,“CCC”};
D. char s[][3]={“AAA”,“BBBtt gt!CCC”);
解析:二维字符数组在定义时可省略第一维的维数,根据初始化有3个字符串,所以选项D)中数组有3行,与已知说明语句等价。
8.有以下程序:
#include<stdio.h>
struet S
{int a,b;}data[2]={10,100,20,200};
main()
{struer S p=data[1];
printf(\\(D)
A. 10
B. 11
C. 20
D. 21
解析:声明data是结构s数组。初始化data[0].a=10;data[0].b=100;data[1].a=20;data[1].b=200。主函数中p=data[1];即p.a=data[1].a;p.b=data[1].b;执行语句printf(\\
9.以下选项中,能用作用户标识符的是( )。(A)
A. _0_
B. 8_8
C. void
D. unsigned
解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B中以数字8开头,所以错误。C与D中用的是关键字void与unsigned,所以错误。
10.若要求从键盘读入含有空格字符的字符串,应使用函数( )。(B)
A. getc()
B. gets()
C. getchar()
D. scanf()
解析:scanf()语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用scanfi()函数小能输入空格: getchar()函数用于输入宁符,其调用形式为:ch=getchar(),getchar()函数从终端读入一个字符作为函数值,把读入的字符赋给变量ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入Enter键时,读入才开始执行。gets()函数的调用形式为:gets(str_adr),其中str_adr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。gets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。getc()函数的调用形式为:ch=getc(pf)其中pf是文件指针。函数的功能是从pf指定的文件中读入一一个字符,并把它作为函数值返回。
11.有以下程序:
#include <stdio.h>
#include <string.h>
typedef struct { char name[9]; char sex; int score[2]; } STU;
STU f (STU a)
{ STU b={\\(A)
本文档预览:3600字符,共14176字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载