5.5 综合自测
一、选择题
1.以下选项中,能正确表示a≥10或a≤0的关系表达式是( )。
A.a>=10 ora<=0 B.a>=10|a<=0
C.a>=10&&a<=0 D.a>=10 ||a<=0
2.假定所有变量均已正确定义,下列程序段运行后x的值是( )。
a=b=c=0;x=35;
if(!a)x--;
else if(b);
if(c)x=3;
else x=4;
A.34 B.4 C.35 D.3
3.以下程序的输出结果为( )。
#include <stdio.h>
main()
{ int a,b,c=246;
a=c/100% 9;
b=(-1)&&(-1);
printf("% d,% d\n",a,b);
}
A.2,1 B.3,2 C.4,3 D.2,-1
4.已知a=1、b=3、c=5、d=5,下列程序段运行后,x的值是( )。
if(a<b)
if(c<d)x=1;
else
if(a<c)
if(b<d)x=2;
else x=3;
else x=6;
else x=7;
A.1 B.2 C.3 D.6
5.能正确表示a和b同时为正或同时为负的表达式是( )。
A.(a>=0||b>=0)&&(a<0||b<0) B.(a>=0&&b>=0)&&(a<0&&b<0)
C.(a+b>0)&&(a+b<=0) D.a*b>0
6.以下程序的输出结果是( )。
#include <stdio.h>
main()
{ int a= -1,b=1;
if((++a<0)&&!(b-- < =0))
printf("% d % d\n",a,b);
else
printf("% d % d\n",b,a);
}
A.-11 B.01 C.10 D.00
7.下列关于switch语句和break语句的结论中,正确的是( )。
A.break语句是switch语句中的一部分
B.在switch语句中可以根据需要使用或不使用break语句
C.在switch语句中必须使用break语句
D.break语句只能用于switch语句中
8.若有定义inta=1,b=0,则执行以下语句后,输出为( )。
switch(a)
{ case 1:
switch(b)
{ case 0:printf("**0**");break;
case 1:printf("**1**");break;
}
case 2:printf("**2**");break;
}
A.**0** B.**0****2**
C.**0****1****2** D.有语法错误
9.以下程序的输出结果是( )。
#include <stdio.h>
main()
{ int x=1,a=0,b=0;
switch(x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("a=% d,b=% d\n",a,b);
}
A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2
10.以下程序的输出结果是( )。
#include <stdio.h>
main()
{ int a=12,b=5,c= -3;
if(a>b)
if(b<0)c=0;
else c++;
printf("% d\n",c);
}
A.0 B.1 C.-2 D.-3
11.运行以下程序,如果从键盘输入5,则输出结果是( )。
#include <stdio.h>
main()
{ int x;
scanf("% d",&x);
if(x-- <5)printf("% d",x);
else printf("% d",x++);
}
A.3 B.4 C.5 D.6
12.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是( )。
#include <stdio.h>
main()
{ int x;
scanf("% d",&x);
if(x++ >5)printf("% d",x);
else printf("% d\n",x--);
}
A.7和5 B.6和3 C.7和4 D.6和4
二、操作题
下列给定程序中,函数fun()的功能是:将大写字母转换为对应的小写字母之后的第5个字母;若小写字母为v~z,使小写字母的值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f;形参是字母W,则转换为小写字母b。
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序
#include <stdio.h>
#include <ctype.h>
char fun(char c)
{ if(c> = 'A'&& c< = 'Z')
/*****found*****/
c=c-32;
if(c> = 'a'&& c< = 'u')
/*****found*****/
c=c-5;
else if(c> = 'v'&& c< = 'z')
c=c-21;
return c;
}
main()
{ char cl,c2;
printf(" \nEnter a letter(A Z):");
cl=getchar();
if(isupper(cl))
{ c2=fun(cl);
printf(" \n \nThe letter % c change to % c\n",cl,c2);
}
else
printf("\nEnter(A-Z)!\n");
}