C语言第四章练习题.docx
- 文档编号:23867118
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:16
- 大小:29.25KB
C语言第四章练习题.docx
《C语言第四章练习题.docx》由会员分享,可在线阅读,更多相关《C语言第四章练习题.docx(16页珍藏版)》请在冰豆网上搜索。
C语言第四章练习题
注意,本套题目中有些涉汲到函数的调用和指针的使用,大家自已先去看下,不懂就问,培养自己的自学能力。
一,选择题
1.若有以下定义
intx[10],*pt=x;
则对x数组元素的正确引用是
A)pt+3
B)*&x[10]
C)*(pt+10)
D)*(x+3)
2.有以下程序
#include
main()
{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是
A)20
B)25
C)45
D)36
3.#include
main()
{intc[6]={10,20,30,40,50,60},*p,*s;
p=c;s=&c[5];
printf("%d\n",s-p);
}
程序运行后的输出结果是
A)5
B)50
C)6
D)60
4.#include
main()
{inta[3]={0},i,j,k=2;
for(i=0;i for(j=0;j printf("%d\n",a[1]); } 程序运行后的输出结果是 A)0 B)2 C)1 D)3 5..有以下程序 #include main() {inta[5]={2,4,6,8,10},*p,**k; p=a;k=&p; printf("%d",*(p++)); printf("%d\n",**k); } 程序运行后的输出结果是 A)46 B)44 C)22 D)24 6.以下叙述中正确的是 A)一条语句只能定义一个数组 B)每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 C)数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 D)在引用数组元素时,下标表达式可以使用浮点数 7.以下叙述中正确的是 A)数组下标的下限是1 B)数组下标的下限由数组中第一个非零元素的位置决定 C)数组下标的下限由数组中第一个被赋值元素的位置决定 D)charc1,c2,*c3,c4[40];是合法的变量定义语句 8.以下叙述中正确的是 A)语句inta[8]={0};是合法的 B)语句inta[]={0};是不合法的,遗漏了数组的大小 C)语句chara[2]={"A","B"};是合法的,定义了一个包含两个字符的数组 D)语句chara[3];a="AB";是合法的,因为数组有三个字符空间的容量,可以保存两个字符 9.有以下程序 #include main() {inta[]={2,4,6,8,10},x,*p,y=1; p=&a[1]; for(x=0;x<3;x++)y+=*(p+x); printf("%d\n",y); } 程序的输出结果是 A)13 B)19 C)11 D)15 10.有以下程序 #include main() { inta[]={2,4,6,8},*p=a,i; for(i=0;i<4;i++) a[i]=*p++; printf("%d\n",a[2]); } 程序的输出结果是 A)2 B)8 C)4 D)6 11.以下叙述正确的是 A)不能在数组说明符的一对方括号中使用表达式 B)charc1,*c2,**c3,c4[2];是C语言的合法语句 C)数组下标的最小值可以是负值 D)若有数组定义intarray[5];则语句printf("%d",array[1.23]);是合法的 12.设有如下程序段 inta[1]={0}; intb[]={9}; charc[3]={"A","B"}; chard="12"; 以下叙述正确的是 A)a,b的定义合法,c,d的定义不合法 B)a,b,c,d的定义都是合法的 C)a,b,c的定义是合法的,d的定义不合法 D)只有a的定义是合法的 12.对于函数声明 voidfun(floatarray[],int*ptr); 下叙述正确的是 A)调用函数时,array数组的元素和ptr都是按值传送 B)函数声明有语法错误,参数array缺少数组大小定义 C)调用函数时,array数组中将存储从实参中复制来的元素值 D)函数参数array,ptr都是指针变量 13.要求定义一个具有6个元素的int型一维数组,以下选项中错误的是 A)inta[2*3]={0}; B)intN=6,a[N]; C)#defineN3 inta[N+N]; D)inta[]={1,2,3,4,5,6}; 14.设有定义: inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,若0≤i≤9,则对a数组元素的引用错误的是 A)*(&a[i]) B)a[10] C)p[i] D)a[p-a] 15.有以下程序 #include intfun(intx[],intn) { staticintsum=0,i; for(i=0;i returnsum; } main() { inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0; s=fun(a,5)+fun(b,4); printf("%d\n",s); } 程序执行后的输出结果是 A)55 B)50 C)45 D)60 二,填空题 1.#include voidfun(int*s,intn1,intn2) { inti,j,t; i=n1;j=n2; while(i { t=s[i];s[i]=s[j];s[j]=t;i++;j--; } } main() { inta[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3);fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++) printf("%d",a[k]); printf("\n"); } 则输出结果是。 2.有以下程序 #include main() { Ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++) c[s[i]]++; for(i=1;i<5;i++) printf("%d",c[i]); printf("\n"); } 程序的运行结果是. 3.#include voidfun(inta[],intn) {intt,i,j; for(i=1;i for(j=i+2;j if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;} } main() {intc[10]={10,9,8,7,6,5,4,3,2,1},i; fun(c,10); for(i=0;i<10;i++)printf("%d,",c[i]); printf("\n"); } 则程序的输出结果是。 4.有如下程序 #include intsum_mod(inta,intb) { returna+b%2; } main() { inti; for(i=0;i<5;i++) printf("%d",sum_mod(i,4)); printf("\n"); } 程序运行后的输出结果是。 5.有以下程序 #include voidfun(inta[],intn) {inti=0; for(i=0;i {if(i%2==0) a[i]+=n; else a[i]-=n; } } main() {intc[5]={5,4,3,2,1},i; fun(c,5); for(i=0;i<5;i++)printf("%d,",c[i]); printf("\n"); } 程序运行后的输出结果是。 6.有以下程序 #include voidfun(inta[],intn) { inti; for(i=0;i { if(i%3==0) a[i]-=n; else a[i]+=n; } } main() {intc[5]={6,7,8,9,10},i; fun(c,5); for(i=0;i<5;i++)printf("%d,",c[i]); printf("\n"); } 程序运行后的输出结果是。 7.#include voidchange(int*array,intlen) { for(;len>=0;len--) array[len]-=1; } main() { inti,array[5]={2,2}; change(array,4); for(i=0;i<5;i++) printf("%d,",array[i]); printf("\n"); } 程序运行后的输出结果是。 8.有以下程序 #include voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/ {intt,i,j;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第四 练习题