中午好 ,今天是: 2024年11月22日
|
|
|
|
|
|
 
单元练习
第1章 C语言程序设计基本知识
第2章 算法及其描述
第3章 数据类型及表达式
第4章 结构化程序设计
第5章 数组
第6章 函数与预处理
第7章 指针
第8章 结构体、共用体和枚举类型
第9章 位运算
第10章 文件
模拟测试
模拟测试一
模拟测试二
模拟测试三
第4章 结构化程序设计
发布人:
陈裕雄
一、选择题
1.有如下程序
main( )
{ int a=2,b=-1,c=2;
     if(a<b)
       if(b<0) c=0;
       else c++;
     printf("%d\n",c);
}
该程序的输出结果是(  )
A) 0       B) 1        C) 2           D) 3

2.对do...while语句错误的描述是:(  )
A)可构成多重循环结构 B)循环次数不可能为0
C)循环次数可能为0   D)先执行后判断

3.任何复杂的程序,都是由(  )构成的。
A)分支结构、顺序结构、过程结构 B)循环结构、分支结构、过程结构
C)顺序结构、循环结构、分支结构 D)循环结构、分支结构

4.设有int x,y;  以下语句判断x和y是否相等,正确的说法是该语句(  )。
if (x=y) printf(" x is equal to y."); 
A)语法错 B)不能判断x和y是否相等
C)编译出错 D)能判断x和y是否相等

5.C语言中规定,if语句的嵌套结构中,else总是(  )配对。
A)与最近的if B)与第一个if 
C)与按缩进位置相同的if D)与最近的且尚未配对的if 

6.以下有关switch语句的说法正确的是(  )。
A)break语句是语句中必需的一部分
B)在switch 语句中可以根据需要使用或不使用break语句
C)break语句在switch 语句中不可以使用
D)在switch 语句中的每一个case都要使用break语句

7.当执行以下程序时,(  )。
#include<stdio.h>
void main()
{
   int a; 
  while(a=5)
  printf("%d ",a--); 
}
A)循环体将执行5次 B)循环体将执行0次
C)循环体将执行无限次 D)系统会死机

8.以下if语句错误的是(  )。
A)if (x<y)  x++; y++; else x--; y--;
B)if (x)  x+=y; 
C)if (x<y); 
D)if (x!=y)  scanf (" %d",&x) ; else  x++;

9.以下说法错误的是(  )。
A)do...while语句与while语句的区别仅是关键词“while”出现的位置不同
B)while语句是先进行循环条件判断,后执行循环体
C)do...while是先执行循环体,后进行循环条件判断
D)while、do...while和for语句的循环体都可以是空语句

二、填空题
1.有程序段:
int i=0,a=1;
while(i<9)
{  i++;
   ++a;
}
其中,循环条件是___,循环控制变量是___,循环体是____,修改循环条件的语句是___,该循环条件将执行____次,结束循环时,i的值是___,a的值是___。

2.有程序段:
int i=0,a=1;
for(i=1;i<10;i++)

   a++;
}
其中,循环条件是___,循环控制变量是___,循环体是____,修改循环条件的语句是___,该循环条件将执行____次,结束循环时,i的值是___,a的值是___。

3.以下程序的输出结果是_______.
#include <stdio.h>
main()
{   int n=12345,d;
while(n!=0){ d=n%10; printf("%d",d); n/=10;}
}

4.以下程序判断输入的整数能否被3或7整除,请填空。
main() 
{  int x,f=0; 
   scanf( “%d”,&x ); 
   if ( 1 )   
      ( 2 )   
   if(f==1) printf(“YES\n”); 
   else printf(“NO\n”); 
}

三、程序阅读题
1.阅读以下程序,若输入60,写出程序运行结果。
#include<stdio.h>
void main()
{  int x; 
   scanf("%d ",&x); 
   if (x>=60)
       printf("pass"); 
   else
      printf("fail");
}

2.阅读以下程序,若输入5,写出程序运行结果。
#include <stdio.h>
int main( )
{  int i, n;
   double fact;
   scanf("%d", &n);
   fact=1;
   for(i=1;i<=n;i++)
      fact*=i;
      printf("%.0f\n", fact);
}

四、程序设计题
1. 输入一个整数,输出它的绝对值 。
2. 编写程序,统计从键盘输入的一行字符的个数。
3. 编写程序,用穷举法输出100以内的素数。
4. 求1!-2!+3!-4! +……+49!-50!的和。
5. 输入10个字符,分别统计出其中空格或回车键、数字和其他字符的个数。
答案:
1、选择题
(1) C     (2) C   (3) C    (4) B    (5) D    (6) B    (7) C    (8) A    (9) A 
   
2、填空题
(1) i<9、 i 、i++;++a; 、i++; 、9、10
(2) i<10 、  i  、a++、i++、9、10、10
(3) 54321
(4) x%3==0 || x%7==0 、f=1

3.程序阅读题
(1)pass   (2) 120

4、程序设计题
(1) 参考程序:
#include <stdio.h> 
int main(void)

    int number;       
        printf("Enter a number: ");
        scanf("%d", &number);
        if(number < 0)
{  
           number = -number;
        }
        printf("The absolute value is %d.\n", number);
        return 0;
}
Enter a number:  10 
The absolute value is 10.
Enter a number:  -300 
The absolute value is 300.

(2) 参考程序:
#include<stdio.h>
void main()
{
int n=0;
printf("input a string\n");
while(getchar()!='\n') n++;
printf("%d",n);
}

(3)参考程序:
#include<stdio.h>
void main()
{
int n,i; 
for(n=2; n<=100; n++)
{
for(i=2; i<n; i++)
if(n%i==0) break; 
if(i>=n) printf("\t%d",n); 
}
}

(4)参考程序:
#include <stdio.h> 
main() 

double sum = 0; 
double tmp = 1; 
int mul = 1; 
int i; 
for(i=1;i<=50;i++) 

tmp *= i; 
sum += tmp*mul; 
mul *= -1; 

printf("1!-2!+3!-4!+.....+49!-50! = %e",sum); 
}

(5)参考程序:
/* 输入10个字符,分别统计出其中空格或回车、数字和其他字符的个数。*/
#include <stdio.h>
int main(void)
{
   int blank, digit, i, other;              /* 定义3个变量分别存放统计结果 */
   char ch;                          
   blank = digit = other = 0;                 /* 置存放统计结果的3个变量的初值为零 */
   printf("Enter 10 characters: ");           /* 输入提示 */
   for(i = 1; i <= 10; i++){                  /* 循环执行了10次 */
       ch = getchar();                 /* 输入一个字符 */
       /* 在switch语句中灵活应用break */
       switch (ch) {
           case ' ' :                     /* 语句段为空,请注意空格的表示 */
           case '\n':                 
               blank ++;                    /* 2个常量表达式 ' ' 和 '\n' 共用该语句段 */
                  break;                      /* 跳出switch语句 */ 
           case '0' : case '1' : case '2' : case '3' : case '4' :
           case '5' : case '6' : case '7' : case '8' : case '9' :  
               digit ++;                     /* 10个常量表达式 '0' ~ '9' 共用该语句段*/
               break;                  /* 跳出switch语句 */
           default:
               other ++;                     /* 累加其他字符 */
               break;                     /* 跳出switch语句 */
       }   
   }
   printf("blank=%d, digit=%d, other=%d\n", blank, digit, other);
   return 0;
}
 

Copyright©2012,All Rights Reserved
版权所有:广东南方职业学院计算机系 设计:陈裕雄