習(xí)題 3
3.1 單選題
1.若變量a、i已正確定義,且i已正確賦值,則合法的語句是( )。
A.a(chǎn)==1
B.++i;C.a(chǎn)=a++=5;
D.a(chǎn)=int(i);
2.以下程序的輸出結(jié)果是( )。
#include "stdio.h"
main( )
{ int y=3,x=3,z=1;
printf("%d %d\n",(++x,y++),z+2);
}
A.3 4
B.4 2
C.4 3
D.3 3
3.若有以下定義和語句:
int u=010,v=0x10,w=10;
printf("%d,%d,%d\n",u,v,w) ;
則輸出結(jié)果是( )。
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10
4.若有以下定義和語句:
char c1='b',c2='e';
printf("%d,%c\n",c2-c1,c2-'a'+'A');
則輸出結(jié)果是( )。
A.2,M
B.3,E
C.2,E
D.輸出項(xiàng)與對應(yīng)的格式控制不一致,輸出結(jié)果不確定
5.以下程序段的輸出結(jié)果是( )。
int a=1234;
printf("%2d\n",a);
A.12
B.34
C.1234
D.提示出錯(cuò)、無結(jié)果
6.以下程序的輸出結(jié)果是( )。
#include "stdio.h"
main( )
{
char c='z';
printf("%c",c-25);
}
A.a(chǎn)
B.Z
C.z-25
D.y
7.以下程序的輸出結(jié)果是( )。
main( )
{int k=17;
printf("%d,%o,%x \n",k,k,k);
}
A.17,021,0x11
B.17,17,17
B.17,0x11,021
D.17,21,11
8.以下程序的輸出結(jié)果是( )。
main( )
{ double d=3.2; int x,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d \n", d*y);
}
A.3
B.3.2
C.0
D.3.07
9.下列程序執(zhí)行后的輸出結(jié)果是(小數(shù)點(diǎn)后只寫1位)( )。
main( )
{ double d; float f; long k; int i;
i=f=k=d=20/3;
printf("%d%ld%f%f \n", i,k,f,d);
}
A.6 6 6.0 6.0
B.6 6 6.7 6.7
C.6 6 6.0 6.7
D.6 6 6.7 6.0
10.下列語句:
printf("a\bre\'hi\'y\\\bou\n");
的輸出結(jié)果是( )。提示,'\b'是退格符。
A.a(chǎn)\bre\'hi\'y\\\bou
B.a(chǎn)\bre\'hi\'y\bou
C.re'hi'you
D.a(chǎn)bre'hi'y\bou
11.x、y、z被定義為int型變量,若從鍵盤上給x、y、z輸入數(shù)據(jù),則正確的輸入語句是( )。
A.INPUT x、y、z;
B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x,&y,&z);
12.設(shè)i是int型變量,f是float型變量,要通過語句“scanf("i=%d,f=%f",&i,&f);”給i賦值100,f賦值765.12,則正確的輸入為( )。
A.100765.12
B.i=100,f=765.12
C.100765.12
D.x=100y=765.12
3.2 填空題
1.若有定義:
int a=10,b=9,c=8;
接著順序執(zhí)行下列語句后:
c=(a-=(b-5));
c=(a%11)+(b=3);
則變量b中的值是__________。
2.以下程序的輸出結(jié)果是__________。
#include "stdio.h"
main( )
{ int a=177;
printf("%#o\n",a);
}
3.以下程序的輸出結(jié)果是__________。
#include "stdio.h"
main( )
{ int a=0;
a+=(a=8);
printf("%#x\n",a);
}
4.以下程序的輸出結(jié)果是__________,程序的功能是__________。
main( )
{ int a=1, b=2;
a=a+b; b=a-b; a=a-b;
printf("%-3d,%-3d\n", a, b );
}
5.下列程序的輸出結(jié)果是16.00,請?jiān)诔绦蛑刑羁铡?/p>
#include "stdio.h"
main( )
{ int a=9, b=2;
float x=________ , y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n", z );
}
6.若有語句:
int i=-19,j=i%4;
printf("%.3d\n",j);
則輸出結(jié)果是__________。
7.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是__________。
int b,c; float a;
scanf("%f,%d,c=%d",&a,&b,&c);
8.若有程序:
#include "stdio.h"
main( )
{ int i,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入__________。
9.以下程序的輸出結(jié)果是__________。
#include "stdio.h"
main( )
{ int x=65;
float pi=3.1416,a=123.456;
double b=8765.4321;
printf("(1)%d\n",x);
printf("(2)%6d,%c\n",x,x);
printf("(3)%f,%f\n",56.1234,a);
printf("(4)%14f\n",pi);
printf("(5)%14.3lf\n",b);
printf("(6)%e\n",586.4);
printf("(7)%14e\n",pi);
printf("(8)%g\n",pi);
printf("(9)%8.4g\n",b);
printf("(10)%12g,%g\n",pi,b);
}
10.執(zhí)行以下程序時(shí),若從第一列開始輸入數(shù)據(jù),為使變量a=2,b=5,x=8.8,y=76.34, c1='A',c2='a',正確的數(shù)據(jù)輸入形式是__________。
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=%d c2=%d",&c1,&c2);
printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c",a,b,x,y,c1,c2);
}
3.3 編程題
1.編寫程序?qū)崿F(xiàn)從鍵盤輸入兩個(gè)十進(jìn)制整型數(shù)據(jù)10和8給變量x和y,并按下列格式輸出。
x y
十進(jìn)制數(shù) 10 8
八進(jìn)制數(shù) 12 10
十六進(jìn)制數(shù) a 8
2.編寫一個(gè)程序,輸入一個(gè)大寫英文字符('B'~'Y'),輸出它的前導(dǎo)字符、該字符本身及其后續(xù)字符。
3.編寫一個(gè)程序,輸入一個(gè)3位正整數(shù),要求反向輸出對應(yīng)的整數(shù),如輸入123,則輸出321。編寫程序并給出相應(yīng)的程序流程圖。
4.編寫程序,讀入3個(gè)double型數(shù)據(jù),求它們的平均值,保留此平均值小數(shù)點(diǎn)后1位數(shù),對小數(shù)點(diǎn)后第2位數(shù)進(jìn)行四舍五入,最后輸出結(jié)果。
5.編寫程序,讀入3個(gè)整數(shù)給變量a、b、c,然后交換它們的值,把a(bǔ)原來的值給b,把b原來的值給c,把c原來的值給a。