一、选择题
1、下面程序的输出是______
main()
{
int k=11;
printf("k=%d,k=%o,k=%x\n",k,k,k);
}
A.k=11,k=12,k=13
B.k=11,k=13,k=13
C.k=11,k=013,k=oXb
D.k=11,k=13,k=b
2、以下合法的C语言赋值语句是哪个?______
A.a=b=58
B.k=int(a+b) ;
C.a=58,b=58
D.i;
3、以下程序的输出结果是______
main()
{ int x=10,y=3;
printf(“%d\n”,y=x/y);
}
A.0
B. 1
C. 3
D.不确定
4、若变量已正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句是______
A.read (a,b,c);
B.scanf(“%d%d%d”,a,b,c);
C.scanf(“%D%D%D”,%a,%b,%c);
D.scanf(“%d%d%d”,&a,&b,&b);
5、执行下面程序段后,c3中的值是______
int c1=1 , c2=2 , c3;
c3=c1/c2;
A.0
B.1/2
C.0.5
D. 1
6、若执行以下程序段,其输出结果是______
int a=0 , b=0 , c=0;
c=(a-=a-5) , (a=b,b+3) ;
printf(“%d , %d , %d\n” , a,b,c);
A.3,0,-10
B.0,0,3
C.-10,3,-10
D.3,0,3
7、若有以下定义和语句:
int a=5;
a++;
此处表达式a++的值是______
A.7
B. 6
C. 5
D. 4
8、在C语言中,如果下面的变量都是int类型,则输出结果是______ sum=pad=5;
pad=sum++,pad++,++pad;
printf("%d\n",pad);
A.7
B. 6
C. 5
D. 4
9、以下程序的输出结果______
#include<stdio.h>
main()
{
int i=010,j=10;
printf("%d,%d\n",++i,j--);
}
A.11,10
B.9,10
C.010,9
D.10,9
10、若有定义和语句:
char s[10]; s="abcd"; printf("%d\n",s);则结果是_____
A.输出 abcd
B.输出 a
C.输出 adcb
D.编译不能通过
11、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处<CR>代表换行,代表空格):
1 2 <CR>
A B C<CR>
则能给X赋整数1,给Y赋数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是_______
A.scanf("x=%d y=%d",&x,&y); a=getchar(); c=getchar();
B.scanf("%d%d",&x,&y); a=getchar(); b=getchar(); c=getchar();
C.scanf("%d%d%c%c%c",&x,&y,&a,&b,&c);
D.scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);
12、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是______
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
13、若执行下面的程序从键盘输入3和4,则输出是_______
main()
{ int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if (a<b) s=b;
s=s*s;
printf("%d\n",s);
}
A.14
B.16
C.18
D.20
14、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f);
为了把100和765.12分别赋给i和f,则正确的输入为______
A.100<空格>765.12<回车>
B. B)i=100,f=765.12<回车>
C.100<回车>765.12<回车>
D.D)x=100<回车>,y=765.12<回车>
15、以下程序的输出结果是______
#include<stdio.h>
main()
{
printf("%d\n",NULL);
}
A.不确定
B.0
C.–1
D. 1
二、填空题
1、复合语句在语法上被认为是______,空语句的形式是______
2、如果想输出字符“%”,则应该在“格式控制”字符串中用______表示。
3、printf函数的“格式控制”包括两部分,他们是______和______。
4、符号’&’是______运算符,&a是指______。
5、复合语句是由一对______括起来的若干语句组成的。
6、getchar 函数的作用是______。
7、putchar 函数的作用是______。
8、scanf函数中的“格式控制”后面应当是______,而不是______。
9、分析下面程序:
main()
{ int x,y;
x=16;y=(x++)+x; printf(“%d\n”,y);
x=15;printf(“%d,%d\n”,++x,x);
x=20;y=x--+x; printf(“%d\n”,y);
x=13;printf(“%d,%d”,x++,x);
}
其输出结果是
————————
————————
————————
————————
10、已知字符A的ASCII码为十进制的65,下面程序的输出是______。
main()
{
char ch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
}
三、编写程序
1、编写程序,输入两个整数:1500和350,求出它们的商和余数并输出。
2、编写程序,读入三个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,b中原来的值给c, c中原来的值给a,且输出改变后的a,b,c的值。
3、输入两个整型变量a,b的值,输出a+b,a-b,a*b,a/b,(float)a/b,a%b的结果,要求连同算式一起输出,每个算式占一行。
例:a等于10,b等于5,a+b的结果输成
10+5=15
4、输入任意一个三位数,将其各位数字反序输出(例如输入123,输出321)。