期中复习题3
一、选择题(30题)
1.以下关于预处理命令的叙述中错误的是____(21)____。
A. 预处理命令由预处理程序解释
B. 程序中的预处理命令是以#开始的
C. 若在程序的一行中出现多条预处理命令,这些命令都是有效的
D. 预处理命令既可以出现在函数定义的外部,也可以出现在函数体内部
2.已有声明“int x,a=3,b=2;”,则执行赋值语句“x=a>b++?a++:b++;”后,变量x、a、b的值分别为___(26)___。
A. 3 4 3 B. 3 3 4 C. 3 3 3 D. 4 3 4
3.下列选项中可用作变量名的是_____(27)_____
A. Case B. a-b C. $cd D. 2ab
4.执行以下程序后的结果是_____(28)_____。
#include<stdio.h>
void main()
{ int x=3;
do
{
printf(“%d\t”,x=x-3);
}while(!x);
}
A. 输出一个数:0 B. 输出一个数:3
C. 输出2个数:0和-3 D. 无限循环,反复输出数
5.以下关于c语言函数的叙述中,正确的是_____(29)_____。
A. 在一个函数体中可以定义另一个函数,也可以调用其他函数
B. 在一个函数体中可以调用另一个函数,但不能定义其他函数
C. 在一个函数体中不可以调用另一个函数,也不能定义其他函数
D. 在一个函数体中可以定义另一个函数,但不能调用其他函数
6.设有声明“int a=4,b=3,c=5;”,以下4个程序段中有3个程序段的执行效果是相同的,另一个执行效果不同的是_____(30)_____。
A. if(a>b)c=a,a=b,b=c;
B. if(a>b)c=a;a=b;b=c;
C. if(a>b){c=a,a=b,b=c;}
D. if(a>b){c=a;a=b;b=c;}
7. 某程序需要使用一个代表常数3.14的符号常量P,以下定义中正确的是(21)
A. #define P 3.14 ; B. #define P(3.14)
C.#define P=3.14 ; D. #define P 3.14
8. 下列四个选项中,属于C语言关键字的是(22)
A. Float B. single
C. double D. real
9. 已知某编译系统中signed int 类型数据的长度是16位,该类型数据的最大值是( 23)
A. 32767 B. 32768
C. 127 D. 65535
10. 以下关于if语句和switch语句的叙述中错误的是(24)
A. if语句和switch语句都可以实现算法的选择结构
B. if语句和switch语句都能实现多路(两路以上)选择
C. if语句可以嵌套使用
D. switch语句不可以嵌套使用
11.以下选项中不符合C语言标识符命名规则的是 ___22___ 。
A.printf B._00
C.&a D.FOR
12.以下选项中,可作为C语言合法表达式的是 ___23___。
A.3.0%2 B.3=2=1=0
C.{3,2,1,0} D.(3,2,1,0)
13.若有宏定义"#define S(x,y) x/y",则执行语句"printf("%d",S(6+3,2+2));"后的输出是___24___ 。
A.9 B.2
C.9.5 D.2.25
14.表达式"3<2 || -1 && !0"的值是___25___。
A.2 B. 1 C.0 D.-1
15.以下数组声明中错误的是 ___28___.
A.int num[2][4]={{1,2},{3,4),{5,6}};
B.int num[][3]={{1,2},{3,4},{5,6}};
C.int num[]= {1,2,3,4,5,6};
D.int num[][4]={1,2,3,4,5,6};
16、已知声明“int x;”,实现“若x的值是奇数,则输出x”这一功能的语句是___(23)____。
A. if(x/2) printf("%d",x); B. if(x%2) printf("%d",x);
C. if(x/2==1) printf("%d",x); D. if(x%2==0) printf("%d",x);
17. 已有声明“int a[3][4]={{3,4},{2,8,6}};”则数组a[1][0]的值为___(26)____。
A. 2 B. 4 C. 6 D. 8
18. 已有声明“char c=' \72';”,则变量c包含___(28)____个字符。
A. 1 B. 2 C. 3 D. 4
19.判断char型变量c1的值是否为小写字母的正确表达式为______(30)_____。
A. 'a' <=c1<=' z' B. c1>=a&&c1<=z
C. 'a' >=c1||' z' <=c1 D. c1>='a'&&c1<='z'
20、以下程序运行时,输出到屏幕的结果是_______(6)___8。
#include <stdio.h>
int main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;
for(i=0;i<3;i++)
for(j=2;j>=i;j--)
t+=b[i][j];
printf("%d\n",t);
return 0;
}
21、用8位无符号二进制数能表示的最大十进制数为( )。
A) 127 B) 128 C) 255 D)256
22、在while(x)语句中的x与下面条件表达式等价的是( )。
A)x==0 B) x= =1 C) x!=1 D) x!=0
23、已知 int i,a; 执行语句”i=(a=2*3,a*5),a+6;”后,变量a的值是( )。
A)6 B)12 C)30 D)36
24、以下不是死循环的语句为( )。
A)for(; ; x+=k);
B)while(1){x++};
C)for(k=10; ;k--)sum+=k;
D)for(;(c=getchar())!=’\n’;)printf(“%c”,c);
25、若有说明:int a[3][4];则对a 数组元素的正确引用是( )。
A)a[2][4] B)a[1,3]
C)a[1+1][0] D)a(2)(1)
26、以下合法的赋值语句是( )
A、x=y=100 B、d--; C、x+y; D、c=int(x+y);
(27)若变量已正确定义,有以下程序段
int a=3,b=5,c=7;
if(a>b) a=b; c=a;
if(c!=a) c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是
A)程序段有语法错
B)3,5,3
C)3,5,5
D)3,5,7
(28)有以下程序
#include <stdio.h>
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0:a++; break;
case 1:b++; break;
}
case 2:a++; b++; break;
case 3:a++; b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的运行结果是
A)a=1,b=0
B)a=2,b=2
C)a=1,b=1
D)a=2,b=1
29、已有预处理命令“#include <math.h>”和声明“int a=4,b;”,以下语句中语法正确的是__(24)___。
A. if(a%2=1) b=a; B. if(sqrt(a)%2) b=a; C. if(a==1) b=a; D. if(a==1) b=*a;
30、若有以下语句,则正确的描述是( )。
char x[ ]=”abcd”;
char y[ ]={‘a’,’b’,’c’,’d’};
A.x数组和y数组长度相同 B. x数组长度大于y数组长度
C. x数组长度小于y数组长度 D. x数组等价于y数组
二、填空题(10题)
1.执行语句序列“int a,b;a=b=4;a+=b%3;”后,变量a、while语句里的ifb的值分别是__(3)___。
2.执行程序段“int x=0x6c;printf(“x=%x\n”,x);”后的输出结果为__(4)_。
3.已知有声明"int a[5]={5,4,3,2,1},i=3;",执行语句"a[i++]++;printf("%d",a[i]);"后,屏幕输出为 ___(3)_1__ 。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论