第一章 单元测试
1、单选题:
01110011:流程图中用下列哪一个图形符号表示判断?()
选项:
A:矩形框
B:圆形框
C:菱形框
D:平行四边形框
答案: 【菱形框】
2、单选题:
01110021:流程图中用下列哪种图形符号表示事情处理过程的开始?(
选项:
A:圆括号矩形
B:圆圈
C:箭头
D:矩形
答案: 【圆括号矩形】
3、单选题:
01110031:流程图中用于描述输出的是下列哪一个图形符号?
选项:
A:矩形框
B:圆括号矩形框
C:平行四边形框
D:菱形框
答案: 【平行四边形框】
4、单选题:
01210011:以下选项中哪一个是C语言关键字( )。
选项:
A: printf
B:default
C:include
D:fun
答案: 【default】
5、单选题:
01210031:下列选项中不属于C语言关键字的是()。
选项:
A:default
B:register
C:enum
D: external
答案: 【 external】
6、单选题:
01210051:C语言提供的合法关键字是( )。
选项:
A:swith
B:cher
C:Case
D:default
答案: 【default】
7、单选题:
01210021:下列哪一个选项不属于C语言的关键字()。
选项:
A:integer
B: break
C:while
D:static
答案: 【integer】
8、单选题:
01210041:下列四组选项中均不是C语言关健字的选项是( )。
选项:
A:gect char printf
B:define IF type
C:while go pow
D:include scanf case
答案: 【define IF type】
9、单选题:
01210061:C语言提供的合法数据类型关键字是( )。
选项:
A:Signed
B:Char
C: float
D:Integer
答案: 【 float】
10、单选题:
01310011:在以下各组标识符中,均可以用作变量名的一组是()。
选项:
A:table_1, a*1
B:0_a, W12
C:a01, Int
D:for, point
答案: 【a01, Int】
11、单选题:
01310021:下列不合法的C语言中标识符是()。
选项:
A: PI
B:student
C: #xyz
D: _total
答案: 【 #xyz】
12、单选题:
01310031:以下不合法的C语言标识符是()。
选项:
A:ab.c
B: abc
C:ABC
D: a_bc
答案: 【ab.c】
13、单选题:
01310041:下列字符串是合法标识符的是( )。
选项:
A:long
B:_HJ
C:LINE 1
D:9_student
答案: 【_HJ】
14、单选题:
01310051:下列标识符组中,合法的用户标识符为( )。
选项:
A:list与*jer
B:del-word与signed
C:_0123与ssiped
D:keep%与wind
答案: 【_0123与ssiped】
15、单选题:
01310061:以下选项中不合法的用户标识符是( )。
选项:
A:PRINT
B:file
C:abc.c
D:Main
答案: 【abc.c 】
16、单选题:
01310071:以下选项中不合法的用户标识符是( )。
选项:
A:_123
B:Dim
C: A$
D:Printf
答案: 【 A$ 】
17、单选题:
01310081:在下列C语言程序中,可以用做变量名的是( )。
选项:
A:*p
B:int
C:a1
D:1
答案: 【a1】
18、单选题:
01310091:以下符号中不能用作用户标识符的符号是( )。
选项:
A:Struct
B:_256
C:Scanf
D:void
答案: 【void】
19、单选题:
01310101:下面四个选项中,均是不合法的用户标识符的选项是( )。
选项:
A:float lao _A
B:b-a goto int
C:_123 temp INT
D:A p_0 do
答案: 【b-a goto int】
20、单选题:
01310111:C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )。
选项:
A:必须为下划线
B:必须为大写
C:必须为字母或下划线
D:可以是字母、数字和下划线中的任一种字符
答案: 【必须为字母或下划线】
21、判断题:
01380011:C语言规定标识符只能由字母、数字和小数点三种字符组成。()
选项:
A:错
B:对
答案: 【错】
22、判断题:
01420021:65的二进制32位定长形式是00000000 00000000 00000000 01000001
选项:
A:错
B:对
答案: 【对】
23、单选题:
01410021:下面4个选项中,均是正确的八进制数和十六进制数的选项是( )。
选项:
A:0abc -017 0xc
B:0a12 -0x123 -0xa
C:0010 -0x11 0xf1
D: -10 0X8f -011
答案: 【0010 -0x11 0xf1】
24、单选题:
01410011:某种数制每位上所使用的数码个数称为该数制的()。
选项:
A:指数
B:位权
C:基数
D:数值
答案: 【基数】
25、单选题:
01410031:下面四个选项中,均是不正确的八进制或十六进制数的选项是( )。
选项:
A:016 0x8f 018
B:010 -0x11 0x16
C:0abc 017 0xa
D:0a12 7ff -123
答案: 【0a12 7ff -123】
第二章 单元测试
1、判断题:
02180011:C语言定义一个变量,占用内存中的一个存储空间。( )
选项:
A:错
B:对
答案: 【对】
2、判断题:
02180021:C语言中,要求对所有用到的变量先定义,然后才能使用。( )
选项:
A:对
B:错
答案: 【对】
3、单选题:
02210011:下面四个选项中均是合法整型常量的选项是( )。
选项:
A:-01 986,012 0668
B:-0x48a 2e5 0x02B2
C:160 0xffff 011
D:-0xcdf 01a 0xe
答案: 【160 0xffff 011】
4、单选题:
02210021:下面四个选项中,均是不合法整型常量的选项是( )。
选项:
A:-0f1 -0xffff 0011
B:-0xcdf 017 12,456
C: -0x48eg -068 03f
D:-018 999 5e2
答案: 【 -0x48eg -068 03f】
5、单选题:
02210031:下列选项中表示一个正确的整型常量 ( )。
选项:
A: 4 5 6
B: 1,000
C: -20
D:1.2
答案: 【 -20】
6、单选题:
02210041:若a为整型变量,则语句a=-2;printf(“%d”,a);( )。
选项:
A:输出为不确定值
B:输出值为-2
C:赋值不合法
D:输出值为2
答案: 【输出值为-2】
7、判断题:
02280011:在变量声明中给变量赋初值的方法是:int a=b=c=10;()
选项:
A:对
B:错
答案: 【错】
8、判断题:
02280021:如果i的原值为3,则:j=++i;j的值为3。()
选项:
A:对
B:错
答案: 【错】
9、判断题:
02280031:设C语言中一个int型数据在内存中占2个字节,则int数据的取值范围为-32768~32767。()
选项:
A:错
B:对
答案: 【对】
10、单选题:
02310011:下面四个选项中,均是不合法浮点数的是( )。
选项:
A:123 2e4.2 .e5
B: 160 0.12 e3
C:-e3 .234 1e3
D:-018 123e4 0.0
答案: 【123 2e4.2 .e5】
11、单选题:
02310031:以下每个选项都代表一个常量,其中不正确的实型常量是( )。
选项:
A:2.607E-1
B: -77.77
C: 0.8103e2
D:4.6e-2
答案: 【 0.8103e2】
12、单选题:
02310041:设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型为( )。
选项:
A:float
B:double
C:int
D:不确定
答案: 【double】
13、单选题:
02310051:设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为( )。
选项:
A:float
B:double
C: char
D: int
答案: 【double】
14、单选题:
02310062:以下变量定义中,合法的是( )。
选项:
A:float 3_four=3.4;
B:int _abc_=2;
C:short do =15;
D:double a=1+4e2.0;
答案: 【int _abc_=2;】
15、单选题:
02310072:已定义x为float型变量x=213.82631;printf(“%-4.2fn”,x);则以上语句( )。
选项:
A:输出为213.82
B:输出格式描述符的域宽不够,不能输出
C:输出为-213.82
D:输出为213.83
答案: 【输出为213.83】
16、单选题:
02410031:C语言中,char型数据在内存中的存储形式是( )。
选项:
A:补码
B:ASCII码
C:反码
D:原码
答案: 【ASCII码】
17、单选题:
02410041:下面正确的字符常量是( )。
选项:
A: ”’
B: ‘W’
C: ‘
D: “c”
答案: 【 “c”】
18、单选题:
02410081:下面四个选项中,均是正确的数值常量或字符常量的选项是( )。
选项:
A:+001 0xabcd 2e2 50
B:0.0 0f 8.9e ‘&’
C:’3′ 011 0xFF00 0a
D:”a” 3.9E-2.5 1e1 ‘”‘
答案: 【+001 0xabcd 2e2 50】
19、判断题:
02480011:字符型变量用来存放字符常量,注意只能放2个字符。()
选项:
A:对
B:错
答案: 【错】
20、判断题:
02480021:C语言中可以把一个字符串赋给一个字符变量。( )
选项:
A:对
B:错
答案: 【错】
21、判断题:
02480031:C语言使字符型数据和整型数据在一定范围内之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。()
选项:
A:对
B:错
答案: 【对】
22、判断题:
02480041:C的字符常量是用双引号括起来的一个字符。( )
选项:
A:对
B:错
答案: 【错】
23、单选题:
02510011:下面不正确的字符串常量是( )。
选项:
A:”12’12”
B:’abc’
C: “0”
D: ” ”
答案: 【’abc’】
24、单选题:
02510021:下面4个选项中均是非法常量的是( )。
选项:
A:’as’ -0fff ‘xa’
B:0xabc ” “a”
C:-0x18 01177 0xf
D:” 1 12,456
答案: 【’as’ -0fff ‘xa’】
25、判断题:
02580011:字符串常量是一对单引号括起来的字符序列。( )
选项:
A:对
B:错
答案: 【错】
26、单选题:
02610011:int k=8567;printf(“|%-6d|”,k);结果是( )。
选项:
A:输出为|-08567|
B:输出格式描述不合法
C:输出为|8567 |
D:输出为|008567|
答案: 【输出为|8567 |】
27、单选题:
02610021:若在scanf函数语句中没有非格式字符作输入数据的间隔,则不可用( )作为输入数据的间隔。
选项:
A:空格
B:TAB
C:逗号
D:回车
答案: 【逗号】
28、单选题:
02610031:使用scanf函数时,在源程序开头( )。
选项:
A:书写#include <scanf.h>
B:书写#include <math.h>
C:书写#include <stdio.h>
D:不必写#include
答案: 【书写#include <stdio.h>】
29、单选题:
02610041:double x=213.82631; printf(“%-6.2en”,x);则以上语句( )。
选项:
A:输出为21.38e+01
B:输出为2.14e+02
C:输出格式描述符的域宽不够,不能输出
D:输出为-2.14e2
答案: 【输出为2.14e+02】
30、单选题:
02610051:若输入4位整数到整型变量a中,可用( )。
选项:
A: scanf(“M”);
B:scanf(“M”,a);
C:scanf(“%d”,&a);
D:scanf(“M”,&a);
答案: 【scanf(“%d”,&a);】
31、单选题:
02610061:a为整型变量,输入5,执行printf(“a=%d”,a)后输出为( )。
选项:
A:a=5
B:5
C:a=%5
D:a=a=5
答案: 【a=5】
32、单选题:
02610072:下列能正确输入字符数组a的语句是( )。
选项:
A:循环执行scanf(“%c”,&a[i]);
B: scanf(“%s”,&a);
C:scanf(“%c”,a);
D:scanf(“%s”,a);
答案: 【scanf(“%s”,a);】
33、单选题:
02610082:在输入时,字符变量的值必须使用空格间隔,其输入函数可为( )。
选项:
A:scanf(“<“,&a,&b,&c);
B:循环执行getchar()
C:scanf(“%c %c %c”,&a,&b,&c);
D:scanf(“%c,%c,%c”,&a,&b,&c);
答案: 【scanf(“%c %c %c”,&a,&b,&c);】
34、判断题:
02680011:若int x=3; printf(“%d”,&x);则系统会报错,没有任何结果。()
选项:
A:对
B:错
答案: 【错】
35、判断题:
02680021:输入语句scanf(“%d,%d,%d”,a,b,c);的格式是正确的。( )
选项:
A:对
B:错
答案: 【错】
36、判断题:
02680031:在scanf(“%d,%d,%d”,&a,&b)函数中,当输入为1,2,3时,将1赋给a,将2赋给b。( )
选项:
A:错
B:对
答案: 【错】
37、判断题:
02680041:printf函数是一个标准库函数,它的函数原型在头文件”string.h”中。()
选项:
A:错
B:对
答案: 【错】
38、判断题:
02680051:在printf函数中,输出列表的各输出项之间可用冒号分隔。()
选项:
A:对
B:错
答案: 【错】
39、判断题:
02680061:若int x=3;printf(“%d”,&x);则系统不会报错,会输出x的地址。()
选项:
A:错
B:对
答案: 【对】
40、判断题:
02680071:输入语句的格式为:scanf(“%d%d%d”,&a,&b,&c);是正确。()
选项:
A:错
B:对
答案: 【对】
41、判断题:
02680081:在scanf(“%d,%d”,&a,&b)函数中,可以使用一个或多个空格作为两个输入数之间的间隔。()
选项:
A:错
B:对
答案: 【错】
42、判断题:
02680091:printf函数是一个标准库函数,它的函数原型在头文件stdio.h中。()
选项:
A:错
B:对
答案: 【对】
43、判断题:
02680111:在scanf(“%c%c”,&c1,&c2)函数中,当输入为字符a,b时,将a赋给c1,将b赋给c2。( )
选项:
A:对
B:错
答案: 【错】
44、判断题:
02680121:printf函数中的格式字符,既可以是大写形式也可以是小写形式。()
选项:
A:错
B:对
答案: 【错】
45、判断题:
02680131:使用printf函数时,格式控制字符串和各输出项应一一对应。()
选项:
A:错
B:对
答案: 【对】
46、判断题:
02680141:在printf函数中,格式字符f的意义是:以小数形式输出单精度实数。()
选项:
A:对
B:错
答案: 【对】
47、判断题:
02680161:输入语句的格式为:scanf(“%d,%d,%d”,&a;&b;&c)是正确的。()
选项:
A:对
B:错
答案: 【错】
48、判断题:
02680171:在printf函数中,不同系统对输出表列的求值顺序不一定相同,VC是按从右到左进行的。()
选项:
A:对
B:错
答案: 【对】
第三章 单元测试
1、单选题:
03110011:已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6′-‘3’后,c2中的值为( )。
选项:
A:68
B:D
C:不确定的值
D:C
答案:
2、单选题:
03110021:若有定义int k=7, x=12;,则能使值为3的表达式是( )。
选项:
A:(x%=k)-(k%=5)
B:x%=(k%=5)
C:x%=(k-k%5)
D:x%=k-k%5
答案:
3、单选题:
03110031:设int n=3;则有表达式++n,n的结果是( )。
选项:
A:3
B:4
C:2
D:5
答案:
4、单选题:
03110041:表达式18/4*sqrt(4.0)/8值的数据类型为( )。
选项:
A: int
B:double
C:float
D:不确定
答案:
5、单选题:
03110051:设int n=3;则n++的指是( )。
选项:
A:5
B:4
C:2
D:3
答案:
6、单选题:
03110061:若有int k = 11;则表达式(k++*1/3)的值是( )。
选项:
A:3
B:12
C:11
D:0
答案:
7、单选题:
03110071:下列表达式的值,那一个等于0 ( )。
选项:
A:5%6
B:5/6.0
C:5/6
D:5-6
答案:
8、单选题:
03110082:已知int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。
选项:
A:3.500000
B:2.750000
C: 2.500000
D: 0.000000
答案:
9、判断题:
03180011:在C语言中,要求参加运算的数必须是整数的运算符是%。( )
选项:
A:错
B:对
答案:
10、判断题:
03180021:若有int m=5,y=2;则执行下面表达式y+=y-=m*=y后,y的值为-16。( )
选项:
A:错
B:对
答案:
11、单选题:
03210012:判断char型变量c1是否为小写字母的正确表达式为( )。
选项:
A: (c1>=A. &&(c1<=’z’)
B:(c1>=’a’)&&(c1<=’z’)
C:(‘a’>=c1)||(‘z'<=c1)
D:’a'<=c1<=’z
答案:
12、单选题:
03210021:下列运算符中,不属于关系运算符的是( )。
选项:
A:>=
B:!=
C:!
D:<
答案:
13、单选题:
03210032:设int n=2;则++n+1==4的结果是( )。
选项:
A:0
B:false
C:1
D:true
答案:
14、单选题:
03310011:在C语言的逻辑运算中,逻辑值”真”用( )表示。
选项:
A:T
B: true
C:TURE
D:整型值1
答案:
15、单选题:
03310021:在C语言的混合运算中,非逻辑值转化为逻辑值的原则是()。
选项:
A:1为真,0为假
B:非“零”为真,“零”值为假
C:正数为真,负数为假
D:非0为真,0为假
答案:
16、单选题:
03310031:在逻辑运算中,逻辑运算符两侧的运算对象数据类型是( )。
选项:
A:只能是0或非0正数
B:可以是任何合法的类型数据
C:只是0或1
D:只能是整型或字符型数据
答案:
17、单选题:
03310042:若希望当A的值为奇数时,表达式的值为真,A的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是( )。
选项:
A:!(A%2==0)
B:!(A%2)
C:A%2==1
D:A%2
答案:
18、单选题:
03310052:设a=2,b=3,c=4,则表达式 a+b>c&&b==c&&a||b+c&&b+c的值为( )。
选项:
A:8
B:1
C:5
D:0
答案:
19、单选题:
03310062:下列运算符中优先级最高的是 ( )。
选项:
A:&&
B:+
C:<
D:!=
答案:
20、判断题:
03380011:逻辑运算符的优先级别高于算术运算符。( )
选项:
A:错
B:对
答案:
21、判断题:
03380021:int a=0,b=1,c=2;则表达式a||b+c && b==c的值为 0。()
选项:
A:错
B:对
答案:
22、判断题:
03380031:int a=0,b=1,c=2,x,y;则!(x=a)&&(y=b)&&c的值为1。()
选项:
A:错
B:对
答案:
23、单选题:
03410011:已知各变量的类型说明如下:int k,a,b; unsigned long w=5;double x=1.42;下列表达式中不符合C语言语法的是( )。
选项:
A:k=(a=2,b=3,a+b)
B:w+=-2
C:a+=a-=(b=4)*(a=3)
D: x%(-3)
答案:
24、单选题:
03410021:设n=10,i=4,则赋值运算n%=i+1执行后,n的值是( )。
选项:
A:1
B:3
C:0
D:2
答案:
25、单选题:
03410031:以下叙述中正确的是( )。
选项:
A:在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式。
B:已有a=3,b=5当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。
C:执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。
D:a是实型变量,C语言允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值。
答案:
26、单选题:
03410051:设有int p,q;以下不正确的语句是( )。
选项:
A:p+=3;
B:p&&=q;
C:p/=q;
D:p*=3;
答案:
27、单选题:
03410061:已知int x,y,z;执行语句x=(y=(z=10)+5)-5;后x、y、z的值是( )。
选项:
A:x=10 y=10 z=15
B:x=10 y=10 z=10
C:x=10 y=5 z=10
D:x=10 y=15 z=10
答案:
28、判断题:
03480011:由赋值运算符将一个变量和一个表达式连接起来的式子称为”赋值表达式”。()
选项:
A:对
B:错
答案:
29、判断题:
03480021:a=b=c=d=10;是一个合法的赋值语句。()
选项:
A:错
B:对
答案:
30、单选题:
03610021:sizeof(float)是( )。
选项:
A:一个整型表达式
B:一个不合法的表达式
C:一个双精度表达式
D:一种函数调用
答案:
31、单选题:
03610031:C语言中int、char和short三种类型数据在内存中占用的字节数( )。
选项:
A:均为2个字节
B:由用户自己定义
C:是任意的
D:由所用机器的机器字长决定
答案:
32、单选题:
03610041:逗号表达式(a=3*5,a*4),a+15的值为( )。
选项:
A:15
B:30
C:不确定
D:60
答案:
33、单选题:
03610062:以下变量均为int类型,则值不等于7的表达式是( )。
选项:
A:(x=y=6,x+y,y+1)
B:(x=y=6,x+y,x+1)
C:(x=6,x+1,y=6,x+y)
D:(y=6,y+1,x=y,x+1)
答案:
34、单选题:
03610072:以下符合C语言语法的赋值表达式是( )。
选项:
A:d=9+e+f=d+9
B:d=9+e,e++,d+9
C:d=e=f+7
D:d=9+e,f=d+9
答案:
35、单选题:
03610083:以下使i的运算结果为4的表达式是( )。
选项:
A:int i=0,j=0; (i=3,(j++)+i);
B:int i=1,j=0; j=i=((i=3)*2);
C:int i=0,j=1; (j==1)?(i=1):(i=3);
D:int i=1,j=1; i+=j+=2;
答案:
第四章 单元测试
1、单选题:
04210012:以下程序的输出结果是( )。
int main( )
{
int m=5;
if(m++>5)
printf(“%d”,m);
else printf(“%d”,m–);
return 0;
}
选项:
A:5
B:7
C:6
D:4
答案:
2、单选题:
04210022:以下程序的输出结果为( ) 。
int main ( )
{
int i=0,j=0,a=6;
if ((++i>0)&&(++j>0))
a++;
printf (“i=%d, j=%d, a=%dn”, i,j,a);
return 0;
}
选项:
A:i=0,j=0,a=6
B:i=0,j=1, a=7
C:i=1,j=0,a=7
D:i=1,j=1,a=7
答案:
3、单选题:
04210032:以下程序的输出结果为( ) 。
int main()
{
int a=2,b=-1,c=2;
if (a )
if(b<0)
c=0;
else c++;
printf(“%d”,c);
return 0;
}
选项:
A:3
B:0
C:1
D:2
答案:
4、单选题:
04210042:若i为int型,且有程序如下,则输出结果是( )。
i=111;
if(i%3==0)
printf(“####”);
printf(“****”);
选项:
A: ****
B:####****
C: ####
D:无输出结果
答案:
5、判断题:
04280011:变量a,b,c已赋初值,则语句if((a=b;)>0) c=a;是正确的。()
选项:
A:错
B:对
答案:
6、判断题:
04280021:变量x,y,z已赋初值,则语句if((x=y+5)>0) z=x;是正确的。()
选项:
A:错
B:对
答案:
7、判断题:
04280031:else语句总是和靠它最近的if匹配。()
选项:
A:对
B:错
答案:
8、单选题:
04310012:若运行时x=12,则运行结果为( )。
int main( )
{
int x, y;
scanf(“%d”, &x);
y=x>12 ? x+10:x-12;
printf(“%dn”, y);
return 0;
}
选项:
A:10
B:12
C:22
D:0
答案:
9、单选题:
04310023:以下程序的输出结果是( )。
int main()
{
int i=0, j=0, k=6;
if ((++i>0)||(++j>0))
k++;
printf(“%d, %d, %dn”, i, j, k);
return 0;
}
选项:
A:0, 1, 7
B:1, 1, 7
C:0, 0, 6
D:1, 0, 7
答案:
10、单选题:
04310032:若变量都已正确说明,则以下程序段输出为( )。
int a=1,b=2,c=3;
if(a>b)
a=b;
b=c;
c=a;
printf(“a=%d b=%d c=%dn”,a,b,c);
选项:
A:a=2 b=3 c=2
B:a=1 b=2 c=1
C:a=1 b=2 c=3
D:a=1 b=3 c=1
答案:
11、单选题:
04310042:以下不正确的语句为( )。
选项:
A:if((x==y)&&(x!=0))x+=y;
B:if(x!=y) scanf(“%d”,&x);else scanf(“%d”,&y);
C:if(x)
D: if(x>y);
答案:
12、单选题:
04410012:写出下面程序输出结果( )。
int main( )
{
int x=1, y=0, a=0, b=0;
switch(x)
{case 1: switch(y)
{ case 0: a++;
case 1: b++;
}
case 2: a++; b++;
}
printf(“a=%d, b=%dn”, a, b) ;
}
选项:
A:a=1, b=0
B: a=2, b=2
C:a=2, b=1
D:a=1, b=1
答案:
13、判断题:
04480012:switch语句中一定有default分支。()
选项:
A:错
B:对
答案:
14、判断题:
04480021:case后只能跟常量,不能跟变量。()
选项:
A:错
B:对
答案:
第五章 单元测试
1、单选题:
05210012:现已定义整型变量int i=1;执行循环语句while(i++<5);后,i的值为( )。
选项:
A:6
B:5
C:1
D:A、B、C均不正确
答案:
2、单选题:
05210022:有程序段int k=10;while(k=0) k=k-1;则下面描述正确的是( )。
选项:
A:循环体语句一次也不执行
B:循环是无限循环
C:循环体语句执行一次
D:while 循环执行10次
答案:
3、单选题:
05210032:下列程序段的运行结果是( )。
int n=0; while(n++<3); printf(“%d”,n);
选项:
A:以上都不对
B:4
C:2
D:3
答案:
4、单选题:
05210042:设有程序段t=0;while(printf(“*”)){ t++;if (t<3)break;} printf(“t=%d”,t);下面描述正确的是( )。
选项:
A:其中循环控制表达式是不合法的
B:以上说法都不对
C:其中循环控制表达式与0等价
D:其中循环控制表达式与’0’等价
答案:
5、单选题:
05310012:以下程序段( )。
x=-1;
do
{ x=x*x;
}while(!x);
选项:
A:循环执行一次
B:有语法错误
C:循环执行2次
D:是死循环
答案:
6、单选题:
05310022:下面程序的运行结果是( )。
int main()
{
int y=10;
do
{ y–;}
while(–y);
printf(“%dn”,y–);}
选项:
A:1
B:8
C:-1
D:0
答案:
7、单选题:
05310032:有语句int x=3; do { printf(“%dn”,x-=2);} while(!(–x));则上面程序段( )。
选项:
A:输出的是1
B:输出的是1和-2
C:是死循环
D:输出的是3和0
答案:
8、单选题:
05510013:有以下程序:
int main( )
{
char i;
for (; (i=getchar ())!=’n’;)
{
switch (i-‘a’)
{
case 0: putchar (i);
case 1: putchar (i+1); break;
case 2: putchar (i+2);
case 3: break;
default:putchar (i); break;
}
}
printf (“n”);}输入abcde后,程序的输出结果是( )。
选项:
A:abcde
B:abccdd
C:abbde
D:abcee
答案:
9、单选题:
05510042:以下程序段的输出结果是( )。
int main()
{
int i=5;
for ( ;i<=15; )
{
i++;
if (i%4==0)
printf(“%d “,i);
else
continue;
}
return 0;
}
选项:
A:8
B:8 12
C:8 12 16
D:12 16
答案:
10、判断题:
05480011:do-while语句构成的循环不能用其它语句构成的循环来代替。()
选项:
A:对
B:错
答案:
11、判断题:
05480021:用do-while语句构成循环时,只要while后的表达式为0时就结束循环。()
选项:
A:错
B:对
答案:
12、判断题:
05480031:while循环的while( )后没有分号,而do-while循环的while()后一定要有一个分号。()
选项:
A:对
B:错
答案:
13、单选题:
05510021:C语言的for语句中的表达式可以部分或全部省略,但两个( )不可省略。但当三个表达式均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。
选项:
A:<
B:,
C:;
D:++
答案:
14、单选题:
05510031:下面有关for循环的正确描述是( )。
选项:
A:for循环体语句中,可以包含多条语句,但要用花括号括起来。
B:在for循环中,不能用break语句跳出循环体。
C:for循环只能用于循环次数已经确定的情况。
D:for循环是先执行循环体语句,后判定表达式。
答案:
15、单选题:
05510052:以下不是无限循环的语句为( )。
选项:
A:for(i=10; ; i–) sum+=i;
B:while(1){x++;}
C:for( ; ;x++=i);
D:for(y=0,x=1;x>++y;x=i++) i=x;
答案:
16、判断题:
05580011:for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。()
选项:
A:对
B:错
答案:
17、判断题:
05580021:for循环中,如果表达式2为空,则该循环一定是死循环。()
选项:
A:对
B:错
答案:
18、判断题:
05580031:for(i=0,j=10;i<=j;i++,j–) k=i+j;执行完后,k的值为50。()
选项:
A:错
B:对
答案:
19、判断题:
05580041:若a、b均为int型变量,且a=100,则for (b=100;a!=b;++a,b++) printf(“—-n”)是死循环。()
选项:
A:错
B:对
答案:
20、判断题:
05580051:执行语句:for(i=1;i++<4;++i);后;变量i的值是5。(
选项:
A:对
B:错
答案:
21、单选题:
05610012:以下程序输出结果为( )。
int main()
{
int i,b,k=0;
for(i=1;i<=5;i++)
{
b=i%2;
while (b–>=0)
k++;
}
printf(“%d,%dn”,k,b);
return0;
}
选项:
A:8,-1
B:8,-2
C:3,0
D:3,-1
答案:
22、单选题:
05610021:以下程序段中循环体总的执行次数是( )。
int i,j;
for(i=7;i;i–)
for(j=0;j<6;j++)
{……}
选项:
A:42
B:36
C:21
D:13
答案:
23、单选题:
05710012:以下正确的描述是( )。
选项:
A:只能在循环体内和switch语句内使用break语句
B:在循环体内使用break语句或continue语句的作用相同
C:从多层循环嵌套中退出时,只能使用goto语句
D:continue语句的作用是结束整个循环的执行
答案:
24、单选题:
05710021:以下不正确的描述是( )。
选项:
A:break 语句不能用于循环语句和switch语句外的任何其他语句
B:在switch语句中使用break语句或continue语句的作用相同。
C:在循环语句中使用break是为了使流程跳出循环体,提前结束循环。
D:在循环语句中使用continue是为了结束本次循环,而不是终止整个循环的执行。
答案:
25、判断题:
05780011:break语句的作用就是结束本层循环。()
选项:
A:错
B:对
答案:
第六章 单元测试
1、单选题:
06110011:C语言中,数组名代表( )。
选项:
A:数组第一个元素的值
B:数组首地址
C:数组元素的个数
D:数组全部元素的值
答案:
2、单选题:
06110021:以下关于数组的描述正确的是 ( ) 。
选项:
A:数组的大小是固定的,所有数组元素的类型必须相同
B:数组的大小是固定的,但可以有不同的类型的数组元素
C:数组的大小是可变的,可以有不同的类型的数组元素
D:数组的大小是可变的,但所有数组元素的类型必须相同
答案:
3、单选题:
06110031:在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。
选项:
A:整型常量或整型表达式
B:任何类型的表达式
C:整型表达式
D:整型常量
答案:
4、单选题:
06110041:设array为一数组,则表达式sizeof(array)/sizeof(array[0])的结果为( )。
选项:
A: array数组首地址
B: array数组中每个元素所占的字节数
C:array数组中元素个数
D:array数组占的总字节数
答案:
5、单选题:
06210011:以下对一维数组a的正确说明是()。
选项:
A:int k=5,a[k];
B:int a[ ];
C:char a[ ]={‘a’,’b’, ‘c’};
D:char a(10);
答案:
6、单选题:
06210021:下面程序中有错误的行是( )。
1、int main( )
2、{
3、 int x[3]={1};
4、 int k;
5、 scanf(“%d”, &x);
6、 for (k=1; k<3; k++)
7、 x[0]=x[0]+x[k];
8、 printf(“x[0]=%d”, x[0]);
9、 return 0;
10、}
选项:
A:3
B:7
C:6
D:5
答案:
7、单选题:
06210031:若有以下语句,则正确的描述是( )。
char x[ ]=”12345″;char y[ ]={‘1’, ‘2’, ‘3’, ‘4’, ‘5’};
选项:
A:x数组长度大于y数组长度
B: x数组与y数组的长度相同
C:x数组等价于y数组
D:x数组长度小于y数组长度
答案:
8、单选题:
06210041:以下不正确的数组定义语句是( )。
选项:
A:double x[5]={2.0, 4.0, 6.0, 8.0, 10.0};
B:char ch1[ ]={‘1’, ‘2’, ‘3’, ‘4’, ‘5’};
C:char ch2[ ]={‘x10’, ‘xa’, ‘x8’};
D:int y[5]={0, 1, 3, 5, 7, 9};
答案:
9、单选题:
06210051:以下正确的数组定义语句是( )。
选项:
A:int b[2][ ]={{1}, {2}};
B:char a[5]={‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ”};
C:float c[ ][3]={1, 2, 3, 4, 5};
D:char d[5]=”CHINA”;
答案:
10、单选题:
06210061:下列一维数组正确初始化是( )。
选项:
A:int a[5]={,,1,2};
B: int a[2]={12,3,4,5};
C:int a[5] ={1,2};
D:int *a={12,3,4,5};
答案:
11、单选题:
06210071:不能对以下数组进行初始化的语句的是( )。
选项:
A: int a[2]={10*1};
B:int a[2]; a[0]=1; a[1]=2;
C: int a [2] =[1,2] ;
D:int a[2]={0};
答案:
12、单选题:
06210081:若定义int m[10]={9,4,12,8,2,10,7,5,1,3};则m[m[4]+m[8]]的值是()。
选项:
A:12
B:10
C:7
D:8
答案:
13、单选题:
06210091:以下对一维数组 a 的定义正确的是( )。
选项:
A:int a[5];
B: int a[0..100];
C:int k=10;int a[k];
D:char a(10);
答案:
14、单选题:
06210101:若有说明int a[10];则对数组元素正确的引用是( )。
选项:
A:a[0]
B:a[10]
C:a(0)
D:a[3.5]
答案:
15、单选题:
06210111: 对说明语句int a[10]={6,7,8,9,10};理解正确的是()。
选项:
A:将5个初值依次赋给a[0]至a[4]。
B:将5个初值依次赋给a[1]至a[5]。
C:因为数组长度与初值个数不同,所以语句不正确。
D:将5个初值依次赋给a[6]至a[10]。
答案:
16、单选题:
06210121:下列程序的输出结果是( )。
int main()
{
int a=0, b[3];
b[0]=3;
printf(“%d,%d”,b[0];b[1]);
return 0;}
选项:
A:3 0
B:0,3
C:3,不定值
D:3,0
答案:
17、单选题:
06210132:以下程序运行后 ,输出结果是( )。
int main()
{
int n[5]={0,0,0},i,k=2;
for(i=0;i<k;i++)
n[i]=n[i]+1;
printf(“%dn”,n[k]);
return 0;
}
选项:
A:不确定值
B:2
C:1
D:0
答案:
18、单选题:
06210141:以下对一维整型数组 a 的正确说明是( ) 。
选项:
A:#define SIZE 10 int a[SIZE];
B:int n=10,a[n];
C:int a(10);
D:int n; scanf(“%d”,&n); int a[n];
答案:
19、单选题:
06210152:执行下面的程序段后,变量k中的值为( ) 。
int k=3, s[2];
s[0]=k; k=s[1]*10;
选项:
A:不确定值
B:33
C:30
D:10
答案:
20、单选题:
06210161:已知short int类型变量在内存在占两个字节,有如下定义 short int array[10]={0,2,4}则数组array在内存所占的字节数为( )。
选项:
A:3
B:20
C:6
D:10
答案:
21、单选题:
06310011:下列二维数组的初始化哪一个不针对三行四列二维数组()。
选项:
A:int a[3][4] ={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
B:int a[][4]={1,0,0,0,5,6};
C:int a[][4]={{1},{5},{9}};
D:int a[][4]={{1},{0,6},{0,0,11}};
答案:
22、单选题:
06310021:若有说明语句:int a[2][4];则对a数组元素的正确引用是( )。
选项:
A:a[2][2+1]
B:a[2][2]
C:a[0][3]
D:a[0][4]
答案:
23、单选题:
06310031:以下能对二维数组y进行初始化的语句是( )。
选项:
A:static int y[ ][3]={{1,0,1,0}, { }, {1,1}};
B:static int y[2][ ]={{1,0,1}, {5,2,3}};
C:static int y[ ][3]={{1,2,3}, {4,5,6}};
D:static int y[2][4]={{1,2,3}, {4,5} , {6}};
答案:
24、单选题:
06310041:若有说明语句:int y[ ][4]={0,0};则下面叙述不正确的是( )。
选项:
A:二维数组y的行数为1。
B:数组y的每个元素都可得初值0。
C:该说明等价于int y[ ][4]={0};
D:只有元素y[0][0]和y[0][1]可得到初值0,其余元素均得不到初值0。
答案:
25、单选题:
06310051:以下各组选项中,均能正确定义二维实型数组s的选项是( )。
选项:
A:float s[3][4];static float s[][4]={{0},{0}};auto float s[][4]={{0},{0},{0}};
B:float s(3,4);float s[ ][ ]={{0},{0}};float s[3][4];
C:float s[3][4];float s[3][ ];float s[ ][4];
D:float s[3][4];float s[ ][4];float s[3][ ]={{1},{0}};
答案:
26、单选题:
06310061:若有说明语句:int a[ ][3]={1,2,3,4,5,6,7,8};则a数组的行数为( )。
选项:
A:3
B:无确定值
C:1
D:2
答案:
27、单选题:
06310071:若二维数组y有m列,则在y[i][j]前的元素个数为( )。
选项:
A:j*m+i
B:i*m+j+1
C: i*m+j-1
D: i*m+j
答案:
28、单选题:
06310081:以下定义语句错误的是()。
选项:
A:int x[][3]={{1,2,3,4}};
B: int x[][3]={{0},{1},{1,2,3}};
C:int x[4][]= { {1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D:int x[4][3]={ {1,2,3},{1,2,3},{1,2,3},{1,2,3}};
答案:
29、单选题:
06310091:若有以下定义:int a[ ][2]={1,2,3,4,5,6,7};则数组a第一维大小是( )。
选项:
A:不确定
B:5
C:4
D:3
答案:
30、单选题:
06310101:以下对二维数组的定义中正确的是( )。
选项:
A:int a[][3]= {1,2,3,4,5,6};
B:int a[4][]={1,2,3,4,5,6};
C:int a[][3];
D: int a[][]={{1,2,3},{4,5,6}};
答案:
31、单选题:
06310111:以下程序的输出结果是( )。
int main()
{
int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf(“%d%d%d%d”,a[0][3],a[1][2],a[2][1],a[3][0]);
return 0;}
选项:
A:5430
B:不确定
C:1470
D:0650
答案:
32、单选题:
06410011:与char str[]={“china”};初始化赋值不等价的是( )。
选项:
A:char str[]={‘c’,’h’,’i’,’n’,’a’,’o’};
B: char str[]=“china”;
C:char str[]={‘c’,’h’,’i’,’n’,’a’};
D:char str[6]={‘c’,’h’,’i’,’n’,’a’,’o’};
答案:
33、单选题:
06410021:char array[]={‘c’,’h’,’i’,’n’,’a’};数组array占用的内存空间是( )个字节。
选项:
A:6
B:1
C:不确定
D:5
答案:
34、单选题:
06410031:判断字符串str1是否大于字符串str2,应当使用( )。
选项:
A:if (strcmp(str1, str2)>0)
B:if (strcmp(str1, str2))
C:if (strcmp(str2, str1)>0)
D: if (str1>str2)
答案:
35、单选题:
06410051:有两个字符数组a,b,则以下能正确为a,b进行赋值的语句是( )。
选项:
A:gets(a, b);
B:scanf(“%s%s”, &a, &b);
C:getchar(a); getchar(b);
D:gets(a); gets(b);
答案:
36、单选题:
06410061:有字符数组s1[80]和s2[80],则以下能正确对s1, s2进行输出的语句是( )。
选项:
A:printf(“%s, %s”, s1, s2);
B:puts(s1, s2)
C:puts(s1), puts(s2);
D:putchar(s1, s2);
答案:
37、单选题:
06410071:以下程序段的运行结果是( )。
char a[7]=”abcdef”;
char b[4]=”ABC”;
strcpy(a, b);
printf(“%c”, a[5]);
选项:
A:
B:f
C:e
D:└┘
答案:
38、单选题:
06410081:以下描述正确的是( )
选项:
A:字符串”That”小于字符串”The”
B:字符个数多的字符串比字符个数少的字符串大
C:字符串”STOP└┘”与”STOP”相等
D:两个字符串所包含的字符个数相同时,才能比较字符串
答案:
39、单选题:
06410091:以下对字符数组的描述中错误的是( )。
选项:
A:可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值
B:字符数组中可以存放字符串
C:字符数组中的字符串可以整体输入、输出
D:不可以用关系运算符对字符数组中的字符串进行比较
答案:
40、单选题:
06410101:若有语句:char s1[10], s2[10]={“books”},则能将字符串books赋给数组s1的正确语句是( )。
选项:
A:strcpy(s2,s1);
B: s1=s2;
C: strcpy(s1,s2);
D:s1={“books”};
答案:
41、单选题:
06410121:下面程序的功能是将字符串s中所有的字符c删除。请选择填空。( )
#include <stdio.h>
int main( )
{
char s[80];
int i, j;
gets(s);
for (i=j=0; s[i]!=”;i++)
if (s[i]!=’c’) ;
s[j]=”;
puts(s);
return 0;
}
选项:
A:s[j++]=s[i]
B:s[j]=s[i]
C:;
D:s[++j]=s[i]
答案:
42、单选题:
06410141:下面程序的运行结果是()。
#include <stdio.h>
#include <string.h>
int main( )
{
char x[80]=”AB”, y[80]=”LMNP”;
int n=0;
strcat(x, y);
while (x[n++]!=”)
y[n]=x[n];
puts(y);
return 0;
}
选项:
A:LB
B:ABLMNP
C:LBLMNP
D: AB
答案:
第七章 单元测试
1、单选题:
07110011:C程序的基本结构单位是()
选项:
A:表达式
B:文件
C:语句
D:函数
答案:
2、单选题:
07110021:一个C语言程序的执行是()
选项:
A:从程序的主函数main()开始到主函数main()结束
B:从程序的第一个函数开始到最后一个函数结束
C:从程序的主函数卖main()开始到最后一个函数结束
D:从程序的第一个函数开始到程序的主函数main()结束
答案:
3、单选题:
07210011:下列函数定义正确的是()
选项:
A: double fun(int x, y)
B:double fun(int x,int y)
C:double fun(int x;int y)
D:double fun(int x, y;)
答案:
4、单选题:
07210021:下面说法不正确的是()
选项:
A:通常C程序是由许多小函数组成的,而不是由少量的大函数组成的
B:通常调用函数前函数必须被定义或声明
C:在源文件中可以用不同的顺序定义函数
D:Dummy(){}是无用的函数
答案:
5、单选题:
07310011:若函数的形参为一维数组,则下列说法中正确的是()
选项:
A:形参数组可以不指定大小
B:形参数组的元素个数必须多于实参数组的元素个数
C:调用函数时的对应实参必为数组名
D:形参数组的元素个数必须等于实参数组的元素个数
答案:
6、单选题:
07310021:有以下函数调用语句:func(rec1,rec2+rec3,rec4);该函数调用语句中含有的实参个数是()
选项:
A:4
B:有语法错
C:3
D:5
答案:
7、单选题:
07510011:下面程序的结果是()
#include <stdio.h>
increment()
{
static int x=0;
x+=1;
printf(“%d”,x);
}
void main()
{
increment();
increment();
increment();
}
选项:
A:1 2 3
B:1 1 1
C:0 1 2
D:0 0 0
答案:
8、单选题:
07510021:下面叙述正确的是()
选项:
A:全局变量在程序的全部执行过程中一直占用内存单元
B:同一文件中的变量不能重名
C:全局变量的定义它的文件中的任何地方都是有效的
D:使用全局变量有利于程序的模块化和可读性的提高
答案:
9、单选题:
07510031:在C语言中,局部变量的隐含存储类别是()
选项:
A:static
B:无存储类别
C:register
D:auto
答案:
第八章 单元测试
1、单选题:
08110012:有以下说明语句,则下面的叙述不正确的是( )。
typedef struct stu{
int a;
float b
}stutype;
选项:
A:struct stu是用户定义的结构体类型名
B:stutype是用户定义的结构体类型名
C:a和b都是结构体成员名
D:struct是结构体类型的关键字
答案:
2、单选题:
08110021:当说明一个结构体变量时系统分配给它的内存是( )。
选项:
A:成员中所占内存量最大者所需的容量
B:结构体中最后一个成员所需内存量
C:结构体中第一个成员所需内存量
D:各成员所需内存量的总和
答案:
3、单选题:
08110032:下列输出字符‘M’的语句是()。
struct person{
char name[9];
int age;
};
struct person class[10]={“John”,17,”paul”,19,”Mary”,18,”Adam”,16};
选项:
A:printf(“%c”,class[3].name[1]);
B:printf(“%c”,class[2].name[0]);
C: printf(“%c”,class[3].name);
D: printf(“%c”,class[2].name[1]);
答案:
4、单选题:
08110042:下列关于结构体变量操作中正确的是()。
struct student{
char num[10];
char name[20],sex;
int age;
float score[3];
float ave;};
选项:
A: stu2={“2008002″,”GaoPing”,’M’,18,86.3,80.5,89.4,85.4};
B:if (stu1==stu2)
C: printf(“%10s %20s %c %3d %4.1f %4.1f %4.1f %4.1”,stu1);
D:struct student stu1={“2008001″,”LiNing”,’M’,19,84.3,82.5,89.4,85.4};
答案:
5、单选题:
08110052:以下定义结构体类型的变量st1,其中不正确的是()。
选项:
A: struct student{
int num ,age;
}st1;
B: struct student{
int num;
int age;
};
student st1;
C: struct{
int num;
float age;
}st1;
D: typedef struct student{
int num;
int age;
}STD;
STD st1;
答案:
6、单选题:
08110062:已知职工记录描述为:
struct workers{
int no;
char name[20];
char sex;
struct{
int day;
int month;
int year;
}birth;
};
struct workers w;设变量w中的“生日”应是“1993年10月25日”,下列对“生日”的正确赋值方式是()。
选项:
A:day=25;month=10;year=1993;
B:birth.day=25;birth.month=10;birth.year=1993;
C:w.day=25;w.month=10;w.year=1993;
D:w.birth.day=25;w.birth.month=10;w.birth.year=1993;
答案:
7、单选题:
08210012:当说明一个共用体变量则系统分配给它的内存是( )。
选项:
A:没有成员驻留在内存中
B:所有成员一直驻留在内存中
C:部分成员驻留在内存中
D:只有一个成员驻留现在内存中
答案:
8、单选题:
08310012:设有枚举类型定义:enum color={red=3,yellow,blue=10,white,black};其中枚举量black的值是()。
选项:
A:15
B:7
C:14
D:12
答案:
9、单选题:
08310022:关于下面变量赋值不正确的是()。
enum NUM{zero,first,second}num1;
int num2;
选项:
A:num1=0;num2=0;
B:num1=zero;num2=0;
C:num1=0;num2=zero;
D:scanf(“%d%d”,&num1,&num2);
答案:
10、单选题:
08310032:如下说明语句:
enum A{A0=1,A1=3,A2,A3,A4,A5};
enum A b;
执行b=A3;printf(“%d”,b);输出是()。
选项:
A:2
B:3
C:编译出错
D:5
答案:
第九章 单元测试
1、单选题:
09110011:变量的指针,其含义是指该变量的( )。
选项:
A:一个标志
B:值
C:地址
D:名
答案:
2、单选题:
09110022:已有定义int k=2;int *ptr1.*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )。
选项:
A:ptr=k;
B:k=*ptr1*(*ptr2);
C:ptr1=ptr2;
D:k =*ptr1+*ptr2;
答案:
3、单选题:
09110032:若有以下说明和定义,则叙述正确的是( )。
typedef int *INTEGER;
INTEGER p,*q;
选项:
A:q是指向int 的指针变量
B:p是int 类型
C:p是指向int 的指针变量
D:程序中可用INTEGER代替int类型名
答案:
4、单选题:
09110042:若有说明:int i,j=2,*p=&i;则能完成i=j赋值功能的语句是( )。
选项:
A:*p=*&j;
B:i=*p;
C:i=&j;
D:i=**p;
答案:
5、单选题:
09110052:若有说明:int *p,m=5,n;以下正确的程序段是( )。
选项:
A:p=&n; *p=m;
B:p=&n;scanf(“%d”,*p);
C:p=&n; scanf(“%d”, &p);
D:scanf(“%d”,&n);*p=n;
答案:
6、单选题:
09110062:有语句int *p,a[4];p=a;下列表示与a[1]不等价的形式是()。
选项:
A:*p++
B:*(p+1)
C:*a++
D:p[1]
答案:
7、单选题:
09110072: 以下程序执行后的输出结果是()。
int main(){
int a[]={1,2,3,4},y,*p=&a[1];
y=(*–p)++;
printf(“%d”,y);
return 0;
}
选项:
A:3
B:1
C:4
D:2
答案:
8、单选题:
09110082:语句int *p;说明了( )
选项:
A:p是指向返回值为一int型数据的函数
B:p是指向int型数据的指针变量
C:p是指向一维数组的指针
D:p是对指向int型数据指针取内容
答案:
9、单选题:
09110092:若已定义:int b[12],*p=b;在以后的语句中未改变p的值,则不能表示b[1]地址的表达式是( )。
选项:
A:++b
B:b+1
C:p+1
D:++p
答案:
10、单选题:
09110102:设有如下定义:
struct sk{
int a;
float b;
}data,*p;若有p=&data;则对data中的a成员的正确引用是()。
选项:
A:(*p).data.a
B:p.data.a
C:(*p).a
D:p->data.a
答案:
11、单选题:
09210012:如下程序 int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a; 则数值为9的表达式是( )
选项:
A:*(P+8)
B: P+8
C:*P+9
D: *P+=9
答案:
第十章 单元测试
1、单选题:
10110011:下列关于C语言数据文件的叙述中正确的是()。
选项:
A:文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
B:文件由二进制数据序列组成,C语言只能读写二进制文件
C:文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
D:文件有ASCII码字符序列组成,C语言只能读写文本文件
答案:
2、单选题:
10110021:C语言中能识别处理的文件为( )。
选项:
A:文本文件和数据块文件
B:数据文件和二进制文件
C:文本文件和二进制文件
D:流文件和文本文件
答案:
3、单选题:
10210011:如执行fopen函数时发生错误,则函数的返回值是( )。
选项:
A:TRUE
B:1
C:地址值
D:NULL
答案:
4、单选题:
10210032:若要打开A盘上user子目录下名为“abc.txt”的文本文件进行度、写操作,线面符合此要求的函数调用是()。
选项:
A:fopen(“A:userabc.txt”,”rb”);
B:fopen(“A:userabc.txt”,”r+”);
C:fopen(“A:userabc.txt”,”w”);
D:fopen(“A:userabc.txt”,”r”);
答案:
5、单选题:
10210042:fread(buf,64,2,fp)的功能是()。
选项:
A:从fp所指向的文件中,读出整数64,并存放在buf中;
B:从fp所指向的文件中,读出整数64和2,并存放在buf中;
C:从fp所指向的文件中,读出64个字节的字符,并存放在buf地址中;
D:从fp所指向的文件中,读出64个字节的字符,读两次,并存放在buf地址中
答案:
6、单选题:
10210052:以下程序的功能是()。
int main()
{
FILE*fp;
char str[]=”Qingdao 2018 ”;
fp=fopen(“file2”,”w”);
fputs(str,fp);
fclose(fp);
return 0;}
选项:
A:在屏幕上显示“Qingdao 2018”
B:在打印机上打印出“Qingdao 2018”
C:把“Qingdao 2018”存入file2文件中
D:以上都不对
答案:
7、单选题:
10210062:以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件,正确的选择是( )。
int main()
{
FILE *fp;
char c;
char name [10];
fp=_______(“myfile”,______);
do
{
c=getchar();
fputc(c,fp);
}while(c!=EOF);
fclose(fp);
return 0;
}
选项:
A:fopen “r”
B:fgetc ”w”
C:fopen “w”
D:fgets “r”
答案:
8、单选题:
10310011:函数调用语句:fseek(fp,-20L,2);的含义是()。
选项:
A:将文件位置指针移到离当前位置20个字节处;
B:将文件位置指针移到距离文件末尾20个字节处;
C:将文件位置指针从当前位置向后移20个字节;
D:将文件位置指针移到距离文件头20个字节处;
答案:
9、单选题:
10310021:函数rewind的作用是()。
选项:
A:将位置指针指向文件中所要求的特定位置
B:使位置指针重新返回文件的开头
C:使位置指针指向文件的末尾
D:使位置指针自动移至下一个字符位置
答案:
请先
!