C语言练习题
一、选择题:
1、能将高级语言编写的源程序转换成目标程序的是______。
A. 编辑程序 B. 编译程序 C. 解释程序 D. 链接程序
2、C语言源程序是由______构成的。
A.函数和过程 B.子程序 C.文本 D.函数
3、下列字符序列中,可以作为变量名的是_______。
A.C++ B._DAY C.123abc D.a b c
4、下列数据中,不属于字符型常量的是______。
A. 'A' B. '\n' C. "B" D. '\72'
5、C语言中用______表示逻辑“真”值。
A. t或y B. TRUE C. 0 D. 非零数值
6、若已定义x和y为double 类型,则x=1, y=x+3/2值是______。
A.1 B.2 C.2.0 D.2.5
7、以下程序段的输出结果是______。
int a=1234;
printf("%2d/n",a);
A. 12 B. 34 C. 1234 D. 提示出错,无结果
8、设有定义:long x=123456L; 则以下能够正确输出变量 x 值的语句是_____。
A. printf("x=%d\n",x);
B. printf("x=%ld\n",x);
C. printf("x=%8dL\n",x);
D. printf("x=%Ld\n",x);
9、用 scnaf(“%d,%d”,&x,&y) 输入数据时,下列输入方式中正确的是______。
A.123,456 B.123 456 C.123;456 D.123/456
10、设 x=3, y=4, z=5,则((x+y)>z)&&(y==z)&&x||y+z 的值为______。
A.1 B.0 C.-1 D.2
11、执行语句“x=(a=5,b=a++)”后,x,a,b的值依次为______。
A. 6,6,5 B. 6,5,5 C. 6,5,6 D. 5,6,5
12、有以下程序
void main()
{
char a='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是______。
A. b,b B. b,c C. a,b D. a,c
13、设x的值为 5,则表达式(++x)+(++x)+(++x)的值是______。
A.15 B. 24 C. 20 D. 25
14、设a=1,b=2,c=3,则表达式______的值为真。
A. !(a!=b) B. (ac)
C. (b>c)||(b>a) D. (c==a)||(c==b)
15、为了表示关系 x≥y≥z,应使用的C语言表达式是______。
A.(x>=y) && (y>=z) B.(x>=y) AND (y>=z)
C.(x>=y>=z) D.(x>=y)&(y>=z)
16、与语句"y=(x>0?1:0)"等价的是______。
A. if(x>0) y=1;
B. if(x) y=1;
else y=0;
C. y=1;
if(x<=0) y=0;
D. if(x<=0) y=1;
17、为了避免嵌套的条件分支语句的二义性,C语言规定,C程序中的else总是与______组成配对关系。
A. 缩排位置相同的if B. 在其之前末配对的if
C. 在其之前末配对的最近的if D. 同一行上的if
18、有一函数
y=1 (x>0)
y=0 (x=0)
y=-1 (x<0)
以下程序段中不能根据x的值正确计算出y的值的是______。
A. if(x>0) y=1; else if(x==0) y=0; else y=-1;
B. y=0; if(x>0) y=1; else if(x<0) y=-1;
C. y=0; if(x>=0) if(x>0) y=1; else y=-1;
d. if(x>=0) if(x>0) y=1; else y=0; else y=-1;
19. C语言中,关于 while 和 do while 循环语句的正确叙述是______。
A. while 语句的循环控制条件为真时结束循环。
B. do while 语句的循环控制条件为真时结束循环。
C. while 循环体中不允许是空语句。
D. do while 的循环体至少被执行一次。
20、有以下程序片段
int n=0,p;
do { scanf(%d",&p); n++; } while(p!=12345&&n<3);
此处 do-while 循环的结束条件是
A. p的值不等于12345并且n的值小于3
B. p的值等于12345并且n的值大于等于3
C. p的值不等于12345或且n的值小于3
D. p的值等于12345或且n的值大于等于3
21、以下程序的运行结果为______。
main()
{
int i,sum;
i = sum = 0;
while(i<=100)
sum += i;
i++;
printf(“1+2+3+...+100=%d”,sum);
}
A.0 B.5050 C.1 D.程序无终止运行
二、程序阅读题,写出程序运行的结果:
1、
void main()
{
int k=2,i=2,m;
m=(k+=i*=k);
printf("%d,%d\n",m,i);
}
输出结果_________________。
2、
void main()
{
char grade='C';
switch(grade)
{
case 'A': printf(">=85.");
case 'B': printf(">=70.");
case 'C': printf(">=60.");
case 'D': printf("<60.");
default: printf("error.");
}
}
输出结果_________________。
3、
#include "stdio.h"
void main()
{
int k=2;
switch(k)
{
case 1: printf("%3d",k++);
break;
case 2: printf("%3d",k++);
case 3: printf("%3d",k++);
break;
case 4: printf("%3d",k++);
default:printf("FULL!\n");
}
}
输出结果_________________。
4、
#include "stdio.h"
void main()
{
int x=3;
do
{
printf("%2d",x--);
}while(x);
}
输出结果_________________。
三、程序设计题
1、求 ax2+bx=c = 0 方程的根,其中a,b,c由键盘输入。
2有一函数:
编写一程序,输入 x,输出 y 值。
3、由键盘输入三个数 a,b,c,输出其中最大数。
4、给出百分制成绩,要求输出成绩等级 'A','B','C','D','E'。90分以上为 'A',81-89分为 'B' ,70-79 分为 'C',60-69分为 'D',60分以下为 'E'。
5、某人摘下一些桃子,卖掉一半,又吃了一只;第二天卖掉剩下的一半,又又吃了一只;第三天、第四天、第五天都如此办理,第六天一看,发现就剩下一只桃子了。编写一个程序,求某人共摘了多少只桃子。
6、百钱百鸡问题。中国古代数学家张丘建在他的《算经》中提出了著名的 “ 百钱百鸡问题 ” :鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何 ? 编写一程序解决此问题。