国家二级(C语言)机试模拟试卷428
选择题
1.设有以下函数:
void fun(int n,char*s){……}
则下面对函数指针的定义和赋值均是正确的是( )。(A)
A. void(*pf)();pf=fun;
B. void*pf();pf=fun;
C. void*pf();*pf=fun;
D. void(*pf)(int char);pf=&fun;
解析:函数指针的一般定义形式为:数据类型(*指针变量名)()。D项中,void(*pf)(int,char)带有两个数据类型,不符合函数指针定义。
2.下列叙述中正确的是( )。(D)
A. 一个逻辑数据结构只能有一种存储结构
B. 逻辑结构属于线性结构,存储结构属于非线性结构
C. 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
解析:数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,常用的存储结构有顺序和链式结构。采用不同的存储结构,其处理的效率是不同的。
3.请阅读以下程序:
#include
#include
void fun(int b[]) main()
{ static int i=0; { int k,a[5]={1,3,5,4,9};
Do{ b[i]+=b[i+1]; fun(a);
}while(++i<2);} for(k=0;k<5;k++)printf(\\(C)
A. 13579
B. 48579
C. 48549
D. 48999
解析:本题考查的是for循环以及while循环。fun函数中定义了静态变量i=0,fun(a)使得a[0]=a[0]+a[1]=4,a[1]=a[1]+a[2]=8,此时i的值变为1,++i<2不成立,所以do-while循环结束,输出数组a的各元素即得到48549。
4.下列队列的描述中,正确的是( )。(D)
A. 队列属于非线性表
B. 队列在队尾删除数据
C. 队列按“先进后出”进行数据操作
D. 队列按“先进先出”进行数据操作
解析:队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。队列的操作数是依据先进先出的原则进行的。因此队列亦称作先进先出的线性表,或后进后出的线性表。
5.某二叉树中度为2的结点有10个,则该二叉树中有( )个叶子结点。(C )
A. 9
B. 10
C. 11
D. 12
解析:根据二叉树的性质3:对任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。
6.以下叙述中正确的是( )。(A)
A. C程序中注释部分可以出现在程序中任意合适的地方
B. C程序的书写格式是固定的,每行只能写一条语句
C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名
D. 在对C语言程序进行编译时,可以发现注释行中的拼写错误
解析:本题考查的是C语言程序设计的初步知识。选项A,程序中/*……*/表示注释部分,注释只是给人看的,对程序的编译和运行不起作用,可以在程序中的任何位置;选项B,C语言的书写格式自由,一行可以写多条语句,一条语句也可以写在不同行上;选项C,一个C程序中必须有且只能有一个由“main”命名的主函数,其他函数由用户自行命名;选项D,程序的注释仅仅是提供阅读之用,并不参与程序的编译,所以编译也就不会发现注释行中的错误。
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.当用“#define F 37.5f”定义后,下列叙述正确的是( )。(D)
A. F是float型数
B. F是char型数
C. F无类型
D. F是字符串
解析:字符替换定义格式为:# define标识符(形参表)形参表达式。题中F是代表形参表达式的标识符(字符串)。
9.以下说法正确的是( )。(B)
A. 宏定义是C语句,要在行末加分号
B. 可以使用#undefine提前结束宏名的使用
C. 在进行宏定义时,宏定义不能嵌套
D. 双引号中出现的宏名也要进行替换
解析:本题考查宏的使用规则:①字符替换格式:#define标识符字符串,行末不加分号;②双引号中出现的宏名不替换;③如果提前结束宏名的使用,程序中可以使用#undefine;④在进行宏定义时,宏定义能层层置换,能够嵌套。
10.下列方法中,属于白盒法设计测试用例的方法的是( )。(C)
A. 错误推测
B. 因果图
C. 基本路径测试
D. 边界值分析
解析:白盒测试方法也称为结构测试或逻辑测试,主要方法有逻辑覆盖测试、基本路径测试等。
11.下列叙述中正确的是( )。(B)
A. 调用printf()函数时,必须要有输出项
B. 使用putchar()函数时,必须在之前包含头文件stdio.h
C. 在C语言中,整数可以以二进制、八进制或十六进制的形式输出
D. 调节getchar()函数读入字符时,可以从键盘上输入字符所对应的ASCII码
解析:选项A,若printf函数没有输出项,且格式字符串中不含格式信息,则输出的是格式字符串本身,若格式字符串含有格式信息,运行时则出现错误提示;选项C,在C语言中,整数可以十进制、八进制或十六进制的形式输出;选项D,getchar函数是从标准输入设备读取一个字符。
12.有以下程序:
#include
main()
{ int c;
while((c=getchar())!=’\n’
{ switch(c-‘3’)
{ case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
case 4:putchar(c+3);break;
}}
printff“\n”);}
从第一列开始输入数据(代表一个回车符):
3845,则程序输出结果为( )。(A)
A. 77889
B. 77868
本文档预览:3600字符,共15502字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载