📄 练习(二).txt
字号:
C语言的输入输出
一、选择题
1、putchar函数可以向终端输出一个( )
(A) 整型变量表达式值
(B) 实型变量值
(C) 字符串
(D) 字符或字符变量值
2、以下程序的输出结果是( )
void main()
{
printf("\n*s1=%15s*","chinabeijing");
printf("\n*s2=%-5s*","chi");
}
(A) *s1=chinabeijing *
*s2=**chi*
(B) *s1=chinabeijing *
*s2=chi *
(C) *s1=* chinabeijing*
*s2= chi*
(D) *s1= chinabeijing*
*s2=chi *
3、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式( );如果字符串长度小于5,则输出按方式( )
(A) 从左起输出该字串,右补空格
(B) 按原字符长从左向右全部输出
(C) 右对齐输出改字符串,左补空格
(D) 输出错误信息
4、已有定义int a=-2; 和输出语句:printf("%81x",a); 以下正确的叙述是( )
(A) 整型变量的输出格式符只有%d一种
(B) %x是格式符的一种,它可以适用于任何一种类型的数据
(C) %x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
(D) %8lx不是错误的格式符,其中数字8规定了输出字段的宽度
5、以下C程序正确的运行结果是( )
void main()
{
long y=-43456;
printf("y=%-8ld\n",y);
printf("y=%-08ld\n",y);
printf("y=%08ld\n",y);
printf("y=%+8ld\n",y);
}
(A) y= -43456
y=- 43456
y=-0043456
y=-43456
(B) y=-43456
y=-43456
y=-0043456
y=+ -43456
(C) y=-43456
y=-43456
y=-0043456
y= -43456
(D) y= -43456
y=-0043456
y=00043456
y=+43456
6、以下C程序正确的运行结果是( )
void main()
{
int y=2456;
printf("y=%3o\n",y);
printf("y=%8o\n",y);
printf("y=%#8o\n",y);
}
(A) y= 2456
y= 2456
y=########2456
(B) y= 4630
y= 4630
y=########4630
(C) y=2456
y= 2456
y= 02456
(D) y=4630
y= 4630
y= 04630
7、以下C程序正确的运行结果是( )
void main()
{
long y=23456;
printf("y=%3x\n",y);
printf("y=%8x\n",y);
printf("y=%#8x\n",y);
}
(A) y=5ba0
y= 5ba0
y= 0x5ba0
(B) y= 5ba0
y= 5ba0
y= 0x5ba0
(C) y=5ba0
y=5ba0
y=0x5ba0
(D) y=5ba0
y= 5ba0
y=####5ba0
8、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( )
(A) scanf("%d%lx,%le",&x,&y,&z);
(B) scanf("%2d*%d%lf",&x,&y,&z);
(C) scanf("%x%*d%o",&x,&y);
(D) scanf("%x%o%6.2f",&x,&y,&z);
9、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( )
int a1,a2; char c1,c2;
scanf(%d%c%d%c",&a1,&c1,&a2,&c2);
(A) 10A 20B
(B) 10 A 20 B
(C) 10 A 20 B
(D) 10A20 B
10、已有定义int x; float y; 且执行scanf("%3d%f",&x,&y); 语句时,从第一列开始输入数据12345 678〈回车〉,则x的值为( ),y的值为( )
[1](A) 12345
(B) 123
(C) 45
(D) 345
[2](A) 无定值
(B) 45.000000
(C) 678.000000
(D) 123.000000
11、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时, 正确的数据输入方式是( )
int a1,a2; char c1,c2;
scanf("%d%d",&a1,&a2);
scanf("%c%c",&c1,&c2);
(A) 1020AB<CR>
(B) 10 20<CR>
AB<CR>
(C) 10 20 AB<CR>
(D) 10 20AB<CR>
12、已有程序段和输入数据的形式,程序中输入语句的正确形式应当为( )
void main()
{
int a; float f;
printf("\nInput number: ");
输入语句
printf("\nf=%f,a=%d\n",f,a);
}
Input number: 4.5 2<CR>
(A) scanf("%d,%f",&a,&f);
(B) scanf("%f,%d",&f,&a);
(C) scanf("%d%f",&a,&f);
(D) scanf("%f%d",&f,&a);
13、根据定义和数据的输入方式,输入语句的正确形式为( )
已有定义:float f1,f2;
数据的输入方式:4.52
3.5
(A) scanf("%f,%f",&f1,&f2);
(B) scanf("%f%f",&f1,&f2);
(C) scanf("%3.2f% 2.1f",&f1,&f2);
(D) scanf("%3.2f%2.1f",&f1,&f2);
14、阅读以下程序,当输入数据的形式为:25,13,10<CR>,正确的输出结果为( )
void main()
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d\n",x+y+z);
}
(A) x+y+z=48
(B) x+y+z=35
(C) x+z=35
(D) 不确定值
15、根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是( )
void main()
{
int x; float y;
printf("enter x,y: ")
输入语句
输出语句
}
输入形式 enter x,y: 2,3,4
输出形式 x+y=5.40
(A) scanf("%d,%f",&x,&y);
printf("\nx+y=%4.2f",x+y);
(B) scanf("%d%f",&x,&y);
printf("\nx+y=%4.2f",x+y);
(C) scanf("%d%f",&x,&y);
printf("\nx+y=%6.1f",x+y);
(D) scanf("%d%3.1f",&x,&y);
printf("\nx+y=%4.2f",x+y);
16、以下说法正确的是( )
(A) 输入项可以为一个实型常量,如scanf("%f",3.5);
(B) 只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");
(C) 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);
(D) 当输入数据时,必须指明变量的地址,如scanf("%f",&f);
17、根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为( )
void main()
{
char ch1,ch2,ch3;
输入语句
printf(%c%c%c",ch1,ch2,ch3);
}
输入形式:ABC
输出形式:AB
(A) scanf("%c%c%c",&ch1,&ch2,&ch3);
(B) scanf("%c,%c,%c",&ch1,&ch2,&ch3);
(C) scanf("%c %c %c",&ch1,&ch2,&ch3);
(D) scanf("%c%c",&ch1,&ch2,&ch3);
18、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c); 为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是( )
(A) 132〈回车〉
(B) 1,3,2〈回车〉
(c) a=1 b=3 c=2〈回车〉
(D) a=1,b=3,c=2〈回车〉
19、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是( )
(A) int a=b=c=5;
(B) int a,b,c=5;
(C) a=5,b=5,c=5;
(D) a=b=c=5;
20、已知ch是字符型变量,下面正确的赋值语句是( )
(A) ch='a+b';
(B) ch='\0';
(C) ch='7'+'9';
(D) ch=5+9;
21、已知ch是字符型变量,下面正确的赋值语句是( )
(A) ch='123';
(B) ch='\xff';
(C) ch='\08';
(D) ch="\";
22、若有以下定义,则正确的赋值语句是( )
int a,b; float x;
(A) a=1,b=2,
(B) b++;
(C) a=b=5
(D) b=int(x);
23、设x,y均为float型变量,则以下不合法的赋值语句是( )
(A) ++x
(B) y=(x%2)/10;
(C) x*=y+8;
(D) x=y=0;
24、设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5; 后,x、y和z的值是( )
(A) x=10
y=15
z=10
(B) x=10
y=10
z=10
(C) x=10
y=10
z=15
(D) x=10
y=5
z=10
25、设有说明:double y=0.5,z=1.5; int x=10; 则能够正确使用C语言库函数的赋值语句是( )
(A) z=exp(y)+fabs(x);
(B) y=log10(y)+pow(y);
(C) z=sqrt(y-z);
(D) x=(int)(atan2((double)x,y)+exp(y-0.2));
二、填空题
26、以下程序的输出结果为________
void main()
{
short i;
i=-4;
printf("\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i)
}
27、以下程序的输出结果为________
void main()
{
printf("*%f,%4.3f*\n",3.14,3.1415);
}
28、以下程序的输出结果为________
void main()
{
char c='x';
printf("c:dec=%d,oct=%o,hex=%x,ASCII+%c\n",c,c,c,c);
}
29、已有定义int d=-2; 执行以下语句后的输出结果是________
printf("*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d);
printf("*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n",d,d,d);
30、已有定义int d=-2; 执行以下语句后的输出结果是________
printf("*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d);
printf("*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n",d,d,d);
31、已有定义float d1=3.5,d2=-3.5; 执行以下语句后的输出结果是________
printf("*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\n",d1,d1,d1);
printf("*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n",d2,d2,d2);
32、以下程序的输出结果是________
void main()
{
int x=1,y=2;
printf("x=%d y=%d *sum*=%d\n",x,y,x+y);
printf("10 Squared is: %d\n",10*10);
}
33、以下程序的输出结果是________
#include <stdio.h>
void main()
{
int x=10; float pi=3.1416;
printf("(1) %d\n",x);
printf("(2) %6d\n",x);
printf("(3) %f\n",56.1);
printf("(4) %14f\n",pi);
printf("(5) %e\n",568.1);
printf("(6) %14e\n",pi);
printf("(7) %g\n",pi);
printf("(8) %12g\n",pi);
}
34、以下程序的输出结果是________
#include <stdio.h>
void main()
{
float a=123.456; double b=8765.4567;
printf("(1) %f\n",a);
printf("(2) %14.3f\n",a);
printf("(3) %6.4f\n",a);
printf("(4) %lf\n",b);
printf("(5) %14.3lf\n",b);
printf("(6) %8.4lf\n",b);
printf("(7) %.4f\n",b);
}
35、以下printf语句中*号的作用是________,输出结果是________
#include <stdio.h>
void main()
{
int i=1;
printf("##%*d\n",i,i);
i++;
printf("##%*d\n",i,i);
i++;
printf("##%*d\n",i,i);
}
36、以下printf语句中的“-”的作用是________,该程序的输出结果是________
#include <stdio.h>
void main()
{
int x=12; double a=3.1415926;
printf("%6d##\n",x);
printf("%-6d##\n",x);
printf("%14.10lf##\n",a);
printf("%-14.10lf##\n",a);
}
37、以下程序的输出结果是________
#include <stdio.h>
void main()
{
int a=325; double x=3.1415926;
printf("a=%+06d x=%+e\n",a,x);
}
38、以下程序的输出结果是________
#include <stdio.h>
void main()
{
int a=252;
printf("a=%o a=%#o",a,a);
printf("a=%x a=%#x\n",a,a);
}
39、以下程序段的输出结果是________
int x=7281;
printf("(1) x=%3d,x=%6d,x=%6o,x=%6x,x=%6u\n",x,x,x,x,x);
printf("(2) x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n",x,x,x,x,x);
printf("(3) x=%+3d,x=%+6d,x=%+08d\n",x,x,x);
printf("(4) x=%o,x=%#o\n",x,x);
printf("(5) x=%x,x=%#x\n",x,x);
40、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换,请填空。
a+=________;
b=a-________;
a-=________;
41、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即:把b中的值给a,把c中的值给b,把a中的值给c。例如:交换前a=10,b=20,c=30; 交换后a=20,b=30,c=10。请填空。
________;
a=b; b=c;
________;
42、设x、y和z都是int型变量,m为long型变量,则在16位微型机上执行下面赋值语句后,y值为________,z值为________,m值为________。
y=(x=32767,x-1);
z=m=0xFFFF;
43、若x为int型变量,则执行以下语句后x的值是________
x=7;
x+=x-=x+x;
44、若a和b均为int型变量,则以下语句的功能是________
a+=b;b=a-b;a-=b;
45、在scanf函数调用语句中,可以在格式字符和%号之间加一星号,它的作用是________;当输入以下数据:10 20 30 40〈回车〉,下面语句的执行结果是________。
int a1,a2,a3;
scanf("%d%*d%d%d",&a1,&a2,&a3);
46、有一输入函数scanf("%d",k); 则不能使float类型变量k得到正确数值的原因是________和________。
47、已有定义int a; float b,x; char c1,c2; 为使a=3,b=6.5,x=12.6,c1='a',c2='A',正确的scanf函数调用语句是________,输入数据的方式为________。
48、若有以下定义和语句,为使变量c1得到字符'A',变量c2得到字符'B',正确的格式输入形式是________
char c1,c2;
scanf("%4c%4c",&c1,&c2);
49、执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82,c1='A',c2''a',正确的数据输入形式是________
void main()
{
int a,b; float x,y; char c1,c2;
scanf("a=%d b=%d",&a,&b);
scanf("x=%f y=%f",&x,&y);
scanf("c1=%c c2=%c",&c1,&c2);
printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c",a,b,x,y,c1,c2);
}
50、已有定义int i,j; float x; 为将-10赋给i,12赋给j,410.34赋给x,则对应以下scanf函数调用语句的数据输入形式是________
scanf("%o%x%e",&i,&j,&x);
循环
一、选择题
1、设有程序段
int k=10;
while(k=0) k=k-1;
则下面叙述中正确的是( )
(A) while循环执行10次
(B) 循环是无限循环
(C) 循环体语句一次也不执行
(D) 循环体语句执行一次
2、设有以下程序段
int x=0,s=0;
while(!x!=0) s+=++x;
printf("%d",s);
则( )
(A) 运行程序段后输出0
(B) 运行程序段后输出1
(C) 程序段中的控制表达式是非法的
(D) 程序段执行无限次
3、语句while(!E); 中的表达式!E等价于( )
(A) E==0
(B) E!=1
(C) E!=0
(D) E==1
4、下面程序段的运行结果是( )
a=1; b=2; c=2;
while(a<b<c) {t=a; a=b; b=t; c--;}
printf("%d,%d,%d",a,b,c);
(A) 1,2,0
(B) 2,1,0
(C) 1,2,1
(D) 2,1,1
5、下面程序段的运行结果是( )
x=y=0;
while(x<15) y++,x+=++y;
printf("%d,%d",y,x);
(A) 20,7
(B) 6,12
(C) 20,8
(D) 8,20
6、下面程序段的运行结果是( )
int n=0;
while(n++<=2); rpintf("%d",n);
(A) 2
(B) 3
(C) 4
(D) 有语法错
7、设有程序段
t=0;
while(printf("*"))
{
t++;
if(t<3) break;
}
下面描述正确的是( )
(A) 其中循环控制表达式与0等价
(B) 其中循环控制表达式与'0'等价
(C) 其中循环控制表达式是不合法的
(D) 以上说法都不对
8、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,①处应选择( )
#include <stdio.h>
void main()
{
int a,b,t;
scanf("%d%d",&a,&b);
while( ① )
{
if(a>b) {t=a; a=b; b=t}
printf("%d,%d\n",a,b);
scnaf("%d%d",&a,&b);
}
}
(A) !a=b
(B) a!=b
(C) a==b
(D) a=b
9、下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,①处应选择( )②处应选择( )
#include <stdio.h>
void main()
{
int m=0,n=0;
char c;
while(( ① )!='\n')
{
if(c>='A'&&c<='Z') m++;
if(c>='a'&&c<='z') n++;
}
printf("%d\n",m<n? ② )
}
① (A) c=getchar()
(B) getchar()
(C) c=getchar()
(D) scanf("%c",c)
② (A) n:m
(B) m:n
(C) m:m
(D) n:n
10、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z变成B。请选择①( )②( )
#include <stdio.h>
void main()
{
char c;
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z')
{
①;
if(c>'Z'&&c<='Z'+2)
②;
}
printf("%c",c);
}
}
① (A) c+=2
(B) c-=32
(C) c=c+32+2
(D) c-=30
② (A) c='B'
(B) c='A'
(C) c-=26
(D) c=c+26
11、下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择①( )
#include <stdio.h>
void main()
{
int a,max=0;
scanf("%d",&a);
while( ① )
{
if(max<a) max=a;
scanf("%d",&a);
}
printf("%d",max);
}
① (A) a==0
(B) a
(C) !a==1
(D) !a
12、下面程序的运行结果是( )
#include <stdio.h>
void main()
{
int num=0;
while(num<=2)
{
num++;
printf("%d\n",num);
}
}
(A) 1
(B) 1
2
(C) 1
2
3
(D) 1
2
3
4
13、若运行以下程序时,从键盘输入2473〈CR〉(〈CR〉表示回车),则下面程序的运行结果是( )
#include<stdio.h>
void main()
{
int c;
while((c=getchar())!='\n')
switch(c-'2')
{
case 0:
case 1: putchar(c+4);
case 2: putchar(c+4); break;
case 3: putchar(c+3);
default: putchar(c+2); break;
}
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -