1.设有以下语句:int x=10;x+=3+x%(3),则x的值是._________
A) 14 B) 15 C) 11 D) 12
答案:A
2,若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值__________.
A) 0 B) 1 C) 12 D) 6
答案:A
3.执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是________.
#include <stdio.h>
void main( )
{ int k; char cp;
cp=getchar( );
if (cp>='0' && cp<='9')
k=cp-'0';
else if (cp>='a' && cp<='f')
k=cp-'a'+10;
else k=cp-'A'+10;
printf("%d\n",k);
}
A) 2 B) 4 C) 1 D) 10
答案:A
4.若运行以下程序时,从键盘输入ADescriptor<回车> ,则下面程序的运行结果是( )
#include <stdio.h>
int main()
{
char c;
int v0 = 0, v1 = 0, v2 = 0;
do
{
switch (c = getchar())
{
case'a':case'A':
case'e':case'E':
case'i':case'I':
case'o':case'O':
case'u':case'U':v1 += 1;
default: v0 += 1; v2 += 1;
}
} while (c != '\n');
printf("v0=%d,v1=%d,v2=%d\n", v0, v1, v2);
return 0;
}
A、v0=7,v1=4,v2=7 B、v0=8,v1=4,V2=8 C、v0=11,v1=4,v2=11 D、v0=12,v1=4,v2=12
答案:D
解析:观察代码发现,主要构成就是一个循环包着一个switch,它的switch语句从我们输入的字符中读取,并通过读取的字符进行一系列的计算。但要注意的一点便是,它的switch中没有break,也就是说,它一旦执行了上面的,它就会一直往下走,直到走完,再通过循环判断。 ADescriptor<回车>。一共11个字符,a,e,i,o,u大小写,加起来有4个,令v1=v0=v2=4,剩下7个字符令v0+7,v2+7,所以最后v1=4,v0=v2=11,看上去好像就是这样,但需要注意的一点就是,它是dowhile循环,也就是先执行循环内容再判断,也就是说'\n'这个回车它也要执行1次,最后令v1=4,v0=v2=12,选D
5.编程题
注意:
F和c应选择为double型
答案:
#include"stdio.h"
int main()
{ double f,c;
scanf("%lf",&f);
c=5*(f-32)/9;
printf("c=%.2f",c);
return 0;
}
float的指数范围为 -127 ~ +129,而double的指数范围为 -1023 ~ +1024