A:C语言的基本组成单位是语句
B:C程序中的每一行只能写一条语句
C:C语句必须以分号结束
D:C语句必须在一行内完成
解释:
A:基本组成单位是函数
B、D都错
A:'\\'
B:'\108'
C:'xab'
D:'\nab'
解释:
B:八进制中数字最大是7
C:缺少反斜杠(\)
D:'\n'本就是一个单独的转移字符,n后面不能带其他东西
A: 必须在最开始
B:必须在系统调用的库函数的后面
C:可以任意
D:必须在最后
解释:
C程序中的主函数(main函数)是程序的入口点,程序从主函数开始执行。主函数可以在程序中的任何地方定义,不一定要在系统调用的库函数后面。在C程序中,系统调用的库函数可以在主函数之前或之后使用。只要正确地声明和调用这些库函数,它们可以在程序中的任何地方使用。编译器会根据函数的声明和调用来解析和链接这些函数的定义。需要注意的是,如果在主函数之前使用了库函数,需要在主函数之前提前声明这些函数,或者包含相应的头文件,以确保编译器能够正确的解析和链接这些函数。
A:160
B:-0xcdg
C:-01
D:-0x48a
解释:
A中160是十进制,C中-01是八进制,D中有0x是16进制,但是B中的字母到了g,16进制字母最高是F(15)。
A:short _a=1.1e-1;
B:double b=1+5e2.5;
C:long do=oxfdaL;
D:float 2_and=1e-3;
解释:
A中虽然右边是小数,但是赋值后把小数点舍去,直接是0;B中e后面只能是整数,会报错;C中变量名do为关键字,不合法;D中变量名以数字2开头不合法
A:++x;
B:y=(x%2)/10;
C:x*=y+8;
D:x=y=0;
解释:A表示:x=x+1,正确;B中%运算符的运算数只能是整数,因此错误。
A:9*x^n/(2*x-1)
B:9*x**n/(2*n-1)
C:9*pow(x,n)*(1.0/(2*x-1))
D:9*pow(n,x)/(2*x-1)
解释:
A中^是异或,不是次幂;B中**在C语言中不是次幂,在其他有写语言(比如python)是次幂;D中
计算的是n的x次幂,不符合题意。
#include
void main()
{
char c1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();
c6=getchar();
putchar(c1);
putchar(c2);
printf("%c%c\n",c5,c6);
}
输入:
123<回车>
45678<回车>
A:267
B:1256
C:1278
D:1245
解释:
输入123<回车>时,c1的值为'1',c2的值为'2',c3的值为'3',c4的值为'<回车>'。再执行"c5=getchar();c6=getchar()",从键盘输入45678<回车>,c5的值为'4',c6的值为'5'。
A:
switch(pow(a,2)+pow(b,2))
{
case 1:case 3:y=a+b;break;
case 0:case 5:y=a-b;
}
B:
switch(a*a+b*b);
{
case 3:
case 1:y=a+b;break;
case 0:y=b-a;break;
}
C:
switch a
{
default:x=a+b;
case 10:y=a-b;break;
case 11:y=a*d;break;
}
D:
switch(a+b)
{
case 10:x=a+b;break;
case 11:y=a-b;break;
}
解释:A中pow返回类型是double,而switch后面只能是整型或字符型;B中switch()后面加了分号“‘;”错误。C中switch后面少了括号()。
int i,k;
for(i=0,k=-1;k=1;i++,k++) printf("* * * *");
A:判断循环结束的条件非法
B:是无限循环
C:只循环一次
D:一次也不循环
解释:
循环中用于判断结束的条件为"k=1",这个表达式永真(永远都不是0),所以循环会永远进行下去。
while(a<10) x++;a++;
A:无限次
B:不确定次
C:9次
D:10次
解释:
for语句和while语句如果后面不加大括号{},那么其循环内容只是到第一个分号为止,因为每次只对x进行自加,a不受影响,而判断句结束条件又是a,所以循环无限次。
for(i=0;i++<3;)
A:2
B:3
C:4
D:5
解释:
虽然i的值为3时,i++<3不成立,跳出循环,但是i++等价于i=i+1,所以i还是要加1的,因此i最后的值为4.
#include
int main()
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d\n",x+y+z);
return 0;
}
A:x+y+z=48
B:x+y+z=35
C:x+z=35
D:不确定值
解释:
输入时各数之间以逗号间隔,而再scanf中没有逗号,所以输入不确定。
#include
int main()
{
int a,b,c;
a=7;b=8;c=9;
if(a>b)
a=b,b=c;c=a;
printf("a=%d b=%d c=%d",a,b,c);
return 0;
}
A:a=7 b=8 c=7
B: a=7 b=9 c=7
C: a=8 b=9 c=7
D: a=8 b=9 c=8
解释:
在if语句的下一行,a=b,b=c后面有一个分号,表示if语句包含到此为止,下面的c=a与if语句无关。ab为假,if语句不会执行,但是c=a会执行。
#include
int main()
{
int x=1;
do
{
x=-1*x;
}while(!x)
return 0;
}
A:是死循环
B:循环执行一次
C:循环执行两次
D:有语法错误
解释:
while()后面要有分号;,没有会报错