習題 3
3.1 單選題
1.若變量a、i已正確定義,且i已正確賦值,則合法的語句是( )。
A.a==1
B.++i;C.a=a++=5;
D.a=int(i);
2.以下程序的輸出結果是( )。
#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) ;
則輸出結果是( )。
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');
則輸出結果是( )。
A.2,M
B.3,E
C.2,E
D.輸出項與對應的格式控制不一致,輸出結果不確定
5.以下程序段的輸出結果是( )。
int a=1234;
printf("%2d\n",a);
A.12
B.34
C.1234
D.提示出錯、無結果
6.以下程序的輸出結果是( )。
#include "stdio.h"
main( )
{
char c='z';
printf("%c",c-25);
}
A.a
B.Z
C.z-25
D.y
7.以下程序的輸出結果是( )。
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.以下程序的輸出結果是( )。
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.下列程序執行后的輸出結果是(小數點后只寫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");
的輸出結果是( )。提示,'\b'是退格符。
A.a\bre\'hi\'y\\\bou
B.a\bre\'hi\'y\bou
C.re'hi'you
D.abre'hi'y\bou
11.x、y、z被定義為int型變量,若從鍵盤上給x、y、z輸入數據,則正確的輸入語句是( )。
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.設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;
接著順序執行下列語句后:
c=(a-=(b-5));
c=(a%11)+(b=3);
則變量b中的值是__________。
2.以下程序的輸出結果是__________。
#include "stdio.h"
main( )
{ int a=177;
printf("%#o\n",a);
}
3.以下程序的輸出結果是__________。
#include "stdio.h"
main( )
{ int a=0;
a+=(a=8);
printf("%#x\n",a);
}
4.以下程序的輸出結果是__________,程序的功能是__________。
main( )
{ int a=1, b=2;
a=a+b; b=a-b; a=a-b;
printf("%-3d,%-3d\n", a, b );
}
5.下列程序的輸出結果是16.00,請在程序中填空。
#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);
則輸出結果是__________。
7.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數據的形式應該是__________。
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,則應該從鍵盤輸入__________。
9.以下程序的輸出結果是__________。
#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.執行以下程序時,若從第一列開始輸入數據,為使變量a=2,b=5,x=8.8,y=76.34, 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=%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.編寫程序實現從鍵盤輸入兩個十進制整型數據10和8給變量x和y,并按下列格式輸出。
x y
十進制數 10 8
八進制數 12 10
十六進制數 a 8
2.編寫一個程序,輸入一個大寫英文字符('B'~'Y'),輸出它的前導字符、該字符本身及其后續字符。
3.編寫一個程序,輸入一個3位正整數,要求反向輸出對應的整數,如輸入123,則輸出321。編寫程序并給出相應的程序流程圖。
4.編寫程序,讀入3個double型數據,求它們的平均值,保留此平均值小數點后1位數,對小數點后第2位數進行四舍五入,最后輸出結果。
5.編寫程序,讀入3個整數給變量a、b、c,然后交換它們的值,把a原來的值給b,把b原來的值給c,把c原來的值給a。