C语言各章习题集(5)

来源:网络收集 时间:2025-08-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

17. 以下与int *q[5];等价的定义语句是( )。

A.int q[5] B.int *q C.int *(q[5]) D.int (*q)[5] 18. 已有定义int (*p)( );指针p可以( )。

A.代表函数的返回值 B.指向函数的入口地址 C.表示函数的类型 D.表示函数返回值的类型

二. 填空题

1. 2. 3. 4.

设int a[10]={1,2,3}; 则*(a+3)的值是________________。 设int a[3][4] = {{2},{3}}; 若数组a的起始地址为2000,则a+1的地址值是_____________________。 设int a[2][4],(*p)[4]=a; 用指针变量p表示数组元素a[1][2]为_____________。

对于数据定义及说明:“ int *p, *q[10], (*r)(), *s(); ”, 其中p,q,r,s的含义分别: 。

5. 若有定义:int a[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是 ,*(a[1]+2)的

值是 。

三. 程序分析题

1. void del (char *s,char c ) { int i,j;

for (i=j=0; s[i]!='\\0'; i++)

if ( s[i] = = c) s[j++]=s[i]; s[j]='\\0'; } main()

{ char s[]=\

del(s,'a'); puts(s); }

2. #include

#include

void fun(char *p,int n) { char *i,*j,t;

for (i=p,j=p+n-1; i

}

main()

{ char s[]=\ fun(s,strlen(s)); puts(s); }

3. main ( )

{ char *a[]={“Pascal”,”C Language”,”dBase”,”Java”}; char (**p)[ ] ; int j ; p = a + 3 ;

for (j=3; k>=0; j--) printf(“%s\\n”,*(p--)) ; }

四. 程序填空

1. 下面的函数是比较串s1和s2 ,若相等,则返回0,否则返回第一对不同字符的ascii码的差值。

int str_cmp(const char *s1, const char *s2 ) {

while (*s1 == *s2) {

if (*s1=='\\0') ; s1++; s2++; }

return ; }

2. 下面的函数strcpy1是将源串src拷贝到目的串dest中,并返回目的串的首地址。

char *strcpy1(char *dest,const char *src) {

char *temp=dest; while ( ); return ; }

3. 下面的str_count函数计算串substring在母串string中出现的次数,并将次数返回。 int str_count(char *string,char *substring) { int i,j,k; int count=0;

for (i=0; string[i]!= ; i++)

for (j= ,k=0; substring[k]==string[j]; k++,j++) if (substring[ ]=='\\0') { count++; break; } return ; }

4. 下面函数的功能是用递归法求数组中的最大值及下标值,请填空使程序完整。

void findmax(int *a,int n,int i,int *pk) { if (i

if (a[i]>a[*pk]) ; findmax( ) ; } }

五. 程序编写

1. 输入20个整数,按由小到大的顺序输出。 2. 将一个3×3阶矩阵转置,用一函数实现之。在主函数中用scanf函数输入矩阵元素,存放在数组中,

以数组名作为函数实参。在主函数中输出已转置的矩阵。 3. 编写一个求字符串的函数(参数用指针),在主函数中输入字符串,并输出其长度。

sinxdx?cosxdx?4. 写一个用矩形法求定积分的通用函数,分别求:?,,

0?11120exdx。

第 11 章

一. 选择题

结构体和共用体

1. 如下说明语句,则下面叙述不正确的是( )。

struct stu { int a ; float b ;} stutype; A.struct是结构体类型的关键字 B.struct stu是用户定义结构体类型 C. stutype是用户定义的结构体类型名 D. a和b都是结构体成员名

2. 在16位PC机中,若有定义:struct data { int i ; char ch; double f; } b ; 则结构变量b占用

内存的字节数是( )。 A.1 B.2 C.8 D.11

3. 设有定义语句:enum t1 {a1, a2 = 7, a3, a4 = 15} time;则枚举常量a2和a3的值分别为 ( )。

A. 1和2 B. 2和3 C. 7和2 D. 7和8

4. 以下程序的输出结果是( )。

union myun { struct { int x, y, z; } u; int k; } a; main( )

{ a.u.x=4; a.u.y=5; a.u.z=6; a.k=0; printf(\ } A. 4 B. 5 C. 6 D. 0

5. 当定义一个共用体变量时,系统分配给它的内存是( )。

A.各成员所需内存量的总和 B.结构中第一个成员所需内存量 C.成员中占内存量最大的容量 D.结构中最后一个成员所需内存量

6. 若有以下程序段:

union data { int i ; char c; float f;} a; int n;

则以下语句正确的是( )。

A.a=5; B.a={2,?a?,1.2} C.printf(“%d”,a); D.n=a;

7. 设struct {int a; char b; } Q, *p=&Q;错误的表达式是( )。

A.Q.a B.(*p).b C.p->a D.*p.b

8. 设有定义语句:enum t1 {a1, a2 = 7, a3, a4 = 15} time;则枚举常量a2和a3的值分别为 ( )。

A. 1和2 B. 2和3 C. 7和2 D. 7和8

9. 以下对C语言中共用体类型数据的叙述正确的是( )。

A. 可以对共用体变量直接赋值

B.一个共用体变量中可以同时存放其所有成员 C.一个共用体变量中不能同时存放其所有成员 D.共用体类型定义中不能出现结构体类型的成员

10. 下面对typedef的叙述中不正确的是( )。

A.用typedef可以定义多种类型名,但不能用来定义变量 B.用typedef可以增加新类型

C.用typedef只是将已存在的类型用一个新的标识符来代表 D.使用typedef有利于程序的通用和移植

二. 判断题

1. 共用体类型的变量的字节数等于各成员字节数之和。 2. 结构体类型的变量的字节数等于各成员字节数之和。

3. typedef实际上是用来定义新的数据类型。

三. 填空题

1. 结构体变量成员的引用方式是使用 运算符,结构体指针变量成员的引用方式是使用

运算符。

2. 设struct student{ int no;char name[12];float score[3]; } sl,* p = &sl;

用指针法给sl的成员no赋值1234的语句是___________________。

3. 运算sizeof是求变量或类型的 ,typedef的功能是 。 4. C语言可以定义枚举类型,其关键字为 。

5. 设union student { int n;char a[100]; } b; 则sizeof(b)的值是___________________。

四. 程序分析题

1. #include main()

{ union { int a; char b[2]; } c; c.a=65;

puts(c.b); printf(\ } 2. main()

{ union {

struct { int x,y; } in;

int a,b; } e;

e.a=1; e.b=2;

e.in.x=e.a*e.b; e.in.y=e.a+e.b; printf(\ } 3.

struct w { char low ; char high ; } ; union u { struct w byte ; int word ; } uu; main ( )

{ uu.word = 0x1234 ;

printf(“x\\n”, , uu.word); printf(“x\\n”, , uu.byte.high) ; printf(“x\\n”, , uu.byte.low); uu.byte.low = 0xff ; printf(“x\\n”, , uu.word) ; }

五. 程序填空

1. 下面的函数是将p所指的结点插入head(形参中)所指的单向链表中。设链表已按学号(num)从小到大

顺序排列,要求将p(形参)所指的结点插入后链表保持有序,函数返回插入后的链表的头指针。 结点结构为:

typedef struct node { int num; struct node *next; } NODE; 函数为:

NODE *insert(NODE *head ,NODE * p) { NODE *front,*rear; front=head;

while (front!=NULL && front->num < p->num) { rear=front; ; }

if (front==NULL ) {

if (head==NULL) ; else rear->next=p; ; }

else { if (head==front) head=p; else rear->next=p; ; }

; }

2. 下面的函数create是建立单向链表的函数,它返回已建立的链表的头指针。(先输入的结点值在头,后

输入的值在尾)

结点结构为:

typedef struct node { int num; struct node *next; } NODE; 函数为:

NODE *create() {

NODE *head,*tail,*p; int num;

head=NULL; /* 给表头指针初始化 */ scanf(\ while (num!=0) {

p=(NODE *)malloc(sizeof(NODE)); if ( ) {

printf(\ }

p->num=num;

if (head==NULL) head=p; else ;

tail=p; /* 给表尾指针tail赋值 */ ; }

tail->next= ; ; }

六. 程序编写

1. 有10个学生,每个学生的数据包括学号,姓名,3门课的成绩,从键盘输入10个学生数据,要

求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课的成绩,平均分数)。

2. 13个人围成一圈,从第1个人开始顺序报号1、2、3。凡报到“3”者退出圈子,找出最后留在圈

子中的人原来的序号。

3. 建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所

包含的年龄等于此年龄,则将此结点删去。

第 12 章

一. 选择题

位运算

1. 以下运算符优先级最低的是 ( ) 。

A. && B. & C. | | D. | 2. 以下叙述不正确的是( )。

A. 表达式a&=b等价于a=a&b B.表达式a|=b等价于a=a|b C. 表达式a!=b等价于a=a!b D.表达式a^=b等价于a=a^b 3. 表达式0x13 & 0x17的值是( )。

A.0x17 B. 0x15 C. 0xf8 D.0xec 4. .以下程序段的输出结果是( )。

char x=56 ; x = x & 056 ;

printf(“%d, %o\\n”,x,x);

A. 56,70 B. 0,0 C.40,50 D. 62,75 5. 表达式0x13^0x17的值是( )。

A. 0x04 B. 0x13 C.0xe8 D.0x17 6. 执行以下程序段后,B的值是( )。

char z=?A? ; int B; B=((241&15)&&(Z|?a?));

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库C语言各章习题集(5)在线全文阅读。

C语言各章习题集(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/380672.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219