计算机等级考试二级C语言考前密卷(10)
1)下列说法正确的是
A)线性表是线性结构
B)栈和队列是非线性结构
C)线性链表是非线性结构
D)二叉树是具有线性结构的循环表
(2)不空满足
A)p-> next = = null
B)p = = null
C)p-> next = head
D)p = n算法应该是
A)堆排序
B)直接插入排序
C)快速排序
D)直接选择排序
(4)要建立良好的编程风格,下列描述正确的是
A)程序应该简单, 清晰易读
B)符号名的命名要符合语法
C)要充分考虑程序的执行效率
D)程序注释是可选的
(5)下列不是结构分析的常用工具[ Br/] C)决策树
D)PAD图
(6)在软件制作过程中, 需求是由
A)程序员
B)项目经理
C)软件分析师和设计师
D)软件用户
(7)在下列工具中,
A)PAD
D)DFD
(8)NULL是指
A)0
B)空case
C)未知值或没有值
D)/[] 数据模型中没有描述的是
A)数据结构
B)数据操作
C)数据查询
D)数据约束
(11)C语言程序的基本单位是
A)程序行[/br/ 012 0668
d)-0x 48 a2 e 50 x
(13)下列选项中的合法用户标识符为
a)long
b)_ 2 test
C)3d max
d)a . y = x+3/2的值为
a)3.500000
b)3
C)2.00000
t = ++ x | | ++ y;
完成后y的值是
A)不确定的
b)4
c)3
d)1
(17)I,j,k称为int变量。如果您从键盘输入它们:
B)scanf("%d %d %d ",&i,&j,& k);
C)scanf("%d,%d,%d ",&i,&j,& k);
D)scanf("i=%d,j=%d,k=%d ",&i,&j,& k);
(18)如果变量定义赋值正确,下面符合C语言语法的表达式是
a)m:= 5
b)C = b = a = 1
C)float 8% 5
d)x+。
int I;
x = 3.6;
I =(int)x;
printf("x=%f,i=%d ",x,I);
}
a) x = 3.600000,I = 3
b) x = 3.6,I = 3
c) x = 3,I = 3
d) x = 3.66。
scanf("%d,%d ",&a,& b);
k = a;
if(a else k = b % a;
printf("%d\n ",k);
}
A)5
B)3
C)2
d)01)下列说法正确的是
A)线性表是线性的
B)栈和队列是非线性的。d)二叉树是一个线性结构。(21)C语言中while和do-while循环的主要区别在于
a)do-while的循环体至少无条件执行一次。
b)while的循环控制条件比do-while的循环控制条件严格。
C)do-while允许从外部转移到循环体。]d)do-while的循环体不能是复合语句
(22)下面这个程序的输出结果是
main()
{int x=1,y = 3;
printf("%d,",x++);
{ int x = 0;x+= y * 2;
printf("%d,%d,",x,y);
}
printf("%d,%d\n ",x,y);
}
a) 1,6,3,1,3
b) 1,6,3,6,3
c) 1,6,3,2,3
d) 1,.
int a(3)如果字符串s="MathTypes ",则其子字符串的个数为[3]。
解析:字符串s中有9个字符,由于字符串中的字符不同,其子字符串中有0个字符中的1个(空 string)、1个字符中的9个、2个字符中的8个、3个字符中的7个、4个字符中的6个、5个字符中的5个、6个字符中的4个、7个字符中的3个。[3]={1,2,3,4,5,6,7,8,9 };
for(I = 0;inum = 20r-> num = 30;
p-> next = q;q-> next = r;
printf("%d\n ",p-> num+q-> next-> num);
}
程序运行后,输出结果是
a)10
b)20
c)30
d)40。二、填空空题
解析:根据冒泡排序算法的思想,如果要排序的初始序列是“正序”序列,则只需要排序一次,排序过程中对关键字进行n-1次比较,不移动或交换记录。这种情况是冒泡排序的情况,所以冒泡排序算法中的元素交换次数为0。
(2)在最坏的情况下,堆排序需要比较的次数是[2]。
答案:0(nlog2n)
[3]
(4)软件开发环境是完全支持软件开发全过程的[4]的集合。
答案:软件工程
(5)关系数据库的关系演算语言是基于[5]的DML语言。
解析:关系数据库中的关系演算包括元组关系演算和域关系演算。两者都是由原子公式组成的公式。这些关系演算基于数理逻辑中的谓词演算。
(6)下面y的值是[6]。
int y;y = sizeof(2.25 * 4);
解析:sizeof (2.25*4)是sizeof (10.00),值为8,C语言规定浮点常量要双精度处理(以IRM-PC为例)。
(7)下面x的值是[7]。
int x;x = sizeof 2.25 * 4;
解析:sizeof运算符高于算术运算符,所以sizeof 2.25*4相当于(sizeof 2.25)*4是8× 4 = 32(以IBM-PC为例)。
(8)下面这个程序的输出结果是[8]。
main ()
{int i=010,j = 10
pirntf ("%d,%d\n ",I,j);
}
解析:以0开头的数是八进制数。
(9)下面这个程序的输出结果是[9]。
main ()
{int x=3,y = 5;
printf ("%d ",x =(x-)*(-y));
}
解析:x-的值为3,-y的值为4;注意前缀-和后缀-之间的区别。
(10)下面这个程序的输出结果是[10]。
fun (int x,int y,int z)
{ z = x * x+y * y;}
main()
{ int a = 31;
Fun (6,3,a)
printf ("%d ",a)
}
解析:函数被调用时,参数值和变化不能改变实际的参数值。
(11)如果int a = 1;int b = 2;a | b的值是[11]。
解析:A转换为二进制数且十进制数为0001,b转换为二进制数为0010,|为OR运算符,a | b = 0011为3。
(12)假设字母A的ASCII码是十进制数97,ch是字符变量,表达式ch='a'+'8'-'3 '的值是[12]。
解析:在C语言中,整数、实数和字符数据可以混合使用。执行操作时,应先将不同类型的数据转换成相同的类型,然后再执行操作。我们可以这样计算这个问题,97+8-3=102,也就是102对应的字母是f。
(13)如果从键盘输入58,下面程序的输出结果是[13]。
main()
{ int a;
scanf("%d ",& a);
if(a>50)printf("%d ",a);
if(a>40)printf("%d ",a);
if(a>30)printf("%d ",a);
}
(14)以下程序的输出结果为[14]和(15)在下面的程序中,select函数的作用是从N行M列的二维数组中选择一个值,作为函数值返回,然后通过一个参数返回这个值所在行的下标。请填写空。
# define N 3
# define M 3
select(int a[N][M],int *n)
{int i,j,row=1,colum = 1;
for(I = 0;ifor(j = 0;jif(a[I][j]> a[row][colum]){ row = I;colum = j;}
* n =【16】;
return【17】;
}
main()
{ int a[N][M]= { 9,11,23,6,1,15,9,17,20},max,N;
max=select(a,& n);
printf("max=%d,line=%d\n ",max,n);
}
解析:本题先假设A [1] [1]为值,然后利用循环结构将二维数组中的每个元素与A [row] [column]逐一比较。如果它大于一个[行][列]的值,让一个[行][列]。,并返回第二个空中的值。显然,它是一个[行][列]。
main()
{int i,j row,colum,m;
static int array[3][3]= { { 100,200,300},{28,72,-30}{-850,2,6 } };
m = array[0][0];for(I = 0;I < 3;i++)
for(j = 0;j < 3;j++)
if(array[I][j]< m)
{ m = array[I][j];colum = j;row = I;}
printf("%d,%d,%d\n ",m,row,column);
}
解析:两个for循环扫描数组元素,找到数组中值最小的元素及其位置。
[15]
(16)my _ CMP()的作用是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差,即当s > t时返回正值,当s < t时返回负值,请填写空。
my_cmp(char *s,char * t)
{ while(* s = = * t)
{ if(* s = = ' \ 0 ')返回0;
++ s;++ t;
} return【18】;
}
解析:两个字符串的大小比较必须从它们的第一个字符开始,当对应的字符相等时循环,直到不相等结束。相等时,如果字符串已经到达字符串的结束标记,则两个字符串相同,函数返回值0;如果有后续字符,准备比较下一对字符。对应的字符不同,循环结束。在循环结束时,它作为两个当前字符的差返回。所以空框里要填*s-*t,保证s > t时返回正值,s < t时返回负值。
(17)如果有以下语句和定义,则变量w在内存中占用的字节数为。
union aa { float x;浮动y;char c[6];};
struct ST { union aa v;float w[5];双ave} w;
解析:Shared aa有三个组件,一个是float X,一个是float Y,一个是有六个元素的字符数组。如果浮点型数据占用4个字节,则aa型数据占用6个字节。结构变量W有三个分量,一个是共享分量aa,占用6个字节;一个是有五个浮点元素的数组W,占用20个字节;一个是double ave,double数据需要8个字节,所以结构变量W需要34个字节。
(18)“FILE * p”的作用是定义一个文件指针变量,其中“FILE”在[20]头文件中定义。
解析:代码“FILE *p”的作用是定义一个文件指针变量,其中文件定义在标准I/O头文件stdio.h中
[19]
位律师回复
0条评论