文档库 最新最全的文档下载
当前位置:文档库 › 北华大学C语言题库选择

北华大学C语言题库选择

选择题A篇


1. 以下数据中,不正确的数值或字符常量是(A).
(A).c
(B).66
(C).0xaa
(D).50
2. 设j和k都是int类型,则for循环语句:
for(j=0,k=0;j<=9&&k!=876;j++)
scanf("%d",&k);(A)
(A).最多执行10次
(B).最多执行9次
(C).是无限循环
(D).循环体一次也不执行
3. char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是(A).
(A).strcat(a2,a1);
(B).strcpy(a2,a1);
(C).strcat(a1,a2);
(D).strcpy(a1,a2);
4. 以下正确的说法是:在C语言中(A).
(A).实参和与其对应的形参各占用独立的存储单元
(B).实参和与其对应的形参共占用一个存储单元
(C).只有当实参和与其对应的形参同名时才共占用存储单元
(D).形参是虚拟的,不占用存储单元
5. 下列字符序列中,是C语言保留字的是(A).
(A).sizeof
(B).include
(C).scanf
(D).sqrt
6. 以下选项中,与k=n++完全等价的表达式是(A).
(A).k=n,n=n+1
(B).n=n+1,k=n
(C).k=++n
(D).k+=n+1
7. 在位运算中,操作数每左移一位,其结果相当于(A).
(A).操作数乘以2
(B).操作数除以2
(C).操作数除以4
(D).操作数乘以4
8. 以下程序的运行结果是(A).
main()
{ int n;
for(n=1;n<=10;n++)
{
if(n%3==0) continue;
printf("%d",n);
}
}
(A).12457810
(B).369
(C).12
(D).1234567890
9. int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(A).
(A).1
(B).2
(C).3
(D).不一定


10. 下列定义数组的语句中正确的是(A).
(A).#define size 10 char str1[size],str2[size+2];
(B).char str[];
(C).int num['10'];
(D).int n=5; int a[n][n+2];
11. C语言中运算对象必须是整型的运算符是(A).
(A).%=
(B)./
(C).=
(D).〈=
12. C语言中 while 和 do-while 循环的主要区别是(A).
(A).do-while 的循环体至少无条件执行一次
(B).while的循环控制条件比 do-while的循环控制条件更严格
(C).do-while 允许从外部转到循环体内
(D).do-while 的循环体不能是复合语句
13. 16.在C语言中,形参的缺省存储类别是(A).
(A).auto
(B).register
(C).static
(D).extern
14. 从键盘上输入某字符串时,不可使用的函数是(A).
(A).getchar()
(B).gets()
(C).scanf()
(D).fread()
15. 以下数据中,不正确的数值或字符常量是(A).
(A).8.9e1.2
(B).10
(C).0xff00
(D).82.5
16. 以下不是无限循环的语句为(A).
(A).for(y=0,x=1;x>++y;x=i++) i=x;
(B).for(;;x++=i);
(C).while(1){x++;}
(D).for(i=10;;i--) sum+=i;
17. while(fabs(t)<1e-5)if(!s/10)break;循环结束的条件是(A).
(A).t>=1e-5&&t<=-1e-5
(B).fabs(t)<1e-5&&!s/10
(C).fabs(t)<1e-5
(D).s/10==0
18. 以下叙述中正确的是(A).
(A).构成C程序的基本单位是函数
(B).可以在一个函数中定义另一个函数
(C).main()函数必须放在其它函数之前
(D).所有被调用的函数一定要在调用之前进行定义
19. 函数 rewind 的作用是(A).
(A).使位置指针重新返回文件的开头
(B).将位置指针指向文件中所要求的特定位置
(C).使

位置指针指向文件的末尾
(D).使位置指针自动移至下一个字符位置
20. C语言程序中,当调用函数时(A).
(A).实参和虚参各占一个独立的存储单元
(B).实参和虚参可以共用存储单元
(C).可以由用户指定是否共用存储单元
(D).计算机系统自动确定是否共用存储单元


21. 当定义一个结构体变量时,系统分配给它的内存是(A).
(A).各成员所需内存量的总和
(B).结构中第一个成员所需内存量
(C).结构中最后一个成员所需内存量
(D).成员中占内存量最大者所需的容量
22. 下列变量定义中合法的是(A).
(A).short _a=1-.1e-1;
(B).double b=1+5e2.5;
(C).long do=0xfdaL;
(D).float 2_and=1-e-3;
23. 若有说明语句:char c='\72';则变量c(A).
(A).包含1个字符
(B).包含2个字符
(C).包含3个字符
(D).说明不合法,c的值不确定
24. 结构体类型的定义允许嵌套是指(A).
(A).成员是已经或正在定义的结构体型
(B).成员可以重名
(C).结构体型可以派生
(D).定义多个结构体型
25. 先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(A).
(A).c='a';
(B).c="a";
(C).c="97";
(D).C='97'
26. 下列数组说明中,正确的是(A).
(A).static char str[]="China";
(B).static char str[]; str="China";
(C).static char str1[5],str2[]={"China"}; str1=str2;
(D).static char str1[],str2[];str2={"China"}; strcpy(str1,str2);
27. 若有int *p=(int *)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为(A).
(A).scanf("%d",p);
(B).scanf("%d",&p);
(C).scanf("%d",*p);
(D).scanf("%d",**p);
28. 以下叙述中正确的是 (A).
(A).C程序中注释部分可以出现在程序中任意合适的地方
(B).花括号"{"和"}"只能作为函数体的定界符
(C).构成C程序的基本单位是函数,所有函数名都可以由用户命名
(D).分号是C语句之间的分隔符,不是语句的一部分
29. 执行下面程序后,输出结果是(A).
main()
{ int a=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
}
int max(int x,int y)
{ int z;
if(x>y) z=x;
else z=y;
return(z);
}
(A).45
(B).27
(C).18
(D).72




30. 设有以下语句, 若0char str[4][2]={"aaa","bbb","ccc","ddd"},*strp[4];
int j;
for (j=0;j<4;j++)
strp[j]=str[j];
(A).strp
(B).str[k]
(C).strp[k]
(D).*strp
31. 9以下语句中,循环次数不为10次的语句是(A).
(A).for(i=1;i<10;i++);
(B).i=1;do{i++;}while(i<=10);
(C).i=10;while(i>0){--i;}
(D).i=1;m:if(i<=10){i++;goto m;}
32. 14以下不能正确进行字符串赋初值的语句是(A).
(A).char str[5]="good!";
(B).char str[]="good!";
(C).char *str="good!";
(D).char str[5]={'g','o','o','d'};
33. 18若有double *p,x[10];int i=5;使指针变量p指向元素x[5]的语句为(A).
(A).p=&x[i];
(B).p=x;
(C).p=x[i];
(D).p=&(x+i)
34. C语言的if语句嵌套时,if与else的配对关系是(A).
(A).每个else

总是与它上面的最近的并且尚未与其他else匹配的if配对
(B).每个else总是与最外层的if配对
(C).每个else与if的配对是任意的
(D).每个else总是与它上面的if配对
35. 16以下正确的函数定义形式是(A).
(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);
36. 18经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是(A)
(A).p=a+2;
(B).p=a[5];
(C).p=a[2]+2;
(D).p=&(j+2);
37. 17enum a {sum=9,mon=-1,tue};2char a[]="This is a program.";输出前5个字符的语句是(A).
(A).printf("%.5s",a);
(B).puts(a);
(C).printf("%s",a);
(D).a[5*2]=0;puts(a);

















选择题B篇



38. C语言源程序的基本单位是(B).
(A).过程
(B).函数
(C).子程序
(D).标识符
39. 下列程序的输出结果是(B).
main()
{char c1=97,c2=98;
printf("%d %c",c1,c2);
}
(A).97 98
(B).97 b
(C).a 98
(D).a b
40. 下列四个选项中,均是C语言关键字的选项是(B).
(A).auto enum include
(B).switch typedef continue
(C).signed union scanf
(D).if struct type
41. 以下能对二维数组a进行正确初始化的语句是(B).
(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}};
42. 以下对枚举类型名的定义中正确的是(B).
(A).enum a={sun,mon,tue};
(B).enum a {sun=9,mon=-1,tue};
(C).enum a={"sun","mon","tue"};
(D).enum a {"sun","mon","tue"};
43. 以下选项中合法的用户标识符是(B).
(A).long
(B)._2Test
(C).3Dmax
(D).A.dat
44. 以下叙述中正确的是(B).
(A).C语言的源程序不必通过编译就可以直接运行
(B).C语言中的每条可执行语句最终都将被转换成二进制的机器指令
(C).C源程序经编译形成的二进制代码可以直接运行
(D).C语言中的函数不可以单独进行编译
45. 以下叙述中不正确的是(B).
(A).一个好的程序应该有详尽的注释
(B).在C程序中,赋值运算符的优先级最低
(C).在C程序中,j++;是一条赋值语句
(D).C程序中的#include和#define均不是C语句
46. 若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上语句后,a和b的值分别是(B).
(A).a=3,b=4
(B).a=4,b=3
(C).a=4,b=4
(D).a=3,b=3

47. 9.假定所有变量均已正确定义,下列程序段运行后x的值是(B).
k1=1;
k2=2;
k3=3;
x=15;
if(!k1) x--;
else if(k2) x=4;
else x=3;
(A).14
(B).4
(C).15
(D).3
48. 给数组a的所有元素分别赋值为1、2、3、……的语句是(B).
(A).for(i=1;i<11;i++)a[i]=i;
(B).for(i=1;i<11;i++)a[i-1]=i;
(C).for(i=1;i<11;i++)a[i+1]=i;
(D).for(i=1;i<11;i++)a[0]=1;
49. C语言中不可以嵌套的是(B).
(A).函数调用
(B).函数定义
(C).循环语句
(D).选择语句
50. int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是(B)
(A).2
(B).3
(C).4
(D).不一定
51. 若k为int型变量,则以下

程序段的执行结果是(B).
k=-8567; printf("|%06D|\n",k);
(A).格式描述符不合法,输出无定值
(B).输出为|%06D|
(C).输出为|0-8567|
(D).输出为|-8567|
52. fseek函数的正确调用形式是(B).
(A).fseek(文件类型指针,起始点,位移量)
(B).fseek(fp,位移量,起始点)
(C).fseek(位移量,起始点,fp)
(D).fseek(起始点,位移量,文件类型指针)
53. 下列表达式中,可作为C合法表达式的是(B).
(A).[3,2,1,0]
(B).(3,2,1,0)
(C).3=2=1=0
(D).3/2/1/0
54. 以下程序的输出结果为(B).
main()
{int a=1,b=2,c=3,d=4,e=5;
printf("%d\n",func((a+b,b+c,c+a),(d+e)));
}
int func(int x,int y)
{
return(x+y);
}
(A).15
(B).13
(C).9
(D).函数调用出错
55. 以下标识符中,不能作为合法的C用户定义标识符的是(B).
(A).a3_b3
(B).void
(C)._123
(D).IF

56. 假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b的值是(B).
(A).7
(B).8
(C).9
(D).2
57. 以下程序段的输出结果为(B).
for(i=4;i>1;i--)
for(j=1;jputchar('#');
(A).无
(B).######
(C).#
(D).###
58. 设C语言中,int类型数据占2个字节,则unsigned类型数据占(B).
(A).1个字节
(B).2个字节
(C).4个字节
(D).8个字节
59. 对 for(表达式1; ;表达式3) 可理解为(B).
(A).for(表达式1;0;表达式3)
(B).for(表达式1;1;表达式3)
(C).for(表达式1;表达式1;表达式3)
(D).for(表达式1;表达式3;表达式3)
60. C语言中,定义结构体的保留字是(B).
(A).union
(B).struct
(C).enum
(D).typedef
61. 设C语言中,int类型数据占2个字节,则short类型数据占().B
(A).1个字节
(B).2个字节
(C).4个字节
(D).8个字节
62. 对 for(表达式1; ;表达式3) 可理解为(B).
(A).for(表达式1;0;表达式3)
(B).for(表达式1;1;表达式3)
(C).for(表达式1;表达式1;表达式3)
(D).for(表达式表达式3;表达式3)
63. C语言允许函数类型缺省定义,此时函数值隐含的类型是().B
(A).float
(B).int
(C).long
(D).double
64. 若有int a[][2]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为(B).
(A).非法,2
(B).&a[1][0],2
(C).&a[0][1],3
(D).a[0][0],4
65. 以下叙述正确的是(B).
(A).可以把define和if定义为用户标识符
(B).可以把define定义为用户标识符,但不能把if定义为用户标识符
(C).可以把if定义为用户标识符,但不能把define定义为用户标识符
(D).define和if都不能定义为用户标识符
66. sizeof(float)是(B).
(A).一个双精度型表达式
(B).一个整型表达式
(C).一种函数调用
(D).一个不合法的表达式
67. 对 for(表达式1; ;表达式3) 可理解为(B).
(A).for(表达式1;0;表达式3)
(B).for(表达式1;1;表达式3)
(C).for(表达式1;表达式1;表达式3)
(D).for(表达式1;表达式3;表达式3)
68. 若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是(B).
(A).i=*p;
(B).*p=*&j;
(C).i=&j;
(D).i=**p;
69. 下面四个选项中,均是不合法的浮点数的选项是(B).
(A).160

. 0.12 e3
(B).123 2e4.2 .e5
(C).-.18 123e4 0.0
(D).-e3 .234 1e3
70. 在一个C程序中(B).
(A).main函数必须出现在所有函数之前
(B).main函数可以在任何地方出现
(C).main函数必须出现在所有函数之后
(D).main函数必须出现在固定位置
71. 若二维数组a有m列,则在a[i][j]前的元素个数为(B).
(A).j*m+i
(B).i*m+j
(C).i*m+j-1
(D).i*m+j+1
72. 若有下列定义,则对a数组元素地址的正确引用是(B).
int a[5],*p=a;
(A).&a[5]
(B).p+2
(C).a++
(D).&a
73. 2下列字符序列中,不可用作C语言标识符的是(B).
(A).b70
(B).#ab
(C).symbol
(D).a_1
74. 15以下不正确的说法是:C语言规定(B).
(A).实参可以是常量,变量或表达式
(B).形参可以是常量,变量或表达式
(C).实参可以为任何类型
(D).形参应与其对应的实参类型一致
75. 3下列数据中,为字符串常量的是(B).
(A).A
(B)."house"
(C).How do you do.
(D).$abc
76. 17在位运算中,操作数每右移一位,其结果相当于(B).
(A).操作数乘以2
(B).操作数除以2
(C).操作数乘以16
(D).操作数除以16
77. 以下所列的C语言常量中,错误的是(B).
(A).0xFF
(B).1.2e0.5
(C).2L
(D).'\72'
78. 为了提高程序的运行速度,在函数中对于整型或指针可以使用(B)型的变量.
(A).auto
(B).register
(C).static
(D).extern


79. 10int a=1,b=2,c=3;
if(a>c)b=a;a=c;c=b;则c的值为().B
(A).1
(B).2
(C).3
(D).不一定
80. 以下不正确的定义语句是(B).
(A).double x[5]={2.0,4.0,6.0,8.0,10.0};
(B).int y[5]={0,1,3,5,7,9};
(C).char c1[]={'1','2','3','4','5'};
(D).char c2[]={'\x10','\xa','\x8'};
81. C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是(B).
(A).地址传递
(B).单向值传递
(C).由实参传给形参,再由形参传回给实参
(D).由用户指定的传递方式
82. 以下程序的输出结果是(B).
main()
{ char s[]="123",*p;
p=s;
printf("%c%c%c\n",*p++,*p++,*p++);
}
(A).123
(B).321
(C).213
(D).312
83. 以下语句中,不能实现回车换行的是(B).
(A).printf("\n");
(B).putchar("\n");
(C).fprintf(stdout,"\n");
(D).fwrite("\n",1,1,stdout);





选择题C篇




84. 设C语言中,int类型数据占2个字节,则long类型数据占(C).
(A).1个字节
(B).2个字节
(C).4个字节
(D).8个字节
85. 以下叙述正确的是(C).
(A).在C程序中,main函数必须位于程序的最前面
(B).C程序的每行中只能写一条语句
(C).C语言本身没有输入输出语句
(D).在对一个C程序进行编译的过程中,可发现注释中的拼写错误
86. 以下数值中,不正确的八进制数或十六进制数是(C).
(A).0x16
(B).016
(C).-16
(D).0xaaaa
87. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是(C).
(A).0
(B).语法错
(C).1
(D).假
88. 能将高级语言编写的源程序转换为目标程序的是(C).
(A).链接程序
(B).解释程序
(C).编译程序
(D).编辑程序

89. 以下关于运算符优先顺序的描述中正确的是(C).
(A).关系运算符<算术运算符<赋值运算符<逻辑运算符
(B).逻辑运算符<关系运算符<算术运算符<赋值运算符
(C).赋值运算符<逻辑运算符<关系运算符<算术运算符
(D).算术运算符<关系运算符<赋值运算符<逻辑运算符
90. 以下叙述中不正确的是(C).
(A).表达式a&=b等价于a=a&b
(B).表达式a|=b等价于a=a|b
(C).表达式a!=b等价于a=a!b
(D).表达式a^=b等价于a=a^b

91. 12.以下不能对二维数组a进行正确初始化的语句是(C).
(A).int a[2][3]={0};
(B).int a[][3]={{1,2},{0}};
(C).int a[2][3]={{1,2},{3,4},{5,6}};
(D).int a[][3]={1,2,3,4,5,6};
92. 下列语句中,不正确的是C
(A).static char a[2]={1,2};
(B).static int a[2]={'1','2'};
(C).static char a[2]={'1','2','3'};
(D).static char a[2]={'1'};
93. static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是(C).
(A).a[1]
(B).a[-1]
(C).a[0]
(D).a[10]
94. 以下字符中不是转义字符的是(C).
(A).'\a'
(B).'\b'
(C).'\c'
(D).'\\'
95. 以下数据中,不正确的数值或字符常量是(C).
(A).0
(B).5L
(C).o13
(D).9861
96. 若输入ab,程序运行结果为(C).
main()
{ static char a[2];
scanf("%s",a);
printf("%c,%c",a[1],a[2]);
}
(A).a,b
(B).a,
(C).b,
(D).程序出错

97. 下列程序段的输出结果为(C).
int a=7,b=9,t;
t=a*=a>b?a:b;
printf("%d",t);
(A).7
(B).9
(C).63
(D).49
98. 下面四个选项中,均是不合法的用户标识符的选项是(C).
(A).A P_0 do
(B).float la0 _A
(C).b-a goto int
(D)._123 temp int
99. 在C语言中,调用函数除函数名外,还必须有(C).
(A).函数预说明
(B).实际参数
(C).( )
(D).函数返回值
100. 下面判断正确的是(C).
(A).char *a="china";等价于 char *a;*a="china";
(B).char str[10]={"china"};等价于charstr[10];str[]={"china"};
(C).char *s="china";等价于 char *s;s="china";
(D).char c[4]="abc",d[4]="abc";等价于 char c[4]=d[4]="abc";
101. char *s1="hello",*s2;s2=s1;则(C)
(A).s2指向不确定的内存单元
(B).不能访问"hello"
(C).puts(s1);与puts(s2);结果相同
(D).s1不能再指向其它单元
102. 若a是float型变量,b是unsigned型变量,以下输入语句中合法的是(C).
(A).scanf("%6.2f%d",&a,&b);
(B).scanf("%f%n",&a,&b);
(C).scanf("%f%3o",&a,&b);
(D).scanf("%f%f",&a,&b);
103. C语言执行程序的开始执行点是(C).
(A).程序中第一条可以执行语言
(B).程序中第一个函数
(C).程序中的main函数
(D).包含文件中的第一个函数
104. fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是(C).
(A).字符串读入后不会自动加入'\0'
(B).fp是file类型的指针
(C).fgets函数将从文件中最多读入n-1个字符
(D).fgets函数将从文件中最多读入n个字符
105. 若有说

明 int a[3][4];则对a数组元素的正确引用是(C).
(A).a[2][4]
(B).a[1,3]
(C).a[1+1][0]
(D).a(2)(1)
106. C程序中的宏展开是在(C).
(A).编译时进行的
(B).程序执行时进行的
(C).编译前预处理时进行的
(D).编辑时进行的
107. 设有说明int (*ptr)[M];其中标识符ptr是(C).
(A).M个指向整型变量的指针
(B).指向M个整型变量的函数指针
(C).一个指向具有M个整型元素的一维数组的指针
(D).具有M个指针元素的一维指针数组,每个元素都只能指向整型量
108. 若有char a[80],*s=a;不正确的输入语句是(C).
(A).scanf("%s",s);
(B).gets(s);
(C).fscanf(stdin,"%c",s);
(D).fgets(s,80,stdin);
109. 以下选项中合法的实型常数是(C).
(A).5E2.0
(B).E-3
(C)..2
(D).1.3E
110. 以下常量中,能够代表逻辑"真"值的常量是(C).
(A).'\0'
(B).0
(C).'0'
(D).NULL
111. 以下标识符中,不能作为合法的C用户定义标识符的是(C).
(A).putchar
(B)._double
(C).123_
(D).INT
112. 7经过以下语句定义后,表达式z+=x>y?++x:++y的值为(C).
int x=1,y=2,z=3;
(A).2
(B).3
(C).6
(D).5
113. 8以下运算符中优先级最低的是(C).
(A).&&
(B).&
(C).||
(D).|
114. char a[10];不能将字符串"abc"存储在数组中的是(C).
(A).strcpy(a,"abc");
(B).a[0]=0;strcat(a,"abc");
(C).a="abc";
(D).int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;
115. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(C).
(A).整型常量
(B).整型表达式
(C).整型常量或整型表达式
(D).任何类型的表达式
116. 以下各选项企图说明一种新的类型名,其中正确的是(C).
(A).typedef v1 int;
(B).typedef v2=int;
(C).typedef int v3;
(D).typedef v4: int;
117. 9执行语句 for(i=1;i++<4;); 后变量 i 的值是(C).
(A).3
(B).4
(C).5
(D).不定
118. 1以下程序段的执行结果是(C).
double x;x=218.82631; printf("%-6.2e\n",x);
(A).输出格式描述符的域宽不够,不能输出
(B).输出为21.38e+01
(C).输出为2.2e+02
(D).输出为-2.14e2




119. 以下运算符中,优先级最高的运算符是(C).
(A).||
(B).%
(C).!
(D).==
(C).98,c
120. C语言规定,在一个源程序中,main函数的位置(C).
(A).必须在最开始
(B).必须在系统调用的库函数的后面
(C).可以任意
(D).必须在最后
121. 当顺利执行了文件关闭操作时,fclose函数的返回值是(C).
(A).-1
(B).True
(C).0
(D).1
122. 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(C).
(A).char s[10]="abcdefg";
(B).char t[]="abcdefg",*s=t;
(C).char s[10];s="abcdefg";
(D).char s[10];strcpy(s,"abcdefg");
123. 在C语言中,函数的隐含存储类别是(C).
(A).auto
(B).static
(C).extern
(D).无存储类别
124. 若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是(C).
(A).int p=&x;
(B).int *p=x;
(C).int *p=&x;
(D).*p=*x;
125. 切换编辑窗和信息窗的命令键是(C).
(A).F2
(B).F3
(C).F6


(D).F9
126. 在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的表达式是(C).
A).(!E==0)
(B).(E>0||E<0)
(C).(E==0)
(D).(E!=0)
127. 用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是(C).
long a=0xffffff;
int b; char c;
(A).0ffffff 和0x61
(B).-1和98
(C).-1和97
(D).指向同一地址
128. 以下对二维数组a的正确说明是(C).
A).int a[3][]
(B).float a(3,4)
(C).double a[1][4]
(D).float a(3)(4)
129. 在C语言的函数中,下列正确的说法是(C).
(A).必须有形参
(B).形参必须是变量名
(C).可以有也可以没有形参
(D).数组名不能作形参
130. char *s1="hello",*s2;s2=s1;则(C).
(A).s2指向不确定的内存单元
(B).不能访问"hello"
(C).puts(s1);与puts(s2);结果相同
(D).s1不能再指向其它单元
131. 以下不正确的if语句形式是(C).
(A).if(x>y&&x!=y);
(B).if(x==y) x+=y;
(C).if(x!=y) scanf("%d",&x) else scanf("%d",&y);
(D).if(x









选择题D篇






132. C语言中,double类型数据占(D).
(A).1个字节
(B).2个字节
(C).4个字节
(D).8个字节
133. 设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是(D).
(A).552
(B).144
(C).264
(D).-264
134. 下列程序的输出为(D).
main()
{ int y=10;
while(y--) ;
printf("y=%d\n",y);
}
(A).y=0
(B).while构成无限循环
(C).y=1
(D).y=-1
135. 以下能正确定义数组并正确赋初值的语句是(D).
(A).int N=5,b[N][N];
(B).int a[1][2]={{1},{3}};
(C).int c[2][]={{1,2},{3,4}};
(D).int d[3][2]={{1,2},{34}};
136. 若有说明: int a[][4]={0,0};则下面不正确的叙述是(D).
(A).数组a的每个元素都可得到初值0
(B).二维数组a的第一维大小为1
(C).因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1
(D).有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
137. C语言规定,函数返回值的类型是由(D).
(A).return语句中的表达式类型所决定
(B).调用该函数时的主调函数类型所决定
(C).调用该函数时系统临时决定
(D).在定义该函数时所指定的函数类型所决定
138. 则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是(D).
(A).if(strcmp(s1,s1)>0)puts(s2);
(B).if(strcmp(s2,s1)>0)puts(s2);
(C).if(strcmp(s2,t)>0)puts(s2);
(D).if(strcmp(s1,t)>0)puts(s2);
139. 下列选项中正确的语句组是(D).
(A).char s[8]; s={"Beijing"};
(B).char *s; s={"Beijing"}
(C).char s[8]; s="Beijing";
(D).char *s; s="Beijing";
140. 以下叙述中错误的是(D).
(A).二进制文件打开后可以先读文件的末尾,而顺序文件不可以
(B).在程序结束时,应当用fclose函数关闭已打开的文件
(C).在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
(D).不可以用FILE定义指向二进制文件的文件指针
141. 以下数组定义中不正确的是(D).

(A).int a[2][3];
(B).int b[][3]={0,1,2,3};
(C).int c[100][100]={0};
(D).int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
142. 函数的形式参数隐含的存储类型说明是(D).
(A).extern
(B).static
(C).register
(D).auto
143. 在定义构造数据类型时,不能(D).
(A).说明变量
(B).说明存储类型
(C).初始化
(D).末尾不写分号
144. 具有相同类型的指针变量p与数组a,不能进行的操作是(D).
(A).p=a;
(B).*p=a[0];
(C).p=&a[0];
(D).p=&a;
145. 8.下列运算符中,不属于关系运算符的是(D).
(A).<
(B).>
(C).>=
(D).!
146. 15.以下错误的描述是:函数调用可以(D).
(A).出现在执行语句中
(B).出现在一个表达式中
(C).做为一个函数的实参
(D).做为一个函数的形参
147. 18.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(D).
(A).p=q;
(B).*p=*q;
(C).n=*q;
(D).p=n;
148. 下列字符序列中,可用作C标识符的一组字符序列是(D).
(A).S.b,sum,average,_above
(B).class,day,lotus_1,2day
(C).#md,&12x,month,student_n!
(D).D56,r_1_2,name,_st_1
149. double x;scanf("%lf",&x);不可以赋值给x变量的常量是(D).
(A).123
(B).100000
(C).'A'
(D)."abc"
150. 若int类型数据占两个字节,则下列语句的输出为(D).
nt k=-1; printf("%d,%u\n",k,k);
(A).-1,-1
(B).-1,32767
(C).-1,32768
(D).-1,65535
151. 若k,g均为int型变量,则下列语句的输出为(D).
k=017; g=111; printf("%d\t",++k); printf("%x\n",g++);
(A).15 6f
(B).16 70
(C).15 71
(D).16 6f
152. 以下不能正确定义二维数组的选项是(D).
(A).int a[2][2]={{1},{2}};
(B).int a[][2]={1,2,3,4};
(C).int a[2][2]={{1},2,3};
(D).int a[2][]={{1,2},{3,4}};
153. 下列定义数组的语句中不正确的是(D).
(A).static int a[2][3]={1,2,3,4,5,6};
(B).static int a[2][3]={{1},{4,5}};
(C).static int a[][3]={{1},{4}};
(D).static int a[][]={{1,2,3},{4,5,6}};
154. 在定义构造数据类型时,不能(D).
(A).说明变量
(B).说明存储类型
(C).初始化
(D).末尾不写分号
155. 下面说明不正确的是(D).
(A).char a[10]="china";
(B).char a[10],*p=a;p="china"
(C).char *a;a="china";
(D).char a[10],*p;p=a="china"
156. 若a=1,b=2则 a|b的值是(D).
(A).0
(B).1
(C).2
(D).3
157. 下列运算符中是C语言关系运算符的是(D).
(A).~
(B).!
(C).&
(D).!=
158. C语言中要求对变量作强制定义的主要理由是(D).
(A).便于移植
(B).便于写文件
(C).便于编辑预处理程序的处理
(D).便于确定类型和分配空间



159. 以下不符合C语言语法的赋值语句是(D).
(A).j++;
(B).j=j=5;
(C).k=(2*4,k*4);
(D).y=float(j);
160. 在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式(D).
(A).只能用逻辑表达式
(B).只能用关系表达式
(C).只能用逻辑表达式或关系表达式
(D).可用任意表达式
161. 在C语言中,一维数组的定义方式为:类型说明符数组名(D).
(A).[常量表达式]
(B).[整型表达式]
(

C).[整型常量]或[整型表达式]
(D).[整型常量]
162. 以下标识符中,不能作为合法的C用户定义标识符的是(D).
(A).For
(B).Printf
(C).WORD
(D).sizeof
163. 在C语言中,char型数据在内存中的存储形式是(D).
(A).补码
(B).反码
(C).原码
(D).ASCII码
164. c以下对一维整型数组a的正确说明是(D).
(A).int a(10);
(B).int n=10,a[n];
(C).int n; scanf("%d",&n); int a[n];
(D).#define SIZE 10 (换行) int a[SIZE];
165. 关于指针概念说法不正确的是(D).
(A).一个指针变量只能指向同一类型变量
(B).一个变量的地址称为该变量的指针
(C).只有同一类型变量的地址才能放到指向该类型变量的指针变量之中
(D).指针变量可以由整数赋,不能用浮点赋
166. 以下运算符中,优先级最高的运算符是(D).
(A).=
(B).!=
(C).*(乘号)
(D).()
167. 使用共用体变量,不可以(D).
(A).节省存储空间
(B).简化程序设计
(C).进行动态管理
(D).同时访问所有成员
168. 以下叙述正确的是(D).
(A).do-while语句构成的循环不能用其它语句构成的循环来代替.
(B).do-while语句构成的循环只能用break语句退出.
(C).用do-while语句构成的循环,在while后的表达式为非零时结束循环.
(D).用do-while语句构成的循环,在while后的表达式为零时结束循环
169. 以下程序段 char *alp[]={"ABC","DEF","GHI"}; int j; puts(alp[1]);的输出结果是(D).
(A).A
(B).B
(C).D
(D).DEF


170. 在C语言中,int、char和short三种类型数据在内存中所占用的字节数(D).
(A).由用用户自己定义
(B).均为2个字节
(C).是任意的
(D).由所用机器的机器字长决定
171. 12以下定义语句中,错误的是(D).
(A).int a[]={1,2};
(B).char *a[3];
(C).char s[10]="test";
(D).int n=5,a[n];
172. 2putchar函数可以向终端输出一个(D).
(A).整型变量表达式值
(B).实型变量值
(C).字符串
(D).字符或字符型变量值
173. 以下不正确的叙述是(D).
(A).在C程序中所用的变量必须先定义后使用
(B).程序中,APH和aph是两个不同的变量
(C).若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变
(D).当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值
174. 6以下程序的输出结果是(D).
main()
{int i,j,k,a=3,b=2;
i=(--a==b++)?--a:++b;
j=a++;k=b;
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
(A).i=2,j=1,k=3
(B).i=1,j=1,k=2
(C).i=4,j=2,k=4
(D).i=1,j=1,k=3
175. 7判断char型变量cl是否为小写字母的正确表达式是(D).
(A).'a'<=cl<='z'
(B).(cl>=a)&&(cl<=z)
(C).('a'>=cl)||('z'<=cl)
(D).(cl>='a')&&(cl<='z')
176. 10以下程序的运行结果是(D).
main()
{
int i=1,sum=0;
while(i<10) sum=sum+1;i++;
printf("i=%d,sum=%d",i,sum);
}
(A).i=10,sum=9
(B).i=9,sum=9
(C).i=2,sum=1
(D).运行不出结果
177. 下列关于C语言数据文件的叙述中正确的是(D).
(A).文件由

ASCII码字符序列组成,C语言只能读写文本文件
(B).文件由二进制数据序列组成,C语言只能读写二进制文件
(C).文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
(D).文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
178. 5C语言中表达逻辑"真"值的是(D).
(A)..T.
(B).0
(C).True
(D).非0的数

179. 20若调用fputc函数输出字符成功,则其返回值是(D).
(A).EOF
(B).1
(C).0
(D).输出的字符
180. 10下面有关 for 循环的正确描述是(D).
(A).for 循环只能用于循环次数已经确定的情况
(B).for 循环是先执行循环循环体语句,后判断表达式
(C).在 for 循环中,不能用 break 语句跳出循环体
(D).for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
181. 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是(D).
(A).gets(a);
(B).scanf("%s",a);
(C).for(i=0;i<10;i++)a[i]=getchar();
(D).a=getchar();
182. 20fscanf函数的正确调用形式是(D).
(A).fscanf(fp,格式字符串,输出表列);
(B).fscanf(格式字符串,输出表列,fp);
(C).fscanf(格式字符串,文件指针,输出表列);
(D).fscanf(文件指针,格式字符串,输入表列);
183. 7下列语句的结果是(D).
main()
{ int j;
j=3;
printf("%d,",++j);
printf("%d",j++);
}
(A).3,3
(B).3,4
(C).4,3
(D).4,4


相关文档
相关文档 最新文档