程序阅读及填空(答案)31955word版本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.程序阅读题
1.若运行时输入100↙,写出以下程序的运行结果。main ( )
{ int a ;
scanf(“%d”,&a);
printf(“%s”,(a%2!=0)?”No”:”Yes”);
}
答案: Yes
2.写出以下程序的运行结果。
main ( )
{ int a=2,b=7,c=5;
switch (a>0) {
case 1: switch (b<0) {
case 1: printf(“@”); break ;
case 2: printf(“!”); break ;
}
case 0: switch (c==5) {
case 1: pritnf(“*”) ; break ;
case 2: printf(“#”) ; break ;
default : printf(“#”) ; break ;
}
default : printf(“&”);
}
printf(“\n”);
}
答案: *&
3.写出下面程序运行的结果。
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
4.写出下面程序运行的结果。
main ( )
{ int k=1,n=263 ;
do { k*= n%10 ; n/=10 ; } while (n) ;
printf(“%d\n”,k);
}
答案:36
5.写出下面程序运行的结果。
{ int a=10,y=0 ;
do {
a+=2 ; y+=a ;
if (y>50) break ;
} while (a=14) ;
printf(“a=%d y=%d\n”,a,y) ;
}
答案:a=16 y=60
数组部分:
1.写出下面程序的运行结果。
main ( )
答案:
{ int a[6][6],i,j ;
for (i=1; i<6 ; i++)
for (j=1 ; j<6 ; j++)
a[i][j]=(i/j)*(j/i) ;
for (i=1;i<6 ; i++) {
for (j=1 ; j<6 ; j++)
printf(“%2d”,a[i][j]) ;
printf(“\n”);
}
}
2.写出下面程序的运行结果。
main ( )
{ int i=0;
char a[ ]=”abm”, b[ ]=”aqid”, c[10];
while (a[i]!=’\0’ && b[i]!=’\0’) {
if (a[i]>=b[i]) c[i]=a[i]-32 ;
else c[i]=b[i]-32 ;
i++;
}
c[i]=’\0’;
puts(c);
}
答案:AQM
3.当运行下面程序时,从键盘上输入AabD↙,则写出下面程序的运行结果。 main ( )
{ char s[80];
int i=0;
gets(s);
while (s[i]!=’\0’) {
if (s[i]<=’z’ && s[i]>=’a’)
s[i]=’z’+’a’-s[i] ;
i++;
puts(s);
}
答案:AzyD
二.程序判断题
1.下面程序将输入的大写字母改写成小写字母输出,其他字符不变;请判断下面程序的正误,如果错误请改正过来。
main ( )
{ char c;
c = getchar ( ) ;
c = (c>=’A’ | | c<=’Z’) ? c-32 : c+32 ;
printf(“%c”,c);
}
答案: c = (c>=’A’ | | c<=’Z’) ? c-32 : c+32 ; 改为:c = (c>='A'&& c<='Z') ? c+32 : c ;
2.下面程序输入两个运算数x,y和一个运算符号op,然后输出该运算结果的值,例如输入3+5↙得到结果8;请判断下面程序的正误,如果错误请改正过来。
main ( )
{
float x,y,r;
char op ;
scanf(“%f%c%f”,&x,&op,&y);
switch (op) {
case ‘+’ : r=x+y ;
case ‘-’ : r=x-y ;
case ‘*’ : r=x*y ;
case ‘/’ : r=x/y ;
}
printf(“%f”,r);
}
答案: 每个Case 分之后面加Break;
三.程序填空题
1、以下程序输出x,y,z三个数中的最小值,请填(2)空使程序完整。
main ( )
{ int x=4,y=5,z=8 ;
int u,v;
u = x v = u printf (“%d”,v); } 答案: 【1】x:y 【2】u:z 2、下述程序用“碾转相除法”计算两个整数m和n的最大公约数。该方法的基本思想是计算m和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。否则,将除数作