|
一、单选题(共 10 道试题,共 20 分。)V 1. 以下关于数组的描述正确的是
A. 数组大小固定,但是可以有不同类型的数组元素
B. 数组大小可变,但是所有数组元素的类型必须相同
C. 数组大小固定,所有元素的类型必须相同
D. 数组大小可变,可以有不同类型的数组元素
满分:2 分
2. 以下能正确定义数组并正确赋初值的语句是
A. int N=5,b[N][N];
B. int a[1][2]={{1},{3}};
C. int c[2][]= {{1,2},{3,4}};
D. int d[3][2]={{1,2},{34}};
满分:2 分
3. 判断字符串的长度,应该使用的函数是
A. strcat
B. strcmp
C. strcpy
D. strlen
满分:2 分
4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是
A. 10
B. 6
C. 0
D. 20
满分:2 分
5. 从变量的作用域来分,可分为全局变量和局部变量,形参是
A. 局部变量
B. 全局变量
C. 静态变量
D. 动态变量
满分:2 分
6. 结构化程序设计方法中有三种基本控制结构,以下不正确的是
A. 顺序结构
B. 选择结构
C. 循环结构
D. 数组结构
满分:2 分
7. 在C语言中,十进制数47可等价地表示为
A. 2f
B. 02f
C. 57
D. 057
满分:2 分
8. 下列循环语句中,不能够正常结束的是
A.
int i=0;
for(;i<100;i++);
B.
int i=0;
for(;;){if(i++>100)break;}
C.
int i=0,j=0;
while(i<=j)j++;
D.
int i=0,j=0;
do{i+=j;i++;j++;}while(i<j);
满分:2 分
9. 下列错误的表达式是
A. -x++
B. (-x)++
C. x+++y
D. ++x+y
满分:2 分
10. 语句: printf("%d",(a=2)&&(b=-2));的输出结果是
A. 无输出
B. 结果不确定
C. 1
D. 2
满分:2 分
二、其他题(共 10 道试题,共 50 分。)V 1.
读程序写出程序执行结果
#include <stdio.h>
#define N 3
void zz(int x[N][N])
{ int i,j,t;
for(i=0;i<N;i++)
for(j=0;j<i;j++)
{ t=x[i][j]; x[i][j]=x[j][i]; x[j][i]=t; }
}
void main()
{ int str[N][N]={1,2,3,4,5,6,7,8,9}, i,j;
zz(str);
for(i=0;i<N;i++)
{ for(j=0;j<N;j++) printf(“%3d”,str[i][j]) ;
printf("\n") ;
}
}
满分:5 分
2.
读程序写出程序执行结果
#include <stdio.h>
#define S(x) x*x
void main()
{ int a,k=5,m=1;
a=S(k+m);
printf("%d",a);
}
满分:5 分
3.
读程序写出程序执行结果
#include <stdio.h>
void main()
{ int n1,n2,s=0;
n2=135;
while(n2!=0)
{ n1=n2%10;
s+=n1;
n2=n2/10;
}
printf("%d",s);
}
满分:5 分
4.
读程序写出程序执行结果
#include <stdio.h>
void ex( )
{ static int x=3 ;
--x ;
printf(“%d”,x) ;
}
void main ( )
{ ex( );
ex( );
}
满分:5 分
5.
读程序写出程序执行结果
#include <stdio.h>
void main()
{ char x[]="123456789",*p=x ;
int i=0;
while(*p)
{ if(i%2==0) *p='*’;
p++; i++;
}
puts(x);
}
满分:5 分
6.
读程序写出程序执行结果
#include <stdio.h>
void main()
{ int k=1;
switch(k)
{ case 0: printf("A"); break;
case 1: printf("B");
case 2: printf("I");
case 3: printf("G"); break;
default: printf("E");
}
}
满分:5 分
7.
读程序写出程序执行结果
#include <stdio.h>
void main()
{ int a[10],*p,*s,i;
for(i=0;i<10;i++) scanf(%d”,a+i);
for(p=a,s=a;p-a<10;p++) if(*p>*s)s=p;
printf(“max=%d,index=%d\n”,*s, s-a);
}
简述上列程序完成的功能:
满分:5 分
8.
读程序写出程序执行结果
#include <stdio.h>
#define S(a,b) (a)*(b)
void main()
{ int a=3 ,area;
area=S(a,a+3) ;
printf("area=%d\n",area);
}
满分:5 分
9.
读程序写出程序执行结果
#include <stdio.h>
void main()
{ int n= -5 ;
while(++n)
printf("%3d", ++n) ;
}
满分:5 分
10.
读程序写出程序执行结果
#include <stdio.h>
void main()
{ int a[]={2,4,6,8,10} ;
int i,s=0,*p=a+2;
for(i=0;i<5;i+=2)s+=*p++;
printf(“s=%d\n”,s);
}
满分:5 分
三、简答题(共 3 道试题,共 30 分。)V 1. 编程:对N个整数进行从大到小顺序排列。(备注:建议学员在做编程序题目时,事先在记事本或word文档中编写,然后拷贝至答题区域即可。)
满分:10 分
2. 编写程序,从键盘上任意输入20个整数,存入一个数组中,然后输出这些数中最大数及其下标以及最小数及其下标(备注:建议学员在做编程序题目时,事先在记事本或word文档中编写,然后拷贝至答题区域即可。)
满分:10 分
3.
满分:10 分 |
|