C语言程序设计》考试试卷(答案)
一、填空题(每小空1分,共10分)
1.C语言程序的三种基本结构是  顺序结构  选择结构 循环结 
2.一个C程序有且仅有一个  main( )       函数。
3.C语言描述“x和y都大于或等于z”的表达式是  x>=z && y>=z 
4.C语言可以用来实现循环的结构化语句是  while do while for
5.数组名表示数组在内存的  首地址
6.int a=3,*p=&a;*p+2的值是  5 
、单项选择题(每小题2分,共70分)
1._____是C语言合法的标识符。
(A)3_sy45      (B)su_m     (C)@123      (D)3D64
2.一个程序的执行是从     
(A)本程序的main函数开始,到main函数结束
(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结              束。
(C)本程序的main函数开始,到本程序文件的最后一个函数结束。
(D)本程序文件的第一个函数开始,到main函数结束。
3.以下叙述正确的是               
(A)在C程序中,main函数必须位于程序的最前面。
(B)C程序每行中只能写一条语句。
(C)C语言本是没有输入输出语句。
(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
4.以下叙述不正确的是           
(A)逗号运算符的运算级最低。
(B)ABC和abc是两个不同的变量。
(C)若a和b类型相同,在执行a=b后,b的自身值不变。
(D)‘a’和“a”是完全等价的常量。
5.int x=3,y=2;则表达式x+=x*=y+8的值为           
(A)28      (B)30      (C)60        (D)17
6.在c语言中,变量的隐含存储类别是     
(A)auto     (B)static      (C)extern      (D)无存储类别
7.执行下面两个语句后,输出的结果为_____。
char c1=98;
printf(“%d %c”,c1,c1-32);
(A)97 66    (B)98 b    (C)b 66      (D)98 B
8.执行下面语句后的结果为     
y=10;x=y++;
(A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11 (D)x=11,y=10
9.char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是 
(A)double     (B)char    (C)int    (D)float
10.C语言中要求操作数必须是整数的运算符是       
(A)/    (B)%      (C)!=    (D)=
11.用scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是   
(A)123,4   (B)123 4    (C)123;4  (D)1234
12.以下关于运算符优先顺序的描述中正确的是________
(A)关系运算符<算术运算符<赋值运算符<逻辑与运算符
(B)逻辑与运算符 <关系运算符< 算术运算符<    赋值运算符
(C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
(D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
13.下列程序段中,功能与其它程序段不同的是       
(A)for(i=1,p=1;i<=5;i++)  p*=i;
(B)for(i=1;i<=5;)  { p=1;p*=i;i++;}
(C)i=1;p=1;while(i<=5) { p*=i;i++;}
(D)i=1;p=1;do { p*=i;i++;} while(i<=5);
14.C语言规定else总是与          配对。
(A)缩进位置相同的if    (B)同一行上的if
(C)其之前最近的if       (D)其之后最近的if
15.以下程序的运行结果为______。
main( )
{ int n;
for( n=1;n<=10;n++)
  { if( n%3==0) continue; printf(“%d”,n); }
}
(A)12457810  (B)369    (C)12    (D)12345678910
16.设x和y均为int型变量,则语句x+=y;y=x-y;x-=y;的功能是     
(A)把x和y按从大到小排列    (B)把x和y按从小到大排列
(C)无确定结果                (D)交换x和y中的值
17.变量的指针,其含义是指该变量的 _____
(A)值    (B)地址    (C)名    (D)一个标志
18.以下函数调用语句中含有      个实参。
  func((e1,e2),(e3,e4,e5));
(A)2       (B)3      (C)5      (D)语法错误
19.以下正确的描述是________
(A)continue语句的作用是结束整个循环的执行
(B)只能在循环体内和switch语句体内使用break语句
(C)在循环体内使用break语句或continue语句的作用相同
(D)break语句可以退出多层循环
20.以下程序运行的结果是           
  main()
{int a=2,b=3,c=2;
  if(a<b)
  if(a<c)
    c--;
  else
    c+=1;
printf(“%d\n”,c);
}
(A)0      (B)1        (C)2      (D)3
c语言中的逗号表达式21.int a[4]={2,3,4},i;
i=a[0]*a[1]+a[2]*a[3];
i的值为         
(A)2      (B)4        (C)6     (D)10
22.以下正确的函数定义形式是           
(A)double fun(int x,int y);
(B)double fun(int x;int y)
(C)double fun(int x,int y)
(D)double fun(int x,y)
23.设char s[10]= "abcd",t[]="12345";,则s和t在内存中分配的字节数分别是_______。
(A)6和5    (B)6和6    (C)10和5    (D)10和6
24.若有定义int a[4]={1,2,3};
请问a[a[a[0]]]的值是       
(A)1      (B)2      (C)3     (D)4
25.以下正确的描述是____________
(A)函数的定义可以嵌套,函数的调用不可以嵌套
(B)函数的定义不可以嵌套,函数的调用可以嵌套
(C)函数的定义和函数的调用均不可以嵌套
(D)函数的定义和函数的调用均可以嵌套
26.以下不正确的说法是____________
(A)在函数内的复合语句中定义的变量在本函数范围内有效
(B)在不同函数中可以使用相同名字的变量
(C)形参是局部变量
(D)函数调用结束后,静态局部变量的值仍然保留。
27.已有定义:int x=3,y=4,z=5;
则表达式!(x+y)+z-1&&y+z/2的值是         
(A)6      (B)0    (C)2    (D)1
28.  main()
{int n[4]={1,2,3,4},k;
  for(k=0;k<4;k++)
  {if(k/2) break;
    n[k]++;
  }
  printf(“%d\n”,n[++k]);
  }
执行后输出的结果是         
(A)2    (B)3    (C)4      (D)5
29.判断字符串是否相等,应当使用         
(A)if(a==b)  (B)if(a=b)  (C)if(strcpy(a,b))  (D)if(!strcmp(a,b))
30.以下程序运行结果是       
void sub(int x,int y,int *z)
{*z=y-x;}
main()
{int a,b,c;
sub(11,7,&a);sub(5,a,&b);sub(a,b,&c);
printf(“%d,%d,%d\n”,a,b,c);
}
(A)-4,-9,-5  (B)-4,9,5    (C)4,-9,-5      (D)-4,9,-5
31.以下程序运行结果是       
  main()
{int a[2][3]={1,3,5,4,7,6},i,j,b=a[0][0];
for(i=0;i<2;i++)
  for(j=0;j<3;j++)
  if(b<a[i][j])
    b=a[i][j];
printf(“%d\n”,b);
}
(A)5    (B)7    (C)4    (D)1
32.运行下面程序时,从键盘输入字母A,则输出结果是       
#include<stdio.h> 
main() 
{char ch;
  ch=getchar();
  switch(ch) 
  {case'A':printf("AAAA\n");
  case'B':printf("BBBB\n"); 
  default:printf("CCCC\n"); 
  } 
}
(A)AAAA
(B)AAAA 
    BBBB
(C)AAAA 
    BBBB 
    CCCC
(D)AAAA 
    CCCC
33.以下程序运行结果是       
#include<string.h>
  main()
{char s[50]=”1234567”,*p=s;
int i;
i=*(p+5)-*(p+2);
printf(“%d\n”,i*strlen(s));
}
(A)21    (B)24    (C)14    (D)28
34.以下程序运行结果是       
  main()
{int a[]={1,2,3,4,5,6,7,8,9},i,j,k;
for(i=0,j=8;i<j;i++,j--)
{k=a[i];a[i]=a[j];a[j]=k;}
printf(“%d\n”,a[1]+a[5]);
}
(A)11    (B)12   (C)13    (D)14
35.以下程序运行结果是       
  main()
{int x[]={1,2,3},s,*p=x,i;
for(i=0,s=1;i<3;i++,p++)
  s*=*p;
printf(“%d\n”,s);
}
(A)2    (B)4    (C)6    (D)8

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