C语言在线测试题目及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言在线测试题目及
答案
SANY GROUP system office room 【SANYUA16H-SANYHUASANYUA8Q8-
第一章、第二章、第三章
第一题、单项选择题(每题1分,5道题共5分)
1、在以下关于C语言的叙述中,正确的说法是: B
A、C语言比汇编语言快
B、C语言比BASIC语言快
C、C语言比BASIC语言和汇编语言都快
D、C语言比BASIC语言慢
2、在C语言中,不正确的常量是: B
A、0xf6
B、0876
C、.5e-6
D、 3e 2
3、属于低级语言的计算机语言是( )。
B
A、机器语言
B、汇编语言
C、Java语言
D、Pascal语言
4、对于链接,正确的说法为()。
D
A、链接是将源程序和库函数链接到一起,生成可执行程序。
B、链接是将源程序、目标程序和其他源程序链接到一起,生成可执行程序。
C、链接是将源程序、库函数和其他源程序链接到一起,生成可执行程序。
D、链接是将目标程序、库函数和其他目标程序链接到一起,生成可执行程序。
5、下列不能表示常量大写英文字母A的是()。
B
A、常量:‘A’
B、常量:“A”
C、常量:‘\x41’
D、常量:‘\101’
第二题、多项选择题(每题2分,5道题共10分)
1、对于16位系统中,C语言中整数 -8在内存中的错误存储形式是: BCD
A、1111 1111 1111 1000
B、1000 0000 0000 0000
C、1000 0000 0000 1000
D、1111 1111 1111 0111
2、下列关于C语言用户标识符的叙述中,不正确的叙述是: ACD
A、用户标识符中可以出现下划线和中划线(减号)
B、用户标识符中不可以出现中划线,但可以出现下划线
C、用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D、用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
3、关于C语言程序的语句,正确的说法是( )。
BD
A、一条语句只能占一行
B、一行可以书写多条语句
C、语句的结束标识符是句号
D、建议每条语句占一行
4、与汇编程序相比,C语言程序的优点包括( )。
AB
A、更容易移植
B、更容易阅读
C、目标代码质量较高
D、能够进行位操作
5、有关结构化程序设计,正确的说法是( )。
BC
A、每个算法都必须包含三种基本结构
B、每个结构化的算法都可以归结为三种基本结构
C、三种基本结构可以相互嵌套
D、三种基本结构可以交叉设计
第三题、判断题(每题1分,5道题共5分)
1、C语言程序的基本单位是函数。
√
2、一个C程序的执行是从main()函数开始,直到最后一个函数结束。
×
3、char类型的变量只能存放一个字符。
√
4、int类型的数据范围不可能比float类型的大。
√
5、链接是将源程序、目标程序和库函数链接到一起,生成可执行程序。
×
第四章、第五章
第一题、单项选择题(每题1分,5道题共5分)
1、设x和y均为int型变量,则以下语句:x=x y; y=x-y; x=x-y; 的功能是: D
A、把x和y按从大到小排列
B、把x和y按从小到大排列
C、x中为原来x和y的值的和
D、交换x和y中的值
2、已说明int a=256,执行语句printf(”%x” ,a);的结果是: A
A、100
B、256
C、0ffe
D、00ff
3、已有int x=2,y=7;则printf("%d",x y==6);的输出结果是: A
A、0
B、3
C、9
D、2
4、设int x=10,y=3,则语句printf(“%d%d\n”,x y,x-y);的输出结果是(): C
A、10,3
B、13,7
C、137
D、103
5、已知:int i; char c; float f; 以下表达式中值为整型的算数表达式是( )。
B
A、i f
B、i * c
C、c f
D、i c f
第二题、多项选择题(每题2分,5道题共10分) ABD
1、以下合法的表达式是:
A、x=y=200
B、5 (x=10)
C、5 x=10
D、y x==10
2、不能正确表示条件x≥y≥z的C语言表达式是: ACD
A、(x>=y)&(y>=z)
B、(x>=y)&&(y>=z)
C、(x>=y).AND.(y>=z)
D、(x>=y>=z)
3、设有说明语句:char a=ˊ\72ˊ;,则变量a包含的字符数为: BCD
A、1个字符
B、2个字符
C、3个字符
D、0个字符
4、下列属于C语言标准库函数的为()。
ABCEF
A、sin()
B、sqrt()
C、log10()
D、ln()
E、pow()
F、isalpha()
5、已知“int n;”。
若通过scanf函数为变量n输入值,则合法的输入格式控制符为( )。
ACDE
A、%d
B、%f
C、%o
D、%x
E、%c
F、%g
第三题、判断题(每题1分,5道题共5分)
1、逻辑关系“a≥10或a≤0”正确表示的C语言表达式是:a>=10 or a<=
0 。
×
2、算术运算符的结合方向均为自左至右。
√
3、赋值运算符的优先级低于所有的算术运算符。
√
4、若有int x=5;,则(float)x就把x转换为float类型了。
×
5、强制类型转换,并不改变原表达式本身的类型。
×
第六章、第七章
第一题、单项选择题(每题1分,5道题共5分)
1、下面循环语句中 int a, b; for (a=0, b=1;a<=b 2;a=a 2, b=b-1) printf(“%d”, a); ,循环体的执行次数为: B
A、3
B、2
C、1
D、0
2、以下程序的输出结果是:main(){int x; for(x=1;x<10;x=x 1) for(x=10;x<10;x=x 1); printf("%d\n",x);} A
A、11
B、10
C、12
D、9
3、以下程序的输出结果是:main( ) { int num=0; while (num<=2) { num=num 1; printf(“%d”,num); } } B
A、1234
B、123
C、12
D、1
4、下列运算符中,优先级最高的是( )。
A
A、 B、>
C、&&
D、=
5、表达式10==9的值是( )。
C
A、true
B、2
C、0
D、1
第二题、多项选择题(每题2分,5道题共10分)
1、下列属于结构化程序设计基本结构的是: ABCD
A、顺序结构、选择结构
B、顺序结构、循环结构
C、选择结构、循环结构
D、顺序结构、选择结构、循环结构
2、对于C语言的for循环来讲,下列正确的说法为: BC
A、第一表达式不能放到循环前执行;
B、第二表达式不能放到循环前执行;
C、第三表达式不能放到循环前执行;
D、第三表达式不能放到循环体中执行。
3、设int a=3,b=4,c=5;,则下面的表达式中,值为0的表达式是( )。
ACDE
A、a>b
B、a<=b
C、(a||b)>c
D、a<=(b||c)
E、!((a<b)&&!c||b)
4、当c的值不为0时,则在下列选项中,能正确将c的值赋给变量a、b的是( )。
AC
A、b=a = c;
B、(a=c)‖(b=c) ;
C、(a=c) &&(b=c);
D、a&&(b=c);
5、下列说法中正确的是()。
ABCDE
A、for循环完全可以用while循环替代。
B、while循环完全可以用do{}while循环替代。
C、while循环完全可以用for循环替代。
D、do{}while循环完全可以用while循环替代。
E、do{}while循环和while循环均完全可以用for循环替代。
第三题、判断题(每题1分,5道题共5分)
1、在C语言循环结构中,continue的作用是继续当次循环,break的作用是终止当次循环。
×
2、当型循环的循环体可能一次也不执行,直到型循环则至少执行一次。
√
3、while语句和switch语句中都可以使用break。
√
4、for循环的第二表达式省略,将会导致死循环。
√
5、三种循环可以绝对地互相嵌套。
√
第八章、第九章、第十章
第一题、单项选择题(每题1分,5道题共5分)
1、下列描述中,合法的数组定义是: D
A、int a[]={"String"};
B、int a[5]={0,1,2,3,4,5};
C、char a={"String"};
D、char a[]={0,1,2,3,4,5};
2、在定义int a[2][3];之后,下列使用正确的是: D
A、a(1,2)
B、a[1,3]
C、a[2][0]
D、a[1>2][!1]
3、若有定义int a[10]; ,则对数组a的引用正确的是( )。
D
A、a[10]
B、a[6.3]
C、a(6)
D、a[10-10]
4、若有int a[4][5];,则数组a包含的元素个数是( )。
D
A、25
B、9
C、12
D、20
5、若有int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};,则数组a的第1维的长度为( )。
C
A、2
B、3
C、4
D、5
第二题、多项选择题(每题2分,5道题共10分)
1、下列对C语言字符数组的描述中,正确的描述是: ABC
A、字符数组可以存放字符串
B、字符数组中的字符串可以整体输入、输出
C、不可以用关系运算符对字符数组中的字符串进行比较
D、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
2、根据定义: struct person{char name[9];int age;}; struct person c[10]={"John",17,"Paul",19,"Mary",18,"Adam",16}; 能打印出字母M的语句是: CD
A、printf("%s",c[0].name);
B、printf("%s",c[1].name[0]);
C、printf("%s",c[2].name[1]);
D、printf("%s",c[3].name[2]);
3、若形参是简单变量形式,则对应的实参可以是: ACD
A、常量
B、数组名
C、简单变量
D、数组元素
4、下列描述中,不能正确给字符数组str定义和赋值的是( )。
BCD
A、char str[]={"abcdefghijklmn "};
B、char str[10];str={" abcdefghijklmn "};
C、char str[10]={"abcdefghijklmn"};
D、char str[10];strcpy(str,"abcdefghijklmn");
5、在定义int a[2][3];之后,对数组a的引用错误的是( )。
ABC
A、a(1,2)
B、a[1,3]
C、a[2][0]
D、a[1>2][!1]
第三题、判断题(每题1分,5道题共5分)
1、函数中的形参和调用时的实参都是变量时,传递方式为值传递。
√
2、若有func((v1,v2),(v3,v4,v5),v6)调用,说明函数func有6个形参。
×
3、在说明一个结构体变量时系统分配给它的存储空间是该结构体中所有成员所需存储空间的总和。
√
4、可以在定义数组时只给一部分数组元素赋值。
√
5、对数组元素赋予的初值可以依次放在一对圆括号内。
×
第十一章、第十二章
第一题、单项选择题(每题1分,5道题共5分)
1、若执行fopen函数时发生错误,则函数的返回值是() B
A、地址值
B、0
C、1
D、EOF
2、已知定义“int x =1, *p”,则合法的赋值表达式是( )。
A
A、p = &x
B、p = x
C、*p = &x
D、*p = *x
3、在C语句中,&后跟指针变量名,表示该指针变量的(( )。
C
A、值
B、别名
C、地址
D、类型
4、若有int a=3,*pa; float f=4.5,*pf=&f;,则下列表述中,错误的是( )。
B
A、pa=&a
B、pa=&f
C、pf=&f
D、*pf=a f
5、若有int a[10],*p=a;,则( )。
C
A、p 可以使p指向下一个字节
B、p =2 相当于p=sizeof(a)/10
C、p 可以使p指向下一个元素,即a[1]的首地址
D、p =2可以使p指向下一个元素,即a[1]的首地址
第二题、多项选择题(每题2分,5道题共10分)
1、C语言中的文件分类是: AD
A、文本文件和数据文件
B、文本文件和二进制文件
C、数据文件和二进制文件
D、顺序文件和随机文件
2、以读写方式打开一个二进制文件fil2,fopen函数的正确的调用方式是: CD
A、FILE *FP; FP=fopen("fil2","r");
B、FILE *FP; FP=fopen("fil2","rb");
C、FILE *FP; FP=fopen("fil2","wb ");
D、FILE *FP; FP=fopen("fil2","rb ");
3、若有int x=3,*px; float y=3,*py;,则正确的赋值表达式是 ( )。
AD
A、px=&x
B、py=&x
C、px=&y
D、py=&y
4、设有定义语句“int x=10, *p=&x”,则表达式的值为10的有()。
BCDE
A、p
B、*p
C、*&x
D、*p=x
E、x=*p
5、设有定义语句“struct {int a;float b;char c;}abc,*p;”,则对结构体成员a的引用可以是( )。
ACD
A、abc.a
B、abc->a
C、(*p).a
D、p->a
第三题、判断题(每题1分,5道题共5分)
1、单目运算符“&”是指针运算符。
×
2、函数调用语句fseek(fp,-10L,2)的含义是将文件位置指针从当前位置向文件
头方向移10个字节。
×
3、函数中的形参若为指针,则调用时对应位置上的实参不能是数组名。
×
4、单目运算符“*”是取地址运算符。
×
5、共用体变量的存储单元长度是最长分量的存储长度。
√
第十三章、第十四章
第一题、单项选择题(每题1分,5道题共5分)
1、以下程序:main( ) {int x=5; if (x--<5) printf(“%d\n”, x); else printf(“%d\n”, x ); },程序运行后,输出结果是: B
A、3
B、4
C、5
D、6
2、若int w=1, x=2, y=3, z=4;则条件表达式“w>x?w:y<z?y:z”的结果为:B
A、4
B、3
C、2
D、1
3、在函数中定义变量时,若省略存储类型符,系统默认存储类别为( )。
A
A、自动
B、静态
C、外部
D、寄存器
4、在C语言程序中,当调用函数时,正确的是( )。
B
A、形参不需要分配存储单元
B、内部变量开始占用存储单元
C、外部变量开始占用存储单元
D、全局变量开始占用存储单元
5、下列选项中属于三元运算的运算符有( )。
A
A、条件运算符
B、赋值运算符
C、逗号运算符
D、自增运算符
第二题、多项选择题(每题2分,5道题共10分)
1、以下不合法的赋值语句是: BCD
A、x=y=100;
B、d 5=10;
C、x y=100;
D、c=int(a b);
2、如果全局的外部变量和函数体内定义的局部变量重名,则错误说法为: ACD
A、出错
B、局部变量优先
C、外部变量优先
D、全局的外部变量优先
3、在C语言中,存储类别包括()。
AD
A、静态
B、浮点类型
C、整型
D、寄存器
4、下列选项中关于外部变量的作用域,正确的是( )。
BCD
A、外部变量的作用域是所在的源文件
B、外部变量的作用域是整个源程序
C、可以通过extern,将一些外部变量的作用域扩展到多个源文件
D、外部变量若定义为静态的,其他源文件不能使用该外部变量
5、下列选项中关于外部变量,正确的是( )。
CD
A、main函数是主函数,不在main函数内部定义的变量都是外部变量
B、外部变量必须定义在源程序的开始处
C、外部变量必须定义在所有函数的外面
D、定义外部变量时,可以进行初始化
第三题、判断题(每题1分,5道题共5分)
1、有如下程序main(){int x=3; do { printf(“%d”,x--);} while
(!x); } ,该程序的执行结果是陷入死循环。
×
2、允许在不同的函数中使用相同的变量名。
√
3、关于实型变量的存储,指数位越多,数据的精度越高。
×
4、C语言中实型数据在运算时可能会产生误差。
√
5、C语言的函数调用时,形参是不需要分配存储单元的。
×
第十五章、第十六章、第十七章
第一题、单项选择题(每题1分,5道题共5分)
1、若已定义: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a, i; 其中0 ≤ i ≤ 9, 则对a数组元素不正确的引用是: D
A、a[p-a]
B、*(&a[i])
C、p[i]
D、a[10]
2、以下程序运行后,main(){char *s="abcde"; s =2; printf("%
d\n",s); },输出结果是: C
A、cde
B、字符c的ASCII码值
C、字符c的地址
D、值不确定
3、有定义char p[]="AB\0CD\0E";,能输出字符串”ABCDE”的语句为: B
A、printf("%s",p);
B、printf("%s%s%s",&p[0],p 3,p 6);
C、printf("%s%s%s",&p[0],&p[2],&p[3]);
D、printf("%s",&p[0]);
4、若有int f(int a,int b);,则说明函数f( )。
B
A、是一个内部函数
B、能被同一源程序其他文件中的函数调用
C、是一个外部函数
D、只能在本文件中使用
5、以下对C语言函数的有关描述中,正确的描述是( )。
D
A、C函数既可以嵌套定义又可以递归调用
B、函数必须有返回值,否则不能使用函数
C、C程序中有调用关系的所有函数必须放在同一个源程序文件中
D、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
第二题、多项选择题(每题2分,5道题共10分)
1、下列描述中,错误的描述是: BCD
A、凡是C源程序中行首以#标示的控制行都是预处理指令
B、预处理是指完成宏替换和文件包含指定的文件调用
C、预处理指令只能位于程序首部
D、预处理就是完成c编译程序对C源程序第一遍扫描,为编译的词法分析和语法分析做准备
2、下列对宏定义的描述中,正确的描述是: ABD
A、宏不存在类型问题,宏名无类型,参数也无类型
B、宏替换不占用运行时间
C、宏替换是先求出实参表达式的值,然后带入形参运算求值
D、宏替换只不过是字符替代而已
3、下列关于局部变量的说法中,正确的说法是( )。
BCD
A、不能在复合语句中定义变量
B、局部变量是在函数内部定义说明的
C、形参变量属于被调函数的局部变量
D、允许在不同的函数中使用相同的变量名
4、设char s[10];int i=5;,下列表达式中,不正确的表达式是( )。
ACD
A、s[i 6]
B、*(s i)
C、*(&s i)
D、*((s ) i
5、当一个函数为外部函数时,不正确的说法是( )。
ABCD
A、该函数只能被main()调用
B、该函数只能被非主函数调用
C、该函数不能被其他文件调用
D、该函数不能被本文件中函数调用
第三题、判断题(每题1分,5道题共5分)
1、允许在不同的函数中使用相同的变量名。
×
2、设有定义语句“struct {int a;float b;char c;}abc;”,则对结构体成员a 的引用可以是abc->a。
×
3、可以利用全局变量从函数中得到多个返回值。
√
4、可以利用实参从函数中得到多个返回值。
√
5、若形参是简单变量形式,则对应的实参不能是数组名。
√。