第6章--函数
更新时间:2023-09-24 00:26:01 阅读量: IT计算机 文档下载
1.在C语言中,全局变量的存储类别是: A) static B) extern C) void D) register
2.C语言中,凡未指定存储类别的局部变量的隐含存储类别参传入,n的值
大于等于0。划线处应填________。 1 1 1 1 S=1 - ─ + ─ - ─ + … ─── 3 5 7 2n-1 是:
A) 自动(auto) B) 静态(static) C) 外部(extern) D) 寄存器(register)
3. 在一个C源程序文件中,要定义一个只允许本源文件中所有函数使用
的全局变量,则该变量需要使用的存储类别是:________。 A) extern B) register C) auto D) static
4. 若有以下调用语句,则正确的fun函数首部是 main() { ∶ ∶
int a;float x; ∶ ∶ fun(x,a); ∶ ∶ }
A) void fun(int m,float x) B) void fun(float a,int x) C) void fun(int m,float x[]) D) void fun(int x,float a)
5. 有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是 A) 3 B) 4
C) 5 D) 有语法错误
6. 以下程序的运行结果是 。 #include
{ int k=4,m=1,p;
p=func(k,m); printf(\ p=func(k,m); printf(\ } func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return m; }
A) 8,17, B) 8,17 C) 8,8 D) 4,1
7. 函数fun的功能是:根据以下公式计算并返回S,n通过形 float fun(int n)
{ float s=0.0,w,t,f=-1.0; int i;
for(i=0;i w=f/(2*i+1); s+=w; } ____________; } A) return (f) B) return (S) C) return (s) D) return (w) 8. 有如下程序 int func(int a,int b) { return(a+b); } main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(\ } 该程序的输出结果是__________。 A) 12 B) 13 C) 14 D) 15 9. 以下函数返回a数组中最小值所在的下标,在划线处应 填入的是________。 fun( int a[],int n) { int i,j=0,p; p=j; for(i=j;i if(a[i] A) i=p B) a[p]=a[i] C) p=j D) p=i 10. 设在主函数中有以下定义和函数调用语句,且fun函数为void类型;正确 的fun函数的首部应为________(要求形参名为b)。 main() { double s[10][22]; int n; ∶ ∶ fun(s); ∶ ∶ } A) void fun(double b[22]) B) void fun(double b[][22]) C) void fun(double b[][]) D) void fun(double b[22][]) 11. 以下程序的输出结果是________。 void fun() { static int a=0; a+=2; printf(\ } main() { int cc; for(cc=1;cc<4;cc++) fun( ); printf(\ } A) 2222 B) 2468 C) 222 D) 246 12. 以下程序的输出结果是 #include { char a[]=\ fun(a); puts(a); } fun( char s[]) { int x,y; char c; for(x=0,y=(strlen(s)-1)/2; x 13. 以下程序的输出结果是________。 int d=1; fun( int p) { static int d=5; d+=p; printf(\ return (d); } main() { int a=3; printf(\A) 6 11 11 B) 6 6 9 C) 6 12 12 D) 6 6 15 14. 下列程序的输出结果是________。 int t(int x,int y,int cp,int dp) { cp=x*x+y*y; dp=x*x-y*y; } main() { int a=4,b=3,c=5,d=6; t(a,b,c,d); printf(\ %d\\n\ } A) 16 9 B) 4 3 C) 5 6 D) 25 9 15. 下列叙述中正确的是________。 A) C语言编译时不检查语法 B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义 D) C语言所有的函数都是外部函数 16. 以下所列的各函数首部中,正确的是________。A) void play(var a:Integer,var b:Integer) B) void play(int a,b) C) void play(int a,int b) D) void play(a as integer,b as integer) 17. 以下程序的输出结果是 fun(int x,int y,int z) { z=x*x+y*y;} main() { int a=31; fun(5,2,a); printf(\ } A) 0 B) 29 C) 31 D) 无定值 18. 以下程序输出的结果是________。 long fun(int n) { long s; if(n==1||n==2) s=2; else s=n-fun(n-1); return s; } main() { printf(\A) 1 B) 2 C) 3 D) 4 19. 请读程序: #include { if (c<='Z' && c>='A') c-='A'-'a'; return (c); } main() { char s[81]; int k=0; gets(s); while(s[k]) { s[k]=fun(s[k]); putchar(s[k]); k++;} putchar('\\n'); } 若运行时从键盘上输入 OPEN THE DOOR 序的输出结果是________。 A) oPEN tHE dOOR B) open the door C) OPEN THE DOOR D) Open The Door 20. 请读程序: #include for (i=0;i<=n;i++) r=r*b[i]; return r; } main() { int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,4); printf(\ } 上面程序的输出结果是________。 A) 720 B) 120 C) 24 D) 6 21. 有以下程序 #inclde {int k=4,m=1,p; p=func(k,m); printf(\ p=func(k,m); printf(\ } func(int a,int b) { static int m=0,i=2; i=m+1; m=i+a+b; return(m); } 输出结果是________。 A) 6,6 B) 6,12 C) 6,8 D) 8,8 22. 以下程序的输出结果是________。 #include \ space(char str[ ]) {int i,t; char ts[81]; for(i=0,t=0;str[i]!= '\\0';i+=2) if(!isspace(str[i]) && str[i]!= 'a') ts[t++]=toupper(str[i]); ts[t]= '\\0'; strcpy(str,ts); } main() {char s[81]={ \ space(s); puts(s);} A) abcdeg B) bcde C) ABCDE D) BCDE 23. 下面函数的功能是________。 sss(char s[ ],char t[ ]) { int i=0; while( t[i]) { s[i]=t[i]; i++ ; } s[i]= '\\0'; } A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串t复制到字符串s中 24. 下面函数的功能是________。 sss(char s[ ]) { int i=0; while( s[i]) i++ ; return i; } A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串s逆序存放 D) 功能无法确定 25. 设如下的函数 ggg(float x) {printf(\则函数的类型________。 A) 与参数x的类型相同 B) 是void C) 是int D) 无法确定 26. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递 方式是________。 A) 地址传递 B) 单向值传递 C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定 27. 在调用函数时,如果实参是数组名,它与对应形参之间的数据传递 方式是________。 A) 地址传递 B) 单向值传递 C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定 28. 以下函数fun形参的类型是________。 fun( float x) { float y; y=3*x-4; return y; } A) int B) 不确定 C) void D) float 29. C语言中规定函数的返回值的类型是由________。 A) return语句中的表达式类型所决定 B) 调用该函数时的主调用函数类型所决定 C) 调用该函数时系统临时决定 D) 在定义该函数时所指定的类型所决定 30. 以下程序的输出结果是________。 func( int x) { int p; if(x==0 || x==1) return (3); p=x-func(x-2); return p; } main( ) { printf(\ } A) 7 B) 2 C) 0 D) 3 30. 阅读下面的程序: main() { int swap(); int a,b; a=3;b=10; swap(a,b); printf(\ swap(int a,int b) { int temp; temp=a; a=b; b=temp; } 下面的说法中,正确的是________。 A) 在main()函数中调用swap()后,能使变量a和b的值交换 B) 在main()函数中输出的结果是:a=3,b=10 C) 程序第2行的语句int swap();是对swap()函数进行调用 D) swap()函数的类型是void 31. 下面函数的功能是________。 sss(char s[ ], char t[ ]) { int i=0; while((s[i])&&(t[i])&&(t[i]== s[i])) i++; return (s[i]-t[i]);} A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串s接续到字符串t中 32. C语言中,若未说明函数的类型,则系统默认该函数的类型是________。 A) float型 B) long型 C) int型 D) double型 33. 以下程序是将输入的一个整数反序打印出来,例如,输入1234,则输出4321;输入-1234,则输出-4321,程序中划线处应分别填入________。 void printopp(long int n) {int i=0; if(n==0) return; else while(n) {if(n>0||i==0) printf(\ else printf(\ i=1; ________; } } main( ) { long int n; scanf(\ printopp(n); printf(\ } A) n 和n=n/10 B) -n 和n=n/10 C) -n/10 和n=n D) n 和n/=10 34. 以下程序的功能是:求正整数n的各位之积,在划线处应填入________。 #include { k*=m; m/=10; } while(________); return (k); } main( ) { long n; scanf(\ printf(\ } A) m B) m==0 C) m==0 D) m>=0 35. 以下程序的功能是求任意两个整数a和b的最大公约数,并予以显示, 程序的两划线处应分别填入________。 #include long cod(long n1,long n2) { long t; while(n2) {________; n1=n2;n2=t; } return ________; } main( ) { long a,b,x; printf(\ scanf(\ x=cod(a,b); printf(\ } A) t=n1和n1 B) t=n2和n2 C) t=n1%n2和n1 D) t=n1%n2和n2 36. 以下程序的功能是计算并显示一个指定行数的杨辉三角形(形式如下), 应填入程序空缺处的正确选项是________。 #define N 15 void yanghui(int b[ ][N],int n) { int i,j; for(i=0;________;i++) {b[i][0]=1;b[i][i]=1; } for(________;++i<=n; ) for(j=1;j { int a[N][N]={0},n; printf(\ scanf(\ printf(\ yanghui(a,n); } A) i 37. 下面的程序用来将一个十进制正整数转化成八进制数, 例如输入一个正整数25,则输出31,应填入划线处的选项是________。 #include { int i=0,j=0,a,b[10 ]={0}; printf(\ sub(a,b); for(;i<10;i++) {if(________) j=1; if(j!=0) printf(\ } } sub(int c,int d[ ]) { int e,i=9; while(c!=0) { e=c%8; d[i]=e; _________; i--;} return ; } A) b[i]==0和c/=8 B) b[i]==0和c=e/8 C) b[i]!=0和c/=8 D) b[i]!=0和c=e/8
正在阅读:
第6章--函数09-24
小学活动课作文06-15
日系企业全面预算管理下的成本费用控制09-11
供修曼茶罗流程(供参考) - 图文03-17
国际贸易付款方式(上)06-07
关于新课改的几点看法03-01
2015年广西东奥会计继续教育试题及答案01-24
锤击式管桩施工组织设计08-11
PPP项目资产证券化会计核算研究12-12
- 国培个人返岗实践研修总结
- 05稳态工况法
- 汽车电子技术专业职业生涯规划书
- 拾起心中的珍珠作文 - 优秀作文
- 公司面试逻辑题
- 2013-华南理工继续教育学院-经济法学随堂练习
- 大三上有机实验期末复习思考题
- 资料信息检索
- 18年6月份青少年机器人二级等级考试
- 2017年全国高考历史试题集成 - 图文
- 17秋东财《企业纳税实务》在线作业一满分答案
- Factsage入门与进阶
- 2018年移动互联数据智能行业独角兽分析报告
- 电大 - 开放英语2答案(含记录卡答案)作业答案1~4(自己整理)
- 万科横向分析 doc
- 简历
- 《信息管理学》单项选择题题库
- 英美概况-英国地理小结
- 1999-2013年全国百篇优秀博士论文名单 - 图文
- 人工智能+试题+课件