数组和函数练习题.docx
- 文档编号:5253320
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:10
- 大小:20.67KB
数组和函数练习题.docx
《数组和函数练习题.docx》由会员分享,可在线阅读,更多相关《数组和函数练习题.docx(10页珍藏版)》请在冰豆网上搜索。
数组和函数练习题
数组和函数练习题
一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)
1、若有说明inta[3][4];则a数组元素的非法引用是
A)a[0][2*1]B)a[1][3]
C)a[4-2][0]D)a[0][4]
2、在C语言中,引用数组元素时,其数组下标的数据类型允许是
A)整型常量B)整型表达式
C)整型常量或整型表达式D)任何类型的表达式
3、执行下面的程序段后,变量k中的值为
intk=3,s[2];
s[0]=k;k=s[1]*10;
A)不定值B)33C)30D)10
4、设有数组定义:
chararray[]="China";则数组array所占的空间为
A)4个字节B)5个字节C)6个字节D)7个字节
5、以下不正确的定义语句是
A)doublex[5]={2.0,4.0,6.0,8.0,10.0};B)inty[5]={0,1,3,5,7,9};
C)charc1[]={′1′,′2′,′3′,′4′,′5′};D)charc2[]={′\x10′,′\xa′,′\x8′};
6、对以下说明语句的正确理解是
inta[10]={6,7,8,9,10};
A)将5个初值依次赋给a[1]至a[5]B)将5个初值依次赋给a[0]至a[4]
C)将5个初值依次赋给a[6]至a[10]D)因为数组长度与初值的个数不相同,所以此语句不正确
7、假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是
A)3B)6C)10D)20
8、在C语言中,一维数组的定义方法为
类型说明符数组名
A)[常量表达式]B)[整型常量]
C)[整型变量]D)[整型常量]或[整型表达式]
9、下面程序输出的结果是
main()
{inti;
inta[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf("%d",a[2-i][i]);
}
A)159B)753C)357D)591
10、以下不能对二维数组a进行正确初始化的语句是
A)inta[2][3]={0};B)inta[][3]={{1,2},{0}};
C)inta[2][3]={{1,2},{3,4},{5,6}};D)inta[][3]={1,2,3,4,5,6};
11、已知:
intc[3][4];则对数组元素引用正确的是
A)c[1][4]B)c[1.5][0]C)c[1+0][0]D)以上表达都错误
12、有以下程序:
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];
b中的值是___。
A)5B)6C)8D)9
13、若有定义:
int*p[3];,则以下叙述中正确是___。
A)定义一个基类型为int的指针变量p,该变量具有三个指针
B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C)定义了一个名*p的整型数组,该数组含有三个int类型元素
D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型
14、有以下程序:
main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++)printf(“%d”,m[k][i]);}
程序运行后的输出结果是___。
A)456B)258C)369D)789
15、 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参
16、 在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是
A)地址传递 B)单向值传递
C)由实参传形参,再由形参传实参 D)传递方式由用户指定
17、以下正确的说法是
A)定义函数时,形参的类型说明可以放在函数体内B)return后边的值不能为表达式
C)如果函数值的类型与返回值类型不一致,以函数值类型为准
D)如果形参与实参类型不一致,以实参类型为准
18、 以下正确的说法是
A)用户若需调用标准库函数,调用前必须重新定义
B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C)系统根本不允许用户重新定义标准库函数
D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用
19、 以下叙述正确的是
A)函数可以嵌套定义但不能嵌套调用 B)函数既可以嵌套调用也可以嵌套定义
C)函数既不可以嵌套定义也不可以嵌套调用 D)函数可以嵌套调用但不可以嵌套定义
20、下面对C语言的描述中,正确的是
A)函数一定有返回值,否则无法使用函数
B)C语言函数既可以嵌套定义又可以递归调用
C)在C语言中,调用函数时,只能将实参的值传递给形参
D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中
21、 下列说法中错误的是
A)静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值
B)若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽
C)静态全局变量可以被其他的编辑单位所引用
D)所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语
句)时生成,退出其所在的函数体(或复合语句)时消失
22、 以下正确的函数头定义形式是
A)double fun(int x,int y) B)double fun(int x;int y)
C)double fun(int x,int y); D)double fun(int x,y);
23、下面函数调用语句含有实参的个数为
func((exp1,exp2),(exp3,exp4,exp5));
A)1 B)2 C)4 D)5
24、 设有如下函数
fun (float x)
{ printf("\n%d",x*x);
}
则函数的类型是
A)与参数x的类型相同 B)是voidC)是int型 D)无法确定
25、 有以下程序
int f(int n)
{ if(n==1) return 1;
else return f(n-1)+1;
}
main()
{ int i,j=0;
for(i=1;i<3;i++) j+=f(i);
printf("%d\n",j);
}
程序运行后的输出结果是
A)4 B)3 C)2 D)1
26、 下列函数的运行结果是
main()
{ int i=2,p;
int j,k;
j=i;
k=++i;
p=f(j,k);
printf("%d",p);
}
int f(int a,int b)
{ int c;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
return(c);
}
A)-1 B)1 C)2 D)编译出错,无法运行
27、 以下程序的输出结果是
int f()
{ static int i=0;
int s=1;
s+=i; i++;
return s;
}
main()
{ int i,a=0;
for(i=0;i<5;i++) a+=f();
printf("%d\n",a);
}
A)20 B)24 C)25 D)15
28、现有如下程序
#include "stdio.h"
int fun(int x)
{ printf("x=%d\n",++x);
}
main()
{ fun(12+5);
}
则程序的输出结果是
A)12 B)13 C)17 D)18
29、 现有如下程序,则程序的输出结果为
#include "stdio.h"
int f(int a,int b)
{ int c;
if(a>0&&a<10) c=(a+b)/2;
else c=a*b/2;
return c;
}
main()
{ int a=8,b=20,c;
c=f(a,b);
printf("%d\n",c);
}
A)随机数 B)80 C)28 D)14
30、以下程序的输出结果是【4】。
void fun()
{ static int a=0;
a+=2; printf("%d",a);
}
main()
{ int cc;
for(cc=1;cc<4;cc++) fun();
printf("\n");
}
31、若程序中定义了以下函数:
doublemyadd(doublea,doubleb){return(a+b);}
将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是____。
A)doublemyadd(doublea,b) B)doublemyadd(double,double)
C)doublemyadd(doubleb,doublea) D)doublemyadd(doublex,doubley)
32、有以下程序:
charfun(charx,chary){if(x main(){inta=’9’,b=’8’,c=’7’; printf(“%c\n”,fun(fun(a,b),fun(b,c))} 程序运行结果是__。 A)函数调用出错 B)8 C)9 D)7 33、以下程序的输出结果是 intf() {staticinti=0; ints=1; s+=i;i++; returns; } main() {inti,a=0; for(i=0;i<5;i++)a+=f(); printf("%d\n",a); } A.20B.24C.25D.15 34、以下程序的输出结果为()。 #defineA3 #defineB(a)(A+1)*a main() {intx; x=3*A+B(7); printf("x=%d\n",x); } Ax=93Bx=37Cx=60Dx=90 35、9.3有如下程序: #defineN2 #defineMN+1 #defineNUM2*M+1 main() {inti; for(i=1;i<=NUM;i++)printf("%d\n",i); } 该程序中的for循环执行的次数是 A)5B)6C)7D)8 36、下面程序以每行4个数据的形式输出a数组,请填空。 #defineN20 main() {inta[N],i; for(i=0;i scanf("%d",______); for(i=0;i {if(___________)_printf(“\n”)____________ printf("%3d",a[i]); } printf("\n"); } 37、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是_____. a)floatb)intc)longd)double 38、.若有说明;int*p,m=5,n;以下正确的程序段的是________. a)p=&n;b)p=&n;c)scanf("%d",&n);d)p=&n; scanf("%d",&p);scanf("%d",*p);*p=n;*p=m; 39、.若有以下定义,则对a数组元素的正确引用是_________. inta[5],*p=a; a)*&a[5]b)a+2c)*(p+5)d)*(a+2) 40、若有以下定义,则p+5表示______. inta[10],*p=a; a)元素a[5]的地址b)元素a[5]的值c)元素a[6]的地址d)元素a[6]的值 41、下面程序的运行结果是___________. main() { structcmplx{intx; inty; }cnum[2]={1,3,2,7}; printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x); } a)0b)1c)3d)6 42、若执行fopen函数时发生错误,则函数的返回值是______. a)地址值b)0c)1d)EOF 43、fscanf函数的正确调用形式是_________. a)fscanf(fp,格式字符串,输出表列)b)fscanf(格式字符串,输出表列,fp); c)fscanf(格式字符串,文件指针,输出表列);d)fscanf(文件指针,格式字符串,输入表列); 44.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是___. a)只写b)追加c)读或读写d)答案b和c都正确 45、下面说明不正确的是 A)chara[10]="china";B)chara[10],*p=a;p="china" C)char*a;a="china";D)chara[10],*p;p=a="china" 46、当顺利执行了文件关闭操作时,fclose函数的返回值是 A)-1B)TRUEC)0D)1 47、fwrite函数的一般调用形式是 A)fwrite(buffer,count,size,fp);B)fwrite(fp,size,count,buffer); C)fwrite(fp,count,size,buffer);D)fwrite(buffer,size,count,fp); 48、19.在C语言中,形参的隐含存储类别是_______。 A.autoB.static C.externD.register 49.下列属于文件包含的命令是_________。 A.#defineN25B.#endif C.#include"stdio.h"D.#else 50、写出下面程序的运行结果。 #include inta=100; s() {staticinta=20; a++; printf("%d\n",a); } voidmain() { inti; for(i=1;i<=3;i++) {a++; printf("%d",a); s(); } 51、若有以下宏定义: #defineN2 #defineY(n)(N+1)*n 则执行语句intz;z=2*N+Y(5);后的值是 (A)50(B)34(C)19(D)无定值 52、已经定义以下函数: fun(int*p){return*p;} 该函数的返回值是___。 A)不确定值B)形参p中存放的值 C)形参p所指存储单元中的值D)形参p的地址值 53、有如下程序段 int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为___。 A)12B)11C)10D)编译出错 54、下列程序执行后的输出结果是___。 intb=2; intfunc(int*a){b+=*a;return(b);} main(){inta=2,res=2;res+=func(&a);printf(“%d\n”,res);} A)4B)6C)8D)10 55、有以下程序: inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是___。 A)5B)6C)8D)9 56、有以下程序 #define F(X,Y)(X)*(Y) main() { int a=3, b=4; printf("%d\n", F(a++, b++)); } 程序运行后的输出结果是 A)12 B)15 C)16 D)20 57、 以下叙述中不正确的是 A)预处理命令行都必须以#号开始 B)在程序中凡是以#号开始的语句行都是预处理命令行 C)宏替换不占用运行时间,只占编译时间 D)在以下定义是正确的: #define PI 3.1415926; 58、有如下定义 #define D 2 int x=5;float y=3.83; char c=′D′; 则下面选项中错误的是 A)x++; B)y++; C)c++; D)D++;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 函数 练习题
![提示](https://static.bdocx.com/images/bang_tan.gif)