2015-2016      1        计算机应用(C语言) A                 
                                信息学院                     孙劲飞
                      高密化专、机专、模专、电专、自专          孔瑞睿
(答案写在答题纸上,写在试题纸上无效)
一、单选题(共30分):
1C语言的源程序    主函数。
A.可以没有       B.可以有多个    C.有且只有一个    D. 若有,只有一个
2. 下列程序的输出结果是   
  #include stdio.h
  void main( )
  {
      int m=12,n=34;
      printf(%d,%d,m++,++n);
}
A12,34      B. 13,34    C. 12,35    D. 13,35
3. 下列选项中,不能作为合法常量的是   
A12.3e3    B. 123E2    C. 1.234e+4    D. 1.2E-3.5
4. 已有如下定义和输入语句:int a,b,c;
scanf(%d,%d,%d,&a,&b,&c);
若要求abc的值分别为102030,正确的数据输入是   
A. a=10,b=20,c=30    B. 10 20 30    C. 10;20;30    D. 10,20,30
5C语言对嵌套if语句的规定是:else总是与    配对。
A.其之前最近的if      B. 第一个if
C.缩进位置相同的if    D. 离它最近的上一个且没有被匹配的if
6. 下列叙述正确的是_____
  A. break只能用于switch语句    B. switch语句中必须使用default
C. break语句必须与switch语句中的case配对
D. switch语句中,不一定使用break语句
7. 以下程序的输出结果为   
  #include stdio.h
  void main( )
  {
      int a=0,i=1;
      switch(i)
      {
          case 0:
          case 1: a+=2;
          case 2:
          case 3: a+=3;
          default:a+=7;
}
printf(%d\n,a);
}
A12    B. 7    C2    D. 5
8. 假设i=5j=6,表达式k=(i++)*(--j)的值是_____switch语句表示范围
A30    B35    C25    D36
9. 对于下面两个循环语句,叙述正确的是_____
  while(1);  for(;;);
A(1)(2)都是无限循环      B(1)是无限循环,(2)错误
C(1)循环一次,(2)错误    D(1)(2)皆错误
10. 判断char型变量c是否为大写字母的正确表达式为_____
A‘A’<=c<=‘Z’          B(c>=A)&&(c<=Z)
C(c>=‘A’)||(c<=‘Z’)    D(c>=‘A’)&&(c<=‘Z’)
11. 以下对二维数组a进行不正确初始化的是_____
A. int a[2][ ]={{3,2,1},{1,2,3}};    B. int a[ ][3]={{3,2,1},{1,2,3}};
C. int a[2][3]={{3,2},{1,2}};        D. int a[3][2]={3,2,1,1,2,3};
12.在C语言中,引用数组元素时,其数组元素下标的数据类型允许是_____
A.整型常量    B.整型表达式    C.整型常量或整型表达式    D.任何类型的表达式
13. 以下关于return语句的叙述中正确的是_____
A. 一个用户自定义函数中必须有一条return语句
B. 一个用户自定义函数中可以根据不同情况设置多条return语句
C. 定义成void类型的函数中可以有带返回值的return语句
D. 没有return语句的用户自定义函数在执行结束后不能返回到调用处
14. 下面程序段的运行结果是_____
char str[10]={‘A’,‘B’, ‘C’,\0,‘D’, ‘E’,\0};
printf(%s,str);
AABC    B‘A’‘B’‘C’    CABC DE    DA,B,C
15. 以下程序的运行结果是_____
#include stdio.h
#define PT 3.5
#define S(x) PT*x*x
void main( )
{
    int a=1,b=2;
    printf(%4.1f\n,S(a+b));
}
A14.0    B31.5    C7.5    D.程序有错误,无输出结果
二、填空题(共20分):
1.结构化程序设计的三种基本程序结构为顺序结构、分支结构和________
2. 语句printf(\n);中“\n”的作用是________
3.在Visual C++6.0环境中,一个int类型数据在内存中占用________个字节。
4C语言中,若程序中使用了库函数sqrt( ),则在程序中应该引用头文件________
5.程序中可被连续或重复执行的步骤称为循环,循环执行的语句或语句组称为________
6.如果要比较两个字符串中的字符是否相同,可使用的库函数是________
7. 字符串“abcd”在内存中占________个字节。
8.若函数只是用于完成某些操作,函数没有返回值,则必须把函数定义成________类型。
9. 执行下面程序段后,*p等于________
  int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
  p++;
p++;
10.在C语言的程序中可包含各种以符号“#”开头的编译指令,这些指令称为________
三、判断题(共10分):
1.   C语言的注释语句在程序的执行中不起任何作用,也不会产生任何代码。
2.   C语言对标识符字符是不区分大小写的。
3.   )转义字符用反斜杠后面跟一个字符表示,如‘\t’就是一个常用的转义字符。
4.   %是模运算,也就是求余数运算,它要求两侧均为整型数据,不能是浮点数。
5.   )复合语句由大括号{}括起来的一条或多条语句构成,复合语句不允许嵌套使用。
6.   do-while语句至少能够执行一次循环语句。
7.   continue只能用于循环语句,而break既可应用于循环语句,还可应用于switch语句。
8.   C语言对数组下标的越界进行检测。
9.   )全局变量的有效范围是从定义位置开始到本源程序结束。
10.  )变量的指针,其含义是指该变量的值。
四、程序填空题(共20分):
1. 从键盘输入一个3位整数,请输出该数的逆序数。例如输入123,输出321
#include stdio.h
void main( )
  {
  int a,b,c,x,y;
      printf(请输入一个4位的正整数:\n);
      scanf(%d,&x);
      a=x/100;
                  //计算十位数赋值b
      c=x-a*100-b*10;
      y=c*100+b*10+a;
      printf(%d:%d\n,x,y);
}
2. 判断某一字符串是不是“回文数”,回文数是从左至右或从右至左读起来都是一样的字符串。
#include stdio.h
#include string.h
#define N 40
void main( )
  {
  char str[N],ch=‘Y’;
      int i,len;
      printf(Please input a string:\n);
                  //scanf函数输入一个字符串
      len=strlen(str);
      for(i=0;i<len/2;i++)
          if(str[i]!=str[len-1-i])
          {
  ch=‘N’;
              break;
}
                  //if语句
          printf(%s是一个回文数\n,str);
      else
          printf(%s不是一个回文数\n,str);
}
3. 编写一个函数,实现给定某年某月某日,将其转换成这一年的第几天并输出。
#include <stdio.h>
int tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void main( )
{
  int day_year(int y,int m,int d);
int year,month,day;
      printf("请输入年月日:\n");
  scanf("%d%d%d",&year,&month,&day);
      printf("是这年的第%d\n",day_year(year,month,day));
}
int day_year(int y,int m,int d)
{
  int i,s=0;
for(i=1;i<m;i++)
              //计算前m-1个月有多少天
if((y%4==0&&y%100!=0||y%400==0)&&m>=3)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。