1. 一个程序的执行是从(    )。
A. 本程序的第一个函数开始,到最后一个函数结束
B. 本程序的main函数开始,到main函数结束
C. 本程序的main函数开始,到最后一个函数结束
D. 本程序的第一个函数开始,到main函数结束
2. C语言中字符型(char)数据在内存中的存储形式是(    )。
A.原码          B.补码          C.反码          D.ASCII码
3. 下列不属于C语言关键字的是(    )。
A. continue      B. integer      C. union      D. tpyedef
4. c语言程序设计知识归纳有定义语句:char b;char c[10];,则正确的输入语句是(    )。
A. scanf("%c%s",&b,&c);        B. scanf("%c%s",&b,c);
C. scanf("%c%s",b,c);          D. scanf("%c%s",b,&c);
5. 设整型变量a5,使b不为2的表达式是(    )。
A. b=(++a)/3      B. b=6-(--a)      C. b=a%2      D. b=a/2
6. 以下哪个步骤实现对源程序检查有无语法错误(    )。
A. 编辑          B. 编译          C. 连接          D. 运行
7. C语言中,能正确表示条件10≤x20的逻辑表达式是(    )。
A. (x10)||(x≤20)         B. (x>=10)||(x<=20)
C. (x10)&&(x≤20)          D. (x>=10)&&(x<=20)
8. 若有说明 int a[2][2]={1,2,3,4};,则a[1][1]的值是(    )。
A. 3            B. 2            C. 1            D. 4
9. 若有定义:int a=1,b=2,c=3;,则执行程序段:if(a<b){c=a;a=b;b=c;},后abc的值分别为(    )。
A. a=1,b=2,c=3      B. a=2,b=3,c=1
C. a=2,b=3,c=3      D. a=2,b=1,c=1
10. 下面关于switch语句的叙述中,错误的是(    )。
A. case后面的表达式可以是关系表达式
B. switch语句是多分支选择语句
C. 每一个case后面的值必须互不相同,否则会出现矛盾的现象
D. 在执行一个case分支后,可用一个break语句使流程跳出switch语句
11. 以下程序的运行结果是(    )。
void main()
{  int sum=0,item=0;
  while(item<5)
  {  item++;  sum+=item;  if(sum>=6)  break; }
  printf("%d\n",sum);}
A. 10      B. 15      C. 6      D. 7
12. 下面是对数组s的初始化,其中不正确的是(    )。
A. char s[5]="china";    B. char s[5]={'c','h','i'};
C. char s[5]=" ";              D. char s[5]={"chi"};
13. 有以下程序
main()
{  int m=56,n=78,result;
  result=m<n?m:n;
  printf("%d",result);  }
程序运行后的输出结果是(    )。
A. 56            B. 0            C. 78            D. 1
14. 若有定义:int a=2; char c[]="hello";则语句a=strcmp(c,"hello");运行后a的值为(    )。
A. 1            B. 0            C. -1            D. 2
15. 有以下程序
int mul(int x,int y)
{  return x*y;  }
void main()
{  int b; b=mul(2,3); printf("%d",b);  }
程序的运行结果是(    )。
A. 3            B. 6          C. 5          D. 4
16. int i=5;执行语句i*=2+3;i的值是(    )。
A. 25        B. 17        C. 13          D. 以上都不对
17. 若有定义:
struct teacher
{  int num; char sex; int age;
}teacher1;
则下列叙述不正确的是(    )。
A. struct是结构体类型的关键字
B. struct teacher是用户定义的结构体类型
C. num,sex,age都是结构体变量teacher1的成员
D. teacher1是结构体类型名
18. 以下程序段运行后,循环体运行的次数为(    )。
int i=10,x;
for (;i<10;i++) x=x+i;
A. 10             B. 0             C. 1             D. 无限
19. 以下程序段运行后s的值是(    )。
int a[3][3]={1,2,3,1,2,3,1,2,3};
int i,j,s=1;             
for(i=0;i<3;i++)
    for(j=i;j<3;j++) s*=a[i][j]; 
A. 18            B. 108            C. 2            D. 12
20. 若有定义:int a[10],*p=a;,则 p+5 表示(    )。
A. 元素a[5]的值                 B. 元素a[5]的地址
C. 元素a[6]的值                 D. 元素a[6]的地址
二、填空题(共10分,每小题1分)
1. 在程序运行过程中,值不能被改变的量称为         
2. int fun(float x);是一个           函数(有参或无参),函数的返回值类型为           
3. 字符串"good\n"的存储长度为        个字节
4. 程序段int i=1, j=7,a; a=i+j%4;,则a的值为         
5. 程序段int a[]={1,2,3,4,5,6};则数组元素a[2]的值为         
6. 用while语句写出与for(;;)等效的语句           
7. 程序段:int a[10],*p;,则使指针变量p指向数组a的语句是           
8. %m.nf表示数据的最小宽度是      ,输出小数点后        位。
三、简答题(共9分,每小题3分)
1. 已知以下程序:#include <stdio.h>
int main(){
    char c1,c2;
    c1='A';  c2=c1+32;
    printf("%c\n",c2);
    printf("%d\n",c2);
    return 0;  }
请写出输出结果:
2. 已知以下程序: #include <stdio.h>
void main(){
  int x=1, a=5, b=9;
  switch(x)
  {  case 0:  a+b;
      case 1:  a-b;
      case 2:  a*b;  }
  printf("\na=%d,b=%d",a,b);  }
请写出输出结果:
3. 已知以下程序: #include <stdio.h>
int a(int x,int y)
{  return x+y;  }
int b(int m,int n)
{  return a(m,n);  }
void main()
{  int i;
  i=b(5,5);
  printf("%d",i);  }
请写出输出结果:
四、改错题(共10分,每空2分)
1. 修改程序,其功能是实现打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33
void main()
{  int f,s,t,n;
  printf("\nThe list is:\n");
  for(n=100,n<1000,n++)                                 
    {  f=n%10;  s=(n%100)/10;
        t=n%100;                                         
        if(t*t*t+s*s*s+f*f*f=n)                          
          printf("%d    ",n);}
  printf("\n");  }
2. 修改程序,其功能是从键盘输入三角形的三边长,求其面积,若三个边长不能构成三角形,则提示。
#include <stdio.h>
#include <math.h>
void main()
{  float a[3],s,area;  int i;
  printf("Please input 3 numbers:\n");
  for(i=0;i<3;i++)
      scanf("%f",a[i]);                               

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