下午好 ,今天是: 2024年11月25日
|
|
|
|
|
|
 
单元练习
第1章 C语言程序设计基本知识
第2章 算法及其描述
第3章 数据类型及表达式
第4章 结构化程序设计
第5章 数组
第6章 函数与预处理
第7章 指针
第8章 结构体、共用体和枚举类型
第9章 位运算
第10章 文件
模拟测试
模拟测试一
模拟测试二
模拟测试三
模拟测试一
发布人:
陈裕雄
一、选择题(每题仅有1个正确选项选对得2分,错选、多选或漏选均不得分。本题共10小题,每小题2分,共20分)。
1、以下不能定义为用户标识符的是(      )。
  (A)  MAIN         (B)  _HJ         (C)  2ong       (D)  LINE1

2、下列符号中用来表示C语言中的回车换行的是(      )。
  (A)  \r           (B)  \n           (C)  \b           (D)  \t

3、设变量a是整型,b是实型,c是双精度型,则表达式2+' a '+b*c值的数据类型是(   )。
  (A)  int          (B) float        (C) double    (D)char

4、下列保留字中用于构成循环结构的是(        )。
  (A) if     (B) while    (C) switch     (D) default

5、C程序由(         )组成。
  (A)  子程序     (B) 主程序和子程序     (C) 函数      (D) 过程

6、在Visual C++ 6.0环境下,C源程序文件名的默认后缀是(       )。
  (A)  .cpp      (B) .exe        (C)  .obj        (D)  .dsp

7、以下程序运行结果是:(        )。
  (A) 无限次输出:"你好,中国!"
  (B) 输出5次"你好,中国!"
  (C) 没有任何输出
  (D) 编译错误,不能运行
  #include<stdio.h>
  main()
  {
   while(5)
     printf("你好,中国!");
  }

8、一个C程序的执行是从(         )。
  (A) 本程序的main()函数开始,到main函数结束.
  (B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束.
  (C) 本程序的main()函数开始,到本程序文件的最后一个函数结束.
  (D) 本程序文件的第一个函数开始,到本程序main函数结束.

9、以下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++;

10、以下叙述正确的是(        )
  (A) do-while语句构成的循环不能用其它语句构成的循环来代替。
  (B) do-while语句构成的循环只能用break语句退出。
  (C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。
  (D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。

二、填空题(请将你认为的正确答案填入答题纸,每空2分,共20分)。
  1、在C语言中,包含头文件的预处理命令以(1)开头。
  2、在C语言中,主函数名是(1)。
  3、如下语句int i,* p; p=&i; 其作用是将整型变量i的(1)赋值给指针变量p。
  4、对于while和do……while这两种循环语句,(1)语句至少执行1次循环体,而(2)语句可以一次也不执行循环体。
  5、整形数组a[3][4]有(1)个元素,数组名a代表着这个数组在内存中的(2)。
  6、定义在函数之外的变量称为(1)变量,定义在函数之内的变量称为局部变量。
  7、定义结构体类型的关键字是(1),定义枚举型的关键字是(2)。

三、写出程序运行结果(本题共4小题,每小题5分,共计20分)。
1、程序1
#include<stdio.h>
main()
{
  int i=1,j;
  j=i++;
  printf("i的值是%d,j的值是%d\n",i,j);  
}

2、程序2:
#include<stdio.h>
main()
{
 
  int i=1,j;
  j=--i;
  printf("i的值是%d,j的值是%d\n",i,j);  
}

3、程序3:
#include <stdio.h>
main()
{
int a[10],j,k=0;
for (j=0; j<10; j++ )
a[j]=j;
for (j=0; j<4 ; j++ )
k+=a[j]+j;
printf("%d\n",k);
}

4、程序4:
#include <stdio.h>
int func(int a,int b)
{
static int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{
int k=4,m=1,p;
p=func(k,m);
printf("%d,",p);
p=func(k,m);
printf("%d\n",p);
}

四、程序填空题(填空完善程序,共4空,每空2.5分,共10分)。
1、下面的程序判断输入的一个年份是否是闰年(闰年的定义:能被4整除但不能被100整除,或者能被400整除),请补充完善。
#include <stdio.h>
main()
{
int year;
printf("请输入一个年份:");
scanf("%d",  (1)  );
if (year<=0)
printf("年份必须是一个正整数。\n");
else if (      (2)       )
printf("%d年是闰年。\n",year);
else
printf("%d年不是闰年。\n",year);
}

2、下面的程序将输出一个二维整型数组,请补充完善。
#include <stdio.h>
main()
{
int a[3][3]={
{1},
{0,1},
{0,0,1}};
for(int i=0;  (1) ;i++)
{
for(int j=0;j<3;j++)
printf("%3d",   (2)   );
printf("\n");
}
}

五、编程题(请按要求编写程序,每题10分,共30分)
1、编写一个程序,计算1+2+3+……+100的值。


                          0                n=1
2、有一个数列 a(n)=       1                n=2
                          a(n-1)+a(n+1)      n>3
编写一个程序,求a(20)。


3、有一种判断人的体型的方法,即使用公式:
t =  
其中t是体指数,w是体重(单位:公斤),h是身高(单位:米)。
根据t的值进行判断方法如下:

体指数取值 体型
  t<=18          低体重
 18<t<=25       正常体重
 25<t<=27         偏重
  t>27            肥胖
试编写一个程序实现:由用户输入一个人的身高和体重,程序自动判断其体型。
答案:
一、单项选择题  
题号 1 2 3 4 5 6 7 8 9 10
答题 C B C B C A A A A D

二、填空题 
1、(1)#include
2、(1)main
3、(1)地址
4、(1)do……while  (2)while
5、(1)12   (2)首地址
6、(1)全局
7、(1)struct (2)enum

三、写出程序运行结果 
1、运行结果:i的值是2,j的值是1
2、运行结果:i的值是0,j的值是0
3、运行结果:12
4、运行结果:8,17
四、程序填空题
1 (1)&year        (2)  year%400= =0 || year%4= =0 && year%100!=0
2 (1)i<3          (2) a[i][j] 

五、编程题
1、
方法1:
#include<stdio.h>
main()
{
  int i,s=0;
  i=1;  
  while(i<=100)
  {
    s+=i;
    i++;  
  }
  printf("%d\n",s);
}

方法2:
#include<stdio.h>
main()
{
  int i,s=0;
  i=1;  
  do
  {
    s+=i;
    i++;  
  }while(i<=100);
  printf("%d\n",s);

}

方法3:
#include<stdio.h>
main()
{
  int i,s=0; 
  for(i=1;i<=100;i++)
  {s+=i;}
  printf("%d\n",s);
}

2、
方法1:
#include <stdio.h>

int seqa(int n)  
{
int a1=1;
int a2=2;
int t;
int an;
if (n==1)
an=1;
else if(n==2)
an=2;
else
{
for (int i=3;i<=n;i++)
{
an=a1+a2;
t=a1;
a1=a2;
a2+=t;
}
}
return an;
}
main()
{
int n;
int an;
printf("请输入n:\n");
scanf("%d",&n);
if (n<=0)
printf("错误,请输入正整数。\n");
else
{
an=seqa(n);
printf(a(%d)=%d\n",n,an);
}
}

方法2:
int seqa2(int n)  
{
int an;
if (n==1)
an=1;
else if(n==2)
an=2;
else
an=seqa2(n-1)+seqa2(n-2);
return an;
}
main()
{
int n;
int an;
printf("请输入n:\n");
scanf("%d",&n);
if (n<=0)
printf("错误,请输入正整数。\n");
else
{
an=seqa(n);
printf(a(%d)=%d\n",n,an);
}
}

3、
#include <stdio.h>
main()
{
  float t,w,h;
  printf("请输入您的身高(单位:米):\n");
  scanf("%f",&h);
  printf("请输入您的体重(单位:千克):\n");
  scanf("%f",&w);  
  t=w/(h*h);
  if(t<=18)
printf("请注意身体,您的体重偏低\n");
  else if(t>18 && t<=25)
printf("恭喜您,您的体重正常\n");
  else if (t>25 && t<=27)
    printf("抱歉,您有些偏重\n");
  else
printf("很抱歉,您处于肥胖状态。\n");
}
 

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