二级C语言分类模拟题547
(总分61.5,考试时间90分钟)
选择题
1. 有以下程序
#include<stdio.h>
ain()
{
int a=3;
a+=a-=a*a;
printf("%d\n",a);
}
程序运行后的输出结果是______。
A. 0        B. 9
C. 3        D. -12
2. 下列叙述中正确的是______。
A. 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化
B. 循环队列中的元素个数随队头指针的变化而动态变化
C. 循环队列中的元素个数随队尾指针的变化而动态变化
D. 以上说法都不对
3. 以下关于C语言数据类型的叙述中正确的是______。
A. C基本数据类型包括:分为整型、实型、浮点型、字符型四种
B. 实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式
C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型
4. 若有定义:char*ps[]={"aa","bb","cc","dd"};,则以下叙述正确的是______。
A. *ps[0]是字符"a"        B. *ps[0]是字符串"aa"
C. ps[0]是字符"a"        D. ps是字符串"aa"
5. 有以下程序:
#include<stdio.h>
main()
{int a=0,b=0,c=0,d=0;
if(a=1)b=1;c=2;
else d=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
程序的运行结果是______。
A. 1,1,2,0        B. 0,0,0,3
C. 编译有错        D. 0,1,2,0
6. 以下说法中正确的是______。
A. C语言程序的执行都是从程序的第一个函数开始
B. 在C语言程序中,要调用的函数必须在main函数中声明
C. 任何C语言程序的执行都是从main函数开始
D. C语言程序中的main函数必须放在程序的最前面
7. 有以下程序
#include<stdio.h>
void f(int*q)
{ int i=0;
for(;i<5;i++)(*q)++;
}
main()
{ int a[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是______。
A. 6,2,3,4,5,        B. 2,2,3,4,5,
C. 1,2,3,4,5,        D. 2,3,4,5,6,
8. 执行下列程序中的输出语句后,a的值是____。
main()
{ int a;
printf("%d\n", (a=2*3,a*5,a+7));
}
A. 17        B. 37
C. 6        D. 13
9. 以下叙述中不正确的是______。
A. 在不同的函数中可以使用相同的名字的变量
B. 函数中的形式参数是局部变量
C. 在一个函数内定义的变量只在本函数范围内有效
D. 在一个函数内的复合语句中定义的变量在本函数范围内有效
10. 指针变量p的基类型为double,并已指向一连续存储区,若p中当前的地址值为65490,则执行p++后,p中的值为 ____
A. 65490        B. 65492
C. 65494        D. 65498
11. 下述程序的输出结果是______。
#include<stdio.h>
void main()
{ char a=1,b=2;
char c=a^b<<2;
printf("\n%d",c);
}
A. 9        B. 10
C. 12        D. 2
12. 若有以下程序:
#include <stdio.h>
main( )
黄小蕾 {int a=1,b=2,c=3,d=4;
if((a=2) || (b=1))c=2;
if((c= =3) && (d=-1))a=5;
printf("%d,%d,%d,%d\n",a,b,c,d);
张木易和miki生活照 }
则程序的输出结果是______。
A. 1,2,3,4        B. 2,1,2,-1
C. 5,1,2,-1        D. 2,2,2,4
13. 有以下程序:
#include <stdio.h>
main ()
{ FILE *pf;
char *s1="China", *s2="Beijing";
pf=fopen("abc.dat", "wb+");
fwrite(s2, 7, 1, pf);
fwrite(s1, 3, 1, pf);
fclose (pf);
}
以上程序运行后,abc.dat文件的内容是____。
A. China        B. Beijing
C. BeijingChi        D. BeijingChina
14. 若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为______。
(x+y)%2+(int)a/(int)b
A. 1.0        B. 1
传统节日有哪些?C. 2.0        D. 2
15. C语言程序中,若函数无返回值,则应该对函数说明的类型是______。
A. int        B. double
C. char        D. void
16. 链表不具有的特点是______。
A. 不必事先估计存储空间        B. 可随机访问任意元素
C. 插入、删除不需要移动元素        D. 所需空间与线性表长度成正比
17. 有以下程序:
#include <stdio.h>
main()
{ int x=1, y=2, z=3;
if(x>y)
if(y<z) printf("% d", ++z);
else printf("% d", ++y);
printf("% d\n", x++);
}
程序的运行结果是______。
A. 331        B. 41
C. 2        D. 1
18. 一个C语言程序是由______。城市快速路
A. 一个主程序和若干子程序组成        B. 函数组成
C. 若干过程组成        D. 若干子程序组成
19. 若变量已正确定义,有以下程序段:i=0;do printf("%d,",i);while(i++);printf("%d\n",i);程序的运行结果是______。
A. 0,1        B. 0,0
C. 1,1        D. 程序进入无限循环
20. 下列定义数组的语句中,正确的是______。
A. int N=10;int x[N];
B. # define N 10int x[N];
C. int x[0..10];
D. int x[];
21. 在长度为n的有序线性表中进行二分法查,最坏情况下需要比较的次数是______。A.
O(n)
**(n2)
**(log2n)
吴宗宪为罗志祥发声**(nlog2n)
22. 以下叙述正确的是______。
A. do-while语句构成的循环,当while语句中的表达式值为0时结束循环
B. do-while语句和while-do构成的循环功能相同
C. while-do语句构成的循环,当while语句中的表达式值为非0时结束循环
D. do-while语句构成的循环,必须用break语句退出循环
23. 以下关于逻辑运算符两侧运算对象的叙述中正确的是______。
A. 可以是任意合法的表达式        B. 只能是整数0或非0整数韩再芬老公
C. 可以是结构体类型的数据        D. 只能是整数0或1
24. 下列关于C语言数据文件的叙述中正确的是
A. 文件由ASCII码字符序列组成,C语言只能读写文本文件
B. 文件由二进制数据序列组成,C语言只能读写二进制文件
C. 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D. 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
25. 有以下程序:
#include<stdio.h>
main()
{ char s[]={"aeiou"), *ps;
ps=s; printf("%c\n", *ps+4);
}
程序运行后的输出结果是( )。
A. .a        B. .e
C. .u        D. 元素s[4]的地址
26. 若有函数定义如下:
int fun(int x, int y)
{return x-y;}
则以下涉及上述函数的说明语句错误的______。
A. int fun(int x, y);
B. int fun(int, int);
C. int fun(int a, int b);
D. int i, fun(int x, int y);
27. 对于循环队列,下列叙述中正确的是______。
A. 队头指针是固定不变的        B. 队头指针一定大于队尾指针
C. 队头指针一定小于队尾指针        D. 队头指针可以大于队尾指针,也可以小于队尾指针
28. 有以下程序
struct S{int n;int a[20];};
void f(int *a,int n )
{ int i;
for(i=0;i<N-1;i++) A[I]+=I;}
main()
{ int i;struct S s{10,{2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
for(i=0;i<S.N;i++) PRINTF("%D",S.A[I]);}
程序运行后的输出结果是______。
A. 2,4,3,9,12,12,11,11,18,9,
B. 3,4,2,7,9,8,6,5,11,10,
C. 2,3,1,6,8,7,5,4,10,9,
D. 1,2,3,6,8,7,5,4,10,9,
29. 在ASCII代码表中每一个大写字母比它相应的小写字母的ASCII码____。
A. 小32        B. 小64
C. 大32        D. .大1
30. 若变量已正确定义,在if(W) printf("%d\n",k); 中,以下不可替代W的是______。
A. a< >b+c        B. ch=getchar()
C. a= =b+c        D. a+ +
31. 设栈的顺序存储空间为S(1:m),初始状态为top=m+1。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为______。
A. 30        B. 20
C. m-19        D. m-20
32. 有以下程序段:
int i,n;