1、putchar ( )函数可以向终端输出一个________
A)整型变量表达式值 B)实型变量值
C)字符串 D)字符或字符型变量值
2、.已有如下定义和输入语句,若要求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)10A20B↙ D)10A20 B↙
3、执行下列程序片段时输出结果是______
int x=13,y=5;
printf(“%d”,x%=(y/=2));
A)3 B)2 C)1 D)0
4、若定义x为double型变量,则能正确输入x值的语句是________
A)scanf(“%f”,x); B)scanf(“%f”,&x);
C)scanf(“%lf”,&x); D)scanf(“%5.1f”,&x);
5、.已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使I的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是____
A)scanf(“%2d%2d%2d”,&i,&j,&k);
B)scanf(“%d_%d_%d”,&i,&j,&k);
C)scanf(“%d,%d,%d”,&i,&j,&k);
D)scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
6、有输入语句: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↙
7、若要求的值分别为10、20、A、B,正确的数据输入是( )。
A)10A 20B 8、有如下程序,若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入是( ). main() { int a1,a2; char c1,c2; scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2): } A)1020AB 9、有如下程序.输入数据:12345M678<cR>后,x的值是( ),y的值是( )。 #include main(){ int x; float y; scanf("%3d%f",&x,&y);} 1,A.12345 B.123 C.45 D.345 2,A.15.000000 B.45678.000000 C.678.000000 D.123.000 10、有如下程序,输入数据:12M345<CR>后,x的值是( ),y的值是( ). #include main() { int x; float y; scanf("%3d%f",&x,&y); } 1,A.12 B.123 C.12345 D.0 2,A.12.000000 B.345.000000 C.12345.000000 D.0.000000 11、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( ). A) scanf(“%d%d1x,%1e”,&x,&y,&z); B) scanf(“%2d*%d%1f”,&x,&y,&z); C) scanf(“%x%*d%o”,&x,&Y); D) scanf(“%x%o%6.2f”, &x,&y,&z); 12、已有如下定义和输入语句,若要求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 13、已有定义int x; float y;且执行scanf(“%3d%3f”,&x,&y);语句时从第一列开始输入数据12345︼678<回车>,则x的值为(B),y的值为( )。(注:︼表示空格) 【1】A)12345 B)123 C) 45 D) 345 【2】A)无定植 B) 45.000000 C) 678.000000 D) 123.000000 14、已有程序和输入数据的形式,程序中输入语句的正确形式应当为( )。 (注:︼表示空格, main() { int a; float f; printf(“\nInput number:”); 输入语句 printf(“\nf=%f,a=%d\\n”,f,a);} Input number:4.5︼ ︼2 A) scanf(“%d,%f”,&a,&f); B) scanf(“%f,%d”,&f,&a); C) scanf(“%d,%f”,&a,&f); D) scanf(“%f,%d”,&f,&a); 15、根据定义和数据的输入方式,输入语句的正确形式为( )。 已有定义:float f1,f2; 数据的输入方式:4.52 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); 16、阅读以下程序,当输入数据的形式为:25,13,10 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) 不确定值 17、根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是( )。 main() { int x;float y; pringf(“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); 18、以下说法正确的是( ). A) 输入项可以为一个实型常量,如scanf(“%f”,3.5); B) 只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”); C) 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f); D) 当输入数据时,必须指明变量的地址,如scanf(“%f”,&f); 19、根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为( ). main() { char ch1,ch2,ch3; 输入语句 printf(“%c%c%c”,&ch1,&ch2,&ch3);} 输入形式:A B C 输出形式:A B A、scanf(“%c%c%c”,&ch1,&ch2,&ch3); B、scanf(“%c,%c,%c”,&ch1,&ch2,&ch3); C、scabf(“%c %c %c”,&ch1,&ch2.&ch3); D、scanf(“%c%c”,&ch1,&ch2,&ch3); 20、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是 ( ) 。(注:——表示空格) A) 132《回车》B) 1,C) 3,D) 2《回车》 E) a=1——b=3——c=2《回车》 F) a=1,G) b=3,H) c=2《回车》 21、 以下能正确的定义整形变量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; 22、 已知ch是是字符形变量,下面不正确的赋值语句是 ( ). A、ch=`a+b`; B、ch=`\\o`; C、ch=`7`+`9`; D、ch=5+9; 23、 已知ch是是字符形变量,下面正确的赋值语句是( ). A、ch=`123`; B、ch=`\\xff`; C、ch=`\\08`; D、ch=”\”; 24、 若有以下定义,则正确的赋值语句是( ). int a,b; float x A) a=1,b=2 B) b++; C) a=b=5 D) b=int(x); 25、 设X,Y均为FLOAT变量,则以下不合法的赋值语句是( ) A) ++x; B) y=(x%2)/10; C) x*=y+8; D) x=y=10; 26、 设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 27、设有说明:则能够正确使用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)); 28、有如下程序,对应正确的数据输入是( )。 #include main() { float a,b; scanf("%f%f",&a,&b); printf("a=%f,b=%f\\n",a,b);} A.2.04 C.A=2.04,B=5.67 29、以下程序的执行结果是( )。 #include main() {int sum,pad; sum=pad=5; pad=sum++; pad++; ++pad; printf("%d\\n",pad);} A.7 B.6 C.5 D.4 30、以下程序的执行结果是( ). #include {int i=010,j=10; printf("%d,%d\\n",++i,j--);} A.11,10 B.9,10 C.010,9 D.10,9 二、看程序写结果 1、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,问在键盘上如何输入? (︼表示空格) main ( ) { int a,b; float x,y; char c1,c2; scanf(“a=%d︼b=%d”,&a,&b); scanf(“ %f ︼%e”,&x,&y); scanf(“︼ %c︼ %c”,&c1,&c2); } 2、main() {int x=345; Printf(“%6d\\n%06d\\n%-6d\\n%2d”,x,x,x,x); } 三、填空题 1、输入两个实数a,b。然后交换它们的值,最后输出(提示:要交换两个数得借助一个中间变量temp.首先让temp存放a的值,然后把b存入a,再把temp存入b就完成了) main() {float a,b,temp; Printf(“请输入a和b的值:”); Scanf(“%d,%d”,________①________); Temp=a; ______②______________________ ____ ③______________________ Printf(“交换后,a=%d,b=%d\\n”,______④___________); } 2、以下程序的执行结果是 【 】 。 #include main() { short i=-1; ptintf("dec:%d,oct:%o,hex:%x,unsigned:%u\\n",i,i,i,i);} 3、以下程序的执行结果是【 】。 #include main() {float f=3.1415927; printf("%f,%5.4f,%3.3f",f,f,f);} 4、以下程序的执行结果是【 】。 #include main() {float f=3.5; printf("%f,%g",f,f)} 5、以下程序的输出结果为【 】. main() {printf(“*%f,%4.3f*\\n”,3.14,3.1415);} 6、以下程序的输出结果为【 】. main () { char c=`x`; printf(“c: dec=%d,oct=%o,hex%x,ASCII=%c\\n”,c,c,c,c);} 7、 已有定义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); 8、以下程序的输出结果为【 】. main() { int x=1,y=2; printf((“x=%d y=%d*sum*=%d\\n”,x,y,x+y); printf(“10Squared is : %d\\n”,10*10); 9、以下程序的输出结果为【 】. #include 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”,b); printf(“(4)%1f\\n”,b); printf(“(5)%14.3f\\n”,b); printf(“(6)%8.4f\\n”,b); printf(“(7)%.4f\\n”,b); } 10、以下printf 语句中*的作用是【 】,输出结果是【 】. #include main() { int=1; printf(“##%*d\\n”,i,i);i++; printf(“##%d\\n”,i,i) i++; printf(“##%*d\\n”,i,i);} 11、以下printf语句中的”-”的作用是【 】,该程序的输出结果是【 】. #include 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);} 12、以下程序的输出结果是【 】. #include main() {int a=325;double x= 3.1415926; printf(“a=%+06d x=%+e\\n”,a,x);} 13、 以下程序的输出结果是【 】. #include main() {int a=252; printf(“a=%o a=%#o\\n”,a,a); printf(“a=%x a=%#x\\n”,a,a);} 14、假设变量a和b为整形,以下语句可以不借助任何变量把a,b中的直进行交换.请填空 A+=【 】;b=a-【 】;a-=【 】; 15、假设变量a,b,c为整形, 以下语句借助中间变量把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; 【 】. 16、假设变量x,y,z为整形变量,m为long变量,则在16位微型机上执行下面的赋直语句后,y直为(32766), z直为(-1),m直为【 】. y=(x=32767,x-1); z=m=oxFFFF; 17、 假设变量x,为整形变量,则执行下面语句后x的直为【 】.x=7;x+=x-=x+x; 18、 假设变量a,b为整形变量,则以下语句的功能是【 】.a+=b;b=a-b;a-=b; 19、在scanf函数语句调用中,可以在格式字符和%之间加一个星号,他的作用是【 】,当输入以下数据:10__20_30__40<回车>(此处_代表空格),下面语句的执行结果是【 】. int a1,a2,a3; scanf(“%d%*d%d%d”,&a1,&a2,&a3); 20、有一输入函数scanf(“%d”,k);则不能使用float变量k得到正确数值的原因是【】和【】. scanf语句的正确形式应该是:scanf("%f",&k)) 21、已有定义int a;float b,x;char c1,c2;为使a=3,b=6.5,x=12.6,c1=’a’,c2=’A’正确的函数调用语句是【 】输入数据的方式是【 】. 22、若有以下定义的语句,为使变量c1得到字符’A’,变量c2得到字符’B’,正确的格式输入形式是【】. char c1,c2; scanf(“%4c%4c”,&c1,&c2); 23、执行以下程序时,若从第一列开始输数据,为使变量a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,正确的数据输入形式是【 】. main() {int a,b;float x,y;char c1,c2; scanf(“a=%d b=%d’,&a.,&b) scanf(“x%f y=%d’,&a.,&b) scanf(“a=%d b=%d’,&a.,&b) printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c”,a,b,x,y,c1,c2);} 24、已有定义int i,j;float x;为将-10赋值给i, 12赋值给j,410.34赋值给x,则对应以下函数调用语句的数据输入形式是【 】.scanf(“%o%x%e”,&i,&j,&x) 25、以下程序的执行结果是【 】。 #include main() {float f=31.41592; printf("%f,%e",f,f);} 26、以下程序的执行结果是【 】。 #include main() { char c='A'+10; printf("c='%c\\n",c);} 27、以下程序输入123<cR>后的执行结果是【 】. #include main() {int a,c; char b; scanf("%d%c%d",&a,&b,&c); printf("a=%d,b=%c,c=%d\\n",a,b,c);} 28、以下程序输入123456<CR>后的执行结果是【 】. #include main() {int a,b; scanf("%2d%3d",&a,&b); printf("a=%d,b=%d\\n",a,b);} 29、以下程序输入ABC<CR>后的执行结果是【 】. #include main() {char c; scanf("%3c",&c); printf("c=%c\\n",c);} 四、编程序: 1、 编写程序,从键盘上输入两个电阻的值,求它们并联和串联的电阻值,输出结果保留两位小数。 解:本题的输入输出要求很明确,并联和串联的电阻值计算公式如下: 并联电阻RP= 串联电阻RS=R1+R2 2、编写摄氏温度、华氏温度转换程序。要求:从键盘输入一个摄氏温度,屏幕就显示对应的华氏温度,输出取两位小数。转换公式:F=(C+32)×9/5 3、编写程序,从键盘输入梯形的上下底边长度和高,计算梯形的面积。 4、 编写程序,从键盘上输入一行字符,并依次显示在屏幕上。 5、 编写程序,从键盘输入一个字符,求出与该字符前后相邻的两个字符,按从小到大的顺序输出这三个字符的ASCII码。 参 一、 选择题 1、a=3︼b=7 8.5︼71.82 A︼a 2、︼︼︼345(右对齐,前补空格) 000345 (右对齐,前补0) 345︼︼︼(左对齐,后补空格) 345 (按原样输出) 三、填空题 1、①&a,&b ②a=b;③b=temp; ④a,b 2、dec:-1,oct:177777,hex:ffff,unsigned:65535 3、3.141596,3.1416,3.142 4、3.500000,3.5 5、*3.140000,3.142* 6、c:dec=120,oct=170,hex=78,ASCH=x 7、*d(1)=一2*d(2)=一2*d(3)=一2*,*d(4)=177776*d(5)=177776*d(6)=177776* 8、x=1 y=2 *sum*=3,10Squared is :100 9、123.456000,︼ ︼ ︼ ︼ ︼ ︼ ︼123.457,123.4560,8765.456700,︼ ︼ ︼ ︼ ︼ ︼8765.457,8765.4567,8765.4567 10、可以使同一输出语句中的输出宽度得以改变 ##1,##︼2,##︼ ︼ 3,##︼ ︼ ︼4,##︼ ︼ ︼ ︼5 11、输出数据左对齐 ︼ ︼ ︼ ︼12##,12︼ ︼ ︼ ︼##,︼ ︼3.141592600##,3.141592600︼ ︼## 12、a=十00325︼ ︼ ︼ x=十3.14159e十oo(此处︼代表空格) 13、a=374︼ ︼a=0374_,a=fc︼ ︼a=0xfc 14、b,b,b 15、t=a,c=t 16、65535 17、-14 18、不借助任何中间变量把a、b中的值进行交换 19、跳过对应的输入数据,当输入以长数据时:10︼ ︼20︼ ︼30︼ ︼40<回车>将把l0赋给a1,跳过20,把30赋给a2,把40赋给a 3 20、未指明变量k的地址,格式控制符与变量类型不匹配 21、scanf("%d%f%F%c%c".&a,&b,&cl,&c2),3︼6.5︼12.6aA<回车> 22、A︼ ︼ ︼B︼ ︼ ︼_<回车> 23、a=3︼b=7x=8.5︼y=71.82c1=A︼c2=a<回车> 24、一12︼c︼4.1034e十02<回车>25、31.415920,3.14159e+01 26、c=k 27、a=1,b=空格,c=2 28、a=12,b=345 29、c=A 四、编程题 1、#include main() { float r1,r2,rp,rs; printf("Input R1 and R2:"); scanf("%f %f",&r1,&r2); rs= (r1+r2); rp= rs/(r1*r2); printf("RP=%.2f RS=%.2f ",rp,rs); } 2、#include main() { float c,f; printf("Input C:"); scanf("%f",&c); f= (c+32.0)*9.0/5.0; printf("F=%.2f \\n ",f); } 3、#include main() { float a,b,h,s; printf("Input a,b,h:"); scanf("%f%f%f",&a,&b,&h); s= (a+b)*h/2.0; printf("s=%.2f \\n",s); } 4、用回车控制输入结束,用循环结构显示输入缓冲区的字符,程序如下: #include main() { char ch; while ((ch=getchar())!='\\n') printf("%c",ch); } 5、#include main() { char ch; ch=getchar(); printf("%c ASCII code is %d\\n",ch-1,ch-1); printf("%c ASCII code is %d\\n",ch,ch); printf("%c ASCII code is %d\\n",ch+1,ch+1); }
二、看程序写结果题号 1 2 3 4 5 6 7 8 9 10 答案 D C C B C D A D BA AB 题号 11 12 13 14 15 16 17 18 19 20 答案 D A B D B D B D A D 题号 21 22 23 24 25 26 27 28 29 30 答案 A A B B B A D A A B