C语言集中上机题目

2019-01-05 12:26

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)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. 下面程序段的运行结果是 。

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循环的执行次数是 。

1

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); }

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); }

6. 写出下面程序运行的结果。

main ( )

{ int k=1,n=263 ;

do { k*= n ; n/=10 ; } while (n) ; printf(“%d\\n”,k); }

第二次实验 数组

1 编程

1.1 打印以下图案:

* * * * * * * * * * * * * * * * * * * * * * * * *

1.2 输入4×4的数组,编写程序实现: (1)求出对角线上各元素的和;

(2)求出对角线上行、列下标均为偶数的各元素的积; (3)找出对角线上其值最大的元素和它在数组中的位置。

2

2 思考题

1.下面程序的输出结果是 。

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.下面程序段的输出结果是 。

char c[5]={?a?,?b?,?\\0?,?c?,?\\0?} printf(“%s”,c);

A)?a??b? B)ab C)ab c D)abc 3.mian()

{ 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(\ y=x;i=0; do {u=y/2; a[i]=y%2; i++;y=u; }while(y>=1) for(j=i-1;j>=0;j--) printf(\

5.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.

3

(假设a[0][0]位于数组的第一个位置上。)

a)i*m+j b)j*m+i c)i*m+j-1 d)i*m+j+1

6. 当运行下面程序时,从键盘上输入7 4 8 9 1 5↙,则写出下面程序的运行结果。 main ( )

{ int a[6],i,j,k,m; for (i=0 ; i<6 ; i++) scanf (“%d”,&a[i]); for (i=5 ; i>=0; i--) { k=a[5];

for (j=4; j>=0; j--) a[j+1]=a[j] ; a[0]=k;

for (m=0 ; m<6 ; m++) printf(“%d ”,a[m]); printf(“\\n”); } }

第三次实验 函数

1 编程

1.1 写一函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出“1└┘9└┘9└┘0”。 1.2 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。

2 思考题

1.fun(int a,int b)

{ if(a>b) return(a); else return(b); }

main()

{ int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(“%\\d\\n”,r); }

程序运行后的输出结果是

A)3 B)6 C)8 D)12

2.以下不正确的说法是 。

A)全局变量,静态变量的初值是在编译时指定的 B)静态变量如果没有指定初值,则其初值为0 C)局部变量如果没有指定初值,则其初值不确定

4

D)函数中的静态变量在函数每次调用时,都会重新设置初值

3.写出下面程序的运行结果。

# define MAX 10 int a[MAX], i ; sub1 ( )

{ for (i=0; i

sub2 ( )

{ int a[MAX], i ,max ; max=5;

for (i=0; i

sub3 (int a[ ]) { int i ;

for (i=0; i

main ( )

{ sub1( ); sub3(a); sub2( ); sub3(a); }

4. 若输入的值是-125,写出下面程序的运行结果。

#include fun (int n) { int k,r ;

for (k=2; k<=sqrt(n); k++) { r = n % k ; while (!r) {

printf(“%d”,k); n=n/k; if (n>1) printf(“*”); r = n % k ; } }

if (n!=1) printf(“%d\\n”,n); }

main ( ) { int n ;

scanf(“%d”,&n); printf(“%d=”,n); if (n<0) printf(“-”); n = fabs(n); fun(n); }

5. 写出下面程序的运行结果。

int i=0; fun1 (int i)

5


C语言集中上机题目.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:20世纪世界史(版本一)超星尔雅满分答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: