国家二级(C语言)机试模拟试卷529
选择题
1.结构化程序设计的3种结构是( )。(B )
A. 顺序结构,分支结构,跳转结构
B. 顺序结构,选择结构,循环结构
C. 分支结构,选择结构,循环结构
D. 分支结构,跳转结构,循环结构
解析:程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。
2.设一棵满二叉树共有15个结点,则在该满二叉树中的叶子结点数为( )。(B)
A. 7
B. 8
C. 9
D. 10
解析:在具有n个结点的满二叉树,其非叶子结点数为int(n/2),而叶子结点数等于总结点数减去非叶子结点数。本题n=15,故非叶子结点数等于int(15/2)=7,叶子结点数等于15-7=8。
3.下列不合法的用户标识符是( )。(C)
A. j2_KEY
B. Double
C. 4d
D. _8_
解析:在C语言程序中,合法标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第一个字符必须是字母或下划线。
4.有以下程序:
#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。
5.语句“printf(\\(C)
A. a\bhow\’are\’y\\bou
B. a\bhow\’are\’y\bou
C. how’are’you
D. ahow’are’y\bou
解析:“\b”格式符表示退格,功能是将它后面的字母把它前面的字母覆盖,导致“\b”格式符前面的字母不能输出:“\”格式符表示输出单引号字符;“\\”格式符表示输出反斜线字符。
6.判断char型变量c1是否为小写字母的正确表达式为( )。(D)
A. ’a’<=c1<=’z’
B. (c1>=a)&&(c1<=z)
C. (’a’>=c1 || (’z’<=c1)
D. (c1>=’a’)&&(c1<=’z’)
解析:C语言规定,字符常量在程序中要用单引号括起来。首先判断c1是否为小写字母的主要条件“c1>=’ap’和“c1<=’z’”是逻辑与关系,其次选项A的这种形式C语言中没有,所以选项D正确。
7.有以下程序:
#include
#include
main()
{int*a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*aa=1;*b=2,*c=3;
a=b;
prinff(“%d,%d,%d\n”,*a,*b,*c);
}
程序运行后的输出结果是( )。(D)
A. 1,1,3
B. 2,2,3
C. 1,2,3
D. 3,3,3
解析:malloc函数动态分配一个整型的内存空间,然后把函数返回的地址用(int:*c)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间。所以只有最后一个赋值语句*c=3的值保留在了该空间内,因为a、b、c三个指针变量均指向该空间,所以打印该空间内的数值为3。
8.有以下程序段:
#include <stdio.h>
int a, b, c;
a=10; b=50; c=30;
if (a>b) a=b, b=c; c=a;
printf(\\(B)
A. a=10 b=50 c=30
B. a=10 b=50 c=10
C. a=10 b=30 c=10
D. a=50 b=30 c=50
解析:本题中a>b的条件不满足,所以不执行逗号表达式a=b,b=c;的操作,而是执行c=a操作,即c的值为10。
9.有以下程序:
#include
main()
{int a[]={1,2,3,4},y,*P=&a[3];
–p;y=*p;printf(“y=%d\n”,y);
}
程序的运行结果是( )。(D)
A. y=0
B. y=1
C. y=2
D. y=3
解析:程序首先定义了一个一维数组和指针,接着将数组第4个元素的地址赋给*p,进行一p使指针p指向了数组的第3个元素;通过y=*p,将数组第3个元素的值3赋给了y,所以选项D)正确。
10.在数据库系统的内部结构体系中,索引属于( )。(B )
A. 模式
B. 内模式
C. 外模式
D. 概念模式
解析:内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设符级上(如磁盘及磁盘操作)。
11.支持子程序调用的数据结构是( )。(A)
A. 栈
B. 树
C. 队列
D. 二叉树
解析:栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表。在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,所以A选项正确。
12.有以下程序:
#include<stdio.h>
main()
{
unsigned char a=8,c;
c=a>>3:
printf(\\(C)
A. 32
B. 16
C. 1
D. 0
解析:字符常量与其ASCII码值一一对应,在计算的时候,可以使用该字符的ASCII码参与运算,输出时会根据格式控制符输出对应的字符或者ASCII码。右移运算符“>>”的运算规则
本文档预览:3600字符,共17769字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载