山东大学2010管C语言试题A及参考答案
管理学院管理科学与工程专业200程序设计试题(A)
(说明:所有答案均写在答题纸上,考完试卷交回)
===================================================
选择题(每小题2分,共20分)
以下每题有四个答案,分别标有(A)、(B)、(C)、(D),其中只有一个是正确答案。选择正确答案并将其标号写在答题纸上。
1.当把以下四个表达式当作语句的控制表达式时,有一个选项与其它三个选项不同,该选项是( )。
(A) !k%2= =1 (B) k%2= =1 (C) k%2!=0 (D) k%22.int i;对语句:for(i=0; i=1; i++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是( )。
(A) (B) 循环一次 (C) 循环两次 (D) 无限循环3.有以下程序段:void main( ){ int i=1, sum=0, n; scanf(%d", &n);
do{ i+=2; sum+=i; }while(i!=n); printf("%d", sum); }
若使程序的输出值为8,则应该从键盘输入的n的值是( )。
(A) 1 (B) 3 (C) 5 (D) 74.double x[10], *p=x;,以下能给数组元素x[6]读入数据的正确语句是( )。
scanf("%f", &x[6]); (B) scanf("%lf", *(x+6));
(C) scanf("%lf", p+6); (D) scanf("%lf", p[6]);5.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
void fun(int x[ ], int n) { int i=0; while(i
在下划线处应填入的是( )。
(A) x+i (B) &x[i+1] (C) x+(i++) (D) &x[++i]6.int fun(int k){ if(k<=1) return 1; else return fun(k?3)+1; }
若执行调用语句:n=fun(10);则函数fun总共被调用的次数是( )。
(A) (B) 4 (C) 6 (D) 107.执行程序:void sum(int a[ ]){a[0]=a[?1]+a[];}
void main( ){int a[ ]={1,2,3,4,5}; sum(&a[2]); printf("%d\n", a[2]); }
输出结果为( )。
(A) 5 (B) 6 (C) 7 (D) 88.有定义int a[3][4];则对数组第i行第j列的正确引用为( )。
(A) *(*(a+i)+j) (B) (a+i)[j] (C) *(a+i+j) (D) *(a+i)+j9.( )。
C(B) C语言函数可以嵌套调用,例如:fun(fun(x))
(C) C语言函数不可以单独编译
(D) C语言中除了main函数,其他函数不可作为单独文件形式存在10.有程序片段:char *s="1234567"; s+=3; printf("%s",s);其运行结果为( )。
不确定 (B) 3的地址 (C) 34567 (D) 4567写出下列程序的运行结果(每小题2分,共20分)
1.
#include
void main( )
{ int s;
scanf("%d", &s);
while(s>0)
{ switch(s)
{ case1:printf("%d", s+5);
case2: printf("%d", s+4); break;
case3: printf("%d", s+3);
default: printf("%d", s+1);break;
}
scanf("%d", &s);
}
}
运行时,若输入1 2 3 4 5 0,输出结果
2.
#include
void main( )
{ char s[ ]="012xy\08s34f4w2"; int i, n=0;
for(i=0; s[i]!=0; i++) if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n",n);
}
3.
#include
void fun(char *c)
{ while(*c){ if(*c>='a'&&*c<='z')