一、判断题 (10分)
1. switch(表达式){},该表达式的值必须是整型或字符型。2分 2. 执行switch语句时,肯定会执行其中的一个分支语句组。2分
3. while和do…while循环不论什么条件下它们的结果都是相同的.2分 4. for(表达式1;表达式2;表达式3){},其中表达式1只执行一次。2分 5. 若int i=0,k=8;while(i=8) i=k--;则while循环体的执行次数为0.2分
二、选择题 (28分) 1.已知 int t=0; while(t=1) {...}
则以下叙述正确的是( )。[B] 2分
A. 循环控制表达式的值为0 B. 循环控制表达式的值为1 C. 循环控制表达式不合法 D. 以上说法都不对 2.以下程序段的输出结果是_____[C] 2分 int x=3; do
{ printf(\while (!(--x));
A. 1 B. 3 0 C. 1 -2 D. 死循环
3.以下程序的输出结果是______。[A] 2分 main()
{ int n=4;
while(n--)printf(\ \}
A. 2 0 B. 3 1 C. 3 2 1 D. 2 1 0
4.设j为int型变量,则下面for循环语句的执行结果是 [B] 2分 for(j=10;j>3;j--) {
if(j%3)j--; --j;--j;
printf(\}
A. 6 3 B. 7 4 C. 6 2 D. 7 3
5.结构化程序由三种基本结构组成,三种基本结构组成的算法______。[C] 2分
A. 可以完成任何复杂的任务 B. 只能完成部分复杂的任务 C. 只能完成符合结构化的任务 D. 只能完成一些简单的任务
6.以下程序的输出结果是______。[A] 2分 main() {int a=0,i;
for(i=1;i<5;i++) { switch(i) {case0:
case3:a+=2; case1:
case2:a+=3; default:a+=5; } }
printf(\}
A. 31 B. 13 C. 10 D. 20 7.以下的for循环:
for(x=0,y=0;(y!=123)&&(x<4);x++); [C] 2分 A. 是无限循环 B. 循环次数不定 C. 执行4次 D. 执行3次 8.有如下程序 main() {
int n = 9; while(n>6) { n--;
printf(\ } }
该程序的输出结果是______。[B] 2分 A. 987 B. 876 C. 8765 D. 9876 9.有以下程序段 int n=0,p;
do {scanf(\ while(p!=12345&&n<3); 此处do-while循环的结束条件是______。 [D] 2分 A. p的值不等于12345并且n的值小于3 B. p的值等于12345并且n的值大于等于3 C. p的值不等于12345或者n的值小于3 D. p的值等于12345或者n的值大于等于3 10.有如下程序 main()
{ int x=1,a=0,b=0; switch(x){
case 0: b++; case 1: a++; case 2: a++;b++; }
printf(\}
该程序的输出结果是______。[A] 2分
A. a=2,b=1 B. a=1,b=1 C. a=1,b=0 D. a=2,b=2
11.C语言中用于结构化程序设计的三种基本结构是______。[A] 2分
A. 顺序结构、选择结构、循环结构 B. if、switch、break C. for、while、do-while D. if、for、continue
12.有以下程序 main() { int i;
for(i=0;i<3;i++) switch(i)
{ case 1: printf(\ case 2: printf(\ default: printf(\ } }
执行后输出的结果是______。[A] 2分 A. 011122 B. 012 C. 012020 D. 120 13.有以下程序段 int k=0;
while(k=1)k++;
while循环执行的次数是______。[A] 2分
A. 无限次 B. 有语法错,不能执行 C. 一次也不执行 D. 执行1次 14.有以下程序 main()
{ int s=0,a=1,n; scanf(\ do
{s+=1; a=a-2;} while(a!=n); printf(\}
若要使程序的输出值为2,则应该从键盘给n输入的值是______。[B] 2分 A. -1 B. -3 C. -5 D. 0 三、程序填空题 (22分)
1功能:输入一个学生的生日(年:y0、月:m0、日:d0),并输入当前日期(年:y1、月:m1、日:d1)。求出该学生的年龄(实足年龄)。 #include
int age,y0,y1,m0,m1,d0,d1;
printf(\输入生日日期(年,月,日)\\n\ __(1)__(\ printf(\输入当前日期(年,月,日)\\n\ scanf(\ age=y1-y0;
if(m0 __(2)__ m1)age--;