程序分析填空训练题
(1) 若有语句
int i=-19,j=i%4;
printf("%d\n",j);
则输出的结果是【1】。

(2) 若有程序
main()
{ int i,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n ",i,j);
}
要求给i10,给j20,则应该从键盘输入【2】。

(3) 若有以下程序
main()
{ int p,a=5;
if(p=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是【3】。

(4) 若有以下程序
main()
{ int a=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d %d %d\n",a,b,c);
}
执行后输出结果为【4】。

(5) 若有以下程序
main()
{ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14} ,{-21,23,0,-24},{-31,32,-33,0}};
int i,j,s=0;
for(i=0;i<4;i++)
{ for(j=0;j<4;j++)
{ if(a[i][j]<0) continue;
if(a[i][j]==0) break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
执行后输出结果是【5】。

(6) 若有以下程序
main()
{ char a;
a='H'-'A'+'0';
printf("%c\n",a);
}
执行后输出结果是【6】。

(7) 若有以下程序
int f(int x,int y)
{ return(y-x)*x; }
main()
{ int a=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
执行后输出结果是【7】。

(8) 函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1.
其构成规律是:
1 0列元素和主对角线元素均为1
2 其余元素为其左上方和正上方元素之和
3 数据的个数每行递增1
请将程序补充完整。
#define N 6
void yanghui(int x[N][N])
{ int i,j;
x[0][0]=1;
for(i=1;i<N;i++)
{ x[i][0]=8=1;
for(j=1;j<i;j++)
x[i][j]=9;
}
}

(9) 以下函数的功能是删除字符串s中的所有数字字符。请填空。
viod dele(char *s)
{ int n=0,i;
for(i=0;s[i];i++)
if(10)
s[n++]=s[i];
s[n]=11;
}

(10) 设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。
main()
{ int findbig(int,int,int);
int (*f)(),x,y,z,big;
f=12;
scanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}

(11) 以下程序的输出结果是【13】。
#define MCRA(m) 2*m
#define MCRB(n,m) 2*MCRA(n)+m
main()
{ int i=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}

(12) 设有以下定义
struct ss
{ int info; struct ss *link;}x,y,z;
且已建立如下所示链表结构:x y z
请写出删除结点y的赋值语句【14】。

(13) 已有文本文件,其中的内容为:Helloeveryone!。以下程序中,文件已正确为而打开,由此文件指针fr指向文件,则程序的输出结果是【15】。
#include <stdio.h>
main()
{ FILE *fr; char str[40];
......
fgets(str,5,fr);
printf("%s\n",str);
fclose(fr);
}
14)以下程序运行后的输出结果是 16
main()
{ int p=30;
printf("%d\n",(p/3>0 ? p/10 : p%3));
}
15)以下程序运行后的输出结果是 17
main()
{ char m;
m='B'+32; printf("%c\n",m);
}
16)以下程序运行后的输出结果是 18
main()
{ int a=1,b=3,c=5;
if (c=a+b) printf("yes\n");
else printf("no\n");
}
17)以下程序运行后的输出结果是 19
字符串长度c++main()
{ int i,m=0,n=0,k=0;
for(i=9; i<=11;i++)
switch(i/10)
{ case 0: m++;n++;break;
case 10: n++; break;
default: k++;n++;
}
printf("%d %d %d\n",m,n,k);
}
18)执行以下程序后,输出'#'号的个数是 20
#include <stdio.h>
main()
{ int i,j;
for(i=1; i<5; i++)
for(j=2; j<=i; j++) putchar('#');
}
19)以下程序的功能是调用函数fun计算:m=1-2+3-4++9-10,并输出结果。请填空。
int fun( int n)
{ int m=0,f=1,i;
for(i=1; i<=n; i++)
{ m+=i*f;
f=21 ;
}
return m;
}
main()
{ printf("m=%d\n", 22 ); }
20)以下程序运行后的输出结果是 23
main()
{ int i,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{ n[i]=n[i-1]*2+1;
printf("%d ",n[i]);
}
}
21)以下程序运行后的输出结果是 24
main()
{ int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++) a[j][i]=0;
for(i=0;i<3;i++)
{ for(j=0;j<3;j++) printf("%d ",a[i][j]);
printf("\n");
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。