C语言(顺序结构)习题与答案
一、单选题
1、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序编译时出错。main()
/*Beginning */
{ int r; float s;
scanf("%d",&r);
s=π*r*r; printf("s=%f\n",s);
}
出错的原因是()。
A.计算圆面积的赋值语句中使用了非法变量
B.存放圆半径的变量r不应该定义为整型
C.注释语句书写位置错误
D.输出语句中格式描述符非法
正确答案:A
解析: A、π这个符合不是C语言的合法标识符,应提前进行常量定义
2、有以下程序
main()
{ int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是()。
A.12343514
B.12353514
C.12343513
D.12353513
正确答案:B
解析: B、m++ ++在m后,先使用m的值输出,后给m增1
++m,++在m前,先给m的值增1后,再输出m
3、有定义语句:int b;char c[10]; ,则正确的输入语句是()。
A.scanf("%d%s",b,c);
B.scanf("%d%s",&b,&c);
C.scanf("%d%s",b,&c);
D.scanf("%d%s",&b,c);
正确答案:D
解析: D、输入语句整型变量 b 需要取地址 &,c是数组名,本身就代表地址,所以不需要取地址符&
4、有以下程序
main()
{ int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是()。
A.123 456 789
B.m=123 n=456 p=789
C.m=123n=456p=789
D.m=123,n=456,p=789
正确答案:C
解析: C、输入语句中出现普通字符要按原样输入
5、有以下程序
main()
{ int a; char c=10;
float f=100.0; double x;
a=f/=c*=(x=6.5);
printf("%d %d %3.1f %3.1f\n",a,c,f,x);
}
程序运行后的输出结果是()。
A.1 65 1.0 6.5
B.1 65 1 6.5
C. 1 65 1.5 6.5
D.2 65 1.5 6.5
正确答案:C
二、填空题
1、有以下程序
main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是_______ 。
正确答案:-2
解析: x=-m++; 之后 x=-3 m=4
x=x+8/++n; 注意运算优先级先计算8/++n 既8/5=1,之后计算 x=-3+1 x的值为-2
2、有以下程序
main( )
{
int x=102,y=012;
printf(“%2d,%2d\n”,x,y);
}
执行后输出结果是_______ 。
正确答案:102,10 或 102,10
解析: %2d,小于数值实际宽度,按数值实际宽度输出012是八进制数十进制输出为10
3、以下程序的输出结果是___________。
main()
{ int a=177;
printf("%o\n",a);
}
正确答案:261
4、以下程序的输出结果是___________。
main()
{ int a=0
a+=(a=8);
printf("%d\n",a);
}
正确答案:16
5、若有语句
int i=-19,j=i%4;
printf("%d\n",j);
则输出结果是___________。
正确答案:-3