c语言习题--输入输出函数
1.  iint型变量,ffloat型变量,用下面的语句给这两个变量输入值:
 scanf("i=%d,f=%f",&i,&f);
 为了把100和分别赋给if,则正确的输入为
A)100<空格><回车>            B)i=100,f=<回车>
C)100<回车><回车>            D)x=100<回车>,y=<回车>
 2.  以下程序的输出结果是
main( )
{int a=12b=12;
printf("%d %d\n"--a++b);
}
 A)10 10      B)12 12      C)11 10        D)11 13
 3.  以下程序运行后,输出结果是
main( )
{
char *s="abcde";
s+=2;
printf("%ld\n"s);
}
A)cde        B)字符cASCII码值        C)字符c的地址        D)出错
 4.  以下程序输出结果是
main( )
函数printf
{
int m=5;
if(m++>5)printf("%d\n"m);
else printf("%d\n"m--);
A)7      B)6
C)5      D)4
 5.  a=1b=3c=5d=4时,执行下面一段程序后,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
6.  下面能正确进行字符串赋值操作的语句是
A)char s[5]={"ABCDE"};          B)char s[5]={'A''B''C''D''E'};
C) char *s;s="ABCDEF";          D)char *s; scanf("%s"s);
 7.  以下程序运行后,输出结果是
#include<>
#define PT
#define S(x) PT*x*x
main( )
{
int a=1b=2;
printf("%4.1f\n"S(a+b))
}
A)        B)9.5        C)        D)
 8.      以下程序的输出结果是
# include <>
main()
  { printf("%d\n",NULL);  }
A) 不确定的(因变量无定义)  B0    C-1    D1
9.      设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是
A3        B0        C9        D-12
10.  以下程序的输出结果是
# include <>
# include <>
main()
{  char str[12]={'s','t','r','i','n','g'};
  printf("%d\n",strlen(str));  }
A) 6        B) 7        C) 11        D) 12
11.  以下程序的输出结果是
# include <>
main()
{  int a=2,c=5;
  printf("a=%%d,b=%%d\n",a,c);  }
A) a=%2,b=%5  B) a=2,b=5    C) a=%%d,b=%%d    D) a=%d,b=%d
12.  设有static char str[ ]="Beijing";则执行printf("%d\n", strlen(strcpy(str,"China")));
后的输出结果为
A) 5                B) 7                C) 12                D) 14
13.  xy都是int型变量,x=100y=200,且有下面的程序片段:
printf("%d",(x,y));
上面程序片段的输出结果是
A) 200          B) 100        C) 100 200      D) 输出格式符不够,输出不确定的值
14.  请读程序片段(字符串内没有空格):
printf("%d\n",strlen("ATS\n012\1\\"));
上面程序片段的输出结果是
A) 11              B) 10                C) 9                D) 8
15.  已知字母AASCII码为十进制的65,下面程序的输出是
main()
{ char ch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);}
A) 67,D                B) B,C               
C) C,D                D) 不确定的值
16.  若执行下面的程序时从键盘上输入34,则输出是
A) 14                  B) 16                C) 18                  D) 20
main()
{ int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a<b)s=b;
s=s*s;
printf("%d\n",s);}
17.  下面的程序
main()
{ int x=3,y=0,z=0;
if(x=y+z)printf("* * * *");
else    printf("# # # #");}
A) 有语法错误不能通过编译
B) 输出* * * *
C) 可以通过编译,但是不能通过连接,因而不能运行。
D) 输出# # # #
18.  下面程序的输出是
A) 17                  B) 18                C) 23                  D) 24
main()
{ int x=023;
printf(%d\n",--x);}
19.  若执行下面的程序时从键盘上输入5,则输出是
A) 7                  B) 6                  C) 5                  D) 4
main()
{ int x;
scanf("%d",&x);
if(x++>5) printf("%d\n",x);
else      printf("%d\n",x--);}
20.  下面程序的输出是
A) 0 0 3            B) 0 1 2            C) 1 0 3            D) 1 1 2
main()
{ int a=-1, b=4,k;
k=(a++<=0)&&(!(b--<=0));
printf("%d %d %d\n",k,a,b);}
21.  两次运行下面的程序,如果从键盘上分别输入64,则输出结果是
main( )
{ int x;
scanf("%d",&x);
if(x + + >5) printf("%d",x);
else        printf("%d\n",x - -);    }
A) 75              B) 63            C) 74            D) 64
22.  下面程序的输出是
main()
{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A)k=11,k=12,k=11                B)k=11,k=13,k=13     
C)k=11,k=013,k=0xb              D)k=11,k=13,k=b
23.  若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是
A*p=&a; scanf("%lf",p);     
B)p=(double*)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a); 
D)p=&a; scanf("%le",p);
24.  以下说法中正确的是
A) #defineprintf都是C语句      B) #defineC语句,而printf不是
C) printfC语句,但#define不是    D) #defineprintf都不是C语句
25.  语句:printf("%d \n"12 &012);的输出结果是
A) 12    B) 8    C) 6  D) 012
26.  语句:printf("%d \n"12 &012);的输出结果是
A) 12    B) 8    C) 6  D) 012
27.  下列程序执行后的输出结果是
    main()
    { char x=0xFFFF; printf("%d \n",x--); }
A) -32767      B) FFFE          C) -1            D) –32768
 28.  语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是
    A) a\bre\'hi\'y\\\bou            B) a\bre\'hi\'y\bou
    C) re'hi'you                  D) abre'hi'y\bou
        (说明:'\b'是退格符)