考试模拟题1及参考答案
考试模拟题1
一、单项选择题(共20题,每题1分,共20分。)
1. 以下叙述不正确的是。
A. 一个C源程序可由一个或多个函数组成
B. C程序中注释说明只能位于一条语句的后面
C. C程序的基本组成单位是函数
D. 一个C源程序必须包含一个main函数
2. 若变量已正确定义并赋值,表达式()不符合C语言语法。
A. 3%2.0      B. a*b/c      C. 2, b      D. a/b/c
3. 六种基本数据类型的长度排列正确的是()。
A. bool=char<intlong=float<double
B. char<bool=intlong=float<double
C. bool<char<int<long<float<double
D. bool<char<int<long=float<double
4. 下面程序段的运行结果是()。
char a[7]= "abcdef",b[4]= "ABC";
strcpy(a,b);
printf("%c",a[5]);
A. 空格      B. \0      C. e      D. f
5. int a=9,b=8,c=7,x=1;则执行语句if(a>7) if(b>8) if(c>9) x=2;else x=3;x的值是()。
A. 2      B. 1      C. 0      D. 3
6. 对以下程序,当输入数据的形式为12a345b789↙,正确的输出结果为()。
int main()
{char c1,c2;int a1,a2;
c1=getchar(1);  scanf("%2d",&a1);2
c2=getchar(a);  scanf("%3d",&a2);345
printf("%d,%d,%c,%c\n",a1,a2,c1,c2);  ,,,
return 0;
}
A. 12,345,a,b        B.
C. 2a,45b,1,3          D. 2,789,1,a
7. 以下程序的输出结果是:()。
int main()
{
char st[20]= "hello\0\t\\\ ";
  printf("%d  %d\n",strlen(st),sizeof(st));
return 0;
}
A. 9  9      B. 5  20      C. 13  20      (D)20  20
8. 若已定义int a[9],*p=a;并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是()。
A. a++      B. a+1      C. p+1      D. ++p
9. 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。
A. 外部 B. 静态 C. 自动 D. 寄存器
10. 以下能对二维数组a进行正确初始化的语句是(
)。
A. int a[2][]={{1,0,1},{5,2,3}};
B. int a[][3]={{1,2,3},{4,5,6}};
C. int a[2][4]={{1,2,3},{4,5},{6}};
D. int a[][3]={{1,0,1},{ },{1,1}};
11. 函数fopen()的返回值不能是()。
A. NULL      B. O      C. 1      D. 某个内存地址
12. 若定义结构体struct st{int no;char name[15];float score;}s1;则结构体变量s1所占内存空间为()。
A. 15            C. sizeof(int)+sizeof(char[15])+sizeof(float)
B. sizeof(s1)    D. 19
13. 若有以下宏定义:
#define  N 3
#define  Y(n) ((N+1)*n)
则执行语句z=2*(N+Y(5));后,z的结果是()。
A. 语法错误B. 46        C. 66        D. 无定值
14. 已知a为整型变量,那么与表达式 a!=0 真假值情况不相同的表达式有()。
A. a>0||a<0      B. a        C.  !a==0      D.  !a
15. 下述程序代码中有语法错误的行是()。
  int i,ia[10],ib[10];      /*1*/
  for (i=0;i<=9;i++)        /*2*/
  ia[i]=0;                  /*3*/
  ib=ia;                    /*4*/
A. 1      B. 2      C. 3      D. 4
16. 以下程序段的循环次数是()次。
inti=1,j=0;
while(i+j<=10)
{ if (i>j)
    j=j+2;
    else i=i+2;
  }
A. 5      B. 6      C. 0      D. 4
17. 已知函数ss的定义如下:
void ss(char *s,char *t)
{ while (*s++=*t++);}
则该函数的功能是()。
A. 串复制      B. 求串长度      C. 串比较 D. 串反向
18. 对两个数组ab进行如下初始化
char a[]=ABCDEF”;
char b[]={ ‘A’,’B’,’C’,’D’,’E’,’F’};
则以下叙述正确的是()。
A. ab数组完全相同        B. ab长度相同
C. ab中都存放字符串      D. a数组比b数组长度长
19. 若二维数组am列,则在a[i][j]前的元素个数为()。
A. j*m+iB. i*m+jC. i*m+j-1D. i*m+j+1
20. 设有如下定义:
static int a[4]={1,2,3},i;
i=a[0]*a[1]+a[2]*a[3];
i的值为()。
A. 5      B.  2      C.  3      D.  以上都不对
二、填空题(每空2分,共20分。)
1. 能够构成数组的各个元素必须具有相同的。
2. C语言中用表示逻辑值
3. 使用C语言描述关系表达式a<=x<b,正确描述 
4.ch是字符型变量,判断ch为英文字母的表达式是:。 
5. 与语句 if (x>y) m=y; else m=x; 等效的表达式语句是:。
6. for(;;)语句相当于。
7.typedef定义一个含10个元素的整型数组ARR为:。
8. 设有定义语句:
static int a[3][4]={{1},{2},{3}} 字符串长度17模式串长度,则a[1][1]值为。
9. 变量的指针,其含义是指该变量的。
10. C语言源程序文件经过编绎后生成文件的后缀是obj,经过连接后生成文件的后缀是。
三、阅读程序题(共35分)
1. 2分)下面程序的运行结果是。
#include <stdio.h>
int main()
{int a[5]={10,20,30,40,50},*pa=&a[4];
*--pa;
printf("%d",*pa);
return 0;
}
2. 3分)下面程序的运行结果是1*#
#include <stdio.h>
int main()
{ int x=0,y=2,z=3;
  switch(x)
  { case 0: printf("%d",y==2);// ==是两个等于号
    case 1: printf("*"); break;
    case 2: printf("%");break;
  }
  switch(z)
  { case 1: printf("&");
case 2: printf("*");break;
default : printf("#");
  }
return 0;
}
3.4分)下面程序的运行结果是。
#include <stdio.h>
struct HAR{char x,y; struct HAR *p;}h[2];
int main()
{ h[0].x='a';h[0].y='b';
  h[1].x='c';h[1].y='d';
  h[0].p=&h[1];h[1].p=h;
  printf("%c,%c,",(h[0].p)->x,(h[1].p)->x);
  printf("%d,%d\n",(h[0].p)->y,(h[1].p)->y);
return 0;
}
4.6分)完善下面程序,功能:输入两个正整数mn,求其最大公约数和最小公倍数。
#include <stdio.h>
int main()
{ int  p,r,n,m,temp;
printf("请输入两个正整数n,m:");
scanf("%d,%d,",&n,&m);
  if (n<m)
  {
    temp=n;
    n=m;
    m=temp;
  }
  p=n*m;
  while()
  { r=;
n=m;
m=r;
  }
  printf("它们的最大公约数为:%d\n",n);
  printf("它们的最小公倍数为:%d\n",);
return 0;
}
5.4分)完善下面程序,功能:将字符串s中所有的字符x删除。
#include <stdio.h>
int main()
{ char s[80];
  int i,j;
  printf("请输入字符串:");
  gets(s);
  for  (i=j=0;s[i]!='\0';i++)
if  ()
{s[j]=s[i];
j++ ;
}
  s[j]=;
  puts(s);
return 0;
}
6. 6分)完善下面程序,功能:打印如右所示的图案。
#include <stdio.h>
int main()

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