【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。
2011年10月第二版。
ISBN:978-7-302-26972-4。
售价:35元。
【答案版本】本习题答案为2012年2月修订版本。
一、选择题
1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。
A. while循环执行10次
B. 循环是无限循环
C. 循环体语句执行一次
D. 循环体语句一次也不执行
2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。
A. 运行程序段后输出1
B. 程序段执行无限次
C. 运行程序段后输出0
D. 程序段中的控制表达式是非法的
3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。
A. int a=1,b=2; while(b--);
B. int a=1,b=2; do a++; while(a==b);
C. int a=1,b=2; while(a=3);
D. int a=1,b=2; do b-- while(b==0);
4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。
do{ printf(“%d\n”,i--); } while(i!=0);
A. 0
B. 1
C. 5
D. 无限
5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。
A. 0
B. 5
C. 10
D. 无限
6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。
A. break语句用于循环体内,它将结束该循环
B. break语句用于开关语句,它结束该开关语句
C. break语句用于if语句的内嵌语句内,它结束该if语句
D. break语句在一个循环体内可使用多次
7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。
A. 循环体内可以包含有循环语句
B. 循环体内必须同时出现break语句和continue语句
C. 循环体内可以出现选择语句
D. 循环体可以是空语句
8. 以下不是死循环的是D)for(;(c=getchar()!=’\n’);)printf(“%c”,c);。
A. for(; ; x+=i);
B. while(1) { x++; }
C. for( i=10; ; i--) sum+=i;
D. for( ; (c=getchar() )!=’\n’ ; ) printf( “%c”,c);
9. 执行语句”for(i=0;i++<3;);”后,变量i的值为C) 4。
A.2
B. 3
C. 4
D. 5
10.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C)循环4次。
A. 无限循环
B. 循环次数不定
C. 循环4次
D. 循环3次
11. 与语句”while(!x);”等价的语句是A) while(x= =0);。
A. while(x==0);
B. while(x!=1);
C. while(x!=0);
D. while(x==1);
12. 执行下列程序段后a的值为B)2。
int a=1,b=10;
do{
b-=a;a++;
}while(b--<0)
A.4
B. 2
C. 1
D. 3
二、编程题
1
2.先读入一个正整数n,然后计算并显示前n个偶数的和。
例如,如果n为5,这个程序
3
4
5
6
7
8
9.找出所有“水仙花数”。
所谓“水仙花数”是指一个三位整数,其各位数字立方和等于
333
11.输出如下图形:
A
BBB
CCCCC
14.一个正整数如果恰好等于它的因子之和,这个数就称为“完数”。
例如,6的因子为1、2、
16.显示如下图案:*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
17.36块砖,36人搬。
男搬4,女搬3,两个小孩抬一块。
一次刚好搬完,问男、女、小孩
18.编程求解马克思手稿中的数学题:有30个人,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有
20.输出1~1000之间所有满足用3除余2、用5除余3、用7除余2的数(要求每行只输出5个)。
28.国王的许诺。
相传国际象棋是古印度舍罕王的宰相达依尔发明的。
舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。
这位聪明的宰相指着8*8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第1个格子中放1粒,第2格子中放2粒,第3格子中放4粒,以后每一格子都比前一个格子增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。
舍罕王让人扛来一袋麦子,他要兑现他的许诺。
请问:国王能兑现他的许诺吗?试编程计算舍罕王共要多少粒麦子赏赐他的宰相。