一、选择题答案
1. 以下所列的C语言常量中,错误的是
A) 0xFF
B) 1.2e0.5
C) 2L
D) '\72'
你所选择的答案是:*,正确答案是:B  ×
2.  若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是
A) -3
B) 9
C) -12
D) 6
你所选择的答案是:*,正确答案是:C  ×
3. 设 a、b、C、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式  (m=a>b)&&(n=c>d)运算后,n的值位为
A) 0
B) 1
C) 2
D) 3
你所选择的答案是:*,正确答案是:C  ×
4. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A) 地址传递
B) 单向值传递
C) 由实参传给形参,再由形参传回实参
D) 传递方式由用户指定
你所选择的答案是:*,正确答案是:B  ×
5.  以下程序的输出结果是
main()
{ char  c='z';
printf("%c",c-25);
}
A) a
B) Z
C) z-25
D) y
你所选择的答案是:*,正确答案是:A  ×
6. 以下程序的输出结果是
union myun
{  struct
{  int  x, y, z; } u;
int  k;
} a;
main()
{  a.u.x=4; a.u.y=5; a.u.z=6;
a.k=0;
printf(%d\n",a.u.x);
}
A) 4
B) 5
C) 6
D) 0
你所选择的答案是:*,正确答案是:D  ×
7. 若变量a是int类型,并执行了语句:a='A'+1.6;,则正确的叙述是
A) a的值是字符C
B) a的值是浮点型
C) 不允许字符型和浮点型相加
D) a的值是字符'A'的ASCII值加上1。
你所选择的答案是:*,正确答案是:D  ×
8. 以下程序的输出结果是
main()
{  char  cf[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
A) "AAAA"      B) "BBB"    C) "BBBCC"    D) "CC"
你所选择的答案是:*,正确答案是:B  ×
9. 以下选项中合法的用户标识符是
  A) long  B) _2Test  C) 3Dmax  D) A.dat
你所选择的答案是:*,正确答案是:B  ×
10. 有以下程序
int fa(int x)
{ return x*x; }
int fb(int x)
{ return x*x*x; }
int f(int (*f1)(),int (*f2)(),int x)
{ return f2(x)-f1(x); }
main()
{ int i;
 i=f(fa,fb,2); printf("%d\n",i);
}
程序运行后的输出结果是
A) -4
B) 1
C) 4
D) 8
你所选择的答案是:*,正确答案是:C  ×
11. 有以下程序
void ss(char *s,char t)
{ while(*s)
 { if(*s==t) *s=t-'a'+'A';
  s++;
 }
}
main()
{ char str1[100]="abcddfefdbd",c='d';
 ss(str1,c); printf("%s\n",str1);
}
程序运行后的输出结果是
A) ABCDDEFEDBD
B) abcDDfefDbD
C) abcAAfefAbA
D) Abcddfefdbd
你所选择的答案是:*,正确答案是:B  ×
12. 下列关于C语言用户标识符的叙述中正确的是
 A)用户标识符中可以出现在下划线和中划线(减号)
 B)用户标识符中不可以出现中划线,但可以出现下划线
 C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头
 D)用户标识符中可以出现在下划线和数字,
它们都可以放在用户标识符的开头
你所选择的答案是:*,正确答案是:B  ×
13. 有以下程序
  main()
  { char *s[]={"one","two","three"},*p;
  p=s[1];
  printf("%c,%s\n",*(p+1),s[0]);
  }
执行后输出结果是( )。
 A) n,two
 B) t,one
 C) w,one
 D) o,two
你所选择的答案是:*,正确答案是:C  ×
14. 以下叙述中不正确的是( )。
 A)C语言中的文本文件以ASCⅡ码形式存储数据
 B)C语言中对二进制文件的访问速度比文本文件快
 C)C语言中,随机读写方式不适用于文本文件
 D)C语言中,顺序读写方式不适用于二进制文件
你所选择的答案是:*,正确答案是:D  ×
15. 以下叙述中正确的是( )。
 A)C程序中注释部分可以出现在程序中任意合适的地方
 B)花括号"{"和"}"只能作为函数体的定界符
 C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
 D)分号是C语句之间的分隔符,不是语句的一部分
你所选择的答案是:*,正确答案是:A  ×
16. 有以下程序
  main()
  { int s=0,a=1,n;
  scanf("%d",&n);
  do
  { s+=1; a=a-2; }
  while(a!=n);
  printf("%d\n",s);
  }
若要使程序的输出值为2,则应该从键盘给n输入的值是( )。
 A)-1
 B)-3
 C)-5
 D)0
你所选择的答案是:*,正确答案是:B  ×
17. 已定义以下函数
  fun(int *p)
  { return *p; }
该函数的返回值是( )。
 A)不确定的值
 B)形参p中存放的值
 C)形参p所指存储单元中的值
 D)形参p的地址值
你所选择的答案是:*,正确答案是:C  ×
18. 有以下程序
main( )
{
int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是( )。
  A) 3,2,0   B) 3,2,-1   C) 4,3,-1   D) 5,-2,-5
你所选择的答案是:*,正确答案是:B  ×
19. 有以下程序
  void sum(int *A)
  { a[0]=a[1];}
  main( )
  { int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
  for(i=2;i>=0;i--) &nb
  sp; sum(&aa[i]);
  printf(“%d\n”,aa[0]);
  }
执行后的输出结果是( )。
  A) 4   B) 3   C) 2  D) 1
你所选择的答案是:*,正确答案是:A  ×
20. 有以下程序
#define f(x) x*x
main()
{
int i;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后输出结果是( )。
  A) 28  B) 22   C) 16   D) 4
你所选择的答案是:*,正确答案是:A  ×
21. 有以下程序
main()
{
int a,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d ",a,b);
}
程序运行后的输出结果是 ( )。
 A)6,1
 B)2,1
 C)6,0
 D)2,0
你所选择的答案是:*,正确答案是:B  ×
22.
若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a<b?a:c<d?c:d的值 ( )。
 A)1
 B)2
 C)3
 D)4
你所选择的答案是:*,正确答案是:A  ×
23. 有以下程序
#include "stdio.h"
#include "string.h"
main()
{
char a[7]="abcd";int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d ",i,j);
}
程序运行后的输出结果是 ( )。
 A)2 2
 B)7 4
 C)7 2
 D)6 2
你所选择的答案是:*,正确答案是:B  ×
24. 有以下程序
main()
{
int a=1,b;
for(b=1;b<=10;b++)
{
if(a>=8) break;
if(a%2==1) { a+=5; continue;}
a-=3;
}
printf("%d ",b);
}
程序运行后的输出结果是 ( )。
 A)3
 B)4
 C)5
 D)6
你所选择的答案是:*,正确答案是:B  ×
25. 有以下程序
main()
{
int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{
for(j=1;j<=i;j++) printf("%c",' ');
for(j= j<4;j++) printf("%4d",num[i][j]);
printf(" ");
}
}
若要按以下形式输出数组右上半三角
1  2  3  4
6  7  8
11 12
16
则在程序下划线处应填入的是 ( )。
 A) i-1
 B) i
 C) i+1
 D) 4-i
你所选择的答案是:*,正确答案是:B  ×
26. 当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )。
  A)k%2    B)k%2==1    C)(k%2)!=0    D)!k%2==1
你所选择的答案是:*,正确答案是:D  ×
27. 有以下程序
  #include
  main()
  { char p[]={'a', 'b', 'c'}, q[10]={'a', 'b', 'c'};
  printf("%d %d\n", strlen(p), strlen(q));
  }
以下叙述中正确的是( )。
  A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
  B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3
  C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3
  D)由于p和q数组中都没有字符串结束符,故长度都不能确定
你所选择的答案是:*,正确答案是:B  ×
28. 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是
 A)(!(E=0))
 B) (E>0||E<0)
 C) (E==0)
 D) (E!=0)
你所选择的答案是:*,正确答案是:C  ×
29. 若有以下程序
main()
{int y=10;
while(y--); printf("y=%d\n",y);
}
程序运行后的输出结果是
 A)y=0
 B) y=-1
 C) y=1
 D)while构成无限循环
你所选择的答案是:*,正确答案是:B  ×
30. 以下叙述中错误的是
 A)C语言源程序经编译后生成后缀为.obj的目标程序
 B)C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
 C)用C语言编写的程序称为源程序
,它以ASCII代码形式存放在一个文本文件中
 D)C语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
你所选择的答案是:*,正确答案是:D  ×
31. 以下叙述中错误的是
 A)C程序中的#include和#define行均不是C语句
 B)除逗号运算符外,赋值运算符的优先级最低
 C)C程序中,j++;是赋值语句
 D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
你所选择的答案是:*,正确答案是:D  ×
32. 有以下程序
fun(int x,int y){return(x+y);}
main()
{
int a=1,b=2,c=3,sum;
sum=fun((a++,++b,a+b),c++);
printf("%d\n",sum);
}
执行后的输出结果是________。
 A)6 B)7  C)8 D)9
你所选择的答案是:*,正确答案是:C  ×
33. 有以下程序
int fun(int x)
{int p;
if(x==0||x==1) return(3);
p=x-fun(x-2);
return p;
}
main()
{ printf("%d\n",fun(7));}
执行后的输出结果是________。
  A)7 B)3  C)2 D)0
你所选择的答案是:*,正确答案是:C  ×
34. 有以下程序
#include "stdio.h"
main()
{ int x=1,y=0;
if(!x) y++;
else if(x==0)
if (x) y+=2;
else y+=3;
printf("%d\n",y);
}
程序运行后的输出结果是
A)3
B)2
C)1
D)0
你所选择的答案是:*,正确答案是:D  ×
35. 有以下程序
#include "stdio.h"
int fun (int x,int y)
{ if (x!=y) return ((x+y)/2);
else return (x);
}
main()
{ int a=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序运行后的输出结果是
A)3
B)6
C)8
D)12
你所选择的答案是:*,正确答案是:B  ×
36. 有以下程序
#include "stdio.h"
struct S
{ int a,b;}data[2]={10,100,20,200};
main()
{ struct S p=data[1];
printf("%d\n",++(p.a));
}
程序运行后的输出结果是
A)10
B)11
C)20
D)21
你所选择的答案是:*,正确答案是:D  ×
37. 设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是
A)写操作结束后可以从头开始读
B)只能写不能读
C)可以在原有内容后追加写
D)可以随意读和写
你所选择的答案是:*,正确答案是:B  ×
38. 以下关于简单程序设计的步骤和顺序的说法中正确的是
A)确定算法后,整理并写出文档,最后进行编码和上机调试
B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档
C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档
D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构
你所选择的答案是:*,正确答案是:B  ×
39. 以下叙述中错误的是
A)C程序在运行过程中所有计算都以二进制方式进行
B)C程序在运行过程中所有计算都以十进制方式进行
C)所有C程序都需
要编译链接无误后才能运行
D)C程序中整型变量只能存放整数,实型变量只能存放浮点数
你所选择的答案是:*,正确答案是:B  ×
40. 有以下定义:int  a; long  b; double  x,y;则以下选项中正确的表达式语句是
A)a%(int)(x-y)
B)a=x!=y;
C)(a*y)%b
D)y=x+y=x
你所选择的答案是:*,正确答案是:B  ×
41. 下列定义数组的语句中,正确的是
A)int  N=10;           
int  x[N];           
B)#define N 10
int x[N];
C)int  x[0..10];
D)int x[];
你所选择的答案是:*,正确答案是:B  ×
42. 有以下程序(函数fun只对下标为偶数的元素进行操作)
#include<stdio.h>
void fun(int*a,int n)
{int i,j,k,t;
for(i=0;i<n-1;i+=2)
{k=i;
for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;
t=a[i];a[i]=a[k];a[k]=t;
}
}
main()
{int aa[10]={1,2,3,4,5,6,7},i;
fun(aa,7);
for(i=0;i<7;i++)
printf("%d,",aa[i]);
printf("\n");
}
程序运行后的输出结果是
A)7,2,5,4,3,6,1
B)1,6,3,4,5,2,7
C)7,6,5,4,3,2,1
D)1,7,3,5,6;2,1
你所选择的答案是:*,正确答案是:A  ×
43. 以下不能将s所指字符串正确复制到t所指存储空间的是
A)while(*t=*s){t++;s++;}
B)for(i=0;t[i]=s[i];i++);
C)do{*t++=*s++;}while(*s);
D)for(i=0,j=0;t[i++]=s[j++];);
你所选择的答案是:*,正确答案是:C  ×
44. 有以下程序,程序中库函数islower (ch)用以判断ch中的字母是否为小写字母
#include<stdio.h>
#include<ctype.h>
void  fun(char*p)
{int  i=0;
while (p[i])
{if(p[i]==' '&& islower(p[i-1]))p[i-1]=p[i-1]-'a'+'A';
i++;
}
字符串常量长度为5}
main()
{char s1[100]="ab cd EFG!";
fun(s1); printf("%s\n",s1);
}
程序运行后的输出结果是
A)ab  cd  EFG!
B)Ab  Cd  EFg!
C)aB  cD  EFG!
D)ab  cd  EFg!
你所选择的答案是:*,正确答案是:C  ×
45. 有以下程序
#include<stdio.h>
#include<stdlib.h>
main()
{int *a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b;
printf("%d,%d,%d\n",*a,*b,*c);
}
程序运行后的输出结果是
A)3,3,3   
B)2,2,3   
C)1,2,3   
D)1,1,3
你所选择的答案是:*,正确答案是:A  ×
46. 若有定义:double a=22;int i=0,k=18;,则不符合C 语言规定的赋值语句是(      )。
A)a=a++,i++;            B)i=(a+k)<=(i+k);
C)i=a%11;                D)i=!a;
你所选择的答案是:*,正确答案是:C  ×
47. 以下关于C 语言数据类型使用的叙述中错误的是(        )。
A)若要准确无误差的表示自然数,应使用整数类型
B)若要保存带有多位小数的数据,应使用双精度类型
C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型
你所选择的答案是:*,正确答案是:D  ×
48. 以下选项中与if(a==1)a=b;else a++;语句功能不同的switch 语句是(   
)。
A)switch(a)                                  B)switch(a==1)
{case 1;a=b;break;                            {case 0:a=b;break;
default:a++;                                  case 1:a++;
}                                              }
C)switch(a)                                    D)switch(a==1)
{default:a++;break;                            {case 1:a=b;break;
case 1:a=b;                                    case 0:a++;
}                                              }
你所选择的答案是:*,正确答案是:B  ×
49. 有以下程序:
#include  <stdio.h>
main()
{    int i,j,m=1;
for(i=1;i<3;i++)
{  for(j=3;j>0;j--)
{  if(i*j>3)break;
m*=i*j;
}
}
printf("m=%d\n",m);
}
程序运行后的输出结果是(        )
A)m=6                    B)m=2
C)m=4                    D)m=5
你所选择的答案是:*,正确答案是:A  ×
50. 有以下程序,其中k  的初值为八进制数:
#include<stdio.h>
main()
{  int k=011;
printf("%d\n",k++);
}
程序运行后的输出结果是(        )。
A)12                    B)11
C)10                    D)9
你所选择的答案是:*,正确答案是:D  ×
51. 下列语句组中,正确的是(    )。
A)char *s; s="Olympic";          B)char s[7]; s ="Olympic";
C)char *s;s={"Olympic"};        D)char s[7]; s={"Olympic"};
你所选择的答案是:*,正确答案是:A  ×
52. 以下关于return 语句的叙述中正确的是(    )。
A)一个自定义函数中必须有一条return 语句
B)一个自定义函数中可以根据不同情况设置多条return 语句
C)定义成void 类型的函数中可以有带返回值的return 语句
D)没有return 语句的自定义函数在执行结束时不能返回到调用处
你所选择的答案是:*,正确答案是:B  ×
53. 下列选项中,能正确定义数组的语句是(                            )。
A)int num[0..2008];                B)int num[];
C)int N=2008;                      D)#define N 2008
int num[N];                        int num[N];
你所选择的答案是:*,正确答案是:D  ×
54. 有以下程序
#include <stdio.h>
void fun(char *c,int d)
{  *c=*c+1;d=d+1;
printf("%c,%c,",*c,d);
}
main()
{  char b='a',a='A';
fun(&b,a);  printf("%c,%c\n",b,a);
}
程序运行后的输出结果是(      )。
A)b,B,b,A          B)b,B,B,A
C)a,B,B,a          D)a,B,a,B
你所选择的答案是:*,正确答案是:A  ×

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