第二章
习题
1、 以下选项中可作为C语言合法常量的是 A)-80. B)-080 C)-8e1.0 D)-80.0e
2、 以下不能定义为用户标识符的是 A)Main B)_0 C)_int D)sizeof
3、以下选项中,不能作为合法常量的是 A)1.234e04 B)1.234e0.4 C)1.234e 4 D)1.234e0
4、 以下不能正确计算代数式值的C语言表达式是
A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3 C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2) 5、 以下能正确定义且赋初值的语句是
A)int n1=n2=10; B)char c=32;
C)float f=f+1.1; D)double x=12.3E2.5;
6、 设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是 A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m
7、 设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是 A)(!a==1)&&(!b==0) B)(a
int k=0,a=1,b=2,c=3;
k=ac ? c:k; 执行该程序段后,k的值是
A)3 B)2 C)1 D)0 9、 若以下选项中的变量已正确定义,则正确的赋值语句是 A)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3; 10、以下4个选项中,不能看作一条语句的是
A){;} B)a=0,b=0,c=0; C)if(a>0); D)if(b==0) m=1;n=2; 11、若变量x,y以正确定义并赋值,以下符合c语法的表达式是 A.++x,y=x-- B. x+1=y c.x=x+10=x+y D. double(x)/10
12、 以下叙述中错误的是
A)C程序中的#include和#define行均不是C语句 B)除逗号运算符外,赋值运算符的优先级最低 C)C程序中,j++;是赋值语句
D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
二、填空题
1.int k=11, 则k++后表达式的值_____和变量k的值______。 2.double x=3.2,++x后表达式的值_____和x的值_______。 3.表达式3.5+1/2的计算结果是_____。
4.把a1、a2定义成双精度实型变量,并赋初值1的定义语句是____。 5.表达式s=10应当是读做“_________”。 三、上机改错题
1.请指出以下C程序的错误所在: #include stdio.h
main(); / * main function * /
float r,s; /*/* r is radius*/,/* s is area of circular*/*/ r=5.0;
s=3.14159*r*r; printf(“%f\\n”,s)
2. 请指出以下C程序的错误所在: main /*main function*/ {
float a,b,c,v; / *a,b,c are sides , v si volume of cube * / a=2.0;b=3.0;c=4.0 v=a*b*c;
printf(“%f\\n”,v)
} 答案 一.选择题
1.A 2.D 3.B 4.A 5.B 6.D 7.A 8.B 9.C 10.D 11.A 12.D 二.填空题
1. 11,12 2. 4.2, 4.2 3. 3.5 4. double a1=1,a2=1; 5. 把10赋值给变量s
三.略 第三章
习题
一、选择题
(1)有以下程序 main()
{ int m,n,p;
scanf(\ printf(\
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是
a)m=123n=456p=789
b)m=123 n=456 p=789
c)m=123,n=456,p=789 d)123 456 789
(2) 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是 a) scanf(“---”,&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);
(3) 设有定义:long x=-123456l;,则以下能够正确输出变量x值的语句是 a)printf(“x=%d\\n”,x); b) printf(“x=\\n”,x); c)printf(“x=?l\\n”,x); d)printf(“x=%ld\\n”,x);
(4) 以下程序段的输出结果是 int a=1234; printf(\
a) 12 b) 34 c) 1234 d) 提示出错、无结果
(5) 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);
(6) 若变量已正确说明为float类型,要通过语句scanf(“%f %f %f ”,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是: a) 10<回车> b) 10.0,22.0,33.0<回车> 22<回车> 33<回车>
c) 10.0<回车> d) 10 22<回车> 22.0 33.0<回车> 33<回车>
(7) 有如下程序 main0
{ 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 (8)有以下程序
main()
{ int m,n,p;
scanf(\printf(\}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是
A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789
(9)有以下程序
#include
{ char c1=1,c2=2;
c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); }
当运行时输入:a<回车> 后,以下叙述正确的是 A)变量c1被赋予字符a,c2被赋予回车符 B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍是原有字符2 D)变量c1被赋予字符a,c2中将无确定值
(10).有以下程序 main()
{ char a1=?M?, a2=?m?; printf(\} 以下叙述中正确的是
A)程序输出大写字母M B)程序输出小写字母m
C)格式说明符不足,编译出错 D)程序运行时产生出错信息
二、填空题
1.若有以下定义,请写出以下程序段中输出语句执行后的输出结果 。 int i=-100,j=2300;
printf(“(1)%d,%d”,i,j);
printf(“(2)i=%d,j=%d\\n”,i,j); printf(“(3)i=%d\\nj=%d\\n”,i,j);
2. 变量i,j,k已定义为 int型并均有初值0,用以下语句进行输入时; scanf(“%d”,&i); scanf(“%d”,&j); scanf(“%d”,&k); 从键盘输入12.3
则变量i,j,k的值分别是 (1) , (2) , (3) 。
3. 以下程序段要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入50,给m输入13.61,给n输入3.14159时的三种可能的输入形式为 (1) ,
(2) , (3) 。 int k;float m;double n;
scanf(“%d%f%lf”,&k,&m,&n);
printf(“k=%d,m=%f,n=%f\\n”,k,m,n); 4、有以下程序
#include
{ char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar();
n1=ch1-‘0’; n2=n1*10+(ch2-‘0’); printf(\ }
程序运行时输入:12<回车>,执行后输出结果是__。
5、已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>.输出结果是
#include \main() {
char a,b;
a=getchar(); scanf(\a=a-'A'+’0’; b=b*2;
printf(\}
三.编程题
1. 若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765, c1=‘a’,c2=‘b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出,凵表示空格)。 a=凵3凵凵b=凵4凵凵c=凵5
x=1.200000,y=2.400000,z=-3.600000
x+y=凵3.600凵凵y+z=-1.20凵凵z+x=-2.40 c1=ˊaˊ凵or凵97(ascii) c2=ˊbˊ凵or凵98(ascii)
2. 用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82, c1=ˊaˊ,c2=ˊaˊ,问在键盘上如何输入?
main() {
int a,b;float x,y;char c1c2;