【HNCE 网上考试系统 v9.6】 本套软件使用权属于:郑州大学
考试课程: 考试时间:100分钟 考场:第一考场 考试日期:2013.05.24
考号:11100000000 姓名: 剩余时间: 99:41 保存 交卷 退出 帮助
本卷共有3道大题:
一、单项选择题(50道小题,共50分)
1、一个C 语言程序是由( )。(1分)
A 、一个主程序和若干子程序组成
B 、函数组成
C 、若干过程组成
D 、若干子程序组成
2、一个C 程序的执行是从( )。(1分)
A 、本程序的main 函数开始,到main 函数结束
B 、本程序文件的第一个函数开始,到本程序文件的最
后一个函数结束
C 、本程序的main 函数开始,到本程序文件的最后一个
函数结束 D 、本程序文件的第一个函数开始,到本程序main 函数结束
3、以下叙述中,不正确的是( )。(1分)
A 、一个C 源程序可由一个或多个函数组成
B 、一个
C 源程序必须包含一个main 函数
C 、C 程序的基本组成单位是函数
D 、在C 程序中,注释说明只能位于一条语句的后面
4、若有语句:int x=3;do{printf("%d\n",x-=2);}while(!(--x));,则程序段( )。(1分)
A 、输出的是1
B 、输出的是1和-2
C 、输出的是3和0
D 、是死循环
5、下列四个选项中,都是合法的转义字符的是( )。(1分)
A 、'\''、'\\'、'\n'
B 、'\'、'\017'、'\"'
C 、'\018'、'\f'、'xab'
D 、'\\0'、'\101'、'x1f'
6、若有定义:int a=7;float x=2.5,y=4.7;,则表达式x+a%3*(int)(x+y)%2/4的值是( )。(1分)
A 、2.500000
B 、2.7500OO
C 、3.500000
D 、0.000000
7、若x,i,j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后,x的值为()。(1分)
A、4
B、16
C、32
D、52
8、表达式18/4*sqrt(4.0)/8值的数据类型为()。(1分)
A、int
B、float
C、double
D、不确定
9、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式()。(1分)
A、从左起输出该字串,右补空格
B、按原字符长从左向右全部输出
C、右对齐输出该字串,左补空格
D、输出错误信息
10、已知程序段:int x,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d\n",x+y+z);,当输入数据的形式为:25,13,10
A、x+y+z=48
B、x+y+z=35
C、x+y+z=35
D、不确定值
11、下面四个选项中,均是不合法的用户标识符的选项是()。(1分)
A、A、P_0、do
B、float、1a0、_A
D、_123、temp、
C、b-a、goto、int
INT
12、x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是()。(1分)
A、x=10、y=15、z=10
B、x=10、y=10、z=10
C、x=10、y=10、z=15
D、x=10、y=5、z=10
13、以下叙述中,正确的叙述是()。(1分)
B、若a是实型变量,C程序中允许赋值a=10,因此实型
A、在C程序中,每行中只能写一条语句
变量中允许存放整型数
C、在C程序中,无论是整数还是实数,都能被准确无误
D、在C程序中,%是只能用于整数运算的运算符
地表示
14、已有定义和输入语句:int a1,a2;char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是()。(1分)
A 、10A 20B
B 、10 A 20 B
C 、10A20
D 、10A20 B
15、若希望当A 的值为奇数时,表达式的值为“真”, A 的值为偶数时,表达式的值为“假”。则以下不能满足要求的
表达式是( )。(1分)
A 、A%2==1
B 、!(A%2==0)
C 、!(A%2)
D 、A%2
16、判断char 型变量c1是否为小写字母的正确表达式为( )(1分)
A 、'a'<=cl<='z'
B 、(cl>=a)&&(cl<=z)
C 、('a'>=cl)||('z'<=cl)
D 、(c1>='a')&&(cl<='z')
17、设x,y 和z 是int 型变量,且x = 3,y= 4,z= 5,则下面表达式中值为0的是( )(1分)
A 、'y'&&'y'
B 、x<=y
C 、x||y+z&&y-z
D 、!(x 18、执行程序段:int w=3,z=7,x=10;x>10?x+100:x-10;w++||z++;!w>z;printf("%d\n",w&&z);后,输出结果是 ( )。(1分) A 、0 B 、1 C 、2 D 、3 19、有两个字符数组a 和b ,则以下正确的输入语句是( )。(1分) A 、gets(a,b); B 、scanf("%s%s",a,b); C 、scanf("%s%s",&a,&b); D 、gets("a"),gets("b"); 20、以下叙述中,不正确的叙述是( )。(1分) A 、在C 程序中,逗号运算符的优先级最低 B 、在 C 程序中,APH 和aph 是两个不同的变量 C 、若a 和b 类型相同,在执行了赋值表达式a=b 后b 中的值将放人a 中,而b 中的值不变 D 、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 21、下面不正确的字符串常量是( )。(1分) A、'abc' B、"12'12" C、"0" D、"" 、下面四个选项中,均是合法整型常量的选项是()。(1分) A、160、-0xffff、011 B、-0xcdf、01a、0xe C、-01、986,012、0668 D、-0x48a、0x、2e5 、循环语句for(x=0,y=0;(y=123)&&(x<4);x++); 的执行次数是()。(1分) A、是无限循环 B、循环次数不定 C、执行4次 D、执行3次 、当a=1,b=3,c=5,d=4,执行程序段:if(a 1分) A、1 B、2 C、3 D、6 、若运行int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);时,给变量x输入12,则以下程序的运行结果是()(1分) A、0B、22 C、12 D、10 以下程序: a,b;scanf("%f",&a);if(a<10.0)b=1.0/a;else if((a<0.5)&&(a!=2.0))b=1.0/(a+2.0);else if(a<10.0) b=1.0/x ;else b=10.0;printf("%f\n 时,输入2.0(回车),则上面程序的输出结果是()。(1分) A、0.000000 B、0.500000 C、1.000000 D、0.250000 、以下不正确的语句为()。(1分) A、if(x>y); B、if(x=y) && (x!=0) x+= y; C、if(x!=y)scanf("%d",&x);else scanf("%d",&y); D、if(x 、以下if语句语法正确的是()。(1分) A、if(x>0)printf("%f",x)else printf("%f",- -x); B、if(x>0){x=x+y;printf("%f",x);}else printf("f",-x); C 、if(x>0){x=x+y;prinrf("%f",x);};else printf("%f",-x); D 、 if(x>0){x=x+y;printf("%f",x)} else printf("%f",-x); 29、若i 为整型变量,则for(i=2;i==0;)printf("%d",i-- );循环执行次数是( )。(1分) A 、无限次 B 、0次 C 、1次 D 、2次 30、有以下程序段:int x=0,s=0;while(!x!=0)s+=++x;printf("%d",s);,则( )。(1分) A 、运行程序段后输出0 B 、运行程序段后输出1 C 、程序段中的控制表达式是非法的 D 、程序段执行无限次 31、逻辑运算符两侧运算对象的数据类型( )。(1分) A 、只能是0或1 B 、只能是0或非0正数 C 、只能是整型或字符型数据 D 、可以是任何类型的数据 32、在C 语言中,引用数组元素时,其数组下标的数据类型允许是( )。(1分) A 、整型常量 B 、整型表达式 C 、整型常量或整型表达式 D 、任何类型的表达式 33、以下能对一维数组a 进行正确初始化的语句是( )。(1分) A 、int a[10]=(0,0,0,0,0) B 、int a[10]={} C 、int a[]={0}; D 、int a[10]={10*1}; 34、若有说明:int a[10];,则对a 数组元素的正确引用是( )。(1分) A 、a[10] B 、a[3.5] C 、a[15] D 、a[10-10] 35、下面描述中,正确的是( )。(1分) A 、两个字符串所包含的字符个数相同时,才能比较字 符串 B 、字符个数多的字符串比字符个数少的字符串大 C、字符串" STOP"(注:有一个空格)与"STOP"相等 D、字符串"That"小于字符串"The" 36、判断字符串a 和b 是否相等,应当使用( )。(1分) A 、if(a= =b) B 、if(a=b) C 、if(strcpy(a,b)) D 、if(strcmp(a,b)) 37、定义如下变量和数组:int k;int a[3][3]={1,2,3,4,5,6,7,8,9};,则语句 for(k=0;k<3;k++) printf("%d",a[2-k][k]);的输出结果是( )。(1分) A 、3 6 9 B 、7 5 3 C 、9 6 3 D 、3 5 7 38、以下不能对二维数组a 进行正确初始化的语句是( )。(1分) A 、int a[2][3]={0}; 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}}; 39、若有说明:int a[3][4];,则对a 数组元素的非法引用是( )。(1分) A 、a[0][2*1] B 、a[1][3] C 、a[4-2][0] D 、a[0][4] 40、若有说明:int a[][4]={0,0};,则下面不正确的叙述是( )。(1分) A 、数组a 的每个元素都可得到初值0 B 、二维数组a 的第一维大小为1 C 、因为二维数组0中第二维大小的值除以初值个数的 商为1,故数组a 行数为1 D 、只有元素a[0][0]和a[0][1]可得初值0,其余元素均得不到初值0 41、以下各组选项中,均能正确定义二维实型数组a 的选项是( )。(1分) A 、float a[3][4];、float a[][4];、 float a[3][]={{1},{0}}; B 、float a(3,4);、float a[3][4];、float a[][]={{0},{0}}; C 、float a[3][4];、 static float a[][4]={{0},{0}};、 auto float a[][4]={{0},{0},{0}}; D 、float a[3][4];、float a[3][];、float a[][4] 42、以下能对二维数组a 进行正确初始化的语句是( )。(1分) A 、int a[2][]={{1,0,1},{5,2,3}}; B 、int a[][3]={{1,2,3},{4,5,6}};