C语言程序设计教程第四章练习题解析(20200930222025)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单选题
1、关于C 语言中的函数,下列描述正确的是( )
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B•函数的定义不可以嵌套,但函数的调用可以嵌套
C函数的定义和函数的嵌套均不可以嵌套
D•函数的定义和函数的调用均不可以嵌套
答案:B
解析:函数的定义不可以嵌套,但函数的调用可以嵌套
2、定义一个函数:exce((v1, v2), (v3,v4,v5),v6); 在该函数调用时,实参的个数为()个
A.3
B.4
C.5
D.6
答案:A
解析:(v1, v2),(v3,v4,v5)和v6 一共三个实参
3、关于 C语言中print()函数与scanf()函数,下列描述中正确的是()
A. printf() 函数可以向任何地方输出数据
B. printf() 只向控制台输出数据
C. sca nf()只能输入英文字母和数字
D. sca nf()函数可以识别输入的空格
答案:B
解析:printf() 是向控制台输出的函数
4、在C语言中,内部函数需要添加的关键字是( )
A. extern
B. static
C. this
D. auto
答案:B
解析:在定义内部函数时,需要在函数的返回值类型前面添加static 关键字(又称为静态函数)。
5、当调用时,会调用内部函数
A. 当调用时,会调用内部函数
B. 当调用时,会调用外部函数
C. 当调用时,会调用两次,先调用内部函数再调用外部函数
D都不调用,会报错
答案:A
解析:当内部函数与外部函数重名时,会优先调用内部函数
6、在C语言中,声明外部函数需要添加的关键字是( )
A. extern
B. static
C. this
D. auto
答案: A 解析:声明外部函数的方式是在函数的返回值类型前面添加extern 关键字
7、关于C语言中的局部变量,下列描述中错误的是()
A•局部变量就是在函数内部声明的变量
B. 局部变量只在函数内部有效
C局部变量只有当它所在的函数被调用时才会被使用
D. 局部变量一旦被调用,其生存周期持续到程序结束
答案:D
解析:当函数调用结束时局部变量就会失去作用
&关于C语言中的全局变量,下列描述中正确的是()
A•全局变量的作用域一定比局部变量的作用域范围大
B•静态类别变量的生存周期贯穿于整个程序的运行期间
C函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
答案:B
解析:选项 1 不对:如果程序中只有一个主函数,则在整个程序运行中,局部变量都在起作用;选项3不对:除了C++的引用类型参数,所有函数的形参都是局部变量;
选项 4 不对:static 变量定义时就存储地全局区,初始化为0;
9、当全局变量与局部变量重名时,那么在调用时()
A•局部变量会被屏蔽
B•全局变量会被屏蔽
C•都不会调用,系统会报错
D•会调用两次,先调用局部变量,再调用全局变量
答案:B
解析:当局部变量与全局变量重名时,全局变量会被屏蔽。
10、在C语言中,关于变量的作用域,下列描述中错误的是()
A. 局部变量只在整个函数的运行周期中有效
B. 全局变量的作用域为整个程序的运行周期
C当全局变量与局部变量重名时,局部变量会屏蔽掉全局变量
D•全局变量会覆盖掉所有与它重名的局部变量
答案:D
解析:当全局变量与局部变量重名时,全局变量会被屏蔽掉
11、在C语言中,如果在一个函数的复合语句中定义了一个变量,则该变量()
A. 只在该复合语句中有效,在该复合语句外无效
B. 在该函数中任何位置都有效
C在本程序的原文件范围内均有效
D.此定义方法错误,其变量为非法变量
答案:D
解析:1、 2 与3 错:函数复合语句中定义的变量在该复合语句中引用;但如果函数含有该变量,则在函数中可以引用该变量
4对:在C+冲在复合语句中定义变量为合法,但在C语言中是非法的
12、C 语言程序的基本单位是()。
A. 程序行
B语句
C函数
D•字符
答案:C
解析:函数是C语言程序的基本单位
13、C语言中决定函数返回值的类型的是( )。
A. return 语句中的表达式类型
B•调用函数的主调函数类型
C调用函数时临时
D•定义函数时所指定的函数类型
答案:D
解析:函数的返回值取决于定义函数时指定的返回值类型
14、若有函数调用语句:fun(a+b, (x,y), fun(n+k,d,(a,b))); 在此函数调用语句中实参的个数是( )。
A. 3
B. 4
C. 5
D. 6
答案: A
解析:a+b返回一个值,(x,y)返回一个值,fun(n+k,d,(a,b))返回一个值。
15、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()。
A. input x,y,z;
B. scanf("%d%d%d",&x,&y,&z);
C. scanf("%d%d%d",x,y,z);
D. read("%d%d%d",&x,&y,&z);
答案:B
解析:读取键盘输入的数据要用scanf()函数,scanf()中的参数要传入变量的地址
16、若变量已正确说明为float类型,要通过语句scanf("%f %f %f",&a,&b,&c);给a赋予10.0,b 赋予22.0,c赋予33.0,不正确的输入形式是( )。
A. 10 22 33
B. 10.0,22.0,33.0
C. 10.0 22.0 33.0
D. 10;22;33
答案:B
解析:用scanf()读取从键盘输入的数据时,中间不能加逗号,要用空格隔开
17、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处\u 代表空格) :1\u2\uA\uB\uC ,那么能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是( )。
A. scanf("x=%d y=%d",&x,&y);a=getchar();b=getchar();c=getchar();
B. scanf("%d %d",&x,&y);a=getchar();b=getchar();c=getchar();
C. scanf("%d%d%c%c%c,&x,&y,&a,&b,&c);
D. scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);
答案:D
解析:空格也会作为一个字符赋给字符变量。