C语言配套习题和答案
scanf(“%c%c”,&c1,&c2); A)1020AB<CR>
B)10︼20<CR>
AB<CR>
C)10︼ ︼20︼ ︼AB<CR>
D)10︼20AB<CR>
答案:D
3.15 根据题目中已给出的数据的输入形式和输出形式,程序中输入输出语句的正确内容是
______
main()
{ int x; float y;
12356e (e 后应跟整数)
3e+2.3 (e 后应跟整数)
lg3 (表示形式不对)
0x2.5b (表示形式不对)
2.8 在下列符号中,你可以选哪些做变量名?哪些不可以?为什么?
a3B
3aB π
+a
b
*x
s
b
b5
if
next day e2
ok?
intger
maxnumber
i*j
答案:可做变量名的为:
‘105’ (单引号中应为单个字符)
‘AB’ (单引号中应为单个字符)
3+5 (这是表达式,不是常量) 35o 7” (无字符” o”)
π (无此字符)
e (e 前应有数值,e 后应跟整数)
03e5 (表示形式不对)
±7f (±不能同时出现,十六进制数应以 0x 开头)
7ff (应以 0x 开头)
2e-310 (超出范围)
B) (x>=1) || (x<=10) || (x>=200) || (x<=210)
C) (x>=1)&&(x<=10) || (x>=200)&&(x<=210)
D) (x>=1) || (x<=10)&&(x>=200) || (x<=210)
答案:C
4.7 设 x、y 和 z 是 int 型变量,且 x=3,y=4,z=5,则下面表达式中值为 0 的是______
a3B b s b5 next day intger maxnumber
剩余的均不可做变量名,因为,C 语言给变量起名的规定是:由字母、数字和下划线
三种字符组成,且第一个字符必须是字母或下划线(习惯上,变量名用小写字母表示).
2.28 指出下面程序段中的错误,并改正.
Main() { int a; float b; fchar c; scanf(“%c%d%c%f; c,b,a,b); }
switch(x)
{case 1:
switch(y)
{case 0:a++;break;
case 1:b++;break;
}
case 2:
a++; b++; break;
}
prinf(“a=%d,b=%d”,a,b);
}
上面程序的运行结果是_____
答案:a=2,b=1
5.14C 语言中 while 和 do-while 循环的主要区别是______
*s2=︼ ︼chi *
*s2=chi︼ ︼
答案:D
3.11 已有如下定义和输入语句,若要求 a1,a2,c1,c2 的值分别为 10,20,A 和 B,当从第一列
开始输入数据时,正确的数据输入方式是______(注:<CR>表示回车)
int a1,a2; char c1,c2;
scanf(“%d%d”,&a1,&a2);
5.68 下面程序的功能是用 do-while 语句求 1 之 1000 之间满足”用 3 除余 2; 用 5 除余 3;用 7 除余 2”的数,且一行只打印五个数.请填空. #include<stdio.h> main() { int I=1, j=0; do { if ( [1] ) {prinf(“%4d”,I); j=j+1; if ( [2] ) prinf (“\n”); } I=I+1; }while (I<1000); } 答案:[1]I%3= =2&&I%5= =3&&I%7= = 2 [2]j%5= =0
A)’x’&&’y’
B)x<=y
C)x || y+z&&y-z
D)! ((x<y)&&!z || 1)
答案:D
4.18 以下 if 语句语法正确的是_____
A)if (x>0)
prinf (“%f”,x)
else prinf (“%f”,-x); B)if (x>0)
{x=x+y; prinf (“%f”,x);} else prinf (“%f”,-x); C)if (x>0) {x=x+y; prinf (“%f”,x);}; else prinf (“%f”,-x); D)if (x>0) {x=x+y; prinf (“%f”,x)} else prinf (“%f”,-x); 答案:B 4.35 当 a=3,b=2,c=1 时,表达式 f=a>b>c 的值是[ ]. 答案:0 4.59 有 int a=3,b=4,c=5,x,y;,则以下表达式的值为[ ] ! (x=a)&&(y=b)&&0 答案:0 4.70 以下程序对输入两个整数,按从达到小顺序输出.请在[ ]内填入正确内容. Main() { int x,y,z; scanf(“%d,%d”,&x,&y); if ([1])
(5)求两个正整数 m 和 n 的最大公约数
答案:略
2.4 写一个程序测试你所用的 C 版本中的 float 型数据所占的字节数.
运行结果:
b=4
2.6 下列常数中哪些是合法的 C 常量,哪些是非法的 C 常量?对合法者指出其类型,对非法者
指出其原因.
-0.
23
-0x2a1
0x7g
e3
0003
3.e-5
A)无限次
B)0 次
C)1 次
D)2 次
答案:B
5.36 下面程序的功能是计算 1 至 50 中是 7 的倍数的数值之和,请选择填空.
#include<stdio.h>
main()
{int I,sum=0;
for (I=1;I<=50;I++)
if ( [1] ) sum+=I;
prinf(“%d”,sum);
{z=x; [2]} pringf(“%d,%d”,x,y); } 答案:[1]x<y
[2]x=y;y=z; 4.77 请阅读下面的程序:
main() {int s,t,a,b;
scanf(“%d,%d”,&a,&b); s=1; t=1; if (a>0) s=s+1; if (a>b) t=s+t; else t=2*s; prinf(“s=%d,t=%d”,s,t); } 为了使输出结果 t=4,输入量 a 和 b 应满足的条件是[ ]. 答案:0<a<b 4.114 请读程序: #include<stdio.h> main() { int x=1, y=0,a=0,b=0;
5e+0 (实型常量)
3.e-5 (实型常量)
2E5 (实型常量)
‘{‘ (字符常量)
‘\n’ (一种特殊形式的字符常量---转义字符)
“105” (字符常量)
“x-y” (字符常量)
“35’55” (字符常量)
不合法的常量如下: 23 (表示形式不对)
0x (超出十六进制表示的数字)
e3 (e 前必须有数字) 12.5e2 (表示形式不对)
C) 包含 3 个字符
D) 说明不合法,c 的值不确定
答案:A
2.37 在 C 语言中,char 型数据在内存中的存储形式是______
A)补码
B)反码
C)原码
D)ASCII 码
答案:D
3.2 以下程序的输出结果是______.(注:︼表示空格)
main()
{ printf(“\n*s1=%15s*”,”chinabeijing”);
C 程序设计试题汇编
1.3 以下叙述正确的是______
A)一个 C 源程序可由一个或多个函数组成
B)一个 C 源程序必须包含一个 main 函数
C)C 程序的基本组成单位是函数
D)在 C 程序中,注释说明只能位于一条语句的后面
答案:D
2.2 若 x、y、j 和 k 都是 int 型变量,则计算下面表达式后,x 的值为______
}
A)(int) (I/7)= =I/7 B)(int) I/7= =I/7 C)I%7=0 D)I%7= = 0
答案:D
5.47 以下是死循环的程序段是______
A) for (I=1; ; )
{if (++I%2= =0) continue;
if (++I%3= =0) break;
}
B)I=32767;
‘\n’
“x-y”
‘{‘
12.5e2
“105”
‘105’
“35’53” 3+5
35o 7”
π
e
2E5
‘AB’
0x2.5b
03e5 ±7f
7ff
2e-310 12356e 3e+2.3
5e+0 lg3
答案:合法的常量如下