2010年春
江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试
二级 C语言
第二部分C语言程序设计
一、选择题(用答题卡答题,答案依次填在21~30答题号内,共l0分)
21.C语言规定,在一个源程序中main函数的位置 _____(21)_____ 。 A.必须在最开始 B.必须在最后
C.必须在预处理命令的后面 D.可以在其他函数之前或之后 22.以下选项中,______(22)______ 是C语言关键字 A.printf B.include C.fun D.default
23.已知有声明\则执行语句\后,c的值为__(23)___ 。
A.0 B.3 C.3.5 D.4
24.设指针变量占2个字节的内存空间,若有声明\*p=\c;\则执行语句\后,c的值为__(24)___ A.1 B.2 C.3 D.4
25.已知有声明\下列表达式中合法的是 (25) A.a+b=7 B.a=|b| C.a=b=0 D.(a++)++
26.已知有声明\在程序运行过程中,若要想使数组s中的内容修改为\则以下语句中能够实现此功能的是 (26) 。 A.s=\.s[20l=\
C.strcat(s,\.strcpy(s,\27.已知有声明\
a[4][4]={{1,2,3,4},{5,6,7,8),{9,10,11,12},{13,14,15,16)};\若需要引用值为12的数组元素,则下列选项中错误的是( 27 ) 。
A.*(a+2)+3 B.*(*(a+2)+3) C.*(a[2]+3) D.a[2][3]
28.已知有声明\则执行语句\后,y的值为 ( 28 ) 。
A.3 B.3.0 C.3.89 D.4.0
29.已知有声明\则执行表达式\后,变量b和c的值分别为( 29 )
A.3,1 B.15,12 C.15,1 D.3,12
30.下列叙述中,正确的是 _____(30)______ 。
A.C语言中的文件是流式文件,因此只能顺序存取文件中的数据。
B.调用fopen函数时若用\或\模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在。
C.当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到该文件中的第1个数据
D.无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖
二、填空题(将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分) ● 基本概念 1. 数学式
所对应的c语言表达式为pow(x, __(1)__)。
2. 已知有声明\则表达式ch=ch-'a'+'A'的值为字符 (2) 的编码。
3. 在C语言系统中,如果一个变量能正确存储的数据范围为整数-32768~32767,则该变量在内存中占_____(3)_____个字节。 '
4. 已知有声明\则执行语句\后的输出结果为__(4)___ 。
5. 已知有声明和语句\欲从键盘上输入数据使a中的值为3,则正确的输入应是 _____(5)_____ 。 ? 阅读程序
6. 以下程序运行时输出到屏幕的结果为 (6) 。 #include
#define MAX(A,B) A>B?2*A:2*B void main()
{int a=1,b=2,c=3,d=4,t; t=MAX(a+b,c+d); printf(\ }
7.以下程序运行时输出到屏幕的结果是 (7) 。 #include
void main() {int a=1,b=2; a+=b; b=a-b; a-=b;
printf(\ }
8.以下程序运行时输出到屏幕的结果是 (8) 。 #include
void swap(int a,int b) {int t;
if(a>b)t=a,a=b,b=t; }
void main()
{int x=13,y=11,z=12; if(x>y)swap(x,y); if(x>z)swap(x,z); if(y>z)swap(y,z);
printf(\
}
9?以下程序运行时输出到屏幕的结果第一行是 (9) ,第二行是 (10) ,第三行是(11) 。 #include
int g(int x,int y) { return x+y; }
int f(int x,int y) {
{static int x=2; if(y>2) { x=x*x; y=x; }
else y=x+1; }
return x+y; }
void main() {int a=3;
printf(\ printf(\ printf(\ }
10.以下程序运行时输出到屏幕的结果是 (12) 。 #include
void fun(int m,int n) {if(m>=n)
printf(\ else
fun(m+1,n); printf(\ }
void main() { fun(1,2); }
11.以下程序运行时输出到屏幕的结果第二行是 (13) ,第四行是 #include #define N 6 void main()
{int i,j,a[N+1][N+1]; for(i=1;i<=N;i++)
{a[i][i]=1;a[i][1]=1;} for(i=3;i<=N;i++) for(j=2;j
。 (14)
a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=1;i<=N;i++)
{ for(j=1;j<=i;j++) printf(\ printf(\ } }
12.以下程序运行时输出到屏幕的结果第一行是 (15) ,第二行是 (16) 。 #include
void fun(char *p1,char *p2); void main()
{int i; char a[]=\ puts(a+2); fun(a,a+4); puts(a); }
void fun(char *p1,char *p2) {char t;
while(p1 {t=*p1;*p1=*p2;*p2=t; p1+=2,p2-=2; } } 13.以下程序运行时输出至到屏幕的结果第一行是(17) ,第二行是(18) 。 #include typedef struct{int x,y;}direction; int visible(direction s,direction A,direction B,direction C) {direction p1,p2; int d; p1.x=B.x-A.x; p1.y=B.y-A.y; p2.x=C.x-A.x; p2.y=C.y-A.y; d=s.x*p1.x*p2.x+s.y*p1.y*p2.y; printf(\ return d>0; } void main() {char *ss[]={\ direction s={1,1},T={1,1},A={0,0},B={2,1}; puts(ss[visible(s,T,A,B)]); } ? 完善程序
相关推荐: