C语言期末笔试2009年1月A
.中国海洋大学 2008-2009学年 第学期
考试说明:本课程为闭卷考试,可携带书写与修正文具,满分为:100 分。
考试结束后请将后页答题卡与试卷 分开上交 。
一、单选题(每题2分,共30分)
1.以下叙述正确的是 ______ 。
A)C程序的每行只能写一条语句 B)语言本身没有输入输出语句
C)在C程序中,注释说明只能位于一条语句的后面
D)在多函数的程序中,main函数必须放在其它子函数的定义之前
2.以下不正确的常量表示形式是 ______ 。
A) 0.45B)0XF5C)‘\85’D) 32.67E-5
3. 以下不正确的变量名是 ______ 。
R&B B) _maxC) INTD) SUM3
4. 以下正确的一组语句是 ________。
A) int x=y=5; B) int n; scanf("%d",&n);int a[n];
C) char a,*p; p=&a; D) char s[10]; s="hello";
5. 若以下变量均已正确定义和赋值,则正确的语句是 ________。
A) a=b==5; B) y=x%2.0; C) x+y=10; D) n=8=2*4;
6.下面各组中与给出的程序段功能不等价的是 ________。
if(a>0) b=1;
else if(a==0) b=0;
else b=-1;
A)if(a>0) b=1; B)if(a>0) b=1;C)if(a>0) b=1; D)if(a>=0)
if(a==0) b=0; else if(a==0) b=0; if(a>0) b=1;
if(a<0) b=-1; if(a<0) b=-1; else b=-1; if(a==0) b=0;
else b=0; if(a<0) b=-1;
7. 运行下面程序段,若输入abc#,则程序输出是:________。
char c;int v1=0,v2=0;
while((c=getchar())!='#')
{ switch(c)
{ case 'a':v1++;
default :v1++;v2++;
case 'c':v2++;
}
}
printf("v1=%d,v2=%d\n",v1,v2);
A)2,2B)3,5C)3,4D)2,5
8.对for(表达式1; ;表达式3){…}可以理解为:________。
A)for(表达式1;1;表达式3){…} B) for(表达式1;表达式1;表达式3){…}
C)for(表达式1;0;表达式3){…} D) for(表达式1;表达式3;表达式3){…}
9.若有定义char a[]=”china”,b[]={’c’,’h’,’i’,’n’,’a’};则下面正确的叙述为:
A)数组a的长度小于数组b的长度B)数组a和b的长度相同
C)数组a的长度大于数组b的长度D)数组a和数组b中存储的内容完全一样
10. 已知a,b,m,n,c,d变量的定义如下,则执行完下列程序段后m,n的值为:_____。
int a=3,b=4,m=0,n=0,c=3,d=4;
(m=a
A) m=1 n=1B) m=1 n=0C) m=0 n=0D) m=0 n=1
11.下面程序的输出结果是:________。
void main()
{ char s[20]=”hello\0\t\\”;
printf(“%d”,strlen(s));
}
A) 8 B) 5 C) 11 D) 10;
12. 若有定义int a[3][3]={1,2,3,4,5,6,7,8,9},(*p)[3]=a;则下面能正确引用数组元素的表达式为:________。
A) a[3][3] B) *(p+2)+2 C) p[2][1]D) *(a+1+1)
13. 下面正确的函数定义是:________。
A) double fun(int x, int y) B) int fun(int x, y)
{ z=x+y; return z; } { int z; z=x+y; return z;}
C) double fun(x, y) D) fu