数据结构与c语言模拟题一
第一部分 C语言(90分) 一.选择题(20分)
1、执行下面程序后,输出结果是() main()
{ a=45,b=27,c=0; c=max(a,b); printf(\}
int max(x,y) int x,y; { int z;
if(x>y) z=x; else z=y; return(z); }
A:45 B:27 C:18 D:72 2、C语言源程序的基本单位是( )
A:过程 B:函数 C:子程序 D:标识符
3、设C语言中,int类型数据占4个字节,则short类型数据占( ) A:1个字节 B:2个字节 C:4个字节 D:8个字节 4、以下描述中,正确的是()
A:预处理是指完成宏替换和文件包含中指定的文件的调用 B:预处理指令只能位于C源文件的开始
C:C源程序中凡是行首以#标识的控制行都是预处理指令
D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语 法分析作准备
5、下列数组说明中,正确的是()
A:int array[][4]; B:int array[][]; C:int array[][][5]; D:int array[3][]; 6、下面有关for循环的正确描述是 ( )
A:for循环只能用于循环次数已经确定的情况 B:for循环是先执行循环体语句,后判断表达式 C:在for循环中,不能用break语句跳出循环体
D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 7、若有下列定义int a[5],*p=a;,则对a数组元素地址的正确引用是( ) A:*(p+5) B:*p+2 C: &a[4] D: *p 8、以下()是正确的变量名
A: 5f B: if C: f.5 D: _f5
9、在C语言中,形参的缺省存储类是() A:auto B:register C:static D:extern 10、下列程序的输出结果是( ) main()
{ int x=1,y=0,a=0,b=0; switch(x) {
case 1:switch(y) {
case 0:a++;break; case 1:b++;break; }
case 2:a++;b++;break; case 3:a++;b++;break; }
printf(\}
A:a=1,b=0 B:a=2,b=1 C:a=1,b=1 D:a=2,b=2 11、以下能对二维数组a进行正确初始化的语句是()
A:int a[2][]={{1,0,1},{5,2,3}}; B:int a[][3]={{1,2,3},{4,5,6}}; C:int a[2][4]={{1,2,3},{4,5},{6}}; D:int a[][4]={{1,0,1}{},{1,1}}; 12、以下程序的运行结果是() main() { int n;
for(n=1;n<=10;n++) {
if(n%3==0) continue; printf(\} }
A:12457810 B:369 C:12 D:1234567890
13、设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型 为()
A:float B:char C:int D:double
14、若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是( ) A:int p=&x; B:int *p=x; C:int *p=&x; D:*p=*x;
15、若有以下定义int k=7,x=12;,则能使值为3的表达式是 ( ) A:x%=(k%=5) B:x%=(k-k%5) C:x%=k-k%5 D:(x%=k)-(k%=5)
16、经过int x=1,y=2,z=3;语句定义后,表达式z+=x>y?++x:++y的值为( ) A:2 B:3 C:6 D:5 17、下面程序段的输出结果为( )
int a,b;b=(a=3*5,a*4,a*5); printf(\A:60 B:75 C:65 D:无确定值
18、若希望当A的值为奇数时,表达式的值为\真\的值为偶数时,表达式的值 为\假\则以下不能满足要求的表达式是( )
A:A%2==1 B:!(A%2==0) C:!(A%2) D:A%2 19、执行y=10;x=y++;后变量x和y的值是( )
A:x=10, y=10 B:x=11,y=11 C:x=10,y=11 D:x=11,y=10
20、有如下程序段,int x=23; do {printf(\该程序的输出 结果是 ( )
A:321 B:23 C:不输出任何内容 D:陷入死循环
二.填空题(10分)
1、C语言源程序文件的后缀是,经过编译后,生成文件的后缀 是,经过连接后,生成文件的后缀是。 2、以下程序段的输出结果是。 a=3+5,a*4;x=11/3;printf(“%d,%d\\n”,a,x);
3、当a=1、b=2、c=3时,执行以下if语句后,a= 、b= 、c= if(a>c);b=a;a=c;c=b;
4、将以下嵌套的if语句改写成不嵌套的if语句:。 if(w<0) k=0;else if(w<=100) k=1; else k=0; 5、以下程序的输出结果。 main()
{ int x=2;while(x--);printf(“%d\\n”,x);}
6、若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后, a[1][2]得到的初值是,a[2][1]得到的初值是。
7、若有定义:char ch;使指针p指向变量ch的赋值语句是。 8、在C程序中数据可以用两种代码形式存放,它们是和。 9、若s是int型变量,则表达式s%2+(s+1)%2的值为。
10、若a是int 型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为。
三、程序阅读题(40分)
1、#include
int x=1,a=2,b=3; switch(x) {
case 1: a--; break; case 2: b++; break; case 3: a++;b++; }
printf(\
。 }
2、#include
char ch1 = 'E'; if (ch1 >= 'A') ch1++; else
ch1+=32;
printf(\}
3、#include
char ch1='A',ch2='B'; switch(ch1) {
case 'A': switch(ch2) {
case 'B': printf(\case 'A': printf(\}
case 'B': printf(\}
return 0; }
4、#include
int number , digit; number= 1234;
while ( number!= 0 ) {
digit = number ; printf( \number = number / 10 ; } }
5、#include
int i=10,m=0,n=0; do
{
if(i%2!=0) m=m+i; else n=n+i; i--;
}while(i>=0);
printf(\return 0; }
6、#include
int a,b;
for(a=1,b=1;a<=100;a++) {
if(b>20) break; if(b%4==1) {
b=b+4; continue; }
b=b-5; }
printf(\}
7、#include
char ch;
while((ch=getchar())!='\\n') {
if (ch>='A'&&ch<='Z') ch=ch+32;
else if (ch>='a'&&ch<='z') ch=ch-32;
printf(\} }
输入:ABCdef<回车> 8、#include
int a, b;
华中师范大学计算机考研874专业课模拟题



