2021智慧树知到(山东理工大学)《C语言编程新思路》章节测试答案共14章(5)
答案:C
5、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。
A、函数调用可以作为独立的语句存在
B、函数调用可以作为一个函数的实参
C、函数调用可以出现在表达式中
D、函数调用可以作为一个函数的形参
答案:D
6、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参传回实参
D、传递方式由用户指定
答案:B
7、有以下程序: #include <stdio.h> void fun(int a,int b,int c) { a=11; b=22; c=33;} int main(void) { int x=10,y=20,z=30; fun(x,y,z); printf(“%d,%d,%d\n”,x,y,z); return 0; } 该程序输出结果是()。
A、30,20,10
B、10,20,30
C、11,22,33
D、33,22,11
答案:B
8、关于函数参数,说法正确的是()。
A、实参与其对应的形参各自占用独立的内存单元
B、实参与其对应的形参共同占用一个内存单元
C、只有当实参和形参同名时才占用同一个内存单元
D、形参是虚拟的,不占用内存单元
答案:A
9、一个函数的返回值由()确定。
A、return语句中的表达式
B、调用函数的类型
C、系统默认的类型
D、被调用函数的类型
答案:D
10、下列程序的输出结果是()。 fun(int a,int b,int c) { c=a+b;} int main(void) { int c; fun(2,3,c); printf(“%d\n”,c); return 0; }
A、2
B、3
C、5
D、不定
答案:D
11、有以下程序: #include <stdio.h> int fun(int x) { printf(“x=%d\n”,++x); } int main() { fun(12+5); return 0; } 程序的输出结果是()。
A、x=12
B、x=13
C、x=17
D、x=18
答案:D
12、有如下程序: #include <stdio.h> int i=1; int main() { int i=i; printf("%d\n",i); return 0; } 程序的输出结果是()。
A、1
B、0
C、i
D、不确定
答案:D
13、有如下程序: #include <stdio.h> int f(int x) { return x+3;} int main(void) { int a=1; while(f(a)<10) a++; return 0; } 程序执行后,变量a的值是()。
A、7
B、10
C、11
D、9
答案:A
14、以下说法中正确的是()。
A、形参是全局变量,其作用范围仅限于函数内部
B、形参是全局变量,其作用范围从定义之处到文件结束
C、形参是局部变量,其作用范围仅限于函数内部
D、形参是局部变量,其作用范围从定义之处到文件结束
答案:C
15、定义为void类型的函数,其含义是()。
A、调用函数后,被调用的函数没有返回值
B、调用函数后,被调用的函数不返回
C、调用函数后,被调用的函数的返回值为任意类型
D、其余选项都不对
答案:A
16、当全局变量和函数内部的局部变量同名时,在函数内部()。
A、全局变量有效
B、局部变量有效
C、全局变量和局部变量都有效
D、全局变量和局部变量都无效
答案:B
17、有如下程序: #include <stdio.h> fun(int a) { auto int b=0; static int c=3; b=b+1;c=c+1; return(a+b+c); } int main(void) { int a=2,i; for(i=0;i<3;i++) printf(“%d “,fun(a)); return 0; } 它的输出结果是()。
A、7 8 9
B、7 7 7
C、9 9 9
D、8 9 10
答案:A
18、有如下程序: #include <stdio.h> void fun(int x,int y) { int t; if(x>y) {t=x;x=y;y=t;} } int main(void) { int a=4,b=7,c=5; fun(a,b);fun(a,c);fun(b,c); printf(“%d,%d,%d\n”,a,b,c); return 0; } 它的输出结果是()。
A、4,5,7
B、4,7,5
C、7,5,4
D、7,4,5
答案:B
19、有如下程序: #include <stdio.h> f(int a) { int b=0; static int c=3; a=c++; b++; return(a); } int main(void) { int a=2,i,k; for(i=0;i<2;i++) k=f(a++); printf(“%d\n”,k); return 0; } 该程序的输出结果是()。
A、6
B、3
C、4
D、5
答案:C
20、凡是未指明存储类别的局部变量,其隐含的存储类别是()。
A、register
B、auto
C、static
D、extern
答案:B
第十章测试
1、若有数组名作为函数调用的实参,传递给形参的是()。
A、数组的首地址
B、数组第一个元素的值
C、数组中全部元素的值
D、数组元素的个数
答案:A
2、若使用一维数组名作为函数实参,则以下描述中正确的是 ()。
A、必须在调用函数中说明此数组的大小
B、实参数组类型与形参数组类型可以不匹配
C、在被调用函数中,不需要考虑形参数组的大小
D、实参数组名与形参数组名必须一致
答案:C
3、以下叙述正确的是()
A、C语言中各函数(除主函数外)之间既允许直接递归调用也允许间接递归调用
B、C语言中各函数(除主函数外)之间既不允许直接递归调用也不允许间接递归调用
C、C语言中各函数(除主函数外)之间允许直接递归调用不允许间接递归调用
D、C语言中各函数(除主函数外)之间不允许直接递归调用允许间接递归调用
答案:A
4、下列程序的输出结果是()。 #include <stdio.h> void sub(int x,int y,int *z) { *z=y-x; } int main() { int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("%d,%d,%d\n",a,b,c); return 0; }
A、5,2,3
B、-5,-12,-7
C、-5,-12,7
D、5,-2,-7
答案:B
5、下列程序的输出结果是()。 #include <stdio.h> void prtv(int *x) { printf ("%d\n",++*x); } int main() { int a=25; prtv(&a); return 0; }
A、23
B、24
C、25
D、26
答案:D
6、下列程序的输出结果是()。 #include <stdio.h>void fun(int *a,int *b){int w; *a=*a+*a; w=*a; *a=*b; *b=w;}int main(){ int x=2, y=3,*px=&x,*py=&y;;fun(px,py);printf("%d,%d\n",x,y);return 0;}
A、4,3
B、2,3
C、3,4
D、3,2
答案:C
7、以下程序运行时,若输入5 10 3,则输出结果是()。 #include <stdio.h> void swap(int *p1,int *p2) {int t; t=*p1; *p1=*p2; *p2=t; return; } int main() {int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a>b) swap(&a,&b); if(a>c) swap(&a,&c); if(b>c) swap(&b,&c); printf("%d,%d,%d\n",a,b,c); return 0; }
A、5,10,3
B、10,5,3
C、3,5,10
D、3,10,5
答案:C
8、以下程序运行时,若输入5,则输出结果是()。 #include <stdio.h> int fac(int n) {static int k=1; k=k*n; return k; } int main() {int m,i,f; scanf("%d",&m); for(i=1;i<=m;i++) {f=fac(i); printf("%d ",f); } }
A、1 2 3 4 5
B、1 2 6 24 120
C、5
D、120
答案:B
9、下列程序的输出结果是()。 #include <stdio.h> int fun(int a) {int b; if(a==0||a==1) return 3; b=a*a-fun(a-2); return b; } int main() {int x,y; x=fun(3); y=fun(4); printf("%d,%d\n",x,y); return 0; }
A、3,4
B、9,16
C、6,16
D、6,15
答案:D
10、下列程序的输出结果是()。 #include <stdio.h> int fun(int (*p)[3]) {int i,j,n; n=p[0][0]; for(i=0;i<2;i++) for(j=0;j<3;j++) if(p[j]>n) n=p[j]; return n; } int main() {int a[2][3]={11,32,13,44,5,6},m; m=fun(a); printf("%d\n",m); return 0; }
A、11
B、44
C、6
D、32
答案:B
11、下列程序的运行结果是()。 #include <stdio.h> void fun(int x, int y, int *cp,int *dp) { *cp=x+y; *dp=x-y; } int main() { int a,b,c,d; a=4;b=3; fun(a,b,&c,&d); printf("%d,%d\n",c,d); return 0; }
A、4,3
B、3,4
C、7,1
D、1,7
答案:C
12、下列程序的运行结果是()。 #include <stdio.h> void op(int (*p)[3]) {int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if(p[j]%3==0) printf("%d ",p[j]); } int main() {int s[3][3]={1,2,3,4,5,6,7,8,9}; op(s); return 0; }
A、3 6 9
B、1 2 3
C、1 4 7
D、7 8 9
答案:A
13、以下程序运行时,若输入5,则程序的输出结果是()。 #include <stdio.h> int fun(int n) {if(n==1) return 1; else return n+fun(n-1); } int main() {int m; scanf("%d",&m); m=fun(m); printf("%d\n",m); }
A、6
B、5
C、9
D、15
答案:D
14、以下程序运行时,若输入ab012kd99pk8,则程序的输出结果是()。 #include <stdio.h> void fun(char s[]) {int i,j; for(i=0,j=0;s!='\0';i++) if(s>='0'&&s<='9') s[j++]=s; s[j]='\0'; } int main() {char str[80]; gets(str); fun(str); puts(str); return 0; }
A、012
B、012998
C、99
D、8
答案:B
15、若有以下程序: #include <stdio.h> void f(int *q,int n) {int i; for(i=0;i<n;i++) (*q)++; return; } int main(void) {int a[5]={1,2,3,4,5},i; f(a,5); for(i=0;i<5;i++) printf("%d,",a); return 0; } 则程序的输出结果是()。
A、2,3,4,5,6,
B、2,2,3,4,5,
C、6,2,3,4,5,
D、1,2,3,4,5,
答案:C
16、形参数组与实参数组,在内存空间中是()的。
A、相互独立
B、完全重叠
C、部分重叠
D、随机存储
答案:B
17、若有以下程序: #include <stdio.h> int *fun(int *s,int *t) {if(*s<*t) s=t; return s; } int main(void) {int a=3,b=6,*p=&a,*q=&b,*r; r=fun(p,q); printf("%d,%d,%d\n",*p,*q,*r); return 0; } 则程序的输出结果是()。
A、3,3,6
B、3,6,6
C、6,3,3
D、6,6,3
答案:B
18、若有以下程序: #include <stdio.h> int fun(int x) { if(x>10) {printf("%d-",x%10); fun(x/10); } else printf("%d",x); return; } int main(void) { int z=123456; fun(z); return 0; } 则程序的输出结果是()。
A、1-2-3-4-5-6-
B、1-2-3-4-5-6
C、6-5-4-3-2-1-
D、6-5-4-3-2-1
答案:D
第十一章测试
1、以下叙述不正确的是()。
A、预处理命令行必须以#号开始
B、C程序在执行过程中对预处理命令行进行处理
C、在程序中凡是以#号开始的语句都是预处理命令行
D、以下宏定义是正确的:#define IBM_PC
答案:B
2、在宏定义#define PI 3.1415926 中,用宏名PI代替一个()。
A、常量
B、单精度数
C、双精度数
D、字符串
答案:D
3、以下叙述正确的是()。
A、在程序的一行上可以出现多个有效的预处理命令行
B、使用带参数的宏时,参数的类型应与宏定义时一致
C、宏替换不占用运行时间,只占编译时间
D、宏名必须用大写字母表示
答案:C
4、以下在任何情况下计算平方数时,都不会引起二义性的宏定义是()。
以上相关的更多内容请点击“智慧树 ”查看,该题目的答案为网上收集整理仅供参考!
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
- 下列不属于马汉的著作的是()。
- 根据《山东省安全生产条例》,()等
- 题目:我们党是用马克思主义武装起
- 【单选题】下列关于莫奈《日出·印
- 1935年12月,党召开了___,确立了建
- 我国领土最东端所在的省级行政区是
- 平衡计分卡是很有价值的管理工具,
- 【单选题】以下有关法治与德治关系
- 高质量发展,必须坚持()改革方向。
- 替代种植是一种针对毒品原植物产区
- 《医疗保障基金使用监督管理条例》
- 泰坦尼克号沉没后,SOS才被广泛接受
- 有哺乳婴儿()名以上的单位,应逐步
- 省委十届二次全会指出,要准确把握
- 1978年12月18日至22日,召开了开创
- 为了加强安全生产工作,防止和减少
- 2021青骄第二课堂中职一(毒品大拿
- ()应当对其产生的放射性废气进行处
- 下列关于火灾分类的说法,不正确的
- 根据《中华人民共和国民法典》规定
- 只有把马克思主义基本原理同()、同
- 除了激光武器外,激光在军事应用方
- 省委十四届十次全会决定召开党浙江
- 【单选题】“我能站在你的角度想你
- 现状调查是为了()。
- 根据《安全生产许可证条例》,企业
- 我们党新时代的强军目标是:建设一
- 《会计改革与发展“十四五”规划纲
- 在《中华人民共和国电信条例》第五
- 党的纪律处分工作应当坚持什么原则