教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

C语言习题集及答案 1(12)

来源:网络收集 时间:2026-04-26
导读: 6. 写一函数,求一字符串长度,即编写一strlen函数。 7. 写一函数将字符数组s1中的全部字符复制到字符数组s2中,不用strcpy函数。 8. 写一函数判断某数是否“水仙花数”,所谓“水仙花数”是指一个三位数, 其各位

6. 写一函数,求一字符串长度,即编写一strlen函数。

7. 写一函数将字符数组s1中的全部字符复制到字符数组s2中,不用strcpy函数。 8. 写一函数判断某数是否“水仙花数”,所谓“水仙花数”是指一个三位数, 其各位数字

333立方和等于该数本身。例如 153是一个水仙花数,因为 153=1?5?3 。

9. 在主函数内任意输入一个5×6矩阵,编写一函数求出每一行的和放到一个一维数组中,

输出此矩阵及其每一行的和。

10. 写一主函数输入一数组,写一子函数实现对该数组的冒泡排序并输出。

11. 任意输入20个正整数,找出其中的素数,并将这些素数按由小到大排序。要求:判断一

个数是否为素数用函数实现;排序用函数实现。 12. 编写计算m的n次方的递归函数。

13. 编一个程序,读入具有5个元素的整型数组,然后调用一个函数,递归计算这些元素的

积。

14. 编一个程序,读入具有5个元素的实型数组,然后调用一个函数,递归地找出其中的最

大元素,并指出它位置。

第七单元 指 针

一、选择题

1、 若有以下定义和语句,且0≤i<10则对数组元素的错误引用是 。

int a[10]={1,2,3,4,5,6,7,8,9,10},*p,i; p=a;

A. *(a+i) B. a[p-a] C. p+i D. *(&a[i]) A. *(a[1]+1) B. *(&a[1][1]) C. (*(a+1)[1]) D. *(a+5) A. char *a[2]={ \B. 数组a的元素值分别为\和\

C. a是指针变量,它指向含有两个数组元素的字符型数组

D.数组a的两个元素分别存放的是含有4个字符的一维数组的首地址

char *s=\

2、 若有定义:int a[3][4]; , 不能表示数组元素a[1][1]。 3、 对如下定义,以下说法中正确的是 。

4、 数组a的两个元素中各自存放了字符’a’、’A’的地址

指针s所指字符串的长度为: 。

A. 说明不合法 B. 19 C. 18 D. 15

swap(int *p1,int *p2)

40

5、 分析下面函数,以下说法正确的是 。

{ int *p;

*p=*p1; *p1=*p2; *p2=*p; }

A. 交换*p1和*p2的值 B. 正确,但无法改变*p1和*p2的值 C. 交换*p1和*p2的地址 D. 可能造成系统故障,因为使用了空指针 A. M个指向整型变量的指针 B. 指向M个整型变量的函数指针

C. 一个指向具有M个整型元素的一维数组的指针

D. 具有M个指针元素的一维指针数组,每个元素都只能指向整型量 A. 一个用于指向整型数据的指针变量 C. 一个用于指向函数的指针变量

B. 一个用于指向一维数组的指针 D. 一个返回值为指针型的函数名

6、 设有说明int (*ptr)[M]; 其中ptr是 。

7、 在说明语句:int *f(); 中,标识符代表的是: 。

8、 若int x ,*pb; ,则正确的赋值表达式是 。

A. pb=&x B. pb=x; C. *pb=&x; D. *pb=*x

int *p ,a=10 ,b=1 ; p=&a ; a=*p+b ;

9、 有如下程序段

执行该程序段后,a 的值为 。

A. 12 B. 11 C. 10 D. 编译出错

double r=99 , *p=&r ; *p=r ;

10、若有以下定义和语句:

则以下正确的叙述是 。

A. 以下两处的*p 含义相同,都说明给指针变量p 赋值

B. 在\;\中,把r 的地址赋值给了p 所指的存储单元 C. 语句\;\把变量r 的值赋给指针变量p D. 语句\;\取变量r 的值放回r 中 此功能的函数是 。

A. funa (int *x,int *y) { int *p; *p=*x; *x=*y;*y=*p; } B. fund (int x,int y) { int t; t=x;x=y;y=t; } C. func (int *x,int *y) { *x=*y;*y=*x;}

D. fund (int *x,int *y) { *x=*x+*y;*y=*x-*y;*x=*x-*y; }

11、要求函数的功能是交换x 和y 中的值,且通过正确调用返回交换结果.能正确执行

12、若有说明:long *p ,a;则不能通过scanf 语句正确给输入项读入数据的程序段

41

是 。

A. *p=&a; scanf(\,p);

B. p=(long *)malloc(8); scanf(\,p); C. scanf(\,p=&a); D. scanf(\,&a);

A. < B. = C. + D. - 址的表达式是 。

A. p+1 B. a+1 C. a++ D. ++p

int a[10]={1,2,3,4,5,6,7,8,9,10} ,*p=a ;

13、对于类型相同的两个指针变量之间,不能进行的运算是 。

14、若已定义:int a[9] ,*p=a;并在以后的语句中未改变p 的值,不能表示a[1] 地 …… 此处隐藏:192字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言习题集及答案 1(12).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/520873.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)