C语言第四章练习题.docx

上传人:小飞机 文档编号:3155484 上传时间:2023-03-11 格式:DOCX 页数:12 大小:40.03KB
返回 下载 相关 举报
C语言第四章练习题.docx_第1页
第1页 / 共12页
C语言第四章练习题.docx_第2页
第2页 / 共12页
C语言第四章练习题.docx_第3页
第3页 / 共12页
C语言第四章练习题.docx_第4页
第4页 / 共12页
C语言第四章练习题.docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言第四章练习题.docx》由会员分享,可在线阅读,更多相关《C语言第四章练习题.docx(12页珍藏版)》请在三一办公上搜索。

1、C语言第四章练习题注意,本套题目中有些涉汲到函数的调用和指针的使用,大家自已先去看下,不懂就问,培养自己的自学能力。 一,选择题 1.若有以下定义 int x10, *pt=x; 则对x数组元素的正确引用是 A) pt+3 B) *&x10 C) *(pt+10) D) *(x+3) 2.有以下程序 #include main int i, s=0, t=1,2,3,4,5,6,7,8,9; for(i=0;i9;i+=2) s+=*(t+i); printf(%dn,s); 程序执行后的输出结果是 A) 20 B) 25 C) 45 D) 36 3.#include main int c6=

2、10,20,30,40,50,60, *p,*s; p = c; s = &c5; printf(%dn, s-p ); 程序运行后的输出结果是 A) 5 B) 50 C) 6 D) 60 4. #include main int a3=0, i, j, k=2; for( i=0; ik; i+ ) for( j=0; jk; j+ ) aj = ai+1; printf(%dn, a1 ); 程序运行后的输出结果是 A) 0 B) 2 C) 1 D) 3 5.有以下程序 #include main int a5=2,4,6,8,10, *p,*k; p = a; k = &p; print

3、f(%d , *( p+ ) ); printf(%dn, *k ); 程序运行后的输出结果是 A) 4 6 B) 4 4 C) 2 2 D) 2 4 6.以下叙述中正确的是 A) 一条语句只能定义一个数组 B) 每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 C) 数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 D) 在引用数组元素时,下标表达式可以使用浮点数 7.以下叙述中正确的是 A) 数组下标的下限是1 B) 数组下标的下限由数组中第一个非零元素的位置决定 C) 数组下标的下限由数组中第一个被赋值元素的位置决定 D) char c1, c2, *c3

4、, c440;是合法的变量定义语句 8.以下叙述中正确的是 A) 语句int a8 = 0; 是合法的 B) 语句 int a = 0;是不合法的,遗漏了数组的大小 C) 语句 char a2 = A, B; 是合法的,定义了一个包含两个字符的数组 D) 语句 char a3; a = AB; 是合法的,因为数组有三个字符空间的容量,可以保存两个字符 9.有以下程序 #include main int a = 2,4,6,8,10 , x, *p, y=1; p = &a1; for( x=0; x3; x+ ) y += *(p+x); printf( %dn,y ); 程序的输出结果是 A

5、) 13 B) 19 C) 11 D) 15 10.有以下程序 #include main int a = 2,4,6,8 , *p=a, i; for( i=0; i4; i+ ) ai=*p+; printf( %dn ,a2 ); 程序的输出结果是 A) 2 B) 8 C) 4 D) 6 11.以下叙述正确的是 A) 不能在数组说明符的一对方括号中使用表达式 B) char c1, *c2, *c3, c42; 是C语言的合法语句 C) 数组下标的最小值可以是负值 D) 若有数组定义 int array5; 则语句printf(%d,array1.23);是合法的 12.设有如下程序段

6、int a1 = 0; int b = 9; char c3 = A, B; char d = 12; 以下叙述正确的是 A) a, b的定义合法,c, d的定义不合法 B) a,b,c,d的定义都是合法的 C) a,b,c的定义是合法的,d的定义不合法 D) 只有a的定义是合法的 12.对于函数声明 void fun(float array, int *ptr); 下叙述正确的是 A) 调用函数时,array数组的元素和ptr都是按值传送 B) 函数声明有语法错误,参数 array 缺少数组大小定义 C) 调用函数时,array数组中将存储从实参中复制来的元素值 D) 函数参数 array,

7、 ptr 都是指针变量 13.要求定义一个具有6个元素的int型一维数组,以下选项中错误的是 A) int a2*3 = 0; B) int N = 6, aN; C) #define N 3 int aN+N; D) int a = 1,2,3,4,5,6; 14.设有定义:int a10=0,1,2,3,4,5,6,7,8,9,*p=a,i;,若0i9,则对a数组元素的引用错误的是 A) *(&ai) B) a10 C) pi D) ap-a 15.有以下程序 #include int fun(int x,int n) static int sum=0, i; for(i=0;in;i+)

8、 sum+=xi; return sum; main int a=1,2,3,4,5, b=6,7,8,9, s=0; s=fun(a,5)+fun(b,4); printf(%dn,s); 程序执行后的输出结果是 A) 55 B) 50 C) 45 D) 60 二,填空题 1. #include void fun(int *s, int n1, int n2) int i, j, t; i=n1; j=n2; while( ij ) t=si; si=sj; sj=t; i+; j-; main int a10=1,2,3,4,5,6,7,8,9,0, k; fun(a,0,3); fun(

9、a,4,9); fun(a,0,9); for(k=0;k10;k+) printf(%d, ak); printf(n); 则输出结果是 。 2.有以下程序 #include main Ints12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0; i12; i+) csi+; for(i=1; i5; i+) printf(%d ,ci); printf(n); 程序的运行结果是 . 3.#include void fun(int a , int n) int t,i,j; for (i=1; in; i+=2) for (j=i+2; j aj) t=ai

10、; ai=aj;aj=t; main int c10=10,9,8,7,6,5,4,3,2,1,i; fun(c, 10); for (i=0;i10; i+) printf(%d, ci); printf(n); 则程序的输出结果是 。 4.有如下程序 #include int sum_mod(int a, int b) return a + b % 2; main( ) int i; for (i=0; i5; i+) printf(%d, sum_mod(i, 4); printf(n); 程序运行后的输出结果是 。 5.有以下程序 #include void fun(int a , i

11、nt n) int i=0; for (i=0; in; i+) if (i % 2 = 0) ai += n; else ai -= n; main( ) int c5 = 5,4,3,2,1, i; fun(c, 5); for (i=0;i5; i+) printf(%d, ci); printf(n); 程序运行后的输出结果是 。 6.有以下程序 #include void fun(int a , int n) int i; for (i=0; in; i+) if (i % 3 = 0) ai -= n; else ai += n; main( ) int c5 = 6,7,8,9,

12、10,i; fun(c, 5); for (i=0;i5; i+) printf(%d, ci); printf(n); 程序运行后的输出结果是 。 7.#include void change(int* array, int len) for (; len=0; len-) arraylen -= 1; main( ) int i, array5 = 2,2; change(array, 4); for (i=0; i5; i+) printf(%d, arrayi); printf(n); 程序运行后的输出结果是 。 8.有以下程序 #include void fun(int *a, in

13、t n) /* fun函数的功能是将a所指数组元素从大到小排序 */ int t, i, j; for (i=0; in-1;i+) for (j=i+1; jn; j+) if (aiaj) t=ai; ai=aj; aj=t; main int c10=1,2,3,4,5,6,7,8,9,0,i; fun(c+4, 6); for (i=0;i10; i+) printf(%d, ci); printf(n); 程序的运行结果是 。 9.以下程序调用fun函数求数组中最大值所在元素的下标。 #include void fun( int *s,int n, int *k ) int i; f

14、or( i=0 ,*k=i; i s*k ) _ ; main int a5=1,6,2,8,0, k; fun( a, 5, &k ); printf(%d %dn, k, ak ); 在横线处应填入的内容是 。 10.以下fun函数返回数组中最大值的下标 #include int fun( int *s,int n ) int i , k; for( i=0 , k=i; i sk ) _; return ( k ) ; 在横线处应填入的内容是 。 三,编程题 1,打印如图所示的扬挥三角形 #include #include #define n 10 int main int i,j,k;

15、 int ann; for(i=0;in;i+) ai0=1; aii=1; for(i=1;in;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j; for(i=0;ii;k-) printf(); for(j=0;j=i;j+) printf(%4d ,aij); printf(n); return 0; 2.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。一维数 组中数据的个数存放在形参n所指的存储单元中。 例如,若二维数组中的数据为 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中

16、的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55 #include void fun( int s1,int s24,int m,int n) int i,j,k=0; for( i=0;im;i+) for( j=0;jn;j+,k+) s1k=s2ji; void main int i; int a34=33,33,33,33,44,44,44,44,55,55,55,55; int b12; fun(b,a,4,3); for(i=0;i12;i+) printf(%d ,bi); 2.编写函数fun,其功能是:实现BAA,即将矩阵A加上A的转置,存放

17、在矩阵B中。计算结果在main函数中输出。 例如,输入下面的矩阵:其转置矩阵为: 1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9 程序输出: 266101014101418 #include #include int main int i,j; int s33=1,2,3,4,5,6,7,8,9; int q33; fun(s,q); for(i=0;i3;i+) for(j=0;j3;j+) printf( %d,qij); printf(n); return 0; int fun(int a3,int s3) int i,j; for(i=0;i3;i+) for(j=0;j3;j+) sij=aij+aji; return(s);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号