C语言集中上机题目.doc
C语言集中上机题目
第一次实验 循环
1 编程
1.1 打印出以下图案
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
1.2 编写程序实现输入整数n,输出如下所示由数字组成的菱形。(图中n=5)
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 3 2 1
1 2 3 2 1
1 2 1
1
2 思考题
1.以下不是死循环的语句是 A 。
A)for (y=1,x=9;x>++y ; x=i++) i=x ;
B)for ( ; ; x++=i ) ;
C)while (1) { x++ ; }
D)for (i=10 ; ; i--) sum+=i ;
2. 下面程序段的运行结果是 D 。
x=y=0;
while (x<15) y++,x+=++y ;
printf(“%d,%d”,y,x);
A)20,7 B)6,12 C)20,8 D)8,20
3. 以下for循环的执行次数是 C 。
for (x=0,y=0; (y=123) && (x<4) ; x++) ;
A)无限循环 B)循环次数不定 C)4次 D)3次
4.写出下面程序运行的结果。
main ( )
{ int i,b,k=0 ;
for (i=1; i<=5 ; i++) {
b=i%2;
while (b--==0) k++ ;
}
printf(“%d,%d”,k,b);
}
解:2,0
5. 写出下面程序运行的结果。
main ( )
{ int a,b;
for (a=1,b=1 ; a<=100 ; a++) {
if (b>=20) break;
if (b%3==1) { b+=3 ; continue ; }
b-=5;
}
printf(“%d\n”,a);
}
解:8
6. 写出下面程序运行的结果。
main ( )
{ int k=1,n=263 ;
do { k*= n%10 ; n/=10 ; } while (n) ;
printf(“%d\n”,k);
}
解:36
第二次实验 数组
1 编程
1.1 打印以下图案:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
1.2 输入4×4的数组,编写程序实现:
(1)求出对角线上各元素的和;
(2)求出对角线上行、列下标均为偶数的各元素的积;
(3)找出对角线上其值最大的元素和它在数组中的位置。
2 思考题
1.下面程序的输出结果是 A 。
main ( )
{ char ch[7]=”12ab56”;
int i,s=0;
for (i=0;ch[i]>’0’&&ch[i]<=’9’;i+=2)
s=10*s+ch[i]-‘0’;
printf(“%d\n”,s);
}
A)1 B)1256 C)12ab56 D)ab
2.下面程序段的输出结果是 B 。
char c[5]={‘a’,’b’,’\0’,’c’,’\0’}
printf(“%s”,c);
A)’a’’b’ B)ab C)ab c D)abc
3.mian() C
{ int m[] [3]={1,4,7,2,5,8,3,6,9};
int i, j, k=2;
for(i=0;i<3;i++)
printf(“%d”,m[k][i]);
}
A)456 B)258 C)369 D)789
4. 当从键盘输入18并回车后,下面程序的运行结果是________.
main()
{int x,y,i,a[8],j,u,v;
scanf("%d",&x);
y=x;i=0;