国家二级(C语言)机试模拟试卷408
选择题
1.下列选项中不属于结构化程序设计原则的是( )。(A)
A. 可封装
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
2.有以下程序:
#include<stdio.h>
int f(int x);
main()
{int n=l,m;
m=f(f(f(n)));printf(\\(A)
A. 8
B. 2
C. 4
D. 1
解析:第一次调用m=f(f(f(1))),第二次为m=f(f(2)),第三次为m=f(4),即返回值为8。
3.有以下程序:
main()
{int n=0;
do{n++;
printf(\\(C)
A. 1
1
2
B. 1
2
3
C. 1
2
3
4
D. 1
2
解析:本题考查do…while循环。在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值。当执行完第三次循环时,得到n=3,whik循环表达式仍然成立,接着执行直到n=4,表达式不成立.跳出循环,结束程序。
4.有以下程序:
#include<stdio.h>
#include<stdlib.h>
int fun(int n)
{int*p;
p=(int*)malloc(sizeof(int));
*p=n;return*p;
}
main()
{int a;
a=fun(10);pfinff(\\(C)
A. 0
B. 10
C. 20
D. 出错
解析:malloc(sizeof(int))的作用是开辟一个长度为sizcof(int)存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了一个整型的指针变量p。然后执行语句*p=n,使得*p的值为10,并通过return返回此值,即a的值为10。然后在主函数中输出a+fun(10)=10+10=20。
5.算法的空间复杂度是指( )。(A)
A. 算法在执行过程中所需要的计算机存储空间
B. 算法所处理的数据量
C. 算法程序中的语句或指令条数
D. 算法在执行过程中所需要的临时工作单元数
解析:算法的空间复杂度是指算法在执行过程中所需要的计算机存储空间。通常用o()来表示。
6.有以下程序:
#include<stdio.h>
main()
{
int n=2,k=0;
while(k++&&n++>2);
printf(\\(D)
A. 0 2
B. 1 3
C. 5 7
D. 1 2
解析:(表达式1)&&(表达式2)中,如果表达式1为假或0,那么表达式2就不会被执行。本题中首先进入while的判断语句,执行k++和n++。k++为零,不满足循环条件,所以n++不会被执行,while循环结束后,k经过运算自增为1,n没有进行运算,仍为2。
7.字符串\\(B)
A. 11
B. 10
C. 5
D. 3
解析:本题涉及字符串最基本的2个概念:①字符串的长度是指字符串中字符的个数,但不包括字符串结束符;②以反斜杆’\’开头的特殊字符序列,意思是把反斜杆后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,’\’连同后面的字符为一个长度;而’%’也是如此。
8.下面程序的输出结果是( )。
typedefunion{long x[1];
int y[4];
char z[10];
}M;
M t:
main()
{printf(\\(C)
A. 32
B. 26
C. 10
D. 4
解析:“联合体”所占用的内存空间为最长的成员所占用的空间。题中联合体的z[10]成员是联合体中占空间最长的成员。
9.有以下程序:
#include
main()
{unsigned char a=2,b=4,c=5,d;
d=ab;d&=c;printf(“%d\n”,d;}
程序运行后的输出结果是( )。(B)
A. 3
B. 4
C. 5
D. 6
解析:&按位与,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。1按位或,两个相应的二进制位中只要有一个为1,该位的结果值为1。2的二进制为00000010,4的二进制为00000loo,所以做或运算结果为00000110,该数与5即00000101做与操作结果为00000100,即4。
10.在关系模型中,每一个二维表称为一个( )。(A)
A. 关系
B. 属性
C. 元组
D. 主码(键)
解析:关系模型采用二维表来表示,即每个二维表称为一个关系。
11.关于C语言标识符,以下叙述错误的是( )。(A)
A. 标识符可全部由数字组成
B. 标识符可全部由下划线组成
C. 标识符可全部由小写字母组成
D. 标识符可全部由大写字母组成
解析:C语言标识符只能由字母、数字、下划线组成,且标识符的第一个字符只能是字母或下划线。
12.以下是while语句的基本形式:
while(表达式){语句;}
其中“表达式”( )。(D)
A. 必须是逻辑表达式
B. 必须是关系表达式
C. 必须是逻辑表达式或关系表达式
D. 可以是任意合法的表达式
解析:本题考查while表达式。while(表达式)中的表达式可以为任何合法的表达式,一般情况下为逻辑、条件表达式,需要注意的是,当等号(一)误写为赋值号(=)时不会报错的,但是其值恒为1。
13.以下叙述中正确的是( )。(A)
A. char,c1,c2,*c3,c4[40];是合法的变量定义语句
B. 数组下标的下限由数组中第一个非零元素的位置决定
C. 数组下标的下限由数组中第一个被赋值元素的位置决定
D. 数组下标的下限是1
解析:A选项正确,charc1,c2,*c3,c4[40]表示定义了两个字符变量c1、c2,一个字符指针c3,一个字符数组c4。数组的下限永远为0,选项B、C、D错,答案选A。
14.若有定义:
char s[30]={0};
运行时输入:
This is a string.<回车>
则以下不能正确
本文档预览:3600字符,共14402字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载